@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
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cascader/index.tsx"],"names":["selectedPath","label"],"mappings":"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","file":"chunk-2OUGJBXK.js","sourcesContent":["'use client'\n\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\nimport { cva } from \"class-variance-authority\";\nimport { Check, ChevronDown, ChevronRight, Loader2, X } from \"lucide-react\";\nimport React from \"react\";\n\nimport { cn, iconSizes } from \"../utils\";\nimport type { CascaderOption, CascaderProps, CascaderSize } from \"./types\";\n\nconst cascaderTriggerVariants = cva(\n \"flex items-center justify-between gap-2 rounded-md border transition-colors cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed outline-none\",\n {\n variants: {\n status: {\n default: \"bg-background border-border hover:border-primary/50\",\n error: \"border-error\",\n warning: \"border-warning\",\n info: \"border-info\",\n success: \"border-success\",\n },\n size: {\n xs: \"h-(--select-height-xs) px-(--select-padding-x-xs) text-xs\",\n sm: \"h-(--select-height-sm) px-(--select-padding-x-sm) text-sm\",\n md: \"h-(--select-height-md) px-(--select-padding-x-md) text-base\",\n lg: \"h-(--select-height-lg) px-(--select-padding-x-lg) text-lg\",\n },\n fullWidth: {\n true: \"w-full\",\n false: \"max-w-full\",\n },\n },\n defaultVariants: {\n status: \"default\",\n size: \"md\",\n fullWidth: true,\n },\n },\n);\n\nconst cascaderMenuVariants = cva(\n \"overflow-auto rounded-md border bg-background w-[200px] max-h-[300px] py-1\",\n {\n variants: {\n size: {\n xs: \"w-[160px]\",\n sm: \"w-[180px]\",\n md: \"w-[200px]\",\n lg: \"w-[220px]\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n },\n);\n\nconst cascaderItemVariants = cva(\n \"relative cursor-pointer select-none text-text-primary transition-colors flex items-center gap-2 w-full\",\n {\n variants: {\n size: {\n xs: \"px-2 py-1 text-xs min-h-[28px]\",\n sm: \"px-2.5 py-1.5 text-sm min-h-[32px]\",\n md: \"px-3 py-2 text-base min-h-[36px]\",\n lg: \"px-3.5 py-2.5 text-lg min-h-[44px]\",\n },\n disabled: {\n true: \"opacity-50 cursor-not-allowed\",\n false: \"hover:bg-surface\",\n },\n active: {\n true: \"bg-surface\",\n false: \"\",\n },\n selected: {\n true: \"bg-primary/10 text-primary font-medium\",\n false: \"\",\n },\n },\n defaultVariants: {\n size: \"md\",\n disabled: false,\n active: false,\n selected: false,\n },\n },\n);\n\n/**\n * Tag size classes for multiple mode\n */\nconst tagSizeClasses: Record<CascaderSize, string> = {\n xs: \"text-[10px] px-1 py-0\",\n sm: \"text-xs px-1.5 py-0.5\",\n md: \"text-sm px-2 py-0.5\",\n lg: \"text-sm px-2.5 py-1\",\n};\n\n/**\n * Cascader Component\n *\n * A hierarchical selection component for selecting from nested options.\n *\n * @example\n * // Basic usage\n * <Cascader\n * options={options}\n * placeholder=\"Select location\"\n * onChange={(value, options) => console.log(value)}\n * />\n *\n * @example\n * // Multiple selection\n * <Cascader\n * options={options}\n * multiple\n * placeholder=\"Select categories\"\n * />\n */\nconst Cascader = React.memo<CascaderProps>(\n ({\n options,\n value,\n defaultValue,\n onChange,\n onSelect,\n placeholder = \"Please select\",\n label,\n helperText,\n messagePosition = \"bottom\",\n // color is accepted but currently unused - status is derived from error/warning/success/info props\n color: _color,\n size = \"md\",\n placement = \"bottomLeft\",\n disabled = false,\n loading = false,\n error,\n warning,\n info,\n success,\n fullWidth = true,\n expandTrigger = \"hover\",\n multiple = false,\n maxTagCount = 3,\n clearable = true,\n showPath = true,\n pathSeparator = \" / \",\n changeOnSelect = false,\n loadData,\n displayRender,\n tagRender,\n emptyContent = \"No options\",\n className,\n classNames,\n required,\n ref,\n onOpenChange,\n }) => {\n const [isOpen, setIsOpen] = React.useState(false);\n const [internalValue, setInternalValue] = React.useState<\n string[] | string[][]\n >(defaultValue || (multiple ? [] : []));\n const [activeMenus, setActiveMenus] = React.useState<CascaderOption[][]>([\n options,\n ]);\n const [hoveredPath, setHoveredPath] = React.useState<number[]>([]);\n const [selectedPath, setSelectedPath] = React.useState<string[]>([]);\n const [focusedIndex, setFocusedIndex] = React.useState<{\n level: number;\n index: number;\n } | null>(null);\n\n const containerRef = React.useRef<HTMLDivElement>(null);\n const menuRefs = React.useRef<(HTMLDivElement | null)[]>([]);\n\n const currentValue = value !== undefined ? value : internalValue;\n\n // Normalize value to always be string[][]\n const normalizedValue: string[][] = React.useMemo(() => {\n if (multiple) {\n return Array.isArray(currentValue[0])\n ? (currentValue as string[][])\n : [];\n }\n return Array.isArray(currentValue) &&\n currentValue.length > 0 &&\n !Array.isArray(currentValue[0])\n ? [currentValue as string[]]\n : [];\n }, [currentValue, multiple]);\n\n // Determine status for styling\n let status: \"default\" | \"error\" | \"warning\" | \"info\" | \"success\" =\n \"default\";\n if (error) status = \"error\";\n else if (warning) status = \"warning\";\n else if (success) status = \"success\";\n else if (info) status = \"info\";\n\n const helperMessage = error || warning || info || success || helperText;\n\n // Handle open state changes\n const handleOpenChange = React.useCallback(\n (open: boolean) => {\n if (disabled || loading) return;\n\n setIsOpen(open);\n onOpenChange?.(open);\n\n if (open) {\n // Reset state when opening\n setActiveMenus([options]);\n setHoveredPath([]);\n setFocusedIndex(null);\n\n if (normalizedValue.length > 0 && !multiple) {\n setSelectedPath(normalizedValue[0] || []);\n // Expand to show current selection\n expandToPath(normalizedValue[0] || []);\n } else {\n setSelectedPath([]);\n }\n }\n },\n [disabled, loading, options, normalizedValue, multiple, onOpenChange],\n );\n\n // Expand menus to show a specific path\n const expandToPath = React.useCallback(\n (path: string[]) => {\n const menus: CascaderOption[][] = [options];\n let currentOptions = options;\n\n for (const val of path) {\n const option = currentOptions.find((opt) => opt.value === val);\n if (option?.children && option.children.length > 0) {\n menus.push(option.children);\n currentOptions = option.children;\n }\n }\n\n setActiveMenus(menus);\n },\n [options],\n );\n\n // Get selected options for a path\n const getSelectedOptions = React.useCallback(\n (path: string[]): CascaderOption[] => {\n const selected: CascaderOption[] = [];\n let currentOptions = options;\n\n for (const val of path) {\n const option = currentOptions.find((opt) => opt.value === val);\n if (option) {\n selected.push(option);\n currentOptions = option.children || [];\n }\n }\n\n return selected;\n },\n [options],\n );\n\n // Check if a path is selected\n const isPathSelected = React.useCallback(\n (path: string[]): boolean => {\n return normalizedValue.some(\n (selectedPath) =>\n selectedPath.length === path.length &&\n selectedPath.every((val, idx) => val === path[idx]),\n );\n },\n [normalizedValue],\n );\n\n // Get all leaf paths from an option\n const getAllLeafPaths = React.useCallback(\n (option: CascaderOption, currentPath: string[]): string[][] => {\n const paths: string[][] = [];\n const fullPath = [...currentPath, option.value];\n\n if (!option.children || option.children.length === 0) {\n paths.push(fullPath);\n } else {\n option.children.forEach((child) => {\n paths.push(...getAllLeafPaths(child, fullPath));\n });\n }\n\n return paths;\n },\n [],\n );\n\n // Get selection state for a node (for multiple mode checkboxes)\n const getNodeSelectionState = React.useCallback(\n (\n option: CascaderOption,\n currentPath: string[],\n ): { checked: boolean; indeterminate: boolean } => {\n if (!option.children || option.children.length === 0) {\n const fullPath = [...currentPath, option.value];\n return { checked: isPathSelected(fullPath), indeterminate: false };\n }\n\n const leafPaths = getAllLeafPaths(option, currentPath);\n const selectedCount = leafPaths.filter((path) =>\n isPathSelected(path),\n ).length;\n\n return {\n checked: selectedCount === leafPaths.length && leafPaths.length > 0,\n indeterminate: selectedCount > 0 && selectedCount < leafPaths.length,\n };\n },\n [isPathSelected, getAllLeafPaths],\n );\n\n // Handle item click\n const handleItemClick = React.useCallback(\n async (option: CascaderOption, level: number) => {\n if (option.disabled) return;\n\n const newPath = [...selectedPath.slice(0, level), option.value];\n setSelectedPath(newPath);\n\n // Handle async loading\n if (loadData && !option.children && !option.isLeaf && !option.loading) {\n const selectedOpts = getSelectedOptions(newPath);\n await loadData(selectedOpts);\n return;\n }\n\n const hasChildren = option.children && option.children.length > 0;\n const isLeaf = !hasChildren;\n\n if (hasChildren && !multiple) {\n // Single mode with children - just expand\n setActiveMenus((prev) => [\n ...prev.slice(0, level + 1),\n option.children!,\n ]);\n\n // changeOnSelect allows selecting parent nodes\n if (changeOnSelect) {\n const selectedOpts = getSelectedOptions(newPath);\n if (value === undefined) setInternalValue(newPath);\n onChange?.(newPath, selectedOpts);\n }\n } else if (hasChildren && multiple) {\n // Multiple mode with children - toggle all leaves\n const leafPaths = getAllLeafPaths(\n option,\n selectedPath.slice(0, level),\n );\n const allSelected = leafPaths.every((path) => isPathSelected(path));\n\n let newValue: string[][];\n if (allSelected) {\n newValue = normalizedValue.filter(\n (sp) =>\n !leafPaths.some(\n (lp) =>\n lp.length === sp.length && lp.every((v, i) => v === sp[i]),\n ),\n );\n } else {\n const pathsToAdd = leafPaths.filter(\n (path) => !isPathSelected(path),\n );\n newValue = [...normalizedValue, ...pathsToAdd];\n }\n\n const newSelectedOptions = newValue.map((path) =>\n getSelectedOptions(path),\n );\n if (value === undefined) setInternalValue(newValue);\n onChange?.(newValue, newSelectedOptions);\n\n // Also expand\n setActiveMenus((prev) => [\n ...prev.slice(0, level + 1),\n option.children!,\n ]);\n } else if (isLeaf) {\n // Leaf node\n if (multiple) {\n let newValue: string[][];\n if (isPathSelected(newPath)) {\n newValue = normalizedValue.filter(\n (path) =>\n !(\n path.length === newPath.length &&\n path.every((val, idx) => val === newPath[idx])\n ),\n );\n } else {\n newValue = [...normalizedValue, newPath];\n }\n\n const newSelectedOptions = newValue.map((path) =>\n getSelectedOptions(path),\n );\n if (value === undefined) setInternalValue(newValue);\n onChange?.(newValue, newSelectedOptions);\n } else {\n // Single mode - select and close\n const selectedOpts = getSelectedOptions(newPath);\n if (value === undefined) setInternalValue(newPath);\n onChange?.(newPath, selectedOpts);\n onSelect?.(newPath, selectedOpts);\n handleOpenChange(false);\n }\n }\n },\n [\n selectedPath,\n value,\n onChange,\n onSelect,\n getSelectedOptions,\n multiple,\n isPathSelected,\n normalizedValue,\n getAllLeafPaths,\n changeOnSelect,\n loadData,\n handleOpenChange,\n ],\n );\n\n // Handle item hover (for expand on hover)\n const handleItemHover = React.useCallback(\n (option: CascaderOption, level: number, index: number) => {\n if (expandTrigger !== \"hover\" || option.disabled) return;\n\n setHoveredPath((prev) => [...prev.slice(0, level), index]);\n\n if (option.children && option.children.length > 0) {\n setActiveMenus((prev) => [\n ...prev.slice(0, level + 1),\n option.children!,\n ]);\n } else {\n setActiveMenus((prev) => prev.slice(0, level + 1));\n }\n },\n [expandTrigger],\n );\n\n // Handle clear\n const handleClear = React.useCallback(\n (e: React.MouseEvent) => {\n e.stopPropagation();\n const emptyValue = multiple ? [] : [];\n if (value === undefined) setInternalValue(emptyValue);\n onChange?.(emptyValue, []);\n },\n [value, onChange, multiple],\n );\n\n // Remove a selection in multiple mode\n const removeSelection = React.useCallback(\n (pathToRemove: string[], e: React.MouseEvent) => {\n e.stopPropagation();\n if (!multiple) return;\n\n const newValue = normalizedValue.filter(\n (path) =>\n !(\n path.length === pathToRemove.length &&\n path.every((val, idx) => val === pathToRemove[idx])\n ),\n );\n\n const newSelectedOptions = newValue.map((path) =>\n getSelectedOptions(path),\n );\n if (value === undefined) setInternalValue(newValue);\n onChange?.(newValue, newSelectedOptions);\n },\n [multiple, normalizedValue, value, onChange, getSelectedOptions],\n );\n\n // Handle keyboard navigation\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent) => {\n if (!isOpen) {\n if (e.key === \"Enter\" || e.key === \" \" || e.key === \"ArrowDown\") {\n e.preventDefault();\n handleOpenChange(true);\n }\n return;\n }\n\n switch (e.key) {\n case \"Escape\":\n e.preventDefault();\n handleOpenChange(false);\n break;\n\n case \"ArrowDown\":\n e.preventDefault();\n if (focusedIndex === null) {\n setFocusedIndex({ level: 0, index: 0 });\n } else {\n const currentMenu = activeMenus[focusedIndex.level];\n if (currentMenu && focusedIndex.index < currentMenu.length - 1) {\n setFocusedIndex({\n ...focusedIndex,\n index: focusedIndex.index + 1,\n });\n }\n }\n break;\n\n case \"ArrowUp\":\n e.preventDefault();\n if (focusedIndex && focusedIndex.index > 0) {\n setFocusedIndex({\n ...focusedIndex,\n index: focusedIndex.index - 1,\n });\n }\n break;\n\n case \"ArrowRight\":\n e.preventDefault();\n if (focusedIndex) {\n const currentMenu = activeMenus[focusedIndex.level];\n const option = currentMenu?.[focusedIndex.index];\n if (option?.children && option.children.length > 0) {\n setActiveMenus((prev) => [\n ...prev.slice(0, focusedIndex.level + 1),\n option.children!,\n ]);\n setFocusedIndex({ level: focusedIndex.level + 1, index: 0 });\n }\n }\n break;\n\n case \"ArrowLeft\":\n e.preventDefault();\n if (focusedIndex && focusedIndex.level > 0) {\n setActiveMenus((prev) => prev.slice(0, focusedIndex.level));\n setFocusedIndex({ level: focusedIndex.level - 1, index: 0 });\n }\n break;\n\n case \"Enter\":\n e.preventDefault();\n if (focusedIndex) {\n const currentMenu = activeMenus[focusedIndex.level];\n const option = currentMenu?.[focusedIndex.index];\n if (option) {\n handleItemClick(option, focusedIndex.level);\n }\n }\n break;\n }\n },\n [isOpen, focusedIndex, activeMenus, handleOpenChange, handleItemClick],\n );\n\n // Display value computation\n const displayValue = React.useMemo(() => {\n if (normalizedValue.length === 0) return null;\n\n if (displayRender) {\n if (multiple) {\n const allLabels = normalizedValue.map((path) =>\n getSelectedOptions(path).map((opt) => opt.label),\n );\n const allOptions = normalizedValue.map((path) =>\n getSelectedOptions(path),\n );\n return displayRender(allLabels, allOptions);\n } else {\n const selectedOpts = getSelectedOptions(normalizedValue[0] || []);\n const labels = selectedOpts.map((opt) => opt.label);\n return displayRender(labels, selectedOpts);\n }\n }\n\n if (!multiple) {\n const selectedOpts = getSelectedOptions(normalizedValue[0] || []);\n const labels = selectedOpts.map((opt) => opt.label);\n if (showPath) {\n return labels.join(pathSeparator);\n }\n return labels[labels.length - 1] || null;\n }\n\n return null;\n }, [\n normalizedValue,\n displayRender,\n getSelectedOptions,\n multiple,\n showPath,\n pathSeparator,\n ]);\n\n const showClearButton =\n clearable &&\n normalizedValue.length > 0 &&\n normalizedValue[0]?.[0] &&\n !disabled &&\n !loading;\n\n // Render cascader menus\n const renderCascaderMenus = () => {\n return (\n <div className={cn(\"flex [&>*:not(:first-child)]:rounded-l-none [&>*:not(:last-child)]:border-r-0 [&>*:not(:last-child)]:rounded-r-none cascader_dropdown\", classNames?.dropdown)}>\n {activeMenus.map((menu, level) => (\n <div\n key={level}\n ref={(el) => {\n menuRefs.current[level] = el;\n }}\n className={cn(cascaderMenuVariants({ size }), \"border-border cascader_menu\", classNames?.menu)}\n >\n {menu.length === 0 ? (\n <div className=\"px-3 py-6 text-center text-text-secondary text-sm\">\n {emptyContent}\n </div>\n ) : (\n menu.map((option, index) => {\n const isActive =\n selectedPath[level] === option.value ||\n (expandTrigger === \"hover\" && hoveredPath[level] === index);\n const isFocused =\n focusedIndex?.level === level &&\n focusedIndex?.index === index;\n const currentPath = selectedPath.slice(0, level);\n const fullPath = [...currentPath, option.value];\n const selectionState = multiple\n ? getNodeSelectionState(option, currentPath)\n : null;\n const isLeafSelected =\n !multiple &&\n isPathSelected(fullPath) &&\n (!option.children || option.children.length === 0);\n\n return (\n <div\n key={option.value}\n className={cn(\n cascaderItemVariants({\n size,\n disabled: !!option.disabled,\n active: isActive || isFocused,\n selected: isLeafSelected,\n }),\n \"cascader_option\",\n classNames?.option\n )}\n onClick={() => handleItemClick(option, level)}\n onMouseEnter={() => handleItemHover(option, level, index)}\n >\n {multiple && (\n <div\n className={cn(\n \"w-4 h-4 border rounded flex items-center justify-center shrink-0\",\n selectionState?.checked\n ? \"bg-primary border-primary\"\n : \"border-border\",\n )}\n >\n {selectionState?.checked && (\n <Check className=\"h-3 w-3 text-background\" />\n )}\n {selectionState?.indeterminate &&\n !selectionState?.checked && (\n <div className=\"w-2 h-0.5 bg-primary\" />\n )}\n </div>\n )}\n <span className=\"flex-1 truncate\">{option.label}</span>\n <span\n className={cn(\n \"shrink-0 flex items-center\",\n iconSizes[size],\n )}\n >\n {option.loading && (\n <Loader2\n className={cn(\"animate-spin\", iconSizes[size])}\n />\n )}\n {!option.loading &&\n option.children &&\n option.children.length > 0 && (\n <ChevronRight className={iconSizes[size]} />\n )}\n {!option.loading && isLeafSelected && (\n <Check\n className={cn(iconSizes[size], \"text-primary\")}\n />\n )}\n </span>\n </div>\n );\n })\n )}\n </div>\n ))}\n </div>\n );\n };\n\n // Render trigger content\n const renderTriggerContent = () => {\n if (multiple && normalizedValue.length > 0) {\n const visibleTags = normalizedValue.slice(0, maxTagCount);\n const remainingCount = normalizedValue.length - maxTagCount;\n\n return (\n <div className=\"flex-1 flex flex-wrap gap-1 items-center min-h-0 overflow-hidden\">\n {visibleTags.map((path, idx) => {\n const selectedOpts = getSelectedOptions(path);\n const label = showPath\n ? selectedOpts.map((o) => o.label).join(pathSeparator)\n : selectedOpts[selectedOpts.length - 1]?.label || \"\";\n\n if (tagRender) {\n return tagRender({\n label,\n value: path,\n closable: !disabled,\n onClose: () =>\n removeSelection(path, {\n stopPropagation: () => {},\n } as React.MouseEvent),\n });\n }\n\n return (\n <span\n key={idx}\n className={cn(\n \"inline-flex items-center gap-1 bg-primary/10 text-primary rounded whitespace-nowrap\",\n tagSizeClasses[size],\n )}\n >\n <span className=\"truncate max-w-[150px]\">{label}</span>\n {!disabled && (\n <button\n type=\"button\"\n onClick={(e) => removeSelection(path, e)}\n className=\"hover:text-error shrink-0\"\n >\n <X className=\"h-3 w-3\" />\n </button>\n )}\n </span>\n );\n })}\n {remainingCount > 0 && (\n <span\n className={cn(\n \"inline-flex items-center bg-surface text-text-secondary rounded whitespace-nowrap\",\n tagSizeClasses[size],\n )}\n >\n +{remainingCount}\n </span>\n )}\n </div>\n );\n }\n\n return (\n <span\n className={cn(\"truncate flex-1\", !displayValue && \"text-text-secondary\")}\n >\n {displayValue || placeholder}\n </span>\n );\n };\n\n // Popover placement mapping\n const popoverSide = placement.startsWith(\"top\") ? \"top\" : \"bottom\";\n const popoverAlign = placement.endsWith(\"Right\") ? \"end\" : \"start\";\n\n const triggerElement = (\n <div\n ref={ref}\n className={cn(\n cascaderTriggerVariants({ status, size, fullWidth }),\n disabled && \"opacity-50 cursor-not-allowed\",\n \"cascader_trigger\",\n classNames?.trigger,\n className,\n )}\n onKeyDown={handleKeyDown}\n tabIndex={disabled ? -1 : 0}\n role=\"combobox\"\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n aria-disabled={disabled}\n >\n {renderTriggerContent()}\n <div className=\"flex items-center gap-1 text-text-secondary shrink-0\">\n {loading && (\n <Loader2\n className={cn(\"animate-spin text-text-secondary\", iconSizes[size])}\n />\n )}\n {!loading && showClearButton && (\n <button\n type=\"button\"\n onClick={handleClear}\n className=\"hover:text-text-primary\"\n aria-label=\"Clear selection\"\n >\n <X className={iconSizes[size]} />\n </button>\n )}\n {!loading && (\n <ChevronDown\n className={cn(\n \"transition-transform\",\n iconSizes[size],\n isOpen && \"rotate-180\",\n )}\n />\n )}\n </div>\n </div>\n );\n\n const cascaderElement = (\n <div\n ref={containerRef}\n className={cn(\"relative cascader_root\", fullWidth ? \"w-full\" : \"inline-block\", classNames?.root)}\n >\n <PopoverPrimitive.Root open={isOpen} onOpenChange={handleOpenChange}>\n <PopoverPrimitive.Trigger asChild>\n {triggerElement}\n </PopoverPrimitive.Trigger>\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n side={popoverSide}\n align={popoverAlign}\n sideOffset={4}\n className=\"z-50 outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\"\n >\n {renderCascaderMenus()}\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n </PopoverPrimitive.Root>\n </div>\n );\n\n if (!label && !helperMessage) return cascaderElement;\n\n return (\n <div\n className={cn(\"flex flex-col\", fullWidth ? \"w-full\" : \"inline-block\")}\n >\n <div className=\"flex gap-2 items-center mb-0.5\">\n {label && (\n <label className=\"text-sm font-medium text-text-secondary\">\n {label}\n {required && <span className=\"text-error ml-1\">*</span>}\n </label>\n )}\n {helperMessage && messagePosition === \"top\" && (\n <span\n className={cn(\n \"text-xs\",\n status === \"error\" && \"text-error\",\n status === \"warning\" && \"text-warning\",\n status === \"info\" && \"text-info\",\n status === \"success\" && \"text-success\",\n status === \"default\" && \"text-text-secondary\",\n )}\n >\n {helperMessage}\n </span>\n )}\n </div>\n {cascaderElement}\n {helperMessage && messagePosition === \"bottom\" && (\n <span\n className={cn(\n \"text-xs mt-0.5\",\n status === \"error\" && \"text-error\",\n status === \"warning\" && \"text-warning\",\n status === \"info\" && \"text-info\",\n status === \"success\" && \"text-success\",\n status === \"default\" && \"text-text-secondary\",\n )}\n >\n {helperMessage}\n </span>\n )}\n </div>\n );\n },\n);\n\nCascader.displayName = \"Cascader\";\n\nexport type * from \"./types\";\nexport default Cascader;\n"]}
@@ -1,4 +1,4 @@
1
- import { cn } from './chunk-YNNAOXU5.js';
1
+ import { cn } from './chunk-NGYLRX6F.js';
2
2
  import { cva } from 'class-variance-authority';
3
3
  import { InboxIcon } from 'lucide-react';
4
4
  import React from 'react';
@@ -20,7 +20,7 @@ var emptyContainerVariants = cva(
20
20
  }
21
21
  }
22
22
  );
23
- var emptyIconVariants = cva("text-text-muted mb-4", {
23
+ var emptyIconVariants = cva("text-text-secondary mb-4", {
24
24
  variants: {
25
25
  size: {
26
26
  xs: "w-8 h-8",
@@ -59,7 +59,7 @@ var emptyTitleVariants = cva("font-semibold text-text-primary mb-2", {
59
59
  size: "md"
60
60
  }
61
61
  });
62
- var emptyDescriptionVariants = cva("text-text-muted", {
62
+ var emptyDescriptionVariants = cva("text-text-secondary", {
63
63
  variants: {
64
64
  size: {
65
65
  xs: "text-[10px] max-w-[200px]",
@@ -94,20 +94,46 @@ var Empty = React.memo(
94
94
  description = "There is no data to display",
95
95
  children,
96
96
  size = "md",
97
- className
97
+ className,
98
+ classNames
98
99
  }) => {
99
- return /* @__PURE__ */ jsxs("div", { className: cn(emptyContainerVariants({ size }), className), children: [
100
+ return /* @__PURE__ */ jsxs("div", { className: cn(
101
+ "empty_root",
102
+ emptyContainerVariants({ size }),
103
+ classNames?.root,
104
+ className
105
+ ), children: [
100
106
  image ? /* @__PURE__ */ jsx(
101
107
  "img",
102
108
  {
103
109
  src: image,
104
110
  alt: imageAlt,
105
- className: emptyImageVariants({ size })
111
+ className: cn(
112
+ "empty_icon",
113
+ emptyImageVariants({ size }),
114
+ classNames?.icon
115
+ )
106
116
  }
107
- ) : /* @__PURE__ */ jsx("div", { className: emptyIconVariants({ size }), children: icon || /* @__PURE__ */ jsx(InboxIcon, { className: "size-full" }) }),
108
- title && /* @__PURE__ */ jsx("h3", { className: emptyTitleVariants({ size }), children: title }),
109
- description && /* @__PURE__ */ jsx("p", { className: emptyDescriptionVariants({ size }), children: description }),
110
- children && /* @__PURE__ */ jsx("div", { className: emptyActionsVariants({ size }), children })
117
+ ) : /* @__PURE__ */ jsx("div", { className: cn(
118
+ "empty_icon",
119
+ emptyIconVariants({ size }),
120
+ classNames?.icon
121
+ ), children: icon || /* @__PURE__ */ jsx(InboxIcon, { className: "size-full" }) }),
122
+ title && /* @__PURE__ */ jsx("h3", { className: cn(
123
+ "empty_title",
124
+ emptyTitleVariants({ size }),
125
+ classNames?.title
126
+ ), children: title }),
127
+ description && /* @__PURE__ */ jsx("p", { className: cn(
128
+ "empty_description",
129
+ emptyDescriptionVariants({ size }),
130
+ classNames?.description
131
+ ), children: description }),
132
+ children && /* @__PURE__ */ jsx("div", { className: cn(
133
+ "empty_action",
134
+ emptyActionsVariants({ size }),
135
+ classNames?.action
136
+ ), children })
111
137
  ] });
112
138
  }
113
139
  );
@@ -115,5 +141,5 @@ Empty.displayName = "Empty";
115
141
  var empty_default = Empty;
116
142
 
117
143
  export { empty_default };
118
- //# sourceMappingURL=chunk-ROR4E6IE.js.map
119
- //# sourceMappingURL=chunk-ROR4E6IE.js.map
144
+ //# sourceMappingURL=chunk-2WZVD7P3.js.map
145
+ //# sourceMappingURL=chunk-2WZVD7P3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/empty/index.tsx"],"names":[],"mappings":"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","file":"chunk-2WZVD7P3.js","sourcesContent":["import { cva } from 'class-variance-authority'\nimport { InboxIcon } from 'lucide-react'\nimport React from 'react'\n\nimport { cn } from '../utils'\nimport type { EmptyProps } from './types'\n\nconst emptyContainerVariants = cva(\n 'flex flex-col items-center justify-center text-center',\n {\n variants: {\n size: {\n xs: 'py-4 px-2',\n sm: 'py-6 px-4',\n md: 'py-12 px-6',\n lg: 'py-16 px-8',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nconst emptyIconVariants = cva('text-text-secondary mb-4', {\n variants: {\n size: {\n xs: 'w-8 h-8',\n sm: 'w-12 h-12',\n md: 'w-16 h-16',\n lg: 'w-24 h-24',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nconst emptyImageVariants = cva('mb-4 object-contain', {\n variants: {\n size: {\n xs: 'w-16 h-16',\n sm: 'w-24 h-24',\n md: 'w-32 h-32',\n lg: 'w-48 h-48',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nconst emptyTitleVariants = cva('font-semibold text-text-primary mb-2', {\n variants: {\n size: {\n xs: 'text-sm',\n sm: 'text-base',\n md: 'text-lg',\n lg: 'text-xl',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nconst emptyDescriptionVariants = cva('text-text-secondary', {\n variants: {\n size: {\n xs: 'text-[10px] max-w-[200px]',\n sm: 'text-xs max-w-xs',\n md: 'text-sm max-w-sm',\n lg: 'text-base max-w-md',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nconst emptyActionsVariants = cva('mt-6 flex gap-2 flex-wrap justify-center', {\n variants: {\n size: {\n xs: 'mt-2',\n sm: 'mt-4',\n md: 'mt-6',\n lg: 'mt-8',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nconst Empty = React.memo<EmptyProps>(\n ({\n icon,\n image,\n imageAlt = 'Empty',\n title = 'No Data',\n description = 'There is no data to display',\n children,\n size = 'md',\n className,\n classNames,\n }) => {\n return (\n <div className={cn(\n 'empty_root',\n emptyContainerVariants({ size }),\n classNames?.root,\n className\n )}>\n {/* Image or Icon */}\n {image ? (\n <img\n src={image}\n alt={imageAlt}\n className={cn(\n 'empty_icon',\n emptyImageVariants({ size }),\n classNames?.icon\n )}\n />\n ) : (\n <div className={cn(\n 'empty_icon',\n emptyIconVariants({ size }),\n classNames?.icon\n )}>\n {icon || <InboxIcon className=\"size-full\" />}\n </div>\n )}\n\n {/* Title */}\n {title && (\n <h3 className={cn(\n 'empty_title',\n emptyTitleVariants({ size }),\n classNames?.title\n )}>\n {title}\n </h3>\n )}\n\n {/* Description */}\n {description && (\n <p className={cn(\n 'empty_description',\n emptyDescriptionVariants({ size }),\n classNames?.description\n )}>\n {description}\n </p>\n )}\n\n {/* Actions or Custom Content */}\n {children && (\n <div className={cn(\n 'empty_action',\n emptyActionsVariants({ size }),\n classNames?.action\n )}>\n {children}\n </div>\n )}\n </div>\n )\n },\n)\n\nEmpty.displayName = 'Empty'\n\nexport type * from './types'\nexport default Empty\n"]}
@@ -0,0 +1,84 @@
1
+ import { cn } from './chunk-NGYLRX6F.js';
2
+ import { cva } from 'class-variance-authority';
3
+ import React from 'react';
4
+ import { jsx } from 'react/jsx-runtime';
5
+
6
+ var buttonGroupVariants = cva("inline-flex", {
7
+ variants: {
8
+ vertical: {
9
+ true: "flex-col",
10
+ false: "flex-row"
11
+ },
12
+ fullWidth: {
13
+ true: "w-full [&>*]:flex-1",
14
+ false: ""
15
+ }
16
+ },
17
+ defaultVariants: {
18
+ vertical: false,
19
+ fullWidth: false
20
+ }
21
+ });
22
+ var attachedHorizontalClasses = "[&>*:not(:first-child)]:rounded-l-none [&>*:not(:last-child)]:border-r-0 [&>*:not(:last-child)]:rounded-r-none";
23
+ var attachedVerticalClasses = "[&>*:not(:first-child)]:rounded-t-none [&>*:not(:last-child)]:border-b-0 [&>*:not(:last-child)]:rounded-b-none";
24
+ var gapClasses = {
25
+ sm: "gap-1",
26
+ md: "gap-2",
27
+ lg: "gap-3"
28
+ };
29
+ var ButtonGroup = React.memo(
30
+ ({
31
+ vertical = false,
32
+ attached = true,
33
+ gap = "md",
34
+ fullWidth = false,
35
+ size,
36
+ variant,
37
+ color,
38
+ disabled = false,
39
+ className,
40
+ classNames,
41
+ children,
42
+ ref,
43
+ ...props
44
+ }) => {
45
+ const enhancedChildren = React.Children.map(children, (child) => {
46
+ if (React.isValidElement(child)) {
47
+ return React.cloneElement(child, {
48
+ // Group props are defaults - child props take precedence
49
+ size: child.props.size ?? size,
50
+ variant: child.props.variant ?? variant,
51
+ color: child.props.color ?? color,
52
+ // Disabled is additive - if group is disabled, all children are disabled
53
+ disabled: child.props.disabled || disabled,
54
+ // Apply button classNames from ButtonGroup
55
+ className: cn(classNames?.button, child.props.className)
56
+ });
57
+ }
58
+ return child;
59
+ });
60
+ return /* @__PURE__ */ jsx(
61
+ "div",
62
+ {
63
+ ref,
64
+ role: "group",
65
+ className: cn(
66
+ "buttonGroup_root",
67
+ buttonGroupVariants({ vertical, fullWidth }),
68
+ attached ? vertical ? attachedVerticalClasses : attachedHorizontalClasses : gapClasses[gap],
69
+ classNames?.root,
70
+ className
71
+ ),
72
+ "data-slot": "root",
73
+ ...props,
74
+ children: enhancedChildren
75
+ }
76
+ );
77
+ }
78
+ );
79
+ ButtonGroup.displayName = "ButtonGroup";
80
+ var button_group_default = ButtonGroup;
81
+
82
+ export { button_group_default };
83
+ //# sourceMappingURL=chunk-3UCZ4GMN.js.map
84
+ //# sourceMappingURL=chunk-3UCZ4GMN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/button-group/index.tsx"],"names":[],"mappings":";;;;;AAOA,IAAM,mBAAA,GAAsB,IAAI,aAAA,EAAe;AAAA,EAC7C,QAAA,EAAU;AAAA,IACR,QAAA,EAAU;AAAA,MACR,IAAA,EAAM,UAAA;AAAA,MACN,KAAA,EAAO;AAAA,KACT;AAAA,IACA,SAAA,EAAW;AAAA,MACT,IAAA,EAAM,qBAAA;AAAA,MACN,KAAA,EAAO;AAAA;AACT,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,QAAA,EAAU,KAAA;AAAA,IACV,SAAA,EAAW;AAAA;AAEf,CAAC,CAAA;AAKD,IAAM,yBAAA,GACJ,gHAAA;AAEF,IAAM,uBAAA,GACJ,gHAAA;AAKF,IAAM,UAAA,GAAa;AAAA,EACjB,EAAA,EAAI,OAAA;AAAA,EACJ,EAAA,EAAI,OAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AA8BA,IAAM,cAAc,KAAA,CAAM,IAAA;AAAA,EACxB,CAAC;AAAA,IACC,QAAA,GAAW,KAAA;AAAA,IACX,QAAA,GAAW,IAAA;AAAA,IACX,GAAA,GAAM,IAAA;AAAA,IACN,SAAA,GAAY,KAAA;AAAA,IACZ,IAAA;AAAA,IACA,OAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA,GAAW,KAAA;AAAA,IACX,SAAA;AAAA,IACA,UAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAA;AAAA,IACA,GAAG;AAAA,GACL,KAAM;AAEJ,IAAA,MAAM,mBAAmB,KAAA,CAAM,QAAA,CAAS,GAAA,CAAI,QAAA,EAAU,CAAC,KAAA,KAAU;AAC/D,MAAA,IAAI,KAAA,CAAM,cAAA,CAA4B,KAAK,CAAA,EAAG;AAC5C,QAAA,OAAO,KAAA,CAAM,aAAa,KAAA,EAAO;AAAA;AAAA,UAE/B,IAAA,EAAM,KAAA,CAAM,KAAA,CAAM,IAAA,IAAQ,IAAA;AAAA,UAC1B,OAAA,EAAS,KAAA,CAAM,KAAA,CAAM,OAAA,IAAW,OAAA;AAAA,UAChC,KAAA,EAAO,KAAA,CAAM,KAAA,CAAM,KAAA,IAAS,KAAA;AAAA;AAAA,UAE5B,QAAA,EAAU,KAAA,CAAM,KAAA,CAAM,QAAA,IAAY,QAAA;AAAA;AAAA,UAElC,WAAW,EAAA,CAAG,UAAA,EAAY,MAAA,EAAQ,KAAA,CAAM,MAAM,SAAS;AAAA,SACxD,CAAA;AAAA,MACH;AACA,MAAA,OAAO,KAAA;AAAA,IACT,CAAC,CAAA;AAED,IAAA,uBACE,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,IAAA,EAAK,OAAA;AAAA,QACL,SAAA,EAAW,EAAA;AAAA,UACT,kBAAA;AAAA,UACA,mBAAA,CAAoB,EAAE,QAAA,EAAU,SAAA,EAAW,CAAA;AAAA,UAC3C,QAAA,GACI,QAAA,GACE,uBAAA,GACA,yBAAA,GACF,WAAW,GAAG,CAAA;AAAA,UAClB,UAAA,EAAY,IAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA,WAAA,EAAU,MAAA;AAAA,QACT,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA;AAAA;AAAA,KACH;AAAA,EAEJ;AACF,CAAA;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA;AAG1B,IAAO,oBAAA,GAAQ","file":"chunk-3UCZ4GMN.js","sourcesContent":["import { cva } from 'class-variance-authority'\nimport React from 'react'\n\nimport type { ButtonProps } from '../button/types'\nimport { cn } from '../utils'\nimport type { ButtonGroupProps } from './types'\n\nconst buttonGroupVariants = cva('inline-flex', {\n variants: {\n vertical: {\n true: 'flex-col',\n false: 'flex-row',\n },\n fullWidth: {\n true: 'w-full [&>*]:flex-1',\n false: '',\n },\n },\n defaultVariants: {\n vertical: false,\n fullWidth: false,\n },\n})\n\n/**\n * Attached button styling - removes inner borders and rounds only outer corners\n */\nconst attachedHorizontalClasses =\n '[&>*:not(:first-child)]:rounded-l-none [&>*:not(:last-child)]:border-r-0 [&>*:not(:last-child)]:rounded-r-none'\n\nconst attachedVerticalClasses =\n '[&>*:not(:first-child)]:rounded-t-none [&>*:not(:last-child)]:border-b-0 [&>*:not(:last-child)]:rounded-b-none'\n\n/**\n * Gap size classes\n */\nconst gapClasses = {\n sm: 'gap-1',\n md: 'gap-2',\n lg: 'gap-3',\n}\n\n/**\n * ButtonGroup Component\n *\n * Groups multiple buttons together with consistent styling and spacing.\n * Can propagate common props (size, variant, color, disabled) to all child buttons.\n *\n * @example\n * // Basic horizontal group\n * <ButtonGroup>\n * <Button>Save</Button>\n * <Button>Cancel</Button>\n * </ButtonGroup>\n *\n * @example\n * // Vertical group with uniform styling\n * <ButtonGroup vertical variant=\"outline\" size=\"sm\">\n * <Button>Option 1</Button>\n * <Button>Option 2</Button>\n * </ButtonGroup>\n *\n * @example\n * // Separated buttons with gap\n * <ButtonGroup attached={false} gap=\"md\">\n * <Button>A</Button>\n * <Button>B</Button>\n * <Button>C</Button>\n * </ButtonGroup>\n */\nconst ButtonGroup = React.memo<ButtonGroupProps>(\n ({\n vertical = false,\n attached = true,\n gap = 'md',\n fullWidth = false,\n size,\n variant,\n color,\n disabled = false,\n className,\n classNames,\n children,\n ref,\n ...props\n }) => {\n // Clone children and inject group props\n const enhancedChildren = React.Children.map(children, (child) => {\n if (React.isValidElement<ButtonProps>(child)) {\n return React.cloneElement(child, {\n // Group props are defaults - child props take precedence\n size: child.props.size ?? size,\n variant: child.props.variant ?? variant,\n color: child.props.color ?? color,\n // Disabled is additive - if group is disabled, all children are disabled\n disabled: child.props.disabled || disabled,\n // Apply button classNames from ButtonGroup\n className: cn(classNames?.button, child.props.className),\n })\n }\n return child\n })\n\n return (\n <div\n ref={ref}\n role=\"group\"\n className={cn(\n 'buttonGroup_root',\n buttonGroupVariants({ vertical, fullWidth }),\n attached\n ? vertical\n ? attachedVerticalClasses\n : attachedHorizontalClasses\n : gapClasses[gap],\n classNames?.root,\n className,\n )}\n data-slot=\"root\"\n {...props}\n >\n {enhancedChildren}\n </div>\n )\n },\n)\n\nButtonGroup.displayName = 'ButtonGroup'\n\nexport type * from './types'\nexport default ButtonGroup\n"]}
@@ -1,4 +1,4 @@
1
- import { cn } from './chunk-YNNAOXU5.js';
1
+ import { cn } from './chunk-NGYLRX6F.js';
2
2
  import React from 'react';
3
3
  import { jsxs, jsx } from 'react/jsx-runtime';
4
4
 
@@ -9,6 +9,7 @@ var CheckboxGroup = React.memo(
9
9
  error,
10
10
  orientation = "vertical",
11
11
  className,
12
+ classNames,
12
13
  children,
13
14
  ref,
14
15
  ...props
@@ -17,16 +18,18 @@ var CheckboxGroup = React.memo(
17
18
  "div",
18
19
  {
19
20
  ref,
20
- className: cn("w-full", className),
21
+ className: cn("checkboxGroup_root", "w-full", className, classNames?.root),
21
22
  ...props,
22
23
  children: [
23
- label && /* @__PURE__ */ jsx("div", { className: "mb-2", children: /* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-text-secondary", children: label }) }),
24
+ label && /* @__PURE__ */ jsx("div", { className: "mb-2", children: /* @__PURE__ */ jsx("span", { className: cn("checkboxGroup_label", "text-sm font-medium text-text-secondary", classNames?.label), children: label }) }),
24
25
  /* @__PURE__ */ jsx(
25
26
  "div",
26
27
  {
27
28
  className: cn(
29
+ "checkboxGroup_group",
28
30
  "flex",
29
- orientation === "vertical" ? "flex-col gap-2" : "flex-row flex-wrap gap-4"
31
+ orientation === "vertical" ? "flex-col gap-2" : "flex-row flex-wrap gap-4",
32
+ classNames?.group
30
33
  ),
31
34
  children
32
35
  }
@@ -35,8 +38,10 @@ var CheckboxGroup = React.memo(
35
38
  "p",
36
39
  {
37
40
  className: cn(
41
+ error ? "checkboxGroup_error" : "checkboxGroup_helper",
38
42
  "mt-2 text-xs",
39
- error ? "text-error" : "text-text-secondary"
43
+ error ? "text-error" : "text-text-secondary",
44
+ error ? classNames?.error : classNames?.helper
40
45
  ),
41
46
  children: error || helperText
42
47
  }
@@ -50,5 +55,5 @@ CheckboxGroup.displayName = "CheckboxGroup";
50
55
  var checkbox_group_default = CheckboxGroup;
51
56
 
52
57
  export { checkbox_group_default };
53
- //# sourceMappingURL=chunk-RPAQAZTI.js.map
54
- //# sourceMappingURL=chunk-RPAQAZTI.js.map
58
+ //# sourceMappingURL=chunk-4LSKRZOT.js.map
59
+ //# sourceMappingURL=chunk-4LSKRZOT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/checkbox-group/index.tsx"],"names":[],"mappings":";;;;AAKA,IAAM,gBAAgB,KAAA,CAAM,IAAA;AAAA,EAC1B,CAAC;AAAA,IACC,KAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,WAAA,GAAc,UAAA;AAAA,IACd,SAAA;AAAA,IACA,UAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAA;AAAA,IACA,GAAG;AAAA,GACL,KAAM;AACJ,IAAA,uBACE,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,WAAW,EAAA,CAAG,oBAAA,EAAsB,QAAA,EAAU,SAAA,EAAW,YAAY,IAAI,CAAA;AAAA,QACxE,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,KAAA,oBACC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,MAAA,EACb,8BAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,qBAAA,EAAuB,yCAAA,EAA2C,UAAA,EAAY,KAAK,CAAA,EACpG,iBACH,CAAA,EACF,CAAA;AAAA,0BAEF,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,qBAAA;AAAA,gBACA,MAAA;AAAA,gBACA,WAAA,KAAgB,aACZ,gBAAA,GACA,0BAAA;AAAA,gBACJ,UAAA,EAAY;AAAA,eACd;AAAA,cAEC;AAAA;AAAA,WACH;AAAA,UAAA,CACE,cAAc,KAAA,qBACd,GAAA;AAAA,YAAC,GAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,QAAQ,qBAAA,GAAwB,sBAAA;AAAA,gBAChC,cAAA;AAAA,gBACA,QAAQ,YAAA,GAAe,qBAAA;AAAA,gBACvB,KAAA,GAAQ,UAAA,EAAY,KAAA,GAAQ,UAAA,EAAY;AAAA,eAC1C;AAAA,cAEC,QAAA,EAAA,KAAA,IAAS;AAAA;AAAA;AACZ;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF,CAAA;AAEA,aAAA,CAAc,WAAA,GAAc,eAAA;AAG5B,IAAO,sBAAA,GAAQ","file":"chunk-4LSKRZOT.js","sourcesContent":["import React from 'react'\n\nimport { cn } from '../utils'\nimport type { CheckboxGroupProps } from './types'\n\nconst CheckboxGroup = React.memo<CheckboxGroupProps>(\n ({\n label,\n helperText,\n error,\n orientation = 'vertical',\n className,\n classNames,\n children,\n ref,\n ...props\n }) => {\n return (\n <div\n ref={ref}\n className={cn('checkboxGroup_root', 'w-full', className, classNames?.root)}\n {...props}\n >\n {label && (\n <div className=\"mb-2\">\n <span className={cn('checkboxGroup_label', 'text-sm font-medium text-text-secondary', classNames?.label)}>\n {label}\n </span>\n </div>\n )}\n <div\n className={cn(\n 'checkboxGroup_group',\n 'flex',\n orientation === 'vertical'\n ? 'flex-col gap-2'\n : 'flex-row flex-wrap gap-4',\n classNames?.group,\n )}\n >\n {children}\n </div>\n {(helperText || error) && (\n <p\n className={cn(\n error ? 'checkboxGroup_error' : 'checkboxGroup_helper',\n 'mt-2 text-xs',\n error ? 'text-error' : 'text-text-secondary',\n error ? classNames?.error : classNames?.helper,\n )}\n >\n {error || helperText}\n </p>\n )}\n </div>\n )\n },\n)\n\nCheckboxGroup.displayName = 'CheckboxGroup'\n\nexport type * from './types'\nexport default CheckboxGroup\n"]}
@@ -1,6 +1,6 @@
1
- import { tree_default } from './chunk-SAVE5ACL.js';
2
- import { Popover, PopoverTrigger, PopoverContent } from './chunk-3PFA3YG6.js';
3
- import { getValidationStatus, cn, iconSizes, statusMessageVariants } from './chunk-YNNAOXU5.js';
1
+ import { tree_default } from './chunk-Q57THXIU.js';
2
+ import { Popover, PopoverTrigger, PopoverContent } from './chunk-DH7R6NBG.js';
3
+ import { getValidationStatus, cn, iconSizes, statusMessageVariants } from './chunk-NGYLRX6F.js';
4
4
  import { cva } from 'class-variance-authority';
5
5
  import { X, Loader2, Search, ChevronDown } from 'lucide-react';
6
6
  import React from 'react';
@@ -18,10 +18,10 @@ var treeSelectTriggerVariants = cva(
18
18
  success: "border-success"
19
19
  },
20
20
  size: {
21
- xs: "h-[var(--select-height-xs)] px-[var(--select-padding-x-xs)] text-xs gap-1.5",
22
- sm: "h-[var(--input-height-sm)] px-1 text-sm gap-2",
23
- md: "h-[var(--input-height-md)] px-2 text-base gap-2",
24
- lg: "h-[var(--input-height-lg)] px-3 text-lg gap-3"
21
+ xs: "h-(--select-height-xs) px-(--select-padding-x-xs) text-xs gap-1.5",
22
+ sm: "h-(--input-height-sm) px-1 text-sm gap-2",
23
+ md: "h-(--input-height-md) px-2 text-base gap-2",
24
+ lg: "h-(--input-height-lg) px-3 text-lg gap-3"
25
25
  },
26
26
  fullWidth: {
27
27
  true: "w-full",
@@ -63,6 +63,7 @@ var TreeSelect = React.memo(
63
63
  showLine = false,
64
64
  showIcon = true,
65
65
  className,
66
+ classNames,
66
67
  ref,
67
68
  ...props
68
69
  }) => {
@@ -305,7 +306,12 @@ var TreeSelect = React.memo(
305
306
  const treeSelectElement = /* @__PURE__ */ jsx(
306
307
  "div",
307
308
  {
308
- className: cn("relative group", fullWidth ? "w-full" : "inline-block"),
309
+ className: cn(
310
+ "treeSelect_root",
311
+ "relative group",
312
+ fullWidth ? "w-full" : "inline-block",
313
+ classNames?.root
314
+ ),
309
315
  ref,
310
316
  ...props,
311
317
  children: /* @__PURE__ */ jsxs(
@@ -320,9 +326,11 @@ var TreeSelect = React.memo(
320
326
  ref: triggerRef,
321
327
  type: "button",
322
328
  className: cn(
329
+ "treeSelect_trigger",
323
330
  treeSelectTriggerVariants({ status, size, fullWidth }),
324
331
  loading && "opacity-50",
325
- className
332
+ className,
333
+ classNames?.trigger
326
334
  ),
327
335
  disabled: disabled || loading,
328
336
  "aria-haspopup": "tree",
@@ -350,7 +358,7 @@ var TreeSelect = React.memo(
350
358
  },
351
359
  node.key
352
360
  )),
353
- selectedNodes.length > visibleChipsCount && /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center px-2 py-0.5 bg-surface text-text-muted rounded text-sm whitespace-nowrap", children: [
361
+ selectedNodes.length > visibleChipsCount && /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center px-2 py-0.5 bg-surface text-text-secondary rounded text-sm whitespace-nowrap", children: [
354
362
  "+",
355
363
  selectedNodes.length - visibleChipsCount
356
364
  ] })
@@ -379,7 +387,7 @@ var TreeSelect = React.memo(
379
387
  {
380
388
  ref: inputRef,
381
389
  type: "text",
382
- className: "bg-transparent outline-none cursor-pointer placeholder:text-text-muted flex-1 min-w-0 pointer-events-none",
390
+ className: "bg-transparent outline-none cursor-pointer placeholder:text-text-secondary/50 flex-1 min-w-0 pointer-events-none",
383
391
  placeholder: selectedNodes.length > 0 ? "" : placeholder,
384
392
  value: searchQuery,
385
393
  onChange: handleInputChange,
@@ -390,7 +398,7 @@ var TreeSelect = React.memo(
390
398
  tabIndex: -1
391
399
  }
392
400
  ),
393
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1 text-text-muted", children: [
401
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1 text-text-secondary", children: [
394
402
  getDisplayValue && !disabled && !loading && /* @__PURE__ */ jsx(
395
403
  "button",
396
404
  {
@@ -418,7 +426,11 @@ var TreeSelect = React.memo(
418
426
  /* @__PURE__ */ jsx(
419
427
  PopoverContent,
420
428
  {
421
- className: "p-2 w-[var(--radix-popover-trigger-width)]",
429
+ className: cn(
430
+ "treeSelect_dropdown",
431
+ "p-2 w-[var(--radix-popover-trigger-width)]",
432
+ classNames?.dropdown
433
+ ),
422
434
  align: "start",
423
435
  onOpenAutoFocus: (e) => {
424
436
  e.preventDefault();
@@ -431,7 +443,7 @@ var TreeSelect = React.memo(
431
443
  style: { maxHeight: maxDropdownHeight },
432
444
  role: "tree",
433
445
  "aria-labelledby": label ? "tree-select-label" : void 0,
434
- children: filteredData.length === 0 ? /* @__PURE__ */ jsx("div", { className: "px-3 py-4 text-center text-sm text-text-muted", children: "No options found" }) : /* @__PURE__ */ jsx(
446
+ children: filteredData.length === 0 ? /* @__PURE__ */ jsx("div", { className: "px-3 py-4 text-center text-sm text-text-secondary", children: "No options found" }) : /* @__PURE__ */ jsx(
435
447
  tree_default,
436
448
  {
437
449
  data: filteredData,
@@ -447,7 +459,12 @@ var TreeSelect = React.memo(
447
459
  showIcon,
448
460
  defaultExpandAll: defaultExpandAll || !!searchQuery,
449
461
  expandedKeys: searchQuery ? void 0 : expandedKeys,
450
- onExpand: setExpandedKeys
462
+ onExpand: setExpandedKeys,
463
+ className: cn("treeSelect_tree", classNames?.tree),
464
+ classNames: {
465
+ node: cn("treeSelect_node", classNames?.node),
466
+ label: cn("treeSelect_label", classNames?.label)
467
+ }
451
468
  }
452
469
  )
453
470
  }
@@ -467,7 +484,7 @@ var TreeSelect = React.memo(
467
484
  {
468
485
  id: "tree-select-label",
469
486
  className: "block mb-0.5",
470
- children: /* @__PURE__ */ jsxs("span", { className: "text-sm font-medium text-text-muted", children: [
487
+ children: /* @__PURE__ */ jsxs("span", { className: "text-sm font-medium text-text-secondary", children: [
471
488
  label,
472
489
  required && /* @__PURE__ */ jsx("span", { className: "text-error ml-1", children: "*" })
473
490
  ] })
@@ -483,5 +500,5 @@ TreeSelect.displayName = "TreeSelect";
483
500
  var tree_select_default = TreeSelect;
484
501
 
485
502
  export { tree_select_default };
486
- //# sourceMappingURL=chunk-ASW7TEAN.js.map
487
- //# sourceMappingURL=chunk-ASW7TEAN.js.map
503
+ //# sourceMappingURL=chunk-4SQOFZ3N.js.map
504
+ //# sourceMappingURL=chunk-4SQOFZ3N.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tree-select/index.tsx"],"names":["info"],"mappings":"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","file":"chunk-4SQOFZ3N.js","sourcesContent":["'use client'\n\nimport { cva } from 'class-variance-authority'\nimport { ChevronDown, Loader2, Search, X } from 'lucide-react'\nimport React from 'react'\n\nimport { Popover, PopoverContent, PopoverTrigger } from '../popover'\nimport Tree from '../tree'\nimport type { TreeNode } from '../tree/types'\nimport {\n cn,\n getValidationStatus,\n iconSizes,\n statusMessageVariants,\n} from '../utils'\nimport type { TreeSelectProps } from './types'\n\nconst treeSelectTriggerVariants = cva(\n 'w-full flex items-center justify-between rounded-md bg-background text-text-primary border focus:border-primary outline-none disabled:opacity-50 disabled:cursor-not-allowed cursor-pointer transition-colors',\n {\n variants: {\n status: {\n default: 'border-border hover:border-primary/50',\n error: 'border-error',\n warning: 'border-warning',\n info: 'border-info',\n success: 'border-success',\n },\n size: {\n xs: 'h-(--select-height-xs) px-(--select-padding-x-xs) text-xs gap-1.5',\n sm: 'h-(--input-height-sm) px-1 text-sm gap-2',\n md: 'h-(--input-height-md) px-2 text-base gap-2',\n lg: 'h-(--input-height-lg) px-3 text-lg gap-3',\n },\n fullWidth: {\n true: 'w-full',\n false: 'max-w-full',\n },\n },\n defaultVariants: {\n status: 'default',\n size: 'md',\n fullWidth: true,\n },\n },\n)\n\nconst TreeSelect = React.memo<TreeSelectProps>(\n ({\n size = 'md',\n label,\n helperText,\n error,\n warning,\n info,\n success,\n data = [],\n placeholder = 'Select an option',\n loading = false,\n fullWidth = true,\n value,\n defaultValue,\n onChange,\n disabled,\n required,\n multiple = false,\n checkable = false,\n searchable = true,\n maxChipsVisible = 3,\n maxDropdownHeight = 300,\n defaultExpandAll = false,\n defaultExpandedKeys = [],\n showLine = false,\n showIcon = true,\n className,\n classNames,\n ref,\n ...props\n }) => {\n const [isOpen, setIsOpen] = React.useState(false)\n const [internalValue, setInternalValue] = React.useState<string | string[]>(\n defaultValue || (multiple ? [] : ''),\n )\n const [searchQuery, setSearchQuery] = React.useState('')\n const [expandedKeys, setExpandedKeys] = React.useState<string[]>(\n defaultExpandAll ? [] : defaultExpandedKeys,\n )\n const [visibleChipsCount, setVisibleChipsCount] =\n React.useState(maxChipsVisible)\n\n const triggerRef = React.useRef<HTMLButtonElement>(null)\n const inputRef = React.useRef<HTMLInputElement>(null)\n const currentValue = value !== undefined ? value : internalValue\n\n // Use shared validation status utility\n const { status, message: helperMessage } = getValidationStatus({\n error,\n warning,\n info,\n success,\n helperText,\n })\n\n // Get all nodes in a flat structure for search and lookup\n const getAllNodes = React.useCallback((nodes: TreeNode[]): TreeNode[] => {\n const result: TreeNode[] = []\n const traverse = (items: TreeNode[]) => {\n items.forEach((item) => {\n result.push(item)\n if (item.children) {\n traverse(item.children)\n }\n })\n }\n traverse(nodes)\n return result\n }, [])\n\n const allNodes = React.useMemo(() => getAllNodes(data), [data, getAllNodes])\n\n // Find node by key\n const getNodeByKey = React.useCallback(\n (key: string): TreeNode | null => {\n return allNodes.find((node) => node.key === key) || null\n },\n [allNodes],\n )\n\n // Get selected nodes\n const getSelectedNodes = React.useCallback(\n (keys: string | string[]): TreeNode[] => {\n const keyArray = Array.isArray(keys) ? keys : [keys]\n return keyArray\n .map((key) => getNodeByKey(key))\n .filter((node): node is TreeNode => node !== null)\n },\n [getNodeByKey],\n )\n\n // Filter tree data based on search query\n const filteredData = React.useMemo(() => {\n if (!searchQuery) return data\n\n const matchingKeys = new Set<string>()\n\n // Find all nodes that match the search\n allNodes.forEach((node) => {\n if (node.label.toLowerCase().includes(searchQuery.toLowerCase())) {\n // Add the node and all its ancestors\n let current: TreeNode | null = node\n while (current) {\n matchingKeys.add(current.key)\n // Find parent\n const parent = allNodes.find((n) =>\n n.children?.some((child) => child.key === current!.key),\n )\n current = parent || null\n }\n }\n })\n\n // Filter tree to only include matching nodes and their paths\n const filterTree = (nodes: TreeNode[]): TreeNode[] => {\n return nodes\n .filter((node) => matchingKeys.has(node.key))\n .map((node) => ({\n ...node,\n children: node.children ? filterTree(node.children) : undefined,\n }))\n }\n\n return filterTree(data)\n }, [data, searchQuery, allNodes])\n\n // Get display value\n const selectedNodes = React.useMemo(\n () => getSelectedNodes(currentValue),\n [currentValue, getSelectedNodes],\n )\n\n const getDisplayValue = React.useMemo(() => {\n if (!selectedNodes.length) return ''\n if (selectedNodes.length === 1) return selectedNodes[0]?.label\n return `${selectedNodes.length} selected`\n }, [selectedNodes])\n\n const handleSelect = React.useCallback(\n (_: string[], info: { selected: boolean; node: TreeNode }) => {\n if (disabled) return\n\n // Prevent selection of directory nodes (nodes with children)\n if (info.node.children && info.node.children.length > 0) {\n return\n }\n\n let newValue: string | string[]\n\n if (multiple) {\n // For multiple selection\n const currentArray = Array.isArray(currentValue) ? currentValue : []\n if (info.selected) {\n newValue = [...currentArray, info.node.key]\n } else {\n newValue = currentArray.filter((k) => k !== info.node.key)\n }\n } else {\n // For single selection\n if (info.selected) {\n newValue = info.node.key\n setIsOpen(false)\n setSearchQuery('')\n } else {\n newValue = ''\n }\n }\n\n if (value === undefined) {\n setInternalValue(newValue)\n }\n\n const selectedNodesResult = getSelectedNodes(newValue)\n onChange?.(newValue, selectedNodesResult)\n },\n [disabled, multiple, currentValue, value, onChange, getSelectedNodes],\n )\n\n const handleCheck = React.useCallback(\n (\n keys: string[],\n info: {\n checked: boolean\n node: TreeNode\n checkedNodes: TreeNode[]\n },\n ) => {\n if (disabled) return\n\n // Filter out directory nodes (nodes with children) from checked keys\n const leafKeys = keys.filter((key) => {\n const node = getNodeByKey(key)\n return node && (!node.children || node.children.length === 0)\n })\n\n const leafNodes = info.checkedNodes.filter(\n (node) => !node.children || node.children.length === 0,\n )\n\n if (value === undefined) {\n setInternalValue(leafKeys)\n }\n\n onChange?.(leafKeys, leafNodes)\n },\n [disabled, value, onChange, getNodeByKey],\n )\n\n const handleInputChange = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setSearchQuery(e.target.value)\n if (!isOpen) setIsOpen(true)\n },\n [isOpen],\n )\n\n const handleInputFocus = React.useCallback(() => {\n setIsOpen(true)\n }, [])\n\n const handleClear = React.useCallback(\n (e: React.MouseEvent) => {\n e.stopPropagation()\n const newValue = multiple ? [] : ''\n if (value === undefined) {\n setInternalValue(newValue)\n }\n onChange?.(newValue, [])\n setSearchQuery('')\n },\n [multiple, value, onChange],\n )\n\n const handleRemoveItem = React.useCallback(\n (\n e: React.MouseEvent<HTMLButtonElement, MouseEvent>,\n keyToRemove: string,\n ) => {\n e.stopPropagation()\n if (!multiple || disabled) return\n\n const currentArray = Array.isArray(currentValue) ? currentValue : []\n const newValue = currentArray.filter((k) => k !== keyToRemove)\n\n if (value === undefined) {\n setInternalValue(newValue)\n }\n\n const selectedNodesResult = getSelectedNodes(newValue)\n onChange?.(newValue, selectedNodesResult)\n },\n [multiple, disabled, currentValue, value, onChange, getSelectedNodes],\n )\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent) => {\n if (!isOpen && e.key !== 'Tab') {\n if (e.key === 'Enter' || e.key === ' ' || e.key === 'ArrowDown') {\n e.preventDefault()\n setIsOpen(true)\n }\n return\n }\n\n if (e.key === 'Escape') {\n e.preventDefault()\n setIsOpen(false)\n setSearchQuery('')\n triggerRef.current?.focus()\n }\n },\n [isOpen],\n )\n\n const handleInputKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (\n e.key === 'Backspace' &&\n !searchQuery &&\n multiple &&\n Array.isArray(currentValue) &&\n currentValue.length > 0\n ) {\n e.preventDefault()\n const lastKey = currentValue[currentValue.length - 1]\n handleRemoveItem(e as any, lastKey || '')\n } else {\n handleKeyDown(e)\n }\n },\n [searchQuery, currentValue, multiple, handleRemoveItem, handleKeyDown],\n )\n\n // Dynamic badge size calculation\n React.useEffect(() => {\n if (selectedNodes.length === 0 || !triggerRef.current) {\n setVisibleChipsCount(maxChipsVisible)\n return\n }\n\n const calculateVisibleChips = () => {\n const container = triggerRef.current\n if (!container) return\n\n const hiddenChips = container.querySelectorAll('[data-hidden-chip]')\n if (hiddenChips.length === 0) return\n\n const containerWidth = container.offsetWidth\n const padding =\n size === 'sm' ? 12 : size === 'md' ? 16 : size === 'lg' ? 20 : 16\n\n // Account for icons on the right (clear + chevron/search)\n // Use a generous estimate to avoid overflow\n const iconsWidth = 60 // Enough space for clear button + chevron + gap\n\n const gap = 4\n const plusIndicatorWidth = 40 // Width of \"+X\" badge\n\n const availableWidth = containerWidth - padding * 2 - iconsWidth\n let totalWidth = 0\n let visibleCount = 0\n\n for (let i = 0; i < hiddenChips.length; i++) {\n const chipWidth = hiddenChips[i]?.getBoundingClientRect().width || 0\n const requiredSpace =\n totalWidth + chipWidth + (visibleCount > 0 ? gap : 0)\n\n const needsPlusIndicator = i < hiddenChips.length - 1\n const spaceWithIndicator =\n requiredSpace + (needsPlusIndicator ? gap + plusIndicatorWidth : 0)\n\n if (spaceWithIndicator <= availableWidth) {\n totalWidth = requiredSpace\n visibleCount++\n } else {\n break\n }\n }\n\n setVisibleChipsCount(Math.max(1, visibleCount))\n }\n\n const timeoutId = setTimeout(calculateVisibleChips, 0)\n\n const resizeObserver = new ResizeObserver(() => {\n calculateVisibleChips()\n })\n\n if (triggerRef.current) {\n resizeObserver.observe(triggerRef.current)\n }\n\n return () => {\n clearTimeout(timeoutId)\n resizeObserver.disconnect()\n }\n }, [selectedNodes, size, maxChipsVisible])\n\n const treeSelectElement = (\n <div\n className={cn(\n 'treeSelect_root',\n 'relative group',\n fullWidth ? 'w-full' : 'inline-block',\n classNames?.root,\n )}\n ref={ref}\n {...props}\n >\n <Popover\n open={isOpen}\n onOpenChange={setIsOpen}\n >\n <PopoverTrigger asChild>\n <button\n ref={triggerRef}\n type=\"button\"\n className={cn(\n 'treeSelect_trigger',\n treeSelectTriggerVariants({ status, size, fullWidth }),\n loading && 'opacity-50',\n className,\n classNames?.trigger,\n )}\n disabled={disabled || loading}\n aria-haspopup=\"tree\"\n aria-expanded={isOpen}\n aria-labelledby={label ? 'tree-select-label' : undefined}\n >\n {multiple && selectedNodes.length > 0 && (\n <div className=\"flex gap-1 flex-shrink-0\">\n {selectedNodes.slice(0, visibleChipsCount).map((node) => (\n <span\n key={node.key}\n className=\"inline-flex items-center gap-1 px-2 py-0.5 bg-primary/10 text-primary rounded text-sm whitespace-nowrap\"\n >\n {node.label}\n <button\n type=\"button\"\n onClick={(e) => handleRemoveItem(e, node.key)}\n className=\"hover:bg-primary/20 rounded-sm\"\n disabled={disabled}\n >\n <X className=\"h-3 w-3\" />\n </button>\n </span>\n ))}\n {selectedNodes.length > visibleChipsCount && (\n <span className=\"inline-flex items-center px-2 py-0.5 bg-surface text-text-secondary rounded text-sm whitespace-nowrap\">\n +{selectedNodes.length - visibleChipsCount}\n </span>\n )}\n </div>\n )}\n <div\n className=\"absolute opacity-0 pointer-events-none whitespace-nowrap\"\n aria-hidden=\"true\"\n >\n {selectedNodes.map((node) => (\n <span\n key={node.key}\n data-hidden-chip\n className=\"inline-flex items-center gap-1 px-2 py-0.5 bg-primary/10 text-primary rounded text-sm whitespace-nowrap\"\n >\n {node.label}\n <X className=\"h-3 w-3\" />\n </span>\n ))}\n </div>\n <input\n ref={inputRef}\n type=\"text\"\n className=\"bg-transparent outline-none cursor-pointer placeholder:text-text-secondary/50 flex-1 min-w-0 pointer-events-none\"\n placeholder={selectedNodes.length > 0 ? '' : placeholder}\n value={searchQuery}\n onChange={handleInputChange}\n onFocus={handleInputFocus}\n onKeyDown={handleInputKeyDown}\n disabled={disabled || loading}\n readOnly={!isOpen || !searchable}\n tabIndex={-1}\n />\n <div className=\"flex items-center gap-1 text-text-secondary\">\n {getDisplayValue && !disabled && !loading && (\n <button\n type=\"button\"\n onClick={handleClear}\n className=\"hover:text-text-primary transition-colors\"\n tabIndex={-1}\n >\n <X className={iconSizes[size]} />\n </button>\n )}\n {loading ? (\n <Loader2 className={cn('animate-spin', iconSizes[size])} />\n ) : (\n <>\n {isOpen && searchable ? (\n <Search className={iconSizes[size]} />\n ) : (\n <ChevronDown\n className={cn(\n iconSizes[size],\n 'transition-transform duration-200',\n isOpen && 'rotate-180',\n )}\n />\n )}\n </>\n )}\n </div>\n </button>\n </PopoverTrigger>\n\n <PopoverContent\n className={cn(\n 'treeSelect_dropdown',\n 'p-2 w-[var(--radix-popover-trigger-width)]',\n classNames?.dropdown,\n )}\n align=\"start\"\n onOpenAutoFocus={(e: Event) => {\n e.preventDefault()\n inputRef.current?.focus()\n }}\n >\n <div\n className=\"overflow-auto\"\n style={{ maxHeight: maxDropdownHeight }}\n role=\"tree\"\n aria-labelledby={label ? 'tree-select-label' : undefined}\n >\n {filteredData.length === 0 ? (\n <div className=\"px-3 py-4 text-center text-sm text-text-secondary\">\n No options found\n </div>\n ) : (\n <Tree\n data={filteredData}\n checkable={checkable}\n checkedKeys={\n checkable && Array.isArray(currentValue)\n ? currentValue\n : undefined\n }\n onCheck={checkable ? handleCheck : undefined}\n selectable={!checkable}\n selectedKeys={\n !checkable\n ? Array.isArray(currentValue)\n ? currentValue\n : currentValue\n ? [currentValue]\n : []\n : undefined\n }\n onSelect={!checkable ? handleSelect : undefined}\n disabled={disabled}\n size={size}\n showLine={showLine}\n showIcon={showIcon}\n defaultExpandAll={defaultExpandAll || !!searchQuery}\n expandedKeys={searchQuery ? undefined : expandedKeys}\n onExpand={setExpandedKeys}\n className={cn('treeSelect_tree', classNames?.tree)}\n classNames={{\n node: cn('treeSelect_node', classNames?.node),\n label: cn('treeSelect_label', classNames?.label),\n }}\n />\n )}\n </div>\n </PopoverContent>\n </Popover>\n </div>\n )\n\n if (!label && !helperMessage) return treeSelectElement\n\n return (\n <div className={cn('w-full flex flex-col', !fullWidth && 'inline-block')}>\n <div className=\"flex gap-2 items-center\">\n {label && (\n <label\n id=\"tree-select-label\"\n className=\"block mb-0.5\"\n >\n <span className=\"text-sm font-medium text-text-secondary\">\n {label}\n {required && <span className=\"text-error ml-1\">*</span>}\n </span>\n </label>\n )}\n {helperMessage && (\n <p className={statusMessageVariants({ status })}>{helperMessage}</p>\n )}\n </div>\n {treeSelectElement}\n </div>\n )\n },\n)\n\nTreeSelect.displayName = 'TreeSelect'\n\nexport type * from './types'\nexport default TreeSelect\n"]}