@zentauri-ui/zentauri-components 0.0.91 → 0.0.92

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/dist/chunk-BZSIXBA7.js +70 -0
  2. package/dist/chunk-BZSIXBA7.js.map +1 -0
  3. package/dist/chunk-E5UX537J.js +11 -0
  4. package/dist/chunk-E5UX537J.js.map +1 -0
  5. package/dist/chunk-MEWYFWBX.mjs +14 -0
  6. package/dist/chunk-MEWYFWBX.mjs.map +1 -0
  7. package/dist/chunk-VJHD7QZH.mjs +73 -0
  8. package/dist/chunk-VJHD7QZH.mjs.map +1 -0
  9. package/dist/ui/accordion.js +51 -57
  10. package/dist/ui/accordion.js.map +1 -1
  11. package/dist/ui/{accordion.cjs → accordion.mjs} +38 -67
  12. package/dist/ui/accordion.mjs.map +1 -0
  13. package/dist/ui/{alert.d.cts → alert.d.mts} +1 -1
  14. package/dist/ui/alert.d.ts +1 -1
  15. package/dist/ui/alert.js +40 -46
  16. package/dist/ui/alert.js.map +1 -1
  17. package/dist/ui/{alert.cjs → alert.mjs} +29 -66
  18. package/dist/ui/alert.mjs.map +1 -0
  19. package/dist/ui/{badge.d.cts → badge.d.mts} +1 -1
  20. package/dist/ui/badge.d.ts +1 -1
  21. package/dist/ui/badge.js +20 -26
  22. package/dist/ui/badge.js.map +1 -1
  23. package/dist/ui/{badge.cjs → badge.mjs} +17 -48
  24. package/dist/ui/badge.mjs.map +1 -0
  25. package/dist/ui/{buttons.d.cts → buttons.d.mts} +1 -1
  26. package/dist/ui/buttons.d.ts +1 -1
  27. package/dist/ui/buttons.js +18 -87
  28. package/dist/ui/buttons.js.map +1 -1
  29. package/dist/ui/buttons.mjs +109 -0
  30. package/dist/ui/buttons.mjs.map +1 -0
  31. package/dist/ui/{card.d.cts → card.d.mts} +1 -1
  32. package/dist/ui/card.d.ts +1 -1
  33. package/dist/ui/card.js +40 -46
  34. package/dist/ui/card.js.map +1 -1
  35. package/dist/ui/{card.cjs → card.mjs} +26 -65
  36. package/dist/ui/card.mjs.map +1 -0
  37. package/dist/ui/{divider.d.cts → divider.d.mts} +2 -2
  38. package/dist/ui/divider.d.ts +2 -2
  39. package/dist/ui/divider.js +30 -36
  40. package/dist/ui/divider.js.map +1 -1
  41. package/dist/ui/{divider.cjs → divider.mjs} +22 -55
  42. package/dist/ui/divider.mjs.map +1 -0
  43. package/dist/ui/{drawer.d.cts → drawer.d.mts} +3 -3
  44. package/dist/ui/drawer.d.ts +3 -3
  45. package/dist/ui/drawer.js +64 -70
  46. package/dist/ui/drawer.js.map +1 -1
  47. package/dist/ui/{drawer.cjs → drawer.mjs} +48 -77
  48. package/dist/ui/drawer.mjs.map +1 -0
  49. package/dist/ui/{dropdown.d.cts → dropdown.d.mts} +4 -4
  50. package/dist/ui/dropdown.d.ts +4 -4
  51. package/dist/ui/dropdown.js +43 -49
  52. package/dist/ui/dropdown.js.map +1 -1
  53. package/dist/ui/{dropdown.cjs → dropdown.mjs} +34 -62
  54. package/dist/ui/dropdown.mjs.map +1 -0
  55. package/dist/ui/{empty-state.d.cts → empty-state.d.mts} +1 -1
  56. package/dist/ui/empty-state.d.ts +1 -1
  57. package/dist/ui/empty-state.js +31 -37
  58. package/dist/ui/empty-state.js.map +1 -1
  59. package/dist/ui/empty-state.mjs +150 -0
  60. package/dist/ui/empty-state.mjs.map +1 -0
  61. package/dist/ui/{inputs.d.cts → inputs.d.mts} +2 -2
  62. package/dist/ui/inputs.d.ts +2 -2
  63. package/dist/ui/inputs.js +26 -32
  64. package/dist/ui/inputs.js.map +1 -1
  65. package/dist/ui/{inputs.cjs → inputs.mjs} +21 -51
  66. package/dist/ui/inputs.mjs.map +1 -0
  67. package/dist/ui/{modal.d.cts → modal.d.mts} +3 -3
  68. package/dist/ui/modal.d.ts +3 -3
  69. package/dist/ui/modal.js +69 -75
  70. package/dist/ui/modal.js.map +1 -1
  71. package/dist/ui/{modal.cjs → modal.mjs} +53 -79
  72. package/dist/ui/modal.mjs.map +1 -0
  73. package/dist/ui/{pagination.d.cts → pagination.d.mts} +3 -3
  74. package/dist/ui/pagination.d.ts +3 -3
  75. package/dist/ui/pagination.js +48 -117
  76. package/dist/ui/pagination.js.map +1 -1
  77. package/dist/ui/{pagination.cjs → pagination.mjs} +35 -131
  78. package/dist/ui/pagination.mjs.map +1 -0
  79. package/dist/ui/{progress.d.cts → progress.d.mts} +5 -5
  80. package/dist/ui/progress.d.ts +5 -5
  81. package/dist/ui/progress.js +37 -43
  82. package/dist/ui/progress.js.map +1 -1
  83. package/dist/ui/{progress.cjs → progress.mjs} +25 -60
  84. package/dist/ui/progress.mjs.map +1 -0
  85. package/dist/ui/{select.d.cts → select.d.mts} +4 -4
  86. package/dist/ui/select.d.ts +4 -4
  87. package/dist/ui/select.js +43 -49
  88. package/dist/ui/select.js.map +1 -1
  89. package/dist/ui/{select.cjs → select.mjs} +31 -68
  90. package/dist/ui/select.mjs.map +1 -0
  91. package/dist/ui/{skeleton.d.cts → skeleton.d.mts} +3 -3
  92. package/dist/ui/skeleton.d.ts +3 -3
  93. package/dist/ui/skeleton.js +45 -51
  94. package/dist/ui/skeleton.js.map +1 -1
  95. package/dist/ui/{skeleton.cjs → skeleton.mjs} +31 -67
  96. package/dist/ui/skeleton.mjs.map +1 -0
  97. package/dist/ui/{spinner.d.cts → spinner.d.mts} +3 -3
  98. package/dist/ui/spinner.d.ts +3 -3
  99. package/dist/ui/spinner.js +34 -40
  100. package/dist/ui/spinner.js.map +1 -1
  101. package/dist/ui/{spinner.cjs → spinner.mjs} +27 -57
  102. package/dist/ui/spinner.mjs.map +1 -0
  103. package/dist/ui/{table.d.cts → table.d.mts} +4 -4
  104. package/dist/ui/table.d.ts +4 -4
  105. package/dist/ui/table.js +43 -49
  106. package/dist/ui/table.js.map +1 -1
  107. package/dist/ui/{table.cjs → table.mjs} +26 -65
  108. package/dist/ui/table.mjs.map +1 -0
  109. package/dist/ui/{tabs.d.cts → tabs.d.mts} +1 -1
  110. package/dist/ui/tabs.d.ts +1 -1
  111. package/dist/ui/tabs.js +41 -47
  112. package/dist/ui/tabs.js.map +1 -1
  113. package/dist/ui/{tabs.cjs → tabs.mjs} +29 -59
  114. package/dist/ui/tabs.mjs.map +1 -0
  115. package/dist/ui/{toast.d.cts → toast.d.mts} +1 -1
  116. package/dist/ui/toast.d.ts +1 -1
  117. package/dist/ui/toast.js +57 -63
  118. package/dist/ui/toast.js.map +1 -1
  119. package/dist/ui/{toast.cjs → toast.mjs} +43 -74
  120. package/dist/ui/toast.mjs.map +1 -0
  121. package/dist/ui/{toggle.d.cts → toggle.d.mts} +1 -1
  122. package/dist/ui/toggle.d.ts +1 -1
  123. package/dist/ui/toggle.js +23 -29
  124. package/dist/ui/toggle.js.map +1 -1
  125. package/dist/ui/{toggle.cjs → toggle.mjs} +19 -50
  126. package/dist/ui/toggle.mjs.map +1 -0
  127. package/dist/ui/{tooltip.d.cts → tooltip.d.mts} +2 -2
  128. package/dist/ui/tooltip.d.ts +2 -2
  129. package/dist/ui/tooltip.js +29 -35
  130. package/dist/ui/tooltip.js.map +1 -1
  131. package/dist/ui/{tooltip.cjs → tooltip.mjs} +26 -58
  132. package/dist/ui/tooltip.mjs.map +1 -0
  133. package/dist/variants-Dd9pe-ov.d.mts +8 -0
  134. package/dist/variants-Dd9pe-ov.d.ts +8 -0
  135. package/package.json +10 -15
  136. package/dist/ui/accordion.cjs.map +0 -1
  137. package/dist/ui/alert.cjs.map +0 -1
  138. package/dist/ui/badge.cjs.map +0 -1
  139. package/dist/ui/buttons.cjs +0 -202
  140. package/dist/ui/buttons.cjs.map +0 -1
  141. package/dist/ui/card.cjs.map +0 -1
  142. package/dist/ui/divider.cjs.map +0 -1
  143. package/dist/ui/drawer.cjs.map +0 -1
  144. package/dist/ui/dropdown.cjs.map +0 -1
  145. package/dist/ui/empty-state.cjs +0 -186
  146. package/dist/ui/empty-state.cjs.map +0 -1
  147. package/dist/ui/index.cjs +0 -5764
  148. package/dist/ui/index.cjs.map +0 -1
  149. package/dist/ui/index.d.cts +0 -27
  150. package/dist/ui/index.d.ts +0 -27
  151. package/dist/ui/index.js +0 -5626
  152. package/dist/ui/index.js.map +0 -1
  153. package/dist/ui/inputs.cjs.map +0 -1
  154. package/dist/ui/modal.cjs.map +0 -1
  155. package/dist/ui/pagination.cjs.map +0 -1
  156. package/dist/ui/progress.cjs.map +0 -1
  157. package/dist/ui/select.cjs.map +0 -1
  158. package/dist/ui/skeleton.cjs.map +0 -1
  159. package/dist/ui/spinner.cjs.map +0 -1
  160. package/dist/ui/table.cjs.map +0 -1
  161. package/dist/ui/tabs.cjs.map +0 -1
  162. package/dist/ui/toast.cjs.map +0 -1
  163. package/dist/ui/toggle.cjs.map +0 -1
  164. package/dist/ui/tooltip.cjs.map +0 -1
  165. package/dist/variants-1Bx3BEeS.d.cts +0 -8
  166. package/dist/variants-1Bx3BEeS.d.ts +0 -8
  167. /package/dist/ui/{accordion.d.cts → accordion.d.mts} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/ui/divider/index.ts","../../src/ui/divider/divider.tsx","../../src/lib/utils.ts","../../src/ui/divider/animations.ts","../../src/ui/divider/variants.ts"],"sourcesContent":["export { Divider } from \"./divider\";\nexport type { DividerAnimation, DividerProps } from \"./types\";\nexport { dividerAnimationPresets } from \"./animations\";\nexport {\n dividerVariants,\n dividerToneVariants,\n dividerLineVariants,\n dividerLabelVariants,\n} from \"./variants\";\n","\"use client\";\n\nimport { motion } from \"framer-motion\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport { dividerAnimationPresets } from \"./animations\";\nimport type { DividerProps } from \"./types\";\nimport {\n dividerLabelVariants,\n dividerLineVariants,\n dividerToneVariants,\n dividerVariants,\n} from \"./variants\";\n\nexport function Divider(props: DividerProps) {\n const {\n className,\n appearance,\n orientation,\n size,\n animation = \"none\",\n label,\n children,\n ref,\n ...rest\n } = props;\n const motionProps = dividerAnimationPresets[animation];\n const slot = label ?? children;\n\n if (!slot) {\n return (\n <motion.div\n ref={ref}\n data-slot=\"divider\"\n role=\"separator\"\n aria-orientation={orientation === \"vertical\" ? \"vertical\" : \"horizontal\"}\n className={cn(\n dividerToneVariants({ appearance }),\n orientation === \"horizontal\"\n ? \"flex w-full min-h-px flex-row items-stretch\"\n : \"flex h-full min-h-8 w-auto min-w-0 flex-col items-stretch self-stretch\",\n className,\n )}\n initial={animation === \"none\" ? false : undefined}\n {...motionProps}\n {...rest}\n >\n <span className={cn(dividerLineVariants({ orientation, size }))} aria-hidden />\n </motion.div>\n );\n }\n\n return (\n <motion.div\n ref={ref}\n data-slot=\"divider\"\n role=\"separator\"\n aria-orientation={orientation === \"vertical\" ? \"vertical\" : \"horizontal\"}\n className={cn(dividerVariants({ appearance, orientation, size }), className)}\n initial={animation === \"none\" ? false : undefined}\n {...motionProps}\n {...rest}\n >\n <span\n className={cn(dividerLineVariants({ orientation, size }))}\n aria-hidden\n />\n <span data-slot=\"divider-label\" className={dividerLabelVariants()}>\n {slot}\n </span>\n <span\n className={cn(dividerLineVariants({ orientation, size }))}\n aria-hidden\n />\n </motion.div>\n );\n}\n\nDivider.displayName = \"Divider\";\n","import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}","import type { HTMLMotionProps } from \"framer-motion\";\n\nimport type { DividerAnimation } from \"./types\";\n\ntype DividerPresetMotionProps = Pick<\n HTMLMotionProps<\"div\">,\n \"initial\" | \"animate\" | \"transition\" | \"whileHover\"\n>;\n\nexport type DividerAnimationPresets = Record<\n DividerAnimation,\n DividerPresetMotionProps\n>;\n\nexport const dividerAnimationPresets: DividerAnimationPresets = {\n none: {},\n expand: {\n initial: { scaleX: 0.6, opacity: 0.4 },\n animate: { scaleX: 1, opacity: 1 },\n transition: { duration: 0.35, ease: \"easeOut\" },\n },\n fade: {\n initial: { opacity: 0 },\n animate: { opacity: 1 },\n transition: { duration: 0.25 },\n },\n};\n","import { cva } from \"class-variance-authority\";\n\nconst APPEARANCES = {\n default: \"text-slate-200\",\n muted: \"text-slate-500\",\n primary: \"text-cyan-300\",\n destructive: \"text-rose-400\",\n ghost: \"text-slate-600\",\n sky: \"text-sky-400\",\n rose: \"text-rose-400\",\n purple: \"text-purple-400\",\n pink: \"text-pink-400\",\n orange: \"text-orange-400\",\n yellow: \"text-yellow-400\",\n teal: \"text-teal-400\",\n indigo: \"text-indigo-400\",\n emerald: \"text-emerald-400\",\n gray: \"text-gray-400\",\n amber: \"text-amber-400\",\n violet: \"text-violet-400\",\n \"gradient-blue\": \"text-blue-400\",\n \"gradient-green\": \"text-green-400\",\n \"gradient-red\": \"text-red-400\",\n \"gradient-yellow\": \"text-yellow-400\",\n \"gradient-purple\": \"text-purple-400\",\n \"gradient-teal\": \"text-teal-400\",\n \"gradient-indigo\": \"text-indigo-400\",\n \"gradient-pink\": \"text-pink-400\",\n \"gradient-orange\": \"text-orange-400\",\n};\n\nexport const dividerToneVariants = cva(\"\", {\n variants: {\n appearance: APPEARANCES,\n },\n defaultVariants: { appearance: \"default\" },\n});\n\nexport const dividerVariants = cva(\"flex w-full items-center gap-3\", {\n variants: {\n appearance: APPEARANCES,\n orientation: {\n horizontal: \"w-full flex-row\",\n vertical: \"h-full min-h-[2rem] w-auto flex-col self-stretch\",\n },\n size: {\n sm: \"\",\n md: \"\",\n lg: \"\",\n },\n },\n compoundVariants: [\n { orientation: \"horizontal\", size: \"sm\", class: \"min-h-px\" },\n { orientation: \"horizontal\", size: \"md\", class: \"min-h-[2px]\" },\n { orientation: \"horizontal\", size: \"lg\", class: \"min-h-[3px]\" },\n { orientation: \"vertical\", size: \"sm\", class: \"min-w-px\" },\n { orientation: \"vertical\", size: \"md\", class: \"min-w-[2px]\" },\n { orientation: \"vertical\", size: \"lg\", class: \"min-w-[3px]\" },\n ],\n defaultVariants: {\n appearance: \"default\",\n orientation: \"horizontal\",\n size: \"md\",\n },\n});\n\nexport const dividerLineVariants = cva(\n \"shrink grow rounded-full bg-current opacity-80\",\n {\n variants: {\n orientation: {\n horizontal: \"h-px\",\n vertical: \"w-px flex-1\",\n },\n size: {\n sm: \"\",\n md: \"\",\n lg: \"\",\n },\n },\n compoundVariants: [\n { orientation: \"horizontal\", size: \"sm\", class: \"h-px\" },\n { orientation: \"horizontal\", size: \"md\", class: \"h-0.5\" },\n { orientation: \"horizontal\", size: \"lg\", class: \"h-1\" },\n { orientation: \"vertical\", size: \"sm\", class: \"w-px\" },\n { orientation: \"vertical\", size: \"md\", class: \"w-0.5\" },\n { orientation: \"vertical\", size: \"lg\", class: \"w-1\" },\n ],\n defaultVariants: {\n orientation: \"horizontal\",\n size: \"md\",\n },\n },\n);\n\nexport const dividerLabelVariants = cva(\n \"shrink-0 text-xs font-medium uppercase tracking-wide text-current\",\n);\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/ui/drawer/index.ts","../../src/ui/drawer/drawer.tsx","../../src/lib/utils.ts","../../src/ui/drawer/animations.ts","../../src/ui/drawer/variants.ts"],"sourcesContent":["export {\n Drawer,\n DrawerBody,\n DrawerClose,\n DrawerContent,\n DrawerFooter,\n DrawerHeader,\n DrawerTitle,\n DrawerTrigger,\n} from \"./drawer\";\nexport type {\n DrawerAnimation,\n DrawerContentProps,\n DrawerProps,\n DrawerSectionProps,\n DrawerTriggerProps,\n} from \"./types\";\nexport { drawerPanelPresets } from \"./animations\";\nexport { drawerContentVariants, drawerOverlayVariants } from \"./variants\";\n","\"use client\";\n\nimport { AnimatePresence, motion, useReducedMotion } from \"framer-motion\";\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport { drawerPanelPresets } from \"./animations\";\nimport type {\n DrawerContentProps,\n DrawerProps,\n DrawerSectionProps,\n DrawerTriggerProps,\n} from \"./types\";\nimport { drawerContentVariants, drawerOverlayVariants, drawerTriggerVariants } from \"./variants\";\n\ntype DrawerCtx = {\n open: boolean;\n setOpen: (next: boolean) => void;\n titleId: string;\n descriptionId: string;\n contentRef: React.RefObject<HTMLDivElement | null>;\n};\n\nconst DrawerContext = createContext<DrawerCtx | null>(null);\n\nfunction useDrawerContext(component: string): DrawerCtx {\n const ctx = useContext(DrawerContext);\n if (!ctx) {\n throw new Error(`${component} must be used within <Drawer>`);\n }\n return ctx;\n}\n\nconst FOCUSABLE_SELECTOR =\n 'a[href], button:not([disabled]), textarea, input, select, [tabindex]:not([tabindex=\"-1\"])';\n\nfunction useBodyScrollLock(locked: boolean) {\n useEffect(() => {\n if (!locked) {\n return;\n }\n const previousOverflow = document.body.style.overflow;\n document.body.style.overflow = \"hidden\";\n return () => {\n document.body.style.overflow = previousOverflow;\n };\n }, [locked]);\n}\n\nexport function Drawer({ open, defaultOpen = false, onOpenChange, children }: DrawerProps) {\n const isControlled = open !== undefined;\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const resolvedOpen = isControlled ? Boolean(open) : uncontrolledOpen;\n\n const setOpen = useCallback(\n (next: boolean) => {\n if (!isControlled) {\n setUncontrolledOpen(next);\n }\n onOpenChange?.(next);\n },\n [isControlled, onOpenChange],\n );\n\n const baseId = useId();\n const titleId = `${baseId}-title`;\n const descriptionId = `${baseId}-description`;\n const contentRef = useRef<HTMLDivElement | null>(null);\n\n const ctx = useMemo(\n () => ({\n open: resolvedOpen,\n setOpen,\n titleId,\n descriptionId,\n contentRef,\n }),\n [descriptionId, resolvedOpen, setOpen, titleId],\n );\n\n return <DrawerContext.Provider value={ctx}>{children}</DrawerContext.Provider>;\n}\n\nDrawer.displayName = \"Drawer\";\n\nexport function DrawerTrigger({ className, children, appearance, onClick, ref, ...rest }: DrawerTriggerProps) {\n const { setOpen } = useDrawerContext(\"DrawerTrigger\");\n return (\n <button\n ref={ref}\n type=\"button\"\n data-slot=\"drawer-trigger\"\n className={cn(drawerTriggerVariants({ appearance }), className)}\n onClick={(event) => {\n onClick?.(event);\n if (!event.defaultPrevented) {\n setOpen(true);\n }\n }}\n {...rest}\n >\n {children}\n </button>\n );\n}\n\nDrawerTrigger.displayName = \"DrawerTrigger\";\n\nexport function DrawerContent({\n className,\n side = \"right\",\n size,\n appearance,\n animation = \"slide\",\n children,\n ref,\n id,\n style,\n}: DrawerContentProps) {\n const { open, setOpen, titleId, descriptionId, contentRef } = useDrawerContext(\"DrawerContent\");\n const resolvedSide = side ?? \"right\";\n const reduceMotion = useReducedMotion();\n const overlayMotion = drawerPanelPresets(resolvedSide)[reduceMotion ? \"fade\" : animation];\n const panelMotion = drawerPanelPresets(resolvedSide)[reduceMotion ? \"fade\" : animation];\n\n useBodyScrollLock(open);\n\n useEffect(() => {\n if (!open) {\n return;\n }\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n setOpen(false);\n }\n };\n window.addEventListener(\"keydown\", handleKeyDown);\n return () => window.removeEventListener(\"keydown\", handleKeyDown);\n }, [open, setOpen]);\n\n useEffect(() => {\n if (!open) {\n return;\n }\n const node = contentRef.current;\n if (!node) {\n return;\n }\n const focusables = Array.from(\n node.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTOR),\n ).filter((element) => element.offsetParent !== null || element === node);\n const target = focusables[0] ?? node;\n const previouslyFocused = document.activeElement as HTMLElement | null;\n target.focus();\n\n const handleFocusIn = (event: FocusEvent) => {\n if (!node.contains(event.target as Node)) {\n event.stopPropagation();\n target.focus();\n }\n };\n document.addEventListener(\"focusin\", handleFocusIn);\n return () => {\n document.removeEventListener(\"focusin\", handleFocusIn);\n previouslyFocused?.focus?.();\n };\n }, [contentRef, open]);\n\n const portalTarget = typeof document !== \"undefined\" ? document.body : null;\n if (!portalTarget) {\n return null;\n }\n\n return createPortal(\n <AnimatePresence>\n {open ? (\n <div className=\"fixed inset-0 z-50\" data-slot=\"drawer-portal\">\n <motion.button\n type=\"button\"\n aria-hidden\n tabIndex={-1}\n data-slot=\"drawer-overlay\"\n className={drawerOverlayVariants()}\n onClick={() => setOpen(false)}\n initial={animation === \"none\" ? false : overlayMotion.initial}\n animate={animation === \"none\" ? undefined : overlayMotion.animate}\n exit={animation === \"none\" ? undefined : overlayMotion.exit}\n transition={overlayMotion.transition}\n />\n <motion.div\n ref={(node) => {\n contentRef.current = node;\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref) {\n (ref as React.MutableRefObject<HTMLDivElement | null>).current = node;\n }\n }}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={titleId}\n aria-describedby={descriptionId}\n data-slot=\"drawer-content\"\n tabIndex={-1}\n className={cn(\n drawerContentVariants({ side: resolvedSide, size, appearance }),\n className,\n )}\n initial={animation === \"none\" ? false : panelMotion.initial}\n animate={animation === \"none\" ? undefined : panelMotion.animate}\n exit={animation === \"none\" ? undefined : panelMotion.exit}\n transition={panelMotion.transition}\n id={id}\n style={style}\n >\n {children}\n </motion.div>\n </div>\n ) : null}\n </AnimatePresence>,\n portalTarget,\n );\n}\n\nDrawerContent.displayName = \"DrawerContent\";\n\nexport function DrawerHeader({ className, children }: DrawerSectionProps) {\n return (\n <header data-slot=\"drawer-header\" className={cn(\"mb-4 flex flex-col gap-2\", className)}>\n {children}\n </header>\n );\n}\n\nDrawerHeader.displayName = \"DrawerHeader\";\n\nexport function DrawerBody({ className, children }: DrawerSectionProps) {\n return (\n <div data-slot=\"drawer-body\" className={cn(\"flex-1 text-sm text-slate-300\", className)}>\n {children}\n </div>\n );\n}\n\nDrawerBody.displayName = \"DrawerBody\";\n\nexport function DrawerFooter({ className, children }: DrawerSectionProps) {\n return (\n <footer data-slot=\"drawer-footer\" className={cn(\"mt-6 flex justify-end gap-2\", className)}>\n {children}\n </footer>\n );\n}\n\nDrawerFooter.displayName = \"DrawerFooter\";\n\nexport function DrawerTitle({ className, children }: DrawerSectionProps) {\n const { titleId } = useDrawerContext(\"DrawerTitle\");\n return (\n <h2 id={titleId} data-slot=\"drawer-title\" className={cn(\"text-lg font-semibold\", className)}>\n {children}\n </h2>\n );\n}\n\nDrawerTitle.displayName = \"DrawerTitle\";\n\nexport function DrawerClose({ className, children, ...rest }: DrawerSectionProps) {\n const { setOpen } = useDrawerContext(\"DrawerClose\");\n return (\n <button\n type=\"button\"\n data-slot=\"drawer-close\"\n className={cn(\n \"absolute right-4 top-4 inline-flex size-9 items-center justify-center rounded-md text-slate-200 transition hover:bg-white/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/30\",\n className,\n )}\n aria-label=\"Close drawer\"\n onClick={() => setOpen(false)}\n {...rest}\n >\n {children ?? \"×\"}\n </button>\n );\n}\n\nDrawerClose.displayName = \"DrawerClose\";\n","import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}","import type { HTMLMotionProps } from \"framer-motion\";\n\nexport type DrawerAnimation = \"none\" | \"fade\" | \"scale\" | \"slide\";\n\ntype DrawerPresetMotionProps = Pick<\n HTMLMotionProps<\"div\">,\n \"initial\" | \"animate\" | \"exit\" | \"transition\"\n>;\n\nexport type DrawerAnimationPresets = Record<DrawerAnimation, DrawerPresetMotionProps>;\n\nexport const drawerPanelPresets = (\n side: \"left\" | \"right\" | \"top\" | \"bottom\",\n): DrawerAnimationPresets => ({\n none: {},\n fade: {\n initial: { opacity: 0 },\n animate: { opacity: 1 },\n exit: { opacity: 0 },\n transition: { duration: 0.2 },\n },\n scale: {\n initial: { opacity: 0, scale: 0.98 },\n animate: { opacity: 1, scale: 1 },\n exit: { opacity: 0, scale: 0.98 },\n transition: { type: \"spring\", stiffness: 420, damping: 32 },\n },\n slide: {\n initial:\n side === \"left\"\n ? { x: -24, opacity: 0 }\n : side === \"right\"\n ? { x: 24, opacity: 0 }\n : side === \"top\"\n ? { y: -24, opacity: 0 }\n : { y: 24, opacity: 0 },\n animate: { x: 0, y: 0, opacity: 1 },\n exit:\n side === \"left\"\n ? { x: -16, opacity: 0 }\n : side === \"right\"\n ? { x: 16, opacity: 0 }\n : side === \"top\"\n ? { y: -16, opacity: 0 }\n : { y: 16, opacity: 0 },\n transition: { type: \"spring\", stiffness: 380, damping: 30 },\n },\n});\n","import { cva } from \"class-variance-authority\";\n\nexport const drawerOverlayVariants = cva(\"fixed inset-0 z-50 bg-slate-950/70 backdrop-blur-sm\");\n\nexport const drawerTriggerVariants = cva(\n \"relative inline-flex shrink-0 cursor-pointer rounded-md border\",\n {\n variants: {\n appearance: {\n default: \"bg-slate-950\",\n glass: \"border-white/15 bg-slate-950/70 backdrop-blur-xl\",\n sky: \"border-sky-600 bg-sky-950/70 backdrop-blur-xl\",\n rose: \"border-rose-600 bg-rose-950/70 backdrop-blur-xl\",\n purple: \"border-purple-600 bg-purple-950/70 backdrop-blur-xl\",\n pink: \"border-pink-600 bg-pink-950/70 backdrop-blur-xl\",\n orange: \"border-orange-600 bg-orange-950/70 backdrop-blur-xl\",\n yellow: \"border-yellow-600 bg-yellow-950/70 backdrop-blur-xl\",\n teal: \"border-teal-600 bg-teal-950/70 backdrop-blur-xl\",\n indigo: \"border-indigo-600 bg-indigo-950/70 backdrop-blur-xl\",\n emerald: \"border-emerald-600 bg-emerald-950/70 backdrop-blur-xl\",\n gray: \"border-gray-600 bg-gray-950/70 backdrop-blur-xl\",\n amber: \"border-amber-600 bg-amber-950/70 backdrop-blur-xl\",\n violet: \"border-violet-600 bg-violet-950/70 backdrop-blur-xl\",\n \"gradient-blue\": \"border-gradient-to-r from-blue-600 to-purple-600 bg-gradient-to-r from-blue-950/70 to-purple-950/70 backdrop-blur-xl\",\n \"gradient-green\": \"border-gradient-to-r from-green-600 to-lime-600 bg-gradient-to-r from-green-950/70 to-lime-950/70 backdrop-blur-xl\",\n \"gradient-red\": \"border-gradient-to-r from-red-600 to-pink-600 bg-gradient-to-r from-red-950/70 to-pink-950/70 backdrop-blur-xl\",\n \"gradient-yellow\": \"border-gradient-to-r from-yellow-600 to-orange-600 bg-gradient-to-r from-yellow-950/70 to-orange-950/70 backdrop-blur-xl\",\n \"gradient-purple\": \"border-gradient-to-r from-purple-600 to-pink-600 bg-gradient-to-r from-purple-950/70 to-pink-950/70 backdrop-blur-xl\",\n \"gradient-teal\": \"border-gradient-to-r from-teal-600 to-cyan-600 bg-gradient-to-r from-teal-950/70 to-cyan-950/70 backdrop-blur-xl\",\n \"gradient-indigo\": \"border-gradient-to-r from-indigo-600 to-purple-600 bg-gradient-to-r from-indigo-950/70 to-purple-950/70 backdrop-blur-xl\",\n \"gradient-pink\": \"border-gradient-to-r from-pink-600 to-rose-600 bg-gradient-to-r from-pink-950/70 to-rose-950/70 backdrop-blur-xl\",\n \"gradient-orange\": \"border-gradient-to-r from-orange-600 to-red-600 bg-gradient-to-r from-orange-950/70 to-red-950/70 backdrop-blur-xl\",\n },\n },\n defaultVariants: {\n appearance: \"default\",\n },\n },\n);\n\nexport const drawerContentVariants = cva(\n \"fixed z-50 flex max-h-[min(92vh,900px)] flex-col border border-white/10 bg-slate-950 p-6 text-slate-50 shadow-[0_24px_80px_rgba(15,23,42,0.55)] focus:outline-none\",\n {\n variants: {\n side: {\n left: \"left-0 top-0 h-full w-[min(100%,420px)]\",\n right: \"right-0 top-0 h-full w-[min(100%,420px)]\",\n top: \"left-0 top-0 w-full max-h-[min(92vh,520px)]\",\n bottom: \"bottom-0 left-0 w-full max-h-[min(92vh,520px)]\",\n },\n size: {\n sm: \"\",\n md: \"\",\n lg: \"\",\n xl: \"\",\n full: \"\",\n },\n appearance: {\n default: \"bg-slate-950\",\n glass: \"border-white/15 bg-slate-950/70 backdrop-blur-xl\",\n sky: \"border-sky-600 bg-sky-950/70 backdrop-blur-xl\",\n rose: \"border-rose-600 bg-rose-950/70 backdrop-blur-xl\",\n purple: \"border-purple-600 bg-purple-950/70 backdrop-blur-xl\",\n pink: \"border-pink-600 bg-pink-950/70 backdrop-blur-xl\",\n orange: \"border-orange-600 bg-orange-950/70 backdrop-blur-xl\",\n yellow: \"border-yellow-600 bg-yellow-950/70 backdrop-blur-xl\",\n teal: \"border-teal-600 bg-teal-950/70 backdrop-blur-xl\",\n indigo: \"border-indigo-600 bg-indigo-950/70 backdrop-blur-xl\",\n emerald: \"border-emerald-600 bg-emerald-950/70 backdrop-blur-xl\",\n gray: \"border-gray-600 bg-gray-950/70 backdrop-blur-xl\",\n amber: \"border-amber-600 bg-amber-950/70 backdrop-blur-xl\",\n violet: \"border-violet-600 bg-violet-950/70 backdrop-blur-xl\",\n \"gradient-blue\": \"border-gradient-to-r from-blue-600 to-purple-600 bg-gradient-to-r from-blue-950/70 to-purple-950/70 backdrop-blur-xl\",\n \"gradient-green\": \"border-gradient-to-r from-green-600 to-lime-600 bg-gradient-to-r from-green-950/70 to-lime-950/70 backdrop-blur-xl\",\n \"gradient-red\": \"border-gradient-to-r from-red-600 to-pink-600 bg-gradient-to-r from-red-950/70 to-pink-950/70 backdrop-blur-xl\",\n \"gradient-yellow\": \"border-gradient-to-r from-yellow-600 to-orange-600 bg-gradient-to-r from-yellow-950/70 to-orange-950/70 backdrop-blur-xl\",\n \"gradient-purple\": \"border-gradient-to-r from-purple-600 to-pink-600 bg-gradient-to-r from-purple-950/70 to-pink-950/70 backdrop-blur-xl\",\n \"gradient-teal\": \"border-gradient-to-r from-teal-600 to-cyan-600 bg-gradient-to-r from-teal-950/70 to-cyan-950/70 backdrop-blur-xl\",\n \"gradient-indigo\": \"border-gradient-to-r from-indigo-600 to-purple-600 bg-gradient-to-r from-indigo-950/70 to-purple-950/70 backdrop-blur-xl\",\n \"gradient-pink\": \"border-gradient-to-r from-pink-600 to-rose-600 bg-gradient-to-r from-pink-950/70 to-rose-950/70 backdrop-blur-xl\",\n \"gradient-orange\": \"border-gradient-to-r from-orange-600 to-red-600 bg-gradient-to-r from-orange-950/70 to-red-950/70 backdrop-blur-xl\",\n },\n },\n compoundVariants: [\n { side: \"left\", size: \"sm\", class: \"w-[min(100%,320px)]\" },\n { side: \"left\", size: \"md\", class: \"w-[min(100%,420px)]\" },\n { side: \"left\", size: \"lg\", class: \"w-[min(100%,520px)]\" },\n { side: \"left\", size: \"xl\", class: \"w-[min(100%,640px)]\" },\n { side: \"left\", size: \"full\", class: \"w-full max-w-none\" },\n { side: \"right\", size: \"sm\", class: \"w-[min(100%,320px)]\" },\n { side: \"right\", size: \"md\", class: \"w-[min(100%,420px)]\" },\n { side: \"right\", size: \"lg\", class: \"w-[min(100%,520px)]\" },\n { side: \"right\", size: \"xl\", class: \"w-[min(100%,640px)]\" },\n { side: \"right\", size: \"full\", class: \"w-full max-w-none\" },\n ],\n defaultVariants: {\n side: \"right\",\n size: \"md\",\n appearance: \"default\",\n },\n },\n);\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/ui/dropdown/index.ts","../../src/ui/dropdown/dropdown.tsx","../../src/lib/utils.ts","../../src/ui/dropdown/variants.ts"],"sourcesContent":["export {\n Dropdown,\n DropdownTrigger,\n DropdownContent,\n DropdownItem,\n} from \"./dropdown\";\nexport type {\n DropdownProps,\n DropdownTriggerProps,\n DropdownContentProps,\n DropdownItemProps,\n} from \"./types\";\nexport { triggerVariants, contentVariants, itemVariants } from \"./variants\";","\"use client\";\n\nimport {\n createContext,\n useContext,\n useState,\n useRef,\n useEffect,\n} from \"react\";\nimport { FiCheck } from \"react-icons/fi\";\nimport { cn } from \"../../lib/utils\";\nimport type { DropdownContextType, DropdownProps, DropdownTriggerProps, DropdownContentProps, DropdownItemProps } from \"./types\";\nimport { triggerVariants, contentVariants, itemVariants } from \"./variants\";\n\n/* =========================\n Context\n========================= */\nconst DropdownContext = createContext<DropdownContextType | null>(null);\n\nconst useDropdown = () => {\n const ctx = useContext(DropdownContext);\n if (!ctx) throw new Error(\"Use inside Dropdown\");\n return ctx;\n};\n\n/* =========================\n Root\n========================= */\nexport const Dropdown = ({\n children,\n defaultOpen = false,\n open: controlledOpen,\n onOpenChange,\n multiSelect = false,\n}: DropdownProps) => {\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const [selectedValues, setSelectedValues] = useState<string[]>([]);\n\n const open = controlledOpen ?? uncontrolledOpen;\n\n const setOpen = (val: boolean) => {\n if (controlledOpen !== undefined) {\n onOpenChange?.(val);\n } else {\n setUncontrolledOpen(val);\n }\n };\n\n const toggle = () => setOpen(!open);\n\n const toggleSelect = (value: string) => {\n if (!multiSelect) {\n setSelectedValues([value]);\n setOpen(false);\n return;\n }\n\n setSelectedValues((prev) =>\n prev.includes(value)\n ? prev.filter((v) => v !== value)\n : [...prev, value]\n );\n };\n\n return (\n <DropdownContext.Provider\n value={{\n open,\n setOpen,\n toggle,\n selectedValues,\n toggleSelect,\n multiSelect,\n }}\n >\n <div className=\"relative inline-block\">{children}</div>\n </DropdownContext.Provider>\n );\n};\n\n/* =========================\n Trigger\n========================= */\nexport const DropdownTrigger = ({\n children,\n className,\n variant,\n size,\n ...props\n}: DropdownTriggerProps) => {\n const { toggle } = useDropdown();\n\n return (\n <button\n onClick={toggle}\n className={cn(triggerVariants({ variant, size }), className)}\n {...props}\n >\n {children}\n </button>\n );\n};\n\n/* =========================\n Content\n========================= */\nexport const DropdownContent = ({\n children,\n className,\n placement = \"bottom\",\n spacing = \"default\",\n divider,\n ...props\n}: DropdownContentProps) => {\n const { open, setOpen } = useDropdown();\n const ref = useRef<HTMLDivElement>(null);\n\n // click outside\n useEffect(() => {\n const handleClickOutside = (e: MouseEvent) => {\n if (ref.current && !ref.current.contains(e.target as Node)) {\n setOpen(false);\n }\n };\n\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () =>\n document.removeEventListener(\"mousedown\", handleClickOutside);\n }, [setOpen]);\n\n if (!open) return null;\n\n return (\n <div\n ref={ref}\n className={cn(contentVariants({ placement, spacing }), className, divider && \"divide-y divide-current\")}\n {...props}\n >\n {children}\n </div>\n );\n};\n\n/* =========================\n Item\n========================= */\nexport const DropdownItem = ({\n children,\n value,\n className,\n variant,\n onSelect,\n leftIcon,\n rightIcon,\n ...props\n}: DropdownItemProps) => {\n const { toggleSelect, selectedValues } = useDropdown();\n const isSelected = selectedValues.includes(value);\n\n const handleClick = () => {\n toggleSelect(value);\n onSelect?.();\n };\n\n return (\n <div\n tabIndex={0}\n onClick={handleClick}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") handleClick();\n }}\n className={cn(itemVariants({ variant }), className)}\n {...props}\n >\n <div className=\"flex items-center gap-2\">\n {leftIcon}\n {children}\n </div>\n\n <div className=\"flex items-center gap-2\">\n {isSelected && <FiCheck />}\n {rightIcon}\n </div>\n </div>\n );\n};","import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}","import { cva } from \"class-variance-authority\";\n\nexport const triggerVariants = cva(\n \"inline-flex items-center justify-between rounded-md font-medium transition focus:outline-none cursor-pointer\",\n {\n variants: {\n variant: {\n default: \"bg-gray-900 text-white\",\n outline: \"border border-gray-300\",\n ghost: \"bg-transparent\",\n white: \"bg-white text-gray-900\",\n black: \"bg-black text-white\",\n sky: \"border border-sky-600 text-sky-600\",\n rose: \"border border-rose-600 text-rose-600\",\n purple: \"border border-purple-600 text-purple-600\",\n pink: \"border border-pink-600 text-pink-600\",\n orange: \"border border-orange-600 text-orange-600\",\n yellow: \"border border-yellow-600 text-yellow-600\",\n teal: \"border border-teal-600 text-teal-600\",\n indigo: \"border border-indigo-600 text-indigo-600\",\n emerald: \"border border-emerald-600 text-emerald-600\",\n gray: \"border border-gray-600 text-gray-600\",\n amber: \"border border-amber-600 text-amber-600\",\n violet: \"border border-violet-600 text-violet-600\",\n \"gradient-blue\": \"bg-gradient-to-r from-blue-600 to-purple-600 text-gradient-to-r from-blue-600 to-purple-600\",\n \"gradient-green\": \"bg-gradient-to-r from-green-600 to-lime-600 text-gradient-to-r from-green-600 to-lime-600\",\n \"gradient-red\": \"bg-gradient-to-r from-red-600 to-pink-600 text-gradient-to-r from-red-600 to-pink-600\",\n \"gradient-yellow\": \"bg-gradient-to-r from-yellow-600 to-orange-600 text-gradient-to-r from-yellow-600 to-orange-600\",\n \"gradient-purple\": \"bg-gradient-to-r from-purple-600 to-pink-600 text-gradient-to-r from-purple-600 to-pink-600\",\n \"gradient-teal\": \"bg-gradient-to-r from-teal-600 to-cyan-600 text-gradient-to-r from-teal-600 to-cyan-600\",\n \"gradient-indigo\": \"bg-gradient-to-r from-indigo-600 to-purple-600 text-gradient-to-r from-indigo-600 to-purple-600\",\n \"gradient-pink\": \"bg-gradient-to-r from-pink-600 to-rose-600 text-gradient-to-r from-pink-600 to-rose-600\",\n \"gradient-orange\": \"bg-gradient-to-r from-orange-600 to-red-600 text-gradient-to-r from-orange-600 to-red-600\",\n },\n size: {\n sm: \"px-2 py-1 text-sm\",\n md: \"px-3 py-2 text-base\",\n lg: \"px-4 py-3 text-lg\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n }\n);\n\nexport const contentVariants = cva(\n \"absolute min-w-[200px] rounded-md p-2 shadow-md z-50 border\",\n {\n variants: {\n placement: {\n top: \"bottom-full mb-2\",\n bottom: \"top-full mt-2\",\n left: \"right-full mr-2\",\n right: \"left-full ml-2\",\n },\n spacing:{\n none: \"space-y-0\",\n default: \"space-y-1\",\n sm: \"space-y-2\",\n md: \"space-y-3\",\n lg: \"space-y-4\",\n xl: \"space-y-5\",\n }\n },\n defaultVariants: {\n placement: \"bottom\",\n spacing: \"default\",\n },\n }\n);\n\nexport const itemVariants = cva(\n \"flex items-center justify-between px-3 py-2 text-sm cursor-pointer rounded-md transition-colors\",\n {\n variants: {\n variant: {\n default: \"hover:bg-gray-100 hover:text-gray-900 text-gray-100\",\n outline: \"hover:bg-gray-100 hover:text-gray-900 border border-white text-gray-100\",\n ghost: \"hover:bg-gray-100 hover:text-gray-900 bg-transparent text-gray-100\",\n white: \"hover:bg-gray-100 hover:text-gray-900 bg-white text-gray-900\",\n black: \"hover:bg-gray-100 hover:text-gray-900 bg-black text-white\",\n sky: \"hover:bg-sky-100 hover:text-sky-600 bg-sky-200 text-sky-800\",\n rose: \"hover:bg-rose-100 hover:text-rose-600 bg-rose-200 text-rose-800\",\n purple: \"hover:bg-purple-100 hover:text-purple-600 bg-purple-200 text-purple-800\",\n pink: \"hover:bg-pink-100 hover:text-pink-600 bg-pink-200 text-pink-800\",\n orange: \"hover:bg-orange-100 hover:text-orange-600 bg-orange-200 text-orange-800\",\n yellow: \"hover:bg-yellow-100 hover:text-yellow-600 bg-yellow-200 text-yellow-800\",\n teal: \"hover:bg-teal-100 hover:text-teal-600 bg-teal-200 text-teal-800\",\n indigo: \"hover:bg-indigo-100 hover:text-indigo-600 bg-indigo-200 text-indigo-800\",\n emerald: \"hover:bg-emerald-100 hover:text-emerald-600 bg-emerald-200 text-emerald-800\",\n gray: \"hover:bg-gray-100 hover:text-gray-900 bg-gray-200 text-gray-800\",\n amber: \"hover:bg-amber-100 hover:text-amber-600 bg-amber-200 text-amber-800\",\n violet: \"hover:bg-violet-100 hover:text-violet-600 bg-violet-200 text-violet-800\",\n \"gradient-blue\": \"hover:bg-gradient-to-r from-blue-600 to-purple-600 hover:text-blue-900 bg-gradient-to-r from-blue-200 to-purple-200 text-blue-800\",\n \"gradient-green\": \"hover:bg-gradient-to-r from-green-600 to-lime-600 hover:text-green-900 bg-gradient-to-r from-green-200 to-lime-200 text-green-800\",\n \"gradient-red\": \"hover:bg-gradient-to-r from-red-600 to-pink-600 hover:text-red-900 bg-gradient-to-r from-red-200 to-pink-200 text-red-800\",\n \"gradient-yellow\": \"hover:bg-gradient-to-r from-yellow-600 to-orange-600 hover:text-yellow-900 bg-gradient-to-r from-yellow-200 to-orange-200 text-yellow-800\",\n \"gradient-purple\": \"hover:bg-gradient-to-r from-purple-600 to-pink-600 hover:text-purple-900 bg-gradient-to-r from-purple-200 to-pink-200 text-purple-800\",\n \"gradient-teal\": \"hover:bg-gradient-to-r from-teal-600 to-cyan-600 hover:text-teal-900 bg-gradient-to-r from-teal-200 to-cyan-200 text-teal-800\",\n \"gradient-indigo\": \"hover:bg-gradient-to-r from-indigo-600 to-purple-600 hover:text-indigo-900 bg-gradient-to-r from-indigo-200 to-purple-200 text-indigo-800\",\n \"gradient-pink\": \"hover:bg-gradient-to-r from-pink-600 to-rose-600 hover:text-pink-900 bg-gradient-to-r from-pink-200 to-rose-200 text-pink-800\",\n \"gradient-orange\": \"hover:bg-gradient-to-r from-orange-600 to-red-600 hover:text-orange-900 bg-gradient-to-r from-orange-200 to-red-200 text-orange-800\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);"],"mappings":"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","names":[]}
@@ -1,186 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/ui/empty-state/index.ts
21
- var empty_state_exports = {};
22
- __export(empty_state_exports, {
23
- EmptyState: () => EmptyState,
24
- EmptyStateAction: () => EmptyStateAction,
25
- EmptyStateDescription: () => EmptyStateDescription,
26
- EmptyStateIcon: () => EmptyStateIcon,
27
- EmptyStateTitle: () => EmptyStateTitle,
28
- emptyStateAnimationPresets: () => emptyStateAnimationPresets,
29
- emptyStateDescriptionVariants: () => emptyStateDescriptionVariants,
30
- emptyStateTitleVariants: () => emptyStateTitleVariants,
31
- emptyStateVariants: () => emptyStateVariants
32
- });
33
- module.exports = __toCommonJS(empty_state_exports);
34
-
35
- // src/ui/empty-state/empty-state.tsx
36
- var import_react = require("react");
37
- var import_framer_motion = require("framer-motion");
38
-
39
- // src/lib/utils.ts
40
- var import_clsx = require("clsx");
41
- var import_tailwind_merge = require("tailwind-merge");
42
- function cn(...inputs) {
43
- return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
44
- }
45
-
46
- // src/ui/empty-state/animations.ts
47
- var emptyStateAnimationPresets = {
48
- none: {},
49
- float: {
50
- whileHover: { y: -4 },
51
- transition: { type: "spring", stiffness: 260, damping: 22 }
52
- },
53
- fade: {
54
- initial: { opacity: 0, y: 8 },
55
- animate: { opacity: 1, y: 0 },
56
- transition: { duration: 0.25, ease: "easeOut" }
57
- },
58
- "slide-up": {
59
- initial: { opacity: 0, y: 16 },
60
- animate: { opacity: 1, y: 0 },
61
- transition: { type: "spring", stiffness: 380, damping: 28 }
62
- }
63
- };
64
-
65
- // src/ui/empty-state/variants.ts
66
- var import_class_variance_authority = require("class-variance-authority");
67
- var emptyStateVariants = (0, import_class_variance_authority.cva)("flex w-full flex-col items-center text-center", {
68
- variants: {
69
- size: {
70
- sm: "gap-2 p-4 text-sm",
71
- md: "gap-3 p-6 text-sm",
72
- lg: "gap-4 p-8 text-base"
73
- },
74
- appearance: {
75
- default: "text-slate-50",
76
- ghost: "text-slate-200",
77
- card: "rounded-2xl border border-white/10 bg-white/5 p-8 text-slate-50 shadow-[0_18px_48px_rgba(15,23,42,0.35)]"
78
- },
79
- align: {
80
- start: "items-start text-left",
81
- center: "items-center text-center",
82
- end: "items-end text-right"
83
- }
84
- },
85
- defaultVariants: {
86
- size: "md",
87
- appearance: "default",
88
- align: "center"
89
- }
90
- });
91
- var emptyStateTitleVariants = (0, import_class_variance_authority.cva)("font-semibold tracking-tight", {
92
- variants: {
93
- size: {
94
- sm: "text-base",
95
- md: "text-lg",
96
- lg: "text-xl"
97
- }
98
- },
99
- defaultVariants: { size: "md" }
100
- });
101
- var emptyStateDescriptionVariants = (0, import_class_variance_authority.cva)("max-w-md text-slate-400", {
102
- variants: {
103
- size: {
104
- sm: "text-xs",
105
- md: "text-sm",
106
- lg: "text-base"
107
- }
108
- },
109
- defaultVariants: { size: "md" }
110
- });
111
-
112
- // src/ui/empty-state/empty-state.tsx
113
- var import_jsx_runtime = require("react/jsx-runtime");
114
- var EmptyStateSizeContext = (0, import_react.createContext)("md");
115
- function useEmptyStateSize() {
116
- return (0, import_react.useContext)(EmptyStateSizeContext);
117
- }
118
- function EmptyState(props) {
119
- const {
120
- className,
121
- size = "md",
122
- appearance,
123
- align,
124
- animation = "none",
125
- children,
126
- ref,
127
- ...rest
128
- } = props;
129
- const motionProps = emptyStateAnimationPresets[animation];
130
- const ctx = (0, import_react.useMemo)(() => size ?? "md", [size]);
131
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(EmptyStateSizeContext.Provider, { value: ctx, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
132
- import_framer_motion.motion.section,
133
- {
134
- ref,
135
- "data-slot": "empty-state",
136
- "aria-live": "polite",
137
- className: cn(emptyStateVariants({ size, appearance, align }), className),
138
- initial: animation === "none" ? false : void 0,
139
- ...motionProps,
140
- ...rest,
141
- children
142
- }
143
- ) });
144
- }
145
- EmptyState.displayName = "EmptyState";
146
- function EmptyStateIcon({ className, children }) {
147
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { "data-slot": "empty-state-icon", className: cn("text-slate-300", className), children });
148
- }
149
- EmptyStateIcon.displayName = "EmptyStateIcon";
150
- function EmptyStateTitle({ className, children }) {
151
- const size = useEmptyStateSize();
152
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h2", { "data-slot": "empty-state-title", className: cn(emptyStateTitleVariants({ size }), className), children });
153
- }
154
- EmptyStateTitle.displayName = "EmptyStateTitle";
155
- function EmptyStateDescription({
156
- className,
157
- children
158
- }) {
159
- const size = useEmptyStateSize();
160
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
161
- "p",
162
- {
163
- "data-slot": "empty-state-description",
164
- className: cn(emptyStateDescriptionVariants({ size }), className),
165
- children
166
- }
167
- );
168
- }
169
- EmptyStateDescription.displayName = "EmptyStateDescription";
170
- function EmptyStateAction({ className, children }) {
171
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { "data-slot": "empty-state-action", className: cn("mt-2", className), children });
172
- }
173
- EmptyStateAction.displayName = "EmptyStateAction";
174
- // Annotate the CommonJS export names for ESM import in node:
175
- 0 && (module.exports = {
176
- EmptyState,
177
- EmptyStateAction,
178
- EmptyStateDescription,
179
- EmptyStateIcon,
180
- EmptyStateTitle,
181
- emptyStateAnimationPresets,
182
- emptyStateDescriptionVariants,
183
- emptyStateTitleVariants,
184
- emptyStateVariants
185
- });
186
- //# sourceMappingURL=empty-state.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/ui/empty-state/index.ts","../../src/ui/empty-state/empty-state.tsx","../../src/lib/utils.ts","../../src/ui/empty-state/animations.ts","../../src/ui/empty-state/variants.ts"],"sourcesContent":["export {\n EmptyState,\n EmptyStateAction,\n EmptyStateDescription,\n EmptyStateIcon,\n EmptyStateTitle,\n} from \"./empty-state\";\nexport type {\n EmptyStateAnimation,\n EmptyStateProps,\n EmptyStateSectionProps,\n} from \"./types\";\nexport { emptyStateAnimationPresets } from \"./animations\";\nexport {\n emptyStateVariants,\n emptyStateTitleVariants,\n emptyStateDescriptionVariants,\n} from \"./variants\";\n","\"use client\";\n\nimport { createContext, useContext, useMemo } from \"react\";\nimport { motion } from \"framer-motion\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport { emptyStateAnimationPresets } from \"./animations\";\nimport type { EmptyStateProps, EmptyStateSectionProps } from \"./types\";\nimport {\n emptyStateDescriptionVariants,\n emptyStateTitleVariants,\n emptyStateVariants,\n} from \"./variants\";\n\ntype EmptyStateSize = NonNullable<EmptyStateProps[\"size\"]>;\n\nconst EmptyStateSizeContext = createContext<EmptyStateSize>(\"md\");\n\nfunction useEmptyStateSize(): EmptyStateSize {\n return useContext(EmptyStateSizeContext);\n}\n\nexport function EmptyState(props: EmptyStateProps) {\n const {\n className,\n size = \"md\",\n appearance,\n align,\n animation = \"none\",\n children,\n ref,\n ...rest\n } = props;\n const motionProps = emptyStateAnimationPresets[animation];\n const ctx = useMemo(() => size ?? \"md\", [size]);\n\n return (\n <EmptyStateSizeContext.Provider value={ctx}>\n <motion.section\n ref={ref}\n data-slot=\"empty-state\"\n aria-live=\"polite\"\n className={cn(emptyStateVariants({ size, appearance, align }), className)}\n initial={animation === \"none\" ? false : undefined}\n {...motionProps}\n {...rest}\n >\n {children}\n </motion.section>\n </EmptyStateSizeContext.Provider>\n );\n}\n\nEmptyState.displayName = \"EmptyState\";\n\nexport function EmptyStateIcon({ className, children }: EmptyStateSectionProps) {\n return (\n <div data-slot=\"empty-state-icon\" className={cn(\"text-slate-300\", className)}>\n {children}\n </div>\n );\n}\n\nEmptyStateIcon.displayName = \"EmptyStateIcon\";\n\nexport function EmptyStateTitle({ className, children }: EmptyStateSectionProps) {\n const size = useEmptyStateSize();\n return (\n <h2 data-slot=\"empty-state-title\" className={cn(emptyStateTitleVariants({ size }), className)}>\n {children}\n </h2>\n );\n}\n\nEmptyStateTitle.displayName = \"EmptyStateTitle\";\n\nexport function EmptyStateDescription({\n className,\n children,\n}: EmptyStateSectionProps) {\n const size = useEmptyStateSize();\n return (\n <p\n data-slot=\"empty-state-description\"\n className={cn(emptyStateDescriptionVariants({ size }), className)}\n >\n {children}\n </p>\n );\n}\n\nEmptyStateDescription.displayName = \"EmptyStateDescription\";\n\nexport function EmptyStateAction({ className, children }: EmptyStateSectionProps) {\n return (\n <div data-slot=\"empty-state-action\" className={cn(\"mt-2\", className)}>\n {children}\n </div>\n );\n}\n\nEmptyStateAction.displayName = \"EmptyStateAction\";\n","import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}","import type { HTMLMotionProps } from \"framer-motion\";\n\nimport type { EmptyStateAnimation } from \"./types\";\n\ntype EmptyStatePresetMotionProps = Pick<\n HTMLMotionProps<\"div\">,\n \"initial\" | \"animate\" | \"transition\" | \"whileHover\"\n>;\n\nexport type EmptyStateAnimationPresets = Record<\n EmptyStateAnimation,\n EmptyStatePresetMotionProps\n>;\n\nexport const emptyStateAnimationPresets: EmptyStateAnimationPresets = {\n none: {},\n float: {\n whileHover: { y: -4 },\n transition: { type: \"spring\", stiffness: 260, damping: 22 },\n },\n fade: {\n initial: { opacity: 0, y: 8 },\n animate: { opacity: 1, y: 0 },\n transition: { duration: 0.25, ease: \"easeOut\" },\n },\n \"slide-up\": {\n initial: { opacity: 0, y: 16 },\n animate: { opacity: 1, y: 0 },\n transition: { type: \"spring\", stiffness: 380, damping: 28 },\n },\n};\n","import { cva } from \"class-variance-authority\";\n\nexport const emptyStateVariants = cva(\"flex w-full flex-col items-center text-center\", {\n variants: {\n size: {\n sm: \"gap-2 p-4 text-sm\",\n md: \"gap-3 p-6 text-sm\",\n lg: \"gap-4 p-8 text-base\",\n },\n appearance: {\n default: \"text-slate-50\",\n ghost: \"text-slate-200\",\n card: \"rounded-2xl border border-white/10 bg-white/5 p-8 text-slate-50 shadow-[0_18px_48px_rgba(15,23,42,0.35)]\",\n },\n align: {\n start: \"items-start text-left\",\n center: \"items-center text-center\",\n end: \"items-end text-right\",\n },\n },\n defaultVariants: {\n size: \"md\",\n appearance: \"default\",\n align: \"center\",\n },\n});\n\nexport const emptyStateTitleVariants = cva(\"font-semibold tracking-tight\", {\n variants: {\n size: {\n sm: \"text-base\",\n md: \"text-lg\",\n lg: \"text-xl\",\n },\n },\n defaultVariants: { size: \"md\" },\n});\n\nexport const emptyStateDescriptionVariants = cva(\"max-w-md text-slate-400\", {\n variants: {\n size: {\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-base\",\n },\n },\n defaultVariants: { size: \"md\" },\n});\n"],"mappings":"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","names":[]}