@mdigital_ui/ui 0.3.4 → 0.3.5

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 (341) hide show
  1. package/dist/checkbox/index.js +1 -1
  2. package/dist/{chunk-VKLDLJXG.js → chunk-F3OLZMGO.js} +12 -8
  3. package/dist/chunk-F3OLZMGO.js.map +1 -0
  4. package/dist/{chunk-GIWG6BCT.js → chunk-KYDQJSSW.js} +2 -3
  5. package/dist/chunk-KYDQJSSW.js.map +1 -0
  6. package/dist/{chunk-OSHJYIHC.js → chunk-NQACKYGF.js} +4 -4
  7. package/dist/{chunk-OSHJYIHC.js.map → chunk-NQACKYGF.js.map} +1 -1
  8. package/dist/{chunk-2REG4OUB.js → chunk-QNPE63O6.js} +92 -75
  9. package/dist/chunk-QNPE63O6.js.map +1 -0
  10. package/dist/{chunk-I7MESP7F.js → chunk-SB3JGUGE.js} +6 -6
  11. package/dist/chunk-SB3JGUGE.js.map +1 -0
  12. package/dist/{chunk-RLYGJN56.js → chunk-U5GAFTEM.js} +9 -4
  13. package/dist/chunk-U5GAFTEM.js.map +1 -0
  14. package/dist/{chunk-DHXVNO75.js → chunk-XR4UHTK3.js} +3 -3
  15. package/dist/{chunk-DHXVNO75.js.map → chunk-XR4UHTK3.js.map} +1 -1
  16. package/dist/{chunk-623OVNLC.js → chunk-XVRNFPBI.js} +3 -3
  17. package/dist/{chunk-623OVNLC.js.map → chunk-XVRNFPBI.js.map} +1 -1
  18. package/dist/{chunk-QC7XNMM7.js → chunk-ZESEEYEJ.js} +81 -39
  19. package/dist/chunk-ZESEEYEJ.js.map +1 -0
  20. package/dist/float-input/index.js +1 -1
  21. package/dist/index.js +12 -12
  22. package/dist/input/index.js +1 -1
  23. package/dist/input-password/index.js +2 -2
  24. package/dist/radio/index.js +1 -1
  25. package/dist/select/index.js +1 -1
  26. package/dist/switch/index.js +1 -1
  27. package/dist/table/index.js +3 -3
  28. package/dist/transfer/index.js +2 -2
  29. package/package.json +1 -1
  30. package/dist/accordion/index.d.ts +0 -6
  31. package/dist/accordion/index.d.ts.map +0 -1
  32. package/dist/accordion/types.d.ts +0 -125
  33. package/dist/accordion/types.d.ts.map +0 -1
  34. package/dist/avatar/index.d.ts +0 -14
  35. package/dist/avatar/index.d.ts.map +0 -1
  36. package/dist/avatar/types.d.ts +0 -147
  37. package/dist/avatar/types.d.ts.map +0 -1
  38. package/dist/badge/index.d.ts +0 -28
  39. package/dist/badge/index.d.ts.map +0 -1
  40. package/dist/badge/types.d.ts +0 -97
  41. package/dist/badge/types.d.ts.map +0 -1
  42. package/dist/breadcrumbs/index.d.ts +0 -13
  43. package/dist/breadcrumbs/index.d.ts.map +0 -1
  44. package/dist/breadcrumbs/types.d.ts +0 -118
  45. package/dist/breadcrumbs/types.d.ts.map +0 -1
  46. package/dist/button/index.d.ts +0 -6
  47. package/dist/button/index.d.ts.map +0 -1
  48. package/dist/button/types.d.ts +0 -86
  49. package/dist/button/types.d.ts.map +0 -1
  50. package/dist/button-group/index.d.ts +0 -34
  51. package/dist/button-group/index.d.ts.map +0 -1
  52. package/dist/button-group/types.d.ts +0 -75
  53. package/dist/button-group/types.d.ts.map +0 -1
  54. package/dist/card/index.d.ts +0 -71
  55. package/dist/card/index.d.ts.map +0 -1
  56. package/dist/card/types.d.ts +0 -136
  57. package/dist/card/types.d.ts.map +0 -1
  58. package/dist/carousel/carousel-navigation.d.ts +0 -9
  59. package/dist/carousel/carousel-navigation.d.ts.map +0 -1
  60. package/dist/carousel/index.d.ts +0 -50
  61. package/dist/carousel/index.d.ts.map +0 -1
  62. package/dist/cascader/index.d.ts +0 -27
  63. package/dist/cascader/index.d.ts.map +0 -1
  64. package/dist/cascader/types.d.ts +0 -220
  65. package/dist/cascader/types.d.ts.map +0 -1
  66. package/dist/checkbox/index.d.ts +0 -6
  67. package/dist/checkbox/index.d.ts.map +0 -1
  68. package/dist/checkbox/types.d.ts +0 -21
  69. package/dist/checkbox/types.d.ts.map +0 -1
  70. package/dist/checkbox-group/index.d.ts +0 -6
  71. package/dist/checkbox-group/index.d.ts.map +0 -1
  72. package/dist/checkbox-group/types.d.ts +0 -43
  73. package/dist/checkbox-group/types.d.ts.map +0 -1
  74. package/dist/chunk-2REG4OUB.js.map +0 -1
  75. package/dist/chunk-GIWG6BCT.js.map +0 -1
  76. package/dist/chunk-I7MESP7F.js.map +0 -1
  77. package/dist/chunk-QC7XNMM7.js.map +0 -1
  78. package/dist/chunk-RLYGJN56.js.map +0 -1
  79. package/dist/chunk-VKLDLJXG.js.map +0 -1
  80. package/dist/clipboard/index.d.ts +0 -6
  81. package/dist/clipboard/index.d.ts.map +0 -1
  82. package/dist/clipboard/types.d.ts +0 -65
  83. package/dist/clipboard/types.d.ts.map +0 -1
  84. package/dist/collapse/index.d.ts +0 -6
  85. package/dist/collapse/index.d.ts.map +0 -1
  86. package/dist/collapse/types.d.ts +0 -60
  87. package/dist/collapse/types.d.ts.map +0 -1
  88. package/dist/command/index.d.ts +0 -74
  89. package/dist/command/index.d.ts.map +0 -1
  90. package/dist/command/types.d.ts +0 -24
  91. package/dist/command/types.d.ts.map +0 -1
  92. package/dist/context-menu/index.d.ts +0 -63
  93. package/dist/context-menu/index.d.ts.map +0 -1
  94. package/dist/context-menu/types.d.ts +0 -109
  95. package/dist/context-menu/types.d.ts.map +0 -1
  96. package/dist/date-picker/index.d.ts +0 -12
  97. package/dist/date-picker/index.d.ts.map +0 -1
  98. package/dist/date-picker/types.d.ts +0 -66
  99. package/dist/date-picker/types.d.ts.map +0 -1
  100. package/dist/date-picker/utils.d.ts +0 -10
  101. package/dist/date-picker/utils.d.ts.map +0 -1
  102. package/dist/descriptions/index.d.ts +0 -6
  103. package/dist/descriptions/index.d.ts.map +0 -1
  104. package/dist/descriptions/types.d.ts +0 -34
  105. package/dist/descriptions/types.d.ts.map +0 -1
  106. package/dist/divider/index.d.ts +0 -39
  107. package/dist/divider/index.d.ts.map +0 -1
  108. package/dist/divider/types.d.ts +0 -63
  109. package/dist/divider/types.d.ts.map +0 -1
  110. package/dist/drawer/index.d.ts +0 -23
  111. package/dist/drawer/index.d.ts.map +0 -1
  112. package/dist/drawer/types.d.ts +0 -309
  113. package/dist/drawer/types.d.ts.map +0 -1
  114. package/dist/dropdown/index.d.ts +0 -6
  115. package/dist/dropdown/index.d.ts.map +0 -1
  116. package/dist/dropdown/types.d.ts +0 -116
  117. package/dist/dropdown/types.d.ts.map +0 -1
  118. package/dist/empty/index.d.ts +0 -6
  119. package/dist/empty/index.d.ts.map +0 -1
  120. package/dist/empty/types.d.ts +0 -62
  121. package/dist/empty/types.d.ts.map +0 -1
  122. package/dist/fetching-overlay/index.d.ts +0 -10
  123. package/dist/fetching-overlay/index.d.ts.map +0 -1
  124. package/dist/float-input/index.d.ts +0 -6
  125. package/dist/float-input/index.d.ts.map +0 -1
  126. package/dist/float-input/types.d.ts +0 -23
  127. package/dist/float-input/types.d.ts.map +0 -1
  128. package/dist/form/index.d.ts +0 -31
  129. package/dist/form/index.d.ts.map +0 -1
  130. package/dist/form/types.d.ts +0 -45
  131. package/dist/form/types.d.ts.map +0 -1
  132. package/dist/grid/index.d.ts +0 -6
  133. package/dist/grid/index.d.ts.map +0 -1
  134. package/dist/grid/types.d.ts +0 -21
  135. package/dist/grid/types.d.ts.map +0 -1
  136. package/dist/image/index.d.ts +0 -6
  137. package/dist/image/index.d.ts.map +0 -1
  138. package/dist/image/types.d.ts +0 -53
  139. package/dist/image/types.d.ts.map +0 -1
  140. package/dist/index.d.ts +0 -139
  141. package/dist/index.d.ts.map +0 -1
  142. package/dist/input/index.d.ts +0 -6
  143. package/dist/input/index.d.ts.map +0 -1
  144. package/dist/input/types.d.ts +0 -28
  145. package/dist/input/types.d.ts.map +0 -1
  146. package/dist/input-group/index.d.ts +0 -9
  147. package/dist/input-group/index.d.ts.map +0 -1
  148. package/dist/input-group/types.d.ts +0 -68
  149. package/dist/input-group/types.d.ts.map +0 -1
  150. package/dist/input-otp/index.d.ts +0 -7
  151. package/dist/input-otp/index.d.ts.map +0 -1
  152. package/dist/input-otp/types.d.ts +0 -111
  153. package/dist/input-otp/types.d.ts.map +0 -1
  154. package/dist/input-password/index.d.ts +0 -7
  155. package/dist/input-password/index.d.ts.map +0 -1
  156. package/dist/input-password/types.d.ts +0 -34
  157. package/dist/input-password/types.d.ts.map +0 -1
  158. package/dist/kbd/index.d.ts +0 -6
  159. package/dist/kbd/index.d.ts.map +0 -1
  160. package/dist/kbd/types.d.ts +0 -26
  161. package/dist/kbd/types.d.ts.map +0 -1
  162. package/dist/link/index.d.ts +0 -9
  163. package/dist/link/index.d.ts.map +0 -1
  164. package/dist/link/types.d.ts +0 -30
  165. package/dist/link/types.d.ts.map +0 -1
  166. package/dist/menubar/index.d.ts +0 -6
  167. package/dist/menubar/index.d.ts.map +0 -1
  168. package/dist/menubar/types.d.ts +0 -40
  169. package/dist/menubar/types.d.ts.map +0 -1
  170. package/dist/modal/index.d.ts +0 -39
  171. package/dist/modal/index.d.ts.map +0 -1
  172. package/dist/modal/types.d.ts +0 -77
  173. package/dist/modal/types.d.ts.map +0 -1
  174. package/dist/multi-select/index.d.ts +0 -6
  175. package/dist/multi-select/index.d.ts.map +0 -1
  176. package/dist/multi-select/types.d.ts +0 -81
  177. package/dist/multi-select/types.d.ts.map +0 -1
  178. package/dist/multi-select/utils.d.ts +0 -12
  179. package/dist/multi-select/utils.d.ts.map +0 -1
  180. package/dist/navigation-menu/index.d.ts +0 -5
  181. package/dist/navigation-menu/index.d.ts.map +0 -1
  182. package/dist/navigation-menu/types.d.ts +0 -37
  183. package/dist/navigation-menu/types.d.ts.map +0 -1
  184. package/dist/notification/index.d.ts +0 -6
  185. package/dist/notification/index.d.ts.map +0 -1
  186. package/dist/notification/types.d.ts +0 -90
  187. package/dist/notification/types.d.ts.map +0 -1
  188. package/dist/number-input/index.d.ts +0 -6
  189. package/dist/number-input/index.d.ts.map +0 -1
  190. package/dist/number-input/types.d.ts +0 -28
  191. package/dist/number-input/types.d.ts.map +0 -1
  192. package/dist/pagination/index.d.ts +0 -6
  193. package/dist/pagination/index.d.ts.map +0 -1
  194. package/dist/pagination/types.d.ts +0 -87
  195. package/dist/pagination/types.d.ts.map +0 -1
  196. package/dist/popover/index.d.ts +0 -19
  197. package/dist/popover/index.d.ts.map +0 -1
  198. package/dist/popover/types.d.ts +0 -31
  199. package/dist/popover/types.d.ts.map +0 -1
  200. package/dist/progress/index.d.ts +0 -6
  201. package/dist/progress/index.d.ts.map +0 -1
  202. package/dist/progress/types.d.ts +0 -100
  203. package/dist/progress/types.d.ts.map +0 -1
  204. package/dist/radio/index.d.ts +0 -6
  205. package/dist/radio/index.d.ts.map +0 -1
  206. package/dist/radio/types.d.ts +0 -20
  207. package/dist/radio/types.d.ts.map +0 -1
  208. package/dist/radio-group/index.d.ts +0 -6
  209. package/dist/radio-group/index.d.ts.map +0 -1
  210. package/dist/radio-group/types.d.ts +0 -43
  211. package/dist/radio-group/types.d.ts.map +0 -1
  212. package/dist/rating/index.d.ts +0 -6
  213. package/dist/rating/index.d.ts.map +0 -1
  214. package/dist/rating/types.d.ts +0 -64
  215. package/dist/rating/types.d.ts.map +0 -1
  216. package/dist/ribbon/index.d.ts +0 -6
  217. package/dist/ribbon/index.d.ts.map +0 -1
  218. package/dist/ribbon/types.d.ts +0 -26
  219. package/dist/ribbon/types.d.ts.map +0 -1
  220. package/dist/scroll-area/index.d.ts +0 -10
  221. package/dist/scroll-area/index.d.ts.map +0 -1
  222. package/dist/scroll-area/types.d.ts +0 -24
  223. package/dist/scroll-area/types.d.ts.map +0 -1
  224. package/dist/select/index.d.ts +0 -6
  225. package/dist/select/index.d.ts.map +0 -1
  226. package/dist/select/types.d.ts +0 -34
  227. package/dist/select/types.d.ts.map +0 -1
  228. package/dist/skeleton/index.d.ts +0 -6
  229. package/dist/skeleton/index.d.ts.map +0 -1
  230. package/dist/skeleton/types.d.ts +0 -10
  231. package/dist/skeleton/types.d.ts.map +0 -1
  232. package/dist/slider/index.d.ts +0 -6
  233. package/dist/slider/index.d.ts.map +0 -1
  234. package/dist/slider/types.d.ts +0 -70
  235. package/dist/slider/types.d.ts.map +0 -1
  236. package/dist/spinner/index.d.ts +0 -6
  237. package/dist/spinner/index.d.ts.map +0 -1
  238. package/dist/spinner/types.d.ts +0 -10
  239. package/dist/spinner/types.d.ts.map +0 -1
  240. package/dist/stepper/index.d.ts +0 -6
  241. package/dist/stepper/index.d.ts.map +0 -1
  242. package/dist/stepper/types.d.ts +0 -86
  243. package/dist/stepper/types.d.ts.map +0 -1
  244. package/dist/styles/global.css +0 -7651
  245. package/dist/styles/themes/dark.css +0 -93
  246. package/dist/styles/themes/index.d.ts +0 -9
  247. package/dist/styles/themes/index.d.ts.map +0 -1
  248. package/dist/styles/themes/light.css +0 -89
  249. package/dist/styles/themes/presets/corporate.css +0 -126
  250. package/dist/styles/themes/presets/index.d.ts +0 -21
  251. package/dist/styles/themes/presets/index.d.ts.map +0 -1
  252. package/dist/styles/themes/presets/minimal.css +0 -126
  253. package/dist/styles/themes/presets/vibrant.css +0 -126
  254. package/dist/styles/tokens.d.ts +0 -428
  255. package/dist/styles/tokens.d.ts.map +0 -1
  256. package/dist/switch/index.d.ts +0 -6
  257. package/dist/switch/index.d.ts.map +0 -1
  258. package/dist/switch/types.d.ts +0 -80
  259. package/dist/switch/types.d.ts.map +0 -1
  260. package/dist/table/EditableCell.d.ts +0 -13
  261. package/dist/table/EditableCell.d.ts.map +0 -1
  262. package/dist/table/TableActions.d.ts +0 -21
  263. package/dist/table/TableActions.d.ts.map +0 -1
  264. package/dist/table/TableCell.d.ts +0 -12
  265. package/dist/table/TableCell.d.ts.map +0 -1
  266. package/dist/table/TableHeaderCell.d.ts +0 -16
  267. package/dist/table/TableHeaderCell.d.ts.map +0 -1
  268. package/dist/table/TableRow.d.ts +0 -16
  269. package/dist/table/TableRow.d.ts.map +0 -1
  270. package/dist/table/TableSkeleton.d.ts +0 -13
  271. package/dist/table/TableSkeleton.d.ts.map +0 -1
  272. package/dist/table/index.d.ts +0 -15
  273. package/dist/table/index.d.ts.map +0 -1
  274. package/dist/table/types.d.ts +0 -110
  275. package/dist/table/types.d.ts.map +0 -1
  276. package/dist/table/variants.d.ts +0 -8
  277. package/dist/table/variants.d.ts.map +0 -1
  278. package/dist/tabs/index.d.ts +0 -7
  279. package/dist/tabs/index.d.ts.map +0 -1
  280. package/dist/tabs/types.d.ts +0 -86
  281. package/dist/tabs/types.d.ts.map +0 -1
  282. package/dist/tag/index.d.ts +0 -49
  283. package/dist/tag/index.d.ts.map +0 -1
  284. package/dist/tag/types.d.ts +0 -23
  285. package/dist/tag/types.d.ts.map +0 -1
  286. package/dist/textarea/index.d.ts +0 -6
  287. package/dist/textarea/index.d.ts.map +0 -1
  288. package/dist/textarea/types.d.ts +0 -84
  289. package/dist/textarea/types.d.ts.map +0 -1
  290. package/dist/theme/ThemeProvider.d.ts +0 -44
  291. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  292. package/dist/theme/index.d.ts +0 -7
  293. package/dist/theme/index.d.ts.map +0 -1
  294. package/dist/theme/types.d.ts +0 -47
  295. package/dist/theme/types.d.ts.map +0 -1
  296. package/dist/timeline/index.d.ts +0 -13
  297. package/dist/timeline/index.d.ts.map +0 -1
  298. package/dist/timeline/types.d.ts +0 -25
  299. package/dist/timeline/types.d.ts.map +0 -1
  300. package/dist/toast/index.d.ts +0 -12
  301. package/dist/toast/index.d.ts.map +0 -1
  302. package/dist/toast/types.d.ts +0 -49
  303. package/dist/toast/types.d.ts.map +0 -1
  304. package/dist/toggle/index.d.ts +0 -6
  305. package/dist/toggle/index.d.ts.map +0 -1
  306. package/dist/toggle/types.d.ts +0 -57
  307. package/dist/toggle/types.d.ts.map +0 -1
  308. package/dist/toggle-group/index.d.ts +0 -6
  309. package/dist/toggle-group/index.d.ts.map +0 -1
  310. package/dist/toggle-group/types.d.ts +0 -80
  311. package/dist/toggle-group/types.d.ts.map +0 -1
  312. package/dist/tooltip/index.d.ts +0 -9
  313. package/dist/tooltip/index.d.ts.map +0 -1
  314. package/dist/tooltip/types.d.ts +0 -72
  315. package/dist/tooltip/types.d.ts.map +0 -1
  316. package/dist/transfer/index.d.ts +0 -6
  317. package/dist/transfer/index.d.ts.map +0 -1
  318. package/dist/transfer/types.d.ts +0 -83
  319. package/dist/transfer/types.d.ts.map +0 -1
  320. package/dist/transfer/utils.d.ts +0 -13
  321. package/dist/transfer/utils.d.ts.map +0 -1
  322. package/dist/tree/index.d.ts +0 -6
  323. package/dist/tree/index.d.ts.map +0 -1
  324. package/dist/tree/types.d.ts +0 -143
  325. package/dist/tree/types.d.ts.map +0 -1
  326. package/dist/tree-select/index.d.ts +0 -6
  327. package/dist/tree-select/index.d.ts.map +0 -1
  328. package/dist/tree-select/types.d.ts +0 -147
  329. package/dist/tree-select/types.d.ts.map +0 -1
  330. package/dist/types.d.ts +0 -53
  331. package/dist/types.d.ts.map +0 -1
  332. package/dist/upload/index.d.ts +0 -7
  333. package/dist/upload/index.d.ts.map +0 -1
  334. package/dist/upload/types.d.ts +0 -94
  335. package/dist/upload/types.d.ts.map +0 -1
  336. package/dist/upload/utils.d.ts +0 -26
  337. package/dist/upload/utils.d.ts.map +0 -1
  338. package/dist/utils.d.ts +0 -63
  339. package/dist/utils.d.ts.map +0 -1
  340. package/dist/variants.d.ts +0 -434
  341. package/dist/variants.d.ts.map +0 -1
@@ -104,82 +104,99 @@ var Switch = React.memo(
104
104
  props.onChange?.(e);
105
105
  };
106
106
  const isDisabled = disabled || loading;
107
- const switchElement = /* @__PURE__ */ jsxs("span", { className: cn("relative inline-flex items-center", "switch_root", classNames?.root), children: [
108
- /* @__PURE__ */ jsx(
109
- "input",
110
- {
111
- ref,
112
- id: inputId,
113
- type: "checkbox",
114
- className: "peer sr-only",
115
- disabled: isDisabled,
116
- role: "switch",
117
- "aria-checked": currentChecked,
118
- "aria-invalid": !!error || void 0,
119
- "aria-describedby": hasHelperText ? helperId : void 0,
120
- checked: currentChecked,
121
- onChange: handleChange,
122
- required,
123
- ...props
124
- }
125
- ),
126
- /* @__PURE__ */ jsxs(
127
- "span",
128
- {
129
- className: cn(
130
- switchTrackVariants({ color, size, hasError: !!error }),
131
- "switch_track",
132
- classNames?.track,
133
- className
107
+ const switchElement = /* @__PURE__ */ jsxs(
108
+ "span",
109
+ {
110
+ className: cn(
111
+ "relative inline-flex items-center",
112
+ "switch_root",
113
+ classNames?.root
114
+ ),
115
+ children: [
116
+ /* @__PURE__ */ jsx(
117
+ "input",
118
+ {
119
+ ref,
120
+ id: inputId,
121
+ type: "checkbox",
122
+ className: "peer sr-only",
123
+ disabled: isDisabled,
124
+ role: "switch",
125
+ "aria-checked": currentChecked,
126
+ "aria-invalid": !!error || void 0,
127
+ "aria-describedby": hasHelperText ? helperId : void 0,
128
+ checked: currentChecked,
129
+ onChange: handleChange,
130
+ required,
131
+ ...props
132
+ }
134
133
  ),
135
- children: [
136
- startContent && /* @__PURE__ */ jsx(
137
- "span",
138
- {
139
- className: cn(
140
- "absolute right-0.5 top-1/2 -translate-y-1/2 text-white font-medium transition-opacity",
141
- trackContentSizeClasses[size],
142
- currentChecked ? "opacity-0" : "opacity-100"
143
- ),
144
- children: startContent
145
- }
146
- ),
147
- endContent && /* @__PURE__ */ jsx(
148
- "span",
149
- {
150
- className: cn(
151
- "absolute left-0.5 top-1/2 -translate-y-1/2 text-white font-medium transition-opacity",
152
- trackContentSizeClasses[size],
153
- currentChecked ? "opacity-100" : "opacity-0"
134
+ /* @__PURE__ */ jsxs(
135
+ "span",
136
+ {
137
+ className: cn(
138
+ switchTrackVariants({ color, size, hasError: !!error }),
139
+ "switch_track",
140
+ classNames?.track,
141
+ className
142
+ ),
143
+ children: [
144
+ startContent && /* @__PURE__ */ jsx(
145
+ "span",
146
+ {
147
+ className: cn(
148
+ "absolute right-0.5 top-1/2 -translate-y-1/2 text-white font-medium transition-opacity",
149
+ trackContentSizeClasses[size],
150
+ currentChecked ? "opacity-0" : "opacity-100"
151
+ ),
152
+ children: startContent
153
+ }
154
154
  ),
155
- children: endContent
156
- }
157
- )
158
- ]
159
- }
160
- ),
161
- /* @__PURE__ */ jsx("span", { className: cn(switchThumbVariants({ size }), "switch_thumb", classNames?.thumb), children: loading ? /* @__PURE__ */ jsx(
162
- Loader2,
163
- {
164
- className: cn(
165
- "animate-spin text-text-secondary",
166
- loaderSizeClasses[size]
167
- )
168
- }
169
- ) : thumbIcon ? /* @__PURE__ */ jsx(
170
- "span",
171
- {
172
- className: cn(
173
- "flex items-center justify-center text-text-secondary",
174
- thumbIconSizeClasses[size]
155
+ endContent && /* @__PURE__ */ jsx(
156
+ "span",
157
+ {
158
+ className: cn(
159
+ "absolute left-0.5 top-1/2 -translate-y-1/2 text-white font-medium transition-opacity",
160
+ trackContentSizeClasses[size],
161
+ currentChecked ? "opacity-100" : "opacity-0"
162
+ ),
163
+ children: endContent
164
+ }
165
+ )
166
+ ]
167
+ }
175
168
  ),
176
- children: thumbIcon
177
- }
178
- ) : null })
179
- ] });
180
- if (!label && !helperText && !error) {
181
- return switchElement;
182
- }
169
+ /* @__PURE__ */ jsx(
170
+ "span",
171
+ {
172
+ className: cn(
173
+ switchThumbVariants({ size }),
174
+ "switch_thumb",
175
+ classNames?.thumb
176
+ ),
177
+ children: loading ? /* @__PURE__ */ jsx(
178
+ Loader2,
179
+ {
180
+ className: cn(
181
+ "animate-spin text-text-secondary",
182
+ loaderSizeClasses[size]
183
+ )
184
+ }
185
+ ) : thumbIcon ? /* @__PURE__ */ jsx(
186
+ "span",
187
+ {
188
+ className: cn(
189
+ "flex items-center justify-center text-text-secondary",
190
+ thumbIconSizeClasses[size]
191
+ ),
192
+ children: thumbIcon
193
+ }
194
+ ) : null
195
+ }
196
+ )
197
+ ]
198
+ }
199
+ );
183
200
  return /* @__PURE__ */ jsxs("div", { className: "w-full", children: [
184
201
  /* @__PURE__ */ jsxs(
185
202
  "label",
@@ -233,5 +250,5 @@ Switch.displayName = "Switch";
233
250
  var switch_default = Switch;
234
251
 
235
252
  export { switch_default };
236
- //# sourceMappingURL=chunk-2REG4OUB.js.map
237
- //# sourceMappingURL=chunk-2REG4OUB.js.map
253
+ //# sourceMappingURL=chunk-QNPE63O6.js.map
254
+ //# sourceMappingURL=chunk-QNPE63O6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/switch/index.tsx"],"names":[],"mappings":"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","file":"chunk-QNPE63O6.js","sourcesContent":["\"use client\";\n\nimport { cva } from \"class-variance-authority\";\nimport { Loader2 } from \"lucide-react\";\nimport React, { useState, useId } from \"react\";\n\nimport { cn } from \"../utils\";\nimport { switchTrackColorClasses } from \"../variants\";\nimport type { SwitchProps, SwitchSize } from \"./types\";\n\nconst switchTrackVariants = cva(\n [\n \"relative rounded-full cursor-pointer transition-colors\",\n \"peer-disabled:opacity-50 peer-disabled:cursor-not-allowed\",\n \"peer-focus-visible:ring-2 peer-focus-visible:ring-offset-2 peer-focus-visible:ring-offset-background\",\n ],\n {\n variants: {\n color: switchTrackColorClasses,\n size: {\n xs: \"w-(--switch-width-xs) h-(--switch-height-xs)\",\n sm: \"w-(--switch-width-sm) h-(--switch-height-sm)\",\n md: \"w-(--switch-width-md) h-(--switch-height-md)\",\n lg: \"w-(--switch-width-lg) h-(--switch-height-lg)\",\n },\n hasError: {\n true: \"bg-error/30 peer-checked:bg-error peer-focus-visible:ring-error\",\n false: \"\",\n },\n },\n defaultVariants: {\n color: \"primary\",\n size: \"md\",\n hasError: false,\n },\n },\n);\n\nconst switchThumbVariants = cva(\n \"absolute top-0.5 left-0.5 bg-background rounded-full shadow-sm transition-transform duration-200 ease-in-out flex items-center justify-center\",\n {\n variants: {\n size: {\n xs: \"w-(--switch-thumb-xs) h-(--switch-thumb-xs) peer-checked:translate-x-(--switch-translate-xs)\",\n sm: \"w-(--switch-thumb-sm) h-(--switch-thumb-sm) peer-checked:translate-x-(--switch-translate-sm)\",\n md: \"w-(--switch-thumb-md) h-(--switch-thumb-md) peer-checked:translate-x-(--switch-translate-md)\",\n lg: \"w-(--switch-thumb-lg) h-(--switch-thumb-lg) peer-checked:translate-x-(--switch-translate-lg)\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n },\n);\n\n/**\n * Loader size classes based on switch size\n */\nconst loaderSizeClasses: Record<SwitchSize, string> = {\n xs: \"size-2\",\n sm: \"size-2.5\",\n md: \"size-3\",\n lg: \"size-3.5\",\n};\n\n/**\n * Thumb icon size classes based on switch size\n */\nconst thumbIconSizeClasses: Record<SwitchSize, string> = {\n xs: \"size-2\",\n sm: \"size-2.5\",\n md: \"size-3\",\n lg: \"size-3.5\",\n};\n\n/**\n * Track content size classes\n */\nconst trackContentSizeClasses: Record<SwitchSize, string> = {\n xs: \"text-[6px] px-0.5\",\n sm: \"text-[7px] px-0.5\",\n md: \"text-[8px] px-1\",\n lg: \"text-[9px] px-1.5\",\n};\n\nconst Switch = React.memo<SwitchProps>(\n ({\n color = \"primary\",\n size = \"md\",\n label,\n labelPosition = \"right\",\n helperText,\n error,\n loading = false,\n thumbIcon,\n startContent,\n endContent,\n required,\n labelClassName,\n className,\n classNames,\n disabled,\n checked,\n defaultChecked,\n ref,\n ...props\n }) => {\n const id = useId();\n const inputId = props.id || id;\n const helperId = `switch-helper-${id}`;\n const hasHelperText = !!(helperText || error);\n\n // Handle uncontrolled mode\n const [internalChecked, setInternalChecked] = useState(\n defaultChecked ?? false,\n );\n const isControlled = checked !== undefined;\n const currentChecked = isControlled ? checked : internalChecked;\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (!isControlled) {\n setInternalChecked(e.target.checked);\n }\n props.onChange?.(e);\n };\n\n const isDisabled = disabled || loading;\n\n const switchElement = (\n <span\n className={cn(\n \"relative inline-flex items-center\",\n \"switch_root\",\n classNames?.root,\n )}\n >\n <input\n ref={ref}\n id={inputId}\n type=\"checkbox\"\n className=\"peer sr-only\"\n disabled={isDisabled}\n role=\"switch\"\n aria-checked={currentChecked}\n aria-invalid={!!error || undefined}\n aria-describedby={hasHelperText ? helperId : undefined}\n checked={currentChecked}\n onChange={handleChange}\n required={required}\n {...props}\n />\n <span\n className={cn(\n switchTrackVariants({ color, size, hasError: !!error }),\n \"switch_track\",\n classNames?.track,\n className,\n )}\n >\n {/* Track content - start (visible when unchecked) */}\n {startContent && (\n <span\n className={cn(\n \"absolute right-0.5 top-1/2 -translate-y-1/2 text-white font-medium transition-opacity\",\n trackContentSizeClasses[size],\n currentChecked ? \"opacity-0\" : \"opacity-100\",\n )}\n >\n {startContent}\n </span>\n )}\n {/* Track content - end (visible when checked) */}\n {endContent && (\n <span\n className={cn(\n \"absolute left-0.5 top-1/2 -translate-y-1/2 text-white font-medium transition-opacity\",\n trackContentSizeClasses[size],\n currentChecked ? \"opacity-100\" : \"opacity-0\",\n )}\n >\n {endContent}\n </span>\n )}\n </span>\n\n {/* Thumb */}\n <span\n className={cn(\n switchThumbVariants({ size }),\n \"switch_thumb\",\n classNames?.thumb,\n )}\n >\n {loading ? (\n <Loader2\n className={cn(\n \"animate-spin text-text-secondary\",\n loaderSizeClasses[size],\n )}\n />\n ) : thumbIcon ? (\n <span\n className={cn(\n \"flex items-center justify-center text-text-secondary\",\n thumbIconSizeClasses[size],\n )}\n >\n {thumbIcon}\n </span>\n ) : null}\n </span>\n </span>\n );\n\n // Switch with label and/or helper/error text\n return (\n <div className=\"w-full\">\n <label\n htmlFor={inputId}\n className={cn(\n \"inline-flex items-center gap-2\",\n !isDisabled && \"cursor-pointer\",\n labelPosition === \"left\" && \"flex-row-reverse\",\n )}\n >\n {switchElement}\n {label && (\n <span\n className={cn(\n \"text-sm text-text-primary select-none\",\n error && \"text-error\",\n isDisabled && \"opacity-50\",\n \"switch_label\",\n classNames?.label,\n labelClassName,\n )}\n >\n {label}\n {required && (\n <span className=\"text-error ml-0.5\" aria-hidden=\"true\">\n *\n </span>\n )}\n </span>\n )}\n </label>\n {(helperText || error) && (\n <p\n id={helperId}\n className={cn(\n \"mt-1 text-xs\",\n labelPosition === \"left\" ? \"text-right\" : \"text-left\",\n error ? \"text-error\" : \"text-text-secondary\",\n \"switch_description\",\n classNames?.description,\n )}\n >\n {error || helperText}\n </p>\n )}\n </div>\n );\n },\n);\n\nSwitch.displayName = \"Switch\";\n\nexport type * from \"./types\";\nexport default Switch;\n"]}
@@ -39,10 +39,10 @@ var floatLabelVariants = cva(
39
39
  {
40
40
  variants: {
41
41
  size: {
42
- xs: "left-2 text-xs top-1/2 -translate-y-1/2 peer-focus:top-1 peer-focus:translate-y-0 peer-focus:text-[10px] peer-[:not(:placeholder-shown)]:top-1 peer-[:not(:placeholder-shown)]:translate-y-0 peer-[:not(:placeholder-shown)]:text-[10px]",
43
- sm: "left-3 text-sm top-1/2 -translate-y-1/2 peer-focus:top-1.5 peer-focus:translate-y-0 peer-focus:text-[10px] peer-[:not(:placeholder-shown)]:top-1.5 peer-[:not(:placeholder-shown)]:translate-y-0 peer-[:not(:placeholder-shown)]:text-[10px]",
44
- md: "left-3 text-base top-1/2 -translate-y-1/2 peer-focus:top-2 peer-focus:translate-y-0 peer-focus:text-xs peer-[:not(:placeholder-shown)]:top-2 peer-[:not(:placeholder-shown)]:translate-y-0 peer-[:not(:placeholder-shown)]:text-xs",
45
- lg: "left-4 text-lg top-1/2 -translate-y-1/2 peer-focus:top-2.5 peer-focus:translate-y-0 peer-focus:text-xs peer-[:not(:placeholder-shown)]:top-2.5 peer-[:not(:placeholder-shown)]:translate-y-0 peer-[:not(:placeholder-shown)]:text-xs"
42
+ xs: "left-2 text-xs top-2.5 peer-focus:top-1 peer-focus:text-[10px] peer-[:not(:placeholder-shown)]:top-1 peer-[:not(:placeholder-shown)]:text-[10px]",
43
+ sm: "left-3 text-sm top-2.5 peer-focus:top-1.5 peer-focus:text-[10px] peer-[:not(:placeholder-shown)]:top-1.5 peer-[:not(:placeholder-shown)]:text-[10px]",
44
+ md: "left-3 text-base top-3 peer-focus:top-2 peer-focus:text-xs peer-[:not(:placeholder-shown)]:top-2 peer-[:not(:placeholder-shown)]:text-xs",
45
+ lg: "left-4 text-lg top-3.5 peer-focus:top-2.5 peer-focus:text-xs peer-[:not(:placeholder-shown)]:top-2.5 peer-[:not(:placeholder-shown)]:text-xs"
46
46
  },
47
47
  status: {
48
48
  default: "",
@@ -306,5 +306,5 @@ FloatInput.displayName = "FloatInput";
306
306
  var float_input_default = FloatInput;
307
307
 
308
308
  export { float_input_default };
309
- //# sourceMappingURL=chunk-I7MESP7F.js.map
310
- //# sourceMappingURL=chunk-I7MESP7F.js.map
309
+ //# sourceMappingURL=chunk-SB3JGUGE.js.map
310
+ //# sourceMappingURL=chunk-SB3JGUGE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/float-input/index.tsx"],"names":[],"mappings":"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","file":"chunk-SB3JGUGE.js","sourcesContent":["\"use client\";\n\nimport { cva } from \"class-variance-authority\";\nimport { X } from \"lucide-react\";\nimport React, { useId, useMemo } from \"react\";\n\nimport Spinner from \"../spinner\";\n\nimport {\n cn,\n getValidationStatus,\n iconSizes,\n statusMessageVariants,\n} from \"../utils\";\nimport type { FloatInputProps } from \"./types\";\n\nconst floatInputVariants = cva(\n \"peer w-full placeholder:text-transparent rounded-md disabled:opacity-50 disabled:cursor-not-allowed read-only:bg-surface read-only:cursor-default outline-none text-text-primary transition-[border-color] duration-200 border border-border focus:border-primary focus:ring-1 focus:ring-primary/20 bg-background\",\n {\n variants: {\n status: {\n default: \"\",\n error: \"border-error focus:border-error focus:ring-error/20\",\n warning: \"border-warning focus:border-warning focus:ring-warning/20\",\n info: \"border-info focus:border-info focus:ring-info/20\",\n success: \"border-success focus:border-success focus:ring-success/20\",\n },\n size: {\n xs: \"h-9 pt-3.5 px-2 text-xs\",\n sm: \"h-10 pt-4 px-3 text-sm\",\n md: \"h-12 pt-5 px-3 text-base\",\n lg: \"h-14 pt-5 px-4 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 floatLabelVariants = cva(\n \"absolute pointer-events-none transition-[top,font-size,color] duration-200 text-text-secondary origin-left\",\n {\n variants: {\n size: {\n xs: \"left-2 text-xs top-2.5 peer-focus:top-1 peer-focus:text-[10px] peer-[:not(:placeholder-shown)]:top-1 peer-[:not(:placeholder-shown)]:text-[10px]\",\n sm: \"left-3 text-sm top-2.5 peer-focus:top-1.5 peer-focus:text-[10px] peer-[:not(:placeholder-shown)]:top-1.5 peer-[:not(:placeholder-shown)]:text-[10px]\",\n md: \"left-3 text-base top-3 peer-focus:top-2 peer-focus:text-xs peer-[:not(:placeholder-shown)]:top-2 peer-[:not(:placeholder-shown)]:text-xs\",\n lg: \"left-4 text-lg top-3.5 peer-focus:top-2.5 peer-focus:text-xs peer-[:not(:placeholder-shown)]:top-2.5 peer-[:not(:placeholder-shown)]:text-xs\",\n },\n status: {\n default: \"\",\n error: \"peer-focus:text-error\",\n warning: \"peer-focus:text-warning\",\n info: \"peer-focus:text-info\",\n success: \"peer-focus:text-success\",\n },\n hasLeftIcon: {\n true: \"\",\n false: \"\",\n },\n },\n compoundVariants: [\n {\n size: \"xs\",\n hasLeftIcon: true,\n className: \"left-8\",\n },\n {\n size: \"sm\",\n hasLeftIcon: true,\n className: \"left-10\",\n },\n {\n size: \"md\",\n hasLeftIcon: true,\n className: \"left-10\",\n },\n {\n size: \"lg\",\n hasLeftIcon: true,\n className: \"left-10\",\n },\n ],\n defaultVariants: {\n size: \"md\",\n status: \"default\",\n hasLeftIcon: false,\n },\n },\n);\n\nconst FloatInput = React.memo<FloatInputProps>(\n ({\n size = \"md\",\n label,\n error,\n warning,\n info,\n success,\n helperText,\n leftIcon,\n rightIcon,\n clearable = false,\n onClear,\n loading = false,\n fullWidth = true,\n className,\n classNames,\n value,\n onChange,\n ref,\n ...props\n }) => {\n const [internalValue, setInternalValue] = React.useState(\"\");\n const currentValue = value !== undefined ? value : internalValue;\n\n // Generate unique IDs for accessibility\n const uniqueId = useId();\n const inputId = props.id || `float-input-${uniqueId}`;\n const helperId = `float-input-helper-${uniqueId}`;\n const loadingId = `float-input-loading-${uniqueId}`;\n const labelId = `float-input-label-${uniqueId}`;\n\n // Use shared validation status utility - memoized\n const { status, message: helperMessage } = useMemo(\n () => getValidationStatus({ error, warning, info, success, helperText }),\n [error, warning, info, success, helperText],\n );\n\n const handleChange = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n if (value === undefined) setInternalValue(e.target.value);\n onChange?.(e);\n },\n [value, onChange],\n );\n\n const handleClear = React.useCallback(() => {\n if (value === undefined) setInternalValue(\"\");\n onClear?.();\n }, [value, onClear]);\n\n const showClear =\n clearable && currentValue && !props.disabled && !props.readOnly;\n const hasRightIcon = rightIcon || showClear || loading;\n\n // Memoize aria-describedby to avoid array recreation on every render\n const ariaDescribedBy = useMemo(() => {\n const parts: string[] = [];\n if (helperMessage) parts.push(helperId);\n if (loading) parts.push(loadingId);\n return parts.length > 0 ? parts.join(\" \") : undefined;\n }, [helperMessage, helperId, loading, loadingId]);\n\n // Memoize expensive className computations\n const rootClass = useMemo(\n () =>\n cn(\n \"float-input_root\",\n \"w-full flex flex-col relative\",\n !fullWidth && \"inline-block\",\n classNames?.root,\n ),\n [fullWidth, classNames?.root],\n );\n\n const wrapperClass = useMemo(\n () =>\n cn(\n \"float-input_wrapper\",\n \"relative w-full\",\n loading && \"opacity-50 cursor-not-allowed\",\n classNames?.wrapper,\n ),\n [loading, classNames?.wrapper],\n );\n\n const leftIconClass = useMemo(() => {\n const sizeClasses = {\n xs: \"left-2\",\n sm: \"left-3\",\n md: \"left-3\",\n lg: \"left-4\",\n };\n return cn(\n \"float-input_leftIcon\",\n \"absolute flex items-center h-full top-0 text-text-secondary\",\n sizeClasses[size],\n classNames?.leftIcon,\n );\n }, [size, classNames?.leftIcon]);\n\n const inputClass = useMemo(() => {\n const leftPadding = leftIcon\n ? {\n xs: \"pl-8\",\n sm: \"pl-10\",\n md: \"pl-10\",\n lg: \"pl-11\",\n }[size]\n : \"\";\n\n const rightPadding = hasRightIcon\n ? {\n xs: \"pr-8\",\n sm: \"pr-8\",\n md: \"pr-8\",\n lg: \"pr-10\",\n }[size]\n : \"\";\n\n return cn(\n \"float-input_input\",\n floatInputVariants({ status, size, fullWidth }),\n leftPadding,\n rightPadding,\n className,\n classNames?.input,\n );\n }, [\n status,\n size,\n fullWidth,\n leftIcon,\n hasRightIcon,\n className,\n classNames?.input,\n ]);\n\n const labelClass = useMemo(\n () =>\n cn(\n \"float-input_label\",\n floatLabelVariants({ size, status, hasLeftIcon: !!leftIcon }),\n classNames?.label,\n ),\n [size, status, leftIcon, classNames?.label],\n );\n\n const rightIconClass = useMemo(() => {\n const sizeClasses = {\n xs: \"right-2\",\n sm: \"right-3\",\n md: \"right-3\",\n lg: \"right-4\",\n };\n return cn(\n \"float-input_rightIcon\",\n \"absolute flex gap-2 items-center h-full top-0 text-text-secondary\",\n sizeClasses[size],\n classNames?.rightIcon,\n );\n }, [size, classNames?.rightIcon]);\n\n const clearButtonClass = useMemo(\n () =>\n cn(\n \"float-input_clearButton\",\n \"flex items-center h-full top-0 text-text-secondary hover:text-text-primary transition-colors\",\n classNames?.clearButton,\n ),\n [classNames?.clearButton],\n );\n\n const helperClass = useMemo(\n () =>\n cn(\n \"float-input_helper\",\n statusMessageVariants({ status }),\n \"mt-0.5\",\n status === \"error\" ? classNames?.error : classNames?.helper,\n ),\n [status, classNames?.error, classNames?.helper],\n );\n\n const iconSize = iconSizes[size];\n\n return (\n <div data-slot=\"root\" className={rootClass}>\n <div data-slot=\"wrapper\" className={wrapperClass}>\n {leftIcon && (\n <div\n data-slot=\"leftIcon\"\n className={leftIconClass}\n aria-hidden=\"true\"\n >\n {leftIcon}\n </div>\n )}\n <input\n ref={ref}\n id={inputId}\n data-slot=\"input\"\n className={inputClass}\n value={currentValue}\n onChange={handleChange}\n placeholder=\" \"\n aria-invalid={status === \"error\"}\n aria-busy={loading}\n aria-describedby={ariaDescribedBy}\n aria-labelledby={labelId}\n {...props}\n />\n <label\n id={labelId}\n htmlFor={inputId}\n data-slot=\"label\"\n className={labelClass}\n >\n {label}\n {props.required && <span className=\"text-error ml-0.5\">*</span>}\n </label>\n {(hasRightIcon || rightIcon) && (\n <div data-slot=\"rightIcon\" className={rightIconClass}>\n {showClear && !loading && (\n <button\n type=\"button\"\n onClick={handleClear}\n data-slot=\"clearButton\"\n className={clearButtonClass}\n aria-label=\"Clear input\"\n >\n <X className={iconSize} aria-hidden=\"true\" />\n </button>\n )}\n {loading ? (\n <>\n <Spinner aria-hidden=\"true\" size={size} />\n <span id={loadingId} className=\"sr-only\">\n Loading\n </span>\n </>\n ) : (\n rightIcon && <span aria-hidden=\"true\">{rightIcon}</span>\n )}\n </div>\n )}\n </div>\n {helperMessage && (\n <p id={helperId} data-slot=\"helper\" className={helperClass}>\n {helperMessage}\n </p>\n )}\n </div>\n );\n },\n);\n\nFloatInput.displayName = \"FloatInput\";\n\nexport type * from \"./types\";\nexport default FloatInput;\n"]}
@@ -112,11 +112,16 @@ var Checkbox = React.memo(
112
112
  classNames?.indicator
113
113
  ),
114
114
  "data-slot": "indicator",
115
- children: indeterminate ? /* @__PURE__ */ jsx(Minus, { className: cn(iconSizes[size], textColorClasses[color]), strokeWidth: 3 }) : /* @__PURE__ */ jsx(Check, { className: cn(iconSizes[size], textColorClasses[color]) })
115
+ children: indeterminate ? /* @__PURE__ */ jsx(
116
+ Minus,
117
+ {
118
+ className: cn(iconSizes[size], textColorClasses[color]),
119
+ strokeWidth: 3
120
+ }
121
+ ) : /* @__PURE__ */ jsx(Check, { className: cn(iconSizes[size], textColorClasses[color]) })
116
122
  }
117
123
  )
118
124
  ] });
119
- if (!label && !helperText && !error) return checkboxElement;
120
125
  return /* @__PURE__ */ jsxs(
121
126
  "div",
122
127
  {
@@ -172,5 +177,5 @@ Checkbox.displayName = "Checkbox";
172
177
  var checkbox_default = Checkbox;
173
178
 
174
179
  export { checkbox_default };
175
- //# sourceMappingURL=chunk-RLYGJN56.js.map
176
- //# sourceMappingURL=chunk-RLYGJN56.js.map
180
+ //# sourceMappingURL=chunk-U5GAFTEM.js.map
181
+ //# sourceMappingURL=chunk-U5GAFTEM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/checkbox/index.tsx"],"names":[],"mappings":"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","file":"chunk-U5GAFTEM.js","sourcesContent":["\"use client\";\n\nimport { cva } from \"class-variance-authority\";\nimport { Check, Minus } from \"lucide-react\";\nimport React, { useState, useCallback, useEffect, useId } from \"react\";\n\nimport { cn, iconSizes } from \"../utils\";\nimport {\n checkboxBorderColorClasses,\n focusRingColorClasses,\n textColorClasses,\n} from \"../variants\";\nimport type { CheckboxProps } from \"./types\";\n\n/**\n * Merges multiple refs into a single callback ref.\n * Handles both callback refs and RefObject refs safely.\n */\nfunction useMergeRefs<T>(\n ...refs: (React.Ref<T> | undefined)[]\n): React.RefCallback<T> {\n // Store refs in a ref to avoid dependency array issues\n const refsRef = React.useRef(refs);\n refsRef.current = refs;\n\n return useCallback((instance: T | null) => {\n refsRef.current.forEach((ref) => {\n if (typeof ref === \"function\") {\n ref(instance);\n } else if (ref && typeof ref === \"object\") {\n (ref as React.MutableRefObject<T | null>).current = instance;\n }\n });\n }, []);\n}\n\nconst checkboxVariants = cva(\n \"appearance-none rounded border bg-background cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-offset-background\",\n {\n variants: {\n color: checkboxBorderColorClasses,\n size: {\n xs: \"w-(--checkbox-size-xs) h-(--checkbox-size-xs)\",\n sm: \"w-(--checkbox-size-sm) h-(--checkbox-size-sm)\",\n md: \"w-(--checkbox-size-md) h-(--checkbox-size-md)\",\n lg: \"w-(--checkbox-size-lg) h-(--checkbox-size-lg)\",\n },\n error: {\n true: \"border-error checked:border-error\",\n false: \"\",\n },\n },\n defaultVariants: {\n color: \"primary\",\n size: \"md\",\n },\n },\n);\n\nconst Checkbox = React.memo<CheckboxProps>(\n ({\n color = \"primary\",\n size = \"md\",\n label,\n helperText,\n error,\n indeterminate = false,\n className,\n checked,\n defaultChecked,\n ref,\n classNames,\n ...props\n }) => {\n const [internalChecked, setInternalChecked] = useState(\n defaultChecked ?? false,\n );\n const internalRef = React.useRef<HTMLInputElement>(null);\n\n // Generate unique ID for accessibility\n const uniqueId = useId();\n const helperId = `checkbox-helper-${uniqueId}`;\n const hasHelperText = !!(helperText || error);\n\n // Safely merge refs - handles both callback refs and RefObject refs\n const mergedRef = useMergeRefs(ref, internalRef);\n\n // Determine if controlled\n const isControlled = checked !== undefined;\n const currentChecked = isControlled ? checked : internalChecked;\n\n const onChangeRef = React.useRef(props.onChange);\n onChangeRef.current = props.onChange;\n\n const onChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n if (!isControlled) {\n setInternalChecked(event.target.checked);\n }\n onChangeRef.current?.(event);\n },\n [isControlled],\n );\n\n useEffect(() => {\n if (internalRef.current) {\n internalRef.current.indeterminate = indeterminate;\n }\n }, [indeterminate]);\n\n const checkboxElement = (\n <div className=\"relative inline-flex\" data-slot=\"wrapper\">\n <input\n ref={mergedRef}\n type=\"checkbox\"\n className={cn(\n \"checkbox_checkbox\",\n checkboxVariants({ color, size, error: !!error }),\n focusRingColorClasses[color],\n className,\n classNames?.checkbox,\n )}\n aria-checked={indeterminate ? \"mixed\" : currentChecked}\n aria-invalid={!!error || undefined}\n aria-describedby={hasHelperText ? helperId : undefined}\n {...props}\n onChange={onChange}\n checked={currentChecked}\n data-slot=\"checkbox\"\n />\n {(currentChecked || indeterminate) && (\n <div\n className={cn(\n \"checkbox_indicator\",\n \"absolute inset-0 flex items-center justify-center pointer-events-none\",\n classNames?.indicator,\n )}\n data-slot=\"indicator\"\n >\n {indeterminate ? (\n <Minus\n className={cn(iconSizes[size], textColorClasses[color])}\n strokeWidth={3}\n />\n ) : (\n <Check className={cn(iconSizes[size], textColorClasses[color])} />\n )}\n </div>\n )}\n </div>\n );\n\n return (\n <div\n className={cn(\"checkbox_root\", \"w-full\", classNames?.root)}\n data-slot=\"root\"\n >\n <label\n className={cn(\n \"flex items-center gap-2\",\n !props.disabled && \"cursor-pointer\",\n )}\n >\n {checkboxElement}\n {label && (\n <span\n className={cn(\n \"checkbox_label\",\n \"text-sm text-text-primary select-none\",\n error && \"text-error\",\n props.disabled && \"opacity-50\",\n classNames?.label,\n )}\n data-slot=\"label\"\n >\n {label}\n </span>\n )}\n </label>\n {(helperText || error) && (\n <p\n id={helperId}\n className={cn(\n \"checkbox_description\",\n \"mt-1 ml-0 text-xs\",\n error ? \"text-error\" : \"text-text-secondary\",\n classNames?.description,\n )}\n data-slot=\"description\"\n >\n {typeof error === \"string\" ? error : helperText}\n </p>\n )}\n </div>\n );\n },\n);\n\nCheckbox.displayName = \"Checkbox\";\n\nexport type * from \"./types\";\nexport default Checkbox;\n"]}
@@ -1,4 +1,4 @@
1
- import { checkbox_default } from './chunk-RLYGJN56.js';
1
+ import { checkbox_default } from './chunk-U5GAFTEM.js';
2
2
  import { cn, getValidationStatus, iconSizes, statusMessageVariants } from './chunk-NGYLRX6F.js';
3
3
  import { Search, ChevronRight, ChevronLeft, ChevronsRight, ChevronsLeft } from 'lucide-react';
4
4
  import React from 'react';
@@ -403,5 +403,5 @@ var Transfer = React.memo(
403
403
  Transfer.displayName = "Transfer";
404
404
 
405
405
  export { Transfer };
406
- //# sourceMappingURL=chunk-DHXVNO75.js.map
407
- //# sourceMappingURL=chunk-DHXVNO75.js.map
406
+ //# sourceMappingURL=chunk-XR4UHTK3.js.map
407
+ //# sourceMappingURL=chunk-XR4UHTK3.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/transfer/utils.ts","../src/transfer/index.tsx"],"names":[],"mappings":"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","file":"chunk-DHXVNO75.js","sourcesContent":["import { cva } from 'class-variance-authority'\n\nimport type { TransferItem } from './types'\n\nexport const transferHeaderVariants = cva(\n 'flex items-center justify-between px-4 py-2 border-b border-border bg-surface',\n)\n\nexport const transferBodyVariants = cva('overflow-y-auto')\n\nexport const transferItemVariants = cva(\n 'flex items-center gap-2 px-4 py-2 cursor-pointer transition-colors hover:bg-surface',\n {\n variants: {\n selected: {\n true: 'bg-primary/10',\n false: '',\n },\n disabled: {\n true: 'opacity-50 cursor-not-allowed hover:bg-transparent',\n false: '',\n },\n },\n defaultVariants: {\n selected: false,\n disabled: false,\n },\n },\n)\n\nexport const transferButtonVariants = cva('flex flex-col gap-2')\n\nexport const transferActionButtonVariants = cva(\n 'flex items-center justify-center p-2 rounded-md border border-border bg-background text-text-secondary hover:bg-primary hover:text-white hover:border-primary transition-colors disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:bg-background disabled:hover:text-text-secondary disabled:hover:border-border',\n)\n\nexport const filterItems = (\n items: TransferItem[],\n searchValue: string,\n): TransferItem[] => {\n if (!searchValue) return items\n\n const lowerSearch = searchValue.toLowerCase()\n return items.filter(\n (item) =>\n item.label.toLowerCase().includes(lowerSearch) ||\n item.description?.toLowerCase().includes(lowerSearch),\n )\n}\n\nexport const getItemsByKeys = (\n items: TransferItem[],\n keys: string[],\n): TransferItem[] => {\n return items.filter((item) => keys.includes(item.key))\n}\n\nexport const getEnabledItems = (items: TransferItem[]): TransferItem[] => {\n return items.filter((item) => !item.disabled)\n}\n","'use client'\n\nimport {\n ChevronLeft,\n ChevronRight,\n ChevronsLeft,\n ChevronsRight,\n Search,\n} from 'lucide-react'\nimport React from 'react'\n\nimport Checkbox from '../checkbox'\nimport {\n cn,\n getValidationStatus,\n iconSizes,\n statusMessageVariants,\n} from '../utils'\nimport type { TransferItem, TransferListProps, TransferProps } from './types'\nimport {\n filterItems,\n getEnabledItems,\n getItemsByKeys,\n transferActionButtonVariants,\n transferBodyVariants,\n transferButtonVariants,\n transferHeaderVariants,\n transferItemVariants,\n} from './utils'\n\nconst TransferList = React.memo<TransferListProps>(\n ({\n title,\n dataSource,\n selectedKeys,\n disabled = false,\n showSearch = false,\n searchPlaceholder = 'Search...',\n listHeight = 300,\n showSelectAll = true,\n onItemSelect,\n onItemSelectAll,\n onSearch,\n render,\n footer,\n classNames,\n }) => {\n const [searchValue, setSearchValue] = React.useState('')\n\n const filteredData = React.useMemo(\n () => filterItems(dataSource, searchValue),\n [dataSource, searchValue],\n )\n\n const enabledItems = React.useMemo(\n () => getEnabledItems(filteredData),\n [filteredData],\n )\n\n const selectedCount = React.useMemo(\n () =>\n filteredData.filter((item) => selectedKeys.includes(item.key)).length,\n [filteredData, selectedKeys],\n )\n\n const allChecked =\n enabledItems.length > 0 && selectedCount === enabledItems.length\n const indeterminate =\n selectedCount > 0 && selectedCount < enabledItems.length\n\n const handleSearchChange = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value\n setSearchValue(value)\n onSearch?.(value)\n },\n [onSearch],\n )\n\n const handleSelectAll = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const checked = e.target.checked\n const keys = enabledItems.map((item) => item.key)\n onItemSelectAll(keys, checked)\n },\n [enabledItems, onItemSelectAll],\n )\n\n const handleItemSelect = React.useCallback(\n (item: TransferItem) => {\n if (item.disabled) return\n const checked = !selectedKeys.includes(item.key)\n onItemSelect(item.key, checked)\n },\n [selectedKeys, onItemSelect],\n )\n\n return (\n <div className={cn(\"flex flex-col border border-border rounded-lg bg-card overflow-hidden min-w-72 transfer_list\", classNames?.list)}>\n {/* Header */}\n <div className={cn(transferHeaderVariants(), \"transfer_header\", classNames?.header)}>\n <div className=\"flex items-center gap-2 flex-1\">\n {showSelectAll && (\n <Checkbox\n checked={allChecked}\n indeterminate={indeterminate}\n onChange={handleSelectAll}\n disabled={disabled || enabledItems.length === 0}\n size=\"sm\"\n />\n )}\n <span className=\"text-sm font-medium text-text-primary\">\n {title}\n <span className=\"text-text-secondary ml-1\">\n ({selectedCount}/{filteredData.length})\n </span>\n </span>\n </div>\n </div>\n\n {/* Search */}\n {showSearch && (\n <div className=\"p-2 border-b border-border\">\n <div className=\"relative\">\n <Search className=\"absolute left-2 top-1/2 -translate-y-1/2 w-4 h-4 text-text-secondary\" />\n <input\n type=\"text\"\n className={cn(\"w-full pl-8 pr-3 py-1.5 text-sm bg-background border border-border rounded-md outline-none focus:border-primary transition-colors transfer_search\", classNames?.search)}\n placeholder={searchPlaceholder}\n value={searchValue}\n onChange={handleSearchChange}\n disabled={disabled}\n />\n </div>\n </div>\n )}\n\n {/* Body */}\n <div\n className={transferBodyVariants()}\n style={{ height: listHeight }}\n >\n {filteredData.length === 0 ? (\n <div className=\"flex items-center justify-center h-full text-sm text-text-secondary\">\n No data\n </div>\n ) : (\n filteredData.map((item) => (\n <div\n key={item.key}\n className={cn(\n transferItemVariants({\n selected: selectedKeys.includes(item.key),\n disabled: !!item.disabled || disabled,\n }),\n \"transfer_item\",\n classNames?.item\n )}\n onClick={() => handleItemSelect(item)}\n >\n <Checkbox\n checked={selectedKeys.includes(item.key)}\n disabled={!!item.disabled || disabled}\n size=\"sm\"\n onChange={() => {}} // Handled by parent click\n />\n {render ? (\n render(item)\n ) : (\n <div className=\"flex-1 min-w-0\">\n <div className=\"text-sm text-text-primary truncate\">\n {item.label}\n </div>\n {item.description && (\n <div className=\"text-xs text-text-secondary truncate\">\n {item.description}\n </div>\n )}\n </div>\n )}\n </div>\n ))\n )}\n </div>\n\n {/* Footer */}\n {footer && (\n <div className=\"px-4 py-2 border-t border-border bg-surface text-sm text-text-secondary\">\n {footer}\n </div>\n )}\n </div>\n )\n },\n)\n\nTransferList.displayName = 'TransferList'\n\nexport const Transfer = React.memo<TransferProps>(\n ({\n dataSource = [],\n targetKeys,\n defaultTargetKeys = [],\n titles = ['Source', 'Target'],\n size = 'md',\n showSearch = false,\n searchPlaceholder = 'Search...',\n listHeight = 300,\n showSelectAll = true,\n oneWay = false,\n disabled = false,\n render,\n footer,\n onChange,\n onSelectChange,\n onSearch,\n label,\n helperText,\n error,\n warning,\n info,\n success,\n className,\n classNames,\n ref,\n }) => {\n const [internalTargetKeys, setInternalTargetKeys] =\n React.useState<string[]>(defaultTargetKeys)\n const [leftSelectedKeys, setLeftSelectedKeys] = React.useState<string[]>([])\n const [rightSelectedKeys, setRightSelectedKeys] = React.useState<string[]>(\n [],\n )\n\n const currentTargetKeys =\n targetKeys !== undefined ? targetKeys : internalTargetKeys\n\n const { status, message: helperMessage } = getValidationStatus({\n error,\n warning,\n info,\n success,\n helperText,\n })\n\n // Split data into source and target\n const leftDataSource = React.useMemo(\n () => dataSource.filter((item) => !currentTargetKeys.includes(item.key)),\n [dataSource, currentTargetKeys],\n )\n\n const rightDataSource = React.useMemo(\n () => getItemsByKeys(dataSource, currentTargetKeys),\n [dataSource, currentTargetKeys],\n )\n\n const handleLeftItemSelect = React.useCallback(\n (key: string, checked: boolean) => {\n const newKeys = checked\n ? [...leftSelectedKeys, key]\n : leftSelectedKeys.filter((k) => k !== key)\n setLeftSelectedKeys(newKeys)\n onSelectChange?.(newKeys, rightSelectedKeys)\n },\n [leftSelectedKeys, rightSelectedKeys, onSelectChange],\n )\n\n const handleRightItemSelect = React.useCallback(\n (key: string, checked: boolean) => {\n const newKeys = checked\n ? [...rightSelectedKeys, key]\n : rightSelectedKeys.filter((k) => k !== key)\n setRightSelectedKeys(newKeys)\n onSelectChange?.(leftSelectedKeys, newKeys)\n },\n [leftSelectedKeys, rightSelectedKeys, onSelectChange],\n )\n\n const handleLeftSelectAll = React.useCallback(\n (keys: string[], checked: boolean) => {\n const newKeys = checked ? keys : []\n setLeftSelectedKeys(newKeys)\n onSelectChange?.(newKeys, rightSelectedKeys)\n },\n [rightSelectedKeys, onSelectChange],\n )\n\n const handleRightSelectAll = React.useCallback(\n (keys: string[], checked: boolean) => {\n const newKeys = checked ? keys : []\n setRightSelectedKeys(newKeys)\n onSelectChange?.(leftSelectedKeys, newKeys)\n },\n [leftSelectedKeys, onSelectChange],\n )\n\n const moveToRight = React.useCallback(() => {\n const newTargetKeys = [...currentTargetKeys, ...leftSelectedKeys]\n\n if (targetKeys === undefined) {\n setInternalTargetKeys(newTargetKeys)\n }\n\n onChange?.(newTargetKeys, 'right', leftSelectedKeys)\n setLeftSelectedKeys([])\n }, [currentTargetKeys, leftSelectedKeys, targetKeys, onChange])\n\n const moveToLeft = React.useCallback(() => {\n const newTargetKeys = currentTargetKeys.filter(\n (key) => !rightSelectedKeys.includes(key),\n )\n\n if (targetKeys === undefined) {\n setInternalTargetKeys(newTargetKeys)\n }\n\n onChange?.(newTargetKeys, 'left', rightSelectedKeys)\n setRightSelectedKeys([])\n }, [currentTargetKeys, rightSelectedKeys, targetKeys, onChange])\n\n const moveAllToRight = React.useCallback(() => {\n const enabledLeftItems = getEnabledItems(leftDataSource)\n const keysToMove = enabledLeftItems.map((item) => item.key)\n const newTargetKeys = [...currentTargetKeys, ...keysToMove]\n\n if (targetKeys === undefined) {\n setInternalTargetKeys(newTargetKeys)\n }\n\n onChange?.(newTargetKeys, 'right', keysToMove)\n setLeftSelectedKeys([])\n }, [leftDataSource, currentTargetKeys, targetKeys, onChange])\n\n const moveAllToLeft = React.useCallback(() => {\n const enabledRightItems = getEnabledItems(rightDataSource)\n const keysToMove = enabledRightItems.map((item) => item.key)\n const newTargetKeys = currentTargetKeys.filter(\n (key) => !keysToMove.includes(key),\n )\n\n if (targetKeys === undefined) {\n setInternalTargetKeys(newTargetKeys)\n }\n\n onChange?.(newTargetKeys, 'left', keysToMove)\n setRightSelectedKeys([])\n }, [rightDataSource, currentTargetKeys, targetKeys, onChange])\n\n const leftFooter = footer?.({ direction: 'left' })\n const rightFooter = footer?.({ direction: 'right' })\n\n return (\n <div ref={ref}>\n {label && (\n <label className=\"block mb-2\">\n <span className=\"text-sm font-medium text-text-secondary\">{label}</span>\n </label>\n )}\n\n <div className={cn('flex items-center gap-4 transfer_root', classNames?.root, className)}>\n {/* Left List */}\n <TransferList\n title={titles[0]}\n dataSource={leftDataSource}\n selectedKeys={leftSelectedKeys}\n disabled={disabled}\n showSearch={showSearch}\n searchPlaceholder={searchPlaceholder}\n listHeight={listHeight}\n showSelectAll={showSelectAll}\n direction=\"left\"\n onItemSelect={handleLeftItemSelect}\n onItemSelectAll={handleLeftSelectAll}\n onSearch={(value) => onSearch?.('left', value)}\n render={render}\n footer={leftFooter}\n size={size}\n classNames={classNames}\n />\n\n {/* Action Buttons */}\n <div className={cn(transferButtonVariants(), \"transfer_actions\", classNames?.actions)}>\n <button\n type=\"button\"\n className={transferActionButtonVariants()}\n onClick={moveToRight}\n disabled={disabled || leftSelectedKeys.length === 0}\n title=\"Move selected to right\"\n >\n <ChevronRight className={iconSizes[size]} />\n </button>\n {!oneWay && (\n <button\n type=\"button\"\n className={transferActionButtonVariants()}\n onClick={moveToLeft}\n disabled={disabled || rightSelectedKeys.length === 0}\n title=\"Move selected to left\"\n >\n <ChevronLeft className={iconSizes[size]} />\n </button>\n )}\n <button\n type=\"button\"\n className={transferActionButtonVariants()}\n onClick={moveAllToRight}\n disabled={disabled || leftDataSource.length === 0}\n title=\"Move all to right\"\n >\n <ChevronsRight className={iconSizes[size]} />\n </button>\n {!oneWay && (\n <button\n type=\"button\"\n className={transferActionButtonVariants()}\n onClick={moveAllToLeft}\n disabled={disabled || rightDataSource.length === 0}\n title=\"Move all to left\"\n >\n <ChevronsLeft className={iconSizes[size]} />\n </button>\n )}\n </div>\n\n {/* Right List */}\n <TransferList\n title={titles[1]}\n dataSource={rightDataSource}\n selectedKeys={rightSelectedKeys}\n disabled={disabled}\n showSearch={showSearch}\n searchPlaceholder={searchPlaceholder}\n listHeight={listHeight}\n showSelectAll={showSelectAll}\n direction=\"right\"\n onItemSelect={handleRightItemSelect}\n onItemSelectAll={handleRightSelectAll}\n onSearch={(value) => onSearch?.('right', value)}\n render={render}\n footer={rightFooter}\n size={size}\n classNames={classNames}\n />\n </div>\n\n {helperMessage && (\n <p className={cn(statusMessageVariants({ status }), 'mt-1')}>\n {helperMessage}\n </p>\n )}\n </div>\n )\n },\n)\n\nTransfer.displayName = 'Transfer'\n\nexport type * from './types'\nexport type * from './types'\n"]}
1
+ {"version":3,"sources":["../src/transfer/utils.ts","../src/transfer/index.tsx"],"names":[],"mappings":"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","file":"chunk-XR4UHTK3.js","sourcesContent":["import { cva } from 'class-variance-authority'\n\nimport type { TransferItem } from './types'\n\nexport const transferHeaderVariants = cva(\n 'flex items-center justify-between px-4 py-2 border-b border-border bg-surface',\n)\n\nexport const transferBodyVariants = cva('overflow-y-auto')\n\nexport const transferItemVariants = cva(\n 'flex items-center gap-2 px-4 py-2 cursor-pointer transition-colors hover:bg-surface',\n {\n variants: {\n selected: {\n true: 'bg-primary/10',\n false: '',\n },\n disabled: {\n true: 'opacity-50 cursor-not-allowed hover:bg-transparent',\n false: '',\n },\n },\n defaultVariants: {\n selected: false,\n disabled: false,\n },\n },\n)\n\nexport const transferButtonVariants = cva('flex flex-col gap-2')\n\nexport const transferActionButtonVariants = cva(\n 'flex items-center justify-center p-2 rounded-md border border-border bg-background text-text-secondary hover:bg-primary hover:text-white hover:border-primary transition-colors disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:bg-background disabled:hover:text-text-secondary disabled:hover:border-border',\n)\n\nexport const filterItems = (\n items: TransferItem[],\n searchValue: string,\n): TransferItem[] => {\n if (!searchValue) return items\n\n const lowerSearch = searchValue.toLowerCase()\n return items.filter(\n (item) =>\n item.label.toLowerCase().includes(lowerSearch) ||\n item.description?.toLowerCase().includes(lowerSearch),\n )\n}\n\nexport const getItemsByKeys = (\n items: TransferItem[],\n keys: string[],\n): TransferItem[] => {\n return items.filter((item) => keys.includes(item.key))\n}\n\nexport const getEnabledItems = (items: TransferItem[]): TransferItem[] => {\n return items.filter((item) => !item.disabled)\n}\n","'use client'\n\nimport {\n ChevronLeft,\n ChevronRight,\n ChevronsLeft,\n ChevronsRight,\n Search,\n} from 'lucide-react'\nimport React from 'react'\n\nimport Checkbox from '../checkbox'\nimport {\n cn,\n getValidationStatus,\n iconSizes,\n statusMessageVariants,\n} from '../utils'\nimport type { TransferItem, TransferListProps, TransferProps } from './types'\nimport {\n filterItems,\n getEnabledItems,\n getItemsByKeys,\n transferActionButtonVariants,\n transferBodyVariants,\n transferButtonVariants,\n transferHeaderVariants,\n transferItemVariants,\n} from './utils'\n\nconst TransferList = React.memo<TransferListProps>(\n ({\n title,\n dataSource,\n selectedKeys,\n disabled = false,\n showSearch = false,\n searchPlaceholder = 'Search...',\n listHeight = 300,\n showSelectAll = true,\n onItemSelect,\n onItemSelectAll,\n onSearch,\n render,\n footer,\n classNames,\n }) => {\n const [searchValue, setSearchValue] = React.useState('')\n\n const filteredData = React.useMemo(\n () => filterItems(dataSource, searchValue),\n [dataSource, searchValue],\n )\n\n const enabledItems = React.useMemo(\n () => getEnabledItems(filteredData),\n [filteredData],\n )\n\n const selectedCount = React.useMemo(\n () =>\n filteredData.filter((item) => selectedKeys.includes(item.key)).length,\n [filteredData, selectedKeys],\n )\n\n const allChecked =\n enabledItems.length > 0 && selectedCount === enabledItems.length\n const indeterminate =\n selectedCount > 0 && selectedCount < enabledItems.length\n\n const handleSearchChange = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value\n setSearchValue(value)\n onSearch?.(value)\n },\n [onSearch],\n )\n\n const handleSelectAll = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const checked = e.target.checked\n const keys = enabledItems.map((item) => item.key)\n onItemSelectAll(keys, checked)\n },\n [enabledItems, onItemSelectAll],\n )\n\n const handleItemSelect = React.useCallback(\n (item: TransferItem) => {\n if (item.disabled) return\n const checked = !selectedKeys.includes(item.key)\n onItemSelect(item.key, checked)\n },\n [selectedKeys, onItemSelect],\n )\n\n return (\n <div className={cn(\"flex flex-col border border-border rounded-lg bg-card overflow-hidden min-w-72 transfer_list\", classNames?.list)}>\n {/* Header */}\n <div className={cn(transferHeaderVariants(), \"transfer_header\", classNames?.header)}>\n <div className=\"flex items-center gap-2 flex-1\">\n {showSelectAll && (\n <Checkbox\n checked={allChecked}\n indeterminate={indeterminate}\n onChange={handleSelectAll}\n disabled={disabled || enabledItems.length === 0}\n size=\"sm\"\n />\n )}\n <span className=\"text-sm font-medium text-text-primary\">\n {title}\n <span className=\"text-text-secondary ml-1\">\n ({selectedCount}/{filteredData.length})\n </span>\n </span>\n </div>\n </div>\n\n {/* Search */}\n {showSearch && (\n <div className=\"p-2 border-b border-border\">\n <div className=\"relative\">\n <Search className=\"absolute left-2 top-1/2 -translate-y-1/2 w-4 h-4 text-text-secondary\" />\n <input\n type=\"text\"\n className={cn(\"w-full pl-8 pr-3 py-1.5 text-sm bg-background border border-border rounded-md outline-none focus:border-primary transition-colors transfer_search\", classNames?.search)}\n placeholder={searchPlaceholder}\n value={searchValue}\n onChange={handleSearchChange}\n disabled={disabled}\n />\n </div>\n </div>\n )}\n\n {/* Body */}\n <div\n className={transferBodyVariants()}\n style={{ height: listHeight }}\n >\n {filteredData.length === 0 ? (\n <div className=\"flex items-center justify-center h-full text-sm text-text-secondary\">\n No data\n </div>\n ) : (\n filteredData.map((item) => (\n <div\n key={item.key}\n className={cn(\n transferItemVariants({\n selected: selectedKeys.includes(item.key),\n disabled: !!item.disabled || disabled,\n }),\n \"transfer_item\",\n classNames?.item\n )}\n onClick={() => handleItemSelect(item)}\n >\n <Checkbox\n checked={selectedKeys.includes(item.key)}\n disabled={!!item.disabled || disabled}\n size=\"sm\"\n onChange={() => {}} // Handled by parent click\n />\n {render ? (\n render(item)\n ) : (\n <div className=\"flex-1 min-w-0\">\n <div className=\"text-sm text-text-primary truncate\">\n {item.label}\n </div>\n {item.description && (\n <div className=\"text-xs text-text-secondary truncate\">\n {item.description}\n </div>\n )}\n </div>\n )}\n </div>\n ))\n )}\n </div>\n\n {/* Footer */}\n {footer && (\n <div className=\"px-4 py-2 border-t border-border bg-surface text-sm text-text-secondary\">\n {footer}\n </div>\n )}\n </div>\n )\n },\n)\n\nTransferList.displayName = 'TransferList'\n\nexport const Transfer = React.memo<TransferProps>(\n ({\n dataSource = [],\n targetKeys,\n defaultTargetKeys = [],\n titles = ['Source', 'Target'],\n size = 'md',\n showSearch = false,\n searchPlaceholder = 'Search...',\n listHeight = 300,\n showSelectAll = true,\n oneWay = false,\n disabled = false,\n render,\n footer,\n onChange,\n onSelectChange,\n onSearch,\n label,\n helperText,\n error,\n warning,\n info,\n success,\n className,\n classNames,\n ref,\n }) => {\n const [internalTargetKeys, setInternalTargetKeys] =\n React.useState<string[]>(defaultTargetKeys)\n const [leftSelectedKeys, setLeftSelectedKeys] = React.useState<string[]>([])\n const [rightSelectedKeys, setRightSelectedKeys] = React.useState<string[]>(\n [],\n )\n\n const currentTargetKeys =\n targetKeys !== undefined ? targetKeys : internalTargetKeys\n\n const { status, message: helperMessage } = getValidationStatus({\n error,\n warning,\n info,\n success,\n helperText,\n })\n\n // Split data into source and target\n const leftDataSource = React.useMemo(\n () => dataSource.filter((item) => !currentTargetKeys.includes(item.key)),\n [dataSource, currentTargetKeys],\n )\n\n const rightDataSource = React.useMemo(\n () => getItemsByKeys(dataSource, currentTargetKeys),\n [dataSource, currentTargetKeys],\n )\n\n const handleLeftItemSelect = React.useCallback(\n (key: string, checked: boolean) => {\n const newKeys = checked\n ? [...leftSelectedKeys, key]\n : leftSelectedKeys.filter((k) => k !== key)\n setLeftSelectedKeys(newKeys)\n onSelectChange?.(newKeys, rightSelectedKeys)\n },\n [leftSelectedKeys, rightSelectedKeys, onSelectChange],\n )\n\n const handleRightItemSelect = React.useCallback(\n (key: string, checked: boolean) => {\n const newKeys = checked\n ? [...rightSelectedKeys, key]\n : rightSelectedKeys.filter((k) => k !== key)\n setRightSelectedKeys(newKeys)\n onSelectChange?.(leftSelectedKeys, newKeys)\n },\n [leftSelectedKeys, rightSelectedKeys, onSelectChange],\n )\n\n const handleLeftSelectAll = React.useCallback(\n (keys: string[], checked: boolean) => {\n const newKeys = checked ? keys : []\n setLeftSelectedKeys(newKeys)\n onSelectChange?.(newKeys, rightSelectedKeys)\n },\n [rightSelectedKeys, onSelectChange],\n )\n\n const handleRightSelectAll = React.useCallback(\n (keys: string[], checked: boolean) => {\n const newKeys = checked ? keys : []\n setRightSelectedKeys(newKeys)\n onSelectChange?.(leftSelectedKeys, newKeys)\n },\n [leftSelectedKeys, onSelectChange],\n )\n\n const moveToRight = React.useCallback(() => {\n const newTargetKeys = [...currentTargetKeys, ...leftSelectedKeys]\n\n if (targetKeys === undefined) {\n setInternalTargetKeys(newTargetKeys)\n }\n\n onChange?.(newTargetKeys, 'right', leftSelectedKeys)\n setLeftSelectedKeys([])\n }, [currentTargetKeys, leftSelectedKeys, targetKeys, onChange])\n\n const moveToLeft = React.useCallback(() => {\n const newTargetKeys = currentTargetKeys.filter(\n (key) => !rightSelectedKeys.includes(key),\n )\n\n if (targetKeys === undefined) {\n setInternalTargetKeys(newTargetKeys)\n }\n\n onChange?.(newTargetKeys, 'left', rightSelectedKeys)\n setRightSelectedKeys([])\n }, [currentTargetKeys, rightSelectedKeys, targetKeys, onChange])\n\n const moveAllToRight = React.useCallback(() => {\n const enabledLeftItems = getEnabledItems(leftDataSource)\n const keysToMove = enabledLeftItems.map((item) => item.key)\n const newTargetKeys = [...currentTargetKeys, ...keysToMove]\n\n if (targetKeys === undefined) {\n setInternalTargetKeys(newTargetKeys)\n }\n\n onChange?.(newTargetKeys, 'right', keysToMove)\n setLeftSelectedKeys([])\n }, [leftDataSource, currentTargetKeys, targetKeys, onChange])\n\n const moveAllToLeft = React.useCallback(() => {\n const enabledRightItems = getEnabledItems(rightDataSource)\n const keysToMove = enabledRightItems.map((item) => item.key)\n const newTargetKeys = currentTargetKeys.filter(\n (key) => !keysToMove.includes(key),\n )\n\n if (targetKeys === undefined) {\n setInternalTargetKeys(newTargetKeys)\n }\n\n onChange?.(newTargetKeys, 'left', keysToMove)\n setRightSelectedKeys([])\n }, [rightDataSource, currentTargetKeys, targetKeys, onChange])\n\n const leftFooter = footer?.({ direction: 'left' })\n const rightFooter = footer?.({ direction: 'right' })\n\n return (\n <div ref={ref}>\n {label && (\n <label className=\"block mb-2\">\n <span className=\"text-sm font-medium text-text-secondary\">{label}</span>\n </label>\n )}\n\n <div className={cn('flex items-center gap-4 transfer_root', classNames?.root, className)}>\n {/* Left List */}\n <TransferList\n title={titles[0]}\n dataSource={leftDataSource}\n selectedKeys={leftSelectedKeys}\n disabled={disabled}\n showSearch={showSearch}\n searchPlaceholder={searchPlaceholder}\n listHeight={listHeight}\n showSelectAll={showSelectAll}\n direction=\"left\"\n onItemSelect={handleLeftItemSelect}\n onItemSelectAll={handleLeftSelectAll}\n onSearch={(value) => onSearch?.('left', value)}\n render={render}\n footer={leftFooter}\n size={size}\n classNames={classNames}\n />\n\n {/* Action Buttons */}\n <div className={cn(transferButtonVariants(), \"transfer_actions\", classNames?.actions)}>\n <button\n type=\"button\"\n className={transferActionButtonVariants()}\n onClick={moveToRight}\n disabled={disabled || leftSelectedKeys.length === 0}\n title=\"Move selected to right\"\n >\n <ChevronRight className={iconSizes[size]} />\n </button>\n {!oneWay && (\n <button\n type=\"button\"\n className={transferActionButtonVariants()}\n onClick={moveToLeft}\n disabled={disabled || rightSelectedKeys.length === 0}\n title=\"Move selected to left\"\n >\n <ChevronLeft className={iconSizes[size]} />\n </button>\n )}\n <button\n type=\"button\"\n className={transferActionButtonVariants()}\n onClick={moveAllToRight}\n disabled={disabled || leftDataSource.length === 0}\n title=\"Move all to right\"\n >\n <ChevronsRight className={iconSizes[size]} />\n </button>\n {!oneWay && (\n <button\n type=\"button\"\n className={transferActionButtonVariants()}\n onClick={moveAllToLeft}\n disabled={disabled || rightDataSource.length === 0}\n title=\"Move all to left\"\n >\n <ChevronsLeft className={iconSizes[size]} />\n </button>\n )}\n </div>\n\n {/* Right List */}\n <TransferList\n title={titles[1]}\n dataSource={rightDataSource}\n selectedKeys={rightSelectedKeys}\n disabled={disabled}\n showSearch={showSearch}\n searchPlaceholder={searchPlaceholder}\n listHeight={listHeight}\n showSelectAll={showSelectAll}\n direction=\"right\"\n onItemSelect={handleRightItemSelect}\n onItemSelectAll={handleRightSelectAll}\n onSearch={(value) => onSearch?.('right', value)}\n render={render}\n footer={rightFooter}\n size={size}\n classNames={classNames}\n />\n </div>\n\n {helperMessage && (\n <p className={cn(statusMessageVariants({ status }), 'mt-1')}>\n {helperMessage}\n </p>\n )}\n </div>\n )\n },\n)\n\nTransfer.displayName = 'Transfer'\n\nexport type * from './types'\nexport type * from './types'\n"]}
@@ -1,4 +1,4 @@
1
- import { input_default } from './chunk-GIWG6BCT.js';
1
+ import { input_default } from './chunk-KYDQJSSW.js';
2
2
  import { cn, iconSizes } from './chunk-NGYLRX6F.js';
3
3
  import { Eye, EyeOff } from 'lucide-react';
4
4
  import React from 'react';
@@ -68,5 +68,5 @@ PasswordInput.displayName = "PasswordInput";
68
68
  var input_password_default = input_default;
69
69
 
70
70
  export { PasswordInput, input_password_default };
71
- //# sourceMappingURL=chunk-623OVNLC.js.map
72
- //# sourceMappingURL=chunk-623OVNLC.js.map
71
+ //# sourceMappingURL=chunk-XVRNFPBI.js.map
72
+ //# sourceMappingURL=chunk-XVRNFPBI.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/input-password/index.tsx"],"names":[],"mappings":";;;;;;AASO,IAAM,gBAAgB,KAAA,CAAM,IAAA;AAAA,EACjC,CAAC,EAAE,gBAAA,GAAmB,IAAA,EAAM,IAAA,GAAO,MAAM,GAAA,EAAK,UAAA,EAAY,GAAG,KAAA,EAAM,KAAM;AACvE,IAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,KAAA,CAAM,SAAS,KAAK,CAAA;AAE5D,IAAA,MAAM,gBAAA,GAAmB,KAAA,CAAM,WAAA,CAAY,MAAM;AAC/C,MAAA,eAAA,CAAgB,CAAC,IAAA,KAAS,CAAC,IAAI,CAAA;AAAA,IACjC,CAAA,EAAG,EAAE,CAAA;AAEL,IAAA,uBACE,GAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACE,GAAG,KAAA;AAAA,QACJ,IAAA;AAAA,QACA,GAAA;AAAA,QACA,IAAA,EAAM,eAAe,MAAA,GAAS,UAAA;AAAA,QAC9B,UAAA,EAAY;AAAA,UACV,IAAA,EAAM,EAAA,CAAG,oBAAA,EAAsB,UAAA,EAAY,IAAI,CAAA;AAAA,UAC/C,OAAA,EAAS,EAAA,CAAG,uBAAA,EAAyB,UAAA,EAAY,OAAO,CAAA;AAAA,UACxD,KAAA,EAAO,EAAA,CAAG,qBAAA,EAAuB,UAAA,EAAY,KAAK,CAAA;AAAA,UAClD,KAAA,EAAO,EAAA,CAAG,qBAAA,EAAuB,UAAA,EAAY,KAAK,CAAA;AAAA,UAClD,MAAA,EAAQ,EAAA,CAAG,sBAAA,EAAwB,UAAA,EAAY,MAAM,CAAA;AAAA,UACrD,KAAA,EAAO,EAAA,CAAG,qBAAA,EAAuB,UAAA,EAAY,KAAK;AAAA,SACpD;AAAA,QACA,WACE,gBAAA,mBACE,GAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,OAAA,EAAS,gBAAA;AAAA,YACT,WAAA,EAAU,cAAA;AAAA,YACV,SAAA,EAAW,EAAA;AAAA,cACT,4BAAA;AAAA,cACA,0DAAA;AAAA,cACA,UAAA,EAAY;AAAA,aACd;AAAA,YACA,YAAA,EAAY,eAAe,eAAA,GAAkB,eAAA;AAAA,YAG5C,QAAA,EAAA,YAAA,mBACC,GAAA;AAAA,cAAC,GAAA;AAAA,cAAA;AAAA,gBACC,WAAA,EAAU,YAAA;AAAA,gBACV,SAAA,EAAW,EAAA;AAAA,kBACT,0BAAA;AAAA,kBACA,UAAU,IAAI,CAAA;AAAA,kBACd,UAAA,EAAY;AAAA;AACd;AAAA,aACF,mBAEA,GAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,WAAA,EAAU,YAAA;AAAA,gBACV,SAAA,EAAW,EAAA;AAAA,kBACT,0BAAA;AAAA,kBACA,UAAU,IAAI,CAAA;AAAA,kBACd,UAAA,EAAY;AAAA;AACd;AAAA;AACF;AAAA,SAEJ,GACE;AAAA;AAAA,KAER;AAAA,EAEJ;AACF;AAEA,aAAA,CAAc,WAAA,GAAc,eAAA;AAG5B,IAAO,sBAAA,GAAQ","file":"chunk-623OVNLC.js","sourcesContent":["'use client'\n\nimport { Eye, EyeOff } from 'lucide-react'\nimport React from 'react'\n\nimport Input from '../input'\nimport { cn, iconSizes } from '../utils'\nimport type { PasswordInputProps } from './types'\n\nexport const PasswordInput = React.memo<PasswordInputProps>(\n ({ visibilityToggle = true, size = 'md', ref, classNames, ...props }) => {\n const [showPassword, setShowPassword] = React.useState(false)\n\n const toggleVisibility = React.useCallback(() => {\n setShowPassword((prev) => !prev)\n }, [])\n\n return (\n <Input\n {...props}\n size={size}\n ref={ref}\n type={showPassword ? 'text' : 'password'}\n classNames={{\n root: cn('inputPassword_root', classNames?.root),\n wrapper: cn('inputPassword_wrapper', classNames?.wrapper),\n label: cn('inputPassword_label', classNames?.label),\n input: cn('inputPassword_input', classNames?.input),\n helper: cn('inputPassword_helper', classNames?.helper),\n error: cn('inputPassword_error', classNames?.error),\n }}\n rightIcon={\n visibilityToggle ? (\n <button\n type=\"button\"\n onClick={toggleVisibility}\n data-slot=\"toggleButton\"\n className={cn(\n 'inputPassword_toggleButton',\n 'cursor-pointer hover:text-text-primary transition-colors',\n classNames?.toggleButton,\n )}\n aria-label={showPassword ? 'Hide password' : 'Show password'}\n // tabIndex={-1}\n >\n {showPassword ? (\n <Eye\n data-slot=\"toggleIcon\"\n className={cn(\n 'inputPassword_toggleIcon',\n iconSizes[size],\n classNames?.toggleIcon,\n )}\n />\n ) : (\n <EyeOff\n data-slot=\"toggleIcon\"\n className={cn(\n 'inputPassword_toggleIcon',\n iconSizes[size],\n classNames?.toggleIcon,\n )}\n />\n )}\n </button>\n ) : undefined\n }\n />\n )\n },\n)\n\nPasswordInput.displayName = 'PasswordInput'\n\nexport type * from './types'\nexport default Input\n"]}
1
+ {"version":3,"sources":["../src/input-password/index.tsx"],"names":[],"mappings":";;;;;;AASO,IAAM,gBAAgB,KAAA,CAAM,IAAA;AAAA,EACjC,CAAC,EAAE,gBAAA,GAAmB,IAAA,EAAM,IAAA,GAAO,MAAM,GAAA,EAAK,UAAA,EAAY,GAAG,KAAA,EAAM,KAAM;AACvE,IAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,KAAA,CAAM,SAAS,KAAK,CAAA;AAE5D,IAAA,MAAM,gBAAA,GAAmB,KAAA,CAAM,WAAA,CAAY,MAAM;AAC/C,MAAA,eAAA,CAAgB,CAAC,IAAA,KAAS,CAAC,IAAI,CAAA;AAAA,IACjC,CAAA,EAAG,EAAE,CAAA;AAEL,IAAA,uBACE,GAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACE,GAAG,KAAA;AAAA,QACJ,IAAA;AAAA,QACA,GAAA;AAAA,QACA,IAAA,EAAM,eAAe,MAAA,GAAS,UAAA;AAAA,QAC9B,UAAA,EAAY;AAAA,UACV,IAAA,EAAM,EAAA,CAAG,oBAAA,EAAsB,UAAA,EAAY,IAAI,CAAA;AAAA,UAC/C,OAAA,EAAS,EAAA,CAAG,uBAAA,EAAyB,UAAA,EAAY,OAAO,CAAA;AAAA,UACxD,KAAA,EAAO,EAAA,CAAG,qBAAA,EAAuB,UAAA,EAAY,KAAK,CAAA;AAAA,UAClD,KAAA,EAAO,EAAA,CAAG,qBAAA,EAAuB,UAAA,EAAY,KAAK,CAAA;AAAA,UAClD,MAAA,EAAQ,EAAA,CAAG,sBAAA,EAAwB,UAAA,EAAY,MAAM,CAAA;AAAA,UACrD,KAAA,EAAO,EAAA,CAAG,qBAAA,EAAuB,UAAA,EAAY,KAAK;AAAA,SACpD;AAAA,QACA,WACE,gBAAA,mBACE,GAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,OAAA,EAAS,gBAAA;AAAA,YACT,WAAA,EAAU,cAAA;AAAA,YACV,SAAA,EAAW,EAAA;AAAA,cACT,4BAAA;AAAA,cACA,0DAAA;AAAA,cACA,UAAA,EAAY;AAAA,aACd;AAAA,YACA,YAAA,EAAY,eAAe,eAAA,GAAkB,eAAA;AAAA,YAG5C,QAAA,EAAA,YAAA,mBACC,GAAA;AAAA,cAAC,GAAA;AAAA,cAAA;AAAA,gBACC,WAAA,EAAU,YAAA;AAAA,gBACV,SAAA,EAAW,EAAA;AAAA,kBACT,0BAAA;AAAA,kBACA,UAAU,IAAI,CAAA;AAAA,kBACd,UAAA,EAAY;AAAA;AACd;AAAA,aACF,mBAEA,GAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,WAAA,EAAU,YAAA;AAAA,gBACV,SAAA,EAAW,EAAA;AAAA,kBACT,0BAAA;AAAA,kBACA,UAAU,IAAI,CAAA;AAAA,kBACd,UAAA,EAAY;AAAA;AACd;AAAA;AACF;AAAA,SAEJ,GACE;AAAA;AAAA,KAER;AAAA,EAEJ;AACF;AAEA,aAAA,CAAc,WAAA,GAAc,eAAA;AAG5B,IAAO,sBAAA,GAAQ","file":"chunk-XVRNFPBI.js","sourcesContent":["'use client'\n\nimport { Eye, EyeOff } from 'lucide-react'\nimport React from 'react'\n\nimport Input from '../input'\nimport { cn, iconSizes } from '../utils'\nimport type { PasswordInputProps } from './types'\n\nexport const PasswordInput = React.memo<PasswordInputProps>(\n ({ visibilityToggle = true, size = 'md', ref, classNames, ...props }) => {\n const [showPassword, setShowPassword] = React.useState(false)\n\n const toggleVisibility = React.useCallback(() => {\n setShowPassword((prev) => !prev)\n }, [])\n\n return (\n <Input\n {...props}\n size={size}\n ref={ref}\n type={showPassword ? 'text' : 'password'}\n classNames={{\n root: cn('inputPassword_root', classNames?.root),\n wrapper: cn('inputPassword_wrapper', classNames?.wrapper),\n label: cn('inputPassword_label', classNames?.label),\n input: cn('inputPassword_input', classNames?.input),\n helper: cn('inputPassword_helper', classNames?.helper),\n error: cn('inputPassword_error', classNames?.error),\n }}\n rightIcon={\n visibilityToggle ? (\n <button\n type=\"button\"\n onClick={toggleVisibility}\n data-slot=\"toggleButton\"\n className={cn(\n 'inputPassword_toggleButton',\n 'cursor-pointer hover:text-text-primary transition-colors',\n classNames?.toggleButton,\n )}\n aria-label={showPassword ? 'Hide password' : 'Show password'}\n // tabIndex={-1}\n >\n {showPassword ? (\n <Eye\n data-slot=\"toggleIcon\"\n className={cn(\n 'inputPassword_toggleIcon',\n iconSizes[size],\n classNames?.toggleIcon,\n )}\n />\n ) : (\n <EyeOff\n data-slot=\"toggleIcon\"\n className={cn(\n 'inputPassword_toggleIcon',\n iconSizes[size],\n classNames?.toggleIcon,\n )}\n />\n )}\n </button>\n ) : undefined\n }\n />\n )\n },\n)\n\nPasswordInput.displayName = 'PasswordInput'\n\nexport type * from './types'\nexport default Input\n"]}