@ngrok/mantle 0.73.3 → 0.73.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. package/dist/accordion.d.ts +7 -9
  2. package/dist/accordion.js +1 -1
  3. package/dist/accordion.js.map +1 -1
  4. package/dist/agent.json +1 -1
  5. package/dist/alert-dialog.d.ts +33 -38
  6. package/dist/alert-dialog.js +1 -1
  7. package/dist/alert-dialog.js.map +1 -1
  8. package/dist/alert.d.ts +9 -11
  9. package/dist/alert.js +1 -1
  10. package/dist/alert.js.map +1 -1
  11. package/dist/{anchor-2stEauOz.js → anchor-CcTY5SIz.js} +2 -2
  12. package/dist/{anchor-2stEauOz.js.map → anchor-CcTY5SIz.js.map} +1 -1
  13. package/dist/anchor.d.ts +2 -3
  14. package/dist/anchor.js +1 -1
  15. package/dist/{as-child-CpZKMqTE.d.ts → as-child-uN_018tj.d.ts} +1 -1
  16. package/dist/badge.d.ts +3 -4
  17. package/dist/badge.js +1 -1
  18. package/dist/badge.js.map +1 -1
  19. package/dist/{booleanish-CBGdPL3Q.js → booleanish-BfvnW6vy.js} +1 -1
  20. package/dist/{booleanish-CBGdPL3Q.js.map → booleanish-BfvnW6vy.js.map} +1 -1
  21. package/dist/{browser-only-QPyyfLaB.js → browser-only-BSl_hruR.js} +1 -1
  22. package/dist/{browser-only-QPyyfLaB.js.map → browser-only-BSl_hruR.js.map} +1 -1
  23. package/dist/browser-only.js +1 -1
  24. package/dist/{button-POMJ-20y.js → button-BAxneEMu.js} +2 -2
  25. package/dist/{button-POMJ-20y.js.map → button-BAxneEMu.js.map} +1 -1
  26. package/dist/{button-DbHFERMB.d.ts → button-BYZOBUgj.d.ts} +16 -19
  27. package/dist/{button-GokecthL.js → button-uMIZVKit.js} +2 -2
  28. package/dist/{button-GokecthL.js.map → button-uMIZVKit.js.map} +1 -1
  29. package/dist/button.d.ts +4 -4
  30. package/dist/button.js +1 -1
  31. package/dist/calendar.d.ts +1 -2
  32. package/dist/calendar.js +1 -1
  33. package/dist/calendar.js.map +1 -1
  34. package/dist/card.d.ts +6 -7
  35. package/dist/card.js +1 -1
  36. package/dist/card.js.map +1 -1
  37. package/dist/checkbox.d.ts +3 -4
  38. package/dist/checkbox.js +1 -1
  39. package/dist/checkbox.js.map +1 -1
  40. package/dist/code-block.d.ts +17 -19
  41. package/dist/code-block.js +1 -1
  42. package/dist/code-block.js.map +1 -1
  43. package/dist/code-block_highlight-utils.d.ts +1 -1
  44. package/dist/code-block_highlight-utils.js +1 -1
  45. package/dist/code.d.ts +2 -3
  46. package/dist/code.js +1 -1
  47. package/dist/code.js.map +1 -1
  48. package/dist/color.d.ts +2 -2
  49. package/dist/color.js.map +1 -1
  50. package/dist/combobox.d.ts +11 -13
  51. package/dist/combobox.js +1 -1
  52. package/dist/combobox.js.map +1 -1
  53. package/dist/command.d.ts +133 -220
  54. package/dist/command.js +1 -1
  55. package/dist/command.js.map +1 -1
  56. package/dist/{compose-refs-DZ3cPi47.js → compose-refs-Cjf2gfB8.js} +1 -1
  57. package/dist/{compose-refs-DZ3cPi47.js.map → compose-refs-Cjf2gfB8.js.map} +1 -1
  58. package/dist/{copy-to-clipboard-CNMRyck4.js → copy-to-clipboard-Baw30q9O.js} +2 -2
  59. package/dist/{copy-to-clipboard-CNMRyck4.js.map → copy-to-clipboard-Baw30q9O.js.map} +1 -1
  60. package/dist/{cx-D1HYnpvA.js → cx-CBSnSC36.js} +1 -1
  61. package/dist/{cx-D1HYnpvA.js.map → cx-CBSnSC36.js.map} +1 -1
  62. package/dist/cx.js +1 -1
  63. package/dist/data-table.d.ts +13 -15
  64. package/dist/data-table.js +1 -1
  65. package/dist/data-table.js.map +1 -1
  66. package/dist/{deep-non-nullable-Xu7ckQM6.d.ts → deep-non-nullable-BxRoySYR.d.ts} +1 -1
  67. package/dist/description-list.d.ts +5 -6
  68. package/dist/description-list.js +1 -1
  69. package/dist/description-list.js.map +1 -1
  70. package/dist/{dialog-B1KCB7JT.js → dialog-Dn-brQBw.js} +2 -2
  71. package/dist/{dialog-B1KCB7JT.js.map → dialog-Dn-brQBw.js.map} +1 -1
  72. package/dist/dialog.d.ts +14 -17
  73. package/dist/dialog.js +1 -1
  74. package/dist/{direction-D9IZ1wW6.d.ts → direction-CcTY0FmA.d.ts} +2 -2
  75. package/dist/{direction-HqPHXGIs.js → direction-Wa9W2F61.js} +1 -1
  76. package/dist/{direction-HqPHXGIs.js.map → direction-Wa9W2F61.js.map} +1 -1
  77. package/dist/{dropdown-menu-CvOiQUSZ.d.ts → dropdown-menu-BgYk4L8o.d.ts} +22 -24
  78. package/dist/{dropdown-menu-DY4w933w.js → dropdown-menu-C3YZJBkV.js} +2 -2
  79. package/dist/{dropdown-menu-DY4w933w.js.map → dropdown-menu-C3YZJBkV.js.map} +1 -1
  80. package/dist/dropdown-menu.d.ts +1 -1
  81. package/dist/dropdown-menu.js +1 -1
  82. package/dist/empty.d.ts +7 -8
  83. package/dist/empty.js +1 -1
  84. package/dist/empty.js.map +1 -1
  85. package/dist/{field-context-B7Z1cmZW.js → field-context-4k1kI7Bo.js} +2 -2
  86. package/dist/{field-context-B7Z1cmZW.js.map → field-context-4k1kI7Bo.js.map} +1 -1
  87. package/dist/field.d.ts +23 -25
  88. package/dist/field.js +1 -1
  89. package/dist/field.js.map +1 -1
  90. package/dist/flag.d.ts +1 -2
  91. package/dist/flag.js +1 -1
  92. package/dist/flag.js.map +1 -1
  93. package/dist/hooks.d.ts +3 -3
  94. package/dist/hooks.js +1 -1
  95. package/dist/hooks.js.map +1 -1
  96. package/dist/hover-card.d.ts +4 -6
  97. package/dist/hover-card.js +1 -1
  98. package/dist/hover-card.js.map +1 -1
  99. package/dist/{icon-bWc5yC3-.js → icon-C8bYBIHW.js} +2 -2
  100. package/dist/{icon-bWc5yC3-.js.map → icon-C8bYBIHW.js.map} +1 -1
  101. package/dist/{icon-button-ZKN0sRIJ.js → icon-button-C_Ht_g1C.js} +2 -2
  102. package/dist/{icon-button-ZKN0sRIJ.js.map → icon-button-C_Ht_g1C.js.map} +1 -1
  103. package/dist/{icon-button-BDTb-lxs.d.ts → icon-button-ntupABbM.d.ts} +6 -8
  104. package/dist/{icon-BJ7q2RXZ.d.ts → icon-n49kOh4_.d.ts} +3 -4
  105. package/dist/icon.d.ts +3 -3
  106. package/dist/icon.js +1 -1
  107. package/dist/icons.d.ts +9 -10
  108. package/dist/icons.js +1 -1
  109. package/dist/icons.js.map +1 -1
  110. package/dist/{in-view-BUgyu-Tk.d.ts → in-view-BC3wmz-a.d.ts} +1 -1
  111. package/dist/{in-view-CeVqeGbv.js → in-view-C2DpZ6s0.js} +1 -1
  112. package/dist/{in-view-CeVqeGbv.js.map → in-view-C2DpZ6s0.js.map} +1 -1
  113. package/dist/{index-BhlxYL_y.d.ts → index-BL5WVva_.d.ts} +3 -6
  114. package/dist/{index-CWXKBva-.d.ts → index-DBZ3eRsl.d.ts} +5 -7
  115. package/dist/{index-DS_4n2eb.d.ts → index-DorCusfG.d.ts} +1 -1
  116. package/dist/{index-BbZBDzPh.d.ts → index-L3NmbHi5.d.ts} +1 -1
  117. package/dist/input.d.ts +7 -8
  118. package/dist/input.js +1 -1
  119. package/dist/input.js.map +1 -1
  120. package/dist/{is-input-CtUHJGgL.js → is-input-CXmS0OFN.js} +1 -1
  121. package/dist/{is-input-CtUHJGgL.js.map → is-input-CXmS0OFN.js.map} +1 -1
  122. package/dist/{kbd-CbMxDL9E.js → kbd-Bv6tefdB.js} +2 -2
  123. package/dist/{kbd-CbMxDL9E.js.map → kbd-Bv6tefdB.js.map} +1 -1
  124. package/dist/kbd.d.ts +1 -2
  125. package/dist/kbd.js +1 -1
  126. package/dist/{label-x6FcOpxc.js → label-DhIUmTN2.js} +2 -2
  127. package/dist/{label-x6FcOpxc.js.map → label-DhIUmTN2.js.map} +1 -1
  128. package/dist/label.d.ts +2 -4
  129. package/dist/label.js +1 -1
  130. package/dist/llms.txt +1 -1
  131. package/dist/main.d.ts +1 -2
  132. package/dist/main.js +1 -1
  133. package/dist/main.js.map +1 -1
  134. package/dist/media-object.d.ts +4 -5
  135. package/dist/media-object.js +1 -1
  136. package/dist/media-object.js.map +1 -1
  137. package/dist/multi-select.d.ts +16 -18
  138. package/dist/multi-select.js +1 -1
  139. package/dist/multi-select.js.map +1 -1
  140. package/dist/otp-input.d.ts +6 -7
  141. package/dist/otp-input.js +1 -1
  142. package/dist/otp-input.js.map +1 -1
  143. package/dist/pagination.d.ts +7 -9
  144. package/dist/pagination.js +1 -1
  145. package/dist/pagination.js.map +1 -1
  146. package/dist/{popover-CoZxokw_.js → popover-DponNBot.js} +2 -2
  147. package/dist/{popover-CoZxokw_.js.map → popover-DponNBot.js.map} +1 -1
  148. package/dist/popover.d.ts +6 -7
  149. package/dist/popover.js +1 -1
  150. package/dist/primitive-Cn3h4DJg.js +2 -0
  151. package/dist/primitive-Cn3h4DJg.js.map +1 -0
  152. package/dist/{primitive-qkxTYBUY.d.ts → primitive-D_-h74Kt.d.ts} +2 -3
  153. package/dist/progress.d.ts +4 -5
  154. package/dist/progress.js +1 -1
  155. package/dist/progress.js.map +1 -1
  156. package/dist/radio-group.d.ts +18 -20
  157. package/dist/radio-group.js +1 -1
  158. package/dist/radio-group.js.map +1 -1
  159. package/dist/{resolve-pre-rendered-props-BfWe69-w.js → resolve-pre-rendered-props-C-vrNxH1.js} +8 -8
  160. package/dist/resolve-pre-rendered-props-C-vrNxH1.js.map +1 -0
  161. package/dist/{resolve-pre-rendered-props-BONSCwYA.d.ts → resolve-pre-rendered-props-DxJ9-DAl.d.ts} +1 -1
  162. package/dist/sandboxed-on-click.d.ts +3 -4
  163. package/dist/sandboxed-on-click.js +1 -1
  164. package/dist/sandboxed-on-click.js.map +1 -1
  165. package/dist/{select-SZFFzYs0.d.ts → select-C15-XvRT.d.ts} +15 -16
  166. package/dist/select-Cxc9VmP8.js +2 -0
  167. package/dist/select-Cxc9VmP8.js.map +1 -0
  168. package/dist/select.d.ts +1 -1
  169. package/dist/select.js +1 -1
  170. package/dist/separator-Bqjy77rG.js +2 -0
  171. package/dist/separator-Bqjy77rG.js.map +1 -0
  172. package/dist/separator.d.ts +3 -5
  173. package/dist/separator.js +1 -1
  174. package/dist/sheet.d.ts +15 -19
  175. package/dist/sheet.js +1 -1
  176. package/dist/sheet.js.map +1 -1
  177. package/dist/skeleton.d.ts +4 -6
  178. package/dist/skeleton.js +1 -1
  179. package/dist/skeleton.js.map +1 -1
  180. package/dist/skip-to-main-link.d.ts +1 -2
  181. package/dist/skip-to-main-link.js +1 -1
  182. package/dist/skip-to-main-link.js.map +1 -1
  183. package/dist/slider.d.ts +1 -2
  184. package/dist/slider.js +1 -1
  185. package/dist/slider.js.map +1 -1
  186. package/dist/{slot-D_ZUrdEW.js → slot-CV5fmqFr.js} +2 -2
  187. package/dist/{slot-D_ZUrdEW.js.map → slot-CV5fmqFr.js.map} +1 -1
  188. package/dist/slot.d.ts +1 -1
  189. package/dist/slot.js +1 -1
  190. package/dist/{sort-mXo37xN2.js → sort-BPX2Fk9t.js} +2 -2
  191. package/dist/{sort-mXo37xN2.js.map → sort-BPX2Fk9t.js.map} +1 -1
  192. package/dist/split-button.d.ts +10 -12
  193. package/dist/split-button.js +1 -1
  194. package/dist/split-button.js.map +1 -1
  195. package/dist/{svg-only-7gYlsX8f.js → svg-only-Cz1cby8y.js} +2 -2
  196. package/dist/{svg-only-7gYlsX8f.js.map → svg-only-Cz1cby8y.js.map} +1 -1
  197. package/dist/{svg-only-D4uqM1OC.d.ts → svg-only-f6ToFLH0.d.ts} +3 -4
  198. package/dist/switch.d.ts +3 -5
  199. package/dist/switch.js +1 -1
  200. package/dist/switch.js.map +1 -1
  201. package/dist/{table-CjSQkfZe.d.ts → table-BWD9IlIN.d.ts} +10 -12
  202. package/dist/{table-CHd39aT-.js → table-eyoUW2Uv.js} +2 -2
  203. package/dist/{table-CHd39aT-.js.map → table-eyoUW2Uv.js.map} +1 -1
  204. package/dist/table.d.ts +1 -1
  205. package/dist/table.js +1 -1
  206. package/dist/tabs.d.ts +6 -9
  207. package/dist/tabs.js +1 -1
  208. package/dist/tabs.js.map +1 -1
  209. package/dist/text-area.d.ts +2 -3
  210. package/dist/text-area.js +1 -1
  211. package/dist/text-area.js.map +1 -1
  212. package/dist/theme-provider-MMwxHEfw.js +2 -0
  213. package/dist/theme-provider-MMwxHEfw.js.map +1 -0
  214. package/dist/theme.d.ts +9 -10
  215. package/dist/theme.js +1 -1
  216. package/dist/theme.js.map +1 -1
  217. package/dist/{themes-FPux5kIu.d.ts → themes-CYNpplwN.d.ts} +1 -1
  218. package/dist/toast-CR3MVChj.js +2 -0
  219. package/dist/toast-CR3MVChj.js.map +1 -0
  220. package/dist/toast.d.ts +8 -10
  221. package/dist/toast.js +1 -1
  222. package/dist/tooltip.d.ts +4 -6
  223. package/dist/tooltip.js +1 -1
  224. package/dist/tooltip.js.map +1 -1
  225. package/dist/{traffic-policy-file-BwHHdhWJ.js → traffic-policy-file-0g5RXFqu.js} +1 -1
  226. package/dist/{traffic-policy-file-BwHHdhWJ.js.map → traffic-policy-file-0g5RXFqu.js.map} +1 -1
  227. package/dist/{types-QKZ5fvaQ.d.ts → types-BvUzforF.d.ts} +1 -1
  228. package/dist/types-D85fCNV3.js +2 -0
  229. package/dist/{types-884RJJqm.js.map → types-D85fCNV3.js.map} +1 -1
  230. package/dist/types.d.ts +6 -6
  231. package/dist/types.js +1 -1
  232. package/dist/use-copy-to-clipboard-BLpquU9d.js +2 -0
  233. package/dist/{use-copy-to-clipboard-CTgtLjUg.js.map → use-copy-to-clipboard-BLpquU9d.js.map} +1 -1
  234. package/dist/{use-isomorphic-layout-effect-CNSD0lhi.js → use-isomorphic-layout-effect-DdTRtMY-.js} +1 -1
  235. package/dist/{use-isomorphic-layout-effect-CNSD0lhi.js.map → use-isomorphic-layout-effect-DdTRtMY-.js.map} +1 -1
  236. package/dist/{use-matches-media-query-CojcYxlA.js → use-matches-media-query-CMSxHR9n.js} +1 -1
  237. package/dist/{use-matches-media-query-CojcYxlA.js.map → use-matches-media-query-CMSxHR9n.js.map} +1 -1
  238. package/dist/{use-prefers-reduced-motion-Bpx8G3UT.js → use-prefers-reduced-motion-CWIoFA6W.js} +2 -2
  239. package/dist/{use-prefers-reduced-motion-Bpx8G3UT.js.map → use-prefers-reduced-motion-CWIoFA6W.js.map} +1 -1
  240. package/dist/utils.d.ts +2 -2
  241. package/dist/utils.js +1 -1
  242. package/dist/utils.js.map +1 -1
  243. package/dist/{validation-BYME8rWN.js → validation-DCyx-ceH.js} +1 -1
  244. package/dist/{validation-BYME8rWN.js.map → validation-DCyx-ceH.js.map} +1 -1
  245. package/dist/{validation-CBSOmooP.d.ts → validation-xyX_6kph.d.ts} +1 -1
  246. package/dist/{variant-props-BZbM__kQ.d.ts → variant-props-CVymuSfa.d.ts} +2 -2
  247. package/dist/{with-style-props-xzZLnIrF.d.ts → with-style-props-CyImx7vd.d.ts} +1 -1
  248. package/package.json +6 -6
  249. package/dist/primitive-tXm_8n_t.js +0 -2
  250. package/dist/primitive-tXm_8n_t.js.map +0 -1
  251. package/dist/resolve-pre-rendered-props-BfWe69-w.js.map +0 -1
  252. package/dist/select-B7orOUPj.js +0 -2
  253. package/dist/select-B7orOUPj.js.map +0 -1
  254. package/dist/separator-awchG4LI.js +0 -2
  255. package/dist/separator-awchG4LI.js.map +0 -1
  256. package/dist/theme-provider-BFcnjeME.js +0 -2
  257. package/dist/theme-provider-BFcnjeME.js.map +0 -1
  258. package/dist/toast-CGnquSKO.js +0 -2
  259. package/dist/toast-CGnquSKO.js.map +0 -1
  260. package/dist/types-884RJJqm.js +0 -2
  261. package/dist/use-copy-to-clipboard-CTgtLjUg.js +0 -2
@@ -1,2 +1,2 @@
1
- import{t as e}from"./cx-D1HYnpvA.js";import{Children as t,cloneElement as n,forwardRef as r,isValidElement as i}from"react";import{jsx as a}from"react/jsx-runtime";import{Slot as o}from"@radix-ui/react-slot";const s=r(function({children:r,className:s,...c},l){return i(r)?a(o,{ref:l,...c,children:n(r,{...r.props,className:e(s,r.props.className)})}):t.only(r)});export{s as t};
2
- //# sourceMappingURL=slot-D_ZUrdEW.js.map
1
+ import{t as e}from"./cx-CBSnSC36.js";import{Children as t,cloneElement as n,forwardRef as r,isValidElement as i}from"react";import{jsx as a}from"react/jsx-runtime";import{Slot as o}from"@radix-ui/react-slot";const s=r(function({children:r,className:s,...c},l){return i(r)?a(o,{ref:l,...c,children:n(r,{...r.props,className:e(s,r.props.className)})}):t.only(r)});export{s as t};
2
+ //# sourceMappingURL=slot-CV5fmqFr.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slot-D_ZUrdEW.js","names":["Slot","RadixSlot"],"sources":["../src/components/slot/slot.tsx"],"sourcesContent":["import { Slot as RadixSlot } from \"@radix-ui/react-slot\";\nimport { Children, type ComponentProps, cloneElement, forwardRef, isValidElement } from \"react\";\nimport { cx } from \"../../utils/cx/cx.js\";\n\ntype Props = ComponentProps<typeof RadixSlot>;\n\n/**\n * Merges its props onto its immediate child. This is useful for creating\n * components that can be rendered as different elements. Automatically merges\n * className props using `cx` for proper Tailwind class handling.\n *\n * @see https://mantle.ngrok.com/components/slot\n *\n * @example\n * ```tsx\n * <Slot className=\"custom-class\">\n * <a href=\"/\">Home</a>\n * </Slot>\n * ```\n */\nconst Slot = forwardRef<HTMLElement, Props>(function Slot(\n\t{ children, className, ...props },\n\tforwardedRef,\n) {\n\tif (!isValidElement<{ className?: string }>(children)) {\n\t\treturn Children.only(children);\n\t}\n\n\treturn (\n\t\t<RadixSlot ref={forwardedRef} {...props}>\n\t\t\t{cloneElement(children, {\n\t\t\t\t...children.props,\n\t\t\t\t/**\n\t\t\t\t * ClassName merge precedence (highest → lowest):\n\t\t\t\t *\n\t\t\t\t * 1. Child element’s own `className` ← most specific / closest to the DOM\n\t\t\t\t * 2. Slot’s `className` ← passed from the parent component\n\t\t\t\t * 3. Component’s internal base styles ← applied earlier inside the component\n\t\t\t\t *\n\t\t\t\t * We intentionally merge in this order so the child can fully override\n\t\t\t\t * parent + base styles when using `asChild`, preserving the “most specific wins”\n\t\t\t\t * behavior while still letting the component define sensible defaults.\n\t\t\t\t */\n\t\t\t\tclassName: cx(className, children.props.className),\n\t\t\t})}\n\t\t</RadixSlot>\n\t);\n});\n\nexport {\n\t//,\n\tSlot,\n};\n"],"mappings":"gNAoBA,MAAMA,EAAO,EAA+B,SAC3C,CAAE,WAAU,YAAW,GAAG,GAC1B,EACC,CAKD,OAJK,EAAuC,EAAS,CAKpD,EAACC,EAAD,CAAW,IAAK,EAAc,GAAI,WAChC,EAAa,EAAU,CACvB,GAAG,EAAS,MAYZ,UAAW,EAAG,EAAW,EAAS,MAAM,UAAU,CAClD,CAAC,CACS,CAAA,CApBL,EAAS,KAAK,EAAS,EAsB9B"}
1
+ {"version":3,"file":"slot-CV5fmqFr.js","names":["Slot","RadixSlot"],"sources":["../src/components/slot/slot.tsx"],"sourcesContent":["import { Slot as RadixSlot } from \"@radix-ui/react-slot\";\nimport { Children, type ComponentProps, cloneElement, forwardRef, isValidElement } from \"react\";\nimport { cx } from \"../../utils/cx/cx.js\";\n\ntype Props = ComponentProps<typeof RadixSlot>;\n\n/**\n * Merges its props onto its immediate child. This is useful for creating\n * components that can be rendered as different elements. Automatically merges\n * className props using `cx` for proper Tailwind class handling.\n *\n * @see https://mantle.ngrok.com/components/slot\n *\n * @example\n * ```tsx\n * <Slot className=\"custom-class\">\n * <a href=\"/\">Home</a>\n * </Slot>\n * ```\n */\nconst Slot = forwardRef<HTMLElement, Props>(function Slot(\n\t{ children, className, ...props },\n\tforwardedRef,\n) {\n\tif (!isValidElement<{ className?: string }>(children)) {\n\t\treturn Children.only(children);\n\t}\n\n\treturn (\n\t\t<RadixSlot ref={forwardedRef} {...props}>\n\t\t\t{cloneElement(children, {\n\t\t\t\t...children.props,\n\t\t\t\t/**\n\t\t\t\t * ClassName merge precedence (highest → lowest):\n\t\t\t\t *\n\t\t\t\t * 1. Child element’s own `className` ← most specific / closest to the DOM\n\t\t\t\t * 2. Slot’s `className` ← passed from the parent component\n\t\t\t\t * 3. Component’s internal base styles ← applied earlier inside the component\n\t\t\t\t *\n\t\t\t\t * We intentionally merge in this order so the child can fully override\n\t\t\t\t * parent + base styles when using `asChild`, preserving the “most specific wins”\n\t\t\t\t * behavior while still letting the component define sensible defaults.\n\t\t\t\t */\n\t\t\t\tclassName: cx(className, children.props.className),\n\t\t\t})}\n\t\t</RadixSlot>\n\t);\n});\n\nexport {\n\t//,\n\tSlot,\n};\n"],"mappings":"gNAoBA,MAAMA,EAAO,EAA+B,SAC3C,CAAE,WAAU,YAAW,GAAG,GAC1B,EACC,CAKD,OAJK,EAAuC,CAAQ,EAKnD,EAACC,EAAD,CAAW,IAAK,EAAc,GAAI,WAChC,EAAa,EAAU,CACvB,GAAG,EAAS,MAYZ,UAAW,EAAG,EAAW,EAAS,MAAM,SAAS,CAClD,CAAC,CACS,CAAA,EApBJ,EAAS,KAAK,CAAQ,CAsB/B,CAAC"}
package/dist/slot.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { t as Slot } from "./index-BhlxYL_y.js";
1
+ import { t as Slot } from "./index-BL5WVva_.js";
2
2
  export { Slot };
package/dist/slot.js CHANGED
@@ -1 +1 @@
1
- import{t as e}from"./slot-D_ZUrdEW.js";export{e as Slot};
1
+ import{t as e}from"./slot-CV5fmqFr.js";export{e as Slot};
@@ -1,2 +1,2 @@
1
- import{i as e}from"./direction-HqPHXGIs.js";import{jsx as t}from"react/jsx-runtime";import{SortAscendingIcon as n}from"@phosphor-icons/react/SortAscending";import{SortDescendingIcon as r}from"@phosphor-icons/react/SortDescending";const i=({mode:i,direction:a,...o})=>{switch(i){case`alphanumeric`:switch(a){case`asc`:return t(n,{...o});case`desc`:return t(r,{...o});default:throw Error(`Invalid alphanumeric sorting direction given: "${a}"`)}case`time`:switch(e(a)){case`oldest-to-newest`:return t(r,{...o});case`newest-to-oldest`:return t(n,{...o});default:throw Error(`Invalid time sorting direction given: "${a}"`)}}};i.displayName=`SortIcon`;export{i as t};
2
- //# sourceMappingURL=sort-mXo37xN2.js.map
1
+ import{i as e}from"./direction-Wa9W2F61.js";import{jsx as t}from"react/jsx-runtime";import{SortAscendingIcon as n}from"@phosphor-icons/react/SortAscending";import{SortDescendingIcon as r}from"@phosphor-icons/react/SortDescending";const i=({mode:i,direction:a,...o})=>{switch(i){case`alphanumeric`:switch(a){case`asc`:return t(n,{...o});case`desc`:return t(r,{...o});default:throw Error(`Invalid alphanumeric sorting direction given: "${a}"`)}case`time`:switch(e(a)){case`oldest-to-newest`:return t(r,{...o});case`newest-to-oldest`:return t(n,{...o});default:throw Error(`Invalid time sorting direction given: "${a}"`)}}};i.displayName=`SortIcon`;export{i as t};
2
+ //# sourceMappingURL=sort-BPX2Fk9t.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sort-mXo37xN2.js","names":[],"sources":["../src/components/icons/sort.tsx"],"sourcesContent":["import { SortAscendingIcon } from \"@phosphor-icons/react/SortAscending\";\nimport { SortDescendingIcon } from \"@phosphor-icons/react/SortDescending\";\nimport {\n\t$timeSortingDirection,\n\ttype AlphanumericSortingDirection,\n\ttype SortingDirection,\n\ttype SortingMode,\n\ttype TimeSortingDirection,\n} from \"../../utils/sorting/direction.js\";\nimport type { SvgAttributes } from \"../icon/types.js\";\n\ntype Props = SvgAttributes &\n\t(\n\t\t| {\n\t\t\t\tmode: Extract<SortingMode, \"alphanumeric\">;\n\t\t\t\t/**\n\t\t\t\t * Sort by alphanumeric order in \"ascending\" (asc) or \"descending\" (desc) order.\n\t\t\t\t * @example \"asc\" for A-Z, 0-9\n\t\t\t\t * @example \"desc\" for Z-A, 0-9\n\t\t\t\t */\n\t\t\t\tdirection: AlphanumericSortingDirection;\n\t\t }\n\t\t| {\n\t\t\t\tmode: Extract<SortingMode, \"time\">;\n\t\t\t\t/**\n\t\t\t\t * Sort by time in \"newest-to-oldest\" (descending, desc) or \"oldest-to-newest\" (ascending, asc) order.\n\t\t\t\t * @example \"newest-to-oldest\" for newest first (aka descending, desc)\n\t\t\t\t * @example \"oldest-to-newest\" for oldest first (aka ascending, asc)\n\t\t\t\t */\n\t\t\t\tdirection: TimeSortingDirection | SortingDirection;\n\t\t }\n\t);\n\n/**\n * A sorting icon that can be used to indicate the sorting direction of a table column or list.\n * It is aware of the sorting mode (alphanumeric or time) and the sorting direction (ascending or descending).\n */\nconst SortIcon = ({ mode, direction, ...props }: Props) => {\n\tswitch (mode) {\n\t\tcase \"alphanumeric\": {\n\t\t\tswitch (direction) {\n\t\t\t\tcase \"asc\":\n\t\t\t\t\treturn <SortAscendingIcon {...props} />;\n\t\t\t\tcase \"desc\":\n\t\t\t\t\treturn <SortDescendingIcon {...props} />;\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error(`Invalid alphanumeric sorting direction given: \"${direction}\"`);\n\t\t\t}\n\t\t}\n\t\tcase \"time\": {\n\t\t\tconst timeSortingDirection = $timeSortingDirection(direction);\n\n\t\t\tswitch (timeSortingDirection) {\n\t\t\t\tcase \"oldest-to-newest\":\n\t\t\t\t\treturn <SortDescendingIcon {...props} />;\n\t\t\t\tcase \"newest-to-oldest\":\n\t\t\t\t\treturn <SortAscendingIcon {...props} />;\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error(`Invalid time sorting direction given: \"${direction}\"`);\n\t\t\t}\n\t\t}\n\t}\n};\nSortIcon.displayName = \"SortIcon\";\n\nexport {\n\t//,\n\tSortIcon,\n};\n"],"mappings":"sOAqCA,MAAM,GAAY,CAAE,OAAM,YAAW,GAAG,KAAmB,CAC1D,OAAQ,EAAR,CACC,IAAK,eACJ,OAAQ,EAAR,CACC,IAAK,MACJ,OAAO,EAAC,EAAD,CAAmB,GAAI,EAAS,CAAA,CACxC,IAAK,OACJ,OAAO,EAAC,EAAD,CAAoB,GAAI,EAAS,CAAA,CACzC,QACC,MAAU,MAAM,kDAAkD,EAAU,GAAG,CAGlF,IAAK,OAGJ,OAF6B,EAAsB,EAEvB,CAA5B,CACC,IAAK,mBACJ,OAAO,EAAC,EAAD,CAAoB,GAAI,EAAS,CAAA,CACzC,IAAK,mBACJ,OAAO,EAAC,EAAD,CAAmB,GAAI,EAAS,CAAA,CACxC,QACC,MAAU,MAAM,0CAA0C,EAAU,GAAG,IAK5E,EAAS,YAAc"}
1
+ {"version":3,"file":"sort-BPX2Fk9t.js","names":[],"sources":["../src/components/icons/sort.tsx"],"sourcesContent":["import { SortAscendingIcon } from \"@phosphor-icons/react/SortAscending\";\nimport { SortDescendingIcon } from \"@phosphor-icons/react/SortDescending\";\nimport {\n\t$timeSortingDirection,\n\ttype AlphanumericSortingDirection,\n\ttype SortingDirection,\n\ttype SortingMode,\n\ttype TimeSortingDirection,\n} from \"../../utils/sorting/direction.js\";\nimport type { SvgAttributes } from \"../icon/types.js\";\n\ntype Props = SvgAttributes &\n\t(\n\t\t| {\n\t\t\t\tmode: Extract<SortingMode, \"alphanumeric\">;\n\t\t\t\t/**\n\t\t\t\t * Sort by alphanumeric order in \"ascending\" (asc) or \"descending\" (desc) order.\n\t\t\t\t * @example \"asc\" for A-Z, 0-9\n\t\t\t\t * @example \"desc\" for Z-A, 0-9\n\t\t\t\t */\n\t\t\t\tdirection: AlphanumericSortingDirection;\n\t\t }\n\t\t| {\n\t\t\t\tmode: Extract<SortingMode, \"time\">;\n\t\t\t\t/**\n\t\t\t\t * Sort by time in \"newest-to-oldest\" (descending, desc) or \"oldest-to-newest\" (ascending, asc) order.\n\t\t\t\t * @example \"newest-to-oldest\" for newest first (aka descending, desc)\n\t\t\t\t * @example \"oldest-to-newest\" for oldest first (aka ascending, asc)\n\t\t\t\t */\n\t\t\t\tdirection: TimeSortingDirection | SortingDirection;\n\t\t }\n\t);\n\n/**\n * A sorting icon that can be used to indicate the sorting direction of a table column or list.\n * It is aware of the sorting mode (alphanumeric or time) and the sorting direction (ascending or descending).\n */\nconst SortIcon = ({ mode, direction, ...props }: Props) => {\n\tswitch (mode) {\n\t\tcase \"alphanumeric\": {\n\t\t\tswitch (direction) {\n\t\t\t\tcase \"asc\":\n\t\t\t\t\treturn <SortAscendingIcon {...props} />;\n\t\t\t\tcase \"desc\":\n\t\t\t\t\treturn <SortDescendingIcon {...props} />;\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error(`Invalid alphanumeric sorting direction given: \"${direction}\"`);\n\t\t\t}\n\t\t}\n\t\tcase \"time\": {\n\t\t\tconst timeSortingDirection = $timeSortingDirection(direction);\n\n\t\t\tswitch (timeSortingDirection) {\n\t\t\t\tcase \"oldest-to-newest\":\n\t\t\t\t\treturn <SortDescendingIcon {...props} />;\n\t\t\t\tcase \"newest-to-oldest\":\n\t\t\t\t\treturn <SortAscendingIcon {...props} />;\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error(`Invalid time sorting direction given: \"${direction}\"`);\n\t\t\t}\n\t\t}\n\t}\n};\nSortIcon.displayName = \"SortIcon\";\n\nexport {\n\t//,\n\tSortIcon,\n};\n"],"mappings":"sOAqCA,MAAM,GAAY,CAAE,OAAM,YAAW,GAAG,KAAmB,CAC1D,OAAQ,EAAR,CACC,IAAK,eACJ,OAAQ,EAAR,CACC,IAAK,MACJ,OAAO,EAAC,EAAD,CAAmB,GAAI,CAAQ,CAAA,EACvC,IAAK,OACJ,OAAO,EAAC,EAAD,CAAoB,GAAI,CAAQ,CAAA,EACxC,QACC,MAAU,MAAM,kDAAkD,EAAU,EAAE,CAChF,CAED,IAAK,OAGJ,OAF6B,EAAsB,CAExB,EAA3B,CACC,IAAK,mBACJ,OAAO,EAAC,EAAD,CAAoB,GAAI,CAAQ,CAAA,EACxC,IAAK,mBACJ,OAAO,EAAC,EAAD,CAAmB,GAAI,CAAQ,CAAA,EACvC,QACC,MAAU,MAAM,0CAA0C,EAAU,EAAE,CACxE,CAEF,CACD,EACA,EAAS,YAAc"}
@@ -1,9 +1,7 @@
1
- import { t as IconButton } from "./icon-button-BDTb-lxs.js";
2
- import { t as Button } from "./button-DbHFERMB.js";
3
- import { t as DropdownMenu } from "./dropdown-menu-CvOiQUSZ.js";
4
- import * as _$react from "react";
1
+ import { t as IconButton } from "./icon-button-ntupABbM.js";
2
+ import { t as Button } from "./button-BYZOBUgj.js";
3
+ import { t as DropdownMenu } from "./dropdown-menu-BgYk4L8o.js";
5
4
  import { ComponentProps, ReactNode } from "react";
6
- import * as _$_radix_ui_react_dropdown_menu0 from "@radix-ui/react-dropdown-menu";
7
5
 
8
6
  //#region src/components/split-button/split-button.d.ts
9
7
  type RootProps = ComponentProps<typeof DropdownMenu.Root> & ComponentProps<"div">;
@@ -80,7 +78,7 @@ declare const SplitButton: {
80
78
  * </SplitButton.Root>
81
79
  * ```
82
80
  */
83
- readonly Root: _$react.ForwardRefExoticComponent<Omit<RootProps, "ref"> & _$react.RefAttributes<HTMLDivElement>>;
81
+ readonly Root: import("react").ForwardRefExoticComponent<Omit<RootProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
84
82
  /**
85
83
  * The most common action users can trigger with a single click.
86
84
  *
@@ -108,7 +106,7 @@ declare const SplitButton: {
108
106
  * </SplitButton.Root>
109
107
  * ```
110
108
  */
111
- readonly PrimaryAction: _$react.ForwardRefExoticComponent<Omit<PrimaryActionProps, "ref"> & _$react.RefAttributes<HTMLButtonElement>>;
109
+ readonly PrimaryAction: import("react").ForwardRefExoticComponent<Omit<PrimaryActionProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
112
110
  /**
113
111
  * The button that opens the split button dropdown menu.
114
112
  *
@@ -136,7 +134,7 @@ declare const SplitButton: {
136
134
  * </SplitButton.Root>
137
135
  * ```
138
136
  */
139
- readonly MenuTrigger: _$react.ForwardRefExoticComponent<Omit<MenuTriggerProps, "ref"> & _$react.RefAttributes<HTMLButtonElement>>;
137
+ readonly MenuTrigger: import("react").ForwardRefExoticComponent<Omit<MenuTriggerProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
140
138
  /**
141
139
  * The container for the split button dropdown menu content. Appears in a
142
140
  * portal with scrolling and animations.
@@ -165,9 +163,9 @@ declare const SplitButton: {
165
163
  * </SplitButton.Root>
166
164
  * ```
167
165
  */
168
- readonly MenuContent: _$react.ForwardRefExoticComponent<Omit<Omit<_$_radix_ui_react_dropdown_menu0.DropdownMenuContentProps & _$react.RefAttributes<HTMLDivElement>, "ref"> & {
166
+ readonly MenuContent: import("react").ForwardRefExoticComponent<Omit<Omit<import("@radix-ui/react-dropdown-menu").DropdownMenuContentProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & {
169
167
  width?: "trigger" | "content";
170
- } & _$react.RefAttributes<HTMLDivElement>, "ref"> & _$react.RefAttributes<HTMLDivElement>>;
168
+ } & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
171
169
  /**
172
170
  * A standard item in the split button dropdown menu that can be selected or
173
171
  * activated.
@@ -196,9 +194,9 @@ declare const SplitButton: {
196
194
  * </SplitButton.Root>
197
195
  * ```
198
196
  */
199
- readonly MenuItem: _$react.ForwardRefExoticComponent<Omit<Omit<_$_radix_ui_react_dropdown_menu0.DropdownMenuItemProps & _$react.RefAttributes<HTMLDivElement>, "ref"> & {
197
+ readonly MenuItem: import("react").ForwardRefExoticComponent<Omit<Omit<import("@radix-ui/react-dropdown-menu").DropdownMenuItemProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & {
200
198
  inset?: boolean;
201
- } & _$react.RefAttributes<HTMLDivElement>, "ref"> & _$react.RefAttributes<HTMLDivElement>>;
199
+ } & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
202
200
  };
203
201
  //#endregion
204
202
  export { SplitButton };
@@ -1,2 +1,2 @@
1
- import{t as e}from"./cx-D1HYnpvA.js";import{t}from"./icon-bWc5yC3-.js";import{t as n}from"./icon-button-ZKN0sRIJ.js";import{t as r}from"./button-GokecthL.js";import{t as i}from"./dropdown-menu-DY4w933w.js";import{CaretDownIcon as a}from"@phosphor-icons/react/CaretDown";import{forwardRef as o}from"react";import{jsx as s}from"react/jsx-runtime";const c=o(({className:t,children:n,dir:r,open:a,defaultOpen:o,onOpenChange:c,modal:l,...u},d)=>s(i.Root,{dir:r,open:a,defaultOpen:o,onOpenChange:c,modal:l,children:s(`div`,{"data-slot":`split-button`,className:e(`flex flex-row [&>*:first-child]:rounded-r-none [&>*:last-child]:rounded-l-none [&>*:not(:first-child):not(:last-child)]:rounded-none [&>*:not(:first-child)]:-ml-px [&>*:focus]:relative [&>*:focus]:z-10 [&>*:hover]:relative [&>*:hover]:z-10 *:active:scale-100!`,t),ref:d,...u,children:n})}));c.displayName=`SplitButton`;const l=o(({type:e=`button`,...t},n)=>s(r,{appearance:`outlined`,priority:`neutral`,ref:n,type:e,...t}));l.displayName=`SplitButtonPrimaryAction`;const u=o(({icon:e,type:r=`button`,...o},c)=>s(i.Trigger,{asChild:!0,className:`group`,children:s(n,{icon:e??s(t,{svg:s(a,{weight:`bold`,className:`size-4 group-data-[state=open]:-rotate-180 transition-transform ease-out duration-150`})}),appearance:`outlined`,ref:c,type:r,...o})}));u.displayName=`SplitButtonMenuTrigger`;const d=o(({align:e=`end`,...t},n)=>s(i.Content,{align:e,ref:n,...t}));d.displayName=`SplitButtonMenuContent`;const f=o(({className:t,...n},r)=>s(i.Item,{className:e(`gap-2`,t),ref:r,...n}));f.displayName=`SplitButtonMenuItem`;const p={Root:c,PrimaryAction:l,MenuTrigger:u,MenuContent:d,MenuItem:f};export{p as SplitButton};
1
+ import{t as e}from"./cx-CBSnSC36.js";import{t}from"./icon-C8bYBIHW.js";import{t as n}from"./icon-button-C_Ht_g1C.js";import{t as r}from"./button-uMIZVKit.js";import{t as i}from"./dropdown-menu-C3YZJBkV.js";import{CaretDownIcon as a}from"@phosphor-icons/react/CaretDown";import{forwardRef as o}from"react";import{jsx as s}from"react/jsx-runtime";const c=o(({className:t,children:n,dir:r,open:a,defaultOpen:o,onOpenChange:c,modal:l,...u},d)=>s(i.Root,{dir:r,open:a,defaultOpen:o,onOpenChange:c,modal:l,children:s(`div`,{"data-slot":`split-button`,className:e(`flex flex-row [&>*:first-child]:rounded-r-none [&>*:last-child]:rounded-l-none [&>*:not(:first-child):not(:last-child)]:rounded-none [&>*:not(:first-child)]:-ml-px [&>*:focus]:relative [&>*:focus]:z-10 [&>*:hover]:relative [&>*:hover]:z-10 *:active:scale-100!`,t),ref:d,...u,children:n})}));c.displayName=`SplitButton`;const l=o(({type:e=`button`,...t},n)=>s(r,{appearance:`outlined`,priority:`neutral`,ref:n,type:e,...t}));l.displayName=`SplitButtonPrimaryAction`;const u=o(({icon:e,type:r=`button`,...o},c)=>s(i.Trigger,{asChild:!0,className:`group`,children:s(n,{icon:e??s(t,{svg:s(a,{weight:`bold`,className:`size-4 group-data-[state=open]:-rotate-180 transition-transform ease-out duration-150`})}),appearance:`outlined`,ref:c,type:r,...o})}));u.displayName=`SplitButtonMenuTrigger`;const d=o(({align:e=`end`,...t},n)=>s(i.Content,{align:e,ref:n,...t}));d.displayName=`SplitButtonMenuContent`;const f=o(({className:t,...n},r)=>s(i.Item,{className:e(`gap-2`,t),ref:r,...n}));f.displayName=`SplitButtonMenuItem`;const p={Root:c,PrimaryAction:l,MenuTrigger:u,MenuContent:d,MenuItem:f};export{p as SplitButton};
2
2
  //# sourceMappingURL=split-button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"split-button.js","names":[],"sources":["../src/components/split-button/split-button.tsx"],"sourcesContent":["import { CaretDownIcon } from \"@phosphor-icons/react/CaretDown\";\nimport { forwardRef, type ComponentProps, type ComponentRef, type ReactNode } from \"react\";\nimport { cx } from \"../../utils/cx/cx.js\";\nimport { Button } from \"../button/button.js\";\nimport { IconButton } from \"../button/icon-button.js\";\nimport { DropdownMenu } from \"../dropdown-menu/dropdown-menu.js\";\nimport { Icon } from \"../icon/icon.js\";\n\ntype RootProps = ComponentProps<typeof DropdownMenu.Root> & ComponentProps<\"div\">;\n\nconst Root = forwardRef<ComponentRef<\"div\">, RootProps>(\n\t({ className, children, dir, open, defaultOpen, onOpenChange, modal, ...props }, ref) => {\n\t\treturn (\n\t\t\t<DropdownMenu.Root\n\t\t\t\tdir={dir}\n\t\t\t\topen={open}\n\t\t\t\tdefaultOpen={defaultOpen}\n\t\t\t\tonOpenChange={onOpenChange}\n\t\t\t\tmodal={modal}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tdata-slot=\"split-button\"\n\t\t\t\t\tclassName={cx(\n\t\t\t\t\t\t\"flex flex-row [&>*:first-child]:rounded-r-none [&>*:last-child]:rounded-l-none [&>*:not(:first-child):not(:last-child)]:rounded-none [&>*:not(:first-child)]:-ml-px [&>*:focus]:relative [&>*:focus]:z-10 [&>*:hover]:relative [&>*:hover]:z-10 *:active:scale-100!\",\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t)}\n\t\t\t\t\tref={ref}\n\t\t\t\t\t{...props}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</DropdownMenu.Root>\n\t\t);\n\t},\n);\nRoot.displayName = \"SplitButton\";\n\ntype PrimaryActionProps = Omit<ComponentProps<typeof Button>, \"appearance\" | \"type\" | \"priority\"> &\n\tPick<ComponentProps<\"button\">, \"type\">;\n\nconst PrimaryAction = forwardRef<ComponentRef<\"button\">, PrimaryActionProps>(\n\t({ type = \"button\", ...props }, ref) => {\n\t\treturn <Button appearance=\"outlined\" priority=\"neutral\" ref={ref} type={type} {...props} />;\n\t},\n);\nPrimaryAction.displayName = \"SplitButtonPrimaryAction\";\n\ntype MenuTriggerProps = Omit<\n\tComponentProps<typeof IconButton>,\n\t\"appearance\" | \"size\" | \"asChild\" | \"icon\"\n> &\n\tPick<ComponentProps<\"button\">, \"type\"> & {\n\t\ticon?: ReactNode;\n\t};\n\nconst MenuTrigger = forwardRef<ComponentRef<\"button\">, MenuTriggerProps>(\n\t({ icon, type = \"button\", ...props }, ref) => {\n\t\treturn (\n\t\t\t<DropdownMenu.Trigger asChild className=\"group\">\n\t\t\t\t<IconButton\n\t\t\t\t\ticon={\n\t\t\t\t\t\ticon ?? (\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\tsvg={\n\t\t\t\t\t\t\t\t\t<CaretDownIcon\n\t\t\t\t\t\t\t\t\t\tweight=\"bold\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"size-4 group-data-[state=open]:-rotate-180 transition-transform ease-out duration-150\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\tappearance=\"outlined\"\n\t\t\t\t\tref={ref}\n\t\t\t\t\ttype={type}\n\t\t\t\t\t{...props}\n\t\t\t\t/>\n\t\t\t</DropdownMenu.Trigger>\n\t\t);\n\t},\n);\nMenuTrigger.displayName = \"SplitButtonMenuTrigger\";\n\nconst MenuContent = forwardRef<\n\tComponentRef<typeof DropdownMenu.Content>,\n\tComponentProps<typeof DropdownMenu.Content>\n>(({ align = \"end\", ...props }, ref) => {\n\treturn <DropdownMenu.Content align={align} ref={ref} {...props} />;\n});\nMenuContent.displayName = \"SplitButtonMenuContent\";\n\nconst MenuItem = forwardRef<\n\tComponentRef<typeof DropdownMenu.Item>,\n\tComponentProps<typeof DropdownMenu.Item>\n>(({ className, ...props }, ref) => {\n\treturn <DropdownMenu.Item className={cx(\"gap-2\", className)} ref={ref} {...props} />;\n});\nMenuItem.displayName = \"SplitButtonMenuItem\";\n\n/**\n * A button group which provides a default action with one click while revealing\n * related alternatives through a dropdown menu. Best for when users typically\n * want one action but occasionally need variants.\n *\n * @see https://mantle.ngrok.com/components/split-button#splitbuttonroot\n *\n * @example\n * Composition:\n * ```\n * SplitButton.Root\n * ├── SplitButton.PrimaryAction\n * ├── SplitButton.MenuTrigger\n * └── SplitButton.MenuContent\n * └── SplitButton.MenuItem\n * ```\n *\n * @example\n * ```tsx\n * <SplitButton.Root>\n * <SplitButton.PrimaryAction icon={<CopyIcon />} onClick={copyMarkdownPage}>\n * Copy page\n * </SplitButton.PrimaryAction>\n * <SplitButton.MenuTrigger label=\"Open doc actions menu\" />\n * <SplitButton.MenuContent>\n * <SplitButton.MenuItem onClick={copyMarkdownPage}>\n * <Icon svg={<CopyIcon />} />\n * Copy page\n * </SplitButton.MenuItem>\n * <SplitButton.MenuItem asChild onClick={copyMarkdownPage}>\n * <a href={markdownUrl} target=\"_blank\">\n * <Icon svg={<FileTextIcon />} />\n * View as Markdown\n * </a>\n * </SplitButton.MenuItem>\n * </SplitButton.MenuContent>\n * </SplitButton.Root>\n * ```\n */\nconst SplitButton = {\n\t/**\n\t * A button group which provides a default action with one click while revealing\n\t * related alternatives through a dropdown menu. Best for when users typically\n\t * want one action but occasionally need variants.\n\t *\n\t * @see https://mantle.ngrok.com/components/split-button#splitbuttonroot\n\t *\n\t * @example\n\t * ```tsx\n\t * <SplitButton.Root>\n\t * <SplitButton.PrimaryAction icon={<CopyIcon />} onClick={copyMarkdownPage}>\n\t * Copy page\n\t * </SplitButton.PrimaryAction>\n\t * <SplitButton.MenuTrigger label=\"Open doc actions menu\" />\n\t * <SplitButton.MenuContent>\n\t * <SplitButton.MenuItem onClick={copyMarkdownPage}>\n\t * Copy page\n\t * <Icon svg={<CopyIcon />} />\n\t * </SplitButton.MenuItem>\n\t * <SplitButton.MenuItem asChild onClick={copyMarkdownPage}>\n\t * <a href={markdownUrl} target=\"_blank\">\n\t * View as Markdown\n\t * <Icon svg={<FileTextIcon />} />\n\t * </a>\n\t * </SplitButton.MenuItem>\n\t * </SplitButton.MenuContent>\n\t * </SplitButton.Root>\n\t * ```\n\t */\n\tRoot,\n\t/**\n\t * The most common action users can trigger with a single click.\n\t *\n\t * @see https://mantle.ngrok.com/components/split-button#splitbuttonprimaryaction\n\t *\n\t * @example\n\t * ```tsx\n\t * <SplitButton.Root>\n\t * <SplitButton.PrimaryAction icon={<CopyIcon />} onClick={copyMarkdownPage}>\n\t * Copy page\n\t * </SplitButton.PrimaryAction>\n\t * <SplitButton.MenuTrigger label=\"Open doc actions menu\" />\n\t * <SplitButton.MenuContent>\n\t * <SplitButton.MenuItem onClick={copyMarkdownPage}>\n\t * Copy page\n\t * <Icon svg={<CopyIcon />} />\n\t * </SplitButton.MenuItem>\n\t * <SplitButton.MenuItem asChild onClick={copyMarkdownPage}>\n\t * <a href={markdownUrl} target=\"_blank\">\n\t * View as Markdown\n\t * <Icon svg={<FileTextIcon />} />\n\t * </a>\n\t * </SplitButton.MenuItem>\n\t * </SplitButton.MenuContent>\n\t * </SplitButton.Root>\n\t * ```\n\t */\n\tPrimaryAction,\n\t/**\n\t * The button that opens the split button dropdown menu.\n\t *\n\t * @see https://mantle.ngrok.com/components/split-button#splitbuttonmenutrigger\n\t *\n\t * @example\n\t * ```tsx\n\t * <SplitButton.Root>\n\t * <SplitButton.PrimaryAction icon={<CopyIcon />} onClick={copyMarkdownPage}>\n\t * Copy page\n\t * </SplitButton.PrimaryAction>\n\t * <SplitButton.MenuTrigger label=\"Open doc actions menu\" />\n\t * <SplitButton.MenuContent>\n\t * <SplitButton.MenuItem onClick={copyMarkdownPage}>\n\t * Copy page\n\t * <Icon svg={<CopyIcon />} />\n\t * </SplitButton.MenuItem>\n\t * <SplitButton.MenuItem asChild onClick={copyMarkdownPage}>\n\t * <a href={markdownUrl} target=\"_blank\">\n\t * View as Markdown\n\t * <Icon svg={<FileTextIcon />} />\n\t * </a>\n\t * </SplitButton.MenuItem>\n\t * </SplitButton.MenuContent>\n\t * </SplitButton.Root>\n\t * ```\n\t */\n\tMenuTrigger,\n\t/**\n\t * The container for the split button dropdown menu content. Appears in a\n\t * portal with scrolling and animations.\n\t *\n\t * @see https://mantle.ngrok.com/components/split-button#splitbuttonmenucontent\n\t *\n\t * @example\n\t * ```tsx\n\t * <SplitButton.Root>\n\t * <SplitButton.PrimaryAction icon={<CopyIcon />} onClick={copyMarkdownPage}>\n\t * Copy page\n\t * </SplitButton.PrimaryAction>\n\t * <SplitButton.MenuTrigger label=\"Open doc actions menu\" />\n\t * <SplitButton.MenuContent>\n\t * <SplitButton.MenuItem onClick={copyMarkdownPage}>\n\t * Copy page\n\t * <Icon svg={<CopyIcon />} />\n\t * </SplitButton.MenuItem>\n\t * <SplitButton.MenuItem asChild onClick={copyMarkdownPage}>\n\t * <a href={markdownUrl} target=\"_blank\">\n\t * View as Markdown\n\t * <Icon svg={<FileTextIcon />} />\n\t * </a>\n\t * </SplitButton.MenuItem>\n\t * </SplitButton.MenuContent>\n\t * </SplitButton.Root>\n\t * ```\n\t */\n\tMenuContent,\n\t/**\n\t * A standard item in the split button dropdown menu that can be selected or\n\t * activated.\n\t *\n\t * @see https://mantle.ngrok.com/components/split-button#splitbuttonmenuitem\n\t *\n\t * @example\n\t * ```tsx\n\t * <SplitButton.Root>\n\t * <SplitButton.PrimaryAction icon={<CopyIcon />} onClick={copyMarkdownPage}>\n\t * Copy page\n\t * </SplitButton.PrimaryAction>\n\t * <SplitButton.MenuTrigger label=\"Open doc actions menu\" />\n\t * <SplitButton.MenuContent>\n\t * <SplitButton.MenuItem onClick={copyMarkdownPage}>\n\t * Copy page\n\t * <Icon svg={<CopyIcon />} />\n\t * </SplitButton.MenuItem>\n\t * <SplitButton.MenuItem asChild onClick={copyMarkdownPage}>\n\t * <a href={markdownUrl} target=\"_blank\">\n\t * View as Markdown\n\t * <Icon svg={<FileTextIcon />} />\n\t * </a>\n\t * </SplitButton.MenuItem>\n\t * </SplitButton.MenuContent>\n\t * </SplitButton.Root>\n\t * ```\n\t */\n\tMenuItem,\n} as const;\n\nexport { SplitButton };\n"],"mappings":"yVAUA,MAAM,EAAO,GACX,CAAE,YAAW,WAAU,MAAK,OAAM,cAAa,eAAc,QAAO,GAAG,GAAS,IAE/E,EAAC,EAAa,KAAd,CACM,MACC,OACO,cACC,eACP,iBAEP,EAAC,MAAD,CACC,YAAU,eACV,UAAW,EACV,sQACA,EACA,CACI,MACL,GAAI,EAEH,WACI,CAAA,CACa,CAAA,CAGtB,CACD,EAAK,YAAc,cAKnB,MAAM,EAAgB,GACpB,CAAE,OAAO,SAAU,GAAG,GAAS,IACxB,EAAC,EAAD,CAAQ,WAAW,WAAW,SAAS,UAAe,MAAW,OAAM,GAAI,EAAS,CAAA,CAE5F,CACD,EAAc,YAAc,2BAU5B,MAAM,EAAc,GAClB,CAAE,OAAM,OAAO,SAAU,GAAG,GAAS,IAEpC,EAAC,EAAa,QAAd,CAAsB,QAAA,GAAQ,UAAU,iBACvC,EAAC,EAAD,CACC,KACC,GACC,EAAC,EAAD,CACC,IACC,EAAC,EAAD,CACC,OAAO,OACP,UAAU,wFACT,CAAA,CAEF,CAAA,CAGJ,WAAW,WACN,MACC,OACN,GAAI,EACH,CAAA,CACoB,CAAA,CAGzB,CACD,EAAY,YAAc,yBAE1B,MAAM,EAAc,GAGjB,CAAE,QAAQ,MAAO,GAAG,GAAS,IACxB,EAAC,EAAa,QAAd,CAA6B,QAAY,MAAK,GAAI,EAAS,CAAA,CACjE,CACF,EAAY,YAAc,yBAE1B,MAAM,EAAW,GAGd,CAAE,YAAW,GAAG,GAAS,IACpB,EAAC,EAAa,KAAd,CAAmB,UAAW,EAAG,QAAS,EAAU,CAAO,MAAK,GAAI,EAAS,CAAA,CACnF,CACF,EAAS,YAAc,sBAyCvB,MAAM,EAAc,CA8BnB,OA4BA,gBA4BA,cA6BA,cA6BA,WACA"}
1
+ {"version":3,"file":"split-button.js","names":[],"sources":["../src/components/split-button/split-button.tsx"],"sourcesContent":["import { CaretDownIcon } from \"@phosphor-icons/react/CaretDown\";\nimport { forwardRef, type ComponentProps, type ComponentRef, type ReactNode } from \"react\";\nimport { cx } from \"../../utils/cx/cx.js\";\nimport { Button } from \"../button/button.js\";\nimport { IconButton } from \"../button/icon-button.js\";\nimport { DropdownMenu } from \"../dropdown-menu/dropdown-menu.js\";\nimport { Icon } from \"../icon/icon.js\";\n\ntype RootProps = ComponentProps<typeof DropdownMenu.Root> & ComponentProps<\"div\">;\n\nconst Root = forwardRef<ComponentRef<\"div\">, RootProps>(\n\t({ className, children, dir, open, defaultOpen, onOpenChange, modal, ...props }, ref) => {\n\t\treturn (\n\t\t\t<DropdownMenu.Root\n\t\t\t\tdir={dir}\n\t\t\t\topen={open}\n\t\t\t\tdefaultOpen={defaultOpen}\n\t\t\t\tonOpenChange={onOpenChange}\n\t\t\t\tmodal={modal}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tdata-slot=\"split-button\"\n\t\t\t\t\tclassName={cx(\n\t\t\t\t\t\t\"flex flex-row [&>*:first-child]:rounded-r-none [&>*:last-child]:rounded-l-none [&>*:not(:first-child):not(:last-child)]:rounded-none [&>*:not(:first-child)]:-ml-px [&>*:focus]:relative [&>*:focus]:z-10 [&>*:hover]:relative [&>*:hover]:z-10 *:active:scale-100!\",\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t)}\n\t\t\t\t\tref={ref}\n\t\t\t\t\t{...props}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</DropdownMenu.Root>\n\t\t);\n\t},\n);\nRoot.displayName = \"SplitButton\";\n\ntype PrimaryActionProps = Omit<ComponentProps<typeof Button>, \"appearance\" | \"type\" | \"priority\"> &\n\tPick<ComponentProps<\"button\">, \"type\">;\n\nconst PrimaryAction = forwardRef<ComponentRef<\"button\">, PrimaryActionProps>(\n\t({ type = \"button\", ...props }, ref) => {\n\t\treturn <Button appearance=\"outlined\" priority=\"neutral\" ref={ref} type={type} {...props} />;\n\t},\n);\nPrimaryAction.displayName = \"SplitButtonPrimaryAction\";\n\ntype MenuTriggerProps = Omit<\n\tComponentProps<typeof IconButton>,\n\t\"appearance\" | \"size\" | \"asChild\" | \"icon\"\n> &\n\tPick<ComponentProps<\"button\">, \"type\"> & {\n\t\ticon?: ReactNode;\n\t};\n\nconst MenuTrigger = forwardRef<ComponentRef<\"button\">, MenuTriggerProps>(\n\t({ icon, type = \"button\", ...props }, ref) => {\n\t\treturn (\n\t\t\t<DropdownMenu.Trigger asChild className=\"group\">\n\t\t\t\t<IconButton\n\t\t\t\t\ticon={\n\t\t\t\t\t\ticon ?? (\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\tsvg={\n\t\t\t\t\t\t\t\t\t<CaretDownIcon\n\t\t\t\t\t\t\t\t\t\tweight=\"bold\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"size-4 group-data-[state=open]:-rotate-180 transition-transform ease-out duration-150\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\tappearance=\"outlined\"\n\t\t\t\t\tref={ref}\n\t\t\t\t\ttype={type}\n\t\t\t\t\t{...props}\n\t\t\t\t/>\n\t\t\t</DropdownMenu.Trigger>\n\t\t);\n\t},\n);\nMenuTrigger.displayName = \"SplitButtonMenuTrigger\";\n\nconst MenuContent = forwardRef<\n\tComponentRef<typeof DropdownMenu.Content>,\n\tComponentProps<typeof DropdownMenu.Content>\n>(({ align = \"end\", ...props }, ref) => {\n\treturn <DropdownMenu.Content align={align} ref={ref} {...props} />;\n});\nMenuContent.displayName = \"SplitButtonMenuContent\";\n\nconst MenuItem = forwardRef<\n\tComponentRef<typeof DropdownMenu.Item>,\n\tComponentProps<typeof DropdownMenu.Item>\n>(({ className, ...props }, ref) => {\n\treturn <DropdownMenu.Item className={cx(\"gap-2\", className)} ref={ref} {...props} />;\n});\nMenuItem.displayName = \"SplitButtonMenuItem\";\n\n/**\n * A button group which provides a default action with one click while revealing\n * related alternatives through a dropdown menu. Best for when users typically\n * want one action but occasionally need variants.\n *\n * @see https://mantle.ngrok.com/components/split-button#splitbuttonroot\n *\n * @example\n * Composition:\n * ```\n * SplitButton.Root\n * ├── SplitButton.PrimaryAction\n * ├── SplitButton.MenuTrigger\n * └── SplitButton.MenuContent\n * └── SplitButton.MenuItem\n * ```\n *\n * @example\n * ```tsx\n * <SplitButton.Root>\n * <SplitButton.PrimaryAction icon={<CopyIcon />} onClick={copyMarkdownPage}>\n * Copy page\n * </SplitButton.PrimaryAction>\n * <SplitButton.MenuTrigger label=\"Open doc actions menu\" />\n * <SplitButton.MenuContent>\n * <SplitButton.MenuItem onClick={copyMarkdownPage}>\n * <Icon svg={<CopyIcon />} />\n * Copy page\n * </SplitButton.MenuItem>\n * <SplitButton.MenuItem asChild onClick={copyMarkdownPage}>\n * <a href={markdownUrl} target=\"_blank\">\n * <Icon svg={<FileTextIcon />} />\n * View as Markdown\n * </a>\n * </SplitButton.MenuItem>\n * </SplitButton.MenuContent>\n * </SplitButton.Root>\n * ```\n */\nconst SplitButton = {\n\t/**\n\t * A button group which provides a default action with one click while revealing\n\t * related alternatives through a dropdown menu. Best for when users typically\n\t * want one action but occasionally need variants.\n\t *\n\t * @see https://mantle.ngrok.com/components/split-button#splitbuttonroot\n\t *\n\t * @example\n\t * ```tsx\n\t * <SplitButton.Root>\n\t * <SplitButton.PrimaryAction icon={<CopyIcon />} onClick={copyMarkdownPage}>\n\t * Copy page\n\t * </SplitButton.PrimaryAction>\n\t * <SplitButton.MenuTrigger label=\"Open doc actions menu\" />\n\t * <SplitButton.MenuContent>\n\t * <SplitButton.MenuItem onClick={copyMarkdownPage}>\n\t * Copy page\n\t * <Icon svg={<CopyIcon />} />\n\t * </SplitButton.MenuItem>\n\t * <SplitButton.MenuItem asChild onClick={copyMarkdownPage}>\n\t * <a href={markdownUrl} target=\"_blank\">\n\t * View as Markdown\n\t * <Icon svg={<FileTextIcon />} />\n\t * </a>\n\t * </SplitButton.MenuItem>\n\t * </SplitButton.MenuContent>\n\t * </SplitButton.Root>\n\t * ```\n\t */\n\tRoot,\n\t/**\n\t * The most common action users can trigger with a single click.\n\t *\n\t * @see https://mantle.ngrok.com/components/split-button#splitbuttonprimaryaction\n\t *\n\t * @example\n\t * ```tsx\n\t * <SplitButton.Root>\n\t * <SplitButton.PrimaryAction icon={<CopyIcon />} onClick={copyMarkdownPage}>\n\t * Copy page\n\t * </SplitButton.PrimaryAction>\n\t * <SplitButton.MenuTrigger label=\"Open doc actions menu\" />\n\t * <SplitButton.MenuContent>\n\t * <SplitButton.MenuItem onClick={copyMarkdownPage}>\n\t * Copy page\n\t * <Icon svg={<CopyIcon />} />\n\t * </SplitButton.MenuItem>\n\t * <SplitButton.MenuItem asChild onClick={copyMarkdownPage}>\n\t * <a href={markdownUrl} target=\"_blank\">\n\t * View as Markdown\n\t * <Icon svg={<FileTextIcon />} />\n\t * </a>\n\t * </SplitButton.MenuItem>\n\t * </SplitButton.MenuContent>\n\t * </SplitButton.Root>\n\t * ```\n\t */\n\tPrimaryAction,\n\t/**\n\t * The button that opens the split button dropdown menu.\n\t *\n\t * @see https://mantle.ngrok.com/components/split-button#splitbuttonmenutrigger\n\t *\n\t * @example\n\t * ```tsx\n\t * <SplitButton.Root>\n\t * <SplitButton.PrimaryAction icon={<CopyIcon />} onClick={copyMarkdownPage}>\n\t * Copy page\n\t * </SplitButton.PrimaryAction>\n\t * <SplitButton.MenuTrigger label=\"Open doc actions menu\" />\n\t * <SplitButton.MenuContent>\n\t * <SplitButton.MenuItem onClick={copyMarkdownPage}>\n\t * Copy page\n\t * <Icon svg={<CopyIcon />} />\n\t * </SplitButton.MenuItem>\n\t * <SplitButton.MenuItem asChild onClick={copyMarkdownPage}>\n\t * <a href={markdownUrl} target=\"_blank\">\n\t * View as Markdown\n\t * <Icon svg={<FileTextIcon />} />\n\t * </a>\n\t * </SplitButton.MenuItem>\n\t * </SplitButton.MenuContent>\n\t * </SplitButton.Root>\n\t * ```\n\t */\n\tMenuTrigger,\n\t/**\n\t * The container for the split button dropdown menu content. Appears in a\n\t * portal with scrolling and animations.\n\t *\n\t * @see https://mantle.ngrok.com/components/split-button#splitbuttonmenucontent\n\t *\n\t * @example\n\t * ```tsx\n\t * <SplitButton.Root>\n\t * <SplitButton.PrimaryAction icon={<CopyIcon />} onClick={copyMarkdownPage}>\n\t * Copy page\n\t * </SplitButton.PrimaryAction>\n\t * <SplitButton.MenuTrigger label=\"Open doc actions menu\" />\n\t * <SplitButton.MenuContent>\n\t * <SplitButton.MenuItem onClick={copyMarkdownPage}>\n\t * Copy page\n\t * <Icon svg={<CopyIcon />} />\n\t * </SplitButton.MenuItem>\n\t * <SplitButton.MenuItem asChild onClick={copyMarkdownPage}>\n\t * <a href={markdownUrl} target=\"_blank\">\n\t * View as Markdown\n\t * <Icon svg={<FileTextIcon />} />\n\t * </a>\n\t * </SplitButton.MenuItem>\n\t * </SplitButton.MenuContent>\n\t * </SplitButton.Root>\n\t * ```\n\t */\n\tMenuContent,\n\t/**\n\t * A standard item in the split button dropdown menu that can be selected or\n\t * activated.\n\t *\n\t * @see https://mantle.ngrok.com/components/split-button#splitbuttonmenuitem\n\t *\n\t * @example\n\t * ```tsx\n\t * <SplitButton.Root>\n\t * <SplitButton.PrimaryAction icon={<CopyIcon />} onClick={copyMarkdownPage}>\n\t * Copy page\n\t * </SplitButton.PrimaryAction>\n\t * <SplitButton.MenuTrigger label=\"Open doc actions menu\" />\n\t * <SplitButton.MenuContent>\n\t * <SplitButton.MenuItem onClick={copyMarkdownPage}>\n\t * Copy page\n\t * <Icon svg={<CopyIcon />} />\n\t * </SplitButton.MenuItem>\n\t * <SplitButton.MenuItem asChild onClick={copyMarkdownPage}>\n\t * <a href={markdownUrl} target=\"_blank\">\n\t * View as Markdown\n\t * <Icon svg={<FileTextIcon />} />\n\t * </a>\n\t * </SplitButton.MenuItem>\n\t * </SplitButton.MenuContent>\n\t * </SplitButton.Root>\n\t * ```\n\t */\n\tMenuItem,\n} as const;\n\nexport { SplitButton };\n"],"mappings":"yVAUA,MAAM,EAAO,GACX,CAAE,YAAW,WAAU,MAAK,OAAM,cAAa,eAAc,QAAO,GAAG,GAAS,IAE/E,EAAC,EAAa,KAAd,CACM,MACC,OACO,cACC,eACP,iBAEP,EAAC,MAAD,CACC,YAAU,eACV,UAAW,EACV,sQACA,CACD,EACK,MACL,GAAI,EAEH,UACG,CAAA,CACa,CAAA,CAGtB,EACA,EAAK,YAAc,cAKnB,MAAM,EAAgB,GACpB,CAAE,OAAO,SAAU,GAAG,GAAS,IACxB,EAAC,EAAD,CAAQ,WAAW,WAAW,SAAS,UAAe,MAAW,OAAM,GAAI,CAAQ,CAAA,CAE5F,EACA,EAAc,YAAc,2BAU5B,MAAM,EAAc,GAClB,CAAE,OAAM,OAAO,SAAU,GAAG,GAAS,IAEpC,EAAC,EAAa,QAAd,CAAsB,QAAA,GAAQ,UAAU,iBACvC,EAAC,EAAD,CACC,KACC,GACC,EAAC,EAAD,CACC,IACC,EAAC,EAAD,CACC,OAAO,OACP,UAAU,uFACV,CAAA,CAEF,CAAA,EAGH,WAAW,WACN,MACC,OACN,GAAI,CACJ,CAAA,CACoB,CAAA,CAGzB,EACA,EAAY,YAAc,yBAE1B,MAAM,EAAc,GAGjB,CAAE,QAAQ,MAAO,GAAG,GAAS,IACxB,EAAC,EAAa,QAAd,CAA6B,QAAY,MAAK,GAAI,CAAQ,CAAA,CACjE,EACD,EAAY,YAAc,yBAE1B,MAAM,EAAW,GAGd,CAAE,YAAW,GAAG,GAAS,IACpB,EAAC,EAAa,KAAd,CAAmB,UAAW,EAAG,QAAS,CAAS,EAAQ,MAAK,GAAI,CAAQ,CAAA,CACnF,EACD,EAAS,YAAc,sBAyCvB,MAAM,EAAc,CA8BnB,OA4BA,gBA4BA,cA6BA,cA6BA,UACD"}
@@ -1,2 +1,2 @@
1
- import{t as e}from"./cx-D1HYnpvA.js";import{Children as t,cloneElement as n,forwardRef as r,isValidElement as i}from"react";import a from"tiny-invariant";const o=r(({className:r,style:o,svg:s,...c},l)=>(a(i(s)&&t.only(s),`SvgOnly must be passed a single SVG icon as a JSX tag.`),n(s,{"data-slot":`svg-only`,...c,className:e(`shrink-0`,r,s.props.className),style:{...o,...s.props.style},ref:l})));o.displayName=`SvgOnly`;export{o as t};
2
- //# sourceMappingURL=svg-only-7gYlsX8f.js.map
1
+ import{t as e}from"./cx-CBSnSC36.js";import{Children as t,cloneElement as n,forwardRef as r,isValidElement as i}from"react";import a from"tiny-invariant";const o=r(({className:r,style:o,svg:s,...c},l)=>(a(i(s)&&t.only(s),`SvgOnly must be passed a single SVG icon as a JSX tag.`),n(s,{"data-slot":`svg-only`,...c,className:e(`shrink-0`,r,s.props.className),style:{...o,...s.props.style},ref:l})));o.displayName=`SvgOnly`;export{o as t};
2
+ //# sourceMappingURL=svg-only-Cz1cby8y.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"svg-only-7gYlsX8f.js","names":[],"sources":["../src/components/icon/svg-only.tsx"],"sourcesContent":["import type { ComponentRef, ReactNode } from \"react\";\nimport { Children, cloneElement, forwardRef, isValidElement } from \"react\";\nimport invariant from \"tiny-invariant\";\nimport { cx } from \"../../utils/cx/cx.js\";\nimport type { SvgAttributes } from \"./types.js\";\n\ntype SvgOnlyProps = Omit<SvgAttributes, \"children\"> & {\n\t/**\n\t * A single SVG icon element.\n\t */\n\tsvg: ReactNode;\n};\n\n/**\n * Accepts a single SVG icon element and decorates it with `shrink-0` class.\n * You probably want to use the `Icon` component instead.\n *\n * @see https://mantle.ngrok.com/components/icon\n *\n * @example\n * ```tsx\n * import { ShrimpIcon } from \"@phosphor-icons/react/Shrimp\";\n *\n * <SvgOnly svg={<ShrimpIcon />} />\n * ```\n */\nconst SvgOnly = forwardRef<ComponentRef<\"svg\">, SvgOnlyProps>(\n\t({ className, style, svg, ...props }, ref) => {\n\t\tinvariant(\n\t\t\tisValidElement<SvgAttributes>(svg) && Children.only(svg),\n\t\t\t\"SvgOnly must be passed a single SVG icon as a JSX tag.\",\n\t\t);\n\n\t\treturn cloneElement(svg, {\n\t\t\t\"data-slot\": \"svg-only\",\n\t\t\t...props,\n\t\t\tclassName: cx(\n\t\t\t\t\"shrink-0\", // the SvgOnly base classes\n\t\t\t\tclassName, // the SvgOnly className\n\t\t\t\tsvg.props.className, // the svg className\n\t\t\t),\n\t\t\tstyle: { ...style, ...svg.props.style },\n\t\t\tref,\n\t\t});\n\t},\n);\nSvgOnly.displayName = \"SvgOnly\";\n\nexport {\n\t//,\n\tSvgOnly,\n};\n\nexport type {\n\t//,\n\tSvgOnlyProps,\n};\n"],"mappings":"0JA0BA,MAAM,EAAU,GACd,CAAE,YAAW,QAAO,MAAK,GAAG,GAAS,KACrC,EACC,EAA8B,EAAI,EAAI,EAAS,KAAK,EAAI,CACxD,yDACA,CAEM,EAAa,EAAK,CACxB,YAAa,WACb,GAAG,EACH,UAAW,EACV,WACA,EACA,EAAI,MAAM,UACV,CACD,MAAO,CAAE,GAAG,EAAO,GAAG,EAAI,MAAM,MAAO,CACvC,MACA,CAAC,EAEH,CACD,EAAQ,YAAc"}
1
+ {"version":3,"file":"svg-only-Cz1cby8y.js","names":[],"sources":["../src/components/icon/svg-only.tsx"],"sourcesContent":["import type { ComponentRef, ReactNode } from \"react\";\nimport { Children, cloneElement, forwardRef, isValidElement } from \"react\";\nimport invariant from \"tiny-invariant\";\nimport { cx } from \"../../utils/cx/cx.js\";\nimport type { SvgAttributes } from \"./types.js\";\n\ntype SvgOnlyProps = Omit<SvgAttributes, \"children\"> & {\n\t/**\n\t * A single SVG icon element.\n\t */\n\tsvg: ReactNode;\n};\n\n/**\n * Accepts a single SVG icon element and decorates it with `shrink-0` class.\n * You probably want to use the `Icon` component instead.\n *\n * @see https://mantle.ngrok.com/components/icon\n *\n * @example\n * ```tsx\n * import { ShrimpIcon } from \"@phosphor-icons/react/Shrimp\";\n *\n * <SvgOnly svg={<ShrimpIcon />} />\n * ```\n */\nconst SvgOnly = forwardRef<ComponentRef<\"svg\">, SvgOnlyProps>(\n\t({ className, style, svg, ...props }, ref) => {\n\t\tinvariant(\n\t\t\tisValidElement<SvgAttributes>(svg) && Children.only(svg),\n\t\t\t\"SvgOnly must be passed a single SVG icon as a JSX tag.\",\n\t\t);\n\n\t\treturn cloneElement(svg, {\n\t\t\t\"data-slot\": \"svg-only\",\n\t\t\t...props,\n\t\t\tclassName: cx(\n\t\t\t\t\"shrink-0\", // the SvgOnly base classes\n\t\t\t\tclassName, // the SvgOnly className\n\t\t\t\tsvg.props.className, // the svg className\n\t\t\t),\n\t\t\tstyle: { ...style, ...svg.props.style },\n\t\t\tref,\n\t\t});\n\t},\n);\nSvgOnly.displayName = \"SvgOnly\";\n\nexport {\n\t//,\n\tSvgOnly,\n};\n\nexport type {\n\t//,\n\tSvgOnlyProps,\n};\n"],"mappings":"0JA0BA,MAAM,EAAU,GACd,CAAE,YAAW,QAAO,MAAK,GAAG,GAAS,KACrC,EACC,EAA8B,CAAG,GAAK,EAAS,KAAK,CAAG,EACvD,wDACD,EAEO,EAAa,EAAK,CACxB,YAAa,WACb,GAAG,EACH,UAAW,EACV,WACA,EACA,EAAI,MAAM,SACX,EACA,MAAO,CAAE,GAAG,EAAO,GAAG,EAAI,MAAM,KAAM,EACtC,KACD,CAAC,EAEH,EACA,EAAQ,YAAc"}
@@ -1,5 +1,4 @@
1
- import { t as SvgAttributes } from "./types-QKZ5fvaQ.js";
2
- import * as _$react from "react";
1
+ import { t as SvgAttributes } from "./types-BvUzforF.js";
3
2
  import { ReactNode } from "react";
4
3
 
5
4
  //#region src/components/icon/svg-only.d.ts
@@ -22,7 +21,7 @@ type SvgOnlyProps = Omit<SvgAttributes, "children"> & {
22
21
  * <SvgOnly svg={<ShrimpIcon />} />
23
22
  * ```
24
23
  */
25
- declare const SvgOnly: _$react.ForwardRefExoticComponent<Omit<SvgOnlyProps, "ref"> & _$react.RefAttributes<SVGSVGElement>>;
24
+ declare const SvgOnly: import("react").ForwardRefExoticComponent<Omit<SvgOnlyProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
26
25
  //#endregion
27
26
  export { SvgOnlyProps as n, SvgOnly as t };
28
- //# sourceMappingURL=svg-only-D4uqM1OC.d.ts.map
27
+ //# sourceMappingURL=svg-only-f6ToFLH0.d.ts.map
package/dist/switch.d.ts CHANGED
@@ -1,6 +1,4 @@
1
- import { o as WithValidation } from "./validation-CBSOmooP.js";
2
- import * as _$react from "react";
3
- import * as _$_radix_ui_react_switch0 from "@radix-ui/react-switch";
1
+ import { o as WithValidation } from "./validation-xyX_6kph.js";
4
2
 
5
3
  //#region src/components/switch/switch.d.ts
6
4
  /**
@@ -18,12 +16,12 @@ import * as _$_radix_ui_react_switch0 from "@radix-ui/react-switch";
18
16
  * </form>
19
17
  * ```
20
18
  */
21
- declare const Switch: _$react.ForwardRefExoticComponent<Omit<_$_radix_ui_react_switch0.SwitchProps & _$react.RefAttributes<HTMLButtonElement>, "ref"> & WithValidation & {
19
+ declare const Switch: import("react").ForwardRefExoticComponent<Omit<import("@radix-ui/react-switch").SwitchProps & import("react").RefAttributes<HTMLButtonElement>, "ref"> & WithValidation & {
22
20
  /**
23
21
  * Makes the switch immutable, meaning the user can not edit the control.
24
22
  */
25
23
  readOnly?: boolean;
26
- } & _$react.RefAttributes<HTMLButtonElement>>;
24
+ } & import("react").RefAttributes<HTMLButtonElement>>;
27
25
  //#endregion
28
26
  export { Switch };
29
27
  //# sourceMappingURL=switch.d.ts.map
package/dist/switch.js CHANGED
@@ -1,2 +1,2 @@
1
- import{t as e}from"./cx-D1HYnpvA.js";import{t}from"./booleanish-CBGdPL3Q.js";import{a as n,r}from"./validation-BYME8rWN.js";import{forwardRef as i}from"react";import a from"clsx";import{jsx as o}from"react/jsx-runtime";import{Root as s,Thumb as c}from"@radix-ui/react-switch";const l=i(({"aria-invalid":i,"aria-readonly":l,className:u,readOnly:d,onClick:f,validation:p,...m},h)=>{let g=t(d??l),_=n(),{ariaInvalid:v,validation:y}=r({"aria-invalid":i,validation:p??_});return o(s,{"aria-invalid":v,"aria-readonly":g,"data-slot":`switch`,"data-validation":y||void 0,className:e(`peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full outline-hidden`,`disabled:cursor-default disabled:opacity-50`,`focus-visible:border-accent-600 focus-visible:ring-focus-accent focus-visible:outline-hidden focus-visible:ring-4`,`data-state-checked:bg-accent-600 data-state-unchecked:bg-gray-400`,`data-validation-success:data-state-checked:bg-success-600 focus-visible:data-validation-success:ring-focus-success`,`data-validation-warning:data-state-checked:bg-warning-600 focus-visible:data-validation-warning:ring-focus-warning`,`data-validation-error:data-state-checked:bg-danger-600 focus-visible:data-validation-error:ring-focus-danger`,u),onClick:e=>{if(g){e.preventDefault(),e.stopPropagation();return}f?.(e)},ref:h,...m,children:o(c,{className:a(`pointer-events-none block size-4 rounded-full bg-[#fff] shadow-md ring-0 transition-transform`,`data-state-checked:translate-x-4.5 data-state-unchecked:translate-x-0.5`)})})});l.displayName=`Switch`;export{l as Switch};
1
+ import{t as e}from"./cx-CBSnSC36.js";import{t}from"./booleanish-BfvnW6vy.js";import{a as n,r}from"./validation-DCyx-ceH.js";import{forwardRef as i}from"react";import a from"clsx";import{jsx as o}from"react/jsx-runtime";import{Root as s,Thumb as c}from"@radix-ui/react-switch";const l=i(({"aria-invalid":i,"aria-readonly":l,className:u,readOnly:d,onClick:f,validation:p,...m},h)=>{let g=t(d??l),_=n(),{ariaInvalid:v,validation:y}=r({"aria-invalid":i,validation:p??_});return o(s,{"aria-invalid":v,"aria-readonly":g,"data-slot":`switch`,"data-validation":y||void 0,className:e(`peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full outline-hidden`,`disabled:cursor-default disabled:opacity-50`,`focus-visible:border-accent-600 focus-visible:ring-focus-accent focus-visible:outline-hidden focus-visible:ring-4`,`data-state-checked:bg-accent-600 data-state-unchecked:bg-gray-400`,`data-validation-success:data-state-checked:bg-success-600 focus-visible:data-validation-success:ring-focus-success`,`data-validation-warning:data-state-checked:bg-warning-600 focus-visible:data-validation-warning:ring-focus-warning`,`data-validation-error:data-state-checked:bg-danger-600 focus-visible:data-validation-error:ring-focus-danger`,u),onClick:e=>{if(g){e.preventDefault(),e.stopPropagation();return}f?.(e)},ref:h,...m,children:o(c,{className:a(`pointer-events-none block size-4 rounded-full bg-[#fff] shadow-md ring-0 transition-transform`,`data-state-checked:translate-x-4.5 data-state-unchecked:translate-x-0.5`)})})});l.displayName=`Switch`;export{l as Switch};
2
2
  //# sourceMappingURL=switch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"switch.js","names":["SwitchPrimitiveRoot","SwitchPrimitiveThumb","clsx"],"sources":["../src/components/switch/switch.tsx"],"sourcesContent":["import { Root as SwitchPrimitiveRoot, Thumb as SwitchPrimitiveThumb } from \"@radix-ui/react-switch\";\nimport clsx from \"clsx\";\nimport { forwardRef } from \"react\";\nimport type { ComponentPropsWithoutRef, ComponentRef } from \"react\";\nimport { parseBooleanish } from \"../../types/booleanish.js\";\nimport { cx } from \"../../utils/cx/cx.js\";\nimport { parseValidation, useFieldValidation } from \"../field/validation.js\";\nimport type { WithValidation } from \"../field/validation.js\";\n\ntype SwitchProps = ComponentPropsWithoutRef<typeof SwitchPrimitiveRoot> &\n\tWithValidation & {\n\t\t/**\n\t\t * Makes the switch immutable, meaning the user can not edit the control.\n\t\t */\n\t\treadOnly?: boolean;\n\t};\n\n/**\n * A form control that allows the user to toggle between checked and not checked.\n *\n * @see https://mantle.ngrok.com/components/switch\n *\n * @example\n * ```tsx\n * <form>\n * <Label htmlFor=\"airplane-mode\" className=\"flex items-center gap-2\">\n * Airplane Mode\n * <Switch name=\"airplane-mode\" id=\"airplane-mode\" />\n * </Label>\n * </form>\n * ```\n */\nconst Switch = forwardRef<ComponentRef<typeof SwitchPrimitiveRoot>, SwitchProps>(\n\t(\n\t\t{\n\t\t\t\"aria-invalid\": _ariaInvalid,\n\t\t\t\"aria-readonly\": _ariaReadOnly,\n\t\t\tclassName,\n\t\t\treadOnly: _readOnly,\n\t\t\tonClick,\n\t\t\tvalidation: _validation,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) => {\n\t\tconst readOnly = parseBooleanish(_readOnly ?? _ariaReadOnly);\n\t\tconst fieldValidation = useFieldValidation();\n\t\tconst { ariaInvalid, validation } = parseValidation({\n\t\t\t\"aria-invalid\": _ariaInvalid,\n\t\t\tvalidation: _validation ?? fieldValidation,\n\t\t});\n\n\t\treturn (\n\t\t\t<SwitchPrimitiveRoot\n\t\t\t\taria-invalid={ariaInvalid}\n\t\t\t\taria-readonly={readOnly}\n\t\t\t\tdata-slot=\"switch\"\n\t\t\t\tdata-validation={validation || undefined}\n\t\t\t\tclassName={cx(\n\t\t\t\t\t\"peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full outline-hidden\",\n\t\t\t\t\t\"disabled:cursor-default disabled:opacity-50\",\n\t\t\t\t\t\"focus-visible:border-accent-600 focus-visible:ring-focus-accent focus-visible:outline-hidden focus-visible:ring-4\",\n\t\t\t\t\t\"data-state-checked:bg-accent-600 data-state-unchecked:bg-gray-400\",\n\t\t\t\t\t\"data-validation-success:data-state-checked:bg-success-600 focus-visible:data-validation-success:ring-focus-success\",\n\t\t\t\t\t\"data-validation-warning:data-state-checked:bg-warning-600 focus-visible:data-validation-warning:ring-focus-warning\",\n\t\t\t\t\t\"data-validation-error:data-state-checked:bg-danger-600 focus-visible:data-validation-error:ring-focus-danger\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\tonClick={(event) => {\n\t\t\t\t\tif (readOnly) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tonClick?.(event);\n\t\t\t\t}}\n\t\t\t\tref={ref}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<SwitchPrimitiveThumb\n\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\"pointer-events-none block size-4 rounded-full bg-[#fff] shadow-md ring-0 transition-transform\",\n\t\t\t\t\t\t\"data-state-checked:translate-x-4.5 data-state-unchecked:translate-x-0.5\",\n\t\t\t\t\t)}\n\t\t\t\t/>\n\t\t\t</SwitchPrimitiveRoot>\n\t\t);\n\t},\n);\nSwitch.displayName = \"Switch\";\n\nexport {\n\t//\n\tSwitch,\n};\n"],"mappings":"oRAgCA,MAAM,EAAS,GAEb,CACC,eAAgB,EAChB,gBAAiB,EACjB,YACA,SAAU,EACV,UACA,WAAY,EACZ,GAAG,GAEJ,IACI,CACJ,IAAM,EAAW,EAAgB,GAAa,EAAc,CACtD,EAAkB,GAAoB,CACtC,CAAE,cAAa,cAAe,EAAgB,CACnD,eAAgB,EAChB,WAAY,GAAe,EAC3B,CAAC,CAEF,OACC,EAACA,EAAD,CACC,eAAc,EACd,gBAAe,EACf,YAAU,SACV,kBAAiB,GAAc,IAAA,GAC/B,UAAW,EACV,4FACA,8CACA,oHACA,oEACA,qHACA,qHACA,+GACA,EACA,CACD,QAAU,GAAU,CACnB,GAAI,EAAU,CACb,EAAM,gBAAgB,CACtB,EAAM,iBAAiB,CACvB,OAED,IAAU,EAAM,EAEZ,MACL,GAAI,WAEJ,EAACC,EAAD,CACC,UAAWC,EACV,gGACA,0EACA,CACA,CAAA,CACmB,CAAA,EAGxB,CACD,EAAO,YAAc"}
1
+ {"version":3,"file":"switch.js","names":["SwitchPrimitiveRoot","SwitchPrimitiveThumb","clsx"],"sources":["../src/components/switch/switch.tsx"],"sourcesContent":["import { Root as SwitchPrimitiveRoot, Thumb as SwitchPrimitiveThumb } from \"@radix-ui/react-switch\";\nimport clsx from \"clsx\";\nimport { forwardRef } from \"react\";\nimport type { ComponentPropsWithoutRef, ComponentRef } from \"react\";\nimport { parseBooleanish } from \"../../types/booleanish.js\";\nimport { cx } from \"../../utils/cx/cx.js\";\nimport { parseValidation, useFieldValidation } from \"../field/validation.js\";\nimport type { WithValidation } from \"../field/validation.js\";\n\ntype SwitchProps = ComponentPropsWithoutRef<typeof SwitchPrimitiveRoot> &\n\tWithValidation & {\n\t\t/**\n\t\t * Makes the switch immutable, meaning the user can not edit the control.\n\t\t */\n\t\treadOnly?: boolean;\n\t};\n\n/**\n * A form control that allows the user to toggle between checked and not checked.\n *\n * @see https://mantle.ngrok.com/components/switch\n *\n * @example\n * ```tsx\n * <form>\n * <Label htmlFor=\"airplane-mode\" className=\"flex items-center gap-2\">\n * Airplane Mode\n * <Switch name=\"airplane-mode\" id=\"airplane-mode\" />\n * </Label>\n * </form>\n * ```\n */\nconst Switch = forwardRef<ComponentRef<typeof SwitchPrimitiveRoot>, SwitchProps>(\n\t(\n\t\t{\n\t\t\t\"aria-invalid\": _ariaInvalid,\n\t\t\t\"aria-readonly\": _ariaReadOnly,\n\t\t\tclassName,\n\t\t\treadOnly: _readOnly,\n\t\t\tonClick,\n\t\t\tvalidation: _validation,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) => {\n\t\tconst readOnly = parseBooleanish(_readOnly ?? _ariaReadOnly);\n\t\tconst fieldValidation = useFieldValidation();\n\t\tconst { ariaInvalid, validation } = parseValidation({\n\t\t\t\"aria-invalid\": _ariaInvalid,\n\t\t\tvalidation: _validation ?? fieldValidation,\n\t\t});\n\n\t\treturn (\n\t\t\t<SwitchPrimitiveRoot\n\t\t\t\taria-invalid={ariaInvalid}\n\t\t\t\taria-readonly={readOnly}\n\t\t\t\tdata-slot=\"switch\"\n\t\t\t\tdata-validation={validation || undefined}\n\t\t\t\tclassName={cx(\n\t\t\t\t\t\"peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full outline-hidden\",\n\t\t\t\t\t\"disabled:cursor-default disabled:opacity-50\",\n\t\t\t\t\t\"focus-visible:border-accent-600 focus-visible:ring-focus-accent focus-visible:outline-hidden focus-visible:ring-4\",\n\t\t\t\t\t\"data-state-checked:bg-accent-600 data-state-unchecked:bg-gray-400\",\n\t\t\t\t\t\"data-validation-success:data-state-checked:bg-success-600 focus-visible:data-validation-success:ring-focus-success\",\n\t\t\t\t\t\"data-validation-warning:data-state-checked:bg-warning-600 focus-visible:data-validation-warning:ring-focus-warning\",\n\t\t\t\t\t\"data-validation-error:data-state-checked:bg-danger-600 focus-visible:data-validation-error:ring-focus-danger\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\tonClick={(event) => {\n\t\t\t\t\tif (readOnly) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tonClick?.(event);\n\t\t\t\t}}\n\t\t\t\tref={ref}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<SwitchPrimitiveThumb\n\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\"pointer-events-none block size-4 rounded-full bg-[#fff] shadow-md ring-0 transition-transform\",\n\t\t\t\t\t\t\"data-state-checked:translate-x-4.5 data-state-unchecked:translate-x-0.5\",\n\t\t\t\t\t)}\n\t\t\t\t/>\n\t\t\t</SwitchPrimitiveRoot>\n\t\t);\n\t},\n);\nSwitch.displayName = \"Switch\";\n\nexport {\n\t//\n\tSwitch,\n};\n"],"mappings":"oRAgCA,MAAM,EAAS,GAEb,CACC,eAAgB,EAChB,gBAAiB,EACjB,YACA,SAAU,EACV,UACA,WAAY,EACZ,GAAG,GAEJ,IACI,CACJ,IAAM,EAAW,EAAgB,GAAa,CAAa,EACrD,EAAkB,EAAmB,EACrC,CAAE,cAAa,cAAe,EAAgB,CACnD,eAAgB,EAChB,WAAY,GAAe,CAC5B,CAAC,EAED,OACC,EAACA,EAAD,CACC,eAAc,EACd,gBAAe,EACf,YAAU,SACV,kBAAiB,GAAc,IAAA,GAC/B,UAAW,EACV,4FACA,8CACA,oHACA,oEACA,qHACA,qHACA,+GACA,CACD,EACA,QAAU,GAAU,CACnB,GAAI,EAAU,CACb,EAAM,eAAe,EACrB,EAAM,gBAAgB,EACtB,MACD,CACA,IAAU,CAAK,CAChB,EACK,MACL,GAAI,WAEJ,EAACC,EAAD,CACC,UAAWC,EACV,gGACA,yEACD,CACA,CAAA,CACmB,CAAA,CAEvB,CACD,EACA,EAAO,YAAc"}
@@ -1,5 +1,3 @@
1
- import * as _$react from "react";
2
-
3
1
  //#region src/components/table/table.d.ts
4
2
  /**
5
3
  * Use `Table` for STATIC, layout-driven tabular data — read-only data dumps,
@@ -98,7 +96,7 @@ declare const Table: {
98
96
  * </Table.Root>
99
97
  * ```
100
98
  */
101
- readonly Body: _$react.ForwardRefExoticComponent<Omit<_$react.DetailedHTMLProps<_$react.HTMLAttributes<HTMLTableSectionElement>, HTMLTableSectionElement>, "ref"> & _$react.RefAttributes<HTMLTableSectionElement>>;
99
+ readonly Body: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLTableSectionElement>, HTMLTableSectionElement>, "ref"> & import("react").RefAttributes<HTMLTableSectionElement>>;
102
100
  /**
103
101
  * An optional caption that specifies the caption (or title) of a table, providing an accessible description.
104
102
  *
@@ -137,7 +135,7 @@ declare const Table: {
137
135
  * </Table.Root>
138
136
  * ```
139
137
  */
140
- readonly Caption: _$react.ForwardRefExoticComponent<Omit<_$react.DetailedHTMLProps<_$react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & _$react.RefAttributes<HTMLElement>>;
138
+ readonly Caption: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & import("react").RefAttributes<HTMLElement>>;
141
139
  /**
142
140
  * A cell that contains data and may be used as a child of a table row.
143
141
  *
@@ -176,7 +174,7 @@ declare const Table: {
176
174
  * </Table.Root>
177
175
  * ```
178
176
  */
179
- readonly Cell: _$react.ForwardRefExoticComponent<Omit<_$react.DetailedHTMLProps<_$react.TdHTMLAttributes<HTMLTableDataCellElement>, HTMLTableDataCellElement>, "ref"> & _$react.RefAttributes<HTMLTableDataCellElement>>;
177
+ readonly Cell: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").TdHTMLAttributes<HTMLTableDataCellElement>, HTMLTableDataCellElement>, "ref"> & import("react").RefAttributes<HTMLTableDataCellElement>>;
180
178
  /**
181
179
  * A structured way to display data in rows and columns. The API matches the HTML table element 1:1.
182
180
  *
@@ -215,7 +213,7 @@ declare const Table: {
215
213
  * </Table.Root>
216
214
  * ```
217
215
  */
218
- readonly Element: _$react.ForwardRefExoticComponent<Omit<_$react.DetailedHTMLProps<_$react.TableHTMLAttributes<HTMLTableElement>, HTMLTableElement>, "ref"> & _$react.RefAttributes<HTMLTableElement>>;
216
+ readonly Element: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").TableHTMLAttributes<HTMLTableElement>, HTMLTableElement>, "ref"> & import("react").RefAttributes<HTMLTableElement>>;
219
217
  /**
220
218
  * The foot section of a table. Encapsulates a set of table rows comprising the foot with summary information.
221
219
  *
@@ -254,7 +252,7 @@ declare const Table: {
254
252
  * </Table.Root>
255
253
  * ```
256
254
  */
257
- readonly Foot: _$react.ForwardRefExoticComponent<Omit<_$react.DetailedHTMLProps<_$react.HTMLAttributes<HTMLTableSectionElement>, HTMLTableSectionElement>, "ref"> & _$react.RefAttributes<HTMLTableSectionElement>>;
255
+ readonly Foot: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLTableSectionElement>, HTMLTableSectionElement>, "ref"> & import("react").RefAttributes<HTMLTableSectionElement>>;
258
256
  /**
259
257
  * The head section of a table. Contains the table's column headers information.
260
258
  *
@@ -293,7 +291,7 @@ declare const Table: {
293
291
  * </Table.Root>
294
292
  * ```
295
293
  */
296
- readonly Head: _$react.ForwardRefExoticComponent<Omit<_$react.DetailedHTMLProps<_$react.HTMLAttributes<HTMLTableSectionElement>, HTMLTableSectionElement>, "ref"> & _$react.RefAttributes<HTMLTableSectionElement>>;
294
+ readonly Head: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLTableSectionElement>, HTMLTableSectionElement>, "ref"> & import("react").RefAttributes<HTMLTableSectionElement>>;
297
295
  /**
298
296
  * A cell that defines the header of a group of table cells as a child of a table row.
299
297
  *
@@ -332,7 +330,7 @@ declare const Table: {
332
330
  * </Table.Root>
333
331
  * ```
334
332
  */
335
- readonly Header: _$react.ForwardRefExoticComponent<Omit<_$react.DetailedHTMLProps<_$react.ThHTMLAttributes<HTMLTableHeaderCellElement>, HTMLTableHeaderCellElement>, "ref"> & _$react.RefAttributes<HTMLTableHeaderCellElement>>;
333
+ readonly Header: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").ThHTMLAttributes<HTMLTableHeaderCellElement>, HTMLTableHeaderCellElement>, "ref"> & import("react").RefAttributes<HTMLTableHeaderCellElement>>;
336
334
  /**
337
335
  * The root container element for all tables. Provides styling and additional functionality like horizontal overflow detection.
338
336
  *
@@ -371,7 +369,7 @@ declare const Table: {
371
369
  * </Table.Root>
372
370
  * ```
373
371
  */
374
- readonly Root: _$react.ForwardRefExoticComponent<Omit<_$react.DetailedHTMLProps<_$react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & _$react.RefAttributes<HTMLDivElement>>;
372
+ readonly Root: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
375
373
  /**
376
374
  * Defines a row of cells in a table. Contains a mix of table cells and table headers.
377
375
  *
@@ -410,8 +408,8 @@ declare const Table: {
410
408
  * </Table.Root>
411
409
  * ```
412
410
  */
413
- readonly Row: _$react.ForwardRefExoticComponent<Omit<_$react.DetailedHTMLProps<_$react.HTMLAttributes<HTMLTableRowElement>, HTMLTableRowElement>, "ref"> & _$react.RefAttributes<HTMLTableRowElement>>;
411
+ readonly Row: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLTableRowElement>, HTMLTableRowElement>, "ref"> & import("react").RefAttributes<HTMLTableRowElement>>;
414
412
  };
415
413
  //#endregion
416
414
  export { Table as t };
417
- //# sourceMappingURL=table-CjSQkfZe.d.ts.map
415
+ //# sourceMappingURL=table-BWD9IlIN.d.ts.map
@@ -1,2 +1,2 @@
1
- import{t as e}from"./cx-D1HYnpvA.js";import{t}from"./compose-refs-DZ3cPi47.js";import{forwardRef as n,useLayoutEffect as r,useMemo as i,useRef as a,useState as o}from"react";import{jsx as s}from"react/jsx-runtime";const c=n(({children:n,className:r,...i},a)=>{let o=v();return s(`div`,{"data-slot":`table`,className:e(`group/table relative w-full overflow-hidden rounded-lg border border-card bg-white dark:bg-gray-100`,r),"data-sticky-active":o.state.hasOverflow&&!o.state.scrolledToEnd||void 0,"data-x-overflow":o.state.hasOverflow,"data-x-scroll-end":o.state.hasOverflow&&o.state.scrolledToEnd,...i,children:s(`div`,{className:e(`scrollbar scroll-fade-x overflow-x-auto overflow-y-clip overscroll-x-none`,`has-data-mantle-table-sticky-right:[--_fade-right:black]`),"data-scroll-left":o.state.hasOverflow&&!o.state.scrolledToStart||void 0,"data-scroll-right":o.state.hasOverflow&&!o.state.scrolledToEnd||void 0,ref:t(o.ref,a),children:n})})});c.displayName=`TableRoot`;const l=n(({children:t,className:n,...r},i)=>s(`table`,{"data-slot":`table-element`,ref:i,className:e(`table-auto border-separate border-spacing-0 caption-bottom w-full min-w-full text-left`,n),...r,children:t}));l.displayName=`TableElement`;const u=n(({children:t,className:n,...r},i)=>s(`thead`,{"data-slot":`table-head`,ref:i,className:e(`[&>tr:last-child>*]:border-b [&>tr:last-child>*]:border-card-muted`,`[&>tr+tr>*]:border-t [&>tr+tr>*]:border-card-muted`,`text-muted bg-base`,`[&>tr]:bg-base`,n),...r,children:t}));u.displayName=`TableHead`;const d=n(({children:t,className:n,...r},i)=>s(`tbody`,{"data-slot":`table-body`,className:e(`[&>tr+tr>*]:border-t [&>tr+tr>*]:border-card-muted`,`text-body`,`[&>tr]:bg-card [&>tr]:not-only:hover:bg-card-hover`,n),ref:i,...r,children:t}));d.displayName=`TableBody`;const f=n(({children:t,className:n,...r},i)=>s(`tfoot`,{"data-slot":`table-foot`,ref:i,className:e(`font-medium text-body`,`[&>tr:first-child>*]:border-t [&>tr:first-child>*]:border-card-muted`,`[&>tr+tr>*]:border-t [&>tr+tr>*]:border-card-muted`,`[&>tr]:bg-gray-50/50 [&>tr]:hover:bg-card-hover`,n),...r,children:t}));f.displayName=`TableFoot`;const p=n(({children:t,className:n,...r},i)=>s(`tr`,{"data-slot":`table-row`,ref:i,className:e(n),...r,children:t}));p.displayName=`TableRow`;const m=n(({children:t,className:n,...r},i)=>s(`th`,{"data-slot":`table-header`,ref:i,className:e(`h-11 px-4 text-left align-middle text-sm font-medium [&:has([role=checkbox])]:pr-0`,n),...r,children:t}));m.displayName=`TableHeader`;const h=n(({children:t,className:n,...r},i)=>s(`td`,{"data-slot":`table-cell`,ref:i,className:e(`p-3 align-middle [&:has([role=checkbox])]:pr-0 font-mono text-mono`,n),...r,children:t}));h.displayName=`TableCell`;const g=n(({children:t,className:n,...r},i)=>s(`caption`,{"data-slot":`table-caption`,ref:i,className:e(`py-4 text-sm text-gray-500`,`border-t border-card-muted`,n),...r,children:t}));g.displayName=`TableCaption`;const _={Body:d,Caption:g,Cell:h,Element:l,Foot:f,Head:u,Header:m,Root:c,Row:p};function v(){let e=a(null),[t,n]=o({hasOverflow:!1,scrolledToStart:!0,scrolledToEnd:!1});return r(()=>{let t=e.current;if(!t)return;let r=0,i=()=>{let e=t.scrollWidth>t.clientWidth,r=t.scrollLeft<1,i=Math.abs(t.scrollWidth-t.scrollLeft-t.clientWidth)<1;n(t=>t.hasOverflow!==e||t.scrolledToStart!==r||t.scrolledToEnd!==i?{hasOverflow:e,scrolledToStart:r,scrolledToEnd:i}:t)},a=()=>{r===0&&(r=requestAnimationFrame(()=>{r=0,i()}))},o=new ResizeObserver(a);o.observe(t);let s=new MutationObserver(a);return s.observe(t,{childList:!0,subtree:!0}),t.addEventListener(`scroll`,a,{passive:!0}),i(),()=>{cancelAnimationFrame(r),o.disconnect(),s.disconnect(),t.removeEventListener(`scroll`,a)}},[]),i(()=>({ref:e,state:t}),[t])}export{_ as t};
2
- //# sourceMappingURL=table-CHd39aT-.js.map
1
+ import{t as e}from"./cx-CBSnSC36.js";import{t}from"./compose-refs-Cjf2gfB8.js";import{forwardRef as n,useLayoutEffect as r,useMemo as i,useRef as a,useState as o}from"react";import{jsx as s}from"react/jsx-runtime";const c=n(({children:n,className:r,...i},a)=>{let o=v();return s(`div`,{"data-slot":`table`,className:e(`group/table relative w-full overflow-hidden rounded-lg border border-card bg-white dark:bg-gray-100`,r),"data-sticky-active":o.state.hasOverflow&&!o.state.scrolledToEnd||void 0,"data-x-overflow":o.state.hasOverflow,"data-x-scroll-end":o.state.hasOverflow&&o.state.scrolledToEnd,...i,children:s(`div`,{className:e(`scrollbar scroll-fade-x overflow-x-auto overflow-y-clip overscroll-x-none`,`has-data-mantle-table-sticky-right:[--_fade-right:black]`),"data-scroll-left":o.state.hasOverflow&&!o.state.scrolledToStart||void 0,"data-scroll-right":o.state.hasOverflow&&!o.state.scrolledToEnd||void 0,ref:t(o.ref,a),children:n})})});c.displayName=`TableRoot`;const l=n(({children:t,className:n,...r},i)=>s(`table`,{"data-slot":`table-element`,ref:i,className:e(`table-auto border-separate border-spacing-0 caption-bottom w-full min-w-full text-left`,n),...r,children:t}));l.displayName=`TableElement`;const u=n(({children:t,className:n,...r},i)=>s(`thead`,{"data-slot":`table-head`,ref:i,className:e(`[&>tr:last-child>*]:border-b [&>tr:last-child>*]:border-card-muted`,`[&>tr+tr>*]:border-t [&>tr+tr>*]:border-card-muted`,`text-muted bg-base`,`[&>tr]:bg-base`,n),...r,children:t}));u.displayName=`TableHead`;const d=n(({children:t,className:n,...r},i)=>s(`tbody`,{"data-slot":`table-body`,className:e(`[&>tr+tr>*]:border-t [&>tr+tr>*]:border-card-muted`,`text-body`,`[&>tr]:bg-card [&>tr]:not-only:hover:bg-card-hover`,n),ref:i,...r,children:t}));d.displayName=`TableBody`;const f=n(({children:t,className:n,...r},i)=>s(`tfoot`,{"data-slot":`table-foot`,ref:i,className:e(`font-medium text-body`,`[&>tr:first-child>*]:border-t [&>tr:first-child>*]:border-card-muted`,`[&>tr+tr>*]:border-t [&>tr+tr>*]:border-card-muted`,`[&>tr]:bg-gray-50/50 [&>tr]:hover:bg-card-hover`,n),...r,children:t}));f.displayName=`TableFoot`;const p=n(({children:t,className:n,...r},i)=>s(`tr`,{"data-slot":`table-row`,ref:i,className:e(n),...r,children:t}));p.displayName=`TableRow`;const m=n(({children:t,className:n,...r},i)=>s(`th`,{"data-slot":`table-header`,ref:i,className:e(`h-11 px-4 text-left align-middle text-sm font-medium [&:has([role=checkbox])]:pr-0`,n),...r,children:t}));m.displayName=`TableHeader`;const h=n(({children:t,className:n,...r},i)=>s(`td`,{"data-slot":`table-cell`,ref:i,className:e(`p-3 align-middle [&:has([role=checkbox])]:pr-0 font-mono text-mono`,n),...r,children:t}));h.displayName=`TableCell`;const g=n(({children:t,className:n,...r},i)=>s(`caption`,{"data-slot":`table-caption`,ref:i,className:e(`py-4 text-sm text-gray-500`,`border-t border-card-muted`,n),...r,children:t}));g.displayName=`TableCaption`;const _={Body:d,Caption:g,Cell:h,Element:l,Foot:f,Head:u,Header:m,Root:c,Row:p};function v(){let e=a(null),[t,n]=o({hasOverflow:!1,scrolledToStart:!0,scrolledToEnd:!1});return r(()=>{let t=e.current;if(!t)return;let r=0,i=()=>{let e=t.scrollWidth>t.clientWidth,r=t.scrollLeft<1,i=Math.abs(t.scrollWidth-t.scrollLeft-t.clientWidth)<1;n(t=>t.hasOverflow!==e||t.scrolledToStart!==r||t.scrolledToEnd!==i?{hasOverflow:e,scrolledToStart:r,scrolledToEnd:i}:t)},a=()=>{r===0&&(r=requestAnimationFrame(()=>{r=0,i()}))},o=new ResizeObserver(a);o.observe(t);let s=new MutationObserver(a);return s.observe(t,{childList:!0,subtree:!0}),t.addEventListener(`scroll`,a,{passive:!0}),i(),()=>{cancelAnimationFrame(r),o.disconnect(),s.disconnect(),t.removeEventListener(`scroll`,a)}},[]),i(()=>({ref:e,state:t}),[t])}export{_ as t};
2
+ //# sourceMappingURL=table-eyoUW2Uv.js.map