.ui-input-dropdown-wrapper { @apply relative overflow-visible w-full; } .ui-input-prefix-dropdown-button { @apply flex items-center px-3 py-2 pr-2 text-sm font-medium bg-transparent border-0 cursor-pointer transition-all duration-300 gap-1; pointer-events: auto; } .ui-input-prefix-icon { @apply text-base w-5 h-4; } .ui-input-prefix-text { @apply font-normal text-dominant-700 text-[13px]; direction: ltr } .ui-input-dropdown-menu { @apply absolute bg-white h-[16rem] overflow-y-hidden border border-dominant-100 rounded-xl z-[9999] overflow-visible w-full; transform-origin: top center; backdrop-filter: blur(8px); } @keyframes dropdownSlideIn { from { opacity: 0; transform: translateY(-8px) scale(0.96); } to { opacity: 1; transform: translateY(0) scale(1); } } @keyframes dropdownSlideOut { from { opacity: 1; transform: translateY(0) scale(1); } to { opacity: 0; transform: translateY(-4px) scale(0.98); } } .dropdown-enter-active { animation: dropdownSlideIn 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .dropdown-leave-active { animation: dropdownSlideOut 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94); } .dropdown-enter-from, .dropdown-leave-to { opacity: 0; transform: translateY(-4px) scale(0.98); } .ui-input-dropdown-menu--bottom { @apply top-full mt-3; } .ui-input-dropdown-menu--top { @apply bottom-full mb-3; } .ui-input-dropdown--rtl { direction: rtl; } .ui-input-dropdown--ltr { direction: ltr; } .ui-input-dropdown-search { @apply p-3; } .ui-input-dropdown-search-input { @apply w-full text-sm !font-normal border border-dominant-200 rounded px-3 !h-[2.2rem] !pb-2.5 focus:outline-none focus:ring-2 focus:ring-dominant-500 focus:border-transparent placeholder:!text-dominant-200; transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94); animation: searchInputSlideIn 0.5s ease-out; } @keyframes searchInputSlideIn { from { opacity: 0; transform: translateY(-3px); } to { opacity: 1; transform: translateY(0); } } .ui-input-dropdown-list { @apply max-h-60 overflow-y-auto relative pl-4 pr-2; scrollbar-width: thin; scrollbar-color: #d1d5db transparent; } .ui-input-dropdown-list::-webkit-scrollbar { width: 6px; } .ui-input-dropdown-list::-webkit-scrollbar-track { background: transparent; border-radius: 3px; } .ui-input-dropdown-list::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 3px; transition: background 0.2s ease; } .ui-input-dropdown-list::-webkit-scrollbar-thumb:hover { background: #9ca3af; } .ui-input-dropdown-item { @apply w-full flex items-center content-center gap-1 text-sm bg-transparent border-0 cursor-pointer transition-all duration-300 mb-3 relative; animation: itemFadeIn 0.3s ease-out; animation-fill-mode: both; } .ui-input-dropdown-item:nth-child(1) { animation-delay: 0.05s; } .ui-input-dropdown-item:nth-child(2) { animation-delay: 0.1s; } .ui-input-dropdown-item:nth-child(3) { animation-delay: 0.15s; } .ui-input-dropdown-item:nth-child(4) { animation-delay: 0.2s; } .ui-input-dropdown-item:nth-child(5) { animation-delay: 0.25s; } .ui-input-dropdown-item:nth-child(6) { animation-delay: 0.3s; } .ui-input-dropdown-item:nth-child(7) { animation-delay: 0.35s; } .ui-input-dropdown-item:nth-child(8) { animation-delay: 0.4s; } .ui-input-dropdown-item:nth-child(9) { animation-delay: 0.45s; } .ui-input-dropdown-item:nth-child(10) { animation-delay: 0.5s; } @keyframes itemFadeIn { from { opacity: 0; transform: translateX(-5px); } to { opacity: 1; transform: translateX(0); } } .ui-input-dropdown-item-selected { @apply text-dominant-700 relative flex items-center content-center h-[1.8rem]; animation: selectedItemPulse 0.3s ease-out; } @keyframes selectedItemPulse { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } } .ui-input-dropdown-item-selected::before { content: ''; @apply rounded-l-2xl flex items-center justify-center w-1 h-[1.6rem] bg-dominant-500; z-index: 1; } .ui-input-dropdown-item-selected::after { content: ''; @apply absolute top-1/2 !right-0 w-2 h-2 bg-dominant-500 rounded-full; transform: translateY(-50%); z-index: 2; } .ui-input-dropdown-item-icon { @apply text-base flex-shrink-0 w-5 h-4; } .ui-input-dropdown-item-prefix { @apply font-normal text-dominant-600 flex-shrink-0 mt-0.5; } .ui-input-dropdown-item-label { @apply text-gray-700 mt-0.5; } .ui-input-dropdown-item-en-label { @apply text-gray-500 text-xs mt-0.5; } .ui-input-dropdown-loading { @apply flex items-center justify-center py-8; animation: loadingPulse 1.5s ease-in-out infinite; } @keyframes loadingPulse { 0%, 100% { opacity: 0.6; } 50% { opacity: 1; } } .ui-input-dropdown-empty { @apply flex items-center justify-center py-8 text-gray-500 text-sm; animation: emptyStateFadeIn 0.5s ease-out; } @keyframes emptyStateFadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }