@ngrok/mantle 0.66.0 → 0.66.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (297) hide show
  1. package/dist/accordion.d.ts +158 -154
  2. package/dist/accordion.js +1 -1
  3. package/dist/accordion.js.map +1 -1
  4. package/dist/alert-dialog.d.ts +282 -277
  5. package/dist/alert-dialog.js +1 -1
  6. package/dist/alert-dialog.js.map +1 -1
  7. package/dist/alert.d.ts +145 -138
  8. package/dist/alert.js +1 -1
  9. package/dist/alert.js.map +1 -1
  10. package/dist/anchor.d.ts +25 -22
  11. package/dist/anchor.js +1 -1
  12. package/dist/anchor.js.map +1 -1
  13. package/dist/as-child-XMVTepJu.d.ts +31 -0
  14. package/dist/badge.d.ts +29 -19
  15. package/dist/badge.js +1 -1
  16. package/dist/badge.js.map +1 -1
  17. package/dist/booleanish-CBGdPL3Q.js +2 -0
  18. package/dist/booleanish-CBGdPL3Q.js.map +1 -0
  19. package/dist/browser-only-QPyyfLaB.js +2 -0
  20. package/dist/browser-only-QPyyfLaB.js.map +1 -0
  21. package/dist/browser-only.d.ts +20 -15
  22. package/dist/browser-only.js +1 -2
  23. package/dist/button-B6StZJsz.d.ts +175 -0
  24. package/dist/button-CRRPesae.js +2 -0
  25. package/dist/button-CRRPesae.js.map +1 -0
  26. package/dist/button-DA2p0_5F.js +2 -0
  27. package/dist/button-DA2p0_5F.js.map +1 -0
  28. package/dist/button.d.ts +4 -9
  29. package/dist/button.js +1 -2
  30. package/dist/calendar.d.ts +14 -8
  31. package/dist/calendar.js +1 -1
  32. package/dist/calendar.js.map +1 -1
  33. package/dist/card.d.ts +99 -97
  34. package/dist/card.js +1 -1
  35. package/dist/card.js.map +1 -1
  36. package/dist/checkbox.d.ts +14 -12
  37. package/dist/checkbox.js +1 -1
  38. package/dist/checkbox.js.map +1 -1
  39. package/dist/code-block.d.ts +254 -237
  40. package/dist/code-block.js +3 -3
  41. package/dist/code-block.js.map +1 -1
  42. package/dist/code.d.ts +5 -3
  43. package/dist/code.js +1 -1
  44. package/dist/code.js.map +1 -1
  45. package/dist/color.d.ts +2 -38
  46. package/dist/color.js +1 -1
  47. package/dist/color.js.map +1 -1
  48. package/dist/combobox.d.ts +172 -167
  49. package/dist/combobox.js +1 -1
  50. package/dist/combobox.js.map +1 -1
  51. package/dist/command.d.ts +234 -227
  52. package/dist/command.js +1 -1
  53. package/dist/command.js.map +1 -1
  54. package/dist/compose-refs-DeIsFv68.js +2 -0
  55. package/dist/compose-refs-DeIsFv68.js.map +1 -0
  56. package/dist/cx-bKromGBh.js +2 -0
  57. package/dist/cx-bKromGBh.js.map +1 -0
  58. package/dist/cx.d.ts +4 -2
  59. package/dist/cx.js +1 -2
  60. package/dist/data-table.d.ts +211 -184
  61. package/dist/data-table.js +1 -1
  62. package/dist/data-table.js.map +1 -1
  63. package/dist/deep-non-nullable-BLM3Gz0I.d.ts +8 -0
  64. package/dist/description-list.d.ts +61 -59
  65. package/dist/description-list.js +1 -1
  66. package/dist/description-list.js.map +1 -1
  67. package/dist/dialog-BuD_JQf_.d.ts +422 -0
  68. package/dist/dialog-Cr5u0Eai.js +2 -0
  69. package/dist/dialog-Cr5u0Eai.js.map +1 -0
  70. package/dist/dialog.d.ts +3 -410
  71. package/dist/dialog.js +1 -2
  72. package/dist/direction-DfrtFTny.js +2 -0
  73. package/dist/direction-DfrtFTny.js.map +1 -0
  74. package/dist/{direction-DHheuUag.d.ts → direction-deXpJFDZ.d.ts} +9 -7
  75. package/dist/dropdown-menu-CjOaj-Ap.js +2 -0
  76. package/dist/dropdown-menu-CjOaj-Ap.js.map +1 -0
  77. package/dist/dropdown-menu-D_ZoY1AH.d.ts +330 -0
  78. package/dist/dropdown-menu.d.ts +2 -325
  79. package/dist/dropdown-menu.js +1 -2
  80. package/dist/flag.d.ts +31 -22
  81. package/dist/flag.js +1 -1
  82. package/dist/flag.js.map +1 -1
  83. package/dist/hooks.d.ts +72 -59
  84. package/dist/hooks.js +1 -1
  85. package/dist/hooks.js.map +1 -1
  86. package/dist/hover-card.d.ts +97 -91
  87. package/dist/hover-card.js +1 -1
  88. package/dist/hover-card.js.map +1 -1
  89. package/dist/{icon-DXTMiV1L.d.ts → icon-B1XLv02t.d.ts} +11 -9
  90. package/dist/icon-B5oNYYrJ.js +2 -0
  91. package/dist/icon-B5oNYYrJ.js.map +1 -0
  92. package/dist/icon-button-2r6S3HVA.d.ts +98 -0
  93. package/dist/icon-button-D4e9-dq-.js +2 -0
  94. package/dist/icon-button-D4e9-dq-.js.map +1 -0
  95. package/dist/icon.d.ts +4 -4
  96. package/dist/icon.js +1 -2
  97. package/dist/icons.d.ts +54 -41
  98. package/dist/icons.js +1 -1
  99. package/dist/icons.js.map +1 -1
  100. package/dist/{in-view-aHeQHaUj.d.ts → in-view-CTQRT44m.d.ts} +29 -22
  101. package/dist/in-view-bPnaWEL4.js +2 -0
  102. package/dist/in-view-bPnaWEL4.js.map +1 -0
  103. package/dist/index-BLCvtjLi.d.ts +40 -0
  104. package/dist/index-DWqhfw9n.d.ts +103 -0
  105. package/dist/{button-group-BFnqgdtl.d.ts → index-ViSCOUrU.d.ts} +10 -8
  106. package/dist/index-s8rMcilU.d.ts +47 -0
  107. package/dist/input.d.ts +3 -100
  108. package/dist/input.js +1 -1
  109. package/dist/input.js.map +1 -1
  110. package/dist/is-input-BFR8yMM7.js +2 -0
  111. package/dist/is-input-BFR8yMM7.js.map +1 -0
  112. package/dist/kbd-pyj32aN4.js +2 -0
  113. package/dist/kbd-pyj32aN4.js.map +1 -0
  114. package/dist/kbd.d.ts +10 -4
  115. package/dist/kbd.js +1 -2
  116. package/dist/label.d.ts +8 -6
  117. package/dist/label.js +1 -1
  118. package/dist/label.js.map +1 -1
  119. package/dist/media-object.d.ts +70 -68
  120. package/dist/media-object.js +1 -1
  121. package/dist/media-object.js.map +1 -1
  122. package/dist/multi-select.d.ts +226 -218
  123. package/dist/multi-select.js +1 -1
  124. package/dist/multi-select.js.map +1 -1
  125. package/dist/pagination.d.ts +168 -164
  126. package/dist/pagination.js +1 -1
  127. package/dist/pagination.js.map +1 -1
  128. package/dist/popover.d.ts +119 -117
  129. package/dist/popover.js +1 -1
  130. package/dist/popover.js.map +1 -1
  131. package/dist/primitive-Cath9ASB.js +2 -0
  132. package/dist/primitive-Cath9ASB.js.map +1 -0
  133. package/dist/primitive-tuHqhoRE.d.ts +16 -0
  134. package/dist/progress.d.ts +175 -150
  135. package/dist/progress.js +1 -1
  136. package/dist/progress.js.map +1 -1
  137. package/dist/radio-group.d.ts +246 -230
  138. package/dist/radio-group.js +1 -1
  139. package/dist/radio-group.js.map +1 -1
  140. package/dist/sandboxed-on-click.d.ts +36 -31
  141. package/dist/sandboxed-on-click.js +1 -1
  142. package/dist/sandboxed-on-click.js.map +1 -1
  143. package/dist/select-39Jfc1Cb.d.ts +265 -0
  144. package/dist/select-DZ2ztBkI.js +2 -0
  145. package/dist/select-DZ2ztBkI.js.map +1 -0
  146. package/dist/select.d.ts +2 -263
  147. package/dist/select.js +1 -2
  148. package/dist/separator-BcCNbHBg.js +2 -0
  149. package/dist/separator-BcCNbHBg.js.map +1 -0
  150. package/dist/separator.d.ts +28 -21
  151. package/dist/separator.js +1 -2
  152. package/dist/sheet.d.ts +319 -305
  153. package/dist/sheet.js +1 -1
  154. package/dist/sheet.js.map +1 -1
  155. package/dist/skeleton.d.ts +8 -6
  156. package/dist/skeleton.js +1 -1
  157. package/dist/skeleton.js.map +1 -1
  158. package/dist/slider.d.ts +48 -35
  159. package/dist/slider.js +1 -1
  160. package/dist/slider.js.map +1 -1
  161. package/dist/slot-DdnjeV2n.js +2 -0
  162. package/dist/slot-DdnjeV2n.js.map +1 -0
  163. package/dist/slot.d.ts +6 -4
  164. package/dist/slot.js +1 -2
  165. package/dist/sort-CfPsu1Gs.js +2 -0
  166. package/dist/sort-CfPsu1Gs.js.map +1 -0
  167. package/dist/split-button.d.ts +158 -162
  168. package/dist/split-button.js +1 -1
  169. package/dist/split-button.js.map +1 -1
  170. package/dist/svg-only-BVLlbQ4e.js +2 -0
  171. package/dist/svg-only-BVLlbQ4e.js.map +1 -0
  172. package/dist/{svg-only-Cp8Mu_sh.d.ts → svg-only-Dti1FvNV.d.ts} +11 -9
  173. package/dist/switch.d.ts +10 -8
  174. package/dist/switch.js +1 -1
  175. package/dist/switch.js.map +1 -1
  176. package/dist/table-BWMp12sl.js +2 -0
  177. package/dist/table-BWMp12sl.js.map +1 -0
  178. package/dist/table-Dpt192qt.d.ts +398 -0
  179. package/dist/table.d.ts +2 -396
  180. package/dist/table.js +1 -2
  181. package/dist/tabs.d.ts +110 -104
  182. package/dist/tabs.js +1 -1
  183. package/dist/tabs.js.map +1 -1
  184. package/dist/text-area.d.ts +10 -8
  185. package/dist/text-area.js +1 -1
  186. package/dist/text-area.js.map +1 -1
  187. package/dist/theme-provider-C8F5nFrJ.js +2 -0
  188. package/dist/theme-provider-C8F5nFrJ.js.map +1 -0
  189. package/dist/theme.d.ts +66 -39
  190. package/dist/theme.js +1 -2
  191. package/dist/{themes-Bi46K9ZW.d.ts → themes-ClppRAGt.d.ts} +4 -2
  192. package/dist/toast-1AuBbrBS.js +2 -0
  193. package/dist/toast-1AuBbrBS.js.map +1 -0
  194. package/dist/toast.d.ts +95 -87
  195. package/dist/toast.js +1 -2
  196. package/dist/tooltip.d.ts +78 -73
  197. package/dist/tooltip.js +1 -1
  198. package/dist/tooltip.js.map +1 -1
  199. package/dist/{chunk-W2YQRWR5.js → traffic-policy-file-QnF-2YkY.js} +2 -2
  200. package/dist/traffic-policy-file-QnF-2YkY.js.map +1 -0
  201. package/dist/types-884RJJqm.js +2 -0
  202. package/dist/types-884RJJqm.js.map +1 -0
  203. package/dist/{types-DehRoXC5.d.ts → types-DgXUgkpc.d.ts} +38 -36
  204. package/dist/types-Dh4BVhXC.d.ts +9 -0
  205. package/dist/types.d.ts +6 -49
  206. package/dist/types.js +1 -2
  207. package/dist/use-copy-to-clipboard-BEbQOKHc.js +2 -0
  208. package/dist/use-copy-to-clipboard-BEbQOKHc.js.map +1 -0
  209. package/dist/use-matches-media-query-CojcYxlA.js +2 -0
  210. package/dist/use-matches-media-query-CojcYxlA.js.map +1 -0
  211. package/dist/use-prefers-reduced-motion-BiG6QGkf.js +2 -0
  212. package/dist/use-prefers-reduced-motion-BiG6QGkf.js.map +1 -0
  213. package/dist/utils.d.ts +6 -5
  214. package/dist/utils.js +1 -1
  215. package/dist/utils.js.map +1 -1
  216. package/dist/variant-props-UE-phTwh.d.ts +13 -0
  217. package/dist/with-style-props-D1QFTzj6.d.ts +29 -0
  218. package/package.json +6 -6
  219. package/dist/as-child-DJ7x3JFV.d.ts +0 -21
  220. package/dist/browser-only.js.map +0 -1
  221. package/dist/button-DLUUf_c-.d.ts +0 -173
  222. package/dist/button.js.map +0 -1
  223. package/dist/chunk-2FYR6IJV.js +0 -2
  224. package/dist/chunk-2FYR6IJV.js.map +0 -1
  225. package/dist/chunk-5VDCC3YW.js +0 -2
  226. package/dist/chunk-5VDCC3YW.js.map +0 -1
  227. package/dist/chunk-63ZAW25Z.js +0 -2
  228. package/dist/chunk-63ZAW25Z.js.map +0 -1
  229. package/dist/chunk-6J7D73WA.js +0 -2
  230. package/dist/chunk-6J7D73WA.js.map +0 -1
  231. package/dist/chunk-72TJUKMV.js +0 -1
  232. package/dist/chunk-72TJUKMV.js.map +0 -1
  233. package/dist/chunk-7MJQGBE4.js +0 -2
  234. package/dist/chunk-7MJQGBE4.js.map +0 -1
  235. package/dist/chunk-7YLII2US.js +0 -2
  236. package/dist/chunk-7YLII2US.js.map +0 -1
  237. package/dist/chunk-ADF5DAYG.js +0 -2
  238. package/dist/chunk-ADF5DAYG.js.map +0 -1
  239. package/dist/chunk-CBRSMQ26.js +0 -2
  240. package/dist/chunk-CBRSMQ26.js.map +0 -1
  241. package/dist/chunk-COQIVAQH.js +0 -2
  242. package/dist/chunk-COQIVAQH.js.map +0 -1
  243. package/dist/chunk-ELZLLG6G.js +0 -2
  244. package/dist/chunk-ELZLLG6G.js.map +0 -1
  245. package/dist/chunk-EVU5XGB4.js +0 -2
  246. package/dist/chunk-EVU5XGB4.js.map +0 -1
  247. package/dist/chunk-EYZYDUS2.js +0 -2
  248. package/dist/chunk-EYZYDUS2.js.map +0 -1
  249. package/dist/chunk-HKSO72E5.js +0 -2
  250. package/dist/chunk-HKSO72E5.js.map +0 -1
  251. package/dist/chunk-HL2HWYKP.js +0 -2
  252. package/dist/chunk-HL2HWYKP.js.map +0 -1
  253. package/dist/chunk-IVQ626TU.js +0 -2
  254. package/dist/chunk-IVQ626TU.js.map +0 -1
  255. package/dist/chunk-JQ5D5YZR.js +0 -2
  256. package/dist/chunk-JQ5D5YZR.js.map +0 -1
  257. package/dist/chunk-LBO5LEYM.js +0 -2
  258. package/dist/chunk-LBO5LEYM.js.map +0 -1
  259. package/dist/chunk-MLXONRJD.js +0 -2
  260. package/dist/chunk-MLXONRJD.js.map +0 -1
  261. package/dist/chunk-OHPGAB7U.js +0 -2
  262. package/dist/chunk-OHPGAB7U.js.map +0 -1
  263. package/dist/chunk-OP6JMBKJ.js +0 -2
  264. package/dist/chunk-OP6JMBKJ.js.map +0 -1
  265. package/dist/chunk-PFXFESEN.js +0 -2
  266. package/dist/chunk-PFXFESEN.js.map +0 -1
  267. package/dist/chunk-PNL7JOXI.js +0 -2
  268. package/dist/chunk-PNL7JOXI.js.map +0 -1
  269. package/dist/chunk-RED6SFAV.js +0 -2
  270. package/dist/chunk-RED6SFAV.js.map +0 -1
  271. package/dist/chunk-SBQHQ2SJ.js +0 -2
  272. package/dist/chunk-SBQHQ2SJ.js.map +0 -1
  273. package/dist/chunk-SGGOH2WW.js +0 -2
  274. package/dist/chunk-SGGOH2WW.js.map +0 -1
  275. package/dist/chunk-W2YQRWR5.js.map +0 -1
  276. package/dist/chunk-W5A5HSFE.js +0 -2
  277. package/dist/chunk-W5A5HSFE.js.map +0 -1
  278. package/dist/chunk-YPAUKPCE.js +0 -2
  279. package/dist/chunk-YPAUKPCE.js.map +0 -1
  280. package/dist/cx.js.map +0 -1
  281. package/dist/deep-non-nullable-SmpSvoSd.d.ts +0 -8
  282. package/dist/dialog.js.map +0 -1
  283. package/dist/dropdown-menu.js.map +0 -1
  284. package/dist/icon-button-CT71Ti9V.d.ts +0 -96
  285. package/dist/icon.js.map +0 -1
  286. package/dist/kbd.js.map +0 -1
  287. package/dist/primitive-CBR_XmVa.d.ts +0 -14
  288. package/dist/select.js.map +0 -1
  289. package/dist/separator.js.map +0 -1
  290. package/dist/slot.js.map +0 -1
  291. package/dist/table.js.map +0 -1
  292. package/dist/theme.js.map +0 -1
  293. package/dist/toast.js.map +0 -1
  294. package/dist/types-BuKAGhC-.d.ts +0 -7
  295. package/dist/types.js.map +0 -1
  296. package/dist/variant-props-oDo2u-We.d.ts +0 -11
  297. package/dist/with-style-props-VnLWm0Yd.d.ts +0 -27
@@ -1,20 +1,15 @@
1
- import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
2
- import * as react from 'react';
3
- import { ComponentProps, ReactNode } from 'react';
4
- import { B as Button } from './button-DLUUf_c-.js';
5
- import { I as IconButton } from './icon-button-CT71Ti9V.js';
6
- import { DropdownMenu } from './dropdown-menu.js';
7
- import './deep-non-nullable-SmpSvoSd.js';
8
- import 'class-variance-authority';
9
- import 'class-variance-authority/types';
10
- import './variant-props-oDo2u-We.js';
11
- import './as-child-DJ7x3JFV.js';
12
- import 'react/jsx-runtime';
1
+ import { t as IconButton } from "./icon-button-2r6S3HVA.js";
2
+ import { t as Button } from "./button-B6StZJsz.js";
3
+ import { t as DropdownMenu } from "./dropdown-menu-D_ZoY1AH.js";
4
+ import * as react from "react";
5
+ import { ComponentProps, ReactNode } from "react";
6
+ import * as _radix_ui_react_dropdown_menu0 from "@radix-ui/react-dropdown-menu";
13
7
 
8
+ //#region src/components/split-button/split-button.d.ts
14
9
  type RootProps = ComponentProps<typeof DropdownMenu.Root> & ComponentProps<"div">;
15
10
  type PrimaryActionProps = Omit<ComponentProps<typeof Button>, "appearance" | "type" | "priority"> & Pick<ComponentProps<"button">, "type">;
16
11
  type MenuTriggerProps = Omit<ComponentProps<typeof IconButton>, "appearance" | "size" | "asChild" | "icon"> & Pick<ComponentProps<"button">, "type"> & {
17
- icon?: ReactNode;
12
+ icon?: ReactNode;
18
13
  };
19
14
  /**
20
15
  * A button group which provides a default action with one click while revealing
@@ -46,154 +41,155 @@ type MenuTriggerProps = Omit<ComponentProps<typeof IconButton>, "appearance" | "
46
41
  * ```
47
42
  */
48
43
  declare const SplitButton: {
49
- /**
50
- * A button group which provides a default action with one click while revealing
51
- * related alternatives through a dropdown menu. Best for when users typically
52
- * want one action but occasionally need variants.
53
- *
54
- * @see https://mantle.ngrok.com/components/split-button#splitbuttonroot
55
- *
56
- * @example
57
- * ```tsx
58
- * <SplitButton.Root>
59
- * <SplitButton.PrimaryAction icon={<CopyIcon />} iconPlacement="end" onClick={copyMarkdownPage}>
60
- * Copy page
61
- * </SplitButton.PrimaryAction>
62
- * <SplitButton.MenuTrigger label="Open doc actions menu" />
63
- * <SplitButton.MenuContent>
64
- * <SplitButton.MenuItem onClick={copyMarkdownPage}>
65
- * Copy page
66
- * <Icon svg={<CopyIcon />} />
67
- * </SplitButton.MenuItem>
68
- * <SplitButton.MenuItem asChild onClick={copyMarkdownPage}>
69
- * <a href={markdownUrl} target="_blank">
70
- * View as Markdown
71
- * <Icon svg={<FileTextIcon />} />
72
- * </a>
73
- * </SplitButton.MenuItem>
74
- * </SplitButton.MenuContent>
75
- * </SplitButton.Root>
76
- * ```
77
- */
78
- readonly Root: react.ForwardRefExoticComponent<Omit<RootProps, "ref"> & react.RefAttributes<HTMLDivElement>>;
79
- /**
80
- * The most common action users can trigger with a single click.
81
- *
82
- * @see https://mantle.ngrok.com/components/split-button#splitbuttonprimaryaction
83
- *
84
- * @example
85
- * ```tsx
86
- * <SplitButton.Root>
87
- * <SplitButton.PrimaryAction icon={<CopyIcon />} iconPlacement="end" onClick={copyMarkdownPage}>
88
- * Copy page
89
- * </SplitButton.PrimaryAction>
90
- * <SplitButton.MenuTrigger label="Open doc actions menu" />
91
- * <SplitButton.MenuContent>
92
- * <SplitButton.MenuItem onClick={copyMarkdownPage}>
93
- * Copy page
94
- * <Icon svg={<CopyIcon />} />
95
- * </SplitButton.MenuItem>
96
- * <SplitButton.MenuItem asChild onClick={copyMarkdownPage}>
97
- * <a href={markdownUrl} target="_blank">
98
- * View as Markdown
99
- * <Icon svg={<FileTextIcon />} />
100
- * </a>
101
- * </SplitButton.MenuItem>
102
- * </SplitButton.MenuContent>
103
- * </SplitButton.Root>
104
- * ```
105
- */
106
- readonly PrimaryAction: react.ForwardRefExoticComponent<Omit<PrimaryActionProps, "ref"> & react.RefAttributes<HTMLButtonElement>>;
107
- /**
108
- * The button that opens the split button dropdown menu.
109
- *
110
- * @see https://mantle.ngrok.com/components/split-button#splitbuttonmenutrigger
111
- *
112
- * @example
113
- * ```tsx
114
- * <SplitButton.Root>
115
- * <SplitButton.PrimaryAction icon={<CopyIcon />} iconPlacement="end" onClick={copyMarkdownPage}>
116
- * Copy page
117
- * </SplitButton.PrimaryAction>
118
- * <SplitButton.MenuTrigger label="Open doc actions menu" />
119
- * <SplitButton.MenuContent>
120
- * <SplitButton.MenuItem onClick={copyMarkdownPage}>
121
- * Copy page
122
- * <Icon svg={<CopyIcon />} />
123
- * </SplitButton.MenuItem>
124
- * <SplitButton.MenuItem asChild onClick={copyMarkdownPage}>
125
- * <a href={markdownUrl} target="_blank">
126
- * View as Markdown
127
- * <Icon svg={<FileTextIcon />} />
128
- * </a>
129
- * </SplitButton.MenuItem>
130
- * </SplitButton.MenuContent>
131
- * </SplitButton.Root>
132
- * ```
133
- */
134
- readonly MenuTrigger: react.ForwardRefExoticComponent<Omit<MenuTriggerProps, "ref"> & react.RefAttributes<HTMLButtonElement>>;
135
- /**
136
- * The container for the split button dropdown menu content. Appears in a
137
- * portal with scrolling and animations.
138
- *
139
- * @see https://mantle.ngrok.com/components/split-button#splitbuttonmenucontent
140
- *
141
- * @example
142
- * ```tsx
143
- * <SplitButton.Root>
144
- * <SplitButton.PrimaryAction icon={<CopyIcon />} iconPlacement="end" onClick={copyMarkdownPage}>
145
- * Copy page
146
- * </SplitButton.PrimaryAction>
147
- * <SplitButton.MenuTrigger label="Open doc actions menu" />
148
- * <SplitButton.MenuContent>
149
- * <SplitButton.MenuItem onClick={copyMarkdownPage}>
150
- * Copy page
151
- * <Icon svg={<CopyIcon />} />
152
- * </SplitButton.MenuItem>
153
- * <SplitButton.MenuItem asChild onClick={copyMarkdownPage}>
154
- * <a href={markdownUrl} target="_blank">
155
- * View as Markdown
156
- * <Icon svg={<FileTextIcon />} />
157
- * </a>
158
- * </SplitButton.MenuItem>
159
- * </SplitButton.MenuContent>
160
- * </SplitButton.Root>
161
- * ```
162
- */
163
- readonly MenuContent: react.ForwardRefExoticComponent<Omit<Omit<DropdownMenuPrimitive.DropdownMenuContentProps & react.RefAttributes<HTMLDivElement>, "ref"> & {
164
- width?: "trigger" | "content";
165
- } & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
166
- /**
167
- * A standard item in the split button dropdown menu that can be selected or
168
- * activated.
169
- *
170
- * @see https://mantle.ngrok.com/components/split-button#splitbuttonmenuitem
171
- *
172
- * @example
173
- * ```tsx
174
- * <SplitButton.Root>
175
- * <SplitButton.PrimaryAction icon={<CopyIcon />} iconPlacement="end" onClick={copyMarkdownPage}>
176
- * Copy page
177
- * </SplitButton.PrimaryAction>
178
- * <SplitButton.MenuTrigger label="Open doc actions menu" />
179
- * <SplitButton.MenuContent>
180
- * <SplitButton.MenuItem onClick={copyMarkdownPage}>
181
- * Copy page
182
- * <Icon svg={<CopyIcon />} />
183
- * </SplitButton.MenuItem>
184
- * <SplitButton.MenuItem asChild onClick={copyMarkdownPage}>
185
- * <a href={markdownUrl} target="_blank">
186
- * View as Markdown
187
- * <Icon svg={<FileTextIcon />} />
188
- * </a>
189
- * </SplitButton.MenuItem>
190
- * </SplitButton.MenuContent>
191
- * </SplitButton.Root>
192
- * ```
193
- */
194
- readonly MenuItem: react.ForwardRefExoticComponent<Omit<Omit<DropdownMenuPrimitive.DropdownMenuItemProps & react.RefAttributes<HTMLDivElement>, "ref"> & {
195
- inset?: boolean;
196
- } & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
44
+ /**
45
+ * A button group which provides a default action with one click while revealing
46
+ * related alternatives through a dropdown menu. Best for when users typically
47
+ * want one action but occasionally need variants.
48
+ *
49
+ * @see https://mantle.ngrok.com/components/split-button#splitbuttonroot
50
+ *
51
+ * @example
52
+ * ```tsx
53
+ * <SplitButton.Root>
54
+ * <SplitButton.PrimaryAction icon={<CopyIcon />} iconPlacement="end" onClick={copyMarkdownPage}>
55
+ * Copy page
56
+ * </SplitButton.PrimaryAction>
57
+ * <SplitButton.MenuTrigger label="Open doc actions menu" />
58
+ * <SplitButton.MenuContent>
59
+ * <SplitButton.MenuItem onClick={copyMarkdownPage}>
60
+ * Copy page
61
+ * <Icon svg={<CopyIcon />} />
62
+ * </SplitButton.MenuItem>
63
+ * <SplitButton.MenuItem asChild onClick={copyMarkdownPage}>
64
+ * <a href={markdownUrl} target="_blank">
65
+ * View as Markdown
66
+ * <Icon svg={<FileTextIcon />} />
67
+ * </a>
68
+ * </SplitButton.MenuItem>
69
+ * </SplitButton.MenuContent>
70
+ * </SplitButton.Root>
71
+ * ```
72
+ */
73
+ readonly Root: react.ForwardRefExoticComponent<Omit<RootProps, "ref"> & react.RefAttributes<HTMLDivElement>>;
74
+ /**
75
+ * The most common action users can trigger with a single click.
76
+ *
77
+ * @see https://mantle.ngrok.com/components/split-button#splitbuttonprimaryaction
78
+ *
79
+ * @example
80
+ * ```tsx
81
+ * <SplitButton.Root>
82
+ * <SplitButton.PrimaryAction icon={<CopyIcon />} iconPlacement="end" onClick={copyMarkdownPage}>
83
+ * Copy page
84
+ * </SplitButton.PrimaryAction>
85
+ * <SplitButton.MenuTrigger label="Open doc actions menu" />
86
+ * <SplitButton.MenuContent>
87
+ * <SplitButton.MenuItem onClick={copyMarkdownPage}>
88
+ * Copy page
89
+ * <Icon svg={<CopyIcon />} />
90
+ * </SplitButton.MenuItem>
91
+ * <SplitButton.MenuItem asChild onClick={copyMarkdownPage}>
92
+ * <a href={markdownUrl} target="_blank">
93
+ * View as Markdown
94
+ * <Icon svg={<FileTextIcon />} />
95
+ * </a>
96
+ * </SplitButton.MenuItem>
97
+ * </SplitButton.MenuContent>
98
+ * </SplitButton.Root>
99
+ * ```
100
+ */
101
+ readonly PrimaryAction: react.ForwardRefExoticComponent<Omit<PrimaryActionProps, "ref"> & react.RefAttributes<HTMLButtonElement>>;
102
+ /**
103
+ * The button that opens the split button dropdown menu.
104
+ *
105
+ * @see https://mantle.ngrok.com/components/split-button#splitbuttonmenutrigger
106
+ *
107
+ * @example
108
+ * ```tsx
109
+ * <SplitButton.Root>
110
+ * <SplitButton.PrimaryAction icon={<CopyIcon />} iconPlacement="end" onClick={copyMarkdownPage}>
111
+ * Copy page
112
+ * </SplitButton.PrimaryAction>
113
+ * <SplitButton.MenuTrigger label="Open doc actions menu" />
114
+ * <SplitButton.MenuContent>
115
+ * <SplitButton.MenuItem onClick={copyMarkdownPage}>
116
+ * Copy page
117
+ * <Icon svg={<CopyIcon />} />
118
+ * </SplitButton.MenuItem>
119
+ * <SplitButton.MenuItem asChild onClick={copyMarkdownPage}>
120
+ * <a href={markdownUrl} target="_blank">
121
+ * View as Markdown
122
+ * <Icon svg={<FileTextIcon />} />
123
+ * </a>
124
+ * </SplitButton.MenuItem>
125
+ * </SplitButton.MenuContent>
126
+ * </SplitButton.Root>
127
+ * ```
128
+ */
129
+ readonly MenuTrigger: react.ForwardRefExoticComponent<Omit<MenuTriggerProps, "ref"> & react.RefAttributes<HTMLButtonElement>>;
130
+ /**
131
+ * The container for the split button dropdown menu content. Appears in a
132
+ * portal with scrolling and animations.
133
+ *
134
+ * @see https://mantle.ngrok.com/components/split-button#splitbuttonmenucontent
135
+ *
136
+ * @example
137
+ * ```tsx
138
+ * <SplitButton.Root>
139
+ * <SplitButton.PrimaryAction icon={<CopyIcon />} iconPlacement="end" onClick={copyMarkdownPage}>
140
+ * Copy page
141
+ * </SplitButton.PrimaryAction>
142
+ * <SplitButton.MenuTrigger label="Open doc actions menu" />
143
+ * <SplitButton.MenuContent>
144
+ * <SplitButton.MenuItem onClick={copyMarkdownPage}>
145
+ * Copy page
146
+ * <Icon svg={<CopyIcon />} />
147
+ * </SplitButton.MenuItem>
148
+ * <SplitButton.MenuItem asChild onClick={copyMarkdownPage}>
149
+ * <a href={markdownUrl} target="_blank">
150
+ * View as Markdown
151
+ * <Icon svg={<FileTextIcon />} />
152
+ * </a>
153
+ * </SplitButton.MenuItem>
154
+ * </SplitButton.MenuContent>
155
+ * </SplitButton.Root>
156
+ * ```
157
+ */
158
+ readonly MenuContent: react.ForwardRefExoticComponent<Omit<Omit<_radix_ui_react_dropdown_menu0.DropdownMenuContentProps & react.RefAttributes<HTMLDivElement>, "ref"> & {
159
+ width?: "trigger" | "content";
160
+ } & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
161
+ /**
162
+ * A standard item in the split button dropdown menu that can be selected or
163
+ * activated.
164
+ *
165
+ * @see https://mantle.ngrok.com/components/split-button#splitbuttonmenuitem
166
+ *
167
+ * @example
168
+ * ```tsx
169
+ * <SplitButton.Root>
170
+ * <SplitButton.PrimaryAction icon={<CopyIcon />} iconPlacement="end" onClick={copyMarkdownPage}>
171
+ * Copy page
172
+ * </SplitButton.PrimaryAction>
173
+ * <SplitButton.MenuTrigger label="Open doc actions menu" />
174
+ * <SplitButton.MenuContent>
175
+ * <SplitButton.MenuItem onClick={copyMarkdownPage}>
176
+ * Copy page
177
+ * <Icon svg={<CopyIcon />} />
178
+ * </SplitButton.MenuItem>
179
+ * <SplitButton.MenuItem asChild onClick={copyMarkdownPage}>
180
+ * <a href={markdownUrl} target="_blank">
181
+ * View as Markdown
182
+ * <Icon svg={<FileTextIcon />} />
183
+ * </a>
184
+ * </SplitButton.MenuItem>
185
+ * </SplitButton.MenuContent>
186
+ * </SplitButton.Root>
187
+ * ```
188
+ */
189
+ readonly MenuItem: react.ForwardRefExoticComponent<Omit<Omit<_radix_ui_react_dropdown_menu0.DropdownMenuItemProps & react.RefAttributes<HTMLDivElement>, "ref"> & {
190
+ inset?: boolean;
191
+ } & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
197
192
  };
198
-
193
+ //#endregion
199
194
  export { SplitButton };
195
+ //# sourceMappingURL=split-button.d.ts.map
@@ -1,2 +1,2 @@
1
- import{a as r}from"./chunk-7YLII2US.js";import"./chunk-MLXONRJD.js";import{a as u}from"./chunk-W5A5HSFE.js";import{c as m}from"./chunk-CBRSMQ26.js";import"./chunk-63ZAW25Z.js";import"./chunk-72TJUKMV.js";import"./chunk-OP6JMBKJ.js";import{a as s}from"./chunk-IVQ626TU.js";import"./chunk-ADF5DAYG.js";import"./chunk-SBQHQ2SJ.js";import{a}from"./chunk-PFXFESEN.js";import{CaretDownIcon as w}from"@phosphor-icons/react/CaretDown";import{forwardRef as p}from"react";import{jsx as n}from"react/jsx-runtime";var d=p(({className:o,children:t,dir:e,open:i,defaultOpen:C,onOpenChange:P,modal:g,...M},R)=>n(r.Root,{dir:e,open:i,defaultOpen:C,onOpenChange:P,modal:g,children:n("div",{"data-slot":"split-button",className:a("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!",o),ref:R,...M,children:t})}));d.displayName="SplitButton";var l=p(({type:o="button",...t},e)=>n(u,{appearance:"outlined",priority:"neutral",ref:e,type:o,...t}));l.displayName="SplitButtonPrimaryAction";var c=p(({icon:o,type:t="button",...e},i)=>n(r.Trigger,{asChild:!0,className:"group",children:n(m,{icon:o??n(s,{svg:n(w,{weight:"bold",className:"size-4 group-data-[state=open]:-rotate-180 transition-transform ease-out duration-150"})}),appearance:"outlined",ref:i,type:t,...e})}));c.displayName="SplitButtonMenuTrigger";var f=p(({align:o="end",...t},e)=>n(r.Content,{align:o,ref:e,...t}));f.displayName="SplitButtonMenuContent";var y=p(({className:o,...t},e)=>n(r.Item,{className:a("justify-between gap-4",o),ref:e,...t}));y.displayName="SplitButtonMenuItem";var h={Root:d,PrimaryAction:l,MenuTrigger:c,MenuContent:f,MenuItem:y};export{h as SplitButton};
1
+ import{t as e}from"./cx-bKromGBh.js";import{t}from"./icon-B5oNYYrJ.js";import{t as n}from"./icon-button-D4e9-dq-.js";import{t as r}from"./button-CRRPesae.js";import{t as i}from"./dropdown-menu-CjOaj-Ap.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(`justify-between gap-4`,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,"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 (\n\t\t<DropdownMenu.Item className={cx(\"justify-between gap-4\", className)} ref={ref} {...props} />\n\t);\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 * ```tsx\n * <SplitButton.Root>\n * <SplitButton.PrimaryAction icon={<CopyIcon />} iconPlacement=\"end\" 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 * Copy page\n * <Icon svg={<CopyIcon />} />\n * </SplitButton.MenuItem>\n * <SplitButton.MenuItem asChild onClick={copyMarkdownPage}>\n * <a href={markdownUrl} target=\"_blank\">\n * View as Markdown\n * <Icon svg={<FileTextIcon />} />\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 />} iconPlacement=\"end\" 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 />} iconPlacement=\"end\" 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 />} iconPlacement=\"end\" 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 />} iconPlacement=\"end\" 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 />} iconPlacement=\"end\" 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":"2WAAA,OAAS,iBAAAA,MAAqB,kCAC9B,OAAS,cAAAC,MAA0E,QAmB/E,cAAAC,MAAA,oBAVJ,IAAMC,EAAOC,EACZ,CAAC,CAAE,UAAAC,EAAW,SAAAC,EAAU,IAAAC,EAAK,KAAAC,EAAM,YAAAC,EAAa,aAAAC,EAAc,MAAAC,EAAO,GAAGC,CAAM,EAAGC,IAE/EX,EAACY,EAAa,KAAb,CACA,IAAKP,EACL,KAAMC,EACN,YAAaC,EACb,aAAcC,EACd,MAAOC,EAEP,SAAAT,EAAC,OACA,YAAU,eACV,UAAWa,EACV,sQACAV,CACD,EACA,IAAKQ,EACJ,GAAGD,EAEH,SAAAN,EACF,EACD,CAGH,EACAH,EAAK,YAAc,cAKnB,IAAMa,EAAgBZ,EACrB,CAAC,CAAE,KAAAa,EAAO,SAAU,GAAGL,CAAM,EAAGC,IACxBX,EAACgB,EAAA,CAAO,WAAW,WAAW,SAAS,UAAU,IAAKL,EAAK,KAAMI,EAAO,GAAGL,EAAO,CAE3F,EACAI,EAAc,YAAc,2BAU5B,IAAMG,EAAcf,EACnB,CAAC,CAAE,KAAAgB,EAAM,KAAAH,EAAO,SAAU,GAAGL,CAAM,EAAGC,IAEpCX,EAACY,EAAa,QAAb,CAAqB,QAAO,GAAC,UAAU,QACvC,SAAAZ,EAACmB,EAAA,CACA,KACCD,GACClB,EAACoB,EAAA,CACA,IACCpB,EAACqB,EAAA,CACA,OAAO,OACP,UAAU,wFACX,EAEF,EAGF,WAAW,WACX,IAAKV,EACL,KAAMI,EACL,GAAGL,EACL,EACD,CAGH,EACAO,EAAY,YAAc,yBAE1B,IAAMK,EAAcpB,EAGlB,CAAC,CAAE,MAAAqB,EAAQ,MAAO,GAAGb,CAAM,EAAGC,IACxBX,EAACY,EAAa,QAAb,CAAqB,MAAOW,EAAO,IAAKZ,EAAM,GAAGD,EAAO,CAChE,EACDY,EAAY,YAAc,yBAE1B,IAAME,EAAWtB,EAGf,CAAC,CAAE,UAAAC,EAAW,GAAGO,CAAM,EAAGC,IAE1BX,EAACY,EAAa,KAAb,CAAkB,UAAWC,EAAG,wBAAyBV,CAAS,EAAG,IAAKQ,EAAM,GAAGD,EAAO,CAE5F,EACDc,EAAS,YAAc,sBA+BvB,IAAMC,EAAc,CA8BnB,KAAAxB,EA4BA,cAAAa,EA4BA,YAAAG,EA6BA,YAAAK,EA6BA,SAAAE,CACD","names":["CaretDownIcon","forwardRef","jsx","Root","forwardRef","className","children","dir","open","defaultOpen","onOpenChange","modal","props","ref","DropdownMenu","cx","PrimaryAction","type","Button","MenuTrigger","icon","IconButton","Icon","CaretDownIcon","MenuContent","align","MenuItem","SplitButton"]}
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 (\n\t\t<DropdownMenu.Item className={cx(\"justify-between gap-4\", className)} ref={ref} {...props} />\n\t);\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 * ```tsx\n * <SplitButton.Root>\n * <SplitButton.PrimaryAction icon={<CopyIcon />} iconPlacement=\"end\" 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 * Copy page\n * <Icon svg={<CopyIcon />} />\n * </SplitButton.MenuItem>\n * <SplitButton.MenuItem asChild onClick={copyMarkdownPage}>\n * <a href={markdownUrl} target=\"_blank\">\n * View as Markdown\n * <Icon svg={<FileTextIcon />} />\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 />} iconPlacement=\"end\" 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 />} iconPlacement=\"end\" 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 />} iconPlacement=\"end\" 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 />} iconPlacement=\"end\" 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 />} iconPlacement=\"end\" 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,IAE1B,EAAC,EAAa,KAAd,CAAmB,UAAW,EAAG,wBAAyB,EAAU,CAAO,MAAK,GAAI,EAAS,CAAA,CAE7F,CACF,EAAS,YAAc,sBA+BvB,MAAM,EAAc,CA8BnB,OA4BA,gBA4BA,cA6BA,cA6BA,WACA"}
@@ -0,0 +1,2 @@
1
+ import{t as e}from"./cx-bKromGBh.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,{...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-BVLlbQ4e.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg-only-BVLlbQ4e.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...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,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,12 +1,13 @@
1
- import * as react from 'react';
2
- import { ReactNode } from 'react';
3
- import { S as SvgAttributes } from './types-BuKAGhC-.js';
1
+ import { t as SvgAttributes } from "./types-Dh4BVhXC.js";
2
+ import * as react from "react";
3
+ import { ReactNode } from "react";
4
4
 
5
+ //#region src/components/icon/svg-only.d.ts
5
6
  type SvgOnlyProps = Omit<SvgAttributes, "children"> & {
6
- /**
7
- * A single SVG icon element.
8
- */
9
- svg: ReactNode;
7
+ /**
8
+ * A single SVG icon element.
9
+ */
10
+ svg: ReactNode;
10
11
  };
11
12
  /**
12
13
  * Accepts a single SVG icon element and decorates it with `shrink-0` class.
@@ -22,5 +23,6 @@ type SvgOnlyProps = Omit<SvgAttributes, "children"> & {
22
23
  * ```
23
24
  */
24
25
  declare const SvgOnly: react.ForwardRefExoticComponent<Omit<SvgOnlyProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
25
-
26
- export { SvgOnly as S, type SvgOnlyProps as a };
26
+ //#endregion
27
+ export { SvgOnlyProps as n, SvgOnly as t };
28
+ //# sourceMappingURL=svg-only-Dti1FvNV.d.ts.map
package/dist/switch.d.ts CHANGED
@@ -1,6 +1,7 @@
1
- import * as react from 'react';
2
- import * as _radix_ui_react_switch from '@radix-ui/react-switch';
1
+ import * as react from "react";
2
+ import * as _radix_ui_react_switch0 from "@radix-ui/react-switch";
3
3
 
4
+ //#region src/components/switch/switch.d.ts
4
5
  /**
5
6
  * A form control that allows the user to toggle between checked and not checked.
6
7
  *
@@ -16,11 +17,12 @@ import * as _radix_ui_react_switch from '@radix-ui/react-switch';
16
17
  * </form>
17
18
  * ```
18
19
  */
19
- declare const Switch: react.ForwardRefExoticComponent<Omit<_radix_ui_react_switch.SwitchProps & react.RefAttributes<HTMLButtonElement>, "ref"> & {
20
- /**
21
- * Makes the switch immutable, meaning the user can not edit the control.
22
- */
23
- readOnly?: boolean;
20
+ declare const Switch: react.ForwardRefExoticComponent<Omit<_radix_ui_react_switch0.SwitchProps & react.RefAttributes<HTMLButtonElement>, "ref"> & {
21
+ /**
22
+ * Makes the switch immutable, meaning the user can not edit the control.
23
+ */
24
+ readOnly?: boolean;
24
25
  } & react.RefAttributes<HTMLButtonElement>>;
25
-
26
+ //#endregion
26
27
  export { Switch };
28
+ //# sourceMappingURL=switch.d.ts.map
package/dist/switch.js CHANGED
@@ -1,2 +1,2 @@
1
- import{a as i}from"./chunk-OP6JMBKJ.js";import{a as o}from"./chunk-PFXFESEN.js";import{Root as m,Thumb as p}from"@radix-ui/react-switch";import h from"clsx";import{forwardRef as u}from"react";import{jsx as r}from"react/jsx-runtime";var a=u(({"aria-readonly":n,className:s,readOnly:c,onClick:l,...d},f)=>{let t=i(c??n);return r(m,{"aria-readonly":t,className:o("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-blue-500 data-state-unchecked:bg-gray-400",s),onClick:e=>{if(t){e.preventDefault(),e.stopPropagation();return}l?.(e)},ref:f,...d,children:r(p,{className:h("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")})})});a.displayName="Switch";export{a as Switch};
1
+ import{t as e}from"./cx-bKromGBh.js";import{t}from"./booleanish-CBGdPL3Q.js";import{forwardRef as n}from"react";import r from"clsx";import{jsx as i}from"react/jsx-runtime";import{Root as a,Thumb as o}from"@radix-ui/react-switch";const s=n(({"aria-readonly":n,className:s,readOnly:c,onClick:l,...u},d)=>{let f=t(c??n);return i(a,{"aria-readonly":f,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-blue-500 data-state-unchecked:bg-gray-400`,s),onClick:e=>{if(f){e.preventDefault(),e.stopPropagation();return}l?.(e)},ref:d,...u,children:i(o,{className:r(`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`)})})});s.displayName=`Switch`;export{s as Switch};
2
2
  //# sourceMappingURL=switch.js.map
@@ -1 +1 @@
1
- {"version":3,"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\";\n\ntype SwitchProps = ComponentPropsWithoutRef<typeof SwitchPrimitiveRoot> & {\n\t/**\n\t * Makes the switch immutable, meaning the user can not edit the control.\n\t */\n\treadOnly?: boolean;\n};\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({ \"aria-readonly\": _ariaReadOnly, className, readOnly: _readOnly, onClick, ...props }, ref) => {\n\t\tconst readOnly = parseBooleanish(_readOnly ?? _ariaReadOnly);\n\n\t\treturn (\n\t\t\t<SwitchPrimitiveRoot\n\t\t\t\taria-readonly={readOnly}\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-blue-500 data-state-unchecked:bg-gray-400\",\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":"gFAAA,OAAS,QAAQA,EAAqB,SAASC,MAA4B,yBAC3E,OAAOC,MAAU,OACjB,OAAS,cAAAC,MAAkB,QAoDvB,cAAAC,MAAA,oBAzBJ,IAAMC,EAASC,EACd,CAAC,CAAE,gBAAiBC,EAAe,UAAAC,EAAW,SAAUC,EAAW,QAAAC,EAAS,GAAGC,CAAM,EAAGC,IAAQ,CAC/F,IAAMC,EAAWC,EAAgBL,GAAaF,CAAa,EAE3D,OACCH,EAACW,EAAA,CACA,gBAAeF,EACf,UAAWG,EACV,4FACA,8CACA,oHACA,kEACAR,CACD,EACA,QAAUS,GAAU,CACnB,GAAIJ,EAAU,CACbI,EAAM,eAAe,EACrBA,EAAM,gBAAgB,EACtB,MACD,CACAP,IAAUO,CAAK,CAChB,EACA,IAAKL,EACJ,GAAGD,EAEJ,SAAAP,EAACc,EAAA,CACA,UAAWC,EACV,gGACA,yEACD,EACD,EACD,CAEF,CACD,EACAd,EAAO,YAAc","names":["SwitchPrimitiveRoot","SwitchPrimitiveThumb","clsx","forwardRef","jsx","Switch","forwardRef","_ariaReadOnly","className","_readOnly","onClick","props","ref","readOnly","parseBooleanish","SwitchPrimitiveRoot","cx","event","SwitchPrimitiveThumb","clsx"]}
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\";\n\ntype SwitchProps = ComponentPropsWithoutRef<typeof SwitchPrimitiveRoot> & {\n\t/**\n\t * Makes the switch immutable, meaning the user can not edit the control.\n\t */\n\treadOnly?: boolean;\n};\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({ \"aria-readonly\": _ariaReadOnly, className, readOnly: _readOnly, onClick, ...props }, ref) => {\n\t\tconst readOnly = parseBooleanish(_readOnly ?? _ariaReadOnly);\n\n\t\treturn (\n\t\t\t<SwitchPrimitiveRoot\n\t\t\t\taria-readonly={readOnly}\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-blue-500 data-state-unchecked:bg-gray-400\",\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":"qOA6BA,MAAM,EAAS,GACb,CAAE,gBAAiB,EAAe,YAAW,SAAU,EAAW,UAAS,GAAG,GAAS,IAAQ,CAC/F,IAAM,EAAW,EAAgB,GAAa,EAAc,CAE5D,OACC,EAACA,EAAD,CACC,gBAAe,EACf,UAAW,EACV,4FACA,8CACA,oHACA,kEACA,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"}
@@ -0,0 +1,2 @@
1
+ import{t as e}from"./cx-bKromGBh.js";import{t}from"./compose-refs-DeIsFv68.js";import{forwardRef as n,useEffect 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`,{className:e(`group/table scrollbar overflow-x-auto overscroll-x-none rounded-lg border border-card bg-white dark:bg-gray-100 relative w-full`,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,ref:t(o.ref,a),...i,children:n})});c.displayName=`TableRoot`;const l=n(({children:t,className:n,...r},i)=>s(`table`,{ref:i,className:e(`table-auto border-collapse 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`,{ref:i,className:e(`border-b border-card-muted`,`divide-y divide-card-muted`,`text-strong bg-base`,`[&>tr]:bg-base`,n),...r,children:t}));u.displayName=`TableHead`;const d=n(({children:t,className:n,...r},i)=>s(`tbody`,{className:e(`divide-y divide-card-muted`,`text-body`,`[thead+&]:border-t [thead+&]:border-card-muted`,`[&>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`,{ref:i,className:e(`font-medium text-body`,`border-t border-card-muted`,`divide-y divide-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`,{ref:i,className:e(n),...r,children:t}));p.displayName=`TableRow`;const m=n(({children:t,className:n,...r},i)=>s(`th`,{ref:i,className:e(`h-12 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`,{ref:i,className:e(`p-4 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`,{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,scrolledToEnd:!1});return r(()=>{let t=e.current;if(!t)return;let r=()=>{let e=t.scrollWidth>t.clientWidth,r=Math.abs(t.scrollWidth-t.scrollLeft-t.clientWidth)<1;n(t=>t.hasOverflow!==e||t.scrolledToEnd!==r?{hasOverflow:e,scrolledToEnd:r}:t)},i=new ResizeObserver(r);i.observe(t);let a=new MutationObserver(r);return a.observe(t,{childList:!0,subtree:!0}),t.addEventListener(`scroll`,r,{passive:!0}),r(),()=>{i.disconnect(),a.disconnect(),t.removeEventListener(`scroll`,r)}},[]),i(()=>({ref:e,state:t}),[t])}export{_ as t};
2
+ //# sourceMappingURL=table-BWMp12sl.js.map