@incognia/cosmik 1.1.0 → 1.1.2

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 (173) hide show
  1. package/dist/cosmik.css +1 -1
  2. package/dist/index.cjs +1 -1
  3. package/dist/index.js +34 -34
  4. package/dist/index10.cjs +1 -1
  5. package/dist/index10.cjs.map +1 -1
  6. package/dist/index10.js +69 -9
  7. package/dist/index10.js.map +1 -1
  8. package/dist/index11.cjs +1 -1
  9. package/dist/index11.cjs.map +1 -1
  10. package/dist/index11.js +91 -54
  11. package/dist/index11.js.map +1 -1
  12. package/dist/index12.cjs +1 -1
  13. package/dist/index12.cjs.map +1 -1
  14. package/dist/index12.js +51 -151
  15. package/dist/index12.js.map +1 -1
  16. package/dist/index13.cjs +1 -1
  17. package/dist/index13.cjs.map +1 -1
  18. package/dist/index13.js +16 -86
  19. package/dist/index13.js.map +1 -1
  20. package/dist/index14.cjs +1 -1
  21. package/dist/index14.cjs.map +1 -1
  22. package/dist/index14.js +83 -66
  23. package/dist/index14.js.map +1 -1
  24. package/dist/index15.cjs +1 -1
  25. package/dist/index15.cjs.map +1 -1
  26. package/dist/index15.js +81 -98
  27. package/dist/index15.js.map +1 -1
  28. package/dist/index16.cjs +1 -1
  29. package/dist/index16.cjs.map +1 -1
  30. package/dist/index16.js +105 -38
  31. package/dist/index16.js.map +1 -1
  32. package/dist/index17.cjs +1 -1
  33. package/dist/index17.cjs.map +1 -1
  34. package/dist/index17.js +34 -17
  35. package/dist/index17.js.map +1 -1
  36. package/dist/index18.cjs +1 -1
  37. package/dist/index18.cjs.map +1 -1
  38. package/dist/index18.js +68 -82
  39. package/dist/index18.js.map +1 -1
  40. package/dist/index19.cjs +1 -1
  41. package/dist/index19.cjs.map +1 -1
  42. package/dist/index19.js +63 -84
  43. package/dist/index19.js.map +1 -1
  44. package/dist/index2.cjs +1 -1
  45. package/dist/index20.cjs +1 -1
  46. package/dist/index20.cjs.map +1 -1
  47. package/dist/index20.js +19 -114
  48. package/dist/index20.js.map +1 -1
  49. package/dist/index21.cjs +1 -1
  50. package/dist/index21.cjs.map +1 -1
  51. package/dist/index21.js +10 -36
  52. package/dist/index21.js.map +1 -1
  53. package/dist/index22.cjs +1 -1
  54. package/dist/index22.cjs.map +1 -1
  55. package/dist/index22.js +12 -72
  56. package/dist/index22.js.map +1 -1
  57. package/dist/index23.cjs +1 -1
  58. package/dist/index23.cjs.map +1 -1
  59. package/dist/index23.js +46 -64
  60. package/dist/index23.js.map +1 -1
  61. package/dist/index24.cjs +1 -1
  62. package/dist/index24.cjs.map +1 -1
  63. package/dist/index24.js +6 -28
  64. package/dist/index24.js.map +1 -1
  65. package/dist/index25.cjs +1 -1
  66. package/dist/index25.cjs.map +1 -1
  67. package/dist/index25.js +19 -12
  68. package/dist/index25.js.map +1 -1
  69. package/dist/index26.cjs +1 -1
  70. package/dist/index26.cjs.map +1 -1
  71. package/dist/index26.js +62 -11
  72. package/dist/index26.js.map +1 -1
  73. package/dist/index27.cjs +1 -1
  74. package/dist/index27.cjs.map +1 -1
  75. package/dist/index27.js +16 -46
  76. package/dist/index27.js.map +1 -1
  77. package/dist/index28.cjs +1 -1
  78. package/dist/index28.cjs.map +1 -1
  79. package/dist/index28.js +26 -7
  80. package/dist/index28.js.map +1 -1
  81. package/dist/index29.cjs +1 -1
  82. package/dist/index29.cjs.map +1 -1
  83. package/dist/index29.js +92 -20
  84. package/dist/index29.js.map +1 -1
  85. package/dist/index3.js +18 -0
  86. package/dist/index3.js.map +1 -0
  87. package/dist/index30.cjs +1 -1
  88. package/dist/index30.cjs.map +1 -1
  89. package/dist/index30.js +13 -64
  90. package/dist/index30.js.map +1 -1
  91. package/dist/index31.cjs +1 -1
  92. package/dist/index31.cjs.map +1 -1
  93. package/dist/index31.js +77 -16
  94. package/dist/index31.js.map +1 -1
  95. package/dist/index32.cjs +1 -1
  96. package/dist/index32.cjs.map +1 -1
  97. package/dist/index32.js +8 -26
  98. package/dist/index32.js.map +1 -1
  99. package/dist/index33.cjs +1 -1
  100. package/dist/index33.cjs.map +1 -1
  101. package/dist/index33.js +40 -94
  102. package/dist/index33.js.map +1 -1
  103. package/dist/index34.cjs +1 -1
  104. package/dist/index34.cjs.map +1 -1
  105. package/dist/index34.js +14 -13
  106. package/dist/index34.js.map +1 -1
  107. package/dist/index35.cjs +1 -1
  108. package/dist/index35.cjs.map +1 -1
  109. package/dist/index35.js +44 -59
  110. package/dist/index35.js.map +1 -1
  111. package/dist/index36.cjs +1 -1
  112. package/dist/index36.cjs.map +1 -1
  113. package/dist/index36.js +54 -9
  114. package/dist/index36.js.map +1 -1
  115. package/dist/index37.cjs +1 -1
  116. package/dist/index37.cjs.map +1 -1
  117. package/dist/index37.js +69 -40
  118. package/dist/index37.js.map +1 -1
  119. package/dist/index38.cjs +1 -1
  120. package/dist/index38.cjs.map +1 -1
  121. package/dist/index38.js +9 -16
  122. package/dist/index38.js.map +1 -1
  123. package/dist/index39.cjs +1 -1
  124. package/dist/index39.cjs.map +1 -1
  125. package/dist/index39.js +81 -65
  126. package/dist/index39.js.map +1 -1
  127. package/dist/index4.js +32 -15
  128. package/dist/index4.js.map +1 -1
  129. package/dist/index40.cjs +1 -1
  130. package/dist/index40.cjs.map +1 -1
  131. package/dist/index40.js +44 -50
  132. package/dist/index40.js.map +1 -1
  133. package/dist/index41.cjs +1 -1
  134. package/dist/index41.cjs.map +1 -1
  135. package/dist/index41.js +43 -68
  136. package/dist/index41.js.map +1 -1
  137. package/dist/index42.cjs +1 -1
  138. package/dist/index42.cjs.map +1 -1
  139. package/dist/index42.js +78 -10
  140. package/dist/index42.js.map +1 -1
  141. package/dist/index43.cjs +1 -1
  142. package/dist/index43.cjs.map +1 -1
  143. package/dist/index5.js +1584 -31
  144. package/dist/index5.js.map +1 -1
  145. package/dist/index6.js +10 -1582
  146. package/dist/index6.js.map +1 -1
  147. package/dist/index7.js +57 -11
  148. package/dist/index7.js.map +1 -1
  149. package/dist/index8.cjs +1 -1
  150. package/dist/index8.cjs.map +1 -1
  151. package/dist/index8.js +153 -19
  152. package/dist/index8.js.map +1 -1
  153. package/dist/index9.cjs +1 -6
  154. package/dist/index9.cjs.map +1 -1
  155. package/dist/index9.js +89 -159
  156. package/dist/index9.js.map +1 -1
  157. package/package.json +2 -3
  158. package/dist/index2.js +0 -7
  159. package/dist/index43.js +0 -87
  160. package/dist/index43.js.map +0 -1
  161. package/dist/index44.cjs +0 -2
  162. package/dist/index44.cjs.map +0 -1
  163. package/dist/index44.js +0 -53
  164. package/dist/index44.js.map +0 -1
  165. package/dist/index45.cjs +0 -2
  166. package/dist/index45.cjs.map +0 -1
  167. package/dist/index45.js +0 -49
  168. package/dist/index45.js.map +0 -1
  169. package/dist/index46.cjs +0 -2
  170. package/dist/index46.cjs.map +0 -1
  171. package/dist/index46.js +0 -85
  172. package/dist/index46.js.map +0 -1
  173. /package/dist/{src/cosmik-theme.css → cosmik-theme.css} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index18.js","names":[],"sources":["../src/Command/index.tsx"],"sourcesContent":["'use client'\n\nimport { Command as CommandPrimitive } from 'cmdk'\nimport { SearchIcon } from 'lucide-react'\nimport * as React from 'react'\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle\n} from '../'\nimport { cn } from '../lib/utils'\n\nfunction Command({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive>) {\n return (\n <CommandPrimitive\n data-slot=\"command\"\n className={cn(\n 'bg-white text-gray-900 flex h-full w-full flex-col overflow-hidden rounded',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CommandDialog({\n title = 'Command Palette',\n description = 'Search for a command to run...',\n children,\n className,\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof Dialog> & {\n title?: string\n description?: string\n className?: string\n showCloseButton?: boolean\n}) {\n return (\n <Dialog {...props}>\n <DialogHeader className=\"sr-only\">\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n <DialogContent\n className={cn('overflow-hidden p-0', className)}\n showCloseButton={showCloseButton}\n >\n <Command className=\"[&_[cmdk-group-heading]]:text-gray-900 [&_[cmdk-group-heading]]:px-8 [&_[cmdk-group-heading]]:font-semibold [&_[cmdk-group]]:px-8 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-16 [&_[cmdk-input-wrapper]_svg]:w-16 [&_[cmdk-input]]:h-48 [&_[cmdk-item]]:px-8 [&_[cmdk-item]]:py-8 [&_[cmdk-item]_svg]:h-16 [&_[cmdk-item]_svg]:w-16\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n )\n}\n\nfunction CommandInput({\n className,\n inputWrapperClassName,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Input> & {\n inputWrapperClassName?: string\n}) {\n return (\n <div\n data-slot=\"command-input-wrapper\"\n className={cn(\n 'flex items-center gap-8 border-b px-12',\n inputWrapperClassName\n )}\n >\n <SearchIcon className=\"size-16 shrink-0\" />\n <CommandPrimitive.Input\n data-slot=\"command-input\"\n className={cn(\n 'flex h-[44px] w-full rounded bg-white py-12 text-sm outline-none disabled:cursor-not-allowed disabled:opacity-64',\n className\n )}\n {...props}\n />\n </div>\n )\n}\n\nfunction CommandList({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.List>) {\n return (\n <CommandPrimitive.List\n data-slot=\"command-list\"\n className={cn(\n 'max-h-[300px] scroll-py-4 overflow-x-hidden overflow-y-auto',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CommandEmpty({\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Empty>) {\n return (\n <CommandPrimitive.Empty\n data-slot=\"command-empty\"\n className=\"py-[10px] text-center text-sm\"\n {...props}\n />\n )\n}\n\nfunction CommandGroup({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Group>) {\n return (\n <CommandPrimitive.Group\n data-slot=\"command-group\"\n className={cn(\n 'text-gray-900 [&_[cmdk-group-heading]]:text-gray-900 overflow-hidden [&_[cmdk-group-heading]]:px-16 [&_[cmdk-group-heading]]:py-8 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-semibold',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CommandSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Separator>) {\n return (\n <CommandPrimitive.Separator\n data-slot=\"command-separator\"\n className={cn('bg-gray-900/8 -mx-4 h-px', className)}\n {...props}\n />\n )\n}\n\nfunction CommandItem({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Item>) {\n return (\n <CommandPrimitive.Item\n data-slot=\"command-item\"\n className={cn(\n \"data-[selected=true]:bg-gray-200 data-[selected=true]:text-gray-900 [&_svg:not([class*='text-'])]:text-gray-900 relative flex cursor-default items-center rounded px-16 py-8 outline-none select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-64 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-16\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CommandShortcut({\n className,\n ...props\n}: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"command-shortcut\"\n className={cn('text-gray-700 ml-auto text-xs tracking-widest', className)}\n {...props}\n />\n )\n}\n\nexport {\n Command,\n CommandDialog,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n CommandShortcut\n}\n"],"mappings":";;;;;;;;;;AAcA,SAAS,EAAQ,EACf,cACA,GAAG,KAC6C;CAChD,OACE,iBAAA,GAAA,EAAA,KAAC,GAAD;EACE,aAAU;EACV,WAAW,EACT,8EACA,CACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,EAAc,EACrB,WAAQ,mBACR,iBAAc,kCACd,aACA,cACA,qBAAkB,IAClB,GAAG,KAMF;CACD,OACE,iBAAA,GAAA,EAAA,MAAC,GAAD;EAAQ,GAAI;YAAZ,CACE,iBAAA,GAAA,EAAA,MAAC,GAAD;GAAc,WAAU;aAAxB,CACE,iBAAA,GAAA,EAAA,KAAC,GAAD,EAAA,UAAc,EAAmB,CAAA,GACjC,iBAAA,GAAA,EAAA,KAAC,GAAD,EAAA,UAAoB,EAA+B,CAAA,CACvC;MACd,iBAAA,GAAA,EAAA,KAAC,GAAD;GACE,WAAW,EAAG,uBAAuB,CAAS;GAC7B;aAEjB,iBAAA,GAAA,EAAA,KAAC,GAAD;IAAS,WAAU;IAChB;GACM,CAAA;EACI,CAAA,CACT;;AAEZ;AAEA,SAAS,EAAa,EACpB,cACA,0BACA,GAAG,KAGF;CACD,OACE,iBAAA,GAAA,EAAA,MAAC,OAAD;EACE,aAAU;EACV,WAAW,EACT,0CACA,CACF;YALF,CAOE,iBAAA,GAAA,EAAA,KAAC,GAAD,EAAY,WAAU,mBAAoB,CAAA,GAC1C,iBAAA,GAAA,EAAA,KAAC,EAAiB,OAAlB;GACE,aAAU;GACV,WAAW,EACT,oHACA,CACF;GACA,GAAI;EACL,CAAA,CACE;;AAET;AAEA,SAAS,EAAY,EACnB,cACA,GAAG,KACkD;CACrD,OACE,iBAAA,GAAA,EAAA,KAAC,EAAiB,MAAlB;EACE,aAAU;EACV,WAAW,EACT,+DACA,CACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,EAAa,EACpB,GAAG,KACmD;CACtD,OACE,iBAAA,GAAA,EAAA,KAAC,EAAiB,OAAlB;EACE,aAAU;EACV,WAAU;EACV,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,EAAa,EACpB,cACA,GAAG,KACmD;CACtD,OACE,iBAAA,GAAA,EAAA,KAAC,EAAiB,OAAlB;EACE,aAAU;EACV,WAAW,EACT,6MACA,CACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,EAAiB,EACxB,cACA,GAAG,KACuD;CAC1D,OACE,iBAAA,GAAA,EAAA,KAAC,EAAiB,WAAlB;EACE,aAAU;EACV,WAAW,EAAG,4BAA4B,CAAS;EACnD,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,EAAY,EACnB,cACA,GAAG,KACkD;CACrD,OACE,iBAAA,GAAA,EAAA,KAAC,EAAiB,MAAlB;EACE,aAAU;EACV,WAAW,EACT,qWACA,CACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,EAAgB,EACvB,cACA,GAAG,KAC4B;CAC/B,OACE,iBAAA,GAAA,EAAA,KAAC,QAAD;EACE,aAAU;EACV,WAAW,EAAG,iDAAiD,CAAS;EACxE,GAAI;CACL,CAAA;AAEL"}
1
+ {"version":3,"file":"index18.js","names":[],"sources":["../src/Filter/index.tsx"],"sourcesContent":["import { LucideX } from 'lucide-react'\nimport React from 'react'\nimport { Button, ButtonProps } from '../Button'\nimport {\n Popover,\n PopoverContent,\n PopoverContentProps,\n PopoverTrigger\n} from '../Popover'\nimport { cn } from '../lib/utils'\n\ntype FilterPropsBase<T> = {\n i18n: {\n apply?: string\n clear?: string\n }\n value?: T\n onOpenChange?: (open: boolean) => void\n onApply: (value?: T) => void\n children: (props: {\n onFilterChange: (value: T | null) => void\n filterValue: T | null\n }) => React.ReactNode\n contentProps?: PopoverContentProps\n buttonProps?: ButtonProps\n clearable?: boolean\n}\n\ntype FilterPropsWithLabel<T> = FilterPropsBase<T> & {\n label: string\n selectedLabel?: (value: T) => React.ReactNode\n trigger?: never\n}\n\ntype FilterPropsWithTrigger<T> = FilterPropsBase<T> & {\n trigger: React.ReactNode\n label?: never\n selectedLabel?: never\n}\n\ntype FilterProps<T> = FilterPropsWithLabel<T> | FilterPropsWithTrigger<T>\n\nfunction Filter<T>({\n children,\n label,\n selectedLabel,\n trigger,\n i18n,\n value,\n onOpenChange,\n onApply,\n contentProps = {},\n buttonProps = {},\n clearable = true,\n ...props\n}: FilterProps<T>) {\n const [isOpen, setIsOpen] = React.useState(false)\n const [localValue, setLocalValue] = React.useState<T | null>(value || null)\n\n const filterLabel = value\n ? selectedLabel\n ? selectedLabel(value)\n : value.toString()\n : label\n\n const defaultTrigger = (\n <Button\n variant={value ? 'filled' : 'outline'}\n intent={value ? 'filter' : 'secondary'}\n size=\"sm\"\n className={cn(\n 'font-normal flex items-center whitespace-nowrap gap-x-4 rounded-[12px]',\n {\n 'pr-12': !!value\n }\n )}\n {...buttonProps}\n >\n {filterLabel}\n {clearable && value && (\n <LucideX\n className=\"w-16 h-16 rounded hover:bg-purple-100 shrink-0\"\n onClick={e => {\n e.preventDefault()\n setLocalValue(null)\n onApply?.(undefined)\n }}\n />\n )}\n </Button>\n )\n\n function handleApply() {\n onApply?.(localValue ?? undefined)\n setIsOpen(false)\n }\n\n return (\n <Popover\n open={isOpen}\n onOpenChange={open => {\n onOpenChange?.(open)\n if (!open) onApply?.(localValue ?? undefined)\n if (open) setLocalValue(value ?? null)\n setIsOpen(open)\n }}\n {...props}\n >\n <PopoverTrigger asChild>{trigger || defaultTrigger}</PopoverTrigger>\n <PopoverContent\n className=\"w-full min-w-[200px]\"\n align=\"start\"\n {...contentProps}\n >\n <div>\n <div\n onKeyDown={e => {\n if (e.defaultPrevented) return\n if (e.key !== 'Enter') return\n const target = e.target as HTMLElement | null\n if (!target) return\n const tagName = target.tagName\n const isInput = tagName === 'INPUT'\n const isTextarea = tagName === 'TEXTAREA'\n const isButton = tagName === 'BUTTON'\n const isContentEditable = target.isContentEditable\n // Only apply on Enter from filter input fields, not from buttons,\n // textareas, or other interactive/contenteditable elements.\n if (!isInput || isTextarea || isButton || isContentEditable) {\n return\n }\n e.preventDefault()\n e.stopPropagation()\n handleApply()\n }}\n >\n {children({\n onFilterChange: setLocalValue,\n filterValue: localValue\n })}\n </div>\n <div className=\"w-full flex justify-between mt-16\">\n {clearable && localValue && i18n.clear && (\n <Button\n variant=\"link\"\n intent=\"secondary\"\n size=\"fit-content\"\n type=\"button\"\n onClick={() => setLocalValue(null)}\n >\n {i18n.clear}\n </Button>\n )}\n {i18n.apply && (\n <Button\n className=\"ml-auto\"\n variant=\"link\"\n size=\"fit-content\"\n type=\"button\"\n onClick={e => {\n e.preventDefault()\n handleApply()\n }}\n >\n {i18n.apply}\n </Button>\n )}\n </div>\n </div>\n </PopoverContent>\n </Popover>\n )\n}\n\nexport { Filter }\nexport type { FilterProps }\n"],"mappings":";;;;;;;AA0CA,SAAS,EAAU,EACjB,aACA,UACA,kBACA,YACA,SACA,UACA,iBACA,YACA,kBAAe,CAAC,GAChB,iBAAc,CAAC,GACf,eAAY,IACZ,GAAG,KACc;CACjB,IAAM,CAAC,GAAQ,KAAa,EAAM,SAAS,EAAK,GAC1C,CAAC,GAAY,KAAiB,EAAM,SAAmB,KAAS,IAAI,GAEpE,IAAc,IAChB,IACE,EAAc,CAAK,IACnB,EAAM,SAAS,IACjB,GAEE,IACJ,kBAAC,GAAD;EACE,SAAS,IAAQ,WAAW;EAC5B,QAAQ,IAAQ,WAAW;EAC3B,MAAK;EACL,WAAW,EACT,0EACA,EACE,SAAS,CAAC,CAAC,EACb,CACF;EACA,GAAI;YAVN,CAYG,GACA,KAAa,KACZ,kBAAC,GAAD;GACE,WAAU;GACV,UAAS,MAAK;IAGZ,AAFA,EAAE,eAAe,GACjB,EAAc,IAAI,GAClB,IAAU,KAAA,CAAS;GACrB;EACD,CAAA,CAEG;;CAGV,SAAS,IAAc;EAErB,AADA,IAAU,KAAc,KAAA,CAAS,GACjC,EAAU,EAAK;CACjB;CAEA,OACE,kBAAC,GAAD;EACE,MAAM;EACN,eAAc,MAAQ;GAIpB,AAHA,IAAe,CAAI,GACd,KAAM,IAAU,KAAc,KAAA,CAAS,GACxC,KAAM,EAAc,KAAS,IAAI,GACrC,EAAU,CAAI;EAChB;EACA,GAAI;YARN,CAUE,kBAAC,GAAD;GAAgB,SAAA;aAAS,KAAW;EAA+B,CAAA,GACnE,kBAAC,GAAD;GACE,WAAU;GACV,OAAM;GACN,GAAI;aAEJ,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,OAAD;IACE,YAAW,MAAK;KAEd,IADI,EAAE,oBACF,EAAE,QAAQ,SAAS;KACvB,IAAM,IAAS,EAAE;KACjB,IAAI,CAAC,GAAQ;KACb,IAAM,IAAU,EAAO,SACjB,IAAU,MAAY,SACtB,IAAa,MAAY,YACzB,IAAW,MAAY,UACvB,IAAoB,EAAO;KAG7B,CAAC,KAAW,KAAc,KAAY,MAG1C,EAAE,eAAe,GACjB,EAAE,gBAAgB,GAClB,EAAY;IACd;cAEC,EAAS;KACR,gBAAgB;KAChB,aAAa;IACf,CAAC;GACE,CAAA,GACL,kBAAC,OAAD;IAAK,WAAU;cAAf,CACG,KAAa,KAAc,EAAK,SAC/B,kBAAC,GAAD;KACE,SAAQ;KACR,QAAO;KACP,MAAK;KACL,MAAK;KACL,eAAe,EAAc,IAAI;eAEhC,EAAK;IACA,CAAA,GAET,EAAK,SACJ,kBAAC,GAAD;KACE,WAAU;KACV,SAAQ;KACR,MAAK;KACL,MAAK;KACL,UAAS,MAAK;MAEZ,AADA,EAAE,eAAe,GACjB,EAAY;KACd;eAEC,EAAK;IACA,CAAA,CAEP;KACF,EAAA,CAAA;EACS,CAAA,CACT;;AAEb"}
package/dist/index19.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use client";const e=require("./index2.cjs"),t=require("./index7.cjs"),n=require("./index10.cjs");let r=require("lucide-react"),i=require("react");i=e.__toESM(i,1);let a=require("@radix-ui/react-dialog");a=e.__toESM(a,1);var o=n.default;function s({...e}){return(0,o.jsx)(a.Root,{"data-slot":`dialog`,...e})}function c({...e}){return(0,o.jsx)(a.Trigger,{"data-slot":`dialog-trigger`,...e})}function l({...e}){return(0,o.jsx)(a.Portal,{"data-slot":`dialog-portal`,...e})}function u({className:e,...n}){return(0,o.jsx)(a.Overlay,{"data-slot":`dialog-overlay`,className:t.cn(`data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-gray-900/48 backdrop-blur-sm overflow-y-auto max-h-screen`,e),...n})}function d({className:e,children:n,showCloseButton:i=!0,fullscreen:s=!1,onInteractOutside:c,...d}){return(0,o.jsx)(l,{"data-slot":`dialog-portal`,children:(0,o.jsx)(u,{children:(0,o.jsxs)(a.Content,{"data-slot":`dialog-content`,className:t.cn(`bg-white data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed left-[50%] z-50 w-full translate-x-[-50%] gap-16 rounded border p-24 shadow-200 duration-200`,{"grid top-24 rounded max-w-[calc(100%-2rem)] sm:max-w-lg":!s,"flex flex-col top-0 left-0 right-0 w-full min-h-full max-w-full translate-x-0":s},e),onInteractOutside:e=>{let{originalEvent:t}=e.detail;t.target instanceof Element&&t.target.closest(`.group.toast`)&&e.preventDefault(),c?.(e)},...d,children:[n,i&&(0,o.jsxs)(a.Close,{"data-slot":`dialog-close`,className:`ring-offset-background focus:ring-ring absolute top-8 right-8 rounded opacity-48 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-24`,children:[(0,o.jsx)(r.XIcon,{}),(0,o.jsx)(`span`,{className:`sr-only`,children:`Close`})]})]})})})}function f({className:e,...n}){return(0,o.jsx)(`div`,{"data-slot":`dialog-header`,className:t.cn(`flex flex-col gap-8`,e),...n})}function p({className:e,...n}){return(0,o.jsx)(`div`,{"data-slot":`dialog-footer`,className:t.cn(`flex flex-col-reverse gap-8 -mx-8 -mb-8 mt-8 sm:flex-row sm:justify-end`,e),...n})}function m({className:e,...n}){return(0,o.jsx)(a.Title,{"data-slot":`dialog-title`,className:t.cn(`text-lg leading-none font-semibold text-gray-800`,e),...n})}function h({className:e,...n}){return(0,o.jsx)(a.Description,{"data-slot":`dialog-description`,className:t.cn(`text-gray-900 text-base`,e),...n})}exports.Dialog=s,exports.DialogContent=d,exports.DialogDescription=h,exports.DialogFooter=p,exports.DialogHeader=f,exports.DialogOverlay=u,exports.DialogPortal=l,exports.DialogTitle=m,exports.DialogTrigger=c;
1
+ const e=require("./index2.cjs"),t=require("./index7.cjs"),n=require("./index9.cjs"),r=require("./index18.cjs");let i=require("lucide-react"),a=require("react");a=e.__toESM(a,1);let o=require("react/jsx-runtime");function s({children:e,label:s,selectedLabel:c,trigger:l,i18n:u,value:d,onOpenChange:f,onApply:p,contentProps:m={},buttonProps:h={},clearable:g=!0,..._}){let[v,y]=a.default.useState(!1),[b,x]=a.default.useState(d||null),S=d?c?c(d):d.toString():s,C=(0,o.jsxs)(n.Button,{variant:d?`filled`:`outline`,intent:d?`filter`:`secondary`,size:`sm`,className:t.cn(`font-normal flex items-center whitespace-nowrap gap-x-4 rounded-[12px]`,{"pr-12":!!d}),...h,children:[S,g&&d&&(0,o.jsx)(i.LucideX,{className:`w-16 h-16 rounded hover:bg-purple-100 shrink-0`,onClick:e=>{e.preventDefault(),x(null),p?.(void 0)}})]});function w(){p?.(b??void 0),y(!1)}return(0,o.jsxs)(r.Popover,{open:v,onOpenChange:e=>{f?.(e),e||p?.(b??void 0),e&&x(d??null),y(e)},..._,children:[(0,o.jsx)(r.PopoverTrigger,{asChild:!0,children:l||C}),(0,o.jsx)(r.PopoverContent,{className:`w-full min-w-[200px]`,align:`start`,...m,children:(0,o.jsxs)(`div`,{children:[(0,o.jsx)(`div`,{onKeyDown:e=>{if(e.defaultPrevented||e.key!==`Enter`)return;let t=e.target;if(!t)return;let n=t.tagName,r=n===`INPUT`,i=n===`TEXTAREA`,a=n===`BUTTON`,o=t.isContentEditable;!r||i||a||o||(e.preventDefault(),e.stopPropagation(),w())},children:e({onFilterChange:x,filterValue:b})}),(0,o.jsxs)(`div`,{className:`w-full flex justify-between mt-16`,children:[g&&b&&u.clear&&(0,o.jsx)(n.Button,{variant:`link`,intent:`secondary`,size:`fit-content`,type:`button`,onClick:()=>x(null),children:u.clear}),u.apply&&(0,o.jsx)(n.Button,{className:`ml-auto`,variant:`link`,size:`fit-content`,type:`button`,onClick:e=>{e.preventDefault(),w()},children:u.apply})]})]})})]})}exports.Filter=s;
2
2
  //# sourceMappingURL=index19.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index19.cjs","names":[],"sources":["../src/Dialog/index.tsx"],"sourcesContent":["'use client'\n\nimport * as DialogPrimitive from '@radix-ui/react-dialog'\nimport { XIcon } from 'lucide-react'\nimport * as React from 'react'\nimport { cn } from '../lib/utils'\n\nfunction Dialog({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />\n}\n\nfunction DialogTrigger({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />\n}\n\nfunction DialogPortal({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />\n}\n\nfunction DialogClose({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-gray-900/48 backdrop-blur-sm overflow-y-auto max-h-screen',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n fullscreen = false,\n onInteractOutside,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n showCloseButton?: boolean\n fullscreen?: boolean\n}) {\n return (\n <DialogPortal data-slot=\"dialog-portal\">\n <DialogOverlay>\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n 'bg-white data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed left-[50%] z-50 w-full translate-x-[-50%] gap-16 rounded border p-24 shadow-200 duration-200',\n {\n 'grid top-24 rounded max-w-[calc(100%-2rem)] sm:max-w-lg':\n !fullscreen,\n 'flex flex-col top-0 left-0 right-0 w-full min-h-full max-w-full translate-x-0':\n fullscreen\n },\n className\n )}\n onInteractOutside={e => {\n const { originalEvent } = e.detail\n // Prevent closing the dialog when clicking on a sonner toast\n if (\n originalEvent.target instanceof Element &&\n originalEvent.target.closest('.group.toast')\n ) {\n e.preventDefault()\n }\n onInteractOutside?.(e)\n }}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n className=\"ring-offset-background focus:ring-ring absolute top-8 right-8 rounded opacity-48 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-24\"\n >\n <XIcon />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogOverlay>\n </DialogPortal>\n )\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn('flex flex-col gap-8', className)}\n {...props}\n />\n )\n}\n\nfunction DialogFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn(\n 'flex flex-col-reverse gap-8 -mx-8 -mb-8 mt-8 sm:flex-row sm:justify-end',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction DialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn(\n 'text-lg leading-none font-semibold text-gray-800',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn('text-gray-900 text-base', className)}\n {...props}\n />\n )\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger\n}\n"],"mappings":"6OAOA,SAAS,EAAO,CACd,GAAG,GACiD,CACpD,OAAO,EAAA,EAAA,KAAC,EAAgB,KAAjB,CAAsB,YAAU,SAAS,GAAI,CAAQ,CAAA,CAC9D,CAEA,SAAS,EAAc,CACrB,GAAG,GACoD,CACvD,OAAO,EAAA,EAAA,KAAC,EAAgB,QAAjB,CAAyB,YAAU,iBAAiB,GAAI,CAAQ,CAAA,CACzE,CAEA,SAAS,EAAa,CACpB,GAAG,GACmD,CACtD,OAAO,EAAA,EAAA,KAAC,EAAgB,OAAjB,CAAwB,YAAU,gBAAgB,GAAI,CAAQ,CAAA,CACvE,CAQA,SAAS,EAAc,CACrB,YACA,GAAG,GACoD,CACvD,OACE,EAAA,EAAA,KAAC,EAAgB,QAAjB,CACE,YAAU,iBACV,UAAW,EAAA,GACT,0MACA,CACF,EACA,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,EAAc,CACrB,YACA,WACA,kBAAkB,GAClB,aAAa,GACb,oBACA,GAAG,GAIF,CACD,OACE,EAAA,EAAA,KAAC,EAAD,CAAc,YAAU,0BACtB,EAAA,EAAA,KAAC,EAAD,CAAA,UACE,EAAA,EAAA,MAAC,EAAgB,QAAjB,CACE,YAAU,iBACV,UAAW,EAAA,GACT,mSACA,CACE,0DACE,CAAC,EACH,gFACE,CACJ,EACA,CACF,EACA,kBAAmB,GAAK,CACtB,GAAM,CAAE,iBAAkB,EAAE,OAG1B,EAAc,kBAAkB,SAChC,EAAc,OAAO,QAAQ,cAAc,GAE3C,EAAE,eAAe,EAEnB,IAAoB,CAAC,CACvB,EACA,GAAI,WAvBN,CAyBG,EACA,IACC,EAAA,EAAA,MAAC,EAAgB,MAAjB,CACE,YAAU,eACV,UAAU,uSAFZ,EAIE,EAAA,EAAA,KAAC,EAAA,MAAD,CAAQ,CAAA,GACR,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,mBAAU,OAAW,CAAA,CAChB,GAEF,GACZ,CAAA,CACH,CAAA,CAElB,CAEA,SAAS,EAAa,CAAE,YAAW,GAAG,GAAsC,CAC1E,OACE,EAAA,EAAA,KAAC,MAAD,CACE,YAAU,gBACV,UAAW,EAAA,GAAG,sBAAuB,CAAS,EAC9C,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,EAAa,CAAE,YAAW,GAAG,GAAsC,CAC1E,OACE,EAAA,EAAA,KAAC,MAAD,CACE,YAAU,gBACV,UAAW,EAAA,GACT,0EACA,CACF,EACA,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,EAAY,CACnB,YACA,GAAG,GACkD,CACrD,OACE,EAAA,EAAA,KAAC,EAAgB,MAAjB,CACE,YAAU,eACV,UAAW,EAAA,GACT,mDACA,CACF,EACA,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,EAAkB,CACzB,YACA,GAAG,GACwD,CAC3D,OACE,EAAA,EAAA,KAAC,EAAgB,YAAjB,CACE,YAAU,qBACV,UAAW,EAAA,GAAG,0BAA2B,CAAS,EAClD,GAAI,CACL,CAAA,CAEL"}
1
+ {"version":3,"file":"index19.cjs","names":[],"sources":["../src/Filter/index.tsx"],"sourcesContent":["import { LucideX } from 'lucide-react'\nimport React from 'react'\nimport { Button, ButtonProps } from '../Button'\nimport {\n Popover,\n PopoverContent,\n PopoverContentProps,\n PopoverTrigger\n} from '../Popover'\nimport { cn } from '../lib/utils'\n\ntype FilterPropsBase<T> = {\n i18n: {\n apply?: string\n clear?: string\n }\n value?: T\n onOpenChange?: (open: boolean) => void\n onApply: (value?: T) => void\n children: (props: {\n onFilterChange: (value: T | null) => void\n filterValue: T | null\n }) => React.ReactNode\n contentProps?: PopoverContentProps\n buttonProps?: ButtonProps\n clearable?: boolean\n}\n\ntype FilterPropsWithLabel<T> = FilterPropsBase<T> & {\n label: string\n selectedLabel?: (value: T) => React.ReactNode\n trigger?: never\n}\n\ntype FilterPropsWithTrigger<T> = FilterPropsBase<T> & {\n trigger: React.ReactNode\n label?: never\n selectedLabel?: never\n}\n\ntype FilterProps<T> = FilterPropsWithLabel<T> | FilterPropsWithTrigger<T>\n\nfunction Filter<T>({\n children,\n label,\n selectedLabel,\n trigger,\n i18n,\n value,\n onOpenChange,\n onApply,\n contentProps = {},\n buttonProps = {},\n clearable = true,\n ...props\n}: FilterProps<T>) {\n const [isOpen, setIsOpen] = React.useState(false)\n const [localValue, setLocalValue] = React.useState<T | null>(value || null)\n\n const filterLabel = value\n ? selectedLabel\n ? selectedLabel(value)\n : value.toString()\n : label\n\n const defaultTrigger = (\n <Button\n variant={value ? 'filled' : 'outline'}\n intent={value ? 'filter' : 'secondary'}\n size=\"sm\"\n className={cn(\n 'font-normal flex items-center whitespace-nowrap gap-x-4 rounded-[12px]',\n {\n 'pr-12': !!value\n }\n )}\n {...buttonProps}\n >\n {filterLabel}\n {clearable && value && (\n <LucideX\n className=\"w-16 h-16 rounded hover:bg-purple-100 shrink-0\"\n onClick={e => {\n e.preventDefault()\n setLocalValue(null)\n onApply?.(undefined)\n }}\n />\n )}\n </Button>\n )\n\n function handleApply() {\n onApply?.(localValue ?? undefined)\n setIsOpen(false)\n }\n\n return (\n <Popover\n open={isOpen}\n onOpenChange={open => {\n onOpenChange?.(open)\n if (!open) onApply?.(localValue ?? undefined)\n if (open) setLocalValue(value ?? null)\n setIsOpen(open)\n }}\n {...props}\n >\n <PopoverTrigger asChild>{trigger || defaultTrigger}</PopoverTrigger>\n <PopoverContent\n className=\"w-full min-w-[200px]\"\n align=\"start\"\n {...contentProps}\n >\n <div>\n <div\n onKeyDown={e => {\n if (e.defaultPrevented) return\n if (e.key !== 'Enter') return\n const target = e.target as HTMLElement | null\n if (!target) return\n const tagName = target.tagName\n const isInput = tagName === 'INPUT'\n const isTextarea = tagName === 'TEXTAREA'\n const isButton = tagName === 'BUTTON'\n const isContentEditable = target.isContentEditable\n // Only apply on Enter from filter input fields, not from buttons,\n // textareas, or other interactive/contenteditable elements.\n if (!isInput || isTextarea || isButton || isContentEditable) {\n return\n }\n e.preventDefault()\n e.stopPropagation()\n handleApply()\n }}\n >\n {children({\n onFilterChange: setLocalValue,\n filterValue: localValue\n })}\n </div>\n <div className=\"w-full flex justify-between mt-16\">\n {clearable && localValue && i18n.clear && (\n <Button\n variant=\"link\"\n intent=\"secondary\"\n size=\"fit-content\"\n type=\"button\"\n onClick={() => setLocalValue(null)}\n >\n {i18n.clear}\n </Button>\n )}\n {i18n.apply && (\n <Button\n className=\"ml-auto\"\n variant=\"link\"\n size=\"fit-content\"\n type=\"button\"\n onClick={e => {\n e.preventDefault()\n handleApply()\n }}\n >\n {i18n.apply}\n </Button>\n )}\n </div>\n </div>\n </PopoverContent>\n </Popover>\n )\n}\n\nexport { Filter }\nexport type { FilterProps }\n"],"mappings":"oNA0CA,SAAS,EAAU,CACjB,WACA,QACA,gBACA,UACA,OACA,QACA,eACA,UACA,eAAe,CAAC,EAChB,cAAc,CAAC,EACf,YAAY,GACZ,GAAG,GACc,CACjB,GAAM,CAAC,EAAQ,GAAa,EAAA,QAAM,SAAS,EAAK,EAC1C,CAAC,EAAY,GAAiB,EAAA,QAAM,SAAmB,GAAS,IAAI,EAEpE,EAAc,EAChB,EACE,EAAc,CAAK,EACnB,EAAM,SAAS,EACjB,EAEE,GACJ,EAAA,EAAA,MAAC,EAAA,OAAD,CACE,QAAS,EAAQ,SAAW,UAC5B,OAAQ,EAAQ,SAAW,YAC3B,KAAK,KACL,UAAW,EAAA,GACT,yEACA,CACE,QAAS,CAAC,CAAC,CACb,CACF,EACA,GAAI,WAVN,CAYG,EACA,GAAa,IACZ,EAAA,EAAA,KAAC,EAAA,QAAD,CACE,UAAU,iDACV,QAAS,GAAK,CACZ,EAAE,eAAe,EACjB,EAAc,IAAI,EAClB,IAAU,IAAA,EAAS,CACrB,CACD,CAAA,CAEG,IAGV,SAAS,GAAc,CACrB,IAAU,GAAc,IAAA,EAAS,EACjC,EAAU,EAAK,CACjB,CAEA,OACE,EAAA,EAAA,MAAC,EAAA,QAAD,CACE,KAAM,EACN,aAAc,GAAQ,CACpB,IAAe,CAAI,EACd,GAAM,IAAU,GAAc,IAAA,EAAS,EACxC,GAAM,EAAc,GAAS,IAAI,EACrC,EAAU,CAAI,CAChB,EACA,GAAI,WARN,EAUE,EAAA,EAAA,KAAC,EAAA,eAAD,CAAgB,QAAA,YAAS,GAAW,CAA+B,CAAA,GACnE,EAAA,EAAA,KAAC,EAAA,eAAD,CACE,UAAU,uBACV,MAAM,QACN,GAAI,YAEJ,EAAA,EAAA,MAAC,MAAD,CAAA,SAAA,EACE,EAAA,EAAA,KAAC,MAAD,CACE,UAAW,GAAK,CAEd,GADI,EAAE,kBACF,EAAE,MAAQ,QAAS,OACvB,IAAM,EAAS,EAAE,OACjB,GAAI,CAAC,EAAQ,OACb,IAAM,EAAU,EAAO,QACjB,EAAU,IAAY,QACtB,EAAa,IAAY,WACzB,EAAW,IAAY,SACvB,EAAoB,EAAO,kBAG7B,CAAC,GAAW,GAAc,GAAY,IAG1C,EAAE,eAAe,EACjB,EAAE,gBAAgB,EAClB,EAAY,EACd,WAEC,EAAS,CACR,eAAgB,EAChB,YAAa,CACf,CAAC,CACE,CAAA,GACL,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,6CAAf,CACG,GAAa,GAAc,EAAK,QAC/B,EAAA,EAAA,KAAC,EAAA,OAAD,CACE,QAAQ,OACR,OAAO,YACP,KAAK,cACL,KAAK,SACL,YAAe,EAAc,IAAI,WAEhC,EAAK,KACA,CAAA,EAET,EAAK,QACJ,EAAA,EAAA,KAAC,EAAA,OAAD,CACE,UAAU,UACV,QAAQ,OACR,KAAK,cACL,KAAK,SACL,QAAS,GAAK,CACZ,EAAE,eAAe,EACjB,EAAY,CACd,WAEC,EAAK,KACA,CAAA,CAEP,GACF,CAAA,CAAA,CACS,CAAA,CACT,GAEb"}
package/dist/index19.js CHANGED
@@ -1,90 +1,69 @@
1
- "use client";
2
- import { cn as e } from "./index7.js";
3
- import { require_jsx_runtime as t } from "./index10.js";
4
- import { XIcon as n } from "lucide-react";
5
- import "react";
6
- import * as r from "@radix-ui/react-dialog";
7
- //#region src/Dialog/index.tsx
8
- var i = t();
9
- function a({ ...e }) {
10
- return /* @__PURE__ */ (0, i.jsx)(r.Root, {
11
- "data-slot": "dialog",
12
- ...e
13
- });
14
- }
15
- function o({ ...e }) {
16
- return /* @__PURE__ */ (0, i.jsx)(r.Trigger, {
17
- "data-slot": "dialog-trigger",
18
- ...e
19
- });
20
- }
21
- function s({ ...e }) {
22
- return /* @__PURE__ */ (0, i.jsx)(r.Portal, {
23
- "data-slot": "dialog-portal",
24
- ...e
25
- });
26
- }
27
- function c({ className: t, ...n }) {
28
- return /* @__PURE__ */ (0, i.jsx)(r.Overlay, {
29
- "data-slot": "dialog-overlay",
30
- className: e("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-gray-900/48 backdrop-blur-sm overflow-y-auto max-h-screen", t),
31
- ...n
32
- });
33
- }
34
- function l({ className: t, children: a, showCloseButton: o = !0, fullscreen: l = !1, onInteractOutside: u, ...d }) {
35
- return /* @__PURE__ */ (0, i.jsx)(s, {
36
- "data-slot": "dialog-portal",
37
- children: /* @__PURE__ */ (0, i.jsx)(c, { children: /* @__PURE__ */ (0, i.jsxs)(r.Content, {
38
- "data-slot": "dialog-content",
39
- className: e("bg-white data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed left-[50%] z-50 w-full translate-x-[-50%] gap-16 rounded border p-24 shadow-200 duration-200", {
40
- "grid top-24 rounded max-w-[calc(100%-2rem)] sm:max-w-lg": !l,
41
- "flex flex-col top-0 left-0 right-0 w-full min-h-full max-w-full translate-x-0": l
42
- }, t),
43
- onInteractOutside: (e) => {
44
- let { originalEvent: t } = e.detail;
45
- t.target instanceof Element && t.target.closest(".group.toast") && e.preventDefault(), u?.(e);
46
- },
47
- ...d,
48
- children: [a, o && /* @__PURE__ */ (0, i.jsxs)(r.Close, {
49
- "data-slot": "dialog-close",
50
- className: "ring-offset-background focus:ring-ring absolute top-8 right-8 rounded opacity-48 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-24",
51
- children: [/* @__PURE__ */ (0, i.jsx)(n, {}), /* @__PURE__ */ (0, i.jsx)("span", {
52
- className: "sr-only",
53
- children: "Close"
1
+ import { cva as e } from "./index4.js";
2
+ import { cn as t, debounce as n } from "./index6.js";
3
+ import { ChevronLeft as r, ChevronRight as i } from "lucide-react";
4
+ import a from "react";
5
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
6
+ //#region src/FilterBar/GradientScroll.tsx
7
+ var c = e("", {
8
+ variants: { variant: {
9
+ white: "to-white",
10
+ gray: "to-gray-50"
11
+ } },
12
+ defaultVariants: { variant: "gray" }
13
+ }), l = e("", {
14
+ variants: { variant: {
15
+ white: "bg-white",
16
+ gray: "bg-gray-50"
17
+ } },
18
+ defaultVariants: { variant: "gray" }
19
+ });
20
+ function u({ children: e, className: u, variant: d }) {
21
+ let f = a.useRef(null), [p, m] = a.useState(!1), [h, g] = a.useState(!1), _ = a.useCallback(() => {
22
+ if (!f.current) return;
23
+ let { scrollLeft: e, scrollWidth: t, clientWidth: n } = f.current;
24
+ m(e > 0), g(e + n < t - 5);
25
+ }, [f]);
26
+ return a.useEffect(() => {
27
+ _();
28
+ let e = n(_, 100);
29
+ return window.addEventListener("resize", e), () => {
30
+ window.removeEventListener("resize", e);
31
+ };
32
+ }, [_]), /* @__PURE__ */ s("div", {
33
+ className: "relative flex overflow-hidden",
34
+ children: [
35
+ /* @__PURE__ */ s("div", {
36
+ className: t("absolute left-0 top-0 h-full flex items-center", { hidden: !p }),
37
+ children: [/* @__PURE__ */ o(r, {
38
+ size: 16,
39
+ className: t("text-gray-600 h-full cursor-pointer", l({ variant: d })),
40
+ onClick: () => f.current?.scrollBy({
41
+ left: -100,
42
+ behavior: "smooth"
43
+ })
44
+ }), /* @__PURE__ */ o("div", { className: t("w-[50px] h-full bg-linear-to-l from-transparent", c({ variant: d })) })]
45
+ }),
46
+ /* @__PURE__ */ o("div", {
47
+ ref: f,
48
+ onScroll: _,
49
+ className: t("overflow-scroll no-scrollbar", u),
50
+ children: e
51
+ }),
52
+ /* @__PURE__ */ s("div", {
53
+ className: t("absolute right-0 top-0 h-full w-fit flex items-center justify-end", { hidden: !h }),
54
+ children: [/* @__PURE__ */ o("div", { className: t("w-[50px] h-full bg-linear-to-r from-transparent", c({ variant: d })) }), /* @__PURE__ */ o(i, {
55
+ size: 16,
56
+ className: t("text-gray-600 h-full cursor-pointer", l({ variant: d })),
57
+ onClick: () => f.current?.scrollBy({
58
+ left: 100,
59
+ behavior: "smooth"
60
+ })
54
61
  })]
55
- })]
56
- }) })
57
- });
58
- }
59
- function u({ className: t, ...n }) {
60
- return /* @__PURE__ */ (0, i.jsx)("div", {
61
- "data-slot": "dialog-header",
62
- className: e("flex flex-col gap-8", t),
63
- ...n
64
- });
65
- }
66
- function d({ className: t, ...n }) {
67
- return /* @__PURE__ */ (0, i.jsx)("div", {
68
- "data-slot": "dialog-footer",
69
- className: e("flex flex-col-reverse gap-8 -mx-8 -mb-8 mt-8 sm:flex-row sm:justify-end", t),
70
- ...n
71
- });
72
- }
73
- function f({ className: t, ...n }) {
74
- return /* @__PURE__ */ (0, i.jsx)(r.Title, {
75
- "data-slot": "dialog-title",
76
- className: e("text-lg leading-none font-semibold text-gray-800", t),
77
- ...n
78
- });
79
- }
80
- function p({ className: t, ...n }) {
81
- return /* @__PURE__ */ (0, i.jsx)(r.Description, {
82
- "data-slot": "dialog-description",
83
- className: e("text-gray-900 text-base", t),
84
- ...n
62
+ })
63
+ ]
85
64
  });
86
65
  }
87
66
  //#endregion
88
- export { a as Dialog, l as DialogContent, p as DialogDescription, d as DialogFooter, u as DialogHeader, c as DialogOverlay, s as DialogPortal, f as DialogTitle, o as DialogTrigger };
67
+ export { u as GradientScroll };
89
68
 
90
69
  //# sourceMappingURL=index19.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index19.js","names":[],"sources":["../src/Dialog/index.tsx"],"sourcesContent":["'use client'\n\nimport * as DialogPrimitive from '@radix-ui/react-dialog'\nimport { XIcon } from 'lucide-react'\nimport * as React from 'react'\nimport { cn } from '../lib/utils'\n\nfunction Dialog({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />\n}\n\nfunction DialogTrigger({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />\n}\n\nfunction DialogPortal({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />\n}\n\nfunction DialogClose({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-gray-900/48 backdrop-blur-sm overflow-y-auto max-h-screen',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n fullscreen = false,\n onInteractOutside,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n showCloseButton?: boolean\n fullscreen?: boolean\n}) {\n return (\n <DialogPortal data-slot=\"dialog-portal\">\n <DialogOverlay>\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n 'bg-white data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed left-[50%] z-50 w-full translate-x-[-50%] gap-16 rounded border p-24 shadow-200 duration-200',\n {\n 'grid top-24 rounded max-w-[calc(100%-2rem)] sm:max-w-lg':\n !fullscreen,\n 'flex flex-col top-0 left-0 right-0 w-full min-h-full max-w-full translate-x-0':\n fullscreen\n },\n className\n )}\n onInteractOutside={e => {\n const { originalEvent } = e.detail\n // Prevent closing the dialog when clicking on a sonner toast\n if (\n originalEvent.target instanceof Element &&\n originalEvent.target.closest('.group.toast')\n ) {\n e.preventDefault()\n }\n onInteractOutside?.(e)\n }}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n className=\"ring-offset-background focus:ring-ring absolute top-8 right-8 rounded opacity-48 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-24\"\n >\n <XIcon />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogOverlay>\n </DialogPortal>\n )\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn('flex flex-col gap-8', className)}\n {...props}\n />\n )\n}\n\nfunction DialogFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn(\n 'flex flex-col-reverse gap-8 -mx-8 -mb-8 mt-8 sm:flex-row sm:justify-end',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction DialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn(\n 'text-lg leading-none font-semibold text-gray-800',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn('text-gray-900 text-base', className)}\n {...props}\n />\n )\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger\n}\n"],"mappings":";;;;;;;;AAOA,SAAS,EAAO,EACd,GAAG,KACiD;CACpD,OAAO,iBAAA,GAAA,EAAA,KAAC,EAAgB,MAAjB;EAAsB,aAAU;EAAS,GAAI;CAAQ,CAAA;AAC9D;AAEA,SAAS,EAAc,EACrB,GAAG,KACoD;CACvD,OAAO,iBAAA,GAAA,EAAA,KAAC,EAAgB,SAAjB;EAAyB,aAAU;EAAiB,GAAI;CAAQ,CAAA;AACzE;AAEA,SAAS,EAAa,EACpB,GAAG,KACmD;CACtD,OAAO,iBAAA,GAAA,EAAA,KAAC,EAAgB,QAAjB;EAAwB,aAAU;EAAgB,GAAI;CAAQ,CAAA;AACvE;AAQA,SAAS,EAAc,EACrB,cACA,GAAG,KACoD;CACvD,OACE,iBAAA,GAAA,EAAA,KAAC,EAAgB,SAAjB;EACE,aAAU;EACV,WAAW,EACT,2MACA,CACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,EAAc,EACrB,cACA,aACA,qBAAkB,IAClB,gBAAa,IACb,sBACA,GAAG,KAIF;CACD,OACE,iBAAA,GAAA,EAAA,KAAC,GAAD;EAAc,aAAU;YACtB,iBAAA,GAAA,EAAA,KAAC,GAAD,EAAA,UACE,iBAAA,GAAA,EAAA,MAAC,EAAgB,SAAjB;GACE,aAAU;GACV,WAAW,EACT,oSACA;IACE,2DACE,CAAC;IACH,iFACE;GACJ,GACA,CACF;GACA,oBAAmB,MAAK;IACtB,IAAM,EAAE,qBAAkB,EAAE;IAQ5B,AALE,EAAc,kBAAkB,WAChC,EAAc,OAAO,QAAQ,cAAc,KAE3C,EAAE,eAAe,GAEnB,IAAoB,CAAC;GACvB;GACA,GAAI;aAvBN,CAyBG,GACA,KACC,iBAAA,GAAA,EAAA,MAAC,EAAgB,OAAjB;IACE,aAAU;IACV,WAAU;cAFZ,CAIE,iBAAA,GAAA,EAAA,KAAC,GAAD,CAAQ,CAAA,GACR,iBAAA,GAAA,EAAA,KAAC,QAAD;KAAM,WAAU;eAAU;IAAW,CAAA,CAChB;KAEF;KACZ,CAAA;CACH,CAAA;AAElB;AAEA,SAAS,EAAa,EAAE,cAAW,GAAG,KAAsC;CAC1E,OACE,iBAAA,GAAA,EAAA,KAAC,OAAD;EACE,aAAU;EACV,WAAW,EAAG,uBAAuB,CAAS;EAC9C,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,EAAa,EAAE,cAAW,GAAG,KAAsC;CAC1E,OACE,iBAAA,GAAA,EAAA,KAAC,OAAD;EACE,aAAU;EACV,WAAW,EACT,2EACA,CACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,EAAY,EACnB,cACA,GAAG,KACkD;CACrD,OACE,iBAAA,GAAA,EAAA,KAAC,EAAgB,OAAjB;EACE,aAAU;EACV,WAAW,EACT,oDACA,CACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,EAAkB,EACzB,cACA,GAAG,KACwD;CAC3D,OACE,iBAAA,GAAA,EAAA,KAAC,EAAgB,aAAjB;EACE,aAAU;EACV,WAAW,EAAG,2BAA2B,CAAS;EAClD,GAAI;CACL,CAAA;AAEL"}
1
+ {"version":3,"file":"index19.js","names":[],"sources":["../src/FilterBar/GradientScroll.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority'\nimport { ChevronLeft, ChevronRight } from 'lucide-react'\nimport React from 'react'\nimport { cn, debounce } from '../lib/utils'\n\nexport const gradientVariants = cva('', {\n variants: {\n variant: {\n white: 'to-white',\n gray: 'to-gray-50'\n }\n },\n defaultVariants: {\n variant: 'gray'\n }\n})\n\nexport const backgroundVariants = cva('', {\n variants: {\n variant: {\n white: 'bg-white',\n gray: 'bg-gray-50'\n }\n },\n defaultVariants: {\n variant: 'gray'\n }\n})\n\ninterface GradientScrollProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof gradientVariants> {}\n\nexport function GradientScroll({\n children,\n className,\n variant\n}: GradientScrollProps) {\n const scrollableRef = React.useRef<HTMLDivElement>(null)\n const [leftArrowVisible, setLeftArrowVisible] = React.useState(false)\n const [rightArrowVisible, setRightArrowVisible] = React.useState(false)\n\n const handleScroll = React.useCallback(() => {\n if (!scrollableRef.current) return\n\n const { scrollLeft, scrollWidth, clientWidth } = scrollableRef.current\n setLeftArrowVisible(scrollLeft > 0)\n setRightArrowVisible(scrollLeft + clientWidth < scrollWidth - 5)\n }, [scrollableRef])\n\n React.useEffect(() => {\n handleScroll()\n\n const debouncedHandleScroll = debounce(handleScroll, 100)\n window.addEventListener('resize', debouncedHandleScroll)\n return () => {\n window.removeEventListener('resize', debouncedHandleScroll)\n }\n }, [handleScroll])\n\n return (\n <div className=\"relative flex overflow-hidden\">\n <div\n className={cn('absolute left-0 top-0 h-full flex items-center', {\n hidden: !leftArrowVisible\n })}\n >\n <ChevronLeft\n size={16}\n className={cn(\n 'text-gray-600 h-full cursor-pointer',\n backgroundVariants({ variant })\n )}\n onClick={() =>\n scrollableRef.current?.scrollBy({ left: -100, behavior: 'smooth' })\n }\n />\n <div\n className={cn(\n 'w-[50px] h-full bg-linear-to-l from-transparent',\n gradientVariants({ variant })\n )}\n />\n </div>\n <div\n ref={scrollableRef}\n onScroll={handleScroll}\n className={cn('overflow-scroll no-scrollbar', className)}\n >\n {children}\n </div>\n <div\n className={cn(\n 'absolute right-0 top-0 h-full w-fit flex items-center justify-end',\n { hidden: !rightArrowVisible }\n )}\n >\n <div\n className={cn(\n 'w-[50px] h-full bg-linear-to-r from-transparent',\n gradientVariants({ variant })\n )}\n />\n <ChevronRight\n size={16}\n className={cn(\n 'text-gray-600 h-full cursor-pointer',\n backgroundVariants({ variant })\n )}\n onClick={() =>\n scrollableRef.current?.scrollBy({ left: 100, behavior: 'smooth' })\n }\n />\n </div>\n </div>\n )\n}\n"],"mappings":";;;;;;AAKA,IAAa,IAAmB,EAAI,IAAI;CACtC,UAAU,EACR,SAAS;EACP,OAAO;EACP,MAAM;CACR,EACF;CACA,iBAAiB,EACf,SAAS,OACX;AACF,CAAC,GAEY,IAAqB,EAAI,IAAI;CACxC,UAAU,EACR,SAAS;EACP,OAAO;EACP,MAAM;CACR,EACF;CACA,iBAAiB,EACf,SAAS,OACX;AACF,CAAC;AAMD,SAAgB,EAAe,EAC7B,aACA,cACA,cACsB;CACtB,IAAM,IAAgB,EAAM,OAAuB,IAAI,GACjD,CAAC,GAAkB,KAAuB,EAAM,SAAS,EAAK,GAC9D,CAAC,GAAmB,KAAwB,EAAM,SAAS,EAAK,GAEhE,IAAe,EAAM,kBAAkB;EAC3C,IAAI,CAAC,EAAc,SAAS;EAE5B,IAAM,EAAE,eAAY,gBAAa,mBAAgB,EAAc;EAE/D,AADA,EAAoB,IAAa,CAAC,GAClC,EAAqB,IAAa,IAAc,IAAc,CAAC;CACjE,GAAG,CAAC,CAAa,CAAC;CAYlB,OAVA,EAAM,gBAAgB;EACpB,EAAa;EAEb,IAAM,IAAwB,EAAS,GAAc,GAAG;EAExD,OADA,OAAO,iBAAiB,UAAU,CAAqB,SAC1C;GACX,OAAO,oBAAoB,UAAU,CAAqB;EAC5D;CACF,GAAG,CAAC,CAAY,CAAC,GAGf,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,OAAD;IACE,WAAW,EAAG,kDAAkD,EAC9D,QAAQ,CAAC,EACX,CAAC;cAHH,CAKE,kBAAC,GAAD;KACE,MAAM;KACN,WAAW,EACT,uCACA,EAAmB,EAAE,WAAQ,CAAC,CAChC;KACA,eACE,EAAc,SAAS,SAAS;MAAE,MAAM;MAAM,UAAU;KAAS,CAAC;IAErE,CAAA,GACD,kBAAC,OAAD,EACE,WAAW,EACT,mDACA,EAAiB,EAAE,WAAQ,CAAC,CAC9B,EACD,CAAA,CACE;;GACL,kBAAC,OAAD;IACE,KAAK;IACL,UAAU;IACV,WAAW,EAAG,gCAAgC,CAAS;IAEtD;GACE,CAAA;GACL,kBAAC,OAAD;IACE,WAAW,EACT,qEACA,EAAE,QAAQ,CAAC,EAAkB,CAC/B;cAJF,CAME,kBAAC,OAAD,EACE,WAAW,EACT,mDACA,EAAiB,EAAE,WAAQ,CAAC,CAC9B,EACD,CAAA,GACD,kBAAC,GAAD;KACE,MAAM;KACN,WAAW,EACT,uCACA,EAAmB,EAAE,WAAQ,CAAC,CAChC;KACA,eACE,EAAc,SAAS,SAAS;MAAE,MAAM;MAAK,UAAU;KAAS,CAAC;IAEpE,CAAA,CACE;;EACF;;AAET"}
package/dist/index2.cjs CHANGED
@@ -1 +1 @@
1
- var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));exports.__commonJSMin=o,exports.__toESM=c;
1
+ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));exports.__toESM=s;
package/dist/index20.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use client";const e=require("./index2.cjs"),t=require("./index7.cjs"),n=require("./index10.cjs");let r=require("lucide-react"),i=require("react");i=e.__toESM(i,1);let a=require("@radix-ui/react-dropdown-menu");a=e.__toESM(a,1);var o=n.default;function s({...e}){return(0,o.jsx)(a.Root,{"data-slot":`dropdown-menu`,...e})}function c({...e}){return(0,o.jsx)(a.Portal,{"data-slot":`dropdown-menu-portal`,...e})}function l({...e}){return(0,o.jsx)(a.Trigger,{"data-slot":`dropdown-menu-trigger`,...e})}function u({className:e,sideOffset:n=4,...r}){return(0,o.jsx)(a.Portal,{children:(0,o.jsx)(a.Content,{"data-slot":`dropdown-menu-content`,sideOffset:n,className:t.cn(`bg-white text-gray-900 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded border border-gray-900/8 shadow-200`,e),...r})})}function d({...e}){return(0,o.jsx)(a.Group,{"data-slot":`dropdown-menu-group`,...e})}function f({className:e,inset:n,variant:r=`default`,...i}){return(0,o.jsx)(a.Item,{"data-slot":`dropdown-menu-item`,"data-inset":n,"data-variant":r,className:t.cn(`focus:bg-gray-200 focus:text-gray-900 data-[variant=destructive]:text-magenta-700 data-[variant=destructive]:focus:bg-magenta-100 data-[variant=destructive]:focus:text-magenta-700 data-[variant=destructive]:*:[svg]:!text-magenta-700 [&_svg:not([class*='text-'])]:text-gray-700 relative flex cursor-default items-center gap-8 rounded px-16 py-8 text-base outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-40 data-[inset]:pl-32 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-16`,e),...i})}function p({className:e,children:n,checked:i,...s}){return(0,o.jsxs)(a.CheckboxItem,{"data-slot":`dropdown-menu-checkbox-item`,className:t.cn(`focus:bg-gray-200 focus:text-gray-900 relative flex cursor-default items-center gap-8 rounded py-8 pr-4 pl-32 text-base outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-16`,e),checked:i,...s,children:[(0,o.jsx)(`span`,{className:`pointer-events-none absolute left-8 flex size-[14px] items-center justify-center`,children:(0,o.jsx)(a.ItemIndicator,{children:(0,o.jsx)(r.CheckIcon,{className:`size-16`})})}),n]})}function m({...e}){return(0,o.jsx)(a.RadioGroup,{"data-slot":`dropdown-menu-radio-group`,...e})}function h({className:e,children:n,...i}){return(0,o.jsxs)(a.RadioItem,{"data-slot":`dropdown-menu-radio-item`,className:t.cn(`focus:bg-gray-200 focus:text-gray-900 relative flex cursor-default items-center gap-8 rounded py-8 pr-4 pl-32 text-base outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-16`,e),...i,children:[(0,o.jsx)(`span`,{className:`pointer-events-none absolute left-8 flex size-[14px] items-center justify-center`,children:(0,o.jsx)(a.ItemIndicator,{children:(0,o.jsx)(r.CircleIcon,{className:`size-8 fill-gray-900`})})}),n]})}function g({className:e,inset:n,...r}){return(0,o.jsx)(a.Label,{"data-slot":`dropdown-menu-label`,"data-inset":n,className:t.cn(`px-16 py-8 text-base font-semibold data-[inset]:pl-32`,e),...r})}function _({className:e,...n}){return(0,o.jsx)(a.Separator,{"data-slot":`dropdown-menu-separator`,className:t.cn(`bg-gray-900/8 h-px`,e),...n})}function v({className:e,...n}){return(0,o.jsx)(`span`,{"data-slot":`dropdown-menu-shortcut`,className:t.cn(`ml-auto text-sm tracking-widest opacity-40`,e),...n})}function y({...e}){return(0,o.jsx)(a.Sub,{"data-slot":`dropdown-menu-sub`,...e})}function b({className:e,inset:n,children:i,...s}){return(0,o.jsxs)(a.SubTrigger,{"data-slot":`dropdown-menu-sub-trigger`,"data-inset":n,className:t.cn(`focus:bg-gray-200 focus:text-gray-900 data-[state=open]:bg-gray-200 data-[state=open]:text-gray-900 flex cursor-default items-center rounded px-16 py-8 text-base outline-none select-none data-[inset]:pl-32`,e),...s,children:[i,(0,o.jsx)(r.ChevronRightIcon,{className:`ml-auto size-16`})]})}function x({className:e,...n}){return(0,o.jsx)(a.SubContent,{"data-slot":`dropdown-menu-sub-content`,className:t.cn(`bg-white text-gray-900 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-48 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded border border-gray-900/8 p-4 shadow-200`,e),...n})}exports.DropdownMenu=s,exports.DropdownMenuCheckboxItem=p,exports.DropdownMenuContent=u,exports.DropdownMenuGroup=d,exports.DropdownMenuItem=f,exports.DropdownMenuLabel=g,exports.DropdownMenuPortal=c,exports.DropdownMenuRadioGroup=m,exports.DropdownMenuRadioItem=h,exports.DropdownMenuSeparator=_,exports.DropdownMenuShortcut=v,exports.DropdownMenuSub=y,exports.DropdownMenuSubContent=x,exports.DropdownMenuSubTrigger=b,exports.DropdownMenuTrigger=l;
1
+ const e=require("./index2.cjs"),t=require("./index5.cjs"),n=require("./index7.cjs");let r=require("lucide-react"),i=require("react");i=e.__toESM(i,1);let a=require("react/jsx-runtime");var o=t.cva(``,{variants:{variant:{white:`to-white`,gray:`to-gray-50`}},defaultVariants:{variant:`gray`}}),s=t.cva(``,{variants:{variant:{white:`bg-white`,gray:`bg-gray-50`}},defaultVariants:{variant:`gray`}});function c({children:e,className:t,variant:c}){let l=i.default.useRef(null),[u,d]=i.default.useState(!1),[f,p]=i.default.useState(!1),m=i.default.useCallback(()=>{if(!l.current)return;let{scrollLeft:e,scrollWidth:t,clientWidth:n}=l.current;d(e>0),p(e+n<t-5)},[l]);return i.default.useEffect(()=>{m();let e=n.debounce(m,100);return window.addEventListener(`resize`,e),()=>{window.removeEventListener(`resize`,e)}},[m]),(0,a.jsxs)(`div`,{className:`relative flex overflow-hidden`,children:[(0,a.jsxs)(`div`,{className:n.cn(`absolute left-0 top-0 h-full flex items-center`,{hidden:!u}),children:[(0,a.jsx)(r.ChevronLeft,{size:16,className:n.cn(`text-gray-600 h-full cursor-pointer`,s({variant:c})),onClick:()=>l.current?.scrollBy({left:-100,behavior:`smooth`})}),(0,a.jsx)(`div`,{className:n.cn(`w-[50px] h-full bg-linear-to-l from-transparent`,o({variant:c}))})]}),(0,a.jsx)(`div`,{ref:l,onScroll:m,className:n.cn(`overflow-scroll no-scrollbar`,t),children:e}),(0,a.jsxs)(`div`,{className:n.cn(`absolute right-0 top-0 h-full w-fit flex items-center justify-end`,{hidden:!f}),children:[(0,a.jsx)(`div`,{className:n.cn(`w-[50px] h-full bg-linear-to-r from-transparent`,o({variant:c}))}),(0,a.jsx)(r.ChevronRight,{size:16,className:n.cn(`text-gray-600 h-full cursor-pointer`,s({variant:c})),onClick:()=>l.current?.scrollBy({left:100,behavior:`smooth`})})]})]})}exports.GradientScroll=c;
2
2
  //# sourceMappingURL=index20.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index20.cjs","names":[],"sources":["../src/DropdownMenu/index.tsx"],"sourcesContent":["'use client'\n\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu'\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from 'lucide-react'\nimport * as React from 'react'\nimport { cn } from '../lib/utils'\n\nfunction DropdownMenu({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />\n}\n\nfunction DropdownMenuPortal({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {\n return (\n <DropdownMenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />\n )\n}\n\nfunction DropdownMenuTrigger({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {\n return (\n <DropdownMenuPrimitive.Trigger\n data-slot=\"dropdown-menu-trigger\"\n {...props}\n />\n )\n}\n\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n data-slot=\"dropdown-menu-content\"\n sideOffset={sideOffset}\n className={cn(\n 'bg-white text-gray-900 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded border border-gray-900/8 shadow-200',\n className\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n )\n}\n\nfunction DropdownMenuGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {\n return (\n <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />\n )\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = 'default',\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean\n variant?: 'default' | 'destructive'\n}) {\n return (\n <DropdownMenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"focus:bg-gray-200 focus:text-gray-900 data-[variant=destructive]:text-magenta-700 data-[variant=destructive]:focus:bg-magenta-100 data-[variant=destructive]:focus:text-magenta-700 data-[variant=destructive]:*:[svg]:!text-magenta-700 [&_svg:not([class*='text-'])]:text-gray-700 relative flex cursor-default items-center gap-8 rounded px-16 py-8 text-base outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-40 data-[inset]:pl-32 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-16\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>) {\n return (\n <DropdownMenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn(\n \"focus:bg-gray-200 focus:text-gray-900 relative flex cursor-default items-center gap-8 rounded py-8 pr-4 pl-32 text-base outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-16\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-8 flex size-[14px] items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon className=\"size-16\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n )\n}\n\nfunction DropdownMenuRadioGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {\n return (\n <DropdownMenuPrimitive.RadioGroup\n data-slot=\"dropdown-menu-radio-group\"\n {...props}\n />\n )\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>) {\n return (\n <DropdownMenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n className={cn(\n \"focus:bg-gray-200 focus:text-gray-900 relative flex cursor-default items-center gap-8 rounded py-8 pr-4 pl-32 text-base outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-16\",\n className\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-8 flex size-[14px] items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CircleIcon className=\"size-8 fill-gray-900\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n )\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean\n}) {\n return (\n <DropdownMenuPrimitive.Label\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn(\n 'px-16 py-8 text-base font-semibold data-[inset]:pl-32',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {\n return (\n <DropdownMenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn('bg-gray-900/8 h-px', className)}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn('ml-auto text-sm tracking-widest opacity-40', className)}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuSub({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {\n return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean\n}) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n 'focus:bg-gray-200 focus:text-gray-900 data-[state=open]:bg-gray-200 data-[state=open]:text-gray-900 flex cursor-default items-center rounded px-16 py-8 text-base outline-none select-none data-[inset]:pl-32',\n className\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto size-16\" />\n </DropdownMenuPrimitive.SubTrigger>\n )\n}\n\nfunction DropdownMenuSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {\n return (\n <DropdownMenuPrimitive.SubContent\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\n 'bg-white text-gray-900 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-48 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded border border-gray-900/8 p-4 shadow-200',\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger\n}\n"],"mappings":"oPAOA,SAAS,EAAa,CACpB,GAAG,GACuD,CAC1D,OAAO,EAAA,EAAA,KAAC,EAAsB,KAAvB,CAA4B,YAAU,gBAAgB,GAAI,CAAQ,CAAA,CAC3E,CAEA,SAAS,EAAmB,CAC1B,GAAG,GACyD,CAC5D,OACE,EAAA,EAAA,KAAC,EAAsB,OAAvB,CAA8B,YAAU,uBAAuB,GAAI,CAAQ,CAAA,CAE/E,CAEA,SAAS,EAAoB,CAC3B,GAAG,GAC0D,CAC7D,OACE,EAAA,EAAA,KAAC,EAAsB,QAAvB,CACE,YAAU,wBACV,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,EAAoB,CAC3B,YACA,aAAa,EACb,GAAG,GAC0D,CAC7D,OACE,EAAA,EAAA,KAAC,EAAsB,OAAvB,CAAA,UACE,EAAA,EAAA,KAAC,EAAsB,QAAvB,CACE,YAAU,wBACE,aACZ,UAAW,EAAA,GACT,yjBACA,CACF,EACA,GAAI,CACL,CAAA,CAC2B,CAAA,CAElC,CAEA,SAAS,EAAkB,CACzB,GAAG,GACwD,CAC3D,OACE,EAAA,EAAA,KAAC,EAAsB,MAAvB,CAA6B,YAAU,sBAAsB,GAAI,CAAQ,CAAA,CAE7E,CAEA,SAAS,EAAiB,CACxB,YACA,QACA,UAAU,UACV,GAAG,GAIF,CACD,OACE,EAAA,EAAA,KAAC,EAAsB,KAAvB,CACE,YAAU,qBACV,aAAY,EACZ,eAAc,EACd,UAAW,EAAA,GACT,kiBACA,CACF,EACA,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,EAAyB,CAChC,YACA,WACA,UACA,GAAG,GAC+D,CAClE,OACE,EAAA,EAAA,MAAC,EAAsB,aAAvB,CACE,YAAU,8BACV,UAAW,EAAA,GACT,qSACA,CACF,EACS,UACT,GAAI,WAPN,EASE,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,6FACd,EAAA,EAAA,KAAC,EAAsB,cAAvB,CAAA,UACE,EAAA,EAAA,KAAC,EAAA,UAAD,CAAW,UAAU,SAAW,CAAA,CACG,CAAA,CACjC,CAAA,EACL,CACiC,GAExC,CAEA,SAAS,EAAuB,CAC9B,GAAG,GAC6D,CAChE,OACE,EAAA,EAAA,KAAC,EAAsB,WAAvB,CACE,YAAU,4BACV,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,EAAsB,CAC7B,YACA,WACA,GAAG,GAC4D,CAC/D,OACE,EAAA,EAAA,MAAC,EAAsB,UAAvB,CACE,YAAU,2BACV,UAAW,EAAA,GACT,qSACA,CACF,EACA,GAAI,WANN,EAQE,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,6FACd,EAAA,EAAA,KAAC,EAAsB,cAAvB,CAAA,UACE,EAAA,EAAA,KAAC,EAAA,WAAD,CAAY,UAAU,sBAAwB,CAAA,CACX,CAAA,CACjC,CAAA,EACL,CAC8B,GAErC,CAEA,SAAS,EAAkB,CACzB,YACA,QACA,GAAG,GAGF,CACD,OACE,EAAA,EAAA,KAAC,EAAsB,MAAvB,CACE,YAAU,sBACV,aAAY,EACZ,UAAW,EAAA,GACT,wDACA,CACF,EACA,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,EAAsB,CAC7B,YACA,GAAG,GAC4D,CAC/D,OACE,EAAA,EAAA,KAAC,EAAsB,UAAvB,CACE,YAAU,0BACV,UAAW,EAAA,GAAG,qBAAsB,CAAS,EAC7C,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,EAAqB,CAC5B,YACA,GAAG,GAC4B,CAC/B,OACE,EAAA,EAAA,KAAC,OAAD,CACE,YAAU,yBACV,UAAW,EAAA,GAAG,6CAA8C,CAAS,EACrE,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,EAAgB,CACvB,GAAG,GACsD,CACzD,OAAO,EAAA,EAAA,KAAC,EAAsB,IAAvB,CAA2B,YAAU,oBAAoB,GAAI,CAAQ,CAAA,CAC9E,CAEA,SAAS,EAAuB,CAC9B,YACA,QACA,WACA,GAAG,GAGF,CACD,OACE,EAAA,EAAA,MAAC,EAAsB,WAAvB,CACE,YAAU,4BACV,aAAY,EACZ,UAAW,EAAA,GACT,gNACA,CACF,EACA,GAAI,WAPN,CASG,GACD,EAAA,EAAA,KAAC,EAAA,iBAAD,CAAkB,UAAU,iBAAmB,CAAA,CACf,GAEtC,CAEA,SAAS,EAAuB,CAC9B,YACA,GAAG,GAC6D,CAChE,OACE,EAAA,EAAA,KAAC,EAAsB,WAAvB,CACE,YAAU,4BACV,UAAW,EAAA,GACT,ofACA,CACF,EACA,GAAI,CACL,CAAA,CAEL"}
1
+ {"version":3,"file":"index20.cjs","names":[],"sources":["../src/FilterBar/GradientScroll.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority'\nimport { ChevronLeft, ChevronRight } from 'lucide-react'\nimport React from 'react'\nimport { cn, debounce } from '../lib/utils'\n\nexport const gradientVariants = cva('', {\n variants: {\n variant: {\n white: 'to-white',\n gray: 'to-gray-50'\n }\n },\n defaultVariants: {\n variant: 'gray'\n }\n})\n\nexport const backgroundVariants = cva('', {\n variants: {\n variant: {\n white: 'bg-white',\n gray: 'bg-gray-50'\n }\n },\n defaultVariants: {\n variant: 'gray'\n }\n})\n\ninterface GradientScrollProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof gradientVariants> {}\n\nexport function GradientScroll({\n children,\n className,\n variant\n}: GradientScrollProps) {\n const scrollableRef = React.useRef<HTMLDivElement>(null)\n const [leftArrowVisible, setLeftArrowVisible] = React.useState(false)\n const [rightArrowVisible, setRightArrowVisible] = React.useState(false)\n\n const handleScroll = React.useCallback(() => {\n if (!scrollableRef.current) return\n\n const { scrollLeft, scrollWidth, clientWidth } = scrollableRef.current\n setLeftArrowVisible(scrollLeft > 0)\n setRightArrowVisible(scrollLeft + clientWidth < scrollWidth - 5)\n }, [scrollableRef])\n\n React.useEffect(() => {\n handleScroll()\n\n const debouncedHandleScroll = debounce(handleScroll, 100)\n window.addEventListener('resize', debouncedHandleScroll)\n return () => {\n window.removeEventListener('resize', debouncedHandleScroll)\n }\n }, [handleScroll])\n\n return (\n <div className=\"relative flex overflow-hidden\">\n <div\n className={cn('absolute left-0 top-0 h-full flex items-center', {\n hidden: !leftArrowVisible\n })}\n >\n <ChevronLeft\n size={16}\n className={cn(\n 'text-gray-600 h-full cursor-pointer',\n backgroundVariants({ variant })\n )}\n onClick={() =>\n scrollableRef.current?.scrollBy({ left: -100, behavior: 'smooth' })\n }\n />\n <div\n className={cn(\n 'w-[50px] h-full bg-linear-to-l from-transparent',\n gradientVariants({ variant })\n )}\n />\n </div>\n <div\n ref={scrollableRef}\n onScroll={handleScroll}\n className={cn('overflow-scroll no-scrollbar', className)}\n >\n {children}\n </div>\n <div\n className={cn(\n 'absolute right-0 top-0 h-full w-fit flex items-center justify-end',\n { hidden: !rightArrowVisible }\n )}\n >\n <div\n className={cn(\n 'w-[50px] h-full bg-linear-to-r from-transparent',\n gradientVariants({ variant })\n )}\n />\n <ChevronRight\n size={16}\n className={cn(\n 'text-gray-600 h-full cursor-pointer',\n backgroundVariants({ variant })\n )}\n onClick={() =>\n scrollableRef.current?.scrollBy({ left: 100, behavior: 'smooth' })\n }\n />\n </div>\n </div>\n )\n}\n"],"mappings":"yLAKA,IAAa,EAAmB,EAAA,IAAI,GAAI,CACtC,SAAU,CACR,QAAS,CACP,MAAO,WACP,KAAM,YACR,CACF,EACA,gBAAiB,CACf,QAAS,MACX,CACF,CAAC,EAEY,EAAqB,EAAA,IAAI,GAAI,CACxC,SAAU,CACR,QAAS,CACP,MAAO,WACP,KAAM,YACR,CACF,EACA,gBAAiB,CACf,QAAS,MACX,CACF,CAAC,EAMD,SAAgB,EAAe,CAC7B,WACA,YACA,WACsB,CACtB,IAAM,EAAgB,EAAA,QAAM,OAAuB,IAAI,EACjD,CAAC,EAAkB,GAAuB,EAAA,QAAM,SAAS,EAAK,EAC9D,CAAC,EAAmB,GAAwB,EAAA,QAAM,SAAS,EAAK,EAEhE,EAAe,EAAA,QAAM,gBAAkB,CAC3C,GAAI,CAAC,EAAc,QAAS,OAE5B,GAAM,CAAE,aAAY,cAAa,eAAgB,EAAc,QAC/D,EAAoB,EAAa,CAAC,EAClC,EAAqB,EAAa,EAAc,EAAc,CAAC,CACjE,EAAG,CAAC,CAAa,CAAC,EAYlB,OAVA,EAAA,QAAM,cAAgB,CACpB,EAAa,EAEb,IAAM,EAAwB,EAAA,SAAS,EAAc,GAAG,EAExD,OADA,OAAO,iBAAiB,SAAU,CAAqB,MAC1C,CACX,OAAO,oBAAoB,SAAU,CAAqB,CAC5D,CACF,EAAG,CAAC,CAAY,CAAC,GAGf,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,yCAAf,EACE,EAAA,EAAA,MAAC,MAAD,CACE,UAAW,EAAA,GAAG,iDAAkD,CAC9D,OAAQ,CAAC,CACX,CAAC,WAHH,EAKE,EAAA,EAAA,KAAC,EAAA,YAAD,CACE,KAAM,GACN,UAAW,EAAA,GACT,sCACA,EAAmB,CAAE,SAAQ,CAAC,CAChC,EACA,YACE,EAAc,SAAS,SAAS,CAAE,KAAM,KAAM,SAAU,QAAS,CAAC,CAErE,CAAA,GACD,EAAA,EAAA,KAAC,MAAD,CACE,UAAW,EAAA,GACT,kDACA,EAAiB,CAAE,SAAQ,CAAC,CAC9B,CACD,CAAA,CACE,KACL,EAAA,EAAA,KAAC,MAAD,CACE,IAAK,EACL,SAAU,EACV,UAAW,EAAA,GAAG,+BAAgC,CAAS,EAEtD,UACE,CAAA,GACL,EAAA,EAAA,MAAC,MAAD,CACE,UAAW,EAAA,GACT,oEACA,CAAE,OAAQ,CAAC,CAAkB,CAC/B,WAJF,EAME,EAAA,EAAA,KAAC,MAAD,CACE,UAAW,EAAA,GACT,kDACA,EAAiB,CAAE,SAAQ,CAAC,CAC9B,CACD,CAAA,GACD,EAAA,EAAA,KAAC,EAAA,aAAD,CACE,KAAM,GACN,UAAW,EAAA,GACT,sCACA,EAAmB,CAAE,SAAQ,CAAC,CAChC,EACA,YACE,EAAc,SAAS,SAAS,CAAE,KAAM,IAAK,SAAU,QAAS,CAAC,CAEpE,CAAA,CACE,GACF,GAET"}
package/dist/index20.js CHANGED
@@ -1,126 +1,31 @@
1
- "use client";
2
- import { cn as e } from "./index7.js";
3
- import { require_jsx_runtime as t } from "./index10.js";
4
- import { CheckIcon as n, ChevronRightIcon as r, CircleIcon as i } from "lucide-react";
1
+ import { cn as e } from "./index6.js";
2
+ import { GradientScroll as t } from "./index19.js";
5
3
  import "react";
6
- import * as a from "@radix-ui/react-dropdown-menu";
7
- //#region src/DropdownMenu/index.tsx
8
- var o = t();
9
- function s({ ...e }) {
10
- return /* @__PURE__ */ (0, o.jsx)(a.Root, {
11
- "data-slot": "dropdown-menu",
12
- ...e
13
- });
14
- }
15
- function c({ ...e }) {
16
- return /* @__PURE__ */ (0, o.jsx)(a.Portal, {
17
- "data-slot": "dropdown-menu-portal",
18
- ...e
19
- });
20
- }
21
- function l({ ...e }) {
22
- return /* @__PURE__ */ (0, o.jsx)(a.Trigger, {
23
- "data-slot": "dropdown-menu-trigger",
24
- ...e
25
- });
26
- }
27
- function u({ className: t, sideOffset: n = 4, ...r }) {
28
- return /* @__PURE__ */ (0, o.jsx)(a.Portal, { children: /* @__PURE__ */ (0, o.jsx)(a.Content, {
29
- "data-slot": "dropdown-menu-content",
30
- sideOffset: n,
31
- className: e("bg-white text-gray-900 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded border border-gray-900/8 shadow-200", t),
4
+ import { jsx as n } from "react/jsx-runtime";
5
+ //#region src/FilterBar/index.tsx
6
+ function r({ className: t, ...r }) {
7
+ return /* @__PURE__ */ n("div", {
8
+ className: e("flex w-full", t),
32
9
  ...r
33
- }) });
34
- }
35
- function d({ ...e }) {
36
- return /* @__PURE__ */ (0, o.jsx)(a.Group, {
37
- "data-slot": "dropdown-menu-group",
38
- ...e
39
- });
40
- }
41
- function f({ className: t, inset: n, variant: r = "default", ...i }) {
42
- return /* @__PURE__ */ (0, o.jsx)(a.Item, {
43
- "data-slot": "dropdown-menu-item",
44
- "data-inset": n,
45
- "data-variant": r,
46
- className: e("focus:bg-gray-200 focus:text-gray-900 data-[variant=destructive]:text-magenta-700 data-[variant=destructive]:focus:bg-magenta-100 data-[variant=destructive]:focus:text-magenta-700 data-[variant=destructive]:*:[svg]:!text-magenta-700 [&_svg:not([class*='text-'])]:text-gray-700 relative flex cursor-default items-center gap-8 rounded px-16 py-8 text-base outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-40 data-[inset]:pl-32 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-16", t),
47
- ...i
48
10
  });
49
11
  }
50
- function p({ className: t, children: r, checked: i, ...s }) {
51
- return /* @__PURE__ */ (0, o.jsxs)(a.CheckboxItem, {
52
- "data-slot": "dropdown-menu-checkbox-item",
53
- className: e("focus:bg-gray-200 focus:text-gray-900 relative flex cursor-default items-center gap-8 rounded py-8 pr-4 pl-32 text-base outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-16", t),
54
- checked: i,
55
- ...s,
56
- children: [/* @__PURE__ */ (0, o.jsx)("span", {
57
- className: "pointer-events-none absolute left-8 flex size-[14px] items-center justify-center",
58
- children: /* @__PURE__ */ (0, o.jsx)(a.ItemIndicator, { children: /* @__PURE__ */ (0, o.jsx)(n, { className: "size-16" }) })
59
- }), r]
12
+ function i({ variant: e, children: r, ...i }) {
13
+ return /* @__PURE__ */ n(t, {
14
+ variant: e,
15
+ ...i,
16
+ children: /* @__PURE__ */ n("div", {
17
+ className: "flex items-center space-x-8 w-fit",
18
+ children: r
19
+ })
60
20
  });
61
21
  }
62
- function m({ ...e }) {
63
- return /* @__PURE__ */ (0, o.jsx)(a.RadioGroup, {
64
- "data-slot": "dropdown-menu-radio-group",
65
- ...e
66
- });
67
- }
68
- function h({ className: t, children: n, ...r }) {
69
- return /* @__PURE__ */ (0, o.jsxs)(a.RadioItem, {
70
- "data-slot": "dropdown-menu-radio-item",
71
- className: e("focus:bg-gray-200 focus:text-gray-900 relative flex cursor-default items-center gap-8 rounded py-8 pr-4 pl-32 text-base outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-16", t),
72
- ...r,
73
- children: [/* @__PURE__ */ (0, o.jsx)("span", {
74
- className: "pointer-events-none absolute left-8 flex size-[14px] items-center justify-center",
75
- children: /* @__PURE__ */ (0, o.jsx)(a.ItemIndicator, { children: /* @__PURE__ */ (0, o.jsx)(i, { className: "size-8 fill-gray-900" }) })
76
- }), n]
77
- });
78
- }
79
- function g({ className: t, inset: n, ...r }) {
80
- return /* @__PURE__ */ (0, o.jsx)(a.Label, {
81
- "data-slot": "dropdown-menu-label",
82
- "data-inset": n,
83
- className: e("px-16 py-8 text-base font-semibold data-[inset]:pl-32", t),
22
+ function a({ className: t, ...r }) {
23
+ return /* @__PURE__ */ n("div", {
24
+ className: e("flex space-x-8", t),
84
25
  ...r
85
26
  });
86
27
  }
87
- function _({ className: t, ...n }) {
88
- return /* @__PURE__ */ (0, o.jsx)(a.Separator, {
89
- "data-slot": "dropdown-menu-separator",
90
- className: e("bg-gray-900/8 h-px", t),
91
- ...n
92
- });
93
- }
94
- function v({ className: t, ...n }) {
95
- return /* @__PURE__ */ (0, o.jsx)("span", {
96
- "data-slot": "dropdown-menu-shortcut",
97
- className: e("ml-auto text-sm tracking-widest opacity-40", t),
98
- ...n
99
- });
100
- }
101
- function y({ ...e }) {
102
- return /* @__PURE__ */ (0, o.jsx)(a.Sub, {
103
- "data-slot": "dropdown-menu-sub",
104
- ...e
105
- });
106
- }
107
- function b({ className: t, inset: n, children: i, ...s }) {
108
- return /* @__PURE__ */ (0, o.jsxs)(a.SubTrigger, {
109
- "data-slot": "dropdown-menu-sub-trigger",
110
- "data-inset": n,
111
- className: e("focus:bg-gray-200 focus:text-gray-900 data-[state=open]:bg-gray-200 data-[state=open]:text-gray-900 flex cursor-default items-center rounded px-16 py-8 text-base outline-none select-none data-[inset]:pl-32", t),
112
- ...s,
113
- children: [i, /* @__PURE__ */ (0, o.jsx)(r, { className: "ml-auto size-16" })]
114
- });
115
- }
116
- function x({ className: t, ...n }) {
117
- return /* @__PURE__ */ (0, o.jsx)(a.SubContent, {
118
- "data-slot": "dropdown-menu-sub-content",
119
- className: e("bg-white text-gray-900 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-48 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded border border-gray-900/8 p-4 shadow-200", t),
120
- ...n
121
- });
122
- }
123
28
  //#endregion
124
- export { s as DropdownMenu, p as DropdownMenuCheckboxItem, u as DropdownMenuContent, d as DropdownMenuGroup, f as DropdownMenuItem, g as DropdownMenuLabel, c as DropdownMenuPortal, m as DropdownMenuRadioGroup, h as DropdownMenuRadioItem, _ as DropdownMenuSeparator, v as DropdownMenuShortcut, y as DropdownMenuSub, x as DropdownMenuSubContent, b as DropdownMenuSubTrigger, l as DropdownMenuTrigger };
29
+ export { r as FilterBar, a as FilterBarContent, i as FilterBarScrollableContent };
125
30
 
126
31
  //# sourceMappingURL=index20.js.map