shad-m 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 (912) hide show
  1. package/README.md +260 -0
  2. package/dist/assets/Animation/index.d.ts +25655 -0
  3. package/dist/assets/Animation/index.d.ts.map +1 -0
  4. package/dist/assets/Animation/index.js +180 -0
  5. package/dist/assets/Animation/index.js.map +1 -0
  6. package/dist/assets/Animation/index.mjs +79 -0
  7. package/dist/assets/Animation/index.mjs.map +1 -0
  8. package/dist/assets/Icon/index.d.ts +420 -0
  9. package/dist/assets/Icon/index.d.ts.map +1 -0
  10. package/dist/assets/Icon/index.js +2102 -0
  11. package/dist/assets/Icon/index.js.map +1 -0
  12. package/dist/assets/Icon/index.mjs +421 -0
  13. package/dist/assets/Icon/index.mjs.map +1 -0
  14. package/dist/assets/Image/index.d.ts +151 -0
  15. package/dist/assets/Image/index.d.ts.map +1 -0
  16. package/dist/assets/Image/index.js +755 -0
  17. package/dist/assets/Image/index.js.map +1 -0
  18. package/dist/assets/Image/index.mjs +150 -0
  19. package/dist/assets/Image/index.mjs.map +1 -0
  20. package/dist/common/display/countdown.d.ts +26 -0
  21. package/dist/common/display/countdown.d.ts.map +1 -0
  22. package/dist/common/display/countdown.js +68 -0
  23. package/dist/common/display/countdown.js.map +1 -0
  24. package/dist/common/display/countdown.mjs +46 -0
  25. package/dist/common/display/countdown.mjs.map +1 -0
  26. package/dist/common/display/display-field-group.d.ts +59 -0
  27. package/dist/common/display/display-field-group.d.ts.map +1 -0
  28. package/dist/common/display/display-field-group.js +91 -0
  29. package/dist/common/display/display-field-group.js.map +1 -0
  30. package/dist/common/display/display-field-group.mjs +89 -0
  31. package/dist/common/display/display-field-group.mjs.map +1 -0
  32. package/dist/common/display/display-field.d.ts +45 -0
  33. package/dist/common/display/display-field.d.ts.map +1 -0
  34. package/dist/common/display/display-field.js +46 -0
  35. package/dist/common/display/display-field.js.map +1 -0
  36. package/dist/common/display/display-field.mjs +40 -0
  37. package/dist/common/display/display-field.mjs.map +1 -0
  38. package/dist/common/display/display-html-string.d.ts +7 -0
  39. package/dist/common/display/display-html-string.d.ts.map +1 -0
  40. package/dist/common/display/display-html-string.js +52 -0
  41. package/dist/common/display/display-html-string.js.map +1 -0
  42. package/dist/common/display/display-html-string.mjs +30 -0
  43. package/dist/common/display/display-html-string.mjs.map +1 -0
  44. package/dist/common/display/index.d.ts +16 -0
  45. package/dist/common/display/index.d.ts.map +1 -0
  46. package/dist/common/display/index.js +59 -0
  47. package/dist/common/display/index.js.map +1 -0
  48. package/dist/common/display/index.mjs +10 -0
  49. package/dist/common/display/index.mjs.map +1 -0
  50. package/dist/common/display/page-breadcrumb.d.ts +19 -0
  51. package/dist/common/display/page-breadcrumb.d.ts.map +1 -0
  52. package/dist/common/display/page-breadcrumb.js +43 -0
  53. package/dist/common/display/page-breadcrumb.js.map +1 -0
  54. package/dist/common/display/page-breadcrumb.mjs +37 -0
  55. package/dist/common/display/page-breadcrumb.mjs.map +1 -0
  56. package/dist/common/display/page-v2.d.ts +15 -0
  57. package/dist/common/display/page-v2.d.ts.map +1 -0
  58. package/dist/common/display/page-v2.js +58 -0
  59. package/dist/common/display/page-v2.js.map +1 -0
  60. package/dist/common/display/page-v2.mjs +20 -0
  61. package/dist/common/display/page-v2.mjs.map +1 -0
  62. package/dist/common/display/page.d.ts +53 -0
  63. package/dist/common/display/page.d.ts.map +1 -0
  64. package/dist/common/display/page.js +155 -0
  65. package/dist/common/display/page.js.map +1 -0
  66. package/dist/common/display/page.mjs +138 -0
  67. package/dist/common/display/page.mjs.map +1 -0
  68. package/dist/common/display/score-meter.d.ts +22 -0
  69. package/dist/common/display/score-meter.d.ts.map +1 -0
  70. package/dist/common/display/score-meter.js +161 -0
  71. package/dist/common/display/score-meter.js.map +1 -0
  72. package/dist/common/display/score-meter.mjs +140 -0
  73. package/dist/common/display/score-meter.mjs.map +1 -0
  74. package/dist/common/display/sidebar/app-sidebar.d.ts +28 -0
  75. package/dist/common/display/sidebar/app-sidebar.d.ts.map +1 -0
  76. package/dist/common/display/sidebar/app-sidebar.js +114 -0
  77. package/dist/common/display/sidebar/app-sidebar.js.map +1 -0
  78. package/dist/common/display/sidebar/app-sidebar.mjs +92 -0
  79. package/dist/common/display/sidebar/app-sidebar.mjs.map +1 -0
  80. package/dist/common/display/sidebar/index.d.ts +30 -0
  81. package/dist/common/display/sidebar/index.d.ts.map +1 -0
  82. package/dist/common/display/sidebar/index.js +89 -0
  83. package/dist/common/display/sidebar/index.js.map +1 -0
  84. package/dist/common/display/sidebar/index.mjs +81 -0
  85. package/dist/common/display/sidebar/index.mjs.map +1 -0
  86. package/dist/common/display/sidebar/nav-main.d.ts +17 -0
  87. package/dist/common/display/sidebar/nav-main.d.ts.map +1 -0
  88. package/dist/common/display/sidebar/nav-main.js +406 -0
  89. package/dist/common/display/sidebar/nav-main.js.map +1 -0
  90. package/dist/common/display/sidebar/nav-main.mjs +400 -0
  91. package/dist/common/display/sidebar/nav-main.mjs.map +1 -0
  92. package/dist/common/display/sidebar/sidebar-sheet.d.ts +46 -0
  93. package/dist/common/display/sidebar/sidebar-sheet.d.ts.map +1 -0
  94. package/dist/common/display/sidebar/sidebar-sheet.js +140 -0
  95. package/dist/common/display/sidebar/sidebar-sheet.js.map +1 -0
  96. package/dist/common/display/sidebar/sidebar-sheet.mjs +118 -0
  97. package/dist/common/display/sidebar/sidebar-sheet.mjs.map +1 -0
  98. package/dist/common/display/sidebar/types.d.ts +18 -0
  99. package/dist/common/display/sidebar/types.d.ts.map +1 -0
  100. package/dist/common/display/sidebar/types.js +4 -0
  101. package/dist/common/display/sidebar/types.js.map +1 -0
  102. package/dist/common/display/sidebar/types.mjs +3 -0
  103. package/dist/common/display/sidebar/types.mjs.map +1 -0
  104. package/dist/common/display/status-state.d.ts +16 -0
  105. package/dist/common/display/status-state.d.ts.map +1 -0
  106. package/dist/common/display/status-state.js +97 -0
  107. package/dist/common/display/status-state.js.map +1 -0
  108. package/dist/common/display/status-state.mjs +88 -0
  109. package/dist/common/display/status-state.mjs.map +1 -0
  110. package/dist/common/forms/auto-form.d.ts +17 -0
  111. package/dist/common/forms/auto-form.d.ts.map +1 -0
  112. package/dist/common/forms/auto-form.js +101 -0
  113. package/dist/common/forms/auto-form.js.map +1 -0
  114. package/dist/common/forms/auto-form.mjs +78 -0
  115. package/dist/common/forms/auto-form.mjs.map +1 -0
  116. package/dist/common/forms/form-field.d.ts +16 -0
  117. package/dist/common/forms/form-field.d.ts.map +1 -0
  118. package/dist/common/forms/form-field.js +58 -0
  119. package/dist/common/forms/form-field.js.map +1 -0
  120. package/dist/common/forms/form-field.mjs +56 -0
  121. package/dist/common/forms/form-field.mjs.map +1 -0
  122. package/dist/common/forms/form-input-field.d.ts +16 -0
  123. package/dist/common/forms/form-input-field.d.ts.map +1 -0
  124. package/dist/common/forms/form-input-field.js +64 -0
  125. package/dist/common/forms/form-input-field.js.map +1 -0
  126. package/dist/common/forms/form-input-field.mjs +62 -0
  127. package/dist/common/forms/form-input-field.mjs.map +1 -0
  128. package/dist/common/forms/index.d.ts +7 -0
  129. package/dist/common/forms/index.d.ts.map +1 -0
  130. package/dist/common/forms/index.js +22 -0
  131. package/dist/common/forms/index.js.map +1 -0
  132. package/dist/common/forms/index.mjs +5 -0
  133. package/dist/common/forms/index.mjs.map +1 -0
  134. package/dist/common/forms/switch-field.d.ts +19 -0
  135. package/dist/common/forms/switch-field.d.ts.map +1 -0
  136. package/dist/common/forms/switch-field.js +106 -0
  137. package/dist/common/forms/switch-field.js.map +1 -0
  138. package/dist/common/forms/switch-field.mjs +104 -0
  139. package/dist/common/forms/switch-field.mjs.map +1 -0
  140. package/dist/common/interactive/alert-dialog-wrapper.d.ts +41 -0
  141. package/dist/common/interactive/alert-dialog-wrapper.d.ts.map +1 -0
  142. package/dist/common/interactive/alert-dialog-wrapper.js +141 -0
  143. package/dist/common/interactive/alert-dialog-wrapper.js.map +1 -0
  144. package/dist/common/interactive/alert-dialog-wrapper.mjs +119 -0
  145. package/dist/common/interactive/alert-dialog-wrapper.mjs.map +1 -0
  146. package/dist/common/interactive/autocomplete.d.ts +21 -0
  147. package/dist/common/interactive/autocomplete.d.ts.map +1 -0
  148. package/dist/common/interactive/autocomplete.js +178 -0
  149. package/dist/common/interactive/autocomplete.js.map +1 -0
  150. package/dist/common/interactive/autocomplete.mjs +157 -0
  151. package/dist/common/interactive/autocomplete.mjs.map +1 -0
  152. package/dist/common/interactive/copy-tooltip.d.ts +27 -0
  153. package/dist/common/interactive/copy-tooltip.d.ts.map +1 -0
  154. package/dist/common/interactive/copy-tooltip.js +152 -0
  155. package/dist/common/interactive/copy-tooltip.js.map +1 -0
  156. package/dist/common/interactive/copy-tooltip.mjs +143 -0
  157. package/dist/common/interactive/copy-tooltip.mjs.map +1 -0
  158. package/dist/common/interactive/date-field.d.ts +98 -0
  159. package/dist/common/interactive/date-field.d.ts.map +1 -0
  160. package/dist/common/interactive/date-field.js +303 -0
  161. package/dist/common/interactive/date-field.js.map +1 -0
  162. package/dist/common/interactive/date-field.mjs +281 -0
  163. package/dist/common/interactive/date-field.mjs.map +1 -0
  164. package/dist/common/interactive/date-input/date-input.d.ts +12 -0
  165. package/dist/common/interactive/date-input/date-input.d.ts.map +1 -0
  166. package/dist/common/interactive/date-input/date-input.js +68 -0
  167. package/dist/common/interactive/date-input/date-input.js.map +1 -0
  168. package/dist/common/interactive/date-input/date-input.mjs +62 -0
  169. package/dist/common/interactive/date-input/date-input.mjs.map +1 -0
  170. package/dist/common/interactive/date-input/index.d.ts +4 -0
  171. package/dist/common/interactive/date-input/index.d.ts.map +1 -0
  172. package/dist/common/interactive/date-input/index.js +17 -0
  173. package/dist/common/interactive/date-input/index.js.map +1 -0
  174. package/dist/common/interactive/date-input/index.mjs +4 -0
  175. package/dist/common/interactive/date-input/index.mjs.map +1 -0
  176. package/dist/common/interactive/date-input/types.d.ts +17 -0
  177. package/dist/common/interactive/date-input/types.d.ts.map +1 -0
  178. package/dist/common/interactive/date-input/types.js +4 -0
  179. package/dist/common/interactive/date-input/types.js.map +1 -0
  180. package/dist/common/interactive/date-input/types.mjs +3 -0
  181. package/dist/common/interactive/date-input/types.mjs.map +1 -0
  182. package/dist/common/interactive/date-input/use-typed-date.d.ts +17 -0
  183. package/dist/common/interactive/date-input/use-typed-date.d.ts.map +1 -0
  184. package/dist/common/interactive/date-input/use-typed-date.js +478 -0
  185. package/dist/common/interactive/date-input/use-typed-date.js.map +1 -0
  186. package/dist/common/interactive/date-input/use-typed-date.mjs +476 -0
  187. package/dist/common/interactive/date-input/use-typed-date.mjs.map +1 -0
  188. package/dist/common/interactive/date-input/utils.d.ts +5 -0
  189. package/dist/common/interactive/date-input/utils.d.ts.map +1 -0
  190. package/dist/common/interactive/date-input/utils.js +34 -0
  191. package/dist/common/interactive/date-input/utils.js.map +1 -0
  192. package/dist/common/interactive/date-input/utils.mjs +29 -0
  193. package/dist/common/interactive/date-input/utils.mjs.map +1 -0
  194. package/dist/common/interactive/date-picker.d.ts +114 -0
  195. package/dist/common/interactive/date-picker.d.ts.map +1 -0
  196. package/dist/common/interactive/date-picker.js +616 -0
  197. package/dist/common/interactive/date-picker.js.map +1 -0
  198. package/dist/common/interactive/date-picker.mjs +594 -0
  199. package/dist/common/interactive/date-picker.mjs.map +1 -0
  200. package/dist/common/interactive/date-range-input/date-range-input.d.ts +23 -0
  201. package/dist/common/interactive/date-range-input/date-range-input.d.ts.map +1 -0
  202. package/dist/common/interactive/date-range-input/date-range-input.js +82 -0
  203. package/dist/common/interactive/date-range-input/date-range-input.js.map +1 -0
  204. package/dist/common/interactive/date-range-input/date-range-input.mjs +76 -0
  205. package/dist/common/interactive/date-range-input/date-range-input.mjs.map +1 -0
  206. package/dist/common/interactive/date-range-input/index.d.ts +4 -0
  207. package/dist/common/interactive/date-range-input/index.d.ts.map +1 -0
  208. package/dist/common/interactive/date-range-input/index.js +12 -0
  209. package/dist/common/interactive/date-range-input/index.js.map +1 -0
  210. package/dist/common/interactive/date-range-input/index.mjs +3 -0
  211. package/dist/common/interactive/date-range-input/index.mjs.map +1 -0
  212. package/dist/common/interactive/date-range-input/types.d.ts +35 -0
  213. package/dist/common/interactive/date-range-input/types.d.ts.map +1 -0
  214. package/dist/common/interactive/date-range-input/types.js +4 -0
  215. package/dist/common/interactive/date-range-input/types.js.map +1 -0
  216. package/dist/common/interactive/date-range-input/types.mjs +3 -0
  217. package/dist/common/interactive/date-range-input/types.mjs.map +1 -0
  218. package/dist/common/interactive/date-range-input/use-typed-date-range.d.ts +17 -0
  219. package/dist/common/interactive/date-range-input/use-typed-date-range.d.ts.map +1 -0
  220. package/dist/common/interactive/date-range-input/use-typed-date-range.js +602 -0
  221. package/dist/common/interactive/date-range-input/use-typed-date-range.js.map +1 -0
  222. package/dist/common/interactive/date-range-input/use-typed-date-range.mjs +600 -0
  223. package/dist/common/interactive/date-range-input/use-typed-date-range.mjs.map +1 -0
  224. package/dist/common/interactive/date-time-picker.d.ts +86 -0
  225. package/dist/common/interactive/date-time-picker.d.ts.map +1 -0
  226. package/dist/common/interactive/date-time-picker.js +215 -0
  227. package/dist/common/interactive/date-time-picker.js.map +1 -0
  228. package/dist/common/interactive/date-time-picker.mjs +213 -0
  229. package/dist/common/interactive/date-time-picker.mjs.map +1 -0
  230. package/dist/common/interactive/dialog-wrapper.d.ts +34 -0
  231. package/dist/common/interactive/dialog-wrapper.d.ts.map +1 -0
  232. package/dist/common/interactive/dialog-wrapper.js +124 -0
  233. package/dist/common/interactive/dialog-wrapper.js.map +1 -0
  234. package/dist/common/interactive/dialog-wrapper.mjs +102 -0
  235. package/dist/common/interactive/dialog-wrapper.mjs.map +1 -0
  236. package/dist/common/interactive/filter.d.ts +51 -0
  237. package/dist/common/interactive/filter.d.ts.map +1 -0
  238. package/dist/common/interactive/filter.js +287 -0
  239. package/dist/common/interactive/filter.js.map +1 -0
  240. package/dist/common/interactive/filter.mjs +280 -0
  241. package/dist/common/interactive/filter.mjs.map +1 -0
  242. package/dist/common/interactive/index.d.ts +41 -0
  243. package/dist/common/interactive/index.d.ts.map +1 -0
  244. package/dist/common/interactive/index.js +235 -0
  245. package/dist/common/interactive/index.js.map +1 -0
  246. package/dist/common/interactive/index.mjs +24 -0
  247. package/dist/common/interactive/index.mjs.map +1 -0
  248. package/dist/common/interactive/list.d.ts +36 -0
  249. package/dist/common/interactive/list.d.ts.map +1 -0
  250. package/dist/common/interactive/list.js +160 -0
  251. package/dist/common/interactive/list.js.map +1 -0
  252. package/dist/common/interactive/list.mjs +134 -0
  253. package/dist/common/interactive/list.mjs.map +1 -0
  254. package/dist/common/interactive/otp-dialog/index.d.ts +7 -0
  255. package/dist/common/interactive/otp-dialog/index.d.ts.map +1 -0
  256. package/dist/common/interactive/otp-dialog/index.js +35 -0
  257. package/dist/common/interactive/otp-dialog/index.js.map +1 -0
  258. package/dist/common/interactive/otp-dialog/index.mjs +6 -0
  259. package/dist/common/interactive/otp-dialog/index.mjs.map +1 -0
  260. package/dist/common/interactive/otp-dialog/otp-dialog.d.ts +34 -0
  261. package/dist/common/interactive/otp-dialog/otp-dialog.d.ts.map +1 -0
  262. package/dist/common/interactive/otp-dialog/otp-dialog.js +325 -0
  263. package/dist/common/interactive/otp-dialog/otp-dialog.js.map +1 -0
  264. package/dist/common/interactive/otp-dialog/otp-dialog.mjs +303 -0
  265. package/dist/common/interactive/otp-dialog/otp-dialog.mjs.map +1 -0
  266. package/dist/common/interactive/otp-dialog/reducer.d.ts +11 -0
  267. package/dist/common/interactive/otp-dialog/reducer.d.ts.map +1 -0
  268. package/dist/common/interactive/otp-dialog/reducer.js +40 -0
  269. package/dist/common/interactive/otp-dialog/reducer.js.map +1 -0
  270. package/dist/common/interactive/otp-dialog/reducer.mjs +37 -0
  271. package/dist/common/interactive/otp-dialog/reducer.mjs.map +1 -0
  272. package/dist/common/interactive/otp-dialog/types.d.ts +82 -0
  273. package/dist/common/interactive/otp-dialog/types.d.ts.map +1 -0
  274. package/dist/common/interactive/otp-dialog/types.js +15 -0
  275. package/dist/common/interactive/otp-dialog/types.js.map +1 -0
  276. package/dist/common/interactive/otp-dialog/types.mjs +13 -0
  277. package/dist/common/interactive/otp-dialog/types.mjs.map +1 -0
  278. package/dist/common/interactive/otp-dialog/utils.d.ts +17 -0
  279. package/dist/common/interactive/otp-dialog/utils.d.ts.map +1 -0
  280. package/dist/common/interactive/otp-dialog/utils.js +24 -0
  281. package/dist/common/interactive/otp-dialog/utils.js.map +1 -0
  282. package/dist/common/interactive/otp-dialog/utils.mjs +21 -0
  283. package/dist/common/interactive/otp-dialog/utils.mjs.map +1 -0
  284. package/dist/common/interactive/pagination/PaginationSkeleton.d.ts +6 -0
  285. package/dist/common/interactive/pagination/PaginationSkeleton.d.ts.map +1 -0
  286. package/dist/common/interactive/pagination/PaginationSkeleton.js +51 -0
  287. package/dist/common/interactive/pagination/PaginationSkeleton.js.map +1 -0
  288. package/dist/common/interactive/pagination/PaginationSkeleton.mjs +49 -0
  289. package/dist/common/interactive/pagination/PaginationSkeleton.mjs.map +1 -0
  290. package/dist/common/interactive/pagination/index.d.ts +14 -0
  291. package/dist/common/interactive/pagination/index.d.ts.map +1 -0
  292. package/dist/common/interactive/pagination/index.js +235 -0
  293. package/dist/common/interactive/pagination/index.js.map +1 -0
  294. package/dist/common/interactive/pagination/index.mjs +223 -0
  295. package/dist/common/interactive/pagination/index.mjs.map +1 -0
  296. package/dist/common/interactive/pagination/usePagination.d.ts +3 -0
  297. package/dist/common/interactive/pagination/usePagination.d.ts.map +1 -0
  298. package/dist/common/interactive/pagination/usePagination.js +28 -0
  299. package/dist/common/interactive/pagination/usePagination.js.map +1 -0
  300. package/dist/common/interactive/pagination/usePagination.mjs +25 -0
  301. package/dist/common/interactive/pagination/usePagination.mjs.map +1 -0
  302. package/dist/common/interactive/popover-wrapper.d.ts +38 -0
  303. package/dist/common/interactive/popover-wrapper.d.ts.map +1 -0
  304. package/dist/common/interactive/popover-wrapper.js +138 -0
  305. package/dist/common/interactive/popover-wrapper.js.map +1 -0
  306. package/dist/common/interactive/popover-wrapper.mjs +116 -0
  307. package/dist/common/interactive/popover-wrapper.mjs.map +1 -0
  308. package/dist/common/interactive/pressable.d.ts +11 -0
  309. package/dist/common/interactive/pressable.d.ts.map +1 -0
  310. package/dist/common/interactive/pressable.js +84 -0
  311. package/dist/common/interactive/pressable.js.map +1 -0
  312. package/dist/common/interactive/pressable.mjs +62 -0
  313. package/dist/common/interactive/pressable.mjs.map +1 -0
  314. package/dist/common/interactive/select/context.d.ts +6 -0
  315. package/dist/common/interactive/select/context.d.ts.map +1 -0
  316. package/dist/common/interactive/select/context.js +38 -0
  317. package/dist/common/interactive/select/context.js.map +1 -0
  318. package/dist/common/interactive/select/context.mjs +14 -0
  319. package/dist/common/interactive/select/context.mjs.map +1 -0
  320. package/dist/common/interactive/select/index.d.ts +18 -0
  321. package/dist/common/interactive/select/index.d.ts.map +1 -0
  322. package/dist/common/interactive/select/index.js +123 -0
  323. package/dist/common/interactive/select/index.js.map +1 -0
  324. package/dist/common/interactive/select/index.mjs +18 -0
  325. package/dist/common/interactive/select/index.mjs.map +1 -0
  326. package/dist/common/interactive/select/select-body.d.ts +5 -0
  327. package/dist/common/interactive/select/select-body.d.ts.map +1 -0
  328. package/dist/common/interactive/select/select-body.js +89 -0
  329. package/dist/common/interactive/select/select-body.js.map +1 -0
  330. package/dist/common/interactive/select/select-body.mjs +67 -0
  331. package/dist/common/interactive/select/select-body.mjs.map +1 -0
  332. package/dist/common/interactive/select/select-close.d.ts +3 -0
  333. package/dist/common/interactive/select/select-close.d.ts.map +1 -0
  334. package/dist/common/interactive/select/select-close.js +38 -0
  335. package/dist/common/interactive/select/select-close.js.map +1 -0
  336. package/dist/common/interactive/select/select-close.mjs +16 -0
  337. package/dist/common/interactive/select/select-close.mjs.map +1 -0
  338. package/dist/common/interactive/select/select-content-auto-layout.d.ts +5 -0
  339. package/dist/common/interactive/select/select-content-auto-layout.d.ts.map +1 -0
  340. package/dist/common/interactive/select/select-content-auto-layout.js +221 -0
  341. package/dist/common/interactive/select/select-content-auto-layout.js.map +1 -0
  342. package/dist/common/interactive/select/select-content-auto-layout.mjs +199 -0
  343. package/dist/common/interactive/select/select-content-auto-layout.mjs.map +1 -0
  344. package/dist/common/interactive/select/select-content-group-auto-layout.d.ts +5 -0
  345. package/dist/common/interactive/select/select-content-group-auto-layout.d.ts.map +1 -0
  346. package/dist/common/interactive/select/select-content-group-auto-layout.js +411 -0
  347. package/dist/common/interactive/select/select-content-group-auto-layout.js.map +1 -0
  348. package/dist/common/interactive/select/select-content-group-auto-layout.mjs +389 -0
  349. package/dist/common/interactive/select/select-content-group-auto-layout.mjs.map +1 -0
  350. package/dist/common/interactive/select/select-content.d.ts +5 -0
  351. package/dist/common/interactive/select/select-content.d.ts.map +1 -0
  352. package/dist/common/interactive/select/select-content.js +187 -0
  353. package/dist/common/interactive/select/select-content.js.map +1 -0
  354. package/dist/common/interactive/select/select-content.mjs +165 -0
  355. package/dist/common/interactive/select/select-content.mjs.map +1 -0
  356. package/dist/common/interactive/select/select-footer.d.ts +5 -0
  357. package/dist/common/interactive/select/select-footer.d.ts.map +1 -0
  358. package/dist/common/interactive/select/select-footer.js +82 -0
  359. package/dist/common/interactive/select/select-footer.js.map +1 -0
  360. package/dist/common/interactive/select/select-footer.mjs +60 -0
  361. package/dist/common/interactive/select/select-footer.mjs.map +1 -0
  362. package/dist/common/interactive/select/select-item.d.ts +6 -0
  363. package/dist/common/interactive/select/select-item.d.ts.map +1 -0
  364. package/dist/common/interactive/select/select-item.js +214 -0
  365. package/dist/common/interactive/select/select-item.js.map +1 -0
  366. package/dist/common/interactive/select/select-item.mjs +191 -0
  367. package/dist/common/interactive/select/select-item.mjs.map +1 -0
  368. package/dist/common/interactive/select/select-layout.d.ts +8 -0
  369. package/dist/common/interactive/select/select-layout.d.ts.map +1 -0
  370. package/dist/common/interactive/select/select-layout.js +66 -0
  371. package/dist/common/interactive/select/select-layout.js.map +1 -0
  372. package/dist/common/interactive/select/select-layout.mjs +41 -0
  373. package/dist/common/interactive/select/select-layout.mjs.map +1 -0
  374. package/dist/common/interactive/select/select-search.d.ts +8 -0
  375. package/dist/common/interactive/select/select-search.d.ts.map +1 -0
  376. package/dist/common/interactive/select/select-search.js +55 -0
  377. package/dist/common/interactive/select/select-search.js.map +1 -0
  378. package/dist/common/interactive/select/select-search.mjs +33 -0
  379. package/dist/common/interactive/select/select-search.mjs.map +1 -0
  380. package/dist/common/interactive/select/select-states.d.ts +6 -0
  381. package/dist/common/interactive/select/select-states.d.ts.map +1 -0
  382. package/dist/common/interactive/select/select-states.js +57 -0
  383. package/dist/common/interactive/select/select-states.js.map +1 -0
  384. package/dist/common/interactive/select/select-states.mjs +34 -0
  385. package/dist/common/interactive/select/select-states.mjs.map +1 -0
  386. package/dist/common/interactive/select/select-trigger.d.ts +7 -0
  387. package/dist/common/interactive/select/select-trigger.d.ts.map +1 -0
  388. package/dist/common/interactive/select/select-trigger.js +310 -0
  389. package/dist/common/interactive/select/select-trigger.js.map +1 -0
  390. package/dist/common/interactive/select/select-trigger.mjs +286 -0
  391. package/dist/common/interactive/select/select-trigger.mjs.map +1 -0
  392. package/dist/common/interactive/select/select-value.d.ts +5 -0
  393. package/dist/common/interactive/select/select-value.d.ts.map +1 -0
  394. package/dist/common/interactive/select/select-value.js +52 -0
  395. package/dist/common/interactive/select/select-value.js.map +1 -0
  396. package/dist/common/interactive/select/select-value.mjs +30 -0
  397. package/dist/common/interactive/select/select-value.mjs.map +1 -0
  398. package/dist/common/interactive/select/select.css +62 -0
  399. package/dist/common/interactive/select/select.d.ts +4 -0
  400. package/dist/common/interactive/select/select.d.ts.map +1 -0
  401. package/dist/common/interactive/select/select.js +184 -0
  402. package/dist/common/interactive/select/select.js.map +1 -0
  403. package/dist/common/interactive/select/select.mjs +162 -0
  404. package/dist/common/interactive/select/select.mjs.map +1 -0
  405. package/dist/common/interactive/select/types.d.ts +213 -0
  406. package/dist/common/interactive/select/types.d.ts.map +1 -0
  407. package/dist/common/interactive/select/types.js +4 -0
  408. package/dist/common/interactive/select/types.js.map +1 -0
  409. package/dist/common/interactive/select/types.mjs +3 -0
  410. package/dist/common/interactive/select/types.mjs.map +1 -0
  411. package/dist/common/interactive/select/utils.d.ts +8 -0
  412. package/dist/common/interactive/select/utils.d.ts.map +1 -0
  413. package/dist/common/interactive/select/utils.js +31 -0
  414. package/dist/common/interactive/select/utils.js.map +1 -0
  415. package/dist/common/interactive/select/utils.mjs +28 -0
  416. package/dist/common/interactive/select/utils.mjs.map +1 -0
  417. package/dist/common/interactive/select/variants.d.ts +4 -0
  418. package/dist/common/interactive/select/variants.d.ts.map +1 -0
  419. package/dist/common/interactive/select/variants.js +27 -0
  420. package/dist/common/interactive/select/variants.js.map +1 -0
  421. package/dist/common/interactive/select/variants.mjs +25 -0
  422. package/dist/common/interactive/select/variants.mjs.map +1 -0
  423. package/dist/common/interactive/select-chip.d.ts +20 -0
  424. package/dist/common/interactive/select-chip.d.ts.map +1 -0
  425. package/dist/common/interactive/select-chip.js +76 -0
  426. package/dist/common/interactive/select-chip.js.map +1 -0
  427. package/dist/common/interactive/select-chip.mjs +74 -0
  428. package/dist/common/interactive/select-chip.mjs.map +1 -0
  429. package/dist/common/interactive/select-level.d.ts +19 -0
  430. package/dist/common/interactive/select-level.d.ts.map +1 -0
  431. package/dist/common/interactive/select-level.js +236 -0
  432. package/dist/common/interactive/select-level.js.map +1 -0
  433. package/dist/common/interactive/select-level.mjs +230 -0
  434. package/dist/common/interactive/select-level.mjs.map +1 -0
  435. package/dist/common/interactive/select-range.d.ts +30 -0
  436. package/dist/common/interactive/select-range.d.ts.map +1 -0
  437. package/dist/common/interactive/select-range.js +211 -0
  438. package/dist/common/interactive/select-range.js.map +1 -0
  439. package/dist/common/interactive/select-range.mjs +209 -0
  440. package/dist/common/interactive/select-range.mjs.map +1 -0
  441. package/dist/common/interactive/select-with-api.d.ts +97 -0
  442. package/dist/common/interactive/select-with-api.d.ts.map +1 -0
  443. package/dist/common/interactive/select-with-api.js +767 -0
  444. package/dist/common/interactive/select-with-api.js.map +1 -0
  445. package/dist/common/interactive/select-with-api.mjs +758 -0
  446. package/dist/common/interactive/select-with-api.mjs.map +1 -0
  447. package/dist/common/interactive/select.d.ts +3 -0
  448. package/dist/common/interactive/select.d.ts.map +1 -0
  449. package/dist/common/interactive/select.js +15 -0
  450. package/dist/common/interactive/select.js.map +1 -0
  451. package/dist/common/interactive/select.mjs +4 -0
  452. package/dist/common/interactive/select.mjs.map +1 -0
  453. package/dist/common/interactive/sheet-wrapper.d.ts +34 -0
  454. package/dist/common/interactive/sheet-wrapper.d.ts.map +1 -0
  455. package/dist/common/interactive/sheet-wrapper.js +105 -0
  456. package/dist/common/interactive/sheet-wrapper.js.map +1 -0
  457. package/dist/common/interactive/sheet-wrapper.mjs +83 -0
  458. package/dist/common/interactive/sheet-wrapper.mjs.map +1 -0
  459. package/dist/common/interactive/table/enhanced-table.d.ts +5 -0
  460. package/dist/common/interactive/table/enhanced-table.d.ts.map +1 -0
  461. package/dist/common/interactive/table/enhanced-table.js +390 -0
  462. package/dist/common/interactive/table/enhanced-table.js.map +1 -0
  463. package/dist/common/interactive/table/enhanced-table.mjs +388 -0
  464. package/dist/common/interactive/table/enhanced-table.mjs.map +1 -0
  465. package/dist/common/interactive/table/index.d.ts +10 -0
  466. package/dist/common/interactive/table/index.d.ts.map +1 -0
  467. package/dist/common/interactive/table/index.js +83 -0
  468. package/dist/common/interactive/table/index.js.map +1 -0
  469. package/dist/common/interactive/table/index.mjs +68 -0
  470. package/dist/common/interactive/table/index.mjs.map +1 -0
  471. package/dist/common/interactive/table/table-pagination.d.ts +5 -0
  472. package/dist/common/interactive/table/table-pagination.d.ts.map +1 -0
  473. package/dist/common/interactive/table/table-pagination.js +12 -0
  474. package/dist/common/interactive/table/table-pagination.js.map +1 -0
  475. package/dist/common/interactive/table/table-pagination.mjs +10 -0
  476. package/dist/common/interactive/table/table-pagination.mjs.map +1 -0
  477. package/dist/common/interactive/table/types.d.ts +54 -0
  478. package/dist/common/interactive/table/types.d.ts.map +1 -0
  479. package/dist/common/interactive/table/types.js +4 -0
  480. package/dist/common/interactive/table/types.js.map +1 -0
  481. package/dist/common/interactive/table/types.mjs +3 -0
  482. package/dist/common/interactive/table/types.mjs.map +1 -0
  483. package/dist/common/interactive/time-picker.d.ts +74 -0
  484. package/dist/common/interactive/time-picker.d.ts.map +1 -0
  485. package/dist/common/interactive/time-picker.js +313 -0
  486. package/dist/common/interactive/time-picker.js.map +1 -0
  487. package/dist/common/interactive/time-picker.mjs +307 -0
  488. package/dist/common/interactive/time-picker.mjs.map +1 -0
  489. package/dist/common/interactive/types.d.ts +2 -0
  490. package/dist/common/interactive/types.d.ts.map +1 -0
  491. package/dist/common/interactive/types.js +4 -0
  492. package/dist/common/interactive/types.js.map +1 -0
  493. package/dist/common/interactive/types.mjs +3 -0
  494. package/dist/common/interactive/types.mjs.map +1 -0
  495. package/dist/common/pages/page-404.d.ts +3 -0
  496. package/dist/common/pages/page-404.d.ts.map +1 -0
  497. package/dist/common/pages/page-404.js +16 -0
  498. package/dist/common/pages/page-404.js.map +1 -0
  499. package/dist/common/pages/page-404.mjs +11 -0
  500. package/dist/common/pages/page-404.mjs.map +1 -0
  501. package/dist/common/pages/page-500.d.ts +9 -0
  502. package/dist/common/pages/page-500.d.ts.map +1 -0
  503. package/dist/common/pages/page-500.js +30 -0
  504. package/dist/common/pages/page-500.js.map +1 -0
  505. package/dist/common/pages/page-500.mjs +25 -0
  506. package/dist/common/pages/page-500.mjs.map +1 -0
  507. package/dist/components/accordion.d.ts +8 -0
  508. package/dist/components/accordion.d.ts.map +1 -0
  509. package/dist/components/accordion.js +65 -0
  510. package/dist/components/accordion.js.map +1 -0
  511. package/dist/components/accordion.mjs +39 -0
  512. package/dist/components/accordion.mjs.map +1 -0
  513. package/dist/components/alert-dialog.d.ts +33 -0
  514. package/dist/components/alert-dialog.d.ts.map +1 -0
  515. package/dist/components/alert-dialog.js +231 -0
  516. package/dist/components/alert-dialog.js.map +1 -0
  517. package/dist/components/alert-dialog.mjs +197 -0
  518. package/dist/components/alert-dialog.mjs.map +1 -0
  519. package/dist/components/alert.d.ts +13 -0
  520. package/dist/components/alert.d.ts.map +1 -0
  521. package/dist/components/alert.js +97 -0
  522. package/dist/components/alert.js.map +1 -0
  523. package/dist/components/alert.mjs +72 -0
  524. package/dist/components/alert.mjs.map +1 -0
  525. package/dist/components/aspect-ratio.d.ts +4 -0
  526. package/dist/components/aspect-ratio.d.ts.map +1 -0
  527. package/dist/components/aspect-ratio.js +29 -0
  528. package/dist/components/aspect-ratio.js.map +1 -0
  529. package/dist/components/aspect-ratio.mjs +7 -0
  530. package/dist/components/aspect-ratio.mjs.map +1 -0
  531. package/dist/components/avatar.d.ts +7 -0
  532. package/dist/components/avatar.d.ts.map +1 -0
  533. package/dist/components/avatar.js +64 -0
  534. package/dist/components/avatar.js.map +1 -0
  535. package/dist/components/avatar.mjs +39 -0
  536. package/dist/components/avatar.mjs.map +1 -0
  537. package/dist/components/badge.d.ts +12 -0
  538. package/dist/components/badge.d.ts.map +1 -0
  539. package/dist/components/badge.js +72 -0
  540. package/dist/components/badge.js.map +1 -0
  541. package/dist/components/badge.mjs +69 -0
  542. package/dist/components/badge.mjs.map +1 -0
  543. package/dist/components/breadcrumb.d.ts +20 -0
  544. package/dist/components/breadcrumb.d.ts.map +1 -0
  545. package/dist/components/breadcrumb.js +109 -0
  546. package/dist/components/breadcrumb.js.map +1 -0
  547. package/dist/components/breadcrumb.mjs +81 -0
  548. package/dist/components/breadcrumb.mjs.map +1 -0
  549. package/dist/components/button.d.ts +28 -0
  550. package/dist/components/button.d.ts.map +1 -0
  551. package/dist/components/button.js +250 -0
  552. package/dist/components/button.js.map +1 -0
  553. package/dist/components/button.mjs +226 -0
  554. package/dist/components/button.mjs.map +1 -0
  555. package/dist/components/calendar.d.ts +57 -0
  556. package/dist/components/calendar.d.ts.map +1 -0
  557. package/dist/components/calendar.js +681 -0
  558. package/dist/components/calendar.js.map +1 -0
  559. package/dist/components/calendar.mjs +659 -0
  560. package/dist/components/calendar.mjs.map +1 -0
  561. package/dist/components/card.d.ts +12 -0
  562. package/dist/components/card.d.ts.map +1 -0
  563. package/dist/components/card.js +98 -0
  564. package/dist/components/card.js.map +1 -0
  565. package/dist/components/card.mjs +71 -0
  566. package/dist/components/card.mjs.map +1 -0
  567. package/dist/components/carousel.d.ts +23 -0
  568. package/dist/components/carousel.d.ts.map +1 -0
  569. package/dist/components/carousel.js +237 -0
  570. package/dist/components/carousel.js.map +1 -0
  571. package/dist/components/carousel.mjs +208 -0
  572. package/dist/components/carousel.mjs.map +1 -0
  573. package/dist/components/chart.d.ts +63 -0
  574. package/dist/components/chart.d.ts.map +1 -0
  575. package/dist/components/chart.js +252 -0
  576. package/dist/components/chart.js.map +1 -0
  577. package/dist/components/chart.mjs +224 -0
  578. package/dist/components/chart.mjs.map +1 -0
  579. package/dist/components/checkbox.d.ts +18 -0
  580. package/dist/components/checkbox.d.ts.map +1 -0
  581. package/dist/components/checkbox.js +97 -0
  582. package/dist/components/checkbox.js.map +1 -0
  583. package/dist/components/checkbox.mjs +74 -0
  584. package/dist/components/checkbox.mjs.map +1 -0
  585. package/dist/components/chip.d.ts +30 -0
  586. package/dist/components/chip.d.ts.map +1 -0
  587. package/dist/components/chip.js +88 -0
  588. package/dist/components/chip.js.map +1 -0
  589. package/dist/components/chip.mjs +82 -0
  590. package/dist/components/chip.mjs.map +1 -0
  591. package/dist/components/collapsible.d.ts +6 -0
  592. package/dist/components/collapsible.d.ts.map +1 -0
  593. package/dist/components/collapsible.js +33 -0
  594. package/dist/components/collapsible.js.map +1 -0
  595. package/dist/components/collapsible.mjs +9 -0
  596. package/dist/components/collapsible.mjs.map +1 -0
  597. package/dist/components/command.d.ts +81 -0
  598. package/dist/components/command.d.ts.map +1 -0
  599. package/dist/components/command.js +125 -0
  600. package/dist/components/command.js.map +1 -0
  601. package/dist/components/command.mjs +95 -0
  602. package/dist/components/command.mjs.map +1 -0
  603. package/dist/components/context-menu.d.ts +28 -0
  604. package/dist/components/context-menu.d.ts.map +1 -0
  605. package/dist/components/context-menu.js +168 -0
  606. package/dist/components/context-menu.js.map +1 -0
  607. package/dist/components/context-menu.mjs +131 -0
  608. package/dist/components/context-menu.mjs.map +1 -0
  609. package/dist/components/dialog.d.ts +32 -0
  610. package/dist/components/dialog.d.ts.map +1 -0
  611. package/dist/components/dialog.js +192 -0
  612. package/dist/components/dialog.js.map +1 -0
  613. package/dist/components/dialog.mjs +159 -0
  614. package/dist/components/dialog.mjs.map +1 -0
  615. package/dist/components/drawer.d.ts +23 -0
  616. package/dist/components/drawer.d.ts.map +1 -0
  617. package/dist/components/drawer.js +98 -0
  618. package/dist/components/drawer.js.map +1 -0
  619. package/dist/components/drawer.mjs +67 -0
  620. package/dist/components/drawer.mjs.map +1 -0
  621. package/dist/components/dropdown-menu.d.ts +28 -0
  622. package/dist/components/dropdown-menu.d.ts.map +1 -0
  623. package/dist/components/dropdown-menu.js +163 -0
  624. package/dist/components/dropdown-menu.js.map +1 -0
  625. package/dist/components/dropdown-menu.mjs +126 -0
  626. package/dist/components/dropdown-menu.mjs.map +1 -0
  627. package/dist/components/form.d.ts +24 -0
  628. package/dist/components/form.d.ts.map +1 -0
  629. package/dist/components/form.js +123 -0
  630. package/dist/components/form.js.map +1 -0
  631. package/dist/components/form.mjs +94 -0
  632. package/dist/components/form.mjs.map +1 -0
  633. package/dist/components/hover-card.d.ts +7 -0
  634. package/dist/components/hover-card.d.ts.map +1 -0
  635. package/dist/components/hover-card.js +50 -0
  636. package/dist/components/hover-card.js.map +1 -0
  637. package/dist/components/hover-card.mjs +25 -0
  638. package/dist/components/hover-card.mjs.map +1 -0
  639. package/dist/components/input-otp.d.ts +39 -0
  640. package/dist/components/input-otp.d.ts.map +1 -0
  641. package/dist/components/input-otp.js +84 -0
  642. package/dist/components/input-otp.js.map +1 -0
  643. package/dist/components/input-otp.mjs +59 -0
  644. package/dist/components/input-otp.mjs.map +1 -0
  645. package/dist/components/input.d.ts +150 -0
  646. package/dist/components/input.d.ts.map +1 -0
  647. package/dist/components/input.js +858 -0
  648. package/dist/components/input.js.map +1 -0
  649. package/dist/components/input.mjs +831 -0
  650. package/dist/components/input.mjs.map +1 -0
  651. package/dist/components/label.d.ts +6 -0
  652. package/dist/components/label.d.ts.map +1 -0
  653. package/dist/components/label.js +38 -0
  654. package/dist/components/label.js.map +1 -0
  655. package/dist/components/label.mjs +15 -0
  656. package/dist/components/label.mjs.map +1 -0
  657. package/dist/components/lottie.d.ts +63 -0
  658. package/dist/components/lottie.d.ts.map +1 -0
  659. package/dist/components/lottie.js +59 -0
  660. package/dist/components/lottie.js.map +1 -0
  661. package/dist/components/lottie.mjs +49 -0
  662. package/dist/components/lottie.mjs.map +1 -0
  663. package/dist/components/menubar.d.ts +29 -0
  664. package/dist/components/menubar.d.ts.map +1 -0
  665. package/dist/components/menubar.js +195 -0
  666. package/dist/components/menubar.js.map +1 -0
  667. package/dist/components/menubar.mjs +157 -0
  668. package/dist/components/menubar.mjs.map +1 -0
  669. package/dist/components/navigation-menu.d.ts +13 -0
  670. package/dist/components/navigation-menu.d.ts.map +1 -0
  671. package/dist/components/navigation-menu.js +126 -0
  672. package/dist/components/navigation-menu.js.map +1 -0
  673. package/dist/components/navigation-menu.mjs +95 -0
  674. package/dist/components/navigation-menu.mjs.map +1 -0
  675. package/dist/components/pagination.d.ts +29 -0
  676. package/dist/components/pagination.d.ts.map +1 -0
  677. package/dist/components/pagination.js +112 -0
  678. package/dist/components/pagination.js.map +1 -0
  679. package/dist/components/pagination.mjs +84 -0
  680. package/dist/components/pagination.mjs.map +1 -0
  681. package/dist/components/popover.d.ts +7 -0
  682. package/dist/components/popover.d.ts.map +1 -0
  683. package/dist/components/popover.js +63 -0
  684. package/dist/components/popover.js.map +1 -0
  685. package/dist/components/popover.mjs +38 -0
  686. package/dist/components/popover.mjs.map +1 -0
  687. package/dist/components/progress.d.ts +7 -0
  688. package/dist/components/progress.d.ts.map +1 -0
  689. package/dist/components/progress.js +50 -0
  690. package/dist/components/progress.js.map +1 -0
  691. package/dist/components/progress.mjs +27 -0
  692. package/dist/components/progress.mjs.map +1 -0
  693. package/dist/components/radio-group.d.ts +17 -0
  694. package/dist/components/radio-group.d.ts.map +1 -0
  695. package/dist/components/radio-group.js +91 -0
  696. package/dist/components/radio-group.js.map +1 -0
  697. package/dist/components/radio-group.mjs +67 -0
  698. package/dist/components/radio-group.mjs.map +1 -0
  699. package/dist/components/resizable.d.ts +24 -0
  700. package/dist/components/resizable.d.ts.map +1 -0
  701. package/dist/components/resizable.js +59 -0
  702. package/dist/components/resizable.js.map +1 -0
  703. package/dist/components/resizable.mjs +35 -0
  704. package/dist/components/resizable.mjs.map +1 -0
  705. package/dist/components/responsive-popover.d.ts +25 -0
  706. package/dist/components/responsive-popover.d.ts.map +1 -0
  707. package/dist/components/responsive-popover.js +74 -0
  708. package/dist/components/responsive-popover.js.map +1 -0
  709. package/dist/components/responsive-popover.mjs +50 -0
  710. package/dist/components/responsive-popover.mjs.map +1 -0
  711. package/dist/components/scroll-area.d.ts +6 -0
  712. package/dist/components/scroll-area.d.ts.map +1 -0
  713. package/dist/components/scroll-area.js +63 -0
  714. package/dist/components/scroll-area.js.map +1 -0
  715. package/dist/components/scroll-area.mjs +39 -0
  716. package/dist/components/scroll-area.mjs.map +1 -0
  717. package/dist/components/separator.d.ts +5 -0
  718. package/dist/components/separator.d.ts.map +1 -0
  719. package/dist/components/separator.js +47 -0
  720. package/dist/components/separator.js.map +1 -0
  721. package/dist/components/separator.mjs +24 -0
  722. package/dist/components/separator.mjs.map +1 -0
  723. package/dist/components/sheet.d.ts +29 -0
  724. package/dist/components/sheet.d.ts.map +1 -0
  725. package/dist/components/sheet.js +239 -0
  726. package/dist/components/sheet.js.map +1 -0
  727. package/dist/components/sheet.mjs +206 -0
  728. package/dist/components/sheet.mjs.map +1 -0
  729. package/dist/components/sidebar.d.ts +87 -0
  730. package/dist/components/sidebar.d.ts.map +1 -0
  731. package/dist/components/sidebar.js +888 -0
  732. package/dist/components/sidebar.js.map +1 -0
  733. package/dist/components/sidebar.mjs +842 -0
  734. package/dist/components/sidebar.mjs.map +1 -0
  735. package/dist/components/skeleton.d.ts +36 -0
  736. package/dist/components/skeleton.d.ts.map +1 -0
  737. package/dist/components/skeleton.js +153 -0
  738. package/dist/components/skeleton.js.map +1 -0
  739. package/dist/components/skeleton.mjs +127 -0
  740. package/dist/components/skeleton.mjs.map +1 -0
  741. package/dist/components/slider.d.ts +5 -0
  742. package/dist/components/slider.d.ts.map +1 -0
  743. package/dist/components/slider.js +45 -0
  744. package/dist/components/slider.js.map +1 -0
  745. package/dist/components/slider.mjs +22 -0
  746. package/dist/components/slider.mjs.map +1 -0
  747. package/dist/components/sonner.d.ts +4 -0
  748. package/dist/components/sonner.d.ts.map +1 -0
  749. package/dist/components/sonner.js +76 -0
  750. package/dist/components/sonner.js.map +1 -0
  751. package/dist/components/sonner.mjs +71 -0
  752. package/dist/components/sonner.mjs.map +1 -0
  753. package/dist/components/spinner.d.ts +11 -0
  754. package/dist/components/spinner.d.ts.map +1 -0
  755. package/dist/components/spinner.js +59 -0
  756. package/dist/components/spinner.js.map +1 -0
  757. package/dist/components/spinner.mjs +36 -0
  758. package/dist/components/spinner.mjs.map +1 -0
  759. package/dist/components/stepper.d.ts +114 -0
  760. package/dist/components/stepper.d.ts.map +1 -0
  761. package/dist/components/stepper.js +726 -0
  762. package/dist/components/stepper.js.map +1 -0
  763. package/dist/components/stepper.mjs +702 -0
  764. package/dist/components/stepper.mjs.map +1 -0
  765. package/dist/components/switch.d.ts +16 -0
  766. package/dist/components/switch.d.ts.map +1 -0
  767. package/dist/components/switch.js +85 -0
  768. package/dist/components/switch.js.map +1 -0
  769. package/dist/components/switch.mjs +62 -0
  770. package/dist/components/switch.mjs.map +1 -0
  771. package/dist/components/table.d.ts +11 -0
  772. package/dist/components/table.d.ts.map +1 -0
  773. package/dist/components/table.js +91 -0
  774. package/dist/components/table.js.map +1 -0
  775. package/dist/components/table.mjs +62 -0
  776. package/dist/components/table.mjs.map +1 -0
  777. package/dist/components/tabs.d.ts +32 -0
  778. package/dist/components/tabs.d.ts.map +1 -0
  779. package/dist/components/tabs.js +287 -0
  780. package/dist/components/tabs.js.map +1 -0
  781. package/dist/components/tabs.mjs +261 -0
  782. package/dist/components/tabs.mjs.map +1 -0
  783. package/dist/components/textarea.d.ts +21 -0
  784. package/dist/components/textarea.d.ts.map +1 -0
  785. package/dist/components/textarea.js +200 -0
  786. package/dist/components/textarea.js.map +1 -0
  787. package/dist/components/textarea.mjs +174 -0
  788. package/dist/components/textarea.mjs.map +1 -0
  789. package/dist/components/toggle-group.d.ts +13 -0
  790. package/dist/components/toggle-group.d.ts.map +1 -0
  791. package/dist/components/toggle-group.js +67 -0
  792. package/dist/components/toggle-group.js.map +1 -0
  793. package/dist/components/toggle-group.mjs +43 -0
  794. package/dist/components/toggle-group.mjs.map +1 -0
  795. package/dist/components/toggle.d.ts +13 -0
  796. package/dist/components/toggle.d.ts.map +1 -0
  797. package/dist/components/toggle.js +63 -0
  798. package/dist/components/toggle.js.map +1 -0
  799. package/dist/components/toggle.mjs +39 -0
  800. package/dist/components/toggle.mjs.map +1 -0
  801. package/dist/components/tooltip.d.ts +31 -0
  802. package/dist/components/tooltip.d.ts.map +1 -0
  803. package/dist/components/tooltip.js +172 -0
  804. package/dist/components/tooltip.js.map +1 -0
  805. package/dist/components/tooltip.mjs +145 -0
  806. package/dist/components/tooltip.mjs.map +1 -0
  807. package/dist/globals.css +1179 -0
  808. package/dist/hooks/index.d.ts +6 -0
  809. package/dist/hooks/index.d.ts.map +1 -0
  810. package/dist/hooks/index.js +27 -0
  811. package/dist/hooks/index.js.map +1 -0
  812. package/dist/hooks/index.mjs +6 -0
  813. package/dist/hooks/index.mjs.map +1 -0
  814. package/dist/hooks/useCopyToClipboard.d.ts +26 -0
  815. package/dist/hooks/useCopyToClipboard.d.ts.map +1 -0
  816. package/dist/hooks/useCopyToClipboard.js +59 -0
  817. package/dist/hooks/useCopyToClipboard.js.map +1 -0
  818. package/dist/hooks/useCopyToClipboard.mjs +57 -0
  819. package/dist/hooks/useCopyToClipboard.mjs.map +1 -0
  820. package/dist/hooks/useDevice.d.ts +7 -0
  821. package/dist/hooks/useDevice.d.ts.map +1 -0
  822. package/dist/hooks/useDevice.js +20 -0
  823. package/dist/hooks/useDevice.js.map +1 -0
  824. package/dist/hooks/useDevice.mjs +14 -0
  825. package/dist/hooks/useDevice.mjs.map +1 -0
  826. package/dist/hooks/useDialogTracking.d.ts +17 -0
  827. package/dist/hooks/useDialogTracking.d.ts.map +1 -0
  828. package/dist/hooks/useDialogTracking.js +113 -0
  829. package/dist/hooks/useDialogTracking.js.map +1 -0
  830. package/dist/hooks/useDialogTracking.mjs +91 -0
  831. package/dist/hooks/useDialogTracking.mjs.map +1 -0
  832. package/dist/hooks/useIsMounted.d.ts +8 -0
  833. package/dist/hooks/useIsMounted.d.ts.map +1 -0
  834. package/dist/hooks/useIsMounted.js +15 -0
  835. package/dist/hooks/useIsMounted.js.map +1 -0
  836. package/dist/hooks/useIsMounted.mjs +13 -0
  837. package/dist/hooks/useIsMounted.mjs.map +1 -0
  838. package/dist/hooks/usePathname.d.ts +20 -0
  839. package/dist/hooks/usePathname.d.ts.map +1 -0
  840. package/dist/hooks/usePathname.js +85 -0
  841. package/dist/hooks/usePathname.js.map +1 -0
  842. package/dist/hooks/usePathname.mjs +83 -0
  843. package/dist/hooks/usePathname.mjs.map +1 -0
  844. package/dist/icons.d.ts +2 -0
  845. package/dist/icons.d.ts.map +1 -0
  846. package/dist/icons.js +14 -0
  847. package/dist/icons.js.map +1 -0
  848. package/dist/icons.mjs +3 -0
  849. package/dist/icons.mjs.map +1 -0
  850. package/dist/lib/formatCurrency.d.ts +106 -0
  851. package/dist/lib/formatCurrency.d.ts.map +1 -0
  852. package/dist/lib/formatCurrency.js +187 -0
  853. package/dist/lib/formatCurrency.js.map +1 -0
  854. package/dist/lib/formatCurrency.mjs +185 -0
  855. package/dist/lib/formatCurrency.mjs.map +1 -0
  856. package/dist/lib/helpers.d.ts +64 -0
  857. package/dist/lib/helpers.d.ts.map +1 -0
  858. package/dist/lib/helpers.js +171 -0
  859. package/dist/lib/helpers.js.map +1 -0
  860. package/dist/lib/helpers.mjs +157 -0
  861. package/dist/lib/helpers.mjs.map +1 -0
  862. package/dist/lib/index.d.ts +6 -0
  863. package/dist/lib/index.d.ts.map +1 -0
  864. package/dist/lib/index.js +33 -0
  865. package/dist/lib/index.js.map +1 -0
  866. package/dist/lib/index.mjs +6 -0
  867. package/dist/lib/index.mjs.map +1 -0
  868. package/dist/lib/types.d.ts +37 -0
  869. package/dist/lib/types.d.ts.map +1 -0
  870. package/dist/lib/types.js +11 -0
  871. package/dist/lib/types.js.map +1 -0
  872. package/dist/lib/types.mjs +9 -0
  873. package/dist/lib/types.mjs.map +1 -0
  874. package/dist/lib/utils.d.ts +4 -0
  875. package/dist/lib/utils.d.ts.map +1 -0
  876. package/dist/lib/utils.js +24 -0
  877. package/dist/lib/utils.js.map +1 -0
  878. package/dist/lib/utils.mjs +19 -0
  879. package/dist/lib/utils.mjs.map +1 -0
  880. package/dist/providers/DeviceSizeWatcher/index.d.ts +3 -0
  881. package/dist/providers/DeviceSizeWatcher/index.d.ts.map +1 -0
  882. package/dist/providers/DeviceSizeWatcher/index.js +72 -0
  883. package/dist/providers/DeviceSizeWatcher/index.js.map +1 -0
  884. package/dist/providers/DeviceSizeWatcher/index.mjs +47 -0
  885. package/dist/providers/DeviceSizeWatcher/index.mjs.map +1 -0
  886. package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.d.ts +13 -0
  887. package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.d.ts.map +1 -0
  888. package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.js +22 -0
  889. package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.js.map +1 -0
  890. package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.mjs +20 -0
  891. package/dist/providers/DeviceSizeWatcher/useDeviceSizeStore.mjs.map +1 -0
  892. package/dist/providers/UISystemProvider.d.ts +68 -0
  893. package/dist/providers/UISystemProvider.d.ts.map +1 -0
  894. package/dist/providers/UISystemProvider.js +197 -0
  895. package/dist/providers/UISystemProvider.js.map +1 -0
  896. package/dist/providers/UISystemProvider.mjs +188 -0
  897. package/dist/providers/UISystemProvider.mjs.map +1 -0
  898. package/dist/providers/index.d.ts +3 -0
  899. package/dist/providers/index.d.ts.map +1 -0
  900. package/dist/providers/index.js +24 -0
  901. package/dist/providers/index.js.map +1 -0
  902. package/dist/providers/index.mjs +3 -0
  903. package/dist/providers/index.mjs.map +1 -0
  904. package/dist/theme.d.ts +10 -0
  905. package/dist/theme.d.ts.map +1 -0
  906. package/dist/theme.js +333 -0
  907. package/dist/theme.js.map +1 -0
  908. package/dist/theme.mjs +327 -0
  909. package/dist/theme.mjs.map +1 -0
  910. package/package.json +252 -0
  911. package/postcss.config.mjs +6 -0
  912. package/tailwind.config.ts +350 -0
@@ -0,0 +1,53 @@
1
+ import React from 'react';
2
+ export { PageBreadcrumb } from './page-breadcrumb';
3
+ export type { PageBreadcrumbItem } from './page-breadcrumb';
4
+ declare const PageTitle: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLHeadingElement>, "title"> & {
5
+ level?: 1 | 2 | 3 | 4 | 5 | 6;
6
+ addonBefore?: React.ReactNode;
7
+ addonAfter?: React.ReactNode;
8
+ } & React.RefAttributes<HTMLHeadingElement>>;
9
+ declare const PageSubtitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
10
+ interface PageBackProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
11
+ onBack: () => void;
12
+ }
13
+ declare const PageBack: React.ForwardRefExoticComponent<PageBackProps & React.RefAttributes<HTMLButtonElement>>;
14
+ declare const PageAction: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
15
+ export declare const getChildByType: (children: React.ReactNode, targetType: React.ComponentType<any>) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | undefined;
16
+ interface PageHeaderProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {
17
+ className?: string;
18
+ children?: React.ReactNode;
19
+ /** Alternative to children composition - more explicit */
20
+ title?: React.ReactNode;
21
+ subtitle?: React.ReactNode;
22
+ action?: React.ReactNode;
23
+ back?: React.ReactNode;
24
+ /** Control responsive behavior */
25
+ responsive?: boolean;
26
+ /** Show loading state */
27
+ loading?: boolean;
28
+ /** Control responsive behavior */
29
+ variant?: 'default' | 'compact' | 'centered';
30
+ /** Link component for breadcrumbs */
31
+ LinkComponent?: React.ComponentType<any>;
32
+ }
33
+ declare const PageHeader: React.ForwardRefExoticComponent<PageHeaderProps & React.RefAttributes<HTMLDivElement>>;
34
+ interface PageContainerProps extends React.HTMLAttributes<HTMLDivElement> {
35
+ /** Control page width */
36
+ size?: 'full' | 'md' | 'lg';
37
+ }
38
+ declare const PageContainer: React.ForwardRefExoticComponent<PageContainerProps & React.RefAttributes<HTMLDivElement>>;
39
+ declare const PageContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
40
+ declare const Page: React.ForwardRefExoticComponent<PageContainerProps & React.RefAttributes<HTMLDivElement>> & {
41
+ Header: React.ForwardRefExoticComponent<PageHeaderProps & React.RefAttributes<HTMLDivElement>>;
42
+ Title: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLHeadingElement>, "title"> & {
43
+ level?: 1 | 2 | 3 | 4 | 5 | 6;
44
+ addonBefore?: React.ReactNode;
45
+ addonAfter?: React.ReactNode;
46
+ } & React.RefAttributes<HTMLHeadingElement>>;
47
+ Subtitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
48
+ Action: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
49
+ Content: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
50
+ Breadcrumb: React.MemoExoticComponent<({ items, className, isLoading, LinkComponent: LinkComponentProp, }: import("./page-breadcrumb").PageBreadcrumbProps) => import("react/jsx-runtime").JSX.Element>;
51
+ };
52
+ export { Page, PageAction, PageBack, PageContainer, PageContent, PageHeader, PageSubtitle, PageTitle, };
53
+ //# sourceMappingURL=page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../src/common/display/page.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAG5D,QAAA,MAAM,SAAS;YAGH,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;kBACf,KAAK,CAAC,SAAS;iBAChB,KAAK,CAAC,SAAS;4CAiB9B,CAAC;AAGH,QAAA,MAAM,YAAY,6GAIjB,CAAC;AAGF,UAAU,aAAc,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;IAC3E,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AACD,QAAA,MAAM,QAAQ,yFAeb,CAAC;AAGF,QAAA,MAAM,UAAU,6GAIf,CAAC;AAIF,eAAO,MAAM,cAAc,GAAI,UAAU,KAAK,CAAC,SAAS,EAAE,YAAY,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,mFAa7F,CAAC;AAEF,UAAU,eAAgB,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IACnF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,0DAA0D;IAC1D,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,kCAAkC;IAClC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yBAAyB;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kCAAkC;IAClC,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;IAC7C,qCAAqC;IACrC,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;CAC1C;AAED,QAAA,MAAM,UAAU,wFAyDf,CAAC;AAGF,UAAU,kBAAmB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACvE,yBAAyB;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;CAC7B;AAED,QAAA,MAAM,aAAa,2FAelB,CAAC;AAGF,QAAA,MAAM,WAAW,6GAQhB,CAAC;AAIF,QAAA,MAAM,IAAI;;;gBA1LE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;sBACf,KAAK,CAAC,SAAS;qBAChB,KAAK,CAAC,SAAS;;;;;;CA+L9B,CAAC;AAEH,OAAO,EACL,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,aAAa,EACb,WAAW,EACX,UAAU,EACV,YAAY,EACZ,SAAS,GACV,CAAC"}
@@ -0,0 +1,155 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var Icon = require('@/assets/Icon');
5
+ var button = require('@/components/button');
6
+ var skeleton = require('@/components/skeleton');
7
+ var utils = require('@/lib/utils');
8
+ var React = require('react');
9
+ var pageBreadcrumb = require('./page-breadcrumb');
10
+
11
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
12
+
13
+ var React__default = /*#__PURE__*/_interopDefault(React);
14
+
15
+ const PageTitle = React__default.default.forwardRef(({ className, level = 1, addonBefore, addonAfter, ...props }, ref) => {
16
+ const Component = `h${level}`;
17
+ const componentProps = {
18
+ ref,
19
+ className: utils.cn("text-t20sb text-ink-500s font-medium", className),
20
+ ...props
21
+ };
22
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
23
+ addonBefore && /* @__PURE__ */ jsxRuntime.jsx("span", { children: addonBefore }),
24
+ React__default.default.createElement(Component, componentProps),
25
+ addonAfter && /* @__PURE__ */ jsxRuntime.jsx("span", { children: addonAfter })
26
+ ] });
27
+ });
28
+ PageTitle.displayName = "PageTitle";
29
+ const PageSubtitle = React__default.default.forwardRef(
30
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: utils.cn("text-t14m text-ink-400s", className), ...props })
31
+ );
32
+ PageSubtitle.displayName = "PageSubtitle";
33
+ const PageBack = React__default.default.forwardRef(
34
+ ({ className, onBack, ...props }, ref) => {
35
+ return /* @__PURE__ */ jsxRuntime.jsx(
36
+ button.Button,
37
+ {
38
+ ref,
39
+ variant: "ghost",
40
+ size: "icon",
41
+ className: utils.cn("h-8 w-8 p-0", className),
42
+ onClick: onBack,
43
+ ...props,
44
+ children: /* @__PURE__ */ jsxRuntime.jsx(Icon.ArrowLeftIcon, { className: "h-6 w-6" })
45
+ }
46
+ );
47
+ }
48
+ );
49
+ PageBack.displayName = "PageBack";
50
+ const PageAction = React__default.default.forwardRef(
51
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: utils.cn("flex items-center gap-3", className), ...props })
52
+ );
53
+ PageAction.displayName = "PageAction";
54
+ const getChildByType = (children, targetType) => {
55
+ return React__default.default.Children.toArray(children).find((child) => {
56
+ if (!React__default.default.isValidElement(child)) return false;
57
+ if (child.type === targetType) return true;
58
+ const childDisplayName = child.type?.displayName;
59
+ const targetDisplayName = targetType?.displayName;
60
+ return childDisplayName && targetDisplayName && childDisplayName === targetDisplayName;
61
+ });
62
+ };
63
+ const PageHeader = React__default.default.forwardRef(
64
+ ({
65
+ className,
66
+ children,
67
+ title,
68
+ subtitle,
69
+ action,
70
+ back,
71
+ loading,
72
+ variant = "default",
73
+ responsive = true,
74
+ ...props
75
+ }, ref) => {
76
+ const headerTitle = title || getChildByType(children, PageTitle);
77
+ const headerSubtitle = subtitle || getChildByType(children, PageSubtitle);
78
+ const headerAction = action || getChildByType(children, PageAction);
79
+ const headerBack = back || getChildByType(children, PageBack);
80
+ const variantClasses = {
81
+ default: "flex flex-col items-start justify-between gap-4 sm:flex-row",
82
+ compact: "flex flex-col items-start justify-between gap-2 sm:flex-row",
83
+ centered: "flex flex-col items-center justify-center gap-4 text-center"
84
+ };
85
+ const baseClasses = responsive ? variantClasses[variant] : "flex flex-col items-start justify-between gap-4";
86
+ if (loading) {
87
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: utils.cn(baseClasses, className), ...props, children: [
88
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1", children: [
89
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.Skeleton, { className: "h-8 w-48" }),
90
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.Skeleton, { className: "h-4 w-32" })
91
+ ] }),
92
+ /* @__PURE__ */ jsxRuntime.jsx(skeleton.Skeleton, { className: "h-10 w-20" })
93
+ ] });
94
+ }
95
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: utils.cn(baseClasses, className), ...props, children: [
96
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-2", children: [
97
+ headerBack,
98
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 space-y-1", children: [
99
+ headerTitle,
100
+ headerSubtitle
101
+ ] })
102
+ ] }),
103
+ headerAction
104
+ ] });
105
+ }
106
+ );
107
+ PageHeader.displayName = "PageHeader";
108
+ const PageContainer = React__default.default.forwardRef(
109
+ ({ className, size = "full", ...props }, ref) => {
110
+ const sizeClasses = {
111
+ full: "h-full w-full mx-auto max-w-[1920px]",
112
+ md: "w-full md:!w-[640px] lg:!w-[970px] mx-auto",
113
+ // Matches old Container (fixed width with !important, no mx-auto)
114
+ lg: "mx-auto h-full w-full max-w-[1328px]"
115
+ };
116
+ const baseClasses = size === "md" ? "flex flex-col" : "bg-background-pg flex flex-col gap-4 p-4 md:p-6";
117
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: utils.cn(baseClasses, sizeClasses[size], className), ...props });
118
+ }
119
+ );
120
+ PageContainer.displayName = "PageContainer";
121
+ const PageContent = React__default.default.forwardRef(
122
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
123
+ "div",
124
+ {
125
+ ref,
126
+ className: utils.cn("border-ink-50s rounded-lg border bg-white", className),
127
+ ...props
128
+ }
129
+ )
130
+ );
131
+ PageContent.displayName = "PageContent";
132
+ const Page = Object.assign(PageContainer, {
133
+ Header: PageHeader,
134
+ Title: PageTitle,
135
+ Subtitle: PageSubtitle,
136
+ Action: PageAction,
137
+ Content: PageContent,
138
+ Breadcrumb: pageBreadcrumb.PageBreadcrumb
139
+ });
140
+
141
+ Object.defineProperty(exports, "PageBreadcrumb", {
142
+ enumerable: true,
143
+ get: function () { return pageBreadcrumb.PageBreadcrumb; }
144
+ });
145
+ exports.Page = Page;
146
+ exports.PageAction = PageAction;
147
+ exports.PageBack = PageBack;
148
+ exports.PageContainer = PageContainer;
149
+ exports.PageContent = PageContent;
150
+ exports.PageHeader = PageHeader;
151
+ exports.PageSubtitle = PageSubtitle;
152
+ exports.PageTitle = PageTitle;
153
+ exports.getChildByType = getChildByType;
154
+ //# sourceMappingURL=page.js.map
155
+ //# sourceMappingURL=page.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/common/display/page.tsx"],"names":["React","cn","jsxs","jsx","Button","ArrowLeftIcon","Skeleton","PageBreadcrumbComponent"],"mappings":"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","file":"page.js","sourcesContent":["import { ArrowLeftIcon } from '@/assets/Icon';\nimport { Button } from '@/components/button';\nimport { Skeleton } from '@/components/skeleton';\nimport { cn } from '@/lib/utils';\nimport React from 'react';\n\n// Import with alias to avoid naming conflict\nimport { PageBreadcrumb as PageBreadcrumbComponent } from './page-breadcrumb';\n\n// Re-export for public API\nexport { PageBreadcrumb } from './page-breadcrumb';\nexport type { PageBreadcrumbItem } from './page-breadcrumb';\n\n// Define sub-components BEFORE PageHeader so they can be referenced\nconst PageTitle = React.forwardRef<\n HTMLHeadingElement,\n Omit<React.HTMLAttributes<HTMLHeadingElement>, 'title'> & {\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n addonBefore?: React.ReactNode;\n addonAfter?: React.ReactNode;\n }\n>(({ className, level = 1, addonBefore, addonAfter, ...props }, ref) => {\n const Component = `h${level}` as 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n const componentProps = {\n ref,\n className: cn('text-t20sb text-ink-500s font-medium', className),\n ...props,\n } as React.HTMLAttributes<HTMLHeadingElement> & { ref: React.ForwardedRef<HTMLHeadingElement> };\n\n return (\n <div className=\"flex items-center gap-2\">\n {addonBefore && <span>{addonBefore}</span>}\n {React.createElement(Component, componentProps)}\n {addonAfter && <span>{addonAfter}</span>}\n </div>\n );\n});\nPageTitle.displayName = 'PageTitle';\n\nconst PageSubtitle = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('text-t14m text-ink-400s', className)} {...props} />\n ),\n);\nPageSubtitle.displayName = 'PageSubtitle';\n\ninterface PageBackProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n onBack: () => void;\n}\nconst PageBack = React.forwardRef<HTMLButtonElement, PageBackProps>(\n ({ className, onBack, ...props }, ref) => {\n return (\n <Button\n ref={ref}\n variant=\"ghost\"\n size=\"icon\"\n className={cn('h-8 w-8 p-0', className)}\n onClick={onBack}\n {...props}\n >\n <ArrowLeftIcon className=\"h-6 w-6\" />\n </Button>\n );\n },\n);\nPageBack.displayName = 'PageBack';\n\nconst PageAction = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center gap-3', className)} {...props} />\n ),\n);\nPageAction.displayName = 'PageAction';\n\n// Helper function for better type safety\nexport const getChildByType = (children: React.ReactNode, targetType: React.ComponentType<any>) => {\n return React.Children.toArray(children).find((child): child is React.ReactElement => {\n if (!React.isValidElement(child)) return false;\n\n // Check direct type match\n if (child.type === targetType) return true;\n\n // Check displayName for forwardRef components\n const childDisplayName = (child.type as any)?.displayName;\n const targetDisplayName = (targetType as any)?.displayName;\n\n return childDisplayName && targetDisplayName && childDisplayName === targetDisplayName;\n });\n};\n\ninterface PageHeaderProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {\n className?: string;\n children?: React.ReactNode;\n /** Alternative to children composition - more explicit */\n title?: React.ReactNode;\n subtitle?: React.ReactNode;\n action?: React.ReactNode;\n back?: React.ReactNode;\n /** Control responsive behavior */\n responsive?: boolean;\n /** Show loading state */\n loading?: boolean;\n /** Control responsive behavior */\n variant?: 'default' | 'compact' | 'centered';\n /** Link component for breadcrumbs */\n LinkComponent?: React.ComponentType<any>;\n}\n\nconst PageHeader = React.forwardRef<HTMLDivElement, PageHeaderProps>(\n (\n {\n className,\n children,\n title,\n subtitle,\n action,\n back,\n loading,\n variant = 'default',\n responsive = true,\n ...props\n },\n ref,\n ) => {\n // Support both prop-based and children-based composition\n const headerTitle = title || getChildByType(children, PageTitle);\n const headerSubtitle = subtitle || getChildByType(children, PageSubtitle);\n const headerAction = action || getChildByType(children, PageAction);\n const headerBack = back || getChildByType(children, PageBack);\n\n const variantClasses = {\n default: 'flex flex-col items-start justify-between gap-4 sm:flex-row',\n compact: 'flex flex-col items-start justify-between gap-2 sm:flex-row',\n centered: 'flex flex-col items-center justify-center gap-4 text-center',\n };\n\n const baseClasses = responsive\n ? variantClasses[variant]\n : 'flex flex-col items-start justify-between gap-4';\n\n if (loading) {\n return (\n <div ref={ref} className={cn(baseClasses, className)} {...props}>\n <div className=\"space-y-1\">\n <Skeleton className=\"h-8 w-48\" />\n <Skeleton className=\"h-4 w-32\" />\n </div>\n <Skeleton className=\"h-10 w-20\" />\n </div>\n );\n }\n\n return (\n <div ref={ref} className={cn(baseClasses, className)} {...props}>\n <div className=\"flex items-start gap-2\">\n {headerBack}\n <div className=\"flex-1 space-y-1\">\n {headerTitle}\n {headerSubtitle}\n </div>\n </div>\n {headerAction}\n </div>\n );\n },\n);\nPageHeader.displayName = 'PageHeader';\n\ninterface PageContainerProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Control page width */\n size?: 'full' | 'md' | 'lg';\n}\n\nconst PageContainer = React.forwardRef<HTMLDivElement, PageContainerProps>(\n ({ className, size = 'full', ...props }, ref) => {\n const sizeClasses = {\n full: 'h-full w-full mx-auto max-w-[1920px]',\n md: 'w-full md:!w-[640px] lg:!w-[970px] mx-auto', // Matches old Container (fixed width with !important, no mx-auto)\n lg: 'mx-auto h-full w-full max-w-[1328px]',\n };\n\n // Size 'md' has minimal styling (like old Container component)\n // Other sizes have default page styling\n const baseClasses =\n size === 'md' ? 'flex flex-col' : 'bg-background-pg flex flex-col gap-4 p-4 md:p-6';\n\n return <div ref={ref} className={cn(baseClasses, sizeClasses[size], className)} {...props} />;\n },\n);\nPageContainer.displayName = 'PageContainer';\n\nconst PageContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('border-ink-50s rounded-lg border bg-white', className)}\n {...props}\n />\n ),\n);\nPageContent.displayName = 'PageContent';\n\n// Compound component pattern for better DX\nconst Page = Object.assign(PageContainer, {\n Header: PageHeader,\n Title: PageTitle,\n Subtitle: PageSubtitle,\n Action: PageAction,\n Content: PageContent,\n Breadcrumb: PageBreadcrumbComponent,\n});\n\nexport {\n Page,\n PageAction,\n PageBack,\n PageContainer,\n PageContent,\n PageHeader,\n PageSubtitle,\n PageTitle,\n};\n"]}
@@ -0,0 +1,138 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { ArrowLeftIcon } from '@/assets/Icon';
3
+ import { Button } from '@/components/button';
4
+ import { Skeleton } from '@/components/skeleton';
5
+ import { cn } from '@/lib/utils';
6
+ import React from 'react';
7
+ import { PageBreadcrumb } from './page-breadcrumb';
8
+ export { PageBreadcrumb } from './page-breadcrumb';
9
+
10
+ const PageTitle = React.forwardRef(({ className, level = 1, addonBefore, addonAfter, ...props }, ref) => {
11
+ const Component = `h${level}`;
12
+ const componentProps = {
13
+ ref,
14
+ className: cn("text-t20sb text-ink-500s font-medium", className),
15
+ ...props
16
+ };
17
+ return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
18
+ addonBefore && /* @__PURE__ */ jsx("span", { children: addonBefore }),
19
+ React.createElement(Component, componentProps),
20
+ addonAfter && /* @__PURE__ */ jsx("span", { children: addonAfter })
21
+ ] });
22
+ });
23
+ PageTitle.displayName = "PageTitle";
24
+ const PageSubtitle = React.forwardRef(
25
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("text-t14m text-ink-400s", className), ...props })
26
+ );
27
+ PageSubtitle.displayName = "PageSubtitle";
28
+ const PageBack = React.forwardRef(
29
+ ({ className, onBack, ...props }, ref) => {
30
+ return /* @__PURE__ */ jsx(
31
+ Button,
32
+ {
33
+ ref,
34
+ variant: "ghost",
35
+ size: "icon",
36
+ className: cn("h-8 w-8 p-0", className),
37
+ onClick: onBack,
38
+ ...props,
39
+ children: /* @__PURE__ */ jsx(ArrowLeftIcon, { className: "h-6 w-6" })
40
+ }
41
+ );
42
+ }
43
+ );
44
+ PageBack.displayName = "PageBack";
45
+ const PageAction = React.forwardRef(
46
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex items-center gap-3", className), ...props })
47
+ );
48
+ PageAction.displayName = "PageAction";
49
+ const getChildByType = (children, targetType) => {
50
+ return React.Children.toArray(children).find((child) => {
51
+ if (!React.isValidElement(child)) return false;
52
+ if (child.type === targetType) return true;
53
+ const childDisplayName = child.type?.displayName;
54
+ const targetDisplayName = targetType?.displayName;
55
+ return childDisplayName && targetDisplayName && childDisplayName === targetDisplayName;
56
+ });
57
+ };
58
+ const PageHeader = React.forwardRef(
59
+ ({
60
+ className,
61
+ children,
62
+ title,
63
+ subtitle,
64
+ action,
65
+ back,
66
+ loading,
67
+ variant = "default",
68
+ responsive = true,
69
+ ...props
70
+ }, ref) => {
71
+ const headerTitle = title || getChildByType(children, PageTitle);
72
+ const headerSubtitle = subtitle || getChildByType(children, PageSubtitle);
73
+ const headerAction = action || getChildByType(children, PageAction);
74
+ const headerBack = back || getChildByType(children, PageBack);
75
+ const variantClasses = {
76
+ default: "flex flex-col items-start justify-between gap-4 sm:flex-row",
77
+ compact: "flex flex-col items-start justify-between gap-2 sm:flex-row",
78
+ centered: "flex flex-col items-center justify-center gap-4 text-center"
79
+ };
80
+ const baseClasses = responsive ? variantClasses[variant] : "flex flex-col items-start justify-between gap-4";
81
+ if (loading) {
82
+ return /* @__PURE__ */ jsxs("div", { ref, className: cn(baseClasses, className), ...props, children: [
83
+ /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
84
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-8 w-48" }),
85
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-32" })
86
+ ] }),
87
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-10 w-20" })
88
+ ] });
89
+ }
90
+ return /* @__PURE__ */ jsxs("div", { ref, className: cn(baseClasses, className), ...props, children: [
91
+ /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2", children: [
92
+ headerBack,
93
+ /* @__PURE__ */ jsxs("div", { className: "flex-1 space-y-1", children: [
94
+ headerTitle,
95
+ headerSubtitle
96
+ ] })
97
+ ] }),
98
+ headerAction
99
+ ] });
100
+ }
101
+ );
102
+ PageHeader.displayName = "PageHeader";
103
+ const PageContainer = React.forwardRef(
104
+ ({ className, size = "full", ...props }, ref) => {
105
+ const sizeClasses = {
106
+ full: "h-full w-full mx-auto max-w-[1920px]",
107
+ md: "w-full md:!w-[640px] lg:!w-[970px] mx-auto",
108
+ // Matches old Container (fixed width with !important, no mx-auto)
109
+ lg: "mx-auto h-full w-full max-w-[1328px]"
110
+ };
111
+ const baseClasses = size === "md" ? "flex flex-col" : "bg-background-pg flex flex-col gap-4 p-4 md:p-6";
112
+ return /* @__PURE__ */ jsx("div", { ref, className: cn(baseClasses, sizeClasses[size], className), ...props });
113
+ }
114
+ );
115
+ PageContainer.displayName = "PageContainer";
116
+ const PageContent = React.forwardRef(
117
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
118
+ "div",
119
+ {
120
+ ref,
121
+ className: cn("border-ink-50s rounded-lg border bg-white", className),
122
+ ...props
123
+ }
124
+ )
125
+ );
126
+ PageContent.displayName = "PageContent";
127
+ const Page = Object.assign(PageContainer, {
128
+ Header: PageHeader,
129
+ Title: PageTitle,
130
+ Subtitle: PageSubtitle,
131
+ Action: PageAction,
132
+ Content: PageContent,
133
+ Breadcrumb: PageBreadcrumb
134
+ });
135
+
136
+ export { Page, PageAction, PageBack, PageContainer, PageContent, PageHeader, PageSubtitle, PageTitle, getChildByType };
137
+ //# sourceMappingURL=page.mjs.map
138
+ //# sourceMappingURL=page.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/common/display/page.tsx"],"names":["PageBreadcrumbComponent"],"mappings":"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","file":"page.mjs","sourcesContent":["import { ArrowLeftIcon } from '@/assets/Icon';\nimport { Button } from '@/components/button';\nimport { Skeleton } from '@/components/skeleton';\nimport { cn } from '@/lib/utils';\nimport React from 'react';\n\n// Import with alias to avoid naming conflict\nimport { PageBreadcrumb as PageBreadcrumbComponent } from './page-breadcrumb';\n\n// Re-export for public API\nexport { PageBreadcrumb } from './page-breadcrumb';\nexport type { PageBreadcrumbItem } from './page-breadcrumb';\n\n// Define sub-components BEFORE PageHeader so they can be referenced\nconst PageTitle = React.forwardRef<\n HTMLHeadingElement,\n Omit<React.HTMLAttributes<HTMLHeadingElement>, 'title'> & {\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n addonBefore?: React.ReactNode;\n addonAfter?: React.ReactNode;\n }\n>(({ className, level = 1, addonBefore, addonAfter, ...props }, ref) => {\n const Component = `h${level}` as 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n const componentProps = {\n ref,\n className: cn('text-t20sb text-ink-500s font-medium', className),\n ...props,\n } as React.HTMLAttributes<HTMLHeadingElement> & { ref: React.ForwardedRef<HTMLHeadingElement> };\n\n return (\n <div className=\"flex items-center gap-2\">\n {addonBefore && <span>{addonBefore}</span>}\n {React.createElement(Component, componentProps)}\n {addonAfter && <span>{addonAfter}</span>}\n </div>\n );\n});\nPageTitle.displayName = 'PageTitle';\n\nconst PageSubtitle = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('text-t14m text-ink-400s', className)} {...props} />\n ),\n);\nPageSubtitle.displayName = 'PageSubtitle';\n\ninterface PageBackProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n onBack: () => void;\n}\nconst PageBack = React.forwardRef<HTMLButtonElement, PageBackProps>(\n ({ className, onBack, ...props }, ref) => {\n return (\n <Button\n ref={ref}\n variant=\"ghost\"\n size=\"icon\"\n className={cn('h-8 w-8 p-0', className)}\n onClick={onBack}\n {...props}\n >\n <ArrowLeftIcon className=\"h-6 w-6\" />\n </Button>\n );\n },\n);\nPageBack.displayName = 'PageBack';\n\nconst PageAction = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center gap-3', className)} {...props} />\n ),\n);\nPageAction.displayName = 'PageAction';\n\n// Helper function for better type safety\nexport const getChildByType = (children: React.ReactNode, targetType: React.ComponentType<any>) => {\n return React.Children.toArray(children).find((child): child is React.ReactElement => {\n if (!React.isValidElement(child)) return false;\n\n // Check direct type match\n if (child.type === targetType) return true;\n\n // Check displayName for forwardRef components\n const childDisplayName = (child.type as any)?.displayName;\n const targetDisplayName = (targetType as any)?.displayName;\n\n return childDisplayName && targetDisplayName && childDisplayName === targetDisplayName;\n });\n};\n\ninterface PageHeaderProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {\n className?: string;\n children?: React.ReactNode;\n /** Alternative to children composition - more explicit */\n title?: React.ReactNode;\n subtitle?: React.ReactNode;\n action?: React.ReactNode;\n back?: React.ReactNode;\n /** Control responsive behavior */\n responsive?: boolean;\n /** Show loading state */\n loading?: boolean;\n /** Control responsive behavior */\n variant?: 'default' | 'compact' | 'centered';\n /** Link component for breadcrumbs */\n LinkComponent?: React.ComponentType<any>;\n}\n\nconst PageHeader = React.forwardRef<HTMLDivElement, PageHeaderProps>(\n (\n {\n className,\n children,\n title,\n subtitle,\n action,\n back,\n loading,\n variant = 'default',\n responsive = true,\n ...props\n },\n ref,\n ) => {\n // Support both prop-based and children-based composition\n const headerTitle = title || getChildByType(children, PageTitle);\n const headerSubtitle = subtitle || getChildByType(children, PageSubtitle);\n const headerAction = action || getChildByType(children, PageAction);\n const headerBack = back || getChildByType(children, PageBack);\n\n const variantClasses = {\n default: 'flex flex-col items-start justify-between gap-4 sm:flex-row',\n compact: 'flex flex-col items-start justify-between gap-2 sm:flex-row',\n centered: 'flex flex-col items-center justify-center gap-4 text-center',\n };\n\n const baseClasses = responsive\n ? variantClasses[variant]\n : 'flex flex-col items-start justify-between gap-4';\n\n if (loading) {\n return (\n <div ref={ref} className={cn(baseClasses, className)} {...props}>\n <div className=\"space-y-1\">\n <Skeleton className=\"h-8 w-48\" />\n <Skeleton className=\"h-4 w-32\" />\n </div>\n <Skeleton className=\"h-10 w-20\" />\n </div>\n );\n }\n\n return (\n <div ref={ref} className={cn(baseClasses, className)} {...props}>\n <div className=\"flex items-start gap-2\">\n {headerBack}\n <div className=\"flex-1 space-y-1\">\n {headerTitle}\n {headerSubtitle}\n </div>\n </div>\n {headerAction}\n </div>\n );\n },\n);\nPageHeader.displayName = 'PageHeader';\n\ninterface PageContainerProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Control page width */\n size?: 'full' | 'md' | 'lg';\n}\n\nconst PageContainer = React.forwardRef<HTMLDivElement, PageContainerProps>(\n ({ className, size = 'full', ...props }, ref) => {\n const sizeClasses = {\n full: 'h-full w-full mx-auto max-w-[1920px]',\n md: 'w-full md:!w-[640px] lg:!w-[970px] mx-auto', // Matches old Container (fixed width with !important, no mx-auto)\n lg: 'mx-auto h-full w-full max-w-[1328px]',\n };\n\n // Size 'md' has minimal styling (like old Container component)\n // Other sizes have default page styling\n const baseClasses =\n size === 'md' ? 'flex flex-col' : 'bg-background-pg flex flex-col gap-4 p-4 md:p-6';\n\n return <div ref={ref} className={cn(baseClasses, sizeClasses[size], className)} {...props} />;\n },\n);\nPageContainer.displayName = 'PageContainer';\n\nconst PageContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('border-ink-50s rounded-lg border bg-white', className)}\n {...props}\n />\n ),\n);\nPageContent.displayName = 'PageContent';\n\n// Compound component pattern for better DX\nconst Page = Object.assign(PageContainer, {\n Header: PageHeader,\n Title: PageTitle,\n Subtitle: PageSubtitle,\n Action: PageAction,\n Content: PageContent,\n Breadcrumb: PageBreadcrumbComponent,\n});\n\nexport {\n Page,\n PageAction,\n PageBack,\n PageContainer,\n PageContent,\n PageHeader,\n PageSubtitle,\n PageTitle,\n};\n"]}
@@ -0,0 +1,22 @@
1
+ import * as React from 'react';
2
+ export interface Milestone {
3
+ maxScore: number;
4
+ label: string | ((score: number) => string);
5
+ bgColor?: string;
6
+ tooltipColor?: string;
7
+ tickColor?: string;
8
+ description?: string;
9
+ }
10
+ interface ScoreMeterProps {
11
+ score: number;
12
+ milestones: Milestone[];
13
+ showTooltip?: boolean;
14
+ className?: string;
15
+ progresBarClassName?: string;
16
+ renderTooltip?: (score: number) => string | React.ReactNode;
17
+ renderTick?: (milestone: Milestone, score: number) => React.ReactNode;
18
+ progressFillColor?: string;
19
+ }
20
+ export default function ScoreMeter({ score, milestones, showTooltip, className, progresBarClassName, renderTooltip, renderTick, progressFillColor, }: ScoreMeterProps): import("react/jsx-runtime").JSX.Element;
21
+ export {};
22
+ //# sourceMappingURL=score-meter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"score-meter.d.ts","sourceRoot":"","sources":["../../../src/common/display/score-meter.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,eAAe;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IAC5D,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;IACtE,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,KAAK,EACL,UAAU,EACV,WAAkB,EAClB,SAAc,EACd,mBAAwB,EACxB,aAAa,EACb,UAAU,EACV,iBAAiB,GAClB,EAAE,eAAe,2CA4JjB"}
@@ -0,0 +1,161 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var utils = require('@/lib/utils');
6
+
7
+ function _interopNamespace(e) {
8
+ if (e && e.__esModule) return e;
9
+ var n = Object.create(null);
10
+ if (e) {
11
+ Object.keys(e).forEach(function (k) {
12
+ if (k !== 'default') {
13
+ var d = Object.getOwnPropertyDescriptor(e, k);
14
+ Object.defineProperty(n, k, d.get ? d : {
15
+ enumerable: true,
16
+ get: function () { return e[k]; }
17
+ });
18
+ }
19
+ });
20
+ }
21
+ n.default = e;
22
+ return Object.freeze(n);
23
+ }
24
+
25
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
26
+
27
+ function ScoreMeter({
28
+ score,
29
+ milestones,
30
+ showTooltip = true,
31
+ className = "",
32
+ progresBarClassName = "",
33
+ renderTooltip,
34
+ renderTick,
35
+ progressFillColor
36
+ }) {
37
+ const progresBarRef = React__namespace.useRef(null);
38
+ const tooltipRef = React__namespace.useRef(null);
39
+ const sortedMilestones = [...milestones].sort((a, b) => a.maxScore - b.maxScore);
40
+ const maximumScore = sortedMilestones[sortedMilestones.length - 1]?.maxScore || 100;
41
+ const validScore = React.useMemo(
42
+ () => score < 0 ? 0 : score > maximumScore ? maximumScore : score,
43
+ [score, maximumScore]
44
+ );
45
+ const currentMilestone = sortedMilestones.find((milestone) => score <= milestone.maxScore) || (score > maximumScore ? sortedMilestones[sortedMilestones.length - 1] : sortedMilestones[0]);
46
+ const [progresWidth, setProgresWidth] = React__namespace.useState(0);
47
+ React__namespace.useEffect(() => {
48
+ if (progresBarRef?.current) {
49
+ const progresWidth2 = progresBarRef.current.offsetWidth;
50
+ setProgresWidth(progresWidth2);
51
+ }
52
+ }, [score, tooltipRef, progresBarRef]);
53
+ const formatLabel = (template, scoreValue) => {
54
+ return typeof template === "function" ? template(scoreValue) : template.replace("${score}", scoreValue.toString());
55
+ };
56
+ const tooltipArrowStyles = React__namespace.useMemo(() => {
57
+ const tooltipPosition = validScore / maximumScore * progresWidth;
58
+ const isNearLeft = tooltipPosition < 10;
59
+ const isNearRight = tooltipPosition > progresWidth - 10;
60
+ const borderLeftWidth = isNearRight ? 4 : Math.min(4, validScore);
61
+ const borderRightWidth = isNearLeft ? 4 : Math.min(4, maximumScore - validScore);
62
+ const translateX = isNearLeft ? "0%" : isNearRight ? "-100%" : "-50%";
63
+ return {
64
+ borderTopColor: currentMilestone?.tooltipColor ?? currentMilestone?.bgColor ?? "",
65
+ marginLeft: `${tooltipPosition}px`,
66
+ transform: `translateX(${translateX})`,
67
+ borderLeftWidth: `${borderLeftWidth}px`,
68
+ borderRightWidth: `${borderRightWidth}px`
69
+ };
70
+ }, [maximumScore, validScore, progresWidth, currentMilestone]);
71
+ const tooltipStyles = React__namespace.useMemo(() => {
72
+ const tooltipWidth = tooltipRef.current?.offsetWidth || 0;
73
+ const tooltipPosition = validScore / maximumScore * progresWidth;
74
+ let tooltipLeft = tooltipPosition - tooltipWidth / 2;
75
+ if (tooltipLeft < 0) tooltipLeft = 0;
76
+ if (tooltipLeft + tooltipWidth > progresWidth) tooltipLeft = progresWidth - tooltipWidth;
77
+ const borderBottomLeftRadius = tooltipLeft === 0 ? 0 : Math.min(8, validScore);
78
+ const borderBottomRightRadius = tooltipLeft + tooltipWidth === progresWidth ? 0 : Math.min(8, maximumScore - validScore);
79
+ return {
80
+ background: currentMilestone?.tooltipColor ?? currentMilestone?.bgColor ?? "",
81
+ marginLeft: `${tooltipLeft}px`,
82
+ borderBottomLeftRadius: `${borderBottomLeftRadius}px`,
83
+ borderBottomRightRadius: `${borderBottomRightRadius}px`
84
+ };
85
+ }, [validScore, maximumScore, progresWidth, currentMilestone]);
86
+ const tooltipValue = React.useMemo(() => {
87
+ return renderTooltip?.(score) ?? currentMilestone?.description;
88
+ }, [renderTooltip, currentMilestone]);
89
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `w-full ${className}`, ref: progresBarRef, children: [
90
+ showTooltip && currentMilestone && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-1 w-full", children: [
91
+ /* @__PURE__ */ jsxRuntime.jsx(
92
+ "div",
93
+ {
94
+ className: "text-t14m inline-block whitespace-nowrap rounded-[8px] px-3 py-1 font-medium text-white",
95
+ style: tooltipStyles,
96
+ ref: tooltipRef,
97
+ children: formatLabel(currentMilestone?.label ?? "", score)
98
+ }
99
+ ),
100
+ /* @__PURE__ */ jsxRuntime.jsx(
101
+ "div",
102
+ {
103
+ className: utils.cn("top-full h-0 w-0 rounded-[1px] border-t-[6px] border-transparent"),
104
+ style: tooltipArrowStyles
105
+ }
106
+ )
107
+ ] }),
108
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: utils.cn("bg-ink-100s relative h-3 w-full rounded-full", progresBarClassName), children: [
109
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-full w-full overflow-hidden rounded-full", children: /* @__PURE__ */ jsxRuntime.jsx(
110
+ "div",
111
+ {
112
+ className: "h-full w-full overflow-hidden rounded-full",
113
+ style: {
114
+ transform: `translateX(${validScore / maximumScore * 100 - 100}%)`
115
+ },
116
+ children: /* @__PURE__ */ jsxRuntime.jsx(
117
+ "div",
118
+ {
119
+ className: "h-full w-full rounded-full",
120
+ style: {
121
+ background: progressFillColor ?? currentMilestone?.bgColor ?? "#6366f1",
122
+ transform: `translateX(${100 - validScore / maximumScore * 100}%)`
123
+ }
124
+ }
125
+ )
126
+ }
127
+ ) }),
128
+ sortedMilestones.map((milestone, index) => {
129
+ if (index === sortedMilestones.length - 1) return null;
130
+ if (renderTick)
131
+ return /* @__PURE__ */ jsxRuntime.jsx(
132
+ "div",
133
+ {
134
+ className: "absolute top-1/2 -translate-y-1/2",
135
+ style: {
136
+ left: `${milestone.maxScore / maximumScore * 100}%`
137
+ },
138
+ children: renderTick(milestone, score)
139
+ },
140
+ index
141
+ );
142
+ return /* @__PURE__ */ jsxRuntime.jsx(
143
+ "div",
144
+ {
145
+ className: "absolute top-0 h-full w-0.5 cursor-pointer transition-opacity hover:opacity-80",
146
+ style: {
147
+ left: `${milestone.maxScore / maximumScore * 100}%`,
148
+ background: milestone.tickColor ?? "#f97316"
149
+ }
150
+ },
151
+ index
152
+ );
153
+ })
154
+ ] }),
155
+ tooltipValue && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-t14m text-ink-400s mt-3", children: tooltipValue })
156
+ ] });
157
+ }
158
+
159
+ module.exports = ScoreMeter;
160
+ //# sourceMappingURL=score-meter.js.map
161
+ //# sourceMappingURL=score-meter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/common/display/score-meter.tsx"],"names":["React","useMemo","progresWidth","jsxs","jsx","cn"],"mappings":"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","file":"score-meter.js","sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cn } from '@/lib/utils';\nimport { CSSProperties, useMemo } from 'react';\n\nexport interface Milestone {\n maxScore: number;\n label: string | ((score: number) => string);\n bgColor?: string;\n tooltipColor?: string;\n tickColor?: string;\n description?: string;\n}\n\ninterface ScoreMeterProps {\n score: number;\n milestones: Milestone[];\n showTooltip?: boolean;\n className?: string;\n progresBarClassName?: string;\n renderTooltip?: (score: number) => string | React.ReactNode;\n renderTick?: (milestone: Milestone, score: number) => React.ReactNode;\n progressFillColor?: string;\n}\n\nexport default function ScoreMeter({\n score,\n milestones,\n showTooltip = true,\n className = '',\n progresBarClassName = '',\n renderTooltip,\n renderTick,\n progressFillColor,\n}: ScoreMeterProps) {\n const progresBarRef = React.useRef<HTMLDivElement>(null);\n const tooltipRef = React.useRef<HTMLDivElement>(null);\n\n // Sắp xếp milestones theo thứ tự tăng dần\n const sortedMilestones = [...milestones].sort((a, b) => a.maxScore - b.maxScore);\n\n // Tính điểm tối đa từ milestones\n const maximumScore = sortedMilestones[sortedMilestones.length - 1]?.maxScore || 100;\n\n const validScore = useMemo(\n () => (score < 0 ? 0 : score > maximumScore ? maximumScore : score),\n [score, maximumScore],\n );\n\n // Tìm milestone hiện tại dựa trên điểm số\n const currentMilestone =\n sortedMilestones.find((milestone) => score <= milestone.maxScore) ||\n (score > maximumScore ? sortedMilestones[sortedMilestones.length - 1] : sortedMilestones[0]);\n\n const [progresWidth, setProgresWidth] = React.useState(0);\n\n React.useEffect(() => {\n if (progresBarRef?.current) {\n const progresWidth = progresBarRef.current.offsetWidth;\n\n setProgresWidth(progresWidth);\n }\n }, [score, tooltipRef, progresBarRef]);\n\n // Tạo label với điểm số được thay thế\n const formatLabel = (template: string | ((scoreValue: number) => string), scoreValue: number) => {\n return typeof template === 'function'\n ? template(scoreValue)\n : template.replace('${score}', scoreValue.toString());\n };\n\n const tooltipArrowStyles = React.useMemo(() => {\n const tooltipPosition = (validScore / maximumScore) * progresWidth;\n const isNearLeft = tooltipPosition < 10; // Ngưỡng gần bên trái\n const isNearRight = tooltipPosition > progresWidth - 10; // Ngưỡng gần bên phải\n\n const borderLeftWidth = isNearRight ? 4 : Math.min(4, validScore);\n const borderRightWidth = isNearLeft ? 4 : Math.min(4, maximumScore - validScore);\n const translateX = isNearLeft ? '0%' : isNearRight ? '-100%' : '-50%';\n\n return {\n borderTopColor: currentMilestone?.tooltipColor ?? currentMilestone?.bgColor ?? '',\n marginLeft: `${tooltipPosition}px`,\n transform: `translateX(${translateX})`,\n borderLeftWidth: `${borderLeftWidth}px`,\n borderRightWidth: `${borderRightWidth}px`,\n };\n }, [maximumScore, validScore, progresWidth, currentMilestone]);\n\n const tooltipStyles = React.useMemo(() => {\n const tooltipWidth = tooltipRef.current?.offsetWidth || 0;\n const tooltipPosition = (validScore / maximumScore) * progresWidth;\n\n // Clamp tooltip position to stay within bounds\n let tooltipLeft = tooltipPosition - tooltipWidth / 2;\n if (tooltipLeft < 0) tooltipLeft = 0;\n if (tooltipLeft + tooltipWidth > progresWidth) tooltipLeft = progresWidth - tooltipWidth;\n\n // Adjust border radii based on proximity to edges\n const borderBottomLeftRadius = tooltipLeft === 0 ? 0 : Math.min(8, validScore);\n const borderBottomRightRadius =\n tooltipLeft + tooltipWidth === progresWidth ? 0 : Math.min(8, maximumScore - validScore);\n\n return {\n background: currentMilestone?.tooltipColor ?? currentMilestone?.bgColor ?? '',\n marginLeft: `${tooltipLeft}px`,\n borderBottomLeftRadius: `${borderBottomLeftRadius}px`,\n borderBottomRightRadius: `${borderBottomRightRadius}px`,\n };\n }, [validScore, maximumScore, progresWidth, currentMilestone]);\n\n const tooltipValue = useMemo(() => {\n return renderTooltip?.(score) ?? currentMilestone?.description;\n }, [renderTooltip, currentMilestone]);\n\n return (\n <div className={`w-full ${className}`} ref={progresBarRef}>\n {/* Tooltip */}\n {showTooltip && currentMilestone && (\n <div className=\"mb-1 w-full\">\n <div\n className=\"text-t14m inline-block whitespace-nowrap rounded-[8px] px-3 py-1 font-medium text-white\"\n style={tooltipStyles}\n ref={tooltipRef}\n >\n {formatLabel(currentMilestone?.label ?? '', score)}\n </div>\n\n {/* Mũi tên tooltip */}\n <div\n className={cn('top-full h-0 w-0 rounded-[1px] border-t-[6px] border-transparent')}\n style={tooltipArrowStyles}\n />\n </div>\n )}\n\n {/* Progress bar container */}\n <div className={cn('bg-ink-100s relative h-3 w-full rounded-full', progresBarClassName)}>\n {/* Progress bar fill */}\n <div className=\"h-full w-full overflow-hidden rounded-full\">\n <div\n className=\"h-full w-full overflow-hidden rounded-full\"\n style={{\n transform: `translateX(${(validScore / maximumScore) * 100 - 100}%)`,\n }}\n >\n <div\n className=\"h-full w-full rounded-full\"\n style={{\n background: progressFillColor ?? currentMilestone?.bgColor ?? '#6366f1',\n transform: `translateX(${100 - (validScore / maximumScore) * 100}%)`,\n }}\n />\n </div>\n </div>\n\n {/* Tick marks */}\n {sortedMilestones.map((milestone, index) => {\n if (index === sortedMilestones.length - 1) return null; // Không hiển thị tick cho milestone cuối cùng\n\n if (renderTick)\n return (\n <div\n key={index}\n className=\"absolute top-1/2 -translate-y-1/2\"\n style={{\n left: `${(milestone.maxScore / maximumScore) * 100}%`,\n }}\n >\n {renderTick(milestone, score)}\n </div>\n );\n\n return (\n <div\n key={index}\n className=\"absolute top-0 h-full w-0.5 cursor-pointer transition-opacity hover:opacity-80\"\n style={{\n left: `${(milestone.maxScore / maximumScore) * 100}%`,\n background: milestone.tickColor ?? '#f97316',\n }}\n />\n );\n })}\n </div>\n\n {/* Description */}\n {tooltipValue && <div className=\"text-t14m text-ink-400s mt-3\">{tooltipValue}</div>}\n </div>\n );\n}\n"]}