@tpc-mare/mare-ui-components-react 1.0.2 → 1.0.3-beta.0

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 (293) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +227 -0
  3. package/dist/accordion/index.js +1 -1
  4. package/dist/accordion.d.ts +36 -0
  5. package/dist/{avatar/Avatar.types.d.ts → avatar.d.ts} +34 -26
  6. package/dist/badge.d.ts +19 -0
  7. package/dist/banner/index.js +1 -1
  8. package/dist/banner.d.ts +23 -0
  9. package/dist/breadcrumbs/index.js +1 -1
  10. package/dist/breadcrumbs.d.ts +24 -0
  11. package/dist/button/index.js +1 -1
  12. package/dist/button.d.ts +45 -0
  13. package/dist/checkbox/index.js +1 -1
  14. package/dist/{checkbox/Checkbox.types.d.ts → checkbox.d.ts} +79 -69
  15. package/dist/combobox/index.js +1 -1
  16. package/dist/combobox.d.ts +43 -0
  17. package/dist/confirm-dialog/index.js +1 -1
  18. package/dist/confirm-dialog.d.ts +34 -0
  19. package/dist/counter/index.js +1 -1
  20. package/dist/{counter/Counter.types.d.ts → counter.d.ts} +34 -23
  21. package/dist/date-picker/index.js +1 -1
  22. package/dist/{date-picker/DatePicker.types.d.ts → date-picker.d.ts} +76 -52
  23. package/dist/dialog/index.js +2 -2
  24. package/dist/{dialog/Dialog.types.d.ts → dialog.d.ts} +74 -55
  25. package/dist/divider.d.ts +18 -0
  26. package/dist/drawer/index.js +1 -1
  27. package/dist/{drawer/Drawer.types.d.ts → drawer.d.ts} +68 -53
  28. package/dist/expandable-counter/index.js +1 -1
  29. package/dist/{expandable-counter/ExpandableCounter.types.d.ts → expandable-counter.d.ts} +25 -19
  30. package/dist/filter-chip/index.js +1 -1
  31. package/dist/filter-chip-dropdown-multiple/index.js +1 -1
  32. package/dist/filter-chip-dropdown-multiple.d.ts +42 -0
  33. package/dist/filter-chip-dropdown-single/index.js +1 -1
  34. package/dist/filter-chip-dropdown-single.d.ts +40 -0
  35. package/dist/filter-chip-group.d.ts +27 -0
  36. package/dist/{filter-chip/FilterChip.types.d.ts → filter-chip.d.ts} +49 -40
  37. package/dist/floating-action-button/index.js +1 -1
  38. package/dist/floating-action-button.d.ts +46 -0
  39. package/dist/image-item.d.ts +15 -0
  40. package/dist/image-slider/index.js +1 -1
  41. package/dist/image-slider.d.ts +12 -0
  42. package/dist/index/index.js +40 -40
  43. package/dist/index.d.ts +1693 -0
  44. package/dist/input-number/index.js +1 -1
  45. package/dist/{input-number/InputNumber.types.d.ts → input-number.d.ts} +42 -30
  46. package/dist/input-otp/index.js +1 -1
  47. package/dist/{input-otp/InputOtp.types.d.ts → input-otp.d.ts} +36 -27
  48. package/dist/input-text/index.js +2 -2
  49. package/dist/input-text.d.ts +77 -0
  50. package/dist/keyboard-commands/index.js +51 -31
  51. package/dist/keyboard-commands.d.ts +264 -0
  52. package/dist/menu/index.js +1 -1
  53. package/dist/menu.d.ts +48 -0
  54. package/dist/message/index.js +1 -1
  55. package/dist/message.d.ts +28 -0
  56. package/dist/multi-select/index.js +1 -1
  57. package/dist/{multi-select/MultiSelect.types.d.ts → multi-select.d.ts} +62 -31
  58. package/dist/overlay-badge/index.js +1 -1
  59. package/dist/{overlay-badge/OverlayBadge.types.d.ts → overlay-badge.d.ts} +25 -17
  60. package/dist/paginator/index.js +1 -1
  61. package/dist/{paginator/Paginator.types.d.ts → paginator.d.ts} +27 -21
  62. package/dist/panel-menu/index.js +1 -1
  63. package/dist/panel-menu.d.ts +29 -0
  64. package/dist/password/index.js +1 -1
  65. package/dist/{password/Password.types.d.ts → password.d.ts} +58 -39
  66. package/dist/{progress-bar/ProgressBar.types.d.ts → progress-bar.d.ts} +45 -38
  67. package/dist/{progress-spinner/ProgressSpinner.d.ts → progress-spinner.d.ts} +15 -10
  68. package/dist/radio-group/index.js +1 -1
  69. package/dist/{radio-group/RadioGroup.types.d.ts → radio-group.d.ts} +81 -62
  70. package/dist/search-field/index.js +1 -1
  71. package/dist/search-field.d.ts +55 -0
  72. package/dist/segmented-control/index.js +1 -1
  73. package/dist/{segmented-control/SegmentedControl.types.d.ts → segmented-control.d.ts} +70 -54
  74. package/dist/select-field/index.js +1 -1
  75. package/dist/select-field.d.ts +40 -0
  76. package/dist/shared/{Accordion-BSmOrxH6.js → Accordion-QSdlMSst.js} +9 -6
  77. package/dist/shared/{Banner-D4na_bM8.js → Banner-DMWwNO2K.js} +6 -3
  78. package/dist/shared/{Breadcrumbs-Cqr3Jitd.js → Breadcrumbs-bcs9_ByY.js} +4 -1
  79. package/dist/shared/{Button-C2ULmKj3.js → Button-BqFuDnSs.js} +98 -92
  80. package/dist/shared/{Checkbox-DCq3_MWz.js → Checkbox-DgZAQsbr.js} +94 -87
  81. package/dist/shared/Combobox-CiaEi_RG.js +148 -0
  82. package/dist/shared/{ConfirmDialog-cmLTBBNs.js → ConfirmDialog-DHsPafOo.js} +8 -3
  83. package/dist/shared/{Counter-0siKQRKc.js → Counter-lqywtgF6.js} +25 -27
  84. package/dist/shared/{DatePicker-DhIWE0V_.js → DatePicker-t6xP4UWu.js} +370 -346
  85. package/dist/shared/{DialogFooter-Cx7G-GHH.js → DialogFooter-DKFuHOJl.js} +4 -1
  86. package/dist/shared/{DialogHeader-DdVPFxGf.js → DialogHeader-D0dg5FBI.js} +14 -14
  87. package/dist/shared/{DrawerFooter-DEb2gqW-.js → DrawerFooter-CGrPQoLH.js} +35 -26
  88. package/dist/shared/{ExpandableCounter-pPJIrd6L.js → ExpandableCounter-BOCHfuye.js} +23 -22
  89. package/dist/shared/{FilterChip-TpKF-4vP.js → FilterChip-Cc4BBVz3.js} +21 -21
  90. package/dist/shared/{FilterChipDropdownMultiple-2mr_Z57i.js → FilterChipDropdownMultiple-DL3mHW9H.js} +20 -15
  91. package/dist/shared/{FilterChipDropdownSingle-CLmWzX9q.js → FilterChipDropdownSingle-BUrzUAmy.js} +31 -22
  92. package/dist/shared/FloatingActionButton-Dhqp98s7.js +27 -0
  93. package/dist/shared/{HelperText-zmUym82m.js → HelperText-C9TsD0wC.js} +1 -0
  94. package/dist/shared/IconField-Bp2H10B1.js +89 -0
  95. package/dist/shared/{ImageSlider-Bgb1kNQ4.js → ImageSlider-DT0B5g68.js} +5 -5
  96. package/dist/shared/InputNumber-CUNq3cPa.js +75 -0
  97. package/dist/shared/InputOtp-wTUwu1NG.js +75 -0
  98. package/dist/shared/{Menu-Cv9dU1iA.js → Menu-DBHlDgtQ.js} +5 -2
  99. package/dist/shared/{Message-CQUdM9rR.js → Message-B36kcrfu.js} +4 -4
  100. package/dist/shared/MultiSelect-CfKm_FPp.js +248 -0
  101. package/dist/shared/{OverlayBadge-Dkosm3Il.js → OverlayBadge-CnQI_NE0.js} +1 -0
  102. package/dist/shared/{Paginator-QTDpAJ-N.js → Paginator-BRQx1GRQ.js} +48 -49
  103. package/dist/shared/{PanelMenu-BpjNM7O_.js → PanelMenu-Dw-K6H2C.js} +14 -4
  104. package/dist/shared/Password-BWNvygrO.js +113 -0
  105. package/dist/shared/RadioGroup-CHgzVvZO.js +145 -0
  106. package/dist/shared/SearchField-Cuw3MVaD.js +73 -0
  107. package/dist/shared/{SegmentedControl-BfE3jNM6.js → SegmentedControl-D3znmx9l.js} +4 -1
  108. package/dist/shared/SelectField-BAuctVIF.js +120 -0
  109. package/dist/shared/Slider-D_iNiPxa.js +110 -0
  110. package/dist/shared/{Snackbar-BhORbyt-.js → Snackbar-DP-b4GWx.js} +50 -17
  111. package/dist/shared/{Stepper-DrKKSn_j.js → Stepper-CudtdHSg.js} +26 -18
  112. package/dist/shared/Switch-C1dd2rX1.js +114 -0
  113. package/dist/shared/{Tabs-DuufYBV2.js → Tabs-lGGLALGR.js} +4 -1
  114. package/dist/shared/{TagChip-CP3aX2_G.js → TagChip-QQ6p0JgU.js} +1 -1
  115. package/dist/shared/Textarea-CJfNbqGA.js +51 -0
  116. package/dist/shared/useControllableValue-DhckT_e1.js +13 -0
  117. package/dist/skeleton.d.ts +30 -0
  118. package/dist/slider/index.js +1 -1
  119. package/dist/{slider/Slider.types.d.ts → slider.d.ts} +33 -24
  120. package/dist/snackbar/index.js +1 -1
  121. package/dist/{snackbar/Snackbar.types.d.ts → snackbar.d.ts} +63 -42
  122. package/dist/stepper/index.js +1 -1
  123. package/dist/stepper.d.ts +38 -0
  124. package/dist/switch/index.js +1 -1
  125. package/dist/{switch/Switch.types.d.ts → switch.d.ts} +68 -59
  126. package/dist/tabs/index.js +1 -1
  127. package/dist/tabs.d.ts +30 -0
  128. package/dist/tag-chip/index.js +1 -1
  129. package/dist/{tag-chip/TagChip.types.d.ts → tag-chip.d.ts} +33 -21
  130. package/dist/tag.d.ts +23 -0
  131. package/dist/textarea/index.js +1 -1
  132. package/dist/textarea.d.ts +26 -0
  133. package/package.json +15 -8
  134. package/dist/.storybook/main.d.ts +0 -3
  135. package/dist/.storybook/manager.d.ts +0 -1
  136. package/dist/.storybook/preview.d.ts +0 -3
  137. package/dist/accordion/Accordion.d.ts +0 -2
  138. package/dist/accordion/Accordion.types.d.ts +0 -20
  139. package/dist/accordion/index.d.ts +0 -2
  140. package/dist/avatar/Avatar.d.ts +0 -2
  141. package/dist/avatar/index.d.ts +0 -2
  142. package/dist/badge/Badge.d.ts +0 -2
  143. package/dist/badge/Badge.types.d.ts +0 -11
  144. package/dist/badge/index.d.ts +0 -2
  145. package/dist/banner/Banner.d.ts +0 -2
  146. package/dist/banner/Banner.types.d.ts +0 -15
  147. package/dist/banner/index.d.ts +0 -2
  148. package/dist/breadcrumbs/Breadcrumbs.d.ts +0 -2
  149. package/dist/breadcrumbs/Breadcrumbs.types.d.ts +0 -11
  150. package/dist/breadcrumbs/index.d.ts +0 -2
  151. package/dist/button/Button.d.ts +0 -2
  152. package/dist/button/Button.types.d.ts +0 -24
  153. package/dist/button/index.d.ts +0 -2
  154. package/dist/checkbox/Checkbox.d.ts +0 -2
  155. package/dist/checkbox/index.d.ts +0 -2
  156. package/dist/combobox/Combobox.d.ts +0 -13
  157. package/dist/combobox/Combobox.types.d.ts +0 -16
  158. package/dist/combobox/index.d.ts +0 -2
  159. package/dist/confirm-dialog/ConfirmDialog.d.ts +0 -2
  160. package/dist/confirm-dialog/ConfirmDialog.types.d.ts +0 -21
  161. package/dist/confirm-dialog/index.d.ts +0 -2
  162. package/dist/counter/Counter.d.ts +0 -2
  163. package/dist/counter/index.d.ts +0 -2
  164. package/dist/date-picker/DatePicker.d.ts +0 -3
  165. package/dist/date-picker/index.d.ts +0 -2
  166. package/dist/dialog/Dialog.d.ts +0 -2
  167. package/dist/dialog/DialogFooter.d.ts +0 -2
  168. package/dist/dialog/DialogHeader.d.ts +0 -2
  169. package/dist/dialog/index.d.ts +0 -4
  170. package/dist/divider/Divider.d.ts +0 -2
  171. package/dist/divider/Divider.types.d.ts +0 -8
  172. package/dist/divider/index.d.ts +0 -2
  173. package/dist/drawer/Drawer.d.ts +0 -2
  174. package/dist/drawer/DrawerFooter.d.ts +0 -2
  175. package/dist/drawer/DrawerHeader.d.ts +0 -2
  176. package/dist/drawer/index.d.ts +0 -4
  177. package/dist/expandable-counter/ExpandableCounter.d.ts +0 -2
  178. package/dist/expandable-counter/index.d.ts +0 -2
  179. package/dist/filter-chip/FilterChip.d.ts +0 -2
  180. package/dist/filter-chip/index.d.ts +0 -2
  181. package/dist/filter-chip-dropdown-multiple/FilterChipDropdownMultiple.d.ts +0 -9
  182. package/dist/filter-chip-dropdown-multiple/FilterChipDropdownMultiple.types.d.ts +0 -19
  183. package/dist/filter-chip-dropdown-multiple/index.d.ts +0 -2
  184. package/dist/filter-chip-dropdown-single/FilterChipDropdownSingle.d.ts +0 -11
  185. package/dist/filter-chip-dropdown-single/FilterChipDropdownSingle.types.d.ts +0 -15
  186. package/dist/filter-chip-dropdown-single/index.d.ts +0 -2
  187. package/dist/filter-chip-group/FilterChipGroup.d.ts +0 -8
  188. package/dist/filter-chip-group/FilterChipGroup.types.d.ts +0 -12
  189. package/dist/filter-chip-group/index.d.ts +0 -2
  190. package/dist/floating-action-button/FloatingActionButton.d.ts +0 -2
  191. package/dist/floating-action-button/FloatingActionButton.types.d.ts +0 -9
  192. package/dist/floating-action-button/index.d.ts +0 -2
  193. package/dist/image-item/ImageItem.d.ts +0 -2
  194. package/dist/image-item/ImageItem.types.d.ts +0 -7
  195. package/dist/image-item/index.d.ts +0 -2
  196. package/dist/image-slider/ImageSlider.d.ts +0 -2
  197. package/dist/image-slider/ImageSlider.types.d.ts +0 -6
  198. package/dist/image-slider/index.d.ts +0 -2
  199. package/dist/index/index.d.ts +0 -94
  200. package/dist/input-number/InputNumber.d.ts +0 -2
  201. package/dist/input-number/index.d.ts +0 -2
  202. package/dist/input-otp/InputOtp.d.ts +0 -2
  203. package/dist/input-otp/index.d.ts +0 -2
  204. package/dist/input-text/CharacterCount.d.ts +0 -5
  205. package/dist/input-text/FloatLabel.d.ts +0 -6
  206. package/dist/input-text/FormField.d.ts +0 -8
  207. package/dist/input-text/HelperText.d.ts +0 -4
  208. package/dist/input-text/IconField.d.ts +0 -18
  209. package/dist/input-text/InputText.d.ts +0 -2
  210. package/dist/input-text/InputText.types.d.ts +0 -14
  211. package/dist/input-text/field-layout.d.ts +0 -12
  212. package/dist/input-text/index.d.ts +0 -11
  213. package/dist/keyboard-commands/index.d.ts +0 -5
  214. package/dist/keyboard-commands/useKeyboardCommands.d.ts +0 -27
  215. package/dist/keyboard-commands/useKeyboardNavGrid.d.ts +0 -19
  216. package/dist/keyboard-commands/useKeyboardNavList.d.ts +0 -17
  217. package/dist/keyboard-commands/useKeyboardScope.d.ts +0 -20
  218. package/dist/menu/Menu.d.ts +0 -2
  219. package/dist/menu/Menu.types.d.ts +0 -19
  220. package/dist/menu/index.d.ts +0 -2
  221. package/dist/message/Message.d.ts +0 -2
  222. package/dist/message/Message.types.d.ts +0 -17
  223. package/dist/message/index.d.ts +0 -2
  224. package/dist/multi-select/MultiSelect.d.ts +0 -12
  225. package/dist/multi-select/index.d.ts +0 -2
  226. package/dist/overlay-badge/OverlayBadge.d.ts +0 -2
  227. package/dist/overlay-badge/index.d.ts +0 -2
  228. package/dist/paginator/Paginator.d.ts +0 -2
  229. package/dist/paginator/index.d.ts +0 -2
  230. package/dist/panel-menu/PanelMenu.d.ts +0 -2
  231. package/dist/panel-menu/PanelMenu.types.d.ts +0 -12
  232. package/dist/panel-menu/index.d.ts +0 -2
  233. package/dist/password/Password.d.ts +0 -7
  234. package/dist/password/index.d.ts +0 -2
  235. package/dist/progress-bar/ProgressBar.d.ts +0 -2
  236. package/dist/progress-bar/index.d.ts +0 -2
  237. package/dist/progress-spinner/index.d.ts +0 -2
  238. package/dist/radio-group/RadioGroup.d.ts +0 -2
  239. package/dist/radio-group/index.d.ts +0 -2
  240. package/dist/search-field/SearchField.d.ts +0 -2
  241. package/dist/search-field/SearchField.types.d.ts +0 -26
  242. package/dist/search-field/index.d.ts +0 -2
  243. package/dist/segmented-control/SegmentedControl.d.ts +0 -2
  244. package/dist/segmented-control/index.d.ts +0 -2
  245. package/dist/select-field/SelectField.d.ts +0 -14
  246. package/dist/select-field/SelectField.types.d.ts +0 -11
  247. package/dist/select-field/index.d.ts +0 -2
  248. package/dist/shared/Combobox-DrkeDMW0.js +0 -139
  249. package/dist/shared/FloatingActionButton-BWB5Taeg.js +0 -28
  250. package/dist/shared/IconCheck-DzZA6b2U.js +0 -5
  251. package/dist/shared/IconChevronDown-ev2ML7Ex.js +0 -5
  252. package/dist/shared/IconChevronRight-DEIDRsvg.js +0 -7
  253. package/dist/shared/IconField-CqKydKep.js +0 -81
  254. package/dist/shared/IconMinus-fS_GL0Et.js +0 -5
  255. package/dist/shared/IconSearch-CgM6jEUh.js +0 -5
  256. package/dist/shared/IconX-CpPADKjZ.js +0 -5
  257. package/dist/shared/InputNumber-nxus9h5s.js +0 -64
  258. package/dist/shared/InputOtp-BxBc6Vhs.js +0 -73
  259. package/dist/shared/MultiSelect-DlaYWcPo.js +0 -248
  260. package/dist/shared/Password-D4PRaleH.js +0 -97
  261. package/dist/shared/RadioGroup-B8CXU8-l.js +0 -139
  262. package/dist/shared/SearchField-DIsFhJ22.js +0 -64
  263. package/dist/shared/SelectField-CcnbnPEi.js +0 -121
  264. package/dist/shared/Slider-Cl9PyH2q.js +0 -102
  265. package/dist/shared/Switch-B5DSQLFL.js +0 -106
  266. package/dist/shared/Textarea-DHJIWBRM.js +0 -42
  267. package/dist/shared/createReactComponent-Cb6Pzf10.js +0 -48
  268. package/dist/shared/useMediaQuery.d.ts +0 -5
  269. package/dist/skeleton/Skeleton.d.ts +0 -2
  270. package/dist/skeleton/Skeleton.types.d.ts +0 -20
  271. package/dist/skeleton/index.d.ts +0 -2
  272. package/dist/slider/Slider.d.ts +0 -2
  273. package/dist/slider/index.d.ts +0 -2
  274. package/dist/snackbar/Snackbar.d.ts +0 -3
  275. package/dist/snackbar/Snackbar.test.d.ts +0 -1
  276. package/dist/snackbar/index.d.ts +0 -2
  277. package/dist/stepper/Stepper.d.ts +0 -2
  278. package/dist/stepper/Stepper.types.d.ts +0 -18
  279. package/dist/stepper/index.d.ts +0 -2
  280. package/dist/switch/Switch.d.ts +0 -2
  281. package/dist/switch/index.d.ts +0 -2
  282. package/dist/tabs/Tabs.d.ts +0 -10
  283. package/dist/tabs/Tabs.types.d.ts +0 -7
  284. package/dist/tabs/index.d.ts +0 -2
  285. package/dist/tag/Tag.d.ts +0 -2
  286. package/dist/tag/Tag.types.d.ts +0 -11
  287. package/dist/tag/index.d.ts +0 -2
  288. package/dist/tag-chip/TagChip.d.ts +0 -2
  289. package/dist/tag-chip/index.d.ts +0 -2
  290. package/dist/textarea/Textarea.d.ts +0 -2
  291. package/dist/textarea/Textarea.types.d.ts +0 -15
  292. package/dist/textarea/index.d.ts +0 -2
  293. package/dist/vite.config.d.ts +0 -2
@@ -0,0 +1,1693 @@
1
+ import { ButtonHTMLAttributes } from 'react';
2
+ import { ForwardRefExoticComponent } from 'react';
3
+ import { HTMLAttributes } from 'react';
4
+ import { InputHTMLAttributes } from 'react';
5
+ import { JSX as JSX_2 } from 'react';
6
+ import { MouseEvent as MouseEvent_2 } from 'react';
7
+ import { ReactNode } from 'react';
8
+ import { RefAttributes } from 'react';
9
+ import { RefObject } from 'react';
10
+ import { TextareaHTMLAttributes } from 'react';
11
+
12
+ export declare function Accordion({ items, value, defaultValue, onValueChange, multiple, collapsible, }: AccordionProperties): JSX_2.Element;
13
+
14
+ export declare interface AccordionItemData {
15
+ value: string;
16
+ title: string;
17
+ disabled?: boolean;
18
+ /** Divider below this item.
19
+ * @default true */
20
+ divider?: boolean;
21
+ /** Consumer-defined extras (subtitle, content) resolved in the adapter. */
22
+ [key: string]: unknown;
23
+ }
24
+
25
+ export declare interface AccordionItemProperties extends AccordionItemData {
26
+ subtitle?: ReactNode;
27
+ content: ReactNode;
28
+ }
29
+
30
+ export declare interface AccordionProperties {
31
+ items: AccordionItemProperties[];
32
+ /** Controlled expanded item values. Omit to let Ark manage it. */
33
+ value?: string[];
34
+ defaultValue?: string[];
35
+ onValueChange?: (value: string[]) => void;
36
+ /** Whether multiple items can be expanded at once.
37
+ * @default false */
38
+ multiple?: boolean;
39
+ /** Whether an expanded item can be collapsed back by clicking it again.
40
+ * @default true */
41
+ collapsible?: boolean;
42
+ }
43
+
44
+ export declare function Avatar({ image, alt, label, size, id, }: AvatarProperties): JSX_2.Element;
45
+
46
+ declare const AVATAR_SIZES: readonly ["small", "medium"];
47
+
48
+ export declare interface AvatarProperties {
49
+ /**
50
+ * Image URL. Falls back to the initials derived from `label` while it's
51
+ * loading, missing, or fails to load.
52
+ */
53
+ image?: string;
54
+ /**
55
+ * `alt` text for the image.
56
+ */
57
+ alt?: string;
58
+ /**
59
+ * Full name used to derive the fallback initials (e.g. "Tomás Palacio" → "TP").
60
+ */
61
+ label?: string;
62
+ /**
63
+ * Size variant.
64
+ * @default 'small'
65
+ */
66
+ size?: AvatarSize;
67
+ /**
68
+ * Unique identifier for the avatar.
69
+ */
70
+ id?: string;
71
+ }
72
+
73
+ export declare type AvatarSize = (typeof AVATAR_SIZES)[number];
74
+
75
+ export declare function Badge({ severity, icon, children, }: BadgeProperties): JSX_2.Element;
76
+
77
+ declare const BADGE_SEVERITIES: readonly ["accent", "danger", "warning", "highlight", "positive"];
78
+
79
+ export declare interface BadgeProperties {
80
+ /** @default 'accent' */
81
+ severity?: BadgeSeverity;
82
+ /** Shown next to (or instead of) `children`. */
83
+ icon?: ReactNode;
84
+ /** The count/label. A bare dot renders when neither this nor `icon` is set. */
85
+ children?: ReactNode;
86
+ }
87
+
88
+ export declare type BadgeSeverity = (typeof BADGE_SEVERITIES)[number];
89
+
90
+ export declare function Banner({ severity, title, icon, disabled, closable, onClose, children, }: BannerProperties): JSX_2.Element;
91
+
92
+ declare const BANNER_SEVERITIES: readonly ["neutral", "brand", "positive", "warning", "danger"];
93
+
94
+ export declare interface BannerProperties {
95
+ /** @default 'neutral' */
96
+ severity?: BannerSeverity;
97
+ title?: string;
98
+ icon?: ReactNode;
99
+ /** @default false */
100
+ disabled?: boolean;
101
+ /** @default false */
102
+ closable?: boolean;
103
+ onClose?: () => void;
104
+ children?: ReactNode;
105
+ }
106
+
107
+ export declare type BannerSeverity = (typeof BANNER_SEVERITIES)[number];
108
+
109
+ export declare interface BreadcrumbItemData {
110
+ label: string;
111
+ /** Current page — not interactive, distinct visual/behavioral state from disabled. */
112
+ active?: boolean;
113
+ disabled?: boolean;
114
+ /** Consumer-defined extras (icon, href, onClick…) resolved in the adapter. */
115
+ [key: string]: unknown;
116
+ }
117
+
118
+ export declare function Breadcrumbs({ items, separator, renderItem, }: BreadcrumbsProperties): JSX_2.Element;
119
+
120
+ export declare interface BreadcrumbsProperties {
121
+ items: BreadcrumbItemData[];
122
+ /** Rendered between items. Defaults to `'/'`, matching the Vue DS. */
123
+ separator?: ReactNode;
124
+ /** Custom render for an item's content (icon + label). Defaults to
125
+ * `item.icon` (if any) + `item.label`. */
126
+ renderItem?: (item: BreadcrumbItemData) => ReactNode;
127
+ }
128
+
129
+ export declare const Button: ForwardRefExoticComponent<ButtonProperties & RefAttributes<HTMLButtonElement>>;
130
+
131
+ declare const BUTTON_SEVERITIES: readonly ["primary", "secondary", "ghost", "danger"];
132
+
133
+ declare const BUTTON_SIZES: readonly ["xsmall", "small", "medium", "large"];
134
+
135
+ export declare interface ButtonProperties extends ForwardedNativeProperties {
136
+ label?: string;
137
+ severity?: ButtonSeverity;
138
+ size?: ButtonSize;
139
+ variant?: ButtonVariant;
140
+ iconOnly?: boolean;
141
+ disabled?: boolean;
142
+ loading?: boolean;
143
+ link?: boolean;
144
+ linkAnimation?: boolean;
145
+ /** Elevation shadow + the taller raised sizing (what makes a FAB a FAB).
146
+ * @default false */
147
+ raised?: boolean;
148
+ /** Fully rounded corners — pill with a label, circle with iconOnly.
149
+ * @default false */
150
+ rounded?: boolean;
151
+ icon?: ReactNode;
152
+ iconPos?: IconPosition;
153
+ children?: ReactNode;
154
+ }
155
+
156
+ export declare type ButtonSeverity = (typeof BUTTON_SEVERITIES)[number];
157
+
158
+ export declare type ButtonSize = (typeof BUTTON_SIZES)[number];
159
+
160
+ export declare type ButtonVariant = 'solid' | 'bordered';
161
+
162
+ export declare function CharacterCount({ value, max }: CharacterCountProperties): JSX_2.Element;
163
+
164
+ export declare interface CharacterCountProperties {
165
+ value: string;
166
+ max: number;
167
+ }
168
+
169
+ export declare const Checkbox: ForwardRefExoticComponent<CheckboxProperties & RefAttributes<HTMLInputElement>>;
170
+
171
+ declare const CHECKBOX_SIZES: readonly ["small", "medium", "large"];
172
+
173
+ export declare interface CheckboxProperties {
174
+ /**
175
+ * The controlled checked state.
176
+ */
177
+ checked?: CheckedState;
178
+ /**
179
+ * Initial checked state (uncontrolled mode).
180
+ */
181
+ defaultChecked?: CheckedState;
182
+ /**
183
+ * Handler called when checked state changes.
184
+ * Recibe el valor directo, no un objeto `details` — mismo patrón que
185
+ * Switch y que los 26 callbacks del resto del paquete.
186
+ */
187
+ onCheckedChange?: (checked: CheckedState) => void;
188
+ /**
189
+ * The checkbox label (can also use children).
190
+ */
191
+ children?: ReactNode;
192
+ /**
193
+ * Size variant.
194
+ * @default 'small'
195
+ */
196
+ size?: CheckboxSize;
197
+ /**
198
+ * Disables interaction.
199
+ * @default false
200
+ */
201
+ disabled?: boolean;
202
+ /**
203
+ * Marks the checkbox as invalid (red border/background).
204
+ * @default false
205
+ */
206
+ invalid?: boolean;
207
+ /**
208
+ * Makes the checkbox read-only.
209
+ * @default false
210
+ */
211
+ readOnly?: boolean;
212
+ /**
213
+ * Marks the checkbox as required for form validation.
214
+ * @default false
215
+ */
216
+ required?: boolean;
217
+ /**
218
+ * The name attribute for form submission.
219
+ */
220
+ name?: string;
221
+ /**
222
+ * The value submitted with the form when checked.
223
+ * @default 'on'
224
+ */
225
+ value?: string;
226
+ /**
227
+ * ID of an associated form element.
228
+ */
229
+ form?: string;
230
+ /**
231
+ * Unique identifier for the checkbox.
232
+ */
233
+ id?: string;
234
+ }
235
+
236
+ export declare type CheckboxSize = (typeof CHECKBOX_SIZES)[number];
237
+
238
+ /**
239
+ * CheckedState can be boolean or 'indeterminate' (Ark's convention).
240
+ */
241
+ export declare type CheckedState = boolean | 'indeterminate';
242
+
243
+ export declare const Combobox: ForwardRefExoticComponent<ComboboxReactProperties & RefAttributes<HTMLDivElement>>;
244
+
245
+ declare const COMBOBOX_SIZES: readonly ["small", "medium"];
246
+
247
+ export declare interface ComboboxOptionItem {
248
+ label: string;
249
+ value: string;
250
+ disabled?: boolean;
251
+ [key: string]: unknown;
252
+ }
253
+
254
+ export declare interface ComboboxProperties {
255
+ options: ComboboxOptionItem[];
256
+ /** Text shown in the trigger when nothing is selected. */
257
+ placeholder?: string;
258
+ /** Placeholder for the search input inside the panel. */
259
+ searchPlaceholder?: string;
260
+ size?: ComboboxSize;
261
+ disabled?: boolean;
262
+ invalid?: boolean;
263
+ /** Show a '×' button in the trigger to clear the selected value. */
264
+ clearable?: boolean;
265
+ label?: string;
266
+ emptyText?: string;
267
+ }
268
+
269
+ declare interface ComboboxReactProperties extends ComboboxProperties {
270
+ value?: string | null;
271
+ onValueChange?: (value: string | null) => void;
272
+ leadingIcon?: ReactNode;
273
+ triggerIcon?: ReactNode;
274
+ checkIcon?: ReactNode;
275
+ clearIcon?: ReactNode;
276
+ renderOption?: (option: ComboboxOptionItem) => ReactNode;
277
+ }
278
+
279
+ export declare type ComboboxSize = (typeof COMBOBOX_SIZES)[number];
280
+
281
+ declare const CONFIRM_DIALOG_LAYOUTS: readonly ["row", "column"];
282
+
283
+ declare const CONFIRM_DIALOG_SEVERITIES: readonly ["none", "warning", "positive"];
284
+
285
+ export declare function ConfirmDialog({ open, onOpenChange, header, message, severity, layout, icon, acceptLabel, rejectLabel, onAccept, onReject, portalContainer, }: ConfirmDialogProperties): JSX_2.Element;
286
+
287
+ export declare type ConfirmDialogLayout = (typeof CONFIRM_DIALOG_LAYOUTS)[number];
288
+
289
+ export declare interface ConfirmDialogProperties {
290
+ open: boolean;
291
+ onOpenChange?: (open: boolean) => void;
292
+ header: string;
293
+ message: string;
294
+ /** @default 'none' — 'warning' also swaps the accept button to `danger` severity. */
295
+ severity?: ConfirmDialogSeverity;
296
+ /** @default 'row' */
297
+ layout?: ConfirmDialogLayout;
298
+ icon?: ReactNode;
299
+ /** @default 'Confirm' */
300
+ acceptLabel?: string;
301
+ /** @default 'Cancel' */
302
+ rejectLabel?: string;
303
+ onAccept?: () => void;
304
+ onReject?: () => void;
305
+ portalContainer?: RefObject<HTMLElement | null>;
306
+ }
307
+
308
+ export declare type ConfirmDialogSeverity = (typeof CONFIRM_DIALOG_SEVERITIES)[number];
309
+
310
+ export declare function Counter({ value, onValueChange, size, variant, disabled, disabledIncrement, disabledDecrement, step, id, name, min, max, }: CounterProperties): JSX_2.Element;
311
+
312
+ declare const COUNTER_SIZES: readonly ["small", "medium", "large"];
313
+
314
+ export declare interface CounterProperties {
315
+ /** Controlled numeric value. `null` when the field is empty. */
316
+ value?: number | null;
317
+ /** Change handler — receives the next number, or `null` when cleared. */
318
+ onValueChange?: (value: number | null) => void;
319
+ size?: CounterSize;
320
+ variant?: CounterVariant;
321
+ disabled?: boolean;
322
+ /** Disables only the increment ("+") trigger, regardless of `max`. */
323
+ disabledIncrement?: boolean;
324
+ /** Disables only the decrement ("-") trigger, regardless of `min`. */
325
+ disabledDecrement?: boolean;
326
+ id?: string;
327
+ name?: string;
328
+ /** Minimum allowed value. */
329
+ min?: number;
330
+ /** Maximum allowed value. */
331
+ max?: number;
332
+ /** Step for the +/- triggers. @default 1 */
333
+ step?: number;
334
+ }
335
+
336
+ export declare type CounterSize = (typeof COUNTER_SIZES)[number];
337
+
338
+ /** 'default' = square secondary buttons. 'expandable' = pill-shaped, ghost buttons. */
339
+ export declare type CounterVariant = 'default' | 'expandable';
340
+
341
+ export declare function createSnackbar(config?: SnackbarConfig): SnackbarController;
342
+
343
+ declare const DATE_PICKER_SELECTION_MODES: readonly ["single", "range"];
344
+
345
+ export declare const DatePicker: ForwardRefExoticComponent<DatePickerProperties & RefAttributes<HTMLDivElement>>;
346
+
347
+ export declare interface DatePickerProperties {
348
+ value?: DatePickerValue;
349
+ onValueChange?: (value: DatePickerValue) => void;
350
+ selectionMode?: DatePickerSelectionMode;
351
+ size?: InputTextSize;
352
+ label?: string;
353
+ placeholder?: string;
354
+ disabled?: boolean;
355
+ invalid?: boolean;
356
+ /** Inclusive bounds. Also clamps the time-of-day when `showTime`/`timeOnly`. */
357
+ minDate?: Date;
358
+ maxDate?: Date;
359
+ /** Show prev/next + the clickable month/year view switcher. @default true */
360
+ navigation?: boolean;
361
+ /** Two months side-by-side at/above the `sm` breakpoint. @default false */
362
+ doubleMonth?: boolean;
363
+ /** Render the calendar in normal flow — no field, no floating panel. @default false */
364
+ inline?: boolean;
365
+ /** Show the '×' clear trigger once a value is selected. @default true */
366
+ clearable?: boolean;
367
+ /** Price badge under each day — the booking-calendar use case. */
368
+ prices?: DatePriceData[];
369
+ currency?: string;
370
+ /** BCP 47 tag, e.g. "es-MX". @default "en-US" */
371
+ locale?: string;
372
+ /** Show a native time input under the calendar. @default false */
373
+ showTime?: boolean;
374
+ /** Time-only — the calendar view is hidden, only the time input shows. @default false */
375
+ timeOnly?: boolean;
376
+ showSeconds?: boolean;
377
+ /** Render prop so consumers compose their own Clear/Apply buttons (e.g. Mare's
378
+ * own `<Button>`) instead of Mare hardcoding a footer. */
379
+ footer?: (helpers: {
380
+ close: () => void;
381
+ clear: () => void;
382
+ }) => ReactNode;
383
+ leadingIcon?: ReactNode;
384
+ /** Passed straight through to Ark's `<Portal container>` — see the
385
+ * mare-migrate-component skill's Portal section for why this must be
386
+ * exposed (a single `data-theme` on the document root is the default,
387
+ * correct, common case — this is only for multi-theme layouts). */
388
+ portalContainer?: RefObject<HTMLElement | null>;
389
+ onOpenChange?: (open: boolean) => void;
390
+ /** Fires whenever the visible month(s) change (navigation or open). The Vue
391
+ * DS also had a separate `month-change` event — every real consumer just
392
+ * `console.log`'d both with identical payloads, so this adapter exposes
393
+ * the one Ark already gives us (`onVisibleRangeChange`) instead of two. */
394
+ onVisibleMonthsChange?: (months: Date[]) => void;
395
+ }
396
+
397
+ export declare type DatePickerSelectionMode = (typeof DATE_PICKER_SELECTION_MODES)[number];
398
+
399
+ export declare type DatePickerValue = Date | [Date | null, Date | null] | null;
400
+
401
+ /** A day's price badge, rendered under its cell (booking-calendar use case). */
402
+ export declare interface DatePriceData {
403
+ date: Date;
404
+ price: number;
405
+ positive: boolean;
406
+ disabled?: boolean;
407
+ }
408
+
409
+ export declare function Dialog({ open, onOpenChange, size, fullScreen, modal, closeOnEscape, dismissableMask, maskColor, portalContainer, header, footer, children, 'aria-label': ariaLabel, }: DialogProperties): JSX_2.Element;
410
+
411
+ declare const DIALOG_FOOTER_LAYOUTS: readonly ["row", "column"];
412
+
413
+ declare const DIALOG_SIZES: readonly ["small", "medium", "large"];
414
+
415
+ export declare function DialogFooter({ layout, border, children, }: DialogFooterProperties): JSX_2.Element;
416
+
417
+ export declare type DialogFooterLayout = (typeof DIALOG_FOOTER_LAYOUTS)[number];
418
+
419
+ export declare interface DialogFooterProperties {
420
+ /** @default 'row' */
421
+ layout?: DialogFooterLayout;
422
+ /** @default false */
423
+ border?: boolean;
424
+ children?: ReactNode;
425
+ }
426
+
427
+ export declare function DialogHeader({ title, leftIcon, rightIcon, onLeftIconClick, onRightIconClick, border, }: DialogHeaderProperties): JSX_2.Element;
428
+
429
+ export declare interface DialogHeaderProperties {
430
+ title?: string;
431
+ /** Closes the dialog on click (matches the legacy DialogHeader: the LEFT
432
+ * icon always closes, regardless of which glyph it shows). @default a close (X) icon */
433
+ leftIcon?: ReactNode;
434
+ /** Does NOT close the dialog on click — wire that yourself if you need it. @default undefined (no button) */
435
+ rightIcon?: ReactNode;
436
+ onLeftIconClick?: () => void;
437
+ onRightIconClick?: () => void;
438
+ /** @default false */
439
+ border?: boolean;
440
+ }
441
+
442
+ export declare interface DialogProperties {
443
+ /** Controlled open state. */
444
+ open: boolean;
445
+ /** Change handler — receives the next open state. */
446
+ onOpenChange?: (open: boolean) => void;
447
+ /** Desktop width. Mobile is always full-width regardless. @default 'medium' */
448
+ size?: DialogSize;
449
+ /** Stretches to fill the screen on mobile (no top rounding); barely
450
+ * changes desktop (just max-height, same as the non-fullScreen case).
451
+ * @default false */
452
+ fullScreen?: boolean;
453
+ /** @default true */
454
+ modal?: boolean;
455
+ /** @default true */
456
+ closeOnEscape?: boolean;
457
+ /** Close when clicking the backdrop. @default true */
458
+ dismissableMask?: boolean;
459
+ /** Overrides the backdrop's background class. @default undefined (uses the token overlay color) */
460
+ maskColor?: string;
461
+ /** Where the dialog portals to. Ark defaults to `document.body` — override
462
+ * this if your app scopes `data-theme` (or any other CSS custom property)
463
+ * to a sub-tree rather than the document root, otherwise the portaled
464
+ * dialog renders outside that scope and loses the tokens. */
465
+ portalContainer?: RefObject<HTMLElement | null>;
466
+ /** Typically a `<DialogHeader />`. */
467
+ header?: ReactNode;
468
+ /** Typically a `<DialogFooter>` with action buttons. */
469
+ footer?: ReactNode;
470
+ /** The scrollable body, between header and footer. */
471
+ children?: ReactNode;
472
+ /** Fallback accessible label when no title is rendered in the header. */
473
+ 'aria-label'?: string;
474
+ }
475
+
476
+ export declare type DialogSize = (typeof DIALOG_SIZES)[number];
477
+
478
+ export declare function Divider({ layout, children, ...native }: DividerProperties): JSX_2.Element;
479
+
480
+ declare const DIVIDER_LAYOUTS: readonly ["horizontal", "vertical"];
481
+
482
+ export declare type DividerLayout = (typeof DIVIDER_LAYOUTS)[number];
483
+
484
+ export declare interface DividerProperties extends ForwardedNativeProperties_7 {
485
+ layout?: DividerLayout;
486
+ children?: ReactNode;
487
+ }
488
+
489
+ export declare function Drawer({ open, onOpenChange, position, modal, closeOnEscape, dismissableMask, maskColor, shadow, portalContainer, header, footer, children, 'aria-label': ariaLabel, }: DrawerProperties): JSX_2.Element;
490
+
491
+ declare const DRAWER_POSITIONS: readonly ["left", "right", "top", "bottom", "full"];
492
+
493
+ export declare function DrawerFooter({ border, children, }: DrawerFooterProperties): JSX_2.Element;
494
+
495
+ export declare interface DrawerFooterProperties {
496
+ /** @default false */
497
+ border?: boolean;
498
+ children?: ReactNode;
499
+ }
500
+
501
+ export declare function DrawerHeader({ title, leftIcon, rightIcon, onLeftIconClick, onRightIconClick, border, compact, }: DrawerHeaderProperties): JSX_2.Element;
502
+
503
+ export declare interface DrawerHeaderProperties {
504
+ title?: string;
505
+ /** Closes the drawer on click (matches the legacy header: the LEFT icon
506
+ * always closes, regardless of which glyph it shows). @default a close (X) icon */
507
+ leftIcon?: ReactNode;
508
+ /** Does NOT close the drawer on click — wire that yourself if you need it. @default undefined (no button) */
509
+ rightIcon?: ReactNode;
510
+ onLeftIconClick?: () => void;
511
+ onRightIconClick?: () => void;
512
+ /** @default false */
513
+ border?: boolean;
514
+ /** Shorter header, smaller inline padding — legacy's "slim" variant. @default false */
515
+ compact?: boolean;
516
+ }
517
+
518
+ export declare type DrawerPosition = (typeof DRAWER_POSITIONS)[number];
519
+
520
+ export declare interface DrawerProperties {
521
+ /** Controlled open state. */
522
+ open: boolean;
523
+ /** Change handler — receives the next open state. */
524
+ onOpenChange?: (open: boolean) => void;
525
+ /** Which edge the panel docks to and slides in from. @default 'left' */
526
+ position?: DrawerPosition;
527
+ /** @default true */
528
+ modal?: boolean;
529
+ /** @default true */
530
+ closeOnEscape?: boolean;
531
+ /** Close when clicking the backdrop. @default true */
532
+ dismissableMask?: boolean;
533
+ /** Overrides the backdrop's background class. @default undefined (uses the token overlay color) */
534
+ maskColor?: string;
535
+ /** @default true */
536
+ shadow?: boolean;
537
+ /** Where the drawer portals to. Ark defaults to `document.body` — override
538
+ * this if your app scopes `data-theme` (or any other CSS custom property)
539
+ * to a sub-tree rather than the document root, otherwise the portaled
540
+ * drawer renders outside that scope and loses the tokens. */
541
+ portalContainer?: RefObject<HTMLElement | null>;
542
+ /** Typically a `<DrawerHeader />`. */
543
+ header?: ReactNode;
544
+ /** Typically a `<DrawerFooter>` with action buttons. */
545
+ footer?: ReactNode;
546
+ /** The scrollable body, between header and footer. */
547
+ children?: ReactNode;
548
+ /** Fallback accessible label when no title is rendered in the header. */
549
+ 'aria-label'?: string;
550
+ }
551
+
552
+ export declare function ExpandableCounter({ value, onValueChange, disabled, disabledIncrement, disabledDecrement, step, id, name, min, max, }: ExpandableCounterProperties): JSX_2.Element;
553
+
554
+ export declare interface ExpandableCounterProperties {
555
+ /** Controlled numeric value. */
556
+ value?: number;
557
+ /** Change handler — receives the next number. */
558
+ onValueChange?: (value: number) => void;
559
+ disabled?: boolean;
560
+ /** Disables only the increment ("+") trigger, regardless of `max`. */
561
+ disabledIncrement?: boolean;
562
+ /** Disables only the decrement ("-") trigger, regardless of `min`. */
563
+ disabledDecrement?: boolean;
564
+ id?: string;
565
+ name?: string;
566
+ /** Minimum allowed value — also the threshold the "+" trigger collapses to. @default 0 */
567
+ min?: number;
568
+ /** Maximum allowed value. */
569
+ max?: number;
570
+ /** Step for the +/- triggers. @default 1 */
571
+ step?: number;
572
+ }
573
+
574
+ declare const FILTER_CHIP_DROPDOWN_SIZES: readonly ["medium", "large"];
575
+
576
+ declare const FILTER_CHIP_DROPDOWN_SIZES_2: readonly ["medium", "large"];
577
+
578
+ declare const FILTER_CHIP_SIZES: readonly ["medium", "large"];
579
+
580
+ export declare function FilterChip({ value, size, disabled, dropdown, selected: selectedProperty, onSelectedChange, dropdownOpen, onDropdownOpenChange, onToggleDropdown, children, }: FilterChipProperties): JSX_2.Element;
581
+
582
+ export declare function FilterChipDropdownMultiple({ value, onValueChange, options, placeholder, size, disabled, invalid, filter, headerLabel, hasCheckbox, showToggleAll, renderOption, }: FilterChipDropdownMultipleReactProperties): JSX_2.Element;
583
+
584
+ export declare interface FilterChipDropdownMultipleOptionItem {
585
+ label: string;
586
+ value: string;
587
+ disabled?: boolean;
588
+ /** Consumer-defined extras resolved in the option render prop. */
589
+ [key: string]: unknown;
590
+ }
591
+
592
+ export declare interface FilterChipDropdownMultipleProperties {
593
+ options: FilterChipDropdownMultipleOptionItem[];
594
+ /** @default 'Select…' */
595
+ placeholder?: string;
596
+ /** @default 'medium' */
597
+ size?: FilterChipDropdownMultipleSize;
598
+ disabled?: boolean;
599
+ invalid?: boolean;
600
+ /** Shows a search field inside the panel. @default false */
601
+ filter?: boolean;
602
+ /** Text shown in the panel header, above the option list. */
603
+ headerLabel?: string;
604
+ /** Shows a checkbox next to each option (and in the header, when showToggleAll is on). @default true */
605
+ hasCheckbox?: boolean;
606
+ /** Shows the "select all" header row. @default false */
607
+ showToggleAll?: boolean;
608
+ }
609
+
610
+ declare interface FilterChipDropdownMultipleReactProperties extends FilterChipDropdownMultipleProperties {
611
+ value?: string[];
612
+ onValueChange?: (value: string[]) => void;
613
+ renderOption?: (option: FilterChipDropdownMultipleOptionItem) => ReactNode;
614
+ }
615
+
616
+ export declare type FilterChipDropdownMultipleSize = (typeof FILTER_CHIP_DROPDOWN_SIZES_2)[number];
617
+
618
+ export declare function FilterChipDropdownSingle({ value, onValueChange, options, placeholder, size, disabled, invalid, filter, clearable, renderOption, checkIcon, clearIcon, }: FilterChipDropdownSingleReactProperties): JSX_2.Element;
619
+
620
+ export declare interface FilterChipDropdownSingleOptionItem {
621
+ label: string;
622
+ value: string;
623
+ disabled?: boolean;
624
+ /** Consumer-defined extras resolved in the option render prop. */
625
+ [key: string]: unknown;
626
+ }
627
+
628
+ export declare interface FilterChipDropdownSingleProperties {
629
+ options: FilterChipDropdownSingleOptionItem[];
630
+ /** @default 'Select…' */
631
+ placeholder?: string;
632
+ /** @default 'medium' */
633
+ size?: FilterChipDropdownSingleSize;
634
+ disabled?: boolean;
635
+ invalid?: boolean;
636
+ /** Shows a search field inside the panel. @default false */
637
+ filter?: boolean;
638
+ /** Shows a '×' button in the trigger to clear the selected value. @default false */
639
+ clearable?: boolean;
640
+ }
641
+
642
+ declare interface FilterChipDropdownSingleReactProperties extends FilterChipDropdownSingleProperties {
643
+ value?: string | null;
644
+ onValueChange?: (value: string | null) => void;
645
+ renderOption?: (option: FilterChipDropdownSingleOptionItem) => ReactNode;
646
+ checkIcon?: ReactNode;
647
+ clearIcon?: ReactNode;
648
+ }
649
+
650
+ export declare type FilterChipDropdownSingleSize = (typeof FILTER_CHIP_DROPDOWN_SIZES)[number];
651
+
652
+ export declare function FilterChipGroup({ multiple, value, onValueChange, children, }: FilterChipGroupProperties): JSX_2.Element;
653
+
654
+ export declare interface FilterChipGroupProperties {
655
+ /** @default false */
656
+ multiple?: boolean;
657
+ /** String (or undefined) when multiple is false; string[] when multiple is true. */
658
+ value?: FilterChipGroupValue;
659
+ onValueChange?: (value: FilterChipGroupValue) => void;
660
+ /** The FilterChip children. Each needs a distinct `value` (or string children) to be identified within the group. */
661
+ children?: ReactNode;
662
+ }
663
+
664
+ /** String (or undefined) in single-selection mode; string[] in multiple mode. */
665
+ export declare type FilterChipGroupValue = string | string[] | undefined;
666
+
667
+ export declare interface FilterChipProperties {
668
+ /**
669
+ * Identity within a FilterChipGroup. Falls back to `children` when
670
+ * omitted and children is a plain string.
671
+ */
672
+ value?: string;
673
+ /** @default 'medium' */
674
+ size?: FilterChipSize;
675
+ /** Blocks the click entirely, not just the styling. @default false */
676
+ disabled?: boolean;
677
+ /**
678
+ * Switches the chip from "removable filter" mode to "dropdown trigger"
679
+ * mode: shows a chevron instead of a remove icon, and click toggles
680
+ * `dropdownOpen` (firing onToggleDropdown) instead of the selection.
681
+ * Takes priority over a FilterChipGroup context — a dropdown chip inside
682
+ * a group does not participate in that group's selection.
683
+ * @default false
684
+ */
685
+ dropdown?: boolean;
686
+ /** Standalone selected state. Ignored when inside a FilterChipGroup —
687
+ * there the group controls selection. */
688
+ selected?: boolean;
689
+ onSelectedChange?: (selected: boolean) => void;
690
+ /**
691
+ * Only relevant when dropdown is true: whether the chevron points up
692
+ * (open) or down (closed). FilterChip renders no panel of its own — this
693
+ * exists so the consumer can sync their own popover with the chevron.
694
+ * @default false
695
+ */
696
+ dropdownOpen?: boolean;
697
+ onDropdownOpenChange?: (open: boolean) => void;
698
+ /** Fires on click while dropdown is true. `target` is the chip button —
699
+ * useful to position a consumer-owned panel/popover; FilterChip includes
700
+ * none itself. */
701
+ onToggleDropdown?: (event: MouseEvent_2<HTMLButtonElement>, target: HTMLElement) => void;
702
+ children?: ReactNode;
703
+ }
704
+
705
+ export declare type FilterChipSize = (typeof FILTER_CHIP_SIZES)[number];
706
+
707
+ /** A floating primary action is never destructive nor invisible: the FAB
708
+ * excludes Button's 'ghost' and 'danger'. Hardcoded rather than derived
709
+ * from ButtonSeverity via Exclude<> — that indirection made rollupTypes
710
+ * (vite-plugin-dts/api-extractor) leave an unresolved cross-entry import
711
+ * in the React package's dist. Keep in sync with BUTTON_SEVERITIES by hand. */
712
+ declare const FLOATING_ACTION_BUTTON_SEVERITIES: readonly ["primary", "secondary"];
713
+
714
+ export declare const FloatingActionButton: ForwardRefExoticComponent<FloatingActionButtonProperties & RefAttributes<HTMLButtonElement>>;
715
+
716
+ export declare interface FloatingActionButtonProperties extends ForwardedNativeProperties_2 {
717
+ label?: string;
718
+ /** Visual hierarchy. Unlike Button, 'ghost' and 'danger' are excluded.
719
+ * @default 'primary' */
720
+ severity?: FloatingActionButtonSeverity;
721
+ size?: ButtonSize;
722
+ variant?: ButtonVariant;
723
+ iconOnly?: boolean;
724
+ disabled?: boolean;
725
+ loading?: boolean;
726
+ link?: boolean;
727
+ linkAnimation?: boolean;
728
+ icon?: ReactNode;
729
+ iconPos?: IconPosition;
730
+ children?: ReactNode;
731
+ }
732
+
733
+ export declare type FloatingActionButtonSeverity = (typeof FLOATING_ACTION_BUTTON_SEVERITIES)[number];
734
+
735
+ export declare function FloatLabel({ label, children }: FloatLabelProperties): JSX_2.Element;
736
+
737
+ declare interface FloatLabelProperties {
738
+ label: string;
739
+ children?: ReactNode;
740
+ }
741
+
742
+ export declare function FormField({ invalid, disabled, required, children, }: FormFieldProperties): JSX_2.Element;
743
+
744
+ declare interface FormFieldProperties {
745
+ invalid?: boolean;
746
+ disabled?: boolean;
747
+ required?: boolean;
748
+ children?: ReactNode;
749
+ }
750
+
751
+ /** Native passthrough same as InputText, minus what SearchField owns/reshapes. */
752
+ declare type ForwardedInputProperties = Omit<InputTextProperties, 'value' | 'onValueChange' | 'rounded' | 'defaultValue'>;
753
+
754
+ declare type ForwardedNativeProperties = Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'className' | 'style' | 'children' | 'color'>;
755
+
756
+ declare type ForwardedNativeProperties_2 = Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'className' | 'style' | 'children' | 'color'>;
757
+
758
+ declare type ForwardedNativeProperties_3 = Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange' | 'defaultValue' | 'size' | 'className' | 'style'>;
759
+
760
+ declare type ForwardedNativeProperties_4 = Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, 'value' | 'onChange' | 'className' | 'style'>;
761
+
762
+ declare type ForwardedNativeProperties_5 = Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange' | 'defaultValue' | 'size' | 'type' | 'className' | 'style'>;
763
+
764
+ declare type ForwardedNativeProperties_6 = Omit<HTMLAttributes<HTMLDivElement>, 'className' | 'style' | 'children'>;
765
+
766
+ declare type ForwardedNativeProperties_7 = Omit<HTMLAttributes<HTMLDivElement>, 'className' | 'style' | 'children'>;
767
+
768
+ export declare function HelperText({ children }: {
769
+ children?: ReactNode;
770
+ }): JSX_2.Element;
771
+
772
+ declare const ICON_FIELD_POSITIONS: readonly ["left", "right"];
773
+
774
+ declare const ICON_POSITIONS: readonly ["left", "right", "top", "bottom"];
775
+
776
+ export declare function IconField({ icon, position, disabled, onIconClick, iconLabel, children, }: IconFieldProperties): JSX_2.Element;
777
+
778
+ declare type IconFieldPosition = (typeof ICON_FIELD_POSITIONS)[number];
779
+
780
+ declare interface IconFieldProperties {
781
+ icon: ReactNode;
782
+ position?: IconFieldPosition;
783
+ /** Dims the icon to match a disabled sibling input. IconField can't see
784
+ * that prop on its own (it lives on the input, not on IconField) — pass
785
+ * it through explicitly when composing (see SearchField). @default false */
786
+ disabled?: boolean;
787
+ /** Makes the icon a real click target (a `<button>`, not a decorative
788
+ * `<span>`). @default undefined (decorative) */
789
+ onIconClick?: () => void;
790
+ /** Accessible name for the button, when `onIconClick` is set. */
791
+ iconLabel?: string;
792
+ children?: ReactNode;
793
+ }
794
+
795
+ export declare type IconPosition = (typeof ICON_POSITIONS)[number];
796
+
797
+ declare const IMAGE_ITEM_RATIOS: readonly ["4:3", "1:1", "5:4", "3:2", "free"];
798
+
799
+ export declare function ImageItem({ ratio, children }: ImageItemProperties): JSX_2.Element;
800
+
801
+ export declare interface ImageItemProperties {
802
+ ratio?: ImageItemRatio;
803
+ children: ReactNode;
804
+ }
805
+
806
+ export declare type ImageItemRatio = (typeof IMAGE_ITEM_RATIOS)[number];
807
+
808
+ export declare function ImageSlider({ pagination, navigation, children, }: ImageSliderProperties): JSX_2.Element;
809
+
810
+ export declare interface ImageSliderProperties {
811
+ pagination?: boolean;
812
+ navigation?: boolean;
813
+ children: ReactNode;
814
+ }
815
+
816
+ declare const INPUT_OTP_SIZES: readonly ["small", "medium", "large"];
817
+
818
+ declare const INPUT_TEXT_SIZES: readonly ["small", "medium"];
819
+
820
+ export declare const InputNumber: ForwardRefExoticComponent<InputNumberProperties & RefAttributes<HTMLInputElement>>;
821
+
822
+ export declare interface InputNumberProperties {
823
+ /** Valor numérico controlado. `null` = campo vacío. Omítelo por completo
824
+ * para dejar el campo uncontrolled. */
825
+ value?: number | null;
826
+ /** Valor inicial cuando el campo es uncontrolled (sin `value`). */
827
+ defaultValue?: number | null;
828
+ /** Change handler — receives the next number, or `null` when cleared. */
829
+ onValueChange?: (value: number | null) => void;
830
+ size?: InputTextSize;
831
+ rounded?: boolean;
832
+ invalid?: boolean;
833
+ disabled?: boolean;
834
+ readOnly?: boolean;
835
+ placeholder?: string;
836
+ id?: string;
837
+ name?: string;
838
+ /** Minimum allowed value. */
839
+ min?: number;
840
+ /** Maximum allowed value. */
841
+ max?: number;
842
+ /** Step for keyboard/scrub increments. @default 1 */
843
+ step?: number;
844
+ /** Intl.NumberFormat options — currency, percent, unit, decimals, grouping. */
845
+ formatOptions?: Intl.NumberFormatOptions;
846
+ /** BCP 47 locale used for formatting/parsing. */
847
+ locale?: string;
848
+ /** Increment/decrement the value with the mouse wheel while focused. */
849
+ allowMouseWheel?: boolean;
850
+ /** Clamp the value to min/max when the field loses focus. @default true */
851
+ clampValueOnBlur?: boolean;
852
+ }
853
+
854
+ export declare const InputOtp: ForwardRefExoticComponent<InputOtpProperties & RefAttributes<HTMLInputElement>>;
855
+
856
+ export declare interface InputOtpProperties {
857
+ /** Number of digit boxes to render. */
858
+ length?: number;
859
+ /** Controlled value, one character per digit. Omit to let Ark manage it. */
860
+ value?: string;
861
+ defaultValue?: string;
862
+ onValueChange?: (value: string) => void;
863
+ /** Fired once all digits are filled with a valid value. */
864
+ onComplete?: (value: string) => void;
865
+ size?: InputOtpSize;
866
+ /** Masks each digit like `type="password"`. */
867
+ mask?: boolean;
868
+ /** Restricts input to digits only. Set `false` for alphanumeric codes. */
869
+ integerOnly?: boolean;
870
+ /** Placeholder shown in each empty box. Defaults to '' (blank box) — Ark's
871
+ * own default is '○', which the Mare design doesn't use. */
872
+ placeholder?: string;
873
+ invalid?: boolean;
874
+ disabled?: boolean;
875
+ readOnly?: boolean;
876
+ required?: boolean;
877
+ autoFocus?: boolean;
878
+ name?: string;
879
+ id?: string;
880
+ }
881
+
882
+ export declare type InputOtpSize = (typeof INPUT_OTP_SIZES)[number];
883
+
884
+ export declare const InputText: ForwardRefExoticComponent<InputTextProperties & RefAttributes<HTMLInputElement>>;
885
+
886
+ export declare interface InputTextProperties extends ForwardedNativeProperties_3 {
887
+ /** Valor controlado. Omítelo para dejar el campo uncontrolled (el DOM
888
+ * guarda el valor y `defaultValue` aplica). */
889
+ value?: string;
890
+ /** Valor inicial cuando el campo es uncontrolled (sin `value`). */
891
+ defaultValue?: string;
892
+ /** Controlled change handler — receives the next string value. */
893
+ onValueChange?: (value: string) => void;
894
+ size?: InputTextSize;
895
+ rounded?: boolean;
896
+ invalid?: boolean;
897
+ disabled?: boolean;
898
+ }
899
+
900
+ declare type InputTextSize = (typeof INPUT_TEXT_SIZES)[number];
901
+ export { InputTextSize as InputNumberSize }
902
+ export { InputTextSize }
903
+
904
+ export declare function Menu({ trigger, items, onSelect, renderItem, portalContainer, }: MenuProperties): JSX_2.Element;
905
+
906
+ export declare type MenuEntry = MenuItemData | MenuSeparatorEntry | MenuGroupEntry;
907
+
908
+ export declare interface MenuGroupEntry {
909
+ type: 'group';
910
+ label?: string;
911
+ items: MenuItemData[];
912
+ }
913
+
914
+ export declare interface MenuItemData {
915
+ type?: 'item';
916
+ value: string;
917
+ label: string;
918
+ disabled?: boolean;
919
+ /** Persistent highlight (e.g. current page) — distinct from the
920
+ * hover/keyboard `ark-highlighted` state. */
921
+ active?: boolean;
922
+ /** Consumer-defined extras (icon, href, target…) resolved in the adapter. */
923
+ [key: string]: unknown;
924
+ }
925
+
926
+ export declare interface MenuProperties {
927
+ /** The element that opens the menu on click — typically a `<Button>`. */
928
+ trigger: ReactNode;
929
+ items: MenuEntry[];
930
+ /** Called with the selected item's `value` when an item (or an item
931
+ * inside a group) is chosen. */
932
+ onSelect?: (value: string) => void;
933
+ /** Custom render for an item's content (icon + label). Defaults to
934
+ * `item.icon` (if any) + `item.label`. */
935
+ renderItem?: (item: MenuItemData) => ReactNode;
936
+ /** Where the menu portals to. Ark defaults to `document.body` — override
937
+ * this if your app scopes `data-theme` (or any other CSS custom property)
938
+ * to a sub-tree rather than the document root, otherwise the portaled
939
+ * menu renders outside that scope and loses the tokens. */
940
+ portalContainer?: RefObject<HTMLElement | null>;
941
+ }
942
+
943
+ export declare interface MenuSeparatorEntry {
944
+ type: 'separator';
945
+ }
946
+
947
+ export declare function Message({ severity, variant, title, icon, disabled, closable, onClose, children, }: MessageProperties): JSX_2.Element;
948
+
949
+ declare const MESSAGE_SEVERITIES: readonly ["neutral", "brand", "positive", "warning", "danger"];
950
+
951
+ export declare interface MessageProperties {
952
+ /** @default 'neutral' */
953
+ severity?: MessageSeverity;
954
+ /** @default 'simple' */
955
+ variant?: MessageVariant;
956
+ title?: string;
957
+ icon?: ReactNode;
958
+ /** @default false */
959
+ disabled?: boolean;
960
+ /** @default false */
961
+ closable?: boolean;
962
+ onClose?: () => void;
963
+ children?: ReactNode;
964
+ }
965
+
966
+ export declare type MessageSeverity = (typeof MESSAGE_SEVERITIES)[number];
967
+
968
+ /** @default 'simple' */
969
+ export declare type MessageVariant = 'simple' | 'filled';
970
+
971
+ declare const MULTI_SELECT_SIZES: readonly ["small", "medium"];
972
+
973
+ export declare const MultiSelect: ForwardRefExoticComponent<MultiSelectReactProperties & RefAttributes<HTMLDivElement>>;
974
+
975
+ export declare type MultiSelectDisplay = 'chip' | 'text';
976
+
977
+ export declare type MultiSelectItemSize = 'small' | 'medium';
978
+
979
+ export declare interface MultiSelectOptionItem {
980
+ label: string;
981
+ value: string;
982
+ disabled?: boolean;
983
+ /** Consumer-defined extras (icon, description…) resolved in the option slot. */
984
+ [key: string]: unknown;
985
+ }
986
+
987
+ export declare interface MultiSelectProperties {
988
+ options: MultiSelectOptionItem[];
989
+ placeholder?: string;
990
+ /** Placeholder for the search input inside the panel (shown when `filterable`). */
991
+ searchPlaceholder?: string;
992
+ size?: MultiSelectSize;
993
+ /** Size of each option row, independent from the control `size`. @default 'medium' */
994
+ itemSize?: MultiSelectItemSize;
995
+ disabled?: boolean;
996
+ invalid?: boolean;
997
+ /** Shows a spinner in place of the chevron. @default false */
998
+ loading?: boolean;
999
+ /** Shows a '×' button in the trigger to clear all selected values. @default false */
1000
+ clearable?: boolean;
1001
+ /** Shows a search input inside the panel. @default false */
1002
+ filterable?: boolean;
1003
+ /** Shows a checkbox next to each option (and the header toggle-all). @default true */
1004
+ hasCheckbox?: boolean;
1005
+ /** Shows a "select all" row at the top of the panel. @default false */
1006
+ showToggleAll?: boolean;
1007
+ /** Label next to the header toggle-all checkbox. */
1008
+ headerLabel?: string;
1009
+ /** How the selected values render in the trigger. @default 'text' */
1010
+ display?: MultiSelectDisplay;
1011
+ /** Max labels joined in `display: 'text'` before falling back to "N items selected". @default 3 */
1012
+ maxSelectedLabels?: number;
1013
+ label?: string;
1014
+ emptyText?: string;
1015
+ }
1016
+
1017
+ declare interface MultiSelectReactProperties extends MultiSelectProperties {
1018
+ value?: string[];
1019
+ onValueChange?: (value: string[]) => void;
1020
+ indicator?: ReactNode;
1021
+ clearIcon?: ReactNode;
1022
+ filterIcon?: ReactNode;
1023
+ renderOption?: (option: MultiSelectOptionItem) => ReactNode;
1024
+ }
1025
+
1026
+ export declare type MultiSelectSize = (typeof MULTI_SELECT_SIZES)[number];
1027
+
1028
+ export declare function OverlayBadge({ children, severity, icon, value, offsetX, offsetY, }: OverlayBadgeProperties): JSX_2.Element;
1029
+
1030
+ export declare interface OverlayBadgeProperties {
1031
+ /** Element the badge overlays. */
1032
+ children: ReactNode;
1033
+ /** @default 'accent' */
1034
+ severity?: BadgeSeverity;
1035
+ /** Shown inside the badge, next to (or instead of) `value`. */
1036
+ icon?: ReactNode;
1037
+ /** Badge content (count/label). A bare dot renders when neither this nor `icon` is set. */
1038
+ value?: ReactNode;
1039
+ /** Horizontal nudge (px) off the default corner position. @default 0 */
1040
+ offsetX?: number;
1041
+ /** Vertical nudge (px) off the default corner position. @default 0 */
1042
+ offsetY?: number;
1043
+ }
1044
+
1045
+ export declare function Paginator({ count, page, defaultPage, onPageChange, pageSize, defaultPageSize, onPageSizeChange, pageLinkSize, showFirstLastLinks, rowsPerPageOptions, rowsPerPageOptionsLabel, }: PaginatorProperties): JSX_2.Element;
1046
+
1047
+ export declare interface PaginatorProperties {
1048
+ /** Total number of data items (rows), NOT page count. */
1049
+ count: number;
1050
+ /** Controlled current page, 1-indexed. Omit to let Ark manage it. */
1051
+ page?: number;
1052
+ defaultPage?: number;
1053
+ onPageChange?: (page: number) => void;
1054
+ /** Items per page. */
1055
+ pageSize?: number;
1056
+ defaultPageSize?: number;
1057
+ onPageSizeChange?: (pageSize: number) => void;
1058
+ /** Numbered buttons shown at once — shrinks to fit a narrow container. */
1059
+ pageLinkSize?: number;
1060
+ /** Shows the jump-to-first/last-page buttons.
1061
+ * @default true */
1062
+ showFirstLastLinks?: boolean;
1063
+ /** Shows the "rows per page" select when given 1+ options. */
1064
+ rowsPerPageOptions?: number[];
1065
+ /** @default 'Rows per page' */
1066
+ rowsPerPageOptionsLabel?: string;
1067
+ }
1068
+
1069
+ export declare function PanelMenu({ items, expandedValue, defaultExpandedValue, onExpandedChange, renderItem, }: PanelMenuProperties): JSX_2.Element;
1070
+
1071
+ export declare interface PanelMenuItemData {
1072
+ value: string;
1073
+ label: string;
1074
+ disabled?: boolean;
1075
+ /** Persistent highlight (e.g. current route) — distinct from Ark's own
1076
+ * open/closed state on branches. Same pattern as Menu's `active` field. */
1077
+ active?: boolean;
1078
+ /** Nested entries — presence of this (non-empty) makes the node a branch. */
1079
+ items?: PanelMenuItemData[];
1080
+ /** Consumer-defined extras (icon, href, target…) resolved in the adapter. */
1081
+ [key: string]: unknown;
1082
+ }
1083
+
1084
+ export declare interface PanelMenuProperties {
1085
+ items: PanelMenuItemData[];
1086
+ /** Controlled expanded branch values. Omit to let Ark manage it (uncontrolled). */
1087
+ expandedValue?: string[];
1088
+ defaultExpandedValue?: string[];
1089
+ onExpandedChange?: (value: string[]) => void;
1090
+ /** Override the default icon + label row entirely. */
1091
+ renderItem?: (item: PanelMenuItemData) => ReactNode;
1092
+ }
1093
+
1094
+ export declare const Password: ForwardRefExoticComponent<PasswordProperties & RefAttributes<HTMLInputElement>>;
1095
+
1096
+ /** A single requirement row for `footer` (e.g. "At least one uppercase"). */
1097
+ export declare function PasswordFooterItem({ children }: {
1098
+ children?: ReactNode;
1099
+ }): JSX_2.Element;
1100
+
1101
+ export declare interface PasswordProperties extends ForwardedNativeProperties_5 {
1102
+ /** Valor controlado. Omítelo para dejar el campo uncontrolled. */
1103
+ value?: string;
1104
+ /** Valor inicial cuando el campo es uncontrolled (sin `value`). */
1105
+ defaultValue?: string;
1106
+ /** Controlled change handler — receives the next string value. */
1107
+ onValueChange?: (value: string) => void;
1108
+ size?: InputTextSize;
1109
+ rounded?: boolean;
1110
+ invalid?: boolean;
1111
+ disabled?: boolean;
1112
+ /** Shows a button that toggles the value between hidden/visible. @default true */
1113
+ toggleMask?: boolean;
1114
+ /** Icon shown when the value is hidden — click reveals it. @default an eye icon */
1115
+ showIcon?: ReactNode;
1116
+ /** Icon shown when the value is visible — click hides it. @default an eye-off icon */
1117
+ hideIcon?: ReactNode;
1118
+ /** Shows the strength-meter panel while the field has focus. @default true */
1119
+ feedback?: boolean;
1120
+ /** Custom content at the top of the feedback panel. */
1121
+ header?: ReactNode;
1122
+ /** Custom content at the bottom of the feedback panel, below a divider —
1123
+ * e.g. a list of `PasswordFooterItem`s describing the requirements. */
1124
+ footer?: ReactNode;
1125
+ /** Label shown before there's a value. @default 'Please enter a password' */
1126
+ promptLabel?: string;
1127
+ /** @default 'Weak' */
1128
+ weakLabel?: string;
1129
+ /** @default 'Medium' */
1130
+ mediumLabel?: string;
1131
+ /** @default 'Strong' */
1132
+ strongLabel?: string;
1133
+ /** Regex (as a string) a value must match to count as at least 'medium'. */
1134
+ mediumRegex?: string;
1135
+ /** Regex (as a string) a value must match to count as 'strong'. */
1136
+ strongRegex?: string;
1137
+ }
1138
+
1139
+ export declare function ProgressBar({ value, mode, min, max, label, showValue, id, }: ProgressBarProperties): JSX_2.Element;
1140
+
1141
+ export declare type ProgressBarMode = 'determinate' | 'indeterminate';
1142
+
1143
+ export declare interface ProgressBarProperties {
1144
+ /**
1145
+ * The current value. Ignored when `mode` is `'indeterminate'`.
1146
+ * @default 0
1147
+ */
1148
+ value?: number;
1149
+ /**
1150
+ * `'determinate'` shows a filled bar sized to `value`. `'indeterminate'`
1151
+ * shows the looping two-bar animation (no known value/ETA).
1152
+ * @default 'determinate'
1153
+ */
1154
+ mode?: ProgressBarMode;
1155
+ /**
1156
+ * The minimum allowed value.
1157
+ * @default 0
1158
+ */
1159
+ min?: number;
1160
+ /**
1161
+ * The maximum allowed value.
1162
+ * @default 100
1163
+ */
1164
+ max?: number;
1165
+ /**
1166
+ * Label rendered above the bar.
1167
+ */
1168
+ label?: string;
1169
+ /**
1170
+ * Shows the formatted value (e.g. "40%") next to the label.
1171
+ * Ignored when `mode` is `'indeterminate'` (there's no value to show).
1172
+ * @default false
1173
+ */
1174
+ showValue?: boolean;
1175
+ /**
1176
+ * Unique identifier for the progress bar.
1177
+ */
1178
+ id?: string;
1179
+ }
1180
+
1181
+ export declare function ProgressSpinner({ circleClass, className, }: ProgressSpinnerProperties): JSX_2.Element;
1182
+
1183
+ /**
1184
+ * Mare ProgressSpinner — React. Ark has no spinner (pure SVG + CSS), so it's
1185
+ * Mare-owned. Identical markup to the Vue version. Dash keyframe in styles.css.
1186
+ */
1187
+ export declare interface ProgressSpinnerProperties {
1188
+ /** Extra classes for the <circle> (e.g. stroke color per Button severity). */
1189
+ circleClass?: string;
1190
+ className?: string;
1191
+ }
1192
+
1193
+ declare const RADIO_GROUP_ORIENTATIONS: readonly ["horizontal", "vertical"];
1194
+
1195
+ declare const RADIO_GROUP_SIZES: readonly ["small", "medium", "large"];
1196
+
1197
+ export declare const RadioGroup: ForwardRefExoticComponent<RadioGroupProperties & RefAttributes<HTMLDivElement>>;
1198
+
1199
+ export declare type RadioGroupOrientation = (typeof RADIO_GROUP_ORIENTATIONS)[number];
1200
+
1201
+ export declare interface RadioGroupProperties {
1202
+ /**
1203
+ * The available options.
1204
+ */
1205
+ items: RadioOptionItem[];
1206
+ /**
1207
+ * The controlled selected value.
1208
+ */
1209
+ value?: string | null;
1210
+ /**
1211
+ * Initial selected value (uncontrolled mode).
1212
+ */
1213
+ defaultValue?: string;
1214
+ /**
1215
+ * Handler called when the selected value changes.
1216
+ */
1217
+ onValueChange?: (value: string) => void;
1218
+ /**
1219
+ * Size variant.
1220
+ * @default 'small'
1221
+ */
1222
+ size?: RadioGroupSize;
1223
+ /**
1224
+ * Layout direction of the items.
1225
+ * @default 'vertical'
1226
+ */
1227
+ orientation?: RadioGroupOrientation;
1228
+ /**
1229
+ * Disables the entire group.
1230
+ * @default false
1231
+ */
1232
+ disabled?: boolean;
1233
+ /**
1234
+ * Marks the group as invalid (red styling).
1235
+ * @default false
1236
+ */
1237
+ invalid?: boolean;
1238
+ /**
1239
+ * Makes the group read-only.
1240
+ * @default false
1241
+ */
1242
+ readOnly?: boolean;
1243
+ /**
1244
+ * Marks the group as required for form validation.
1245
+ * @default false
1246
+ */
1247
+ required?: boolean;
1248
+ /**
1249
+ * The name attribute for form submission.
1250
+ */
1251
+ name?: string;
1252
+ /**
1253
+ * ID of an associated form element.
1254
+ */
1255
+ form?: string;
1256
+ /**
1257
+ * Unique identifier for the group.
1258
+ */
1259
+ id?: string;
1260
+ }
1261
+
1262
+ export declare type RadioGroupSize = (typeof RADIO_GROUP_SIZES)[number];
1263
+
1264
+ export declare interface RadioOptionItem {
1265
+ value: string;
1266
+ label: string;
1267
+ disabled?: boolean;
1268
+ }
1269
+
1270
+ export declare const SearchField: ForwardRefExoticComponent<SearchFieldProperties & RefAttributes<HTMLInputElement>>;
1271
+
1272
+ export declare interface SearchFieldProperties extends ForwardedInputProperties {
1273
+ /** Valor controlado. Omítelo para dejar el campo uncontrolled. */
1274
+ value?: string;
1275
+ /** Valor inicial cuando el campo es uncontrolled (sin `value`). */
1276
+ defaultValue?: string;
1277
+ /** Controlled change handler — receives the next string value. */
1278
+ onValueChange?: (value: string) => void;
1279
+ /** Shows a spinner instead of the clear icon. @default false */
1280
+ loading?: boolean;
1281
+ /** Shows a clear (X) button when there's a value. @default false */
1282
+ clearable?: boolean;
1283
+ /** Overrides the left icon. @default a search icon */
1284
+ leftIcon?: ReactNode;
1285
+ /** Overrides the clear button's icon. @default a close (X) icon */
1286
+ clearIcon?: ReactNode;
1287
+ /** Replaces the clear/spinner logic entirely with your own right-side
1288
+ * content (matches the legacy: a custom right icon takes over from the
1289
+ * built-in clear button). @default undefined */
1290
+ rightIcon?: ReactNode;
1291
+ /** Fires when the built-in clear button is clicked (clears `value` too).
1292
+ * Does NOT fire for a custom `rightIcon` — wire that yourself. */
1293
+ onClear?: () => void;
1294
+ }
1295
+
1296
+ declare const SEGMENTED_CONTROL_SIZES: readonly ["small", "medium"];
1297
+
1298
+ export declare function SegmentedControl({ items, value, defaultValue, onValueChange, size, optionWidth, disabled, renderOption, name, form, id, }: SegmentedControlProperties): JSX_2.Element;
1299
+
1300
+ export declare interface SegmentedControlOptionItem {
1301
+ value: string;
1302
+ label: string;
1303
+ disabled?: boolean;
1304
+ }
1305
+
1306
+ export declare type SegmentedControlOptionWidth = 'auto' | 'equal';
1307
+
1308
+ export declare interface SegmentedControlProperties {
1309
+ /**
1310
+ * The available segments.
1311
+ */
1312
+ items: SegmentedControlOptionItem[];
1313
+ /**
1314
+ * The controlled selected value.
1315
+ */
1316
+ value?: string;
1317
+ /**
1318
+ * Initial selected value (uncontrolled mode).
1319
+ */
1320
+ defaultValue?: string;
1321
+ /**
1322
+ * Handler called when the selected segment changes.
1323
+ */
1324
+ onValueChange?: (value: string) => void;
1325
+ /**
1326
+ * Size variant.
1327
+ * @default 'small'
1328
+ */
1329
+ size?: SegmentedControlSize;
1330
+ /**
1331
+ * With 'equal', every segment takes up the same width (flex-1). Own Mare
1332
+ * prop, not present in PrimeVue.
1333
+ * @default 'auto'
1334
+ */
1335
+ optionWidth?: SegmentedControlOptionWidth;
1336
+ /**
1337
+ * Disables the entire group.
1338
+ * @default false
1339
+ */
1340
+ disabled?: boolean;
1341
+ /**
1342
+ * Replaces a segment's default text content — e.g. to add a leading
1343
+ * icon. Receives the raw item.
1344
+ */
1345
+ renderOption?: (item: SegmentedControlOptionItem) => ReactNode;
1346
+ /**
1347
+ * The name attribute for form submission.
1348
+ */
1349
+ name?: string;
1350
+ /**
1351
+ * ID of an associated form element.
1352
+ */
1353
+ form?: string;
1354
+ /**
1355
+ * Unique identifier for the group.
1356
+ */
1357
+ id?: string;
1358
+ }
1359
+
1360
+ export declare type SegmentedControlSize = (typeof SEGMENTED_CONTROL_SIZES)[number];
1361
+
1362
+ declare const SELECT_FIELD_SIZES: readonly ["small", "medium"];
1363
+
1364
+ export declare const SelectField: ForwardRefExoticComponent<SelectFieldReactProperties & RefAttributes<HTMLDivElement>>;
1365
+
1366
+ export declare interface SelectFieldProperties {
1367
+ options: SelectOptionItem[];
1368
+ placeholder?: string;
1369
+ size?: SelectFieldSize;
1370
+ disabled?: boolean;
1371
+ invalid?: boolean;
1372
+ clearable?: boolean;
1373
+ label?: string;
1374
+ }
1375
+
1376
+ declare interface SelectFieldReactProperties extends SelectFieldProperties {
1377
+ value?: string | null;
1378
+ onValueChange?: (value: string | null) => void;
1379
+ leadingIcon?: ReactNode;
1380
+ indicator?: ReactNode;
1381
+ clearIcon?: ReactNode;
1382
+ checkIcon?: ReactNode;
1383
+ renderValue?: (item: SelectOptionItem) => ReactNode;
1384
+ renderOption?: (option: SelectOptionItem) => ReactNode;
1385
+ }
1386
+
1387
+ export declare type SelectFieldSize = (typeof SELECT_FIELD_SIZES)[number];
1388
+
1389
+ export declare interface SelectOptionItem {
1390
+ label: string;
1391
+ value: string;
1392
+ disabled?: boolean;
1393
+ /** Consumer-defined extras (icon, description…) resolved in the option slot. */
1394
+ [key: string]: unknown;
1395
+ }
1396
+
1397
+ export declare function Skeleton({ shape, width, height, size, ...native }: SkeletonProperties): JSX_2.Element;
1398
+
1399
+ /** Shape of the placeholder — rectangle for text/blocks, circle for avatars. */
1400
+ declare const SKELETON_SHAPES: readonly ["rectangle", "circle"];
1401
+
1402
+ export declare interface SkeletonProperties extends ForwardedNativeProperties_6 {
1403
+ /** @default 'rectangle' */
1404
+ shape?: SkeletonShape;
1405
+ /**
1406
+ * Width of the placeholder (number = px, or any CSS length string).
1407
+ * @default '100%'
1408
+ */
1409
+ width?: string | number;
1410
+ /**
1411
+ * Height of the placeholder (number = px, or any CSS length string).
1412
+ * @default '1rem'
1413
+ */
1414
+ height?: string | number;
1415
+ /** Convenience for shape='circle': sets width and height to the same value. */
1416
+ size?: string | number;
1417
+ }
1418
+
1419
+ export declare type SkeletonShape = (typeof SKELETON_SHAPES)[number];
1420
+
1421
+ export declare const Slider: ForwardRefExoticComponent<SliderProperties & RefAttributes<HTMLDivElement>>;
1422
+
1423
+ declare const SLIDER_ORIENTATIONS: readonly ["horizontal", "vertical"];
1424
+
1425
+ export declare type SliderOrientation = (typeof SLIDER_ORIENTATIONS)[number];
1426
+
1427
+ export declare interface SliderProperties {
1428
+ /**
1429
+ * Controlled value — one number per thumb. A single slider is a
1430
+ * 1-element array; a range is a 2-element array. `[start, end]`.
1431
+ * @default [0]
1432
+ */
1433
+ value?: number[];
1434
+ /** Change handler — receives the next value for every thumb. */
1435
+ onValueChange?: (value: number[]) => void;
1436
+ /** @default 0 */
1437
+ min?: number;
1438
+ /** @default 100 */
1439
+ max?: number;
1440
+ /** @default 1 */
1441
+ step?: number;
1442
+ /** @default 'horizontal' */
1443
+ orientation?: SliderOrientation;
1444
+ disabled?: boolean;
1445
+ invalid?: boolean;
1446
+ id?: string;
1447
+ name?: string;
1448
+ }
1449
+
1450
+ export declare function Snackbar({ controller, portalContainer }: SnackbarProperties): JSX_2.Element;
1451
+
1452
+ declare const SNACKBAR_SEVERITIES: readonly ["contrast", "secondary", "error"];
1453
+
1454
+ export declare interface SnackbarConfig {
1455
+ /** @default 'bottom-center' */
1456
+ placement?: SnackbarPlacement;
1457
+ }
1458
+
1459
+ /** Returned by `createSnackbar()`. Mirrors the legacy `useToast()` service —
1460
+ * mount ONE `<Snackbar controller={controller} />` per controller, then push
1461
+ * messages into it from anywhere via `controller.show(...)`. */
1462
+ export declare interface SnackbarController {
1463
+ /** Pushes a new message, returns its id. */
1464
+ show(options: SnackbarShowOptions): string;
1465
+ /** Dismisses one message by id, or every message in this controller if omitted. */
1466
+ dismiss(id?: string): void;
1467
+ update(id: string, options: Partial<SnackbarShowOptions>): void;
1468
+ }
1469
+
1470
+ /** No 'center' — Ark's Toast placement is edge-anchored (stack management),
1471
+ * unlike the legacy PrimeVue Toast which could float mid-viewport. Dropped:
1472
+ * no real usage exercised it (SnackbarBasic/SnackbarImage both use
1473
+ * corner/edge placements) and faking it would fight Ark's own --x/--y/--scale
1474
+ * stacking math instead of using it. */
1475
+ export declare type SnackbarPlacement = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';
1476
+
1477
+ export declare interface SnackbarProperties {
1478
+ controller: SnackbarController;
1479
+ /** Where the toast stack portals to. Override if your app scopes
1480
+ * `data-theme` to a sub-tree rather than the document root. */
1481
+ portalContainer?: RefObject<HTMLElement | null>;
1482
+ }
1483
+
1484
+ export declare type SnackbarSeverity = (typeof SNACKBAR_SEVERITIES)[number];
1485
+
1486
+ /** The payload for `controller.show()`/`.update()`. Framework-shaped on
1487
+ * purpose (ReactNode `detail`/`leading`) — this is why it lives in the
1488
+ * adapter, not in core alongside `SnackbarSeverity`/`SnackbarPlacement`. */
1489
+ export declare interface SnackbarShowOptions {
1490
+ /** @default 'contrast' */
1491
+ severity?: SnackbarSeverity;
1492
+ detail: ReactNode;
1493
+ /** Icon or image shown before the detail text. Mutually exclusive with
1494
+ * nothing in particular — it's just whatever `ReactNode` you pass. */
1495
+ leading?: ReactNode;
1496
+ /** @default 3000, and never resolves lower than that. */
1497
+ life?: number;
1498
+ /** Progress bar filling over `life`, indicating time until auto-dismiss. @default false */
1499
+ progressBar?: boolean;
1500
+ action?: {
1501
+ label: string;
1502
+ onClick: () => void;
1503
+ };
1504
+ }
1505
+
1506
+ export declare interface StepItemData {
1507
+ title: string;
1508
+ description?: string;
1509
+ /** Consumer-defined extras (icon, content…) resolved in the adapter. */
1510
+ [key: string]: unknown;
1511
+ }
1512
+
1513
+ export declare function Stepper({ items, step, defaultStep, onStepChange, onStepComplete, linear, orientation, indicatorVariant, isStepValid, isStepSkippable, }: StepperProperties): JSX_2.Element;
1514
+
1515
+ declare const STEPPER_ORIENTATIONS: readonly ["horizontal", "vertical"];
1516
+
1517
+ /** Visual weight of the current/completed indicator — mirrors the legacy
1518
+ * Vue `completeItem` mode ('default': accent only on current; 'strong':
1519
+ * accent on current AND completed alike). */
1520
+ export declare type StepperIndicatorVariant = 'default' | 'strong';
1521
+
1522
+ export declare type StepperOrientation = (typeof STEPPER_ORIENTATIONS)[number];
1523
+
1524
+ export declare interface StepperProperties {
1525
+ items: StepItemData[];
1526
+ /** Controlled current step index (0-based). Omit to let Ark manage it. */
1527
+ step?: number;
1528
+ defaultStep?: number;
1529
+ onStepChange?: (step: number) => void;
1530
+ onStepComplete?: () => void;
1531
+ /** Requires steps to be completed in order — blocks jumping ahead. */
1532
+ linear?: boolean;
1533
+ orientation?: StepperOrientation;
1534
+ /** 'default': completed steps stay weak-accent. 'strong': completed steps
1535
+ * get the same full-accent treatment as the current one. */
1536
+ indicatorVariant?: StepperIndicatorVariant;
1537
+ isStepValid?: (index: number) => boolean;
1538
+ isStepSkippable?: (index: number) => boolean;
1539
+ }
1540
+
1541
+ export declare const Switch: ForwardRefExoticComponent<SwitchProperties & RefAttributes<HTMLInputElement>>;
1542
+
1543
+ declare const SWITCH_SIZES: readonly ["small", "medium", "large"];
1544
+
1545
+ export declare interface SwitchProperties {
1546
+ /**
1547
+ * The controlled checked state.
1548
+ */
1549
+ checked?: boolean;
1550
+ /**
1551
+ * Initial checked state (uncontrolled mode).
1552
+ */
1553
+ defaultChecked?: boolean;
1554
+ /**
1555
+ * Handler called when checked state changes.
1556
+ */
1557
+ onCheckedChange?: (checked: boolean) => void;
1558
+ /**
1559
+ * The switch label (also usable via children).
1560
+ */
1561
+ children?: ReactNode;
1562
+ /**
1563
+ * Size variant.
1564
+ * @default 'small'
1565
+ */
1566
+ size?: SwitchSize;
1567
+ /**
1568
+ * Disables interaction.
1569
+ * @default false
1570
+ */
1571
+ disabled?: boolean;
1572
+ /**
1573
+ * Marks the switch as invalid (red border).
1574
+ * @default false
1575
+ */
1576
+ invalid?: boolean;
1577
+ /**
1578
+ * Makes the switch read-only.
1579
+ * @default false
1580
+ */
1581
+ readOnly?: boolean;
1582
+ /**
1583
+ * Marks the switch as required for form validation.
1584
+ * @default false
1585
+ */
1586
+ required?: boolean;
1587
+ /**
1588
+ * The name attribute for form submission.
1589
+ */
1590
+ name?: string;
1591
+ /**
1592
+ * The value submitted with the form when checked.
1593
+ * @default 'on'
1594
+ */
1595
+ value?: string;
1596
+ /**
1597
+ * Unique identifier for the switch.
1598
+ */
1599
+ id?: string;
1600
+ }
1601
+
1602
+ export declare type SwitchSize = (typeof SWITCH_SIZES)[number];
1603
+
1604
+ declare const TAB_SIZES: readonly ["small", "medium"];
1605
+
1606
+ export declare interface TabItem {
1607
+ /** Unique id; matches the panel. */
1608
+ value: string;
1609
+ label: string;
1610
+ disabled?: boolean;
1611
+ }
1612
+
1613
+ export declare function Tabs({ value, onValueChange, items, size, fluid, renderTab, renderPanel, }: TabsReactProperties): JSX_2.Element;
1614
+
1615
+ export declare type TabSize = (typeof TAB_SIZES)[number];
1616
+
1617
+ export declare interface TabsProperties {
1618
+ items: TabItem[];
1619
+ size?: TabSize;
1620
+ fluid?: boolean;
1621
+ }
1622
+
1623
+ declare interface TabsReactProperties extends TabsProperties {
1624
+ value?: string;
1625
+ onValueChange?: (value: string) => void;
1626
+ renderTab?: (item: TabItem) => ReactNode;
1627
+ renderPanel?: (item: TabItem) => ReactNode;
1628
+ }
1629
+
1630
+ export declare function Tag({ severity, size, icon, children, }: TagProperties): JSX_2.Element;
1631
+
1632
+ declare const TAG_CHIP_SEVERITIES: readonly ["default", "accent"];
1633
+
1634
+ declare const TAG_CHIP_SIZES: readonly ["small", "medium"];
1635
+
1636
+ declare const TAG_SEVERITIES: readonly ["accent", "accent-weak", "neutral", "positive", "warning", "danger"];
1637
+
1638
+ declare const TAG_SIZES: readonly ["small", "medium", "large"];
1639
+
1640
+ export declare function TagChip({ severity, size, disabled, icon, image, imageAlt, removable, onRemove, removeLabel, children, }: TagChipProperties): JSX_2.Element;
1641
+
1642
+ export declare interface TagChipProperties {
1643
+ /** @default 'default' */
1644
+ severity?: TagChipSeverity;
1645
+ /** @default 'small' */
1646
+ size?: TagChipSize;
1647
+ disabled?: boolean;
1648
+ /** Leading content icon. */
1649
+ icon?: ReactNode;
1650
+ /** Avatar image URL, rendered before the label. */
1651
+ image?: string;
1652
+ imageAlt?: string;
1653
+ /** Shows a remove button and fires onRemove when clicked. @default false */
1654
+ removable?: boolean;
1655
+ onRemove?: () => void;
1656
+ /** Accessible label for the remove button. @default 'Remove' */
1657
+ removeLabel?: string;
1658
+ children?: ReactNode;
1659
+ }
1660
+
1661
+ export declare type TagChipSeverity = (typeof TAG_CHIP_SEVERITIES)[number];
1662
+
1663
+ export declare type TagChipSize = (typeof TAG_CHIP_SIZES)[number];
1664
+
1665
+ export declare interface TagProperties {
1666
+ /** @default 'accent' */
1667
+ severity?: TagSeverity;
1668
+ /** @default 'small' */
1669
+ size?: TagSize;
1670
+ icon?: ReactNode;
1671
+ children?: ReactNode;
1672
+ }
1673
+
1674
+ export declare type TagSeverity = (typeof TAG_SEVERITIES)[number];
1675
+
1676
+ export declare type TagSize = (typeof TAG_SIZES)[number];
1677
+
1678
+ export declare const Textarea: ForwardRefExoticComponent<TextareaProperties & RefAttributes<HTMLTextAreaElement>>;
1679
+
1680
+ export declare interface TextareaProperties extends ForwardedNativeProperties_4 {
1681
+ /** Valor controlado. Omítelo para dejar el campo uncontrolled (el DOM
1682
+ * guarda el valor y `defaultValue` aplica). */
1683
+ value?: string;
1684
+ /** Controlled change handler — receives the next string value. */
1685
+ onValueChange?: (value: string) => void;
1686
+ size?: InputTextSize;
1687
+ invalid?: boolean;
1688
+ disabled?: boolean;
1689
+ /** Grows the textarea to fit its content instead of showing a scrollbar. */
1690
+ autoresize?: boolean;
1691
+ }
1692
+
1693
+ export { }