@uselets/ui 1.20.2 → 1.20.4

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 (199) hide show
  1. package/README.md +22 -0
  2. package/dist/cli/uselets.mjs +3 -3
  3. package/dist/cli/uselets.mjs.map +1 -1
  4. package/dist/components/accordion.js +1 -1
  5. package/dist/components/accordion.js.map +1 -1
  6. package/dist/components/alert-dialog.js +1 -1
  7. package/dist/components/alert-dialog.js.map +1 -1
  8. package/dist/components/alert.js +1 -1
  9. package/dist/components/alert.js.map +1 -1
  10. package/dist/components/anchor.js +1 -1
  11. package/dist/components/anchor.js.map +1 -1
  12. package/dist/components/area-chart.js +1 -1
  13. package/dist/components/area-chart.js.map +1 -1
  14. package/dist/components/avatar.js +1 -1
  15. package/dist/components/avatar.js.map +1 -1
  16. package/dist/components/badge.js +1 -1
  17. package/dist/components/badge.js.map +1 -1
  18. package/dist/components/bar-chart.js +1 -1
  19. package/dist/components/bar-chart.js.map +1 -1
  20. package/dist/components/bottom-nav.js +1 -1
  21. package/dist/components/bottom-nav.js.map +1 -1
  22. package/dist/components/breadcrumb.js +1 -1
  23. package/dist/components/breadcrumb.js.map +1 -1
  24. package/dist/components/button-group.js +1 -1
  25. package/dist/components/button-group.js.map +1 -1
  26. package/dist/components/button.js +1 -1
  27. package/dist/components/button.js.map +1 -1
  28. package/dist/components/calendar.js +1 -1
  29. package/dist/components/calendar.js.map +1 -1
  30. package/dist/components/card.js +1 -1
  31. package/dist/components/card.js.map +1 -1
  32. package/dist/components/carousel.js +1 -1
  33. package/dist/components/carousel.js.map +1 -1
  34. package/dist/components/center.js +1 -1
  35. package/dist/components/center.js.map +1 -1
  36. package/dist/components/chart.js +2 -2
  37. package/dist/components/chart.js.map +1 -1
  38. package/dist/components/checkbox.js +1 -1
  39. package/dist/components/checkbox.js.map +1 -1
  40. package/dist/components/code.js +1 -1
  41. package/dist/components/code.js.map +1 -1
  42. package/dist/components/collapsible.js +1 -1
  43. package/dist/components/collapsible.js.map +1 -1
  44. package/dist/components/combobox.js +1 -1
  45. package/dist/components/combobox.js.map +1 -1
  46. package/dist/components/command.js +1 -1
  47. package/dist/components/command.js.map +1 -1
  48. package/dist/components/container.js +1 -1
  49. package/dist/components/container.js.map +1 -1
  50. package/dist/components/data-table.d.ts +138 -2
  51. package/dist/components/data-table.js +1 -1
  52. package/dist/components/data-table.js.map +1 -1
  53. package/dist/components/date-range-picker.js +1 -1
  54. package/dist/components/date-range-picker.js.map +1 -1
  55. package/dist/components/dialog.js +1 -1
  56. package/dist/components/dialog.js.map +1 -1
  57. package/dist/components/donut-chart.js +1 -1
  58. package/dist/components/donut-chart.js.map +1 -1
  59. package/dist/components/drawer.js +1 -1
  60. package/dist/components/drawer.js.map +1 -1
  61. package/dist/components/dropdown-menu.js +1 -1
  62. package/dist/components/dropdown-menu.js.map +1 -1
  63. package/dist/components/dropzone.js +1 -1
  64. package/dist/components/dropzone.js.map +1 -1
  65. package/dist/components/empty.js +1 -1
  66. package/dist/components/empty.js.map +1 -1
  67. package/dist/components/field.js +1 -1
  68. package/dist/components/field.js.map +1 -1
  69. package/dist/components/flex.js +1 -1
  70. package/dist/components/flex.js.map +1 -1
  71. package/dist/components/grid.js +1 -1
  72. package/dist/components/grid.js.map +1 -1
  73. package/dist/components/group.js +1 -1
  74. package/dist/components/group.js.map +1 -1
  75. package/dist/components/heading.js +1 -1
  76. package/dist/components/heading.js.map +1 -1
  77. package/dist/components/hover-card.js +1 -1
  78. package/dist/components/hover-card.js.map +1 -1
  79. package/dist/components/input-group.js +1 -1
  80. package/dist/components/input-group.js.map +1 -1
  81. package/dist/components/input-otp.js +1 -1
  82. package/dist/components/input-otp.js.map +1 -1
  83. package/dist/components/input.js +1 -1
  84. package/dist/components/input.js.map +1 -1
  85. package/dist/components/kbd.js +1 -1
  86. package/dist/components/kbd.js.map +1 -1
  87. package/dist/components/label.js +1 -1
  88. package/dist/components/label.js.map +1 -1
  89. package/dist/components/list.js +1 -1
  90. package/dist/components/list.js.map +1 -1
  91. package/dist/components/logo.js +1 -1
  92. package/dist/components/marker.js +1 -1
  93. package/dist/components/marker.js.map +1 -1
  94. package/dist/components/mask-input.js +1 -1
  95. package/dist/components/mask-input.js.map +1 -1
  96. package/dist/components/native-select.js +1 -1
  97. package/dist/components/native-select.js.map +1 -1
  98. package/dist/components/navigation-menu.js +1 -1
  99. package/dist/components/navigation-menu.js.map +1 -1
  100. package/dist/components/number-field.js +1 -1
  101. package/dist/components/number-field.js.map +1 -1
  102. package/dist/components/pagination.js +1 -1
  103. package/dist/components/pagination.js.map +1 -1
  104. package/dist/components/phone-input.d.ts +3 -0
  105. package/dist/components/phone-input.js +1 -1
  106. package/dist/components/phone-input.js.map +1 -1
  107. package/dist/components/pie-chart.js +1 -1
  108. package/dist/components/pie-chart.js.map +1 -1
  109. package/dist/components/popover.js +1 -1
  110. package/dist/components/popover.js.map +1 -1
  111. package/dist/components/progress.js +1 -1
  112. package/dist/components/progress.js.map +1 -1
  113. package/dist/components/radio-group.js +1 -1
  114. package/dist/components/radio-group.js.map +1 -1
  115. package/dist/components/resizable.js +1 -1
  116. package/dist/components/resizable.js.map +1 -1
  117. package/dist/components/ring-progress.js +1 -1
  118. package/dist/components/ring-progress.js.map +1 -1
  119. package/dist/components/scroll-area.js +1 -1
  120. package/dist/components/scroll-area.js.map +1 -1
  121. package/dist/components/select.js +1 -1
  122. package/dist/components/select.js.map +1 -1
  123. package/dist/components/separator.js +1 -1
  124. package/dist/components/separator.js.map +1 -1
  125. package/dist/components/sidebar.d.ts +1 -1
  126. package/dist/components/sidebar.js +1 -1
  127. package/dist/components/sidebar.js.map +1 -1
  128. package/dist/components/simple-grid.js +1 -1
  129. package/dist/components/simple-grid.js.map +1 -1
  130. package/dist/components/skeleton.js +1 -1
  131. package/dist/components/skeleton.js.map +1 -1
  132. package/dist/components/slider.js +1 -1
  133. package/dist/components/slider.js.map +1 -1
  134. package/dist/components/sonner.js +1 -1
  135. package/dist/components/sonner.js.map +1 -1
  136. package/dist/components/spinner.js +1 -1
  137. package/dist/components/spinner.js.map +1 -1
  138. package/dist/components/stack.js +1 -1
  139. package/dist/components/stack.js.map +1 -1
  140. package/dist/components/stepper.js +1 -1
  141. package/dist/components/stepper.js.map +1 -1
  142. package/dist/components/switch.js +1 -1
  143. package/dist/components/switch.js.map +1 -1
  144. package/dist/components/table.js +1 -1
  145. package/dist/components/table.js.map +1 -1
  146. package/dist/components/tabs.js +1 -1
  147. package/dist/components/tabs.js.map +1 -1
  148. package/dist/components/text.js +1 -1
  149. package/dist/components/text.js.map +1 -1
  150. package/dist/components/textarea.js +1 -1
  151. package/dist/components/textarea.js.map +1 -1
  152. package/dist/components/theme.js +1 -1
  153. package/dist/components/theme.js.map +1 -1
  154. package/dist/components/timeline.js +1 -1
  155. package/dist/components/timeline.js.map +1 -1
  156. package/dist/components/toggle-group.js +1 -1
  157. package/dist/components/toggle-group.js.map +1 -1
  158. package/dist/components/toggle.js +1 -1
  159. package/dist/components/toggle.js.map +1 -1
  160. package/dist/components/tooltip.js +1 -1
  161. package/dist/components/tooltip.js.map +1 -1
  162. package/dist/components/unstyled-button.js +1 -1
  163. package/dist/components/unstyled-button.js.map +1 -1
  164. package/dist/components/visibility.js +1 -1
  165. package/dist/components/visibility.js.map +1 -1
  166. package/dist/hooks/use-breakpoint-value.js.map +1 -1
  167. package/dist/hooks/use-breakpoint.js.map +1 -1
  168. package/dist/hooks/use-disclosure.js.map +1 -1
  169. package/dist/hooks/use-document-visibility.js.map +1 -1
  170. package/dist/hooks/use-hotkeys.js +1 -1
  171. package/dist/hooks/use-idle.js.map +1 -1
  172. package/dist/hooks/use-interval.js.map +1 -1
  173. package/dist/hooks/use-local-storage.js +1 -1
  174. package/dist/hooks/use-local-storage.js.map +1 -1
  175. package/dist/hooks/use-mask.js.map +1 -1
  176. package/dist/hooks/use-mobile.js.map +1 -1
  177. package/dist/index.d.ts +3 -3
  178. package/dist/index.js +1 -1
  179. package/dist/lib/badge.js.map +1 -1
  180. package/dist/lib/button.js.map +1 -1
  181. package/dist/lib/color.js.map +1 -1
  182. package/dist/lib/compose-refs.js +1 -1
  183. package/dist/lib/compose-refs.js.map +1 -1
  184. package/dist/lib/progress.js.map +1 -1
  185. package/dist/lib/utils.js.map +1 -1
  186. package/dist/logo--R3_XDgA.js +2 -0
  187. package/dist/logo--R3_XDgA.js.map +1 -0
  188. package/dist/postcss.config.js.map +1 -1
  189. package/dist/skills/uselets-ui/SKILL.md +1 -0
  190. package/dist/skills/uselets-ui/references/component-catalog.md +1 -1
  191. package/dist/skills/uselets-ui/references/package-guide.md +16 -0
  192. package/dist/use-hotkeys-YDJmGWX6.js.map +1 -1
  193. package/package.json +17 -17
  194. package/skills/uselets-ui/SKILL.md +1 -0
  195. package/skills/uselets-ui/references/component-catalog.md +1 -1
  196. package/skills/uselets-ui/references/package-guide.md +16 -0
  197. package/dist/data-table-DWWVGWbU.d.ts +0 -4184
  198. package/dist/logo-B0thHtTS.js +0 -2
  199. package/dist/logo-B0thHtTS.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import"../rolldown-runtime-BhWHdk3m.js";import{cn as e}from"../lib/utils.js";import{jsx as t}from"react/jsx-runtime";function Code({className:n,...r}){return t(`code`,{"data-slot":`code`,className:e(`bg-muted text-foreground inline-flex w-fit items-center rounded-md px-1.5 py-0.5 font-mono text-[0.875em] font-medium`,n),...r})}export{Code};
1
+ import"../rolldown-runtime-BhWHdk3m.js";import{cn as e}from"../lib/utils.js";import{jsx as t}from"react/jsx-runtime";function Code({className:n,...r}){return/* @__PURE__ */ t(`code`,{"data-slot":`code`,className:e(`bg-muted text-foreground inline-flex w-fit items-center rounded-md px-1.5 py-0.5 font-mono text-[0.875em] font-medium`,n),...r})}export{Code};
2
2
  //# sourceMappingURL=code.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"code.js","names":[],"sources":["../../src/components/code.tsx"],"sourcesContent":["import type * as React from 'react'\n\nimport { cn } from '../lib/utils'\n\nexport type CodeProps = React.ComponentProps<'code'>\n\nfunction Code({ className, ...props }: CodeProps) {\n return (\n <code\n data-slot=\"code\"\n className={cn(\n 'bg-muted text-foreground inline-flex w-fit items-center rounded-md px-1.5 py-0.5 font-mono text-[0.875em] font-medium',\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Code }\n"],"mappings":"qHAMA,SAAS,KAAK,CAAE,YAAW,GAAG,GAAoB,CAChD,OACE,EAAC,OAAD,CACE,YAAU,OACV,UAAW,EACT,wHACA,CACF,EACA,GAAI,CACL,CAAA,CAEL"}
1
+ {"version":3,"file":"code.js","names":["props","cn","className"],"sources":["../../src/components/code.tsx"],"sourcesContent":["import type * as React from 'react'\n\nimport { cn } from '../lib/utils'\n\nexport type CodeProps = React.ComponentProps<'code'>\n\nfunction Code({ className, ...props }: CodeProps) {\n return (\n <code\n data-slot=\"code\"\n className={cn(\n 'bg-muted text-foreground inline-flex w-fit items-center rounded-md px-1.5 py-0.5 font-mono text-[0.875em] font-medium',\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Code }\n"],"mappings":"qHAMA,SAAS,KAAK,CAAE,YAAW,GAAGA,GAAoB,CAChD,MACE,kBAAC,OAAD,CACE,YAAU,OACV,UAAWC,EACT,wHACAC,CACF,EACA,GAAIF,CACL,CAAA,CAEL"}
@@ -1,2 +1,2 @@
1
- import"../rolldown-runtime-BhWHdk3m.js";import{Collapsible as e}from"radix-ui";import{jsx as t}from"react/jsx-runtime";function Collapsible({...n}){return t(e.Root,{"data-slot":`collapsible`,...n})}function CollapsibleTrigger({...n}){return t(e.CollapsibleTrigger,{"data-slot":`collapsible-trigger`,...n})}function CollapsibleContent({...n}){return t(e.CollapsibleContent,{"data-slot":`collapsible-content`,...n})}export{Collapsible,CollapsibleContent,CollapsibleTrigger};
1
+ import"../rolldown-runtime-BhWHdk3m.js";import{Collapsible as e}from"radix-ui";import{jsx as t}from"react/jsx-runtime";function Collapsible({...n}){return/* @__PURE__ */ t(e.Root,{"data-slot":`collapsible`,...n})}function CollapsibleTrigger({...n}){return/* @__PURE__ */ t(e.CollapsibleTrigger,{"data-slot":`collapsible-trigger`,...n})}function CollapsibleContent({...n}){return/* @__PURE__ */ t(e.CollapsibleContent,{"data-slot":`collapsible-content`,...n})}export{Collapsible,CollapsibleContent,CollapsibleTrigger};
2
2
  //# sourceMappingURL=collapsible.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"collapsible.js","names":["CollapsiblePrimitive"],"sources":["../../src/components/collapsible.tsx"],"sourcesContent":["import { Collapsible as CollapsiblePrimitive } from 'radix-ui'\n\nexport type CollapsibleProps = React.ComponentProps<typeof CollapsiblePrimitive.Root>\n\nexport type CollapsibleTriggerProps = React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>\n\nexport type CollapsibleContentProps = React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>\n\nfunction Collapsible({ ...props }: CollapsibleProps) {\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />\n}\n\nfunction CollapsibleTrigger({ ...props }: CollapsibleTriggerProps) {\n return <CollapsiblePrimitive.CollapsibleTrigger data-slot=\"collapsible-trigger\" {...props} />\n}\n\nfunction CollapsibleContent({ ...props }: CollapsibleContentProps) {\n return <CollapsiblePrimitive.CollapsibleContent data-slot=\"collapsible-content\" {...props} />\n}\n\nexport { Collapsible, CollapsibleContent, CollapsibleTrigger }\n"],"mappings":"uHAQA,SAAS,YAAY,CAAE,GAAG,GAA2B,CACnD,OAAO,EAACA,EAAqB,KAAtB,CAA2B,YAAU,cAAc,GAAI,CAAQ,CAAA,CACxE,CAEA,SAAS,mBAAmB,CAAE,GAAG,GAAkC,CACjE,OAAO,EAACA,EAAqB,mBAAtB,CAAyC,YAAU,sBAAsB,GAAI,CAAQ,CAAA,CAC9F,CAEA,SAAS,mBAAmB,CAAE,GAAG,GAAkC,CACjE,OAAO,EAACA,EAAqB,mBAAtB,CAAyC,YAAU,sBAAsB,GAAI,CAAQ,CAAA,CAC9F"}
1
+ {"version":3,"file":"collapsible.js","names":["CollapsiblePrimitive","Collapsible$1","props"],"sources":["../../src/components/collapsible.tsx"],"sourcesContent":["import { Collapsible as CollapsiblePrimitive } from 'radix-ui'\n\nexport type CollapsibleProps = React.ComponentProps<typeof CollapsiblePrimitive.Root>\n\nexport type CollapsibleTriggerProps = React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>\n\nexport type CollapsibleContentProps = React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>\n\nfunction Collapsible({ ...props }: CollapsibleProps) {\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />\n}\n\nfunction CollapsibleTrigger({ ...props }: CollapsibleTriggerProps) {\n return <CollapsiblePrimitive.CollapsibleTrigger data-slot=\"collapsible-trigger\" {...props} />\n}\n\nfunction CollapsibleContent({ ...props }: CollapsibleContentProps) {\n return <CollapsiblePrimitive.CollapsibleContent data-slot=\"collapsible-content\" {...props} />\n}\n\nexport { Collapsible, CollapsibleContent, CollapsibleTrigger }\n"],"mappings":"uHAQA,SAAS,YAAY,CAAE,GAAGE,GAA2B,CACnD,MAAO,kBAACF,EAAqB,KAAtB,CAA2B,YAAU,cAAc,GAAIE,CAAQ,CAAA,CACxE,CAEA,SAAS,mBAAmB,CAAE,GAAGA,GAAkC,CACjE,MAAO,kBAACF,EAAqB,mBAAtB,CAAyC,YAAU,sBAAsB,GAAIE,CAAQ,CAAA,CAC9F,CAEA,SAAS,mBAAmB,CAAE,GAAGA,GAAkC,CACjE,MAAO,kBAACF,EAAqB,mBAAtB,CAAyC,YAAU,sBAAsB,GAAIE,CAAQ,CAAA,CAC9F"}
@@ -1,2 +1,2 @@
1
- import"../rolldown-runtime-BhWHdk3m.js";import{cn as e}from"../lib/utils.js";import{Button as t}from"./button.js";import{useFieldControlId as n}from"./field.js";import{InputGroup as r,InputGroupAddon as i,InputGroupButton as a,InputGroupInput as o}from"./input-group.js";import{IconCheck as s,IconSelector as c,IconX as l}from"@tabler/icons-react";import{jsx as u,jsxs as d}from"react/jsx-runtime";import*as f from"react";import{Combobox as p}from"@base-ui/react";const m=p.Root;function ComboboxValue({...e}){return u(p.Value,{"data-slot":`combobox-value`,...e})}function ComboboxTrigger({className:t,children:n,icon:r=u(c,{className:`pointer-events-none size-4 text-muted-foreground`}),...i}){return d(p.Trigger,{"data-slot":`combobox-trigger`,className:e(`[&_svg:not([class*='size-'])]:size-4`,t),...i,children:[n,r]})}function ComboboxClear({className:t,...n}){return u(p.Clear,{"data-slot":`combobox-clear`,render:u(a,{variant:`ghost`,size:`icon-xs`}),className:e(t),...n,children:u(l,{className:`pointer-events-none`})})}function ComboboxInput({className:t,children:s,disabled:c=!1,icon:l,id:f,showTrigger:m=!0,showClear:h=!1,triggerIcon:g,..._}){let v=n(f);return d(r,{className:e(`w-auto`,t),children:[l&&u(i,{align:`inline-start`,children:l}),u(p.Input,{id:v,render:u(o,{disabled:c}),..._}),d(i,{align:`inline-end`,children:[m&&u(a,{size:`icon-xs`,variant:`ghost`,asChild:!0,"data-slot":`input-group-button`,className:`group-has-data-[slot=combobox-clear]/input-group:hidden data-pressed:bg-transparent`,disabled:c,children:u(ComboboxTrigger,{icon:g})}),h&&u(ComboboxClear,{disabled:c})]}),s]})}function ComboboxContent({className:t,side:n=`bottom`,sideOffset:r=6,align:i=`start`,alignOffset:a=0,anchor:o,container:s,positionMethod:c=`absolute`,collisionBoundary:l,collisionPadding:d,sticky:f,arrowPadding:m,disableAnchorTracking:h,collisionAvoidance:g,..._}){return u(p.Portal,{container:s,className:`absolute`,children:u(p.Positioner,{side:n,sideOffset:r,align:i,alignOffset:a,anchor:o,positionMethod:c,collisionBoundary:l,collisionPadding:d,sticky:f,arrowPadding:m,disableAnchorTracking:h,collisionAvoidance:g,className:`isolate z-50`,children:u(p.Popup,{"data-slot":`combobox-content`,"data-chips":!!o,className:e(`group/combobox-content max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+(--spacing(7)))] origin-(--transform-origin) overflow-hidden rounded-lg text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[chips=true]:min-w-(--anchor-width) data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 animate-none! relative bg-popover/70 before:pointer-events-none before:absolute before:inset-0 before:-z-1 before:rounded-[inherit] before:backdrop-blur-2xl before:backdrop-saturate-150 **:data-[slot$=-item]:focus:bg-foreground/10 **:data-[slot$=-item]:data-highlighted:bg-foreground/10 **:data-[slot$=-separator]:bg-foreground/5 **:data-[slot$=-trigger]:focus:bg-foreground/10 **:data-[slot$=-trigger]:aria-expanded:bg-foreground/10! **:data-[variant=destructive]:focus:bg-foreground/10! **:data-[variant=destructive]:text-accent-foreground! **:data-[variant=destructive]:**:text-accent-foreground!`,t),..._})})})}function ComboboxList({className:t,...n}){return u(p.List,{"data-slot":`combobox-list`,className:e(`no-scrollbar max-h-[min(calc(--spacing(72)-(--spacing(9))),calc(var(--available-height)-(--spacing(9))))] scroll-py-1 overflow-y-auto overscroll-contain p-1 data-empty:p-0`,t),...n})}function ComboboxItem({className:t,children:n,...r}){return d(p.Item,{"data-slot":`combobox-item`,className:e(`relative flex w-full cursor-default items-center gap-2 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,t),...r,children:[n,u(p.ItemIndicator,{render:u(`span`,{className:`pointer-events-none absolute right-2 flex size-4 items-center justify-center`}),children:u(s,{className:`pointer-events-none`})})]})}function ComboboxGroup({className:t,...n}){return u(p.Group,{"data-slot":`combobox-group`,className:e(t),...n})}function ComboboxLabel({className:t,...n}){return u(p.GroupLabel,{"data-slot":`combobox-label`,className:e(`px-2 py-1.5 text-xs text-muted-foreground`,t),...n})}function ComboboxCollection({...e}){return u(p.Collection,{"data-slot":`combobox-collection`,...e})}function ComboboxEmpty({className:t,...n}){return u(p.Empty,{"data-slot":`combobox-empty`,className:e(`hidden w-full justify-center py-2 text-center text-sm text-muted-foreground group-data-empty/combobox-content:flex`,t),...n})}function ComboboxSeparator({className:t,...n}){return u(p.Separator,{"data-slot":`combobox-separator`,className:e(`-mx-1 my-1 h-px bg-border`,t),...n})}function ComboboxChips({className:n,children:r,showClear:i=!1,...a}){return d(p.Chips,{"data-slot":`combobox-chips`,className:e(`flex min-h-8 overflow-hidden flex-wrap items-center gap-1 rounded-lg border border-input bg-transparent bg-clip-padding px-2.5 py-1 text-sm transition-colors focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50 has-aria-invalid:border-destructive has-aria-invalid:ring-3 has-aria-invalid:ring-destructive/20 has-data-[slot=combobox-chip]:px-1 dark:bg-input/30 dark:has-aria-invalid:border-destructive/50 dark:has-aria-invalid:ring-destructive/40`,n),...a,children:[r,i&&u(p.Clear,{"data-slot":`combobox-chips-clear`,render:u(t,{variant:`ghost`,color:`zinc`,size:`icon-xs`}),className:`shrink-0 self-center size-5`,children:u(l,{className:`pointer-events-none`})})]})}function ComboboxChip({className:n,children:r,showRemove:i=!0,...a}){return d(p.Chip,{"data-slot":`combobox-chip`,className:e(`flex h-[calc(--spacing(5.25))] w-fit text-left max-w-full items-center justify-start gap-1 rounded-sm bg-muted px-1.5 text-xs font-medium whitespace-nowrap text-foreground has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 has-data-[slot=combobox-chip-remove]:pr-0`,n),...a,children:[u(`span`,{className:`flex-1 truncate`,children:r}),i&&u(p.ChipRemove,{render:u(t,{variant:`ghost`,color:`zinc`,size:`icon-xs`}),className:`-ml-1 opacity-50 shrink-0 hover:opacity-100`,"data-slot":`combobox-chip-remove`,children:u(l,{className:`pointer-events-none`})})]})}function ComboboxChipsInput({className:t,id:r,...i}){let a=n(r);return u(p.Input,{id:a,"data-slot":`combobox-chip-input`,className:e(`min-w-16 flex-1 outline-none`,t),...i})}function useComboboxAnchor(){return f.useRef(null)}export{m as Combobox,ComboboxChip,ComboboxChips,ComboboxChipsInput,ComboboxClear,ComboboxCollection,ComboboxContent,ComboboxEmpty,ComboboxGroup,ComboboxInput,ComboboxItem,ComboboxLabel,ComboboxList,ComboboxSeparator,ComboboxTrigger,ComboboxValue,useComboboxAnchor};
1
+ import"../rolldown-runtime-BhWHdk3m.js";import{cn as e}from"../lib/utils.js";import{Button as t}from"./button.js";import{useFieldControlId as n}from"./field.js";import{InputGroup as r,InputGroupAddon as i,InputGroupButton as a,InputGroupInput as o}from"./input-group.js";import{IconCheck as s,IconSelector as c,IconX as l}from"@tabler/icons-react";import{jsx as u,jsxs as d}from"react/jsx-runtime";import*as f from"react";import{Combobox as p}from"@base-ui/react";const m=p.Root;function ComboboxValue({...e}){return/* @__PURE__ */ u(p.Value,{"data-slot":`combobox-value`,...e})}function ComboboxTrigger({className:t,children:n,icon:r=/* @__PURE__ */ u(c,{className:`pointer-events-none size-4 text-muted-foreground`}),...i}){return/* @__PURE__ */ d(p.Trigger,{"data-slot":`combobox-trigger`,className:e(`[&_svg:not([class*='size-'])]:size-4`,t),...i,children:[n,r]})}function ComboboxClear({className:t,...n}){return/* @__PURE__ */ u(p.Clear,{"data-slot":`combobox-clear`,render:/* @__PURE__ */ u(a,{variant:`ghost`,size:`icon-xs`}),className:e(t),...n,children:/* @__PURE__ */ u(l,{className:`pointer-events-none`})})}function ComboboxInput({className:t,children:s,disabled:c=!1,icon:l,id:f,showTrigger:m=!0,showClear:h=!1,triggerIcon:g,..._}){let v=n(f);return/* @__PURE__ */ d(r,{className:e(`w-auto`,t),children:[l&&/* @__PURE__ */ u(i,{align:`inline-start`,children:l}),/* @__PURE__ */ u(p.Input,{id:v,render:/* @__PURE__ */ u(o,{disabled:c}),..._}),/* @__PURE__ */ d(i,{align:`inline-end`,children:[m&&/* @__PURE__ */ u(a,{size:`icon-xs`,variant:`ghost`,asChild:!0,"data-slot":`input-group-button`,className:`group-has-data-[slot=combobox-clear]/input-group:hidden data-pressed:bg-transparent`,disabled:c,children:/* @__PURE__ */ u(ComboboxTrigger,{icon:g})}),h&&/* @__PURE__ */ u(ComboboxClear,{disabled:c})]}),s]})}function ComboboxContent({className:t,side:n=`bottom`,sideOffset:r=6,align:i=`start`,alignOffset:a=0,anchor:o,container:s,positionMethod:c=`absolute`,collisionBoundary:l,collisionPadding:d,sticky:f,arrowPadding:m,disableAnchorTracking:h,collisionAvoidance:g,..._}){return/* @__PURE__ */ u(p.Portal,{container:s,className:`absolute`,children:/* @__PURE__ */ u(p.Positioner,{side:n,sideOffset:r,align:i,alignOffset:a,anchor:o,positionMethod:c,collisionBoundary:l,collisionPadding:d,sticky:f,arrowPadding:m,disableAnchorTracking:h,collisionAvoidance:g,className:`isolate z-50`,children:/* @__PURE__ */ u(p.Popup,{"data-slot":`combobox-content`,"data-chips":!!o,className:e(`group/combobox-content max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+(--spacing(7)))] origin-(--transform-origin) overflow-hidden rounded-lg text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[chips=true]:min-w-(--anchor-width) data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 animate-none! relative bg-popover/70 before:pointer-events-none before:absolute before:inset-0 before:-z-1 before:rounded-[inherit] before:backdrop-blur-2xl before:backdrop-saturate-150 **:data-[slot$=-item]:focus:bg-foreground/10 **:data-[slot$=-item]:data-highlighted:bg-foreground/10 **:data-[slot$=-separator]:bg-foreground/5 **:data-[slot$=-trigger]:focus:bg-foreground/10 **:data-[slot$=-trigger]:aria-expanded:bg-foreground/10! **:data-[variant=destructive]:focus:bg-foreground/10! **:data-[variant=destructive]:text-accent-foreground! **:data-[variant=destructive]:**:text-accent-foreground!`,t),..._})})})}function ComboboxList({className:t,...n}){return/* @__PURE__ */ u(p.List,{"data-slot":`combobox-list`,className:e(`no-scrollbar max-h-[min(calc(--spacing(72)-(--spacing(9))),calc(var(--available-height)-(--spacing(9))))] scroll-py-1 overflow-y-auto overscroll-contain p-1 data-empty:p-0`,t),...n})}function ComboboxItem({className:t,children:n,...r}){return/* @__PURE__ */ d(p.Item,{"data-slot":`combobox-item`,className:e(`relative flex w-full cursor-default items-center gap-2 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,t),...r,children:[n,/* @__PURE__ */ u(p.ItemIndicator,{render:/* @__PURE__ */ u(`span`,{className:`pointer-events-none absolute right-2 flex size-4 items-center justify-center`}),children:/* @__PURE__ */ u(s,{className:`pointer-events-none`})})]})}function ComboboxGroup({className:t,...n}){return/* @__PURE__ */ u(p.Group,{"data-slot":`combobox-group`,className:e(t),...n})}function ComboboxLabel({className:t,...n}){return/* @__PURE__ */ u(p.GroupLabel,{"data-slot":`combobox-label`,className:e(`px-2 py-1.5 text-xs text-muted-foreground`,t),...n})}function ComboboxCollection({...e}){return/* @__PURE__ */ u(p.Collection,{"data-slot":`combobox-collection`,...e})}function ComboboxEmpty({className:t,...n}){return/* @__PURE__ */ u(p.Empty,{"data-slot":`combobox-empty`,className:e(`hidden w-full justify-center py-2 text-center text-sm text-muted-foreground group-data-empty/combobox-content:flex`,t),...n})}function ComboboxSeparator({className:t,...n}){return/* @__PURE__ */ u(p.Separator,{"data-slot":`combobox-separator`,className:e(`-mx-1 my-1 h-px bg-border`,t),...n})}function ComboboxChips({className:n,children:r,showClear:i=!1,...a}){return/* @__PURE__ */ d(p.Chips,{"data-slot":`combobox-chips`,className:e(`flex min-h-8 overflow-hidden flex-wrap items-center gap-1 rounded-lg border border-input bg-transparent bg-clip-padding px-2.5 py-1 text-sm transition-colors focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50 has-aria-invalid:border-destructive has-aria-invalid:ring-3 has-aria-invalid:ring-destructive/20 has-data-[slot=combobox-chip]:px-1 dark:bg-input/30 dark:has-aria-invalid:border-destructive/50 dark:has-aria-invalid:ring-destructive/40`,n),...a,children:[r,i&&/* @__PURE__ */ u(p.Clear,{"data-slot":`combobox-chips-clear`,render:/* @__PURE__ */ u(t,{variant:`ghost`,color:`zinc`,size:`icon-xs`}),className:`shrink-0 self-center size-5`,children:/* @__PURE__ */ u(l,{className:`pointer-events-none`})})]})}function ComboboxChip({className:n,children:r,showRemove:i=!0,...a}){return/* @__PURE__ */ d(p.Chip,{"data-slot":`combobox-chip`,className:e(`flex h-[calc(--spacing(5.25))] w-fit text-left max-w-full items-center justify-start gap-1 rounded-sm bg-muted px-1.5 text-xs font-medium whitespace-nowrap text-foreground has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 has-data-[slot=combobox-chip-remove]:pr-0`,n),...a,children:[/* @__PURE__ */ u(`span`,{className:`flex-1 truncate`,children:r}),i&&/* @__PURE__ */ u(p.ChipRemove,{render:/* @__PURE__ */ u(t,{variant:`ghost`,color:`zinc`,size:`icon-xs`}),className:`-ml-1 opacity-50 shrink-0 hover:opacity-100`,"data-slot":`combobox-chip-remove`,children:/* @__PURE__ */ u(l,{className:`pointer-events-none`})})]})}function ComboboxChipsInput({className:t,id:r,...i}){let a=n(r);return/* @__PURE__ */ u(p.Input,{id:a,"data-slot":`combobox-chip-input`,className:e(`min-w-16 flex-1 outline-none`,t),...i})}function useComboboxAnchor(){return f.useRef(null)}export{m as Combobox,ComboboxChip,ComboboxChips,ComboboxChipsInput,ComboboxClear,ComboboxCollection,ComboboxContent,ComboboxEmpty,ComboboxGroup,ComboboxInput,ComboboxItem,ComboboxLabel,ComboboxList,ComboboxSeparator,ComboboxTrigger,ComboboxValue,useComboboxAnchor};
2
2
  //# sourceMappingURL=combobox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"combobox.js","names":["ComboboxPrimitive"],"sources":["../../src/components/combobox.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { Combobox as ComboboxPrimitive } from '@base-ui/react'\nimport { IconCheck, IconSelector, IconX } from '@tabler/icons-react'\n\nimport { cn } from '../lib/utils'\nimport { Button } from './button'\nimport { useFieldControlId } from './field'\nimport { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput } from './input-group'\n\nexport type ComboboxProps = React.ComponentProps<typeof ComboboxPrimitive.Root>\n\nexport type ComboboxValueProps = ComboboxPrimitive.Value.Props\n\nexport type ComboboxTriggerProps = ComboboxPrimitive.Trigger.Props & {\n icon?: React.ReactNode\n}\n\nexport type ComboboxClearProps = ComboboxPrimitive.Clear.Props\n\nexport type ComboboxInputProps = ComboboxPrimitive.Input.Props & {\n icon?: React.ReactNode\n triggerIcon?: React.ReactNode\n showTrigger?: boolean\n showClear?: boolean\n}\n\nexport type ComboboxContentProps = ComboboxPrimitive.Popup.Props &\n Pick<\n ComboboxPrimitive.Positioner.Props,\n | 'side'\n | 'align'\n | 'sideOffset'\n | 'alignOffset'\n | 'anchor'\n | 'positionMethod'\n | 'collisionBoundary'\n | 'collisionPadding'\n | 'sticky'\n | 'arrowPadding'\n | 'disableAnchorTracking'\n | 'collisionAvoidance'\n > &\n Pick<ComboboxPrimitive.Portal.Props, 'container'>\n\nexport type ComboboxListProps = ComboboxPrimitive.List.Props\n\nexport type ComboboxItemProps = ComboboxPrimitive.Item.Props\n\nexport type ComboboxGroupProps = ComboboxPrimitive.Group.Props\n\nexport type ComboboxLabelProps = ComboboxPrimitive.GroupLabel.Props\n\nexport type ComboboxCollectionProps = ComboboxPrimitive.Collection.Props\n\nexport type ComboboxEmptyProps = ComboboxPrimitive.Empty.Props\n\nexport type ComboboxSeparatorProps = ComboboxPrimitive.Separator.Props\n\nexport type ComboboxChipsProps = React.ComponentPropsWithRef<typeof ComboboxPrimitive.Chips> &\n ComboboxPrimitive.Chips.Props & {\n showClear?: boolean\n }\n\nexport type ComboboxChipProps = ComboboxPrimitive.Chip.Props & {\n showRemove?: boolean\n}\n\nexport type ComboboxChipsInputProps = ComboboxPrimitive.Input.Props\n\nconst Combobox = ComboboxPrimitive.Root\n\nfunction ComboboxValue({ ...props }: ComboboxValueProps) {\n return <ComboboxPrimitive.Value data-slot=\"combobox-value\" {...props} />\n}\n\nfunction ComboboxTrigger({\n className,\n children,\n icon = <IconSelector className=\"pointer-events-none size-4 text-muted-foreground\" />,\n ...props\n}: ComboboxTriggerProps) {\n return (\n <ComboboxPrimitive.Trigger\n data-slot=\"combobox-trigger\"\n className={cn(\"[&_svg:not([class*='size-'])]:size-4\", className)}\n {...props}\n >\n {children}\n {icon}\n </ComboboxPrimitive.Trigger>\n )\n}\n\nfunction ComboboxClear({ className, ...props }: ComboboxClearProps) {\n return (\n <ComboboxPrimitive.Clear\n data-slot=\"combobox-clear\"\n render={<InputGroupButton variant=\"ghost\" size=\"icon-xs\" />}\n className={cn(className)}\n {...props}\n >\n <IconX className=\"pointer-events-none\" />\n </ComboboxPrimitive.Clear>\n )\n}\n\nfunction ComboboxInput({\n className,\n children,\n disabled = false,\n icon,\n id,\n showTrigger = true,\n showClear = false,\n triggerIcon,\n ...props\n}: ComboboxInputProps) {\n const fieldControlId = useFieldControlId(id)\n\n return (\n <InputGroup className={cn('w-auto', className)}>\n {icon && <InputGroupAddon align=\"inline-start\">{icon}</InputGroupAddon>}\n <ComboboxPrimitive.Input id={fieldControlId} render={<InputGroupInput disabled={disabled} />} {...props} />\n <InputGroupAddon align=\"inline-end\">\n {showTrigger && (\n <InputGroupButton\n size=\"icon-xs\"\n variant=\"ghost\"\n asChild\n data-slot=\"input-group-button\"\n className=\"group-has-data-[slot=combobox-clear]/input-group:hidden data-pressed:bg-transparent\"\n disabled={disabled}\n >\n <ComboboxTrigger icon={triggerIcon} />\n </InputGroupButton>\n )}\n {showClear && <ComboboxClear disabled={disabled} />}\n </InputGroupAddon>\n {children}\n </InputGroup>\n )\n}\n\nfunction ComboboxContent({\n className,\n side = 'bottom',\n sideOffset = 6,\n align = 'start',\n alignOffset = 0,\n anchor,\n container,\n positionMethod = 'absolute',\n collisionBoundary,\n collisionPadding,\n sticky,\n arrowPadding,\n disableAnchorTracking,\n collisionAvoidance,\n ...props\n}: ComboboxContentProps) {\n return (\n <ComboboxPrimitive.Portal container={container} className=\"absolute\">\n <ComboboxPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n anchor={anchor}\n positionMethod={positionMethod}\n collisionBoundary={collisionBoundary}\n collisionPadding={collisionPadding}\n sticky={sticky}\n arrowPadding={arrowPadding}\n disableAnchorTracking={disableAnchorTracking}\n collisionAvoidance={collisionAvoidance}\n className=\"isolate z-50\"\n >\n <ComboboxPrimitive.Popup\n data-slot=\"combobox-content\"\n data-chips={!!anchor}\n className={cn(\n 'group/combobox-content max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+(--spacing(7)))] origin-(--transform-origin) overflow-hidden rounded-lg text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[chips=true]:min-w-(--anchor-width) data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 animate-none! relative bg-popover/70 before:pointer-events-none before:absolute before:inset-0 before:-z-1 before:rounded-[inherit] before:backdrop-blur-2xl before:backdrop-saturate-150 **:data-[slot$=-item]:focus:bg-foreground/10 **:data-[slot$=-item]:data-highlighted:bg-foreground/10 **:data-[slot$=-separator]:bg-foreground/5 **:data-[slot$=-trigger]:focus:bg-foreground/10 **:data-[slot$=-trigger]:aria-expanded:bg-foreground/10! **:data-[variant=destructive]:focus:bg-foreground/10! **:data-[variant=destructive]:text-accent-foreground! **:data-[variant=destructive]:**:text-accent-foreground!',\n className\n )}\n {...props}\n />\n </ComboboxPrimitive.Positioner>\n </ComboboxPrimitive.Portal>\n )\n}\n\nfunction ComboboxList({ className, ...props }: ComboboxListProps) {\n return (\n <ComboboxPrimitive.List\n data-slot=\"combobox-list\"\n className={cn(\n 'no-scrollbar max-h-[min(calc(--spacing(72)-(--spacing(9))),calc(var(--available-height)-(--spacing(9))))] scroll-py-1 overflow-y-auto overscroll-contain p-1 data-empty:p-0',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxItem({ className, children, ...props }: ComboboxItemProps) {\n return (\n <ComboboxPrimitive.Item\n data-slot=\"combobox-item\"\n className={cn(\n \"relative flex w-full cursor-default items-center gap-2 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <ComboboxPrimitive.ItemIndicator\n render={<span className=\"pointer-events-none absolute right-2 flex size-4 items-center justify-center\" />}\n >\n <IconCheck className=\"pointer-events-none\" />\n </ComboboxPrimitive.ItemIndicator>\n </ComboboxPrimitive.Item>\n )\n}\n\nfunction ComboboxGroup({ className, ...props }: ComboboxGroupProps) {\n return <ComboboxPrimitive.Group data-slot=\"combobox-group\" className={cn(className)} {...props} />\n}\n\nfunction ComboboxLabel({ className, ...props }: ComboboxLabelProps) {\n return (\n <ComboboxPrimitive.GroupLabel\n data-slot=\"combobox-label\"\n className={cn('px-2 py-1.5 text-xs text-muted-foreground', className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxCollection({ ...props }: ComboboxCollectionProps) {\n return <ComboboxPrimitive.Collection data-slot=\"combobox-collection\" {...props} />\n}\n\nfunction ComboboxEmpty({ className, ...props }: ComboboxEmptyProps) {\n return (\n <ComboboxPrimitive.Empty\n data-slot=\"combobox-empty\"\n className={cn(\n 'hidden w-full justify-center py-2 text-center text-sm text-muted-foreground group-data-empty/combobox-content:flex',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxSeparator({ className, ...props }: ComboboxSeparatorProps) {\n return (\n <ComboboxPrimitive.Separator\n data-slot=\"combobox-separator\"\n className={cn('-mx-1 my-1 h-px bg-border', className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxChips({ className, children, showClear = false, ...props }: ComboboxChipsProps) {\n return (\n <ComboboxPrimitive.Chips\n data-slot=\"combobox-chips\"\n className={cn(\n 'flex min-h-8 overflow-hidden flex-wrap items-center gap-1 rounded-lg border border-input bg-transparent bg-clip-padding px-2.5 py-1 text-sm transition-colors focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50 has-aria-invalid:border-destructive has-aria-invalid:ring-3 has-aria-invalid:ring-destructive/20 has-data-[slot=combobox-chip]:px-1 dark:bg-input/30 dark:has-aria-invalid:border-destructive/50 dark:has-aria-invalid:ring-destructive/40',\n className\n )}\n {...props}\n >\n {children}\n {showClear && (\n <ComboboxPrimitive.Clear\n data-slot=\"combobox-chips-clear\"\n render={<Button variant=\"ghost\" color=\"zinc\" size=\"icon-xs\" />}\n className=\"shrink-0 self-center size-5\"\n >\n <IconX className=\"pointer-events-none\" />\n </ComboboxPrimitive.Clear>\n )}\n </ComboboxPrimitive.Chips>\n )\n}\n\nfunction ComboboxChip({ className, children, showRemove = true, ...props }: ComboboxChipProps) {\n return (\n <ComboboxPrimitive.Chip\n data-slot=\"combobox-chip\"\n className={cn(\n 'flex h-[calc(--spacing(5.25))] w-fit text-left max-w-full items-center justify-start gap-1 rounded-sm bg-muted px-1.5 text-xs font-medium whitespace-nowrap text-foreground has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 has-data-[slot=combobox-chip-remove]:pr-0',\n className\n )}\n {...props}\n >\n <span className=\"flex-1 truncate\">{children}</span>\n {showRemove && (\n <ComboboxPrimitive.ChipRemove\n render={<Button variant=\"ghost\" color=\"zinc\" size=\"icon-xs\" />}\n className=\"-ml-1 opacity-50 shrink-0 hover:opacity-100\"\n data-slot=\"combobox-chip-remove\"\n >\n <IconX className=\"pointer-events-none\" />\n </ComboboxPrimitive.ChipRemove>\n )}\n </ComboboxPrimitive.Chip>\n )\n}\n\nfunction ComboboxChipsInput({ className, id, ...props }: ComboboxChipsInputProps) {\n const fieldControlId = useFieldControlId(id)\n\n return (\n <ComboboxPrimitive.Input\n id={fieldControlId}\n data-slot=\"combobox-chip-input\"\n className={cn('min-w-16 flex-1 outline-none', className)}\n {...props}\n />\n )\n}\n\nfunction useComboboxAnchor() {\n return React.useRef<HTMLDivElement | null>(null)\n}\n\nexport {\n Combobox,\n ComboboxChip,\n ComboboxChips,\n ComboboxChipsInput,\n ComboboxClear,\n ComboboxCollection,\n ComboboxContent,\n ComboboxEmpty,\n ComboboxGroup,\n ComboboxInput,\n ComboboxItem,\n ComboboxLabel,\n ComboboxList,\n ComboboxSeparator,\n ComboboxTrigger,\n ComboboxValue,\n useComboboxAnchor\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"combobox.js","names":["ComboboxPrimitive","React","Combobox$1","Combobox","props","IconSelector","cn","className","children","icon","InputGroupButton","IconX","fieldControlId","useFieldControlId","id","InputGroup","InputGroupAddon","InputGroupInput","showTrigger","triggerIcon","showClear","anchor","IconCheck","Button","showRemove"],"sources":["../../src/components/combobox.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { Combobox as ComboboxPrimitive } from '@base-ui/react'\nimport { IconCheck, IconSelector, IconX } from '@tabler/icons-react'\n\nimport { cn } from '../lib/utils'\nimport { Button } from './button'\nimport { useFieldControlId } from './field'\nimport { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput } from './input-group'\n\nexport type ComboboxProps = React.ComponentProps<typeof ComboboxPrimitive.Root>\n\nexport type ComboboxValueProps = ComboboxPrimitive.Value.Props\n\nexport type ComboboxTriggerProps = ComboboxPrimitive.Trigger.Props & {\n icon?: React.ReactNode\n}\n\nexport type ComboboxClearProps = ComboboxPrimitive.Clear.Props\n\nexport type ComboboxInputProps = ComboboxPrimitive.Input.Props & {\n icon?: React.ReactNode\n triggerIcon?: React.ReactNode\n showTrigger?: boolean\n showClear?: boolean\n}\n\nexport type ComboboxContentProps = ComboboxPrimitive.Popup.Props &\n Pick<\n ComboboxPrimitive.Positioner.Props,\n | 'side'\n | 'align'\n | 'sideOffset'\n | 'alignOffset'\n | 'anchor'\n | 'positionMethod'\n | 'collisionBoundary'\n | 'collisionPadding'\n | 'sticky'\n | 'arrowPadding'\n | 'disableAnchorTracking'\n | 'collisionAvoidance'\n > &\n Pick<ComboboxPrimitive.Portal.Props, 'container'>\n\nexport type ComboboxListProps = ComboboxPrimitive.List.Props\n\nexport type ComboboxItemProps = ComboboxPrimitive.Item.Props\n\nexport type ComboboxGroupProps = ComboboxPrimitive.Group.Props\n\nexport type ComboboxLabelProps = ComboboxPrimitive.GroupLabel.Props\n\nexport type ComboboxCollectionProps = ComboboxPrimitive.Collection.Props\n\nexport type ComboboxEmptyProps = ComboboxPrimitive.Empty.Props\n\nexport type ComboboxSeparatorProps = ComboboxPrimitive.Separator.Props\n\nexport type ComboboxChipsProps = React.ComponentPropsWithRef<typeof ComboboxPrimitive.Chips> &\n ComboboxPrimitive.Chips.Props & {\n showClear?: boolean\n }\n\nexport type ComboboxChipProps = ComboboxPrimitive.Chip.Props & {\n showRemove?: boolean\n}\n\nexport type ComboboxChipsInputProps = ComboboxPrimitive.Input.Props\n\nconst Combobox = ComboboxPrimitive.Root\n\nfunction ComboboxValue({ ...props }: ComboboxValueProps) {\n return <ComboboxPrimitive.Value data-slot=\"combobox-value\" {...props} />\n}\n\nfunction ComboboxTrigger({\n className,\n children,\n icon = <IconSelector className=\"pointer-events-none size-4 text-muted-foreground\" />,\n ...props\n}: ComboboxTriggerProps) {\n return (\n <ComboboxPrimitive.Trigger\n data-slot=\"combobox-trigger\"\n className={cn(\"[&_svg:not([class*='size-'])]:size-4\", className)}\n {...props}\n >\n {children}\n {icon}\n </ComboboxPrimitive.Trigger>\n )\n}\n\nfunction ComboboxClear({ className, ...props }: ComboboxClearProps) {\n return (\n <ComboboxPrimitive.Clear\n data-slot=\"combobox-clear\"\n render={<InputGroupButton variant=\"ghost\" size=\"icon-xs\" />}\n className={cn(className)}\n {...props}\n >\n <IconX className=\"pointer-events-none\" />\n </ComboboxPrimitive.Clear>\n )\n}\n\nfunction ComboboxInput({\n className,\n children,\n disabled = false,\n icon,\n id,\n showTrigger = true,\n showClear = false,\n triggerIcon,\n ...props\n}: ComboboxInputProps) {\n const fieldControlId = useFieldControlId(id)\n\n return (\n <InputGroup className={cn('w-auto', className)}>\n {icon && <InputGroupAddon align=\"inline-start\">{icon}</InputGroupAddon>}\n <ComboboxPrimitive.Input id={fieldControlId} render={<InputGroupInput disabled={disabled} />} {...props} />\n <InputGroupAddon align=\"inline-end\">\n {showTrigger && (\n <InputGroupButton\n size=\"icon-xs\"\n variant=\"ghost\"\n asChild\n data-slot=\"input-group-button\"\n className=\"group-has-data-[slot=combobox-clear]/input-group:hidden data-pressed:bg-transparent\"\n disabled={disabled}\n >\n <ComboboxTrigger icon={triggerIcon} />\n </InputGroupButton>\n )}\n {showClear && <ComboboxClear disabled={disabled} />}\n </InputGroupAddon>\n {children}\n </InputGroup>\n )\n}\n\nfunction ComboboxContent({\n className,\n side = 'bottom',\n sideOffset = 6,\n align = 'start',\n alignOffset = 0,\n anchor,\n container,\n positionMethod = 'absolute',\n collisionBoundary,\n collisionPadding,\n sticky,\n arrowPadding,\n disableAnchorTracking,\n collisionAvoidance,\n ...props\n}: ComboboxContentProps) {\n return (\n <ComboboxPrimitive.Portal container={container} className=\"absolute\">\n <ComboboxPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n anchor={anchor}\n positionMethod={positionMethod}\n collisionBoundary={collisionBoundary}\n collisionPadding={collisionPadding}\n sticky={sticky}\n arrowPadding={arrowPadding}\n disableAnchorTracking={disableAnchorTracking}\n collisionAvoidance={collisionAvoidance}\n className=\"isolate z-50\"\n >\n <ComboboxPrimitive.Popup\n data-slot=\"combobox-content\"\n data-chips={!!anchor}\n className={cn(\n 'group/combobox-content max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+(--spacing(7)))] origin-(--transform-origin) overflow-hidden rounded-lg text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[chips=true]:min-w-(--anchor-width) data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 animate-none! relative bg-popover/70 before:pointer-events-none before:absolute before:inset-0 before:-z-1 before:rounded-[inherit] before:backdrop-blur-2xl before:backdrop-saturate-150 **:data-[slot$=-item]:focus:bg-foreground/10 **:data-[slot$=-item]:data-highlighted:bg-foreground/10 **:data-[slot$=-separator]:bg-foreground/5 **:data-[slot$=-trigger]:focus:bg-foreground/10 **:data-[slot$=-trigger]:aria-expanded:bg-foreground/10! **:data-[variant=destructive]:focus:bg-foreground/10! **:data-[variant=destructive]:text-accent-foreground! **:data-[variant=destructive]:**:text-accent-foreground!',\n className\n )}\n {...props}\n />\n </ComboboxPrimitive.Positioner>\n </ComboboxPrimitive.Portal>\n )\n}\n\nfunction ComboboxList({ className, ...props }: ComboboxListProps) {\n return (\n <ComboboxPrimitive.List\n data-slot=\"combobox-list\"\n className={cn(\n 'no-scrollbar max-h-[min(calc(--spacing(72)-(--spacing(9))),calc(var(--available-height)-(--spacing(9))))] scroll-py-1 overflow-y-auto overscroll-contain p-1 data-empty:p-0',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxItem({ className, children, ...props }: ComboboxItemProps) {\n return (\n <ComboboxPrimitive.Item\n data-slot=\"combobox-item\"\n className={cn(\n \"relative flex w-full cursor-default items-center gap-2 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <ComboboxPrimitive.ItemIndicator\n render={<span className=\"pointer-events-none absolute right-2 flex size-4 items-center justify-center\" />}\n >\n <IconCheck className=\"pointer-events-none\" />\n </ComboboxPrimitive.ItemIndicator>\n </ComboboxPrimitive.Item>\n )\n}\n\nfunction ComboboxGroup({ className, ...props }: ComboboxGroupProps) {\n return <ComboboxPrimitive.Group data-slot=\"combobox-group\" className={cn(className)} {...props} />\n}\n\nfunction ComboboxLabel({ className, ...props }: ComboboxLabelProps) {\n return (\n <ComboboxPrimitive.GroupLabel\n data-slot=\"combobox-label\"\n className={cn('px-2 py-1.5 text-xs text-muted-foreground', className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxCollection({ ...props }: ComboboxCollectionProps) {\n return <ComboboxPrimitive.Collection data-slot=\"combobox-collection\" {...props} />\n}\n\nfunction ComboboxEmpty({ className, ...props }: ComboboxEmptyProps) {\n return (\n <ComboboxPrimitive.Empty\n data-slot=\"combobox-empty\"\n className={cn(\n 'hidden w-full justify-center py-2 text-center text-sm text-muted-foreground group-data-empty/combobox-content:flex',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxSeparator({ className, ...props }: ComboboxSeparatorProps) {\n return (\n <ComboboxPrimitive.Separator\n data-slot=\"combobox-separator\"\n className={cn('-mx-1 my-1 h-px bg-border', className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxChips({ className, children, showClear = false, ...props }: ComboboxChipsProps) {\n return (\n <ComboboxPrimitive.Chips\n data-slot=\"combobox-chips\"\n className={cn(\n 'flex min-h-8 overflow-hidden flex-wrap items-center gap-1 rounded-lg border border-input bg-transparent bg-clip-padding px-2.5 py-1 text-sm transition-colors focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50 has-aria-invalid:border-destructive has-aria-invalid:ring-3 has-aria-invalid:ring-destructive/20 has-data-[slot=combobox-chip]:px-1 dark:bg-input/30 dark:has-aria-invalid:border-destructive/50 dark:has-aria-invalid:ring-destructive/40',\n className\n )}\n {...props}\n >\n {children}\n {showClear && (\n <ComboboxPrimitive.Clear\n data-slot=\"combobox-chips-clear\"\n render={<Button variant=\"ghost\" color=\"zinc\" size=\"icon-xs\" />}\n className=\"shrink-0 self-center size-5\"\n >\n <IconX className=\"pointer-events-none\" />\n </ComboboxPrimitive.Clear>\n )}\n </ComboboxPrimitive.Chips>\n )\n}\n\nfunction ComboboxChip({ className, children, showRemove = true, ...props }: ComboboxChipProps) {\n return (\n <ComboboxPrimitive.Chip\n data-slot=\"combobox-chip\"\n className={cn(\n 'flex h-[calc(--spacing(5.25))] w-fit text-left max-w-full items-center justify-start gap-1 rounded-sm bg-muted px-1.5 text-xs font-medium whitespace-nowrap text-foreground has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 has-data-[slot=combobox-chip-remove]:pr-0',\n className\n )}\n {...props}\n >\n <span className=\"flex-1 truncate\">{children}</span>\n {showRemove && (\n <ComboboxPrimitive.ChipRemove\n render={<Button variant=\"ghost\" color=\"zinc\" size=\"icon-xs\" />}\n className=\"-ml-1 opacity-50 shrink-0 hover:opacity-100\"\n data-slot=\"combobox-chip-remove\"\n >\n <IconX className=\"pointer-events-none\" />\n </ComboboxPrimitive.ChipRemove>\n )}\n </ComboboxPrimitive.Chip>\n )\n}\n\nfunction ComboboxChipsInput({ className, id, ...props }: ComboboxChipsInputProps) {\n const fieldControlId = useFieldControlId(id)\n\n return (\n <ComboboxPrimitive.Input\n id={fieldControlId}\n data-slot=\"combobox-chip-input\"\n className={cn('min-w-16 flex-1 outline-none', className)}\n {...props}\n />\n )\n}\n\nfunction useComboboxAnchor() {\n return React.useRef<HTMLDivElement | null>(null)\n}\n\nexport {\n Combobox,\n ComboboxChip,\n ComboboxChips,\n ComboboxChipsInput,\n ComboboxClear,\n ComboboxCollection,\n ComboboxContent,\n ComboboxEmpty,\n ComboboxGroup,\n ComboboxInput,\n ComboboxItem,\n ComboboxLabel,\n ComboboxList,\n ComboboxSeparator,\n ComboboxTrigger,\n ComboboxValue,\n useComboboxAnchor\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import"../rolldown-runtime-BhWHdk3m.js";import{cn as e}from"../lib/utils.js";import{useFieldControlId as t}from"./field.js";import{InputGroup as n,InputGroupAddon as r}from"./input-group.js";import{Dialog as i,DialogContent as a,DialogDescription as o,DialogHeader as s,DialogTitle as c}from"./dialog.js";import{IconCheck as l,IconSearch as u}from"@tabler/icons-react";import{jsx as d,jsxs as f}from"react/jsx-runtime";import{Command as p}from"cmdk";function Command({className:t,...n}){return d(p,{"data-slot":`command`,className:e(`flex size-full flex-col overflow-hidden rounded-xl! bg-popover p-1 text-popover-foreground`,t),...n})}function CommandDialog({title:t=`Command Palette`,description:n=`Search for a command to run...`,children:r,className:l,showCloseButton:u=!1,...p}){return f(i,{...p,children:[f(s,{className:`sr-only`,children:[d(c,{children:t}),d(o,{children:n})]}),d(a,{className:e(`top-1/3 translate-y-0 overflow-hidden rounded-xl! p-0`,l),showCloseButton:u,children:r})]})}function CommandInput({className:i,id:a,...o}){let s=t(a);return d(`div`,{"data-slot":`command-input-wrapper`,className:`p-1 pb-0`,children:f(n,{className:e(`h-8! rounded-lg! border-input/30 bg-input/30 shadow-none!`,`*:data-[slot=input-group-addon]:pl-2!`),children:[d(p.Input,{id:s,"data-slot":`command-input`,className:e(`w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50`,i),...o}),d(r,{children:d(u,{className:`size-4 shrink-0 opacity-50`})})]})})}function CommandList({className:t,...n}){return d(p.List,{"data-slot":`command-list`,className:e(`no-scrollbar max-h-72 scroll-py-1 overflow-x-hidden overflow-y-auto outline-none`,t),...n})}function CommandEmpty({className:t,...n}){return d(p.Empty,{"data-slot":`command-empty`,className:e(`py-6 text-center text-sm`,t),...n})}function CommandGroup({className:t,...n}){return d(p.Group,{"data-slot":`command-group`,className:e(`overflow-hidden p-1 text-foreground`,`**:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5`,`**:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-medium`,`**:[[cmdk-group-heading]]:text-muted-foreground`,t),...n})}function CommandSeparator({className:t,...n}){return d(p.Separator,{"data-slot":`command-separator`,className:e(`-mx-1 h-px bg-border`,t),...n})}function CommandItem({className:t,children:n,...r}){return f(p.Item,{"data-slot":`command-item`,className:e(`group/command-item relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none`,`in-data-[slot=dialog-content]:rounded-lg!`,`data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50`,`data-selected:bg-muted data-selected:text-foreground data-selected:*:[svg]:text-foreground`,`[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,t),...r,children:[n,d(l,{className:e(`ml-auto opacity-0`,`group-has-data-[slot=command-shortcut]/command-item:hidden`,`group-data-[checked=true]/command-item:opacity-100`)})]})}function CommandShortcut({className:t,...n}){return d(`span`,{"data-slot":`command-shortcut`,className:e(`ml-auto text-xs tracking-widest text-muted-foreground group-data-selected/command-item:text-foreground`,t),...n})}export{Command,CommandDialog,CommandEmpty,CommandGroup,CommandInput,CommandItem,CommandList,CommandSeparator,CommandShortcut};
1
+ import"../rolldown-runtime-BhWHdk3m.js";import{cn as e}from"../lib/utils.js";import{useFieldControlId as t}from"./field.js";import{InputGroup as n,InputGroupAddon as r}from"./input-group.js";import{Dialog as i,DialogContent as a,DialogDescription as o,DialogHeader as s,DialogTitle as c}from"./dialog.js";import{IconCheck as l,IconSearch as u}from"@tabler/icons-react";import{jsx as d,jsxs as f}from"react/jsx-runtime";import{Command as p}from"cmdk";function Command({className:t,...n}){return/* @__PURE__ */ d(p,{"data-slot":`command`,className:e(`flex size-full flex-col overflow-hidden rounded-xl! bg-popover p-1 text-popover-foreground`,t),...n})}function CommandDialog({title:t=`Command Palette`,description:n=`Search for a command to run...`,children:r,className:l,showCloseButton:u=!1,...p}){return/* @__PURE__ */ f(i,{...p,children:[/* @__PURE__ */ f(s,{className:`sr-only`,children:[/* @__PURE__ */ d(c,{children:t}),/* @__PURE__ */ d(o,{children:n})]}),/* @__PURE__ */ d(a,{className:e(`top-1/3 translate-y-0 overflow-hidden rounded-xl! p-0`,l),showCloseButton:u,children:r})]})}function CommandInput({className:i,id:a,...o}){let s=t(a);return/* @__PURE__ */ d(`div`,{"data-slot":`command-input-wrapper`,className:`p-1 pb-0`,children:/* @__PURE__ */ f(n,{className:e(`h-8! rounded-lg! border-input/30 bg-input/30 shadow-none!`,`*:data-[slot=input-group-addon]:pl-2!`),children:[/* @__PURE__ */ d(p.Input,{id:s,"data-slot":`command-input`,className:e(`w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50`,i),...o}),/* @__PURE__ */ d(r,{children:/* @__PURE__ */ d(u,{className:`size-4 shrink-0 opacity-50`})})]})})}function CommandList({className:t,...n}){return/* @__PURE__ */ d(p.List,{"data-slot":`command-list`,className:e(`no-scrollbar max-h-72 scroll-py-1 overflow-x-hidden overflow-y-auto outline-none`,t),...n})}function CommandEmpty({className:t,...n}){return/* @__PURE__ */ d(p.Empty,{"data-slot":`command-empty`,className:e(`py-6 text-center text-sm`,t),...n})}function CommandGroup({className:t,...n}){return/* @__PURE__ */ d(p.Group,{"data-slot":`command-group`,className:e(`overflow-hidden p-1 text-foreground`,`**:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5`,`**:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-medium`,`**:[[cmdk-group-heading]]:text-muted-foreground`,t),...n})}function CommandSeparator({className:t,...n}){return/* @__PURE__ */ d(p.Separator,{"data-slot":`command-separator`,className:e(`-mx-1 h-px bg-border`,t),...n})}function CommandItem({className:t,children:n,...r}){return/* @__PURE__ */ f(p.Item,{"data-slot":`command-item`,className:e(`group/command-item relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none`,`in-data-[slot=dialog-content]:rounded-lg!`,`data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50`,`data-selected:bg-muted data-selected:text-foreground data-selected:*:[svg]:text-foreground`,`[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,t),...r,children:[n,/* @__PURE__ */ d(l,{className:e(`ml-auto opacity-0`,`group-has-data-[slot=command-shortcut]/command-item:hidden`,`group-data-[checked=true]/command-item:opacity-100`)})]})}function CommandShortcut({className:t,...n}){return/* @__PURE__ */ d(`span`,{"data-slot":`command-shortcut`,className:e(`ml-auto text-xs tracking-widest text-muted-foreground group-data-selected/command-item:text-foreground`,t),...n})}export{Command,CommandDialog,CommandEmpty,CommandGroup,CommandInput,CommandItem,CommandList,CommandSeparator,CommandShortcut};
2
2
  //# sourceMappingURL=command.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","names":["CommandPrimitive"],"sources":["../../src/components/command.tsx"],"sourcesContent":["import type * as React from 'react'\n\nimport { IconCheck, IconSearch } from '@tabler/icons-react'\nimport { Command as CommandPrimitive } from 'cmdk'\n\nimport { cn } from '../lib/utils'\nimport { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from './dialog'\nimport { useFieldControlId } from './field'\nimport { InputGroup, InputGroupAddon } from './input-group'\n\nexport type CommandProps = React.ComponentProps<typeof CommandPrimitive>\n\nexport type CommandDialogProps = React.ComponentProps<typeof Dialog> & {\n title?: string\n description?: string\n className?: string\n showCloseButton?: boolean\n}\n\nexport type CommandInputProps = React.ComponentProps<typeof CommandPrimitive.Input>\n\nexport type CommandListProps = React.ComponentProps<typeof CommandPrimitive.List>\n\nexport type CommandEmptyProps = React.ComponentProps<typeof CommandPrimitive.Empty>\n\nexport type CommandGroupProps = React.ComponentProps<typeof CommandPrimitive.Group>\n\nexport type CommandSeparatorProps = React.ComponentProps<typeof CommandPrimitive.Separator>\n\nexport type CommandItemProps = React.ComponentProps<typeof CommandPrimitive.Item>\n\nexport type CommandShortcutProps = React.ComponentProps<'span'>\n\nfunction Command({ className, ...props }: CommandProps) {\n return (\n <CommandPrimitive\n data-slot=\"command\"\n className={cn(\n 'flex size-full flex-col overflow-hidden rounded-xl! bg-popover p-1 text-popover-foreground',\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 = false,\n ...props\n}: CommandDialogProps) {\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('top-1/3 translate-y-0 overflow-hidden rounded-xl! p-0', className)}\n showCloseButton={showCloseButton}\n >\n {children}\n </DialogContent>\n </Dialog>\n )\n}\n\nfunction CommandInput({ className, id, ...props }: CommandInputProps) {\n const fieldControlId = useFieldControlId(id)\n\n return (\n <div data-slot=\"command-input-wrapper\" className=\"p-1 pb-0\">\n <InputGroup\n className={cn(\n 'h-8! rounded-lg! border-input/30 bg-input/30 shadow-none!',\n '*:data-[slot=input-group-addon]:pl-2!'\n )}\n >\n <CommandPrimitive.Input\n id={fieldControlId}\n data-slot=\"command-input\"\n className={cn('w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50', className)}\n {...props}\n />\n <InputGroupAddon>\n <IconSearch className=\"size-4 shrink-0 opacity-50\" />\n </InputGroupAddon>\n </InputGroup>\n </div>\n )\n}\n\nfunction CommandList({ className, ...props }: CommandListProps) {\n return (\n <CommandPrimitive.List\n data-slot=\"command-list\"\n className={cn('no-scrollbar max-h-72 scroll-py-1 overflow-x-hidden overflow-y-auto outline-none', className)}\n {...props}\n />\n )\n}\n\nfunction CommandEmpty({ className, ...props }: CommandEmptyProps) {\n return (\n <CommandPrimitive.Empty\n data-slot=\"command-empty\"\n className={cn('py-6 text-center text-sm', className)}\n {...props}\n />\n )\n}\n\nfunction CommandGroup({ className, ...props }: CommandGroupProps) {\n return (\n <CommandPrimitive.Group\n data-slot=\"command-group\"\n className={cn(\n 'overflow-hidden p-1 text-foreground',\n '**:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5',\n '**:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-medium',\n '**:[[cmdk-group-heading]]:text-muted-foreground',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CommandSeparator({ className, ...props }: CommandSeparatorProps) {\n return (\n <CommandPrimitive.Separator\n data-slot=\"command-separator\"\n className={cn('-mx-1 h-px bg-border', className)}\n {...props}\n />\n )\n}\n\nfunction CommandItem({ className, children, ...props }: CommandItemProps) {\n return (\n <CommandPrimitive.Item\n data-slot=\"command-item\"\n className={cn(\n 'group/command-item relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none',\n 'in-data-[slot=dialog-content]:rounded-lg!',\n 'data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50',\n 'data-selected:bg-muted data-selected:text-foreground data-selected:*:[svg]:text-foreground',\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <IconCheck\n className={cn(\n 'ml-auto opacity-0',\n 'group-has-data-[slot=command-shortcut]/command-item:hidden',\n 'group-data-[checked=true]/command-item:opacity-100'\n )}\n />\n </CommandPrimitive.Item>\n )\n}\n\nfunction CommandShortcut({ className, ...props }: CommandShortcutProps) {\n return (\n <span\n data-slot=\"command-shortcut\"\n className={cn(\n 'ml-auto text-xs tracking-widest text-muted-foreground group-data-selected/command-item:text-foreground',\n className\n )}\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":"kcAiCA,SAAS,QAAQ,CAAE,YAAW,GAAG,GAAuB,CACtD,OACE,EAACA,EAAD,CACE,YAAU,UACV,UAAW,EACT,6FACA,CACF,EACA,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,cAAc,CACrB,QAAQ,kBACR,cAAc,iCACd,WACA,YACA,kBAAkB,GAClB,GAAG,GACkB,CACrB,OACE,EAAC,EAAD,CAAQ,GAAI,EAAZ,SAAA,CACE,EAAC,EAAD,CAAc,UAAU,UAAxB,SAAA,CACE,EAAC,EAAD,CAAA,SAAc,CAAmB,CAAA,EACjC,EAAC,EAAD,CAAA,SAAoB,CAA+B,CAAA,CACvC,CACd,CAAA,EAAA,EAAC,EAAD,CACE,UAAW,EAAG,wDAAyD,CAAS,EAC/D,kBAEhB,UACY,CAAA,CACT,GAEZ,CAEA,SAAS,aAAa,CAAE,YAAW,KAAI,GAAG,GAA4B,CACpE,IAAM,EAAiB,EAAkB,CAAE,EAE3C,OACE,EAAC,MAAD,CAAK,YAAU,wBAAwB,UAAU,WAC/C,SAAA,EAAC,EAAD,CACE,UAAW,EACT,4DACA,uCACF,EAJF,SAAA,CAME,EAACA,EAAiB,MAAlB,CACE,GAAI,EACJ,YAAU,gBACV,UAAW,EAAG,gFAAiF,CAAS,EACxG,GAAI,CACL,CAAA,EACD,EAAC,EAAD,CAAA,SACE,EAAC,EAAD,CAAY,UAAU,4BAA8B,CAAA,CACrC,CAAA,CACP,GACT,CAAA,CAET,CAEA,SAAS,YAAY,CAAE,YAAW,GAAG,GAA2B,CAC9D,OACE,EAACA,EAAiB,KAAlB,CACE,YAAU,eACV,UAAW,EAAG,mFAAoF,CAAS,EAC3G,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,aAAa,CAAE,YAAW,GAAG,GAA4B,CAChE,OACE,EAACA,EAAiB,MAAlB,CACE,YAAU,gBACV,UAAW,EAAG,2BAA4B,CAAS,EACnD,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,aAAa,CAAE,YAAW,GAAG,GAA4B,CAChE,OACE,EAACA,EAAiB,MAAlB,CACE,YAAU,gBACV,UAAW,EACT,sCACA,kEACA,0EACA,kDACA,CACF,EACA,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,iBAAiB,CAAE,YAAW,GAAG,GAAgC,CACxE,OACE,EAACA,EAAiB,UAAlB,CACE,YAAU,oBACV,UAAW,EAAG,uBAAwB,CAAS,EAC/C,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,YAAY,CAAE,YAAW,WAAU,GAAG,GAA2B,CACxE,OACE,EAACA,EAAiB,KAAlB,CACE,YAAU,eACV,UAAW,EACT,+HACA,4CACA,2EACA,6FACA,oFACA,CACF,EACA,GAAI,EAVN,SAAA,CAYG,EACD,EAAC,EAAD,CACE,UAAW,EACT,oBACA,6DACA,oDACF,CACD,CAAA,CACoB,GAE3B,CAEA,SAAS,gBAAgB,CAAE,YAAW,GAAG,GAA+B,CACtE,OACE,EAAC,OAAD,CACE,YAAU,mBACV,UAAW,EACT,yGACA,CACF,EACA,GAAI,CACL,CAAA,CAEL"}
1
+ {"version":3,"file":"command.js","names":["CommandPrimitive","Command$1","props","cn","className","Dialog","DialogHeader","DialogTitle","title","DialogDescription","description","DialogContent","fieldControlId","useFieldControlId","id","InputGroup","InputGroupAddon","IconSearch","children","IconCheck"],"sources":["../../src/components/command.tsx"],"sourcesContent":["import type * as React from 'react'\n\nimport { IconCheck, IconSearch } from '@tabler/icons-react'\nimport { Command as CommandPrimitive } from 'cmdk'\n\nimport { cn } from '../lib/utils'\nimport { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from './dialog'\nimport { useFieldControlId } from './field'\nimport { InputGroup, InputGroupAddon } from './input-group'\n\nexport type CommandProps = React.ComponentProps<typeof CommandPrimitive>\n\nexport type CommandDialogProps = React.ComponentProps<typeof Dialog> & {\n title?: string\n description?: string\n className?: string\n showCloseButton?: boolean\n}\n\nexport type CommandInputProps = React.ComponentProps<typeof CommandPrimitive.Input>\n\nexport type CommandListProps = React.ComponentProps<typeof CommandPrimitive.List>\n\nexport type CommandEmptyProps = React.ComponentProps<typeof CommandPrimitive.Empty>\n\nexport type CommandGroupProps = React.ComponentProps<typeof CommandPrimitive.Group>\n\nexport type CommandSeparatorProps = React.ComponentProps<typeof CommandPrimitive.Separator>\n\nexport type CommandItemProps = React.ComponentProps<typeof CommandPrimitive.Item>\n\nexport type CommandShortcutProps = React.ComponentProps<'span'>\n\nfunction Command({ className, ...props }: CommandProps) {\n return (\n <CommandPrimitive\n data-slot=\"command\"\n className={cn(\n 'flex size-full flex-col overflow-hidden rounded-xl! bg-popover p-1 text-popover-foreground',\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 = false,\n ...props\n}: CommandDialogProps) {\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('top-1/3 translate-y-0 overflow-hidden rounded-xl! p-0', className)}\n showCloseButton={showCloseButton}\n >\n {children}\n </DialogContent>\n </Dialog>\n )\n}\n\nfunction CommandInput({ className, id, ...props }: CommandInputProps) {\n const fieldControlId = useFieldControlId(id)\n\n return (\n <div data-slot=\"command-input-wrapper\" className=\"p-1 pb-0\">\n <InputGroup\n className={cn(\n 'h-8! rounded-lg! border-input/30 bg-input/30 shadow-none!',\n '*:data-[slot=input-group-addon]:pl-2!'\n )}\n >\n <CommandPrimitive.Input\n id={fieldControlId}\n data-slot=\"command-input\"\n className={cn('w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50', className)}\n {...props}\n />\n <InputGroupAddon>\n <IconSearch className=\"size-4 shrink-0 opacity-50\" />\n </InputGroupAddon>\n </InputGroup>\n </div>\n )\n}\n\nfunction CommandList({ className, ...props }: CommandListProps) {\n return (\n <CommandPrimitive.List\n data-slot=\"command-list\"\n className={cn('no-scrollbar max-h-72 scroll-py-1 overflow-x-hidden overflow-y-auto outline-none', className)}\n {...props}\n />\n )\n}\n\nfunction CommandEmpty({ className, ...props }: CommandEmptyProps) {\n return (\n <CommandPrimitive.Empty\n data-slot=\"command-empty\"\n className={cn('py-6 text-center text-sm', className)}\n {...props}\n />\n )\n}\n\nfunction CommandGroup({ className, ...props }: CommandGroupProps) {\n return (\n <CommandPrimitive.Group\n data-slot=\"command-group\"\n className={cn(\n 'overflow-hidden p-1 text-foreground',\n '**:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5',\n '**:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-medium',\n '**:[[cmdk-group-heading]]:text-muted-foreground',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CommandSeparator({ className, ...props }: CommandSeparatorProps) {\n return (\n <CommandPrimitive.Separator\n data-slot=\"command-separator\"\n className={cn('-mx-1 h-px bg-border', className)}\n {...props}\n />\n )\n}\n\nfunction CommandItem({ className, children, ...props }: CommandItemProps) {\n return (\n <CommandPrimitive.Item\n data-slot=\"command-item\"\n className={cn(\n 'group/command-item relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none',\n 'in-data-[slot=dialog-content]:rounded-lg!',\n 'data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50',\n 'data-selected:bg-muted data-selected:text-foreground data-selected:*:[svg]:text-foreground',\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <IconCheck\n className={cn(\n 'ml-auto opacity-0',\n 'group-has-data-[slot=command-shortcut]/command-item:hidden',\n 'group-data-[checked=true]/command-item:opacity-100'\n )}\n />\n </CommandPrimitive.Item>\n )\n}\n\nfunction CommandShortcut({ className, ...props }: CommandShortcutProps) {\n return (\n <span\n data-slot=\"command-shortcut\"\n className={cn(\n 'ml-auto text-xs tracking-widest text-muted-foreground group-data-selected/command-item:text-foreground',\n className\n )}\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":"kcAiCA,SAAS,QAAQ,CAAE,YAAW,GAAGE,GAAuB,CACtD,MACE,kBAACF,EAAD,CACE,YAAU,UACV,UAAWG,EACT,6FACAC,CACF,EACA,GAAIF,CACL,CAAA,CAEL,CAEA,SAAS,cAAc,CACrB,QAAQ,kBACR,cAAc,iCACd,WACA,YACA,kBAAkB,GAClB,GAAGA,GACkB,CACrB,MACE,kBAACG,EAAD,CAAQ,GAAIH,EAAZ,SAAA,CACE,kBAACI,EAAD,CAAc,UAAU,UAAxB,SAAA,CACE,kBAACC,EAAD,CAAA,SAAcC,CAAmB,CAAA,EACjC,kBAACC,EAAD,CAAA,SAAoBC,CAA+B,CAAA,CACvC,CACd,CAAA,EAAA,kBAACC,EAAD,CACE,UAAWR,EAAG,wDAAyDC,CAAS,EAC/D,kBAEhB,UACY,CAAA,CACT,GAEZ,CAEA,SAAS,aAAa,CAAE,YAAW,KAAI,GAAGF,GAA4B,CACpE,IAAMU,EAAiBC,EAAkBC,CAAE,EAE3C,MACE,kBAAC,MAAD,CAAK,YAAU,wBAAwB,UAAU,WAC/C,SAAA,kBAACC,EAAD,CACE,UAAWZ,EACT,4DACA,uCACF,EAJF,SAAA,CAME,kBAACH,EAAiB,MAAlB,CACE,GAAIY,EACJ,YAAU,gBACV,UAAWT,EAAG,gFAAiFC,CAAS,EACxG,GAAIF,CACL,CAAA,EACD,kBAACc,EAAD,CAAA,SACE,kBAACC,EAAD,CAAY,UAAU,4BAA8B,CAAA,CACrC,CAAA,CACP,GACT,CAAA,CAET,CAEA,SAAS,YAAY,CAAE,YAAW,GAAGf,GAA2B,CAC9D,MACE,kBAACF,EAAiB,KAAlB,CACE,YAAU,eACV,UAAWG,EAAG,mFAAoFC,CAAS,EAC3G,GAAIF,CACL,CAAA,CAEL,CAEA,SAAS,aAAa,CAAE,YAAW,GAAGA,GAA4B,CAChE,MACE,kBAACF,EAAiB,MAAlB,CACE,YAAU,gBACV,UAAWG,EAAG,2BAA4BC,CAAS,EACnD,GAAIF,CACL,CAAA,CAEL,CAEA,SAAS,aAAa,CAAE,YAAW,GAAGA,GAA4B,CAChE,MACE,kBAACF,EAAiB,MAAlB,CACE,YAAU,gBACV,UAAWG,EACT,sCACA,kEACA,0EACA,kDACAC,CACF,EACA,GAAIF,CACL,CAAA,CAEL,CAEA,SAAS,iBAAiB,CAAE,YAAW,GAAGA,GAAgC,CACxE,MACE,kBAACF,EAAiB,UAAlB,CACE,YAAU,oBACV,UAAWG,EAAG,uBAAwBC,CAAS,EAC/C,GAAIF,CACL,CAAA,CAEL,CAEA,SAAS,YAAY,CAAE,YAAW,WAAU,GAAGA,GAA2B,CACxE,MACE,kBAACF,EAAiB,KAAlB,CACE,YAAU,eACV,UAAWG,EACT,+HACA,4CACA,2EACA,6FACA,oFACAC,CACF,EACA,GAAIF,EAVN,SAAA,CAYGgB,EACD,kBAACC,EAAD,CACE,UAAWhB,EACT,oBACA,6DACA,oDACF,CACD,CAAA,CACoB,GAE3B,CAEA,SAAS,gBAAgB,CAAE,YAAW,GAAGD,GAA+B,CACtE,MACE,kBAAC,OAAD,CACE,YAAU,mBACV,UAAWC,EACT,yGACAC,CACF,EACA,GAAIF,CACL,CAAA,CAEL"}
@@ -1,2 +1,2 @@
1
- import"../rolldown-runtime-BhWHdk3m.js";import{cn as e}from"../lib/utils.js";import{jsx as t}from"react/jsx-runtime";import{cva as n}from"class-variance-authority";const r=n(`mx-auto w-full`,{variants:{size:{sm:`max-w-3xl px-4 sm:px-6`,md:`max-w-5xl px-4 sm:px-6 lg:px-8`,lg:`max-w-7xl px-4 sm:px-6 lg:px-8`,full:`max-w-none px-4 sm:px-6 lg:px-8`}},defaultVariants:{size:`lg`}});function Container({className:n,size:i=`lg`,...a}){return t(`div`,{"data-slot":`container`,"data-size":i,className:e(r({size:i}),n),...a})}export{Container,r as containerVariants};
1
+ import"../rolldown-runtime-BhWHdk3m.js";import{cn as e}from"../lib/utils.js";import{jsx as t}from"react/jsx-runtime";import{cva as n}from"class-variance-authority";const r=n(`mx-auto w-full`,{variants:{size:{sm:`max-w-3xl px-4 sm:px-6`,md:`max-w-5xl px-4 sm:px-6 lg:px-8`,lg:`max-w-7xl px-4 sm:px-6 lg:px-8`,full:`max-w-none px-4 sm:px-6 lg:px-8`}},defaultVariants:{size:`lg`}});function Container({className:n,size:i=`lg`,...a}){return/* @__PURE__ */ t(`div`,{"data-slot":`container`,"data-size":i,className:e(r({size:i}),n),...a})}export{Container,r as containerVariants};
2
2
  //# sourceMappingURL=container.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"container.js","names":[],"sources":["../../src/components/container.tsx"],"sourcesContent":["import type * as React from 'react'\n\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '../lib/utils'\n\nconst containerVariants = cva('mx-auto w-full', {\n variants: {\n size: {\n sm: 'max-w-3xl px-4 sm:px-6',\n md: 'max-w-5xl px-4 sm:px-6 lg:px-8',\n lg: 'max-w-7xl px-4 sm:px-6 lg:px-8',\n full: 'max-w-none px-4 sm:px-6 lg:px-8'\n }\n },\n defaultVariants: {\n size: 'lg'\n }\n})\n\nexport type ContainerProps = React.ComponentProps<'div'> & VariantProps<typeof containerVariants>\n\nfunction Container({ className, size = 'lg', ...props }: ContainerProps) {\n return (\n <div data-slot=\"container\" data-size={size} className={cn(containerVariants({ size }), className)} {...props} />\n )\n}\n\nexport { Container, containerVariants }\n"],"mappings":"oKAMA,MAAM,EAAoB,EAAI,iBAAkB,CAC9C,SAAU,CACR,KAAM,CACJ,GAAI,yBACJ,GAAI,iCACJ,GAAI,iCACJ,KAAM,iCACR,CACF,EACA,gBAAiB,CACf,KAAM,IACR,CACF,CAAC,EAID,SAAS,UAAU,CAAE,YAAW,OAAO,KAAM,GAAG,GAAyB,CACvE,OACE,EAAC,MAAD,CAAK,YAAU,YAAY,YAAW,EAAM,UAAW,EAAG,EAAkB,CAAE,MAAK,CAAC,EAAG,CAAS,EAAG,GAAI,CAAQ,CAAA,CAEnH"}
1
+ {"version":3,"file":"container.js","names":["containerVariants","cva","props","size","cn","className"],"sources":["../../src/components/container.tsx"],"sourcesContent":["import type * as React from 'react'\n\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '../lib/utils'\n\nconst containerVariants = cva('mx-auto w-full', {\n variants: {\n size: {\n sm: 'max-w-3xl px-4 sm:px-6',\n md: 'max-w-5xl px-4 sm:px-6 lg:px-8',\n lg: 'max-w-7xl px-4 sm:px-6 lg:px-8',\n full: 'max-w-none px-4 sm:px-6 lg:px-8'\n }\n },\n defaultVariants: {\n size: 'lg'\n }\n})\n\nexport type ContainerProps = React.ComponentProps<'div'> & VariantProps<typeof containerVariants>\n\nfunction Container({ className, size = 'lg', ...props }: ContainerProps) {\n return (\n <div data-slot=\"container\" data-size={size} className={cn(containerVariants({ size }), className)} {...props} />\n )\n}\n\nexport { Container, containerVariants }\n"],"mappings":"oKAMA,MAAMA,EAAoBC,EAAI,iBAAkB,CAC9C,SAAU,CACR,KAAM,CACJ,GAAI,yBACJ,GAAI,iCACJ,GAAI,iCACJ,KAAM,iCACR,CACF,EACA,gBAAiB,CACf,KAAM,IACR,CACF,CAAC,EAID,SAAS,UAAU,CAAE,YAAW,OAAO,KAAM,GAAGC,GAAyB,CACvE,MACE,kBAAC,MAAD,CAAK,YAAU,YAAY,YAAWC,EAAM,UAAWC,EAAGJ,EAAkB,CAAE,MAAK,CAAC,EAAGK,CAAS,EAAG,GAAIH,CAAQ,CAAA,CAEnH"}
@@ -1,2 +1,138 @@
1
- import { C as createDataTableSelectColumn, E as useDataTableContext, S as UseDataTableOptions, T as useDataTable, _ as DataTableToolbarProps, a as DataTableBodyProps, b as RowData, c as DataTableHeader, d as DataTablePagination, f as DataTablePaginationProps, g as DataTableToolbar, h as DataTableRootProps, i as DataTableBody, l as DataTableHeaderProps, m as DataTableRoot, n as ColumnDef, o as DataTableColumnHeader, p as DataTableProps, r as DataTable, s as DataTableColumnHeaderProps, t as Column, u as DataTableLabels, v as DataTableViewOptions, w as defaultDataTableLabels, x as TanStackTable, y as DataTableViewOptionsProps } from "../data-table-DWWVGWbU.js";
2
- export { Column, ColumnDef, DataTable, DataTableBody, DataTableBodyProps, DataTableColumnHeader, DataTableColumnHeaderProps, DataTableHeader, DataTableHeaderProps, DataTableLabels, DataTablePagination, DataTablePaginationProps, DataTableProps, DataTableRoot, DataTableRootProps, DataTableToolbar, DataTableToolbarProps, DataTableViewOptions, DataTableViewOptionsProps, type RowData, TanStackTable, UseDataTableOptions, createDataTableSelectColumn, defaultDataTableLabels, useDataTable, useDataTableContext };
1
+ import { t as __name } from "../rolldown-runtime-BhWHdk3m.js";
2
+ import { Button } from "./button.js";
3
+ import { TableProps } from "./table.js";
4
+ import * as React from "react";
5
+ import { Column as Column$1, ColumnDef as ColumnDef$1, ReactTable, RowData, RowData as RowData$1 } from "@tanstack/react-table";
6
+ //#region src/components/data-table.d.ts
7
+ declare const features: {
8
+ columnFilteringFeature: import("@tanstack/react-table").TableFeature;
9
+ rowSortingFeature: import("@tanstack/react-table").TableFeature;
10
+ rowPaginationFeature: import("@tanstack/react-table").TableFeature;
11
+ rowSelectionFeature: import("@tanstack/react-table").TableFeature;
12
+ columnVisibilityFeature: import("@tanstack/react-table").TableFeature;
13
+ filteredRowModel: (table: import("@tanstack/react-table").Table<any, any>) => () => import("@tanstack/react-table").RowModel<any, any>;
14
+ sortedRowModel: (table: import("@tanstack/react-table").Table<any, any>) => () => import("@tanstack/react-table").RowModel<any, any>;
15
+ paginatedRowModel: (table: import("@tanstack/react-table").Table<any, any>) => () => import("@tanstack/react-table").RowModel<any, any>;
16
+ filterFns: {
17
+ includesString: import("@tanstack/react-table").CreatedFilterFn<any, any>;
18
+ inNumberRange: import("@tanstack/react-table").CreatedFilterFn<any, any>;
19
+ equals: import("@tanstack/react-table").CreatedFilterFn<any, any>;
20
+ arrIncludes: import("@tanstack/react-table").CreatedFilterFn<any, any>;
21
+ inDateRange: import("@tanstack/react-table").CreatedFilterFn<any, any>;
22
+ weakEquals: import("@tanstack/react-table").CreatedFilterFn<any, any>;
23
+ };
24
+ sortFns: {
25
+ alphanumeric: import("@tanstack/react-table").CreatedSortFn<any, any>;
26
+ text: import("@tanstack/react-table").CreatedSortFn<any, any>;
27
+ datetime: import("@tanstack/react-table").CreatedSortFn<any, any>;
28
+ basic: import("@tanstack/react-table").CreatedSortFn<any, any>;
29
+ };
30
+ };
31
+ export type ColumnDef<TData extends RowData$1, TValue = unknown> = ColumnDef$1<typeof features, TData, TValue>;
32
+ export type Column<TData extends RowData$1, TValue = unknown> = Column$1<typeof features, TData, TValue>;
33
+ export type TanStackTable<TData extends RowData$1> = ReactTable<typeof features, TData>;
34
+ type DataTableToolbarActions<TData extends RowData$1> = React.ReactNode | ((table: TanStackTable<TData>) => React.ReactNode);
35
+ export type DataTableLabels = {
36
+ filterPlaceholder: string;
37
+ filterColumnSelectorLabel: string;
38
+ emptyMessage: React.ReactNode;
39
+ columnsButton: string;
40
+ rowsPerPage: string;
41
+ pageOf: (current: number, total: number) => React.ReactNode;
42
+ goToFirstPage: string;
43
+ goToPreviousPage: string;
44
+ goToNextPage: string;
45
+ goToLastPage: string;
46
+ selectAllRows: string;
47
+ selectRow: string;
48
+ };
49
+ export declare const defaultDataTableLabels: DataTableLabels;
50
+ export type DataTableProps<TData extends RowData$1, TValue = unknown> = {
51
+ columns: ColumnDef<TData, TValue>[];
52
+ data: TData[];
53
+ getRowId?: (originalRow: TData, index: number, parent?: {
54
+ id: string;
55
+ }) => string;
56
+ filterColumns?: string | string[];
57
+ pageSize?: number;
58
+ pageSizeOptions?: number[];
59
+ enableRowSelection?: boolean;
60
+ enableSorting?: boolean;
61
+ showPagination?: boolean;
62
+ showColumnVisibility?: boolean;
63
+ toolbarActions?: DataTableToolbarActions<TData>;
64
+ labels?: Partial<DataTableLabels>;
65
+ className?: string;
66
+ tableClassName?: string;
67
+ variant?: TableProps['variant'];
68
+ };
69
+ export type DataTableColumnHeaderProps<TData extends RowData$1, TValue> = React.ComponentProps<'div'> & {
70
+ column: Column<TData, TValue>;
71
+ title: React.ReactNode;
72
+ };
73
+ export type DataTablePaginationProps<TData extends RowData$1> = React.ComponentProps<'div'> & {
74
+ table?: TanStackTable<TData>;
75
+ pageSizeOptions?: number[];
76
+ labels?: Partial<DataTableLabels>;
77
+ };
78
+ export type DataTableViewOptionsProps<TData extends RowData$1> = React.ComponentProps<typeof Button> & {
79
+ table?: TanStackTable<TData>;
80
+ label?: React.ReactNode;
81
+ };
82
+ export type UseDataTableOptions<TData extends RowData$1, TValue = unknown> = {
83
+ columns: ColumnDef<TData, TValue>[];
84
+ data: TData[];
85
+ getRowId?: (originalRow: TData, index: number, parent?: {
86
+ id: string;
87
+ }) => string;
88
+ pageSize?: number;
89
+ enableRowSelection?: boolean;
90
+ enableSorting?: boolean;
91
+ enablePagination?: boolean;
92
+ labels?: Partial<DataTableLabels>;
93
+ };
94
+ export type DataTableRootProps<TData extends RowData$1, TValue = unknown> = {
95
+ labels?: Partial<DataTableLabels>;
96
+ className?: string;
97
+ children: React.ReactNode;
98
+ } & ({
99
+ table: TanStackTable<TData>;
100
+ columns?: never;
101
+ data?: never;
102
+ } | (Omit<UseDataTableOptions<TData, TValue>, 'labels'> & {
103
+ table?: never;
104
+ }));
105
+ export type DataTableToolbarProps<TData extends RowData$1> = {
106
+ filterColumns?: string | string[];
107
+ showColumnVisibility?: boolean;
108
+ toolbarActions?: DataTableToolbarActions<TData>;
109
+ labels?: Partial<DataTableLabels>;
110
+ className?: string;
111
+ };
112
+ export type DataTableHeaderProps = {
113
+ className?: string;
114
+ };
115
+ export type DataTableBodyProps = {
116
+ emptyMessage?: React.ReactNode;
117
+ className?: string;
118
+ };
119
+ type DataTableContextValue<TData extends RowData$1> = {
120
+ table: TanStackTable<TData>;
121
+ labels: DataTableLabels;
122
+ };
123
+ export declare function useDataTableContext<TData extends RowData$1>(): DataTableContextValue<TData>;
124
+ export declare function useDataTable<TData extends RowData$1, TValue = unknown>({ columns, data, getRowId, pageSize, enableRowSelection, enableSorting, enablePagination, labels }: UseDataTableOptions<TData, TValue>): TanStackTable<TData>;
125
+ declare function DataTableRoot<TData extends RowData$1, TValue = unknown>(props: DataTableRootProps<TData, TValue>): React.JSX.Element;
126
+ declare function DataTableColumnHeader<TData extends RowData$1, TValue>({ column, title, className, ...props }: DataTableColumnHeaderProps<TData, TValue>): React.JSX.Element;
127
+ declare function DataTableViewOptions<TData extends RowData$1>({ table: tableProp, label, className, ...props }: DataTableViewOptionsProps<TData>): React.JSX.Element | null;
128
+ declare function DataTableToolbar<TData extends RowData$1>({ filterColumns, showColumnVisibility, toolbarActions, labels: labelsOverride, className }: DataTableToolbarProps<TData>): React.JSX.Element | null;
129
+ declare function DataTableHeader<TData extends RowData$1>({ className }?: DataTableHeaderProps): React.JSX.Element;
130
+ declare function DataTableBody<TData extends RowData$1>({ emptyMessage, className }?: DataTableBodyProps): React.JSX.Element;
131
+ declare function DataTablePagination<TData extends RowData$1>({ table: tableProp, pageSizeOptions, labels: labelsOverride, className, ...props }: DataTablePaginationProps<TData>): React.JSX.Element;
132
+ declare function createDataTableSelectColumn<TData extends RowData$1>(options?: {
133
+ labels?: Pick<Partial<DataTableLabels>, 'selectAllRows' | 'selectRow'>;
134
+ }): ColumnDef<TData>;
135
+ declare function DataTable<TData extends RowData$1, TValue = unknown>({ columns, data, getRowId, filterColumns, pageSize, pageSizeOptions, enableRowSelection, enableSorting, showPagination, showColumnVisibility, toolbarActions, labels, className, tableClassName, variant }: DataTableProps<TData, TValue>): React.JSX.Element;
136
+ //#endregion
137
+ export { DataTable, DataTableBody, DataTableColumnHeader, DataTableHeader, DataTablePagination, DataTableRoot, DataTableToolbar, DataTableViewOptions, type RowData, createDataTableSelectColumn };
138
+ //# sourceMappingURL=data-table.d.ts.map
@@ -1,2 +1,2 @@
1
- import"../rolldown-runtime-BhWHdk3m.js";import{cn as e}from"../lib/utils.js";import{Button as t}from"./button.js";import{Checkbox as n}from"./checkbox.js";import{Input as r}from"./input.js";import{InputGroup as i,InputGroupAddon as a,InputGroupInput as o}from"./input-group.js";import{DropdownMenu as s,DropdownMenuCheckboxItem as c,DropdownMenuContent as l,DropdownMenuGroup as u,DropdownMenuTrigger as d}from"./dropdown-menu.js";import{Select as f,SelectContent as p,SelectGroup as m,SelectItem as h,SelectTrigger as g,SelectValue as _}from"./select.js";import{Table as v,TableBody as y,TableCell as b,TableContainer as x,TableHead as S,TableHeader as C,TableRow as w}from"./table.js";import{IconArrowsSort as T,IconChevronLeft as E,IconChevronRight as ee,IconChevronsLeft as te,IconChevronsRight as D,IconColumns3 as O,IconSortAscending as k,IconSortDescending as A}from"@tabler/icons-react";import{jsx as j,jsxs as M}from"react/jsx-runtime";import*as N from"react";import{columnFilteringFeature as P,columnVisibilityFeature as F,createFilteredRowModel as I,createPaginatedRowModel as L,createSortedRowModel as R,filterFn_arrIncludes as z,filterFn_equals as B,filterFn_inDateRange as V,filterFn_inNumberRange as H,filterFn_includesString as U,filterFn_weakEquals as W,flexRender as G,rowPaginationFeature as K,rowSelectionFeature as q,rowSortingFeature as J,sortFn_alphanumeric as Y,sortFn_basic as X,sortFn_datetime as Z,sortFn_text as ne,tableFeatures as re,useTable as ie}from"@tanstack/react-table";const ae=re({columnFilteringFeature:P,rowSortingFeature:J,rowPaginationFeature:K,rowSelectionFeature:q,columnVisibilityFeature:F,filteredRowModel:I(),sortedRowModel:R(),paginatedRowModel:L(),filterFns:{includesString:U,inNumberRange:H,equals:B,arrIncludes:z,inDateRange:V,weakEquals:W},sortFns:{alphanumeric:Y,text:ne,datetime:Z,basic:X}}),Q={filterPlaceholder:`Filtrar linhas...`,filterColumnSelectorLabel:`Coluna para filtrar`,emptyMessage:`Nenhum resultado.`,columnsButton:`Colunas`,rowsPerPage:`Linhas por página`,pageOf:(e,t)=>`Página ${e} de ${t}`,goToFirstPage:`Ir para a primeira página`,goToPreviousPage:`Ir para a página anterior`,goToNextPage:`Ir para a próxima página`,goToLastPage:`Ir para a última página`,selectAllRows:`Selecionar todas as linhas`,selectRow:`Selecionar linha`},$=N.createContext(null);function useDataTableContext(){let e=N.useContext($);if(!e)throw Error(`useDataTableContext must be used within <DataTableRoot>`);return e}function useOptionalDataTableContext(){return N.useContext($)}function renderToolbarActions(e,t){return typeof e==`function`?e(t):e}function getColumnLabel(e){return e?e.columnDef.meta?.label??e.id:``}function useDataTable({columns:e,data:t,getRowId:n,pageSize:r=10,enableRowSelection:i=!1,enableSorting:a=!1,enablePagination:o=!1,labels:s}){let[c,l]=N.useState([]),[u,d]=N.useState([]),[f,p]=N.useState({}),[m,h]=N.useState({pageIndex:0,pageSize:r}),[g,_]=N.useState({}),v=N.useMemo(()=>({...Q,...s}),[s]),y=N.useMemo(()=>!i||e.some(e=>e.id===`select`)?e:[createDataTableSelectColumn({labels:{selectAllRows:v.selectAllRows,selectRow:v.selectRow}}),...e],[e,i,v.selectAllRows,v.selectRow]);return ie({features:ae,data:t,columns:y,getRowId:n,enableRowSelection:i,enableSorting:a,manualPagination:!o,state:{sorting:c,columnFilters:u,columnVisibility:f,rowSelection:g,pagination:m},onSortingChange:l,onColumnFiltersChange:d,onColumnVisibilityChange:p,onPaginationChange:h,onRowSelectionChange:_})}function DataTableRootControlled({table:t,labels:n,className:r,children:i}){let a={table:t,labels:N.useMemo(()=>({...Q,...n}),[n])};return j($.Provider,{value:a,children:j(`div`,{className:e(`flex w-full flex-col gap-4`,r),children:i})})}function DataTableRootUncontrolled({columns:e,data:t,getRowId:n,pageSize:r,enableRowSelection:i,enableSorting:a,enablePagination:o,labels:s,className:c,children:l}){let u=useDataTable({columns:e,data:t,getRowId:n,pageSize:r,enableRowSelection:i,enableSorting:a,enablePagination:o,labels:s});return j(DataTableRootControlled,{table:u,labels:s,className:c,children:l})}function DataTableRoot(e){if(`table`in e&&e.table!==void 0){let{table:t,labels:n,className:r,children:i}=e;return j(DataTableRootControlled,{table:t,labels:n,className:r,children:i})}let{columns:t,data:n,getRowId:r,pageSize:i,enableRowSelection:a,enableSorting:o,enablePagination:s,labels:c,className:l,children:u}=e;return j(DataTableRootUncontrolled,{columns:t,data:n,getRowId:r,pageSize:i,enableRowSelection:a,enableSorting:o,enablePagination:s,labels:c,className:l,children:u})}function DataTableColumnHeader({column:n,title:r,className:i,...a}){if(!n.getCanSort())return j(`div`,{className:e(`inline-flex items-center gap-1`,i),...a,children:r});let o=n.getIsSorted();return M(`div`,{className:e(`inline-flex items-center gap-1`,i),...a,children:[r,j(t,{variant:`ghost`,color:`zinc`,size:`icon-xs`,onClick:()=>{if(o===`desc`)return n.clearSorting();n.toggleSorting(o===`asc`)},children:j(o===`desc`?A:o===`asc`?k:T,{className:`size-4`,"data-icon":`inline-end`})})]})}function DataTableViewOptions({table:n,label:r,className:i,...a}){let o=useOptionalDataTableContext(),f=n??o?.table;if(!f)throw Error("DataTableViewOptions requires a `table` prop or to be rendered within <DataTableRoot>");let p=r??o?.labels.columnsButton??Q.columnsButton,m=f.getAllColumns().filter(e=>e.accessorFn!==void 0&&e.getCanHide());return m.length===0?null:M(s,{children:[j(d,{asChild:!0,children:M(t,{type:`button`,variant:`outline`,color:`zinc`,size:`sm`,className:e(`ml-auto`,i),...a,children:[j(O,{"data-icon":`inline-start`}),p]})}),j(l,{align:`end`,className:`w-44`,children:j(u,{children:m.map(e=>j(c,{checked:e.getIsVisible(),onCheckedChange:t=>e.toggleVisibility(!!t),children:e.id},e.id))})})]})}function DataTableToolbar({filterColumns:t,showColumnVisibility:n,toolbarActions:s,labels:c,className:l}){let{table:u,labels:d}=useDataTableContext(),f=N.useMemo(()=>c?{...d,...c}:d,[d,c]),p=N.useMemo(()=>t?Array.isArray(t)?t:[t]:[],[t]),m=renderToolbarActions(s,u),h=p.length>0,[g,_]=N.useState(p[0]);if(N.useEffect(()=>{if(p.length===0){_(void 0);return}_(e=>e&&p.includes(e)?e:p[0])},[p]),!h&&!n&&!m)return null;let v=g?u.getColumn(g):void 0,y=v?.getFilterValue()??``,handleColumnChange=e=>{e!==g&&(g&&u.getColumn(g)?.setFilterValue(void 0),_(e))};return M(`div`,{className:e(`flex flex-col gap-2 sm:flex-row sm:items-center`,l),children:[h&&v?p.length>1?M(i,{className:`h-8 w-full sm:max-w-md`,children:[j(a,{align:`inline-start`,className:`pr-0`,children:j(`select`,{"aria-label":f.filterColumnSelectorLabel,value:g,onChange:e=>handleColumnChange(e.target.value),className:`cursor-pointer appearance-none border-0 bg-transparent pr-1 text-sm font-medium text-foreground outline-none focus:outline-none`,children:p.map(e=>j(`option`,{value:e,children:getColumnLabel(u.getColumn(e))},e))})}),j(o,{placeholder:f.filterPlaceholder,value:y,onChange:e=>v.setFilterValue(e.target.value)})]}):j(r,{placeholder:f.filterPlaceholder,value:y,onChange:e=>v.setFilterValue(e.target.value),className:`h-8 w-full sm:max-w-xs`}):null,M(`div`,{className:`flex flex-1 items-center justify-end gap-2`,children:[m,n?j(DataTableViewOptions,{table:u,label:f.columnsButton}):null]})]})}function DataTableHeader({className:e}={}){let{table:t}=useDataTableContext();return j(C,{className:e,children:t.getHeaderGroups().map(e=>j(w,{children:e.headers.map(e=>j(S,{colSpan:e.colSpan,children:e.isPlaceholder?null:G(e.column.columnDef.header,e.getContext())},e.id))},e.id))})}function DataTableBody({emptyMessage:e,className:t}={}){let{table:n,labels:r}=useDataTableContext(),i=n.getRowModel().rows,a=n.getVisibleLeafColumns().length,o=e??r.emptyMessage;return j(y,{className:t,children:i.length===0?j(w,{children:j(b,{colSpan:a,className:`h-24 text-center`,children:o})}):i.map(e=>j(w,{"data-state":e.getIsSelected()?`selected`:void 0,children:e.getVisibleCells().map(e=>j(b,{children:G(e.column.columnDef.cell,e.getContext())},e.id))},e.id))})}function DataTablePagination({table:n,pageSizeOptions:r=[10,20,30,40,50],labels:i,className:a,...o}){let s=useOptionalDataTableContext(),c=n??s?.table;if(!c)throw Error("DataTablePagination requires a `table` prop or to be rendered within <DataTableRoot>");let l=N.useMemo(()=>({...Q,...s?.labels,...i}),[s?.labels,i]),u=c.getPageCount(),d=Math.max(u,1),v=c.state.pagination.pageIndex;return j(`div`,{className:e(`flex items-center justify-end gap-4 px-2`,a),...o,children:M(`div`,{className:`flex items-center gap-6 lg:gap-8`,children:[M(`div`,{className:`hidden items-center gap-2 sm:flex`,children:[j(`p`,{className:`text-sm font-medium`,children:l.rowsPerPage}),M(f,{value:`${c.state.pagination.pageSize}`,onValueChange:e=>c.setPageSize(Number(e)),children:[j(g,{size:`sm`,className:`h-8 w-20`,children:j(_,{})}),j(p,{side:`top`,children:j(m,{children:r.map(e=>j(h,{value:`${e}`,children:e},e))})})]})]}),j(`div`,{className:`text-sm font-medium`,children:l.pageOf(v+1,d)}),M(`div`,{className:`flex items-center gap-1`,children:[j(t,{type:`button`,variant:`secondary`,size:`icon-sm`,className:`hidden lg:inline-flex`,onClick:()=>c.setPageIndex(0),disabled:!c.getCanPreviousPage(),"aria-label":l.goToFirstPage,children:j(te,{})}),j(t,{type:`button`,variant:`secondary`,size:`icon-sm`,onClick:()=>c.previousPage(),disabled:!c.getCanPreviousPage(),"aria-label":l.goToPreviousPage,children:j(E,{})}),j(t,{type:`button`,variant:`secondary`,size:`icon-sm`,onClick:()=>c.nextPage(),disabled:!c.getCanNextPage(),"aria-label":l.goToNextPage,children:j(ee,{})}),j(t,{type:`button`,variant:`secondary`,size:`icon-sm`,className:`hidden lg:inline-flex`,onClick:()=>c.setPageIndex(u-1),disabled:!c.getCanNextPage(),"aria-label":l.goToLastPage,children:j(D,{})})]})]})})}function createDataTableSelectColumn(e){let t=e?.labels?.selectAllRows??Q.selectAllRows,r=e?.labels?.selectRow??Q.selectRow;return{id:`select`,enableSorting:!1,enableHiding:!1,header:({table:e})=>j(n,{"aria-label":t,checked:e.getIsAllPageRowsSelected()||e.getIsSomePageRowsSelected()&&`indeterminate`,onCheckedChange:t=>e.toggleAllPageRowsSelected(!!t)}),cell:({row:e})=>j(n,{"aria-label":r,checked:e.getIsSelected()||e.getIsSomeSelected()&&`indeterminate`,disabled:!e.getCanSelect(),onCheckedChange:t=>e.toggleSelected(!!t)})}}function DataTable({columns:e,data:t,getRowId:n,filterColumns:r,pageSize:i=10,pageSizeOptions:a,enableRowSelection:o=!1,enableSorting:s=!1,showPagination:c=!1,showColumnVisibility:l=!1,toolbarActions:u,labels:d,className:f,tableClassName:p,variant:m}){return M(DataTableRoot,{columns:e,data:t,getRowId:n,pageSize:i,enableRowSelection:o,enableSorting:s,enablePagination:c,labels:d,className:f,children:[j(DataTableToolbar,{filterColumns:r,showColumnVisibility:l,toolbarActions:u}),j(x,{children:M(v,{className:p,variant:m,children:[j(DataTableHeader,{}),j(DataTableBody,{})]})}),c?j(DataTablePagination,{pageSizeOptions:a}):null]})}export{DataTable,DataTableBody,DataTableColumnHeader,DataTableHeader,DataTablePagination,DataTableRoot,DataTableToolbar,DataTableViewOptions,createDataTableSelectColumn,Q as defaultDataTableLabels,useDataTable,useDataTableContext};
1
+ import"../rolldown-runtime-BhWHdk3m.js";import{cn as e}from"../lib/utils.js";import{Button as t}from"./button.js";import{Checkbox as n}from"./checkbox.js";import{Input as r}from"./input.js";import{InputGroup as i,InputGroupAddon as a,InputGroupInput as o}from"./input-group.js";import{DropdownMenu as s,DropdownMenuCheckboxItem as c,DropdownMenuContent as l,DropdownMenuGroup as u,DropdownMenuTrigger as d}from"./dropdown-menu.js";import{Select as f,SelectContent as p,SelectGroup as m,SelectItem as h,SelectTrigger as g,SelectValue as _}from"./select.js";import{Table as v,TableBody as y,TableCell as b,TableContainer as x,TableHead as S,TableHeader as C,TableRow as w}from"./table.js";import{IconArrowsSort as T,IconChevronLeft as E,IconChevronRight as ee,IconChevronsLeft as te,IconChevronsRight as D,IconColumns3 as O,IconSortAscending as k,IconSortDescending as A}from"@tabler/icons-react";import{jsx as j,jsxs as M}from"react/jsx-runtime";import*as N from"react";import{columnFilteringFeature as P,columnVisibilityFeature as F,createFilteredRowModel as I,createPaginatedRowModel as L,createSortedRowModel as R,filterFn_arrIncludes as z,filterFn_equals as B,filterFn_inDateRange as V,filterFn_inNumberRange as H,filterFn_includesString as U,filterFn_weakEquals as W,flexRender as G,rowPaginationFeature as K,rowSelectionFeature as q,rowSortingFeature as J,sortFn_alphanumeric as Y,sortFn_basic as X,sortFn_datetime as Z,sortFn_text as ne,tableFeatures as re,useTable as ie}from"@tanstack/react-table";const ae=re({columnFilteringFeature:P,rowSortingFeature:J,rowPaginationFeature:K,rowSelectionFeature:q,columnVisibilityFeature:F,filteredRowModel:I(),sortedRowModel:R(),paginatedRowModel:L(),filterFns:{includesString:U,inNumberRange:H,equals:B,arrIncludes:z,inDateRange:V,weakEquals:W},sortFns:{alphanumeric:Y,text:ne,datetime:Z,basic:X}}),Q={filterPlaceholder:`Filtrar linhas...`,filterColumnSelectorLabel:`Coluna para filtrar`,emptyMessage:`Nenhum resultado.`,columnsButton:`Colunas`,rowsPerPage:`Linhas por página`,pageOf:(e,t)=>`Página ${e} de ${t}`,goToFirstPage:`Ir para a primeira página`,goToPreviousPage:`Ir para a página anterior`,goToNextPage:`Ir para a próxima página`,goToLastPage:`Ir para a última página`,selectAllRows:`Selecionar todas as linhas`,selectRow:`Selecionar linha`},$=N.createContext(null);function useDataTableContext(){let e=N.useContext($);if(!e)throw Error(`useDataTableContext must be used within <DataTableRoot>`);return e}function useOptionalDataTableContext(){return N.useContext($)}function renderToolbarActions(e,t){return typeof e==`function`?e(t):e}function getColumnLabel(e){return e?e.columnDef.meta?.label??e.id:``}function useDataTable({columns:e,data:t,getRowId:n,pageSize:r=10,enableRowSelection:i=!1,enableSorting:a=!1,enablePagination:o=!1,labels:s}){let[c,l]=N.useState([]),[u,d]=N.useState([]),[f,p]=N.useState({}),[m,h]=N.useState({pageIndex:0,pageSize:r}),[g,_]=N.useState({}),v=N.useMemo(()=>({...Q,...s}),[s]),y=N.useMemo(()=>!i||e.some(e=>e.id===`select`)?e:[createDataTableSelectColumn({labels:{selectAllRows:v.selectAllRows,selectRow:v.selectRow}}),...e],[e,i,v.selectAllRows,v.selectRow]);return ie({features:ae,data:t,columns:y,getRowId:n,enableRowSelection:i,enableSorting:a,manualPagination:!o,state:{sorting:c,columnFilters:u,columnVisibility:f,rowSelection:g,pagination:m},onSortingChange:l,onColumnFiltersChange:d,onColumnVisibilityChange:p,onPaginationChange:h,onRowSelectionChange:_})}function DataTableRootControlled({table:t,labels:n,className:r,children:i}){let a={table:t,labels:N.useMemo(()=>({...Q,...n}),[n])};return/* @__PURE__ */ j($.Provider,{value:a,children:/* @__PURE__ */ j(`div`,{className:e(`flex w-full flex-col gap-4`,r),children:i})})}function DataTableRootUncontrolled({columns:e,data:t,getRowId:n,pageSize:r,enableRowSelection:i,enableSorting:a,enablePagination:o,labels:s,className:c,children:l}){let u=useDataTable({columns:e,data:t,getRowId:n,pageSize:r,enableRowSelection:i,enableSorting:a,enablePagination:o,labels:s});return/* @__PURE__ */ j(DataTableRootControlled,{table:u,labels:s,className:c,children:l})}function DataTableRoot(e){if(`table`in e&&e.table!==void 0){let{table:t,labels:n,className:r,children:i}=e;return/* @__PURE__ */ j(DataTableRootControlled,{table:t,labels:n,className:r,children:i})}let{columns:t,data:n,getRowId:r,pageSize:i,enableRowSelection:a,enableSorting:o,enablePagination:s,labels:c,className:l,children:u}=e;return/* @__PURE__ */ j(DataTableRootUncontrolled,{columns:t,data:n,getRowId:r,pageSize:i,enableRowSelection:a,enableSorting:o,enablePagination:s,labels:c,className:l,children:u})}function DataTableColumnHeader({column:n,title:r,className:i,...a}){if(!n.getCanSort())return/* @__PURE__ */ j(`div`,{className:e(`inline-flex items-center gap-1`,i),...a,children:r});let o=n.getIsSorted();return/* @__PURE__ */ M(`div`,{className:e(`inline-flex items-center gap-1`,i),...a,children:[r,/* @__PURE__ */ j(t,{variant:`ghost`,color:`zinc`,size:`icon-xs`,onClick:()=>{if(o===`desc`)return n.clearSorting();n.toggleSorting(o===`asc`)},children:j(o===`desc`?A:o===`asc`?k:T,{className:`size-4`,"data-icon":`inline-end`})})]})}function DataTableViewOptions({table:n,label:r,className:i,...a}){let o=useOptionalDataTableContext(),f=n??o?.table;if(!f)throw Error("DataTableViewOptions requires a `table` prop or to be rendered within <DataTableRoot>");let p=r??o?.labels.columnsButton??Q.columnsButton,m=f.getAllColumns().filter(e=>e.accessorFn!==void 0&&e.getCanHide());return m.length===0?null:/* @__PURE__ */ M(s,{children:[/* @__PURE__ */ j(d,{asChild:!0,children:/* @__PURE__ */ M(t,{type:`button`,variant:`outline`,color:`zinc`,size:`sm`,className:e(`ml-auto`,i),...a,children:[/* @__PURE__ */ j(O,{"data-icon":`inline-start`}),p]})}),/* @__PURE__ */ j(l,{align:`end`,className:`w-44`,children:/* @__PURE__ */ j(u,{children:m.map(e=>/* @__PURE__ */ j(c,{checked:e.getIsVisible(),onCheckedChange:t=>e.toggleVisibility(!!t),children:e.id},e.id))})})]})}function DataTableToolbar({filterColumns:t,showColumnVisibility:n,toolbarActions:s,labels:c,className:l}){let{table:u,labels:d}=useDataTableContext(),f=N.useMemo(()=>c?{...d,...c}:d,[d,c]),p=N.useMemo(()=>t?Array.isArray(t)?t:[t]:[],[t]),m=renderToolbarActions(s,u),h=p.length>0,[g,_]=N.useState(p[0]);if(N.useEffect(()=>{p.length===0?_(void 0):_(e=>e&&p.includes(e)?e:p[0])},[p]),!h&&!n&&!m)return null;let v=g?u.getColumn(g):void 0,y=v?.getFilterValue()??``,handleColumnChange=e=>{e!==g&&(g&&u.getColumn(g)?.setFilterValue(void 0),_(e))};return/* @__PURE__ */ M(`div`,{className:e(`flex flex-col gap-2 sm:flex-row sm:items-center`,l),children:[h&&v?p.length>1?/* @__PURE__ */ M(i,{className:`h-8 w-full sm:max-w-md`,children:[/* @__PURE__ */ j(a,{align:`inline-start`,className:`pr-0`,children:/* @__PURE__ */ j(`select`,{"aria-label":f.filterColumnSelectorLabel,value:g,onChange:e=>handleColumnChange(e.target.value),className:`cursor-pointer appearance-none border-0 bg-transparent pr-1 text-sm font-medium text-foreground outline-none focus:outline-none`,children:p.map(e=>/* @__PURE__ */ j(`option`,{value:e,children:getColumnLabel(u.getColumn(e))},e))})}),/* @__PURE__ */ j(o,{placeholder:f.filterPlaceholder,value:y,onChange:e=>v.setFilterValue(e.target.value)})]}):/* @__PURE__ */ j(r,{placeholder:f.filterPlaceholder,value:y,onChange:e=>v.setFilterValue(e.target.value),className:`h-8 w-full sm:max-w-xs`}):null,/* @__PURE__ */ M(`div`,{className:`flex flex-1 items-center justify-end gap-2`,children:[m,n?/* @__PURE__ */ j(DataTableViewOptions,{table:u,label:f.columnsButton}):null]})]})}function DataTableHeader({className:e}={}){let{table:t}=useDataTableContext();return/* @__PURE__ */ j(C,{className:e,children:t.getHeaderGroups().map(e=>/* @__PURE__ */ j(w,{children:e.headers.map(e=>/* @__PURE__ */ j(S,{colSpan:e.colSpan,children:e.isPlaceholder?null:G(e.column.columnDef.header,e.getContext())},e.id))},e.id))})}function DataTableBody({emptyMessage:e,className:t}={}){let{table:n,labels:r}=useDataTableContext(),i=n.getRowModel().rows,a=n.getVisibleLeafColumns().length,o=e??r.emptyMessage;return/* @__PURE__ */ j(y,{className:t,children:i.length===0?/* @__PURE__ */ j(w,{children:/* @__PURE__ */ j(b,{colSpan:a,className:`h-24 text-center`,children:o})}):i.map(e=>/* @__PURE__ */ j(w,{"data-state":e.getIsSelected()?`selected`:void 0,children:e.getVisibleCells().map(e=>/* @__PURE__ */ j(b,{children:G(e.column.columnDef.cell,e.getContext())},e.id))},e.id))})}function DataTablePagination({table:n,pageSizeOptions:r=[10,20,30,40,50],labels:i,className:a,...o}){let s=useOptionalDataTableContext(),c=n??s?.table;if(!c)throw Error("DataTablePagination requires a `table` prop or to be rendered within <DataTableRoot>");let l=N.useMemo(()=>({...Q,...s?.labels,...i}),[s?.labels,i]),u=c.getPageCount(),d=Math.max(u,1),v=c.state.pagination.pageIndex;return/* @__PURE__ */ j(`div`,{className:e(`flex items-center justify-end gap-4 px-2`,a),...o,children:/* @__PURE__ */ M(`div`,{className:`flex items-center gap-6 lg:gap-8`,children:[/* @__PURE__ */ M(`div`,{className:`hidden items-center gap-2 sm:flex`,children:[/* @__PURE__ */ j(`p`,{className:`text-sm font-medium`,children:l.rowsPerPage}),/* @__PURE__ */ M(f,{value:`${c.state.pagination.pageSize}`,onValueChange:e=>c.setPageSize(Number(e)),children:[/* @__PURE__ */ j(g,{size:`sm`,className:`h-8 w-20`,children:/* @__PURE__ */ j(_,{})}),/* @__PURE__ */ j(p,{side:`top`,children:/* @__PURE__ */ j(m,{children:r.map(e=>/* @__PURE__ */ j(h,{value:`${e}`,children:e},e))})})]})]}),/* @__PURE__ */ j(`div`,{className:`text-sm font-medium`,children:l.pageOf(v+1,d)}),/* @__PURE__ */ M(`div`,{className:`flex items-center gap-1`,children:[/* @__PURE__ */ j(t,{type:`button`,variant:`secondary`,size:`icon-sm`,className:`hidden lg:inline-flex`,onClick:()=>c.setPageIndex(0),disabled:!c.getCanPreviousPage(),"aria-label":l.goToFirstPage,children:/* @__PURE__ */ j(te,{})}),/* @__PURE__ */ j(t,{type:`button`,variant:`secondary`,size:`icon-sm`,onClick:()=>c.previousPage(),disabled:!c.getCanPreviousPage(),"aria-label":l.goToPreviousPage,children:/* @__PURE__ */ j(E,{})}),/* @__PURE__ */ j(t,{type:`button`,variant:`secondary`,size:`icon-sm`,onClick:()=>c.nextPage(),disabled:!c.getCanNextPage(),"aria-label":l.goToNextPage,children:/* @__PURE__ */ j(ee,{})}),/* @__PURE__ */ j(t,{type:`button`,variant:`secondary`,size:`icon-sm`,className:`hidden lg:inline-flex`,onClick:()=>c.setPageIndex(u-1),disabled:!c.getCanNextPage(),"aria-label":l.goToLastPage,children:/* @__PURE__ */ j(D,{})})]})]})})}function createDataTableSelectColumn(e){let t=e?.labels?.selectAllRows??Q.selectAllRows,r=e?.labels?.selectRow??Q.selectRow;return{id:`select`,enableSorting:!1,enableHiding:!1,header:({table:e})=>/* @__PURE__ */ j(n,{"aria-label":t,checked:e.getIsAllPageRowsSelected()||e.getIsSomePageRowsSelected()&&`indeterminate`,onCheckedChange:t=>e.toggleAllPageRowsSelected(!!t)}),cell:({row:e})=>/* @__PURE__ */ j(n,{"aria-label":r,checked:e.getIsSelected()||e.getIsSomeSelected()&&`indeterminate`,disabled:!e.getCanSelect(),onCheckedChange:t=>e.toggleSelected(!!t)})}}function DataTable({columns:e,data:t,getRowId:n,filterColumns:r,pageSize:i=10,pageSizeOptions:a,enableRowSelection:o=!1,enableSorting:s=!1,showPagination:c=!1,showColumnVisibility:l=!1,toolbarActions:u,labels:d,className:f,tableClassName:p,variant:m}){return/* @__PURE__ */ M(DataTableRoot,{columns:e,data:t,getRowId:n,pageSize:i,enableRowSelection:o,enableSorting:s,enablePagination:c,labels:d,className:f,children:[/* @__PURE__ */ j(DataTableToolbar,{filterColumns:r,showColumnVisibility:l,toolbarActions:u}),/* @__PURE__ */ j(x,{children:/* @__PURE__ */ M(v,{className:p,variant:m,children:[/* @__PURE__ */ j(DataTableHeader,{}),/* @__PURE__ */ j(DataTableBody,{})]})}),c?/* @__PURE__ */ j(DataTablePagination,{pageSizeOptions:a}):null]})}export{DataTable,DataTableBody,DataTableColumnHeader,DataTableHeader,DataTablePagination,DataTableRoot,DataTableToolbar,DataTableViewOptions,createDataTableSelectColumn,Q as defaultDataTableLabels,useDataTable,useDataTableContext};
2
2
  //# sourceMappingURL=data-table.js.map