@mdigital_ui/ui 0.2.5 → 0.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (274) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1023 -341
  3. package/dist/accordion/index.js +3 -3
  4. package/dist/avatar/index.js +4 -0
  5. package/dist/avatar/index.js.map +1 -0
  6. package/dist/badge/index.js +3 -3
  7. package/dist/breadcrumbs/index.js +5 -5
  8. package/dist/button/index.js +4 -4
  9. package/dist/button-group/index.js +2 -2
  10. package/dist/card/index.js +2 -2
  11. package/dist/carousel/index.js +2 -1
  12. package/dist/cascader/index.js +2 -2
  13. package/dist/chart/index.js +2 -2
  14. package/dist/checkbox/index.js +3 -3
  15. package/dist/checkbox-group/index.js +2 -2
  16. package/dist/chunk-27QEPVKU.js +115 -0
  17. package/dist/chunk-27QEPVKU.js.map +1 -0
  18. package/dist/{chunk-Y5A26EGR.js → chunk-2J57G7XG.js} +82 -24
  19. package/dist/chunk-2J57G7XG.js.map +1 -0
  20. package/dist/{chunk-FPOXTCYV.js → chunk-2NYVRAG4.js} +29 -20
  21. package/dist/chunk-2NYVRAG4.js.map +1 -0
  22. package/dist/chunk-2OUGJBXK.js +742 -0
  23. package/dist/chunk-2OUGJBXK.js.map +1 -0
  24. package/dist/{chunk-ROR4E6IE.js → chunk-2WZVD7P3.js} +38 -12
  25. package/dist/chunk-2WZVD7P3.js.map +1 -0
  26. package/dist/chunk-3UCZ4GMN.js +84 -0
  27. package/dist/chunk-3UCZ4GMN.js.map +1 -0
  28. package/dist/{chunk-RPAQAZTI.js → chunk-4LSKRZOT.js} +12 -7
  29. package/dist/chunk-4LSKRZOT.js.map +1 -0
  30. package/dist/{chunk-ASW7TEAN.js → chunk-4SQOFZ3N.js} +35 -18
  31. package/dist/chunk-4SQOFZ3N.js.map +1 -0
  32. package/dist/chunk-5PUATOLR.js +127 -0
  33. package/dist/chunk-5PUATOLR.js.map +1 -0
  34. package/dist/chunk-6TMOKYR7.js +75 -0
  35. package/dist/chunk-6TMOKYR7.js.map +1 -0
  36. package/dist/chunk-7UCNBMCV.js +261 -0
  37. package/dist/chunk-7UCNBMCV.js.map +1 -0
  38. package/dist/chunk-AQYOVYPS.js +237 -0
  39. package/dist/chunk-AQYOVYPS.js.map +1 -0
  40. package/dist/{chunk-BP434VYV.js → chunk-C5YO5VZS.js} +17 -17
  41. package/dist/chunk-C5YO5VZS.js.map +1 -0
  42. package/dist/{chunk-ZNJ7M5QK.js → chunk-CHGJX5F2.js} +69 -46
  43. package/dist/chunk-CHGJX5F2.js.map +1 -0
  44. package/dist/chunk-CK6A2R66.js +336 -0
  45. package/dist/chunk-CK6A2R66.js.map +1 -0
  46. package/dist/{chunk-I5ANSIDK.js → chunk-CMGCJXE5.js} +280 -100
  47. package/dist/chunk-CMGCJXE5.js.map +1 -0
  48. package/dist/chunk-CSRMVLPR.js +394 -0
  49. package/dist/chunk-CSRMVLPR.js.map +1 -0
  50. package/dist/chunk-DH7R6NBG.js +107 -0
  51. package/dist/chunk-DH7R6NBG.js.map +1 -0
  52. package/dist/{chunk-XMAH5PDW.js → chunk-FEMHXG2P.js} +28 -11
  53. package/dist/chunk-FEMHXG2P.js.map +1 -0
  54. package/dist/chunk-FIGSNRWY.js +382 -0
  55. package/dist/chunk-FIGSNRWY.js.map +1 -0
  56. package/dist/{chunk-C7SXY3ZV.js → chunk-FVTMKQUE.js} +5 -3
  57. package/dist/chunk-FVTMKQUE.js.map +1 -0
  58. package/dist/{chunk-UAMFKX6L.js → chunk-GBVIACYQ.js} +103 -42
  59. package/dist/chunk-GBVIACYQ.js.map +1 -0
  60. package/dist/chunk-H47C2ENJ.js +215 -0
  61. package/dist/chunk-H47C2ENJ.js.map +1 -0
  62. package/dist/chunk-HWFI4GJE.js +130 -0
  63. package/dist/chunk-HWFI4GJE.js.map +1 -0
  64. package/dist/chunk-IA42ELUP.js +72 -0
  65. package/dist/chunk-IA42ELUP.js.map +1 -0
  66. package/dist/{chunk-HUVXKOJC.js → chunk-INQI3UUI.js} +80 -22
  67. package/dist/chunk-INQI3UUI.js.map +1 -0
  68. package/dist/{chunk-BNILRB4T.js → chunk-J525ROGL.js} +12 -7
  69. package/dist/chunk-J525ROGL.js.map +1 -0
  70. package/dist/chunk-JLS4MBHN.js +205 -0
  71. package/dist/chunk-JLS4MBHN.js.map +1 -0
  72. package/dist/{chunk-SK5ECBBK.js → chunk-KTHWXHDN.js} +15 -6
  73. package/dist/chunk-KTHWXHDN.js.map +1 -0
  74. package/dist/{chunk-SOV4PE3P.js → chunk-LMR7TKDJ.js} +25 -7
  75. package/dist/chunk-LMR7TKDJ.js.map +1 -0
  76. package/dist/{chunk-NNSS366W.js → chunk-MRFCITKK.js} +53 -11
  77. package/dist/chunk-MRFCITKK.js.map +1 -0
  78. package/dist/chunk-MXDTUN3V.js +459 -0
  79. package/dist/chunk-MXDTUN3V.js.map +1 -0
  80. package/dist/{chunk-YNNAOXU5.js → chunk-NGYLRX6F.js} +3 -18
  81. package/dist/chunk-NGYLRX6F.js.map +1 -0
  82. package/dist/chunk-NTPWR57C.js +445 -0
  83. package/dist/chunk-NTPWR57C.js.map +1 -0
  84. package/dist/chunk-OWXQ45GS.js +276 -0
  85. package/dist/chunk-OWXQ45GS.js.map +1 -0
  86. package/dist/{chunk-75XESYGN.js → chunk-P6A75RAH.js} +7 -13
  87. package/dist/chunk-P6A75RAH.js.map +1 -0
  88. package/dist/{chunk-RMGIO27V.js → chunk-PXOHJJBE.js} +39 -10
  89. package/dist/chunk-PXOHJJBE.js.map +1 -0
  90. package/dist/{chunk-SAVE5ACL.js → chunk-Q57THXIU.js} +28 -10
  91. package/dist/chunk-Q57THXIU.js.map +1 -0
  92. package/dist/{chunk-J3G5WWGR.js → chunk-QDHGE7IF.js} +7 -15
  93. package/dist/chunk-QDHGE7IF.js.map +1 -0
  94. package/dist/{chunk-7PKVBUGL.js → chunk-QKSDVYKF.js} +4 -4
  95. package/dist/chunk-QKSDVYKF.js.map +1 -0
  96. package/dist/chunk-ROA7BYGB.js +123 -0
  97. package/dist/chunk-ROA7BYGB.js.map +1 -0
  98. package/dist/{chunk-DPOSWW22.js → chunk-RPIJ2KY7.js} +11 -4
  99. package/dist/chunk-RPIJ2KY7.js.map +1 -0
  100. package/dist/{chunk-R225A5II.js → chunk-RW4RW4DV.js} +80 -30
  101. package/dist/chunk-RW4RW4DV.js.map +1 -0
  102. package/dist/chunk-RYKVZFGB.js +607 -0
  103. package/dist/chunk-RYKVZFGB.js.map +1 -0
  104. package/dist/chunk-SAVEKACZ.js +552 -0
  105. package/dist/chunk-SAVEKACZ.js.map +1 -0
  106. package/dist/chunk-SDNT2JGC.js +143 -0
  107. package/dist/chunk-SDNT2JGC.js.map +1 -0
  108. package/dist/{chunk-DOKTHDG3.js → chunk-SGRACNBP.js} +12 -7
  109. package/dist/chunk-SGRACNBP.js.map +1 -0
  110. package/dist/{chunk-OALOWWO7.js → chunk-TTEBZZ3T.js} +55 -42
  111. package/dist/chunk-TTEBZZ3T.js.map +1 -0
  112. package/dist/{chunk-FCMVKFVV.js → chunk-US4ZCMNU.js} +26 -20
  113. package/dist/chunk-US4ZCMNU.js.map +1 -0
  114. package/dist/chunk-UUP7YGOS.js +299 -0
  115. package/dist/chunk-UUP7YGOS.js.map +1 -0
  116. package/dist/{chunk-QPJL66S7.js → chunk-VUBU7Y4F.js} +123 -55
  117. package/dist/chunk-VUBU7Y4F.js.map +1 -0
  118. package/dist/chunk-WUBMNJGC.js +141 -0
  119. package/dist/chunk-WUBMNJGC.js.map +1 -0
  120. package/dist/chunk-WVG3QQDN.js +283 -0
  121. package/dist/chunk-WVG3QQDN.js.map +1 -0
  122. package/dist/chunk-WZ2KDHFP.js +109 -0
  123. package/dist/chunk-WZ2KDHFP.js.map +1 -0
  124. package/dist/{chunk-FGWSUPVW.js → chunk-X5SCI7KH.js} +190 -137
  125. package/dist/chunk-X5SCI7KH.js.map +1 -0
  126. package/dist/{chunk-D3JWPGCA.js → chunk-XJCWPPMM.js} +10 -56
  127. package/dist/chunk-XJCWPPMM.js.map +1 -0
  128. package/dist/{chunk-LEKLQR4I.js → chunk-YAAV7FQG.js} +70 -45
  129. package/dist/chunk-YAAV7FQG.js.map +1 -0
  130. package/dist/chunk-YOG5GXIC.js +196 -0
  131. package/dist/chunk-YOG5GXIC.js.map +1 -0
  132. package/dist/chunk-Z5VJ6MJP.js +234 -0
  133. package/dist/chunk-Z5VJ6MJP.js.map +1 -0
  134. package/dist/{chunk-267WNY3E.js → chunk-ZC3E3PWH.js} +109 -73
  135. package/dist/chunk-ZC3E3PWH.js.map +1 -0
  136. package/dist/clipboard/index.js +2 -2
  137. package/dist/collapse/index.js +2 -2
  138. package/dist/command/index.js +3 -3
  139. package/dist/context-menu/index.js +4 -0
  140. package/dist/context-menu/index.js.map +1 -0
  141. package/dist/date-picker/index.js +4 -3
  142. package/dist/descriptions/index.js +2 -2
  143. package/dist/divider/index.js +4 -0
  144. package/dist/divider/index.js.map +1 -0
  145. package/dist/drawer/index.js +2 -2
  146. package/dist/dropdown/index.js +4 -3
  147. package/dist/empty/index.js +2 -2
  148. package/dist/fetching-overlay/index.js +4 -3
  149. package/dist/grid/index.js +2 -2
  150. package/dist/image/index.js +2 -2
  151. package/dist/index.d.ts +2494 -211
  152. package/dist/index.js +63 -186
  153. package/dist/index.js.map +1 -1
  154. package/dist/input/index.js +4 -3
  155. package/dist/input-group/index.js +2 -2
  156. package/dist/input-otp/index.js +2 -2
  157. package/dist/input-password/index.js +5 -4
  158. package/dist/kbd/index.js +3 -2
  159. package/dist/modal/index.js +2 -2
  160. package/dist/multi-select/index.js +4 -3
  161. package/dist/notification/index.js +3 -2
  162. package/dist/pagination/index.js +2 -2
  163. package/dist/popover/index.js +3 -2
  164. package/dist/progress/index.js +2 -2
  165. package/dist/radio/index.js +3 -2
  166. package/dist/radio-group/index.js +2 -2
  167. package/dist/rating/index.js +2 -2
  168. package/dist/ribbon/index.js +2 -2
  169. package/dist/select/index.js +5 -4
  170. package/dist/skeleton/index.js +3 -2
  171. package/dist/slider/index.js +2 -2
  172. package/dist/spinner/index.js +3 -2
  173. package/dist/stepper/index.js +2 -2
  174. package/dist/styles/base.css +2165 -1375
  175. package/dist/styles/global.css +2393 -1036
  176. package/dist/styles/themes/dark.css +3 -1
  177. package/dist/styles/themes/light.css +3 -1
  178. package/dist/styles/themes/presets/corporate.css +126 -0
  179. package/dist/styles/themes/presets/minimal.css +126 -0
  180. package/dist/styles/themes/presets/vibrant.css +126 -0
  181. package/dist/switch/index.js +3 -2
  182. package/dist/table/index.js +10 -10
  183. package/dist/tabs/index.js +3 -3
  184. package/dist/tag/index.js +5 -0
  185. package/dist/tag/index.js.map +1 -0
  186. package/dist/textarea/index.js +2 -2
  187. package/dist/theme/index.js +3 -0
  188. package/dist/theme/index.js.map +1 -0
  189. package/dist/toggle/index.js +2 -2
  190. package/dist/toggle-group/index.js +2 -2
  191. package/dist/tooltip/index.js +3 -2
  192. package/dist/transfer/index.js +4 -4
  193. package/dist/tree/index.js +2 -2
  194. package/dist/tree-select/index.js +5 -4
  195. package/dist/upload/index.js +2 -2
  196. package/package.json +460 -70
  197. package/dist/chunk-267WNY3E.js.map +0 -1
  198. package/dist/chunk-2EKAF6EJ.js +0 -128
  199. package/dist/chunk-2EKAF6EJ.js.map +0 -1
  200. package/dist/chunk-3PFA3YG6.js +0 -228
  201. package/dist/chunk-3PFA3YG6.js.map +0 -1
  202. package/dist/chunk-56IXGP5C.js +0 -56
  203. package/dist/chunk-56IXGP5C.js.map +0 -1
  204. package/dist/chunk-5UEWVFF6.js +0 -212
  205. package/dist/chunk-5UEWVFF6.js.map +0 -1
  206. package/dist/chunk-6V5I5HJ2.js +0 -39
  207. package/dist/chunk-6V5I5HJ2.js.map +0 -1
  208. package/dist/chunk-75XESYGN.js.map +0 -1
  209. package/dist/chunk-7PKVBUGL.js.map +0 -1
  210. package/dist/chunk-ASW7TEAN.js.map +0 -1
  211. package/dist/chunk-AWPKZYHT.js +0 -152
  212. package/dist/chunk-AWPKZYHT.js.map +0 -1
  213. package/dist/chunk-BFO3ARVJ.js +0 -104
  214. package/dist/chunk-BFO3ARVJ.js.map +0 -1
  215. package/dist/chunk-BNILRB4T.js.map +0 -1
  216. package/dist/chunk-BP434VYV.js.map +0 -1
  217. package/dist/chunk-C3MX5EXL.js +0 -95
  218. package/dist/chunk-C3MX5EXL.js.map +0 -1
  219. package/dist/chunk-C7SXY3ZV.js.map +0 -1
  220. package/dist/chunk-D3JWPGCA.js.map +0 -1
  221. package/dist/chunk-DOKTHDG3.js.map +0 -1
  222. package/dist/chunk-DPOSWW22.js.map +0 -1
  223. package/dist/chunk-FCMVKFVV.js.map +0 -1
  224. package/dist/chunk-FGWSUPVW.js.map +0 -1
  225. package/dist/chunk-FPOXTCYV.js.map +0 -1
  226. package/dist/chunk-FYHQDFKE.js +0 -164
  227. package/dist/chunk-FYHQDFKE.js.map +0 -1
  228. package/dist/chunk-G6TAVRTJ.js +0 -640
  229. package/dist/chunk-G6TAVRTJ.js.map +0 -1
  230. package/dist/chunk-GEWR5ROK.js +0 -102
  231. package/dist/chunk-GEWR5ROK.js.map +0 -1
  232. package/dist/chunk-HUVXKOJC.js.map +0 -1
  233. package/dist/chunk-I5ANSIDK.js.map +0 -1
  234. package/dist/chunk-J3G5WWGR.js.map +0 -1
  235. package/dist/chunk-JLTDJ3VZ.js +0 -452
  236. package/dist/chunk-JLTDJ3VZ.js.map +0 -1
  237. package/dist/chunk-KBCBVH7B.js +0 -51
  238. package/dist/chunk-KBCBVH7B.js.map +0 -1
  239. package/dist/chunk-KNQ7UQ2W.js +0 -143
  240. package/dist/chunk-KNQ7UQ2W.js.map +0 -1
  241. package/dist/chunk-KTAIRCOL.js +0 -100
  242. package/dist/chunk-KTAIRCOL.js.map +0 -1
  243. package/dist/chunk-LEKLQR4I.js.map +0 -1
  244. package/dist/chunk-MLDX3Z67.js +0 -470
  245. package/dist/chunk-MLDX3Z67.js.map +0 -1
  246. package/dist/chunk-NNSS366W.js.map +0 -1
  247. package/dist/chunk-OALOWWO7.js.map +0 -1
  248. package/dist/chunk-OOS3B7YZ.js +0 -94
  249. package/dist/chunk-OOS3B7YZ.js.map +0 -1
  250. package/dist/chunk-OQANRZPV.js +0 -197
  251. package/dist/chunk-OQANRZPV.js.map +0 -1
  252. package/dist/chunk-OW5A5IIF.js +0 -175
  253. package/dist/chunk-OW5A5IIF.js.map +0 -1
  254. package/dist/chunk-QPJL66S7.js.map +0 -1
  255. package/dist/chunk-R225A5II.js.map +0 -1
  256. package/dist/chunk-RMGIO27V.js.map +0 -1
  257. package/dist/chunk-ROR4E6IE.js.map +0 -1
  258. package/dist/chunk-RPAQAZTI.js.map +0 -1
  259. package/dist/chunk-S5XJXU52.js +0 -178
  260. package/dist/chunk-S5XJXU52.js.map +0 -1
  261. package/dist/chunk-SAVE5ACL.js.map +0 -1
  262. package/dist/chunk-SK5ECBBK.js.map +0 -1
  263. package/dist/chunk-SOV4PE3P.js.map +0 -1
  264. package/dist/chunk-UAMFKX6L.js.map +0 -1
  265. package/dist/chunk-XMAH5PDW.js.map +0 -1
  266. package/dist/chunk-XMKNYG7I.js +0 -181
  267. package/dist/chunk-XMKNYG7I.js.map +0 -1
  268. package/dist/chunk-Y5A26EGR.js.map +0 -1
  269. package/dist/chunk-YNNAOXU5.js.map +0 -1
  270. package/dist/chunk-YZ6V6BQ7.js +0 -134
  271. package/dist/chunk-YZ6V6BQ7.js.map +0 -1
  272. package/dist/chunk-YZVSDRJD.js +0 -253
  273. package/dist/chunk-YZVSDRJD.js.map +0 -1
  274. package/dist/chunk-ZNJ7M5QK.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -2,9 +2,9 @@ import { ClassValue } from 'clsx';
2
2
  import * as class_variance_authority_types from 'class-variance-authority/types';
3
3
  import { VariantProps } from 'class-variance-authority';
4
4
  import * as React$1 from 'react';
5
- import React__default, { ReactNode, FC } from 'react';
6
- import * as react_jsx_runtime from 'react/jsx-runtime';
5
+ import React__default, { ReactNode } from 'react';
7
6
  import { SwiperProps } from 'swiper/react';
7
+ import * as react_jsx_runtime from 'react/jsx-runtime';
8
8
  import * as DialogPrimitive from '@radix-ui/react-dialog';
9
9
  import { ColumnDef, Row } from '@tanstack/react-table';
10
10
  import { Command as Command$1 } from 'cmdk';
@@ -19,13 +19,13 @@ declare function cn(...inputs: ClassValue[]): string;
19
19
  /**
20
20
  * Shared icon sizes for consistent sizing across components
21
21
  * Used in Button, Input, Checkbox, Select, MultiSelect, DatePicker, TimePicker, etc.
22
+ * Standardized to 4-size scale: xs, sm, md, lg
22
23
  */
23
24
  declare const iconSizes: {
24
25
  readonly xs: "h-3 w-3";
25
26
  readonly sm: "h-3.5 w-3.5";
26
27
  readonly md: "h-4 w-4";
27
28
  readonly lg: "h-5 w-5";
28
- readonly xl: "h-6 w-6";
29
29
  };
30
30
  /**
31
31
  * Validation status types for form components
@@ -60,7 +60,7 @@ declare function getValidationStatus(messages: StatusMessages): {
60
60
  /**
61
61
  * Shared TypeScript type definitions for the UI library
62
62
  */
63
- type ComponentSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
63
+ type ComponentSize = 'xs' | 'sm' | 'md' | 'lg';
64
64
  type ButtonColor$1 = 'primary' | 'secondary' | 'accent' | 'success' | 'error' | 'warning' | 'info';
65
65
  type ComponentColor = 'default' | 'primary' | 'secondary' | 'accent' | 'success' | 'error' | 'warning' | 'info';
66
66
  type ComponentVariant = 'solid' | 'outline' | 'ghost';
@@ -96,6 +96,19 @@ interface IconProps {
96
96
  rightIcon?: React.ReactNode;
97
97
  }
98
98
  type MessagePosition = 'top' | 'bottom';
99
+ /**
100
+ * Helper type to create ClassNames interfaces from element union
101
+ * @example type ButtonClassNames = CreateClassNames<'root' | 'icon' | 'spinner'>
102
+ */
103
+ type CreateClassNames<T extends string> = Partial<Record<T, string>>;
104
+ /**
105
+ * Base classNames interface - all multi-element components extend this pattern
106
+ * Every component has at least a 'root' element
107
+ */
108
+ interface BaseClassNames {
109
+ /** The root/container element of the component */
110
+ root?: string;
111
+ }
99
112
 
100
113
  /**
101
114
  * Color palette for component variants
@@ -200,15 +213,31 @@ declare function createGhostColorVariants(colors: readonly string[]): {
200
213
  * compoundVariants: createAllColorVariants(buttonColors, ['solid', 'outline', 'ghost'])
201
214
  * })
202
215
  */
203
- declare function createAllColorVariants(colors: readonly string[], variants: Array<'default' | 'solid' | 'outline' | 'soft' | 'dashed' | 'link' | 'ghost'>): any;
204
216
  /**
205
- * Icon color variants mapped to component colors
206
- * Used by: Checkbox, Radio, and other components with colored icons
217
+ * Supported variant types for compound variant generation
218
+ */
219
+ type StyleVariantType = 'default' | 'solid' | 'outline' | 'soft' | 'dashed' | 'link' | 'ghost';
220
+ /**
221
+ * Complete color variant generator for components with multiple style variants
222
+ * Combines all color variant generators into a single array
223
+ *
224
+ * Returns `any[]` for CVA (class-variance-authority) compatibility:
225
+ * - CVA's CompoundVariant type is extremely complex and deeply nested
226
+ * - Using specific types causes TypeScript inference failures in consuming components
227
+ * - The `any` type allows CVA to properly infer variant combinations
228
+ * - This is the recommended approach per CVA documentation for dynamic variant generation
207
229
  *
208
- * Maps to Tailwind utilities: text-primary, text-secondary, etc.
209
- * Generated from theme variables: --color-primary, --color-secondary, etc.
230
+ * @param colors - Array of color names to generate variants for
231
+ * @param variants - Array of style variant types to generate
232
+ * @returns Array of compound variant objects for CVA
233
+ */
234
+ declare function createAllColorVariants<V extends StyleVariantType>(colors: readonly string[], variants: V[]): any[];
235
+ /**
236
+ * Text color classes for all component colors
237
+ * Used by: Checkbox icons, Spinner, text elements
210
238
  */
211
- declare const iconColorClasses: {
239
+ declare const textColorClasses: {
240
+ readonly default: "text-text-primary";
212
241
  readonly primary: "text-primary";
213
242
  readonly secondary: "text-secondary";
214
243
  readonly accent: "text-accent";
@@ -218,9 +247,85 @@ declare const iconColorClasses: {
218
247
  readonly info: "text-info";
219
248
  };
220
249
  /**
221
- * Helper to get icon color class for a given color
250
+ * Background color classes for skeleton/placeholder (50% opacity)
251
+ * Used by: Skeleton component
252
+ */
253
+ declare const bgSkeletonColorClasses: {
254
+ readonly default: "bg-surface";
255
+ readonly primary: "bg-primary/50";
256
+ readonly secondary: "bg-secondary/50";
257
+ readonly accent: "bg-accent/50";
258
+ readonly success: "bg-success/50";
259
+ readonly error: "bg-error/50";
260
+ readonly warning: "bg-warning/50";
261
+ readonly info: "bg-info/50";
262
+ };
263
+ /**
264
+ * Focus ring color classes
265
+ * Used by: Button, Switch, form elements
266
+ */
267
+ declare const focusRingColorClasses: {
268
+ readonly default: "focus-visible:ring-border";
269
+ readonly primary: "focus-visible:ring-primary";
270
+ readonly secondary: "focus-visible:ring-secondary";
271
+ readonly accent: "focus-visible:ring-accent";
272
+ readonly success: "focus-visible:ring-success";
273
+ readonly error: "focus-visible:ring-error";
274
+ readonly warning: "focus-visible:ring-warning";
275
+ readonly info: "focus-visible:ring-info";
276
+ };
277
+ /**
278
+ * Combined background + border for checked/selected state
279
+ * Used by: Checkbox, Radio checked states
280
+ */
281
+ declare const checkedColorClasses: {
282
+ readonly primary: "bg-primary border-primary";
283
+ readonly secondary: "bg-secondary border-secondary";
284
+ readonly accent: "bg-accent border-accent";
285
+ readonly success: "bg-success border-success";
286
+ readonly error: "bg-error border-error";
287
+ readonly warning: "bg-warning border-warning";
288
+ readonly info: "bg-info border-info";
289
+ };
290
+ /**
291
+ * Switch track colors (unchecked -> checked)
292
+ * Used by: Switch component
222
293
  */
223
- declare function getIconColorClass(color: ButtonColor$1): string;
294
+ declare const switchTrackColorClasses: {
295
+ readonly primary: "bg-border peer-checked:bg-primary peer-focus-visible:ring-primary";
296
+ readonly secondary: "bg-border peer-checked:bg-secondary peer-focus-visible:ring-secondary";
297
+ readonly accent: "bg-border peer-checked:bg-accent peer-focus-visible:ring-accent";
298
+ readonly success: "bg-border peer-checked:bg-success peer-focus-visible:ring-success";
299
+ readonly error: "bg-border peer-checked:bg-error peer-focus-visible:ring-error";
300
+ readonly warning: "bg-border peer-checked:bg-warning peer-focus-visible:ring-warning";
301
+ readonly info: "bg-border peer-checked:bg-info peer-focus-visible:ring-info";
302
+ };
303
+ /**
304
+ * Checkbox border colors (default -> checked)
305
+ * Used by: Checkbox component
306
+ */
307
+ declare const checkboxBorderColorClasses: {
308
+ readonly primary: "border-border checked:border-primary";
309
+ readonly secondary: "border-border checked:border-secondary";
310
+ readonly accent: "border-border checked:border-accent";
311
+ readonly success: "border-border checked:border-success";
312
+ readonly error: "border-border checked:border-error";
313
+ readonly warning: "border-border checked:border-warning";
314
+ readonly info: "border-border checked:border-info";
315
+ };
316
+ /**
317
+ * Radio button inset shadow colors for checked state
318
+ * Used by: Radio component
319
+ */
320
+ declare const radioCheckedColorClasses: {
321
+ readonly primary: "checked:border-primary checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-primary)]";
322
+ readonly secondary: "checked:border-secondary checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-secondary)]";
323
+ readonly accent: "checked:border-accent checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-accent)]";
324
+ readonly success: "checked:border-success checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-success)]";
325
+ readonly error: "checked:border-error checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-error)]";
326
+ readonly warning: "checked:border-warning checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-warning)]";
327
+ readonly info: "checked:border-info checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-info)]";
328
+ };
224
329
  /**
225
330
  * Text-only color variants (no background)
226
331
  * Used by: Breadcrumbs, Text components, Labels
@@ -230,65 +335,305 @@ declare const textColorVariants: (props?: ({
230
335
  } & class_variance_authority_types.ClassProp) | undefined) => string;
231
336
  type TextColorVariants = VariantProps<typeof textColorVariants>;
232
337
  /**
233
- * Standard component size scale (4 sizes)
234
- * Used by: Button, Input, Select, Textarea, most form components
338
+ * Generates compound variants for notification solid style (with foreground text)
339
+ * Used by: Notification, Alert components
340
+ *
341
+ * @param colors - Array of color names to generate variants for
342
+ * @returns Array of compound variant objects for CVA
343
+ */
344
+ declare function createNotificationSolidColorVariants(colors: readonly string[]): {
345
+ variant: "solid";
346
+ color: ComponentColor;
347
+ class: string;
348
+ }[];
349
+ /**
350
+ * Generates compound variants for notification outline style (border with thick left border)
351
+ * Used by: Notification, Alert components
352
+ *
353
+ * @param colors - Array of color names to generate variants for
354
+ * @returns Array of compound variant objects for CVA
235
355
  */
236
- declare const componentSizeVariants: {
237
- readonly sm: "sm";
238
- readonly md: "md";
239
- readonly lg: "lg";
240
- readonly xl: "xl";
241
- };
356
+ declare function createNotificationOutlineColorVariants(colors: readonly string[]): {
357
+ variant: "outline";
358
+ color: ComponentColor;
359
+ class: string;
360
+ }[];
242
361
  /**
243
- * Extended component size scale (5 sizes)
244
- * Used by: Components that need extra small sizing
362
+ * Generates compound variants for notification soft style (subtle bg with left border)
363
+ * Used by: Notification, Alert components
364
+ *
365
+ * @param colors - Array of color names to generate variants for
366
+ * @returns Array of compound variant objects for CVA
245
367
  */
246
- declare const extendedComponentSizeVariants: {
247
- readonly xs: "xs";
248
- readonly sm: "sm";
249
- readonly md: "md";
250
- readonly lg: "lg";
251
- readonly xl: "xl";
252
- };
368
+ declare function createNotificationSoftColorVariants(colors: readonly string[]): {
369
+ variant: "soft";
370
+ color: ComponentColor;
371
+ class: string;
372
+ }[];
373
+ /**
374
+ * Notification variant type
375
+ */
376
+ type NotificationVariantType = 'default' | 'solid' | 'outline' | 'soft';
377
+ /**
378
+ * Complete notification color variant generator
379
+ *
380
+ * Returns `any[]` for CVA (class-variance-authority) compatibility.
381
+ * See createAllColorVariants for detailed explanation.
382
+ *
383
+ * @param colors - Array of color names to generate variants for
384
+ * @param variants - Array of notification variant types to generate
385
+ * @returns Array of compound variant objects for CVA
386
+ */
387
+ declare function createNotificationColorVariants(colors: readonly string[], variants: NotificationVariantType[]): any[];
253
388
  /**
254
- * Common spacing values for consistent gaps, padding, and margins
255
- * Maps to Tailwind spacing scale
256
- *
257
- * Note: These are standard Tailwind values. For component-specific spacing,
258
- * use CSS custom properties defined in index.css (e.g., --button-padding-x-sm)
259
- */
260
- declare const commonSpacing: {
261
- readonly '0.5': "0.125rem";
262
- readonly '1': "0.25rem";
263
- readonly '1.5': "0.375rem";
264
- readonly '2': "0.5rem";
265
- readonly '2.5': "0.625rem";
266
- readonly '3': "0.75rem";
267
- readonly '4': "1rem";
268
- readonly '5': "1.25rem";
269
- readonly '6': "1.5rem";
270
- readonly '8': "2rem";
389
+ * Tooltip solid color classes (background with contrasting text)
390
+ * Used by: Tooltip component solid variant
391
+ */
392
+ declare const tooltipSolidColorClasses: {
393
+ readonly default: "bg-text-primary text-background";
394
+ readonly primary: "bg-primary text-background";
395
+ readonly secondary: "bg-secondary text-background";
396
+ readonly accent: "bg-accent text-background";
397
+ readonly success: "bg-success text-background";
398
+ readonly error: "bg-error text-background";
399
+ readonly warning: "bg-warning text-background";
400
+ readonly info: "bg-info text-background";
271
401
  };
272
402
  /**
273
- * Accordion color style generator
274
- * Generates variant, color, and hover state combinations
403
+ * Generates compound variants for tooltip soft style
404
+ * Used by: Tooltip component soft variant
405
+ *
406
+ * @param colors - Array of color names to generate variants for
407
+ * @returns Array of compound variant objects for CVA
408
+ */
409
+ declare function createTooltipSoftColorVariants(colors: readonly string[]): {
410
+ variant: "soft";
411
+ color: ComponentColor;
412
+ className: string;
413
+ }[];
414
+ /**
415
+ * Generates compound variants for Kbd solid style
416
+ * Used by: Kbd component
417
+ *
418
+ * @param colors - Array of color names to generate variants for
419
+ * @returns Array of compound variant objects for CVA
420
+ */
421
+ declare function createKbdSolidColorVariants(colors: readonly string[]): {
422
+ variant: "solid";
423
+ color: ComponentColor;
424
+ class: string;
425
+ }[];
426
+ /**
427
+ * Generates compound variants for Kbd outline style
428
+ * Used by: Kbd component
429
+ *
430
+ * @param colors - Array of color names to generate variants for
431
+ * @returns Array of compound variant objects for CVA
432
+ */
433
+ declare function createKbdOutlineColorVariants(colors: readonly string[]): {
434
+ variant: "outline";
435
+ color: ComponentColor;
436
+ class: string;
437
+ }[];
438
+ /**
439
+ * Generates compound variants for Kbd soft style
440
+ * Used by: Kbd component
441
+ *
442
+ * @param colors - Array of color names to generate variants for
443
+ * @returns Array of compound variant objects for CVA
444
+ */
445
+ declare function createKbdSoftColorVariants(colors: readonly string[]): {
446
+ variant: "soft";
447
+ color: ComponentColor;
448
+ class: string;
449
+ }[];
450
+ /**
451
+ * Kbd variant type
452
+ */
453
+ type KbdVariantType = 'solid' | 'outline' | 'soft';
454
+ /**
455
+ * Complete Kbd color variant generator
456
+ *
457
+ * Returns `any[]` for CVA (class-variance-authority) compatibility.
458
+ * See createAllColorVariants for detailed explanation.
459
+ *
460
+ * @param colors - Array of color names to generate variants for
461
+ * @param variants - Array of kbd variant types to generate
462
+ * @returns Array of compound variant objects for CVA
463
+ */
464
+ declare function createKbdColorVariants(colors: readonly string[], variants: KbdVariantType[]): any[];
465
+ /**
466
+ * Generates compound variants for Popover default style
467
+ * Used by: Popover component
468
+ *
469
+ * @param colors - Array of color names to generate variants for
470
+ * @returns Array of compound variant objects for CVA
471
+ */
472
+ declare function createPopoverDefaultColorVariants(colors: readonly string[]): {
473
+ variant: "default";
474
+ color: ComponentColor;
475
+ class: string;
476
+ }[];
477
+ /**
478
+ * Generates compound variants for Popover solid style
479
+ * Used by: Popover component
480
+ *
481
+ * @param colors - Array of color names to generate variants for
482
+ * @returns Array of compound variant objects for CVA
483
+ */
484
+ declare function createPopoverSolidColorVariants(colors: readonly string[]): {
485
+ variant: "solid";
486
+ color: ComponentColor;
487
+ class: string;
488
+ }[];
489
+ /**
490
+ * Generates compound variants for Popover soft style (with backdrop blur)
491
+ * Used by: Popover component
492
+ *
493
+ * @param colors - Array of color names to generate variants for
494
+ * @returns Array of compound variant objects for CVA
495
+ */
496
+ declare function createPopoverSoftColorVariants(colors: readonly string[]): {
497
+ variant: "soft";
498
+ color: ComponentColor;
499
+ class: string;
500
+ }[];
501
+ /**
502
+ * Popover variant type
503
+ */
504
+ type PopoverVariantType = 'default' | 'solid' | 'soft';
505
+ /**
506
+ * Complete Popover color variant generator
507
+ *
508
+ * Returns `any[]` for CVA (class-variance-authority) compatibility.
509
+ * See createAllColorVariants for detailed explanation.
510
+ *
511
+ * @param colors - Array of color names to generate variants for
512
+ * @param variants - Array of popover variant types to generate
513
+ * @returns Array of compound variant objects for CVA
514
+ */
515
+ declare function createPopoverColorVariants(colors: readonly string[], variants: PopoverVariantType[]): any[];
516
+
517
+ /**
518
+ * Theme Types
519
+ * TypeScript types for theme management
520
+ */
521
+ type Theme = 'light' | 'dark' | 'system';
522
+ interface ThemeProviderProps {
523
+ /**
524
+ * The default theme to use when no preference is stored
525
+ * @default 'system'
526
+ */
527
+ defaultTheme?: Theme;
528
+ /**
529
+ * The localStorage key to use for persisting theme preference
530
+ * @default 'ui-theme'
531
+ */
532
+ storageKey?: string;
533
+ /**
534
+ * Children components
535
+ */
536
+ children: React.ReactNode;
537
+ /**
538
+ * Disable transitions when theme changes
539
+ * @default false
540
+ */
541
+ disableTransitionOnChange?: boolean;
542
+ /**
543
+ * Enable strict mode (throw errors on missing context)
544
+ * @default false
545
+ */
546
+ enableStrictMode?: boolean;
547
+ }
548
+ interface ThemeProviderState {
549
+ /**
550
+ * The current theme setting ('light', 'dark', or 'system')
551
+ */
552
+ theme: Theme;
553
+ /**
554
+ * The resolved theme ('light' or 'dark')
555
+ * When theme is 'system', this will be the actual OS preference
556
+ */
557
+ resolvedTheme: 'light' | 'dark';
558
+ /**
559
+ * Update the theme
560
+ */
561
+ setTheme: (theme: Theme) => void;
562
+ }
563
+
564
+ /**
565
+ * ThemeProvider
566
+ * Production-ready theme management with React context
567
+ */
568
+
569
+ /**
570
+ * ThemeProvider Component
571
+ * Provides theme context and manages theme state with persistence
572
+ */
573
+ declare const ThemeProvider: React__default.FC<ThemeProviderProps>;
574
+ /**
575
+ * useTheme Hook
576
+ * Access theme context from any component
577
+ *
578
+ * @throws {Error} When used outside ThemeProvider (in strict mode)
579
+ * @returns {ThemeProviderState} Theme state and setTheme function
580
+ *
581
+ * @example
582
+ * ```tsx
583
+ * const { theme, setTheme, resolvedTheme } = useTheme();
584
+ *
585
+ * // Current theme setting
586
+ * console.log(theme); // 'light' | 'dark' | 'system'
587
+ *
588
+ * // Resolved theme (actual theme being displayed)
589
+ * console.log(resolvedTheme); // 'light' | 'dark'
590
+ *
591
+ * // Change theme
592
+ * setTheme('dark');
593
+ * ```
594
+ */
595
+ declare const useTheme: () => ThemeProviderState;
596
+ /**
597
+ * Script to inject in <head> for SSR apps to prevent flash
598
+ * Place this in your HTML template before any styles
275
599
  *
276
- * @param color - Component color
277
- * @param variant - Style variant (default, solid, soft)
278
- * @returns Combined class string
600
+ * @example
601
+ * ```html
602
+ * <script dangerouslySetInnerHTML={{ __html: themeScript }} />
603
+ * ```
279
604
  */
280
- declare function getAccordionColorClass(color: ComponentColor, variant: 'default' | 'solid' | 'soft'): string;
605
+ declare const themeScript = "\n(function() {\n try {\n var storageKey = 'ui-theme';\n var theme = localStorage.getItem(storageKey) || 'system';\n var resolved = theme;\n\n if (theme === 'system') {\n resolved = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n }\n\n document.documentElement.setAttribute('data-theme', resolved);\n document.documentElement.classList.add(resolved);\n } catch (e) {}\n})();\n";
606
+
281
607
  /**
282
- * Checkbox/Radio indeterminate/checked state color generator
283
- * Generates background color for checked state with proper contrast
608
+ * Theme Presets
609
+ *
610
+ * Pre-configured color schemes for the UIKit
611
+ * Each preset includes light and dark mode variants
612
+ *
613
+ * Usage:
614
+ * ```tsx
615
+ * <div data-theme="corporate">
616
+ * // Your components will use the corporate color scheme
617
+ * </div>
618
+ * ```
284
619
  *
285
- * @param color - Component color
286
- * @returns Background class string
620
+ * Available presets:
621
+ * - corporate: Professional blue/gray palette for business applications
622
+ * - vibrant: Bold, saturated colors with purple/pink/teal
623
+ * - minimal: Muted, low-contrast palette with subtle accents
287
624
  */
288
- declare function getCheckboxColorClass(color: ButtonColor$1): string;
625
+ declare const themePresets: readonly ["corporate", "vibrant", "minimal"];
626
+ type ThemePreset = typeof themePresets[number];
289
627
 
290
- type AccordionVariant = 'default' | 'solid' | 'soft';
291
- type AccordionSize = 'xs' | 'sm' | 'md' | 'lg';
628
+ type AccordionVariant = "default" | "solid" | "soft" | "bordered" | "splitted";
629
+ type AccordionSize = "xs" | "sm" | "md" | "lg";
630
+ interface AccordionClassNames {
631
+ root?: string;
632
+ item?: string;
633
+ trigger?: string;
634
+ content?: string;
635
+ icon?: string;
636
+ }
292
637
  interface AccordionItem {
293
638
  /**
294
639
  * Unique key for the accordion item
@@ -307,9 +652,17 @@ interface AccordionItem {
307
652
  */
308
653
  disabled?: boolean;
309
654
  /**
310
- * Custom icon for the item
655
+ * Custom icon for the item (displayed before title)
311
656
  */
312
657
  icon?: React.ReactNode;
658
+ /**
659
+ * Subtitle displayed below title
660
+ */
661
+ subtitle?: React.ReactNode;
662
+ /**
663
+ * Extra content displayed on the right side of the header (before expand icon)
664
+ */
665
+ extra?: React.ReactNode;
313
666
  }
314
667
  interface AccordionProps {
315
668
  /**
@@ -318,14 +671,22 @@ interface AccordionProps {
318
671
  items: AccordionItem[];
319
672
  /**
320
673
  * Theme color
674
+ * @default 'default'
321
675
  */
322
676
  color?: ComponentColor;
323
677
  /**
324
- * Size variant (accordion only supports xs, sm, md, lg)
678
+ * Size variant
679
+ * @default 'md'
325
680
  */
326
681
  size?: AccordionSize;
327
682
  /**
328
683
  * Visual style variant
684
+ * - default: subtle background on hover
685
+ * - solid: filled background
686
+ * - soft: light colored background
687
+ * - bordered: outline border only
688
+ * - splitted: separated cards with gap
689
+ * @default 'default'
329
690
  */
330
691
  variant?: AccordionVariant;
331
692
  /**
@@ -342,118 +703,489 @@ interface AccordionProps {
342
703
  onChange?: (activeKey: string | string[]) => void;
343
704
  /**
344
705
  * Allow multiple panels to be open simultaneously
706
+ * @default false
345
707
  */
346
708
  multiple?: boolean;
709
+ /**
710
+ * Custom expand/collapse icon or false to hide
711
+ */
712
+ expandIcon?: React.ReactNode | ((isExpanded: boolean) => React.ReactNode) | false;
713
+ /**
714
+ * Position of expand icon
715
+ * @default 'right'
716
+ */
717
+ expandIconPosition?: "left" | "right";
718
+ /**
719
+ * Whether at least one panel must remain open
720
+ * Only works when multiple is false
721
+ * @default false
722
+ */
723
+ collapsible?: boolean;
724
+ /**
725
+ * Unmount content when panel is collapsed (for performance)
726
+ * @default false
727
+ */
728
+ destroyOnClose?: boolean;
729
+ /**
730
+ * Show divider between items (only for non-splitted variants)
731
+ * @default true
732
+ */
733
+ showDivider?: boolean;
347
734
  /**
348
735
  * Additional CSS class
349
736
  */
350
737
  className?: string;
738
+ /**
739
+ * Additional CSS class for each item
740
+ */
741
+ itemClassName?: string;
742
+ /**
743
+ * Custom class names for different parts of the accordion
744
+ */
745
+ classNames?: AccordionClassNames;
746
+ /**
747
+ * Reference to the accordion container
748
+ */
749
+ ref?: React.Ref<HTMLDivElement>;
351
750
  }
352
751
 
353
752
  declare const Accordion: React__default.NamedExoticComponent<AccordionProps>;
354
753
 
355
- type BadgeVariant = 'default' | 'solid' | 'outline' | 'soft';
356
- type BadgeColor = ComponentColor;
357
- type BadgeSize = Exclude<ComponentSize, 'xl'>;
358
- interface BadgeProps {
359
- children?: React.ReactNode;
360
- variant?: BadgeVariant;
361
- color?: BadgeColor;
362
- size?: BadgeSize;
363
- dot?: boolean;
364
- count?: number;
365
- showZero?: boolean;
366
- className?: string;
754
+ /**
755
+ * Size variants for Avatar component
756
+ */
757
+ type AvatarSize = ComponentSize;
758
+ /**
759
+ * Shape variants for Avatar component
760
+ */
761
+ type AvatarShape = "circle" | "square";
762
+ /**
763
+ * Status indicator states for Avatar
764
+ */
765
+ type AvatarStatus = "online" | "offline" | "away" | "busy";
766
+ /**
767
+ * Color variants for Avatar background (used with fallback/initials)
768
+ */
769
+ type AvatarColor = "default" | "primary" | "secondary" | "accent" | "success" | "error" | "warning" | "info";
770
+ interface AvatarClassNames {
771
+ root?: string;
772
+ image?: string;
773
+ fallback?: string;
774
+ status?: string;
367
775
  }
368
-
369
- declare const Badge: React__default.NamedExoticComponent<BadgeProps>;
370
-
371
- type BreadcrumbsColor = 'default' | 'primary' | 'secondary' | 'accent' | 'success' | 'error' | 'warning' | 'info';
372
- type BreadcrumbsSize = 'xs' | 'sm' | 'md' | 'lg';
373
- interface BreadcrumbItemData {
776
+ interface AvatarGroupClassNames {
777
+ root?: string;
778
+ overflow?: string;
779
+ }
780
+ interface AvatarProps extends React.HTMLAttributes<HTMLDivElement> {
374
781
  /**
375
- * Label to display for the breadcrumb item
782
+ * Image source URL
376
783
  */
377
- label: string;
784
+ src?: string;
378
785
  /**
379
- * URL for the breadcrumb link
786
+ * Alternative text for the image
380
787
  */
381
- href?: string;
788
+ alt?: string;
382
789
  /**
383
- * Click handler (used instead of href for custom navigation)
790
+ * Fallback text (initials) when image fails to load
791
+ * If not provided, will try to generate from `name` prop
384
792
  */
385
- onClick?: () => void;
793
+ fallback?: string;
386
794
  /**
387
- * Icon to display before the label
795
+ * User's name - used to auto-generate initials if fallback not provided
388
796
  */
389
- leftIcon?: ReactNode;
797
+ name?: string;
390
798
  /**
391
- * Icon to display after the label
799
+ * Avatar size
800
+ * @default 'md'
392
801
  */
393
- rightIcon?: ReactNode;
802
+ size?: AvatarSize;
394
803
  /**
395
- * Whether this item should be shown as an ellipsis dropdown
804
+ * Avatar shape
805
+ * @default 'circle'
396
806
  */
397
- ellipsis?: boolean;
807
+ shape?: AvatarShape;
398
808
  /**
399
- * Orientation of ellipsis icon
809
+ * Status indicator
400
810
  */
401
- ellipsisOrientation?: 'horizontal' | 'vertical';
811
+ status?: AvatarStatus;
402
812
  /**
403
- * Items to show in the ellipsis dropdown
813
+ * Background color for fallback/initials
814
+ * @default 'default'
404
815
  */
405
- ellipsisItems?: Array<{
406
- label: string;
407
- href?: string;
408
- onClick?: () => void;
409
- }>;
410
- }
411
- interface BreadcrumbProps {
816
+ color?: AvatarColor;
412
817
  /**
413
- * Breadcrumb items to render
818
+ * Show border/ring around avatar
819
+ * @default false
414
820
  */
415
- items?: BreadcrumbItemData[];
821
+ bordered?: boolean;
416
822
  /**
417
- * Manual children (alternative to items prop)
823
+ * Custom icon to show as fallback instead of initials
418
824
  */
419
- children?: ReactNode;
825
+ icon?: React.ReactNode;
420
826
  /**
421
- * Theme color
827
+ * Badge content (number, icon, or custom element)
828
+ * Displayed at top-right corner
422
829
  */
423
- color?: BreadcrumbsColor;
830
+ badge?: React.ReactNode;
424
831
  /**
425
- * Size variant
832
+ * Whether avatar is in disabled state
833
+ * @default false
426
834
  */
427
- size?: BreadcrumbsSize;
835
+ disabled?: boolean;
428
836
  /**
429
- * Custom separator element
837
+ * Callback when image fails to load
430
838
  */
431
- separator?: ReactNode;
839
+ onError?: (event: React.SyntheticEvent<HTMLImageElement>) => void;
432
840
  /**
433
841
  * Additional CSS class
434
842
  */
435
843
  className?: string;
844
+ /**
845
+ * Custom class names for component parts
846
+ */
847
+ classNames?: AvatarClassNames;
848
+ /**
849
+ * Reference to the avatar element
850
+ */
851
+ ref?: React.Ref<HTMLDivElement>;
852
+ }
853
+ interface AvatarGroupProps extends React.HTMLAttributes<HTMLDivElement> {
854
+ /**
855
+ * Avatar children
856
+ */
857
+ children: React.ReactNode;
858
+ /**
859
+ * Maximum number of avatars to display
860
+ */
861
+ max?: number;
862
+ /**
863
+ * Size for all avatars in group
864
+ * @default 'md'
865
+ */
866
+ size?: AvatarSize;
867
+ /**
868
+ * Shape for all avatars in group
869
+ * @default 'circle'
870
+ */
871
+ shape?: AvatarShape;
872
+ /**
873
+ * Show total count instead of remaining count
874
+ * @default false
875
+ */
876
+ showTotal?: boolean;
877
+ /**
878
+ * Custom render function for surplus count
879
+ */
880
+ renderSurplus?: (surplus: number) => React.ReactNode;
881
+ /**
882
+ * Whether avatars are bordered
883
+ * @default false
884
+ */
885
+ bordered?: boolean;
886
+ /**
887
+ * Additional CSS class
888
+ */
889
+ className?: string;
890
+ /**
891
+ * Custom class names for component parts
892
+ */
893
+ classNames?: AvatarGroupClassNames;
894
+ /**
895
+ * Reference to the group element
896
+ */
897
+ ref?: React.Ref<HTMLDivElement>;
898
+ }
899
+
900
+ /**
901
+ * Avatar Component
902
+ */
903
+ declare const Avatar: React__default.NamedExoticComponent<AvatarProps>;
904
+ /**
905
+ * AvatarGroup Component
906
+ */
907
+ declare const AvatarGroup: React__default.NamedExoticComponent<AvatarGroupProps>;
908
+
909
+ type BadgeVariant = 'default' | 'solid' | 'outline' | 'soft';
910
+ type BadgeColor = ComponentColor;
911
+ type BadgeSize = Exclude<ComponentSize, 'xl'>;
912
+ type BadgeShape = 'rounded' | 'pill' | 'circle';
913
+ type BadgePlacement = 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';
914
+ interface BadgeProps {
915
+ /**
916
+ * Content to wrap with the badge (when provided, badge floats over it)
917
+ */
918
+ children?: React.ReactNode;
919
+ /**
920
+ * Visual style variant
921
+ * @default 'solid'
922
+ */
923
+ variant?: BadgeVariant;
924
+ /**
925
+ * Theme color
926
+ * @default 'primary'
927
+ */
928
+ color?: BadgeColor;
929
+ /**
930
+ * Badge size
931
+ * @default 'sm'
932
+ */
933
+ size?: BadgeSize;
934
+ /**
935
+ * Badge shape
936
+ * @default 'rounded'
937
+ */
938
+ shape?: BadgeShape;
939
+ /**
940
+ * Display as a dot indicator instead of content
941
+ * @default false
942
+ */
943
+ dot?: boolean;
944
+ /**
945
+ * Numeric count to display
946
+ */
947
+ count?: number;
948
+ /**
949
+ * Maximum count to show before displaying overflow indicator
950
+ * @default 99
951
+ */
952
+ maxCount?: number;
953
+ /**
954
+ * Whether to show badge when count is 0
955
+ * @default false
956
+ */
957
+ showZero?: boolean;
958
+ /**
959
+ * Icon to display in the badge (before text)
960
+ */
961
+ icon?: React.ReactNode;
962
+ /**
963
+ * Placement of floating badge relative to children
964
+ * @default 'top-right'
965
+ */
966
+ placement?: BadgePlacement;
967
+ /**
968
+ * Custom offset for floating badge position [x, y] in pixels
969
+ * Positive values move towards center, negative values move away
970
+ */
971
+ offset?: [number, number];
972
+ /**
973
+ * Show pulsing animation (useful for notification indicators)
974
+ * @default false
975
+ */
976
+ processing?: boolean;
977
+ /**
978
+ * Hide the badge visually while keeping it in the DOM
979
+ * @default false
980
+ */
981
+ invisible?: boolean;
982
+ /**
983
+ * Force standalone rendering even when children are present
984
+ * @default false
985
+ */
986
+ standalone?: boolean;
987
+ /**
988
+ * Badge content (alternative to count, renders custom content)
989
+ */
990
+ content?: React.ReactNode;
991
+ /**
992
+ * Additional CSS class
993
+ */
994
+ className?: string;
995
+ /**
996
+ * Additional CSS class for the badge wrapper (when floating)
997
+ */
998
+ wrapperClassName?: string;
999
+ /**
1000
+ * Reference to the badge element
1001
+ */
1002
+ ref?: React.Ref<HTMLSpanElement>;
1003
+ }
1004
+
1005
+ /**
1006
+ * Badge Component
1007
+ *
1008
+ * A versatile badge component for displaying counts, status indicators, or labels.
1009
+ * Can be used standalone or as a floating indicator over other elements.
1010
+ *
1011
+ * @example
1012
+ * // Standalone badge
1013
+ * <Badge>New</Badge>
1014
+ *
1015
+ * @example
1016
+ * // Badge with count floating over an icon
1017
+ * <Badge count={5}>
1018
+ * <BellIcon />
1019
+ * </Badge>
1020
+ *
1021
+ * @example
1022
+ * // Dot indicator with pulse
1023
+ * <Badge dot processing color="success">
1024
+ * <Avatar />
1025
+ * </Badge>
1026
+ */
1027
+ declare const Badge: React__default.NamedExoticComponent<BadgeProps>;
1028
+
1029
+ type BreadcrumbsColor = 'default' | 'primary' | 'secondary' | 'accent' | 'success' | 'error' | 'warning' | 'info';
1030
+ type BreadcrumbsSize = 'xs' | 'sm' | 'md' | 'lg';
1031
+ interface BreadcrumbsClassNames {
1032
+ root?: string;
1033
+ list?: string;
1034
+ item?: string;
1035
+ link?: string;
1036
+ separator?: string;
1037
+ current?: string;
1038
+ }
1039
+ interface BreadcrumbItemData {
1040
+ /**
1041
+ * Label to display for the breadcrumb item
1042
+ */
1043
+ label: string;
1044
+ /**
1045
+ * URL for the breadcrumb link
1046
+ */
1047
+ href?: string;
1048
+ /**
1049
+ * Click handler (used instead of href for custom navigation)
1050
+ */
1051
+ onClick?: () => void;
1052
+ /**
1053
+ * Icon to display before the label
1054
+ */
1055
+ leftIcon?: ReactNode;
1056
+ /**
1057
+ * Icon to display after the label
1058
+ */
1059
+ rightIcon?: ReactNode;
1060
+ /**
1061
+ * Whether this item should be shown as an ellipsis dropdown
1062
+ */
1063
+ ellipsis?: boolean;
1064
+ /**
1065
+ * Orientation of ellipsis icon
1066
+ */
1067
+ ellipsisOrientation?: 'horizontal' | 'vertical';
1068
+ /**
1069
+ * Items to show in the ellipsis dropdown
1070
+ */
1071
+ ellipsisItems?: Array<{
1072
+ label: string;
1073
+ href?: string;
1074
+ onClick?: () => void;
1075
+ }>;
1076
+ }
1077
+ interface BreadcrumbProps {
1078
+ /**
1079
+ * Breadcrumb items to render
1080
+ */
1081
+ items?: BreadcrumbItemData[];
1082
+ /**
1083
+ * Manual children (alternative to items prop)
1084
+ */
1085
+ children?: ReactNode;
1086
+ /**
1087
+ * Theme color
1088
+ */
1089
+ color?: BreadcrumbsColor;
1090
+ /**
1091
+ * Size variant
1092
+ */
1093
+ size?: BreadcrumbsSize;
1094
+ /**
1095
+ * Custom separator element
1096
+ */
1097
+ separator?: ReactNode;
1098
+ /**
1099
+ * Additional CSS class
1100
+ */
1101
+ className?: string;
1102
+ /**
1103
+ * Custom class names for different elements
1104
+ */
1105
+ classNames?: BreadcrumbsClassNames;
436
1106
  }
437
1107
 
438
1108
  declare const Breadcrumb: React__default.NamedExoticComponent<BreadcrumbProps>;
439
1109
 
440
- type ButtonVariant = ComponentVariantExtended;
1110
+ type ButtonVariant = ComponentVariantExtended | "soft";
441
1111
  type ButtonColor = ButtonColor$1;
442
- type ButtonSize = 'xs' | 'sm' | 'md' | 'lg';
1112
+ type ButtonSize = "xs" | "sm" | "md" | "lg";
1113
+ type ButtonShape = "rounded" | "pill" | "square";
1114
+ interface ButtonClassNames {
1115
+ root?: string;
1116
+ icon?: string;
1117
+ spinner?: string;
1118
+ content?: string;
1119
+ }
443
1120
  interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
1121
+ /**
1122
+ * Visual style variant
1123
+ * @default 'solid'
1124
+ */
444
1125
  variant?: ButtonVariant;
1126
+ /**
1127
+ * Theme color
1128
+ * @default 'primary'
1129
+ */
445
1130
  color?: ButtonColor;
1131
+ /**
1132
+ * Button size
1133
+ * @default 'md'
1134
+ */
446
1135
  size?: ButtonSize;
1136
+ /**
1137
+ * Button shape
1138
+ * @default 'rounded'
1139
+ */
1140
+ shape?: ButtonShape;
1141
+ /**
1142
+ * Whether button is in loading state
1143
+ * @default false
1144
+ */
447
1145
  loading?: boolean;
1146
+ /**
1147
+ * Text to display while loading (replaces children)
1148
+ */
448
1149
  loadingText?: string;
1150
+ /**
1151
+ * Position of loading spinner when loadingText is provided
1152
+ * @default 'left'
1153
+ */
1154
+ loadingPosition?: "left" | "right";
1155
+ /**
1156
+ * Icon to display on the left side
1157
+ */
449
1158
  leftIcon?: React.ReactNode;
1159
+ /**
1160
+ * Icon to display on the right side
1161
+ */
450
1162
  rightIcon?: React.ReactNode;
1163
+ /**
1164
+ * Whether button takes full width of container
1165
+ * @default false
1166
+ */
451
1167
  fullWidth?: boolean;
1168
+ /**
1169
+ * Whether this is an icon-only button (square aspect ratio)
1170
+ * @default false
1171
+ */
1172
+ iconOnly?: boolean;
1173
+ /**
1174
+ * Custom class names for component parts
1175
+ */
1176
+ classNames?: ButtonClassNames;
1177
+ /**
1178
+ * Reference to the button element
1179
+ */
452
1180
  ref?: React.Ref<HTMLButtonElement>;
453
1181
  }
454
1182
 
455
1183
  declare const Button: React__default.NamedExoticComponent<ButtonProps>;
456
1184
 
1185
+ interface ButtonGroupClassNames {
1186
+ root?: string;
1187
+ button?: string;
1188
+ }
457
1189
  interface ButtonGroupProps extends React.HTMLAttributes<HTMLDivElement> {
458
1190
  /**
459
1191
  * Children elements (typically Button components)
@@ -461,45 +1193,310 @@ interface ButtonGroupProps extends React.HTMLAttributes<HTMLDivElement> {
461
1193
  children: React.ReactNode;
462
1194
  /**
463
1195
  * Display buttons vertically instead of horizontally
1196
+ * @default false
464
1197
  */
465
1198
  vertical?: boolean;
466
1199
  /**
467
- * Add spacing between buttons
1200
+ * Whether buttons are visually attached (connected) or separated
1201
+ * When true, buttons share borders and have no gap
1202
+ * When false, buttons are separated with a gap
1203
+ * @default true
1204
+ */
1205
+ attached?: boolean;
1206
+ /**
1207
+ * Gap size between buttons when not attached
1208
+ * @default 'md'
468
1209
  */
469
- spacing?: boolean;
1210
+ gap?: 'sm' | 'md' | 'lg';
470
1211
  /**
471
- * Make buttons take full width
1212
+ * Make buttons take full width of container
1213
+ * @default false
472
1214
  */
473
1215
  fullWidth?: boolean;
1216
+ /**
1217
+ * Size to apply to all child buttons
1218
+ * Individual button size props will override this
1219
+ */
1220
+ size?: ButtonSize;
1221
+ /**
1222
+ * Variant to apply to all child buttons
1223
+ * Individual button variant props will override this
1224
+ */
1225
+ variant?: ButtonVariant;
1226
+ /**
1227
+ * Color to apply to all child buttons
1228
+ * Individual button color props will override this
1229
+ */
1230
+ color?: ButtonColor;
1231
+ /**
1232
+ * Disable all buttons in the group
1233
+ * @default false
1234
+ */
1235
+ disabled?: boolean;
1236
+ /**
1237
+ * Accessible label for the button group
1238
+ */
1239
+ 'aria-label'?: string;
474
1240
  /**
475
1241
  * Additional CSS class
476
1242
  */
477
1243
  className?: string;
1244
+ /**
1245
+ * Custom class names for component parts
1246
+ */
1247
+ classNames?: ButtonGroupClassNames;
478
1248
  /**
479
1249
  * Reference to the div element
480
1250
  */
481
1251
  ref?: React.Ref<HTMLDivElement>;
482
1252
  }
483
1253
 
1254
+ /**
1255
+ * ButtonGroup Component
1256
+ *
1257
+ * Groups multiple buttons together with consistent styling and spacing.
1258
+ * Can propagate common props (size, variant, color, disabled) to all child buttons.
1259
+ *
1260
+ * @example
1261
+ * // Basic horizontal group
1262
+ * <ButtonGroup>
1263
+ * <Button>Save</Button>
1264
+ * <Button>Cancel</Button>
1265
+ * </ButtonGroup>
1266
+ *
1267
+ * @example
1268
+ * // Vertical group with uniform styling
1269
+ * <ButtonGroup vertical variant="outline" size="sm">
1270
+ * <Button>Option 1</Button>
1271
+ * <Button>Option 2</Button>
1272
+ * </ButtonGroup>
1273
+ *
1274
+ * @example
1275
+ * // Separated buttons with gap
1276
+ * <ButtonGroup attached={false} gap="md">
1277
+ * <Button>A</Button>
1278
+ * <Button>B</Button>
1279
+ * <Button>C</Button>
1280
+ * </ButtonGroup>
1281
+ */
484
1282
  declare const ButtonGroup: React__default.NamedExoticComponent<ButtonGroupProps>;
485
1283
 
486
- declare const cardVariants: (props?: ({
487
- variant?: "default" | "ghost" | "destructive" | null | undefined;
488
- } & class_variance_authority_types.ClassProp) | undefined) => string;
489
- interface CardProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps<typeof cardVariants> {
490
- ref?: React$1.Ref<HTMLDivElement>;
1284
+ type CardVariant = 'default' | 'solid' | 'outline' | 'soft' | 'ghost' | 'elevated';
1285
+ type CardColor = 'default' | 'primary' | 'secondary' | 'accent' | 'success' | 'error' | 'warning' | 'info';
1286
+ type CardSize = 'xs' | 'sm' | 'md' | 'lg';
1287
+ type CardShadow = 'none' | 'sm' | 'md' | 'lg';
1288
+ interface CardClassNames {
1289
+ root?: string;
1290
+ header?: string;
1291
+ title?: string;
1292
+ description?: string;
1293
+ content?: string;
1294
+ footer?: string;
1295
+ action?: string;
1296
+ image?: string;
1297
+ }
1298
+ interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
1299
+ /**
1300
+ * Visual style variant
1301
+ * @default 'default'
1302
+ */
1303
+ variant?: CardVariant;
1304
+ /**
1305
+ * Semantic color for the card border/accent
1306
+ * @default 'default'
1307
+ */
1308
+ color?: CardColor;
1309
+ /**
1310
+ * Card size affecting padding
1311
+ * @default 'md'
1312
+ */
1313
+ size?: CardSize;
1314
+ /**
1315
+ * Shadow/elevation level
1316
+ * @default 'none'
1317
+ */
1318
+ shadow?: CardShadow;
1319
+ /**
1320
+ * Show hover effect on the card
1321
+ * @default false
1322
+ */
1323
+ hoverable?: boolean;
1324
+ /**
1325
+ * Make card clickable with proper accessibility
1326
+ * When true, card becomes a button element
1327
+ * @default false
1328
+ */
1329
+ clickable?: boolean;
1330
+ /**
1331
+ * Show border around the card
1332
+ * @default true
1333
+ */
1334
+ bordered?: boolean;
1335
+ /**
1336
+ * Show loading skeleton state
1337
+ * @default false
1338
+ */
1339
+ loading?: boolean;
1340
+ /**
1341
+ * Custom class names for card sub-components
1342
+ */
1343
+ classNames?: CardClassNames;
1344
+ /**
1345
+ * Reference to the card element
1346
+ */
1347
+ ref?: React.Ref<HTMLDivElement>;
1348
+ }
1349
+ interface CardHeaderProps extends React.HTMLAttributes<HTMLDivElement> {
1350
+ /**
1351
+ * Reference to the header element
1352
+ */
1353
+ ref?: React.Ref<HTMLDivElement>;
1354
+ }
1355
+ interface CardTitleProps extends React.HTMLAttributes<HTMLHeadingElement> {
1356
+ /**
1357
+ * HTML heading level
1358
+ * @default 3
1359
+ */
1360
+ as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
1361
+ /**
1362
+ * Reference to the title element
1363
+ */
1364
+ ref?: React.Ref<HTMLHeadingElement>;
1365
+ }
1366
+ interface CardDescriptionProps extends React.HTMLAttributes<HTMLParagraphElement> {
1367
+ /**
1368
+ * Reference to the description element
1369
+ */
1370
+ ref?: React.Ref<HTMLParagraphElement>;
1371
+ }
1372
+ interface CardContentProps extends React.HTMLAttributes<HTMLDivElement> {
1373
+ /**
1374
+ * Reference to the content element
1375
+ */
1376
+ ref?: React.Ref<HTMLDivElement>;
1377
+ }
1378
+ interface CardFooterProps extends React.HTMLAttributes<HTMLDivElement> {
1379
+ /**
1380
+ * Reference to the footer element
1381
+ */
1382
+ ref?: React.Ref<HTMLDivElement>;
1383
+ }
1384
+ interface CardActionProps extends React.HTMLAttributes<HTMLDivElement> {
1385
+ /**
1386
+ * Reference to the action element
1387
+ */
1388
+ ref?: React.Ref<HTMLDivElement>;
1389
+ }
1390
+ interface CardImageProps extends React.ImgHTMLAttributes<HTMLImageElement> {
1391
+ /**
1392
+ * Image source URL
1393
+ */
1394
+ src: string;
1395
+ /**
1396
+ * Alt text for accessibility
1397
+ */
1398
+ alt: string;
1399
+ /**
1400
+ * Position of the image in the card
1401
+ * @default 'top'
1402
+ */
1403
+ position?: 'top' | 'bottom';
1404
+ /**
1405
+ * Aspect ratio of the image container
1406
+ * @default 'video' (16:9)
1407
+ */
1408
+ aspectRatio?: 'square' | 'video' | 'wide' | 'auto';
1409
+ /**
1410
+ * How the image should fit its container
1411
+ * @default 'cover'
1412
+ */
1413
+ objectFit?: 'cover' | 'contain' | 'fill' | 'none';
1414
+ /**
1415
+ * Reference to the image element
1416
+ */
1417
+ ref?: React.Ref<HTMLImageElement>;
491
1418
  }
492
- declare const Card: React$1.NamedExoticComponent<CardProps>;
493
1419
 
1420
+ declare const CardWithSubComponents: React__default.NamedExoticComponent<CardProps> & {
1421
+ Header: React__default.NamedExoticComponent<CardHeaderProps>;
1422
+ Footer: React__default.NamedExoticComponent<CardFooterProps>;
1423
+ Title: React__default.NamedExoticComponent<CardTitleProps>;
1424
+ Description: React__default.NamedExoticComponent<CardDescriptionProps>;
1425
+ Content: React__default.NamedExoticComponent<CardContentProps>;
1426
+ Action: React__default.NamedExoticComponent<CardActionProps>;
1427
+ Image: React__default.NamedExoticComponent<CardImageProps>;
1428
+ };
1429
+
1430
+ interface CarouselClassNames {
1431
+ /**
1432
+ * Class name for the root container
1433
+ */
1434
+ root?: string;
1435
+ /**
1436
+ * Class name for the wrapper element
1437
+ */
1438
+ wrapper?: string;
1439
+ /**
1440
+ * Class name for individual slides
1441
+ */
1442
+ slide?: string;
1443
+ /**
1444
+ * Class name for the navigation container
1445
+ */
1446
+ navigation?: string;
1447
+ /**
1448
+ * Class name for navigation buttons
1449
+ */
1450
+ navButton?: string;
1451
+ /**
1452
+ * Class name for the pagination container
1453
+ */
1454
+ pagination?: string;
1455
+ /**
1456
+ * Class name for pagination dots
1457
+ */
1458
+ dot?: string;
1459
+ /**
1460
+ * Class name for active pagination dot
1461
+ */
1462
+ dotActive?: string;
1463
+ }
494
1464
  interface CarouselProps extends SwiperProps {
495
1465
  withArrows?: boolean;
496
1466
  withPagination?: boolean;
497
- children: React.ReactNode;
1467
+ children: React__default.ReactNode;
1468
+ /**
1469
+ * ClassNames for component parts
1470
+ */
1471
+ classNames?: CarouselClassNames;
498
1472
  }
499
- declare function Carousel({ withArrows, withPagination, children, loop, className, modules, ...props }: CarouselProps): react_jsx_runtime.JSX.Element;
1473
+ declare const Carousel: React__default.NamedExoticComponent<CarouselProps>;
500
1474
 
501
1475
  type CascaderSize = 'xs' | 'sm' | 'md' | 'lg';
502
- type CascaderVariant = 'default' | 'primary' | 'secondary' | 'accent' | 'success' | 'error' | 'warning' | 'info';
1476
+ type CascaderExpandTrigger = 'click' | 'hover';
1477
+ type CascaderPlacement = 'bottomLeft' | 'bottomRight' | 'topLeft' | 'topRight';
1478
+ interface CascaderClassNames {
1479
+ /**
1480
+ * Class for root container
1481
+ */
1482
+ root?: string;
1483
+ /**
1484
+ * Class for trigger element
1485
+ */
1486
+ trigger?: string;
1487
+ /**
1488
+ * Class for dropdown container
1489
+ */
1490
+ dropdown?: string;
1491
+ /**
1492
+ * Class for menu panel
1493
+ */
1494
+ menu?: string;
1495
+ /**
1496
+ * Class for individual option
1497
+ */
1498
+ option?: string;
1499
+ }
503
1500
  interface CascaderOption {
504
1501
  /**
505
1502
  * Display label for the option
@@ -517,6 +1514,16 @@ interface CascaderOption {
517
1514
  * Whether the option is disabled
518
1515
  */
519
1516
  disabled?: boolean;
1517
+ /**
1518
+ * Whether this node is a leaf (no children to load)
1519
+ * Used with loadData for async loading
1520
+ */
1521
+ isLeaf?: boolean;
1522
+ /**
1523
+ * Whether children are currently loading
1524
+ * @internal
1525
+ */
1526
+ loading?: boolean;
520
1527
  }
521
1528
  interface CascaderProps {
522
1529
  /**
@@ -535,8 +1542,13 @@ interface CascaderProps {
535
1542
  * Callback when value changes
536
1543
  */
537
1544
  onChange?: (value: string[] | string[][], selectedOptions: CascaderOption[] | CascaderOption[][]) => void;
1545
+ /**
1546
+ * Callback when selection is complete (after closing in single mode)
1547
+ */
1548
+ onSelect?: (value: string[], selectedOptions: CascaderOption[]) => void;
538
1549
  /**
539
1550
  * Placeholder text
1551
+ * @default 'Please select'
540
1552
  */
541
1553
  placeholder?: string;
542
1554
  /**
@@ -549,30 +1561,32 @@ interface CascaderProps {
549
1561
  helperText?: string;
550
1562
  /**
551
1563
  * Position of validation/helper messages
1564
+ * @default 'bottom'
552
1565
  */
553
1566
  messagePosition?: MessagePosition;
554
1567
  /**
555
1568
  * Theme color
1569
+ * @default 'default'
556
1570
  */
557
1571
  color?: ComponentColor;
558
1572
  /**
559
- * Visual variant
560
- */
561
- variant?: CascaderVariant;
562
- /**
563
- * Size variant (cascader only supports xs, sm, md, lg)
1573
+ * Size variant
1574
+ * @default 'md'
564
1575
  */
565
1576
  size?: CascaderSize;
566
1577
  /**
567
- * Dropdown position relative to trigger
1578
+ * Dropdown placement relative to trigger
1579
+ * @default 'bottomLeft'
568
1580
  */
569
- position?: 'left' | 'right';
1581
+ placement?: CascaderPlacement;
570
1582
  /**
571
1583
  * Whether cascader is disabled
1584
+ * @default false
572
1585
  */
573
1586
  disabled?: boolean;
574
1587
  /**
575
1588
  * Whether cascader is in loading state
1589
+ * @default false
576
1590
  */
577
1591
  loading?: boolean;
578
1592
  /**
@@ -593,38 +1607,122 @@ interface CascaderProps {
593
1607
  success?: string;
594
1608
  /**
595
1609
  * Whether cascader should take full width
1610
+ * @default true
596
1611
  */
597
1612
  fullWidth?: boolean;
598
1613
  /**
599
- * Whether to expand on hover instead of click
1614
+ * How to expand child options
1615
+ * @default 'click'
600
1616
  */
601
- hover?: boolean;
1617
+ expandTrigger?: CascaderExpandTrigger;
602
1618
  /**
603
1619
  * Enable multiple selection mode
1620
+ * @default false
604
1621
  */
605
1622
  multiple?: boolean;
606
1623
  /**
607
- * Maximum number of chips visible in multiple mode
1624
+ * Maximum number of tags visible in multiple mode
1625
+ * @default 3
608
1626
  */
609
- maxChipsVisible?: number;
1627
+ maxTagCount?: number;
1628
+ /**
1629
+ * Show clear button when value is selected
1630
+ * @default true
1631
+ */
1632
+ clearable?: boolean;
1633
+ /**
1634
+ * Show full path in selection display
1635
+ * @default true
1636
+ */
1637
+ showPath?: boolean;
1638
+ /**
1639
+ * Path separator for display
1640
+ * @default ' / '
1641
+ */
1642
+ pathSeparator?: string;
1643
+ /**
1644
+ * Allow selecting parent nodes (not just leaves)
1645
+ * @default false
1646
+ */
1647
+ changeOnSelect?: boolean;
1648
+ /**
1649
+ * Load data asynchronously
1650
+ * Called when expanding a node that has no children and isLeaf is not true
1651
+ */
1652
+ loadData?: (selectedOptions: CascaderOption[]) => Promise<void>;
610
1653
  /**
611
1654
  * Custom render function for display value
612
1655
  */
613
- displayRender?: (labels: string[] | string[][]) => React.ReactNode;
1656
+ displayRender?: (labels: string[] | string[][], selectedOptions?: CascaderOption[] | CascaderOption[][]) => React.ReactNode;
1657
+ /**
1658
+ * Custom render function for tags in multiple mode
1659
+ */
1660
+ tagRender?: (props: {
1661
+ label: string;
1662
+ value: string[];
1663
+ closable: boolean;
1664
+ onClose: () => void;
1665
+ }) => React.ReactNode;
1666
+ /**
1667
+ * Content to show when options array is empty
1668
+ * @default 'No options'
1669
+ */
1670
+ emptyContent?: React.ReactNode;
614
1671
  /**
615
1672
  * Additional CSS class
616
1673
  */
617
1674
  className?: string;
1675
+ /**
1676
+ * Custom classes for different parts of the cascader
1677
+ */
1678
+ classNames?: CascaderClassNames;
618
1679
  /**
619
1680
  * Whether the field is required
1681
+ * @default false
620
1682
  */
621
1683
  required?: boolean;
1684
+ /**
1685
+ * Reference to the cascader container element
1686
+ */
1687
+ ref?: React.Ref<HTMLDivElement>;
1688
+ /**
1689
+ * Callback when dropdown open state changes
1690
+ */
1691
+ onOpenChange?: (open: boolean) => void;
622
1692
  }
623
1693
 
1694
+ /**
1695
+ * Cascader Component
1696
+ *
1697
+ * A hierarchical selection component for selecting from nested options.
1698
+ *
1699
+ * @example
1700
+ * // Basic usage
1701
+ * <Cascader
1702
+ * options={options}
1703
+ * placeholder="Select location"
1704
+ * onChange={(value, options) => console.log(value)}
1705
+ * />
1706
+ *
1707
+ * @example
1708
+ * // Multiple selection
1709
+ * <Cascader
1710
+ * options={options}
1711
+ * multiple
1712
+ * placeholder="Select categories"
1713
+ * />
1714
+ */
624
1715
  declare const Cascader: React__default.NamedExoticComponent<CascaderProps>;
625
1716
 
626
- type CheckboxColor = 'primary' | 'secondary' | 'accent' | 'success' | 'error' | 'warning' | 'info';
1717
+ type CheckboxColor = ButtonColor$1;
627
1718
  type CheckboxSize = 'xs' | 'sm' | 'md' | 'lg';
1719
+ interface CheckboxClassNames {
1720
+ root?: string;
1721
+ checkbox?: string;
1722
+ indicator?: string;
1723
+ label?: string;
1724
+ description?: string;
1725
+ }
628
1726
  interface CheckboxProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'> {
629
1727
  color?: CheckboxColor;
630
1728
  size?: CheckboxSize;
@@ -634,10 +1732,19 @@ interface CheckboxProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>
634
1732
  indeterminate?: boolean;
635
1733
  ref?: React.Ref<HTMLInputElement>;
636
1734
  labelClassName?: string;
1735
+ classNames?: CheckboxClassNames;
637
1736
  }
638
1737
 
639
1738
  declare const Checkbox: React__default.NamedExoticComponent<CheckboxProps>;
640
1739
 
1740
+ interface CheckboxGroupClassNames {
1741
+ root?: string;
1742
+ label?: string;
1743
+ group?: string;
1744
+ item?: string;
1745
+ helper?: string;
1746
+ error?: string;
1747
+ }
641
1748
  interface CheckboxGroupProps extends React.HTMLAttributes<HTMLDivElement> {
642
1749
  /**
643
1750
  * Children elements (typically Checkbox components)
@@ -663,6 +1770,10 @@ interface CheckboxGroupProps extends React.HTMLAttributes<HTMLDivElement> {
663
1770
  * Additional CSS class
664
1771
  */
665
1772
  className?: string;
1773
+ /**
1774
+ * Custom class names for different parts of the component
1775
+ */
1776
+ classNames?: CheckboxGroupClassNames;
666
1777
  /**
667
1778
  * Reference to the div element
668
1779
  */
@@ -673,6 +1784,20 @@ declare const CheckboxGroup: React__default.NamedExoticComponent<CheckboxGroupPr
673
1784
 
674
1785
  type ClipboardVariant = 'default' | 'solid' | 'soft';
675
1786
  type ClipboardSize = 'xs' | 'sm' | 'md' | 'lg';
1787
+ interface ClipboardClassNames {
1788
+ /**
1789
+ * Class for root container
1790
+ */
1791
+ root?: string;
1792
+ /**
1793
+ * Class for input display element
1794
+ */
1795
+ input?: string;
1796
+ /**
1797
+ * Class for copy button/icon
1798
+ */
1799
+ button?: string;
1800
+ }
676
1801
  interface ClipboardProps {
677
1802
  /**
678
1803
  * Text value to copy to clipboard
@@ -698,6 +1823,11 @@ interface ClipboardProps {
698
1823
  * Duration to show success icon (in milliseconds)
699
1824
  */
700
1825
  successDuration?: number;
1826
+ /**
1827
+ * Whether the clipboard is disabled
1828
+ * @default false
1829
+ */
1830
+ disabled?: boolean;
701
1831
  /**
702
1832
  * Callback when text is copied
703
1833
  */
@@ -706,12 +1836,26 @@ interface ClipboardProps {
706
1836
  * Additional CSS class
707
1837
  */
708
1838
  className?: string;
1839
+ /**
1840
+ * Custom classes for different parts of the clipboard
1841
+ */
1842
+ classNames?: ClipboardClassNames;
1843
+ /**
1844
+ * Reference to the element
1845
+ */
1846
+ ref?: React.Ref<HTMLDivElement>;
709
1847
  }
710
1848
 
711
1849
  declare const Clipboard: React__default.NamedExoticComponent<ClipboardProps>;
712
1850
 
713
1851
  type CollapseVariant = 'default' | 'solid' | 'soft';
714
1852
  type CollapseSize = 'xs' | 'sm' | 'md' | 'lg';
1853
+ interface CollapseClassNames {
1854
+ root?: string;
1855
+ header?: string;
1856
+ content?: string;
1857
+ icon?: string;
1858
+ }
715
1859
  interface CollapseProps {
716
1860
  /**
717
1861
  * Title displayed in the header
@@ -732,30 +1876,164 @@ interface CollapseProps {
732
1876
  /**
733
1877
  * Visual style variant
734
1878
  */
735
- variant?: CollapseVariant;
1879
+ variant?: CollapseVariant;
1880
+ /**
1881
+ * Default open state (uncontrolled)
1882
+ */
1883
+ defaultOpen?: boolean;
1884
+ /**
1885
+ * Controlled open state
1886
+ */
1887
+ open?: boolean;
1888
+ /**
1889
+ * Callback when open state changes
1890
+ */
1891
+ onChange?: (open: boolean) => void;
1892
+ /**
1893
+ * Whether collapse is disabled
1894
+ */
1895
+ disabled?: boolean;
1896
+ /**
1897
+ * Additional CSS class
1898
+ */
1899
+ className?: string;
1900
+ /**
1901
+ * Custom class names for different parts of the collapse
1902
+ */
1903
+ classNames?: CollapseClassNames;
1904
+ /**
1905
+ * Reference to the element
1906
+ */
1907
+ ref?: React.Ref<HTMLDivElement>;
1908
+ }
1909
+
1910
+ declare const Collapse: React__default.NamedExoticComponent<CollapseProps>;
1911
+
1912
+ /**
1913
+ * ClassNames for ContextMenu component parts
1914
+ */
1915
+ interface ContextMenuClassNames {
1916
+ /**
1917
+ * Class name for the root container
1918
+ */
1919
+ root?: string;
1920
+ /**
1921
+ * Class name for the menu content
1922
+ */
1923
+ content?: string;
736
1924
  /**
737
- * Default open state (uncontrolled)
1925
+ * Class name for individual menu items
738
1926
  */
739
- defaultOpen?: boolean;
1927
+ item?: string;
740
1928
  /**
741
- * Controlled open state
1929
+ * Class name for item icons
742
1930
  */
743
- open?: boolean;
1931
+ itemIcon?: string;
744
1932
  /**
745
- * Callback when open state changes
1933
+ * Class name for item labels
746
1934
  */
747
- onChange?: (open: boolean) => void;
1935
+ itemLabel?: string;
748
1936
  /**
749
- * Whether collapse is disabled
1937
+ * Class name for dividers
750
1938
  */
751
- disabled?: boolean;
1939
+ divider?: string;
752
1940
  /**
753
- * Additional CSS class
1941
+ * Class name for submenu containers
754
1942
  */
1943
+ submenu?: string;
1944
+ }
1945
+ /**
1946
+ * Context menu item
1947
+ */
1948
+ interface ContextMenuItem {
1949
+ /** Unique item key */
1950
+ key: string;
1951
+ /** Item text (required if not separator) */
1952
+ label?: React__default.ReactNode;
1953
+ /** Icon displayed to the left of the text */
1954
+ icon?: React__default.ReactNode;
1955
+ /** Keyboard shortcut (displayed on the right) */
1956
+ shortcut?: string;
1957
+ /** Whether the item is disabled */
1958
+ disabled?: boolean;
1959
+ /** Click handler */
1960
+ onClick?: () => void;
1961
+ /** Nested items (submenu) */
1962
+ children?: ContextMenuItem[];
1963
+ /** Separator (if true, other properties are ignored) */
1964
+ separator?: boolean;
1965
+ }
1966
+ /**
1967
+ * ContextMenu component props
1968
+ */
1969
+ interface ContextMenuProps {
1970
+ /** Child elements that will trigger the context menu */
1971
+ children: React__default.ReactNode;
1972
+ /** Menu items */
1973
+ items: ContextMenuItem[];
1974
+ /** Additional CSS class */
755
1975
  className?: string;
1976
+ /** ClassNames for component parts */
1977
+ classNames?: ContextMenuClassNames;
1978
+ /** Whether to disable the context menu */
1979
+ disabled?: boolean;
1980
+ /** Handler called when menu opens or closes */
1981
+ onOpenChange?: (open: boolean) => void;
1982
+ /** Controlled open state */
1983
+ open?: boolean;
756
1984
  }
757
1985
 
758
- declare const Collapse: React__default.NamedExoticComponent<CollapseProps>;
1986
+ /**
1987
+ * ContextMenu component based on Popover
1988
+ *
1989
+ * A context menu that opens on right-click.
1990
+ * Uses @radix-ui/react-popover for positioning and state management.
1991
+ * Supports nested submenus, separators, disabled items, and keyboard navigation.
1992
+ *
1993
+ * @example
1994
+ * ```tsx
1995
+ * import ContextMenu from '@mdigital_ui/ui/context-menu'
1996
+ * import { Copy, Paste, Trash } from 'lucide-react'
1997
+ *
1998
+ * function MyComponent() {
1999
+ * return (
2000
+ * <ContextMenu
2001
+ * items={[
2002
+ * {
2003
+ * key: 'copy',
2004
+ * label: 'Copy',
2005
+ * icon: <Copy />,
2006
+ * shortcut: 'Ctrl+C',
2007
+ * onClick: () => console.log('Copy'),
2008
+ * },
2009
+ * {
2010
+ * key: 'paste',
2011
+ * label: 'Paste',
2012
+ * icon: <Paste />,
2013
+ * shortcut: 'Ctrl+V',
2014
+ * onClick: () => console.log('Paste'),
2015
+ * },
2016
+ * { key: 'sep1', separator: true },
2017
+ * {
2018
+ * key: 'delete',
2019
+ * label: 'Delete',
2020
+ * icon: <Trash />,
2021
+ * onClick: () => console.log('Delete'),
2022
+ * },
2023
+ * ]}
2024
+ * >
2025
+ * <div className="p-4 border">
2026
+ * Right click me!
2027
+ * </div>
2028
+ * </ContextMenu>
2029
+ * )
2030
+ * }
2031
+ * ```
2032
+ */
2033
+ declare const ContextMenu: {
2034
+ ({ children, items, className, classNames, disabled, onOpenChange, open: controlledOpen, }: ContextMenuProps): react_jsx_runtime.JSX.Element;
2035
+ displayName: string;
2036
+ };
759
2037
 
760
2038
  interface DescriptionsItem {
761
2039
  key: string;
@@ -763,6 +2041,12 @@ interface DescriptionsItem {
763
2041
  children: React.ReactNode;
764
2042
  span?: number;
765
2043
  }
2044
+ interface DescriptionsClassNames {
2045
+ root?: string;
2046
+ item?: string;
2047
+ label?: string;
2048
+ content?: string;
2049
+ }
766
2050
  interface DescriptionsProps {
767
2051
  items: DescriptionsItem[];
768
2052
  column?: number;
@@ -772,6 +2056,7 @@ interface DescriptionsProps {
772
2056
  bordered?: boolean;
773
2057
  rounded?: boolean;
774
2058
  className?: string;
2059
+ classNames?: DescriptionsClassNames;
775
2060
  }
776
2061
 
777
2062
  declare const Descriptions: React__default.NamedExoticComponent<DescriptionsProps>;
@@ -860,6 +2145,36 @@ interface DividerProps extends Omit<React.HTMLAttributes<HTMLElement>, 'children
860
2145
  declare const Divider: React__default.NamedExoticComponent<DividerProps>;
861
2146
 
862
2147
  type DropdownSize = 'xs' | 'sm' | 'md' | 'lg';
2148
+ interface DropdownClassNames {
2149
+ /**
2150
+ * Class name for the root container
2151
+ */
2152
+ root?: string;
2153
+ /**
2154
+ * Class name for the trigger element
2155
+ */
2156
+ trigger?: string;
2157
+ /**
2158
+ * Class name for the menu container
2159
+ */
2160
+ menu?: string;
2161
+ /**
2162
+ * Class name for individual menu items
2163
+ */
2164
+ item?: string;
2165
+ /**
2166
+ * Class name for item icons
2167
+ */
2168
+ itemIcon?: string;
2169
+ /**
2170
+ * Class name for item labels
2171
+ */
2172
+ itemLabel?: string;
2173
+ /**
2174
+ * Class name for dividers
2175
+ */
2176
+ divider?: string;
2177
+ }
863
2178
  interface DropdownItem {
864
2179
  /**
865
2180
  * Display label for the item
@@ -933,6 +2248,10 @@ interface DropdownProps {
933
2248
  * Additional CSS class
934
2249
  */
935
2250
  className?: string;
2251
+ /**
2252
+ * ClassNames for component parts
2253
+ */
2254
+ classNames?: DropdownClassNames;
936
2255
  /**
937
2256
  * Callback when an item is clicked
938
2257
  */
@@ -942,6 +2261,28 @@ interface DropdownProps {
942
2261
  declare const Dropdown: React__default.NamedExoticComponent<DropdownProps>;
943
2262
 
944
2263
  type EmptySize = 'xs' | 'sm' | 'md' | 'lg';
2264
+ interface EmptyClassNames {
2265
+ /**
2266
+ * Class name for the root container
2267
+ */
2268
+ root?: string;
2269
+ /**
2270
+ * Class name for the icon element
2271
+ */
2272
+ icon?: string;
2273
+ /**
2274
+ * Class name for the title element
2275
+ */
2276
+ title?: string;
2277
+ /**
2278
+ * Class name for the description element
2279
+ */
2280
+ description?: string;
2281
+ /**
2282
+ * Class name for the action container
2283
+ */
2284
+ action?: string;
2285
+ }
945
2286
  interface EmptyProps {
946
2287
  /**
947
2288
  * Custom icon to display
@@ -975,6 +2316,10 @@ interface EmptyProps {
975
2316
  * Additional CSS class
976
2317
  */
977
2318
  className?: string;
2319
+ /**
2320
+ * ClassNames for component parts
2321
+ */
2322
+ classNames?: EmptyClassNames;
978
2323
  }
979
2324
 
980
2325
  declare const Empty: React__default.NamedExoticComponent<EmptyProps>;
@@ -993,7 +2338,7 @@ interface FetchingOverlayProps extends SpinnerProps {
993
2338
  fullscreen?: boolean;
994
2339
  backdropOpacity?: number;
995
2340
  }
996
- declare const FetchingOverlay: FC<FetchingOverlayProps>;
2341
+ declare const FetchingOverlay: React__default.NamedExoticComponent<FetchingOverlayProps>;
997
2342
 
998
2343
  type GridGap = 'xs' | 'sm' | 'md' | 'lg';
999
2344
  type GridColumns = 1 | 2 | 3 | 4 | 5 | 6;
@@ -1018,6 +2363,24 @@ interface GridProps {
1018
2363
 
1019
2364
  declare const Grid: React__default.NamedExoticComponent<GridProps>;
1020
2365
 
2366
+ interface ImageClassNames {
2367
+ /**
2368
+ * Class name for the root container
2369
+ */
2370
+ root?: string;
2371
+ /**
2372
+ * Class name for the image element
2373
+ */
2374
+ image?: string;
2375
+ /**
2376
+ * Class name for the placeholder element
2377
+ */
2378
+ placeholder?: string;
2379
+ /**
2380
+ * Class name for the error state
2381
+ */
2382
+ error?: string;
2383
+ }
1021
2384
  interface ImageProps extends React.ImgHTMLAttributes<HTMLImageElement> {
1022
2385
  /**
1023
2386
  * Image source URL
@@ -1047,17 +2410,31 @@ interface ImageProps extends React.ImgHTMLAttributes<HTMLImageElement> {
1047
2410
  * Image height
1048
2411
  */
1049
2412
  height?: number;
2413
+ /**
2414
+ * ClassNames for component parts
2415
+ */
2416
+ classNames?: ImageClassNames;
1050
2417
  }
1051
2418
 
1052
- declare function Image({ src, withBlur, className, fetchPriority, ...props }: ImageProps): react_jsx_runtime.JSX.Element;
2419
+ declare const Image: React__default.NamedExoticComponent<ImageProps>;
1053
2420
 
1054
2421
  type InputVariant = 'outline' | 'filled';
1055
2422
  type InputSize = 'xs' | 'sm' | 'md' | 'lg';
2423
+ interface InputClassNames {
2424
+ root?: string;
2425
+ wrapper?: string;
2426
+ label?: string;
2427
+ input?: string;
2428
+ leftIcon?: string;
2429
+ rightIcon?: string;
2430
+ clearButton?: string;
2431
+ helper?: string;
2432
+ error?: string;
2433
+ }
1056
2434
  interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>, ValidationMessages, Partial<IconProps>, Partial<LoadingProps>, Partial<FullWidthProps> {
1057
2435
  variant?: InputVariant;
1058
2436
  size?: InputSize;
1059
2437
  label?: string;
1060
- floatingLabel?: boolean;
1061
2438
  messagePosition?: MessagePosition;
1062
2439
  clearable?: boolean;
1063
2440
  onClear?: () => void;
@@ -1065,24 +2442,80 @@ interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, '
1065
2442
  showCount?: boolean;
1066
2443
  ref?: React.Ref<HTMLInputElement>;
1067
2444
  wrapperClassName?: string;
2445
+ classNames?: InputClassNames;
1068
2446
  }
1069
2447
 
1070
2448
  declare const Input: React__default.NamedExoticComponent<InputProps>;
1071
2449
 
2450
+ type InputGroupSize = 'xs' | 'sm' | 'md' | 'lg';
2451
+ interface InputGroupClassNames {
2452
+ /**
2453
+ * Class for root container
2454
+ */
2455
+ root?: string;
2456
+ /**
2457
+ * Class for addon elements
2458
+ */
2459
+ addon?: string;
2460
+ /**
2461
+ * Class for input element
2462
+ */
2463
+ input?: string;
2464
+ }
1072
2465
  interface InputGroupProps {
1073
2466
  /**
1074
- * Children elements (typically InputGroupInput and InputGroupAddon)
2467
+ * Children elements (InputGroupAddon and InputGroupInput)
2468
+ * Order determines layout - addons and input flow naturally with flexbox
1075
2469
  */
1076
2470
  children: React.ReactNode;
2471
+ /**
2472
+ * Size of the input group - affects height, padding, and text size
2473
+ * @default 'md'
2474
+ */
2475
+ size?: InputGroupSize;
1077
2476
  /**
1078
2477
  * Additional CSS class
1079
2478
  */
1080
2479
  className?: string;
2480
+ /**
2481
+ * Custom classes for different parts of the input group
2482
+ */
2483
+ classNames?: InputGroupClassNames;
1081
2484
  }
1082
2485
 
1083
- declare const InputGroup: React$1.NamedExoticComponent<InputGroupProps>;
2486
+ declare const InputGroup: React__default.NamedExoticComponent<InputGroupProps>;
1084
2487
 
1085
2488
  type InputOTPSize = 'xs' | 'sm' | 'md' | 'lg';
2489
+ interface InputOTPClassNames {
2490
+ /**
2491
+ * Class for root container
2492
+ */
2493
+ root?: string;
2494
+ /**
2495
+ * Class for wrapper containing OTP inputs
2496
+ */
2497
+ wrapper?: string;
2498
+ /**
2499
+ * Class for label element
2500
+ */
2501
+ label?: string;
2502
+ /**
2503
+ * Class for individual input slot
2504
+ */
2505
+ slot?: string;
2506
+ /**
2507
+ * Class for active input slot
2508
+ */
2509
+ slotActive?: string;
2510
+ /**
2511
+ * Class for separator between inputs (if any)
2512
+ */
2513
+ separator?: string;
2514
+ /**
2515
+ * Class for helper/validation message
2516
+ */
2517
+ helper?: string;
2518
+ }
1086
2519
  interface InputOTPProps {
1087
2520
  /**
1088
2521
  * Number of OTP input fields
@@ -1152,6 +2585,10 @@ interface InputOTPProps {
1152
2585
  * Additional CSS class
1153
2586
  */
1154
2587
  className?: string;
2588
+ /**
2589
+ * Custom classes for different parts of the input OTP
2590
+ */
2591
+ classNames?: InputOTPClassNames;
1155
2592
  /**
1156
2593
  * Reference to the container div element
1157
2594
  */
@@ -1160,6 +2597,39 @@ interface InputOTPProps {
1160
2597
 
1161
2598
  declare const InputOTP: React__default.NamedExoticComponent<InputOTPProps>;
1162
2599
 
2600
+ interface InputPasswordClassNames {
2601
+ root?: string;
2602
+ wrapper?: string;
2603
+ label?: string;
2604
+ input?: string;
2605
+ toggleButton?: string;
2606
+ toggleIcon?: string;
2607
+ helper?: string;
2608
+ error?: string;
2609
+ }
2610
+ interface PasswordInputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'type' | 'ref'> {
2611
+ /**
2612
+ * Whether to show visibility toggle button
2613
+ */
2614
+ visibilityToggle?: boolean;
2615
+ /**
2616
+ * Size variant
2617
+ */
2618
+ size?: InputSize;
2619
+ /**
2620
+ * Reference to the input element
2621
+ */
2622
+ ref?: React.Ref<HTMLInputElement>;
2623
+ /**
2624
+ * Additional CSS class
2625
+ */
2626
+ className?: string;
2627
+ /**
2628
+ * Class names for each input password element
2629
+ */
2630
+ classNames?: InputPasswordClassNames;
2631
+ }
2632
+
1163
2633
  type KbdVariant = 'solid' | 'outline' | 'soft';
1164
2634
  type KbdSize = 'xs' | 'sm' | 'md' | 'lg';
1165
2635
  interface KbdProps extends React.HTMLAttributes<HTMLElement> {
@@ -1189,6 +2659,17 @@ declare const Kbd: React__default.NamedExoticComponent<KbdProps>;
1189
2659
 
1190
2660
  type ModalSize = 'xs' | 'sm' | 'md' | 'lg';
1191
2661
  type ModalColor = 'default' | 'primary' | 'secondary' | 'accent' | 'success' | 'error' | 'warning' | 'info';
2662
+ interface ModalClassNames {
2663
+ root?: string;
2664
+ overlay?: string;
2665
+ content?: string;
2666
+ header?: string;
2667
+ title?: string;
2668
+ description?: string;
2669
+ body?: string;
2670
+ footer?: string;
2671
+ closeButton?: string;
2672
+ }
1192
2673
  interface ComposedModalProps {
1193
2674
  /**
1194
2675
  * Controlled open state
@@ -1246,10 +2727,14 @@ interface ComposedModalProps {
1246
2727
  * Additional CSS class for content
1247
2728
  */
1248
2729
  contentClassName?: string;
2730
+ /**
2731
+ * Class names for each modal element
2732
+ */
2733
+ classNames?: ModalClassNames;
1249
2734
  }
1250
2735
 
1251
2736
  declare function Modal({ ...props }: React$1.ComponentProps<typeof DialogPrimitive.Root>): react_jsx_runtime.JSX.Element;
1252
- declare function ComposedModal({ open, onOpenChange, title, description, children, footer, size, color, centered, showCloseButton, hideHeader, hideFooter, className, contentClassName, }: ComposedModalProps): react_jsx_runtime.JSX.Element;
2737
+ declare function ComposedModal({ open, onOpenChange, title, description, children, footer, size, color, centered, showCloseButton, hideHeader, hideFooter, className, contentClassName, classNames, }: ComposedModalProps): react_jsx_runtime.JSX.Element;
1253
2738
 
1254
2739
  type MultiSelectSize = 'xs' | 'sm' | 'md' | 'lg';
1255
2740
  interface MultiSelectOption {
@@ -1258,6 +2743,52 @@ interface MultiSelectOption {
1258
2743
  disabled?: boolean;
1259
2744
  group?: string;
1260
2745
  }
2746
+ interface MultiSelectClassNames {
2747
+ /**
2748
+ * Class for root container
2749
+ */
2750
+ root?: string;
2751
+ /**
2752
+ * Class for trigger button
2753
+ */
2754
+ trigger?: string;
2755
+ /**
2756
+ * Class for individual tag/chip
2757
+ */
2758
+ tag?: string;
2759
+ /**
2760
+ * Class for tag remove button
2761
+ */
2762
+ tagRemove?: string;
2763
+ /**
2764
+ * Class for dropdown container
2765
+ */
2766
+ dropdown?: string;
2767
+ /**
2768
+ * Class for dropdown option
2769
+ */
2770
+ option?: string;
2771
+ /**
2772
+ * Class for selected option
2773
+ */
2774
+ optionSelected?: string;
2775
+ /**
2776
+ * Class for select all option
2777
+ */
2778
+ selectAll?: string;
2779
+ /**
2780
+ * Class for empty state
2781
+ */
2782
+ empty?: string;
2783
+ /**
2784
+ * Class for label element
2785
+ */
2786
+ label?: string;
2787
+ /**
2788
+ * Class for helper text
2789
+ */
2790
+ helper?: string;
2791
+ }
1261
2792
  interface MultiSelectProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'size' | 'onChange'> {
1262
2793
  size?: MultiSelectSize;
1263
2794
  label?: string;
@@ -1280,11 +2811,15 @@ interface MultiSelectProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 's
1280
2811
  virtualizeThreshold?: number;
1281
2812
  maxDropdownHeight?: number;
1282
2813
  ref?: React.Ref<HTMLDivElement>;
2814
+ /**
2815
+ * Custom classes for different parts of the multi-select
2816
+ */
2817
+ classNames?: MultiSelectClassNames;
1283
2818
  }
1284
2819
 
1285
2820
  declare const MultiSelect: React__default.NamedExoticComponent<MultiSelectProps>;
1286
2821
 
1287
- type NotificationVariant = 'default' | 'solid' | 'outlined' | 'soft';
2822
+ type NotificationVariant = 'default' | 'solid' | 'outline' | 'soft';
1288
2823
  type NotificationSize = 'xs' | 'sm' | 'md' | 'lg';
1289
2824
  interface NotificationAction {
1290
2825
  /**
@@ -1296,6 +2831,36 @@ interface NotificationAction {
1296
2831
  */
1297
2832
  onClick: () => void;
1298
2833
  }
2834
+ interface NotificationClassNames {
2835
+ /**
2836
+ * Class for root notification container
2837
+ */
2838
+ root?: string;
2839
+ /**
2840
+ * Class for icon element
2841
+ */
2842
+ icon?: string;
2843
+ /**
2844
+ * Class for content wrapper
2845
+ */
2846
+ content?: string;
2847
+ /**
2848
+ * Class for title element
2849
+ */
2850
+ title?: string;
2851
+ /**
2852
+ * Class for description element
2853
+ */
2854
+ description?: string;
2855
+ /**
2856
+ * Class for action button
2857
+ */
2858
+ action?: string;
2859
+ /**
2860
+ * Class for close button
2861
+ */
2862
+ closeButton?: string;
2863
+ }
1299
2864
  interface NotificationProps {
1300
2865
  /**
1301
2866
  * Notification title
@@ -1333,6 +2898,10 @@ interface NotificationProps {
1333
2898
  * Additional CSS class
1334
2899
  */
1335
2900
  className?: string;
2901
+ /**
2902
+ * Custom class names for component parts
2903
+ */
2904
+ classNames?: NotificationClassNames;
1336
2905
  /**
1337
2906
  * Children elements (additional content)
1338
2907
  */
@@ -1344,6 +2913,15 @@ declare const Notification: React__default.NamedExoticComponent<NotificationProp
1344
2913
  type PaginationColor = 'default' | 'primary' | 'secondary' | 'accent' | 'success' | 'error' | 'warning' | 'info';
1345
2914
  type PaginationSize = 'xs' | 'sm' | 'md' | 'lg';
1346
2915
  type PaginationVariant = 'default' | 'solid' | 'soft';
2916
+ interface PaginationClassNames {
2917
+ root?: string;
2918
+ list?: string;
2919
+ item?: string;
2920
+ button?: string;
2921
+ buttonActive?: string;
2922
+ ellipsis?: string;
2923
+ info?: string;
2924
+ }
1347
2925
  interface PaginationProps {
1348
2926
  /**
1349
2927
  * Total number of items
@@ -1413,6 +2991,10 @@ interface PaginationProps {
1413
2991
  * Additional CSS class
1414
2992
  */
1415
2993
  className?: string;
2994
+ /**
2995
+ * Custom class names for different elements
2996
+ */
2997
+ classNames?: PaginationClassNames;
1416
2998
  }
1417
2999
 
1418
3000
  declare const Pagination: React__default.NamedExoticComponent<PaginationProps>;
@@ -1421,6 +3003,28 @@ type ProgressType = 'line' | 'circle' | 'step';
1421
3003
  type ProgressVariant = 'default' | 'solid' | 'soft';
1422
3004
  type ProgressOrientation = 'horizontal' | 'vertical';
1423
3005
  type ProgressSize = 'xs' | 'sm' | 'md' | 'lg';
3006
+ interface ProgressClassNames {
3007
+ /**
3008
+ * Class for root progress container
3009
+ */
3010
+ root?: string;
3011
+ /**
3012
+ * Class for progress track/background
3013
+ */
3014
+ track?: string;
3015
+ /**
3016
+ * Class for progress fill/bar
3017
+ */
3018
+ fill?: string;
3019
+ /**
3020
+ * Class for label element
3021
+ */
3022
+ label?: string;
3023
+ /**
3024
+ * Class for value/percentage element
3025
+ */
3026
+ value?: string;
3027
+ }
1424
3028
  interface ProgressProps {
1425
3029
  /**
1426
3030
  * Progress value (0-100)
@@ -1431,9 +3035,19 @@ interface ProgressProps {
1431
3035
  */
1432
3036
  color?: ComponentColor;
1433
3037
  /**
1434
- * Size variant
3038
+ * Size variant (preset sizes for both line and circle)
1435
3039
  */
1436
3040
  size?: ProgressSize;
3041
+ /**
3042
+ * Custom circle diameter in pixels (overrides size preset for circle type)
3043
+ * @example circleSize={16} // 16px diameter for inline text
3044
+ */
3045
+ circleSize?: number;
3046
+ /**
3047
+ * Custom stroke width in pixels (overrides size preset for circle type)
3048
+ * @example strokeWidth={2} // 2px stroke for small circles
3049
+ */
3050
+ strokeWidth?: number;
1437
3051
  /**
1438
3052
  * Visual style variant
1439
3053
  */
@@ -1466,6 +3080,10 @@ interface ProgressProps {
1466
3080
  * Additional CSS class
1467
3081
  */
1468
3082
  className?: string;
3083
+ /**
3084
+ * Custom class names for component parts
3085
+ */
3086
+ classNames?: ProgressClassNames;
1469
3087
  /**
1470
3088
  * Total number of steps (for step type)
1471
3089
  */
@@ -1474,12 +3092,23 @@ interface ProgressProps {
1474
3092
  * Footer content or boolean to show default footer
1475
3093
  */
1476
3094
  footer?: React.ReactNode | boolean;
3095
+ /**
3096
+ * Accessible label for screen readers
3097
+ */
3098
+ 'aria-label'?: string;
1477
3099
  }
1478
3100
 
1479
3101
  declare const Progress: React__default.NamedExoticComponent<ProgressProps>;
1480
3102
 
1481
- type RadioColor = 'primary' | 'secondary' | 'accent' | 'success' | 'error' | 'warning' | 'info';
3103
+ type RadioColor = ButtonColor$1;
1482
3104
  type RadioSize = 'xs' | 'sm' | 'md' | 'lg';
3105
+ interface RadioClassNames {
3106
+ root?: string;
3107
+ radio?: string;
3108
+ indicator?: string;
3109
+ label?: string;
3110
+ description?: string;
3111
+ }
1483
3112
  interface RadioProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'> {
1484
3113
  color?: RadioColor;
1485
3114
  size?: RadioSize;
@@ -1487,10 +3116,19 @@ interface RadioProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, '
1487
3116
  helperText?: string;
1488
3117
  error?: string | boolean;
1489
3118
  ref?: React.Ref<HTMLInputElement>;
3119
+ classNames?: RadioClassNames;
1490
3120
  }
1491
3121
 
1492
3122
  declare const Radio: React__default.NamedExoticComponent<RadioProps>;
1493
3123
 
3124
+ interface RadioGroupClassNames {
3125
+ root?: string;
3126
+ label?: string;
3127
+ group?: string;
3128
+ item?: string;
3129
+ helper?: string;
3130
+ error?: string;
3131
+ }
1494
3132
  interface RadioGroupProps extends React.HTMLAttributes<HTMLDivElement> {
1495
3133
  /**
1496
3134
  * Children elements (typically Radio components)
@@ -1516,6 +3154,10 @@ interface RadioGroupProps extends React.HTMLAttributes<HTMLDivElement> {
1516
3154
  * Additional CSS class
1517
3155
  */
1518
3156
  className?: string;
3157
+ /**
3158
+ * Custom class names for different parts of the component
3159
+ */
3160
+ classNames?: RadioGroupClassNames;
1519
3161
  /**
1520
3162
  * Reference to the div element
1521
3163
  */
@@ -1526,6 +3168,12 @@ declare const RadioGroup: React__default.NamedExoticComponent<RadioGroupProps>;
1526
3168
 
1527
3169
  type RatingVariant = 'default' | 'solid' | 'soft';
1528
3170
  type RatingSize = 'xs' | 'sm' | 'md' | 'lg';
3171
+ interface RatingClassNames {
3172
+ root?: string;
3173
+ star?: string;
3174
+ starFilled?: string;
3175
+ label?: string;
3176
+ }
1529
3177
  interface RatingProps {
1530
3178
  /**
1531
3179
  * Current rating value (controlled)
@@ -1571,6 +3219,14 @@ interface RatingProps {
1571
3219
  * Additional CSS class
1572
3220
  */
1573
3221
  className?: string;
3222
+ /**
3223
+ * Custom class names for component parts
3224
+ */
3225
+ classNames?: RatingClassNames;
3226
+ /**
3227
+ * Accessible label for screen readers
3228
+ */
3229
+ 'aria-label'?: string;
1574
3230
  }
1575
3231
 
1576
3232
  declare const Rating: React__default.NamedExoticComponent<RatingProps>;
@@ -1603,6 +3259,20 @@ interface RibbonProps {
1603
3259
  declare const Ribbon: React__default.NamedExoticComponent<RibbonProps>;
1604
3260
 
1605
3261
  type SelectSize = 'xs' | 'sm' | 'md' | 'lg';
3262
+ interface SelectClassNames {
3263
+ root?: string;
3264
+ trigger?: string;
3265
+ triggerIcon?: string;
3266
+ dropdown?: string;
3267
+ search?: string;
3268
+ option?: string;
3269
+ optionSelected?: string;
3270
+ group?: string;
3271
+ groupLabel?: string;
3272
+ empty?: string;
3273
+ label?: string;
3274
+ helper?: string;
3275
+ }
1606
3276
  interface SelectOption extends BaseOption {
1607
3277
  group?: string;
1608
3278
  }
@@ -1618,6 +3288,7 @@ interface SelectProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'size'
1618
3288
  virtualizeThreshold?: number;
1619
3289
  maxDropdownHeight?: number;
1620
3290
  ref?: React.Ref<HTMLDivElement>;
3291
+ classNames?: SelectClassNames;
1621
3292
  }
1622
3293
 
1623
3294
  declare const Select: React__default.NamedExoticComponent<SelectProps>;
@@ -1635,6 +3306,14 @@ declare const Skeleton: React__default.NamedExoticComponent<SkeletonProps>;
1635
3306
 
1636
3307
  type SliderVariant = 'default' | 'solid' | 'soft';
1637
3308
  type SliderSize = 'xs' | 'sm' | 'md' | 'lg';
3309
+ interface SliderClassNames {
3310
+ root?: string;
3311
+ track?: string;
3312
+ range?: string;
3313
+ thumb?: string;
3314
+ label?: string;
3315
+ value?: string;
3316
+ }
1638
3317
  interface SliderProps {
1639
3318
  /**
1640
3319
  * Current value (controlled) - single number or array for range
@@ -1680,6 +3359,10 @@ interface SliderProps {
1680
3359
  * Additional CSS class
1681
3360
  */
1682
3361
  className?: string;
3362
+ /**
3363
+ * Custom class names for component parts
3364
+ */
3365
+ classNames?: SliderClassNames;
1683
3366
  /**
1684
3367
  * Footer content or boolean to show default footer
1685
3368
  */
@@ -1700,6 +3383,16 @@ type StepperVariant = 'default' | 'solid' | 'soft';
1700
3383
  type StepperOrientation = 'horizontal' | 'vertical';
1701
3384
  type StepperType = 'numbered' | 'dots';
1702
3385
  type StepStatus = 'wait' | 'process' | 'finish' | 'error';
3386
+ interface StepperClassNames {
3387
+ root?: string;
3388
+ step?: string;
3389
+ stepActive?: string;
3390
+ stepCompleted?: string;
3391
+ icon?: string;
3392
+ label?: string;
3393
+ description?: string;
3394
+ connector?: string;
3395
+ }
1703
3396
  interface StepItem {
1704
3397
  /**
1705
3398
  * Label to display for the step
@@ -1763,25 +3456,44 @@ interface StepperProps {
1763
3456
  * Additional CSS class
1764
3457
  */
1765
3458
  className?: string;
3459
+ /**
3460
+ * Custom class names for different elements
3461
+ */
3462
+ classNames?: StepperClassNames;
1766
3463
  }
1767
3464
 
1768
3465
  declare const Stepper: React__default.NamedExoticComponent<StepperProps>;
1769
3466
 
1770
- type SwitchColor = 'primary' | 'secondary' | 'accent' | 'success' | 'error' | 'warning' | 'info';
1771
- type SwitchSize = 'xs' | 'sm' | 'md' | 'lg';
1772
- interface SwitchProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'type' | 'ref'> {
3467
+ type SwitchColor = ButtonColor$1;
3468
+ type SwitchSize = "xs" | "sm" | "md" | "lg";
3469
+ type SwitchLabelPosition = "left" | "right";
3470
+ interface SwitchClassNames {
3471
+ root?: string;
3472
+ track?: string;
3473
+ thumb?: string;
3474
+ label?: string;
3475
+ description?: string;
3476
+ }
3477
+ interface SwitchProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "size" | "type" | "ref"> {
1773
3478
  /**
1774
3479
  * Theme color
3480
+ * @default 'primary'
1775
3481
  */
1776
3482
  color?: SwitchColor;
1777
3483
  /**
1778
3484
  * Size variant
3485
+ * @default 'md'
1779
3486
  */
1780
3487
  size?: SwitchSize;
1781
3488
  /**
1782
3489
  * Label text
1783
3490
  */
1784
- label?: string;
3491
+ label?: React.ReactNode;
3492
+ /**
3493
+ * Position of the label relative to the switch
3494
+ * @default 'right'
3495
+ */
3496
+ labelPosition?: SwitchLabelPosition;
1785
3497
  /**
1786
3498
  * Helper text or instructions
1787
3499
  */
@@ -1792,12 +3504,39 @@ interface SwitchProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>,
1792
3504
  error?: string;
1793
3505
  /**
1794
3506
  * Whether switch is in loading state
3507
+ * @default false
1795
3508
  */
1796
3509
  loading?: boolean;
3510
+ /**
3511
+ * Icon to show inside thumb when checked
3512
+ */
3513
+ thumbIcon?: React.ReactNode;
3514
+ /**
3515
+ * Content to show on the left side of track (visible when unchecked)
3516
+ */
3517
+ startContent?: React.ReactNode;
3518
+ /**
3519
+ * Content to show on the right side of track (visible when checked)
3520
+ */
3521
+ endContent?: React.ReactNode;
3522
+ /**
3523
+ * Whether the switch is required
3524
+ * Shows an asterisk next to the label
3525
+ * @default false
3526
+ */
3527
+ required?: boolean;
3528
+ /**
3529
+ * Additional CSS class for the label text
3530
+ */
3531
+ labelClassName?: string;
1797
3532
  /**
1798
3533
  * Additional CSS class
1799
3534
  */
1800
3535
  className?: string;
3536
+ /**
3537
+ * Custom class names for component parts
3538
+ */
3539
+ classNames?: SwitchClassNames;
1801
3540
  /**
1802
3541
  * Reference to the input element
1803
3542
  */
@@ -1824,10 +3563,37 @@ interface CellEditEvent<TData = unknown, TValue = unknown> {
1824
3563
  value: TValue;
1825
3564
  row: TData;
1826
3565
  }
3566
+ interface TableClassNames {
3567
+ root?: string;
3568
+ wrapper?: string;
3569
+ header?: string;
3570
+ headerRow?: string;
3571
+ headerCell?: string;
3572
+ body?: string;
3573
+ row?: string;
3574
+ cell?: string;
3575
+ footer?: string;
3576
+ pagination?: string;
3577
+ empty?: string;
3578
+ skeleton?: string;
3579
+ actions?: string;
3580
+ }
1827
3581
  interface TableProps<TData> {
1828
3582
  data: TData[];
1829
- columns: ColumnDef<TData, any>[];
3583
+ columns: ColumnDef<TData, unknown>[];
1830
3584
  columnGroups?: ColumnGroup[];
3585
+ /**
3586
+ * Table caption for accessibility (visually hidden by default)
3587
+ */
3588
+ caption?: string;
3589
+ /**
3590
+ * Whether to visually display the caption
3591
+ */
3592
+ showCaption?: boolean;
3593
+ /**
3594
+ * Accessible label for the table (alternative to caption)
3595
+ */
3596
+ 'aria-label'?: string;
1831
3597
  variant?: TableVariant;
1832
3598
  size?: TableSize;
1833
3599
  color?: TableColor;
@@ -1860,9 +3626,10 @@ interface TableProps<TData> {
1860
3626
  pinnedRowIds?: string[];
1861
3627
  onPinnedRowsChange?: (pinnedRowIds: string[]) => void;
1862
3628
  className?: string;
3629
+ classNames?: TableClassNames;
1863
3630
  }
1864
3631
 
1865
- declare function Table<TData>({ data, columns, columnGroups, variant, size: initialSize, color, striped, hoverable, bordered, enableSorting, enableFiltering, enablePagination, enableRowSelection, enableMultiRowSelection, enableRowPinning, enableExpandable, enableGrouping, enableVirtualization, enableClickToSelect, enableColumnPinning, enableActions, paginationPosition, expandedContent, footer, emptyState, loading, loadingRows, pageSize, pageSizeOptions, onRowClick, onSelectionChange, onCellEdit, pinnedRowIds, onPinnedRowsChange, className, }: TableProps<TData>): react_jsx_runtime.JSX.Element;
3632
+ declare function Table<TData>({ data, columns, columnGroups, caption, showCaption, 'aria-label': ariaLabel, variant, size: initialSize, color, striped, hoverable, bordered, enableSorting, enableFiltering, enablePagination, enableRowSelection, enableMultiRowSelection, enableRowPinning, enableExpandable, enableGrouping, enableVirtualization, enableClickToSelect, enableColumnPinning, enableActions, paginationPosition, expandedContent, footer, emptyState, loading, loadingRows, pageSize, pageSizeOptions, onRowClick, onSelectionChange, onCellEdit, pinnedRowIds, onPinnedRowsChange, className, classNames, }: TableProps<TData>): react_jsx_runtime.JSX.Element;
1866
3633
  declare namespace Table {
1867
3634
  var displayName: string;
1868
3635
  }
@@ -1892,6 +3659,28 @@ interface TabItem {
1892
3659
  */
1893
3660
  disabled?: boolean;
1894
3661
  }
3662
+ interface TabsClassNames {
3663
+ /**
3664
+ * Class for root container
3665
+ */
3666
+ root?: string;
3667
+ /**
3668
+ * Class for tab list container
3669
+ */
3670
+ list?: string;
3671
+ /**
3672
+ * Class for individual tab button
3673
+ */
3674
+ tab?: string;
3675
+ /**
3676
+ * Class for active tab button
3677
+ */
3678
+ tabActive?: string;
3679
+ /**
3680
+ * Class for tab panel content
3681
+ */
3682
+ panel?: string;
3683
+ }
1895
3684
  interface TabsProps {
1896
3685
  /**
1897
3686
  * Array of tab items
@@ -1925,13 +3714,93 @@ interface TabsProps {
1925
3714
  * Additional CSS class
1926
3715
  */
1927
3716
  className?: string;
3717
+ /**
3718
+ * Custom classes for different parts of the tabs
3719
+ */
3720
+ classNames?: TabsClassNames;
1928
3721
  }
1929
3722
 
1930
3723
  declare const Tabs: React__default.NamedExoticComponent<TabsProps>;
1931
3724
 
3725
+ type TagVariant = 'default' | 'solid' | 'outline' | 'soft';
3726
+ type TagColor = ComponentColor;
3727
+ type TagSize = Exclude<ComponentSize, 'xl'>;
3728
+ interface TagClassNames {
3729
+ root?: string;
3730
+ content?: string;
3731
+ closeButton?: string;
3732
+ }
3733
+ interface TagProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, 'onClick'> {
3734
+ children?: React.ReactNode;
3735
+ variant?: TagVariant;
3736
+ color?: TagColor;
3737
+ size?: TagSize;
3738
+ closable?: boolean;
3739
+ onClose?: (e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLSpanElement>) => void;
3740
+ onClick?: (e: React.MouseEvent<HTMLSpanElement> | React.KeyboardEvent<HTMLSpanElement>) => void;
3741
+ icon?: React.ReactNode;
3742
+ className?: string;
3743
+ classNames?: TagClassNames;
3744
+ disableKeyboardRemoval?: boolean;
3745
+ }
3746
+
3747
+ /**
3748
+ * Tag Component
3749
+ *
3750
+ * An interactive badge variant that can be used for labels, categories, or removable items.
3751
+ * Supports multiple variants, colors, sizes, icons, and close functionality.
3752
+ *
3753
+ * @component
3754
+ * @example
3755
+ * // Basic tag
3756
+ * <Tag>Label</Tag>
3757
+ *
3758
+ * @example
3759
+ * // Tag with close button
3760
+ * <Tag closable onClose={(e) => console.log('Tag removed')}>
3761
+ * Removable Tag
3762
+ * </Tag>
3763
+ *
3764
+ * @example
3765
+ * // Tag with icon
3766
+ * <Tag icon={<Star />} color="warning">
3767
+ * Featured
3768
+ * </Tag>
3769
+ *
3770
+ * @example
3771
+ * // Different variants
3772
+ * <Tag variant="outline" color="success">Outline Tag</Tag>
3773
+ * <Tag variant="soft" color="info">Soft Tag</Tag>
3774
+ *
3775
+ * @example
3776
+ * // Disable keyboard removal (Backspace/Delete on tag)
3777
+ * <Tag closable disableKeyboardRemoval onClose={(e) => console.log('Tag removed')}>
3778
+ * No keyboard removal
3779
+ * </Tag>
3780
+ *
3781
+ * @example
3782
+ * // Tag with keyboard removal enabled (focus on tag and press Delete/Backspace)
3783
+ * <Tag closable onClose={(e) => console.log('Tag removed')}>
3784
+ * Press Delete or Backspace to remove
3785
+ * </Tag>
3786
+ *
3787
+ * @param {TagProps} props - Component props
3788
+ * @returns {JSX.Element} Rendered tag component
3789
+ */
3790
+ declare const Tag: React__default.NamedExoticComponent<TagProps>;
3791
+
1932
3792
  type TextareaVariant = 'outline' | 'filled';
1933
3793
  type TextareaSize = 'xs' | 'sm' | 'md' | 'lg';
1934
3794
  type TextareaResize = 'none' | 'vertical' | 'horizontal' | 'both';
3795
+ interface TextareaClassNames {
3796
+ root?: string;
3797
+ wrapper?: string;
3798
+ label?: string;
3799
+ textarea?: string;
3800
+ counter?: string;
3801
+ helper?: string;
3802
+ error?: string;
3803
+ }
1935
3804
  interface TextareaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'size' | 'ref'> {
1936
3805
  /**
1937
3806
  * Visual style variant
@@ -1993,6 +3862,10 @@ interface TextareaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaEl
1993
3862
  * Additional CSS class
1994
3863
  */
1995
3864
  className?: string;
3865
+ /**
3866
+ * Custom class names for component parts
3867
+ */
3868
+ classNames?: TextareaClassNames;
1996
3869
  /**
1997
3870
  * Reference to the textarea element
1998
3871
  */
@@ -2003,6 +3876,9 @@ declare const Textarea: React__default.NamedExoticComponent<TextareaProps>;
2003
3876
 
2004
3877
  type ToggleVariant = 'default' | 'solid' | 'soft';
2005
3878
  type ToggleSize = 'xs' | 'sm' | 'md' | 'lg';
3879
+ interface ToggleClassNames {
3880
+ root?: string;
3881
+ }
2006
3882
  interface SingleToggleProps {
2007
3883
  /**
2008
3884
  * Pressed state (controlled)
@@ -2040,16 +3916,28 @@ interface SingleToggleProps {
2040
3916
  * Children elements (label text)
2041
3917
  */
2042
3918
  children?: React.ReactNode;
3919
+ /**
3920
+ * Accessible label (required for icon-only toggles)
3921
+ */
3922
+ 'aria-label'?: string;
2043
3923
  /**
2044
3924
  * Additional CSS class
2045
3925
  */
2046
3926
  className?: string;
3927
+ /**
3928
+ * Custom class names for different parts of the toggle
3929
+ */
3930
+ classNames?: ToggleClassNames;
2047
3931
  }
2048
3932
 
2049
3933
  declare const Toggle: React__default.NamedExoticComponent<SingleToggleProps>;
2050
3934
 
2051
3935
  type ToggleGroupVariant = 'default' | 'solid' | 'soft';
2052
3936
  type ToggleGroupSize = 'xs' | 'sm' | 'md' | 'lg';
3937
+ interface ToggleGroupClassNames {
3938
+ root?: string;
3939
+ item?: string;
3940
+ }
2053
3941
  interface ToggleGroupOption {
2054
3942
  /**
2055
3943
  * Display label for the option
@@ -2117,6 +4005,10 @@ interface ToggleGroupProps {
2117
4005
  * Center align content
2118
4006
  */
2119
4007
  centered?: boolean;
4008
+ /**
4009
+ * Custom class names for different parts of the toggle group
4010
+ */
4011
+ classNames?: ToggleGroupClassNames;
2120
4012
  }
2121
4013
 
2122
4014
  declare const ToggleGroup: React__default.NamedExoticComponent<ToggleGroupProps>;
@@ -2124,6 +4016,24 @@ declare const ToggleGroup: React__default.NamedExoticComponent<ToggleGroupProps>
2124
4016
  type TooltipVariant = 'solid' | 'soft';
2125
4017
  type TooltipColor = ComponentColor;
2126
4018
  type TooltipSize = 'xs' | 'sm' | 'md' | 'lg';
4019
+ interface TooltipClassNames {
4020
+ /**
4021
+ * Class for root tooltip wrapper
4022
+ */
4023
+ root?: string;
4024
+ /**
4025
+ * Class for tooltip trigger element
4026
+ */
4027
+ trigger?: string;
4028
+ /**
4029
+ * Class for tooltip content
4030
+ */
4031
+ content?: string;
4032
+ /**
4033
+ * Class for tooltip arrow
4034
+ */
4035
+ arrow?: string;
4036
+ }
2127
4037
  interface TooltipProps {
2128
4038
  /**
2129
4039
  * Tooltip content
@@ -2165,11 +4075,45 @@ interface TooltipProps {
2165
4075
  * Additional CSS class
2166
4076
  */
2167
4077
  className?: string;
4078
+ /**
4079
+ * Custom class names for component parts
4080
+ */
4081
+ classNames?: TooltipClassNames;
2168
4082
  }
2169
4083
 
2170
4084
  declare const Tooltip: React__default.NamedExoticComponent<TooltipProps>;
2171
4085
 
2172
4086
  type TreeSize = 'xs' | 'sm' | 'md' | 'lg';
4087
+ interface TreeClassNames {
4088
+ /**
4089
+ * Class name for root container
4090
+ */
4091
+ root?: string;
4092
+ /**
4093
+ * Class name for individual node
4094
+ */
4095
+ node?: string;
4096
+ /**
4097
+ * Class name for node content wrapper
4098
+ */
4099
+ nodeContent?: string;
4100
+ /**
4101
+ * Class name for node icon
4102
+ */
4103
+ icon?: string;
4104
+ /**
4105
+ * Class name for expand/collapse icon
4106
+ */
4107
+ expandIcon?: string;
4108
+ /**
4109
+ * Class name for node label
4110
+ */
4111
+ label?: string;
4112
+ /**
4113
+ * Class name for children container
4114
+ */
4115
+ children?: string;
4116
+ }
2173
4117
  interface TreeNode {
2174
4118
  /**
2175
4119
  * Unique key for the node
@@ -2276,11 +4220,45 @@ interface TreeProps {
2276
4220
  * Additional CSS class
2277
4221
  */
2278
4222
  className?: string;
4223
+ /**
4224
+ * Custom class names for tree elements
4225
+ */
4226
+ classNames?: TreeClassNames;
2279
4227
  }
2280
4228
 
2281
4229
  declare const Tree: React__default.NamedExoticComponent<TreeProps>;
2282
4230
 
2283
4231
  type TreeSelectSize = 'xs' | 'sm' | 'md' | 'lg';
4232
+ interface TreeSelectClassNames {
4233
+ /**
4234
+ * Class name for root container
4235
+ */
4236
+ root?: string;
4237
+ /**
4238
+ * Class name for trigger button
4239
+ */
4240
+ trigger?: string;
4241
+ /**
4242
+ * Class name for dropdown content
4243
+ */
4244
+ dropdown?: string;
4245
+ /**
4246
+ * Class name for tree container
4247
+ */
4248
+ tree?: string;
4249
+ /**
4250
+ * Class name for tree nodes
4251
+ */
4252
+ node?: string;
4253
+ /**
4254
+ * Class name for checkboxes
4255
+ */
4256
+ checkbox?: string;
4257
+ /**
4258
+ * Class name for node labels
4259
+ */
4260
+ label?: string;
4261
+ }
2284
4262
  interface TreeSelectProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {
2285
4263
  /**
2286
4264
  * Size variant (tree-select only supports xs, sm, md, lg)
@@ -2386,6 +4364,10 @@ interface TreeSelectProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'on
2386
4364
  * Additional CSS class
2387
4365
  */
2388
4366
  className?: string;
4367
+ /**
4368
+ * Custom class names for tree select elements
4369
+ */
4370
+ classNames?: TreeSelectClassNames;
2389
4371
  /**
2390
4372
  * Reference to the div element
2391
4373
  */
@@ -2397,6 +4379,44 @@ declare const TreeSelect: React__default.NamedExoticComponent<TreeSelectProps>;
2397
4379
  type UploadVariant = 'button' | 'dropzone' | 'dragger' | 'picture' | 'avatar';
2398
4380
  type UploadSize = 'xs' | 'sm' | 'md' | 'lg';
2399
4381
  type UploadColor = ButtonColor$1;
4382
+ interface UploadClassNames {
4383
+ /**
4384
+ * Class for root container
4385
+ */
4386
+ root?: string;
4387
+ /**
4388
+ * Class for dropzone area
4389
+ */
4390
+ dropzone?: string;
4391
+ /**
4392
+ * Class for file input element
4393
+ */
4394
+ input?: string;
4395
+ /**
4396
+ * Class for upload icon
4397
+ */
4398
+ icon?: string;
4399
+ /**
4400
+ * Class for upload text
4401
+ */
4402
+ text?: string;
4403
+ /**
4404
+ * Class for hint text
4405
+ */
4406
+ hint?: string;
4407
+ /**
4408
+ * Class for file list container
4409
+ */
4410
+ fileList?: string;
4411
+ /**
4412
+ * Class for individual file item
4413
+ */
4414
+ fileItem?: string;
4415
+ /**
4416
+ * Class for progress indicator
4417
+ */
4418
+ progress?: string;
4419
+ }
2400
4420
  interface UploadFile {
2401
4421
  uid: string;
2402
4422
  name: string;
@@ -2406,8 +4426,8 @@ interface UploadFile {
2406
4426
  percent?: number;
2407
4427
  url?: string;
2408
4428
  thumbUrl?: string;
2409
- response?: any;
2410
- error?: any;
4429
+ response?: unknown;
4430
+ error?: unknown;
2411
4431
  }
2412
4432
  interface UploadProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'type' | 'onChange' | 'onError'> {
2413
4433
  variant?: UploadVariant;
@@ -2437,17 +4457,21 @@ interface UploadProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>,
2437
4457
  customRequest?: (options: {
2438
4458
  file: File;
2439
4459
  onProgress: (percent: number) => void;
2440
- onSuccess: (response: any) => void;
2441
- onError: (error: any) => void;
4460
+ onSuccess: (response: unknown) => void;
4461
+ onError: (error: unknown) => void;
2442
4462
  }) => void;
2443
4463
  onError?: (error: string, file: File) => void;
2444
4464
  className?: string;
4465
+ /**
4466
+ * Custom classes for different parts of the upload component
4467
+ */
4468
+ classNames?: UploadClassNames;
2445
4469
  ref?: React.Ref<HTMLDivElement>;
2446
4470
  }
2447
4471
 
2448
4472
  declare const Upload: React__default.NamedExoticComponent<UploadProps>;
2449
4473
 
2450
- type ChartSize = 'sm' | 'md' | 'lg' | 'xl';
4474
+ type ChartSize = 'xs' | 'sm' | 'md' | 'lg';
2451
4475
  interface ChartDataPoint {
2452
4476
  [key: string]: string | number;
2453
4477
  }
@@ -2503,42 +4527,99 @@ declare const PieChart: React__default.NamedExoticComponent<PieChartProps>;
2503
4527
  * Note: Most command components use React.ComponentProps with the underlying
2504
4528
  * cmdk primitives and add a size prop
2505
4529
  */
2506
- type CommandSize = 'sm' | 'md' | 'lg';
4530
+ type CommandSize = 'xs' | 'sm' | 'md' | 'lg';
2507
4531
 
2508
- declare function Command({ className, size, ...props }: React$1.ComponentProps<typeof Command$1> & {
2509
- size?: 'sm' | 'md' | 'lg';
2510
- }): react_jsx_runtime.JSX.Element;
2511
- declare function CommandModal({ title, description, children, className, showCloseButton, size, ...props }: React$1.ComponentProps<typeof Modal> & {
2512
- title?: string;
2513
- description?: string;
2514
- className?: string;
2515
- showCloseButton?: boolean;
2516
- size?: 'sm' | 'md' | 'lg';
2517
- }): react_jsx_runtime.JSX.Element;
2518
- declare function CommandInput({ className, size, ...props }: Omit<React$1.ComponentProps<typeof Command$1.Input>, 'size'> & {
2519
- size?: CommandSize;
2520
- }): react_jsx_runtime.JSX.Element;
2521
- declare function CommandList({ className, size, ...props }: React$1.ComponentProps<typeof Command$1.List> & {
2522
- size?: 'sm' | 'md' | 'lg';
2523
- }): react_jsx_runtime.JSX.Element;
2524
- declare function CommandEmpty({ size, ...props }: React$1.ComponentProps<typeof Command$1.Empty> & {
2525
- size?: 'sm' | 'md' | 'lg';
2526
- }): react_jsx_runtime.JSX.Element;
2527
- declare function CommandGroup({ className, size, ...props }: React$1.ComponentProps<typeof Command$1.Group> & {
2528
- size?: 'sm' | 'md' | 'lg';
2529
- }): react_jsx_runtime.JSX.Element;
2530
- declare function CommandSeparator({ className, size, ...props }: React$1.ComponentProps<typeof Command$1.Separator> & {
2531
- size?: 'sm' | 'md' | 'lg';
2532
- }): react_jsx_runtime.JSX.Element;
2533
- declare function CommandItem({ className, size, ...props }: React$1.ComponentProps<typeof Command$1.Item> & {
2534
- size?: 'sm' | 'md' | 'lg';
2535
- }): react_jsx_runtime.JSX.Element;
2536
- declare function CommandShortcut({ className, size, ...props }: React$1.ComponentProps<'span'> & {
2537
- size?: 'sm' | 'md' | 'lg';
2538
- }): react_jsx_runtime.JSX.Element;
4532
+ interface CommandClassNames {
4533
+ root?: string;
4534
+ input?: string;
4535
+ inputIcon?: string;
4536
+ list?: string;
4537
+ empty?: string;
4538
+ group?: string;
4539
+ groupLabel?: string;
4540
+ item?: string;
4541
+ itemIcon?: string;
4542
+ shortcut?: string;
4543
+ }
4544
+
4545
+ declare const Command: {
4546
+ ({ className, size, classNames, ...props }: React$1.ComponentProps<typeof Command$1> & {
4547
+ size?: CommandSize;
4548
+ classNames?: CommandClassNames;
4549
+ }): react_jsx_runtime.JSX.Element;
4550
+ displayName: string;
4551
+ };
4552
+ declare const CommandModal: {
4553
+ ({ title, description, children, className, showCloseButton, size, ...props }: React$1.ComponentProps<typeof Modal> & {
4554
+ title?: string;
4555
+ description?: string;
4556
+ className?: string;
4557
+ showCloseButton?: boolean;
4558
+ size?: CommandSize;
4559
+ }): react_jsx_runtime.JSX.Element;
4560
+ displayName: string;
4561
+ };
4562
+ declare const CommandInput: {
4563
+ ({ className, size, classNames, ...props }: Omit<React$1.ComponentProps<typeof Command$1.Input>, "size"> & {
4564
+ size?: CommandSize;
4565
+ classNames?: CommandClassNames;
4566
+ }): react_jsx_runtime.JSX.Element;
4567
+ displayName: string;
4568
+ };
4569
+ declare const CommandList: {
4570
+ ({ className, size, classNames, ...props }: React$1.ComponentProps<typeof Command$1.List> & {
4571
+ size?: CommandSize;
4572
+ classNames?: CommandClassNames;
4573
+ }): react_jsx_runtime.JSX.Element;
4574
+ displayName: string;
4575
+ };
4576
+ declare const CommandEmpty: {
4577
+ ({ size, classNames, ...props }: React$1.ComponentProps<typeof Command$1.Empty> & {
4578
+ size?: CommandSize;
4579
+ classNames?: CommandClassNames;
4580
+ }): react_jsx_runtime.JSX.Element;
4581
+ displayName: string;
4582
+ };
4583
+ declare const CommandGroup: {
4584
+ ({ className, size, classNames, ...props }: React$1.ComponentProps<typeof Command$1.Group> & {
4585
+ size?: CommandSize;
4586
+ classNames?: CommandClassNames;
4587
+ }): react_jsx_runtime.JSX.Element;
4588
+ displayName: string;
4589
+ };
4590
+ declare const CommandSeparator: {
4591
+ ({ className, size, ...props }: React$1.ComponentProps<typeof Command$1.Separator> & {
4592
+ size?: CommandSize;
4593
+ }): react_jsx_runtime.JSX.Element;
4594
+ displayName: string;
4595
+ };
4596
+ declare const CommandItem: {
4597
+ ({ className, size, classNames, ...props }: React$1.ComponentProps<typeof Command$1.Item> & {
4598
+ size?: CommandSize;
4599
+ classNames?: CommandClassNames;
4600
+ }): react_jsx_runtime.JSX.Element;
4601
+ displayName: string;
4602
+ };
4603
+ declare const CommandShortcut: {
4604
+ ({ className, size, classNames, ...props }: React$1.ComponentProps<"span"> & {
4605
+ size?: CommandSize;
4606
+ classNames?: CommandClassNames;
4607
+ }): react_jsx_runtime.JSX.Element;
4608
+ displayName: string;
4609
+ };
2539
4610
 
2540
4611
  type DatePickerVariant = 'outline' | 'filled';
2541
4612
  type DatePickerSize = 'xs' | 'sm' | 'md' | 'lg';
4613
+ interface DatePickerClassNames {
4614
+ root?: string;
4615
+ trigger?: string;
4616
+ calendar?: string;
4617
+ header?: string;
4618
+ navigation?: string;
4619
+ day?: string;
4620
+ daySelected?: string;
4621
+ dayToday?: string;
4622
+ }
2542
4623
  interface BaseDatePickerProps {
2543
4624
  variant?: DatePickerVariant;
2544
4625
  size?: DatePickerSize;
@@ -2555,6 +4636,7 @@ interface BaseDatePickerProps {
2555
4636
  clearable?: boolean;
2556
4637
  fullWidth?: boolean;
2557
4638
  className?: string;
4639
+ classNames?: DatePickerClassNames;
2558
4640
  minDate?: Date;
2559
4641
  maxDate?: Date;
2560
4642
  dateFormat?: string;
@@ -2590,7 +4672,53 @@ declare const DatePicker: React__default.NamedExoticComponent<DatePickerProps> &
2590
4672
  TimePicker: React__default.NamedExoticComponent<TimePickerProps>;
2591
4673
  };
2592
4674
 
2593
- type DrawerDirection = 'bottom' | 'top' | 'left' | 'right';
4675
+ type DrawerDirection = "bottom" | "top" | "left" | "right";
4676
+ type DrawerSize = "xs" | "sm" | "md" | "lg" | "full";
4677
+ /**
4678
+ * ClassNames interface for customizing Drawer sub-components
4679
+ */
4680
+ interface DrawerClassNames {
4681
+ /**
4682
+ * Root drawer wrapper class
4683
+ */
4684
+ root?: string;
4685
+ /**
4686
+ * Overlay backdrop class
4687
+ */
4688
+ overlay?: string;
4689
+ /**
4690
+ * Main content container class
4691
+ */
4692
+ content?: string;
4693
+ /**
4694
+ * Header section class
4695
+ */
4696
+ header?: string;
4697
+ /**
4698
+ * Title element class
4699
+ */
4700
+ title?: string;
4701
+ /**
4702
+ * Description element class
4703
+ */
4704
+ description?: string;
4705
+ /**
4706
+ * Body/main content class
4707
+ */
4708
+ body?: string;
4709
+ /**
4710
+ * Footer section class
4711
+ */
4712
+ footer?: string;
4713
+ /**
4714
+ * Drag handle class
4715
+ */
4716
+ handle?: string;
4717
+ /**
4718
+ * Close button class
4719
+ */
4720
+ closeButton?: string;
4721
+ }
2594
4722
  interface DrawerProps {
2595
4723
  /**
2596
4724
  * Controlled open state
@@ -2602,12 +4730,34 @@ interface DrawerProps {
2602
4730
  onOpenChange?: (open: boolean) => void;
2603
4731
  /**
2604
4732
  * Direction from which drawer slides in
4733
+ * @default 'bottom'
2605
4734
  */
2606
4735
  direction?: DrawerDirection;
2607
4736
  /**
2608
4737
  * Whether drawer should be modal (blocking interaction with content behind)
4738
+ * @default true
2609
4739
  */
2610
4740
  modal?: boolean;
4741
+ /**
4742
+ * Whether the drawer should close when clicking the overlay
4743
+ * @default true
4744
+ */
4745
+ closeOnOverlayClick?: boolean;
4746
+ /**
4747
+ * Whether pressing the Escape key should close the drawer
4748
+ * @default true
4749
+ */
4750
+ closeOnEscape?: boolean;
4751
+ /**
4752
+ * Whether the drawer can be dismissed by dragging
4753
+ * @default true
4754
+ */
4755
+ dismissible?: boolean;
4756
+ /**
4757
+ * Snap points for drawer positioning (0-1 values)
4758
+ * e.g., [0.5, 1] allows snapping to 50% and 100%
4759
+ */
4760
+ snapPoints?: (number | string)[];
2611
4761
  /**
2612
4762
  * Children elements
2613
4763
  */
@@ -2620,18 +4770,65 @@ interface DrawerTriggerProps {
2620
4770
  children: React.ReactNode;
2621
4771
  /**
2622
4772
  * Whether to render children as child component
4773
+ * @default false
2623
4774
  */
2624
4775
  asChild?: boolean;
4776
+ /**
4777
+ * Additional CSS class
4778
+ */
4779
+ className?: string;
4780
+ /**
4781
+ * Reference to the trigger element
4782
+ */
4783
+ ref?: React.Ref<HTMLButtonElement>;
2625
4784
  }
2626
4785
  interface DrawerContentProps {
2627
4786
  /**
2628
4787
  * Children elements
2629
4788
  */
2630
4789
  children: React.ReactNode;
4790
+ /**
4791
+ * Direction from which drawer slides in
4792
+ * @default 'bottom'
4793
+ */
4794
+ direction?: DrawerDirection;
4795
+ /**
4796
+ * Drawer size
4797
+ * @default 'md'
4798
+ */
4799
+ size?: DrawerSize;
4800
+ /**
4801
+ * Whether to show a close button in the corner
4802
+ * @default false
4803
+ */
4804
+ showCloseButton?: boolean;
4805
+ /**
4806
+ * Whether to show the drag handle
4807
+ * @default true for bottom/top, false for left/right
4808
+ */
4809
+ showHandle?: boolean;
2631
4810
  /**
2632
4811
  * Additional CSS class
2633
4812
  */
2634
4813
  className?: string;
4814
+ /**
4815
+ * Reference to the content element
4816
+ */
4817
+ ref?: React.Ref<HTMLDivElement>;
4818
+ /**
4819
+ * Custom class names for sub-components
4820
+ */
4821
+ classNames?: DrawerClassNames;
4822
+ }
4823
+ interface DrawerOverlayProps extends React.HTMLAttributes<HTMLDivElement> {
4824
+ /**
4825
+ * Reference to the overlay element
4826
+ */
4827
+ ref?: React.Ref<HTMLDivElement>;
4828
+ /**
4829
+ * Custom class names for sub-components
4830
+ */
4831
+ classNames?: DrawerClassNames;
2635
4832
  }
2636
4833
  interface DrawerHeaderProps {
2637
4834
  /**
@@ -2642,6 +4839,14 @@ interface DrawerHeaderProps {
2642
4839
  * Additional CSS class
2643
4840
  */
2644
4841
  className?: string;
4842
+ /**
4843
+ * Reference to the header element
4844
+ */
4845
+ ref?: React.Ref<HTMLDivElement>;
4846
+ /**
4847
+ * Custom class names for sub-components
4848
+ */
4849
+ classNames?: DrawerClassNames;
2645
4850
  }
2646
4851
  interface DrawerFooterProps {
2647
4852
  /**
@@ -2652,6 +4857,14 @@ interface DrawerFooterProps {
2652
4857
  * Additional CSS class
2653
4858
  */
2654
4859
  className?: string;
4860
+ /**
4861
+ * Reference to the footer element
4862
+ */
4863
+ ref?: React.Ref<HTMLDivElement>;
4864
+ /**
4865
+ * Custom class names for sub-components
4866
+ */
4867
+ classNames?: DrawerClassNames;
2655
4868
  }
2656
4869
  interface DrawerTitleProps {
2657
4870
  /**
@@ -2662,6 +4875,14 @@ interface DrawerTitleProps {
2662
4875
  * Additional CSS class
2663
4876
  */
2664
4877
  className?: string;
4878
+ /**
4879
+ * Reference to the title element
4880
+ */
4881
+ ref?: React.Ref<HTMLHeadingElement>;
4882
+ /**
4883
+ * Custom class names for sub-components
4884
+ */
4885
+ classNames?: DrawerClassNames;
2665
4886
  }
2666
4887
  interface DrawerDescriptionProps {
2667
4888
  /**
@@ -2672,6 +4893,14 @@ interface DrawerDescriptionProps {
2672
4893
  * Additional CSS class
2673
4894
  */
2674
4895
  className?: string;
4896
+ /**
4897
+ * Reference to the description element
4898
+ */
4899
+ ref?: React.Ref<HTMLParagraphElement>;
4900
+ /**
4901
+ * Custom class names for sub-components
4902
+ */
4903
+ classNames?: DrawerClassNames;
2675
4904
  }
2676
4905
  interface DrawerCloseProps {
2677
4906
  /**
@@ -2680,27 +4909,53 @@ interface DrawerCloseProps {
2680
4909
  children: React.ReactNode;
2681
4910
  /**
2682
4911
  * Whether to render children as child component
4912
+ * @default false
2683
4913
  */
2684
4914
  asChild?: boolean;
4915
+ /**
4916
+ * Additional CSS class
4917
+ */
4918
+ className?: string;
4919
+ /**
4920
+ * Reference to the close element
4921
+ */
4922
+ ref?: React.Ref<HTMLButtonElement>;
2685
4923
  }
2686
4924
 
2687
4925
  declare const Drawer: React__default.NamedExoticComponent<DrawerProps>;
2688
4926
  declare const DrawerTrigger: React__default.NamedExoticComponent<DrawerTriggerProps>;
2689
4927
  declare const DrawerPortal: typeof vaul.Portal;
2690
- interface DrawerOverlayProps extends React__default.HTMLAttributes<HTMLDivElement> {
2691
- ref?: React__default.Ref<HTMLDivElement>;
2692
- }
2693
4928
  declare const DrawerOverlay: React__default.NamedExoticComponent<DrawerOverlayProps>;
2694
- declare const DrawerContent: React__default.NamedExoticComponent<DrawerContentProps & {
2695
- direction?: "bottom" | "top" | "left" | "right";
2696
- size?: "xs" | "sm" | "md" | "lg";
2697
- }>;
4929
+ declare const DrawerContent: React__default.NamedExoticComponent<DrawerContentProps>;
2698
4930
  declare const DrawerHeader: React__default.NamedExoticComponent<DrawerHeaderProps>;
2699
4931
  declare const DrawerFooter: React__default.NamedExoticComponent<DrawerFooterProps>;
2700
4932
  declare const DrawerTitle: React__default.NamedExoticComponent<DrawerTitleProps>;
2701
4933
  declare const DrawerDescription: React__default.NamedExoticComponent<DrawerDescriptionProps>;
2702
4934
  declare const DrawerClose: React__default.NamedExoticComponent<DrawerCloseProps>;
2703
4935
 
4936
+ interface PopoverClassNames {
4937
+ /**
4938
+ * Class for root popover wrapper
4939
+ */
4940
+ root?: string;
4941
+ /**
4942
+ * Class for popover trigger element
4943
+ */
4944
+ trigger?: string;
4945
+ /**
4946
+ * Class for popover content
4947
+ */
4948
+ content?: string;
4949
+ /**
4950
+ * Class for popover arrow
4951
+ */
4952
+ arrow?: string;
4953
+ /**
4954
+ * Class for close button
4955
+ */
4956
+ closeButton?: string;
4957
+ }
4958
+
2704
4959
  declare function Popover({ ...props }: React$1.ComponentProps<typeof PopoverPrimitive.Root>): react_jsx_runtime.JSX.Element;
2705
4960
  declare function PopoverTrigger({ ...props }: React$1.ComponentProps<typeof PopoverPrimitive.Trigger>): react_jsx_runtime.JSX.Element;
2706
4961
  declare const popoverContentVariants: (props?: ({
@@ -2709,10 +4964,37 @@ declare const popoverContentVariants: (props?: ({
2709
4964
  color?: "default" | "error" | "warning" | "info" | "success" | "primary" | "secondary" | "accent" | null | undefined;
2710
4965
  } & class_variance_authority_types.ClassProp) | undefined) => string;
2711
4966
  interface PopoverContentProps extends Omit<React$1.ComponentProps<typeof PopoverPrimitive.Content>, 'color'>, VariantProps<typeof popoverContentVariants> {
4967
+ classNames?: PopoverClassNames;
2712
4968
  }
2713
- declare function PopoverContent({ className, align, sideOffset, size, variant, color, ...props }: PopoverContentProps): react_jsx_runtime.JSX.Element;
4969
+ declare function PopoverContent({ className, align, sideOffset, size, variant, color, classNames, ...props }: PopoverContentProps): react_jsx_runtime.JSX.Element;
2714
4970
  declare function PopoverAnchor({ ...props }: React$1.ComponentProps<typeof PopoverPrimitive.Anchor>): react_jsx_runtime.JSX.Element;
2715
4971
 
4972
+ interface TransferClassNames {
4973
+ /**
4974
+ * Class for root container
4975
+ */
4976
+ root?: string;
4977
+ /**
4978
+ * Class for list panel
4979
+ */
4980
+ list?: string;
4981
+ /**
4982
+ * Class for list header
4983
+ */
4984
+ header?: string;
4985
+ /**
4986
+ * Class for search input
4987
+ */
4988
+ search?: string;
4989
+ /**
4990
+ * Class for individual item
4991
+ */
4992
+ item?: string;
4993
+ /**
4994
+ * Class for action buttons container
4995
+ */
4996
+ actions?: string;
4997
+ }
2716
4998
  interface TransferItem {
2717
4999
  key: string;
2718
5000
  label: string;
@@ -2747,9 +5029,10 @@ interface TransferProps {
2747
5029
  info?: string;
2748
5030
  success?: string;
2749
5031
  className?: string;
5032
+ classNames?: TransferClassNames;
2750
5033
  ref?: React.Ref<HTMLDivElement>;
2751
5034
  }
2752
5035
 
2753
5036
  declare const Transfer: React__default.NamedExoticComponent<TransferProps>;
2754
5037
 
2755
- export { Accordion, AreaChart, Badge, BarChart, type BaseOption, Breadcrumb as Breadcrumbs, Button, type ButtonColor$1 as ButtonColor, ButtonGroup, Card, Carousel, Cascader, Checkbox, CheckboxGroup, Clipboard, Collapse, Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandModal, CommandSeparator, CommandShortcut, type ComponentColor, type ComponentSize, type ComponentVariant, type ComponentVariantExtended, type ComponentVariantInput, ComposedChart, DatePicker, Descriptions, type DisableableProps, Divider, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, Dropdown, Empty, FetchingOverlay, type FullWidthProps, Grid, type IconProps, Image, Input, InputGroup, InputOTP, Input as InputPassword, Kbd, LineChart, type LoadingProps, type MessagePosition, ComposedModal as Modal, MultiSelect, Notification, Pagination, PieChart, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, Radio, RadioGroup, RangePickerComponent as RangePicker, Rating, type RequiredProps, Ribbon, Select, Skeleton, Slider, Spinner, Stepper, Switch, Table, Tabs, type TextColorVariants, Textarea, TimePickerComponent as TimePicker, Toggle, ToggleGroup, Tooltip, Transfer, Tree, TreeSelect, Upload, type ValidationMessages, buttonColors, cn, commonSpacing, componentColors, componentSizeVariants, createAllColorVariants, createDashedColorVariants, createDefaultColorVariants, createGhostColorVariants, createLinkColorVariants, createOutlineColorVariants, createSoftColorVariants, createSolidColorVariants, extendedComponentSizeVariants, getAccordionColorClass, getCheckboxColorClass, getIconColorClass, getValidationStatus, iconColorClasses, iconSizes, textColorVariants };
5038
+ export { Accordion, type AccordionClassNames, type AccordionItem, type AccordionProps, AreaChart, Avatar, type AvatarClassNames, AvatarGroup, type AvatarGroupClassNames, type AvatarGroupProps, type AvatarProps, Badge, type BadgeProps, BarChart, type BaseClassNames, type BaseOption, type BreadcrumbItemData, type BreadcrumbProps, Breadcrumb as Breadcrumbs, type BreadcrumbsClassNames, Button, type ButtonClassNames, type ButtonColor$1 as ButtonColor, ButtonGroup, type ButtonGroupClassNames, type ButtonGroupProps, type ButtonProps, type ButtonShape, type ButtonSize, type ButtonVariant, CardWithSubComponents as Card, type CardActionProps, type CardClassNames, type CardContentProps, type CardDescriptionProps, type CardFooterProps, type CardHeaderProps, type CardImageProps, type CardProps, type CardTitleProps, Carousel, Cascader, type CascaderClassNames, type CascaderOption, type CascaderProps, Checkbox, type CheckboxClassNames, type CheckboxColor, CheckboxGroup, type CheckboxGroupClassNames, type CheckboxGroupProps as CheckboxGroupComponentProps, type CheckboxProps, type CheckboxSize, Clipboard, type ClipboardClassNames, type ClipboardProps, Collapse, type CollapseClassNames, type CollapseProps, Command, type CommandClassNames, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandModal, CommandSeparator, CommandShortcut, type ComponentColor, type ComponentSize, type ComponentVariant, type ComponentVariantExtended, type ComponentVariantInput, ComposedChart, type ComposedModalProps, ContextMenu, type ContextMenuClassNames, type ContextMenuItem, type ContextMenuProps, type CreateClassNames, DatePicker, type DatePickerClassNames, type DatePickerProps, Descriptions, type DescriptionsClassNames, type DescriptionsItem, type DescriptionsProps, type DisableableProps, Divider, type DividerProps, Drawer, type DrawerClassNames, DrawerClose, type DrawerCloseProps, DrawerContent, type DrawerContentProps, DrawerDescription, type DrawerDescriptionProps, DrawerFooter, type DrawerFooterProps, DrawerHeader, type DrawerHeaderProps, DrawerOverlay, type DrawerOverlayProps, DrawerPortal, type DrawerProps, DrawerTitle, type DrawerTitleProps, DrawerTrigger, type DrawerTriggerProps, Dropdown, type DropdownClassNames, type DropdownItem, type DropdownProps, Empty, type EmptyClassNames, type EmptyProps, FetchingOverlay, type FullWidthProps, Grid, type GridProps, type IconProps, Image, type ImageClassNames, type ImageProps, Input, type InputClassNames, InputGroup, type InputGroupClassNames, type InputGroupProps, InputOTP, type InputOTPClassNames, type InputOTPProps, Input as InputPassword, type InputPasswordClassNames, type InputProps, Kbd, type KbdProps, type KbdVariantType, LineChart, type LoadingProps, type MessagePosition, ComposedModal as Modal, type ModalClassNames, MultiSelect, type MultiSelectClassNames, type MultiSelectProps, Notification, type NotificationClassNames, type NotificationProps, type NotificationVariantType, Pagination, type PaginationClassNames, type PaginationProps, type PasswordInputProps, PieChart, Popover, PopoverAnchor, type PopoverClassNames, PopoverContent, PopoverTrigger, type PopoverVariantType, Progress, type ProgressClassNames, type ProgressOrientation, type ProgressProps, type ProgressSize, type ProgressType, type ProgressVariant, Radio, type RadioClassNames, RadioGroup, type RadioGroupClassNames, type RadioGroupProps as RadioGroupComponentProps, type RadioProps, RangePickerComponent as RangePicker, type RangePickerProps, Rating, type RatingClassNames, type RatingProps, type RequiredProps, Ribbon, type RibbonProps, Select, type SelectClassNames, type SelectProps, type SingleToggleProps, Skeleton, type SkeletonProps, Slider, type SliderClassNames, type SliderProps, Spinner, type SpinnerProps, type StepItem, Stepper, type StepperClassNames, type StepperProps, type StyleVariantType, Switch, type SwitchClassNames, type SwitchProps, type TabItem, Table, type TableClassNames, type TableProps, Tabs, type TabsClassNames, type TabsProps, Tag, type TagClassNames, type TagProps, type TextColorVariants, Textarea, type TextareaClassNames, type TextareaProps, type Theme, type ThemePreset, ThemeProvider, type ThemeProviderProps, type ThemeProviderState, TimePickerComponent as TimePicker, type TimePickerProps, Toggle, type ToggleClassNames, ToggleGroup, type ToggleGroupClassNames, type ToggleGroupProps, Tooltip, type TooltipClassNames, type TooltipProps, Transfer, type TransferClassNames, type TransferItem, type TransferProps, Tree, type TreeClassNames, type TreeNode, type TreeProps, TreeSelect, type TreeSelectClassNames, type TreeSelectProps, Upload, type UploadClassNames, type UploadFile, type UploadProps, type ValidationMessages, bgSkeletonColorClasses, buttonColors, checkboxBorderColorClasses, checkedColorClasses, cn, componentColors, createAllColorVariants, createDashedColorVariants, createDefaultColorVariants, createGhostColorVariants, createKbdColorVariants, createKbdOutlineColorVariants, createKbdSoftColorVariants, createKbdSolidColorVariants, createLinkColorVariants, createNotificationColorVariants, createNotificationOutlineColorVariants, createNotificationSoftColorVariants, createNotificationSolidColorVariants, createOutlineColorVariants, createPopoverColorVariants, createPopoverDefaultColorVariants, createPopoverSoftColorVariants, createPopoverSolidColorVariants, createSoftColorVariants, createSolidColorVariants, createTooltipSoftColorVariants, focusRingColorClasses, getValidationStatus, iconSizes, radioCheckedColorClasses, switchTrackColorClasses, textColorClasses, textColorVariants, themePresets, themeScript, tooltipSolidColorClasses, useTheme };