shad-m 1.0.0 → 1.0.2

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 (628) hide show
  1. package/dist/common/interactive/list.d.ts +1 -1
  2. package/dist/common/interactive/select/variants.d.ts +1 -1
  3. package/dist/components/alert-dialog.d.ts +2 -2
  4. package/dist/components/badge.d.ts +3 -3
  5. package/dist/components/button.d.ts +4 -4
  6. package/dist/components/chip.d.ts +2 -2
  7. package/dist/components/command.d.ts +7 -7
  8. package/dist/components/dialog.d.ts +2 -2
  9. package/dist/components/input-otp.d.ts +2 -2
  10. package/dist/components/resizable.d.ts +1 -1
  11. package/dist/components/sidebar.d.ts +1 -1
  12. package/dist/components/spinner.d.ts +2 -2
  13. package/dist/components/stepper.d.ts +3 -3
  14. package/dist/components/toggle-group.d.ts +2 -2
  15. package/dist/components/toggle.d.ts +2 -2
  16. package/dist/index.css +43 -0
  17. package/dist/index.css.map +1 -0
  18. package/dist/index.d.ts +59 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +8189 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/index.mjs +7846 -0
  23. package/dist/index.mjs.map +1 -0
  24. package/package.json +34 -2
  25. package/dist/assets/Animation/index.js +0 -180
  26. package/dist/assets/Animation/index.js.map +0 -1
  27. package/dist/assets/Animation/index.mjs +0 -79
  28. package/dist/assets/Animation/index.mjs.map +0 -1
  29. package/dist/assets/Icon/index.js +0 -2102
  30. package/dist/assets/Icon/index.js.map +0 -1
  31. package/dist/assets/Icon/index.mjs +0 -421
  32. package/dist/assets/Icon/index.mjs.map +0 -1
  33. package/dist/assets/Image/index.js +0 -755
  34. package/dist/assets/Image/index.js.map +0 -1
  35. package/dist/assets/Image/index.mjs +0 -150
  36. package/dist/assets/Image/index.mjs.map +0 -1
  37. package/dist/common/display/countdown.js +0 -68
  38. package/dist/common/display/countdown.js.map +0 -1
  39. package/dist/common/display/countdown.mjs +0 -46
  40. package/dist/common/display/countdown.mjs.map +0 -1
  41. package/dist/common/display/display-field-group.js +0 -91
  42. package/dist/common/display/display-field-group.js.map +0 -1
  43. package/dist/common/display/display-field-group.mjs +0 -89
  44. package/dist/common/display/display-field-group.mjs.map +0 -1
  45. package/dist/common/display/display-field.js +0 -46
  46. package/dist/common/display/display-field.js.map +0 -1
  47. package/dist/common/display/display-field.mjs +0 -40
  48. package/dist/common/display/display-field.mjs.map +0 -1
  49. package/dist/common/display/display-html-string.js +0 -52
  50. package/dist/common/display/display-html-string.js.map +0 -1
  51. package/dist/common/display/display-html-string.mjs +0 -30
  52. package/dist/common/display/display-html-string.mjs.map +0 -1
  53. package/dist/common/display/index.js +0 -59
  54. package/dist/common/display/index.js.map +0 -1
  55. package/dist/common/display/index.mjs +0 -10
  56. package/dist/common/display/index.mjs.map +0 -1
  57. package/dist/common/display/page-breadcrumb.js +0 -43
  58. package/dist/common/display/page-breadcrumb.js.map +0 -1
  59. package/dist/common/display/page-breadcrumb.mjs +0 -37
  60. package/dist/common/display/page-breadcrumb.mjs.map +0 -1
  61. package/dist/common/display/page-v2.js +0 -58
  62. package/dist/common/display/page-v2.js.map +0 -1
  63. package/dist/common/display/page-v2.mjs +0 -20
  64. package/dist/common/display/page-v2.mjs.map +0 -1
  65. package/dist/common/display/page.js +0 -155
  66. package/dist/common/display/page.js.map +0 -1
  67. package/dist/common/display/page.mjs +0 -138
  68. package/dist/common/display/page.mjs.map +0 -1
  69. package/dist/common/display/score-meter.js +0 -161
  70. package/dist/common/display/score-meter.js.map +0 -1
  71. package/dist/common/display/score-meter.mjs +0 -140
  72. package/dist/common/display/score-meter.mjs.map +0 -1
  73. package/dist/common/display/sidebar/app-sidebar.js +0 -114
  74. package/dist/common/display/sidebar/app-sidebar.js.map +0 -1
  75. package/dist/common/display/sidebar/app-sidebar.mjs +0 -92
  76. package/dist/common/display/sidebar/app-sidebar.mjs.map +0 -1
  77. package/dist/common/display/sidebar/index.js +0 -89
  78. package/dist/common/display/sidebar/index.js.map +0 -1
  79. package/dist/common/display/sidebar/index.mjs +0 -81
  80. package/dist/common/display/sidebar/index.mjs.map +0 -1
  81. package/dist/common/display/sidebar/nav-main.js +0 -406
  82. package/dist/common/display/sidebar/nav-main.js.map +0 -1
  83. package/dist/common/display/sidebar/nav-main.mjs +0 -400
  84. package/dist/common/display/sidebar/nav-main.mjs.map +0 -1
  85. package/dist/common/display/sidebar/sidebar-sheet.js +0 -140
  86. package/dist/common/display/sidebar/sidebar-sheet.js.map +0 -1
  87. package/dist/common/display/sidebar/sidebar-sheet.mjs +0 -118
  88. package/dist/common/display/sidebar/sidebar-sheet.mjs.map +0 -1
  89. package/dist/common/display/sidebar/types.js +0 -4
  90. package/dist/common/display/sidebar/types.js.map +0 -1
  91. package/dist/common/display/sidebar/types.mjs +0 -3
  92. package/dist/common/display/sidebar/types.mjs.map +0 -1
  93. package/dist/common/display/status-state.js +0 -97
  94. package/dist/common/display/status-state.js.map +0 -1
  95. package/dist/common/display/status-state.mjs +0 -88
  96. package/dist/common/display/status-state.mjs.map +0 -1
  97. package/dist/common/forms/auto-form.js +0 -101
  98. package/dist/common/forms/auto-form.js.map +0 -1
  99. package/dist/common/forms/auto-form.mjs +0 -78
  100. package/dist/common/forms/auto-form.mjs.map +0 -1
  101. package/dist/common/forms/form-field.js +0 -58
  102. package/dist/common/forms/form-field.js.map +0 -1
  103. package/dist/common/forms/form-field.mjs +0 -56
  104. package/dist/common/forms/form-field.mjs.map +0 -1
  105. package/dist/common/forms/form-input-field.js +0 -64
  106. package/dist/common/forms/form-input-field.js.map +0 -1
  107. package/dist/common/forms/form-input-field.mjs +0 -62
  108. package/dist/common/forms/form-input-field.mjs.map +0 -1
  109. package/dist/common/forms/index.js +0 -22
  110. package/dist/common/forms/index.js.map +0 -1
  111. package/dist/common/forms/index.mjs +0 -5
  112. package/dist/common/forms/index.mjs.map +0 -1
  113. package/dist/common/forms/switch-field.js +0 -106
  114. package/dist/common/forms/switch-field.js.map +0 -1
  115. package/dist/common/forms/switch-field.mjs +0 -104
  116. package/dist/common/forms/switch-field.mjs.map +0 -1
  117. package/dist/common/interactive/alert-dialog-wrapper.js +0 -141
  118. package/dist/common/interactive/alert-dialog-wrapper.js.map +0 -1
  119. package/dist/common/interactive/alert-dialog-wrapper.mjs +0 -119
  120. package/dist/common/interactive/alert-dialog-wrapper.mjs.map +0 -1
  121. package/dist/common/interactive/autocomplete.js +0 -178
  122. package/dist/common/interactive/autocomplete.js.map +0 -1
  123. package/dist/common/interactive/autocomplete.mjs +0 -157
  124. package/dist/common/interactive/autocomplete.mjs.map +0 -1
  125. package/dist/common/interactive/copy-tooltip.js +0 -152
  126. package/dist/common/interactive/copy-tooltip.js.map +0 -1
  127. package/dist/common/interactive/copy-tooltip.mjs +0 -143
  128. package/dist/common/interactive/copy-tooltip.mjs.map +0 -1
  129. package/dist/common/interactive/date-field.js +0 -303
  130. package/dist/common/interactive/date-field.js.map +0 -1
  131. package/dist/common/interactive/date-field.mjs +0 -281
  132. package/dist/common/interactive/date-field.mjs.map +0 -1
  133. package/dist/common/interactive/date-input/date-input.js +0 -68
  134. package/dist/common/interactive/date-input/date-input.js.map +0 -1
  135. package/dist/common/interactive/date-input/date-input.mjs +0 -62
  136. package/dist/common/interactive/date-input/date-input.mjs.map +0 -1
  137. package/dist/common/interactive/date-input/index.js +0 -17
  138. package/dist/common/interactive/date-input/index.js.map +0 -1
  139. package/dist/common/interactive/date-input/index.mjs +0 -4
  140. package/dist/common/interactive/date-input/index.mjs.map +0 -1
  141. package/dist/common/interactive/date-input/types.js +0 -4
  142. package/dist/common/interactive/date-input/types.js.map +0 -1
  143. package/dist/common/interactive/date-input/types.mjs +0 -3
  144. package/dist/common/interactive/date-input/types.mjs.map +0 -1
  145. package/dist/common/interactive/date-input/use-typed-date.js +0 -478
  146. package/dist/common/interactive/date-input/use-typed-date.js.map +0 -1
  147. package/dist/common/interactive/date-input/use-typed-date.mjs +0 -476
  148. package/dist/common/interactive/date-input/use-typed-date.mjs.map +0 -1
  149. package/dist/common/interactive/date-input/utils.js +0 -34
  150. package/dist/common/interactive/date-input/utils.js.map +0 -1
  151. package/dist/common/interactive/date-input/utils.mjs +0 -29
  152. package/dist/common/interactive/date-input/utils.mjs.map +0 -1
  153. package/dist/common/interactive/date-picker.js +0 -616
  154. package/dist/common/interactive/date-picker.js.map +0 -1
  155. package/dist/common/interactive/date-picker.mjs +0 -594
  156. package/dist/common/interactive/date-picker.mjs.map +0 -1
  157. package/dist/common/interactive/date-range-input/date-range-input.js +0 -82
  158. package/dist/common/interactive/date-range-input/date-range-input.js.map +0 -1
  159. package/dist/common/interactive/date-range-input/date-range-input.mjs +0 -76
  160. package/dist/common/interactive/date-range-input/date-range-input.mjs.map +0 -1
  161. package/dist/common/interactive/date-range-input/index.js +0 -12
  162. package/dist/common/interactive/date-range-input/index.js.map +0 -1
  163. package/dist/common/interactive/date-range-input/index.mjs +0 -3
  164. package/dist/common/interactive/date-range-input/index.mjs.map +0 -1
  165. package/dist/common/interactive/date-range-input/types.js +0 -4
  166. package/dist/common/interactive/date-range-input/types.js.map +0 -1
  167. package/dist/common/interactive/date-range-input/types.mjs +0 -3
  168. package/dist/common/interactive/date-range-input/types.mjs.map +0 -1
  169. package/dist/common/interactive/date-range-input/use-typed-date-range.js +0 -602
  170. package/dist/common/interactive/date-range-input/use-typed-date-range.js.map +0 -1
  171. package/dist/common/interactive/date-range-input/use-typed-date-range.mjs +0 -600
  172. package/dist/common/interactive/date-range-input/use-typed-date-range.mjs.map +0 -1
  173. package/dist/common/interactive/date-time-picker.js +0 -215
  174. package/dist/common/interactive/date-time-picker.js.map +0 -1
  175. package/dist/common/interactive/date-time-picker.mjs +0 -213
  176. package/dist/common/interactive/date-time-picker.mjs.map +0 -1
  177. package/dist/common/interactive/dialog-wrapper.js +0 -124
  178. package/dist/common/interactive/dialog-wrapper.js.map +0 -1
  179. package/dist/common/interactive/dialog-wrapper.mjs +0 -102
  180. package/dist/common/interactive/dialog-wrapper.mjs.map +0 -1
  181. package/dist/common/interactive/filter.js +0 -287
  182. package/dist/common/interactive/filter.js.map +0 -1
  183. package/dist/common/interactive/filter.mjs +0 -280
  184. package/dist/common/interactive/filter.mjs.map +0 -1
  185. package/dist/common/interactive/index.js +0 -235
  186. package/dist/common/interactive/index.js.map +0 -1
  187. package/dist/common/interactive/index.mjs +0 -24
  188. package/dist/common/interactive/index.mjs.map +0 -1
  189. package/dist/common/interactive/list.js +0 -160
  190. package/dist/common/interactive/list.js.map +0 -1
  191. package/dist/common/interactive/list.mjs +0 -134
  192. package/dist/common/interactive/list.mjs.map +0 -1
  193. package/dist/common/interactive/otp-dialog/index.js +0 -35
  194. package/dist/common/interactive/otp-dialog/index.js.map +0 -1
  195. package/dist/common/interactive/otp-dialog/index.mjs +0 -6
  196. package/dist/common/interactive/otp-dialog/index.mjs.map +0 -1
  197. package/dist/common/interactive/otp-dialog/otp-dialog.js +0 -325
  198. package/dist/common/interactive/otp-dialog/otp-dialog.js.map +0 -1
  199. package/dist/common/interactive/otp-dialog/otp-dialog.mjs +0 -303
  200. package/dist/common/interactive/otp-dialog/otp-dialog.mjs.map +0 -1
  201. package/dist/common/interactive/otp-dialog/reducer.js +0 -40
  202. package/dist/common/interactive/otp-dialog/reducer.js.map +0 -1
  203. package/dist/common/interactive/otp-dialog/reducer.mjs +0 -37
  204. package/dist/common/interactive/otp-dialog/reducer.mjs.map +0 -1
  205. package/dist/common/interactive/otp-dialog/types.js +0 -15
  206. package/dist/common/interactive/otp-dialog/types.js.map +0 -1
  207. package/dist/common/interactive/otp-dialog/types.mjs +0 -13
  208. package/dist/common/interactive/otp-dialog/types.mjs.map +0 -1
  209. package/dist/common/interactive/otp-dialog/utils.js +0 -24
  210. package/dist/common/interactive/otp-dialog/utils.js.map +0 -1
  211. package/dist/common/interactive/otp-dialog/utils.mjs +0 -21
  212. package/dist/common/interactive/otp-dialog/utils.mjs.map +0 -1
  213. package/dist/common/interactive/pagination/PaginationSkeleton.js +0 -51
  214. package/dist/common/interactive/pagination/PaginationSkeleton.js.map +0 -1
  215. package/dist/common/interactive/pagination/PaginationSkeleton.mjs +0 -49
  216. package/dist/common/interactive/pagination/PaginationSkeleton.mjs.map +0 -1
  217. package/dist/common/interactive/pagination/index.js +0 -235
  218. package/dist/common/interactive/pagination/index.js.map +0 -1
  219. package/dist/common/interactive/pagination/index.mjs +0 -223
  220. package/dist/common/interactive/pagination/index.mjs.map +0 -1
  221. package/dist/common/interactive/pagination/usePagination.js +0 -28
  222. package/dist/common/interactive/pagination/usePagination.js.map +0 -1
  223. package/dist/common/interactive/pagination/usePagination.mjs +0 -25
  224. package/dist/common/interactive/pagination/usePagination.mjs.map +0 -1
  225. package/dist/common/interactive/popover-wrapper.js +0 -138
  226. package/dist/common/interactive/popover-wrapper.js.map +0 -1
  227. package/dist/common/interactive/popover-wrapper.mjs +0 -116
  228. package/dist/common/interactive/popover-wrapper.mjs.map +0 -1
  229. package/dist/common/interactive/pressable.js +0 -84
  230. package/dist/common/interactive/pressable.js.map +0 -1
  231. package/dist/common/interactive/pressable.mjs +0 -62
  232. package/dist/common/interactive/pressable.mjs.map +0 -1
  233. package/dist/common/interactive/select/context.js +0 -38
  234. package/dist/common/interactive/select/context.js.map +0 -1
  235. package/dist/common/interactive/select/context.mjs +0 -14
  236. package/dist/common/interactive/select/context.mjs.map +0 -1
  237. package/dist/common/interactive/select/index.js +0 -123
  238. package/dist/common/interactive/select/index.js.map +0 -1
  239. package/dist/common/interactive/select/index.mjs +0 -18
  240. package/dist/common/interactive/select/index.mjs.map +0 -1
  241. package/dist/common/interactive/select/select-body.js +0 -89
  242. package/dist/common/interactive/select/select-body.js.map +0 -1
  243. package/dist/common/interactive/select/select-body.mjs +0 -67
  244. package/dist/common/interactive/select/select-body.mjs.map +0 -1
  245. package/dist/common/interactive/select/select-close.js +0 -38
  246. package/dist/common/interactive/select/select-close.js.map +0 -1
  247. package/dist/common/interactive/select/select-close.mjs +0 -16
  248. package/dist/common/interactive/select/select-close.mjs.map +0 -1
  249. package/dist/common/interactive/select/select-content-auto-layout.js +0 -221
  250. package/dist/common/interactive/select/select-content-auto-layout.js.map +0 -1
  251. package/dist/common/interactive/select/select-content-auto-layout.mjs +0 -199
  252. package/dist/common/interactive/select/select-content-auto-layout.mjs.map +0 -1
  253. package/dist/common/interactive/select/select-content-group-auto-layout.js +0 -411
  254. package/dist/common/interactive/select/select-content-group-auto-layout.js.map +0 -1
  255. package/dist/common/interactive/select/select-content-group-auto-layout.mjs +0 -389
  256. package/dist/common/interactive/select/select-content-group-auto-layout.mjs.map +0 -1
  257. package/dist/common/interactive/select/select-content.js +0 -187
  258. package/dist/common/interactive/select/select-content.js.map +0 -1
  259. package/dist/common/interactive/select/select-content.mjs +0 -165
  260. package/dist/common/interactive/select/select-content.mjs.map +0 -1
  261. package/dist/common/interactive/select/select-footer.js +0 -82
  262. package/dist/common/interactive/select/select-footer.js.map +0 -1
  263. package/dist/common/interactive/select/select-footer.mjs +0 -60
  264. package/dist/common/interactive/select/select-footer.mjs.map +0 -1
  265. package/dist/common/interactive/select/select-item.js +0 -214
  266. package/dist/common/interactive/select/select-item.js.map +0 -1
  267. package/dist/common/interactive/select/select-item.mjs +0 -191
  268. package/dist/common/interactive/select/select-item.mjs.map +0 -1
  269. package/dist/common/interactive/select/select-layout.js +0 -66
  270. package/dist/common/interactive/select/select-layout.js.map +0 -1
  271. package/dist/common/interactive/select/select-layout.mjs +0 -41
  272. package/dist/common/interactive/select/select-layout.mjs.map +0 -1
  273. package/dist/common/interactive/select/select-search.js +0 -55
  274. package/dist/common/interactive/select/select-search.js.map +0 -1
  275. package/dist/common/interactive/select/select-search.mjs +0 -33
  276. package/dist/common/interactive/select/select-search.mjs.map +0 -1
  277. package/dist/common/interactive/select/select-states.js +0 -57
  278. package/dist/common/interactive/select/select-states.js.map +0 -1
  279. package/dist/common/interactive/select/select-states.mjs +0 -34
  280. package/dist/common/interactive/select/select-states.mjs.map +0 -1
  281. package/dist/common/interactive/select/select-trigger.js +0 -310
  282. package/dist/common/interactive/select/select-trigger.js.map +0 -1
  283. package/dist/common/interactive/select/select-trigger.mjs +0 -286
  284. package/dist/common/interactive/select/select-trigger.mjs.map +0 -1
  285. package/dist/common/interactive/select/select-value.js +0 -52
  286. package/dist/common/interactive/select/select-value.js.map +0 -1
  287. package/dist/common/interactive/select/select-value.mjs +0 -30
  288. package/dist/common/interactive/select/select-value.mjs.map +0 -1
  289. package/dist/common/interactive/select/select.js +0 -184
  290. package/dist/common/interactive/select/select.js.map +0 -1
  291. package/dist/common/interactive/select/select.mjs +0 -162
  292. package/dist/common/interactive/select/select.mjs.map +0 -1
  293. package/dist/common/interactive/select/types.js +0 -4
  294. package/dist/common/interactive/select/types.js.map +0 -1
  295. package/dist/common/interactive/select/types.mjs +0 -3
  296. package/dist/common/interactive/select/types.mjs.map +0 -1
  297. package/dist/common/interactive/select/utils.js +0 -31
  298. package/dist/common/interactive/select/utils.js.map +0 -1
  299. package/dist/common/interactive/select/utils.mjs +0 -28
  300. package/dist/common/interactive/select/utils.mjs.map +0 -1
  301. package/dist/common/interactive/select/variants.js +0 -27
  302. package/dist/common/interactive/select/variants.js.map +0 -1
  303. package/dist/common/interactive/select/variants.mjs +0 -25
  304. package/dist/common/interactive/select/variants.mjs.map +0 -1
  305. package/dist/common/interactive/select-chip.js +0 -76
  306. package/dist/common/interactive/select-chip.js.map +0 -1
  307. package/dist/common/interactive/select-chip.mjs +0 -74
  308. package/dist/common/interactive/select-chip.mjs.map +0 -1
  309. package/dist/common/interactive/select-level.js +0 -236
  310. package/dist/common/interactive/select-level.js.map +0 -1
  311. package/dist/common/interactive/select-level.mjs +0 -230
  312. package/dist/common/interactive/select-level.mjs.map +0 -1
  313. package/dist/common/interactive/select-range.js +0 -211
  314. package/dist/common/interactive/select-range.js.map +0 -1
  315. package/dist/common/interactive/select-range.mjs +0 -209
  316. package/dist/common/interactive/select-range.mjs.map +0 -1
  317. package/dist/common/interactive/select-with-api.js +0 -767
  318. package/dist/common/interactive/select-with-api.js.map +0 -1
  319. package/dist/common/interactive/select-with-api.mjs +0 -758
  320. package/dist/common/interactive/select-with-api.mjs.map +0 -1
  321. package/dist/common/interactive/select.js +0 -15
  322. package/dist/common/interactive/select.js.map +0 -1
  323. package/dist/common/interactive/select.mjs +0 -4
  324. package/dist/common/interactive/select.mjs.map +0 -1
  325. package/dist/common/interactive/sheet-wrapper.js +0 -105
  326. package/dist/common/interactive/sheet-wrapper.js.map +0 -1
  327. package/dist/common/interactive/sheet-wrapper.mjs +0 -83
  328. package/dist/common/interactive/sheet-wrapper.mjs.map +0 -1
  329. package/dist/common/interactive/table/enhanced-table.js +0 -390
  330. package/dist/common/interactive/table/enhanced-table.js.map +0 -1
  331. package/dist/common/interactive/table/enhanced-table.mjs +0 -388
  332. package/dist/common/interactive/table/enhanced-table.mjs.map +0 -1
  333. package/dist/common/interactive/table/index.js +0 -83
  334. package/dist/common/interactive/table/index.js.map +0 -1
  335. package/dist/common/interactive/table/index.mjs +0 -68
  336. package/dist/common/interactive/table/index.mjs.map +0 -1
  337. package/dist/common/interactive/table/table-pagination.js +0 -12
  338. package/dist/common/interactive/table/table-pagination.js.map +0 -1
  339. package/dist/common/interactive/table/table-pagination.mjs +0 -10
  340. package/dist/common/interactive/table/table-pagination.mjs.map +0 -1
  341. package/dist/common/interactive/table/types.js +0 -4
  342. package/dist/common/interactive/table/types.js.map +0 -1
  343. package/dist/common/interactive/table/types.mjs +0 -3
  344. package/dist/common/interactive/table/types.mjs.map +0 -1
  345. package/dist/common/interactive/time-picker.js +0 -313
  346. package/dist/common/interactive/time-picker.js.map +0 -1
  347. package/dist/common/interactive/time-picker.mjs +0 -307
  348. package/dist/common/interactive/time-picker.mjs.map +0 -1
  349. package/dist/common/interactive/types.js +0 -4
  350. package/dist/common/interactive/types.js.map +0 -1
  351. package/dist/common/interactive/types.mjs +0 -3
  352. package/dist/common/interactive/types.mjs.map +0 -1
  353. package/dist/common/pages/page-404.js +0 -16
  354. package/dist/common/pages/page-404.js.map +0 -1
  355. package/dist/common/pages/page-404.mjs +0 -11
  356. package/dist/common/pages/page-404.mjs.map +0 -1
  357. package/dist/common/pages/page-500.js +0 -30
  358. package/dist/common/pages/page-500.js.map +0 -1
  359. package/dist/common/pages/page-500.mjs +0 -25
  360. package/dist/common/pages/page-500.mjs.map +0 -1
  361. package/dist/components/accordion.js +0 -65
  362. package/dist/components/accordion.js.map +0 -1
  363. package/dist/components/accordion.mjs +0 -39
  364. package/dist/components/accordion.mjs.map +0 -1
  365. package/dist/components/alert-dialog.js +0 -231
  366. package/dist/components/alert-dialog.js.map +0 -1
  367. package/dist/components/alert-dialog.mjs +0 -197
  368. package/dist/components/alert-dialog.mjs.map +0 -1
  369. package/dist/components/alert.js +0 -97
  370. package/dist/components/alert.js.map +0 -1
  371. package/dist/components/alert.mjs +0 -72
  372. package/dist/components/alert.mjs.map +0 -1
  373. package/dist/components/aspect-ratio.js +0 -29
  374. package/dist/components/aspect-ratio.js.map +0 -1
  375. package/dist/components/aspect-ratio.mjs +0 -7
  376. package/dist/components/aspect-ratio.mjs.map +0 -1
  377. package/dist/components/avatar.js +0 -64
  378. package/dist/components/avatar.js.map +0 -1
  379. package/dist/components/avatar.mjs +0 -39
  380. package/dist/components/avatar.mjs.map +0 -1
  381. package/dist/components/badge.js +0 -72
  382. package/dist/components/badge.js.map +0 -1
  383. package/dist/components/badge.mjs +0 -69
  384. package/dist/components/badge.mjs.map +0 -1
  385. package/dist/components/breadcrumb.js +0 -109
  386. package/dist/components/breadcrumb.js.map +0 -1
  387. package/dist/components/breadcrumb.mjs +0 -81
  388. package/dist/components/breadcrumb.mjs.map +0 -1
  389. package/dist/components/button.js +0 -250
  390. package/dist/components/button.js.map +0 -1
  391. package/dist/components/button.mjs +0 -226
  392. package/dist/components/button.mjs.map +0 -1
  393. package/dist/components/calendar.js +0 -681
  394. package/dist/components/calendar.js.map +0 -1
  395. package/dist/components/calendar.mjs +0 -659
  396. package/dist/components/calendar.mjs.map +0 -1
  397. package/dist/components/card.js +0 -98
  398. package/dist/components/card.js.map +0 -1
  399. package/dist/components/card.mjs +0 -71
  400. package/dist/components/card.mjs.map +0 -1
  401. package/dist/components/carousel.js +0 -237
  402. package/dist/components/carousel.js.map +0 -1
  403. package/dist/components/carousel.mjs +0 -208
  404. package/dist/components/carousel.mjs.map +0 -1
  405. package/dist/components/chart.js +0 -252
  406. package/dist/components/chart.js.map +0 -1
  407. package/dist/components/chart.mjs +0 -224
  408. package/dist/components/chart.mjs.map +0 -1
  409. package/dist/components/checkbox.js +0 -97
  410. package/dist/components/checkbox.js.map +0 -1
  411. package/dist/components/checkbox.mjs +0 -74
  412. package/dist/components/checkbox.mjs.map +0 -1
  413. package/dist/components/chip.js +0 -88
  414. package/dist/components/chip.js.map +0 -1
  415. package/dist/components/chip.mjs +0 -82
  416. package/dist/components/chip.mjs.map +0 -1
  417. package/dist/components/collapsible.js +0 -33
  418. package/dist/components/collapsible.js.map +0 -1
  419. package/dist/components/collapsible.mjs +0 -9
  420. package/dist/components/collapsible.mjs.map +0 -1
  421. package/dist/components/command.js +0 -125
  422. package/dist/components/command.js.map +0 -1
  423. package/dist/components/command.mjs +0 -95
  424. package/dist/components/command.mjs.map +0 -1
  425. package/dist/components/context-menu.js +0 -168
  426. package/dist/components/context-menu.js.map +0 -1
  427. package/dist/components/context-menu.mjs +0 -131
  428. package/dist/components/context-menu.mjs.map +0 -1
  429. package/dist/components/dialog.js +0 -192
  430. package/dist/components/dialog.js.map +0 -1
  431. package/dist/components/dialog.mjs +0 -159
  432. package/dist/components/dialog.mjs.map +0 -1
  433. package/dist/components/drawer.js +0 -98
  434. package/dist/components/drawer.js.map +0 -1
  435. package/dist/components/drawer.mjs +0 -67
  436. package/dist/components/drawer.mjs.map +0 -1
  437. package/dist/components/dropdown-menu.js +0 -163
  438. package/dist/components/dropdown-menu.js.map +0 -1
  439. package/dist/components/dropdown-menu.mjs +0 -126
  440. package/dist/components/dropdown-menu.mjs.map +0 -1
  441. package/dist/components/form.js +0 -123
  442. package/dist/components/form.js.map +0 -1
  443. package/dist/components/form.mjs +0 -94
  444. package/dist/components/form.mjs.map +0 -1
  445. package/dist/components/hover-card.js +0 -50
  446. package/dist/components/hover-card.js.map +0 -1
  447. package/dist/components/hover-card.mjs +0 -25
  448. package/dist/components/hover-card.mjs.map +0 -1
  449. package/dist/components/input-otp.js +0 -84
  450. package/dist/components/input-otp.js.map +0 -1
  451. package/dist/components/input-otp.mjs +0 -59
  452. package/dist/components/input-otp.mjs.map +0 -1
  453. package/dist/components/input.js +0 -858
  454. package/dist/components/input.js.map +0 -1
  455. package/dist/components/input.mjs +0 -831
  456. package/dist/components/input.mjs.map +0 -1
  457. package/dist/components/label.js +0 -38
  458. package/dist/components/label.js.map +0 -1
  459. package/dist/components/label.mjs +0 -15
  460. package/dist/components/label.mjs.map +0 -1
  461. package/dist/components/lottie.js +0 -59
  462. package/dist/components/lottie.js.map +0 -1
  463. package/dist/components/lottie.mjs +0 -49
  464. package/dist/components/lottie.mjs.map +0 -1
  465. package/dist/components/menubar.js +0 -195
  466. package/dist/components/menubar.js.map +0 -1
  467. package/dist/components/menubar.mjs +0 -157
  468. package/dist/components/menubar.mjs.map +0 -1
  469. package/dist/components/navigation-menu.js +0 -126
  470. package/dist/components/navigation-menu.js.map +0 -1
  471. package/dist/components/navigation-menu.mjs +0 -95
  472. package/dist/components/navigation-menu.mjs.map +0 -1
  473. package/dist/components/pagination.js +0 -112
  474. package/dist/components/pagination.js.map +0 -1
  475. package/dist/components/pagination.mjs +0 -84
  476. package/dist/components/pagination.mjs.map +0 -1
  477. package/dist/components/popover.js +0 -63
  478. package/dist/components/popover.js.map +0 -1
  479. package/dist/components/popover.mjs +0 -38
  480. package/dist/components/popover.mjs.map +0 -1
  481. package/dist/components/progress.js +0 -50
  482. package/dist/components/progress.js.map +0 -1
  483. package/dist/components/progress.mjs +0 -27
  484. package/dist/components/progress.mjs.map +0 -1
  485. package/dist/components/radio-group.js +0 -91
  486. package/dist/components/radio-group.js.map +0 -1
  487. package/dist/components/radio-group.mjs +0 -67
  488. package/dist/components/radio-group.mjs.map +0 -1
  489. package/dist/components/resizable.js +0 -59
  490. package/dist/components/resizable.js.map +0 -1
  491. package/dist/components/resizable.mjs +0 -35
  492. package/dist/components/resizable.mjs.map +0 -1
  493. package/dist/components/responsive-popover.js +0 -74
  494. package/dist/components/responsive-popover.js.map +0 -1
  495. package/dist/components/responsive-popover.mjs +0 -50
  496. package/dist/components/responsive-popover.mjs.map +0 -1
  497. package/dist/components/scroll-area.js +0 -63
  498. package/dist/components/scroll-area.js.map +0 -1
  499. package/dist/components/scroll-area.mjs +0 -39
  500. package/dist/components/scroll-area.mjs.map +0 -1
  501. package/dist/components/separator.js +0 -47
  502. package/dist/components/separator.js.map +0 -1
  503. package/dist/components/separator.mjs +0 -24
  504. package/dist/components/separator.mjs.map +0 -1
  505. package/dist/components/sheet.js +0 -239
  506. package/dist/components/sheet.js.map +0 -1
  507. package/dist/components/sheet.mjs +0 -206
  508. package/dist/components/sheet.mjs.map +0 -1
  509. package/dist/components/sidebar.js +0 -888
  510. package/dist/components/sidebar.js.map +0 -1
  511. package/dist/components/sidebar.mjs +0 -842
  512. package/dist/components/sidebar.mjs.map +0 -1
  513. package/dist/components/skeleton.js +0 -153
  514. package/dist/components/skeleton.js.map +0 -1
  515. package/dist/components/skeleton.mjs +0 -127
  516. package/dist/components/skeleton.mjs.map +0 -1
  517. package/dist/components/slider.js +0 -45
  518. package/dist/components/slider.js.map +0 -1
  519. package/dist/components/slider.mjs +0 -22
  520. package/dist/components/slider.mjs.map +0 -1
  521. package/dist/components/sonner.js +0 -76
  522. package/dist/components/sonner.js.map +0 -1
  523. package/dist/components/sonner.mjs +0 -71
  524. package/dist/components/sonner.mjs.map +0 -1
  525. package/dist/components/spinner.js +0 -59
  526. package/dist/components/spinner.js.map +0 -1
  527. package/dist/components/spinner.mjs +0 -36
  528. package/dist/components/spinner.mjs.map +0 -1
  529. package/dist/components/stepper.js +0 -726
  530. package/dist/components/stepper.js.map +0 -1
  531. package/dist/components/stepper.mjs +0 -702
  532. package/dist/components/stepper.mjs.map +0 -1
  533. package/dist/components/switch.js +0 -85
  534. package/dist/components/switch.js.map +0 -1
  535. package/dist/components/switch.mjs +0 -62
  536. package/dist/components/switch.mjs.map +0 -1
  537. package/dist/components/table.js +0 -91
  538. package/dist/components/table.js.map +0 -1
  539. package/dist/components/table.mjs +0 -62
  540. package/dist/components/table.mjs.map +0 -1
  541. package/dist/components/tabs.js +0 -287
  542. package/dist/components/tabs.js.map +0 -1
  543. package/dist/components/tabs.mjs +0 -261
  544. package/dist/components/tabs.mjs.map +0 -1
  545. package/dist/components/textarea.js +0 -200
  546. package/dist/components/textarea.js.map +0 -1
  547. package/dist/components/textarea.mjs +0 -174
  548. package/dist/components/textarea.mjs.map +0 -1
  549. package/dist/components/toggle-group.js +0 -67
  550. package/dist/components/toggle-group.js.map +0 -1
  551. package/dist/components/toggle-group.mjs +0 -43
  552. package/dist/components/toggle-group.mjs.map +0 -1
  553. package/dist/components/toggle.js +0 -63
  554. package/dist/components/toggle.js.map +0 -1
  555. package/dist/components/toggle.mjs +0 -39
  556. package/dist/components/toggle.mjs.map +0 -1
  557. package/dist/components/tooltip.js +0 -172
  558. package/dist/components/tooltip.js.map +0 -1
  559. package/dist/components/tooltip.mjs +0 -145
  560. package/dist/components/tooltip.mjs.map +0 -1
  561. package/dist/hooks/index.js +0 -27
  562. package/dist/hooks/index.js.map +0 -1
  563. package/dist/hooks/index.mjs +0 -6
  564. package/dist/hooks/index.mjs.map +0 -1
  565. package/dist/hooks/useCopyToClipboard.js +0 -59
  566. package/dist/hooks/useCopyToClipboard.js.map +0 -1
  567. package/dist/hooks/useCopyToClipboard.mjs +0 -57
  568. package/dist/hooks/useCopyToClipboard.mjs.map +0 -1
  569. package/dist/hooks/useDevice.js +0 -20
  570. package/dist/hooks/useDevice.js.map +0 -1
  571. package/dist/hooks/useDevice.mjs +0 -14
  572. package/dist/hooks/useDevice.mjs.map +0 -1
  573. package/dist/hooks/useDialogTracking.js +0 -113
  574. package/dist/hooks/useDialogTracking.js.map +0 -1
  575. package/dist/hooks/useDialogTracking.mjs +0 -91
  576. package/dist/hooks/useDialogTracking.mjs.map +0 -1
  577. package/dist/hooks/useIsMounted.js +0 -15
  578. package/dist/hooks/useIsMounted.js.map +0 -1
  579. package/dist/hooks/useIsMounted.mjs +0 -13
  580. package/dist/hooks/useIsMounted.mjs.map +0 -1
  581. package/dist/hooks/usePathname.js +0 -85
  582. package/dist/hooks/usePathname.js.map +0 -1
  583. package/dist/hooks/usePathname.mjs +0 -83
  584. package/dist/hooks/usePathname.mjs.map +0 -1
  585. package/dist/icons.js +0 -14
  586. package/dist/icons.js.map +0 -1
  587. package/dist/icons.mjs +0 -3
  588. package/dist/icons.mjs.map +0 -1
  589. package/dist/lib/formatCurrency.js +0 -187
  590. package/dist/lib/formatCurrency.js.map +0 -1
  591. package/dist/lib/formatCurrency.mjs +0 -185
  592. package/dist/lib/formatCurrency.mjs.map +0 -1
  593. package/dist/lib/helpers.js +0 -171
  594. package/dist/lib/helpers.js.map +0 -1
  595. package/dist/lib/helpers.mjs +0 -157
  596. package/dist/lib/helpers.mjs.map +0 -1
  597. package/dist/lib/index.js +0 -33
  598. package/dist/lib/index.js.map +0 -1
  599. package/dist/lib/index.mjs +0 -6
  600. package/dist/lib/index.mjs.map +0 -1
  601. package/dist/lib/types.js +0 -11
  602. package/dist/lib/types.js.map +0 -1
  603. package/dist/lib/types.mjs +0 -9
  604. package/dist/lib/types.mjs.map +0 -1
  605. package/dist/lib/utils.js +0 -24
  606. package/dist/lib/utils.js.map +0 -1
  607. package/dist/lib/utils.mjs +0 -19
  608. package/dist/lib/utils.mjs.map +0 -1
  609. package/dist/providers/DeviceSizeWatcher/index.js +0 -72
  610. package/dist/providers/DeviceSizeWatcher/index.js.map +0 -1
  611. package/dist/providers/DeviceSizeWatcher/index.mjs +0 -47
  612. package/dist/providers/DeviceSizeWatcher/index.mjs.map +0 -1
  613. package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.js +0 -22
  614. package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.js.map +0 -1
  615. package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.mjs +0 -20
  616. package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.mjs.map +0 -1
  617. package/dist/providers/UISystemProvider.js +0 -197
  618. package/dist/providers/UISystemProvider.js.map +0 -1
  619. package/dist/providers/UISystemProvider.mjs +0 -188
  620. package/dist/providers/UISystemProvider.mjs.map +0 -1
  621. package/dist/providers/index.js +0 -24
  622. package/dist/providers/index.js.map +0 -1
  623. package/dist/providers/index.mjs +0 -3
  624. package/dist/providers/index.mjs.map +0 -1
  625. package/dist/theme.js +0 -333
  626. package/dist/theme.js.map +0 -1
  627. package/dist/theme.mjs +0 -327
  628. package/dist/theme.mjs.map +0 -1
@@ -1,250 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var reactSlot = require('@radix-ui/react-slot');
5
- var classVarianceAuthority = require('class-variance-authority');
6
- var React = require('react');
7
- var types = require('@/lib/types');
8
- var utils = require('@/lib/utils');
9
- var UISystemProvider = require('@/providers/UISystemProvider');
10
- var spinner = require('./spinner');
11
-
12
- function _interopNamespace(e) {
13
- if (e && e.__esModule) return e;
14
- var n = Object.create(null);
15
- if (e) {
16
- Object.keys(e).forEach(function (k) {
17
- if (k !== 'default') {
18
- var d = Object.getOwnPropertyDescriptor(e, k);
19
- Object.defineProperty(n, k, d.get ? d : {
20
- enumerable: true,
21
- get: function () { return e[k]; }
22
- });
23
- }
24
- });
25
- }
26
- n.default = e;
27
- return Object.freeze(n);
28
- }
29
-
30
- var React__namespace = /*#__PURE__*/_interopNamespace(React);
31
-
32
- const buttonVariants = classVarianceAuthority.cva(
33
- "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-base font-medium transition-colors focus-visible:outline-none disabled:pointer-events-none disabled:icon-muted-foreground disabled:text-muted-foreground disabled:bg-muted disabled:border-border data-[loading=true]:pointer-events-none data-[loading=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-6 [&_svg]:shrink-0",
34
- {
35
- variants: {
36
- variant: {
37
- default: "bg-primary text-primary-foreground icon-primary-foreground hover:bg-primary/90",
38
- destructive: "bg-destructive text-destructive-foreground icon-destructive-foreground hover:bg-destructive/90",
39
- outline: "border border-input bg-background hover:bg-accent hover:border-accent",
40
- secondary: "bg-secondary border border-primary text-secondary-foreground icon-secondary-foreground hover:bg-accent active:bg-accent/80",
41
- ghost: "hover:bg-accent hover:text-accent-foreground hover:icon-accent-foreground",
42
- link: "text-primary icon-primary underline-offset-4 hover:underline",
43
- plain: "text-primary icon-primary hover:text-primary/80 w-max h-max",
44
- "plain-error": "text-red-500 hover:text-red-500/80 w-max h-max",
45
- icon: "bg-card text-foreground icon-foreground hover:bg-muted border border-border rounded-full shadow [&_svg]:size-6",
46
- // Primary variants with solid colors
47
- "primary-success": "bg-green-500 text-white icon-white hover:bg-green-600 active:bg-green-700",
48
- "primary-warning": "bg-yellow-500 text-white icon-white hover:bg-yellow-600 active:bg-yellow-700",
49
- "primary-info": "bg-blue-500 text-white icon-white hover:bg-primary active:bg-blue-700",
50
- "primary-error": "bg-red-500 text-white icon-white hover:bg-red-600 active:bg-red-700",
51
- // Soft variants with lighter backgrounds
52
- "soft-success": "bg-green-50 text-green-600 icon-green-600 hover:bg-green-100 active:bg-green-200 border border-green-200",
53
- "soft-warning": "bg-yellow-50 text-yellow-600 icon-yellow-600 hover:bg-yellow-100 active:bg-yellow-200 border border-yellow-200",
54
- "soft-info": "bg-blue-50 text-primary icon-primary hover:bg-blue-100 active:bg-blue-200 border border-blue-200",
55
- "soft-error": "bg-red-50 text-red-600 icon-red-600 hover:bg-red-100 active:bg-red-200 border border-red-200",
56
- // Primary variants with solid colors
57
- "heavy-success": "bg-green-500 text-white icon-white hover:bg-green-600 active:bg-green-700",
58
- "heavy-warning": "bg-yellow-500 text-white icon-white hover:bg-yellow-600 active:bg-yellow-700",
59
- "heavy-info": "bg-blue-500 text-white icon-white hover:bg-primary active:bg-blue-700",
60
- "heavy-error": "bg-red-500 text-white icon-white hover:bg-red-600 active:bg-red-700",
61
- // Soft variants with lighter backgrounds
62
- "light-success": "bg-green-50 text-green-600 icon-green-600 hover:bg-green-100 active:bg-green-200 border border-green-200",
63
- "light-warning": "bg-yellow-50 text-yellow-600 icon-yellow-600 hover:bg-yellow-100 active:bg-yellow-200 border border-yellow-200",
64
- "light-info": "bg-blue-50 text-primary icon-primary hover:bg-blue-100 active:bg-blue-200 border border-blue-200",
65
- "light-error": "bg-red-50 text-red-600 icon-red-600 hover:bg-red-100 active:bg-red-200 border border-red-200",
66
- // Outline variants with borders
67
- "outline-success": "border border-green-500 bg-transparent text-green-600 icon-green-600 hover:bg-green-50 active:bg-green-100",
68
- "outline-warning": "border border-yellow-600 bg-transparent text-yellow-600 icon-yellow-600 hover:bg-yellow-50 active:bg-yellow-100",
69
- "outline-info": "border border-blue-500 bg-transparent text-primary icon-primary hover:bg-blue-50 active:bg-blue-100",
70
- "outline-error": "border border-red-500 bg-transparent text-red-600 icon-red-600 hover:bg-red-50 active:bg-red-100"
71
- },
72
- rounded: {
73
- none: "rounded-none",
74
- sm: "rounded-sm",
75
- md: "rounded-md",
76
- lg: "rounded-lg",
77
- xl: "rounded-xl",
78
- full: "rounded-full"
79
- },
80
- size: {
81
- default: "h-12 px-3 py-2",
82
- sm: "h-10 px-3 py-2 [&_svg]:size-4",
83
- lg: "h-14 px-3 py-2",
84
- icon: "h-10 w-10"
85
- }
86
- },
87
- defaultVariants: {
88
- variant: "default",
89
- size: "default",
90
- rounded: "md"
91
- }
92
- }
93
- );
94
- const Button = React__namespace.forwardRef(
95
- ({
96
- className,
97
- trackingData,
98
- trackingIndex,
99
- trackingName,
100
- blockSendTracking,
101
- variant,
102
- size,
103
- rounded,
104
- asChild = false,
105
- loading = false,
106
- children,
107
- onClick,
108
- disabled,
109
- ...props
110
- }, ref) => {
111
- const Comp = asChild ? reactSlot.Slot : "button";
112
- const getSpinnerVariant = () => {
113
- if (variant === "default" || variant === "primary-success" || variant === "primary-warning" || variant === "primary-info" || variant === "primary-error") {
114
- return "white";
115
- }
116
- if (variant === "soft-success") return "success";
117
- if (variant === "soft-warning") return "warning";
118
- if (variant === "soft-info") return "info";
119
- if (variant === "soft-error") return "error";
120
- if (variant === "outline-success") return "success";
121
- if (variant === "outline-warning") return "warning";
122
- if (variant === "outline-info") return "info";
123
- if (variant === "outline-error") return "error";
124
- if (variant === "destructive") return "white";
125
- return "primary";
126
- };
127
- const spinnerVariant = getSpinnerVariant();
128
- const { sendTrack } = UISystemProvider.useUISystemContext() || {};
129
- const onClickFn = (e) => {
130
- if (disabled || loading) {
131
- return;
132
- }
133
- onClick?.(e);
134
- if (!sendTrack || blockSendTracking) return;
135
- const targetElm = e.target;
136
- const buttonText = targetElm.innerText || targetElm.textContent || "";
137
- const finalTrackingName = trackingName || `click_btn_${trackingData?.identity}`;
138
- const otherData = {};
139
- if (trackingIndex !== void 0 && trackingIndex !== null) {
140
- otherData.index = trackingIndex;
141
- }
142
- const mergedTrackingData = { ...trackingData };
143
- if (!mergedTrackingData.object_name && buttonText) {
144
- mergedTrackingData.object_name = buttonText.trim();
145
- }
146
- sendTrack(finalTrackingName, types.TRACKING_TYPE.click, {
147
- ...otherData,
148
- ...mergedTrackingData
149
- });
150
- };
151
- const isIconElement = (element) => {
152
- if (element.type === "svg") {
153
- return true;
154
- }
155
- const getComponentName = (type) => {
156
- if (!type) return "";
157
- if (type.displayName) return type.displayName;
158
- if (type.name) return type.name;
159
- if (type.$$typeof === /* @__PURE__ */ Symbol.for("react.memo") && type.type) {
160
- return getComponentName(type.type);
161
- }
162
- if (type.$$typeof === /* @__PURE__ */ Symbol.for("react.forward_ref") && type.render) {
163
- return getComponentName(type.render);
164
- }
165
- return "";
166
- };
167
- if (element.type) {
168
- const componentName = getComponentName(element.type);
169
- const lowerName = componentName.toLowerCase();
170
- if (lowerName.includes("icon") || lowerName.includes("svg") || componentName.match(/Icon\d+$/) || // Matches Icon16, Icon24, etc.
171
- componentName.match(/^[A-Z][a-zA-Z]*Icon/)) {
172
- return true;
173
- }
174
- }
175
- if (element.props?.className && typeof element.props.className === "string") {
176
- const className2 = element.props.className;
177
- if (className2.includes("ic-") || className2.includes("icon-")) {
178
- return true;
179
- }
180
- }
181
- if (element.props?.viewBox || element.props?.xmlns === "http://www.w3.org/2000/svg") {
182
- return true;
183
- }
184
- return false;
185
- };
186
- const filterChildren = (children2) => {
187
- return React__namespace.Children.map(children2, (child) => {
188
- if (!React__namespace.isValidElement(child)) {
189
- return child;
190
- }
191
- if (isIconElement(child)) {
192
- return null;
193
- }
194
- if ((child.type === "div" || child.type === "span") && child.props?.children) {
195
- const filteredChildren = filterChildren(child.props.children);
196
- const hasContent = React__namespace.Children.toArray(filteredChildren).some(
197
- (c) => c !== null && c !== void 0
198
- );
199
- if (!hasContent) {
200
- return null;
201
- }
202
- return React__namespace.cloneElement(child, {}, filteredChildren);
203
- }
204
- return child;
205
- });
206
- };
207
- const renderChildren = () => {
208
- if (!loading) return children;
209
- return filterChildren(children);
210
- };
211
- const finalRounded = size === "icon" && rounded === void 0 ? "full" : rounded;
212
- return /* @__PURE__ */ jsxRuntime.jsxs(
213
- Comp,
214
- {
215
- className: utils.cn(buttonVariants({ variant, size, rounded: finalRounded, className })),
216
- ref,
217
- onClick: onClickFn,
218
- disabled: disabled && !loading,
219
- "data-loading": loading,
220
- ...props,
221
- children: [
222
- loading && /* @__PURE__ */ jsxRuntime.jsx(spinner.Spinner, { size: "sm", variant: spinnerVariant }),
223
- renderChildren()
224
- ]
225
- }
226
- );
227
- }
228
- );
229
- Button.displayName = "Button";
230
- const buttonGroupVariants = classVarianceAuthority.cva("flex", {
231
- variants: {
232
- direction: {
233
- horizontal: "space-x-3",
234
- vertical: "space-y-2"
235
- }
236
- }
237
- });
238
- const ButtonGroup = React__namespace.forwardRef(
239
- ({ asChild, className, direction = "horizontal", ...props }, ref) => {
240
- const Comp = asChild ? reactSlot.Slot : "div";
241
- return /* @__PURE__ */ jsxRuntime.jsx(Comp, { ref, className: utils.cn(buttonGroupVariants({ direction, className })), ...props });
242
- }
243
- );
244
- ButtonGroup.displayName = "ButtonGroup";
245
-
246
- exports.Button = Button;
247
- exports.ButtonGroup = ButtonGroup;
248
- exports.buttonVariants = buttonVariants;
249
- //# sourceMappingURL=button.js.map
250
- //# sourceMappingURL=button.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/components/button.tsx"],"names":["cva","React","Slot","useUISystemContext","TRACKING_TYPE","className","children","jsxs","cn","jsx","Spinner"],"mappings":"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","file":"button.js","sourcesContent":["import { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport { TRACKING_TYPE, TrackingPropsType } from '@/lib/types';\nimport { cn } from '@/lib/utils';\nimport { useUISystemContext } from '@/providers/UISystemProvider';\nimport { Spinner } from './spinner';\n\nconst buttonVariants = cva(\n 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-base font-medium transition-colors focus-visible:outline-none disabled:pointer-events-none disabled:icon-muted-foreground disabled:text-muted-foreground disabled:bg-muted disabled:border-border data-[loading=true]:pointer-events-none data-[loading=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-6 [&_svg]:shrink-0',\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground icon-primary-foreground hover:bg-primary/90',\n destructive:\n 'bg-destructive text-destructive-foreground icon-destructive-foreground hover:bg-destructive/90',\n outline: 'border border-input bg-background hover:bg-accent hover:border-accent',\n secondary:\n 'bg-secondary border border-primary text-secondary-foreground icon-secondary-foreground hover:bg-accent active:bg-accent/80',\n ghost: 'hover:bg-accent hover:text-accent-foreground hover:icon-accent-foreground',\n link: 'text-primary icon-primary underline-offset-4 hover:underline',\n plain: 'text-primary icon-primary hover:text-primary/80 w-max h-max',\n 'plain-error': 'text-red-500 hover:text-red-500/80 w-max h-max',\n icon: 'bg-card text-foreground icon-foreground hover:bg-muted border border-border rounded-full shadow [&_svg]:size-6',\n // Primary variants with solid colors\n 'primary-success':\n 'bg-green-500 text-white icon-white hover:bg-green-600 active:bg-green-700',\n 'primary-warning':\n 'bg-yellow-500 text-white icon-white hover:bg-yellow-600 active:bg-yellow-700',\n 'primary-info': 'bg-blue-500 text-white icon-white hover:bg-primary active:bg-blue-700',\n 'primary-error': 'bg-red-500 text-white icon-white hover:bg-red-600 active:bg-red-700',\n // Soft variants with lighter backgrounds\n 'soft-success':\n 'bg-green-50 text-green-600 icon-green-600 hover:bg-green-100 active:bg-green-200 border border-green-200',\n 'soft-warning':\n 'bg-yellow-50 text-yellow-600 icon-yellow-600 hover:bg-yellow-100 active:bg-yellow-200 border border-yellow-200',\n 'soft-info':\n 'bg-blue-50 text-primary icon-primary hover:bg-blue-100 active:bg-blue-200 border border-blue-200',\n 'soft-error':\n 'bg-red-50 text-red-600 icon-red-600 hover:bg-red-100 active:bg-red-200 border border-red-200',\n\n // Primary variants with solid colors\n 'heavy-success':\n 'bg-green-500 text-white icon-white hover:bg-green-600 active:bg-green-700',\n 'heavy-warning':\n 'bg-yellow-500 text-white icon-white hover:bg-yellow-600 active:bg-yellow-700',\n 'heavy-info': 'bg-blue-500 text-white icon-white hover:bg-primary active:bg-blue-700',\n 'heavy-error': 'bg-red-500 text-white icon-white hover:bg-red-600 active:bg-red-700',\n // Soft variants with lighter backgrounds\n 'light-success':\n 'bg-green-50 text-green-600 icon-green-600 hover:bg-green-100 active:bg-green-200 border border-green-200',\n 'light-warning':\n 'bg-yellow-50 text-yellow-600 icon-yellow-600 hover:bg-yellow-100 active:bg-yellow-200 border border-yellow-200',\n 'light-info':\n 'bg-blue-50 text-primary icon-primary hover:bg-blue-100 active:bg-blue-200 border border-blue-200',\n 'light-error':\n 'bg-red-50 text-red-600 icon-red-600 hover:bg-red-100 active:bg-red-200 border border-red-200',\n\n // Outline variants with borders\n 'outline-success':\n 'border border-green-500 bg-transparent text-green-600 icon-green-600 hover:bg-green-50 active:bg-green-100',\n 'outline-warning':\n 'border border-yellow-600 bg-transparent text-yellow-600 icon-yellow-600 hover:bg-yellow-50 active:bg-yellow-100',\n 'outline-info':\n 'border border-blue-500 bg-transparent text-primary icon-primary hover:bg-blue-50 active:bg-blue-100',\n 'outline-error':\n 'border border-red-500 bg-transparent text-red-600 icon-red-600 hover:bg-red-50 active:bg-red-100',\n },\n rounded: {\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-lg',\n xl: 'rounded-xl',\n full: 'rounded-full',\n },\n size: {\n default: 'h-12 px-3 py-2',\n sm: 'h-10 px-3 py-2 [&_svg]:size-4',\n lg: 'h-14 px-3 py-2',\n icon: 'h-10 w-10',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n rounded: 'md',\n },\n },\n);\n\ninterface TrackingData {\n [key: string]: any;\n identity?: string;\n object_name?: string; // UI button name\n}\n\nexport interface ButtonProps\n extends\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n TrackingPropsType,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n loading?: boolean;\n trackingData?: TrackingData;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n trackingData,\n trackingIndex,\n trackingName,\n blockSendTracking,\n variant,\n size,\n rounded,\n asChild = false,\n loading = false,\n children,\n onClick,\n disabled,\n ...props\n },\n ref,\n ) => {\n const Comp = asChild ? Slot : 'button';\n\n // Determine spinner color based on button variant to match text color\n const getSpinnerVariant = ():\n | 'white'\n | 'primary'\n | 'success'\n | 'warning'\n | 'info'\n | 'error' => {\n // Primary variants: white text/spinner on colored background\n if (\n variant === 'default' ||\n variant === 'primary-success' ||\n variant === 'primary-warning' ||\n variant === 'primary-info' ||\n variant === 'primary-error'\n ) {\n return 'white';\n }\n\n // Soft variants: colored text/spinner on light background\n if (variant === 'soft-success') return 'success';\n if (variant === 'soft-warning') return 'warning';\n if (variant === 'soft-info') return 'info';\n if (variant === 'soft-error') return 'error';\n\n // Outline variants: colored text/spinner with colored border\n if (variant === 'outline-success') return 'success';\n if (variant === 'outline-warning') return 'warning';\n if (variant === 'outline-info') return 'info';\n if (variant === 'outline-error') return 'error';\n\n // Destructive variant: white text/spinner on red background\n if (variant === 'destructive') return 'white';\n\n // Default for other variants (secondary, outline, ghost)\n return 'primary';\n };\n\n const spinnerVariant = getSpinnerVariant();\n\n const { sendTrack } = useUISystemContext() || {};\n\n const onClickFn: React.MouseEventHandler<any> = (e) => {\n if (disabled || loading) {\n return;\n }\n onClick?.(e);\n\n // Only track if sendTrack exists and tracking is not blocked\n if (!sendTrack || blockSendTracking) return;\n\n const targetElm = e.target as HTMLElement;\n const buttonText = targetElm.innerText || targetElm.textContent || '';\n\n // Auto-generate trackingName based on button type if not provided\n const finalTrackingName = trackingName || `click_btn_${trackingData?.identity}`;\n\n // Prepare tracking data\n const otherData: Record<string, any> = {};\n if (trackingIndex !== undefined && trackingIndex !== null) {\n otherData.index = trackingIndex;\n }\n\n // Auto-extract object_name from button text if not provided\n const mergedTrackingData = { ...trackingData };\n if (!mergedTrackingData.object_name && buttonText) {\n mergedTrackingData.object_name = buttonText.trim();\n }\n\n // Send tracking event\n sendTrack(finalTrackingName, TRACKING_TYPE.click, {\n ...otherData,\n ...mergedTrackingData,\n });\n };\n\n const isIconElement = (element: React.ReactElement): boolean => {\n // Check if it's an SVG element directly\n if (element.type === 'svg') {\n return true;\n }\n\n // Get component name from various React wrapper types\n const getComponentName = (type: any): string => {\n if (!type) return '';\n\n // Direct function/class component\n if (type.displayName) return type.displayName;\n if (type.name) return type.name;\n\n // React.memo wrapped component\n if (type.$$typeof === Symbol.for('react.memo') && type.type) {\n return getComponentName(type.type);\n }\n\n // React.forwardRef wrapped component\n if (type.$$typeof === Symbol.for('react.forward_ref') && type.render) {\n return getComponentName(type.render);\n }\n\n return '';\n };\n\n // Check if element is a React component\n if (element.type) {\n const componentName = getComponentName(element.type);\n const lowerName = componentName.toLowerCase();\n\n // Check for icon-related component names\n if (\n lowerName.includes('icon') ||\n lowerName.includes('svg') ||\n componentName.match(/Icon\\d+$/) || // Matches Icon16, Icon24, etc.\n componentName.match(/^[A-Z][a-zA-Z]*Icon/) // Matches CheckIcon, AddIcon, etc.\n ) {\n return true;\n }\n }\n\n // Check className for icon-related classes\n if (element.props?.className && typeof element.props.className === 'string') {\n const className = element.props.className;\n if (className.includes('ic-') || className.includes('icon-')) {\n return true;\n }\n }\n\n // Check if element has SVG-related props\n if (element.props?.viewBox || element.props?.xmlns === 'http://www.w3.org/2000/svg') {\n return true;\n }\n\n return false;\n };\n\n const filterChildren = (children: React.ReactNode): React.ReactNode => {\n return React.Children.map(children, (child) => {\n if (!React.isValidElement(child)) {\n return child;\n }\n\n // If it's an icon element, hide it completely\n if (isIconElement(child)) {\n return null;\n }\n\n // If it's a wrapper (div/span) that might contain icons, filter recursively\n if ((child.type === 'div' || child.type === 'span') && child.props?.children) {\n const filteredChildren = filterChildren(child.props.children);\n\n // If all children were filtered out, don't render the wrapper\n const hasContent = React.Children.toArray(filteredChildren).some(\n (c) => c !== null && c !== undefined,\n );\n\n if (!hasContent) {\n return null;\n }\n\n return React.cloneElement(child, {}, filteredChildren);\n }\n\n return child;\n });\n };\n\n const renderChildren = () => {\n if (!loading) return children;\n\n // When loading, filter out all icon elements but keep text content\n return filterChildren(children);\n };\n\n // Auto-set rounded to 'full' for icon size if not explicitly provided\n const finalRounded = size === 'icon' && rounded === undefined ? 'full' : rounded;\n\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, rounded: finalRounded, className }))}\n ref={ref}\n onClick={onClickFn}\n disabled={disabled && !loading}\n data-loading={loading}\n {...props}\n >\n {loading && <Spinner size=\"sm\" variant={spinnerVariant} />}\n {renderChildren()}\n </Comp>\n );\n },\n);\nButton.displayName = 'Button';\n\nconst buttonGroupVariants = cva('flex', {\n variants: {\n direction: {\n horizontal: 'space-x-3',\n vertical: 'space-y-2',\n },\n },\n});\n\ninterface ButtonGroupProps\n extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof buttonGroupVariants> {\n asChild?: boolean;\n}\n\nconst ButtonGroup = React.forwardRef<HTMLDivElement, ButtonGroupProps>(\n ({ asChild, className, direction = 'horizontal', ...props }, ref) => {\n const Comp = asChild ? Slot : 'div';\n\n return (\n <Comp ref={ref} className={cn(buttonGroupVariants({ direction, className }))} {...props} />\n );\n },\n);\n\nButtonGroup.displayName = 'ButtonGroup';\n\nexport { Button, ButtonGroup, buttonVariants };\n"]}
@@ -1,226 +0,0 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
2
- import { Slot } from '@radix-ui/react-slot';
3
- import { cva } from 'class-variance-authority';
4
- import * as React from 'react';
5
- import { TRACKING_TYPE } from '@/lib/types';
6
- import { cn } from '@/lib/utils';
7
- import { useUISystemContext } from '@/providers/UISystemProvider';
8
- import { Spinner } from './spinner';
9
-
10
- const buttonVariants = cva(
11
- "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-base font-medium transition-colors focus-visible:outline-none disabled:pointer-events-none disabled:icon-muted-foreground disabled:text-muted-foreground disabled:bg-muted disabled:border-border data-[loading=true]:pointer-events-none data-[loading=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-6 [&_svg]:shrink-0",
12
- {
13
- variants: {
14
- variant: {
15
- default: "bg-primary text-primary-foreground icon-primary-foreground hover:bg-primary/90",
16
- destructive: "bg-destructive text-destructive-foreground icon-destructive-foreground hover:bg-destructive/90",
17
- outline: "border border-input bg-background hover:bg-accent hover:border-accent",
18
- secondary: "bg-secondary border border-primary text-secondary-foreground icon-secondary-foreground hover:bg-accent active:bg-accent/80",
19
- ghost: "hover:bg-accent hover:text-accent-foreground hover:icon-accent-foreground",
20
- link: "text-primary icon-primary underline-offset-4 hover:underline",
21
- plain: "text-primary icon-primary hover:text-primary/80 w-max h-max",
22
- "plain-error": "text-red-500 hover:text-red-500/80 w-max h-max",
23
- icon: "bg-card text-foreground icon-foreground hover:bg-muted border border-border rounded-full shadow [&_svg]:size-6",
24
- // Primary variants with solid colors
25
- "primary-success": "bg-green-500 text-white icon-white hover:bg-green-600 active:bg-green-700",
26
- "primary-warning": "bg-yellow-500 text-white icon-white hover:bg-yellow-600 active:bg-yellow-700",
27
- "primary-info": "bg-blue-500 text-white icon-white hover:bg-primary active:bg-blue-700",
28
- "primary-error": "bg-red-500 text-white icon-white hover:bg-red-600 active:bg-red-700",
29
- // Soft variants with lighter backgrounds
30
- "soft-success": "bg-green-50 text-green-600 icon-green-600 hover:bg-green-100 active:bg-green-200 border border-green-200",
31
- "soft-warning": "bg-yellow-50 text-yellow-600 icon-yellow-600 hover:bg-yellow-100 active:bg-yellow-200 border border-yellow-200",
32
- "soft-info": "bg-blue-50 text-primary icon-primary hover:bg-blue-100 active:bg-blue-200 border border-blue-200",
33
- "soft-error": "bg-red-50 text-red-600 icon-red-600 hover:bg-red-100 active:bg-red-200 border border-red-200",
34
- // Primary variants with solid colors
35
- "heavy-success": "bg-green-500 text-white icon-white hover:bg-green-600 active:bg-green-700",
36
- "heavy-warning": "bg-yellow-500 text-white icon-white hover:bg-yellow-600 active:bg-yellow-700",
37
- "heavy-info": "bg-blue-500 text-white icon-white hover:bg-primary active:bg-blue-700",
38
- "heavy-error": "bg-red-500 text-white icon-white hover:bg-red-600 active:bg-red-700",
39
- // Soft variants with lighter backgrounds
40
- "light-success": "bg-green-50 text-green-600 icon-green-600 hover:bg-green-100 active:bg-green-200 border border-green-200",
41
- "light-warning": "bg-yellow-50 text-yellow-600 icon-yellow-600 hover:bg-yellow-100 active:bg-yellow-200 border border-yellow-200",
42
- "light-info": "bg-blue-50 text-primary icon-primary hover:bg-blue-100 active:bg-blue-200 border border-blue-200",
43
- "light-error": "bg-red-50 text-red-600 icon-red-600 hover:bg-red-100 active:bg-red-200 border border-red-200",
44
- // Outline variants with borders
45
- "outline-success": "border border-green-500 bg-transparent text-green-600 icon-green-600 hover:bg-green-50 active:bg-green-100",
46
- "outline-warning": "border border-yellow-600 bg-transparent text-yellow-600 icon-yellow-600 hover:bg-yellow-50 active:bg-yellow-100",
47
- "outline-info": "border border-blue-500 bg-transparent text-primary icon-primary hover:bg-blue-50 active:bg-blue-100",
48
- "outline-error": "border border-red-500 bg-transparent text-red-600 icon-red-600 hover:bg-red-50 active:bg-red-100"
49
- },
50
- rounded: {
51
- none: "rounded-none",
52
- sm: "rounded-sm",
53
- md: "rounded-md",
54
- lg: "rounded-lg",
55
- xl: "rounded-xl",
56
- full: "rounded-full"
57
- },
58
- size: {
59
- default: "h-12 px-3 py-2",
60
- sm: "h-10 px-3 py-2 [&_svg]:size-4",
61
- lg: "h-14 px-3 py-2",
62
- icon: "h-10 w-10"
63
- }
64
- },
65
- defaultVariants: {
66
- variant: "default",
67
- size: "default",
68
- rounded: "md"
69
- }
70
- }
71
- );
72
- const Button = React.forwardRef(
73
- ({
74
- className,
75
- trackingData,
76
- trackingIndex,
77
- trackingName,
78
- blockSendTracking,
79
- variant,
80
- size,
81
- rounded,
82
- asChild = false,
83
- loading = false,
84
- children,
85
- onClick,
86
- disabled,
87
- ...props
88
- }, ref) => {
89
- const Comp = asChild ? Slot : "button";
90
- const getSpinnerVariant = () => {
91
- if (variant === "default" || variant === "primary-success" || variant === "primary-warning" || variant === "primary-info" || variant === "primary-error") {
92
- return "white";
93
- }
94
- if (variant === "soft-success") return "success";
95
- if (variant === "soft-warning") return "warning";
96
- if (variant === "soft-info") return "info";
97
- if (variant === "soft-error") return "error";
98
- if (variant === "outline-success") return "success";
99
- if (variant === "outline-warning") return "warning";
100
- if (variant === "outline-info") return "info";
101
- if (variant === "outline-error") return "error";
102
- if (variant === "destructive") return "white";
103
- return "primary";
104
- };
105
- const spinnerVariant = getSpinnerVariant();
106
- const { sendTrack } = useUISystemContext() || {};
107
- const onClickFn = (e) => {
108
- if (disabled || loading) {
109
- return;
110
- }
111
- onClick?.(e);
112
- if (!sendTrack || blockSendTracking) return;
113
- const targetElm = e.target;
114
- const buttonText = targetElm.innerText || targetElm.textContent || "";
115
- const finalTrackingName = trackingName || `click_btn_${trackingData?.identity}`;
116
- const otherData = {};
117
- if (trackingIndex !== void 0 && trackingIndex !== null) {
118
- otherData.index = trackingIndex;
119
- }
120
- const mergedTrackingData = { ...trackingData };
121
- if (!mergedTrackingData.object_name && buttonText) {
122
- mergedTrackingData.object_name = buttonText.trim();
123
- }
124
- sendTrack(finalTrackingName, TRACKING_TYPE.click, {
125
- ...otherData,
126
- ...mergedTrackingData
127
- });
128
- };
129
- const isIconElement = (element) => {
130
- if (element.type === "svg") {
131
- return true;
132
- }
133
- const getComponentName = (type) => {
134
- if (!type) return "";
135
- if (type.displayName) return type.displayName;
136
- if (type.name) return type.name;
137
- if (type.$$typeof === /* @__PURE__ */ Symbol.for("react.memo") && type.type) {
138
- return getComponentName(type.type);
139
- }
140
- if (type.$$typeof === /* @__PURE__ */ Symbol.for("react.forward_ref") && type.render) {
141
- return getComponentName(type.render);
142
- }
143
- return "";
144
- };
145
- if (element.type) {
146
- const componentName = getComponentName(element.type);
147
- const lowerName = componentName.toLowerCase();
148
- if (lowerName.includes("icon") || lowerName.includes("svg") || componentName.match(/Icon\d+$/) || // Matches Icon16, Icon24, etc.
149
- componentName.match(/^[A-Z][a-zA-Z]*Icon/)) {
150
- return true;
151
- }
152
- }
153
- if (element.props?.className && typeof element.props.className === "string") {
154
- const className2 = element.props.className;
155
- if (className2.includes("ic-") || className2.includes("icon-")) {
156
- return true;
157
- }
158
- }
159
- if (element.props?.viewBox || element.props?.xmlns === "http://www.w3.org/2000/svg") {
160
- return true;
161
- }
162
- return false;
163
- };
164
- const filterChildren = (children2) => {
165
- return React.Children.map(children2, (child) => {
166
- if (!React.isValidElement(child)) {
167
- return child;
168
- }
169
- if (isIconElement(child)) {
170
- return null;
171
- }
172
- if ((child.type === "div" || child.type === "span") && child.props?.children) {
173
- const filteredChildren = filterChildren(child.props.children);
174
- const hasContent = React.Children.toArray(filteredChildren).some(
175
- (c) => c !== null && c !== void 0
176
- );
177
- if (!hasContent) {
178
- return null;
179
- }
180
- return React.cloneElement(child, {}, filteredChildren);
181
- }
182
- return child;
183
- });
184
- };
185
- const renderChildren = () => {
186
- if (!loading) return children;
187
- return filterChildren(children);
188
- };
189
- const finalRounded = size === "icon" && rounded === void 0 ? "full" : rounded;
190
- return /* @__PURE__ */ jsxs(
191
- Comp,
192
- {
193
- className: cn(buttonVariants({ variant, size, rounded: finalRounded, className })),
194
- ref,
195
- onClick: onClickFn,
196
- disabled: disabled && !loading,
197
- "data-loading": loading,
198
- ...props,
199
- children: [
200
- loading && /* @__PURE__ */ jsx(Spinner, { size: "sm", variant: spinnerVariant }),
201
- renderChildren()
202
- ]
203
- }
204
- );
205
- }
206
- );
207
- Button.displayName = "Button";
208
- const buttonGroupVariants = cva("flex", {
209
- variants: {
210
- direction: {
211
- horizontal: "space-x-3",
212
- vertical: "space-y-2"
213
- }
214
- }
215
- });
216
- const ButtonGroup = React.forwardRef(
217
- ({ asChild, className, direction = "horizontal", ...props }, ref) => {
218
- const Comp = asChild ? Slot : "div";
219
- return /* @__PURE__ */ jsx(Comp, { ref, className: cn(buttonGroupVariants({ direction, className })), ...props });
220
- }
221
- );
222
- ButtonGroup.displayName = "ButtonGroup";
223
-
224
- export { Button, ButtonGroup, buttonVariants };
225
- //# sourceMappingURL=button.mjs.map
226
- //# sourceMappingURL=button.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/components/button.tsx"],"names":["className","children"],"mappings":"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","file":"button.mjs","sourcesContent":["import { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport { TRACKING_TYPE, TrackingPropsType } from '@/lib/types';\nimport { cn } from '@/lib/utils';\nimport { useUISystemContext } from '@/providers/UISystemProvider';\nimport { Spinner } from './spinner';\n\nconst buttonVariants = cva(\n 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-base font-medium transition-colors focus-visible:outline-none disabled:pointer-events-none disabled:icon-muted-foreground disabled:text-muted-foreground disabled:bg-muted disabled:border-border data-[loading=true]:pointer-events-none data-[loading=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-6 [&_svg]:shrink-0',\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground icon-primary-foreground hover:bg-primary/90',\n destructive:\n 'bg-destructive text-destructive-foreground icon-destructive-foreground hover:bg-destructive/90',\n outline: 'border border-input bg-background hover:bg-accent hover:border-accent',\n secondary:\n 'bg-secondary border border-primary text-secondary-foreground icon-secondary-foreground hover:bg-accent active:bg-accent/80',\n ghost: 'hover:bg-accent hover:text-accent-foreground hover:icon-accent-foreground',\n link: 'text-primary icon-primary underline-offset-4 hover:underline',\n plain: 'text-primary icon-primary hover:text-primary/80 w-max h-max',\n 'plain-error': 'text-red-500 hover:text-red-500/80 w-max h-max',\n icon: 'bg-card text-foreground icon-foreground hover:bg-muted border border-border rounded-full shadow [&_svg]:size-6',\n // Primary variants with solid colors\n 'primary-success':\n 'bg-green-500 text-white icon-white hover:bg-green-600 active:bg-green-700',\n 'primary-warning':\n 'bg-yellow-500 text-white icon-white hover:bg-yellow-600 active:bg-yellow-700',\n 'primary-info': 'bg-blue-500 text-white icon-white hover:bg-primary active:bg-blue-700',\n 'primary-error': 'bg-red-500 text-white icon-white hover:bg-red-600 active:bg-red-700',\n // Soft variants with lighter backgrounds\n 'soft-success':\n 'bg-green-50 text-green-600 icon-green-600 hover:bg-green-100 active:bg-green-200 border border-green-200',\n 'soft-warning':\n 'bg-yellow-50 text-yellow-600 icon-yellow-600 hover:bg-yellow-100 active:bg-yellow-200 border border-yellow-200',\n 'soft-info':\n 'bg-blue-50 text-primary icon-primary hover:bg-blue-100 active:bg-blue-200 border border-blue-200',\n 'soft-error':\n 'bg-red-50 text-red-600 icon-red-600 hover:bg-red-100 active:bg-red-200 border border-red-200',\n\n // Primary variants with solid colors\n 'heavy-success':\n 'bg-green-500 text-white icon-white hover:bg-green-600 active:bg-green-700',\n 'heavy-warning':\n 'bg-yellow-500 text-white icon-white hover:bg-yellow-600 active:bg-yellow-700',\n 'heavy-info': 'bg-blue-500 text-white icon-white hover:bg-primary active:bg-blue-700',\n 'heavy-error': 'bg-red-500 text-white icon-white hover:bg-red-600 active:bg-red-700',\n // Soft variants with lighter backgrounds\n 'light-success':\n 'bg-green-50 text-green-600 icon-green-600 hover:bg-green-100 active:bg-green-200 border border-green-200',\n 'light-warning':\n 'bg-yellow-50 text-yellow-600 icon-yellow-600 hover:bg-yellow-100 active:bg-yellow-200 border border-yellow-200',\n 'light-info':\n 'bg-blue-50 text-primary icon-primary hover:bg-blue-100 active:bg-blue-200 border border-blue-200',\n 'light-error':\n 'bg-red-50 text-red-600 icon-red-600 hover:bg-red-100 active:bg-red-200 border border-red-200',\n\n // Outline variants with borders\n 'outline-success':\n 'border border-green-500 bg-transparent text-green-600 icon-green-600 hover:bg-green-50 active:bg-green-100',\n 'outline-warning':\n 'border border-yellow-600 bg-transparent text-yellow-600 icon-yellow-600 hover:bg-yellow-50 active:bg-yellow-100',\n 'outline-info':\n 'border border-blue-500 bg-transparent text-primary icon-primary hover:bg-blue-50 active:bg-blue-100',\n 'outline-error':\n 'border border-red-500 bg-transparent text-red-600 icon-red-600 hover:bg-red-50 active:bg-red-100',\n },\n rounded: {\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-lg',\n xl: 'rounded-xl',\n full: 'rounded-full',\n },\n size: {\n default: 'h-12 px-3 py-2',\n sm: 'h-10 px-3 py-2 [&_svg]:size-4',\n lg: 'h-14 px-3 py-2',\n icon: 'h-10 w-10',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n rounded: 'md',\n },\n },\n);\n\ninterface TrackingData {\n [key: string]: any;\n identity?: string;\n object_name?: string; // UI button name\n}\n\nexport interface ButtonProps\n extends\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n TrackingPropsType,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n loading?: boolean;\n trackingData?: TrackingData;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n trackingData,\n trackingIndex,\n trackingName,\n blockSendTracking,\n variant,\n size,\n rounded,\n asChild = false,\n loading = false,\n children,\n onClick,\n disabled,\n ...props\n },\n ref,\n ) => {\n const Comp = asChild ? Slot : 'button';\n\n // Determine spinner color based on button variant to match text color\n const getSpinnerVariant = ():\n | 'white'\n | 'primary'\n | 'success'\n | 'warning'\n | 'info'\n | 'error' => {\n // Primary variants: white text/spinner on colored background\n if (\n variant === 'default' ||\n variant === 'primary-success' ||\n variant === 'primary-warning' ||\n variant === 'primary-info' ||\n variant === 'primary-error'\n ) {\n return 'white';\n }\n\n // Soft variants: colored text/spinner on light background\n if (variant === 'soft-success') return 'success';\n if (variant === 'soft-warning') return 'warning';\n if (variant === 'soft-info') return 'info';\n if (variant === 'soft-error') return 'error';\n\n // Outline variants: colored text/spinner with colored border\n if (variant === 'outline-success') return 'success';\n if (variant === 'outline-warning') return 'warning';\n if (variant === 'outline-info') return 'info';\n if (variant === 'outline-error') return 'error';\n\n // Destructive variant: white text/spinner on red background\n if (variant === 'destructive') return 'white';\n\n // Default for other variants (secondary, outline, ghost)\n return 'primary';\n };\n\n const spinnerVariant = getSpinnerVariant();\n\n const { sendTrack } = useUISystemContext() || {};\n\n const onClickFn: React.MouseEventHandler<any> = (e) => {\n if (disabled || loading) {\n return;\n }\n onClick?.(e);\n\n // Only track if sendTrack exists and tracking is not blocked\n if (!sendTrack || blockSendTracking) return;\n\n const targetElm = e.target as HTMLElement;\n const buttonText = targetElm.innerText || targetElm.textContent || '';\n\n // Auto-generate trackingName based on button type if not provided\n const finalTrackingName = trackingName || `click_btn_${trackingData?.identity}`;\n\n // Prepare tracking data\n const otherData: Record<string, any> = {};\n if (trackingIndex !== undefined && trackingIndex !== null) {\n otherData.index = trackingIndex;\n }\n\n // Auto-extract object_name from button text if not provided\n const mergedTrackingData = { ...trackingData };\n if (!mergedTrackingData.object_name && buttonText) {\n mergedTrackingData.object_name = buttonText.trim();\n }\n\n // Send tracking event\n sendTrack(finalTrackingName, TRACKING_TYPE.click, {\n ...otherData,\n ...mergedTrackingData,\n });\n };\n\n const isIconElement = (element: React.ReactElement): boolean => {\n // Check if it's an SVG element directly\n if (element.type === 'svg') {\n return true;\n }\n\n // Get component name from various React wrapper types\n const getComponentName = (type: any): string => {\n if (!type) return '';\n\n // Direct function/class component\n if (type.displayName) return type.displayName;\n if (type.name) return type.name;\n\n // React.memo wrapped component\n if (type.$$typeof === Symbol.for('react.memo') && type.type) {\n return getComponentName(type.type);\n }\n\n // React.forwardRef wrapped component\n if (type.$$typeof === Symbol.for('react.forward_ref') && type.render) {\n return getComponentName(type.render);\n }\n\n return '';\n };\n\n // Check if element is a React component\n if (element.type) {\n const componentName = getComponentName(element.type);\n const lowerName = componentName.toLowerCase();\n\n // Check for icon-related component names\n if (\n lowerName.includes('icon') ||\n lowerName.includes('svg') ||\n componentName.match(/Icon\\d+$/) || // Matches Icon16, Icon24, etc.\n componentName.match(/^[A-Z][a-zA-Z]*Icon/) // Matches CheckIcon, AddIcon, etc.\n ) {\n return true;\n }\n }\n\n // Check className for icon-related classes\n if (element.props?.className && typeof element.props.className === 'string') {\n const className = element.props.className;\n if (className.includes('ic-') || className.includes('icon-')) {\n return true;\n }\n }\n\n // Check if element has SVG-related props\n if (element.props?.viewBox || element.props?.xmlns === 'http://www.w3.org/2000/svg') {\n return true;\n }\n\n return false;\n };\n\n const filterChildren = (children: React.ReactNode): React.ReactNode => {\n return React.Children.map(children, (child) => {\n if (!React.isValidElement(child)) {\n return child;\n }\n\n // If it's an icon element, hide it completely\n if (isIconElement(child)) {\n return null;\n }\n\n // If it's a wrapper (div/span) that might contain icons, filter recursively\n if ((child.type === 'div' || child.type === 'span') && child.props?.children) {\n const filteredChildren = filterChildren(child.props.children);\n\n // If all children were filtered out, don't render the wrapper\n const hasContent = React.Children.toArray(filteredChildren).some(\n (c) => c !== null && c !== undefined,\n );\n\n if (!hasContent) {\n return null;\n }\n\n return React.cloneElement(child, {}, filteredChildren);\n }\n\n return child;\n });\n };\n\n const renderChildren = () => {\n if (!loading) return children;\n\n // When loading, filter out all icon elements but keep text content\n return filterChildren(children);\n };\n\n // Auto-set rounded to 'full' for icon size if not explicitly provided\n const finalRounded = size === 'icon' && rounded === undefined ? 'full' : rounded;\n\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, rounded: finalRounded, className }))}\n ref={ref}\n onClick={onClickFn}\n disabled={disabled && !loading}\n data-loading={loading}\n {...props}\n >\n {loading && <Spinner size=\"sm\" variant={spinnerVariant} />}\n {renderChildren()}\n </Comp>\n );\n },\n);\nButton.displayName = 'Button';\n\nconst buttonGroupVariants = cva('flex', {\n variants: {\n direction: {\n horizontal: 'space-x-3',\n vertical: 'space-y-2',\n },\n },\n});\n\ninterface ButtonGroupProps\n extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof buttonGroupVariants> {\n asChild?: boolean;\n}\n\nconst ButtonGroup = React.forwardRef<HTMLDivElement, ButtonGroupProps>(\n ({ asChild, className, direction = 'horizontal', ...props }, ref) => {\n const Comp = asChild ? Slot : 'div';\n\n return (\n <Comp ref={ref} className={cn(buttonGroupVariants({ direction, className }))} {...props} />\n );\n },\n);\n\nButtonGroup.displayName = 'ButtonGroup';\n\nexport { Button, ButtonGroup, buttonVariants };\n"]}