@deepnoid/ui 0.1.223 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (252) hide show
  1. package/.turbo/turbo-build.log +266 -251
  2. package/dist/{chunk-NTNF5T5I.mjs → chunk-23KGTXH2.mjs} +1 -1
  3. package/dist/{chunk-SX3JDFTH.mjs → chunk-2K3HZMC6.mjs} +9 -9
  4. package/dist/{chunk-ZFC5O2V3.mjs → chunk-3JKORA4G.mjs} +1 -1
  5. package/dist/{chunk-HFOHFBZH.mjs → chunk-3N442F6I.mjs} +2 -2
  6. package/dist/{chunk-WA7CSZQ3.mjs → chunk-3QZPVRM5.mjs} +1 -1
  7. package/dist/{chunk-BH3I4LIZ.mjs → chunk-4V5D237Z.mjs} +1 -1
  8. package/dist/chunk-63JRWMWN.mjs +215 -0
  9. package/dist/{chunk-GDHLN463.mjs → chunk-6CNPC722.mjs} +2 -2
  10. package/dist/{chunk-4IEHQI5B.mjs → chunk-7JCCPTBU.mjs} +3 -3
  11. package/dist/chunk-A6UUVHC6.mjs +38 -0
  12. package/dist/{chunk-P5L4YI54.mjs → chunk-AOU4QX7H.mjs} +106 -40
  13. package/dist/{chunk-U7SYKG2C.mjs → chunk-BBCJTXGU.mjs} +1 -1
  14. package/dist/{chunk-4S4AAZFC.mjs → chunk-CBFUVFGI.mjs} +4 -4
  15. package/dist/{chunk-AGE57VDD.mjs → chunk-CBIV6KFQ.mjs} +22 -25
  16. package/dist/{chunk-KWHCUAFU.mjs → chunk-CGJBY53Q.mjs} +3 -3
  17. package/dist/{chunk-XZYQFBCT.mjs → chunk-DI7QXTYZ.mjs} +1 -1
  18. package/dist/{chunk-U4DJHAM5.mjs → chunk-DPWUIAVC.mjs} +413 -149
  19. package/dist/chunk-E4VJDQD5.mjs +142 -0
  20. package/dist/{chunk-TE5JU3WA.mjs → chunk-EAWNUQDB.mjs} +90 -133
  21. package/dist/{chunk-OXJX5G3O.mjs → chunk-EIVSXVP5.mjs} +2 -2
  22. package/dist/{chunk-JGG3ZUNG.mjs → chunk-GSOTTSR4.mjs} +1 -1
  23. package/dist/{chunk-NGRGAY42.mjs → chunk-HKF5BNPX.mjs} +1 -1
  24. package/dist/{chunk-2URJGQFC.mjs → chunk-JUKILR6X.mjs} +2 -2
  25. package/dist/{chunk-DW3BX4M2.mjs → chunk-KPOXK7NN.mjs} +1 -1
  26. package/dist/{chunk-5KC3IFNR.mjs → chunk-LJSGQO4B.mjs} +1 -1
  27. package/dist/{chunk-LH6Z7SDZ.mjs → chunk-M7V5YMM2.mjs} +1 -1
  28. package/dist/{chunk-44FMPRHV.mjs → chunk-MAGZDGUW.mjs} +67 -38
  29. package/dist/chunk-MV2WCFK7.mjs +1 -0
  30. package/dist/{chunk-U52FBRJ3.mjs → chunk-NJWXYTBQ.mjs} +1 -1
  31. package/dist/{chunk-3DCUMRYP.mjs → chunk-NPQBJO6G.mjs} +11 -39
  32. package/dist/chunk-OK34FKBQ.mjs +224 -0
  33. package/dist/{chunk-OC5C42CB.mjs → chunk-OPGGL4CG.mjs} +3 -3
  34. package/dist/{chunk-R2XKPG4K.mjs → chunk-OPSMMRA2.mjs} +1 -1
  35. package/dist/{chunk-4X35QQTI.mjs → chunk-P4GNXDMO.mjs} +1 -1
  36. package/dist/{chunk-MTT24BLX.mjs → chunk-PCWANNZ4.mjs} +3 -3
  37. package/dist/{chunk-V2YH54JQ.mjs → chunk-PXUYPS6M.mjs} +12 -2
  38. package/dist/chunk-RFHWRBAB.mjs +105 -0
  39. package/dist/{chunk-EJ4GDC6K.mjs → chunk-S2T4GHJA.mjs} +27 -27
  40. package/dist/{chunk-5VTYO3RF.mjs → chunk-TBI5O3OL.mjs} +1 -1
  41. package/dist/{chunk-FZYZSMSS.mjs → chunk-TBRF36RK.mjs} +1 -1
  42. package/dist/{chunk-Q3KBMVJS.mjs → chunk-TEERNFIT.mjs} +77 -46
  43. package/dist/{chunk-RH3AHG52.mjs → chunk-V5XX3CGL.mjs} +1 -1
  44. package/dist/{chunk-6WD32ERF.mjs → chunk-VO2ZIGIK.mjs} +1 -1
  45. package/dist/{chunk-H6ZQDMYU.mjs → chunk-VOOEH6OJ.mjs} +24 -38
  46. package/dist/{chunk-ACZ3DQVT.mjs → chunk-VUO5J2OK.mjs} +16 -15
  47. package/dist/{chunk-RY5VVXQ4.mjs → chunk-WYTAGN2P.mjs} +1 -1
  48. package/dist/{chunk-NDNIAALB.mjs → chunk-YBDQSEPV.mjs} +17 -18
  49. package/dist/chunk-Z4NO7SMY.mjs +460 -0
  50. package/dist/components/accordion/accordion.js +366 -4
  51. package/dist/components/accordion/accordion.mjs +2 -2
  52. package/dist/components/accordion/accordionItem.js +366 -4
  53. package/dist/components/accordion/accordionItem.mjs +2 -2
  54. package/dist/components/accordion/index.js +366 -4
  55. package/dist/components/accordion/index.mjs +3 -3
  56. package/dist/components/avatar/avatar.js +472 -44
  57. package/dist/components/avatar/avatar.mjs +3 -3
  58. package/dist/components/avatar/index.js +472 -44
  59. package/dist/components/avatar/index.mjs +3 -3
  60. package/dist/components/backdrop/backdrop.js +366 -4
  61. package/dist/components/backdrop/backdrop.mjs +2 -2
  62. package/dist/components/backdrop/index.js +366 -4
  63. package/dist/components/backdrop/index.mjs +2 -2
  64. package/dist/components/breadcrumb/breadcrumb.js +951 -74
  65. package/dist/components/breadcrumb/breadcrumb.mjs +10 -9
  66. package/dist/components/breadcrumb/index.js +951 -74
  67. package/dist/components/breadcrumb/index.mjs +10 -9
  68. package/dist/components/button/button-group.js +366 -4
  69. package/dist/components/button/button-group.mjs +2 -2
  70. package/dist/components/button/button.d.mts +82 -119
  71. package/dist/components/button/button.d.ts +82 -119
  72. package/dist/components/button/button.js +966 -355
  73. package/dist/components/button/button.mjs +6 -5
  74. package/dist/components/button/button.style.d.mts +89 -0
  75. package/dist/components/button/button.style.d.ts +89 -0
  76. package/dist/components/button/button.style.js +1172 -0
  77. package/dist/components/button/button.style.mjs +9 -0
  78. package/dist/components/button/icon-button.d.mts +45 -46
  79. package/dist/components/button/icon-button.d.ts +45 -46
  80. package/dist/components/button/icon-button.js +1125 -527
  81. package/dist/components/button/icon-button.mjs +6 -5
  82. package/dist/components/button/index.js +1154 -830
  83. package/dist/components/button/index.mjs +9 -8
  84. package/dist/components/button/text-button.d.mts +59 -39
  85. package/dist/components/button/text-button.d.ts +59 -39
  86. package/dist/components/button/text-button.js +831 -21
  87. package/dist/components/button/text-button.mjs +3 -2
  88. package/dist/components/charts/areaChart.js +366 -4
  89. package/dist/components/charts/areaChart.mjs +2 -2
  90. package/dist/components/charts/barChart.js +366 -4
  91. package/dist/components/charts/barChart.mjs +2 -2
  92. package/dist/components/charts/circularProgress.js +366 -4
  93. package/dist/components/charts/circularProgress.mjs +2 -2
  94. package/dist/components/charts/index.js +366 -4
  95. package/dist/components/charts/index.mjs +6 -6
  96. package/dist/components/charts/radarChart.js +366 -4
  97. package/dist/components/charts/radarChart.mjs +2 -2
  98. package/dist/components/charts/simpleBarChart.js +366 -4
  99. package/dist/components/charts/simpleBarChart.mjs +2 -2
  100. package/dist/components/checkbox/checkbox.js +376 -42
  101. package/dist/components/checkbox/checkbox.mjs +2 -2
  102. package/dist/components/checkbox/index.js +376 -42
  103. package/dist/components/checkbox/index.mjs +2 -2
  104. package/dist/components/chip/chip.d.mts +32 -0
  105. package/dist/components/chip/chip.d.ts +32 -0
  106. package/dist/components/chip/chip.js +496 -57
  107. package/dist/components/chip/chip.mjs +4 -4
  108. package/dist/components/chip/index.js +496 -57
  109. package/dist/components/chip/index.mjs +4 -4
  110. package/dist/components/drawer/drawer.js +366 -4
  111. package/dist/components/drawer/drawer.mjs +2 -2
  112. package/dist/components/drawer/index.js +366 -4
  113. package/dist/components/drawer/index.mjs +2 -2
  114. package/dist/components/fileUpload/fileUpload.js +1014 -402
  115. package/dist/components/fileUpload/fileUpload.mjs +12 -11
  116. package/dist/components/fileUpload/index.js +1014 -402
  117. package/dist/components/fileUpload/index.mjs +12 -11
  118. package/dist/components/icon/Icon.d.mts +23 -10
  119. package/dist/components/icon/Icon.d.ts +23 -10
  120. package/dist/components/icon/Icon.js +120 -53
  121. package/dist/components/icon/Icon.mjs +2 -2
  122. package/dist/components/icon/index.js +120 -53
  123. package/dist/components/icon/index.mjs +2 -2
  124. package/dist/components/icon/template.d.mts +5 -2
  125. package/dist/components/icon/template.d.ts +5 -2
  126. package/dist/components/icon/template.js +106 -40
  127. package/dist/components/icon/template.mjs +1 -1
  128. package/dist/components/input/index.js +511 -82
  129. package/dist/components/input/index.mjs +4 -4
  130. package/dist/components/input/input.js +511 -82
  131. package/dist/components/input/input.mjs +4 -4
  132. package/dist/components/list/index.js +486 -57
  133. package/dist/components/list/index.mjs +6 -6
  134. package/dist/components/list/list.js +366 -4
  135. package/dist/components/list/list.mjs +2 -2
  136. package/dist/components/list/listItem.js +486 -57
  137. package/dist/components/list/listItem.mjs +5 -5
  138. package/dist/components/modal/GlobalModalProvider.d.mts +2 -0
  139. package/dist/components/modal/GlobalModalProvider.d.ts +2 -0
  140. package/dist/components/modal/GlobalModalProvider.js +1028 -416
  141. package/dist/components/modal/GlobalModalProvider.mjs +12 -11
  142. package/dist/components/modal/index.d.mts +2 -0
  143. package/dist/components/modal/index.d.ts +2 -0
  144. package/dist/components/modal/index.js +1028 -416
  145. package/dist/components/modal/index.mjs +13 -12
  146. package/dist/components/modal/modal.d.mts +101 -29
  147. package/dist/components/modal/modal.d.ts +101 -29
  148. package/dist/components/modal/modal.js +1028 -416
  149. package/dist/components/modal/modal.mjs +11 -10
  150. package/dist/components/modal/useGlobalModal.d.mts +2 -0
  151. package/dist/components/modal/useGlobalModal.d.ts +2 -0
  152. package/dist/components/modal/useGlobalModal.mjs +13 -12
  153. package/dist/components/pagination/index.js +598 -212
  154. package/dist/components/pagination/index.mjs +5 -5
  155. package/dist/components/pagination/pagination.js +598 -212
  156. package/dist/components/pagination/pagination.mjs +5 -5
  157. package/dist/components/picker/datePicker.js +1029 -705
  158. package/dist/components/picker/datePicker.mjs +12 -11
  159. package/dist/components/picker/day.js +366 -4
  160. package/dist/components/picker/day.mjs +2 -2
  161. package/dist/components/picker/index.js +1027 -703
  162. package/dist/components/picker/index.mjs +15 -14
  163. package/dist/components/picker/timePicker/Panel.js +831 -21
  164. package/dist/components/picker/timePicker/Panel.mjs +10 -9
  165. package/dist/components/picker/timePicker/index.js +976 -99
  166. package/dist/components/picker/timePicker/index.mjs +12 -11
  167. package/dist/components/progress/index.js +381 -18
  168. package/dist/components/progress/index.mjs +2 -2
  169. package/dist/components/progress/progress.d.mts +21 -18
  170. package/dist/components/progress/progress.d.ts +21 -18
  171. package/dist/components/progress/progress.js +381 -18
  172. package/dist/components/progress/progress.mjs +2 -2
  173. package/dist/components/radio/index.js +389 -41
  174. package/dist/components/radio/index.mjs +2 -2
  175. package/dist/components/radio/radio.d.mts +33 -48
  176. package/dist/components/radio/radio.d.ts +33 -48
  177. package/dist/components/radio/radio.js +389 -41
  178. package/dist/components/radio/radio.mjs +2 -2
  179. package/dist/components/ripple/index.mjs +3 -3
  180. package/dist/components/select/index.js +819 -221
  181. package/dist/components/select/index.mjs +10 -9
  182. package/dist/components/select/select.js +819 -221
  183. package/dist/components/select/select.mjs +10 -9
  184. package/dist/components/slider/index.d.mts +4 -0
  185. package/dist/components/slider/index.d.ts +4 -0
  186. package/dist/components/slider/index.js +955 -0
  187. package/dist/components/slider/index.mjs +11 -0
  188. package/dist/components/slider/slider.d.mts +158 -0
  189. package/dist/components/slider/slider.d.ts +158 -0
  190. package/dist/components/slider/slider.js +949 -0
  191. package/dist/components/slider/slider.mjs +10 -0
  192. package/dist/components/starRating/index.js +486 -57
  193. package/dist/components/starRating/index.mjs +4 -4
  194. package/dist/components/starRating/starRating.js +486 -57
  195. package/dist/components/starRating/starRating.mjs +4 -4
  196. package/dist/components/switch/index.js +22 -25
  197. package/dist/components/switch/index.mjs +1 -1
  198. package/dist/components/switch/switch.d.mts +0 -18
  199. package/dist/components/switch/switch.d.ts +0 -18
  200. package/dist/components/switch/switch.js +22 -25
  201. package/dist/components/switch/switch.mjs +1 -1
  202. package/dist/components/table/definition-table.js +366 -4
  203. package/dist/components/table/definition-table.mjs +2 -2
  204. package/dist/components/table/form-table.js +366 -4
  205. package/dist/components/table/form-table.mjs +1 -1
  206. package/dist/components/table/index.js +679 -291
  207. package/dist/components/table/index.mjs +10 -10
  208. package/dist/components/table/table-body.js +679 -291
  209. package/dist/components/table/table-body.mjs +7 -7
  210. package/dist/components/table/table-head.js +679 -291
  211. package/dist/components/table/table-head.mjs +7 -7
  212. package/dist/components/table/table.d.mts +8 -29
  213. package/dist/components/table/table.d.ts +8 -29
  214. package/dist/components/table/table.js +679 -291
  215. package/dist/components/table/table.mjs +7 -7
  216. package/dist/components/tabs/index.js +366 -4
  217. package/dist/components/tabs/index.mjs +2 -2
  218. package/dist/components/tabs/tabs.js +366 -4
  219. package/dist/components/tabs/tabs.mjs +2 -2
  220. package/dist/components/textarea/index.js +67 -38
  221. package/dist/components/textarea/index.mjs +1 -1
  222. package/dist/components/textarea/textarea.d.mts +21 -0
  223. package/dist/components/textarea/textarea.d.ts +21 -0
  224. package/dist/components/textarea/textarea.js +67 -38
  225. package/dist/components/textarea/textarea.mjs +1 -1
  226. package/dist/components/timePicker/calendar.js +486 -57
  227. package/dist/components/timePicker/calendar.mjs +3 -3
  228. package/dist/components/toast/index.js +486 -57
  229. package/dist/components/toast/index.mjs +5 -5
  230. package/dist/components/toast/toast.js +486 -57
  231. package/dist/components/toast/toast.mjs +4 -4
  232. package/dist/components/toast/use-toast.js +486 -57
  233. package/dist/components/toast/use-toast.mjs +5 -5
  234. package/dist/components/tooltip/index.js +366 -4
  235. package/dist/components/tooltip/index.mjs +2 -2
  236. package/dist/components/tooltip/tooltip.js +366 -4
  237. package/dist/components/tooltip/tooltip.mjs +2 -2
  238. package/dist/components/tree/index.js +486 -57
  239. package/dist/components/tree/index.mjs +4 -4
  240. package/dist/components/tree/tree.js +486 -57
  241. package/dist/components/tree/tree.mjs +4 -4
  242. package/dist/index.d.mts +1 -0
  243. package/dist/index.d.ts +1 -0
  244. package/dist/index.js +1705 -1281
  245. package/dist/index.mjs +76 -70
  246. package/dist/utils/tailwind-variants.js +366 -4
  247. package/dist/utils/tailwind-variants.mjs +1 -1
  248. package/package.json +1 -1
  249. package/dist/chunk-6AID2NLT.mjs +0 -37
  250. package/dist/chunk-BBRO35V3.mjs +0 -385
  251. package/dist/chunk-EVJ46M3U.mjs +0 -141
  252. package/dist/chunk-SKX5QPUD.mjs +0 -482
package/dist/index.js CHANGED
@@ -135,6 +135,7 @@ __export(index_exports, {
135
135
  Select: () => select_default,
136
136
  SimpleBarChart: () => simpleBarChart_default,
137
137
  Skeleton: () => skeleton_default,
138
+ Slider: () => slider_default,
138
139
  StarRating: () => starRating_default,
139
140
  Switch: () => switch_default,
140
141
  Table: () => table_default,
@@ -163,141 +164,349 @@ var import_tailwind_variants = require("tailwind-variants");
163
164
  // ../tailwind-config/src/plugin.ts
164
165
  var import_plugin = __toESM(require_plugin());
165
166
 
167
+ // ../tailwind-config/src/colors/primitive-palette.ts
168
+ var primitivePalette = {
169
+ bg: {
170
+ "01": "#040811",
171
+ "02": "#040811",
172
+ "03": "#14161E",
173
+ "04": "#070414",
174
+ "05": "#070C12",
175
+ "06": "#202123"
176
+ },
177
+ gray: {
178
+ cool: {
179
+ 50: "#F7F7F8",
180
+ 100: "#EEEEF0",
181
+ 200: "#D8D9DF",
182
+ 300: "#B6B8C3",
183
+ 400: "#999CA9",
184
+ 500: "#717486",
185
+ 600: "#5B5E6E",
186
+ 700: "#4A4C5A",
187
+ 800: "#40424C",
188
+ 900: "#36373F",
189
+ 950: "#25252C"
190
+ },
191
+ warm: {
192
+ 50: "#F6F6F6",
193
+ 100: "#E7E7E7",
194
+ 200: "#D1D1D1",
195
+ 300: "#B0B0B0",
196
+ 400: "#888888",
197
+ 500: "#6D6D6D",
198
+ 600: "#5D5D5D",
199
+ 700: "#525252",
200
+ 800: "#454545",
201
+ 900: "#3D3D3D",
202
+ 950: "#25252C"
203
+ }
204
+ },
205
+ opacity: {
206
+ white: {
207
+ "0": "#FFFFFF, 0",
208
+ 5: "#FFFFFF, 5",
209
+ 10: "#FFFFFF, 10",
210
+ 20: "#FFFFFF, 20",
211
+ 30: "#FFFFFF, 30",
212
+ 40: "#FFFFFF, 40",
213
+ 50: "#FFFFFF, 50",
214
+ 60: "#FFFFFF, 60",
215
+ 70: "#FFFFFF, 70",
216
+ 80: "#FFFFFF, 80",
217
+ 90: "#FFFFFF, 90"
218
+ },
219
+ black: {
220
+ "0": "#000000, 0",
221
+ 5: "#000000, 5",
222
+ 10: "#000000, 10",
223
+ 20: "#000000, 20",
224
+ 30: "#000000, 30",
225
+ 40: "#000000, 40",
226
+ 50: "#000000, 50",
227
+ 60: "#000000, 60",
228
+ 70: "#000000, 70",
229
+ 80: "#000000, 80",
230
+ 90: "#000000, 90"
231
+ }
232
+ },
233
+ red: {
234
+ 50: "#FEF2F2",
235
+ 100: "#FEE9E9",
236
+ 200: "#FCCFD2",
237
+ 300: "#F9A8AC",
238
+ 400: "#F57780",
239
+ 500: "#EC4757",
240
+ 600: "#D82640",
241
+ 700: "#B71934",
242
+ 800: "#991832",
243
+ 900: "#831831",
244
+ 950: "#831831"
245
+ },
246
+ rose: {
247
+ 50: "#FDF4F6",
248
+ 100: "#F9E9EC",
249
+ 200: "#F4D8DD",
250
+ 300: "#E9B8C2",
251
+ 400: "#DF96A6",
252
+ 500: "#CB6881",
253
+ 600: "#B54969",
254
+ 700: "#973957",
255
+ 800: "#7F324D",
256
+ 900: "#6A2740",
257
+ 950: "#3C1523"
258
+ },
259
+ hotPink: {
260
+ 50: "#FDF2F7",
261
+ 100: "#FDE6F0",
262
+ 200: "#FCCEE3",
263
+ 300: "#FBA6CA",
264
+ 400: "#F76FA6",
265
+ 500: "#F04485",
266
+ 600: "#E2326C",
267
+ 700: "#C21448",
268
+ 800: "#A1133C",
269
+ 900: "#861535",
270
+ 950: "#52051B"
271
+ },
272
+ sepia: {
273
+ 50: "#FCF5F4",
274
+ 100: "#FAE9E9",
275
+ 200: "#F5D6D7",
276
+ 300: "#EDB4B6",
277
+ 400: "#E28A8F",
278
+ 500: "#D45F69",
279
+ 600: "#BE4051",
280
+ 700: "#9F3142",
281
+ 800: "#862B3C",
282
+ 900: "#6B2433",
283
+ 950: "#320E15"
284
+ },
285
+ orange: {
286
+ 50: "#FEF7EE",
287
+ 100: "#FDEDD7",
288
+ 200: "#F9D8AF",
289
+ 300: "#F5BB7C",
290
+ 400: "#F09447",
291
+ 500: "#EC7723",
292
+ 600: "#E15F19",
293
+ 700: "#E15F19",
294
+ 800: "#92391A",
295
+ 900: "#763118",
296
+ 950: "#40160A"
297
+ },
298
+ yellow: {
299
+ 50: "#F9F2E5",
300
+ 100: "#F5E6BC",
301
+ 200: "#FFE9BC",
302
+ 300: "#FFD174",
303
+ 400: "#F8BE4A",
304
+ 500: "#EAAD30",
305
+ 600: "#D77908",
306
+ 700: "#B2550B",
307
+ 800: "#91420F",
308
+ 900: "#773610",
309
+ 950: "#441B04"
310
+ },
311
+ tree: {
312
+ 50: "#F5F3F1",
313
+ 100: "#E5E1DC",
314
+ 200: "#CCC5BC",
315
+ 300: "#AFA395",
316
+ 400: "#978878",
317
+ 500: "#907E6F",
318
+ 600: "#756459",
319
+ 700: "#5F4F49",
320
+ 800: "#524541",
321
+ 900: "#483D3B",
322
+ 950: "#282120"
323
+ },
324
+ brown: {
325
+ 50: "#F6F3F0",
326
+ 100: "#F4EDEC",
327
+ 200: "#EBDFDD",
328
+ 300: "#DCC9C5",
329
+ 400: "#C6A9A3",
330
+ 500: "#B08983",
331
+ 600: "#A27E77",
332
+ 700: "#7F5D56",
333
+ 800: "#6A4F4A",
334
+ 900: "#5B4541",
335
+ 950: "#2C1E1C"
336
+ },
337
+ lime: {
338
+ 50: "#F7FFE5",
339
+ 100: "#ECFFC7",
340
+ 200: "#D9FF95",
341
+ 300: "#BDFE58",
342
+ 400: "#A1F524",
343
+ 500: "#82DC06",
344
+ 600: "#63B000",
345
+ 700: "#4B8506",
346
+ 800: "#3E690B",
347
+ 900: "#34580F",
348
+ 950: "#193102"
349
+ },
350
+ green: {
351
+ 50: "#E7F3EB",
352
+ 100: "#DFF9EA",
353
+ 200: "#CEECDA",
354
+ 300: "#9CD4B3",
355
+ 400: "#6EC092",
356
+ 500: "#3FA46B",
357
+ 600: "#209754",
358
+ 700: "#1E7745",
359
+ 800: "#1D5E3A",
360
+ 900: "#194E32",
361
+ 950: "#082B19"
362
+ },
363
+ timberGreen: {
364
+ 50: "#F1FCF5",
365
+ 100: "#DFF9EA",
366
+ 200: "#B5DACD",
367
+ 300: "#8ABFAF",
368
+ 400: "#60A18F",
369
+ 500: "#468675",
370
+ 600: "#366B5F",
371
+ 700: "#2E574D",
372
+ 800: "#2A4641",
373
+ 900: "#1D2F2B",
374
+ 950: "#11221E"
375
+ },
376
+ teal: {
377
+ 50: "#E2F1F0",
378
+ 100: "#C9EBE8",
379
+ 200: "#C7E8E5",
380
+ 300: "#8AD0D0",
381
+ 400: "#67C4C4",
382
+ 500: "#39A6A7",
383
+ 600: "#258386",
384
+ 700: "#1B666A",
385
+ 800: "#1A5255",
386
+ 900: "#1A4447",
387
+ 950: "#09272A"
388
+ },
389
+ lightBlue: {
390
+ 50: "#F2F8FD",
391
+ 100: "#E3EFFB",
392
+ 200: "#C1E0F6",
393
+ 300: "#8BC6EE",
394
+ 400: "#3DA2E1",
395
+ 500: "#258FD2",
396
+ 600: "#1771B2",
397
+ 700: "#145A90",
398
+ 800: "#154D77",
399
+ 900: "#174163",
400
+ 950: "#062C2D"
401
+ },
402
+ sea: {
403
+ 50: "#F4F6FC",
404
+ 100: "#E8EDF6",
405
+ 200: "#CBD9EB",
406
+ 300: "#9FB9DA",
407
+ 400: "#6A93C5",
408
+ 500: "#446FA4",
409
+ 600: "#375D92",
410
+ 700: "#2D4B77",
411
+ 800: "#294163",
412
+ 900: "#263954",
413
+ 950: "#1A2537"
414
+ },
415
+ blue: {
416
+ 50: "#F0F6FE",
417
+ 100: "#DDEAFC",
418
+ 200: "#C2DBFB",
419
+ 300: "#98C5F8",
420
+ 400: "#68A7F2",
421
+ 500: "#377CEB",
422
+ 600: "#2F68E1",
423
+ 700: "#2754CE",
424
+ 800: "#20429E",
425
+ 900: "#1C2A52",
426
+ 950: "#061132"
427
+ },
428
+ lightPurple: {
429
+ 50: "#F6F5FD",
430
+ 100: "#EEEDFA",
431
+ 200: "#DDDCFD",
432
+ 300: "#BDB9EC",
433
+ 400: "#AAA1E4",
434
+ 500: "#826CE3",
435
+ 600: "#7250D7",
436
+ 700: "#623DC4",
437
+ 800: "#5133A4",
438
+ 900: "#442B87",
439
+ 950: "#291A5B"
440
+ }
441
+ };
442
+
166
443
  // ../tailwind-config/src/colors/semantic-palette.ts
167
444
  var semanticPalette = {
168
- light: {
169
- primary: {
170
- soft: "#EFF8FF",
171
- light: "#C7E5FA",
172
- main: "#3F9CF2",
173
- dark: "#2980E7",
174
- strong: "#204A88"
175
- },
176
- secondary: {
177
- soft: "#F8F1FF",
178
- light: "#DEC1FA",
179
- main: "#9B3FF2",
180
- dark: "#7E27CF",
181
- strong: "#3E0C6D"
182
- },
183
- body: {
184
- foreground: "#333333",
185
- background: "#FFFFFF"
186
- },
187
- neutral: {
188
- soft: "#F2F3F4",
189
- light: "#DFE2E7",
190
- main: "#808488",
191
- dark: "#5B5E62",
192
- strong: "#383A3E"
193
- },
194
- trans: {
195
- soft: "#000000, 0.05",
196
- light: "#000000, 0.1",
197
- main: "#000000, 0.2",
198
- dark: "#000000, 0.3",
199
- strong: "#000000, 0.6"
200
- },
201
- common: {
202
- black: "#333333",
203
- white: "#FFFFFF",
204
- transparent: "#FFFFFF, 0"
205
- },
206
- info: {
207
- soft: "#F3FBFB",
208
- light: "#B5F0F0",
209
- main: "#1FAFAF",
210
- dark: "#189494",
211
- strong: ""
212
- },
213
- success: {
214
- soft: "#F0FBF0",
215
- light: "#92DCB2",
216
- main: "#24A25B",
217
- dark: "#137F42",
218
- strong: ""
219
- },
220
- warning: {
221
- soft: "#FEF8EB",
222
- light: "#F9C967",
223
- main: "#EDA410",
224
- dark: "#C8890A",
225
- strong: ""
226
- },
227
- danger: {
228
- soft: "#FFF3F7",
229
- light: "#FFBAD1",
230
- main: "#FF4684",
231
- dark: "#C62F62",
232
- strong: ""
233
- }
234
- },
235
- dark: {
236
- primary: {
237
- soft: "#EFF8FF",
238
- light: "#C7E5FA",
239
- main: "#3F9CF2",
240
- dark: "#2980E7",
241
- strong: "#204A88"
242
- },
243
- secondary: {
244
- soft: "#F8F1FF",
245
- light: "#DEC1FA",
246
- main: "#9B3FF2",
247
- dark: "#7E27CF",
248
- strong: "#3E0C6D"
249
- },
250
- body: {
251
- foreground: "#333333",
252
- background: "#FFFFFF"
253
- },
254
- neutral: {
255
- soft: "#F2F3F4",
256
- light: "#DFE2E7",
257
- main: "#808488",
258
- dark: "#5B5E62",
259
- strong: "#383A3E"
260
- },
261
- trans: {
262
- soft: "#000000, 0.05",
263
- light: "#000000, 0.1",
264
- main: "#000000, 0.2",
265
- dark: "#000000, 0.3",
266
- strong: "#000000, 0.6"
267
- },
268
- common: {
269
- black: "#333333",
270
- white: "#FFFFFF",
271
- transparent: "#FFFFFF, 0"
272
- },
273
- info: {
274
- soft: "#F3FBFB",
275
- light: "#B5F0F0",
276
- main: "#1FAFAF",
277
- dark: "#189494",
278
- strong: ""
279
- },
280
- success: {
281
- soft: "#F0FBF0",
282
- light: "#92DCB2",
283
- main: "#24A25B",
284
- dark: "#137F42",
285
- strong: ""
286
- },
287
- warning: {
288
- soft: "#FEF8EB",
289
- light: "#F9C967",
290
- main: "#EDA410",
291
- dark: "#C8890A",
292
- strong: ""
293
- },
294
- danger: {
295
- soft: "#FFF3F7",
296
- light: "#FFBAD1",
297
- main: "#FF4684",
298
- dark: "#C62F62",
299
- strong: ""
300
- }
445
+ primary: {
446
+ soft: { light: primitivePalette.blue[100], dark: primitivePalette.blue[950] },
447
+ light: { light: primitivePalette.blue[200], dark: primitivePalette.blue[900] },
448
+ main: { light: primitivePalette.blue[600], dark: primitivePalette.blue[600] },
449
+ dark: { light: primitivePalette.blue[800], dark: primitivePalette.blue[500] },
450
+ strong: { light: primitivePalette.blue[900], dark: primitivePalette.blue[200] }
451
+ },
452
+ secondary: {
453
+ soft: { light: primitivePalette.lightPurple[100], dark: primitivePalette.lightPurple[950] },
454
+ light: { light: primitivePalette.lightPurple[200], dark: primitivePalette.lightPurple[900] },
455
+ main: { light: primitivePalette.lightPurple[600], dark: primitivePalette.lightPurple[500] },
456
+ dark: { light: primitivePalette.lightPurple[800], dark: primitivePalette.lightPurple[700] },
457
+ strong: { light: primitivePalette.lightPurple[950], dark: primitivePalette.lightPurple[950] }
458
+ },
459
+ body: {
460
+ foreground: { light: primitivePalette.gray.cool[950], dark: primitivePalette.gray.cool[50] },
461
+ background: { light: primitivePalette.gray.cool[50], dark: primitivePalette.bg["06"] }
462
+ },
463
+ neutral: {
464
+ soft: { light: primitivePalette.gray.cool[100], dark: primitivePalette.gray.cool[900] },
465
+ light: { light: primitivePalette.gray.cool[200], dark: primitivePalette.gray.cool[700] },
466
+ main: { light: primitivePalette.gray.cool[400], dark: primitivePalette.gray.cool[400] },
467
+ dark: { light: primitivePalette.gray.cool[500], dark: primitivePalette.gray.cool[300] },
468
+ strong: { light: primitivePalette.gray.cool[700], dark: primitivePalette.gray.cool[200] }
469
+ },
470
+ trans: {
471
+ soft: { light: primitivePalette.opacity.black[5], dark: primitivePalette.opacity.white[5] },
472
+ light: { light: primitivePalette.opacity.black[10], dark: primitivePalette.opacity.white[10] },
473
+ main: { light: primitivePalette.opacity.black[20], dark: primitivePalette.opacity.white[20] },
474
+ dark: { light: primitivePalette.opacity.black[30], dark: primitivePalette.opacity.white[30] },
475
+ strong: { light: primitivePalette.opacity.black[60], dark: primitivePalette.opacity.black[60] }
476
+ },
477
+ common: {
478
+ black: { light: primitivePalette.gray.cool[950], dark: primitivePalette.gray.cool[950] },
479
+ white: { light: primitivePalette.gray.cool[50], dark: primitivePalette.gray.cool[50] },
480
+ transparent: { light: primitivePalette.opacity.white["0"], dark: primitivePalette.opacity.black["0"] },
481
+ hover: { light: primitivePalette.opacity.black[5], dark: primitivePalette.opacity.white[5] }
482
+ },
483
+ info: {
484
+ soft: { light: primitivePalette.teal[50], dark: primitivePalette.teal[950] },
485
+ light: { light: primitivePalette.teal[100], dark: primitivePalette.teal[900] },
486
+ main: { light: primitivePalette.teal[500], dark: primitivePalette.teal[500] },
487
+ dark: { light: primitivePalette.teal[600], dark: primitivePalette.teal[700] },
488
+ strong: { light: "", dark: "" }
489
+ },
490
+ success: {
491
+ soft: { light: primitivePalette.green[50], dark: primitivePalette.green[950] },
492
+ light: { light: primitivePalette.green[200], dark: primitivePalette.green[900] },
493
+ main: { light: primitivePalette.green[500], dark: primitivePalette.green[600] },
494
+ dark: { light: primitivePalette.green[600], dark: primitivePalette.green[700] },
495
+ strong: { light: "", dark: "" }
496
+ },
497
+ warning: {
498
+ soft: { light: primitivePalette.yellow[50], dark: primitivePalette.yellow[950] },
499
+ light: { light: primitivePalette.yellow[100], dark: primitivePalette.yellow[900] },
500
+ main: { light: primitivePalette.yellow[500], dark: primitivePalette.yellow[600] },
501
+ dark: { light: primitivePalette.yellow[600], dark: primitivePalette.yellow[700] },
502
+ strong: { light: "", dark: "" }
503
+ },
504
+ danger: {
505
+ soft: { light: primitivePalette.hotPink[50], dark: primitivePalette.hotPink[950] },
506
+ light: { light: primitivePalette.hotPink[200], dark: primitivePalette.hotPink[900] },
507
+ main: { light: primitivePalette.hotPink[500], dark: primitivePalette.hotPink[500] },
508
+ dark: { light: primitivePalette.hotPink[600], dark: primitivePalette.hotPink[700] },
509
+ strong: { light: "", dark: "" }
301
510
  }
302
511
  };
303
512
 
@@ -504,7 +713,7 @@ var boxShadow = {
504
713
  "drop-sm": "0 4px 12px 0 rgba(0, 0, 0, 0.1)",
505
714
  "drop-md": "0 6px 18px 0 rgba(0, 0, 0, 0.1)",
506
715
  "drop-lg": "0 8px 24px 0 rgba(0, 0, 0, 0.1)",
507
- "drop-xl": "0 10px 30px 0 rgba(0, 0, 0, 0.1)"
716
+ "drop-xl": "0 0px 60px 0 rgba(0, 0, 0, 0.2)"
508
717
  };
509
718
 
510
719
  // ../tailwind-config/src/border/radius.ts
@@ -513,8 +722,11 @@ var borderRadius = {
513
722
  md: "6px",
514
723
  lg: "8px",
515
724
  xl: "10px",
725
+ "2xl": "20px",
516
726
  none: "0",
517
- full: "9999px"
727
+ full: "9999px",
728
+ 2: "2px",
729
+ 5: "5px"
518
730
  };
519
731
 
520
732
  // ../tailwind-config/src/border/width.ts
@@ -525,12 +737,38 @@ var borderWidth = {
525
737
  xl: "1.75px"
526
738
  };
527
739
 
740
+ // ../tailwind-config/src/border/ringWidth.ts
741
+ var ringWidth = {
742
+ sm: "1px",
743
+ md: "1.25px",
744
+ lg: "1.5px",
745
+ xl: "1.75px",
746
+ 2: "2px",
747
+ 3: "3px",
748
+ 4: "4px",
749
+ 5: "5px"
750
+ };
751
+
528
752
  // ../tailwind-config/src/space/gap.ts
529
753
  var gap = {
530
754
  sm: "4px",
531
755
  md: "6px",
532
756
  lg: "8px",
533
- xl: "10px"
757
+ xl: "10px",
758
+ 5: "5px",
759
+ 10: "10px",
760
+ 20: "20px",
761
+ 30: "30px"
762
+ };
763
+
764
+ // ../tailwind-config/src/space/padding.ts
765
+ var padding = {
766
+ xs: "4px",
767
+ sm: "6px",
768
+ md: "8px",
769
+ lg: "10px",
770
+ xl: "12px",
771
+ 20: "20px"
534
772
  };
535
773
 
536
774
  // ../tailwind-config/src/utils/color.ts
@@ -617,18 +855,24 @@ var resolveConfig = (themes = {}, defaultTheme, prefix = "dn") => {
617
855
  if (!colorValue) continue;
618
856
  try {
619
857
  const ColorVariable = `--${prefix}-${colorName}`;
620
- resolved.utilities[cssSelector][ColorVariable] = colorValue;
621
858
  if (colorValue.includes(",")) {
622
859
  const [hex, alpha] = colorValue.split(",").map((s) => s.trim());
623
860
  if ((hex == null ? void 0 : hex.startsWith("#")) && alpha !== void 0) {
624
- resolved.colors[colorName] = () => {
625
- return getTransColor(hex, parseFloat(alpha) || 1);
861
+ const parsedAlpha = parseFloat(alpha);
862
+ const finalAlpha = isNaN(parsedAlpha) ? 1 : parsedAlpha / 100;
863
+ const rgbaColor = getTransColor(hex, finalAlpha);
864
+ resolved.utilities[cssSelector] = {
865
+ ...resolved.utilities[cssSelector] || {},
866
+ [ColorVariable]: rgbaColor
626
867
  };
868
+ resolved.colors[colorName] = () => `var(${ColorVariable})`;
627
869
  }
628
870
  } else {
629
- resolved.colors[colorName] = () => {
630
- return `var(${ColorVariable})`;
871
+ resolved.utilities[cssSelector] = {
872
+ ...resolved.utilities[cssSelector] || {},
873
+ [ColorVariable]: colorValue
631
874
  };
875
+ resolved.colors[colorName] = () => `var(${ColorVariable})`;
632
876
  }
633
877
  } catch (error) {
634
878
  console.error("error", error == null ? void 0 : error.message);
@@ -669,13 +913,31 @@ var flattenThemeObject = (theme) => {
669
913
  return result;
670
914
  };
671
915
  var deepnoidUi = (colorChip = {}, defaultTheme = "light") => {
672
- const lightPalette = structuredClone(semanticPalette.light);
673
- const darkPalette = structuredClone(semanticPalette.dark);
674
- const mergedLight = { ...lightPalette, ...colorChip.light };
675
- const mergedDark = { ...darkPalette, ...colorChip.dark };
916
+ const lightPalette = {};
917
+ const darkPalette = {};
918
+ Object.entries(semanticPalette).forEach(([role, levels]) => {
919
+ const lightGroup = {};
920
+ const darkGroup = {};
921
+ Object.entries(levels).forEach(([level, value]) => {
922
+ if (value == null ? void 0 : value.light) lightGroup[level] = value.light;
923
+ if (value == null ? void 0 : value.dark) darkGroup[level] = value.dark;
924
+ });
925
+ lightPalette[role] = lightGroup;
926
+ darkPalette[role] = darkGroup;
927
+ });
928
+ Object.entries(colorChip).forEach(([role, levels]) => {
929
+ const lightGroup = lightPalette[role] || (lightPalette[role] = {});
930
+ const darkGroup = darkPalette[role] || (darkPalette[role] = {});
931
+ if (levels) {
932
+ Object.entries(levels).forEach(([level, value]) => {
933
+ if (value == null ? void 0 : value.light) lightGroup[level] = value.light;
934
+ if (value == null ? void 0 : value.dark) darkGroup[level] = value.dark;
935
+ });
936
+ }
937
+ });
676
938
  const themes = {
677
- light: { extend: "light", colors: mergedLight },
678
- dark: { extend: "dark", colors: mergedDark }
939
+ light: { extend: "light", colors: lightPalette },
940
+ dark: { extend: "dark", colors: darkPalette }
679
941
  };
680
942
  const resolved = resolveConfig(themes, defaultTheme);
681
943
  return (0, import_plugin.default)(
@@ -716,12 +978,14 @@ var deepnoidUi = (colorChip = {}, defaultTheme = "light") => {
716
978
  ]
717
979
  },
718
980
  // @ts-ignore
719
- colors: { ...resolved == null ? void 0 : resolved.colors },
981
+ colors: { ...primitivePalette, ...resolved == null ? void 0 : resolved.colors },
720
982
  borderRadius,
721
983
  borderWidth,
722
984
  fontSize,
723
985
  boxShadow,
724
986
  gap,
987
+ padding,
988
+ ringWidth,
725
989
  keyframes,
726
990
  animation
727
991
  }
@@ -742,7 +1006,8 @@ var tv = (0, import_tailwind_variants.createTV)({
742
1006
  borderRadius: [{ rounded: [...typedKeys(borderRadius)] }],
743
1007
  boxShadow: [{ shadow: [...typedKeys(boxShadow)] }],
744
1008
  padding: [{ p: [...COMMON_SIZE] }],
745
- gap: [{ gap: [...typedKeys(gap)] }]
1009
+ gap: [{ gap: [...typedKeys(gap)] }],
1010
+ borderWidth: [{ border: [...typedKeys(borderWidth)] }]
746
1011
  }
747
1012
  }
748
1013
  });
@@ -1062,6 +1327,98 @@ var import_react3 = require("react");
1062
1327
  // src/components/icon/template.tsx
1063
1328
  var import_jsx_runtime3 = require("react/jsx-runtime");
1064
1329
  var template = {
1330
+ left: ({ className }) => {
1331
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
1332
+ "svg",
1333
+ {
1334
+ xmlns: "http://www.w3.org/2000/svg",
1335
+ width: "21",
1336
+ height: "21",
1337
+ viewBox: "0 0 21 21",
1338
+ fill: "none",
1339
+ className,
1340
+ children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
1341
+ "path",
1342
+ {
1343
+ d: "M12.8333 15.1667L8.16667 10.5L12.8333 5.83334",
1344
+ stroke: "currentColor",
1345
+ strokeWidth: "1.25",
1346
+ strokeLinecap: "round",
1347
+ strokeLinejoin: "round"
1348
+ }
1349
+ )
1350
+ }
1351
+ );
1352
+ },
1353
+ "left-double": ({ className }) => {
1354
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
1355
+ "svg",
1356
+ {
1357
+ xmlns: "http://www.w3.org/2000/svg",
1358
+ width: "21",
1359
+ height: "21",
1360
+ viewBox: "0 0 21 21",
1361
+ fill: "none",
1362
+ className,
1363
+ children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
1364
+ "path",
1365
+ {
1366
+ d: "M15.1667 5.83334L9.98148 10.5L15.1667 15.1667M11.0185 5.83334L5.83334 10.5L11.0185 15.1667",
1367
+ stroke: "currentColor",
1368
+ strokeWidth: "1.25",
1369
+ strokeLinecap: "round",
1370
+ strokeLinejoin: "round"
1371
+ }
1372
+ )
1373
+ }
1374
+ );
1375
+ },
1376
+ right: ({ className }) => {
1377
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
1378
+ "svg",
1379
+ {
1380
+ xmlns: "http://www.w3.org/2000/svg",
1381
+ width: "21",
1382
+ height: "21",
1383
+ viewBox: "0 0 21 21",
1384
+ fill: "none",
1385
+ className,
1386
+ children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
1387
+ "path",
1388
+ {
1389
+ d: "M8.16666 5.83334L12.8333 10.5L8.16666 15.1667",
1390
+ stroke: "currentColor",
1391
+ strokeWidth: "1.25",
1392
+ strokeLinecap: "round",
1393
+ strokeLinejoin: "round"
1394
+ }
1395
+ )
1396
+ }
1397
+ );
1398
+ },
1399
+ "right-double": ({ className }) => {
1400
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
1401
+ "svg",
1402
+ {
1403
+ xmlns: "http://www.w3.org/2000/svg",
1404
+ width: "21",
1405
+ height: "21",
1406
+ viewBox: "0 0 21 21",
1407
+ fill: "none",
1408
+ className,
1409
+ children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
1410
+ "path",
1411
+ {
1412
+ d: "M5.83334 5.83334L11.0185 10.5L5.83334 15.1667M9.98149 5.83334L15.1667 10.5L9.98149 15.1667",
1413
+ stroke: "currentColor",
1414
+ strokeWidth: "1.25",
1415
+ strokeLinecap: "round",
1416
+ strokeLinejoin: "round"
1417
+ }
1418
+ )
1419
+ }
1420
+ );
1421
+ },
1065
1422
  "left-chevron": ({ className }) => {
1066
1423
  return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
1067
1424
  "svg",
@@ -2447,46 +2804,6 @@ var template = {
2447
2804
  }
2448
2805
  );
2449
2806
  },
2450
- left: ({ className }) => {
2451
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2452
- "svg",
2453
- {
2454
- xmlns: "http://www.w3.org/2000/svg",
2455
- width: "22",
2456
- height: "22",
2457
- viewBox: "0 0 22 22",
2458
- fill: "none",
2459
- className,
2460
- children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2461
- "path",
2462
- {
2463
- d: "M14.4955 7.21404C14.4957 7.26442 14.4957 7.26442 14.4959 7.31582C14.4962 7.40882 14.4962 7.50182 14.496 7.59482C14.496 7.69521 14.4962 7.79559 14.4965 7.89598C14.4969 8.09257 14.497 8.28915 14.4969 8.48574C14.4968 8.64555 14.4969 8.80536 14.497 8.96516C14.4971 8.98791 14.4971 9.01066 14.4971 9.0341C14.4971 9.08032 14.4972 9.12653 14.4972 9.17275C14.4976 9.60613 14.4975 10.0395 14.4973 10.4729C14.4971 10.8692 14.4975 11.2656 14.4981 11.6619C14.4988 12.069 14.499 12.4761 14.4989 12.8832C14.4989 13.1117 14.4989 13.3402 14.4994 13.5687C14.4998 13.7633 14.4998 13.9578 14.4994 14.1524C14.4992 14.2516 14.4992 14.3508 14.4996 14.45C14.4999 14.5577 14.4997 14.6653 14.4993 14.7729C14.4995 14.8042 14.4997 14.8354 14.5 14.8676C14.4981 15.094 14.4635 15.2952 14.2769 15.4694C14.0633 15.6269 13.8501 15.6664 13.574 15.6667C13.3359 15.6312 13.1607 15.5177 12.9847 15.381C12.9446 15.3506 12.9044 15.3202 12.8642 15.2898C12.8338 15.2666 12.8338 15.2666 12.8028 15.2429C12.7059 15.1692 12.6076 15.0969 12.5094 15.0246C12.4807 15.0034 12.4807 15.0034 12.4515 14.9819C12.3238 14.8875 12.1955 14.7936 12.0669 14.7C11.8604 14.5497 11.6552 14.3982 11.4501 14.2465C11.3539 14.1754 11.2577 14.1043 11.1615 14.0332C11.1231 14.0048 11.0847 13.9765 11.0462 13.9481C11.0177 13.927 11.0177 13.927 10.9886 13.9055C10.1627 13.2955 9.33686 12.6854 8.51098 12.0753C8.49194 12.0613 8.47291 12.0472 8.45329 12.0328C8.41508 12.0045 8.37691 11.9762 8.33878 11.9479C8.23994 11.8746 8.14044 11.8021 8.03961 11.7309C7.56492 11.3929 7.56492 11.3929 7.50676 11.139C7.48169 10.8947 7.5218 10.7077 7.70431 10.5165C7.82684 10.4027 7.96443 10.3072 8.1052 10.2107C8.19396 10.1488 8.27857 10.0845 8.36282 10.0181C8.5044 9.90695 8.65122 9.80273 8.80011 9.69893C8.88704 9.63693 8.97086 9.57289 9.05425 9.50739C9.19583 9.3962 9.34265 9.29198 9.49154 9.18818C9.57847 9.12618 9.6623 9.06214 9.74569 8.99664C9.88726 8.88544 10.0341 8.78123 10.183 8.67742C10.2699 8.61542 10.3537 8.55139 10.4371 8.48589C10.5787 8.37469 10.7255 8.27048 10.8744 8.16667C10.9613 8.10467 11.0452 8.04064 11.1286 7.97514C11.2379 7.88937 11.3491 7.80701 11.464 7.72686C11.676 7.57888 11.881 7.42428 12.0868 7.26992C12.2036 7.18255 12.321 7.09588 12.4386 7.00934C12.5366 6.93723 12.6341 6.8648 12.7311 6.7917C13.3456 6.32986 13.3456 6.32986 13.7814 6.33404C13.9843 6.35117 14.1418 6.41415 14.2854 6.53943C14.4816 6.75169 14.4966 6.95069 14.4955 7.21404Z",
2464
- fill: "currentColor"
2465
- }
2466
- )
2467
- }
2468
- );
2469
- },
2470
- right: ({ className }) => {
2471
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2472
- "svg",
2473
- {
2474
- xmlns: "http://www.w3.org/2000/svg",
2475
- width: "22",
2476
- height: "22",
2477
- viewBox: "0 0 22 22",
2478
- fill: "none",
2479
- className,
2480
- children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2481
- "path",
2482
- {
2483
- d: "M7.50447 7.21404C7.50428 7.26442 7.50428 7.26442 7.50409 7.31582C7.50381 7.40882 7.50383 7.50182 7.50397 7.59482C7.50405 7.69521 7.50375 7.79559 7.5035 7.89598C7.50308 8.09257 7.50303 8.28915 7.5031 8.48574C7.50316 8.64555 7.5031 8.80536 7.50296 8.96516C7.50294 8.98791 7.50292 9.01066 7.5029 9.0341C7.50286 9.08032 7.50282 9.12653 7.50278 9.17275C7.50243 9.60613 7.5025 10.0395 7.5027 10.4729C7.50287 10.8692 7.5025 11.2656 7.50187 11.6619C7.50123 12.069 7.50096 12.4761 7.50109 12.8832C7.50115 13.1117 7.50107 13.3402 7.5006 13.5687C7.50021 13.7633 7.50016 13.9578 7.50056 14.1524C7.50076 14.2516 7.50079 14.3508 7.5004 14.45C7.50005 14.5577 7.50032 14.6653 7.50074 14.7729C7.50049 14.8042 7.50025 14.8354 7.5 14.8676C7.50185 15.094 7.53645 15.2952 7.72309 15.4694C7.93671 15.6269 8.14985 15.6664 8.42597 15.6667C8.66414 15.6312 8.8393 15.5177 9.01528 15.381C9.05544 15.3506 9.09561 15.3202 9.13579 15.2898C9.16617 15.2666 9.16617 15.2666 9.19716 15.2429C9.29408 15.1692 9.39237 15.0969 9.49064 15.0246C9.51926 15.0034 9.51926 15.0034 9.54847 14.9819C9.67623 14.8875 9.80451 14.7936 9.93307 14.7C10.1396 14.5497 10.3448 14.3982 10.5499 14.2465C10.6461 14.1754 10.7423 14.1043 10.8385 14.0332C10.8769 14.0048 10.9153 13.9765 10.9538 13.9481C10.9823 13.927 10.9823 13.927 11.0114 13.9055C11.8373 13.2955 12.6631 12.6854 13.489 12.0753C13.5081 12.0613 13.5271 12.0472 13.5467 12.0328C13.5849 12.0045 13.6231 11.9762 13.6612 11.9479C13.7601 11.8746 13.8596 11.8021 13.9604 11.7309C14.4351 11.3929 14.4351 11.3929 14.4932 11.139C14.5183 10.8947 14.4782 10.7077 14.2957 10.5165C14.1732 10.4027 14.0356 10.3072 13.8948 10.2107C13.806 10.1488 13.7214 10.0845 13.6372 10.0181C13.4956 9.90695 13.3488 9.80273 13.1999 9.69893C13.113 9.63693 13.0291 9.57289 12.9457 9.50739C12.8042 9.3962 12.6573 9.29198 12.5085 9.18818C12.4215 9.12618 12.3377 9.06214 12.2543 8.99664C12.1127 8.88544 11.9659 8.78123 11.817 8.67742C11.7301 8.61542 11.6463 8.55139 11.5629 8.48589C11.4213 8.37469 11.2745 8.27048 11.1256 8.16667C11.0387 8.10467 10.9548 8.04064 10.8714 7.97514C10.7621 7.88937 10.6509 7.80701 10.536 7.72686C10.324 7.57888 10.119 7.42428 9.9132 7.26992C9.79643 7.18255 9.67897 7.09588 9.56138 7.00934C9.46343 6.93723 9.36586 6.8648 9.26891 6.7917C8.65441 6.32986 8.65441 6.32986 8.21864 6.33404C8.01565 6.35117 7.85817 6.41415 7.7146 6.53943C7.51841 6.75169 7.50343 6.95069 7.50447 7.21404Z",
2484
- fill: "currentColor"
2485
- }
2486
- )
2487
- }
2488
- );
2489
- },
2490
2807
  "brace-left": ({ className }) => {
2491
2808
  return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2492
2809
  "svg",
@@ -2796,6 +3113,20 @@ var template = {
2796
3113
  }
2797
3114
  );
2798
3115
  },
3116
+ polygon: ({ className }) => {
3117
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
3118
+ "svg",
3119
+ {
3120
+ xmlns: "http://www.w3.org/2000/svg",
3121
+ width: "24",
3122
+ height: "24",
3123
+ viewBox: "0 0 24 24",
3124
+ fill: "none",
3125
+ className,
3126
+ children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("polygon", { points: "12 4 20 9 20 15 12 20 4 15 4 9", stroke: "currentColor", strokeWidth: "2" })
3127
+ }
3128
+ );
3129
+ },
2799
3130
  "new-window": ({ className }) => {
2800
3131
  return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
2801
3132
  "svg",
@@ -6027,353 +6358,165 @@ var iconTemplate = template;
6027
6358
  var Icon = ({ name, size = "md", fill = false, className, onClick, ...props }) => {
6028
6359
  const SVGIcon = template[name];
6029
6360
  const getInputIconSize = (size2) => {
6030
- switch (size2) {
6361
+ switch (String(size2)) {
6031
6362
  case "sm":
6032
- return "size-[18px]";
6363
+ return "w-[18px] h-[18px]";
6033
6364
  case "md":
6034
- return "size-[21px] stroke-[1.25px]";
6365
+ return "w-[21px] h-[21px] stroke-[1.25px]";
6035
6366
  case "lg":
6036
- return "size-[24px] stroke-[1.5px]";
6367
+ return "w-[24px] h-[24px] stroke-[1.5px]";
6037
6368
  case "xl":
6038
- return "size-[27px] stroke-[1.5px]";
6369
+ return "w-[27px] h-[27px] stroke-[1.5px]";
6370
+ case "20":
6371
+ return "w-[20px] h-[20px] stroke-[1.25px]";
6372
+ case "30":
6373
+ return "w-[30px] h-[30px] stroke-[1.5px]";
6374
+ case "40":
6375
+ return "w-[40px] h-[40px] stroke-[2px]";
6376
+ default:
6377
+ return "w-[21px] h-[21px] stroke-[1.25px]";
6039
6378
  }
6040
6379
  };
6041
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "h-fit w-fit", onClick, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
6042
- SVGIcon,
6043
- {
6044
- fill,
6045
- className: className ? `${getInputIconSize(size)} ${className}` : `${getInputIconSize(size)}`,
6046
- ...props
6047
- }
6048
- ) });
6380
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: `m-0 flex items-center justify-center p-0 ${className}`, onClick, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(SVGIcon, { fill, className: getInputIconSize(size), ...props }) });
6049
6381
  };
6050
6382
  var Icon_default = Icon;
6051
6383
 
6052
6384
  // src/components/button/button.tsx
6053
6385
  var import_react6 = require("react");
6054
6386
 
6055
- // src/components/ripple/ripple.tsx
6056
- var import_framer_motion = require("framer-motion");
6057
- var import_jsx_runtime7 = require("react/jsx-runtime");
6058
- var Ripple = (props) => {
6059
- const { ripples = [], motionProps, color = "currentColor", style, onClear } = props;
6060
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_jsx_runtime7.Fragment, { children: ripples.map((ripple) => {
6061
- const duration = (0, import_framer_motion.clamp)(ripple.size > 100 ? 0.75 : 0.5, 0.01 * ripple.size, 0.2);
6062
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_framer_motion.LazyMotion, { features: import_framer_motion.domAnimation, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_framer_motion.AnimatePresence, { mode: "popLayout", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
6063
- import_framer_motion.m.span,
6064
- {
6065
- animate: { transform: "scale(2)", opacity: 0 },
6066
- className: "deepnoidui-ripple",
6067
- exit: { opacity: 0 },
6068
- initial: { transform: "scale(0)", opacity: 0.35 },
6069
- style: {
6070
- position: "absolute",
6071
- backgroundColor: color,
6072
- borderRadius: "100%",
6073
- transformOrigin: "center",
6074
- pointerEvents: "none",
6075
- overflow: "hidden",
6076
- inset: 0,
6077
- zIndex: 0,
6078
- top: ripple.y,
6079
- left: ripple.x,
6080
- width: `${ripple.size}px`,
6081
- height: `${ripple.size}px`,
6082
- ...style
6083
- },
6084
- transition: { duration },
6085
- onAnimationComplete: () => {
6086
- onClear(ripple.key);
6087
- },
6088
- ...motionProps
6387
+ // src/components/button/button.style.ts
6388
+ var buttonBaseStyle = tv({
6389
+ slots: {
6390
+ base: [
6391
+ "relative",
6392
+ "flex",
6393
+ "items-center",
6394
+ "justify-center",
6395
+ "whitespace-nowrap",
6396
+ "transition",
6397
+ "duration-200",
6398
+ "select-none",
6399
+ "overflow-hidden",
6400
+ "box-border",
6401
+ "border",
6402
+ "border-transparent"
6403
+ ]
6404
+ },
6405
+ variants: {
6406
+ variant: {
6407
+ solid: [],
6408
+ soft: [],
6409
+ outline: [],
6410
+ ghost: []
6411
+ },
6412
+ color: {
6413
+ primary: [],
6414
+ secondary: [],
6415
+ neutral: [],
6416
+ info: [],
6417
+ success: [],
6418
+ warning: [],
6419
+ danger: []
6420
+ },
6421
+ disabled: {
6422
+ true: {
6423
+ base: ["!bg-neutral-soft", "!border-neutral-soft", "!text-neutral-light", "pointer-events-none"]
6089
6424
  }
6090
- ) }) }, ripple.key);
6091
- }) });
6092
- };
6093
- Ripple.displayName = "HeroUI.Ripple";
6094
- var ripple_default = Ripple;
6095
-
6096
- // src/components/ripple/useRipple.ts
6097
- var import_react5 = require("react");
6098
- function useRipple(props = {}) {
6099
- const [ripples, setRipples] = (0, import_react5.useState)([]);
6100
- const getUniqueID = (key) => `${key}-${Math.random().toString(36).substr(2, 9)}`;
6101
- const onPress = (0, import_react5.useCallback)((event) => {
6102
- const trigger = event.currentTarget;
6103
- const rect = trigger.getBoundingClientRect();
6104
- const size = Math.max(trigger.clientWidth, trigger.clientHeight);
6105
- setRipples((prevRipples) => [
6106
- ...prevRipples,
6107
- {
6108
- key: getUniqueID(prevRipples.length.toString()),
6109
- size,
6110
- x: event.clientX - rect.left - size / 2,
6111
- y: event.clientY - rect.top - size / 2
6112
- }
6113
- ]);
6114
- }, []);
6115
- const onClear = (0, import_react5.useCallback)((key) => {
6116
- setRipples((prevState) => prevState.filter((ripple) => ripple.key !== key));
6117
- }, []);
6118
- return { ripples, onClear, onPress, ...props };
6119
- }
6120
-
6121
- // src/components/button/button.tsx
6122
- var import_jsx_runtime8 = require("react/jsx-runtime");
6123
- var extractTextFromChildren = (children) => {
6124
- if (typeof children === "string") {
6125
- return children;
6126
- }
6127
- if (typeof children === "number") {
6128
- return String(children);
6129
- }
6130
- if ((0, import_react6.isValidElement)(children)) {
6131
- const childProps = children.props;
6132
- return extractTextFromChildren(childProps.children);
6133
- }
6134
- if (Array.isArray(children)) {
6135
- return children.map((child) => extractTextFromChildren(child)).join(" ");
6136
- }
6137
- return "";
6138
- };
6139
- var Button = (0, import_react6.forwardRef)((originalProps, ref) => {
6140
- const [props, variantProps] = mapPropsVariants(originalProps, buttonStyle.variantKeys);
6141
- const { classNames, startContent, endContent, disableRipple, asChild, children, ...buttonProps } = props;
6142
- const slots = (0, import_react6.useMemo)(() => buttonStyle({ ...variantProps }), [variantProps]);
6143
- const { onPress: onRipplePressHandler, onClear: onClearRipple, ripples } = useRipple();
6144
- const autoAriaLabel = (0, import_react6.useMemo)(() => {
6145
- if (originalProps["aria-label"] || originalProps["aria-labelledby"]) {
6146
- return void 0;
6147
- }
6148
- if (originalProps.isLoading) {
6149
- const baseText = extractTextFromChildren(children);
6150
- return baseText ? `${baseText} (loading)` : "loading";
6151
- }
6152
- const textContent = extractTextFromChildren(children);
6153
- return textContent || void 0;
6154
- }, [originalProps["aria-label"], originalProps["aria-labelledby"], originalProps.isLoading, children]);
6155
- const handlePress = (0, import_react6.useCallback)(
6156
- (e) => {
6157
- if (disableRipple || originalProps.disabled) return;
6158
- onRipplePressHandler(e);
6159
- },
6160
- [disableRipple, originalProps.disabled, onRipplePressHandler]
6161
- );
6162
- const mouseDownHandler = (0, import_react6.useCallback)(
6163
- (e) => {
6164
- var _a;
6165
- (_a = buttonProps.onMouseDown) == null ? void 0 : _a.call(buttonProps, e);
6166
- if (disableRipple || originalProps.disabled) return;
6167
- handlePress(e);
6168
- },
6169
- [buttonProps.onMouseDown, disableRipple, originalProps.disabled, handlePress]
6170
- );
6171
- const getRippleProps = (0, import_react6.useCallback)(
6172
- () => ({ ripples, onClear: onClearRipple }),
6173
- [ripples, onClearRipple]
6174
- );
6175
- const getBaseProps = (0, import_react6.useCallback)(
6176
- () => ({
6177
- ...buttonProps,
6178
- onMouseDown: mouseDownHandler,
6179
- ref,
6180
- disabled: originalProps.disabled || originalProps.isLoading,
6181
- "data-loading": originalProps.isLoading,
6182
- className: slots.base({ class: classNames == null ? void 0 : classNames.base }),
6183
- "aria-label": originalProps["aria-label"] || autoAriaLabel
6184
- }),
6185
- [
6186
- buttonProps,
6187
- mouseDownHandler,
6188
- ref,
6189
- originalProps.disabled,
6190
- originalProps.isLoading,
6191
- originalProps["aria-label"],
6192
- autoAriaLabel,
6193
- slots,
6194
- classNames == null ? void 0 : classNames.base
6195
- ]
6196
- );
6197
- const getContentProps = (0, import_react6.useCallback)(
6198
- () => ({
6199
- className: slots.content({ class: classNames == null ? void 0 : classNames.content }),
6200
- size: originalProps.size
6201
- }),
6202
- [slots, classNames, originalProps.size]
6203
- );
6204
- const renderContent = (content) => {
6205
- if ((0, import_react6.isValidElement)(content)) {
6206
- const _content = content;
6207
- const existingProps = _content.props;
6208
- const mergedProps = {
6209
- ...getContentProps(),
6210
- className: `${getContentProps().className || ""} ${existingProps.className || ""}`.trim()
6211
- };
6212
- return (0, import_react6.cloneElement)(content, mergedProps);
6213
- } else {
6214
- const contentProps = getContentProps();
6215
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { ...contentProps, children: content });
6216
- }
6217
- };
6218
- const buttonContent = /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_jsx_runtime8.Fragment, { children: originalProps.isLoading ? renderContent(/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Icon_default, { name: "loading", className: "animate-spin" })) : /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [
6219
- startContent && renderContent(startContent),
6220
- children,
6221
- endContent && renderContent(endContent),
6222
- !disableRipple && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(ripple_default, { ...getRippleProps() })
6223
- ] }) });
6224
- if (asChild && (0, import_react6.isValidElement)(children)) {
6225
- const childElement = children;
6226
- const baseProps = getBaseProps();
6227
- const mergedProps = {
6228
- ...childElement.props,
6229
- ...baseProps,
6230
- className: `${baseProps.className || ""} ${childElement.props.className || ""}`.trim(),
6231
- onClick: (e) => {
6232
- var _a, _b, _c;
6233
- (_b = (_a = childElement.props).onClick) == null ? void 0 : _b.call(_a, e);
6234
- (_c = baseProps.onClick) == null ? void 0 : _c.call(baseProps, e);
6235
- },
6236
- onMouseDown: (e) => {
6237
- var _a, _b, _c;
6238
- (_b = (_a = childElement.props).onMouseDown) == null ? void 0 : _b.call(_a, e);
6239
- (_c = baseProps.onMouseDown) == null ? void 0 : _c.call(baseProps, e);
6240
- },
6241
- children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_jsx_runtime8.Fragment, { children: originalProps.isLoading ? renderContent(/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Icon_default, { name: "loading", className: "animate-spin" })) : /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [
6242
- startContent && renderContent(startContent),
6243
- childElement.props.children,
6244
- endContent && renderContent(endContent),
6245
- !disableRipple && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(ripple_default, { ...getRippleProps() })
6246
- ] }) })
6247
- };
6248
- return (0, import_react6.cloneElement)(childElement, mergedProps);
6249
- }
6250
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { ...getBaseProps(), children: buttonContent });
6251
- });
6252
- Button.displayName = "Button";
6253
- var button_default = Button;
6254
- var buttonStyle = tv({
6255
- slots: {
6256
- base: "relative flex items-center justify-center whitespace-nowrap transition duration-200 select-none overflow-hidden box-border border border-transparent",
6257
- content: ""
6258
- },
6259
- variants: {
6260
- variant: {
6261
- solid: "",
6262
- soft: "",
6263
- outline: "",
6264
- ghost: ""
6265
- },
6266
- color: {
6267
- primary: "",
6268
- secondary: "",
6269
- neutral: "",
6270
- info: "",
6271
- success: "",
6272
- warning: "",
6273
- danger: ""
6274
- },
6275
- size: {
6276
- sm: {
6277
- base: "h-[24px] px-[8px] py-[3px] text-sm font-[700] rounded-sm gap-sm"
6278
- },
6279
- md: {
6280
- base: "h-[32px] px-[12px] py-[5.5px] text-md font-[700] rounded-md gap-md"
6281
- },
6282
- lg: {
6283
- base: "h-[40px] px-[16px] py-[8px] text-lg font-[700] rounded-lg gap-lg"
6284
- },
6285
- xl: {
6286
- base: "h-[50px] px-[20px] py-[11.5px] text-xl font-[700] rounded-xl gap-xl"
6287
- }
6288
- },
6289
- radius: {
6290
- default: {
6291
- base: ""
6292
- },
6293
- full: {
6294
- base: "rounded-full"
6295
- },
6296
- none: {
6297
- base: "rounded-none"
6298
- }
6299
- },
6300
- full: {
6301
- true: {
6302
- base: "w-full"
6303
- }
6304
- },
6305
- isLoading: {
6306
- true: {}
6307
- },
6308
- disabled: {
6309
- true: {
6310
- base: "!bg-neutral-soft !border-neutral-soft !text-neutral-light pointer-events-none"
6311
- }
6312
- },
6313
- isInGroup: {
6314
- true: {
6315
- base: "[&:not(:first-child):not(:last-child)]:rounded-none first:rounded-r-none last:rounded-l-none [&:not(:first-child)]:border-l-0"
6425
+ },
6426
+ isInGroup: {
6427
+ true: {
6428
+ base: [
6429
+ "[&:not(:first-child):not(:last-child)]:rounded-none",
6430
+ "first:rounded-r-none",
6431
+ "last:rounded-l-none",
6432
+ "[&:not(:first-child)]:border-l-0"
6433
+ ]
6316
6434
  }
6317
6435
  }
6318
6436
  },
6319
- defaultVariants: {
6320
- size: "md",
6321
- variant: "solid",
6322
- color: "primary",
6323
- full: false,
6324
- disabled: false,
6325
- isLoading: false,
6326
- isInGroup: false
6327
- },
6328
6437
  compoundVariants: [
6329
- // solid & color
6330
6438
  {
6331
6439
  variant: "solid",
6332
6440
  color: "primary",
6333
6441
  class: {
6334
- base: ["text-white", "bg-primary-main", "hover:bg-gradient-to-r", "hover:from-white/20", "hover:to-white/20"]
6442
+ base: [
6443
+ "text-white",
6444
+ "bg-primary-main",
6445
+ "hover:[background:linear-gradient(0deg,var(--dn-trans-light)_0%,var(--dn-trans-light)_100%),var(--dn-primary-main)]",
6446
+ "active:bg-primary-dark"
6447
+ ]
6335
6448
  }
6336
6449
  },
6337
6450
  {
6338
6451
  variant: "solid",
6339
6452
  color: "secondary",
6340
6453
  class: {
6341
- base: ["text-white", "bg-secondary-main", "hover:bg-gradient-to-r", "hover:from-white/20", "hover:to-white/20"]
6454
+ base: [
6455
+ "text-white",
6456
+ "bg-secondary-main",
6457
+ "hover:[background:linear-gradient(0deg,var(--dn-trans-light)_0%,var(--dn-trans-light)_100%),var(--dn-secondary-main)]",
6458
+ "active:bg-secondary-dark"
6459
+ ]
6342
6460
  }
6343
6461
  },
6344
6462
  {
6345
6463
  variant: "solid",
6346
6464
  color: "neutral",
6347
6465
  class: {
6348
- base: ["text-white", "bg-neutral-main", "hover:bg-gradient-to-r", "hover:from-white/20", "hover:to-white/20"]
6466
+ base: [
6467
+ "text-white",
6468
+ "bg-neutral-main",
6469
+ "hover:[background:linear-gradient(0deg,var(--dn-trans-light)_0%,var(--dn-trans-light)_100%),var(--dn-neutral-main)]",
6470
+ "active:bg-neutral-dark"
6471
+ ]
6349
6472
  }
6350
6473
  },
6351
6474
  {
6352
6475
  variant: "solid",
6353
6476
  color: "info",
6354
6477
  class: {
6355
- base: ["text-white", "bg-info-main", "hover:bg-gradient-to-r", "hover:from-white/20", "hover:to-white/20"]
6478
+ base: [
6479
+ "text-white",
6480
+ "bg-info-main",
6481
+ "hover:[background:linear-gradient(0deg,var(--dn-trans-light)_0%,var(--dn-trans-light)_100%),var(--dn-info-main)]",
6482
+ "active:bg-info-dark"
6483
+ ]
6356
6484
  }
6357
6485
  },
6358
6486
  {
6359
6487
  variant: "solid",
6360
6488
  color: "success",
6361
6489
  class: {
6362
- base: ["text-white", "bg-success-main", "hover:bg-gradient-to-r", "hover:from-white/20", "hover:to-white/20"]
6490
+ base: [
6491
+ "text-white",
6492
+ "bg-success-main",
6493
+ "hover:[background:linear-gradient(0deg,var(--dn-trans-light)_0%,var(--dn-trans-light)_100%),var(--dn-success-main)]",
6494
+ "active:bg-success-dark"
6495
+ ]
6363
6496
  }
6364
6497
  },
6365
6498
  {
6366
6499
  variant: "solid",
6367
6500
  color: "warning",
6368
6501
  class: {
6369
- base: ["text-white", "bg-warning-main", "hover:bg-gradient-to-r", "hover:from-white/20", "hover:to-white/20"]
6502
+ base: [
6503
+ "text-white",
6504
+ "bg-warning-main",
6505
+ "hover:[background:linear-gradient(0deg,var(--dn-trans-light)_0%,var(--dn-trans-light)_100%),var(--dn-warning-main)]",
6506
+ "active:bg-warning-dark"
6507
+ ]
6370
6508
  }
6371
6509
  },
6372
6510
  {
6373
6511
  variant: "solid",
6374
6512
  color: "danger",
6375
6513
  class: {
6376
- base: ["text-white", "bg-danger-main", "hover:bg-gradient-to-r", "hover:from-white/20", "hover:to-white/20"]
6514
+ base: [
6515
+ "text-white",
6516
+ "bg-danger-main",
6517
+ "hover:[background:linear-gradient(0deg,var(--dn-trans-light)_0%,var(--dn-trans-light)_100%),var(--dn-danger-main)]",
6518
+ "active:bg-danger-dark"
6519
+ ]
6377
6520
  }
6378
6521
  },
6379
6522
  // soft & color
@@ -6381,49 +6524,85 @@ var buttonStyle = tv({
6381
6524
  variant: "soft",
6382
6525
  color: "primary",
6383
6526
  class: {
6384
- base: ["text-primary-main", "bg-primary-soft", "border-primary-soft", "hover:border-primary-light"]
6527
+ base: [
6528
+ "text-primary-main",
6529
+ "bg-primary-soft",
6530
+ "border-primary-soft",
6531
+ "hover:border-primary-light",
6532
+ "active:bg-primary-light"
6533
+ ]
6385
6534
  }
6386
6535
  },
6387
6536
  {
6388
6537
  variant: "soft",
6389
6538
  color: "secondary",
6390
6539
  class: {
6391
- base: ["text-secondary-main", "bg-secondary-soft", "border-secondary-soft", "hover:border-secondary-light"]
6540
+ base: [
6541
+ "text-secondary-main",
6542
+ "bg-secondary-soft",
6543
+ "border-secondary-soft",
6544
+ "hover:border-secondary-light",
6545
+ "active:bg-secondary-light"
6546
+ ]
6392
6547
  }
6393
6548
  },
6394
6549
  {
6395
6550
  variant: "soft",
6396
6551
  color: "neutral",
6397
6552
  class: {
6398
- base: ["text-neutral-main", "bg-neutral-soft", "border-neutral-soft", "hover:border-neutral-light"]
6553
+ base: [
6554
+ "text-neutral-main",
6555
+ "bg-neutral-soft",
6556
+ "border-neutral-soft",
6557
+ "hover:border-neutral-light",
6558
+ "active:bg-neutral-light"
6559
+ ]
6399
6560
  }
6400
6561
  },
6401
6562
  {
6402
6563
  variant: "soft",
6403
6564
  color: "info",
6404
6565
  class: {
6405
- base: ["text-info-main", "bg-info-soft", "border-info-soft", "hover:border-info-light"]
6566
+ base: ["text-info-main", "bg-info-soft", "border-info-soft", "hover:border-info-light", "active:bg-info-light"]
6406
6567
  }
6407
6568
  },
6408
6569
  {
6409
6570
  variant: "soft",
6410
6571
  color: "success",
6411
6572
  class: {
6412
- base: ["text-success-main", "bg-success-soft", "border-success-soft", "hover:border-success-light"]
6573
+ base: [
6574
+ "text-success-main",
6575
+ "bg-success-soft",
6576
+ "border-success-soft",
6577
+ "hover:border-success-light",
6578
+ "active:bg-success-light"
6579
+ ]
6413
6580
  }
6414
6581
  },
6415
6582
  {
6416
6583
  variant: "soft",
6417
6584
  color: "warning",
6418
6585
  class: {
6419
- base: ["text-warning-main", "bg-warning-soft", "border-warning-soft", "hover:border-warning-light"]
6586
+ base: [
6587
+ "text-warning-main",
6588
+ "bg-warning-soft",
6589
+ "border-warning-soft",
6590
+ "hover:border-warning-light",
6591
+ "active:bg-warning-light"
6592
+ ]
6420
6593
  }
6421
6594
  },
6422
6595
  {
6423
6596
  variant: "soft",
6424
6597
  color: "danger",
6425
6598
  class: {
6426
- base: ["text-danger-main", "bg-danger-soft", "border-danger-soft", "hover:border-danger-light"]
6599
+ base: [
6600
+ "text-danger-main",
6601
+ "bg-danger-soft",
6602
+ "border-danger-soft",
6603
+ "hover:border-danger-light",
6604
+ "active:bg-danger-light"
6605
+ ]
6427
6606
  }
6428
6607
  },
6429
6608
  // outline & color
@@ -6431,49 +6610,91 @@ var buttonStyle = tv({
6431
6610
  variant: "outline",
6432
6611
  color: "primary",
6433
6612
  class: {
6434
- base: ["bg-body-background", "border-primary-main", "text-primary-main", "hover:bg-primary-soft"]
6613
+ base: [
6614
+ "bg-body-background",
6615
+ "border-primary-main",
6616
+ "text-primary-main",
6617
+ "hover:bg-primary-soft",
6618
+ "active:bg-primary-light"
6619
+ ]
6435
6620
  }
6436
6621
  },
6437
6622
  {
6438
6623
  variant: "outline",
6439
6624
  color: "secondary",
6440
6625
  class: {
6441
- base: ["bg-body-background", "border-secondary-main", "text-secondary-main", "hover:bg-secondary-soft"]
6626
+ base: [
6627
+ "bg-body-background",
6628
+ "border-secondary-main",
6629
+ "text-secondary-main",
6630
+ "hover:bg-secondary-soft",
6631
+ "active:bg-secondary-light"
6632
+ ]
6442
6633
  }
6443
6634
  },
6444
6635
  {
6445
6636
  variant: "outline",
6446
6637
  color: "neutral",
6447
6638
  class: {
6448
- base: ["bg-body-background", "border-neutral-main", "text-neutral-main", "hover:bg-neutral-soft"]
6639
+ base: [
6640
+ "bg-body-background",
6641
+ "border-neutral-main",
6642
+ "text-neutral-main",
6643
+ "hover:bg-neutral-soft",
6644
+ "active:bg-neutral-light"
6645
+ ]
6449
6646
  }
6450
6647
  },
6451
6648
  {
6452
6649
  variant: "outline",
6453
6650
  color: "info",
6454
6651
  class: {
6455
- base: ["bg-body-background", "border-info-main", "text-info-main", "hover:bg-info-soft"]
6652
+ base: [
6653
+ "bg-body-background",
6654
+ "border-info-main",
6655
+ "text-info-main",
6656
+ "hover:bg-info-soft",
6657
+ "active:bg-info-light"
6658
+ ]
6456
6659
  }
6457
6660
  },
6458
6661
  {
6459
6662
  variant: "outline",
6460
6663
  color: "success",
6461
6664
  class: {
6462
- base: ["bg-body-background", "border-success-main", "text-success-main", "hover:bg-success-soft"]
6665
+ base: [
6666
+ "bg-body-background",
6667
+ "border-success-main",
6668
+ "text-success-main",
6669
+ "hover:bg-success-soft",
6670
+ "active:bg-success-light"
6671
+ ]
6463
6672
  }
6464
6673
  },
6465
6674
  {
6466
6675
  variant: "outline",
6467
6676
  color: "warning",
6468
6677
  class: {
6469
- base: ["bg-body-background", "border-warning-main", "text-warning-main", "hover:bg-warning-soft"]
6678
+ base: [
6679
+ "bg-body-background",
6680
+ "border-warning-main",
6681
+ "text-warning-main",
6682
+ "hover:bg-warning-soft",
6683
+ "active:bg-warning-light"
6684
+ ]
6470
6685
  }
6471
6686
  },
6472
6687
  {
6473
6688
  variant: "outline",
6474
6689
  color: "danger",
6475
6690
  class: {
6476
- base: ["bg-body-background", "border-danger-main", "text-danger-main", "hover:bg-danger-soft"]
6691
+ base: [
6692
+ "bg-body-background",
6693
+ "border-danger-main",
6694
+ "text-danger-main",
6695
+ "hover:bg-danger-soft",
6696
+ "active:bg-danger-light"
6697
+ ]
6477
6698
  }
6478
6699
  },
6479
6700
  // ghost & color
@@ -6481,49 +6702,91 @@ var buttonStyle = tv({
6481
6702
  variant: "ghost",
6482
6703
  color: "primary",
6483
6704
  class: {
6484
- base: ["text-primary-main", "border-transparent", "hover:bg-primary-soft"]
6705
+ base: [
6706
+ "text-primary-main",
6707
+ "border-transparent",
6708
+ "hover:bg-primary-soft",
6709
+ "active:bg-primary-main",
6710
+ "active:text-common-white"
6711
+ ]
6485
6712
  }
6486
6713
  },
6487
6714
  {
6488
6715
  variant: "ghost",
6489
6716
  color: "secondary",
6490
6717
  class: {
6491
- base: ["text-secondary-main", "border-transparent", "hover:bg-secondary-soft"]
6718
+ base: [
6719
+ "text-secondary-main",
6720
+ "border-transparent",
6721
+ "hover:bg-secondary-soft",
6722
+ "active:bg-secondary-main",
6723
+ "active:text-common-white"
6724
+ ]
6492
6725
  }
6493
6726
  },
6494
6727
  {
6495
6728
  variant: "ghost",
6496
6729
  color: "neutral",
6497
6730
  class: {
6498
- base: ["text-neutral-main", "border-transparent", "hover:bg-neutral-soft"]
6731
+ base: [
6732
+ "text-neutral-main",
6733
+ "border-transparent",
6734
+ "hover:bg-neutral-soft",
6735
+ "active:bg-neutral-main",
6736
+ "active:text-common-white"
6737
+ ]
6499
6738
  }
6500
6739
  },
6501
6740
  {
6502
6741
  variant: "ghost",
6503
6742
  color: "info",
6504
6743
  class: {
6505
- base: ["text-info-main", "border-transparent", "hover:bg-info-soft"]
6744
+ base: [
6745
+ "text-info-main",
6746
+ "border-transparent",
6747
+ "hover:bg-info-soft",
6748
+ "active:bg-info-main",
6749
+ "active:text-common-white"
6750
+ ]
6506
6751
  }
6507
6752
  },
6508
6753
  {
6509
6754
  variant: "ghost",
6510
6755
  color: "success",
6511
6756
  class: {
6512
- base: ["text-success-main", "border-transparent", "hover:bg-success-soft"]
6513
- }
6757
+ base: [
6758
+ "text-success-main",
6759
+ "border-transparent",
6760
+ "hover:bg-success-soft",
6761
+ "active:bg-success-main",
6762
+ "active:text-common-white"
6763
+ ]
6764
+ }
6514
6765
  },
6515
6766
  {
6516
6767
  variant: "ghost",
6517
6768
  color: "warning",
6518
6769
  class: {
6519
- base: ["text-warning-main", "border-transparent", "hover:bg-warning-soft"]
6770
+ base: [
6771
+ "text-warning-main",
6772
+ "border-transparent",
6773
+ "hover:bg-warning-soft",
6774
+ "active:bg-warning-main",
6775
+ "active:text-common-white"
6776
+ ]
6520
6777
  }
6521
6778
  },
6522
6779
  {
6523
6780
  variant: "ghost",
6524
6781
  color: "danger",
6525
6782
  class: {
6526
- base: ["text-danger-main", "border-transparent", "hover:bg-danger-soft"]
6783
+ base: [
6784
+ "text-danger-main",
6785
+ "border-transparent",
6786
+ "hover:bg-danger-soft",
6787
+ "active:bg-danger-main",
6788
+ "active:text-common-white"
6789
+ ]
6527
6790
  }
6528
6791
  },
6529
6792
  // variant && size
@@ -6531,28 +6794,28 @@ var buttonStyle = tv({
6531
6794
  variant: ["soft", "outline"],
6532
6795
  size: "sm",
6533
6796
  class: {
6534
- base: "border-[1px]"
6797
+ base: ["border-sm"]
6535
6798
  }
6536
6799
  },
6537
6800
  {
6538
6801
  variant: ["soft", "outline"],
6539
6802
  size: "md",
6540
6803
  class: {
6541
- base: "border-[1.25px]"
6804
+ base: ["border-md"]
6542
6805
  }
6543
6806
  },
6544
6807
  {
6545
6808
  variant: ["soft", "outline"],
6546
6809
  size: "lg",
6547
6810
  class: {
6548
- base: "border-[1.5px]"
6811
+ base: ["border-lg"]
6549
6812
  }
6550
6813
  },
6551
6814
  {
6552
6815
  variant: ["soft", "outline"],
6553
6816
  size: "xl",
6554
6817
  class: {
6555
- base: "border-[1.75px]"
6818
+ base: ["border-xl"]
6556
6819
  }
6557
6820
  },
6558
6821
  // variant && disabled
@@ -6560,373 +6823,341 @@ var buttonStyle = tv({
6560
6823
  variant: ["soft", "ghost"],
6561
6824
  disabled: true,
6562
6825
  class: {
6563
- base: "!border-neutral-soft"
6826
+ base: ["!border-neutral-soft"]
6564
6827
  }
6565
6828
  },
6566
6829
  {
6567
6830
  variant: ["outline"],
6568
6831
  disabled: true,
6569
6832
  class: {
6570
- base: "!border-neutral-light"
6833
+ base: ["!border-neutral-light"]
6571
6834
  }
6572
6835
  }
6573
6836
  ]
6574
6837
  });
6575
6838
 
6576
- // src/components/button/icon-button.tsx
6577
- var import_react7 = require("react");
6578
- var import_jsx_runtime9 = require("react/jsx-runtime");
6579
- var IconButton = (0, import_react7.forwardRef)((props, ref) => {
6580
- const [localProps, variantProps] = mapPropsVariants(props, iconButtonStyle.variantKeys);
6581
- const { classNames, name, disableRipple, disabled, isLoading, size, full, isInGroup, onMouseDown, ...buttonProps } = {
6582
- ...localProps,
6583
- ...variantProps
6584
- };
6585
- const slots = (0, import_react7.useMemo)(() => iconButtonStyle({ ...variantProps }), [variantProps]);
6586
- const { onPress, onClear, ripples } = useRipple();
6587
- const handleRipple = (0, import_react7.useCallback)(
6588
- (e) => {
6589
- if (!disableRipple && !disabled) {
6590
- onPress(e);
6839
+ // src/components/ripple/ripple.tsx
6840
+ var import_framer_motion = require("framer-motion");
6841
+ var import_jsx_runtime7 = require("react/jsx-runtime");
6842
+ var Ripple = (props) => {
6843
+ const { ripples = [], motionProps, color = "currentColor", style, onClear } = props;
6844
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_jsx_runtime7.Fragment, { children: ripples.map((ripple) => {
6845
+ const duration = (0, import_framer_motion.clamp)(ripple.size > 100 ? 0.75 : 0.5, 0.01 * ripple.size, 0.2);
6846
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_framer_motion.LazyMotion, { features: import_framer_motion.domAnimation, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_framer_motion.AnimatePresence, { mode: "popLayout", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
6847
+ import_framer_motion.m.span,
6848
+ {
6849
+ animate: { transform: "scale(2)", opacity: 0 },
6850
+ className: "deepnoidui-ripple",
6851
+ exit: { opacity: 0 },
6852
+ initial: { transform: "scale(0)", opacity: 0.35 },
6853
+ style: {
6854
+ position: "absolute",
6855
+ backgroundColor: color,
6856
+ borderRadius: "100%",
6857
+ transformOrigin: "center",
6858
+ pointerEvents: "none",
6859
+ overflow: "hidden",
6860
+ inset: 0,
6861
+ zIndex: 0,
6862
+ top: ripple.y,
6863
+ left: ripple.x,
6864
+ width: `${ripple.size}px`,
6865
+ height: `${ripple.size}px`,
6866
+ ...style
6867
+ },
6868
+ transition: { duration },
6869
+ onAnimationComplete: () => {
6870
+ onClear(ripple.key);
6871
+ },
6872
+ ...motionProps
6873
+ }
6874
+ ) }) }, ripple.key);
6875
+ }) });
6876
+ };
6877
+ Ripple.displayName = "HeroUI.Ripple";
6878
+ var ripple_default = Ripple;
6879
+
6880
+ // src/components/ripple/useRipple.ts
6881
+ var import_react5 = require("react");
6882
+ function useRipple(props = {}) {
6883
+ const [ripples, setRipples] = (0, import_react5.useState)([]);
6884
+ const getUniqueID = (key) => `${key}-${Math.random().toString(36).substr(2, 9)}`;
6885
+ const onPress = (0, import_react5.useCallback)((event) => {
6886
+ const trigger = event.currentTarget;
6887
+ const rect = trigger.getBoundingClientRect();
6888
+ const size = Math.max(trigger.clientWidth, trigger.clientHeight);
6889
+ setRipples((prevRipples) => [
6890
+ ...prevRipples,
6891
+ {
6892
+ key: getUniqueID(prevRipples.length.toString()),
6893
+ size,
6894
+ x: event.clientX - rect.left - size / 2,
6895
+ y: event.clientY - rect.top - size / 2
6591
6896
  }
6897
+ ]);
6898
+ }, []);
6899
+ const onClear = (0, import_react5.useCallback)((key) => {
6900
+ setRipples((prevState) => prevState.filter((ripple) => ripple.key !== key));
6901
+ }, []);
6902
+ return { ripples, onClear, onPress, ...props };
6903
+ }
6904
+
6905
+ // src/components/button/button.tsx
6906
+ var import_jsx_runtime8 = require("react/jsx-runtime");
6907
+ var extractTextFromChildren = (children) => {
6908
+ if (typeof children === "string") {
6909
+ return children;
6910
+ }
6911
+ if (typeof children === "number") {
6912
+ return String(children);
6913
+ }
6914
+ if ((0, import_react6.isValidElement)(children)) {
6915
+ const childProps = children.props;
6916
+ return extractTextFromChildren(childProps.children);
6917
+ }
6918
+ if (Array.isArray(children)) {
6919
+ return children.map((child) => extractTextFromChildren(child)).join(" ");
6920
+ }
6921
+ return "";
6922
+ };
6923
+ var Button = (0, import_react6.forwardRef)((originalProps, ref) => {
6924
+ const [props, variantProps] = mapPropsVariants(originalProps, buttonStyle.variantKeys);
6925
+ const { classNames, startContent, endContent, disableRipple, asChild, children, ...buttonProps } = props;
6926
+ const slots = (0, import_react6.useMemo)(() => buttonStyle({ ...variantProps }), [variantProps]);
6927
+ const { onPress: onRipplePressHandler, onClear: onClearRipple, ripples } = useRipple();
6928
+ const autoAriaLabel = (0, import_react6.useMemo)(() => {
6929
+ if (originalProps["aria-label"] || originalProps["aria-labelledby"]) {
6930
+ return void 0;
6931
+ }
6932
+ if (originalProps.isLoading) {
6933
+ const baseText = extractTextFromChildren(children);
6934
+ return baseText ? `${baseText} (loading)` : "loading";
6935
+ }
6936
+ const textContent = extractTextFromChildren(children);
6937
+ return textContent || void 0;
6938
+ }, [originalProps["aria-label"], originalProps["aria-labelledby"], originalProps.isLoading, children]);
6939
+ const handlePress = (0, import_react6.useCallback)(
6940
+ (e) => {
6941
+ if (disableRipple || originalProps.disabled) return;
6942
+ onRipplePressHandler(e);
6592
6943
  },
6593
- [disableRipple, disabled, onPress]
6944
+ [disableRipple, originalProps.disabled, onRipplePressHandler]
6594
6945
  );
6595
- const handleMouseDown = (0, import_react7.useCallback)(
6946
+ const mouseDownHandler = (0, import_react6.useCallback)(
6596
6947
  (e) => {
6597
- onMouseDown == null ? void 0 : onMouseDown(e);
6598
- handleRipple(e);
6948
+ var _a;
6949
+ (_a = buttonProps.onMouseDown) == null ? void 0 : _a.call(buttonProps, e);
6950
+ if (disableRipple || originalProps.disabled) return;
6951
+ handlePress(e);
6599
6952
  },
6600
- [onMouseDown, handleRipple]
6953
+ [buttonProps.onMouseDown, disableRipple, originalProps.disabled, handlePress]
6601
6954
  );
6602
- const rippleProps = (0, import_react7.useMemo)(() => ({ ripples, onClear }), [ripples, onClear]);
6603
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
6604
- "button",
6605
- {
6955
+ const getRippleProps = (0, import_react6.useCallback)(
6956
+ () => ({ ripples, onClear: onClearRipple }),
6957
+ [ripples, onClearRipple]
6958
+ );
6959
+ const getBaseProps = (0, import_react6.useCallback)(
6960
+ () => ({
6606
6961
  ...buttonProps,
6607
- onMouseDown: handleMouseDown,
6962
+ onMouseDown: mouseDownHandler,
6608
6963
  ref,
6609
- disabled: disabled || isLoading,
6610
- "data-loading": isLoading,
6964
+ disabled: originalProps.disabled || originalProps.isLoading,
6965
+ "data-loading": originalProps.isLoading,
6611
6966
  className: slots.base({ class: classNames == null ? void 0 : classNames.base }),
6612
- children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Icon_default, { name: "loading", size, className: "animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_jsx_runtime9.Fragment, { children: [
6613
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Icon_default, { name, size }),
6614
- !disableRipple && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(ripple_default, { ...rippleProps })
6615
- ] })
6616
- }
6967
+ "aria-label": originalProps["aria-label"] || autoAriaLabel
6968
+ }),
6969
+ [
6970
+ buttonProps,
6971
+ mouseDownHandler,
6972
+ ref,
6973
+ originalProps.disabled,
6974
+ originalProps.isLoading,
6975
+ originalProps["aria-label"],
6976
+ autoAriaLabel,
6977
+ slots,
6978
+ classNames == null ? void 0 : classNames.base
6979
+ ]
6617
6980
  );
6981
+ const getContentProps = (0, import_react6.useCallback)(
6982
+ () => ({
6983
+ className: slots.content({ class: classNames == null ? void 0 : classNames.content }),
6984
+ size: originalProps.size
6985
+ }),
6986
+ [slots, classNames, originalProps.size]
6987
+ );
6988
+ const renderContent = (content) => {
6989
+ if ((0, import_react6.isValidElement)(content)) {
6990
+ const _content = content;
6991
+ const existingProps = _content.props;
6992
+ const mergedProps = {
6993
+ ...getContentProps(),
6994
+ className: `${getContentProps().className || ""} ${existingProps.className || ""}`.trim()
6995
+ };
6996
+ return (0, import_react6.cloneElement)(content, mergedProps);
6997
+ } else {
6998
+ const contentProps = getContentProps();
6999
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { ...contentProps, children: content });
7000
+ }
7001
+ };
7002
+ const buttonContent = /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_jsx_runtime8.Fragment, { children: originalProps.isLoading ? renderContent(/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Icon_default, { name: "loading", className: "animate-spin" })) : /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [
7003
+ startContent && renderContent(startContent),
7004
+ children,
7005
+ endContent && renderContent(endContent),
7006
+ !disableRipple && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(ripple_default, { ...getRippleProps() })
7007
+ ] }) });
7008
+ if (asChild && (0, import_react6.isValidElement)(children)) {
7009
+ const childElement = children;
7010
+ const baseProps = getBaseProps();
7011
+ const mergedProps = {
7012
+ ...childElement.props,
7013
+ ...baseProps,
7014
+ className: `${baseProps.className || ""} ${childElement.props.className || ""}`.trim(),
7015
+ onClick: (e) => {
7016
+ var _a, _b, _c;
7017
+ (_b = (_a = childElement.props).onClick) == null ? void 0 : _b.call(_a, e);
7018
+ (_c = baseProps.onClick) == null ? void 0 : _c.call(baseProps, e);
7019
+ },
7020
+ onMouseDown: (e) => {
7021
+ var _a, _b, _c;
7022
+ (_b = (_a = childElement.props).onMouseDown) == null ? void 0 : _b.call(_a, e);
7023
+ (_c = baseProps.onMouseDown) == null ? void 0 : _c.call(baseProps, e);
7024
+ },
7025
+ children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_jsx_runtime8.Fragment, { children: originalProps.isLoading ? renderContent(/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Icon_default, { name: "loading", className: "animate-spin" })) : /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [
7026
+ startContent && renderContent(startContent),
7027
+ childElement.props.children,
7028
+ endContent && renderContent(endContent),
7029
+ !disableRipple && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(ripple_default, { ...getRippleProps() })
7030
+ ] }) })
7031
+ };
7032
+ return (0, import_react6.cloneElement)(childElement, mergedProps);
7033
+ }
7034
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { ...getBaseProps(), children: buttonContent });
6618
7035
  });
6619
- IconButton.displayName = "IconButton";
6620
- var icon_button_default = IconButton;
6621
- var iconButtonStyle = tv({
7036
+ Button.displayName = "Button";
7037
+ var button_default = Button;
7038
+ var buttonStyle = tv({
7039
+ extend: buttonBaseStyle,
6622
7040
  slots: {
6623
- base: [
6624
- "relative",
6625
- "flex",
6626
- "items-center",
6627
- "justify-center",
6628
- "whitespace-nowrap",
6629
- "transition",
6630
- "duration-200",
6631
- "select-none",
6632
- "overflow-hidden",
6633
- "box-border"
6634
- ]
7041
+ base: ["w-fit"],
7042
+ content: []
6635
7043
  },
6636
7044
  variants: {
6637
- variant: {
6638
- solid: [],
6639
- soft: [],
6640
- outline: [],
6641
- ghost: []
6642
- },
6643
- color: {
6644
- primary: [],
6645
- secondary: [],
6646
- neutral: [],
6647
- info: [],
6648
- success: [],
6649
- warning: [],
6650
- danger: []
6651
- },
6652
7045
  size: {
6653
7046
  sm: {
6654
- base: ["w-[24px]", "h-[24px]", "rounded-sm"]
7047
+ base: ["h-[24px]", "px-[8px]", "py-[3px]", "text-sm", "font-bold", "rounded-sm", "gap-sm"]
6655
7048
  },
6656
7049
  md: {
6657
- base: ["w-[32px]", "h-[32px]", "rounded-md"]
7050
+ base: ["h-[32px]", "px-[12px]", "py-[5.5px]", "text-md", "font-bold", "rounded-md", "gap-md"]
6658
7051
  },
6659
7052
  lg: {
6660
- base: ["w-[40px]", "h-[40px]", "rounded-lg"]
7053
+ base: ["h-[40px]", "px-[16px]", "py-[8px]", "text-lg", "font-bold", "rounded-lg", "gap-lg"]
6661
7054
  },
6662
7055
  xl: {
6663
- base: ["w-[50px]", "h-[50px]", "rounded-xl"]
7056
+ base: ["h-[50px]", "px-[20px]", "py-[11.5px]", "text-xl", "font-bold", "rounded-xl", "gap-xl"]
6664
7057
  }
6665
7058
  },
6666
- isLoading: {
6667
- true: {}
6668
- },
6669
- disabled: {
6670
- true: {
6671
- base: ["!bg-neutral-soft", "!border-neutral-soft", "!text-neutral-light", "pointer-events-none"]
7059
+ radius: {
7060
+ default: {
7061
+ base: []
7062
+ },
7063
+ full: {
7064
+ base: ["rounded-full"]
7065
+ },
7066
+ none: {
7067
+ base: ["rounded-none"]
6672
7068
  }
6673
7069
  },
6674
- isInGroup: {
7070
+ full: {
6675
7071
  true: {
6676
- base: [
6677
- "[&:not(:first-child):not(:last-child)]:rounded-none",
6678
- "first:rounded-r-none",
6679
- "last:rounded-l-none",
6680
- "[&:not(:first-child)]:border-l-0"
6681
- ]
7072
+ base: ["w-full"]
6682
7073
  }
7074
+ },
7075
+ isLoading: {
7076
+ true: {}
6683
7077
  }
6684
7078
  },
6685
- compoundVariants: [
6686
- {
6687
- variant: "solid",
6688
- color: "primary",
6689
- class: {
6690
- base: ["text-white", "bg-primary-main", "hover:bg-gradient-to-t", "hover:from-white/20", "hover:to-white/20"]
6691
- }
6692
- },
6693
- {
6694
- variant: "solid",
6695
- color: "secondary",
6696
- class: {
6697
- base: ["text-white", "bg-secondary-main", "hover:bg-gradient-to-t", "hover:from-white/20", "hover:to-white/20"]
6698
- }
6699
- },
6700
- {
6701
- variant: "solid",
6702
- color: "neutral",
6703
- class: {
6704
- base: ["text-white", "bg-neutral-main", "hover:bg-gradient-to-t", "hover:from-white/20", "hover:to-white/20"]
6705
- }
6706
- },
6707
- {
6708
- variant: "solid",
6709
- color: "info",
6710
- class: {
6711
- base: ["text-white", "bg-info-main", "hover:bg-gradient-to-t", "hover:from-white/20", "hover:to-white/20"]
6712
- }
6713
- },
6714
- {
6715
- variant: "solid",
6716
- color: "success",
6717
- class: {
6718
- base: ["text-white", "bg-success-main", "hover:bg-gradient-to-t", "hover:from-white/20", "hover:to-white/20"]
6719
- }
6720
- },
6721
- {
6722
- variant: "solid",
6723
- color: "warning",
6724
- class: {
6725
- base: ["text-white", "bg-warning-main", "hover:bg-gradient-to-t", "hover:from-white/20", "hover:to-white/20"]
6726
- }
6727
- },
6728
- {
6729
- variant: "solid",
6730
- color: "danger",
6731
- class: {
6732
- base: ["text-white", "bg-danger-main", "hover:bg-gradient-to-t", "hover:from-white/20", "hover:to-white/20"]
6733
- }
6734
- },
6735
- // soft
6736
- {
6737
- variant: "soft",
6738
- color: "primary",
6739
- class: {
6740
- base: ["text-primary-main", "bg-primary-soft", "!border-primary-soft", "hover:!border-primary-light"]
6741
- }
6742
- },
6743
- {
6744
- variant: "soft",
6745
- color: "secondary",
6746
- class: {
6747
- base: ["text-secondary-main", "bg-secondary-soft", "!border-secondary-soft", "hover:!border-secondary-light"]
6748
- }
6749
- },
6750
- {
6751
- variant: "soft",
6752
- color: "neutral",
6753
- class: {
6754
- base: ["text-neutral-main", "bg-neutral-soft", "!border-neutral-soft", "hover:!border-neutral-light"]
6755
- }
6756
- },
6757
- {
6758
- variant: "soft",
6759
- color: "info",
6760
- class: {
6761
- base: ["text-info-main", "bg-info-soft", "!border-info-soft", "hover:!border-info-light"]
6762
- }
6763
- },
6764
- {
6765
- variant: "soft",
6766
- color: "success",
6767
- class: {
6768
- base: ["text-success-main", "bg-success-soft", "!border-success-soft", "hover:!border-success-light"]
6769
- }
6770
- },
6771
- {
6772
- variant: "soft",
6773
- color: "warning",
6774
- class: {
6775
- base: ["text-warning-main", "bg-warning-soft", "!border-warning-soft", "hover:!border-warning-light"]
6776
- }
6777
- },
6778
- {
6779
- variant: "soft",
6780
- color: "danger",
6781
- class: {
6782
- base: ["text-danger-main", "bg-danger-soft", "!border-danger-soft", "hover:!border-danger-light"]
6783
- }
6784
- },
6785
- // outline
6786
- {
6787
- variant: "outline",
6788
- color: "primary",
6789
- class: {
6790
- base: ["bg-body-background", "!border-primary-main", "text-primary-main", "hover:bg-primary-soft"]
6791
- }
6792
- },
6793
- {
6794
- variant: "outline",
6795
- color: "secondary",
6796
- class: {
6797
- base: ["bg-body-background", "!border-secondary-main", "text-secondary-main", "hover:bg-secondary-soft"]
6798
- }
6799
- },
6800
- {
6801
- variant: "outline",
6802
- color: "neutral",
6803
- class: {
6804
- base: ["bg-body-background", "!border-neutral-light", "text-neutral-main", "hover:bg-neutral-soft"]
6805
- }
6806
- },
6807
- {
6808
- variant: "outline",
6809
- color: "info",
6810
- class: {
6811
- base: ["bg-body-background", "!border-info-main", "text-info-main", "hover:bg-info-soft"]
6812
- }
6813
- },
6814
- {
6815
- variant: "outline",
6816
- color: "success",
6817
- class: {
6818
- base: ["bg-body-background", "!border-success-main", "text-success-main", "hover:bg-success-soft"]
6819
- }
6820
- },
6821
- {
6822
- variant: "outline",
6823
- color: "warning",
6824
- class: {
6825
- base: ["bg-body-background", "!border-warning-main", "text-warning-main", "hover:bg-warning-soft"]
6826
- }
6827
- },
6828
- {
6829
- variant: "outline",
6830
- color: "danger",
6831
- class: {
6832
- base: ["bg-body-background", "!border-danger-main", "text-danger-main", "hover:bg-danger-soft"]
6833
- }
6834
- },
6835
- // ghost
6836
- {
6837
- variant: "ghost",
6838
- color: "primary",
6839
- class: {
6840
- base: ["text-primary-main", "border-transparent", "hover:bg-primary-soft"]
6841
- }
6842
- },
6843
- {
6844
- variant: "ghost",
6845
- color: "secondary",
6846
- class: {
6847
- base: ["text-secondary-main", "border-transparent", "hover:bg-secondary-soft"]
6848
- }
6849
- },
6850
- {
6851
- variant: "ghost",
6852
- color: "neutral",
6853
- class: {
6854
- base: ["text-neutral-main", "border-transparent", "hover:bg-neutral-soft"]
6855
- }
6856
- },
6857
- {
6858
- variant: "ghost",
6859
- color: "info",
6860
- class: {
6861
- base: ["text-info-main", "border-transparent", "hover:bg-info-soft"]
6862
- }
6863
- },
6864
- {
6865
- variant: "ghost",
6866
- color: "success",
6867
- class: {
6868
- base: ["text-success-main", "border-transparent", "hover:bg-success-soft"]
6869
- }
6870
- },
6871
- {
6872
- variant: "ghost",
6873
- color: "warning",
6874
- class: {
6875
- base: ["text-warning-main", "border-transparent", "hover:bg-warning-soft"]
6876
- }
6877
- },
6878
- {
6879
- variant: "ghost",
6880
- color: "danger",
6881
- class: {
6882
- base: ["text-danger-main", "border-transparent", "hover:bg-danger-soft"]
6883
- }
6884
- },
6885
- // soft/outline + size
6886
- {
6887
- variant: ["soft", "outline"],
6888
- size: "sm",
6889
- class: {
6890
- base: ["border-sm"]
6891
- }
6892
- },
6893
- {
6894
- variant: ["soft", "outline"],
6895
- size: "md",
6896
- class: {
6897
- base: ["border-md"]
7079
+ defaultVariants: {
7080
+ size: "md",
7081
+ variant: "solid",
7082
+ color: "primary",
7083
+ full: false,
7084
+ disabled: false,
7085
+ isLoading: false,
7086
+ isInGroup: false
7087
+ }
7088
+ });
7089
+
7090
+ // src/components/button/icon-button.tsx
7091
+ var import_react7 = require("react");
7092
+ var import_jsx_runtime9 = require("react/jsx-runtime");
7093
+ var IconButton = (0, import_react7.forwardRef)((props, ref) => {
7094
+ const [localProps, variantProps] = mapPropsVariants(props, iconButtonStyle.variantKeys);
7095
+ const { classNames, name, disableRipple, disabled, isLoading, size, isInGroup, onMouseDown, ...buttonProps } = {
7096
+ ...localProps,
7097
+ ...variantProps
7098
+ };
7099
+ const slots = (0, import_react7.useMemo)(() => iconButtonStyle({ ...variantProps }), [variantProps]);
7100
+ const { onPress, onClear, ripples } = useRipple();
7101
+ const handleRipple = (0, import_react7.useCallback)(
7102
+ (e) => {
7103
+ if (!disableRipple && !disabled) {
7104
+ onPress(e);
6898
7105
  }
6899
7106
  },
6900
- {
6901
- variant: ["soft", "outline"],
6902
- size: "lg",
6903
- class: {
6904
- base: ["border-lg"]
6905
- }
7107
+ [disableRipple, disabled, onPress]
7108
+ );
7109
+ const handleMouseDown = (0, import_react7.useCallback)(
7110
+ (e) => {
7111
+ onMouseDown == null ? void 0 : onMouseDown(e);
7112
+ handleRipple(e);
6906
7113
  },
7114
+ [onMouseDown, handleRipple]
7115
+ );
7116
+ const rippleProps = (0, import_react7.useMemo)(() => ({ ripples, onClear }), [ripples, onClear]);
7117
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
7118
+ "button",
6907
7119
  {
6908
- variant: ["soft", "outline"],
6909
- size: "xl",
6910
- class: {
6911
- base: ["border-xl"]
7120
+ ...buttonProps,
7121
+ onMouseDown: handleMouseDown,
7122
+ ref,
7123
+ disabled: disabled || isLoading,
7124
+ "data-loading": isLoading,
7125
+ className: slots.base({ class: classNames == null ? void 0 : classNames.base }),
7126
+ children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Icon_default, { name: "loading", size, className: "animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_jsx_runtime9.Fragment, { children: [
7127
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Icon_default, { name, size }),
7128
+ !disableRipple && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(ripple_default, { ...rippleProps })
7129
+ ] })
7130
+ }
7131
+ );
7132
+ });
7133
+ IconButton.displayName = "IconButton";
7134
+ var icon_button_default = IconButton;
7135
+ var iconButtonStyle = tv({
7136
+ extend: buttonBaseStyle,
7137
+ variants: {
7138
+ size: {
7139
+ sm: {
7140
+ base: ["w-[24px]", "h-[24px]", "rounded-sm"]
7141
+ },
7142
+ md: {
7143
+ base: ["w-[32px]", "h-[32px]", "rounded-md"]
7144
+ },
7145
+ lg: {
7146
+ base: ["w-[40px]", "h-[40px]", "rounded-lg"]
7147
+ },
7148
+ xl: {
7149
+ base: ["w-[50px]", "h-[50px]", "rounded-xl"]
6912
7150
  }
6913
7151
  },
6914
- // disabled + variant
6915
- {
6916
- variant: ["soft", "ghost"],
6917
- disabled: true,
6918
- class: {
6919
- base: ["!border-neutral-soft"]
7152
+ full: {
7153
+ true: {
7154
+ base: ["w-full", "h-full"]
6920
7155
  }
6921
7156
  },
6922
- {
6923
- variant: ["outline"],
6924
- disabled: true,
6925
- class: {
6926
- base: ["!border-neutral-light"]
6927
- }
7157
+ isLoading: {
7158
+ true: {}
6928
7159
  }
6929
- ],
7160
+ },
6930
7161
  defaultVariants: {
6931
7162
  size: "md",
6932
7163
  variant: "solid",
@@ -6988,10 +7219,11 @@ var TextButton = (0, import_react8.forwardRef)((originalProps, ref) => {
6988
7219
  TextButton.displayName = "TextButton";
6989
7220
  var text_button_default = TextButton;
6990
7221
  var textButtonStyle = tv({
7222
+ extend: buttonBaseStyle,
6991
7223
  slots: {
6992
- base: ["flex", "items-center", "justify-center", "whitespace-nowrap", "overflow-hidden"],
7224
+ base: ["!bg-transparent", "!border-transparent", "active:text-primary-strong", "font-bold"],
6993
7225
  content: [],
6994
- underline: ["underline", "decoration-skip-ink", "underline-offset-auto"]
7226
+ underline: ["underline", "decoration-skip-ink"]
6995
7227
  },
6996
7228
  variants: {
6997
7229
  variant: {
@@ -7010,35 +7242,30 @@ var textButtonStyle = tv({
7010
7242
  size: {
7011
7243
  sm: {
7012
7244
  base: ["text-sm"],
7013
- underline: ["decoration-[1px]"]
7245
+ underline: ["decoration-[0.6px]", "underline-offset-[2.4px]"]
7014
7246
  },
7015
7247
  md: {
7016
7248
  base: ["text-md"],
7017
- underline: ["decoration-[1.25px]"]
7249
+ underline: ["decoration-[0.7px]", "underline-offset-[2.8px]"]
7018
7250
  },
7019
7251
  lg: {
7020
7252
  base: ["text-lg"],
7021
- underline: ["decoration-[1.5px]"]
7253
+ underline: ["decoration-[0.8px]", "underline-offset-[3.2px]"]
7022
7254
  },
7023
7255
  xl: {
7024
7256
  base: ["text-xl"],
7025
- underline: ["decoration-[1.75px]"]
7257
+ underline: ["decoration-[0.9px]", "underline-offset-[3.6px]"]
7026
7258
  }
7027
7259
  },
7028
7260
  disabled: {
7029
7261
  true: {
7030
- base: ["!text-neutral-light", "pointer-events-none"]
7031
- }
7262
+ base: ["!bg-transparent", "!border-transparent", "!text-neutral-light", "pointer-events-none"]
7263
+ },
7264
+ false: {}
7032
7265
  },
7033
7266
  isInGroup: {
7034
- true: {
7035
- base: [
7036
- "[&:not(:first-child):not(:last-child)]:rounded-none",
7037
- "first:rounded-r-none",
7038
- "last:rounded-l-none",
7039
- "[&:not(:first-child)]:border-l-0"
7040
- ]
7041
- }
7267
+ true: {},
7268
+ false: {}
7042
7269
  }
7043
7270
  },
7044
7271
  compoundVariants: [
@@ -7057,7 +7284,7 @@ var textButtonStyle = tv({
7057
7284
  {
7058
7285
  color: "neutral",
7059
7286
  class: {
7060
- base: ["text-neutral-main", "hover:text-neutral-dark", "active:text-neutral-strong"]
7287
+ base: ["text-body-foreground", "hover:text-neutral-dark", "active:text-neutral-strong"]
7061
7288
  }
7062
7289
  },
7063
7290
  {
@@ -7335,10 +7562,10 @@ var inputStyle = tv(
7335
7562
  "placeholder:text-neutral-main",
7336
7563
  "outline-none",
7337
7564
  "focus:ring-0",
7338
- "group-has-[:hover:not(:read-only):not(:focus)]/input:text-neutral-dark",
7339
- "group-has-[:hover:not(:read-only):not(:focus)]/input:placeholder:text-neutral-dark",
7340
- "group-has-[:focus:not(:read-only)]/input:text-neutral-dark",
7341
- "group-has-[:focus:not(:read-only)]/input:placeholder:text-neutral-dark",
7565
+ "group-hover/input:text-neutral-dark",
7566
+ "group-hover/input:placeholder:text-neutral-dark",
7567
+ "focus:text-neutral-dark",
7568
+ "focus:placeholder:text-neutral-dark",
7342
7569
  "read-only:!text-body-foreground",
7343
7570
  "read-only:placeholder:!text-body-foreground"
7344
7571
  ],
@@ -7347,10 +7574,10 @@ var inputStyle = tv(
7347
7574
  "items-center",
7348
7575
  "select-none",
7349
7576
  "text-neutral-main",
7350
- "group-has-[:hover:not(:read-only):not(:focus)]/input:text-neutral-dark",
7351
- "read-only:!text-body-foreground"
7577
+ "transition-colors",
7578
+ "group-hover/input:text-neutral-dark"
7352
7579
  ],
7353
- helperMessage: ["text-neutral-main", "group-has-[:hover:not(:read-only):not(:focus)]/input:text-neutral-dark"],
7580
+ helperMessage: ["text-neutral-main", "group-hover/input:text-neutral-dark"],
7354
7581
  errorMessage: ["text-danger-main"],
7355
7582
  readonlyWrapper: [
7356
7583
  "pointer-events-none",
@@ -7389,46 +7616,46 @@ var inputStyle = tv(
7389
7616
  },
7390
7617
  color: {
7391
7618
  primary: {
7392
- content: ["group-has-[:focus:not(:read-only)]/input:text-primary-main", "read-only:!text-primary-main"],
7393
- helperMessage: ["group-has-[:focus:not(:read-only)]/input:text-primary-main"],
7394
- readonly: ["text-primary-main"]
7619
+ content: ["group-focus-within/input:!text-primary-main"],
7620
+ helperMessage: ["group-focus-within/input:!text-primary-main"],
7621
+ readonly: ["!text-primary-main"]
7395
7622
  },
7396
7623
  secondary: {
7397
- content: ["group-has-[:focus:not(:read-only)]/input:text-secondary-main", "read-only:!text-secondary-main"],
7398
- helperMessage: ["group-has-[:focus:not(:read-only)]/input:text-secondary-main"],
7399
- readonly: ["text-secondary-main"]
7624
+ content: ["group-focus-within/input:!text-secondary-main"],
7625
+ helperMessage: ["group-focus-within/input:!text-secondary-main"],
7626
+ readonly: ["!text-secondary-main"]
7400
7627
  }
7401
7628
  },
7402
7629
  size: {
7403
7630
  sm: {
7404
- base: ["text-sm", "gap-[4px]"],
7631
+ base: ["text-sm", "gap-sm"],
7405
7632
  label: ["text-sm"],
7406
- innerWrapper: ["gap-[4px]"],
7407
- inputWrapper: ["w-[240px]", "h-[24px]", "rounded-sm", "px-[4px]", "gap-[4px]"],
7633
+ innerWrapper: ["gap-sm"],
7634
+ inputWrapper: ["w-[240px]", "h-[24px]", "rounded-sm", "px-xs", "gap-sm"],
7408
7635
  helperMessage: ["text-sm"],
7409
7636
  errorMessage: ["text-sm"]
7410
7637
  },
7411
7638
  md: {
7412
- base: ["text-md", "gap-[6px]"],
7639
+ base: ["text-md", "gap-md"],
7413
7640
  label: ["text-md"],
7414
- innerWrapper: ["gap-[6px]"],
7415
- inputWrapper: ["w-[240px]", "h-[32px]", "rounded-md", "px-[6px]", "gap-[6px]"],
7641
+ innerWrapper: ["gap-md"],
7642
+ inputWrapper: ["w-[240px]", "h-[32px]", "rounded-md", "px-sm", "gap-md"],
7416
7643
  helperMessage: ["text-sm"],
7417
7644
  errorMessage: ["text-sm"]
7418
7645
  },
7419
7646
  lg: {
7420
- base: ["text-lg", "gap-[8px]"],
7647
+ base: ["text-lg", "gap-lg"],
7421
7648
  label: ["text-lg"],
7422
- innerWrapper: ["gap-[8px]"],
7423
- inputWrapper: ["w-[240px]", "h-[40px]", "rounded-lg", "px-[8px]", "gap-[8px]"],
7649
+ innerWrapper: ["gap-lg"],
7650
+ inputWrapper: ["w-[240px]", "h-[40px]", "rounded-lg", "px-md", "gap-lg"],
7424
7651
  helperMessage: ["text-md"],
7425
7652
  errorMessage: ["text-md"]
7426
7653
  },
7427
7654
  xl: {
7428
- base: ["text-xl", "gap-[10px]"],
7655
+ base: ["text-xl", "gap-xl"],
7429
7656
  label: ["text-xl"],
7430
- innerWrapper: ["gap-[10px]"],
7431
- inputWrapper: ["w-[240px]", "h-[50px]", "rounded-lg", "px-[10px]", "gap-[10px]"],
7657
+ innerWrapper: ["gap-xl"],
7658
+ inputWrapper: ["w-[240px]", "h-[50px]", "rounded-lg", "px-lg", "gap-xl"],
7432
7659
  helperMessage: ["text-md"],
7433
7660
  errorMessage: ["text-md"]
7434
7661
  }
@@ -7791,7 +8018,7 @@ var tabs = tv({
7791
8018
 
7792
8019
  // src/components/textarea/textarea.tsx
7793
8020
  var import_react13 = require("react");
7794
- var import_tailwind_variants13 = require("tailwind-variants");
8021
+ var import_tailwind_variants14 = require("tailwind-variants");
7795
8022
  var import_jsx_runtime15 = require("react/jsx-runtime");
7796
8023
  var Textarea = (0, import_react13.forwardRef)((originalProps, ref) => {
7797
8024
  var _a, _b;
@@ -7889,7 +8116,7 @@ var Textarea = (0, import_react13.forwardRef)((originalProps, ref) => {
7889
8116
  });
7890
8117
  Textarea.displayName = "Textarea";
7891
8118
  var textarea_default = Textarea;
7892
- var textareaStyle = (0, import_tailwind_variants13.tv)({
8119
+ var textareaStyle = (0, import_tailwind_variants14.tv)({
7893
8120
  slots: {
7894
8121
  base: ["group/textarea", "flex", "select-none"],
7895
8122
  vertical: ["flex-col"],
@@ -7904,17 +8131,17 @@ var textareaStyle = (0, import_tailwind_variants13.tv)({
7904
8131
  "outline-none",
7905
8132
  "resize-none",
7906
8133
  "focus:ring-0",
7907
- "group-has-[:hover]/textarea:!text-neutral-dark",
7908
- "group-has-[:hover]/textarea:placeholder:!text-neutral-dark",
7909
- "group-has-[:focus]/textarea:!text-neutral-dark",
7910
- "group-has-[:focus]/textarea:placeholder:!text-neutral-dark",
8134
+ "group-hover/textarea:!text-neutral-dark",
8135
+ "group-hover/textarea:placeholder:!text-neutral-dark",
8136
+ "focus:!text-neutral-dark",
8137
+ "focus:placeholder:!text-neutral-dark",
7911
8138
  "group-has-[p.error]/textarea:bg-danger-soft",
7912
8139
  "group-has-[p.error]/textarea:!text-danger-main",
7913
8140
  "group-has-[p.error]/textarea:placeholder:!text-danger-main"
7914
8141
  ],
7915
8142
  helperMessage: [
7916
8143
  "text-neutral-main",
7917
- "group-has-[:hover]/textarea:text-neutral-dark",
8144
+ "group-hover/textarea:text-neutral-dark",
7918
8145
  "group-has-[p.error]/textarea:text-danger-main",
7919
8146
  "group-has-[p.error]/textarea:hover:text-danger-main",
7920
8147
  "group-has-[p.error]/textarea:focus:text-danger-main"
@@ -7937,8 +8164,8 @@ var textareaStyle = (0, import_tailwind_variants13.tv)({
7937
8164
  outline: {
7938
8165
  textarea: [
7939
8166
  "border-neutral-light",
7940
- "group-has-[:hover]/textarea:bg-trans-soft",
7941
- "group-has-[:focus]/textarea:bg-body-background",
8167
+ "group-hover/textarea:bg-trans-soft",
8168
+ "focus:bg-body-background",
7942
8169
  "group-has-[p.error]/textarea:border-danger-main"
7943
8170
  ],
7944
8171
  readonlyWrapper: ["[&>textarea]:!bg-trans-soft"]
@@ -7946,50 +8173,44 @@ var textareaStyle = (0, import_tailwind_variants13.tv)({
7946
8173
  },
7947
8174
  color: {
7948
8175
  primary: {
7949
- helperMessage: [
7950
- "group-has-[:focus]/textarea:text-primary-main",
7951
- "group-has-[:focus]/textarea:hover:text-primary-main"
7952
- ],
8176
+ helperMessage: ["group-focus-within/textarea:!text-primary-main"],
7953
8177
  readonly: ["!text-primary-main"]
7954
8178
  },
7955
8179
  secondary: {
7956
- helperMessage: [
7957
- "group-has-[:focus]/textarea:text-secondary-main",
7958
- "group-has-[:focus]/textarea:hover:text-secondary-main"
7959
- ],
8180
+ helperMessage: ["group-focus-within/textarea:!text-secondary-main"],
7960
8181
  readonly: ["!text-secondary-main"]
7961
8182
  }
7962
8183
  },
7963
8184
  size: {
7964
8185
  sm: {
7965
- base: ["text-sm", "gap-[4px]"],
8186
+ base: ["text-sm", "gap-sm"],
7966
8187
  label: ["text-sm"],
7967
- wrapper: ["gap-[4px]"],
7968
- textarea: ["w-[240px]", "rounded-sm", "p-[8px]"],
8188
+ wrapper: ["gap-sm"],
8189
+ textarea: ["w-[240px]", "rounded-sm", "p-md"],
7969
8190
  helperMessage: ["text-sm"],
7970
8191
  errorMessage: ["text-sm"]
7971
8192
  },
7972
8193
  md: {
7973
- base: ["text-md", "gap-[6px]"],
8194
+ base: ["text-md", "gap-md"],
7974
8195
  label: ["text-md"],
7975
- wrapper: ["gap-[6px]"],
7976
- textarea: ["w-[240px]", "rounded-md", "p-[8px]"],
8196
+ wrapper: ["gap-md"],
8197
+ textarea: ["w-[240px]", "rounded-md", "p-md"],
7977
8198
  helperMessage: ["text-sm"],
7978
8199
  errorMessage: ["text-sm"]
7979
8200
  },
7980
8201
  lg: {
7981
- base: ["text-lg", "gap-[8px]"],
8202
+ base: ["text-lg", "gap-lg"],
7982
8203
  label: ["text-lg"],
7983
- wrapper: ["gap-[8px]"],
7984
- textarea: ["w-[240px]", "rounded-lg", "p-[10px]"],
8204
+ wrapper: ["gap-lg"],
8205
+ textarea: ["w-[240px]", "rounded-lg", "p-lg"],
7985
8206
  helperMessage: ["text-md"],
7986
8207
  errorMessage: ["text-md"]
7987
8208
  },
7988
8209
  xl: {
7989
- base: ["text-xl", "gap-[10px]"],
8210
+ base: ["text-xl", "gap-xl"],
7990
8211
  label: ["text-xl"],
7991
- wrapper: ["gap-[10px]"],
7992
- textarea: ["w-[240px]", "rounded-lg", "p-[10px]"],
8212
+ wrapper: ["gap-xl"],
8213
+ textarea: ["w-[240px]", "rounded-lg", "p-lg"],
7993
8214
  helperMessage: ["text-md"],
7994
8215
  errorMessage: ["text-md"]
7995
8216
  }
@@ -8005,18 +8226,17 @@ var textareaStyle = (0, import_tailwind_variants13.tv)({
8005
8226
  textarea: ["w-full"]
8006
8227
  }
8007
8228
  },
8229
+ readonly: {
8230
+ true: {
8231
+ readonlyWrapper: ["pointer-events-none"],
8232
+ textarea: ["!text-body-foreground", "placeholder:!text-body-foreground"],
8233
+ helperMessage: ["!text-body-foreground"]
8234
+ }
8235
+ },
8008
8236
  disabled: {
8009
8237
  true: {
8010
- textarea: [
8011
- "bg-neutral-soft",
8012
- "pointer-events-none",
8013
- "text-neutral-light",
8014
- "placeholder:!text-neutral-light",
8015
- "group-has-[p.error]/textarea:text-danger-light",
8016
- "group-has-[p.error]/textarea:border-danger-light",
8017
- "group-has-[p.error]/textarea:placeholder:!text-danger-light"
8018
- ],
8019
- helperMessage: ["!text-neutral-light", "group-has-[p.error]/textarea:!text-danger-light"],
8238
+ textarea: ["!bg-neutral-soft", "pointer-events-none", "!text-neutral-light", "placeholder:!text-neutral-light"],
8239
+ helperMessage: ["!text-neutral-light"],
8020
8240
  errorMessage: ["!text-danger-light"]
8021
8241
  }
8022
8242
  }
@@ -8050,11 +8270,47 @@ var textareaStyle = (0, import_tailwind_variants13.tv)({
8050
8270
  textarea: ["border-xl"]
8051
8271
  }
8052
8272
  },
8273
+ {
8274
+ readonly: true,
8275
+ color: "primary",
8276
+ class: {
8277
+ textarea: ["!text-primary-main", "placeholder:!text-primary-main"]
8278
+ }
8279
+ },
8280
+ {
8281
+ readonly: true,
8282
+ color: "secondary",
8283
+ class: {
8284
+ textarea: ["!text-secondary-main", "placeholder:!text-secondary-main"]
8285
+ }
8286
+ },
8287
+ {
8288
+ disabled: true,
8289
+ class: {
8290
+ textarea: [
8291
+ "group-has-[p.error]/textarea:!text-danger-light",
8292
+ "group-has-[p.error]/textarea:placeholder:!text-danger-light"
8293
+ ],
8294
+ helperMessage: ["group-has-[p.error]/textarea:!text-danger-light"],
8295
+ errorMessage: ["!text-danger-light"]
8296
+ }
8297
+ },
8053
8298
  {
8054
8299
  disabled: true,
8055
8300
  variant: ["outline"],
8056
8301
  class: {
8057
- textarea: ["!bg-body-background", "group-has-[p.error]/input:border-danger-light"]
8302
+ textarea: ["!bg-body-background", "group-has-[p.error]/textarea:!border-danger-light"]
8303
+ }
8304
+ },
8305
+ {
8306
+ disabled: false,
8307
+ class: {
8308
+ textarea: [
8309
+ "group-has-[p.error]/textarea:!text-danger-main",
8310
+ "group-has-[p.error]/textarea:placeholder:!text-danger-main"
8311
+ ],
8312
+ helperMessage: ["group-has-[p.error]/textarea:!text-danger-main"],
8313
+ errorMessage: ["!text-danger-main"]
8058
8314
  }
8059
8315
  }
8060
8316
  ],
@@ -8071,7 +8327,7 @@ var textareaStyle = (0, import_tailwind_variants13.tv)({
8071
8327
 
8072
8328
  // src/components/table/table.tsx
8073
8329
  var import_react19 = require("react");
8074
- var import_tailwind_variants17 = require("tailwind-variants");
8330
+ var import_tailwind_variants18 = require("tailwind-variants");
8075
8331
 
8076
8332
  // src/components/table/table-head.tsx
8077
8333
  var import_react15 = require("react");
@@ -8128,7 +8384,7 @@ var CheckBoxIcon = ({ size, isSelected, className }) => {
8128
8384
  "path",
8129
8385
  {
8130
8386
  d: "M2.16667 6.90123L5.63334 10.1111L10.8333 2.88889",
8131
- stroke: "white",
8387
+ stroke: "currentColor",
8132
8388
  strokeWidth,
8133
8389
  strokeLinecap: "round",
8134
8390
  strokeLinejoin: "round",
@@ -8161,7 +8417,7 @@ var checkboxStyle = tv({
8161
8417
  "group-has-[:checked]:after:opacity-100",
8162
8418
  "before:transition duration-200"
8163
8419
  ],
8164
- icon: ["z-10", "opacity-0", "group-has-[:checked]:opacity-100", "text-neutral-light"],
8420
+ icon: ["z-10", "opacity-0", "group-has-[:checked]:opacity-100", "text-common-white"],
8165
8421
  labelReverse: ["flex-row-reverse"],
8166
8422
  label: ["relative", "text-body-foreground", "select-none"]
8167
8423
  },
@@ -8194,54 +8450,26 @@ var checkboxStyle = tv({
8194
8450
  },
8195
8451
  size: {
8196
8452
  sm: {
8197
- base: ["gap-[8px]"],
8198
- wrapper: [
8199
- "w-[12px]",
8200
- "h-[12px]",
8201
- "rounded-[2px]",
8202
- "before:border-sm",
8203
- "before:rounded-[2px]",
8204
- "after:rounded-[2px]"
8205
- ],
8453
+ base: ["gap-lg"],
8454
+ wrapper: ["w-[12px]", "h-[12px]", "rounded-2", "before:border-sm", "before:rounded-2", "after:rounded-2"],
8206
8455
  label: ["text-sm"],
8207
8456
  icon: ["w-[10px]", "h-[10px]"]
8208
8457
  },
8209
8458
  md: {
8210
- base: ["gap-[8px]"],
8211
- wrapper: [
8212
- "w-[15px]",
8213
- "h-[15px]",
8214
- "rounded-[2px]",
8215
- "before:border-md",
8216
- "before:rounded-[2px]",
8217
- "after:rounded-[2px]"
8218
- ],
8459
+ base: ["gap-lg"],
8460
+ wrapper: ["w-[15px]", "h-[15px]", "rounded-2", "before:border-md", "before:rounded-2", "after:rounded-2"],
8219
8461
  label: ["text-md"],
8220
8462
  icon: ["w-[13px]", "h-[13px]"]
8221
8463
  },
8222
8464
  lg: {
8223
- base: ["gap-[10px]"],
8224
- wrapper: [
8225
- "w-[18px]",
8226
- "h-[18px]",
8227
- "rounded-[4px]",
8228
- "before:border-lg",
8229
- "before:rounded-[4px]",
8230
- "after:rounded-[4px]"
8231
- ],
8465
+ base: ["gap-xl"],
8466
+ wrapper: ["w-[18px]", "h-[18px]", "rounded-sm", "before:border-lg", "before:rounded-sm", "after:rounded-sm"],
8232
8467
  label: ["text-lg"],
8233
8468
  icon: ["w-[16px]", "h-[16px]"]
8234
8469
  },
8235
8470
  xl: {
8236
- base: ["gap-[10px]"],
8237
- wrapper: [
8238
- "w-[21px]",
8239
- "h-[21px]",
8240
- "rounded-[4px]",
8241
- "before:border-xl",
8242
- "before:rounded-[2px]",
8243
- "after:rounded-[2px]"
8244
- ],
8471
+ base: ["gap-xl"],
8472
+ wrapper: ["w-[21px]", "h-[21px]", "rounded-sm", "before:border-xl", "before:rounded-sm", "after:rounded-sm"],
8245
8473
  label: ["text-xl"],
8246
8474
  icon: ["w-[19px]", "h-[19px]"]
8247
8475
  }
@@ -8300,12 +8528,17 @@ function TableHeaderCell({
8300
8528
  setShowTitle(el.scrollWidth > el.clientWidth);
8301
8529
  }
8302
8530
  }, [content, isCheckbox]);
8303
- const titleText = !isCheckbox && showTitle ? typeof content === "string" || typeof content === "number" ? String(content) : "" : void 0;
8531
+ const isTextContent = ["string", "number"].includes(typeof content) || content === null || content === void 0;
8532
+ const titleText = !isCheckbox && showTitle && isTextContent ? String(content) : void 0;
8304
8533
  return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
8305
8534
  "th",
8306
8535
  {
8307
8536
  ref: thRef,
8308
- className: clsx(slots.th({ class: classNames == null ? void 0 : classNames.th }), column == null ? void 0 : column.className, !isCheckbox && "truncate"),
8537
+ className: clsx(
8538
+ slots.th({ class: classNames == null ? void 0 : classNames.th }),
8539
+ column == null ? void 0 : column.className,
8540
+ !isCheckbox && isTextContent && "truncate"
8541
+ ),
8309
8542
  style: isCheckbox ? {
8310
8543
  width: "40px",
8311
8544
  minWidth: "40px",
@@ -8314,11 +8547,19 @@ function TableHeaderCell({
8314
8547
  flexGrow: 0,
8315
8548
  boxSizing: "border-box"
8316
8549
  } : column ? {
8317
- ...getCellStyle(column),
8318
- textAlign: "center"
8550
+ ...getCellStyle(column)
8319
8551
  } : void 0,
8320
8552
  title: titleText,
8321
- children: content
8553
+ children: isTextContent ? content : /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
8554
+ "div",
8555
+ {
8556
+ className: clsx(
8557
+ "flex w-full items-center",
8558
+ isCheckbox ? "justify-center" : (column == null ? void 0 : column.align) === "right" ? "justify-end" : (column == null ? void 0 : column.align) === "left" ? "justify-start" : "justify-center"
8559
+ ),
8560
+ children: content
8561
+ }
8562
+ )
8322
8563
  }
8323
8564
  );
8324
8565
  }
@@ -8345,7 +8586,7 @@ var TableHead = ({
8345
8586
  rowCheckbox && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
8346
8587
  TableHeaderCell,
8347
8588
  {
8348
- content: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { "data-checkbox": true, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
8589
+ content: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { "data-checkbox": true, className: "flex h-full w-full items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
8349
8590
  checkbox_default,
8350
8591
  {
8351
8592
  size,
@@ -8401,7 +8642,16 @@ function TableCell({
8401
8642
  textOverflow: isTextContent ? "ellipsis" : void 0
8402
8643
  },
8403
8644
  title: showTitle && isTextContent ? String(content != null ? content : "") : void 0,
8404
- children: content
8645
+ children: isTextContent ? content : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
8646
+ "div",
8647
+ {
8648
+ className: clsx(
8649
+ "flex w-full items-center",
8650
+ column.align === "right" ? "justify-end" : column.align === "left" ? "justify-start" : "justify-center"
8651
+ ),
8652
+ children: content
8653
+ }
8654
+ )
8405
8655
  },
8406
8656
  `${row.id}-${column.field}-${colIdx}-${rowIndex}`
8407
8657
  );
@@ -8426,7 +8676,7 @@ var TableBody = ({
8426
8676
  {
8427
8677
  className: clsx(slots.td({ class: classNames == null ? void 0 : classNames.td }), "text-center"),
8428
8678
  style: { width: "40px", minWidth: "40px", textAlign: "center" },
8429
- children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { "data-checkbox": true, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(checkbox_default, { size, checked: checkedRows.has(rowId), onChange: (e) => onCheckRow(rowId, e.target.checked) }) })
8679
+ children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { "data-checkbox": true, className: "flex h-full w-full items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(checkbox_default, { size, checked: checkedRows.has(rowId), onChange: (e) => onCheckRow(rowId, e.target.checked) }) })
8430
8680
  },
8431
8681
  `checkbox-${rowId}-${rowIndex}`
8432
8682
  );
@@ -8534,32 +8784,34 @@ var Pagination = (0, import_react18.forwardRef)((originalProps, ref) => {
8534
8784
  }
8535
8785
  }
8536
8786
  };
8537
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: slots.base({ class: classNames == null ? void 0 : classNames.base }), ref, children: [
8787
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { ref, className: slots.base({ class: classNames == null ? void 0 : classNames.base }), children: [
8538
8788
  /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: slots.wrapper({ class: classNames == null ? void 0 : classNames.wrapper }), children: [
8539
- showFirstLastButtons && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
8540
- "div",
8541
- {
8542
- "aria-label": "firstPage",
8543
- "data-disabled": isFirstPageDisabled,
8544
- className: slots.icon({
8545
- class: clsx(classNames == null ? void 0 : classNames.icon, isFirstPageDisabled && "!text-neutral-light !cursor-default")
8546
- }),
8547
- onClick: !isFirstPageDisabled ? handleClickMovePage(1) : void 0,
8548
- children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Icon_default, { name: "left-double-chevron", size })
8549
- }
8550
- ),
8551
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
8552
- "div",
8553
- {
8554
- "aria-label": "prevPage",
8555
- "data-disabled": isPrevPageDisabled,
8556
- className: slots.icon({
8557
- class: clsx(classNames == null ? void 0 : classNames.icon, isPrevPageDisabled && "!text-neutral-light !cursor-default")
8558
- }),
8559
- onClick: !isPrevPageDisabled ? handleClickMovePage(currentPage - 1) : void 0,
8560
- children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Icon_default, { name: "left-chevron", size })
8561
- }
8562
- ),
8789
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "flex", children: [
8790
+ showFirstLastButtons && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
8791
+ "div",
8792
+ {
8793
+ "aria-label": "firstPage",
8794
+ "data-disabled": isFirstPageDisabled,
8795
+ className: slots.icon({
8796
+ class: clsx(classNames == null ? void 0 : classNames.icon, isFirstPageDisabled && "!text-neutral-light !cursor-default")
8797
+ }),
8798
+ onClick: !isFirstPageDisabled ? handleClickMovePage(1) : void 0,
8799
+ children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Icon_default, { name: "left-double", size })
8800
+ }
8801
+ ),
8802
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
8803
+ "div",
8804
+ {
8805
+ "aria-label": "prevPage",
8806
+ "data-disabled": isPrevPageDisabled,
8807
+ className: slots.icon({
8808
+ class: clsx(classNames == null ? void 0 : classNames.icon, isPrevPageDisabled && "!text-neutral-light !cursor-default")
8809
+ }),
8810
+ onClick: !isPrevPageDisabled ? handleClickMovePage(currentPage - 1) : void 0,
8811
+ children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Icon_default, { name: "left", size })
8812
+ }
8813
+ )
8814
+ ] }),
8563
8815
  showPageNumber && pageList.map((page, index) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
8564
8816
  "div",
8565
8817
  {
@@ -8570,30 +8822,32 @@ var Pagination = (0, import_react18.forwardRef)((originalProps, ref) => {
8570
8822
  },
8571
8823
  index
8572
8824
  )),
8573
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
8574
- "div",
8575
- {
8576
- "aria-label": "nextPage",
8577
- "data-disabled": isNextPageDisabled,
8578
- className: slots.icon({
8579
- class: clsx(classNames == null ? void 0 : classNames.icon, isNextPageDisabled && "!text-neutral-light !cursor-default")
8580
- }),
8581
- onClick: !isNextPageDisabled ? handleClickMovePage(currentPage + 1) : void 0,
8582
- children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Icon_default, { name: "right-chevron", size })
8583
- }
8584
- ),
8585
- showFirstLastButtons && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
8586
- "div",
8587
- {
8588
- "aria-label": "lastPage",
8589
- "data-disabled": isLastPageDisabled,
8590
- className: slots.icon({
8591
- class: clsx(classNames == null ? void 0 : classNames.icon, isLastPageDisabled && "!text-neutral-light !cursor-default")
8592
- }),
8593
- onClick: !isLastPageDisabled ? handleClickMovePage(totalPage) : void 0,
8594
- children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Icon_default, { name: "right-double-chevron", size })
8595
- }
8596
- )
8825
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "flex", children: [
8826
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
8827
+ "div",
8828
+ {
8829
+ "aria-label": "nextPage",
8830
+ "data-disabled": isNextPageDisabled,
8831
+ className: slots.icon({
8832
+ class: clsx(classNames == null ? void 0 : classNames.icon, isNextPageDisabled && "!text-neutral-light !cursor-default")
8833
+ }),
8834
+ onClick: !isNextPageDisabled ? handleClickMovePage(currentPage + 1) : void 0,
8835
+ children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Icon_default, { name: "right", size })
8836
+ }
8837
+ ),
8838
+ showFirstLastButtons && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
8839
+ "div",
8840
+ {
8841
+ "aria-label": "lastPage",
8842
+ "data-disabled": isLastPageDisabled,
8843
+ className: slots.icon({
8844
+ class: clsx(classNames == null ? void 0 : classNames.icon, isLastPageDisabled && "!text-neutral-light !cursor-default")
8845
+ }),
8846
+ onClick: !isLastPageDisabled ? handleClickMovePage(totalPage) : void 0,
8847
+ children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Icon_default, { name: "right-double", size })
8848
+ }
8849
+ )
8850
+ ] })
8597
8851
  ] }),
8598
8852
  showPageLabel && /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("span", { className: slots.label({ class: classNames == null ? void 0 : classNames.label }), children: [
8599
8853
  /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
@@ -8620,8 +8874,8 @@ var pagination_default = Pagination;
8620
8874
  var paginationStyle = tv(
8621
8875
  {
8622
8876
  slots: {
8623
- base: ["flex", "items-center", "select-none", "gap-[20px]"],
8624
- wrapper: ["flex", "items-center", "overflow-hidden", "gap-[5px]"],
8877
+ base: ["flex", "items-center", "select-none", "gap-20"],
8878
+ wrapper: ["flex", "items-center", "overflow-hidden", "gap-5"],
8625
8879
  icon: [
8626
8880
  "flex",
8627
8881
  "items-center",
@@ -8643,15 +8897,24 @@ var paginationStyle = tv(
8643
8897
  "text-neutral-main",
8644
8898
  "data-[selected=true]:font-bold"
8645
8899
  ],
8646
- label: ["whitespace-nowrap", "text-neutral-main", "flex", "items-center", "gap-[5px]", "text-sm"]
8900
+ label: ["whitespace-nowrap", "text-neutral-main", "flex", "items-center", "gap-5", "text-sm"]
8647
8901
  },
8648
8902
  variants: {
8649
8903
  variant: {
8650
8904
  solid: {
8651
- button: ["rounded-[5px]"]
8905
+ button: ["rounded-sm"]
8652
8906
  },
8653
8907
  underline: {
8654
- button: ["rounded-0", "bg-body-background"]
8908
+ button: [
8909
+ "rounded-0",
8910
+ "relative",
8911
+ "after:content-['']",
8912
+ "after:absolute",
8913
+ "after:inset-x-0",
8914
+ "after:bottom-0",
8915
+ "after:border-solid",
8916
+ "after:border-transparent"
8917
+ ]
8655
8918
  }
8656
8919
  },
8657
8920
  size: {
@@ -8676,165 +8939,109 @@ var paginationStyle = tv(
8676
8939
  disabled: {
8677
8940
  true: {
8678
8941
  icon: ["!text-neutral-light", "!cursor-default"],
8679
- button: ["!text-neutral-light", "!cursor-default"]
8680
- }
8681
- }
8682
- },
8683
- compoundVariants: [
8684
- {
8685
- variant: "solid",
8686
- color: "primary",
8687
- class: {
8688
- button: [
8689
- "hover:text-primary-main",
8690
- "data-[selected=true]:text-primary-main",
8691
- "data-[selected=true]:bg-primary-soft"
8692
- ],
8693
- icon: ["hover:text-primary-main", "data-[disabled=true]:hover:text-neutral-light"]
8694
- }
8695
- },
8696
- {
8697
- variant: "solid",
8698
- color: "secondary",
8699
- class: {
8700
- button: [
8701
- "hover:text-secondary-main",
8702
- "data-[selected=true]:text-secondary-main",
8703
- "data-[selected=true]:bg-secondary-soft"
8704
- ],
8705
- icon: ["hover:text-secondary-main", "data-[disabled=true]:hover:text-neutral-light"]
8706
- }
8707
- },
8708
- {
8709
- variant: "solid",
8710
- color: "neutral",
8711
- class: {
8712
- button: [
8713
- "hover:text-neutral-dark",
8714
- "data-[selected=true]:text-neutral-dark",
8715
- "data-[selected=true]:bg-neutral-soft"
8716
- ],
8717
- icon: ["hover:text-neutral-dark", "data-[disabled=true]:hover:text-neutral-light"]
8718
- }
8719
- },
8720
- {
8721
- variant: "underline",
8722
- color: "primary",
8723
- class: {
8724
- button: ["hover:text-primary-main", "data-[selected=true]:text-primary-main"],
8725
- icon: ["hover:text-primary-main", "data-[disabled=true]:hover:text-neutral-light"]
8726
- }
8727
- },
8728
- {
8729
- variant: "underline",
8730
- color: "primary",
8731
- size: "sm",
8732
- class: {
8733
- button: ["data-[selected=true]:shadow-[inset_0_-1px_0_0_var(--dn-primary-main)]"]
8734
- }
8735
- },
8736
- {
8737
- variant: "underline",
8738
- color: "primary",
8739
- size: "md",
8740
- class: {
8741
- button: ["data-[selected=true]:shadow-[inset_0_-1.25px_0_0_var(--dn-primary-main)]"]
8942
+ button: ["!text-neutral-light", "!cursor-default", "data-[selected=true]:after:border-neutral-light"]
8742
8943
  }
8743
- },
8744
- {
8745
- variant: "underline",
8746
- color: "primary",
8747
- size: "lg",
8748
- class: {
8749
- button: ["data-[selected=true]:shadow-[inset_0_-1.5px_0_0_var(--dn-primary-main)]"]
8750
- }
8751
- },
8944
+ }
8945
+ },
8946
+ compoundVariants: [
8752
8947
  {
8753
- variant: "underline",
8948
+ variant: "solid",
8754
8949
  color: "primary",
8755
- size: "xl",
8756
8950
  class: {
8757
- button: ["data-[selected=true]:shadow-[inset_0_-1.75px_0_0_var(--dn-primary-main)]"]
8951
+ button: [
8952
+ "hover:text-primary-main",
8953
+ "data-[selected=true]:text-primary-main",
8954
+ "data-[selected=true]:bg-primary-soft"
8955
+ ],
8956
+ icon: ["hover:text-primary-main", "data-[disabled=true]:hover:text-neutral-light"]
8758
8957
  }
8759
8958
  },
8760
8959
  {
8761
- variant: "underline",
8960
+ variant: "solid",
8762
8961
  color: "secondary",
8763
8962
  class: {
8764
- button: ["hover:text-secondary-main", "data-[selected=true]:text-secondary-main"],
8963
+ button: [
8964
+ "hover:text-secondary-main",
8965
+ "data-[selected=true]:text-secondary-main",
8966
+ "data-[selected=true]:bg-secondary-soft"
8967
+ ],
8765
8968
  icon: ["hover:text-secondary-main", "data-[disabled=true]:hover:text-neutral-light"]
8766
8969
  }
8767
8970
  },
8768
8971
  {
8769
- variant: "underline",
8770
- color: "secondary",
8771
- size: "sm",
8772
- class: {
8773
- button: ["data-[selected=true]:shadow-[inset_0_-1px_0_0_var(--dn-secondary-main)]"]
8774
- }
8775
- },
8776
- {
8777
- variant: "underline",
8778
- color: "secondary",
8779
- size: "md",
8972
+ variant: "solid",
8973
+ color: "neutral",
8780
8974
  class: {
8781
- button: ["data-[selected=true]:shadow-[inset_0_-1.25px_0_0_var(--dn-secondary-main)]"]
8975
+ button: [
8976
+ "hover:text-neutral-dark",
8977
+ "data-[selected=true]:text-neutral-dark",
8978
+ "data-[selected=true]:bg-neutral-soft"
8979
+ ],
8980
+ icon: ["hover:text-neutral-dark", "data-[disabled=true]:hover:text-neutral-light"]
8782
8981
  }
8783
8982
  },
8784
8983
  {
8785
8984
  variant: "underline",
8786
- color: "secondary",
8787
- size: "lg",
8985
+ color: "primary",
8788
8986
  class: {
8789
- button: ["data-[selected=true]:shadow-[inset_0_-1.5px_0_0_var(--dn-secondary-main)]"]
8987
+ button: [
8988
+ "hover:text-primary-main",
8989
+ "data-[selected=true]:text-primary-main",
8990
+ "data-[selected=true]:after:border-primary-main"
8991
+ ],
8992
+ icon: ["hover:text-primary-main", "data-[disabled=true]:hover:text-neutral-light"]
8790
8993
  }
8791
8994
  },
8792
8995
  {
8793
8996
  variant: "underline",
8794
8997
  color: "secondary",
8795
- size: "xl",
8796
8998
  class: {
8797
- button: ["data-[selected=true]:shadow-[inset_0_-1.75px_0_0_var(--dn-secondary-main)]"]
8999
+ button: [
9000
+ "hover:text-secondary-main",
9001
+ "data-[selected=true]:text-secondary-main",
9002
+ "data-[selected=true]:after:border-secondary-main"
9003
+ ],
9004
+ icon: ["hover:text-secondary-main", "data-[disabled=true]:hover:text-neutral-light"]
8798
9005
  }
8799
9006
  },
8800
9007
  {
8801
9008
  variant: "underline",
8802
9009
  color: "neutral",
8803
9010
  class: {
8804
- button: ["hover:text-neutral-dark", "data-[selected=true]:text-neutral-dark"],
9011
+ button: [
9012
+ "hover:text-neutral-dark",
9013
+ "data-[selected=true]:text-neutral-dark",
9014
+ "data-[selected=true]:after:border-neutral-main"
9015
+ ],
8805
9016
  icon: ["hover:text-neutral-dark", "data-[disabled=true]:hover:text-neutral-light"]
8806
9017
  }
8807
9018
  },
8808
9019
  {
8809
9020
  variant: "underline",
8810
- color: "neutral",
8811
9021
  size: "sm",
8812
9022
  class: {
8813
- button: ["data-[selected=true]:shadow-[inset_0_-1px_0_0_var(--dn-neutral-main)]"]
9023
+ button: ["after:border-b-sm"]
8814
9024
  }
8815
9025
  },
8816
9026
  {
8817
9027
  variant: "underline",
8818
- color: "neutral",
8819
9028
  size: "md",
8820
9029
  class: {
8821
- button: ["data-[selected=true]:shadow-[inset_0_-1.25px_0_0_var(--dn-neutral-main)]"]
9030
+ button: ["after:border-b-md"]
8822
9031
  }
8823
9032
  },
8824
9033
  {
8825
9034
  variant: "underline",
8826
- color: "neutral",
8827
9035
  size: "lg",
8828
9036
  class: {
8829
- button: ["data-[selected=true]:shadow-[inset_0_-1.5px_0_0_var(--dn-neutral-main)]"]
9037
+ button: ["after:border-b-lg"]
8830
9038
  }
8831
9039
  },
8832
9040
  {
8833
9041
  variant: "underline",
8834
- color: "neutral",
8835
9042
  size: "xl",
8836
9043
  class: {
8837
- button: ["data-[selected=true]:shadow-[inset_0_-1.75px_0_0_var(--dn-neutral-main)]"]
9044
+ button: ["after:border-b-xl"]
8838
9045
  }
8839
9046
  }
8840
9047
  ],
@@ -8851,14 +9058,14 @@ var paginationStyle = tv(
8851
9058
  );
8852
9059
 
8853
9060
  // src/components/scroll/scrollArea.tsx
8854
- var import_tailwind_variants16 = require("tailwind-variants");
9061
+ var import_tailwind_variants17 = require("tailwind-variants");
8855
9062
  var import_jsx_runtime20 = require("react/jsx-runtime");
8856
9063
  var ScrollArea = ({ children, className, direction, size }) => {
8857
9064
  return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: clsx(scrollAreaStyle({ direction, size }), className), children });
8858
9065
  };
8859
9066
  ScrollArea.displayName = "ScrollArea";
8860
9067
  var scrollArea_default = ScrollArea;
8861
- var scrollAreaStyle = (0, import_tailwind_variants16.tv)({
9068
+ var scrollAreaStyle = (0, import_tailwind_variants17.tv)({
8862
9069
  base: [
8863
9070
  "w-full",
8864
9071
  "scrollbar-thumb-trans-soft",
@@ -8922,17 +9129,26 @@ var Table = (0, import_react19.forwardRef)((originalProps, ref) => {
8922
9129
  const checkboxWidth = rowCheckbox ? 40 : 0;
8923
9130
  return columnsWidth + checkboxWidth;
8924
9131
  }, [columns, rowCheckbox]);
9132
+ const prevCheckedRef = (0, import_react19.useRef)("");
8925
9133
  (0, import_react19.useEffect)(() => {
8926
- onCheckedRowsChange == null ? void 0 : onCheckedRowsChange(getCheckedRowData(checkedRowIds));
9134
+ const currentCheckedStr = Array.from(checkedRowIds).sort().join(",");
9135
+ if (prevCheckedRef.current !== currentCheckedStr) {
9136
+ prevCheckedRef.current = currentCheckedStr;
9137
+ onCheckedRowsChange == null ? void 0 : onCheckedRowsChange(getCheckedRowData(checkedRowIds));
9138
+ }
8927
9139
  }, [checkedRowIds]);
8928
9140
  (0, import_react19.useEffect)(() => {
8929
9141
  const currentRowIds = new Set(rows.map((row) => row.id));
8930
9142
  const ids = Array.from(checkedRowIds);
8931
9143
  const hasValidCheckedRows = ids.every((id) => currentRowIds.has(id));
8932
9144
  if (!hasValidCheckedRows) {
8933
- setCheckedRowIds(new Set(checkedRows == null ? void 0 : checkedRows.map((row) => row.id)));
9145
+ const newCheckedSet = new Set(checkedRows == null ? void 0 : checkedRows.map((row) => row.id));
9146
+ const newCheckedStr = Array.from(newCheckedSet).sort().join(",");
9147
+ if (prevCheckedRef.current !== newCheckedStr) {
9148
+ setCheckedRowIds(newCheckedSet);
9149
+ }
8934
9150
  }
8935
- }, [rows.map((row) => row.id).join(",")]);
9151
+ }, [rows]);
8936
9152
  (0, import_react19.useImperativeHandle)(
8937
9153
  ref,
8938
9154
  () => ({
@@ -9026,7 +9242,7 @@ var Table = (0, import_react19.forwardRef)((originalProps, ref) => {
9026
9242
  color,
9027
9243
  size: "sm",
9028
9244
  currentPage: page,
9029
- totalPage: Math.ceil(totalData / perPage),
9245
+ totalPage: Math.ceil(totalData / (perPage || 1)),
9030
9246
  groupSize: paginationGroupSize,
9031
9247
  showFirstLastButtons,
9032
9248
  showPageLabel,
@@ -9038,13 +9254,13 @@ var Table = (0, import_react19.forwardRef)((originalProps, ref) => {
9038
9254
  });
9039
9255
  Table.displayName = "Table";
9040
9256
  var table_default = Table;
9041
- var tableStyle = (0, import_tailwind_variants17.tv)({
9257
+ var tableStyle = (0, import_tailwind_variants18.tv)({
9042
9258
  slots: {
9043
- base: ["flex", "flex-col", "relative", "select-none", "gap-[20px]", "h-full", "min-h-0"],
9259
+ base: ["flex", "flex-col", "relative", "select-none", "gap-20", "h-full", "min-h-0"],
9044
9260
  scroll: [],
9045
9261
  table: ["w-full", "h-auto"],
9046
- thead: ["w-full"],
9047
- tbody: ["w-full"],
9262
+ thead: ["w-full", "px-lg"],
9263
+ tbody: ["w-full", "[&>tr:hover]:bg-common-hover"],
9048
9264
  tr: ["group/tr", "outline-none", "w-full", "h-full"],
9049
9265
  th: [
9050
9266
  "text-body-foreground",
@@ -9052,9 +9268,9 @@ var tableStyle = (0, import_tailwind_variants17.tv)({
9052
9268
  "whitespace-nowrap",
9053
9269
  "outline-none",
9054
9270
  "align-middle",
9055
- "px-[10px]",
9271
+ "px-[5px]",
9056
9272
  "[&>div]:flex",
9057
- "[&>div]:gap-[10px]"
9273
+ "[&>div]:gap-10"
9058
9274
  ],
9059
9275
  td: [
9060
9276
  "relative",
@@ -9064,8 +9280,8 @@ var tableStyle = (0, import_tailwind_variants17.tv)({
9064
9280
  "outline-none",
9065
9281
  "[&>*]:z-1",
9066
9282
  "[&>*]:relative",
9067
- "px-[10px]",
9068
- "gap-[10px]",
9283
+ "px-[5px]",
9284
+ "gap-10",
9069
9285
  "transition duration-200",
9070
9286
  "align-middle"
9071
9287
  ],
@@ -9083,17 +9299,10 @@ var tableStyle = (0, import_tailwind_variants17.tv)({
9083
9299
  },
9084
9300
  variants: {
9085
9301
  variant: {
9086
- solid: {
9087
- tbody: ["[&>tr]:border-b"]
9088
- },
9089
- outline: {
9090
- tbody: ["[&>td]:border"],
9091
- th: ["border"],
9092
- td: ["border"]
9093
- },
9302
+ solid: {},
9303
+ outline: {},
9094
9304
  underline: {
9095
- tbody: ["[&>tr]:border-b"],
9096
- th: ["border-t-[2px]", "border-b"]
9305
+ th: ["bg-body-background", "border-t-[2px]", "border-b-[1px]"]
9097
9306
  }
9098
9307
  },
9099
9308
  size: {
@@ -9132,26 +9341,32 @@ var tableStyle = (0, import_tailwind_variants17.tv)({
9132
9341
  }
9133
9342
  },
9134
9343
  compoundVariants: [
9344
+ { variant: "solid", size: "sm", class: { tbody: ["[&>tr]:border-b-sm"] } },
9345
+ { variant: "solid", size: "md", class: { tbody: ["[&>tr]:border-b-md"] } },
9346
+ { variant: "solid", size: "lg", class: { tbody: ["[&>tr]:border-b-lg"] } },
9347
+ { variant: "solid", size: "xl", class: { tbody: ["[&>tr]:border-b-xl"] } },
9348
+ { variant: "outline", size: "sm", class: { th: ["border-sm"], td: ["border-sm"] } },
9349
+ { variant: "outline", size: "md", class: { th: ["border-md"], td: ["border-md"] } },
9350
+ { variant: "outline", size: "lg", class: { th: ["border-lg"], td: ["border-lg"] } },
9351
+ { variant: "outline", size: "xl", class: { th: ["border-xl"], td: ["border-xl"] } },
9352
+ { variant: "underline", size: "sm", class: { tbody: ["[&>tr]:border-b-sm"], th: ["border-b-sm"] } },
9353
+ { variant: "underline", size: "md", class: { tbody: ["[&>tr]:border-b-md"], th: ["border-b-md"] } },
9354
+ { variant: "underline", size: "lg", class: { tbody: ["[&>tr]:border-b-lg"], th: ["border-b-lg"] } },
9355
+ { variant: "underline", size: "xl", class: { tbody: ["[&>tr]:border-b-xl"], th: ["border-b-xl"] } },
9135
9356
  {
9136
9357
  variant: "solid",
9137
9358
  color: "primary",
9138
- class: {
9139
- th: ["bg-primary-soft"]
9140
- }
9359
+ class: { th: ["bg-primary-soft"] }
9141
9360
  },
9142
9361
  {
9143
9362
  variant: "solid",
9144
9363
  color: "secondary",
9145
- class: {
9146
- th: ["bg-secondary-soft"]
9147
- }
9364
+ class: { th: ["bg-secondary-soft"] }
9148
9365
  },
9149
9366
  {
9150
9367
  variant: "solid",
9151
9368
  color: "neutral",
9152
- class: {
9153
- th: ["bg-neutral-soft"]
9154
- }
9369
+ class: { th: ["bg-neutral-soft"] }
9155
9370
  },
9156
9371
  {
9157
9372
  variant: "outline",
@@ -9181,21 +9396,21 @@ var tableStyle = (0, import_tailwind_variants17.tv)({
9181
9396
  variant: "underline",
9182
9397
  color: "primary",
9183
9398
  class: {
9184
- th: ["bg-body-background", "border-t-[2px]", "border-b", "border-primary-main"]
9399
+ th: ["border-primary-light"]
9185
9400
  }
9186
9401
  },
9187
9402
  {
9188
9403
  variant: "underline",
9189
9404
  color: "secondary",
9190
9405
  class: {
9191
- th: ["bg-body-background", "border-t-[2px]", "border-b", "border-secondary-main"]
9406
+ th: ["border-secondary-light"]
9192
9407
  }
9193
9408
  },
9194
9409
  {
9195
9410
  variant: "underline",
9196
9411
  color: "neutral",
9197
9412
  class: {
9198
- th: ["bg-body-background", "border-t-[2px]", "border-b", "border-neutral-main"]
9413
+ th: ["border-neutral-light"]
9199
9414
  }
9200
9415
  },
9201
9416
  {
@@ -9969,6 +10184,16 @@ var chipStyle = tv({
9969
10184
  xl: {
9970
10185
  base: ["text-xl"]
9971
10186
  }
10187
+ },
10188
+ fill: {
10189
+ true: {
10190
+ base: ["w-full"]
10191
+ }
10192
+ },
10193
+ fit: {
10194
+ true: {
10195
+ base: ["w-fit"]
10196
+ }
9972
10197
  }
9973
10198
  },
9974
10199
  compoundVariants: [
@@ -10094,10 +10319,7 @@ var Radio = (0, import_react23.forwardRef)((originalProps, ref) => {
10094
10319
  ),
10095
10320
  children: [
10096
10321
  /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "hidden", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("input", { ...inputProps, type: "radio", ref }) }),
10097
- /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: slots.radioWrapper({ class: classNames == null ? void 0 : classNames.radioWrapper }), children: [
10098
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: slots.outerDot({ class: classNames == null ? void 0 : classNames.outerDot }) }),
10099
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: slots.innerDot({ class: classNames == null ? void 0 : classNames.innerDot }) })
10100
- ] }),
10322
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: slots.wrapper({ class: classNames == null ? void 0 : classNames.wrapper }), children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: slots.innerDot({ class: classNames == null ? void 0 : classNames.innerDot }) }) }),
10101
10323
  /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: slots.labelWrapper({ class: classNames == null ? void 0 : classNames.labelWrapper }), children: children && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: slots.label({ class: classNames == null ? void 0 : classNames.label }), children }) })
10102
10324
  ]
10103
10325
  }
@@ -10117,25 +10339,18 @@ var radioStyle = tv({
10117
10339
  "cursor-pointer",
10118
10340
  "tap-highlight-transparent"
10119
10341
  ],
10120
- radioWrapper: ["relative", "flex-shrink-0"],
10121
- outerDot: [
10122
- "absolute",
10123
- "top-1/2",
10124
- "left-1/2",
10125
- "-translate-x-1/2",
10126
- "-translate-y-1/2",
10127
- "z-[1]",
10342
+ wrapper: [
10343
+ "relative",
10344
+ "flex",
10345
+ "items-center",
10346
+ "justify-center",
10347
+ "flex-shrink-0",
10128
10348
  "rounded-full",
10129
10349
  "border",
10130
- "border-default",
10131
- "bg-white"
10350
+ "border-neutral-light",
10351
+ "bg-body-background"
10132
10352
  ],
10133
10353
  innerDot: [
10134
- "absolute",
10135
- "top-1/2",
10136
- "left-1/2",
10137
- "-translate-x-1/2",
10138
- "-translate-y-1/2",
10139
10354
  "z-[2]",
10140
10355
  "rounded-full",
10141
10356
  "bg-primary-main",
@@ -10150,7 +10365,7 @@ var radioStyle = tv({
10150
10365
  variants: {
10151
10366
  color: {
10152
10367
  primary: {
10153
- outerDot: [
10368
+ wrapper: [
10154
10369
  "group-has-[:checked]/radio:border-primary-main",
10155
10370
  "group-hover/radio:border-primary-light",
10156
10371
  "group-hover/radio:bg-primary-soft"
@@ -10158,7 +10373,7 @@ var radioStyle = tv({
10158
10373
  innerDot: ["bg-primary-main"]
10159
10374
  },
10160
10375
  secondary: {
10161
- outerDot: [
10376
+ wrapper: [
10162
10377
  "group-has-[:checked]/radio:border-secondary-main",
10163
10378
  "group-hover/radio:border-secondary-light",
10164
10379
  "group-hover/radio:bg-secondary-soft"
@@ -10166,7 +10381,7 @@ var radioStyle = tv({
10166
10381
  innerDot: ["bg-secondary-main"]
10167
10382
  },
10168
10383
  neutral: {
10169
- outerDot: [
10384
+ wrapper: [
10170
10385
  "group-has-[:checked]/radio:border-neutral-main",
10171
10386
  "group-hover/radio:border-neutral-light",
10172
10387
  "group-hover/radio:bg-neutral-soft"
@@ -10176,37 +10391,33 @@ var radioStyle = tv({
10176
10391
  },
10177
10392
  size: {
10178
10393
  sm: {
10179
- base: ["gap-[8px]"],
10180
- radioWrapper: ["w-[12px]", "h-[12px]"],
10181
- outerDot: ["w-[12px]", "h-[12px]", "border-sm"],
10394
+ base: ["gap-lg"],
10395
+ wrapper: ["w-[12px]", "h-[12px]", "border-sm"],
10182
10396
  innerDot: ["w-[6px]", "h-[6px]"],
10183
10397
  label: ["text-sm"]
10184
10398
  },
10185
10399
  md: {
10186
- base: ["gap-[8px]"],
10187
- radioWrapper: ["w-[14px]", "h-[14px]"],
10188
- outerDot: ["w-[14px]", "h-[14px]", "border-md"],
10400
+ base: ["gap-lg"],
10401
+ wrapper: ["w-[16px]", "h-[16px]", "border-md"],
10189
10402
  innerDot: ["w-[8px]", "h-[8px]"],
10190
10403
  label: ["text-md"]
10191
10404
  },
10192
10405
  lg: {
10193
- base: ["gap-[10px]"],
10194
- radioWrapper: ["w-[18px]", "h-[18px]"],
10195
- outerDot: ["w-[18px]", "h-[18px]", "border-lg"],
10406
+ base: ["gap-xl"],
10407
+ wrapper: ["w-[18px]", "h-[18px]", "border-lg"],
10196
10408
  innerDot: ["w-[10px]", "h-[10px]"],
10197
10409
  label: ["text-lg"]
10198
10410
  },
10199
10411
  xl: {
10200
- base: ["gap-[10px]"],
10201
- radioWrapper: ["w-[22px]", "h-[22px]"],
10202
- outerDot: ["w-[22px]", "h-[22px]", "border-xl"],
10412
+ base: ["gap-xl"],
10413
+ wrapper: ["w-[22px]", "h-[22px]", "border-xl"],
10203
10414
  innerDot: ["w-[12px]", "h-[12px]"],
10204
10415
  label: ["text-xl"]
10205
10416
  }
10206
10417
  },
10207
10418
  isInvalid: {
10208
10419
  true: {
10209
- outerDot: [
10420
+ wrapper: [
10210
10421
  "border-danger-main",
10211
10422
  "bg-danger-soft",
10212
10423
  "group-has-[:checked]/radio:border-danger-main",
@@ -10220,7 +10431,7 @@ var radioStyle = tv({
10220
10431
  disabled: {
10221
10432
  true: {
10222
10433
  base: ["opacity-disabled", "cursor-not-allowed", "pointer-events-auto", "text-neutral-light"],
10223
- outerDot: [
10434
+ wrapper: [
10224
10435
  "cursor-not-allowed",
10225
10436
  "border-neutral-light",
10226
10437
  "bg-neutral-soft",
@@ -10236,7 +10447,7 @@ var radioStyle = tv({
10236
10447
  readOnly: {
10237
10448
  true: {
10238
10449
  base: ["cursor-not-allowed", "pointer-events-none"],
10239
- outerDot: ["cursor-not-allowed", "border-neutral-light", "bg-neutral-soft"],
10450
+ wrapper: ["cursor-not-allowed", "border-neutral-light", "bg-neutral-soft"],
10240
10451
  label: ["text-neutral-light", "group-has-[:checked]/radio:text-body-foreground"]
10241
10452
  }
10242
10453
  }
@@ -10251,7 +10462,7 @@ var radioStyle = tv({
10251
10462
 
10252
10463
  // src/components/switch/switch.tsx
10253
10464
  var import_react24 = require("react");
10254
- var import_tailwind_variants22 = require("tailwind-variants");
10465
+ var import_tailwind_variants23 = require("tailwind-variants");
10255
10466
  var import_jsx_runtime26 = require("react/jsx-runtime");
10256
10467
  var Switch = (0, import_react24.forwardRef)((originalProps, ref) => {
10257
10468
  const [rawProps, variantProps] = mapPropsVariants(originalProps, switchStyle.variantKeys);
@@ -10274,24 +10485,14 @@ var Switch = (0, import_react24.forwardRef)((originalProps, ref) => {
10274
10485
  onChange
10275
10486
  }
10276
10487
  ),
10277
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: slots.outerWrapper({ class: classNames == null ? void 0 : classNames.outerWrapper }), children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: slots.wrapper({ class: classNames == null ? void 0 : classNames.wrapper }), children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: slots.thumb({ class: classNames == null ? void 0 : classNames.thumb }) }) }) })
10488
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: slots.wrapper({ class: classNames == null ? void 0 : classNames.wrapper }), children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: slots.thumb({ class: classNames == null ? void 0 : classNames.thumb }) }) })
10278
10489
  ] });
10279
10490
  });
10280
10491
  Switch.displayName = "Switch";
10281
10492
  var switch_default = Switch;
10282
- var switchStyle = (0, import_tailwind_variants22.tv)({
10493
+ var switchStyle = (0, import_tailwind_variants23.tv)({
10283
10494
  slots: {
10284
10495
  base: ["group/switch", "relative", "max-w-fit", "inline-flex", "items-center", "justify-start", "cursor-pointer"],
10285
- outerWrapper: [
10286
- "relative",
10287
- "inline-flex",
10288
- "items-center",
10289
- "justify-start",
10290
- "flex-shrink-0",
10291
- "bg-neutral-soft",
10292
- "overflow-hidden",
10293
- "rounded-full"
10294
- ],
10295
10496
  wrapper: [
10296
10497
  "relative",
10297
10498
  "inline-flex",
@@ -10300,6 +10501,7 @@ var switchStyle = (0, import_tailwind_variants22.tv)({
10300
10501
  "flex-shrink-0",
10301
10502
  "overflow-hidden",
10302
10503
  "bg-neutral-light",
10504
+ "ring-neutral-soft",
10303
10505
  "rounded-full"
10304
10506
  ],
10305
10507
  thumb: [
@@ -10316,23 +10518,19 @@ var switchStyle = (0, import_tailwind_variants22.tv)({
10316
10518
  variants: {
10317
10519
  size: {
10318
10520
  sm: {
10319
- outerWrapper: ["w-[32px]", "h-[16px]", "p-[2px]"],
10320
- wrapper: ["w-[28px]", "h-[12px]", "p-[2px]"],
10521
+ wrapper: ["w-[28px]", "h-[12px]", "p-[2px]", "ring-2"],
10321
10522
  thumb: ["w-[8px]", "h-[8px]", "group-has-[:checked]/switch:ml-[16px]"]
10322
10523
  },
10323
10524
  md: {
10324
- outerWrapper: ["w-[48px]", "h-[24px]", "px-[3px]"],
10325
- wrapper: ["w-[42px]", "h-[16px]", "px-[3px]"],
10525
+ wrapper: ["w-[42px]", "h-[18px]", "p-[3px]", "ring-3"],
10326
10526
  thumb: ["w-[12px]", "h-[12px]", "group-has-[:checked]/switch:ml-[24px]"]
10327
10527
  },
10328
10528
  lg: {
10329
- outerWrapper: ["w-[64px]", "h-[32px]", "px-[4px]"],
10330
- wrapper: ["w-[56px]", "h-[24px]", "px-[4px]"],
10529
+ wrapper: ["w-[56px]", "h-[24px]", "p-[4px]", "ring-4"],
10331
10530
  thumb: ["w-[16px]", "h-[16px]", "group-has-[:checked]/switch:ml-[32px]"]
10332
10531
  },
10333
10532
  xl: {
10334
- outerWrapper: ["w-[80px]", "h-[40px]", "px-[5px]"],
10335
- wrapper: ["w-[70px]", "h-[30px]", "px-[5px]"],
10533
+ wrapper: ["w-[70px]", "h-[30px]", "p-[5px]", "ring-5"],
10336
10534
  thumb: ["w-[20px]", "h-[20px]", "group-has-[:checked]/switch:ml-[40px]"]
10337
10535
  }
10338
10536
  },
@@ -10343,8 +10541,12 @@ var switchStyle = (0, import_tailwind_variants22.tv)({
10343
10541
  disabled: {
10344
10542
  true: {
10345
10543
  base: ["!pointer-events-none"],
10346
- outerWrapper: ["!bg-neutral-soft"],
10347
- wrapper: ["!bg-neutral-light", "!group-has-[:checked]/switch:bg-neutral-light", "!hover:bg-neutral-light"],
10544
+ wrapper: [
10545
+ "!bg-neutral-light",
10546
+ "!ring-neutral-soft",
10547
+ "!group-has-[:checked]/switch:bg-neutral-light",
10548
+ "!hover:bg-neutral-light"
10549
+ ],
10348
10550
  thumb: ["!bg-trans-light"]
10349
10551
  }
10350
10552
  },
@@ -10363,15 +10565,21 @@ var switchStyle = (0, import_tailwind_variants22.tv)({
10363
10565
  {
10364
10566
  color: "primary",
10365
10567
  class: {
10366
- outerWrapper: ["group-has-[:checked]/switch:bg-primary-light"],
10367
- wrapper: ["group-has-[:checked]/switch:bg-primary-main", "hover:bg-primary-light"]
10568
+ wrapper: [
10569
+ "group-has-[:checked]/switch:bg-primary-main",
10570
+ "group-has-[:checked]/switch:ring-primary-light",
10571
+ "hover:bg-primary-light"
10572
+ ]
10368
10573
  }
10369
10574
  },
10370
10575
  {
10371
10576
  color: "secondary",
10372
10577
  class: {
10373
- outerWrapper: ["group-has-[:checked]/switch:bg-secondary-light"],
10374
- wrapper: ["group-has-[:checked]/switch:bg-secondary-main", "hover:bg-secondary-light"]
10578
+ wrapper: [
10579
+ "group-has-[:checked]/switch:bg-secondary-main",
10580
+ "group-has-[:checked]/switch:ring-secondary-light",
10581
+ "hover:bg-secondary-light"
10582
+ ]
10375
10583
  }
10376
10584
  }
10377
10585
  ],
@@ -10672,18 +10880,22 @@ var import_jsx_runtime28 = require("react/jsx-runtime");
10672
10880
  var Modal = (0, import_react27.forwardRef)((props, ref) => {
10673
10881
  const [localProps, variantProps] = mapPropsVariants(props, modal.variantKeys);
10674
10882
  const {
10675
- classNames,
10676
10883
  isOpen,
10884
+ iconName,
10677
10885
  title,
10678
10886
  content,
10679
10887
  confirmButtonText,
10680
10888
  cancelButtonText,
10681
10889
  showCloseButton = true,
10682
10890
  isKeyboardDismissDisabled = false,
10891
+ hasBackdrop = true,
10683
10892
  onConfirm,
10684
10893
  onCancel,
10685
- extraFooter
10894
+ extraFooter,
10895
+ classNames,
10896
+ ...restProps
10686
10897
  } = localProps;
10898
+ const variant = props.variant || "horizontal";
10687
10899
  const slots = (0, import_react27.useMemo)(() => modal(variantProps), [variantProps]);
10688
10900
  (0, import_react27.useEffect)(() => {
10689
10901
  document.body.classList.toggle("overflow-hidden", !!isOpen);
@@ -10700,29 +10912,30 @@ var Modal = (0, import_react27.forwardRef)((props, ref) => {
10700
10912
  if (!isOpen) return null;
10701
10913
  return (0, import_react_dom3.createPortal)(
10702
10914
  /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_jsx_runtime28.Fragment, { children: [
10703
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(backdrop_default, { open: true }),
10704
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { ref, className: slots.base({ class: classNames == null ? void 0 : classNames.base }), children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: slots.modalWrapper({ class: classNames == null ? void 0 : classNames.modalWrapper }), children: [
10705
- showCloseButton && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
10706
- Icon_default,
10707
- {
10708
- size: "xl",
10709
- name: "close",
10710
- className: slots.closeIcon({ class: classNames == null ? void 0 : classNames.closeIcon }),
10711
- onClick: onCancel
10712
- }
10713
- ),
10714
- /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: slots.wrapper({ class: classNames == null ? void 0 : classNames.wrapper }), children: [
10715
- title && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: slots.title({ class: classNames == null ? void 0 : classNames.title }), children: title }),
10716
- typeof content === "string" ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: slots.content({ class: classNames == null ? void 0 : classNames.content }), children: content }) : content,
10717
- (cancelButtonText || confirmButtonText) && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: slots.footerWrapper({ class: classNames == null ? void 0 : classNames.footerWrapper }), children: [
10718
- /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: slots.footer({ class: classNames == null ? void 0 : classNames.footer }), children: [
10719
- cancelButtonText && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(button_default, { variant: "soft", color: "neutral", full: true, onClick: onCancel, children: cancelButtonText }),
10720
- confirmButtonText && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(button_default, { color: props.color, full: true, onClick: onConfirm, children: confirmButtonText })
10721
- ] }),
10722
- extraFooter
10723
- ] })
10915
+ hasBackdrop && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(backdrop_default, { open: true }),
10916
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { ref, className: slots.base({ class: classNames == null ? void 0 : classNames.base }), ...restProps, children: [
10917
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: slots.titleWrapper({ class: classNames == null ? void 0 : classNames.titleWrapper }), children: [
10918
+ iconName && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
10919
+ Icon_default,
10920
+ {
10921
+ name: iconName,
10922
+ size: variant === "vertical" ? 40 : 30,
10923
+ fill: true,
10924
+ className: slots.icon({ class: classNames == null ? void 0 : classNames.icon })
10925
+ }
10926
+ ),
10927
+ title && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: slots.title({ class: classNames == null ? void 0 : classNames.title }), children: title })
10928
+ ] }),
10929
+ showCloseButton && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Icon_default, { name: "close", className: slots.closeIcon({ class: classNames == null ? void 0 : classNames.closeIcon }), onClick: onCancel }),
10930
+ typeof content === "string" ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: slots.content({ class: classNames == null ? void 0 : classNames.content }), children: content }) : content,
10931
+ (cancelButtonText || confirmButtonText) && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: slots.footerWrapper({ class: classNames == null ? void 0 : classNames.footerWrapper }), children: [
10932
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: slots.footer({ class: classNames == null ? void 0 : classNames.footer }), children: [
10933
+ cancelButtonText && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(button_default, { variant: "outline", color: props.color, full: true, onClick: onCancel, children: cancelButtonText }),
10934
+ confirmButtonText && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(button_default, { color: props.color, full: true, onClick: onConfirm, children: confirmButtonText })
10935
+ ] }),
10936
+ extraFooter
10724
10937
  ] })
10725
- ] }) })
10938
+ ] })
10726
10939
  ] }),
10727
10940
  document.body
10728
10941
  );
@@ -10736,52 +10949,48 @@ var modal = tv({
10736
10949
  "absolute",
10737
10950
  "fixed",
10738
10951
  "top-1/2",
10739
- "-translate-y-1/2",
10740
10952
  "left-1/2",
10741
10953
  "-translate-x-1/2",
10954
+ "-translate-y-1/2",
10742
10955
  "z-[50]",
10743
- "bg-body-background"
10744
- ],
10745
- modalWrapper: [
10746
- "min-w-[450px]",
10956
+ "rounded-2xl",
10957
+ "min-w-[340px]",
10747
10958
  "flex",
10748
10959
  "flex-col",
10749
10960
  "justify-center",
10750
- "p-[30px]",
10751
- "bg-background",
10961
+ "gap-20",
10962
+ "p-20",
10963
+ "bg-body-background",
10752
10964
  "shadow-drop",
10753
10965
  "shadow-foreground/20",
10754
- "rounded-xlg",
10755
- "overflow-hidden",
10756
- "group-data-[icon-visibility=true]/modal:mt-[0]",
10757
- "group-data-[icon-visibility=true]/modal:pt-[60px]"
10966
+ "rounded-2xl",
10967
+ "overflow-hidden"
10758
10968
  ],
10759
- wrapper: ["flex", "flex-col", "gap-[30px]"],
10760
- title: ["text-xl", "font-extrabold", "text-foreground"],
10761
- content: ["text-md", "font-bold", "text-center", "break-words", "bg-neutral-soft", "rounded-[5px]", "p-[10px]"],
10762
- footerWrapper: ["flex", "flex-col", "gap-[5px]"],
10763
- footer: ["flex", "gap-[10px]"],
10764
- closeIcon: [
10765
- "absolute",
10766
- "top-[30px]",
10767
- "right-[30px]",
10768
- "cursor-pointer",
10769
- "z-60",
10770
- "group-data-[icon-visibility=true]/modal:top-[80px]"
10771
- ]
10969
+ icon: [],
10970
+ titleWrapper: ["flex", "items-center", "gap-10"],
10971
+ title: ["text-xl", "font-extrabold", "text-body-foreground"],
10972
+ content: ["text-md", "text-center", "break-words", "bg-trans-soft", "rounded-5", "p-lg", "text-body-foreground"],
10973
+ footerWrapper: ["flex", "flex-col", "gap-5"],
10974
+ footer: ["flex", "gap-10"],
10975
+ closeIcon: ["absolute", "top-[20px]", "right-[20px]", "cursor-pointer", "z-60", "text-neutral-dark"]
10772
10976
  },
10773
10977
  variants: {
10978
+ variant: {
10979
+ vertical: { titleWrapper: ["flex-col"] },
10980
+ horizontal: { titleWrapper: ["flex-row"] }
10981
+ },
10774
10982
  color: {
10775
- primary: {},
10776
- secondary: {},
10777
- neutral: {},
10778
- success: {},
10779
- info: {},
10780
- warning: {},
10781
- danger: {}
10983
+ primary: { icon: ["text-primary-main"] },
10984
+ secondary: { icon: ["text-secondary-main"] },
10985
+ neutral: { icon: ["text-neutral-main"] },
10986
+ success: { icon: ["text-success-main"] },
10987
+ info: { icon: ["text-info-main"] },
10988
+ warning: { icon: ["text-warning-main"] },
10989
+ danger: { icon: ["text-danger-main"] }
10782
10990
  }
10783
10991
  },
10784
10992
  defaultVariants: {
10993
+ variant: "horizontal",
10785
10994
  color: "primary"
10786
10995
  }
10787
10996
  });
@@ -12699,7 +12908,7 @@ var treeStyle = tv({
12699
12908
 
12700
12909
  // src/components/fileUpload/fileUpload.tsx
12701
12910
  var import_react43 = require("react");
12702
- var import_tailwind_variants34 = require("tailwind-variants");
12911
+ var import_tailwind_variants35 = require("tailwind-variants");
12703
12912
 
12704
12913
  // src/components/progress/progress.tsx
12705
12914
  var import_react42 = require("react");
@@ -12764,7 +12973,7 @@ var Progress = (originalProps) => {
12764
12973
  var progress_default = Progress;
12765
12974
  var progressStyle = tv({
12766
12975
  slots: {
12767
- base: ["flex flex-col gap-2 w-full"],
12976
+ base: ["flex", "flex-col", "gap-2", "w-full"],
12768
12977
  track: ["z-0", "relative", "bg-neutral-soft", "overflow-hidden", "rtl:rotate-180"],
12769
12978
  indicator: ["h-full"],
12770
12979
  value: ""
@@ -12772,54 +12981,55 @@ var progressStyle = tv({
12772
12981
  variants: {
12773
12982
  color: {
12774
12983
  primary: {
12775
- indicator: ["bg-gradient-to-r from-primary-light via-primary-light to-primary-main"]
12984
+ indicator: ["bg-gradient-to-r", "from-primary-light", "via-primary-light", "to-primary-main"]
12776
12985
  },
12777
12986
  secondary: {
12778
- indicator: ["bg-gradient-to-r from-secondary-light via-secondary-light to-secondary-main"]
12987
+ indicator: ["bg-gradient-to-r", "from-secondary-light", "via-secondary-light", "to-secondary-main"]
12779
12988
  },
12780
12989
  neutral: {
12781
- indicator: ["bg-gradient-to-r from-neutral-light via-neutral-light to-neutral-main"]
12990
+ indicator: ["bg-gradient-to-r", "from-neutral-light", "via-neutral-light", "to-neutral-main"]
12782
12991
  },
12783
12992
  info: {
12784
- indicator: ["bg-gradient-to-r from-info-light via-info-light to-info-main"]
12993
+ indicator: ["bg-gradient-to-r", "from-info-light", "via-info-light", "to-info-main"]
12785
12994
  },
12786
12995
  success: {
12787
- indicator: ["bg-gradient-to-r from-success-light via-success-light to-success-main"]
12996
+ indicator: ["bg-gradient-to-r", "from-success-light", "via-success-light", "to-success-main"]
12788
12997
  },
12789
12998
  warning: {
12790
- indicator: ["bg-gradient-to-r from-warning-light via-warning-light to-warning-main"]
12999
+ indicator: ["bg-gradient-to-r", "from-warning-light", "via-warning-light", "to-warning-main"]
12791
13000
  },
12792
13001
  danger: {
12793
- indicator: ["bg-gradient-to-r from-danger-light via-danger-light to-danger-main"]
13002
+ indicator: ["bg-gradient-to-r", "from-danger-light", "via-danger-light", "to-danger-main"]
12794
13003
  }
12795
13004
  },
12796
13005
  size: {
12797
13006
  sm: {
12798
13007
  track: ["h-[4px]", "rounded-sm"],
12799
- indicator: "rounded-sm"
13008
+ indicator: ["rounded-sm"]
12800
13009
  },
12801
13010
  md: {
12802
13011
  track: ["h-[6px]", "rounded-md"],
12803
- indicator: "rounded-md"
13012
+ indicator: ["rounded-md"]
12804
13013
  },
12805
13014
  lg: {
12806
13015
  track: ["h-[8px]", "rounded-lg"],
12807
- indicator: "rounded-lg"
13016
+ indicator: ["rounded-lg"]
12808
13017
  },
12809
13018
  xl: {
12810
13019
  track: ["h-[10px]", "rounded-xl"],
12811
- indicator: "rounded-xl"
13020
+ indicator: ["rounded-xl"]
12812
13021
  }
12813
13022
  },
12814
13023
  disabled: {
12815
13024
  true: {
12816
- base: "opacity-disabled cursor-not-allowed"
13025
+ base: ["opacity-disabled", "cursor-not-allowed"],
13026
+ indicator: ["bg-neutral-light"]
12817
13027
  }
12818
13028
  },
12819
13029
  disableAnimation: {
12820
13030
  true: {},
12821
13031
  false: {
12822
- indicator: "transition-transform !duration-500"
13032
+ indicator: ["transition-transform", "!duration-500"]
12823
13033
  }
12824
13034
  },
12825
13035
  isIndeterminate: {
@@ -12990,7 +13200,7 @@ function FileUpload({
12990
13200
  }
12991
13201
  FileUpload.displayName = "FileUpload";
12992
13202
  var fileUpload_default = FileUpload;
12993
- var fileUploadStyle = (0, import_tailwind_variants34.tv)({
13203
+ var fileUploadStyle = (0, import_tailwind_variants35.tv)({
12994
13204
  slots: {
12995
13205
  base: ["flex", "flex-col", "gap-[5px]"],
12996
13206
  container: ["flex", "gap-[10px]"],
@@ -13002,7 +13212,7 @@ var fileUploadStyle = (0, import_tailwind_variants34.tv)({
13002
13212
  });
13003
13213
 
13004
13214
  // src/components/skeleton/skeleton.tsx
13005
- var import_tailwind_variants35 = require("tailwind-variants");
13215
+ var import_tailwind_variants36 = require("tailwind-variants");
13006
13216
  var import_jsx_runtime43 = require("react/jsx-runtime");
13007
13217
  var Skeleton = ({ color = "primary", className, speed = "normal", rounded = "md" }) => {
13008
13218
  const speedMap = {
@@ -13032,7 +13242,7 @@ var Skeleton = ({ color = "primary", className, speed = "normal", rounded = "md"
13032
13242
  };
13033
13243
  Skeleton.displayName = "Skeleton";
13034
13244
  var skeleton_default = Skeleton;
13035
- var skeletonStyle = (0, import_tailwind_variants35.tv)({
13245
+ var skeletonStyle = (0, import_tailwind_variants36.tv)({
13036
13246
  slots: {
13037
13247
  base: [
13038
13248
  "relative",
@@ -14091,6 +14301,219 @@ var starRatingStyle = tv({
14091
14301
  size: "xl"
14092
14302
  }
14093
14303
  });
14304
+
14305
+ // src/components/slider/slider.tsx
14306
+ var import_react50 = require("react");
14307
+ var import_jsx_runtime50 = require("react/jsx-runtime");
14308
+ var clampPercentage2 = (value) => {
14309
+ return Math.min(100, Math.max(0, value));
14310
+ };
14311
+ var Slider = (0, import_react50.forwardRef)((originalProps, ref) => {
14312
+ const [props, variantProps] = mapPropsVariants(originalProps, sliderStyle.variantKeys);
14313
+ const {
14314
+ children,
14315
+ classNames,
14316
+ value: controlledValue,
14317
+ defaultValue = 0,
14318
+ minValue = 0,
14319
+ maxValue = 100,
14320
+ step = 1,
14321
+ onChange,
14322
+ disabled = false,
14323
+ ...restProps
14324
+ } = props;
14325
+ const [uncontrolledValue, setUncontrolledValue] = (0, import_react50.useState)(defaultValue);
14326
+ const [isDragging, setIsDragging] = (0, import_react50.useState)(false);
14327
+ const isControlled = controlledValue !== void 0;
14328
+ const value = isControlled ? controlledValue : uncontrolledValue;
14329
+ const innerRef = (0, import_react50.useRef)(null);
14330
+ const calculateValue = (0, import_react50.useCallback)(
14331
+ (clientX) => {
14332
+ if (!innerRef.current) return value;
14333
+ const { left, width } = innerRef.current.getBoundingClientRect();
14334
+ const percent = Math.min(Math.max((clientX - left) / width, 0), 1);
14335
+ const exactValue = percent * (maxValue - minValue) + minValue;
14336
+ const stepRoundedValue = Math.round(exactValue / step) * step;
14337
+ return Math.min(Math.max(stepRoundedValue, minValue), maxValue);
14338
+ },
14339
+ [minValue, maxValue, step, value]
14340
+ );
14341
+ const updateValue = (0, import_react50.useCallback)(
14342
+ (newValue) => {
14343
+ if (!isControlled) {
14344
+ setUncontrolledValue(newValue);
14345
+ }
14346
+ if (onChange && value !== newValue) {
14347
+ onChange(newValue);
14348
+ }
14349
+ },
14350
+ [isControlled, onChange, value]
14351
+ );
14352
+ const handlePointerDown = (e) => {
14353
+ var _a;
14354
+ if (disabled) return;
14355
+ (_a = innerRef.current) == null ? void 0 : _a.focus();
14356
+ e.currentTarget.setPointerCapture(e.pointerId);
14357
+ setIsDragging(true);
14358
+ const newValue = calculateValue(e.clientX);
14359
+ updateValue(newValue);
14360
+ };
14361
+ const handlePointerMove = (e) => {
14362
+ if (disabled || e.buttons === 0) return;
14363
+ const newValue = calculateValue(e.clientX);
14364
+ updateValue(newValue);
14365
+ };
14366
+ const handlePointerUp = (e) => {
14367
+ if (disabled) return;
14368
+ e.currentTarget.releasePointerCapture(e.pointerId);
14369
+ setIsDragging(false);
14370
+ };
14371
+ const handleKeyDown = (e) => {
14372
+ if (disabled) return;
14373
+ let newValue = value;
14374
+ if (e.key === "ArrowRight" || e.key === "ArrowUp") {
14375
+ newValue = Math.min(value + step, maxValue);
14376
+ } else if (e.key === "ArrowLeft" || e.key === "ArrowDown") {
14377
+ newValue = Math.max(value - step, minValue);
14378
+ } else if (e.key === "Home") {
14379
+ newValue = minValue;
14380
+ } else if (e.key === "End") {
14381
+ newValue = maxValue;
14382
+ }
14383
+ if (newValue !== value) {
14384
+ e.preventDefault();
14385
+ updateValue(newValue);
14386
+ }
14387
+ };
14388
+ const setRefs = (0, import_react50.useCallback)(
14389
+ (node) => {
14390
+ innerRef.current = node;
14391
+ if (typeof ref === "function") {
14392
+ ref(node);
14393
+ } else if (ref) {
14394
+ ref.current = node;
14395
+ }
14396
+ },
14397
+ [ref]
14398
+ );
14399
+ const percentage = clampPercentage2((value - minValue) / (maxValue - minValue) * 100);
14400
+ const slots = (0, import_react50.useMemo)(() => sliderStyle({ ...variantProps }), [variantProps]);
14401
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
14402
+ "div",
14403
+ {
14404
+ ref: setRefs,
14405
+ className: slots.base({ class: classNames == null ? void 0 : classNames.base }),
14406
+ onPointerDown: handlePointerDown,
14407
+ onPointerMove: handlePointerMove,
14408
+ onPointerUp: handlePointerUp,
14409
+ onKeyDown: handleKeyDown,
14410
+ tabIndex: disabled ? void 0 : 0,
14411
+ role: "slider",
14412
+ "aria-valuemin": minValue,
14413
+ "aria-valuemax": maxValue,
14414
+ "aria-valuenow": value,
14415
+ ...restProps,
14416
+ children: [
14417
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: slots.track({ class: classNames == null ? void 0 : classNames.track }), children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
14418
+ "div",
14419
+ {
14420
+ className: slots.indicator({ class: classNames == null ? void 0 : classNames.indicator }),
14421
+ style: { width: `${percentage}%`, transitionDuration: isDragging ? "0ms" : void 0 }
14422
+ }
14423
+ ) }),
14424
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
14425
+ "div",
14426
+ {
14427
+ className: slots.thumb({ class: classNames == null ? void 0 : classNames.thumb }),
14428
+ style: { left: `${percentage}%`, transitionDuration: isDragging ? "0ms" : void 0 }
14429
+ }
14430
+ )
14431
+ ]
14432
+ }
14433
+ );
14434
+ });
14435
+ Slider.displayName = "Slider";
14436
+ var slider_default = Slider;
14437
+ var sliderStyle = tv({
14438
+ slots: {
14439
+ base: [
14440
+ "relative",
14441
+ "flex",
14442
+ "flex-col",
14443
+ "justify-center",
14444
+ "w-full",
14445
+ "touch-none",
14446
+ "select-none",
14447
+ "outline-none",
14448
+ "cursor-pointer"
14449
+ ],
14450
+ track: ["z-0", "relative", "w-full", "bg-neutral-soft"],
14451
+ indicator: ["absolute", "h-full", "top-0", "left-0", "border-none", "transition-all"],
14452
+ thumb: [
14453
+ "z-10",
14454
+ "absolute",
14455
+ "flex",
14456
+ "items-center",
14457
+ "justify-center",
14458
+ "top-1/2",
14459
+ "-translate-y-1/2",
14460
+ "-translate-x-1/2",
14461
+ "bg-white",
14462
+ "shadow-small",
14463
+ "rounded-full",
14464
+ "transition-all",
14465
+ "outline-none",
14466
+ "cursor-grab",
14467
+ "active:cursor-grabbing"
14468
+ ]
14469
+ },
14470
+ variants: {
14471
+ color: {
14472
+ primary: {
14473
+ indicator: ["bg-primary-light"],
14474
+ thumb: ["bg-primary-main", "ring-[color-mix(in_srgb,var(--dn-primary-main)_20%,transparent)]"]
14475
+ },
14476
+ secondary: {
14477
+ indicator: ["bg-secondary-light"],
14478
+ thumb: ["bg-secondary-main", "ring-[color-mix(in_srgb,var(--dn-secondary-main)_20%,transparent)]"]
14479
+ }
14480
+ },
14481
+ size: {
14482
+ sm: {
14483
+ track: ["h-[4px]", "rounded-sm"],
14484
+ indicator: ["rounded-sm"],
14485
+ thumb: ["w-[8px]", "h-[8px]", "hover:ring-2"]
14486
+ },
14487
+ md: {
14488
+ track: ["h-[6px]", "rounded-md"],
14489
+ indicator: ["rounded-md"],
14490
+ thumb: ["w-[10px]", "h-[10px]", "hover:ring-3"]
14491
+ },
14492
+ lg: {
14493
+ track: ["h-[8px]", "rounded-lg"],
14494
+ indicator: ["rounded-lg"],
14495
+ thumb: ["w-[12px]", "h-[12px]", "hover:ring-4"]
14496
+ },
14497
+ xl: {
14498
+ track: ["h-[10px]", "rounded-xl"],
14499
+ indicator: ["rounded-xl"],
14500
+ thumb: ["w-[14px]", "h-[14px]", "hover:ring-5"]
14501
+ }
14502
+ },
14503
+ disabled: {
14504
+ true: {
14505
+ base: ["opacity-disabled", "cursor-not-allowed", "!pointer-events-none"],
14506
+ indicator: ["bg-neutral-light"],
14507
+ thumb: ["bg-neutral-main", "cursor-not-allowed"]
14508
+ }
14509
+ }
14510
+ },
14511
+ defaultVariants: {
14512
+ color: "primary",
14513
+ size: "md",
14514
+ disabled: false
14515
+ }
14516
+ });
14094
14517
  // Annotate the CommonJS export names for ESM import in node:
14095
14518
  0 && (module.exports = {
14096
14519
  Accordion,
@@ -14126,6 +14549,7 @@ var starRatingStyle = tv({
14126
14549
  Select,
14127
14550
  SimpleBarChart,
14128
14551
  Skeleton,
14552
+ Slider,
14129
14553
  StarRating,
14130
14554
  Switch,
14131
14555
  Table,