@uselets/ui 2.0.1 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/dist/{as-child-Dxg3Xo1G.d.ts → as-child-T9W73ZYU.d.ts} +1 -3
  2. package/dist/{chart-B_6nC_ih.d.ts → chart-8rgtsk95.d.ts} +1 -3
  3. package/dist/cli/uselets.mjs.map +1 -1
  4. package/dist/components/accordion.d.ts +1 -3
  5. package/dist/components/accordion.js.map +1 -1
  6. package/dist/components/alert-dialog.d.ts +1 -3
  7. package/dist/components/alert-dialog.js.map +1 -1
  8. package/dist/components/alert.d.ts +0 -2
  9. package/dist/components/alert.js.map +1 -1
  10. package/dist/components/anchor.d.ts +1 -3
  11. package/dist/components/anchor.js.map +1 -1
  12. package/dist/components/area-chart.d.ts +1 -3
  13. package/dist/components/area-chart.js.map +1 -1
  14. package/dist/components/avatar.d.ts +1 -3
  15. package/dist/components/avatar.js.map +1 -1
  16. package/dist/components/badge.d.ts +1 -3
  17. package/dist/components/badge.js.map +1 -1
  18. package/dist/components/bar-chart.d.ts +1 -3
  19. package/dist/components/bar-chart.js.map +1 -1
  20. package/dist/components/bottom-nav.d.ts +1 -3
  21. package/dist/components/bottom-nav.js.map +1 -1
  22. package/dist/components/breadcrumb.d.ts +1 -3
  23. package/dist/components/breadcrumb.js.map +1 -1
  24. package/dist/components/button-group.d.ts +1 -3
  25. package/dist/components/button-group.js.map +1 -1
  26. package/dist/components/button.d.ts +1 -3
  27. package/dist/components/button.js.map +1 -1
  28. package/dist/components/calendar.d.ts +0 -2
  29. package/dist/components/calendar.js +1 -1
  30. package/dist/components/calendar.js.map +1 -1
  31. package/dist/components/card.d.ts +0 -2
  32. package/dist/components/card.js.map +1 -1
  33. package/dist/components/carousel.d.ts +0 -2
  34. package/dist/components/carousel.js.map +1 -1
  35. package/dist/components/center.d.ts +0 -2
  36. package/dist/components/center.js.map +1 -1
  37. package/dist/components/chart.d.ts +1 -1
  38. package/dist/components/chart.js.map +1 -1
  39. package/dist/components/checkbox.d.ts +0 -2
  40. package/dist/components/checkbox.js.map +1 -1
  41. package/dist/components/code.d.ts +0 -2
  42. package/dist/components/code.js.map +1 -1
  43. package/dist/components/collapsible.d.ts +1 -3
  44. package/dist/components/collapsible.js.map +1 -1
  45. package/dist/components/combobox.d.ts +1 -3
  46. package/dist/components/combobox.js.map +1 -1
  47. package/dist/components/command.d.ts +0 -2
  48. package/dist/components/command.js.map +1 -1
  49. package/dist/components/container.d.ts +0 -2
  50. package/dist/components/container.js.map +1 -1
  51. package/dist/components/data-table.d.ts +0 -2
  52. package/dist/components/data-table.js.map +1 -1
  53. package/dist/components/date-range-picker.d.ts +0 -2
  54. package/dist/components/date-range-picker.js.map +1 -1
  55. package/dist/components/dialog.d.ts +1 -3
  56. package/dist/components/dialog.js.map +1 -1
  57. package/dist/components/direction.d.ts +0 -2
  58. package/dist/components/donut-chart.d.ts +0 -2
  59. package/dist/components/donut-chart.js.map +1 -1
  60. package/dist/components/drawer.d.ts +1 -3
  61. package/dist/components/drawer.js.map +1 -1
  62. package/dist/components/dropdown-menu.d.ts +1 -3
  63. package/dist/components/dropdown-menu.js.map +1 -1
  64. package/dist/components/dropzone.d.ts +0 -2
  65. package/dist/components/dropzone.js.map +1 -1
  66. package/dist/components/empty.d.ts +0 -2
  67. package/dist/components/empty.js.map +1 -1
  68. package/dist/components/field.d.ts +0 -2
  69. package/dist/components/field.js.map +1 -1
  70. package/dist/components/flex.d.ts +0 -2
  71. package/dist/components/flex.js.map +1 -1
  72. package/dist/components/grid.d.ts +0 -2
  73. package/dist/components/grid.js.map +1 -1
  74. package/dist/components/group.d.ts +0 -2
  75. package/dist/components/group.js.map +1 -1
  76. package/dist/components/heading.d.ts +1 -3
  77. package/dist/components/heading.js.map +1 -1
  78. package/dist/components/hover-card.d.ts +1 -3
  79. package/dist/components/hover-card.js.map +1 -1
  80. package/dist/components/input-group.d.ts +0 -2
  81. package/dist/components/input-group.js.map +1 -1
  82. package/dist/components/input-otp.d.ts +0 -2
  83. package/dist/components/input-otp.js.map +1 -1
  84. package/dist/components/input.d.ts +0 -2
  85. package/dist/components/input.js.map +1 -1
  86. package/dist/components/kbd.d.ts +0 -2
  87. package/dist/components/kbd.js.map +1 -1
  88. package/dist/components/label.d.ts +1 -3
  89. package/dist/components/label.js.map +1 -1
  90. package/dist/components/list.d.ts +1 -3
  91. package/dist/components/list.js.map +1 -1
  92. package/dist/components/logo.d.ts +0 -2
  93. package/dist/components/marker.d.ts +1 -3
  94. package/dist/components/marker.js.map +1 -1
  95. package/dist/components/mask-input.d.ts +0 -2
  96. package/dist/components/mask-input.js.map +1 -1
  97. package/dist/components/native-select.d.ts +0 -2
  98. package/dist/components/native-select.js.map +1 -1
  99. package/dist/components/navigation-menu.d.ts +1 -3
  100. package/dist/components/navigation-menu.js.map +1 -1
  101. package/dist/components/number-field.d.ts +1 -3
  102. package/dist/components/number-field.js.map +1 -1
  103. package/dist/components/pagination.d.ts +0 -2
  104. package/dist/components/pagination.js.map +1 -1
  105. package/dist/components/phone-input.d.ts +0 -2
  106. package/dist/components/phone-input.js.map +1 -1
  107. package/dist/components/pie-chart.d.ts +1 -3
  108. package/dist/components/pie-chart.js.map +1 -1
  109. package/dist/components/popover.d.ts +1 -3
  110. package/dist/components/popover.js.map +1 -1
  111. package/dist/components/progress.d.ts +0 -2
  112. package/dist/components/progress.js.map +1 -1
  113. package/dist/components/radio-group.d.ts +0 -2
  114. package/dist/components/radio-group.js.map +1 -1
  115. package/dist/components/resizable.d.ts +0 -2
  116. package/dist/components/resizable.js.map +1 -1
  117. package/dist/components/ring-progress.d.ts +0 -2
  118. package/dist/components/ring-progress.js.map +1 -1
  119. package/dist/components/scroll-area.d.ts +0 -2
  120. package/dist/components/scroll-area.js.map +1 -1
  121. package/dist/components/select.d.ts +1 -3
  122. package/dist/components/select.js.map +1 -1
  123. package/dist/components/separator.d.ts +1 -3
  124. package/dist/components/separator.js.map +1 -1
  125. package/dist/components/sidebar.d.ts +1 -3
  126. package/dist/components/sidebar.js.map +1 -1
  127. package/dist/components/simple-grid.d.ts +0 -2
  128. package/dist/components/simple-grid.js.map +1 -1
  129. package/dist/components/skeleton.d.ts +0 -2
  130. package/dist/components/skeleton.js.map +1 -1
  131. package/dist/components/slider.d.ts +0 -2
  132. package/dist/components/slider.js.map +1 -1
  133. package/dist/components/sonner.d.ts +0 -2
  134. package/dist/components/sonner.js.map +1 -1
  135. package/dist/components/spinner.d.ts +0 -2
  136. package/dist/components/spinner.js.map +1 -1
  137. package/dist/components/stack.d.ts +0 -2
  138. package/dist/components/stack.js.map +1 -1
  139. package/dist/components/stepper.d.ts +1 -3
  140. package/dist/components/stepper.js.map +1 -1
  141. package/dist/components/switch.d.ts +0 -2
  142. package/dist/components/switch.js.map +1 -1
  143. package/dist/components/table.d.ts +0 -2
  144. package/dist/components/table.js.map +1 -1
  145. package/dist/components/tabs.d.ts +1 -3
  146. package/dist/components/tabs.js.map +1 -1
  147. package/dist/components/text.d.ts +1 -3
  148. package/dist/components/text.js.map +1 -1
  149. package/dist/components/textarea.d.ts +0 -2
  150. package/dist/components/textarea.js.map +1 -1
  151. package/dist/components/theme.d.ts +0 -2
  152. package/dist/components/theme.js.map +1 -1
  153. package/dist/components/timeline.d.ts +0 -2
  154. package/dist/components/timeline.js.map +1 -1
  155. package/dist/components/toggle-group.d.ts +1 -3
  156. package/dist/components/toggle-group.js.map +1 -1
  157. package/dist/components/toggle.d.ts +1 -3
  158. package/dist/components/toggle.js.map +1 -1
  159. package/dist/components/tooltip.d.ts +1 -3
  160. package/dist/components/tooltip.js.map +1 -1
  161. package/dist/components/unstyled-button.d.ts +1 -3
  162. package/dist/components/unstyled-button.js.map +1 -1
  163. package/dist/components/visibility.d.ts +0 -2
  164. package/dist/components/visibility.js.map +1 -1
  165. package/dist/hooks/use-breakpoint-value.d.ts +0 -2
  166. package/dist/hooks/use-breakpoint-value.js.map +1 -1
  167. package/dist/hooks/use-breakpoint.d.ts +0 -2
  168. package/dist/hooks/use-breakpoint.js.map +1 -1
  169. package/dist/hooks/use-disclosure.d.ts +0 -2
  170. package/dist/hooks/use-disclosure.js.map +1 -1
  171. package/dist/hooks/use-document-visibility.d.ts +0 -2
  172. package/dist/hooks/use-document-visibility.js.map +1 -1
  173. package/dist/hooks/use-hotkeys.d.ts +1 -1
  174. package/dist/hooks/use-idle.d.ts +0 -2
  175. package/dist/hooks/use-idle.js.map +1 -1
  176. package/dist/hooks/use-interval.d.ts +0 -2
  177. package/dist/hooks/use-interval.js.map +1 -1
  178. package/dist/hooks/use-local-storage.d.ts +0 -2
  179. package/dist/hooks/use-local-storage.js.map +1 -1
  180. package/dist/hooks/use-mask.d.ts +0 -2
  181. package/dist/hooks/use-mask.js.map +1 -1
  182. package/dist/hooks/use-mobile.d.ts +0 -2
  183. package/dist/hooks/use-mobile.js.map +1 -1
  184. package/dist/index.d.ts +3 -3
  185. package/dist/lib/as-child.d.ts +1 -1
  186. package/dist/lib/as-child.js.map +1 -1
  187. package/dist/lib/badge.d.ts +0 -2
  188. package/dist/lib/badge.js.map +1 -1
  189. package/dist/lib/button.d.ts +0 -2
  190. package/dist/lib/button.js.map +1 -1
  191. package/dist/lib/color.d.ts +0 -2
  192. package/dist/lib/color.js.map +1 -1
  193. package/dist/lib/compose-refs.d.ts +0 -2
  194. package/dist/lib/compose-refs.js.map +1 -1
  195. package/dist/lib/progress.d.ts +0 -2
  196. package/dist/lib/progress.js.map +1 -1
  197. package/dist/lib/utils.d.ts +0 -2
  198. package/dist/lib/utils.js.map +1 -1
  199. package/dist/logo--R3_XDgA.js.map +1 -1
  200. package/dist/postcss.config.js.map +1 -1
  201. package/dist/resolve-class-name-BurP8ngI.js.map +1 -1
  202. package/dist/{use-hotkeys-D1_TEIwN.d.ts → use-hotkeys-BVm0IGb8.d.ts} +1 -5
  203. package/dist/use-hotkeys-YDJmGWX6.js.map +1 -1
  204. package/package.json +9 -9
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.js","names":["CheckboxPrimitive","Checkbox$1","checkboxVariants","cva","selectionControlColorVariants","checkboxLabelVariants","checkboxDescriptionVariants","ariaInvalid","props","generatedId","useId","fieldControlId","useFieldControlId","id","invalid","useFieldInvalid","hasLabel","label","resolvedId","labelClassName","labelRootProps","labelProps","descriptionId","hasDescription","description","descriptionClassName","descriptionRootProps","descriptionProps","resolvedDescriptionId","checkbox","color","size","cn","resolveClassName","className","state","IconCheck","IconMinus","Label"],"sources":["../../src/components/checkbox.tsx"],"sourcesContent":["import type * as React from 'react'\nimport { type ReactNode, useId } from 'react'\n\nimport { Checkbox as CheckboxPrimitive } from '@base-ui/react/checkbox'\nimport { IconCheck, IconMinus } from '@tabler/icons-react'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport type { UIColor } from '../lib/color'\nimport { selectionControlColorVariants } from '../lib/color'\nimport { cn } from '../lib/utils'\nimport { resolveClassName } from '../utils/resolve-class-name'\nimport { useFieldControlId, useFieldInvalid } from './field'\nimport { Label, type LabelProps } from './label'\n\nconst checkboxVariants = cva(\n 'border-input dark:data-unchecked:bg-input/30 data-checked:bg-(--selection-control) data-checked:text-(--selection-control-foreground) data-checked:border-(--selection-control) focus-visible:border-ring focus-visible:ring-ring/50 flex items-center justify-center border transition-colors group-has-disabled/field:opacity-50 focus-visible:ring-3 peer relative shrink-0 outline-none after:absolute after:-inset-x-3 after:-inset-y-2 data-disabled:cursor-not-allowed data-disabled:opacity-50',\n {\n variants: {\n color: selectionControlColorVariants,\n size: {\n sm: 'size-3.5 rounded-[3px] [&_[data-slot=checkbox-indicator]>svg]:size-3',\n md: 'size-4 rounded-[4px] [&_[data-slot=checkbox-indicator]>svg]:size-3.5',\n lg: 'size-5 rounded-[5px] [&_[data-slot=checkbox-indicator]>svg]:size-4'\n }\n },\n defaultVariants: {\n color: 'primary',\n size: 'md'\n }\n }\n)\n\nconst checkboxLabelVariants = cva('', {\n variants: {\n size: {\n sm: 'text-xs',\n md: 'text-sm',\n lg: 'text-lg'\n }\n },\n defaultVariants: {\n size: 'md'\n }\n})\n\nconst checkboxDescriptionVariants = cva(\n 'text-muted-foreground text-left leading-normal font-normal [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary',\n {\n variants: {\n size: {\n sm: 'text-xs',\n md: 'text-xs',\n lg: 'text-sm'\n }\n },\n defaultVariants: {\n size: 'md'\n }\n }\n)\n\nexport type CheckboxProps = Omit<React.ComponentProps<typeof CheckboxPrimitive.Root>, 'render'> &\n VariantProps<typeof checkboxVariants> & {\n /**\n * Palette family used when checked.\n * @default 'primary'\n */\n color?: UIColor\n /** Label rendered next to the checkbox and linked to it. */\n label?: ReactNode\n /** Props for the rendered label. */\n labelProps?: Omit<LabelProps, 'children' | 'htmlFor'>\n /** Helper text rendered below the label. */\n description?: ReactNode\n /** Props for the rendered description. */\n descriptionProps?: Omit<React.ComponentProps<'p'>, 'children'>\n }\n\nfunction Checkbox({\n className,\n color = 'primary',\n id,\n label,\n labelProps,\n description,\n descriptionProps,\n size = 'md',\n 'aria-invalid': ariaInvalid,\n ...props\n}: CheckboxProps) {\n const generatedId = useId()\n const fieldControlId = useFieldControlId(id)\n const invalid = useFieldInvalid(ariaInvalid)\n const hasLabel = label !== undefined\n const resolvedId = fieldControlId ?? (hasLabel ? generatedId : undefined)\n const { className: labelClassName, ...labelRootProps } = labelProps ?? {}\n const descriptionId = useId()\n const hasDescription = description !== undefined\n const { className: descriptionClassName, ...descriptionRootProps } = descriptionProps ?? {}\n const resolvedDescriptionId = hasDescription ? (descriptionRootProps.id ?? descriptionId) : undefined\n\n const checkbox = (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n data-color={color}\n data-size={size}\n id={resolvedId}\n aria-describedby={resolvedDescriptionId}\n aria-invalid={invalid}\n className={(state) => cn(checkboxVariants({ color, size }), resolveClassName(className, state))}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"grid place-content-center text-current transition-none\"\n >\n <IconCheck className=\"block in-data-indeterminate:hidden\" />\n <IconMinus className=\"hidden in-data-indeterminate:block\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n\n if (!hasLabel && !hasDescription) {\n return checkbox\n }\n\n return (\n <div\n data-slot=\"checkbox-field\"\n className=\"grid grid-cols-[auto_1fr] items-center justify-items-start gap-x-2 gap-y-0.5\"\n >\n {checkbox}\n {hasLabel && (\n <Label {...labelRootProps} htmlFor={resolvedId} className={cn(checkboxLabelVariants({ size }), labelClassName)}>\n {label}\n </Label>\n )}\n {hasDescription && (\n <p\n data-slot=\"checkbox-description\"\n {...descriptionRootProps}\n id={resolvedDescriptionId}\n className={cn('col-start-2', checkboxDescriptionVariants({ size }), descriptionClassName)}\n >\n {description}\n </p>\n )}\n </div>\n )\n}\n\nexport { Checkbox }\n"],"mappings":"shBAcA,MAAME,EAAmBC,EACvB,yeACA,CACE,SAAU,CACR,MAAOC,EACP,KAAM,CACJ,GAAI,uEACJ,GAAI,uEACJ,GAAI,oEACN,CACF,EACA,gBAAiB,CACf,MAAO,UACP,KAAM,IACR,CACF,CACF,EAEMC,EAAwBF,EAAI,GAAI,CACpC,SAAU,CACR,KAAM,CACJ,GAAI,UACJ,GAAI,UACJ,GAAI,SACN,CACF,EACA,gBAAiB,CACf,KAAM,IACR,CACF,CAAC,EAEKG,EAA8BH,EAClC,+HACA,CACE,SAAU,CACR,KAAM,CACJ,GAAI,UACJ,GAAI,UACJ,GAAI,SACN,CACF,EACA,gBAAiB,CACf,KAAM,IACR,CACF,CACF,EAmBA,SAAS,SAAS,CAChB,YACA,QAAQ,UACR,KACA,QACA,aACA,cACA,mBACA,OAAO,KACP,eAAgBI,EAChB,GAAGC,GACa,CAChB,IAAMC,EAAcC,EAAM,EACpBC,EAAiBC,EAAkBC,CAAE,EACrCC,EAAUC,EAAgBR,CAAW,EACrCS,EAAWC,IAAU,IAAA,GACrBC,EAAaP,IAAmBK,EAAWP,EAAc,IAAA,IACzD,CAAE,UAAWU,EAAgB,GAAGC,GAAmBC,GAAc,CAAC,EAClEC,EAAgBZ,EAAM,EACtBa,EAAiBC,IAAgB,IAAA,GACjC,CAAE,UAAWC,EAAsB,GAAGC,GAAyBC,GAAoB,CAAC,EACpFC,EAAwBL,EAAkBG,EAAqB,IAAMJ,EAAiB,IAAA,GAEtFO,EACJ,kBAAC7B,EAAkB,KAAnB,CACE,YAAU,WACV,aAAY8B,EACZ,YAAWC,EACX,GAAIb,EACJ,mBAAkBU,EAClB,eAAcd,EACd,UAAY,GAAUkB,EAAG9B,EAAiB,CAAE,QAAO,MAAK,CAAC,EAAG+B,EAAiBC,EAAWC,CAAK,CAAC,EAC9F,GAAI3B,EAEJ,SAAA,kBAACR,EAAkB,UAAnB,CACE,YAAU,qBACV,UAAU,yDAFZ,SAAA,CAIE,kBAACoC,EAAD,CAAW,UAAU,oCAAsC,CAAA,EAC3D,kBAACC,EAAD,CAAW,UAAU,oCAAsC,CAAA,CAChC,GACP,CAAA,EAO1B,MAJI,CAACrB,GAAY,CAACO,EACTM,EAIP,kBAAC,MAAD,CACE,YAAU,iBACV,UAAU,+EAFZ,SAAA,CAIGA,EACAb,GACC,kBAACsB,EAAD,CAAO,GAAIlB,EAAgB,QAASF,EAAY,UAAWc,EAAG3B,EAAsB,CAAE,MAAK,CAAC,EAAGc,CAAc,EAC1G,SAAAF,CACI,CAAA,EAERM,GACC,kBAAC,IAAD,CACE,YAAU,uBACV,GAAIG,EACJ,GAAIE,EACJ,UAAWI,EAAG,cAAe1B,EAA4B,CAAE,MAAK,CAAC,EAAGmB,CAAoB,EAEvF,SAAAD,CACA,CAAA,CAEF,GAET"}
1
+ {"version":3,"file":"checkbox.js","names":["CheckboxPrimitive","Checkbox$1","checkboxVariants","cva","selectionControlColorVariants","checkboxLabelVariants","checkboxDescriptionVariants","ariaInvalid","props","generatedId","useId","fieldControlId","useFieldControlId","id","invalid","useFieldInvalid","hasLabel","label","resolvedId","labelClassName","labelRootProps","labelProps","descriptionId","hasDescription","description","descriptionClassName","descriptionRootProps","descriptionProps","resolvedDescriptionId","checkbox","color","size","cn","resolveClassName","className","state","IconCheck","IconMinus","Label"],"sources":["../../src/components/checkbox.tsx"],"sourcesContent":["import type * as React from 'react'\nimport { type ReactNode, useId } from 'react'\n\nimport { Checkbox as CheckboxPrimitive } from '@base-ui/react/checkbox'\nimport { IconCheck, IconMinus } from '@tabler/icons-react'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport type { UIColor } from '../lib/color'\nimport { selectionControlColorVariants } from '../lib/color'\nimport { cn } from '../lib/utils'\nimport { resolveClassName } from '../utils/resolve-class-name'\nimport { useFieldControlId, useFieldInvalid } from './field'\nimport { Label, type LabelProps } from './label'\n\nconst checkboxVariants = cva(\n 'border-input dark:data-unchecked:bg-input/30 data-checked:bg-(--selection-control) data-checked:text-(--selection-control-foreground) data-checked:border-(--selection-control) focus-visible:border-ring focus-visible:ring-ring/50 flex items-center justify-center border transition-colors group-has-disabled/field:opacity-50 focus-visible:ring-3 peer relative shrink-0 outline-none after:absolute after:-inset-x-3 after:-inset-y-2 data-disabled:cursor-not-allowed data-disabled:opacity-50',\n {\n variants: {\n color: selectionControlColorVariants,\n size: {\n sm: 'size-3.5 rounded-[3px] [&_[data-slot=checkbox-indicator]>svg]:size-3',\n md: 'size-4 rounded-[4px] [&_[data-slot=checkbox-indicator]>svg]:size-3.5',\n lg: 'size-5 rounded-[5px] [&_[data-slot=checkbox-indicator]>svg]:size-4'\n }\n },\n defaultVariants: {\n color: 'primary',\n size: 'md'\n }\n }\n)\n\nconst checkboxLabelVariants = cva('', {\n variants: {\n size: {\n sm: 'text-xs',\n md: 'text-sm',\n lg: 'text-lg'\n }\n },\n defaultVariants: {\n size: 'md'\n }\n})\n\nconst checkboxDescriptionVariants = cva(\n 'text-muted-foreground text-left leading-normal font-normal [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary',\n {\n variants: {\n size: {\n sm: 'text-xs',\n md: 'text-xs',\n lg: 'text-sm'\n }\n },\n defaultVariants: {\n size: 'md'\n }\n }\n)\n\nexport type CheckboxProps = Omit<React.ComponentProps<typeof CheckboxPrimitive.Root>, 'render'> &\n VariantProps<typeof checkboxVariants> & {\n /**\n * Palette family used when checked.\n * @default 'primary'\n */\n color?: UIColor\n /** Label rendered next to the checkbox and linked to it. */\n label?: ReactNode\n /** Props for the rendered label. */\n labelProps?: Omit<LabelProps, 'children' | 'htmlFor'>\n /** Helper text rendered below the label. */\n description?: ReactNode\n /** Props for the rendered description. */\n descriptionProps?: Omit<React.ComponentProps<'p'>, 'children'>\n }\n\nfunction Checkbox({\n className,\n color = 'primary',\n id,\n label,\n labelProps,\n description,\n descriptionProps,\n size = 'md',\n 'aria-invalid': ariaInvalid,\n ...props\n}: CheckboxProps) {\n const generatedId = useId()\n const fieldControlId = useFieldControlId(id)\n const invalid = useFieldInvalid(ariaInvalid)\n const hasLabel = label !== undefined\n const resolvedId = fieldControlId ?? (hasLabel ? generatedId : undefined)\n const { className: labelClassName, ...labelRootProps } = labelProps ?? {}\n const descriptionId = useId()\n const hasDescription = description !== undefined\n const { className: descriptionClassName, ...descriptionRootProps } = descriptionProps ?? {}\n const resolvedDescriptionId = hasDescription ? (descriptionRootProps.id ?? descriptionId) : undefined\n\n const checkbox = (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n data-color={color}\n data-size={size}\n id={resolvedId}\n aria-describedby={resolvedDescriptionId}\n aria-invalid={invalid}\n className={(state) => cn(checkboxVariants({ color, size }), resolveClassName(className, state))}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"grid place-content-center text-current transition-none\"\n >\n <IconCheck className=\"block in-data-indeterminate:hidden\" />\n <IconMinus className=\"hidden in-data-indeterminate:block\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n\n if (!hasLabel && !hasDescription) {\n return checkbox\n }\n\n return (\n <div\n data-slot=\"checkbox-field\"\n className=\"grid grid-cols-[auto_1fr] items-center justify-items-start gap-x-2 gap-y-0.5\"\n >\n {checkbox}\n {hasLabel && (\n <Label {...labelRootProps} htmlFor={resolvedId} className={cn(checkboxLabelVariants({ size }), labelClassName)}>\n {label}\n </Label>\n )}\n {hasDescription && (\n <p\n data-slot=\"checkbox-description\"\n {...descriptionRootProps}\n id={resolvedDescriptionId}\n className={cn('col-start-2', checkboxDescriptionVariants({ size }), descriptionClassName)}\n >\n {description}\n </p>\n )}\n </div>\n )\n}\n\nexport { Checkbox }\n"],"mappings":"A,shBAcA,MAAME,EAAmBC,EACvB,yeACA,CACE,SAAU,CACR,MAAOC,EACP,KAAM,CACJ,GAAI,uEACJ,GAAI,uEACJ,GAAI,oEACN,CACF,EACA,gBAAiB,CACf,MAAO,UACP,KAAM,IACR,CACF,CACF,EAEMC,EAAwBF,EAAI,GAAI,CACpC,SAAU,CACR,KAAM,CACJ,GAAI,UACJ,GAAI,UACJ,GAAI,SACN,CACF,EACA,gBAAiB,CACf,KAAM,IACR,CACF,CAAC,EAEKG,EAA8BH,EAClC,+HACA,CACE,SAAU,CACR,KAAM,CACJ,GAAI,UACJ,GAAI,UACJ,GAAI,SACN,CACF,EACA,gBAAiB,CACf,KAAM,IACR,CACF,CACF,EAmBA,SAAS,SAAS,CAChB,YACA,QAAQ,UACR,KACA,QACA,aACA,cACA,mBACA,OAAO,KACP,eAAgBI,EAChB,GAAGC,GACa,CAChB,IAAMC,EAAcC,EAAM,EACpBC,EAAiBC,EAAkBC,CAAE,EACrCC,EAAUC,EAAgBR,CAAW,EACrCS,EAAWC,IAAU,IAAA,GACrBC,EAAaP,IAAmBK,EAAWP,EAAc,IAAA,IACzD,CAAE,UAAWU,EAAgB,GAAGC,GAAmBC,GAAc,CAAC,EAClEC,EAAgBZ,EAAM,EACtBa,EAAiBC,IAAgB,IAAA,GACjC,CAAE,UAAWC,EAAsB,GAAGC,GAAyBC,GAAoB,CAAC,EACpFC,EAAwBL,EAAkBG,EAAqB,IAAMJ,EAAiB,IAAA,GAEtFO,EACJ,kBAAC7B,EAAkB,KAAnB,CACE,YAAU,WACV,aAAY8B,EACZ,YAAWC,EACX,GAAIb,EACJ,mBAAkBU,EAClB,eAAcd,EACd,UAAY,GAAUkB,EAAG9B,EAAiB,CAAE,QAAO,MAAK,CAAC,EAAG+B,EAAiBC,EAAWC,CAAK,CAAC,EAC9F,GAAI3B,EAEJ,SAAA,kBAACR,EAAkB,UAAnB,CACE,YAAU,qBACV,UAAU,yDAFZ,SAAA,CAIE,kBAACoC,EAAD,CAAW,UAAU,oCAAsC,CAAA,EAC3D,kBAACC,EAAD,CAAW,UAAU,oCAAsC,CAAA,CAChC,C,EACP,CAAA,EAO1B,MAJI,CAACrB,GAAY,CAACO,EACTM,EAIP,kBAAC,MAAD,CACE,YAAU,iBACV,UAAU,+EAFZ,SAAA,CAIGA,EACAb,GACC,kBAACsB,EAAD,CAAO,GAAIlB,EAAgB,QAASF,EAAY,UAAWc,EAAG3B,EAAsB,CAAE,MAAK,CAAC,EAAGc,CAAc,EAC1G,SAAAF,CACI,CAAA,EAERM,GACC,kBAAC,IAAD,CACE,YAAU,uBACV,GAAIG,EACJ,GAAIE,EACJ,UAAWI,EAAG,cAAe1B,EAA4B,CAAE,MAAK,CAAC,EAAGmB,CAAoB,EAEvF,SAAAD,CACA,CAAA,CAEF,C,EAET,C"}
@@ -1,8 +1,6 @@
1
1
  import { t as __name } from "../rolldown-runtime-BhWHdk3m.js";
2
2
  import * as React from "react";
3
- //#region src/components/code.d.ts
4
3
  export type CodeProps = React.ComponentProps<'code'>;
5
4
  declare function Code({ className, ...props }: CodeProps): React.JSX.Element;
6
- //#endregion
7
5
  export { Code };
8
6
  //# sourceMappingURL=code.d.ts.map
@@ -1 +1 @@
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
+ {"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":"A,qHAMA,SAAS,KAAK,CAAE,YAAW,GAAGA,GAAoB,CAChD,MACE,kBAAC,OAAD,CACE,YAAU,OACV,UAAWC,EACT,wHACAC,CACF,EACA,GAAIF,CACL,CAAA,CAEL,C"}
@@ -1,13 +1,11 @@
1
1
  import { t as __name } from "../rolldown-runtime-BhWHdk3m.js";
2
- import { t as AsChildPrimitiveProps } from "../as-child-Dxg3Xo1G.js";
2
+ import { t as AsChildPrimitiveProps } from "../as-child-T9W73ZYU.js";
3
3
  import { Collapsible as Collapsible$1 } from "@base-ui/react/collapsible";
4
- //#region src/components/collapsible.d.ts
5
4
  export type CollapsibleProps = AsChildPrimitiveProps<typeof Collapsible$1.Root>;
6
5
  export type CollapsibleTriggerProps = AsChildPrimitiveProps<typeof Collapsible$1.Trigger>;
7
6
  export type CollapsibleContentProps = AsChildPrimitiveProps<typeof Collapsible$1.Panel>;
8
7
  declare function Collapsible({ asChild, children, ...props }: CollapsibleProps): import("react").JSX.Element;
9
8
  declare function CollapsibleTrigger({ asChild, children, ...props }: CollapsibleTriggerProps): import("react").JSX.Element;
10
9
  declare function CollapsibleContent({ asChild, children, ...props }: CollapsibleContentProps): import("react").JSX.Element;
11
- //#endregion
12
10
  export { Collapsible, CollapsibleContent, CollapsibleTrigger };
13
11
  //# sourceMappingURL=collapsible.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"collapsible.js","names":["CollapsiblePrimitive","Collapsible$1","props","toAsChildRenderProps","asChild","children"],"sources":["../../src/components/collapsible.tsx"],"sourcesContent":["import { Collapsible as CollapsiblePrimitive } from '@base-ui/react/collapsible'\n\nimport { type AsChildPrimitiveProps, toAsChildRenderProps } from '../lib/as-child'\n\nexport type CollapsibleProps = AsChildPrimitiveProps<typeof CollapsiblePrimitive.Root>\n\nexport type CollapsibleTriggerProps = AsChildPrimitiveProps<typeof CollapsiblePrimitive.Trigger>\n\nexport type CollapsibleContentProps = AsChildPrimitiveProps<typeof CollapsiblePrimitive.Panel>\n\nfunction Collapsible({ asChild, children, ...props }: CollapsibleProps) {\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} {...toAsChildRenderProps(asChild, children)} />\n}\n\nfunction CollapsibleTrigger({ asChild, children, ...props }: CollapsibleTriggerProps) {\n return (\n <CollapsiblePrimitive.Trigger\n data-slot=\"collapsible-trigger\"\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n />\n )\n}\n\nfunction CollapsibleContent({ asChild, children, ...props }: CollapsibleContentProps) {\n return (\n <CollapsiblePrimitive.Panel\n data-slot=\"collapsible-content\"\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n />\n )\n}\n\nexport { Collapsible, CollapsibleContent, CollapsibleTrigger }\n"],"mappings":"mMAUA,SAAS,YAAY,CAAE,UAAS,WAAU,GAAGE,GAA2B,CACtE,MAAO,kBAACF,EAAqB,KAAtB,CAA2B,YAAU,cAAc,GAAIE,EAAO,GAAIC,EAAqBC,EAASC,CAAQ,CAAI,CAAA,CACrH,CAEA,SAAS,mBAAmB,CAAE,UAAS,WAAU,GAAGH,GAAkC,CACpF,MACE,kBAACF,EAAqB,QAAtB,CACE,YAAU,sBACV,GAAIE,EACJ,GAAIC,EAAqBC,EAASC,CAAQ,CAC3C,CAAA,CAEL,CAEA,SAAS,mBAAmB,CAAE,UAAS,WAAU,GAAGH,GAAkC,CACpF,MACE,kBAACF,EAAqB,MAAtB,CACE,YAAU,sBACV,GAAIE,EACJ,GAAIC,EAAqBC,EAASC,CAAQ,CAC3C,CAAA,CAEL"}
1
+ {"version":3,"file":"collapsible.js","names":["CollapsiblePrimitive","Collapsible$1","props","toAsChildRenderProps","asChild","children"],"sources":["../../src/components/collapsible.tsx"],"sourcesContent":["import { Collapsible as CollapsiblePrimitive } from '@base-ui/react/collapsible'\n\nimport { type AsChildPrimitiveProps, toAsChildRenderProps } from '../lib/as-child'\n\nexport type CollapsibleProps = AsChildPrimitiveProps<typeof CollapsiblePrimitive.Root>\n\nexport type CollapsibleTriggerProps = AsChildPrimitiveProps<typeof CollapsiblePrimitive.Trigger>\n\nexport type CollapsibleContentProps = AsChildPrimitiveProps<typeof CollapsiblePrimitive.Panel>\n\nfunction Collapsible({ asChild, children, ...props }: CollapsibleProps) {\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} {...toAsChildRenderProps(asChild, children)} />\n}\n\nfunction CollapsibleTrigger({ asChild, children, ...props }: CollapsibleTriggerProps) {\n return (\n <CollapsiblePrimitive.Trigger\n data-slot=\"collapsible-trigger\"\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n />\n )\n}\n\nfunction CollapsibleContent({ asChild, children, ...props }: CollapsibleContentProps) {\n return (\n <CollapsiblePrimitive.Panel\n data-slot=\"collapsible-content\"\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n />\n )\n}\n\nexport { Collapsible, CollapsibleContent, CollapsibleTrigger }\n"],"mappings":"A,mMAUA,SAAS,YAAY,CAAE,UAAS,WAAU,GAAGE,GAA2B,CACtE,MAAO,kBAACF,EAAqB,KAAtB,CAA2B,YAAU,cAAc,GAAIE,EAAO,GAAIC,EAAqBC,EAASC,CAAQ,CAAI,CAAA,CACrH,CAEA,SAAS,mBAAmB,CAAE,UAAS,WAAU,GAAGH,GAAkC,CACpF,MACE,kBAACF,EAAqB,QAAtB,CACE,YAAU,sBACV,GAAIE,EACJ,GAAIC,EAAqBC,EAASC,CAAQ,CAC3C,CAAA,CAEL,CAEA,SAAS,mBAAmB,CAAE,UAAS,WAAU,GAAGH,GAAkC,CACpF,MACE,kBAACF,EAAqB,MAAtB,CACE,YAAU,sBACV,GAAIE,EACJ,GAAIC,EAAqBC,EAASC,CAAQ,CAC3C,CAAA,CAEL,C"}
@@ -1,8 +1,7 @@
1
1
  import { t as __name } from "../rolldown-runtime-BhWHdk3m.js";
2
- import { t as AsChildPrimitiveProps } from "../as-child-Dxg3Xo1G.js";
2
+ import { t as AsChildPrimitiveProps } from "../as-child-T9W73ZYU.js";
3
3
  import * as React from "react";
4
4
  import { Combobox as Combobox$1 } from "@base-ui/react/combobox";
5
- //#region src/components/combobox.d.ts
6
5
  export type ComboboxProps<Value = unknown, Multiple extends boolean | undefined = false> = Combobox$1.Root.Props<Value, Multiple>;
7
6
  export type ComboboxValueProps = Combobox$1.Value.Props;
8
7
  export type ComboboxTriggerProps = AsChildPrimitiveProps<typeof Combobox$1.Trigger> & {
@@ -68,6 +67,5 @@ declare function ComboboxChips({ className, children, showClear, asChild, ...pro
68
67
  declare function ComboboxChip({ className, children, showRemove, asChild, ...props }: ComboboxChipProps): React.JSX.Element;
69
68
  declare function ComboboxChipsInput({ className, id, 'aria-invalid': ariaInvalid, ...props }: ComboboxChipsInputProps): React.JSX.Element;
70
69
  declare function useComboboxAnchor(): React.RefObject<HTMLDivElement | null>;
71
- //#endregion
72
70
  export { Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxClear, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxTrigger, ComboboxValue, useComboboxAnchor };
73
71
  //# sourceMappingURL=combobox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"combobox.js","names":["ComboboxPrimitive","resolveClassName","React","Combobox$1","Combobox","props","IconSelector","cn","className","state","toAsChildRenderProps","asChild","children","icon","InputGroupButton","IconX","fieldControlId","useFieldControlId","id","InputGroup","InputGroupAddon","InputGroupInput","showTrigger","triggerIcon","showClear","anchor","IconCheck","Button","showRemove","ariaInvalid","invalid","useFieldInvalid"],"sources":["../../src/components/combobox.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { Combobox as ComboboxPrimitive } from '@base-ui/react/combobox'\nimport { IconCheck, IconSelector, IconX } from '@tabler/icons-react'\n\nimport { type AsChildPrimitiveProps, toAsChildRenderProps } from '../lib/as-child'\nimport { cn } from '../lib/utils'\nimport { resolveClassName } from '../utils/resolve-class-name'\nimport { Button } from './button'\nimport { useFieldControlId, useFieldInvalid } from './field'\nimport { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput } from './input-group'\n\nexport type ComboboxProps<Value = unknown, Multiple extends boolean | undefined = false> = ComboboxPrimitive.Root.Props<\n Value,\n Multiple\n>\n\nexport type ComboboxValueProps = ComboboxPrimitive.Value.Props\n\nexport type ComboboxTriggerProps = AsChildPrimitiveProps<typeof ComboboxPrimitive.Trigger> & {\n /** Icon of the trigger button. Defaults to an up/down chevron. */\n icon?: React.ReactNode\n}\n\nexport type ComboboxClearProps = Omit<ComboboxPrimitive.Clear.Props, 'render'>\n\nexport type ComboboxInputProps = Omit<ComboboxPrimitive.Input.Props, 'render' | 'className'> & {\n /** Classes for the input group that wraps the input and its buttons. */\n className?: string\n /** Icon shown at the start of the input. */\n icon?: React.ReactNode\n /** Replaces the icon of the trigger button. */\n triggerIcon?: React.ReactNode\n /**\n * Shows the button that opens the list.\n * @default true\n */\n showTrigger?: boolean\n /**\n * Shows a button that clears the value.\n * @default false\n */\n showClear?: boolean\n}\n\nexport type ComboboxContentProps = AsChildPrimitiveProps<typeof ComboboxPrimitive.Popup> &\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' | 'keepMounted'>\n\nexport type ComboboxListProps = AsChildPrimitiveProps<typeof ComboboxPrimitive.List>\n\nexport type ComboboxItemProps = AsChildPrimitiveProps<typeof ComboboxPrimitive.Item>\n\nexport type ComboboxGroupProps = AsChildPrimitiveProps<typeof ComboboxPrimitive.Group>\n\nexport type ComboboxLabelProps = AsChildPrimitiveProps<typeof ComboboxPrimitive.GroupLabel>\n\nexport type ComboboxCollectionProps = ComboboxPrimitive.Collection.Props\n\nexport type ComboboxEmptyProps = AsChildPrimitiveProps<typeof ComboboxPrimitive.Empty>\n\nexport type ComboboxSeparatorProps = AsChildPrimitiveProps<typeof ComboboxPrimitive.Separator>\n\nexport type ComboboxChipsProps = AsChildPrimitiveProps<typeof ComboboxPrimitive.Chips> & {\n /**\n * Shows a button that removes all chips.\n * @default false\n */\n showClear?: boolean\n}\n\nexport type ComboboxChipProps = AsChildPrimitiveProps<typeof ComboboxPrimitive.Chip> & {\n /**\n * Shows the button that removes this chip.\n * @default true\n */\n showRemove?: boolean\n}\n\nexport type ComboboxChipsInputProps = Omit<ComboboxPrimitive.Input.Props, 'render'>\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 asChild,\n ...props\n}: ComboboxTriggerProps) {\n return (\n <ComboboxPrimitive.Trigger\n data-slot=\"combobox-trigger\"\n className={(state) => cn(\"[&_svg:not([class*='size-'])]:size-4\", resolveClassName(className, state))}\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n >\n {!asChild && children}\n {!asChild && 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={(state) => cn(resolveClassName(className, state))}\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 asChild,\n children,\n side = 'bottom',\n sideOffset = 6,\n align = 'start',\n alignOffset = 0,\n anchor,\n container,\n keepMounted,\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} keepMounted={keepMounted}>\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={(state) =>\n 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 resolveClassName(className, state)\n )\n }\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n />\n </ComboboxPrimitive.Positioner>\n </ComboboxPrimitive.Portal>\n )\n}\n\nfunction ComboboxList({ className, asChild, children, ...props }: ComboboxListProps) {\n return (\n <ComboboxPrimitive.List\n data-slot=\"combobox-list\"\n className={(state) =>\n 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 resolveClassName(className, state)\n )\n }\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n />\n )\n}\n\nfunction ComboboxItem({ className, children, asChild, ...props }: ComboboxItemProps) {\n return (\n <ComboboxPrimitive.Item\n data-slot=\"combobox-item\"\n className={(state) =>\n 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 resolveClassName(className, state)\n )\n }\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n >\n {!asChild && children}\n {!asChild && (\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 )}\n </ComboboxPrimitive.Item>\n )\n}\n\nfunction ComboboxGroup({ className, asChild, children, ...props }: ComboboxGroupProps) {\n return (\n <ComboboxPrimitive.Group\n data-slot=\"combobox-group\"\n className={(state) => cn(resolveClassName(className, state))}\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n />\n )\n}\n\nfunction ComboboxLabel({ className, asChild, children, ...props }: ComboboxLabelProps) {\n return (\n <ComboboxPrimitive.GroupLabel\n data-slot=\"combobox-label\"\n className={(state) => cn('px-2 py-1.5 text-xs text-muted-foreground', resolveClassName(className, state))}\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n />\n )\n}\n\nfunction ComboboxCollection({ ...props }: ComboboxCollectionProps) {\n return <ComboboxPrimitive.Collection data-slot=\"combobox-collection\" {...props} />\n}\n\nfunction ComboboxEmpty({ className, asChild, children, ...props }: ComboboxEmptyProps) {\n return (\n <ComboboxPrimitive.Empty\n data-slot=\"combobox-empty\"\n className={(state) =>\n cn(\n 'hidden w-full justify-center py-2 text-center text-sm text-muted-foreground group-data-empty/combobox-content:flex',\n resolveClassName(className, state)\n )\n }\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n />\n )\n}\n\nfunction ComboboxSeparator({ className, asChild, children, ...props }: ComboboxSeparatorProps) {\n return (\n <ComboboxPrimitive.Separator\n data-slot=\"combobox-separator\"\n className={(state) => cn('-mx-1 my-1 h-px bg-border', resolveClassName(className, state))}\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n />\n )\n}\n\nfunction ComboboxChips({ className, children, showClear = false, asChild, ...props }: ComboboxChipsProps) {\n return (\n <ComboboxPrimitive.Chips\n data-slot=\"combobox-chips\"\n className={(state) =>\n 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 resolveClassName(className, state)\n )\n }\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n >\n {!asChild && children}\n {showClear && !asChild && (\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, asChild, ...props }: ComboboxChipProps) {\n return (\n <ComboboxPrimitive.Chip\n data-slot=\"combobox-chip\"\n className={(state) =>\n 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 resolveClassName(className, state)\n )\n }\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n >\n {!asChild && <span className=\"flex-1 truncate\">{children}</span>}\n {showRemove && !asChild && (\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, 'aria-invalid': ariaInvalid, ...props }: ComboboxChipsInputProps) {\n const fieldControlId = useFieldControlId(id)\n const invalid = useFieldInvalid(ariaInvalid)\n\n return (\n <ComboboxPrimitive.Input\n id={fieldControlId}\n aria-invalid={invalid}\n data-slot=\"combobox-chip-input\"\n className={(state) => cn('min-w-16 flex-1 outline-none', resolveClassName(className, state))}\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","resolveClassName","React","Combobox$1","Combobox","props","IconSelector","cn","className","state","toAsChildRenderProps","asChild","children","icon","InputGroupButton","IconX","fieldControlId","useFieldControlId","id","InputGroup","InputGroupAddon","InputGroupInput","showTrigger","triggerIcon","showClear","anchor","IconCheck","Button","showRemove","ariaInvalid","invalid","useFieldInvalid"],"sources":["../../src/components/combobox.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { Combobox as ComboboxPrimitive } from '@base-ui/react/combobox'\nimport { IconCheck, IconSelector, IconX } from '@tabler/icons-react'\n\nimport { type AsChildPrimitiveProps, toAsChildRenderProps } from '../lib/as-child'\nimport { cn } from '../lib/utils'\nimport { resolveClassName } from '../utils/resolve-class-name'\nimport { Button } from './button'\nimport { useFieldControlId, useFieldInvalid } from './field'\nimport { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput } from './input-group'\n\nexport type ComboboxProps<Value = unknown, Multiple extends boolean | undefined = false> = ComboboxPrimitive.Root.Props<\n Value,\n Multiple\n>\n\nexport type ComboboxValueProps = ComboboxPrimitive.Value.Props\n\nexport type ComboboxTriggerProps = AsChildPrimitiveProps<typeof ComboboxPrimitive.Trigger> & {\n /** Icon of the trigger button. Defaults to an up/down chevron. */\n icon?: React.ReactNode\n}\n\nexport type ComboboxClearProps = Omit<ComboboxPrimitive.Clear.Props, 'render'>\n\nexport type ComboboxInputProps = Omit<ComboboxPrimitive.Input.Props, 'render' | 'className'> & {\n /** Classes for the input group that wraps the input and its buttons. */\n className?: string\n /** Icon shown at the start of the input. */\n icon?: React.ReactNode\n /** Replaces the icon of the trigger button. */\n triggerIcon?: React.ReactNode\n /**\n * Shows the button that opens the list.\n * @default true\n */\n showTrigger?: boolean\n /**\n * Shows a button that clears the value.\n * @default false\n */\n showClear?: boolean\n}\n\nexport type ComboboxContentProps = AsChildPrimitiveProps<typeof ComboboxPrimitive.Popup> &\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' | 'keepMounted'>\n\nexport type ComboboxListProps = AsChildPrimitiveProps<typeof ComboboxPrimitive.List>\n\nexport type ComboboxItemProps = AsChildPrimitiveProps<typeof ComboboxPrimitive.Item>\n\nexport type ComboboxGroupProps = AsChildPrimitiveProps<typeof ComboboxPrimitive.Group>\n\nexport type ComboboxLabelProps = AsChildPrimitiveProps<typeof ComboboxPrimitive.GroupLabel>\n\nexport type ComboboxCollectionProps = ComboboxPrimitive.Collection.Props\n\nexport type ComboboxEmptyProps = AsChildPrimitiveProps<typeof ComboboxPrimitive.Empty>\n\nexport type ComboboxSeparatorProps = AsChildPrimitiveProps<typeof ComboboxPrimitive.Separator>\n\nexport type ComboboxChipsProps = AsChildPrimitiveProps<typeof ComboboxPrimitive.Chips> & {\n /**\n * Shows a button that removes all chips.\n * @default false\n */\n showClear?: boolean\n}\n\nexport type ComboboxChipProps = AsChildPrimitiveProps<typeof ComboboxPrimitive.Chip> & {\n /**\n * Shows the button that removes this chip.\n * @default true\n */\n showRemove?: boolean\n}\n\nexport type ComboboxChipsInputProps = Omit<ComboboxPrimitive.Input.Props, 'render'>\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 asChild,\n ...props\n}: ComboboxTriggerProps) {\n return (\n <ComboboxPrimitive.Trigger\n data-slot=\"combobox-trigger\"\n className={(state) => cn(\"[&_svg:not([class*='size-'])]:size-4\", resolveClassName(className, state))}\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n >\n {!asChild && children}\n {!asChild && 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={(state) => cn(resolveClassName(className, state))}\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 asChild,\n children,\n side = 'bottom',\n sideOffset = 6,\n align = 'start',\n alignOffset = 0,\n anchor,\n container,\n keepMounted,\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} keepMounted={keepMounted}>\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={(state) =>\n 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 resolveClassName(className, state)\n )\n }\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n />\n </ComboboxPrimitive.Positioner>\n </ComboboxPrimitive.Portal>\n )\n}\n\nfunction ComboboxList({ className, asChild, children, ...props }: ComboboxListProps) {\n return (\n <ComboboxPrimitive.List\n data-slot=\"combobox-list\"\n className={(state) =>\n 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 resolveClassName(className, state)\n )\n }\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n />\n )\n}\n\nfunction ComboboxItem({ className, children, asChild, ...props }: ComboboxItemProps) {\n return (\n <ComboboxPrimitive.Item\n data-slot=\"combobox-item\"\n className={(state) =>\n 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 resolveClassName(className, state)\n )\n }\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n >\n {!asChild && children}\n {!asChild && (\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 )}\n </ComboboxPrimitive.Item>\n )\n}\n\nfunction ComboboxGroup({ className, asChild, children, ...props }: ComboboxGroupProps) {\n return (\n <ComboboxPrimitive.Group\n data-slot=\"combobox-group\"\n className={(state) => cn(resolveClassName(className, state))}\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n />\n )\n}\n\nfunction ComboboxLabel({ className, asChild, children, ...props }: ComboboxLabelProps) {\n return (\n <ComboboxPrimitive.GroupLabel\n data-slot=\"combobox-label\"\n className={(state) => cn('px-2 py-1.5 text-xs text-muted-foreground', resolveClassName(className, state))}\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n />\n )\n}\n\nfunction ComboboxCollection({ ...props }: ComboboxCollectionProps) {\n return <ComboboxPrimitive.Collection data-slot=\"combobox-collection\" {...props} />\n}\n\nfunction ComboboxEmpty({ className, asChild, children, ...props }: ComboboxEmptyProps) {\n return (\n <ComboboxPrimitive.Empty\n data-slot=\"combobox-empty\"\n className={(state) =>\n cn(\n 'hidden w-full justify-center py-2 text-center text-sm text-muted-foreground group-data-empty/combobox-content:flex',\n resolveClassName(className, state)\n )\n }\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n />\n )\n}\n\nfunction ComboboxSeparator({ className, asChild, children, ...props }: ComboboxSeparatorProps) {\n return (\n <ComboboxPrimitive.Separator\n data-slot=\"combobox-separator\"\n className={(state) => cn('-mx-1 my-1 h-px bg-border', resolveClassName(className, state))}\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n />\n )\n}\n\nfunction ComboboxChips({ className, children, showClear = false, asChild, ...props }: ComboboxChipsProps) {\n return (\n <ComboboxPrimitive.Chips\n data-slot=\"combobox-chips\"\n className={(state) =>\n 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 resolveClassName(className, state)\n )\n }\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n >\n {!asChild && children}\n {showClear && !asChild && (\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, asChild, ...props }: ComboboxChipProps) {\n return (\n <ComboboxPrimitive.Chip\n data-slot=\"combobox-chip\"\n className={(state) =>\n 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 resolveClassName(className, state)\n )\n }\n {...props}\n {...toAsChildRenderProps(asChild, children)}\n >\n {!asChild && <span className=\"flex-1 truncate\">{children}</span>}\n {showRemove && !asChild && (\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, 'aria-invalid': ariaInvalid, ...props }: ComboboxChipsInputProps) {\n const fieldControlId = useFieldControlId(id)\n const invalid = useFieldInvalid(ariaInvalid)\n\n return (\n <ComboboxPrimitive.Input\n id={fieldControlId}\n aria-invalid={invalid}\n data-slot=\"combobox-chip-input\"\n className={(state) => cn('min-w-16 flex-1 outline-none', resolveClassName(className, state))}\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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"}
@@ -2,7 +2,6 @@ import { t as __name } from "../rolldown-runtime-BhWHdk3m.js";
2
2
  import { Dialog } from "./dialog.js";
3
3
  import * as React from "react";
4
4
  import { Command as Command$1 } from "cmdk";
5
- //#region src/components/command.d.ts
6
5
  export type CommandProps = React.ComponentProps<typeof Command$1>;
7
6
  export type CommandDialogProps = Omit<React.ComponentProps<typeof Dialog>, 'children'> & {
8
7
  children?: React.ReactNode;
@@ -40,6 +39,5 @@ declare function CommandGroup({ className, ...props }: CommandGroupProps): React
40
39
  declare function CommandSeparator({ className, ...props }: CommandSeparatorProps): React.JSX.Element;
41
40
  declare function CommandItem({ className, children, ...props }: CommandItemProps): React.JSX.Element;
42
41
  declare function CommandShortcut({ className, ...props }: CommandShortcutProps): React.JSX.Element;
43
- //#endregion
44
42
  export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut };
45
43
  //# sourceMappingURL=command.d.ts.map
@@ -1 +1 @@
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 = Omit<React.ComponentProps<typeof Dialog>, 'children'> & {\n children?: React.ReactNode\n /**\n * Dialog title, read by screen readers only.\n * @default 'Command Palette'\n */\n title?: string\n /**\n * Dialog description, read by screen readers only.\n * @default 'Search for a command to run...'\n */\n description?: string\n /** Classes for the dialog content. */\n className?: string\n /**\n * Shows the X button of the dialog.\n * @default false\n */\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 size = 'sm',\n ...props\n}: CommandDialogProps) {\n return (\n <Dialog size={size} {...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":"kcA+CA,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,OAAO,KACP,GAAGA,GACkB,CACrB,MACE,kBAACG,EAAD,CAAc,OAAM,GAAIH,EAAxB,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
+ {"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 = Omit<React.ComponentProps<typeof Dialog>, 'children'> & {\n children?: React.ReactNode\n /**\n * Dialog title, read by screen readers only.\n * @default 'Command Palette'\n */\n title?: string\n /**\n * Dialog description, read by screen readers only.\n * @default 'Search for a command to run...'\n */\n description?: string\n /** Classes for the dialog content. */\n className?: string\n /**\n * Shows the X button of the dialog.\n * @default false\n */\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 size = 'sm',\n ...props\n}: CommandDialogProps) {\n return (\n <Dialog size={size} {...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":"A,kcA+CA,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,OAAO,KACP,GAAGA,GACkB,CACrB,MACE,kBAACG,EAAD,CAAc,OAAM,GAAIH,EAAxB,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,C,EAEZ,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,C,EACT,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,C,EAE3B,CAEA,SAAS,gBAAgB,CAAE,YAAW,GAAGD,GAA+B,CACtE,MACE,kBAAC,OAAD,CACE,YAAU,mBACV,UAAWC,EACT,yGACAC,CACF,EACA,GAAIF,CACL,CAAA,CAEL,C"}
@@ -1,12 +1,10 @@
1
1
  import { t as __name } from "../rolldown-runtime-BhWHdk3m.js";
2
2
  import * as React from "react";
3
3
  import { VariantProps } from "class-variance-authority";
4
- //#region src/components/container.d.ts
5
4
  declare const containerVariants: (props?: ({
6
5
  size?: "full" | "lg" | "md" | "sm" | null | undefined;
7
6
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
7
  export type ContainerProps = React.ComponentProps<'div'> & VariantProps<typeof containerVariants>;
9
8
  declare function Container({ className, size, ...props }: ContainerProps): React.JSX.Element;
10
- //#endregion
11
9
  export { Container, containerVariants };
12
10
  //# sourceMappingURL=container.d.ts.map
@@ -1 +1 @@
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
+ {"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":"A,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,C"}
@@ -3,7 +3,6 @@ import { Button } from "./button.js";
3
3
  import { TableProps } from "./table.js";
4
4
  import * as React from "react";
5
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
6
  declare const features: {
8
7
  columnFilteringFeature: import("@tanstack/react-table").TableFeature;
9
8
  rowSortingFeature: import("@tanstack/react-table").TableFeature;
@@ -172,6 +171,5 @@ declare function createDataTableSelectColumn<TData extends RowData$1>(options?:
172
171
  labels?: Pick<Partial<DataTableLabels>, 'selectAllRows' | 'selectRow'>;
173
172
  }): ColumnDef<TData>;
174
173
  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;
175
- //#endregion
176
174
  export { DataTable, DataTableBody, DataTableColumnHeader, DataTableHeader, DataTablePagination, DataTableRoot, DataTableToolbar, DataTableViewOptions, type RowData, createDataTableSelectColumn };
177
175
  //# sourceMappingURL=data-table.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-table.js","names":["React","features","tableFeatures","createFilteredRowModel","createSortedRowModel","createPaginatedRowModel","filterFn_includesString","filterFn_inNumberRange","filterFn_equals","filterFn_arrIncludes","filterFn_inDateRange","filterFn_weakEquals","sortFn_alphanumeric","sortFn_text","sortFn_datetime","sortFn_basic","defaultDataTableLabels","current","total","DataTableContext","DataTablePaginationRegistryContext","ctx","actions","table","column","sorting","setSorting","columnFilters","setColumnFilters","columnVisibility","setColumnVisibility","pagination","setPagination","rowSelection","setRowSelection","previousPageSize","setPreviousPageSize","pageSize","mergedLabels","labels","resolvedColumns","enableRowSelection","columns","useTable","enablePagination","value","cn","className","paginationCount","setPaginationCount","registerPagination","count","props","title","sorted","Button","jsx","IconSortDescending","IconSortAscending","IconArrowsSort","tableProp","resolvedLabel","label","DropdownMenu","DropdownMenuTrigger","IconColumns3","DropdownMenuContent","DropdownMenuGroup","DropdownMenuCheckboxItem","labelsOverride","contextLabels","filterColumnIds","filterColumns","toolbarActions","hasFilter","activeFilterColumn","setActiveFilterColumn","previousFilterColumnIdsRef","id","showColumnVisibility","activeColumn","filterValue","nextId","InputGroup","InputGroupAddon","event","InputGroupInput","Input","TableHeader","TableRow","headerGroup","TableHead","header","flexRender","rows","visibleColumnCount","resolvedEmptyMessage","emptyMessage","TableBody","TableCell","row","cell","pageCount","safePageCount","pageIndex","Select","SelectTrigger","SelectValue","SelectContent","SelectGroup","pageSizeOptions","SelectItem","IconChevronsLeft","IconChevronLeft","IconChevronRight","IconChevronsRight","selectAllRows","options","selectRow","Checkbox","showPagination","TableContainer","Table","tableClassName"],"sources":["../../src/components/data-table.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport {\n IconArrowsSort,\n IconChevronLeft,\n IconChevronRight,\n IconChevronsLeft,\n IconChevronsRight,\n IconColumns3,\n IconSortAscending,\n IconSortDescending\n} from '@tabler/icons-react'\nimport type {\n ColumnFiltersState,\n ColumnVisibilityState,\n PaginationState,\n ReactTable,\n RowData,\n RowSelectionState,\n SortingState,\n Column as TSColumn,\n ColumnDef as TSColumnDef\n} from '@tanstack/react-table'\nimport {\n columnFilteringFeature,\n columnVisibilityFeature,\n createFilteredRowModel,\n createPaginatedRowModel,\n createSortedRowModel,\n filterFn_arrIncludes,\n filterFn_equals,\n filterFn_includesString,\n filterFn_inDateRange,\n filterFn_inNumberRange,\n filterFn_weakEquals,\n flexRender,\n rowPaginationFeature,\n rowSelectionFeature,\n rowSortingFeature,\n sortFn_alphanumeric,\n sortFn_basic,\n sortFn_datetime,\n sortFn_text,\n tableFeatures,\n useTable\n} from '@tanstack/react-table'\n\nimport { cn } from '../lib/utils'\nimport { Button } from './button'\nimport { Checkbox } from './checkbox'\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuTrigger\n} from './dropdown-menu'\nimport { Input } from './input'\nimport { InputGroup, InputGroupAddon, InputGroupInput } from './input-group'\nimport { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue } from './select'\nimport { Table, TableBody, TableCell, TableContainer, TableHead, TableHeader, type TableProps, TableRow } from './table'\n\nconst features = tableFeatures({\n columnFilteringFeature,\n rowSortingFeature,\n rowPaginationFeature,\n rowSelectionFeature,\n columnVisibilityFeature,\n filteredRowModel: createFilteredRowModel(),\n sortedRowModel: createSortedRowModel(),\n paginatedRowModel: createPaginatedRowModel(),\n filterFns: {\n includesString: filterFn_includesString,\n inNumberRange: filterFn_inNumberRange,\n equals: filterFn_equals,\n arrIncludes: filterFn_arrIncludes,\n inDateRange: filterFn_inDateRange,\n weakEquals: filterFn_weakEquals\n },\n sortFns: {\n alphanumeric: sortFn_alphanumeric,\n text: sortFn_text,\n datetime: sortFn_datetime,\n basic: sortFn_basic\n }\n})\n\nexport type ColumnDef<TData extends RowData, TValue = unknown> = TSColumnDef<typeof features, TData, TValue>\nexport type Column<TData extends RowData, TValue = unknown> = TSColumn<typeof features, TData, TValue>\nexport type TanStackTable<TData extends RowData> = ReactTable<typeof features, TData>\nexport type { RowData } from '@tanstack/react-table'\n\ntype DataTableToolbarActions<TData extends RowData> =\n | React.ReactNode\n | ((table: TanStackTable<TData>) => React.ReactNode)\n\nexport type DataTableLabels = {\n filterPlaceholder: string\n filterColumnSelectorLabel: string\n emptyMessage: React.ReactNode\n columnsButton: string\n rowsPerPage: string\n pageOf: (current: number, total: number) => React.ReactNode\n goToFirstPage: string\n goToPreviousPage: string\n goToNextPage: string\n goToLastPage: string\n selectAllRows: string\n selectRow: string\n}\n\nexport const defaultDataTableLabels: DataTableLabels = {\n filterPlaceholder: 'Filtrar linhas...',\n filterColumnSelectorLabel: 'Coluna para filtrar',\n emptyMessage: 'Nenhum resultado.',\n columnsButton: 'Colunas',\n rowsPerPage: 'Linhas por página',\n pageOf: (current, total) => `Página ${current} de ${total}`,\n goToFirstPage: 'Ir para a primeira página',\n goToPreviousPage: 'Ir para a página anterior',\n goToNextPage: 'Ir para a próxima página',\n goToLastPage: 'Ir para a última página',\n selectAllRows: 'Selecionar todas as linhas',\n selectRow: 'Selecionar linha'\n}\n\nexport type DataTableProps<TData extends RowData, TValue = unknown> = {\n /** Column definitions (TanStack `ColumnDef`). */\n columns: ColumnDef<TData, TValue>[]\n /** Rows to show. */\n data: TData[]\n /** Returns a stable id for each row. Recommended with row selection. */\n getRowId?: (originalRow: TData, index: number, parent?: { id: string }) => string\n /** Column id, or ids, searched by the text filter. With two or more, a select picks the column. */\n filterColumns?: string | string[]\n /**\n * Rows per page when pagination is on.\n * @default 10\n */\n pageSize?: number\n /**\n * Options of the rows-per-page select.\n * @default [10, 20, 30, 40, 50]\n */\n pageSizeOptions?: number[]\n /**\n * Adds a checkbox column for selecting rows.\n * @default false\n */\n enableRowSelection?: boolean\n /**\n * Makes columns sortable.\n * @default false\n */\n enableSorting?: boolean\n /**\n * Shows the pagination footer.\n * @default false\n */\n showPagination?: boolean\n /**\n * Shows the menu to hide and show columns.\n * @default false\n */\n showColumnVisibility?: boolean\n /** Content on the right of the toolbar, or a function that receives the `table`. */\n toolbarActions?: DataTableToolbarActions<TData>\n /** Overrides the default pt-BR texts. */\n labels?: Partial<DataTableLabels>\n /** Classes for the outer wrapper. */\n className?: string\n /** Classes for the `<table>`. */\n tableClassName?: string\n /**\n * Table chrome: `line` or `outline`.\n * @default 'line'\n */\n variant?: TableProps['variant']\n}\n\nexport type DataTableColumnHeaderProps<TData extends RowData, TValue> = React.ComponentProps<'div'> & {\n /** The column, from the `header` render function. */\n column: Column<TData, TValue>\n /** Header text. */\n title: React.ReactNode\n}\n\nexport type DataTablePaginationProps<TData extends RowData> = React.ComponentProps<'div'> & {\n table?: TanStackTable<TData>\n pageSizeOptions?: number[]\n labels?: Partial<DataTableLabels>\n}\n\nexport type DataTableViewOptionsProps<TData extends RowData> = React.ComponentProps<typeof Button> & {\n table?: TanStackTable<TData>\n label?: React.ReactNode\n}\n\nexport type UseDataTableOptions<TData extends RowData, TValue = unknown> = {\n columns: ColumnDef<TData, TValue>[]\n data: TData[]\n getRowId?: (originalRow: TData, index: number, parent?: { id: string }) => string\n pageSize?: number\n enableRowSelection?: boolean\n enableSorting?: boolean\n enablePagination?: boolean\n labels?: Partial<DataTableLabels>\n}\n\nexport type DataTableRootProps<TData extends RowData, TValue = unknown> = {\n labels?: Partial<DataTableLabels>\n className?: string\n children: React.ReactNode\n} & (\n | { table: TanStackTable<TData>; columns?: never; data?: never }\n | (Omit<UseDataTableOptions<TData, TValue>, 'labels'> & { table?: never })\n)\n\nexport type DataTableToolbarProps<TData extends RowData> = {\n filterColumns?: string | string[]\n showColumnVisibility?: boolean\n toolbarActions?: DataTableToolbarActions<TData>\n labels?: Partial<DataTableLabels>\n className?: string\n}\n\nexport type DataTableHeaderProps = {\n className?: string\n}\n\nexport type DataTableBodyProps = {\n /** Content shown when there are no rows. */\n emptyMessage?: React.ReactNode\n className?: string\n}\n\ntype DataTableContextValue<TData extends RowData> = {\n table: TanStackTable<TData>\n labels: DataTableLabels\n}\n\nconst DataTableContext = React.createContext<DataTableContextValue<RowData> | null>(null)\n\n// Lets a `DataTablePagination` rendered inside an uncontrolled `DataTableRoot` turn pagination on while mounted.\n// Returns the function that unregisters it.\nconst DataTablePaginationRegistryContext = React.createContext<(() => () => void) | null>(null)\n\nexport function useDataTableContext<TData extends RowData>(): DataTableContextValue<TData> {\n const ctx = React.useContext(DataTableContext)\n if (!ctx) {\n throw new Error('useDataTableContext must be used within <DataTableRoot>')\n }\n return ctx as unknown as DataTableContextValue<TData>\n}\n\nfunction useOptionalDataTableContext<TData extends RowData>(): DataTableContextValue<TData> | null {\n const ctx = React.useContext(DataTableContext)\n return ctx as unknown as DataTableContextValue<TData> | null\n}\n\nfunction renderToolbarActions<TData extends RowData>(\n actions: DataTableToolbarActions<TData> | undefined,\n table: TanStackTable<TData>\n) {\n return typeof actions === 'function' ? actions(table) : actions\n}\n\nfunction getColumnLabel<TData extends RowData>(column: ReturnType<TanStackTable<TData>['getColumn']>): string {\n if (!column) {\n return ''\n }\n const meta = column.columnDef.meta as { label?: string } | undefined\n return meta?.label ?? column.id\n}\n\nexport function useDataTable<TData extends RowData, TValue = unknown>({\n columns,\n data,\n getRowId,\n pageSize = 10,\n enableRowSelection = false,\n enableSorting = false,\n enablePagination = false,\n labels\n}: UseDataTableOptions<TData, TValue>): TanStackTable<TData> {\n const [sorting, setSorting] = React.useState<SortingState>([])\n const [columnFilters, setColumnFilters] = React.useState<ColumnFiltersState>([])\n const [columnVisibility, setColumnVisibility] = React.useState<ColumnVisibilityState>({})\n const [pagination, setPagination] = React.useState<PaginationState>({\n pageIndex: 0,\n pageSize\n })\n const [rowSelection, setRowSelection] = React.useState<RowSelectionState>({})\n\n // A new `pageSize` prop replaces the current page size (including one picked in the pagination select) and\n // goes back to the first page. Adjusted during render so the table never paints a page with the old size.\n const [previousPageSize, setPreviousPageSize] = React.useState(pageSize)\n if (pageSize !== previousPageSize) {\n setPreviousPageSize(pageSize)\n setPagination({ pageIndex: 0, pageSize })\n }\n\n const mergedLabels = React.useMemo(() => ({ ...defaultDataTableLabels, ...labels }), [labels])\n const resolvedColumns = React.useMemo<ColumnDef<TData, TValue>[]>(() => {\n if (!enableRowSelection) {\n return columns\n }\n if (columns.some((column) => column.id === 'select')) {\n return columns\n }\n return [\n createDataTableSelectColumn<TData>({\n labels: { selectAllRows: mergedLabels.selectAllRows, selectRow: mergedLabels.selectRow }\n }) as ColumnDef<TData, TValue>,\n ...columns\n ]\n }, [columns, enableRowSelection, mergedLabels.selectAllRows, mergedLabels.selectRow])\n\n return useTable({\n features,\n data,\n columns: resolvedColumns as ColumnDef<TData>[],\n getRowId,\n enableRowSelection,\n enableSorting,\n manualPagination: !enablePagination,\n state: {\n sorting,\n columnFilters,\n columnVisibility,\n rowSelection,\n pagination\n },\n onSortingChange: setSorting,\n onColumnFiltersChange: setColumnFilters,\n onColumnVisibilityChange: setColumnVisibility,\n onPaginationChange: setPagination,\n onRowSelectionChange: setRowSelection\n })\n}\n\nfunction DataTableRootControlled<TData extends RowData>({\n table,\n labels,\n className,\n children\n}: {\n table: TanStackTable<TData>\n labels?: Partial<DataTableLabels>\n className?: string\n children: React.ReactNode\n}) {\n const mergedLabels = React.useMemo(() => ({ ...defaultDataTableLabels, ...labels }), [labels])\n const value: DataTableContextValue<TData> = { table, labels: mergedLabels }\n return (\n <DataTableContext.Provider value={value as unknown as DataTableContextValue<RowData>}>\n <div className={cn('flex w-full flex-col gap-4', className)}>{children}</div>\n </DataTableContext.Provider>\n )\n}\n\nfunction DataTableRootUncontrolled<TData extends RowData, TValue = unknown>({\n columns,\n data,\n getRowId,\n pageSize,\n enableRowSelection,\n enableSorting,\n enablePagination,\n labels,\n className,\n children\n}: Omit<UseDataTableOptions<TData, TValue>, 'labels'> & {\n labels?: Partial<DataTableLabels>\n className?: string\n children: React.ReactNode\n}) {\n const [paginationCount, setPaginationCount] = React.useState(0)\n const registerPagination = React.useCallback(() => {\n setPaginationCount((count) => count + 1)\n return () => setPaginationCount((count) => count - 1)\n }, [])\n\n const table = useDataTable<TData, TValue>({\n columns,\n data,\n getRowId,\n pageSize,\n enableRowSelection,\n enableSorting,\n enablePagination: enablePagination ?? paginationCount > 0,\n labels\n })\n return (\n <DataTablePaginationRegistryContext.Provider value={registerPagination}>\n <DataTableRootControlled table={table} labels={labels} className={className}>\n {children}\n </DataTableRootControlled>\n </DataTablePaginationRegistryContext.Provider>\n )\n}\n\nfunction DataTableRoot<TData extends RowData, TValue = unknown>(props: DataTableRootProps<TData, TValue>) {\n if ('table' in props && props.table !== undefined) {\n const { table, labels, className, children } = props\n return (\n <DataTableRootControlled table={table} labels={labels} className={className}>\n {children}\n </DataTableRootControlled>\n )\n }\n const {\n columns,\n data,\n getRowId,\n pageSize,\n enableRowSelection,\n enableSorting,\n enablePagination,\n labels,\n className,\n children\n } = props\n return (\n <DataTableRootUncontrolled<TData, TValue>\n columns={columns!}\n data={data!}\n getRowId={getRowId}\n pageSize={pageSize}\n enableRowSelection={enableRowSelection}\n enableSorting={enableSorting}\n enablePagination={enablePagination}\n labels={labels}\n className={className}\n >\n {children}\n </DataTableRootUncontrolled>\n )\n}\n\nfunction DataTableColumnHeader<TData extends RowData, TValue>({\n column,\n title,\n className,\n ...props\n}: DataTableColumnHeaderProps<TData, TValue>) {\n if (!column.getCanSort()) {\n return (\n <div className={cn('inline-flex items-center gap-1', className)} {...props}>\n {title}\n </div>\n )\n }\n\n const sorted = column.getIsSorted()\n\n return (\n <div className={cn('inline-flex items-center gap-1', className)} {...props}>\n {title}\n <Button\n variant=\"ghost\"\n color=\"zinc\"\n size=\"icon-xs\"\n onClick={() => {\n if (sorted === 'desc') return column.clearSorting()\n column.toggleSorting(sorted === 'asc')\n }}\n >\n {sorted === 'desc' ? (\n <IconSortDescending className=\"size-4\" data-icon=\"inline-end\" />\n ) : sorted === 'asc' ? (\n <IconSortAscending className=\"size-4\" data-icon=\"inline-end\" />\n ) : (\n <IconArrowsSort className=\"size-4\" data-icon=\"inline-end\" />\n )}\n </Button>\n </div>\n )\n}\n\nfunction DataTableViewOptions<TData extends RowData>({\n table: tableProp,\n label,\n className,\n ...props\n}: DataTableViewOptionsProps<TData>) {\n const ctx = useOptionalDataTableContext<TData>()\n const table = tableProp ?? ctx?.table\n if (!table) {\n throw new Error('DataTableViewOptions requires a `table` prop or to be rendered within <DataTableRoot>')\n }\n const resolvedLabel = label ?? ctx?.labels.columnsButton ?? defaultDataTableLabels.columnsButton\n const columns = table\n .getAllColumns()\n .filter((column) => typeof column.accessorFn !== 'undefined' && column.getCanHide())\n\n if (columns.length === 0) {\n return null\n }\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button type=\"button\" variant=\"secondary\" size=\"sm\" className={cn('ml-auto', className)} {...props}>\n <IconColumns3 data-icon=\"inline-start\" />\n {resolvedLabel}\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"w-44\">\n <DropdownMenuGroup>\n {columns.map((column) => (\n <DropdownMenuCheckboxItem\n key={column.id}\n checked={column.getIsVisible()}\n onCheckedChange={(value) => column.toggleVisibility(Boolean(value))}\n >\n {getColumnLabel(column)}\n </DropdownMenuCheckboxItem>\n ))}\n </DropdownMenuGroup>\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n\nfunction DataTableToolbar<TData extends RowData>({\n filterColumns,\n showColumnVisibility,\n toolbarActions,\n labels: labelsOverride,\n className\n}: DataTableToolbarProps<TData>) {\n const { table, labels: contextLabels } = useDataTableContext<TData>()\n const labels = React.useMemo(\n () => (labelsOverride ? { ...contextLabels, ...labelsOverride } : contextLabels),\n [contextLabels, labelsOverride]\n )\n const filterColumnIds = React.useMemo<string[]>(() => {\n if (!filterColumns) {\n return []\n }\n return Array.isArray(filterColumns) ? filterColumns : [filterColumns]\n }, [filterColumns])\n\n const actions = renderToolbarActions(toolbarActions, table)\n const hasFilter = filterColumnIds.length > 0\n const [activeFilterColumn, setActiveFilterColumn] = React.useState<string | undefined>(filterColumnIds[0])\n\n // Clears the filter of a column dropped from `filterColumns`; otherwise it keeps filtering the rows with no\n // input left to show or clear it.\n const previousFilterColumnIdsRef = React.useRef(filterColumnIds)\n React.useEffect(() => {\n for (const id of previousFilterColumnIdsRef.current) {\n if (!filterColumnIds.includes(id)) {\n table.getColumn(id)?.setFilterValue(undefined)\n }\n }\n previousFilterColumnIdsRef.current = filterColumnIds\n }, [filterColumnIds, table])\n\n React.useEffect(() => {\n if (filterColumnIds.length === 0) {\n setActiveFilterColumn(undefined)\n return\n }\n setActiveFilterColumn((current) => (current && filterColumnIds.includes(current) ? current : filterColumnIds[0]))\n }, [filterColumnIds])\n\n if (!hasFilter && !showColumnVisibility && !actions) {\n return null\n }\n\n const activeColumn = activeFilterColumn ? table.getColumn(activeFilterColumn) : undefined\n const filterValue = (activeColumn?.getFilterValue() as string | undefined) ?? ''\n\n const handleColumnChange = (nextId: string) => {\n if (nextId === activeFilterColumn) {\n return\n }\n if (activeFilterColumn) {\n table.getColumn(activeFilterColumn)?.setFilterValue(undefined)\n }\n setActiveFilterColumn(nextId)\n }\n\n return (\n <div className={cn('flex flex-col gap-2 sm:flex-row sm:items-center', className)}>\n {hasFilter && activeColumn ? (\n filterColumnIds.length > 1 ? (\n <InputGroup className=\"h-8 w-full sm:max-w-md\">\n <InputGroupAddon align=\"inline-start\" className=\"pr-0\">\n <select\n aria-label={labels.filterColumnSelectorLabel}\n value={activeFilterColumn}\n onChange={(event) => handleColumnChange(event.target.value)}\n className=\"cursor-pointer appearance-none border-0 bg-transparent pr-1 text-sm font-medium text-foreground outline-none focus:outline-none\"\n >\n {filterColumnIds.map((id) => (\n <option key={id} value={id}>\n {getColumnLabel(table.getColumn(id))}\n </option>\n ))}\n </select>\n </InputGroupAddon>\n <InputGroupInput\n placeholder={labels.filterPlaceholder}\n value={filterValue}\n onChange={(event) => activeColumn.setFilterValue(event.target.value)}\n />\n </InputGroup>\n ) : (\n <Input\n placeholder={labels.filterPlaceholder}\n value={filterValue}\n onChange={(event) => activeColumn.setFilterValue(event.target.value)}\n className=\"h-8 w-full sm:max-w-xs\"\n />\n )\n ) : null}\n <div className=\"flex flex-1 items-center justify-end gap-2\">\n {actions}\n {/* `ml-0`: the container already aligns to the end, and the button's own `ml-auto` would split it from the actions. */}\n {showColumnVisibility ? (\n <DataTableViewOptions table={table} label={labels.columnsButton} className=\"ml-0\" />\n ) : null}\n </div>\n </div>\n )\n}\n\nfunction DataTableHeader<TData extends RowData>({ className }: DataTableHeaderProps = {}) {\n const { table } = useDataTableContext<TData>()\n return (\n <TableHeader className={className}>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map((header) => (\n <TableHead key={header.id} colSpan={header.colSpan}>\n {header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext())}\n </TableHead>\n ))}\n </TableRow>\n ))}\n </TableHeader>\n )\n}\n\nfunction DataTableBody<TData extends RowData>({ emptyMessage, className }: DataTableBodyProps = {}) {\n const { table, labels } = useDataTableContext<TData>()\n const rows = table.getRowModel().rows\n const visibleColumnCount = table.getVisibleLeafColumns().length\n const resolvedEmptyMessage = emptyMessage ?? labels.emptyMessage\n\n return (\n <TableBody className={className}>\n {rows.length === 0 ? (\n <TableRow>\n <TableCell colSpan={visibleColumnCount} className=\"h-24 text-center\">\n {resolvedEmptyMessage}\n </TableCell>\n </TableRow>\n ) : (\n rows.map((row) => (\n <TableRow key={row.id} data-state={row.getIsSelected() ? 'selected' : undefined}>\n {row.getVisibleCells().map((cell) => (\n <TableCell key={cell.id}>{flexRender(cell.column.columnDef.cell, cell.getContext())}</TableCell>\n ))}\n </TableRow>\n ))\n )}\n </TableBody>\n )\n}\n\nfunction DataTablePagination<TData extends RowData>({\n table: tableProp,\n pageSizeOptions = [10, 20, 30, 40, 50],\n labels: labelsOverride,\n className,\n ...props\n}: DataTablePaginationProps<TData>) {\n const ctx = useOptionalDataTableContext<TData>()\n const registerPagination = React.useContext(DataTablePaginationRegistryContext)\n // Layout effect so the first paint already shows a single page instead of every row.\n React.useLayoutEffect(() => registerPagination?.(), [registerPagination])\n const table = tableProp ?? ctx?.table\n if (!table) {\n throw new Error('DataTablePagination requires a `table` prop or to be rendered within <DataTableRoot>')\n }\n const mergedLabels = React.useMemo(\n () => ({ ...defaultDataTableLabels, ...ctx?.labels, ...labelsOverride }),\n [ctx?.labels, labelsOverride]\n )\n const pageCount = table.getPageCount()\n const safePageCount = Math.max(pageCount, 1)\n const pageIndex = table.state.pagination.pageIndex\n\n return (\n <div className={cn('flex items-center justify-end gap-4 px-2', className)} {...props}>\n <div className=\"flex items-center gap-6 lg:gap-8\">\n <div className=\"hidden items-center gap-2 sm:flex\">\n <p className=\"text-sm font-medium\">{mergedLabels.rowsPerPage}</p>\n <Select\n value={`${table.state.pagination.pageSize}`}\n onValueChange={(value) => value !== null && table.setPageSize(Number(value))}\n >\n <SelectTrigger size=\"sm\" className=\"h-8 w-20\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent side=\"top\">\n <SelectGroup>\n {pageSizeOptions.map((pageSize) => (\n <SelectItem key={pageSize} value={`${pageSize}`}>\n {pageSize}\n </SelectItem>\n ))}\n </SelectGroup>\n </SelectContent>\n </Select>\n </div>\n <div className=\"text-sm font-medium\">{mergedLabels.pageOf(pageIndex + 1, safePageCount)}</div>\n <div className=\"flex items-center gap-1\">\n <Button\n type=\"button\"\n variant=\"secondary\"\n size=\"icon-sm\"\n className=\"hidden lg:inline-flex\"\n onClick={() => table.setPageIndex(0)}\n disabled={!table.getCanPreviousPage()}\n aria-label={mergedLabels.goToFirstPage}\n >\n <IconChevronsLeft />\n </Button>\n <Button\n type=\"button\"\n variant=\"secondary\"\n size=\"icon-sm\"\n onClick={() => table.previousPage()}\n disabled={!table.getCanPreviousPage()}\n aria-label={mergedLabels.goToPreviousPage}\n >\n <IconChevronLeft />\n </Button>\n <Button\n type=\"button\"\n variant=\"secondary\"\n size=\"icon-sm\"\n onClick={() => table.nextPage()}\n disabled={!table.getCanNextPage()}\n aria-label={mergedLabels.goToNextPage}\n >\n <IconChevronRight />\n </Button>\n <Button\n type=\"button\"\n variant=\"secondary\"\n size=\"icon-sm\"\n className=\"hidden lg:inline-flex\"\n onClick={() => table.setPageIndex(pageCount - 1)}\n disabled={!table.getCanNextPage()}\n aria-label={mergedLabels.goToLastPage}\n >\n <IconChevronsRight />\n </Button>\n </div>\n </div>\n </div>\n )\n}\n\nfunction createDataTableSelectColumn<TData extends RowData>(options?: {\n labels?: Pick<Partial<DataTableLabels>, 'selectAllRows' | 'selectRow'>\n}): ColumnDef<TData> {\n const selectAllRows = options?.labels?.selectAllRows ?? defaultDataTableLabels.selectAllRows\n const selectRow = options?.labels?.selectRow ?? defaultDataTableLabels.selectRow\n\n return {\n id: 'select',\n enableSorting: false,\n enableHiding: false,\n header: ({ table }) => (\n <Checkbox\n aria-label={selectAllRows}\n checked={table.getIsAllPageRowsSelected()}\n indeterminate={!table.getIsAllPageRowsSelected() && table.getIsSomePageRowsSelected()}\n onCheckedChange={(value) => table.toggleAllPageRowsSelected(value)}\n />\n ),\n cell: ({ row }) => (\n <Checkbox\n aria-label={selectRow}\n checked={row.getIsSelected()}\n indeterminate={!row.getIsSelected() && row.getIsSomeSelected()}\n disabled={!row.getCanSelect()}\n onCheckedChange={(value) => row.toggleSelected(value)}\n />\n )\n }\n}\n\nfunction DataTable<TData extends RowData, TValue = unknown>({\n columns,\n data,\n getRowId,\n filterColumns,\n pageSize = 10,\n pageSizeOptions,\n enableRowSelection = false,\n enableSorting = false,\n showPagination = false,\n showColumnVisibility = false,\n toolbarActions,\n labels,\n className,\n tableClassName,\n variant\n}: DataTableProps<TData, TValue>) {\n return (\n <DataTableRoot<TData, TValue>\n columns={columns}\n data={data}\n getRowId={getRowId}\n pageSize={pageSize}\n enableRowSelection={enableRowSelection}\n enableSorting={enableSorting}\n enablePagination={showPagination}\n labels={labels}\n className={className}\n >\n <DataTableToolbar\n filterColumns={filterColumns}\n showColumnVisibility={showColumnVisibility}\n toolbarActions={toolbarActions}\n />\n <TableContainer>\n <Table className={tableClassName} variant={variant}>\n <DataTableHeader />\n <DataTableBody />\n </Table>\n </TableContainer>\n {showPagination ? <DataTablePagination pageSizeOptions={pageSizeOptions} /> : null}\n </DataTableRoot>\n )\n}\n\nexport {\n createDataTableSelectColumn,\n DataTable,\n DataTableBody,\n DataTableColumnHeader,\n DataTableHeader,\n DataTablePagination,\n DataTableRoot,\n DataTableToolbar,\n DataTableViewOptions\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"data-table.js","names":["React","features","tableFeatures","createFilteredRowModel","createSortedRowModel","createPaginatedRowModel","filterFn_includesString","filterFn_inNumberRange","filterFn_equals","filterFn_arrIncludes","filterFn_inDateRange","filterFn_weakEquals","sortFn_alphanumeric","sortFn_text","sortFn_datetime","sortFn_basic","defaultDataTableLabels","current","total","DataTableContext","DataTablePaginationRegistryContext","ctx","actions","table","column","sorting","setSorting","columnFilters","setColumnFilters","columnVisibility","setColumnVisibility","pagination","setPagination","rowSelection","setRowSelection","previousPageSize","setPreviousPageSize","pageSize","mergedLabels","labels","resolvedColumns","enableRowSelection","columns","useTable","enablePagination","value","cn","className","paginationCount","setPaginationCount","registerPagination","count","props","title","sorted","Button","jsx","IconSortDescending","IconSortAscending","IconArrowsSort","tableProp","resolvedLabel","label","DropdownMenu","DropdownMenuTrigger","IconColumns3","DropdownMenuContent","DropdownMenuGroup","DropdownMenuCheckboxItem","labelsOverride","contextLabels","filterColumnIds","filterColumns","toolbarActions","hasFilter","activeFilterColumn","setActiveFilterColumn","previousFilterColumnIdsRef","id","showColumnVisibility","activeColumn","filterValue","nextId","InputGroup","InputGroupAddon","event","InputGroupInput","Input","TableHeader","TableRow","headerGroup","TableHead","header","flexRender","rows","visibleColumnCount","resolvedEmptyMessage","emptyMessage","TableBody","TableCell","row","cell","pageCount","safePageCount","pageIndex","Select","SelectTrigger","SelectValue","SelectContent","SelectGroup","pageSizeOptions","SelectItem","IconChevronsLeft","IconChevronLeft","IconChevronRight","IconChevronsRight","selectAllRows","options","selectRow","Checkbox","showPagination","TableContainer","Table","tableClassName"],"sources":["../../src/components/data-table.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport {\n IconArrowsSort,\n IconChevronLeft,\n IconChevronRight,\n IconChevronsLeft,\n IconChevronsRight,\n IconColumns3,\n IconSortAscending,\n IconSortDescending\n} from '@tabler/icons-react'\nimport type {\n ColumnFiltersState,\n ColumnVisibilityState,\n PaginationState,\n ReactTable,\n RowData,\n RowSelectionState,\n SortingState,\n Column as TSColumn,\n ColumnDef as TSColumnDef\n} from '@tanstack/react-table'\nimport {\n columnFilteringFeature,\n columnVisibilityFeature,\n createFilteredRowModel,\n createPaginatedRowModel,\n createSortedRowModel,\n filterFn_arrIncludes,\n filterFn_equals,\n filterFn_includesString,\n filterFn_inDateRange,\n filterFn_inNumberRange,\n filterFn_weakEquals,\n flexRender,\n rowPaginationFeature,\n rowSelectionFeature,\n rowSortingFeature,\n sortFn_alphanumeric,\n sortFn_basic,\n sortFn_datetime,\n sortFn_text,\n tableFeatures,\n useTable\n} from '@tanstack/react-table'\n\nimport { cn } from '../lib/utils'\nimport { Button } from './button'\nimport { Checkbox } from './checkbox'\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuTrigger\n} from './dropdown-menu'\nimport { Input } from './input'\nimport { InputGroup, InputGroupAddon, InputGroupInput } from './input-group'\nimport { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue } from './select'\nimport { Table, TableBody, TableCell, TableContainer, TableHead, TableHeader, type TableProps, TableRow } from './table'\n\nconst features = tableFeatures({\n columnFilteringFeature,\n rowSortingFeature,\n rowPaginationFeature,\n rowSelectionFeature,\n columnVisibilityFeature,\n filteredRowModel: createFilteredRowModel(),\n sortedRowModel: createSortedRowModel(),\n paginatedRowModel: createPaginatedRowModel(),\n filterFns: {\n includesString: filterFn_includesString,\n inNumberRange: filterFn_inNumberRange,\n equals: filterFn_equals,\n arrIncludes: filterFn_arrIncludes,\n inDateRange: filterFn_inDateRange,\n weakEquals: filterFn_weakEquals\n },\n sortFns: {\n alphanumeric: sortFn_alphanumeric,\n text: sortFn_text,\n datetime: sortFn_datetime,\n basic: sortFn_basic\n }\n})\n\nexport type ColumnDef<TData extends RowData, TValue = unknown> = TSColumnDef<typeof features, TData, TValue>\nexport type Column<TData extends RowData, TValue = unknown> = TSColumn<typeof features, TData, TValue>\nexport type TanStackTable<TData extends RowData> = ReactTable<typeof features, TData>\nexport type { RowData } from '@tanstack/react-table'\n\ntype DataTableToolbarActions<TData extends RowData> =\n | React.ReactNode\n | ((table: TanStackTable<TData>) => React.ReactNode)\n\nexport type DataTableLabels = {\n filterPlaceholder: string\n filterColumnSelectorLabel: string\n emptyMessage: React.ReactNode\n columnsButton: string\n rowsPerPage: string\n pageOf: (current: number, total: number) => React.ReactNode\n goToFirstPage: string\n goToPreviousPage: string\n goToNextPage: string\n goToLastPage: string\n selectAllRows: string\n selectRow: string\n}\n\nexport const defaultDataTableLabels: DataTableLabels = {\n filterPlaceholder: 'Filtrar linhas...',\n filterColumnSelectorLabel: 'Coluna para filtrar',\n emptyMessage: 'Nenhum resultado.',\n columnsButton: 'Colunas',\n rowsPerPage: 'Linhas por página',\n pageOf: (current, total) => `Página ${current} de ${total}`,\n goToFirstPage: 'Ir para a primeira página',\n goToPreviousPage: 'Ir para a página anterior',\n goToNextPage: 'Ir para a próxima página',\n goToLastPage: 'Ir para a última página',\n selectAllRows: 'Selecionar todas as linhas',\n selectRow: 'Selecionar linha'\n}\n\nexport type DataTableProps<TData extends RowData, TValue = unknown> = {\n /** Column definitions (TanStack `ColumnDef`). */\n columns: ColumnDef<TData, TValue>[]\n /** Rows to show. */\n data: TData[]\n /** Returns a stable id for each row. Recommended with row selection. */\n getRowId?: (originalRow: TData, index: number, parent?: { id: string }) => string\n /** Column id, or ids, searched by the text filter. With two or more, a select picks the column. */\n filterColumns?: string | string[]\n /**\n * Rows per page when pagination is on.\n * @default 10\n */\n pageSize?: number\n /**\n * Options of the rows-per-page select.\n * @default [10, 20, 30, 40, 50]\n */\n pageSizeOptions?: number[]\n /**\n * Adds a checkbox column for selecting rows.\n * @default false\n */\n enableRowSelection?: boolean\n /**\n * Makes columns sortable.\n * @default false\n */\n enableSorting?: boolean\n /**\n * Shows the pagination footer.\n * @default false\n */\n showPagination?: boolean\n /**\n * Shows the menu to hide and show columns.\n * @default false\n */\n showColumnVisibility?: boolean\n /** Content on the right of the toolbar, or a function that receives the `table`. */\n toolbarActions?: DataTableToolbarActions<TData>\n /** Overrides the default pt-BR texts. */\n labels?: Partial<DataTableLabels>\n /** Classes for the outer wrapper. */\n className?: string\n /** Classes for the `<table>`. */\n tableClassName?: string\n /**\n * Table chrome: `line` or `outline`.\n * @default 'line'\n */\n variant?: TableProps['variant']\n}\n\nexport type DataTableColumnHeaderProps<TData extends RowData, TValue> = React.ComponentProps<'div'> & {\n /** The column, from the `header` render function. */\n column: Column<TData, TValue>\n /** Header text. */\n title: React.ReactNode\n}\n\nexport type DataTablePaginationProps<TData extends RowData> = React.ComponentProps<'div'> & {\n table?: TanStackTable<TData>\n pageSizeOptions?: number[]\n labels?: Partial<DataTableLabels>\n}\n\nexport type DataTableViewOptionsProps<TData extends RowData> = React.ComponentProps<typeof Button> & {\n table?: TanStackTable<TData>\n label?: React.ReactNode\n}\n\nexport type UseDataTableOptions<TData extends RowData, TValue = unknown> = {\n columns: ColumnDef<TData, TValue>[]\n data: TData[]\n getRowId?: (originalRow: TData, index: number, parent?: { id: string }) => string\n pageSize?: number\n enableRowSelection?: boolean\n enableSorting?: boolean\n enablePagination?: boolean\n labels?: Partial<DataTableLabels>\n}\n\nexport type DataTableRootProps<TData extends RowData, TValue = unknown> = {\n labels?: Partial<DataTableLabels>\n className?: string\n children: React.ReactNode\n} & (\n | { table: TanStackTable<TData>; columns?: never; data?: never }\n | (Omit<UseDataTableOptions<TData, TValue>, 'labels'> & { table?: never })\n)\n\nexport type DataTableToolbarProps<TData extends RowData> = {\n filterColumns?: string | string[]\n showColumnVisibility?: boolean\n toolbarActions?: DataTableToolbarActions<TData>\n labels?: Partial<DataTableLabels>\n className?: string\n}\n\nexport type DataTableHeaderProps = {\n className?: string\n}\n\nexport type DataTableBodyProps = {\n /** Content shown when there are no rows. */\n emptyMessage?: React.ReactNode\n className?: string\n}\n\ntype DataTableContextValue<TData extends RowData> = {\n table: TanStackTable<TData>\n labels: DataTableLabels\n}\n\nconst DataTableContext = React.createContext<DataTableContextValue<RowData> | null>(null)\n\n// Lets a `DataTablePagination` rendered inside an uncontrolled `DataTableRoot` turn pagination on while mounted.\n// Returns the function that unregisters it.\nconst DataTablePaginationRegistryContext = React.createContext<(() => () => void) | null>(null)\n\nexport function useDataTableContext<TData extends RowData>(): DataTableContextValue<TData> {\n const ctx = React.useContext(DataTableContext)\n if (!ctx) {\n throw new Error('useDataTableContext must be used within <DataTableRoot>')\n }\n return ctx as unknown as DataTableContextValue<TData>\n}\n\nfunction useOptionalDataTableContext<TData extends RowData>(): DataTableContextValue<TData> | null {\n const ctx = React.useContext(DataTableContext)\n return ctx as unknown as DataTableContextValue<TData> | null\n}\n\nfunction renderToolbarActions<TData extends RowData>(\n actions: DataTableToolbarActions<TData> | undefined,\n table: TanStackTable<TData>\n) {\n return typeof actions === 'function' ? actions(table) : actions\n}\n\nfunction getColumnLabel<TData extends RowData>(column: ReturnType<TanStackTable<TData>['getColumn']>): string {\n if (!column) {\n return ''\n }\n const meta = column.columnDef.meta as { label?: string } | undefined\n return meta?.label ?? column.id\n}\n\nexport function useDataTable<TData extends RowData, TValue = unknown>({\n columns,\n data,\n getRowId,\n pageSize = 10,\n enableRowSelection = false,\n enableSorting = false,\n enablePagination = false,\n labels\n}: UseDataTableOptions<TData, TValue>): TanStackTable<TData> {\n const [sorting, setSorting] = React.useState<SortingState>([])\n const [columnFilters, setColumnFilters] = React.useState<ColumnFiltersState>([])\n const [columnVisibility, setColumnVisibility] = React.useState<ColumnVisibilityState>({})\n const [pagination, setPagination] = React.useState<PaginationState>({\n pageIndex: 0,\n pageSize\n })\n const [rowSelection, setRowSelection] = React.useState<RowSelectionState>({})\n\n // A new `pageSize` prop replaces the current page size (including one picked in the pagination select) and\n // goes back to the first page. Adjusted during render so the table never paints a page with the old size.\n const [previousPageSize, setPreviousPageSize] = React.useState(pageSize)\n if (pageSize !== previousPageSize) {\n setPreviousPageSize(pageSize)\n setPagination({ pageIndex: 0, pageSize })\n }\n\n const mergedLabels = React.useMemo(() => ({ ...defaultDataTableLabels, ...labels }), [labels])\n const resolvedColumns = React.useMemo<ColumnDef<TData, TValue>[]>(() => {\n if (!enableRowSelection) {\n return columns\n }\n if (columns.some((column) => column.id === 'select')) {\n return columns\n }\n return [\n createDataTableSelectColumn<TData>({\n labels: { selectAllRows: mergedLabels.selectAllRows, selectRow: mergedLabels.selectRow }\n }) as ColumnDef<TData, TValue>,\n ...columns\n ]\n }, [columns, enableRowSelection, mergedLabels.selectAllRows, mergedLabels.selectRow])\n\n return useTable({\n features,\n data,\n columns: resolvedColumns as ColumnDef<TData>[],\n getRowId,\n enableRowSelection,\n enableSorting,\n manualPagination: !enablePagination,\n state: {\n sorting,\n columnFilters,\n columnVisibility,\n rowSelection,\n pagination\n },\n onSortingChange: setSorting,\n onColumnFiltersChange: setColumnFilters,\n onColumnVisibilityChange: setColumnVisibility,\n onPaginationChange: setPagination,\n onRowSelectionChange: setRowSelection\n })\n}\n\nfunction DataTableRootControlled<TData extends RowData>({\n table,\n labels,\n className,\n children\n}: {\n table: TanStackTable<TData>\n labels?: Partial<DataTableLabels>\n className?: string\n children: React.ReactNode\n}) {\n const mergedLabels = React.useMemo(() => ({ ...defaultDataTableLabels, ...labels }), [labels])\n const value: DataTableContextValue<TData> = { table, labels: mergedLabels }\n return (\n <DataTableContext.Provider value={value as unknown as DataTableContextValue<RowData>}>\n <div className={cn('flex w-full flex-col gap-4', className)}>{children}</div>\n </DataTableContext.Provider>\n )\n}\n\nfunction DataTableRootUncontrolled<TData extends RowData, TValue = unknown>({\n columns,\n data,\n getRowId,\n pageSize,\n enableRowSelection,\n enableSorting,\n enablePagination,\n labels,\n className,\n children\n}: Omit<UseDataTableOptions<TData, TValue>, 'labels'> & {\n labels?: Partial<DataTableLabels>\n className?: string\n children: React.ReactNode\n}) {\n const [paginationCount, setPaginationCount] = React.useState(0)\n const registerPagination = React.useCallback(() => {\n setPaginationCount((count) => count + 1)\n return () => setPaginationCount((count) => count - 1)\n }, [])\n\n const table = useDataTable<TData, TValue>({\n columns,\n data,\n getRowId,\n pageSize,\n enableRowSelection,\n enableSorting,\n enablePagination: enablePagination ?? paginationCount > 0,\n labels\n })\n return (\n <DataTablePaginationRegistryContext.Provider value={registerPagination}>\n <DataTableRootControlled table={table} labels={labels} className={className}>\n {children}\n </DataTableRootControlled>\n </DataTablePaginationRegistryContext.Provider>\n )\n}\n\nfunction DataTableRoot<TData extends RowData, TValue = unknown>(props: DataTableRootProps<TData, TValue>) {\n if ('table' in props && props.table !== undefined) {\n const { table, labels, className, children } = props\n return (\n <DataTableRootControlled table={table} labels={labels} className={className}>\n {children}\n </DataTableRootControlled>\n )\n }\n const {\n columns,\n data,\n getRowId,\n pageSize,\n enableRowSelection,\n enableSorting,\n enablePagination,\n labels,\n className,\n children\n } = props\n return (\n <DataTableRootUncontrolled<TData, TValue>\n columns={columns!}\n data={data!}\n getRowId={getRowId}\n pageSize={pageSize}\n enableRowSelection={enableRowSelection}\n enableSorting={enableSorting}\n enablePagination={enablePagination}\n labels={labels}\n className={className}\n >\n {children}\n </DataTableRootUncontrolled>\n )\n}\n\nfunction DataTableColumnHeader<TData extends RowData, TValue>({\n column,\n title,\n className,\n ...props\n}: DataTableColumnHeaderProps<TData, TValue>) {\n if (!column.getCanSort()) {\n return (\n <div className={cn('inline-flex items-center gap-1', className)} {...props}>\n {title}\n </div>\n )\n }\n\n const sorted = column.getIsSorted()\n\n return (\n <div className={cn('inline-flex items-center gap-1', className)} {...props}>\n {title}\n <Button\n variant=\"ghost\"\n color=\"zinc\"\n size=\"icon-xs\"\n onClick={() => {\n if (sorted === 'desc') return column.clearSorting()\n column.toggleSorting(sorted === 'asc')\n }}\n >\n {sorted === 'desc' ? (\n <IconSortDescending className=\"size-4\" data-icon=\"inline-end\" />\n ) : sorted === 'asc' ? (\n <IconSortAscending className=\"size-4\" data-icon=\"inline-end\" />\n ) : (\n <IconArrowsSort className=\"size-4\" data-icon=\"inline-end\" />\n )}\n </Button>\n </div>\n )\n}\n\nfunction DataTableViewOptions<TData extends RowData>({\n table: tableProp,\n label,\n className,\n ...props\n}: DataTableViewOptionsProps<TData>) {\n const ctx = useOptionalDataTableContext<TData>()\n const table = tableProp ?? ctx?.table\n if (!table) {\n throw new Error('DataTableViewOptions requires a `table` prop or to be rendered within <DataTableRoot>')\n }\n const resolvedLabel = label ?? ctx?.labels.columnsButton ?? defaultDataTableLabels.columnsButton\n const columns = table\n .getAllColumns()\n .filter((column) => typeof column.accessorFn !== 'undefined' && column.getCanHide())\n\n if (columns.length === 0) {\n return null\n }\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button type=\"button\" variant=\"secondary\" size=\"sm\" className={cn('ml-auto', className)} {...props}>\n <IconColumns3 data-icon=\"inline-start\" />\n {resolvedLabel}\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"w-44\">\n <DropdownMenuGroup>\n {columns.map((column) => (\n <DropdownMenuCheckboxItem\n key={column.id}\n checked={column.getIsVisible()}\n onCheckedChange={(value) => column.toggleVisibility(Boolean(value))}\n >\n {getColumnLabel(column)}\n </DropdownMenuCheckboxItem>\n ))}\n </DropdownMenuGroup>\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n\nfunction DataTableToolbar<TData extends RowData>({\n filterColumns,\n showColumnVisibility,\n toolbarActions,\n labels: labelsOverride,\n className\n}: DataTableToolbarProps<TData>) {\n const { table, labels: contextLabels } = useDataTableContext<TData>()\n const labels = React.useMemo(\n () => (labelsOverride ? { ...contextLabels, ...labelsOverride } : contextLabels),\n [contextLabels, labelsOverride]\n )\n const filterColumnIds = React.useMemo<string[]>(() => {\n if (!filterColumns) {\n return []\n }\n return Array.isArray(filterColumns) ? filterColumns : [filterColumns]\n }, [filterColumns])\n\n const actions = renderToolbarActions(toolbarActions, table)\n const hasFilter = filterColumnIds.length > 0\n const [activeFilterColumn, setActiveFilterColumn] = React.useState<string | undefined>(filterColumnIds[0])\n\n // Clears the filter of a column dropped from `filterColumns`; otherwise it keeps filtering the rows with no\n // input left to show or clear it.\n const previousFilterColumnIdsRef = React.useRef(filterColumnIds)\n React.useEffect(() => {\n for (const id of previousFilterColumnIdsRef.current) {\n if (!filterColumnIds.includes(id)) {\n table.getColumn(id)?.setFilterValue(undefined)\n }\n }\n previousFilterColumnIdsRef.current = filterColumnIds\n }, [filterColumnIds, table])\n\n React.useEffect(() => {\n if (filterColumnIds.length === 0) {\n setActiveFilterColumn(undefined)\n return\n }\n setActiveFilterColumn((current) => (current && filterColumnIds.includes(current) ? current : filterColumnIds[0]))\n }, [filterColumnIds])\n\n if (!hasFilter && !showColumnVisibility && !actions) {\n return null\n }\n\n const activeColumn = activeFilterColumn ? table.getColumn(activeFilterColumn) : undefined\n const filterValue = (activeColumn?.getFilterValue() as string | undefined) ?? ''\n\n const handleColumnChange = (nextId: string) => {\n if (nextId === activeFilterColumn) {\n return\n }\n if (activeFilterColumn) {\n table.getColumn(activeFilterColumn)?.setFilterValue(undefined)\n }\n setActiveFilterColumn(nextId)\n }\n\n return (\n <div className={cn('flex flex-col gap-2 sm:flex-row sm:items-center', className)}>\n {hasFilter && activeColumn ? (\n filterColumnIds.length > 1 ? (\n <InputGroup className=\"h-8 w-full sm:max-w-md\">\n <InputGroupAddon align=\"inline-start\" className=\"pr-0\">\n <select\n aria-label={labels.filterColumnSelectorLabel}\n value={activeFilterColumn}\n onChange={(event) => handleColumnChange(event.target.value)}\n className=\"cursor-pointer appearance-none border-0 bg-transparent pr-1 text-sm font-medium text-foreground outline-none focus:outline-none\"\n >\n {filterColumnIds.map((id) => (\n <option key={id} value={id}>\n {getColumnLabel(table.getColumn(id))}\n </option>\n ))}\n </select>\n </InputGroupAddon>\n <InputGroupInput\n placeholder={labels.filterPlaceholder}\n value={filterValue}\n onChange={(event) => activeColumn.setFilterValue(event.target.value)}\n />\n </InputGroup>\n ) : (\n <Input\n placeholder={labels.filterPlaceholder}\n value={filterValue}\n onChange={(event) => activeColumn.setFilterValue(event.target.value)}\n className=\"h-8 w-full sm:max-w-xs\"\n />\n )\n ) : null}\n <div className=\"flex flex-1 items-center justify-end gap-2\">\n {actions}\n {/* `ml-0`: the container already aligns to the end, and the button's own `ml-auto` would split it from the actions. */}\n {showColumnVisibility ? (\n <DataTableViewOptions table={table} label={labels.columnsButton} className=\"ml-0\" />\n ) : null}\n </div>\n </div>\n )\n}\n\nfunction DataTableHeader<TData extends RowData>({ className }: DataTableHeaderProps = {}) {\n const { table } = useDataTableContext<TData>()\n return (\n <TableHeader className={className}>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map((header) => (\n <TableHead key={header.id} colSpan={header.colSpan}>\n {header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext())}\n </TableHead>\n ))}\n </TableRow>\n ))}\n </TableHeader>\n )\n}\n\nfunction DataTableBody<TData extends RowData>({ emptyMessage, className }: DataTableBodyProps = {}) {\n const { table, labels } = useDataTableContext<TData>()\n const rows = table.getRowModel().rows\n const visibleColumnCount = table.getVisibleLeafColumns().length\n const resolvedEmptyMessage = emptyMessage ?? labels.emptyMessage\n\n return (\n <TableBody className={className}>\n {rows.length === 0 ? (\n <TableRow>\n <TableCell colSpan={visibleColumnCount} className=\"h-24 text-center\">\n {resolvedEmptyMessage}\n </TableCell>\n </TableRow>\n ) : (\n rows.map((row) => (\n <TableRow key={row.id} data-state={row.getIsSelected() ? 'selected' : undefined}>\n {row.getVisibleCells().map((cell) => (\n <TableCell key={cell.id}>{flexRender(cell.column.columnDef.cell, cell.getContext())}</TableCell>\n ))}\n </TableRow>\n ))\n )}\n </TableBody>\n )\n}\n\nfunction DataTablePagination<TData extends RowData>({\n table: tableProp,\n pageSizeOptions = [10, 20, 30, 40, 50],\n labels: labelsOverride,\n className,\n ...props\n}: DataTablePaginationProps<TData>) {\n const ctx = useOptionalDataTableContext<TData>()\n const registerPagination = React.useContext(DataTablePaginationRegistryContext)\n // Layout effect so the first paint already shows a single page instead of every row.\n React.useLayoutEffect(() => registerPagination?.(), [registerPagination])\n const table = tableProp ?? ctx?.table\n if (!table) {\n throw new Error('DataTablePagination requires a `table` prop or to be rendered within <DataTableRoot>')\n }\n const mergedLabels = React.useMemo(\n () => ({ ...defaultDataTableLabels, ...ctx?.labels, ...labelsOverride }),\n [ctx?.labels, labelsOverride]\n )\n const pageCount = table.getPageCount()\n const safePageCount = Math.max(pageCount, 1)\n const pageIndex = table.state.pagination.pageIndex\n\n return (\n <div className={cn('flex items-center justify-end gap-4 px-2', className)} {...props}>\n <div className=\"flex items-center gap-6 lg:gap-8\">\n <div className=\"hidden items-center gap-2 sm:flex\">\n <p className=\"text-sm font-medium\">{mergedLabels.rowsPerPage}</p>\n <Select\n value={`${table.state.pagination.pageSize}`}\n onValueChange={(value) => value !== null && table.setPageSize(Number(value))}\n >\n <SelectTrigger size=\"sm\" className=\"h-8 w-20\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent side=\"top\">\n <SelectGroup>\n {pageSizeOptions.map((pageSize) => (\n <SelectItem key={pageSize} value={`${pageSize}`}>\n {pageSize}\n </SelectItem>\n ))}\n </SelectGroup>\n </SelectContent>\n </Select>\n </div>\n <div className=\"text-sm font-medium\">{mergedLabels.pageOf(pageIndex + 1, safePageCount)}</div>\n <div className=\"flex items-center gap-1\">\n <Button\n type=\"button\"\n variant=\"secondary\"\n size=\"icon-sm\"\n className=\"hidden lg:inline-flex\"\n onClick={() => table.setPageIndex(0)}\n disabled={!table.getCanPreviousPage()}\n aria-label={mergedLabels.goToFirstPage}\n >\n <IconChevronsLeft />\n </Button>\n <Button\n type=\"button\"\n variant=\"secondary\"\n size=\"icon-sm\"\n onClick={() => table.previousPage()}\n disabled={!table.getCanPreviousPage()}\n aria-label={mergedLabels.goToPreviousPage}\n >\n <IconChevronLeft />\n </Button>\n <Button\n type=\"button\"\n variant=\"secondary\"\n size=\"icon-sm\"\n onClick={() => table.nextPage()}\n disabled={!table.getCanNextPage()}\n aria-label={mergedLabels.goToNextPage}\n >\n <IconChevronRight />\n </Button>\n <Button\n type=\"button\"\n variant=\"secondary\"\n size=\"icon-sm\"\n className=\"hidden lg:inline-flex\"\n onClick={() => table.setPageIndex(pageCount - 1)}\n disabled={!table.getCanNextPage()}\n aria-label={mergedLabels.goToLastPage}\n >\n <IconChevronsRight />\n </Button>\n </div>\n </div>\n </div>\n )\n}\n\nfunction createDataTableSelectColumn<TData extends RowData>(options?: {\n labels?: Pick<Partial<DataTableLabels>, 'selectAllRows' | 'selectRow'>\n}): ColumnDef<TData> {\n const selectAllRows = options?.labels?.selectAllRows ?? defaultDataTableLabels.selectAllRows\n const selectRow = options?.labels?.selectRow ?? defaultDataTableLabels.selectRow\n\n return {\n id: 'select',\n enableSorting: false,\n enableHiding: false,\n header: ({ table }) => (\n <Checkbox\n aria-label={selectAllRows}\n checked={table.getIsAllPageRowsSelected()}\n indeterminate={!table.getIsAllPageRowsSelected() && table.getIsSomePageRowsSelected()}\n onCheckedChange={(value) => table.toggleAllPageRowsSelected(value)}\n />\n ),\n cell: ({ row }) => (\n <Checkbox\n aria-label={selectRow}\n checked={row.getIsSelected()}\n indeterminate={!row.getIsSelected() && row.getIsSomeSelected()}\n disabled={!row.getCanSelect()}\n onCheckedChange={(value) => row.toggleSelected(value)}\n />\n )\n }\n}\n\nfunction DataTable<TData extends RowData, TValue = unknown>({\n columns,\n data,\n getRowId,\n filterColumns,\n pageSize = 10,\n pageSizeOptions,\n enableRowSelection = false,\n enableSorting = false,\n showPagination = false,\n showColumnVisibility = false,\n toolbarActions,\n labels,\n className,\n tableClassName,\n variant\n}: DataTableProps<TData, TValue>) {\n return (\n <DataTableRoot<TData, TValue>\n columns={columns}\n data={data}\n getRowId={getRowId}\n pageSize={pageSize}\n enableRowSelection={enableRowSelection}\n enableSorting={enableSorting}\n enablePagination={showPagination}\n labels={labels}\n className={className}\n >\n <DataTableToolbar\n filterColumns={filterColumns}\n showColumnVisibility={showColumnVisibility}\n toolbarActions={toolbarActions}\n />\n <TableContainer>\n <Table className={tableClassName} variant={variant}>\n <DataTableHeader />\n <DataTableBody />\n </Table>\n </TableContainer>\n {showPagination ? <DataTablePagination pageSizeOptions={pageSizeOptions} /> : null}\n </DataTableRoot>\n )\n}\n\nexport {\n createDataTableSelectColumn,\n DataTable,\n DataTableBody,\n DataTableColumnHeader,\n DataTableHeader,\n DataTablePagination,\n DataTableRoot,\n DataTableToolbar,\n DataTableViewOptions\n}\n"],"mappings":"A,m+CA8DA,MAAMC,GAAWC,GAAc,CAC7B,yBACA,oBACA,uBACA,sBACA,0BACA,iBAAkBC,EAAuB,EACzC,eAAgBC,EAAqB,EACrC,kBAAmBC,EAAwB,EAC3C,UAAW,CACT,eAAgBC,EAChB,cAAeC,EACf,OAAQC,EACR,YAAaC,EACb,YAAaC,EACb,WAAYC,CACd,EACA,QAAS,CACP,aAAcC,EACd,KAAMC,GACN,SAAUC,EACV,MAAOC,CACT,CACF,CAAC,EA0BYC,EAA0C,CACrD,kBAAmB,oBACnB,0BAA2B,sBAC3B,aAAc,oBACd,cAAe,UACf,YAAa,oBACb,QAAS,EAAS,IAAU,UAAUC,EAAQ,MAAMC,IACpD,cAAe,4BACf,iBAAkB,4BAClB,aAAc,2BACd,aAAc,0BACd,cAAe,6BACf,UAAW,kBACb,EAqHMC,EAAmBnB,EAAM,cAAqD,IAAI,EAIlFoB,EAAqCpB,EAAM,cAAyC,IAAI,EAE9F,SAAgB,qBAA2E,CACzF,IAAMqB,EAAMrB,EAAM,WAAWmB,CAAgB,EAC7C,GAAI,CAACE,EACH,MAAU,MAAM,yDAAyD,EAE3E,OAAOA,CACT,CAEA,SAAS,6BAA0F,CAEjG,OADYrB,EAAM,WAAWmB,CACpB,CACX,CAEA,SAAS,qBACP,EACA,EACA,CACA,OAAO,OAAOG,GAAY,WAAaA,EAAQC,CAAK,EAAID,CAC1D,CAEA,SAAS,eAAsC,EAA+D,CAK5G,OAJKE,EAGQA,EAAO,UAAU,MACjB,OAASA,EAAO,GAHpB,EAIX,CAEA,SAAgB,aAAsD,CACpE,UACA,OACA,WACA,WAAW,GACX,qBAAqB,GACrB,gBAAgB,GAChB,mBAAmB,GACnB,UAC2D,CAC3D,GAAM,CAACC,EAASC,GAAc1B,EAAM,SAAuB,CAAC,CAAC,EACvD,CAAC2B,EAAeC,GAAoB5B,EAAM,SAA6B,CAAC,CAAC,EACzE,CAAC6B,EAAkBC,GAAuB9B,EAAM,SAAgC,CAAC,CAAC,EAClF,CAAC+B,EAAYC,GAAiBhC,EAAM,SAA0B,CAClE,UAAW,EACX,UACF,CAAC,EACK,CAACiC,EAAcC,GAAmBlC,EAAM,SAA4B,CAAC,CAAC,EAItE,CAACmC,EAAkBC,GAAuBpC,EAAM,SAASqC,CAAQ,EACnEA,IAAaF,IACfC,EAAoBC,CAAQ,EAC5BL,EAAc,CAAE,UAAW,EAAG,UAAS,CAAC,GAG1C,IAAMM,EAAetC,EAAM,aAAe,CAAE,GAAGgB,EAAwB,GAAGuB,CAAO,GAAI,CAACA,CAAM,CAAC,EACvFC,EAAkBxC,EAAM,YACxB,CAACyC,GAGDC,EAAQ,KAAM,GAAWlB,EAAO,KAAO,QAAQ,EAC1CkB,EAEF,CACL,4BAAmC,CACjC,OAAQ,CAAE,cAAeJ,EAAa,cAAe,UAAWA,EAAa,SAAU,CACzF,CAAC,EACD,GAAGI,CACL,EACC,CAACA,EAASD,EAAoBH,EAAa,cAAeA,EAAa,SAAS,CAAC,EAEpF,OAAOK,GAAS,CACd,YACA,OACA,QAASH,EACT,WACA,qBACA,gBACA,iBAAkB,CAACI,EACnB,MAAO,CACL,UACA,gBACA,mBACA,eACA,YACF,EACA,gBAAiBlB,EACjB,sBAAuBE,EACvB,yBAA0BE,EAC1B,mBAAoBE,EACpB,qBAAsBE,CACxB,CAAC,CACH,CAEA,SAAS,wBAA+C,CACtD,QACA,SACA,YACA,YAMC,CAED,IAAMW,EAAsC,CAAE,QAAO,OADhC7C,EAAM,aAAe,CAAE,GAAGgB,EAAwB,GAAGuB,CAAO,GAAI,CAACA,CAAM,CACpB,CAAE,EAC1E,MACE,kBAACpB,EAAiB,SAAlB,CAAkC,QAChC,SAAA,kBAAC,MAAD,CAAK,UAAW2B,EAAG,6BAA8BC,CAAS,EAAI,UAAc,CAAA,CACnD,CAAA,CAE/B,CAEA,SAAS,0BAAmE,CAC1E,UACA,OACA,WACA,WACA,qBACA,gBACA,mBACA,SACA,YACA,YAKC,CACD,GAAM,CAACC,EAAiBC,GAAsBjD,EAAM,SAAS,CAAC,EACxDkD,EAAqBlD,EAAM,iBAC/BiD,EAAoB,GAAUE,EAAQ,CAAC,MAC1BF,EAAoB,GAAUE,EAAQ,CAAC,GACnD,CAAC,CAAC,EAEC5B,EAAQ,aAA4B,CACxC,UACA,OACA,WACA,WACA,qBACA,gBACA,iBAAkBqB,GAAoBI,EAAkB,EACxD,QACF,CAAC,EACD,MACE,kBAAC5B,EAAmC,SAApC,CAA6C,MAAO8B,EAClD,SAAA,kBAAC,wBAAD,CAAgC,QAAe,SAAmB,YAC/D,UACsB,CAAA,CACkB,CAAA,CAEjD,CAEA,SAAS,cAAuD,EAA0C,CACxG,GAAI,UAAWE,GAASA,EAAM,QAAU,IAAA,GAAW,CACjD,GAAM,CAAE,QAAO,SAAQ,YAAW,YAAaA,EAC/C,MACE,kBAAC,wBAAD,CAAgC,QAAe,SAAmB,YAC/D,UACsB,CAAA,CAE7B,CACA,GAAM,CACJ,UACA,OACA,WACA,WACA,qBACA,gBACA,mBACA,SACA,YACA,YACEA,EACJ,MACE,kBAAC,0BAAD,CACW,UACH,OACI,WACA,WACU,qBACL,gBACG,mBACV,SACG,YAEV,UACwB,CAAA,CAE/B,CAEA,SAAS,sBAAqD,CAC5D,SACA,QACA,YACA,GAAGA,GACyC,CAC5C,GAAI,CAAC5B,EAAO,WAAW,EACrB,MACE,kBAAC,MAAD,CAAK,UAAWsB,EAAG,iCAAkCC,CAAS,EAAG,GAAIK,EAClE,SAAAC,CACE,CAAA,EAIT,IAAMC,EAAS9B,EAAO,YAAY,EAElC,MACE,kBAAC,MAAD,CAAK,UAAWsB,EAAG,iCAAkCC,CAAS,EAAG,GAAIK,EAArE,SAAA,CACGC,EACD,kBAACE,EAAD,CACE,QAAQ,QACR,MAAM,OACN,KAAK,UACL,YAAe,CACb,GAAID,IAAW,OAAQ,OAAO9B,EAAO,aAAa,EAClDA,EAAO,cAAc8B,IAAW,KAAK,CACvC,EAEC,SACCE,EADDF,IAAW,OACTG,EACCH,IAAW,MACZI,EAEAC,EAJD,CAAoB,UAAU,SAAS,YAAU,YAAc,CAIJ,CAEvD,CAAA,CACL,C,EAET,CAEA,SAAS,qBAA4C,CACnD,MAAOC,EACP,QACA,YACA,GAAGR,GACgC,CACnC,IAAM/B,EAAM,4BAAmC,EACzCE,EAAQqC,GAAavC,GAAK,MAChC,GAAI,CAACE,EACH,MAAU,MAAM,uFAAuF,EAEzG,IAAMsC,EAAgBC,GAASzC,GAAK,OAAO,eAAiBL,EAAuB,cAC7E0B,EAAUnB,EACb,cAAc,CAAC,CACf,OAAQ,GAAkBC,EAAO,aAAe,QAAeA,EAAO,WAAW,CAAC,EAMrF,OAJIkB,EAAQ,SAAW,EACd,KAIP,kBAACqB,EAAD,CAAA,SAAA,CACE,kBAACC,EAAD,CAAqB,QAAA,GACnB,SAAA,kBAACT,EAAD,CAAQ,KAAK,SAAS,QAAQ,YAAY,KAAK,KAAK,UAAWT,EAAG,UAAWC,CAAS,EAAG,GAAIK,EAA7F,SAAA,CACE,kBAACa,GAAD,CAAc,YAAU,cAAgB,CAAA,EACvCJ,CACK,C,EACW,CAAA,EACrB,kBAACK,EAAD,CAAqB,MAAM,MAAM,UAAU,OACzC,SAAA,kBAACC,EAAD,CAAA,SACGzB,EAAQ,IAAK,GACZ,kBAAC0B,EAAD,CAEE,QAAS5C,EAAO,aAAa,EAC7B,gBAAkB,GAAUA,EAAO,iBAAiB,EAAQqB,CAAM,EAEjE,SAAA,eAAerB,CAAM,CACE,EALnBA,EAAO,EAKY,CAC3B,CACgB,CAAA,CACA,CAAA,CACT,CAAA,CAAA,CAElB,CAEA,SAAS,iBAAwC,CAC/C,gBACA,uBACA,iBACA,OAAQ6C,EACR,aAC+B,CAC/B,GAAM,CAAE,QAAO,OAAQC,GAAkB,oBAA2B,EAC9D/B,EAASvC,EAAM,YACZqE,EAAiB,CAAE,GAAGC,EAAe,GAAGD,CAAe,EAAIC,EAClE,CAACA,EAAeD,CAAc,CAChC,EACME,EAAkBvE,EAAM,YACvBwE,EAGE,MAAM,QAAQA,CAAa,EAAIA,EAAgB,CAACA,CAAa,EAF3D,CAAC,EAGT,CAACA,CAAa,CAAC,EAEZlD,EAAU,qBAAqBmD,EAAgBlD,CAAK,EACpDmD,EAAYH,EAAgB,OAAS,EACrC,CAACI,EAAoBC,GAAyB5E,EAAM,SAA6BuE,EAAgB,EAAE,EAInGM,EAA6B7E,EAAM,OAAOuE,CAAe,EAkB/D,GAjBAvE,EAAM,cAAgB,CACpB,IAAK,IAAM8E,KAAMD,EAA2B,QACrCN,EAAgB,SAASO,CAAE,GAC9BvD,EAAM,UAAUuD,CAAE,CAAC,EAAE,eAAe,IAAA,EAAS,EAGjD,EAA2B,QAAUP,CACvC,EAAG,CAACA,EAAiBhD,CAAK,CAAC,EAE3BvB,EAAM,cAAgB,CAChBuE,EAAgB,SAAW,EAC7BK,EAAsB,IAAA,EAAS,EAGjCA,EAAuB,GAAa3D,GAAWsD,EAAgB,SAAStD,CAAO,EAAIA,EAAUsD,EAAgB,EAAG,CAClH,EAAG,CAACA,CAAe,CAAC,EAEhB,CAACG,GAAa,CAACK,GAAwB,CAACzD,EAC1C,OAAO,KAGT,IAAM0D,EAAeL,EAAqBpD,EAAM,UAAUoD,CAAkB,EAAI,IAAA,GAC1EM,EAAeD,GAAc,eAAe,GAA4B,GAExE,mBAAsB,GAAmB,CACzCE,IAAWP,IAGXA,GACFpD,EAAM,UAAUoD,CAAkB,CAAC,EAAE,eAAe,IAAA,EAAS,EAE/DC,EAAsBM,CAAM,EAC9B,EAEA,MACE,kBAAC,MAAD,CAAK,UAAWpC,EAAG,kDAAmDC,CAAS,EAA/E,SAAA,CACG2B,GAAaM,EACZT,EAAgB,OAAS,EACvB,kBAACY,EAAD,CAAY,UAAU,yBAAtB,SAAA,CACE,kBAACC,EAAD,CAAiB,MAAM,eAAe,UAAU,OAC9C,SAAA,kBAAC,SAAD,CACE,aAAY7C,EAAO,0BACnB,MAAOoC,EACP,SAAW,GAAU,mBAAmBU,EAAM,OAAO,KAAK,EAC1D,UAAU,kIAET,SAAAd,EAAgB,IAAK,GACpB,kBAAC,SAAD,CAAiB,MAAOO,EACrB,SAAA,eAAevD,EAAM,UAAUuD,CAAE,CAAC,CAC7B,EAFKA,CAEL,CACT,CACK,CAAA,CACO,CAAA,EACjB,kBAACQ,EAAD,CACE,YAAa/C,EAAO,kBACpB,MAAO0C,EACP,SAAW,GAAUD,EAAa,eAAeK,EAAM,OAAO,KAAK,CACpE,CAAA,CACS,CAEZ,CAAA,EAAA,kBAACE,EAAD,CACE,YAAahD,EAAO,kBACpB,MAAO0C,EACP,SAAW,GAAUD,EAAa,eAAeK,EAAM,OAAO,KAAK,EACnE,UAAU,wBACX,CAAA,EAED,KACJ,kBAAC,MAAD,CAAK,UAAU,6CAAf,SAAA,CACG/D,EAEAyD,EACC,kBAAC,qBAAD,CAA6B,QAAO,MAAOxC,EAAO,cAAe,UAAU,MAAQ,CAAA,EACjF,IACD,CACF,CAAA,CAAA,C,EAET,CAEA,SAAS,gBAAuC,CAAE,aAAoC,CAAC,EAAG,CACxF,GAAM,CAAE,SAAU,oBAA2B,EAC7C,MACE,kBAACiD,EAAD,CAAwB,YACrB,SAAAjE,EAAM,gBAAgB,CAAC,CAAC,IAAK,GAC5B,kBAACkE,EAAD,CAAA,SACGC,EAAY,QAAQ,IAAK,GACxB,kBAACC,EAAD,CAA2B,QAASC,EAAO,QACxC,SAAAA,EAAO,cAAgB,KAAOC,EAAWD,EAAO,OAAO,UAAU,OAAQA,EAAO,WAAW,CAAC,CACpF,EAFKA,EAAO,EAEZ,CACZ,CACO,EANKF,EAAY,EAMjB,CACX,CACU,CAAA,CAEjB,CAEA,SAAS,cAAqC,CAAE,eAAc,aAAkC,CAAC,EAAG,CAClG,GAAM,CAAE,QAAO,UAAW,oBAA2B,EAC/CI,EAAOvE,EAAM,YAAY,CAAC,CAAC,KAC3BwE,EAAqBxE,EAAM,sBAAsB,CAAC,CAAC,OACnDyE,EAAuBC,GAAgB1D,EAAO,aAEpD,MACE,kBAAC2D,EAAD,CAAsB,YACnB,SAAAJ,EAAK,SAAW,EACf,kBAACL,EAAD,CAAA,SACE,kBAACU,EAAD,CAAW,QAASJ,EAAoB,UAAU,mBAC/C,SAAAC,CACQ,CAAA,CACH,CAAA,EAEVF,EAAK,IAAK,GACR,kBAACL,EAAD,CAAuB,aAAYW,EAAI,cAAc,EAAI,WAAa,IAAA,GACnE,SAAAA,EAAI,gBAAgB,CAAC,CAAC,IAAK,GAC1B,kBAACD,EAAD,CAAA,SAA0BN,EAAWQ,EAAK,OAAO,UAAU,KAAMA,EAAK,WAAW,CAAC,CAAa,EAA/EA,EAAK,EAA0E,CAChG,CACO,EAJKD,EAAI,EAIT,CACX,CAEM,CAAA,CAEf,CAEA,SAAS,oBAA2C,CAClD,MAAOxC,EACP,kBAAkB,CAAC,GAAI,GAAI,GAAI,GAAI,EAAE,EACrC,OAAQS,EACR,YACA,GAAGjB,GAC+B,CAClC,IAAM/B,EAAM,4BAAmC,EACzC6B,EAAqBlD,EAAM,WAAWoB,CAAkC,EAE9EpB,EAAM,oBAAsBkD,IAAqB,EAAG,CAACA,CAAkB,CAAC,EACxE,IAAM3B,EAAQqC,GAAavC,GAAK,MAChC,GAAI,CAACE,EACH,MAAU,MAAM,sFAAsF,EAExG,IAAMe,EAAetC,EAAM,aAClB,CAAE,GAAGgB,EAAwB,GAAGK,GAAK,OAAQ,GAAGgD,CAAe,GACtE,CAAChD,GAAK,OAAQgD,CAAc,CAC9B,EACMiC,EAAY/E,EAAM,aAAa,EAC/BgF,EAAgB,KAAK,IAAID,EAAW,CAAC,EACrCE,EAAYjF,EAAM,MAAM,WAAW,UAEzC,MACE,kBAAC,MAAD,CAAK,UAAWuB,EAAG,2CAA4CC,CAAS,EAAG,GAAIK,EAC7E,SAAA,kBAAC,MAAD,CAAK,UAAU,mCAAf,SAAA,CACE,kBAAC,MAAD,CAAK,UAAU,oCAAf,SAAA,CACE,kBAAC,IAAD,CAAG,UAAU,sBAAuB,SAAAd,EAAa,WAAe,CAAA,EAChE,kBAACmE,EAAD,CACE,MAAO,GAAGlF,EAAM,MAAM,WAAW,WACjC,cAAgB,GAAUsB,IAAU,MAAQtB,EAAM,YAAY,OAAOsB,CAAK,CAAC,EAF7E,SAAA,CAIE,kBAAC6D,EAAD,CAAe,KAAK,KAAK,UAAU,WACjC,SAAA,kBAACC,EAAD,CAAc,CAAA,CACD,CAAA,EACf,kBAACC,EAAD,CAAe,KAAK,MAClB,SAAA,kBAACC,EAAD,CAAA,SACGC,EAAgB,IAAK,GACpB,kBAACC,EAAD,CAA2B,MAAO,GAAG1E,IAClC,SAAAA,CACS,EAFKA,CAEL,CACb,CACU,CAAA,CACA,CAAA,CACT,CACL,CAAA,CAAA,C,GACL,kBAAC,MAAD,CAAK,UAAU,sBAAuB,SAAAC,EAAa,OAAOkE,EAAY,EAAGD,CAAa,CAAO,CAAA,EAC7F,kBAAC,MAAD,CAAK,UAAU,0BAAf,SAAA,CACE,kBAAChD,EAAD,CACE,KAAK,SACL,QAAQ,YACR,KAAK,UACL,UAAU,wBACV,YAAehC,EAAM,aAAa,CAAC,EACnC,SAAU,CAACA,EAAM,mBAAmB,EACpC,aAAYe,EAAa,cAEzB,SAAA,kBAAC0E,GAAD,CAAmB,CAAA,CACb,CAAA,EACR,kBAACzD,EAAD,CACE,KAAK,SACL,QAAQ,YACR,KAAK,UACL,YAAehC,EAAM,aAAa,EAClC,SAAU,CAACA,EAAM,mBAAmB,EACpC,aAAYe,EAAa,iBAEzB,SAAA,kBAAC2E,EAAD,CAAkB,CAAA,CACZ,CAAA,EACR,kBAAC1D,EAAD,CACE,KAAK,SACL,QAAQ,YACR,KAAK,UACL,YAAehC,EAAM,SAAS,EAC9B,SAAU,CAACA,EAAM,eAAe,EAChC,aAAYe,EAAa,aAEzB,SAAA,kBAAC4E,EAAD,CAAmB,CAAA,CACb,CAAA,EACR,kBAAC3D,EAAD,CACE,KAAK,SACL,QAAQ,YACR,KAAK,UACL,UAAU,wBACV,YAAehC,EAAM,aAAa+E,EAAY,CAAC,EAC/C,SAAU,CAAC/E,EAAM,eAAe,EAChC,aAAYe,EAAa,aAEzB,SAAA,kBAAC6E,GAAD,CAAoB,CAAA,CACd,CAAA,CACL,C,EACF,C,EACF,CAAA,CAET,CAEA,SAAS,4BAAmD,EAEvC,CACnB,IAAMC,EAAgBC,GAAS,QAAQ,eAAiBrG,EAAuB,cACzEsG,EAAYD,GAAS,QAAQ,WAAarG,EAAuB,UAEvE,MAAO,CACL,GAAI,SACJ,cAAe,GACf,aAAc,GACd,QAAS,CAAE,WACT,kBAACuG,EAAD,CACE,aAAYH,EACZ,QAAS7F,EAAM,yBAAyB,EACxC,cAAe,CAACA,EAAM,yBAAyB,GAAKA,EAAM,0BAA0B,EACpF,gBAAkB,GAAUA,EAAM,0BAA0BsB,CAAK,CAClE,CAAA,EAEH,MAAO,CAAE,SACP,kBAAC0E,EAAD,CACE,aAAYD,EACZ,QAASlB,EAAI,cAAc,EAC3B,cAAe,CAACA,EAAI,cAAc,GAAKA,EAAI,kBAAkB,EAC7D,SAAU,CAACA,EAAI,aAAa,EAC5B,gBAAkB,GAAUA,EAAI,eAAevD,CAAK,CACrD,CAAA,CAEL,CACF,CAEA,SAAS,UAAmD,CAC1D,UACA,OACA,WACA,gBACA,WAAW,GACX,kBACA,qBAAqB,GACrB,gBAAgB,GAChB,iBAAiB,GACjB,uBAAuB,GACvB,iBACA,SACA,YACA,iBACA,WACgC,CAChC,MACE,kBAAC,cAAD,CACW,UACH,OACI,WACA,WACU,qBACL,gBACf,iBAAkB2E,EACV,SACG,YATb,SAAA,CAWE,kBAAC,iBAAD,CACiB,gBACO,uBACN,gBACjB,CAAA,EACD,kBAACC,EAAD,CAAA,SACE,kBAACC,EAAD,CAAO,UAAWC,EAAyB,UAA3C,SAAA,CACE,kBAAC,gBAAD,CAAkB,CAAA,EAClB,kBAAC,cAAD,CAAgB,CAAA,CACX,CACO,CAAA,CAAA,CAAA,EACfH,EAAiB,kBAAC,oBAAD,CAAsC,iBAAkB,CAAA,EAAI,IACjE,C,EAEnB,C"}
@@ -4,7 +4,6 @@ import { Calendar, DateRange } from "./calendar.js";
4
4
  import { Popover, PopoverContent } from "./popover.js";
5
5
  import * as React from "react";
6
6
  import { Locale } from "react-day-picker";
7
- //#region src/components/date-range-picker.d.ts
8
7
  export type DateRangePickerPresetOption = {
9
8
  label: string;
10
9
  getRange: () => DateRange;
@@ -72,6 +71,5 @@ declare function DateRangePickerDateFields({ className, ...props }: DateRangePic
72
71
  declare function DateRangePickerActions({ className, children, ...props }: DateRangePickerActionsProps): React.JSX.Element;
73
72
  declare function DateRangePickerApply({ children, onClick, className, ...props }: DateRangePickerApplyProps): React.JSX.Element;
74
73
  declare function DateRangePickerReset({ children, onClick, variant, className, ...props }: DateRangePickerResetProps): React.JSX.Element;
75
- //#endregion
76
74
  export { type DateRange, DateRangePicker, DateRangePickerActions, DateRangePickerApply, DateRangePickerCalendar, DateRangePickerContent, DateRangePickerDateFields, DateRangePickerPreset, DateRangePickerPresets, DateRangePickerReset, DateRangePickerTrigger, DateRangePickerValue };
77
75
  //# sourceMappingURL=date-range-picker.d.ts.map