@kuzenbo/core 0.0.5 → 0.0.7

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 (168) hide show
  1. package/README.md +2 -0
  2. package/dist/action-icon-UjYZjXrB.d.ts +59 -0
  3. package/dist/action-icon-UjYZjXrB.d.ts.map +1 -0
  4. package/dist/{avatar-DpiupAAM.d.ts → avatar-4S7I72CH.d.ts} +2 -2
  5. package/dist/{avatar-DpiupAAM.d.ts.map → avatar-4S7I72CH.d.ts.map} +1 -1
  6. package/dist/{avatar-CXhwmJgG.js → avatar-C3vF6E7s.js} +1 -1
  7. package/dist/{avatar-CXhwmJgG.js.map → avatar-C3vF6E7s.js.map} +1 -1
  8. package/dist/{badge-BKRm6jL7.js → badge-DB40swlt.js} +1 -1
  9. package/dist/{badge-BKRm6jL7.js.map → badge-DB40swlt.js.map} +1 -1
  10. package/dist/button-CPPkhcmB.d.ts +59 -0
  11. package/dist/button-CPPkhcmB.d.ts.map +1 -0
  12. package/dist/button-shared-variants-J4RVI3K7.js +19 -0
  13. package/dist/button-shared-variants-J4RVI3K7.js.map +1 -0
  14. package/dist/{dialog-CD5lfQA9.js → dialog-B7kMKriQ.js} +6 -5
  15. package/dist/dialog-B7kMKriQ.js.map +1 -0
  16. package/dist/{dialog-DEkdr-9K.d.ts → dialog-D3dAMsO_.d.ts} +1 -1
  17. package/dist/{dialog-DEkdr-9K.d.ts.map → dialog-D3dAMsO_.d.ts.map} +1 -1
  18. package/dist/{dropdown-menu-Bpj576m0.d.ts → dropdown-menu-BG03sLbC.d.ts} +2 -2
  19. package/dist/{dropdown-menu-Bpj576m0.d.ts.map → dropdown-menu-BG03sLbC.d.ts.map} +1 -1
  20. package/dist/{dropdown-menu-BJi-V71O.js → dropdown-menu-DOVY76ue.js} +1 -1
  21. package/dist/{dropdown-menu-BJi-V71O.js.map → dropdown-menu-DOVY76ue.js.map} +1 -1
  22. package/dist/{input-WWoBCgxe.d.ts → input-BeE717GK.d.ts} +2 -2
  23. package/dist/{input-WWoBCgxe.d.ts.map → input-BeE717GK.d.ts.map} +1 -1
  24. package/dist/{input-Ex9ZRqbo.js → input-cICL6sH_.js} +1 -1
  25. package/dist/{input-Ex9ZRqbo.js.map → input-cICL6sH_.js.map} +1 -1
  26. package/dist/{input-group-CjcHP0L4.js → input-group-7kPror1q.js} +15 -5
  27. package/dist/input-group-7kPror1q.js.map +1 -0
  28. package/dist/provider.d.ts +3 -3
  29. package/dist/{scroll-bar-C4qEUKlT.js → scroll-bar-BKRy5Me9.js} +1 -1
  30. package/dist/{scroll-bar-C4qEUKlT.js.map → scroll-bar-BKRy5Me9.js.map} +1 -1
  31. package/dist/{separator-C8Qw2ADs.d.ts → separator-CgOz2m5i.d.ts} +1 -1
  32. package/dist/{separator-C8Qw2ADs.d.ts.map → separator-CgOz2m5i.d.ts.map} +1 -1
  33. package/dist/{sheet-imSHXfFH.js → sheet-CcyewAZj.js} +6 -6
  34. package/dist/sheet-CcyewAZj.js.map +1 -0
  35. package/dist/{size-context-DXfCAlWF.d.ts → size-context-DWvVJytl.d.ts} +2 -2
  36. package/dist/{size-context-DXfCAlWF.d.ts.map → size-context-DWvVJytl.d.ts.map} +1 -1
  37. package/dist/{size-provider-Bd2C6gKd.d.ts → size-provider-PHAZhU6k.d.ts} +2 -2
  38. package/dist/{size-provider-Bd2C6gKd.d.ts.map → size-provider-PHAZhU6k.d.ts.map} +1 -1
  39. package/dist/{size-system-wzOLSuax.d.ts → size-system-BAI1CnwU.d.ts} +1 -1
  40. package/dist/size-system-BAI1CnwU.d.ts.map +1 -0
  41. package/dist/size.d.ts +3 -3
  42. package/dist/{slider-root-presentation-B6OO_iCT.js → slider-root-presentation-G0ByTcvd.js} +1 -1
  43. package/dist/{slider-root-presentation-B6OO_iCT.js.map → slider-root-presentation-G0ByTcvd.js.map} +1 -1
  44. package/dist/{slider-style-tokens-CZezJilZ.d.ts → slider-style-tokens-DNzHvGii.d.ts} +1 -1
  45. package/dist/{slider-style-tokens-CZezJilZ.d.ts.map → slider-style-tokens-DNzHvGii.d.ts.map} +1 -1
  46. package/dist/{textarea-C8dsnn8D.d.ts → textarea-rmoEkvdu.d.ts} +1 -1
  47. package/dist/{textarea-C8dsnn8D.d.ts.map → textarea-rmoEkvdu.d.ts.map} +1 -1
  48. package/dist/{textarea-CkiM1N_I.js → textarea-vNt8edEA.js} +1 -1
  49. package/dist/{textarea-CkiM1N_I.js.map → textarea-vNt8edEA.js.map} +1 -1
  50. package/dist/{toggle-CxkIncmZ.d.ts → toggle-D8kPPZH9.d.ts} +1 -1
  51. package/dist/{toggle-CxkIncmZ.d.ts.map → toggle-D8kPPZH9.d.ts.map} +1 -1
  52. package/dist/{tooltip-D0BEpCQx.js → tooltip-BUo_HPnp.js} +1 -1
  53. package/dist/{tooltip-D0BEpCQx.js.map → tooltip-BUo_HPnp.js.map} +1 -1
  54. package/dist/{tooltip-DbJxt69l.d.ts → tooltip-DatN3AoZ.d.ts} +2 -2
  55. package/dist/{tooltip-DbJxt69l.d.ts.map → tooltip-DatN3AoZ.d.ts.map} +1 -1
  56. package/dist/ui/accordion.d.ts +1 -1
  57. package/dist/ui/action-icon.d.ts +2 -0
  58. package/dist/ui/action-icon.js +74 -0
  59. package/dist/ui/action-icon.js.map +1 -0
  60. package/dist/ui/alert-dialog.d.ts +2 -2
  61. package/dist/ui/alert-dialog.js +1 -1
  62. package/dist/ui/alert-dialog.js.map +1 -1
  63. package/dist/ui/alert.d.ts +1 -1
  64. package/dist/ui/announcement.js +1 -1
  65. package/dist/ui/autocomplete.d.ts +3 -3
  66. package/dist/ui/autocomplete.js +1 -1
  67. package/dist/ui/autocomplete.js.map +1 -1
  68. package/dist/ui/avatar.d.ts +1 -1
  69. package/dist/ui/avatar.js +1 -1
  70. package/dist/ui/badge.js +1 -1
  71. package/dist/ui/breadcrumb.d.ts +1 -1
  72. package/dist/ui/button-group.d.ts +2 -2
  73. package/dist/ui/button.d.ts +1 -1
  74. package/dist/ui/button.js +27 -49
  75. package/dist/ui/button.js.map +1 -1
  76. package/dist/ui/card.d.ts +1 -1
  77. package/dist/ui/carousel.d.ts +3 -3
  78. package/dist/ui/carousel.d.ts.map +1 -1
  79. package/dist/ui/carousel.js +5 -5
  80. package/dist/ui/carousel.js.map +1 -1
  81. package/dist/ui/checkbox.d.ts +1 -1
  82. package/dist/ui/combobox.d.ts +1 -1
  83. package/dist/ui/combobox.js +12 -12
  84. package/dist/ui/combobox.js.map +1 -1
  85. package/dist/ui/command.d.ts +2 -2
  86. package/dist/ui/command.js +2 -2
  87. package/dist/ui/container.d.ts +1 -0
  88. package/dist/ui/container.d.ts.map +1 -1
  89. package/dist/ui/container.js +6 -2
  90. package/dist/ui/container.js.map +1 -1
  91. package/dist/ui/context-menu.d.ts +1 -1
  92. package/dist/ui/copy-button.d.ts +1 -1
  93. package/dist/ui/copy-button.js +29 -8
  94. package/dist/ui/copy-button.js.map +1 -1
  95. package/dist/ui/dialog.d.ts +1 -1
  96. package/dist/ui/dialog.js +1 -1
  97. package/dist/ui/drawer.d.ts +310 -119
  98. package/dist/ui/drawer.d.ts.map +1 -1
  99. package/dist/ui/drawer.js +254 -114
  100. package/dist/ui/drawer.js.map +1 -1
  101. package/dist/ui/dropdown-menu.d.ts +2 -2
  102. package/dist/ui/dropdown-menu.js +1 -1
  103. package/dist/ui/emoji-picker.d.ts +2 -2
  104. package/dist/ui/empty.d.ts +2 -2
  105. package/dist/ui/field.d.ts +1 -1
  106. package/dist/ui/input-group.d.ts +3 -3
  107. package/dist/ui/input-group.d.ts.map +1 -1
  108. package/dist/ui/input-group.js +1 -1
  109. package/dist/ui/input-otp.d.ts +1 -1
  110. package/dist/ui/input.d.ts +1 -1
  111. package/dist/ui/input.js +1 -1
  112. package/dist/ui/item.d.ts +1 -1
  113. package/dist/ui/kbd.d.ts +1 -1
  114. package/dist/ui/menubar.d.ts +2 -2
  115. package/dist/ui/menubar.js +1 -1
  116. package/dist/ui/navigation-list.d.ts +2 -2
  117. package/dist/ui/navigation-menu.d.ts +1 -1
  118. package/dist/ui/number-field.d.ts +1 -1
  119. package/dist/ui/pagination.d.ts +1 -1
  120. package/dist/ui/pagination.d.ts.map +1 -1
  121. package/dist/ui/pagination.js +18 -10
  122. package/dist/ui/pagination.js.map +1 -1
  123. package/dist/ui/pill.d.ts +3 -3
  124. package/dist/ui/pill.d.ts.map +1 -1
  125. package/dist/ui/pill.js +5 -5
  126. package/dist/ui/pill.js.map +1 -1
  127. package/dist/ui/popover.d.ts +2 -2
  128. package/dist/ui/popover.js +1 -1
  129. package/dist/ui/popover.js.map +1 -1
  130. package/dist/ui/preview-card.js +1 -1
  131. package/dist/ui/preview-card.js.map +1 -1
  132. package/dist/ui/radio-group.d.ts +1 -1
  133. package/dist/ui/range-slider.d.ts +1 -1
  134. package/dist/ui/range-slider.js +1 -1
  135. package/dist/ui/scroll-area.js +1 -1
  136. package/dist/ui/select.d.ts +3 -3
  137. package/dist/ui/select.js +1 -1
  138. package/dist/ui/select.js.map +1 -1
  139. package/dist/ui/separator.d.ts +1 -1
  140. package/dist/ui/sheet.js +1 -1
  141. package/dist/ui/sidebar.d.ts +6 -6
  142. package/dist/ui/sidebar.d.ts.map +1 -1
  143. package/dist/ui/sidebar.js +15 -18
  144. package/dist/ui/sidebar.js.map +1 -1
  145. package/dist/ui/slider.d.ts +1 -1
  146. package/dist/ui/slider.js +1 -1
  147. package/dist/ui/spinner.d.ts +1 -1
  148. package/dist/ui/switch.d.ts +1 -1
  149. package/dist/ui/table.d.ts +2 -2
  150. package/dist/ui/table.js +1 -1
  151. package/dist/ui/textarea.d.ts +1 -1
  152. package/dist/ui/textarea.js +1 -1
  153. package/dist/ui/toggle-group.d.ts +2 -2
  154. package/dist/ui/toggle.d.ts +1 -1
  155. package/dist/ui/toolbar.d.ts +3 -3
  156. package/dist/ui/tooltip.d.ts +2 -2
  157. package/dist/ui/tooltip.js +1 -1
  158. package/dist/ui/typography.d.ts +1 -1
  159. package/dist/ui/typography.d.ts.map +1 -1
  160. package/dist/ui/typography.js +20 -20
  161. package/dist/ui/typography.js.map +1 -1
  162. package/package.json +8 -6
  163. package/dist/button-nAbTNrxA.d.ts +0 -78
  164. package/dist/button-nAbTNrxA.d.ts.map +0 -1
  165. package/dist/dialog-CD5lfQA9.js.map +0 -1
  166. package/dist/input-group-CjcHP0L4.js.map +0 -1
  167. package/dist/sheet-imSHXfFH.js.map +0 -1
  168. package/dist/size-system-wzOLSuax.d.ts.map +0 -1
@@ -46,7 +46,7 @@ const AutocompleteOverlayContext = createContext({ size: "md" });
46
46
  //#endregion
47
47
  //#region src/ui/autocomplete/autocomplete-popup.tsx
48
48
  const autocompletePopupVariants = tv({
49
- base: "z-overlay border-border bg-popover text-popover-foreground relative max-h-[min(var(--available-height),20rem)] min-w-(--anchor-width) origin-(--transform-origin) overflow-x-hidden overflow-y-auto overscroll-contain border shadow-md",
49
+ base: "z-overlay border-border bg-popover text-popover-foreground relative max-h-[min(var(--available-height),var(--kb-overlay-list-max-height,20rem))] min-w-(--anchor-width) origin-(--transform-origin) overflow-x-hidden overflow-y-auto overscroll-contain border shadow-md",
50
50
  defaultVariants: { size: "md" },
51
51
  variants: { size: {
52
52
  lg: "rounded-md p-1.5",
@@ -1 +1 @@
1
- {"version":3,"file":"autocomplete.js","names":["BaseAutocomplete","BaseAutocomplete","BaseAutocomplete","BaseAutocomplete","BaseAutocomplete","BaseAutocomplete","BaseAutocomplete","BaseAutocomplete","BaseAutocomplete","BaseAutocomplete","BaseAutocomplete","BaseAutocomplete","BaseAutocomplete","BaseAutocomplete","BaseAutocomplete","BaseAutocomplete","BaseAutocomplete","BaseAutocomplete","BaseAutocomplete","BaseAutocomplete"],"sources":["../../src/ui/autocomplete/autocomplete-arrow.tsx","../../src/ui/autocomplete/autocomplete-backdrop.tsx","../../src/ui/autocomplete/autocomplete-clear.tsx","../../src/ui/autocomplete/autocomplete-collection.tsx","../../src/ui/autocomplete/autocomplete-context.tsx","../../src/ui/autocomplete/autocomplete-overlay-context.tsx","../../src/ui/autocomplete/autocomplete-popup.tsx","../../src/ui/autocomplete/autocomplete-portal.tsx","../../src/ui/autocomplete/autocomplete-positioner.tsx","../../src/ui/autocomplete/autocomplete-content.tsx","../../src/ui/autocomplete/autocomplete-empty.tsx","../../src/ui/autocomplete/autocomplete-group.tsx","../../src/ui/autocomplete/autocomplete-group-label.tsx","../../src/ui/autocomplete/autocomplete-icon.tsx","../../src/ui/autocomplete/autocomplete-input.tsx","../../src/ui/autocomplete/autocomplete-item.tsx","../../src/ui/autocomplete/autocomplete-list.tsx","../../src/ui/autocomplete/autocomplete-row.tsx","../../src/ui/autocomplete/autocomplete-separator.tsx","../../src/ui/autocomplete/autocomplete-status.tsx","../../src/ui/autocomplete/autocomplete-trigger.tsx","../../src/ui/autocomplete/autocomplete-value.tsx","../../src/ui/autocomplete/autocomplete.tsx"],"sourcesContent":["import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\n\nexport type AutocompleteArrowProps = ComponentProps<\n typeof BaseAutocomplete.Arrow\n>;\n\nexport const AutocompleteArrow = (props: AutocompleteArrowProps) => (\n <BaseAutocomplete.Arrow data-slot=\"autocomplete-arrow\" {...props} />\n);\n","import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\n\nexport type AutocompleteBackdropProps = ComponentProps<\n typeof BaseAutocomplete.Backdrop\n>;\n\nexport const AutocompleteBackdrop = (props: AutocompleteBackdropProps) => (\n <BaseAutocomplete.Backdrop data-slot=\"autocomplete-backdrop\" {...props} />\n);\n","import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\n\nexport type AutocompleteClearProps = ComponentProps<\n typeof BaseAutocomplete.Clear\n>;\n\nexport const AutocompleteClear = ({\n className,\n ...props\n}: AutocompleteClearProps) => (\n <BaseAutocomplete.Clear\n className={mergeBaseUIClassName<BaseAutocomplete.Clear.State>(\n \"cursor-clickable\",\n className\n )}\n data-slot=\"autocomplete-clear\"\n {...props}\n />\n);\n","import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\n\nexport type AutocompleteCollectionProps = ComponentProps<\n typeof BaseAutocomplete.Collection\n>;\n\nexport const AutocompleteCollection = (props: AutocompleteCollectionProps) => (\n <BaseAutocomplete.Collection data-slot=\"autocomplete-collection\" {...props} />\n);\n","\"use client\";\n\nimport { createContext } from \"react\";\n\nimport type { InputSize } from \"../input/input\";\n\nexport interface AutocompleteContextValue {\n size?: InputSize;\n}\n\nconst AutocompleteContext = createContext<AutocompleteContextValue>({\n size: \"md\",\n});\n\nexport { AutocompleteContext };\n","\"use client\";\n\nimport { createContext } from \"react\";\n\nimport type { InputSize } from \"../input/input\";\n\nexport interface AutocompleteOverlayContextValue {\n size?: InputSize;\n}\n\nconst AutocompleteOverlayContext =\n createContext<AutocompleteOverlayContextValue>({\n size: \"md\",\n });\n\nexport { AutocompleteOverlayContext };\n","import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\nimport { useContext } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport type { VariantProps } from \"tailwind-variants\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport type { InputSize } from \"../input/input\";\nimport { AutocompleteOverlayContext } from \"./autocomplete-overlay-context\";\n\nexport type AutocompletePopupProps = ComponentProps<\n typeof BaseAutocomplete.Popup\n> &\n VariantProps<typeof autocompletePopupVariants>;\n\nconst autocompletePopupVariants = tv({\n base: \"z-overlay border-border bg-popover text-popover-foreground relative max-h-[min(var(--available-height),20rem)] min-w-(--anchor-width) origin-(--transform-origin) overflow-x-hidden overflow-y-auto overscroll-contain border shadow-md\",\n defaultVariants: {\n size: \"md\",\n },\n variants: {\n size: {\n lg: \"rounded-md p-1.5\",\n md: \"rounded-md p-1\",\n sm: \"rounded-[min(var(--radius-md),10px)] p-1\",\n xl: \"rounded-md p-2\",\n xs: \"rounded-[min(var(--radius-md),8px)] p-0.5\",\n },\n },\n});\n\nexport const AutocompletePopup = ({\n className,\n size,\n ...props\n}: AutocompletePopupProps) => {\n const { size: overlaySize } = useContext(AutocompleteOverlayContext);\n const resolvedSize: InputSize = size ?? overlaySize ?? \"md\";\n\n return (\n <BaseAutocomplete.Popup\n className={mergeBaseUIClassName<BaseAutocomplete.Popup.State>(\n autocompletePopupVariants({ size: resolvedSize }),\n className\n )}\n data-size={resolvedSize}\n data-slot=\"autocomplete-popup\"\n {...props}\n />\n );\n};\n","import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\n\nexport type AutocompletePortalProps = ComponentProps<\n typeof BaseAutocomplete.Portal\n>;\n\nexport const AutocompletePortal = (props: AutocompletePortalProps) => (\n <BaseAutocomplete.Portal data-slot=\"autocomplete-portal\" {...props} />\n);\n","import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\n\nexport type AutocompletePositionerProps = ComponentProps<\n typeof BaseAutocomplete.Positioner\n>;\n\nexport const AutocompletePositioner = ({\n className,\n ...props\n}: AutocompletePositionerProps) => (\n <BaseAutocomplete.Positioner\n className={mergeBaseUIClassName<BaseAutocomplete.Positioner.State>(\n \"z-overlay\",\n className\n )}\n data-slot=\"autocomplete-positioner\"\n {...props}\n />\n);\n","import type { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\nimport { useContext, useMemo } from \"react\";\n\nimport type { InputSize } from \"../input/input\";\nimport { AutocompleteContext } from \"./autocomplete-context\";\nimport { AutocompleteOverlayContext } from \"./autocomplete-overlay-context\";\nimport { AutocompletePopup } from \"./autocomplete-popup\";\nimport { AutocompletePortal } from \"./autocomplete-portal\";\nimport { AutocompletePositioner } from \"./autocomplete-positioner\";\n\nexport type AutocompleteContentProps = ComponentProps<\n typeof BaseAutocomplete.Popup\n> & {\n size?: InputSize;\n sideOffset?: BaseAutocomplete.Positioner.Props[\"sideOffset\"];\n};\n\nexport const AutocompleteContent = ({\n className,\n children,\n size,\n sideOffset = 4,\n ...props\n}: AutocompleteContentProps) => {\n const { size: rootSize } = useContext(AutocompleteContext);\n const resolvedSize = size ?? rootSize ?? \"md\";\n const contextValue = useMemo(() => ({ size: resolvedSize }), [resolvedSize]);\n\n return (\n <AutocompleteOverlayContext.Provider value={contextValue}>\n <AutocompletePortal>\n <AutocompletePositioner\n className=\"outline-none\"\n sideOffset={sideOffset}\n >\n <AutocompletePopup\n className={className}\n data-size={resolvedSize}\n data-slot=\"autocomplete-content\"\n size={resolvedSize}\n {...props}\n >\n {children}\n </AutocompletePopup>\n </AutocompletePositioner>\n </AutocompletePortal>\n </AutocompleteOverlayContext.Provider>\n );\n};\n","import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\nimport { useContext } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport type { VariantProps } from \"tailwind-variants\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport type { InputSize } from \"../input/input\";\nimport { AutocompleteOverlayContext } from \"./autocomplete-overlay-context\";\n\nexport type AutocompleteEmptyProps = ComponentProps<\n typeof BaseAutocomplete.Empty\n> &\n VariantProps<typeof autocompleteEmptyVariants>;\n\nconst autocompleteEmptyVariants = tv({\n base: \"text-center empty:m-0 empty:p-0\",\n defaultVariants: {\n size: \"md\",\n },\n variants: {\n size: {\n lg: \"py-7 text-sm\",\n md: \"py-6 text-sm\",\n sm: \"py-5 text-sm\",\n xl: \"py-8 text-base\",\n xs: \"py-4 text-xs\",\n },\n },\n});\n\nexport const AutocompleteEmpty = ({\n className,\n size,\n ...props\n}: AutocompleteEmptyProps) => {\n const { size: overlaySize } = useContext(AutocompleteOverlayContext);\n const resolvedSize: InputSize = size ?? overlaySize ?? \"md\";\n\n return (\n <BaseAutocomplete.Empty\n className={mergeBaseUIClassName<BaseAutocomplete.Empty.State>(\n autocompleteEmptyVariants({ size: resolvedSize }),\n className\n )}\n data-size={resolvedSize}\n data-slot=\"autocomplete-empty\"\n {...props}\n />\n );\n};\n","import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\n\nexport type AutocompleteGroupProps = ComponentProps<\n typeof BaseAutocomplete.Group\n>;\n\nexport const AutocompleteGroup = (props: AutocompleteGroupProps) => (\n <BaseAutocomplete.Group data-slot=\"autocomplete-group\" {...props} />\n);\n","import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\nimport { useContext } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport type { VariantProps } from \"tailwind-variants\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport type { InputSize } from \"../input/input\";\nimport { AutocompleteOverlayContext } from \"./autocomplete-overlay-context\";\n\nexport type AutocompleteGroupLabelProps = ComponentProps<\n typeof BaseAutocomplete.GroupLabel\n> &\n VariantProps<typeof autocompleteGroupLabelVariants>;\n\nconst autocompleteGroupLabelVariants = tv({\n base: \"text-muted-foreground font-medium\",\n defaultVariants: {\n size: \"md\",\n },\n variants: {\n size: {\n lg: \"px-2.5 py-1.5 text-sm\",\n md: \"px-2 py-1.5 text-xs\",\n sm: \"px-2 py-1 text-xs\",\n xl: \"px-3 py-2 text-sm\",\n xs: \"px-1.5 py-1 text-xs\",\n },\n },\n});\n\nexport const AutocompleteGroupLabel = ({\n className,\n size,\n ...props\n}: AutocompleteGroupLabelProps) => {\n const { size: overlaySize } = useContext(AutocompleteOverlayContext);\n const resolvedSize: InputSize = size ?? overlaySize ?? \"md\";\n\n return (\n <BaseAutocomplete.GroupLabel\n className={mergeBaseUIClassName<BaseAutocomplete.GroupLabel.State>(\n autocompleteGroupLabelVariants({ size: resolvedSize }),\n className\n )}\n data-size={resolvedSize}\n data-slot=\"autocomplete-group-label\"\n {...props}\n />\n );\n};\n","import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\n\nexport type AutocompleteIconProps = ComponentProps<\n typeof BaseAutocomplete.Icon\n>;\n\nexport const AutocompleteIcon = (props: AutocompleteIconProps) => (\n <BaseAutocomplete.Icon data-slot=\"autocomplete-icon\" {...props} />\n);\n","import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\nimport { useContext } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport type { VariantProps } from \"tailwind-variants\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { AutocompleteContext } from \"./autocomplete-context\";\n\nconst autocompleteInputVariants = tv({\n base: \"border-input selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-danger aria-invalid:ring-danger/50 dark:bg-input/30 flex w-full min-w-0 border bg-transparent transition-colors outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50\",\n defaultVariants: {\n size: \"md\",\n },\n variants: {\n size: {\n lg: \"h-10 rounded-md px-3 py-1.5 text-base md:text-sm\",\n md: \"h-9 rounded-md px-2.5 py-1 text-base md:text-sm\",\n sm: \"h-8 rounded-[min(var(--radius-md),10px)] px-2.5 py-1 text-sm\",\n xl: \"h-11 rounded-md px-4 py-1.5 text-base\",\n xs: \"h-6 rounded-[min(var(--radius-md),8px)] px-2 py-0.5 text-xs\",\n },\n },\n});\n\ntype AutocompleteInputVariantProps = VariantProps<\n typeof autocompleteInputVariants\n>;\ntype NativeAutocompleteInputProps = ComponentProps<\n typeof BaseAutocomplete.Input\n>;\ntype NativeAutocompleteInputSize = NativeAutocompleteInputProps[\"size\"];\n\nexport type AutocompleteInputProps = Omit<\n NativeAutocompleteInputProps,\n \"size\"\n> &\n AutocompleteInputVariantProps & {\n htmlSize?: NativeAutocompleteInputSize;\n };\n\nexport const AutocompleteInput = ({\n className,\n htmlSize,\n size,\n ...props\n}: AutocompleteInputProps) => {\n const { size: contextSize } = useContext(AutocompleteContext);\n const resolvedSize = size ?? contextSize ?? \"md\";\n\n return (\n <BaseAutocomplete.Input\n className={mergeBaseUIClassName<BaseAutocomplete.Input.State>(\n autocompleteInputVariants({ size: resolvedSize }),\n className\n )}\n data-size={resolvedSize}\n data-slot=\"autocomplete-input\"\n size={htmlSize}\n {...props}\n />\n );\n};\n","import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\nimport { useContext } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport type { VariantProps } from \"tailwind-variants\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport type { InputSize } from \"../input/input\";\nimport { AutocompleteOverlayContext } from \"./autocomplete-overlay-context\";\n\nexport type AutocompleteItemProps = ComponentProps<\n typeof BaseAutocomplete.Item\n> &\n VariantProps<typeof autocompleteItemVariants>;\n\nconst autocompleteItemVariants = tv({\n base: \"cursor-clickable data-highlighted:bg-accent data-highlighted:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full items-center rounded-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:cursor-not-allowed data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n defaultVariants: {\n size: \"md\",\n },\n variants: {\n size: {\n lg: \"gap-2 px-2.5 py-2 text-sm [&_svg:not([class*='size-'])]:size-4\",\n md: \"gap-2 px-2 py-1.5 text-sm [&_svg:not([class*='size-'])]:size-4\",\n sm: \"gap-1.5 px-2 py-1 text-sm [&_svg:not([class*='size-'])]:size-3.5\",\n xl: \"gap-2.5 px-3 py-2.5 text-base [&_svg:not([class*='size-'])]:size-5\",\n xs: \"gap-1 px-1.5 py-1 text-xs [&_svg:not([class*='size-'])]:size-3\",\n },\n },\n});\n\nexport const AutocompleteItem = ({\n className,\n children,\n size,\n ...props\n}: AutocompleteItemProps) => {\n const { size: overlaySize } = useContext(AutocompleteOverlayContext);\n const resolvedSize: InputSize = size ?? overlaySize ?? \"md\";\n\n return (\n <BaseAutocomplete.Item\n className={mergeBaseUIClassName<BaseAutocomplete.Item.State>(\n autocompleteItemVariants({ size: resolvedSize }),\n className\n )}\n data-size={resolvedSize}\n data-slot=\"autocomplete-item\"\n {...props}\n >\n {children}\n </BaseAutocomplete.Item>\n );\n};\n","import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\n\nexport type AutocompleteListProps = ComponentProps<\n typeof BaseAutocomplete.List\n>;\n\nexport const AutocompleteList = (props: AutocompleteListProps) => (\n <BaseAutocomplete.List data-slot=\"autocomplete-list\" {...props} />\n);\n","import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\nimport { useContext } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport type { VariantProps } from \"tailwind-variants\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport type { InputSize } from \"../input/input\";\nimport { AutocompleteOverlayContext } from \"./autocomplete-overlay-context\";\n\nconst autocompleteRowVariants = tv({\n base: \"grid w-full\",\n defaultVariants: {\n size: \"md\",\n },\n variants: {\n size: {\n lg: \"scroll-my-2\",\n md: \"scroll-my-1.5\",\n sm: \"scroll-my-1\",\n xl: \"scroll-my-2.5\",\n xs: \"scroll-my-1\",\n },\n },\n});\n\nexport type AutocompleteRowProps = ComponentProps<typeof BaseAutocomplete.Row> &\n VariantProps<typeof autocompleteRowVariants>;\n\nexport const AutocompleteRow = ({\n className,\n size,\n ...props\n}: AutocompleteRowProps) => {\n const { size: overlaySize } = useContext(AutocompleteOverlayContext);\n const resolvedSize: InputSize = size ?? overlaySize ?? \"md\";\n\n return (\n <BaseAutocomplete.Row\n className={mergeBaseUIClassName<BaseAutocomplete.Row.State>(\n autocompleteRowVariants({ size: resolvedSize }),\n className\n )}\n data-size={resolvedSize}\n data-slot=\"autocomplete-row\"\n {...props}\n />\n );\n};\n","import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\n\nexport type AutocompleteSeparatorProps = ComponentProps<\n typeof BaseAutocomplete.Separator\n>;\n\nexport const AutocompleteSeparator = ({\n className,\n ...props\n}: AutocompleteSeparatorProps) => (\n <BaseAutocomplete.Separator\n className={mergeBaseUIClassName<BaseAutocomplete.Separator.State>(\n \"pointer-events-none -mx-1 my-1 h-px bg-border\",\n className\n )}\n data-slot=\"autocomplete-separator\"\n {...props}\n />\n);\n","import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\nimport { useContext } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport type { VariantProps } from \"tailwind-variants\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport type { InputSize } from \"../input/input\";\nimport { AutocompleteOverlayContext } from \"./autocomplete-overlay-context\";\n\nexport type AutocompleteStatusProps = ComponentProps<\n typeof BaseAutocomplete.Status\n> &\n VariantProps<typeof autocompleteStatusVariants>;\n\nconst autocompleteStatusVariants = tv({\n base: \"text-muted-foreground flex items-center\",\n defaultVariants: {\n size: \"md\",\n },\n variants: {\n size: {\n lg: \"gap-2 px-2.5 py-2 text-sm\",\n md: \"gap-2 px-2 py-1.5 text-sm\",\n sm: \"gap-1.5 px-2 py-1 text-sm\",\n xl: \"gap-2.5 px-3 py-2.5 text-base\",\n xs: \"gap-1 px-1.5 py-1 text-xs\",\n },\n },\n});\n\nexport const AutocompleteStatus = ({\n className,\n size,\n ...props\n}: AutocompleteStatusProps) => {\n const { size: overlaySize } = useContext(AutocompleteOverlayContext);\n const resolvedSize: InputSize = size ?? overlaySize ?? \"md\";\n\n return (\n <BaseAutocomplete.Status\n className={mergeBaseUIClassName<BaseAutocomplete.Status.State>(\n autocompleteStatusVariants({ size: resolvedSize }),\n className\n )}\n data-size={resolvedSize}\n data-slot=\"autocomplete-status\"\n {...props}\n />\n );\n};\n","import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\n\nexport type AutocompleteTriggerProps = ComponentProps<\n typeof BaseAutocomplete.Trigger\n>;\n\nexport const AutocompleteTrigger = ({\n className,\n ...props\n}: AutocompleteTriggerProps) => (\n <BaseAutocomplete.Trigger\n className={mergeBaseUIClassName<BaseAutocomplete.Trigger.State>(\n \"cursor-clickable\",\n className\n )}\n data-slot=\"autocomplete-trigger\"\n {...props}\n />\n);\n","import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\n\nexport type AutocompleteValueProps = ComponentProps<\n typeof BaseAutocomplete.Value\n>;\n\nexport const AutocompleteValue = (props: AutocompleteValueProps) => (\n <BaseAutocomplete.Value data-slot=\"autocomplete-value\" {...props} />\n);\n","\"use client\";\n\nimport { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\nimport { useMemo } from \"react\";\n\nimport type { InputSize } from \"../input/input\";\nimport { useComponentSize } from \"../shared/size/size-provider\";\nimport { AutocompleteArrow } from \"./autocomplete-arrow\";\nimport { AutocompleteBackdrop } from \"./autocomplete-backdrop\";\nimport { AutocompleteClear } from \"./autocomplete-clear\";\nimport { AutocompleteCollection } from \"./autocomplete-collection\";\nimport { AutocompleteContent } from \"./autocomplete-content\";\nimport { AutocompleteContext } from \"./autocomplete-context\";\nimport { AutocompleteEmpty } from \"./autocomplete-empty\";\nimport { AutocompleteGroup } from \"./autocomplete-group\";\nimport { AutocompleteGroupLabel } from \"./autocomplete-group-label\";\nimport { AutocompleteIcon } from \"./autocomplete-icon\";\nimport { AutocompleteInput } from \"./autocomplete-input\";\nimport { AutocompleteItem } from \"./autocomplete-item\";\nimport { AutocompleteList } from \"./autocomplete-list\";\nimport { AutocompletePopup } from \"./autocomplete-popup\";\nimport { AutocompletePortal } from \"./autocomplete-portal\";\nimport { AutocompletePositioner } from \"./autocomplete-positioner\";\nimport { AutocompleteRow } from \"./autocomplete-row\";\nimport { AutocompleteSeparator } from \"./autocomplete-separator\";\nimport { AutocompleteStatus } from \"./autocomplete-status\";\nimport { AutocompleteTrigger } from \"./autocomplete-trigger\";\nimport { AutocompleteValue } from \"./autocomplete-value\";\n\nexport type AutocompleteProps = ComponentProps<typeof BaseAutocomplete.Root> & {\n size?: InputSize;\n};\n\nconst Autocomplete = ({ size: providedSize, ...props }: AutocompleteProps) => {\n const size = useComponentSize(providedSize);\n const contextValue = useMemo(() => ({ size }), [size]);\n\n return (\n <AutocompleteContext.Provider value={contextValue}>\n <BaseAutocomplete.Root\n data-size={size}\n data-slot=\"autocomplete\"\n {...props}\n />\n </AutocompleteContext.Provider>\n );\n};\n\nAutocomplete.Arrow = AutocompleteArrow;\nAutocomplete.Backdrop = AutocompleteBackdrop;\nAutocomplete.Clear = AutocompleteClear;\nAutocomplete.Collection = AutocompleteCollection;\nAutocomplete.Content = AutocompleteContent;\nAutocomplete.Empty = AutocompleteEmpty;\nAutocomplete.Group = AutocompleteGroup;\nAutocomplete.GroupLabel = AutocompleteGroupLabel;\nAutocomplete.Icon = AutocompleteIcon;\nAutocomplete.Input = AutocompleteInput;\nAutocomplete.Item = AutocompleteItem;\nAutocomplete.List = AutocompleteList;\nAutocomplete.Popup = AutocompletePopup;\nAutocomplete.Portal = AutocompletePortal;\nAutocomplete.Positioner = AutocompletePositioner;\nAutocomplete.Row = AutocompleteRow;\nAutocomplete.Separator = AutocompleteSeparator;\nAutocomplete.Status = AutocompleteStatus;\nAutocomplete.Trigger = AutocompleteTrigger;\nAutocomplete.Value = AutocompleteValue;\n\nexport const { useFilter, useFilteredItems } = BaseAutocomplete;\n\nexport type { AutocompleteArrowProps } from \"./autocomplete-arrow\";\nexport type { AutocompleteBackdropProps } from \"./autocomplete-backdrop\";\nexport type { AutocompleteClearProps } from \"./autocomplete-clear\";\nexport type { AutocompleteCollectionProps } from \"./autocomplete-collection\";\nexport type { AutocompleteContentProps } from \"./autocomplete-content\";\nexport type { AutocompleteEmptyProps } from \"./autocomplete-empty\";\nexport type { AutocompleteGroupProps } from \"./autocomplete-group\";\nexport type { AutocompleteGroupLabelProps } from \"./autocomplete-group-label\";\nexport type { AutocompleteIconProps } from \"./autocomplete-icon\";\nexport type { AutocompleteInputProps } from \"./autocomplete-input\";\nexport type { AutocompleteItemProps } from \"./autocomplete-item\";\nexport type { AutocompleteListProps } from \"./autocomplete-list\";\nexport type { AutocompletePortalProps } from \"./autocomplete-portal\";\nexport type { AutocompletePositionerProps } from \"./autocomplete-positioner\";\nexport type { AutocompletePopupProps } from \"./autocomplete-popup\";\nexport type { AutocompleteRowProps } from \"./autocomplete-row\";\nexport type { AutocompleteSeparatorProps } from \"./autocomplete-separator\";\nexport type { AutocompleteStatusProps } from \"./autocomplete-status\";\nexport type { AutocompleteTriggerProps } from \"./autocomplete-trigger\";\nexport type { AutocompleteValueProps } from \"./autocomplete-value\";\n\nexport {\n Autocomplete,\n AutocompleteArrow,\n AutocompleteBackdrop,\n AutocompleteClear,\n AutocompleteCollection,\n AutocompleteContent,\n AutocompleteEmpty,\n AutocompleteGroup,\n AutocompleteGroupLabel,\n AutocompleteIcon,\n AutocompleteInput,\n AutocompleteItem,\n AutocompleteList,\n AutocompletePopup,\n AutocompletePortal,\n AutocompletePositioner,\n AutocompleteRow,\n AutocompleteSeparator,\n AutocompleteStatus,\n AutocompleteTrigger,\n AutocompleteValue,\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"autocomplete.js","names":["BaseAutocomplete","BaseAutocomplete","BaseAutocomplete","BaseAutocomplete","BaseAutocomplete","BaseAutocomplete","BaseAutocomplete","BaseAutocomplete","BaseAutocomplete","BaseAutocomplete","BaseAutocomplete","BaseAutocomplete","BaseAutocomplete","BaseAutocomplete","BaseAutocomplete","BaseAutocomplete","BaseAutocomplete","BaseAutocomplete","BaseAutocomplete","BaseAutocomplete"],"sources":["../../src/ui/autocomplete/autocomplete-arrow.tsx","../../src/ui/autocomplete/autocomplete-backdrop.tsx","../../src/ui/autocomplete/autocomplete-clear.tsx","../../src/ui/autocomplete/autocomplete-collection.tsx","../../src/ui/autocomplete/autocomplete-context.tsx","../../src/ui/autocomplete/autocomplete-overlay-context.tsx","../../src/ui/autocomplete/autocomplete-popup.tsx","../../src/ui/autocomplete/autocomplete-portal.tsx","../../src/ui/autocomplete/autocomplete-positioner.tsx","../../src/ui/autocomplete/autocomplete-content.tsx","../../src/ui/autocomplete/autocomplete-empty.tsx","../../src/ui/autocomplete/autocomplete-group.tsx","../../src/ui/autocomplete/autocomplete-group-label.tsx","../../src/ui/autocomplete/autocomplete-icon.tsx","../../src/ui/autocomplete/autocomplete-input.tsx","../../src/ui/autocomplete/autocomplete-item.tsx","../../src/ui/autocomplete/autocomplete-list.tsx","../../src/ui/autocomplete/autocomplete-row.tsx","../../src/ui/autocomplete/autocomplete-separator.tsx","../../src/ui/autocomplete/autocomplete-status.tsx","../../src/ui/autocomplete/autocomplete-trigger.tsx","../../src/ui/autocomplete/autocomplete-value.tsx","../../src/ui/autocomplete/autocomplete.tsx"],"sourcesContent":["import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\n\nexport type AutocompleteArrowProps = ComponentProps<\n typeof BaseAutocomplete.Arrow\n>;\n\nexport const AutocompleteArrow = (props: AutocompleteArrowProps) => (\n <BaseAutocomplete.Arrow data-slot=\"autocomplete-arrow\" {...props} />\n);\n","import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\n\nexport type AutocompleteBackdropProps = ComponentProps<\n typeof BaseAutocomplete.Backdrop\n>;\n\nexport const AutocompleteBackdrop = (props: AutocompleteBackdropProps) => (\n <BaseAutocomplete.Backdrop data-slot=\"autocomplete-backdrop\" {...props} />\n);\n","import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\n\nexport type AutocompleteClearProps = ComponentProps<\n typeof BaseAutocomplete.Clear\n>;\n\nexport const AutocompleteClear = ({\n className,\n ...props\n}: AutocompleteClearProps) => (\n <BaseAutocomplete.Clear\n className={mergeBaseUIClassName<BaseAutocomplete.Clear.State>(\n \"cursor-clickable\",\n className\n )}\n data-slot=\"autocomplete-clear\"\n {...props}\n />\n);\n","import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\n\nexport type AutocompleteCollectionProps = ComponentProps<\n typeof BaseAutocomplete.Collection\n>;\n\nexport const AutocompleteCollection = (props: AutocompleteCollectionProps) => (\n <BaseAutocomplete.Collection data-slot=\"autocomplete-collection\" {...props} />\n);\n","\"use client\";\n\nimport { createContext } from \"react\";\n\nimport type { InputSize } from \"../input/input\";\n\nexport interface AutocompleteContextValue {\n size?: InputSize;\n}\n\nconst AutocompleteContext = createContext<AutocompleteContextValue>({\n size: \"md\",\n});\n\nexport { AutocompleteContext };\n","\"use client\";\n\nimport { createContext } from \"react\";\n\nimport type { InputSize } from \"../input/input\";\n\nexport interface AutocompleteOverlayContextValue {\n size?: InputSize;\n}\n\nconst AutocompleteOverlayContext =\n createContext<AutocompleteOverlayContextValue>({\n size: \"md\",\n });\n\nexport { AutocompleteOverlayContext };\n","import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\nimport { useContext } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport type { VariantProps } from \"tailwind-variants\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport type { InputSize } from \"../input/input\";\nimport { AutocompleteOverlayContext } from \"./autocomplete-overlay-context\";\n\nexport type AutocompletePopupProps = ComponentProps<\n typeof BaseAutocomplete.Popup\n> &\n VariantProps<typeof autocompletePopupVariants>;\n\nconst autocompletePopupVariants = tv({\n base: \"z-overlay border-border bg-popover text-popover-foreground relative max-h-[min(var(--available-height),var(--kb-overlay-list-max-height,20rem))] min-w-(--anchor-width) origin-(--transform-origin) overflow-x-hidden overflow-y-auto overscroll-contain border shadow-md\",\n defaultVariants: {\n size: \"md\",\n },\n variants: {\n size: {\n lg: \"rounded-md p-1.5\",\n md: \"rounded-md p-1\",\n sm: \"rounded-[min(var(--radius-md),10px)] p-1\",\n xl: \"rounded-md p-2\",\n xs: \"rounded-[min(var(--radius-md),8px)] p-0.5\",\n },\n },\n});\n\nexport const AutocompletePopup = ({\n className,\n size,\n ...props\n}: AutocompletePopupProps) => {\n const { size: overlaySize } = useContext(AutocompleteOverlayContext);\n const resolvedSize: InputSize = size ?? overlaySize ?? \"md\";\n\n return (\n <BaseAutocomplete.Popup\n className={mergeBaseUIClassName<BaseAutocomplete.Popup.State>(\n autocompletePopupVariants({ size: resolvedSize }),\n className\n )}\n data-size={resolvedSize}\n data-slot=\"autocomplete-popup\"\n {...props}\n />\n );\n};\n","import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\n\nexport type AutocompletePortalProps = ComponentProps<\n typeof BaseAutocomplete.Portal\n>;\n\nexport const AutocompletePortal = (props: AutocompletePortalProps) => (\n <BaseAutocomplete.Portal data-slot=\"autocomplete-portal\" {...props} />\n);\n","import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\n\nexport type AutocompletePositionerProps = ComponentProps<\n typeof BaseAutocomplete.Positioner\n>;\n\nexport const AutocompletePositioner = ({\n className,\n ...props\n}: AutocompletePositionerProps) => (\n <BaseAutocomplete.Positioner\n className={mergeBaseUIClassName<BaseAutocomplete.Positioner.State>(\n \"z-overlay\",\n className\n )}\n data-slot=\"autocomplete-positioner\"\n {...props}\n />\n);\n","import type { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\nimport { useContext, useMemo } from \"react\";\n\nimport type { InputSize } from \"../input/input\";\nimport { AutocompleteContext } from \"./autocomplete-context\";\nimport { AutocompleteOverlayContext } from \"./autocomplete-overlay-context\";\nimport { AutocompletePopup } from \"./autocomplete-popup\";\nimport { AutocompletePortal } from \"./autocomplete-portal\";\nimport { AutocompletePositioner } from \"./autocomplete-positioner\";\n\nexport type AutocompleteContentProps = ComponentProps<\n typeof BaseAutocomplete.Popup\n> & {\n size?: InputSize;\n sideOffset?: BaseAutocomplete.Positioner.Props[\"sideOffset\"];\n};\n\nexport const AutocompleteContent = ({\n className,\n children,\n size,\n sideOffset = 4,\n ...props\n}: AutocompleteContentProps) => {\n const { size: rootSize } = useContext(AutocompleteContext);\n const resolvedSize = size ?? rootSize ?? \"md\";\n const contextValue = useMemo(() => ({ size: resolvedSize }), [resolvedSize]);\n\n return (\n <AutocompleteOverlayContext.Provider value={contextValue}>\n <AutocompletePortal>\n <AutocompletePositioner\n className=\"outline-none\"\n sideOffset={sideOffset}\n >\n <AutocompletePopup\n className={className}\n data-size={resolvedSize}\n data-slot=\"autocomplete-content\"\n size={resolvedSize}\n {...props}\n >\n {children}\n </AutocompletePopup>\n </AutocompletePositioner>\n </AutocompletePortal>\n </AutocompleteOverlayContext.Provider>\n );\n};\n","import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\nimport { useContext } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport type { VariantProps } from \"tailwind-variants\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport type { InputSize } from \"../input/input\";\nimport { AutocompleteOverlayContext } from \"./autocomplete-overlay-context\";\n\nexport type AutocompleteEmptyProps = ComponentProps<\n typeof BaseAutocomplete.Empty\n> &\n VariantProps<typeof autocompleteEmptyVariants>;\n\nconst autocompleteEmptyVariants = tv({\n base: \"text-center empty:m-0 empty:p-0\",\n defaultVariants: {\n size: \"md\",\n },\n variants: {\n size: {\n lg: \"py-7 text-sm\",\n md: \"py-6 text-sm\",\n sm: \"py-5 text-sm\",\n xl: \"py-8 text-base\",\n xs: \"py-4 text-xs\",\n },\n },\n});\n\nexport const AutocompleteEmpty = ({\n className,\n size,\n ...props\n}: AutocompleteEmptyProps) => {\n const { size: overlaySize } = useContext(AutocompleteOverlayContext);\n const resolvedSize: InputSize = size ?? overlaySize ?? \"md\";\n\n return (\n <BaseAutocomplete.Empty\n className={mergeBaseUIClassName<BaseAutocomplete.Empty.State>(\n autocompleteEmptyVariants({ size: resolvedSize }),\n className\n )}\n data-size={resolvedSize}\n data-slot=\"autocomplete-empty\"\n {...props}\n />\n );\n};\n","import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\n\nexport type AutocompleteGroupProps = ComponentProps<\n typeof BaseAutocomplete.Group\n>;\n\nexport const AutocompleteGroup = (props: AutocompleteGroupProps) => (\n <BaseAutocomplete.Group data-slot=\"autocomplete-group\" {...props} />\n);\n","import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\nimport { useContext } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport type { VariantProps } from \"tailwind-variants\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport type { InputSize } from \"../input/input\";\nimport { AutocompleteOverlayContext } from \"./autocomplete-overlay-context\";\n\nexport type AutocompleteGroupLabelProps = ComponentProps<\n typeof BaseAutocomplete.GroupLabel\n> &\n VariantProps<typeof autocompleteGroupLabelVariants>;\n\nconst autocompleteGroupLabelVariants = tv({\n base: \"text-muted-foreground font-medium\",\n defaultVariants: {\n size: \"md\",\n },\n variants: {\n size: {\n lg: \"px-2.5 py-1.5 text-sm\",\n md: \"px-2 py-1.5 text-xs\",\n sm: \"px-2 py-1 text-xs\",\n xl: \"px-3 py-2 text-sm\",\n xs: \"px-1.5 py-1 text-xs\",\n },\n },\n});\n\nexport const AutocompleteGroupLabel = ({\n className,\n size,\n ...props\n}: AutocompleteGroupLabelProps) => {\n const { size: overlaySize } = useContext(AutocompleteOverlayContext);\n const resolvedSize: InputSize = size ?? overlaySize ?? \"md\";\n\n return (\n <BaseAutocomplete.GroupLabel\n className={mergeBaseUIClassName<BaseAutocomplete.GroupLabel.State>(\n autocompleteGroupLabelVariants({ size: resolvedSize }),\n className\n )}\n data-size={resolvedSize}\n data-slot=\"autocomplete-group-label\"\n {...props}\n />\n );\n};\n","import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\n\nexport type AutocompleteIconProps = ComponentProps<\n typeof BaseAutocomplete.Icon\n>;\n\nexport const AutocompleteIcon = (props: AutocompleteIconProps) => (\n <BaseAutocomplete.Icon data-slot=\"autocomplete-icon\" {...props} />\n);\n","import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\nimport { useContext } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport type { VariantProps } from \"tailwind-variants\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { AutocompleteContext } from \"./autocomplete-context\";\n\nconst autocompleteInputVariants = tv({\n base: \"border-input selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-danger aria-invalid:ring-danger/50 dark:bg-input/30 flex w-full min-w-0 border bg-transparent transition-colors outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50\",\n defaultVariants: {\n size: \"md\",\n },\n variants: {\n size: {\n lg: \"h-10 rounded-md px-3 py-1.5 text-base md:text-sm\",\n md: \"h-9 rounded-md px-2.5 py-1 text-base md:text-sm\",\n sm: \"h-8 rounded-[min(var(--radius-md),10px)] px-2.5 py-1 text-sm\",\n xl: \"h-11 rounded-md px-4 py-1.5 text-base\",\n xs: \"h-6 rounded-[min(var(--radius-md),8px)] px-2 py-0.5 text-xs\",\n },\n },\n});\n\ntype AutocompleteInputVariantProps = VariantProps<\n typeof autocompleteInputVariants\n>;\ntype NativeAutocompleteInputProps = ComponentProps<\n typeof BaseAutocomplete.Input\n>;\ntype NativeAutocompleteInputSize = NativeAutocompleteInputProps[\"size\"];\n\nexport type AutocompleteInputProps = Omit<\n NativeAutocompleteInputProps,\n \"size\"\n> &\n AutocompleteInputVariantProps & {\n htmlSize?: NativeAutocompleteInputSize;\n };\n\nexport const AutocompleteInput = ({\n className,\n htmlSize,\n size,\n ...props\n}: AutocompleteInputProps) => {\n const { size: contextSize } = useContext(AutocompleteContext);\n const resolvedSize = size ?? contextSize ?? \"md\";\n\n return (\n <BaseAutocomplete.Input\n className={mergeBaseUIClassName<BaseAutocomplete.Input.State>(\n autocompleteInputVariants({ size: resolvedSize }),\n className\n )}\n data-size={resolvedSize}\n data-slot=\"autocomplete-input\"\n size={htmlSize}\n {...props}\n />\n );\n};\n","import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\nimport { useContext } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport type { VariantProps } from \"tailwind-variants\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport type { InputSize } from \"../input/input\";\nimport { AutocompleteOverlayContext } from \"./autocomplete-overlay-context\";\n\nexport type AutocompleteItemProps = ComponentProps<\n typeof BaseAutocomplete.Item\n> &\n VariantProps<typeof autocompleteItemVariants>;\n\nconst autocompleteItemVariants = tv({\n base: \"cursor-clickable data-highlighted:bg-accent data-highlighted:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full items-center rounded-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:cursor-not-allowed data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n defaultVariants: {\n size: \"md\",\n },\n variants: {\n size: {\n lg: \"gap-2 px-2.5 py-2 text-sm [&_svg:not([class*='size-'])]:size-4\",\n md: \"gap-2 px-2 py-1.5 text-sm [&_svg:not([class*='size-'])]:size-4\",\n sm: \"gap-1.5 px-2 py-1 text-sm [&_svg:not([class*='size-'])]:size-3.5\",\n xl: \"gap-2.5 px-3 py-2.5 text-base [&_svg:not([class*='size-'])]:size-5\",\n xs: \"gap-1 px-1.5 py-1 text-xs [&_svg:not([class*='size-'])]:size-3\",\n },\n },\n});\n\nexport const AutocompleteItem = ({\n className,\n children,\n size,\n ...props\n}: AutocompleteItemProps) => {\n const { size: overlaySize } = useContext(AutocompleteOverlayContext);\n const resolvedSize: InputSize = size ?? overlaySize ?? \"md\";\n\n return (\n <BaseAutocomplete.Item\n className={mergeBaseUIClassName<BaseAutocomplete.Item.State>(\n autocompleteItemVariants({ size: resolvedSize }),\n className\n )}\n data-size={resolvedSize}\n data-slot=\"autocomplete-item\"\n {...props}\n >\n {children}\n </BaseAutocomplete.Item>\n );\n};\n","import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\n\nexport type AutocompleteListProps = ComponentProps<\n typeof BaseAutocomplete.List\n>;\n\nexport const AutocompleteList = (props: AutocompleteListProps) => (\n <BaseAutocomplete.List data-slot=\"autocomplete-list\" {...props} />\n);\n","import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\nimport { useContext } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport type { VariantProps } from \"tailwind-variants\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport type { InputSize } from \"../input/input\";\nimport { AutocompleteOverlayContext } from \"./autocomplete-overlay-context\";\n\nconst autocompleteRowVariants = tv({\n base: \"grid w-full\",\n defaultVariants: {\n size: \"md\",\n },\n variants: {\n size: {\n lg: \"scroll-my-2\",\n md: \"scroll-my-1.5\",\n sm: \"scroll-my-1\",\n xl: \"scroll-my-2.5\",\n xs: \"scroll-my-1\",\n },\n },\n});\n\nexport type AutocompleteRowProps = ComponentProps<typeof BaseAutocomplete.Row> &\n VariantProps<typeof autocompleteRowVariants>;\n\nexport const AutocompleteRow = ({\n className,\n size,\n ...props\n}: AutocompleteRowProps) => {\n const { size: overlaySize } = useContext(AutocompleteOverlayContext);\n const resolvedSize: InputSize = size ?? overlaySize ?? \"md\";\n\n return (\n <BaseAutocomplete.Row\n className={mergeBaseUIClassName<BaseAutocomplete.Row.State>(\n autocompleteRowVariants({ size: resolvedSize }),\n className\n )}\n data-size={resolvedSize}\n data-slot=\"autocomplete-row\"\n {...props}\n />\n );\n};\n","import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\n\nexport type AutocompleteSeparatorProps = ComponentProps<\n typeof BaseAutocomplete.Separator\n>;\n\nexport const AutocompleteSeparator = ({\n className,\n ...props\n}: AutocompleteSeparatorProps) => (\n <BaseAutocomplete.Separator\n className={mergeBaseUIClassName<BaseAutocomplete.Separator.State>(\n \"pointer-events-none -mx-1 my-1 h-px bg-border\",\n className\n )}\n data-slot=\"autocomplete-separator\"\n {...props}\n />\n);\n","import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\nimport { useContext } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport type { VariantProps } from \"tailwind-variants\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport type { InputSize } from \"../input/input\";\nimport { AutocompleteOverlayContext } from \"./autocomplete-overlay-context\";\n\nexport type AutocompleteStatusProps = ComponentProps<\n typeof BaseAutocomplete.Status\n> &\n VariantProps<typeof autocompleteStatusVariants>;\n\nconst autocompleteStatusVariants = tv({\n base: \"text-muted-foreground flex items-center\",\n defaultVariants: {\n size: \"md\",\n },\n variants: {\n size: {\n lg: \"gap-2 px-2.5 py-2 text-sm\",\n md: \"gap-2 px-2 py-1.5 text-sm\",\n sm: \"gap-1.5 px-2 py-1 text-sm\",\n xl: \"gap-2.5 px-3 py-2.5 text-base\",\n xs: \"gap-1 px-1.5 py-1 text-xs\",\n },\n },\n});\n\nexport const AutocompleteStatus = ({\n className,\n size,\n ...props\n}: AutocompleteStatusProps) => {\n const { size: overlaySize } = useContext(AutocompleteOverlayContext);\n const resolvedSize: InputSize = size ?? overlaySize ?? \"md\";\n\n return (\n <BaseAutocomplete.Status\n className={mergeBaseUIClassName<BaseAutocomplete.Status.State>(\n autocompleteStatusVariants({ size: resolvedSize }),\n className\n )}\n data-size={resolvedSize}\n data-slot=\"autocomplete-status\"\n {...props}\n />\n );\n};\n","import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\n\nexport type AutocompleteTriggerProps = ComponentProps<\n typeof BaseAutocomplete.Trigger\n>;\n\nexport const AutocompleteTrigger = ({\n className,\n ...props\n}: AutocompleteTriggerProps) => (\n <BaseAutocomplete.Trigger\n className={mergeBaseUIClassName<BaseAutocomplete.Trigger.State>(\n \"cursor-clickable\",\n className\n )}\n data-slot=\"autocomplete-trigger\"\n {...props}\n />\n);\n","import { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\n\nexport type AutocompleteValueProps = ComponentProps<\n typeof BaseAutocomplete.Value\n>;\n\nexport const AutocompleteValue = (props: AutocompleteValueProps) => (\n <BaseAutocomplete.Value data-slot=\"autocomplete-value\" {...props} />\n);\n","\"use client\";\n\nimport { Autocomplete as BaseAutocomplete } from \"@base-ui/react/autocomplete\";\nimport type { ComponentProps } from \"react\";\nimport { useMemo } from \"react\";\n\nimport type { InputSize } from \"../input/input\";\nimport { useComponentSize } from \"../shared/size/size-provider\";\nimport { AutocompleteArrow } from \"./autocomplete-arrow\";\nimport { AutocompleteBackdrop } from \"./autocomplete-backdrop\";\nimport { AutocompleteClear } from \"./autocomplete-clear\";\nimport { AutocompleteCollection } from \"./autocomplete-collection\";\nimport { AutocompleteContent } from \"./autocomplete-content\";\nimport { AutocompleteContext } from \"./autocomplete-context\";\nimport { AutocompleteEmpty } from \"./autocomplete-empty\";\nimport { AutocompleteGroup } from \"./autocomplete-group\";\nimport { AutocompleteGroupLabel } from \"./autocomplete-group-label\";\nimport { AutocompleteIcon } from \"./autocomplete-icon\";\nimport { AutocompleteInput } from \"./autocomplete-input\";\nimport { AutocompleteItem } from \"./autocomplete-item\";\nimport { AutocompleteList } from \"./autocomplete-list\";\nimport { AutocompletePopup } from \"./autocomplete-popup\";\nimport { AutocompletePortal } from \"./autocomplete-portal\";\nimport { AutocompletePositioner } from \"./autocomplete-positioner\";\nimport { AutocompleteRow } from \"./autocomplete-row\";\nimport { AutocompleteSeparator } from \"./autocomplete-separator\";\nimport { AutocompleteStatus } from \"./autocomplete-status\";\nimport { AutocompleteTrigger } from \"./autocomplete-trigger\";\nimport { AutocompleteValue } from \"./autocomplete-value\";\n\nexport type AutocompleteProps = ComponentProps<typeof BaseAutocomplete.Root> & {\n size?: InputSize;\n};\n\nconst Autocomplete = ({ size: providedSize, ...props }: AutocompleteProps) => {\n const size = useComponentSize(providedSize);\n const contextValue = useMemo(() => ({ size }), [size]);\n\n return (\n <AutocompleteContext.Provider value={contextValue}>\n <BaseAutocomplete.Root\n data-size={size}\n data-slot=\"autocomplete\"\n {...props}\n />\n </AutocompleteContext.Provider>\n );\n};\n\nAutocomplete.Arrow = AutocompleteArrow;\nAutocomplete.Backdrop = AutocompleteBackdrop;\nAutocomplete.Clear = AutocompleteClear;\nAutocomplete.Collection = AutocompleteCollection;\nAutocomplete.Content = AutocompleteContent;\nAutocomplete.Empty = AutocompleteEmpty;\nAutocomplete.Group = AutocompleteGroup;\nAutocomplete.GroupLabel = AutocompleteGroupLabel;\nAutocomplete.Icon = AutocompleteIcon;\nAutocomplete.Input = AutocompleteInput;\nAutocomplete.Item = AutocompleteItem;\nAutocomplete.List = AutocompleteList;\nAutocomplete.Popup = AutocompletePopup;\nAutocomplete.Portal = AutocompletePortal;\nAutocomplete.Positioner = AutocompletePositioner;\nAutocomplete.Row = AutocompleteRow;\nAutocomplete.Separator = AutocompleteSeparator;\nAutocomplete.Status = AutocompleteStatus;\nAutocomplete.Trigger = AutocompleteTrigger;\nAutocomplete.Value = AutocompleteValue;\n\nexport const { useFilter, useFilteredItems } = BaseAutocomplete;\n\nexport type { AutocompleteArrowProps } from \"./autocomplete-arrow\";\nexport type { AutocompleteBackdropProps } from \"./autocomplete-backdrop\";\nexport type { AutocompleteClearProps } from \"./autocomplete-clear\";\nexport type { AutocompleteCollectionProps } from \"./autocomplete-collection\";\nexport type { AutocompleteContentProps } from \"./autocomplete-content\";\nexport type { AutocompleteEmptyProps } from \"./autocomplete-empty\";\nexport type { AutocompleteGroupProps } from \"./autocomplete-group\";\nexport type { AutocompleteGroupLabelProps } from \"./autocomplete-group-label\";\nexport type { AutocompleteIconProps } from \"./autocomplete-icon\";\nexport type { AutocompleteInputProps } from \"./autocomplete-input\";\nexport type { AutocompleteItemProps } from \"./autocomplete-item\";\nexport type { AutocompleteListProps } from \"./autocomplete-list\";\nexport type { AutocompletePortalProps } from \"./autocomplete-portal\";\nexport type { AutocompletePositionerProps } from \"./autocomplete-positioner\";\nexport type { AutocompletePopupProps } from \"./autocomplete-popup\";\nexport type { AutocompleteRowProps } from \"./autocomplete-row\";\nexport type { AutocompleteSeparatorProps } from \"./autocomplete-separator\";\nexport type { AutocompleteStatusProps } from \"./autocomplete-status\";\nexport type { AutocompleteTriggerProps } from \"./autocomplete-trigger\";\nexport type { AutocompleteValueProps } from \"./autocomplete-value\";\n\nexport {\n Autocomplete,\n AutocompleteArrow,\n AutocompleteBackdrop,\n AutocompleteClear,\n AutocompleteCollection,\n AutocompleteContent,\n AutocompleteEmpty,\n AutocompleteGroup,\n AutocompleteGroupLabel,\n AutocompleteIcon,\n AutocompleteInput,\n AutocompleteItem,\n AutocompleteList,\n AutocompletePopup,\n AutocompletePortal,\n AutocompletePositioner,\n AutocompleteRow,\n AutocompleteSeparator,\n AutocompleteStatus,\n AutocompleteTrigger,\n AutocompleteValue,\n};\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import { a as AvatarGroupCount, c as AvatarGroupProps, d as AvatarBadge, f as AvatarBadgeProps, i as AvatarImageProps, l as AvatarFallback, n as AvatarProps, o as AvatarGroupCountProps, r as AvatarImage, s as AvatarGroup, t as Avatar, u as AvatarFallbackProps } from "../avatar-DpiupAAM.js";
1
+ import { a as AvatarGroupCount, c as AvatarGroupProps, d as AvatarBadge, f as AvatarBadgeProps, i as AvatarImageProps, l as AvatarFallback, n as AvatarProps, o as AvatarGroupCountProps, r as AvatarImage, s as AvatarGroup, t as Avatar, u as AvatarFallbackProps } from "../avatar-4S7I72CH.js";
2
2
  export { Avatar, AvatarBadge, AvatarBadgeProps, AvatarFallback, AvatarFallbackProps, AvatarGroup, AvatarGroupCount, AvatarGroupCountProps, AvatarGroupProps, AvatarImage, AvatarImageProps, AvatarProps };
package/dist/ui/avatar.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use client";
2
2
 
3
- import { a as AvatarFallback, i as AvatarGroup, n as AvatarImage, o as AvatarBadge, r as AvatarGroupCount, t as Avatar } from "../avatar-CXhwmJgG.js";
3
+ import { a as AvatarFallback, i as AvatarGroup, n as AvatarImage, o as AvatarBadge, r as AvatarGroupCount, t as Avatar } from "../avatar-C3vF6E7s.js";
4
4
 
5
5
  export { Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage };
package/dist/ui/badge.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use client";
2
2
 
3
- import { n as badgeVariants, t as Badge } from "../badge-BKRm6jL7.js";
3
+ import { n as badgeVariants, t as Badge } from "../badge-DB40swlt.js";
4
4
 
5
5
  export { Badge, badgeVariants };
@@ -1,4 +1,4 @@
1
- import { t as UISize } from "../size-system-wzOLSuax.js";
1
+ import { t as UISize } from "../size-system-BAI1CnwU.js";
2
2
  import * as react from "react";
3
3
  import { ComponentProps } from "react";
4
4
  import * as react_jsx_runtime0 from "react/jsx-runtime";
@@ -1,5 +1,5 @@
1
- import { t as UISize } from "../size-system-wzOLSuax.js";
2
- import { t as Separator } from "../separator-C8Qw2ADs.js";
1
+ import { t as UISize } from "../size-system-BAI1CnwU.js";
2
+ import { t as Separator } from "../separator-CgOz2m5i.js";
3
3
  import * as react from "react";
4
4
  import { ComponentProps } from "react";
5
5
  import * as react_jsx_runtime0 from "react/jsx-runtime";
@@ -1,2 +1,2 @@
1
- import { n as ButtonProps, r as buttonVariants, t as Button } from "../button-nAbTNrxA.js";
1
+ import { n as ButtonProps, r as buttonVariants, t as Button } from "../button-CPPkhcmB.js";
2
2
  export { Button, ButtonProps, buttonVariants };
package/dist/ui/button.js CHANGED
@@ -1,10 +1,11 @@
1
1
  "use client";
2
2
 
3
- import { o as useGlobalUISize, r as filterUndefinedProps, s as useKuzenboComponentDefaults } from "../size-provider-18EvJgDT.js";
3
+ import { a as useComponentSize, r as filterUndefinedProps, s as useKuzenboComponentDefaults } from "../size-provider-18EvJgDT.js";
4
4
  import { a as resolveFieldHeightClassBySize, i as resolveDefaultNestedIconClassBySize, o as resolveFieldTextClassBySize } from "../size-system-BTsMqZRQ.js";
5
5
  import { t as mergeBaseUIClassName } from "../merge-base-ui-class-name-HKsgjcXj.js";
6
6
  import { t as ButtonGroupSizeContext } from "../button-group-size-context-DW7Gn-3k.js";
7
7
  import { Spinner } from "./spinner.js";
8
+ import { t as buttonSharedVariants } from "../button-shared-variants-J4RVI3K7.js";
8
9
  import { useContext } from "react";
9
10
  import { jsx, jsxs } from "react/jsx-runtime";
10
11
  import { cn, tv } from "tailwind-variants";
@@ -12,54 +13,32 @@ import { Button as Button$1 } from "@base-ui/react/button";
12
13
 
13
14
  //#region src/ui/button/button.tsx
14
15
  const buttonVariants = tv({
15
- base: "group/button cursor-clickable focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-danger aria-invalid:ring-danger/20 dark:aria-invalid:border-danger/50 dark:aria-invalid:ring-danger/40 inline-flex shrink-0 items-center justify-center rounded-md border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-[transform,color,background-color,border-color,box-shadow] duration-100 ease-out outline-none select-none focus-visible:ring-[3px] active:scale-[0.98] disabled:pointer-events-none disabled:opacity-50 aria-invalid:ring-[3px] motion-reduce:active:scale-100 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
16
- defaultVariants: {
17
- size: "md",
18
- variant: "default"
19
- },
20
- variants: {
21
- size: {
22
- icon: "size-9",
23
- "icon-lg": "size-10",
24
- "icon-sm": "size-8 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg",
25
- "icon-xl": ["size-11", resolveDefaultNestedIconClassBySize("xl")],
26
- "icon-xs": ["size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg", resolveDefaultNestedIconClassBySize("xs")],
27
- lg: [resolveFieldHeightClassBySize("lg"), "gap-1.5 px-3 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3"],
28
- md: [resolveFieldHeightClassBySize("md"), "gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2"],
29
- sm: [
30
- resolveFieldHeightClassBySize("sm"),
31
- resolveDefaultNestedIconClassBySize("sm"),
32
- "gap-1 rounded-[min(var(--radius-md),10px)] px-2.5 in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5"
33
- ],
34
- xl: [
35
- resolveFieldHeightClassBySize("xl"),
36
- resolveFieldTextClassBySize("xl"),
37
- resolveDefaultNestedIconClassBySize("xl"),
38
- "gap-2 px-4 has-data-[icon=inline-end]:pr-3.5 has-data-[icon=inline-start]:pl-3.5"
39
- ],
40
- xs: [
41
- resolveFieldHeightClassBySize("xs"),
42
- resolveFieldTextClassBySize("xs"),
43
- resolveDefaultNestedIconClassBySize("xs"),
44
- "gap-1 rounded-[min(var(--radius-md),8px)] px-2 in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5"
45
- ]
46
- },
47
- variant: {
48
- danger: "bg-danger text-danger-foreground hover:bg-danger/90 focus-visible:border-danger-foreground/40 focus-visible:ring-danger-foreground/30 dark:bg-danger dark:text-danger-foreground dark:hover:bg-danger/80 dark:focus-visible:ring-danger-foreground/40",
49
- default: "bg-primary text-primary-foreground hover:bg-primary/90 [a]:hover:bg-primary/80",
50
- ghost: "hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",
51
- link: "text-primary underline-offset-4 hover:underline",
52
- outline: "border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-card dark:hover:bg-muted",
53
- secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground"
54
- }
55
- }
16
+ extend: buttonSharedVariants,
17
+ base: "group/button",
18
+ defaultVariants: { size: "md" },
19
+ variants: { size: {
20
+ lg: [resolveFieldHeightClassBySize("lg"), "gap-1.5 px-3 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3"],
21
+ md: [resolveFieldHeightClassBySize("md"), "gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2"],
22
+ sm: [
23
+ resolveFieldHeightClassBySize("sm"),
24
+ resolveDefaultNestedIconClassBySize("sm"),
25
+ "gap-1 rounded-[min(var(--radius-md),10px)] px-2.5 in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5"
26
+ ],
27
+ xl: [
28
+ resolveFieldHeightClassBySize("xl"),
29
+ resolveFieldTextClassBySize("xl"),
30
+ resolveDefaultNestedIconClassBySize("xl"),
31
+ "gap-2 px-4 has-data-[icon=inline-end]:pr-3.5 has-data-[icon=inline-start]:pl-3.5"
32
+ ],
33
+ xs: [
34
+ resolveFieldHeightClassBySize("xs"),
35
+ resolveFieldTextClassBySize("xs"),
36
+ resolveDefaultNestedIconClassBySize("xs"),
37
+ "gap-1 rounded-[min(var(--radius-md),8px)] px-2 in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5"
38
+ ]
39
+ } }
56
40
  });
57
41
  const BUTTON_SPINNER_SIZE_BY_BUTTON_SIZE = {
58
- icon: "md",
59
- "icon-lg": "lg",
60
- "icon-sm": "sm",
61
- "icon-xl": "xl",
62
- "icon-xs": "xs",
63
42
  lg: "lg",
64
43
  md: "md",
65
44
  sm: "sm",
@@ -84,8 +63,7 @@ const Button = (incomingProps) => {
84
63
  ...filterUndefinedProps(incomingProps)
85
64
  };
86
65
  const { size: buttonGroupSize } = useContext(ButtonGroupSizeContext);
87
- const globalSize = useGlobalUISize();
88
- const resolvedSize = isButtonSize(size) ? size : buttonGroupSize ?? (isButtonSize(componentDefaultSize) ? componentDefaultSize : globalSize ?? "md");
66
+ const resolvedSize = useComponentSize(isButtonSize(size) ? size : void 0, buttonGroupSize, isButtonSize(componentDefaultSize) ? componentDefaultSize : void 0);
89
67
  return /* @__PURE__ */ jsx(Button$1, {
90
68
  className: mergeBaseUIClassName(cn(buttonVariants({
91
69
  size: resolvedSize,
@@ -1 +1 @@
1
- {"version":3,"file":"button.js","names":["ButtonPrimitive"],"sources":["../../src/ui/button/button.tsx"],"sourcesContent":["\"use client\";\n\nimport { Button as ButtonPrimitive } from \"@base-ui/react/button\";\nimport type { ComponentProps, ReactNode } from \"react\";\nimport { useContext } from \"react\";\nimport { cn, tv } from \"tailwind-variants\";\nimport type { VariantProps } from \"tailwind-variants\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { ButtonGroupSizeContext } from \"../button-group/button-group-size-context\";\nimport {\n filterUndefinedProps,\n useGlobalUISize,\n useKuzenboComponentDefaults,\n} from \"../shared/size/size-provider\";\nimport type { UISize } from \"../shared/size/size-system\";\nimport {\n resolveDefaultNestedIconClassBySize,\n resolveFieldHeightClassBySize,\n resolveFieldTextClassBySize,\n} from \"../shared/size/size-system\";\nimport { Spinner } from \"../spinner/spinner\";\n\nconst buttonVariants = tv({\n base: \"group/button cursor-clickable focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-danger aria-invalid:ring-danger/20 dark:aria-invalid:border-danger/50 dark:aria-invalid:ring-danger/40 inline-flex shrink-0 items-center justify-center rounded-md border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-[transform,color,background-color,border-color,box-shadow] duration-100 ease-out outline-none select-none focus-visible:ring-[3px] active:scale-[0.98] disabled:pointer-events-none disabled:opacity-50 aria-invalid:ring-[3px] motion-reduce:active:scale-100 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n defaultVariants: {\n size: \"md\",\n variant: \"default\",\n },\n variants: {\n size: {\n icon: \"size-9\",\n \"icon-lg\": \"size-10\",\n \"icon-sm\":\n \"size-8 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg\",\n \"icon-xl\": [\"size-11\", resolveDefaultNestedIconClassBySize(\"xl\")],\n \"icon-xs\": [\n \"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg\",\n resolveDefaultNestedIconClassBySize(\"xs\"),\n ],\n lg: [\n resolveFieldHeightClassBySize(\"lg\"),\n \"gap-1.5 px-3 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3\",\n ],\n md: [\n resolveFieldHeightClassBySize(\"md\"),\n \"gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n ],\n sm: [\n resolveFieldHeightClassBySize(\"sm\"),\n resolveDefaultNestedIconClassBySize(\"sm\"),\n \"gap-1 rounded-[min(var(--radius-md),10px)] px-2.5 in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5\",\n ],\n xl: [\n resolveFieldHeightClassBySize(\"xl\"),\n resolveFieldTextClassBySize(\"xl\"),\n resolveDefaultNestedIconClassBySize(\"xl\"),\n \"gap-2 px-4 has-data-[icon=inline-end]:pr-3.5 has-data-[icon=inline-start]:pl-3.5\",\n ],\n xs: [\n resolveFieldHeightClassBySize(\"xs\"),\n resolveFieldTextClassBySize(\"xs\"),\n resolveDefaultNestedIconClassBySize(\"xs\"),\n \"gap-1 rounded-[min(var(--radius-md),8px)] px-2 in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5\",\n ],\n },\n variant: {\n danger:\n \"bg-danger text-danger-foreground hover:bg-danger/90 focus-visible:border-danger-foreground/40 focus-visible:ring-danger-foreground/30 dark:bg-danger dark:text-danger-foreground dark:hover:bg-danger/80 dark:focus-visible:ring-danger-foreground/40\",\n default:\n \"bg-primary text-primary-foreground hover:bg-primary/90 [a]:hover:bg-primary/80\",\n ghost:\n \"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50\",\n link: \"text-primary underline-offset-4 hover:underline\",\n outline:\n \"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-card dark:hover:bg-muted\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground\",\n },\n },\n});\n\nexport type ButtonProps = ComponentProps<typeof ButtonPrimitive> &\n VariantProps<typeof buttonVariants> & {\n isLoading?: boolean;\n };\n\ntype ButtonSize = NonNullable<VariantProps<typeof buttonVariants>[\"size\"]>;\n\nconst BUTTON_SPINNER_SIZE_BY_BUTTON_SIZE: Record<ButtonSize, UISize> = {\n icon: \"md\",\n \"icon-lg\": \"lg\",\n \"icon-sm\": \"sm\",\n \"icon-xl\": \"xl\",\n \"icon-xs\": \"xs\",\n lg: \"lg\",\n md: \"md\",\n sm: \"sm\",\n xl: \"xl\",\n xs: \"xs\",\n};\n\nconst isButtonSize = (value: unknown): value is ButtonSize =>\n typeof value === \"string\" && value in BUTTON_SPINNER_SIZE_BY_BUTTON_SIZE;\n\nconst ButtonContent = ({\n children,\n isLoading,\n size,\n}: {\n children: ReactNode;\n isLoading?: boolean;\n size: ButtonSize;\n}) => (\n <span className=\"relative inline-flex items-center justify-center\">\n <span\n className={cn(\n \"inline-flex items-center justify-center gap-2 transition-all duration-200\",\n isLoading\n ? \"pointer-events-none -translate-y-full opacity-0\"\n : \"translate-y-0 opacity-100\"\n )}\n >\n {children}\n </span>\n <span\n className={cn(\n \"absolute inset-0 inline-flex items-center justify-center transition-all duration-200\",\n isLoading\n ? \"translate-y-0 opacity-100\"\n : \"pointer-events-none -translate-y-full opacity-0\"\n )}\n >\n <Spinner size={BUTTON_SPINNER_SIZE_BY_BUTTON_SIZE[size]} />\n </span>\n </span>\n);\n\nconst Button = (incomingProps: ButtonProps) => {\n const componentDefaults = useKuzenboComponentDefaults<ButtonProps>(\"Button\");\n const { size: componentDefaultSize, ...componentDefaultsWithoutSize } =\n componentDefaults;\n const {\n className,\n variant = \"default\",\n size,\n isLoading,\n children,\n disabled,\n ...props\n } = {\n ...filterUndefinedProps(componentDefaultsWithoutSize),\n ...filterUndefinedProps(incomingProps),\n } as ButtonProps;\n\n const { size: buttonGroupSize } = useContext(ButtonGroupSizeContext);\n const globalSize = useGlobalUISize();\n\n const resolvedSize: ButtonSize = isButtonSize(size)\n ? size\n : (buttonGroupSize ??\n (isButtonSize(componentDefaultSize)\n ? componentDefaultSize\n : (globalSize ?? \"md\")));\n\n return (\n <ButtonPrimitive\n className={mergeBaseUIClassName<ButtonPrimitive.State>(\n cn(buttonVariants({ size: resolvedSize, variant })),\n className\n )}\n focusableWhenDisabled={Boolean(isLoading)}\n data-loading={isLoading}\n data-size={resolvedSize}\n data-slot=\"button\"\n disabled={disabled || isLoading}\n {...props}\n >\n <ButtonContent isLoading={isLoading} size={resolvedSize}>\n {children}\n </ButtonContent>\n </ButtonPrimitive>\n );\n};\n\nexport { Button, buttonVariants };\n"],"mappings":";;;;;;;;;;;;;AAuBA,MAAM,iBAAiB,GAAG;CACxB,MAAM;CACN,iBAAiB;EACf,MAAM;EACN,SAAS;EACV;CACD,UAAU;EACR,MAAM;GACJ,MAAM;GACN,WAAW;GACX,WACE;GACF,WAAW,CAAC,WAAW,oCAAoC,KAAK,CAAC;GACjE,WAAW,CACT,sFACA,oCAAoC,KAAK,CAC1C;GACD,IAAI,CACF,8BAA8B,KAAK,EACnC,iFACD;GACD,IAAI,CACF,8BAA8B,KAAK,EACnC,mFACD;GACD,IAAI;IACF,8BAA8B,KAAK;IACnC,oCAAoC,KAAK;IACzC;IACD;GACD,IAAI;IACF,8BAA8B,KAAK;IACnC,4BAA4B,KAAK;IACjC,oCAAoC,KAAK;IACzC;IACD;GACD,IAAI;IACF,8BAA8B,KAAK;IACnC,4BAA4B,KAAK;IACjC,oCAAoC,KAAK;IACzC;IACD;GACF;EACD,SAAS;GACP,QACE;GACF,SACE;GACF,OACE;GACF,MAAM;GACN,SACE;GACF,WACE;GACH;EACF;CACF,CAAC;AASF,MAAM,qCAAiE;CACrE,MAAM;CACN,WAAW;CACX,WAAW;CACX,WAAW;CACX,WAAW;CACX,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACL;AAED,MAAM,gBAAgB,UACpB,OAAO,UAAU,YAAY,SAAS;AAExC,MAAM,iBAAiB,EACrB,UACA,WACA,WAMA,qBAAC,QAAD;CAAM,WAAU;WAAhB,CACE,oBAAC,QAAD;EACE,WAAW,GACT,6EACA,YACI,oDACA,4BACL;EAEA;EACI,GACP,oBAAC,QAAD;EACE,WAAW,GACT,wFACA,YACI,8BACA,kDACL;YAED,oBAAC,SAAD,EAAS,MAAM,mCAAmC,OAAS;EACtD,EACF;;AAGT,MAAM,UAAU,kBAA+B;CAE7C,MAAM,EAAE,MAAM,sBAAsB,GAAG,iCADb,4BAAyC,SAAS;CAG5E,MAAM,EACJ,WACA,UAAU,WACV,MACA,WACA,UACA,UACA,GAAG,UACD;EACF,GAAG,qBAAqB,6BAA6B;EACrD,GAAG,qBAAqB,cAAc;EACvC;CAED,MAAM,EAAE,MAAM,oBAAoB,WAAW,uBAAuB;CACpE,MAAM,aAAa,iBAAiB;CAEpC,MAAM,eAA2B,aAAa,KAAK,GAC/C,OACC,oBACA,aAAa,qBAAqB,GAC/B,uBACC,cAAc;AAEvB,QACE,oBAACA,UAAD;EACE,WAAW,qBACT,GAAG,eAAe;GAAE,MAAM;GAAc;GAAS,CAAC,CAAC,EACnD,UACD;EACD,uBAAuB,QAAQ,UAAU;EACzC,gBAAc;EACd,aAAW;EACX,aAAU;EACV,UAAU,YAAY;EACtB,GAAI;YAEJ,oBAAC,eAAD;GAA0B;GAAW,MAAM;GACxC;GACa;EACA"}
1
+ {"version":3,"file":"button.js","names":["ButtonPrimitive"],"sources":["../../src/ui/button/button.tsx"],"sourcesContent":["\"use client\";\n\nimport { Button as ButtonPrimitive } from \"@base-ui/react/button\";\nimport type { ComponentProps, ReactNode } from \"react\";\nimport { useContext } from \"react\";\nimport { cn, tv } from \"tailwind-variants\";\nimport type { VariantProps } from \"tailwind-variants\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { ButtonGroupSizeContext } from \"../button-group/button-group-size-context\";\nimport {\n useComponentSize,\n filterUndefinedProps,\n useKuzenboComponentDefaults,\n} from \"../shared/size/size-provider\";\nimport type { UISize } from \"../shared/size/size-system\";\nimport {\n resolveDefaultNestedIconClassBySize,\n resolveFieldHeightClassBySize,\n resolveFieldTextClassBySize,\n} from \"../shared/size/size-system\";\nimport { Spinner } from \"../spinner/spinner\";\nimport { buttonSharedVariants } from \"./button-shared-variants\";\n\nconst buttonVariants = tv({\n extend: buttonSharedVariants,\n base: \"group/button\",\n defaultVariants: {\n size: \"md\",\n },\n variants: {\n size: {\n lg: [\n resolveFieldHeightClassBySize(\"lg\"),\n \"gap-1.5 px-3 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3\",\n ],\n md: [\n resolveFieldHeightClassBySize(\"md\"),\n \"gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n ],\n sm: [\n resolveFieldHeightClassBySize(\"sm\"),\n resolveDefaultNestedIconClassBySize(\"sm\"),\n \"gap-1 rounded-[min(var(--radius-md),10px)] px-2.5 in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5\",\n ],\n xl: [\n resolveFieldHeightClassBySize(\"xl\"),\n resolveFieldTextClassBySize(\"xl\"),\n resolveDefaultNestedIconClassBySize(\"xl\"),\n \"gap-2 px-4 has-data-[icon=inline-end]:pr-3.5 has-data-[icon=inline-start]:pl-3.5\",\n ],\n xs: [\n resolveFieldHeightClassBySize(\"xs\"),\n resolveFieldTextClassBySize(\"xs\"),\n resolveDefaultNestedIconClassBySize(\"xs\"),\n \"gap-1 rounded-[min(var(--radius-md),8px)] px-2 in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5\",\n ],\n },\n },\n});\n\nexport type ButtonProps = ComponentProps<typeof ButtonPrimitive> &\n VariantProps<typeof buttonVariants> & {\n isLoading?: boolean;\n };\n\ntype ButtonSize = NonNullable<VariantProps<typeof buttonVariants>[\"size\"]>;\n\nconst BUTTON_SPINNER_SIZE_BY_BUTTON_SIZE: Record<ButtonSize, UISize> = {\n lg: \"lg\",\n md: \"md\",\n sm: \"sm\",\n xl: \"xl\",\n xs: \"xs\",\n};\n\nconst isButtonSize = (value: unknown): value is ButtonSize =>\n typeof value === \"string\" && value in BUTTON_SPINNER_SIZE_BY_BUTTON_SIZE;\n\nconst ButtonContent = ({\n children,\n isLoading,\n size,\n}: {\n children: ReactNode;\n isLoading?: boolean;\n size: ButtonSize;\n}) => (\n <span className=\"relative inline-flex items-center justify-center\">\n <span\n className={cn(\n \"inline-flex items-center justify-center gap-2 transition-all duration-200\",\n isLoading\n ? \"pointer-events-none -translate-y-full opacity-0\"\n : \"translate-y-0 opacity-100\"\n )}\n >\n {children}\n </span>\n <span\n className={cn(\n \"absolute inset-0 inline-flex items-center justify-center transition-all duration-200\",\n isLoading\n ? \"translate-y-0 opacity-100\"\n : \"pointer-events-none -translate-y-full opacity-0\"\n )}\n >\n <Spinner size={BUTTON_SPINNER_SIZE_BY_BUTTON_SIZE[size]} />\n </span>\n </span>\n);\n\nconst Button = (incomingProps: ButtonProps) => {\n const componentDefaults = useKuzenboComponentDefaults<ButtonProps>(\"Button\");\n const { size: componentDefaultSize, ...componentDefaultsWithoutSize } =\n componentDefaults;\n const {\n className,\n variant = \"default\",\n size,\n isLoading,\n children,\n disabled,\n ...props\n } = {\n ...filterUndefinedProps(componentDefaultsWithoutSize),\n ...filterUndefinedProps(incomingProps),\n };\n\n const { size: buttonGroupSize } = useContext(ButtonGroupSizeContext);\n const resolvedSize = useComponentSize(\n isButtonSize(size) ? size : undefined,\n buttonGroupSize,\n isButtonSize(componentDefaultSize) ? componentDefaultSize : undefined\n );\n\n return (\n <ButtonPrimitive\n className={mergeBaseUIClassName<ButtonPrimitive.State>(\n cn(buttonVariants({ size: resolvedSize, variant })),\n className\n )}\n focusableWhenDisabled={Boolean(isLoading)}\n data-loading={isLoading}\n data-size={resolvedSize}\n data-slot=\"button\"\n disabled={disabled || isLoading}\n {...props}\n >\n <ButtonContent isLoading={isLoading} size={resolvedSize}>\n {children}\n </ButtonContent>\n </ButtonPrimitive>\n );\n};\n\nexport { Button, buttonVariants };\n"],"mappings":";;;;;;;;;;;;;;AAwBA,MAAM,iBAAiB,GAAG;CACxB,QAAQ;CACR,MAAM;CACN,iBAAiB,EACf,MAAM,MACP;CACD,UAAU,EACR,MAAM;EACJ,IAAI,CACF,8BAA8B,KAAK,EACnC,iFACD;EACD,IAAI,CACF,8BAA8B,KAAK,EACnC,mFACD;EACD,IAAI;GACF,8BAA8B,KAAK;GACnC,oCAAoC,KAAK;GACzC;GACD;EACD,IAAI;GACF,8BAA8B,KAAK;GACnC,4BAA4B,KAAK;GACjC,oCAAoC,KAAK;GACzC;GACD;EACD,IAAI;GACF,8BAA8B,KAAK;GACnC,4BAA4B,KAAK;GACjC,oCAAoC,KAAK;GACzC;GACD;EACF,EACF;CACF,CAAC;AASF,MAAM,qCAAiE;CACrE,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACL;AAED,MAAM,gBAAgB,UACpB,OAAO,UAAU,YAAY,SAAS;AAExC,MAAM,iBAAiB,EACrB,UACA,WACA,WAMA,qBAAC,QAAD;CAAM,WAAU;WAAhB,CACE,oBAAC,QAAD;EACE,WAAW,GACT,6EACA,YACI,oDACA,4BACL;EAEA;EACI,GACP,oBAAC,QAAD;EACE,WAAW,GACT,wFACA,YACI,8BACA,kDACL;YAED,oBAAC,SAAD,EAAS,MAAM,mCAAmC,OAAS;EACtD,EACF;;AAGT,MAAM,UAAU,kBAA+B;CAE7C,MAAM,EAAE,MAAM,sBAAsB,GAAG,iCADb,4BAAyC,SAAS;CAG5E,MAAM,EACJ,WACA,UAAU,WACV,MACA,WACA,UACA,UACA,GAAG,UACD;EACF,GAAG,qBAAqB,6BAA6B;EACrD,GAAG,qBAAqB,cAAc;EACvC;CAED,MAAM,EAAE,MAAM,oBAAoB,WAAW,uBAAuB;CACpE,MAAM,eAAe,iBACnB,aAAa,KAAK,GAAG,OAAO,QAC5B,iBACA,aAAa,qBAAqB,GAAG,uBAAuB,OAC7D;AAED,QACE,oBAACA,UAAD;EACE,WAAW,qBACT,GAAG,eAAe;GAAE,MAAM;GAAc;GAAS,CAAC,CAAC,EACnD,UACD;EACD,uBAAuB,QAAQ,UAAU;EACzC,gBAAc;EACd,aAAW;EACX,aAAU;EACV,UAAU,YAAY;EACtB,GAAI;YAEJ,oBAAC,eAAD;GAA0B;GAAW,MAAM;GACxC;GACa;EACA"}
package/dist/ui/card.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { t as UISize } from "../size-system-wzOLSuax.js";
1
+ import { t as UISize } from "../size-system-BAI1CnwU.js";
2
2
  import { ComponentProps } from "react";
3
3
  import * as react_jsx_runtime0 from "react/jsx-runtime";
4
4
 
@@ -1,4 +1,4 @@
1
- import { t as Button } from "../button-nAbTNrxA.js";
1
+ import { t as ActionIcon } from "../action-icon-UjYZjXrB.js";
2
2
  import { ComponentProps } from "react";
3
3
  import * as react_jsx_runtime0 from "react/jsx-runtime";
4
4
  import useEmblaCarousel, { UseEmblaCarouselType } from "embla-carousel-react";
@@ -18,7 +18,7 @@ declare const CarouselItem: ({
18
18
  }: CarouselItemProps) => react_jsx_runtime0.JSX.Element;
19
19
  //#endregion
20
20
  //#region src/ui/carousel/carousel-next.d.ts
21
- type CarouselNextProps = ComponentProps<typeof Button>;
21
+ type CarouselNextProps = ComponentProps<typeof ActionIcon>;
22
22
  declare const CarouselNext: ({
23
23
  className,
24
24
  variant,
@@ -27,7 +27,7 @@ declare const CarouselNext: ({
27
27
  }: CarouselNextProps) => react_jsx_runtime0.JSX.Element;
28
28
  //#endregion
29
29
  //#region src/ui/carousel/carousel-previous.d.ts
30
- type CarouselPreviousProps = ComponentProps<typeof Button>;
30
+ type CarouselPreviousProps = ComponentProps<typeof ActionIcon>;
31
31
  declare const CarouselPrevious: ({
32
32
  className,
33
33
  variant,
@@ -1 +1 @@
1
- {"version":3,"file":"carousel.d.ts","names":[],"sources":["../../src/ui/carousel/carousel-content.tsx","../../src/ui/carousel/carousel-item.tsx","../../src/ui/carousel/carousel-next.tsx","../../src/ui/carousel/carousel-previous.tsx","../../src/ui/carousel/use-carousel.tsx","../../src/ui/carousel/carousel.tsx"],"mappings":";;;;;;KAIY,oBAAA,GAAuB,cAAA;AAAA,cAE7B,eAAA;EAAmB,SAAA;EAAA,GAAA;AAAA,GAAyB,oBAAA,KAAoB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCF1D,iBAAA,GAAoB,cAAA;AAAA,cAE1B,YAAA;EAAgB,SAAA;EAAA,GAAA;AAAA,GAAyB,iBAAA,KAAiB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCCpD,iBAAA,GAAoB,cAAA,QAAsB,MAAA;AAAA,cAEhD,YAAA;EAAgB,SAAA;EAAA,OAAA;EAAA,IAAA;EAAA,GAAA;AAAA,GAKnB,iBAAA,KAAiB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCPR,qBAAA,GAAwB,cAAA,QAAsB,MAAA;AAAA,cAEpD,gBAAA;EAAoB,SAAA;EAAA,OAAA;EAAA,IAAA;EAAA,GAAA;AAAA,GAKvB,qBAAA,KAAqB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCRnB,WAAA,GAAc,oBAAA;AAAA,KACd,qBAAA,GAAwB,UAAA,QAAkB,gBAAA;AAAA,KAC1C,eAAA,GAAkB,qBAAA;AAAA,KAClB,cAAA,GAAiB,qBAAA;AAAA,UAEZ,aAAA;EACR,IAAA,GAAO,eAAA;EACP,OAAA,GAAU,cAAA;EACV,WAAA;EACA,MAAA,IAAU,GAAA,EAAK,WAAA;AAAA;AAAA,KAGZ,oBAAA;EACH,WAAA,EAAa,UAAA,QAAkB,gBAAA;EAC/B,GAAA,EAAK,UAAA,QAAkB,gBAAA;EACvB,UAAA;EACA,UAAA;EACA,aAAA;EACA,aAAA;AAAA,IACE,aAAA;AAAA,cAIE,WAAA,QAAW,oBAAA;;;cCfX,QAAA;EAAA;;;;;;;;KAQH,cAAA,UAAwB,aAAA,GAAa,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"carousel.d.ts","names":[],"sources":["../../src/ui/carousel/carousel-content.tsx","../../src/ui/carousel/carousel-item.tsx","../../src/ui/carousel/carousel-next.tsx","../../src/ui/carousel/carousel-previous.tsx","../../src/ui/carousel/use-carousel.tsx","../../src/ui/carousel/carousel.tsx"],"mappings":";;;;;;KAIY,oBAAA,GAAuB,cAAA;AAAA,cAE7B,eAAA;EAAmB,SAAA;EAAA,GAAA;AAAA,GAAyB,oBAAA,KAAoB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCF1D,iBAAA,GAAoB,cAAA;AAAA,cAE1B,YAAA;EAAgB,SAAA;EAAA,GAAA;AAAA,GAAyB,iBAAA,KAAiB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCCpD,iBAAA,GAAoB,cAAA,QAAsB,UAAA;AAAA,cAEhD,YAAA;EAAgB,SAAA;EAAA,OAAA;EAAA,IAAA;EAAA,GAAA;AAAA,GAKnB,iBAAA,KAAiB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCPR,qBAAA,GAAwB,cAAA,QAAsB,UAAA;AAAA,cAEpD,gBAAA;EAAoB,SAAA;EAAA,OAAA;EAAA,IAAA;EAAA,GAAA;AAAA,GAKvB,qBAAA,KAAqB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCRnB,WAAA,GAAc,oBAAA;AAAA,KACd,qBAAA,GAAwB,UAAA,QAAkB,gBAAA;AAAA,KAC1C,eAAA,GAAkB,qBAAA;AAAA,KAClB,cAAA,GAAiB,qBAAA;AAAA,UAEZ,aAAA;EACR,IAAA,GAAO,eAAA;EACP,OAAA,GAAU,cAAA;EACV,WAAA;EACA,MAAA,IAAU,GAAA,EAAK,WAAA;AAAA;AAAA,KAGZ,oBAAA;EACH,WAAA,EAAa,UAAA,QAAkB,gBAAA;EAC/B,GAAA,EAAK,UAAA,QAAkB,gBAAA;EACvB,UAAA;EACA,UAAA;EACA,aAAA;EACA,aAAA;AAAA,IACE,aAAA;AAAA,cAIE,WAAA,QAAW,oBAAA;;;cCfX,QAAA;EAAA;;;;;;;;KAQH,cAAA,UAAwB,aAAA,GAAa,kBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
 
3
- import { Button } from "./button.js";
3
+ import { ActionIcon } from "./action-icon.js";
4
4
  import { createContext, useCallback, useContext, useEffect, useMemo, useState } from "react";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
6
6
  import { cn } from "tailwind-variants";
@@ -46,9 +46,9 @@ const CarouselItem = ({ className, ...props }) => {
46
46
 
47
47
  //#endregion
48
48
  //#region src/ui/carousel/carousel-next.tsx
49
- const CarouselNext = ({ className, variant = "outline", size = "icon-sm", ...props }) => {
49
+ const CarouselNext = ({ className, variant = "outline", size = "sm", ...props }) => {
50
50
  const { orientation, scrollNext, canScrollNext } = useCarousel();
51
- return /* @__PURE__ */ jsxs(Button, {
51
+ return /* @__PURE__ */ jsxs(ActionIcon, {
52
52
  className: cn("cursor-clickable absolute touch-manipulation rounded-full", orientation === "horizontal" ? "top-1/2 -right-12 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90", className),
53
53
  "data-slot": "carousel-next",
54
54
  disabled: !canScrollNext,
@@ -68,9 +68,9 @@ const CarouselNext = ({ className, variant = "outline", size = "icon-sm", ...pro
68
68
 
69
69
  //#endregion
70
70
  //#region src/ui/carousel/carousel-previous.tsx
71
- const CarouselPrevious = ({ className, variant = "outline", size = "icon-sm", ...props }) => {
71
+ const CarouselPrevious = ({ className, variant = "outline", size = "sm", ...props }) => {
72
72
  const { orientation, scrollPrev, canScrollPrev } = useCarousel();
73
- return /* @__PURE__ */ jsxs(Button, {
73
+ return /* @__PURE__ */ jsxs(ActionIcon, {
74
74
  className: cn("cursor-clickable absolute touch-manipulation rounded-full", orientation === "horizontal" ? "top-1/2 -left-12 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90", className),
75
75
  "data-slot": "carousel-previous",
76
76
  disabled: !canScrollPrev,
@@ -1 +1 @@
1
- {"version":3,"file":"carousel.js","names":[],"sources":["../../src/ui/carousel/use-carousel.tsx","../../src/ui/carousel/carousel-content.tsx","../../src/ui/carousel/carousel-item.tsx","../../src/ui/carousel/carousel-next.tsx","../../src/ui/carousel/carousel-previous.tsx","../../src/ui/carousel/carousel.tsx"],"sourcesContent":["\"use client\";\n\nimport type useEmblaCarousel from \"embla-carousel-react\";\nimport type { UseEmblaCarouselType } from \"embla-carousel-react\";\nimport { createContext, useContext } from \"react\";\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ninterface CarouselProps {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\n orientation?: \"horizontal\" | \"vertical\";\n setApi?: (api: CarouselApi) => void;\n}\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n} & CarouselProps;\n\nconst CarouselContext = createContext<CarouselContextProps | null>(null);\n\nconst useCarousel = () => {\n const context = useContext(CarouselContext);\n\n if (!context) {\n throw new Error(\"useCarousel must be used within a <Carousel />\");\n }\n\n return context;\n};\n\nexport {\n type CarouselApi,\n type CarouselContextProps,\n type CarouselProps,\n CarouselContext,\n useCarousel,\n};\n","import type { ComponentProps } from \"react\";\nimport { cn } from \"tailwind-variants\";\n\nimport { useCarousel } from \"./use-carousel\";\nexport type CarouselContentProps = ComponentProps<\"div\">;\n\nconst CarouselContent = ({ className, ...props }: CarouselContentProps) => {\n const { carouselRef, orientation } = useCarousel();\n\n return (\n <div\n className=\"overflow-hidden\"\n data-slot=\"carousel-content\"\n ref={carouselRef}\n >\n <div\n className={cn(\n \"flex\",\n orientation === \"horizontal\" ? \"-ml-4\" : \"-mt-4 flex-col\",\n className\n )}\n {...props}\n />\n </div>\n );\n};\n\nexport { CarouselContent };\n","import type { ComponentProps } from \"react\";\nimport { cn } from \"tailwind-variants\";\n\nimport { useCarousel } from \"./use-carousel\";\nexport type CarouselItemProps = ComponentProps<\"div\">;\n\nconst CarouselItem = ({ className, ...props }: CarouselItemProps) => {\n const { orientation } = useCarousel();\n\n return (\n <div\n aria-roledescription=\"slide\"\n className={cn(\n \"min-w-0 shrink-0 grow-0 basis-full\",\n orientation === \"horizontal\" ? \"pl-4\" : \"pt-4\",\n className\n )}\n data-slot=\"carousel-item\"\n role=\"group\"\n {...props}\n />\n );\n};\n\nexport { CarouselItem };\n","import { ArrowRight01Icon } from \"@hugeicons/core-free-icons\";\nimport { HugeiconsIcon } from \"@hugeicons/react\";\nimport type { ComponentProps } from \"react\";\nimport { cn } from \"tailwind-variants\";\n\nimport { Button } from \"../button/button\";\nimport { useCarousel } from \"./use-carousel\";\nexport type CarouselNextProps = ComponentProps<typeof Button>;\n\nconst CarouselNext = ({\n className,\n variant = \"outline\",\n size = \"icon-sm\",\n ...props\n}: CarouselNextProps) => {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n\n return (\n <Button\n className={cn(\n \"cursor-clickable absolute touch-manipulation rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -right-12 -translate-y-1/2\"\n : \"-bottom-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n data-slot=\"carousel-next\"\n disabled={!canScrollNext}\n onClick={scrollNext}\n size={size}\n variant={variant}\n {...props}\n >\n <HugeiconsIcon icon={ArrowRight01Icon} strokeWidth={2} />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n );\n};\n\nexport { CarouselNext };\n","import { ArrowLeft01Icon } from \"@hugeicons/core-free-icons\";\nimport { HugeiconsIcon } from \"@hugeicons/react\";\nimport type { ComponentProps } from \"react\";\nimport { cn } from \"tailwind-variants\";\n\nimport { Button } from \"../button/button\";\nimport { useCarousel } from \"./use-carousel\";\nexport type CarouselPreviousProps = ComponentProps<typeof Button>;\n\nconst CarouselPrevious = ({\n className,\n variant = \"outline\",\n size = \"icon-sm\",\n ...props\n}: CarouselPreviousProps) => {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <Button\n className={cn(\n \"cursor-clickable absolute touch-manipulation rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -left-12 -translate-y-1/2\"\n : \"-top-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n data-slot=\"carousel-previous\"\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n size={size}\n variant={variant}\n {...props}\n >\n <HugeiconsIcon icon={ArrowLeft01Icon} strokeWidth={2} />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n );\n};\n\nexport { CarouselPrevious };\n","\"use client\";\n\nimport useEmblaCarousel from \"embla-carousel-react\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport type { ComponentProps, KeyboardEvent } from \"react\";\nimport { cn } from \"tailwind-variants\";\n\nimport { CarouselContent } from \"./carousel-content\";\nimport { CarouselItem } from \"./carousel-item\";\nimport { CarouselNext } from \"./carousel-next\";\nimport { CarouselPrevious } from \"./carousel-previous\";\nimport { CarouselContext, useCarousel } from \"./use-carousel\";\nimport type { CarouselApi, CarouselProps } from \"./use-carousel\";\n\nconst Carousel = ({\n orientation = \"horizontal\",\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n}: ComponentProps<\"div\"> & CarouselProps) => {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === \"horizontal\" ? \"x\" : \"y\",\n },\n plugins\n );\n const [canScrollPrev, setCanScrollPrev] = useState(false);\n const [canScrollNext, setCanScrollNext] = useState(false);\n\n const onSelect = useCallback((emblaApi: CarouselApi) => {\n if (!emblaApi) {\n return;\n }\n setCanScrollPrev(emblaApi.canScrollPrev());\n setCanScrollNext(emblaApi.canScrollNext());\n }, []);\n\n const scrollPrev = useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n\n const scrollNext = useCallback(() => {\n api?.scrollNext();\n }, [api]);\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.target !== event.currentTarget) {\n return;\n }\n\n const previousKey =\n orientation === \"horizontal\" ? \"ArrowLeft\" : \"ArrowUp\";\n const nextKey = orientation === \"horizontal\" ? \"ArrowRight\" : \"ArrowDown\";\n\n if (event.key === previousKey) {\n event.preventDefault();\n scrollPrev();\n } else if (event.key === nextKey) {\n event.preventDefault();\n scrollNext();\n }\n },\n [orientation, scrollPrev, scrollNext]\n );\n\n useEffect(() => {\n if (!(api && setApi)) {\n return;\n }\n setApi(api);\n }, [api, setApi]);\n\n useEffect(() => {\n if (!api) {\n return;\n }\n onSelect(api);\n api.on(\"reInit\", onSelect);\n api.on(\"select\", onSelect);\n\n return () => {\n api?.off(\"select\", onSelect);\n };\n }, [api, onSelect]);\n const resolvedOrientation =\n orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\");\n const contextValue = useMemo(\n () => ({\n api,\n canScrollNext,\n canScrollPrev,\n carouselRef,\n opts,\n orientation: resolvedOrientation,\n scrollNext,\n scrollPrev,\n }),\n [\n carouselRef,\n api,\n opts,\n resolvedOrientation,\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n ]\n );\n\n return (\n <CarouselContext.Provider value={contextValue}>\n {/** biome-ignore lint/a11y/useSemanticElements: region is not semantically appropriate for carousel */}\n <div\n aria-roledescription=\"carousel\"\n className={cn(\"relative\", className)}\n data-slot=\"carousel\"\n onKeyDown={handleKeyDown}\n role=\"region\"\n tabIndex={0}\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n );\n};\n\nCarousel.Content = CarouselContent;\nCarousel.Item = CarouselItem;\nCarousel.Next = CarouselNext;\nCarousel.Previous = CarouselPrevious;\n\nexport type { CarouselApi } from \"./use-carousel\";\n\nexport {\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n useCarousel,\n};\n\nexport type { CarouselProps } from \"./use-carousel\";\n\nexport type { CarouselContentProps } from \"./carousel-content\";\nexport type { CarouselItemProps } from \"./carousel-item\";\nexport type { CarouselNextProps } from \"./carousel-next\";\nexport type { CarouselPreviousProps } from \"./carousel-previous\";\n"],"mappings":";;;;;;;;;;;AA2BA,MAAM,kBAAkB,cAA2C,KAAK;AAExE,MAAM,oBAAoB;CACxB,MAAM,UAAU,WAAW,gBAAgB;AAE3C,KAAI,CAAC,QACH,OAAM,IAAI,MAAM,iDAAiD;AAGnE,QAAO;;;;;AC9BT,MAAM,mBAAmB,EAAE,WAAW,GAAG,YAAkC;CACzE,MAAM,EAAE,aAAa,gBAAgB,aAAa;AAElD,QACE,oBAAC,OAAD;EACE,WAAU;EACV,aAAU;EACV,KAAK;YAEL,oBAAC,OAAD;GACE,WAAW,GACT,QACA,gBAAgB,eAAe,UAAU,kBACzC,UACD;GACD,GAAI;GACJ;EACE;;;;;ACjBV,MAAM,gBAAgB,EAAE,WAAW,GAAG,YAA+B;CACnE,MAAM,EAAE,gBAAgB,aAAa;AAErC,QACE,oBAAC,OAAD;EACE,wBAAqB;EACrB,WAAW,GACT,sCACA,gBAAgB,eAAe,SAAS,QACxC,UACD;EACD,aAAU;EACV,MAAK;EACL,GAAI;EACJ;;;;;ACXN,MAAM,gBAAgB,EACpB,WACA,UAAU,WACV,OAAO,WACP,GAAG,YACoB;CACvB,MAAM,EAAE,aAAa,YAAY,kBAAkB,aAAa;AAEhE,QACE,qBAAC,QAAD;EACE,WAAW,GACT,6DACA,gBAAgB,eACZ,uCACA,kDACJ,UACD;EACD,aAAU;EACV,UAAU,CAAC;EACX,SAAS;EACH;EACG;EACT,GAAI;YAbN,CAeE,oBAAC,eAAD;GAAe,MAAM;GAAkB,aAAa;GAAK,GACzD,oBAAC,QAAD;GAAM,WAAU;aAAU;GAAiB,EACpC;;;;;;AC1Bb,MAAM,oBAAoB,EACxB,WACA,UAAU,WACV,OAAO,WACP,GAAG,YACwB;CAC3B,MAAM,EAAE,aAAa,YAAY,kBAAkB,aAAa;AAEhE,QACE,qBAAC,QAAD;EACE,WAAW,GACT,6DACA,gBAAgB,eACZ,sCACA,+CACJ,UACD;EACD,aAAU;EACV,UAAU,CAAC;EACX,SAAS;EACH;EACG;EACT,GAAI;YAbN,CAeE,oBAAC,eAAD;GAAe,MAAM;GAAiB,aAAa;GAAK,GACxD,oBAAC,QAAD;GAAM,WAAU;aAAU;GAAqB,EACxC;;;;;;ACrBb,MAAM,YAAY,EAChB,cAAc,cACd,MACA,QACA,SACA,WACA,UACA,GAAG,YACwC;CAC3C,MAAM,CAAC,aAAa,OAAO,iBACzB;EACE,GAAG;EACH,MAAM,gBAAgB,eAAe,MAAM;EAC5C,EACD,QACD;CACD,MAAM,CAAC,eAAe,oBAAoB,SAAS,MAAM;CACzD,MAAM,CAAC,eAAe,oBAAoB,SAAS,MAAM;CAEzD,MAAM,WAAW,aAAa,aAA0B;AACtD,MAAI,CAAC,SACH;AAEF,mBAAiB,SAAS,eAAe,CAAC;AAC1C,mBAAiB,SAAS,eAAe,CAAC;IACzC,EAAE,CAAC;CAEN,MAAM,aAAa,kBAAkB;AACnC,OAAK,YAAY;IAChB,CAAC,IAAI,CAAC;CAET,MAAM,aAAa,kBAAkB;AACnC,OAAK,YAAY;IAChB,CAAC,IAAI,CAAC;CAET,MAAM,gBAAgB,aACnB,UAAyC;AACxC,MAAI,MAAM,WAAW,MAAM,cACzB;EAGF,MAAM,cACJ,gBAAgB,eAAe,cAAc;EAC/C,MAAM,UAAU,gBAAgB,eAAe,eAAe;AAE9D,MAAI,MAAM,QAAQ,aAAa;AAC7B,SAAM,gBAAgB;AACtB,eAAY;aACH,MAAM,QAAQ,SAAS;AAChC,SAAM,gBAAgB;AACtB,eAAY;;IAGhB;EAAC;EAAa;EAAY;EAAW,CACtC;AAED,iBAAgB;AACd,MAAI,EAAE,OAAO,QACX;AAEF,SAAO,IAAI;IACV,CAAC,KAAK,OAAO,CAAC;AAEjB,iBAAgB;AACd,MAAI,CAAC,IACH;AAEF,WAAS,IAAI;AACb,MAAI,GAAG,UAAU,SAAS;AAC1B,MAAI,GAAG,UAAU,SAAS;AAE1B,eAAa;AACX,QAAK,IAAI,UAAU,SAAS;;IAE7B,CAAC,KAAK,SAAS,CAAC;CACnB,MAAM,sBACJ,gBAAgB,MAAM,SAAS,MAAM,aAAa;CACpD,MAAM,eAAe,eACZ;EACL;EACA;EACA;EACA;EACA;EACA,aAAa;EACb;EACA;EACD,GACD;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CACF;AAED,QACE,oBAAC,gBAAgB,UAAjB;EAA0B,OAAO;YAE/B,oBAAC,OAAD;GACE,wBAAqB;GACrB,WAAW,GAAG,YAAY,UAAU;GACpC,aAAU;GACV,WAAW;GACX,MAAK;GACL,UAAU;GACV,GAAI;GAEH;GACG;EACmB;;AAI/B,SAAS,UAAU;AACnB,SAAS,OAAO;AAChB,SAAS,OAAO;AAChB,SAAS,WAAW"}
1
+ {"version":3,"file":"carousel.js","names":[],"sources":["../../src/ui/carousel/use-carousel.tsx","../../src/ui/carousel/carousel-content.tsx","../../src/ui/carousel/carousel-item.tsx","../../src/ui/carousel/carousel-next.tsx","../../src/ui/carousel/carousel-previous.tsx","../../src/ui/carousel/carousel.tsx"],"sourcesContent":["\"use client\";\n\nimport type useEmblaCarousel from \"embla-carousel-react\";\nimport type { UseEmblaCarouselType } from \"embla-carousel-react\";\nimport { createContext, useContext } from \"react\";\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ninterface CarouselProps {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\n orientation?: \"horizontal\" | \"vertical\";\n setApi?: (api: CarouselApi) => void;\n}\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n} & CarouselProps;\n\nconst CarouselContext = createContext<CarouselContextProps | null>(null);\n\nconst useCarousel = () => {\n const context = useContext(CarouselContext);\n\n if (!context) {\n throw new Error(\"useCarousel must be used within a <Carousel />\");\n }\n\n return context;\n};\n\nexport {\n type CarouselApi,\n type CarouselContextProps,\n type CarouselProps,\n CarouselContext,\n useCarousel,\n};\n","import type { ComponentProps } from \"react\";\nimport { cn } from \"tailwind-variants\";\n\nimport { useCarousel } from \"./use-carousel\";\nexport type CarouselContentProps = ComponentProps<\"div\">;\n\nconst CarouselContent = ({ className, ...props }: CarouselContentProps) => {\n const { carouselRef, orientation } = useCarousel();\n\n return (\n <div\n className=\"overflow-hidden\"\n data-slot=\"carousel-content\"\n ref={carouselRef}\n >\n <div\n className={cn(\n \"flex\",\n orientation === \"horizontal\" ? \"-ml-4\" : \"-mt-4 flex-col\",\n className\n )}\n {...props}\n />\n </div>\n );\n};\n\nexport { CarouselContent };\n","import type { ComponentProps } from \"react\";\nimport { cn } from \"tailwind-variants\";\n\nimport { useCarousel } from \"./use-carousel\";\nexport type CarouselItemProps = ComponentProps<\"div\">;\n\nconst CarouselItem = ({ className, ...props }: CarouselItemProps) => {\n const { orientation } = useCarousel();\n\n return (\n <div\n aria-roledescription=\"slide\"\n className={cn(\n \"min-w-0 shrink-0 grow-0 basis-full\",\n orientation === \"horizontal\" ? \"pl-4\" : \"pt-4\",\n className\n )}\n data-slot=\"carousel-item\"\n role=\"group\"\n {...props}\n />\n );\n};\n\nexport { CarouselItem };\n","import { ArrowRight01Icon } from \"@hugeicons/core-free-icons\";\nimport { HugeiconsIcon } from \"@hugeicons/react\";\nimport type { ComponentProps } from \"react\";\nimport { cn } from \"tailwind-variants\";\n\nimport { ActionIcon } from \"../action-icon/action-icon\";\nimport { useCarousel } from \"./use-carousel\";\nexport type CarouselNextProps = ComponentProps<typeof ActionIcon>;\n\nconst CarouselNext = ({\n className,\n variant = \"outline\",\n size = \"sm\",\n ...props\n}: CarouselNextProps) => {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n\n return (\n <ActionIcon\n className={cn(\n \"cursor-clickable absolute touch-manipulation rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -right-12 -translate-y-1/2\"\n : \"-bottom-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n data-slot=\"carousel-next\"\n disabled={!canScrollNext}\n onClick={scrollNext}\n size={size}\n variant={variant}\n {...props}\n >\n <HugeiconsIcon icon={ArrowRight01Icon} strokeWidth={2} />\n <span className=\"sr-only\">Next slide</span>\n </ActionIcon>\n );\n};\n\nexport { CarouselNext };\n","import { ArrowLeft01Icon } from \"@hugeicons/core-free-icons\";\nimport { HugeiconsIcon } from \"@hugeicons/react\";\nimport type { ComponentProps } from \"react\";\nimport { cn } from \"tailwind-variants\";\n\nimport { ActionIcon } from \"../action-icon/action-icon\";\nimport { useCarousel } from \"./use-carousel\";\nexport type CarouselPreviousProps = ComponentProps<typeof ActionIcon>;\n\nconst CarouselPrevious = ({\n className,\n variant = \"outline\",\n size = \"sm\",\n ...props\n}: CarouselPreviousProps) => {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <ActionIcon\n className={cn(\n \"cursor-clickable absolute touch-manipulation rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -left-12 -translate-y-1/2\"\n : \"-top-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n data-slot=\"carousel-previous\"\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n size={size}\n variant={variant}\n {...props}\n >\n <HugeiconsIcon icon={ArrowLeft01Icon} strokeWidth={2} />\n <span className=\"sr-only\">Previous slide</span>\n </ActionIcon>\n );\n};\n\nexport { CarouselPrevious };\n","\"use client\";\n\nimport useEmblaCarousel from \"embla-carousel-react\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport type { ComponentProps, KeyboardEvent } from \"react\";\nimport { cn } from \"tailwind-variants\";\n\nimport { CarouselContent } from \"./carousel-content\";\nimport { CarouselItem } from \"./carousel-item\";\nimport { CarouselNext } from \"./carousel-next\";\nimport { CarouselPrevious } from \"./carousel-previous\";\nimport { CarouselContext, useCarousel } from \"./use-carousel\";\nimport type { CarouselApi, CarouselProps } from \"./use-carousel\";\n\nconst Carousel = ({\n orientation = \"horizontal\",\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n}: ComponentProps<\"div\"> & CarouselProps) => {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === \"horizontal\" ? \"x\" : \"y\",\n },\n plugins\n );\n const [canScrollPrev, setCanScrollPrev] = useState(false);\n const [canScrollNext, setCanScrollNext] = useState(false);\n\n const onSelect = useCallback((emblaApi: CarouselApi) => {\n if (!emblaApi) {\n return;\n }\n setCanScrollPrev(emblaApi.canScrollPrev());\n setCanScrollNext(emblaApi.canScrollNext());\n }, []);\n\n const scrollPrev = useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n\n const scrollNext = useCallback(() => {\n api?.scrollNext();\n }, [api]);\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.target !== event.currentTarget) {\n return;\n }\n\n const previousKey =\n orientation === \"horizontal\" ? \"ArrowLeft\" : \"ArrowUp\";\n const nextKey = orientation === \"horizontal\" ? \"ArrowRight\" : \"ArrowDown\";\n\n if (event.key === previousKey) {\n event.preventDefault();\n scrollPrev();\n } else if (event.key === nextKey) {\n event.preventDefault();\n scrollNext();\n }\n },\n [orientation, scrollPrev, scrollNext]\n );\n\n useEffect(() => {\n if (!(api && setApi)) {\n return;\n }\n setApi(api);\n }, [api, setApi]);\n\n useEffect(() => {\n if (!api) {\n return;\n }\n onSelect(api);\n api.on(\"reInit\", onSelect);\n api.on(\"select\", onSelect);\n\n return () => {\n api?.off(\"select\", onSelect);\n };\n }, [api, onSelect]);\n const resolvedOrientation =\n orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\");\n const contextValue = useMemo(\n () => ({\n api,\n canScrollNext,\n canScrollPrev,\n carouselRef,\n opts,\n orientation: resolvedOrientation,\n scrollNext,\n scrollPrev,\n }),\n [\n carouselRef,\n api,\n opts,\n resolvedOrientation,\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n ]\n );\n\n return (\n <CarouselContext.Provider value={contextValue}>\n {/** biome-ignore lint/a11y/useSemanticElements: region is not semantically appropriate for carousel */}\n <div\n aria-roledescription=\"carousel\"\n className={cn(\"relative\", className)}\n data-slot=\"carousel\"\n onKeyDown={handleKeyDown}\n role=\"region\"\n tabIndex={0}\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n );\n};\n\nCarousel.Content = CarouselContent;\nCarousel.Item = CarouselItem;\nCarousel.Next = CarouselNext;\nCarousel.Previous = CarouselPrevious;\n\nexport type { CarouselApi } from \"./use-carousel\";\n\nexport {\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n useCarousel,\n};\n\nexport type { CarouselProps } from \"./use-carousel\";\n\nexport type { CarouselContentProps } from \"./carousel-content\";\nexport type { CarouselItemProps } from \"./carousel-item\";\nexport type { CarouselNextProps } from \"./carousel-next\";\nexport type { CarouselPreviousProps } from \"./carousel-previous\";\n"],"mappings":";;;;;;;;;;;AA2BA,MAAM,kBAAkB,cAA2C,KAAK;AAExE,MAAM,oBAAoB;CACxB,MAAM,UAAU,WAAW,gBAAgB;AAE3C,KAAI,CAAC,QACH,OAAM,IAAI,MAAM,iDAAiD;AAGnE,QAAO;;;;;AC9BT,MAAM,mBAAmB,EAAE,WAAW,GAAG,YAAkC;CACzE,MAAM,EAAE,aAAa,gBAAgB,aAAa;AAElD,QACE,oBAAC,OAAD;EACE,WAAU;EACV,aAAU;EACV,KAAK;YAEL,oBAAC,OAAD;GACE,WAAW,GACT,QACA,gBAAgB,eAAe,UAAU,kBACzC,UACD;GACD,GAAI;GACJ;EACE;;;;;ACjBV,MAAM,gBAAgB,EAAE,WAAW,GAAG,YAA+B;CACnE,MAAM,EAAE,gBAAgB,aAAa;AAErC,QACE,oBAAC,OAAD;EACE,wBAAqB;EACrB,WAAW,GACT,sCACA,gBAAgB,eAAe,SAAS,QACxC,UACD;EACD,aAAU;EACV,MAAK;EACL,GAAI;EACJ;;;;;ACXN,MAAM,gBAAgB,EACpB,WACA,UAAU,WACV,OAAO,MACP,GAAG,YACoB;CACvB,MAAM,EAAE,aAAa,YAAY,kBAAkB,aAAa;AAEhE,QACE,qBAAC,YAAD;EACE,WAAW,GACT,6DACA,gBAAgB,eACZ,uCACA,kDACJ,UACD;EACD,aAAU;EACV,UAAU,CAAC;EACX,SAAS;EACH;EACG;EACT,GAAI;YAbN,CAeE,oBAAC,eAAD;GAAe,MAAM;GAAkB,aAAa;GAAK,GACzD,oBAAC,QAAD;GAAM,WAAU;aAAU;GAAiB,EAChC;;;;;;AC1BjB,MAAM,oBAAoB,EACxB,WACA,UAAU,WACV,OAAO,MACP,GAAG,YACwB;CAC3B,MAAM,EAAE,aAAa,YAAY,kBAAkB,aAAa;AAEhE,QACE,qBAAC,YAAD;EACE,WAAW,GACT,6DACA,gBAAgB,eACZ,sCACA,+CACJ,UACD;EACD,aAAU;EACV,UAAU,CAAC;EACX,SAAS;EACH;EACG;EACT,GAAI;YAbN,CAeE,oBAAC,eAAD;GAAe,MAAM;GAAiB,aAAa;GAAK,GACxD,oBAAC,QAAD;GAAM,WAAU;aAAU;GAAqB,EACpC;;;;;;ACrBjB,MAAM,YAAY,EAChB,cAAc,cACd,MACA,QACA,SACA,WACA,UACA,GAAG,YACwC;CAC3C,MAAM,CAAC,aAAa,OAAO,iBACzB;EACE,GAAG;EACH,MAAM,gBAAgB,eAAe,MAAM;EAC5C,EACD,QACD;CACD,MAAM,CAAC,eAAe,oBAAoB,SAAS,MAAM;CACzD,MAAM,CAAC,eAAe,oBAAoB,SAAS,MAAM;CAEzD,MAAM,WAAW,aAAa,aAA0B;AACtD,MAAI,CAAC,SACH;AAEF,mBAAiB,SAAS,eAAe,CAAC;AAC1C,mBAAiB,SAAS,eAAe,CAAC;IACzC,EAAE,CAAC;CAEN,MAAM,aAAa,kBAAkB;AACnC,OAAK,YAAY;IAChB,CAAC,IAAI,CAAC;CAET,MAAM,aAAa,kBAAkB;AACnC,OAAK,YAAY;IAChB,CAAC,IAAI,CAAC;CAET,MAAM,gBAAgB,aACnB,UAAyC;AACxC,MAAI,MAAM,WAAW,MAAM,cACzB;EAGF,MAAM,cACJ,gBAAgB,eAAe,cAAc;EAC/C,MAAM,UAAU,gBAAgB,eAAe,eAAe;AAE9D,MAAI,MAAM,QAAQ,aAAa;AAC7B,SAAM,gBAAgB;AACtB,eAAY;aACH,MAAM,QAAQ,SAAS;AAChC,SAAM,gBAAgB;AACtB,eAAY;;IAGhB;EAAC;EAAa;EAAY;EAAW,CACtC;AAED,iBAAgB;AACd,MAAI,EAAE,OAAO,QACX;AAEF,SAAO,IAAI;IACV,CAAC,KAAK,OAAO,CAAC;AAEjB,iBAAgB;AACd,MAAI,CAAC,IACH;AAEF,WAAS,IAAI;AACb,MAAI,GAAG,UAAU,SAAS;AAC1B,MAAI,GAAG,UAAU,SAAS;AAE1B,eAAa;AACX,QAAK,IAAI,UAAU,SAAS;;IAE7B,CAAC,KAAK,SAAS,CAAC;CACnB,MAAM,sBACJ,gBAAgB,MAAM,SAAS,MAAM,aAAa;CACpD,MAAM,eAAe,eACZ;EACL;EACA;EACA;EACA;EACA;EACA,aAAa;EACb;EACA;EACD,GACD;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CACF;AAED,QACE,oBAAC,gBAAgB,UAAjB;EAA0B,OAAO;YAE/B,oBAAC,OAAD;GACE,wBAAqB;GACrB,WAAW,GAAG,YAAY,UAAU;GACpC,aAAU;GACV,WAAW;GACX,MAAK;GACL,UAAU;GACV,GAAI;GAEH;GACG;EACmB;;AAI/B,SAAS,UAAU;AACnB,SAAS,OAAO;AAChB,SAAS,OAAO;AAChB,SAAS,WAAW"}
@@ -1,4 +1,4 @@
1
- import { t as UISize } from "../size-system-wzOLSuax.js";
1
+ import { t as UISize } from "../size-system-BAI1CnwU.js";
2
2
  import * as react_jsx_runtime0 from "react/jsx-runtime";
3
3
  import * as tailwind_variants0 from "tailwind-variants";
4
4
  import { VariantProps } from "tailwind-variants";
@@ -1,4 +1,4 @@
1
- import { r as InputSize } from "../input-WWoBCgxe.js";
1
+ import { r as InputSize } from "../input-BeE717GK.js";
2
2
  import * as react from "react";
3
3
  import { ComponentProps, ComponentPropsWithRef } from "react";
4
4
  import * as react_jsx_runtime0 from "react/jsx-runtime";
@@ -2,8 +2,8 @@
2
2
 
3
3
  import { a as useComponentSize } from "../size-provider-18EvJgDT.js";
4
4
  import { t as mergeBaseUIClassName } from "../merge-base-ui-class-name-HKsgjcXj.js";
5
- import { Button } from "./button.js";
6
- import { a as InputGroupButton, i as InputGroupInput, o as InputGroupAddon, t as InputGroup } from "../input-group-CjcHP0L4.js";
5
+ import { ActionIcon } from "./action-icon.js";
6
+ import { a as InputGroupButton, i as InputGroupInput, o as InputGroupAddon, t as InputGroup } from "../input-group-7kPror1q.js";
7
7
  import { createContext, useContext, useMemo, useRef } from "react";
8
8
  import { jsx, jsxs } from "react/jsx-runtime";
9
9
  import { tv } from "tailwind-variants";
@@ -33,9 +33,9 @@ const ComboboxContext = createContext({ size: "md" });
33
33
 
34
34
  //#endregion
35
35
  //#region src/ui/combobox/combobox-chip-remove.tsx
36
- const mapComboboxSizeToButtonIconSize = (size) => {
37
- if (size === "xl") return "icon-sm";
38
- return "icon-xs";
36
+ const mapComboboxSizeToActionIconSize = (size) => {
37
+ if (size === "xl") return "sm";
38
+ return "xs";
39
39
  };
40
40
  const ComboboxChipRemove = ({ className, size, ...props }) => {
41
41
  const { size: contextSize } = useContext(ComboboxContext);
@@ -44,8 +44,8 @@ const ComboboxChipRemove = ({ className, size, ...props }) => {
44
44
  className: mergeBaseUIClassName("-ml-1 cursor-clickable opacity-50 hover:opacity-100", className),
45
45
  "data-size": resolvedSize,
46
46
  "data-slot": "combobox-chip-remove",
47
- render: /* @__PURE__ */ jsx(Button, {
48
- size: mapComboboxSizeToButtonIconSize(resolvedSize),
47
+ render: /* @__PURE__ */ jsx(ActionIcon, {
48
+ size: mapComboboxSizeToActionIconSize(resolvedSize),
49
49
  variant: "ghost"
50
50
  }),
51
51
  ...props,
@@ -427,11 +427,11 @@ const comboboxListVariants = tv({
427
427
  base: "no-scrollbar overflow-y-auto overscroll-contain data-empty:p-0",
428
428
  defaultVariants: { size: "md" },
429
429
  variants: { size: {
430
- lg: "max-h-[min(calc(--spacing(72)-var(--kb-combobox-anchor-offset)),calc(var(--available-height)-var(--kb-combobox-anchor-offset)))] scroll-py-1.5 p-1.5",
431
- md: "max-h-[min(calc(--spacing(72)-var(--kb-combobox-anchor-offset)),calc(var(--available-height)-var(--kb-combobox-anchor-offset)))] scroll-py-1 p-1",
432
- sm: "max-h-[min(calc(--spacing(72)-var(--kb-combobox-anchor-offset)),calc(var(--available-height)-var(--kb-combobox-anchor-offset)))] scroll-py-1 p-1",
433
- xl: "max-h-[min(calc(--spacing(72)-var(--kb-combobox-anchor-offset)),calc(var(--available-height)-var(--kb-combobox-anchor-offset)))] scroll-py-2 p-2",
434
- xs: "max-h-[min(calc(--spacing(72)-var(--kb-combobox-anchor-offset)),calc(var(--available-height)-var(--kb-combobox-anchor-offset)))] scroll-py-0.5 p-0.5"
430
+ lg: "max-h-[min(calc(var(--kb-overlay-list-max-height,20rem)-var(--kb-combobox-anchor-offset)),calc(var(--available-height)-var(--kb-combobox-anchor-offset)))] scroll-py-1.5 p-1.5",
431
+ md: "max-h-[min(calc(var(--kb-overlay-list-max-height,20rem)-var(--kb-combobox-anchor-offset)),calc(var(--available-height)-var(--kb-combobox-anchor-offset)))] scroll-py-1 p-1",
432
+ sm: "max-h-[min(calc(var(--kb-overlay-list-max-height,20rem)-var(--kb-combobox-anchor-offset)),calc(var(--available-height)-var(--kb-combobox-anchor-offset)))] scroll-py-1 p-1",
433
+ xl: "max-h-[min(calc(var(--kb-overlay-list-max-height,20rem)-var(--kb-combobox-anchor-offset)),calc(var(--available-height)-var(--kb-combobox-anchor-offset)))] scroll-py-2 p-2",
434
+ xs: "max-h-[min(calc(var(--kb-overlay-list-max-height,20rem)-var(--kb-combobox-anchor-offset)),calc(var(--available-height)-var(--kb-combobox-anchor-offset)))] scroll-py-0.5 p-0.5"
435
435
  } }
436
436
  });
437
437
  const comboboxAnchorOffsetBySize = {