UNPKG

flowbite-svelte

Version:

Flowbite components for Svelte

86 lines (85 loc) 3.55 kB
import { tv } from "tailwind-variants"; export const select = tv({ slots: { base: "relative", select: "block w-full rtl:text-right", close: "absolute right-8 top-1/2 -translate-y-1/2 text-gray-400 hover:text-black", svg: "" }, variants: { underline: { true: { select: "text-gray-500 bg-transparent border-0 border-b-2 border-gray-200 appearance-none dark:text-gray-400 dark:border-gray-700 focus:outline-hidden focus:ring-0 focus:border-gray-200 peer px-0!" }, false: { select: "text-gray-900 bg-gray-50 border border-gray-300 rounded-lg focus:outline-hidden focus:ring-primary-500 focus:border-primary-500 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-primary-500 dark:focus:border-primary-500" } }, size: { sm: { select: "text-xs px-2.5 py-2.5" }, md: { select: "text-sm px-2.5 py-2.5" }, lg: { select: "text-base py-3 px-4" } }, disabled: { true: { select: "cursor-not-allowed opacity-50" }, false: {} } }, defaultVariants: { underline: false, size: "md" } }); export const multiSelect = tv({ slots: { base: "relative border border-gray-300 flex items-center rounded-lg gap-2 dark:border-gray-600 ring-primary-500 dark:ring-primary-500 focus-visible:outline-hidden", select: "flex flex-wrap gap-2", dropdown: "absolute z-50 p-3 flex flex-col gap-1 max-h-64 bg-white border border-gray-300 dark:bg-gray-700 dark:border-gray-600 start-0 top-[calc(100%+1rem)] rounded-lg cursor-pointer overflow-y-scroll w-full", item: "py-2 px-3 rounded-lg text-gray-600 hover:text-gray-600 dark:text-gray-400 hover:bg-gray-100 dark:hover:text-gray-300 dark:hover:bg-gray-600", close: "p-0 focus:ring-gray-400 dark:text-white", span: "", placeholder: "text-gray-400", svg: "ms-1 h-3 w-3 cursor-pointer text-gray-800 dark:text-white" }, variants: { size: { sm: "px-2.5 py-2.5 min-h-[2.4rem] text-xs", md: "px-2.5 py-2.5 min-h-[2.7rem] text-sm", lg: "px-3 py-3 min-h-[3.2rem] sm:text-base" }, disabled: { true: { base: "cursor-not-allowed opacity-50 pointer-events-none", item: "cursor-not-allowed opacity-50", close: "cursor-not-allowed" }, false: { base: "focus-within:border-primary-500 dark:focus-within:border-primary-500 focus-within:ring-1" } }, active: { true: { item: "bg-primary-100 text-primary-500 dark:bg-primary-500 dark:text-primary-100 hover:bg-primary-100 dark:hover:bg-primary-500 hover:text-primary-600 dark:hover:text-primary-100" } }, selected: { true: { item: "bg-gray-100 text-black font-semibold hover:text-black dark:text-white dark:bg-gray-600 dark:hover:text-white" } } }, // Add compoundVariants here compoundVariants: [ { selected: true, active: true, class: { item: "bg-primary-200 dark:bg-primary-600 text-primary-700 dark:text-primary-100 font-semibold" // Adjust colors as needed } } ], defaultVariants: { underline: false, size: "md" } });