admin-ui-starter-kit 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1121) hide show
  1. package/.agents/skills/component-library-rules/SKILL.md +24 -0
  2. package/.agents/skills/component-library-rules/references/components/base__metadata-list.md +2 -2
  3. package/.agents/skills/component-library-rules/references/import-paths.md +27 -0
  4. package/AGENTS.md +8 -3
  5. package/INTEGRATION.md +33 -2
  6. package/PUBLISHING.md +3 -1
  7. package/README.md +33 -6
  8. package/dist/_shared/accordion-CztqyaIN.js +130 -0
  9. package/dist/_shared/accordion-CztqyaIN.js.map +1 -0
  10. package/dist/_shared/accordion-D5uTCLCB.cjs +2 -0
  11. package/dist/_shared/accordion-D5uTCLCB.cjs.map +1 -0
  12. package/dist/_shared/action-menu-Yrj6VzFS.js +96 -0
  13. package/dist/_shared/action-menu-Yrj6VzFS.js.map +1 -0
  14. package/dist/_shared/action-menu-eVP8GGlv.cjs +2 -0
  15. package/dist/_shared/action-menu-eVP8GGlv.cjs.map +1 -0
  16. package/dist/_shared/ai-artifact-DaHXJTKg.cjs +3 -0
  17. package/dist/_shared/ai-artifact-DaHXJTKg.cjs.map +1 -0
  18. package/dist/_shared/ai-artifact-DyLn3JAs.js +1068 -0
  19. package/dist/_shared/ai-artifact-DyLn3JAs.js.map +1 -0
  20. package/dist/_shared/alert-BVw4Mq6H.js +48 -0
  21. package/dist/_shared/alert-BVw4Mq6H.js.map +1 -0
  22. package/dist/_shared/alert-DXSlR9ja.cjs +2 -0
  23. package/dist/_shared/alert-DXSlR9ja.cjs.map +1 -0
  24. package/dist/_shared/avatar-CpBz9pTv.js +52 -0
  25. package/dist/_shared/avatar-CpBz9pTv.js.map +1 -0
  26. package/dist/_shared/avatar-dg20YFFs.cjs +2 -0
  27. package/dist/_shared/avatar-dg20YFFs.cjs.map +1 -0
  28. package/dist/_shared/badge-BVCh_hfL.js +108 -0
  29. package/dist/_shared/badge-BVCh_hfL.js.map +1 -0
  30. package/dist/_shared/badge-C49SSz-6.cjs +2 -0
  31. package/dist/_shared/badge-C49SSz-6.cjs.map +1 -0
  32. package/dist/_shared/breadcrumbs-Bo7j5Rhv.cjs +2 -0
  33. package/dist/_shared/breadcrumbs-Bo7j5Rhv.cjs.map +1 -0
  34. package/dist/_shared/breadcrumbs-Dc93fqqE.js +111 -0
  35. package/dist/_shared/breadcrumbs-Dc93fqqE.js.map +1 -0
  36. package/dist/_shared/button-2xglT7yf.cjs +2 -0
  37. package/dist/_shared/button-2xglT7yf.cjs.map +1 -0
  38. package/dist/_shared/button-ChCkwoOD.js +176 -0
  39. package/dist/_shared/button-ChCkwoOD.js.map +1 -0
  40. package/dist/_shared/button-D0nF99a9.cjs +2 -0
  41. package/dist/_shared/button-D0nF99a9.cjs.map +1 -0
  42. package/dist/_shared/button-DBR4QI9E.js +46 -0
  43. package/dist/_shared/button-DBR4QI9E.js.map +1 -0
  44. package/dist/_shared/buttons-Bcnt1md_.js +143 -0
  45. package/dist/_shared/buttons-Bcnt1md_.js.map +1 -0
  46. package/dist/_shared/buttons-km9xqXJv.cjs +2 -0
  47. package/dist/_shared/buttons-km9xqXJv.cjs.map +1 -0
  48. package/dist/_shared/card-radio-group-BGH93O5-.js +158 -0
  49. package/dist/_shared/card-radio-group-BGH93O5-.js.map +1 -0
  50. package/dist/_shared/card-radio-group-Vq741uhL.cjs +2 -0
  51. package/dist/_shared/card-radio-group-Vq741uhL.cjs.map +1 -0
  52. package/dist/_shared/combobox-BgXAxjU2.js +746 -0
  53. package/dist/_shared/combobox-BgXAxjU2.js.map +1 -0
  54. package/dist/_shared/combobox-DuIyh3xJ.cjs +2 -0
  55. package/dist/_shared/combobox-DuIyh3xJ.cjs.map +1 -0
  56. package/dist/_shared/command-BbiijN61.js +39 -0
  57. package/dist/_shared/command-BbiijN61.js.map +1 -0
  58. package/dist/_shared/command-D7zTvyBJ.cjs +2 -0
  59. package/dist/_shared/command-D7zTvyBJ.cjs.map +1 -0
  60. package/dist/_shared/command-DGNtTI-V.cjs +2 -0
  61. package/dist/_shared/command-DGNtTI-V.cjs.map +1 -0
  62. package/dist/_shared/command-jKbwFRtS.js +123 -0
  63. package/dist/_shared/command-jKbwFRtS.js.map +1 -0
  64. package/dist/_shared/comments-CNUsdwGW.cjs +2 -0
  65. package/dist/_shared/comments-CNUsdwGW.cjs.map +1 -0
  66. package/dist/_shared/comments-CvmS7zG3.js +945 -0
  67. package/dist/_shared/comments-CvmS7zG3.js.map +1 -0
  68. package/dist/_shared/containers-BFDv7cCV.cjs +2 -0
  69. package/dist/_shared/containers-BFDv7cCV.cjs.map +1 -0
  70. package/dist/_shared/containers-C1-A_2PT.js +19 -0
  71. package/dist/_shared/containers-C1-A_2PT.js.map +1 -0
  72. package/dist/_shared/content-container-CwqFnaI0.cjs +2 -0
  73. package/dist/_shared/content-container-CwqFnaI0.cjs.map +1 -0
  74. package/dist/_shared/content-container-D_3JGBSc.js +33 -0
  75. package/dist/_shared/content-container-D_3JGBSc.js.map +1 -0
  76. package/dist/_shared/copyable-CHhCGMfW.js +38 -0
  77. package/dist/_shared/copyable-CHhCGMfW.js.map +1 -0
  78. package/dist/_shared/copyable-ndaiocYq.cjs +2 -0
  79. package/dist/_shared/copyable-ndaiocYq.cjs.map +1 -0
  80. package/dist/_shared/date-picker-B8O_qbik.js +1353 -0
  81. package/dist/_shared/date-picker-B8O_qbik.js.map +1 -0
  82. package/dist/_shared/date-picker-BnOjyuKS.cjs +2 -0
  83. package/dist/_shared/date-picker-BnOjyuKS.cjs.map +1 -0
  84. package/dist/_shared/date-pickers-Cas9cPlj.js +330 -0
  85. package/dist/_shared/date-pickers-Cas9cPlj.js.map +1 -0
  86. package/dist/_shared/date-pickers-Dk-G3RMy.cjs +2 -0
  87. package/dist/_shared/date-pickers-Dk-G3RMy.cjs.map +1 -0
  88. package/dist/_shared/dialog-67GmkMLC.js +101 -0
  89. package/dist/_shared/dialog-67GmkMLC.js.map +1 -0
  90. package/dist/_shared/dialog-BF_4uAhE.cjs +2 -0
  91. package/dist/_shared/dialog-BF_4uAhE.cjs.map +1 -0
  92. package/dist/_shared/display-B9xVWboG.cjs +8 -0
  93. package/dist/_shared/display-B9xVWboG.cjs.map +1 -0
  94. package/dist/_shared/display-BM_GxDAo.js +1237 -0
  95. package/dist/_shared/display-BM_GxDAo.js.map +1 -0
  96. package/dist/_shared/dropdown-menu-4nxEBMnd.js +147 -0
  97. package/dist/_shared/dropdown-menu-4nxEBMnd.js.map +1 -0
  98. package/dist/_shared/dropdown-menu-DZlWHqWS.cjs +2 -0
  99. package/dist/_shared/dropdown-menu-DZlWHqWS.cjs.map +1 -0
  100. package/dist/_shared/form-field-BQlki-8s.js +319 -0
  101. package/dist/_shared/form-field-BQlki-8s.js.map +1 -0
  102. package/dist/_shared/form-field-DzpwVS99.cjs +2 -0
  103. package/dist/_shared/form-field-DzpwVS99.cjs.map +1 -0
  104. package/dist/_shared/form-sizing-CcbB-OHF.js +21 -0
  105. package/dist/_shared/form-sizing-CcbB-OHF.js.map +1 -0
  106. package/dist/_shared/form-sizing-Cw12UeI6.cjs +2 -0
  107. package/dist/_shared/form-sizing-Cw12UeI6.cjs.map +1 -0
  108. package/dist/_shared/format-B2AdSQVn.cjs +2 -0
  109. package/dist/_shared/format-B2AdSQVn.cjs.map +1 -0
  110. package/dist/_shared/format-CP65h1vK.js +48 -0
  111. package/dist/_shared/format-CP65h1vK.js.map +1 -0
  112. package/dist/_shared/forms-B8aaNG44.cjs +2 -0
  113. package/dist/_shared/forms-B8aaNG44.cjs.map +1 -0
  114. package/dist/_shared/forms-BusuTZZ2.js +3374 -0
  115. package/dist/_shared/forms-BusuTZZ2.js.map +1 -0
  116. package/dist/_shared/header-DWfOUjFL.cjs +2 -0
  117. package/dist/_shared/header-DWfOUjFL.cjs.map +1 -0
  118. package/dist/_shared/header-KpdoLtP9.js +369 -0
  119. package/dist/_shared/header-KpdoLtP9.js.map +1 -0
  120. package/dist/_shared/heading-BprqyzDs.js +39 -0
  121. package/dist/_shared/heading-BprqyzDs.js.map +1 -0
  122. package/dist/_shared/heading-mZc_jan1.cjs +2 -0
  123. package/dist/_shared/heading-mZc_jan1.cjs.map +1 -0
  124. package/dist/_shared/hooks-C-uWoRq5.cjs +2 -0
  125. package/dist/_shared/hooks-C-uWoRq5.cjs.map +1 -0
  126. package/dist/_shared/hooks-D5HJtvvP.js +118 -0
  127. package/dist/_shared/hooks-D5HJtvvP.js.map +1 -0
  128. package/dist/_shared/icon-badge-BBqDyAUz.cjs +2 -0
  129. package/dist/_shared/icon-badge-BBqDyAUz.cjs.map +1 -0
  130. package/dist/_shared/icon-badge-Bi63T-bj.js +52 -0
  131. package/dist/_shared/icon-badge-Bi63T-bj.js.map +1 -0
  132. package/dist/_shared/input-B2YXTHqz.cjs +2 -0
  133. package/dist/_shared/input-B2YXTHqz.cjs.map +1 -0
  134. package/dist/_shared/input-BJb10xb9.cjs +2 -0
  135. package/dist/_shared/input-BJb10xb9.cjs.map +1 -0
  136. package/dist/_shared/input-CZxP5Xgj.js +17 -0
  137. package/dist/_shared/input-CZxP5Xgj.js.map +1 -0
  138. package/dist/_shared/input-DQahu2sm.js +182 -0
  139. package/dist/_shared/input-DQahu2sm.js.map +1 -0
  140. package/dist/_shared/item-Cu5JbZyZ.js +224 -0
  141. package/dist/_shared/item-Cu5JbZyZ.js.map +1 -0
  142. package/dist/_shared/item-Cx_7QZ2o.cjs +2 -0
  143. package/dist/_shared/item-Cx_7QZ2o.cjs.map +1 -0
  144. package/dist/_shared/mentions-CS3rIhze.js +493 -0
  145. package/dist/_shared/mentions-CS3rIhze.js.map +1 -0
  146. package/dist/_shared/mentions-D7gnP3Nf.cjs +2 -0
  147. package/dist/_shared/mentions-D7gnP3Nf.cjs.map +1 -0
  148. package/dist/_shared/metadata-CRsVWE8Y.cjs +2 -0
  149. package/dist/_shared/metadata-CRsVWE8Y.cjs.map +1 -0
  150. package/dist/_shared/metadata-CfG0FdFZ.js +236 -0
  151. package/dist/_shared/metadata-CfG0FdFZ.js.map +1 -0
  152. package/dist/_shared/money-display-Bd0rkjc9.js +198 -0
  153. package/dist/_shared/money-display-Bd0rkjc9.js.map +1 -0
  154. package/dist/_shared/money-display-DSFft9Mi.cjs +2 -0
  155. package/dist/_shared/money-display-DSFft9Mi.cjs.map +1 -0
  156. package/dist/_shared/navigation-Do9k5Xh1.js +420 -0
  157. package/dist/_shared/navigation-Do9k5Xh1.js.map +1 -0
  158. package/dist/_shared/navigation-QAAD3HJd.cjs +2 -0
  159. package/dist/_shared/navigation-QAAD3HJd.cjs.map +1 -0
  160. package/dist/_shared/overlays-B8AH8fNv.js +633 -0
  161. package/dist/_shared/overlays-B8AH8fNv.js.map +1 -0
  162. package/dist/_shared/overlays-DOcoRy8k.cjs +2 -0
  163. package/dist/_shared/overlays-DOcoRy8k.cjs.map +1 -0
  164. package/dist/_shared/page-BPCeKX9X.js +263 -0
  165. package/dist/_shared/page-BPCeKX9X.js.map +1 -0
  166. package/dist/_shared/page-DMM32sxi.cjs +2 -0
  167. package/dist/_shared/page-DMM32sxi.cjs.map +1 -0
  168. package/dist/_shared/popover-B1f_EUQS.cjs +2 -0
  169. package/dist/_shared/popover-B1f_EUQS.cjs.map +1 -0
  170. package/dist/_shared/popover-CgRGcFk9.js +83 -0
  171. package/dist/_shared/popover-CgRGcFk9.js.map +1 -0
  172. package/dist/_shared/popover-menu-BEKIT3LR.cjs +2 -0
  173. package/dist/_shared/popover-menu-BEKIT3LR.cjs.map +1 -0
  174. package/dist/_shared/popover-menu-BHdHLEVL.js +95 -0
  175. package/dist/_shared/popover-menu-BHdHLEVL.js.map +1 -0
  176. package/dist/_shared/rich-text-editor-0uoIoYXU.js +608 -0
  177. package/dist/_shared/rich-text-editor-0uoIoYXU.js.map +1 -0
  178. package/dist/_shared/rich-text-editor-wTiARGuB.cjs +2 -0
  179. package/dist/_shared/rich-text-editor-wTiARGuB.cjs.map +1 -0
  180. package/dist/_shared/scroll-area-Bo17wtZD.cjs +2 -0
  181. package/dist/_shared/scroll-area-Bo17wtZD.cjs.map +1 -0
  182. package/dist/_shared/scroll-area-Cj-hmB5D.js +41 -0
  183. package/dist/_shared/scroll-area-Cj-hmB5D.js.map +1 -0
  184. package/dist/_shared/select-07RRiTWc.js +85 -0
  185. package/dist/_shared/select-07RRiTWc.js.map +1 -0
  186. package/dist/_shared/select-BfiU7a4n.cjs +2 -0
  187. package/dist/_shared/select-BfiU7a4n.cjs.map +1 -0
  188. package/dist/_shared/separator-CN9zAJfs.cjs +2 -0
  189. package/dist/_shared/separator-CN9zAJfs.cjs.map +1 -0
  190. package/dist/_shared/separator-DR0uUMKa.js +16 -0
  191. package/dist/_shared/separator-DR0uUMKa.js.map +1 -0
  192. package/dist/_shared/sheet-B5FoGJAZ.cjs +2 -0
  193. package/dist/_shared/sheet-B5FoGJAZ.cjs.map +1 -0
  194. package/dist/_shared/sheet-cUI8cypP.js +100 -0
  195. package/dist/_shared/sheet-cUI8cypP.js.map +1 -0
  196. package/dist/_shared/sidebar-Bq7yKLrG.cjs +2 -0
  197. package/dist/_shared/sidebar-Bq7yKLrG.cjs.map +1 -0
  198. package/dist/_shared/sidebar-Da20tCUc.cjs +2 -0
  199. package/dist/_shared/sidebar-Da20tCUc.cjs.map +1 -0
  200. package/dist/_shared/sidebar-Q6TYE8Ux.js +371 -0
  201. package/dist/_shared/sidebar-Q6TYE8Ux.js.map +1 -0
  202. package/dist/_shared/sidebar-WmnQ55YY.js +537 -0
  203. package/dist/_shared/sidebar-WmnQ55YY.js.map +1 -0
  204. package/dist/_shared/skeleton-B3HWEc6G.js +14 -0
  205. package/dist/_shared/skeleton-B3HWEc6G.js.map +1 -0
  206. package/dist/_shared/skeleton-Cz_l8-fc.cjs +2 -0
  207. package/dist/_shared/skeleton-Cz_l8-fc.cjs.map +1 -0
  208. package/dist/_shared/slot-BgnZtKR5.js +18 -0
  209. package/dist/_shared/slot-BgnZtKR5.js.map +1 -0
  210. package/dist/_shared/slot-Dac1ipUC.cjs +2 -0
  211. package/dist/_shared/slot-Dac1ipUC.cjs.map +1 -0
  212. package/dist/_shared/smart-card-Bm_VxYUG.cjs +2 -0
  213. package/dist/_shared/smart-card-Bm_VxYUG.cjs.map +1 -0
  214. package/dist/_shared/smart-card-MT6JjkoI.js +360 -0
  215. package/dist/_shared/smart-card-MT6JjkoI.js.map +1 -0
  216. package/dist/_shared/spinner-BQjxJ_Kx.js +67 -0
  217. package/dist/_shared/spinner-BQjxJ_Kx.js.map +1 -0
  218. package/dist/_shared/spinner-Dvaa6GUm.cjs +2 -0
  219. package/dist/_shared/spinner-Dvaa6GUm.cjs.map +1 -0
  220. package/dist/_shared/switch-C0yyhsXZ.js +51 -0
  221. package/dist/_shared/switch-C0yyhsXZ.js.map +1 -0
  222. package/dist/_shared/switch-DozkSQNn.cjs +2 -0
  223. package/dist/_shared/switch-DozkSQNn.cjs.map +1 -0
  224. package/dist/_shared/textarea-Cgl-FPwu.js +119 -0
  225. package/dist/_shared/textarea-Cgl-FPwu.js.map +1 -0
  226. package/dist/_shared/textarea-D8wC0XlZ.cjs +2 -0
  227. package/dist/_shared/textarea-D8wC0XlZ.cjs.map +1 -0
  228. package/dist/_shared/tooltip-Cws4BiPT.js +49 -0
  229. package/dist/_shared/tooltip-Cws4BiPT.js.map +1 -0
  230. package/dist/_shared/tooltip-DyUi-Tac.cjs +2 -0
  231. package/dist/_shared/tooltip-DyUi-Tac.cjs.map +1 -0
  232. package/dist/_shared/typography-BW7iZBx7.cjs +2 -0
  233. package/dist/_shared/typography-BW7iZBx7.cjs.map +1 -0
  234. package/dist/_shared/typography-a3hydyvI.js +102 -0
  235. package/dist/_shared/typography-a3hydyvI.js.map +1 -0
  236. package/dist/components/base/accordion/index.cjs +1 -1
  237. package/dist/components/base/accordion/index.js +1 -1
  238. package/dist/components/base/badge/index.cjs +1 -1
  239. package/dist/components/base/badge/index.js +1 -1
  240. package/dist/components/base/buttons/index.cjs +1 -1
  241. package/dist/components/base/buttons/index.js +2 -2
  242. package/dist/components/base/cards/index.cjs +1 -1
  243. package/dist/components/base/cards/index.js +1 -1
  244. package/dist/components/base/combobox/index.cjs +1 -1
  245. package/dist/components/base/combobox/index.js +1 -1
  246. package/dist/components/base/command/index.cjs +1 -1
  247. package/dist/components/base/command/index.js +2 -2
  248. package/dist/components/base/copyable/index.cjs +1 -1
  249. package/dist/components/base/copyable/index.js +1 -1
  250. package/dist/components/base/currency/index.cjs +1 -1
  251. package/dist/components/base/currency/index.js +1 -1
  252. package/dist/components/base/date-pickers/index.cjs +1 -1
  253. package/dist/components/base/date-pickers/index.js +2 -2
  254. package/dist/components/base/display/index.cjs +1 -1
  255. package/dist/components/base/display/index.js +12 -11
  256. package/dist/components/base/display/metadata/index.cjs +1 -0
  257. package/dist/components/base/display/metadata/index.js +2 -0
  258. package/dist/components/base/event-calendar/index.cjs +1 -1
  259. package/dist/components/base/event-calendar/index.cjs.map +1 -1
  260. package/dist/components/base/event-calendar/index.js +4 -4
  261. package/dist/components/base/forms/index.cjs +1 -1
  262. package/dist/components/base/forms/index.js +6 -6
  263. package/dist/components/base/item/index.cjs +1 -1
  264. package/dist/components/base/item/index.js +1 -1
  265. package/dist/components/base/map/index.cjs +1 -1
  266. package/dist/components/base/map/index.js +3 -3
  267. package/dist/components/base/navigation/index.cjs +1 -1
  268. package/dist/components/base/navigation/index.js +4 -4
  269. package/dist/components/base/popover/index.cjs +1 -1
  270. package/dist/components/base/popover/index.js +1 -1
  271. package/dist/components/base/popover-menu/index.cjs +1 -1
  272. package/dist/components/base/popover-menu/index.js +1 -1
  273. package/dist/components/base/sheet/index.cjs +1 -1
  274. package/dist/components/base/sheet/index.js +1 -1
  275. package/dist/components/base/sidebar/index.cjs +1 -1
  276. package/dist/components/base/sidebar/index.js +1 -1
  277. package/dist/components/base/spinner/index.cjs +1 -1
  278. package/dist/components/base/spinner/index.js +1 -1
  279. package/dist/components/base/table/index.cjs +1 -1
  280. package/dist/components/base/table/index.js +7 -7
  281. package/dist/components/composed/admin/index.cjs +1 -1
  282. package/dist/components/composed/admin/index.cjs.map +1 -1
  283. package/dist/components/composed/admin/index.js +12 -12
  284. package/dist/components/composed/ai/index.cjs +1 -1
  285. package/dist/components/composed/ai/index.js +9 -9
  286. package/dist/components/composed/analytics/index.cjs +1 -1
  287. package/dist/components/composed/analytics/index.cjs.map +1 -1
  288. package/dist/components/composed/analytics/index.js +4 -4
  289. package/dist/components/composed/cards/index.cjs +1 -1
  290. package/dist/components/composed/cards/index.cjs.map +1 -1
  291. package/dist/components/composed/cards/index.js +8 -8
  292. package/dist/components/composed/commerce/index.cjs +1 -1
  293. package/dist/components/composed/commerce/index.cjs.map +1 -1
  294. package/dist/components/composed/commerce/index.js +9 -9
  295. package/dist/components/composed/dark-surfaces/index.cjs +1 -1
  296. package/dist/components/composed/dark-surfaces/index.cjs.map +1 -1
  297. package/dist/components/composed/dark-surfaces/index.js +6 -6
  298. package/dist/components/composed/data-display/index.cjs +1 -1
  299. package/dist/components/composed/data-display/index.cjs.map +1 -1
  300. package/dist/components/composed/data-display/index.js +7 -7
  301. package/dist/components/composed/navigation/index.cjs +1 -1
  302. package/dist/components/composed/navigation/index.js +4 -4
  303. package/dist/components/composed/onboarding/index.cjs +1 -1
  304. package/dist/components/composed/onboarding/index.js +2 -2
  305. package/dist/components/composed/timelines/index.cjs +1 -1
  306. package/dist/components/composed/timelines/index.js +2 -2
  307. package/dist/components/features/activities/index.cjs +1 -1
  308. package/dist/components/features/activities/index.js +4 -4
  309. package/dist/components/features/ai-chat/index.cjs +1 -1
  310. package/dist/components/features/ai-chat/index.cjs.map +1 -1
  311. package/dist/components/features/ai-chat/index.js +6 -6
  312. package/dist/components/features/card/index.cjs +1 -1
  313. package/dist/components/features/card/index.js +3 -3
  314. package/dist/components/features/comments/index.cjs +1 -1
  315. package/dist/components/features/comments/index.js +2 -2
  316. package/dist/components/features/event-log/index.cjs +1 -1
  317. package/dist/components/features/event-log/index.js +3 -3
  318. package/dist/components/features/filters/index.cjs +1 -1
  319. package/dist/components/features/filters/index.js +9 -9
  320. package/dist/components/features/global-search/index.cjs +1 -1
  321. package/dist/components/features/global-search/index.js +2 -2
  322. package/dist/components/features/kanban/index.cjs +1 -1
  323. package/dist/components/features/kanban/index.js +1 -1
  324. package/dist/components/features/mentions/index.cjs +1 -1
  325. package/dist/components/features/mentions/index.js +1 -1
  326. package/dist/components/features/overlays/index.cjs +1 -1
  327. package/dist/components/features/overlays/index.js +1 -1
  328. package/dist/components/features/rich-text-editor/index.cjs +1 -1
  329. package/dist/components/features/rich-text-editor/index.js +1 -1
  330. package/dist/components/features/suggestions/index.cjs +1 -1
  331. package/dist/components/features/suggestions/index.js +1 -1
  332. package/dist/components/features/sync/index.cjs +1 -1
  333. package/dist/components/features/sync/index.js +2 -2
  334. package/dist/components/layout/containers/index.cjs +1 -1
  335. package/dist/components/layout/containers/index.js +2 -2
  336. package/dist/components/layout/header/index.cjs +1 -1
  337. package/dist/components/layout/header/index.js +1 -1
  338. package/dist/components/layout/hooks/index.cjs +1 -1
  339. package/dist/components/layout/hooks/index.js +1 -1
  340. package/dist/components/layout/index.cjs +1 -1
  341. package/dist/components/layout/index.js +6 -6
  342. package/dist/components/layout/page/index.cjs +1 -1
  343. package/dist/components/layout/page/index.js +1 -1
  344. package/dist/components/layout/sidebar/index.cjs +1 -1
  345. package/dist/components/layout/sidebar/index.js +2 -2
  346. package/dist/components/typography/index.cjs +1 -1
  347. package/dist/components/typography/index.js +3 -2
  348. package/dist/showcase/assets/AreaChart-CJ57G5Ub.js +6 -0
  349. package/dist/showcase/assets/CSPContext-BA7DfnCI.js +1 -0
  350. package/dist/showcase/assets/CompositeItem-PwzgE4va.js +1 -0
  351. package/dist/showcase/assets/CompositeRoot-Du4CMlK7.js +1 -0
  352. package/dist/showcase/assets/DialogTrigger-FkENgwo6.js +1 -0
  353. package/dist/showcase/assets/FormContext-ChygLayp.js +1 -0
  354. package/dist/showcase/assets/PreviewLayout-z6vpJJGt.js +1 -0
  355. package/dist/showcase/assets/RadioGroup-CcDmbxOw.js +1 -0
  356. package/dist/showcase/assets/Separator-Dk4eN76U.js +1 -0
  357. package/dist/showcase/assets/ToolbarRootContext-D_KAA5hZ.js +1 -0
  358. package/dist/showcase/assets/accordion-dQszzfmw.js +172 -0
  359. package/dist/showcase/assets/accordion-variants-Dp4wxic-.js +1 -0
  360. package/dist/showcase/assets/action-menu-CBi2Eiy0.js +1 -0
  361. package/dist/showcase/assets/activities-DoXsgP4G.js +501 -0
  362. package/dist/showcase/assets/activities-feed-card-xz5FtkOm.js +1 -0
  363. package/dist/showcase/assets/admin-CxklUqAG.js +80 -0
  364. package/dist/showcase/assets/ai-artifact-DkhUdEbM.js +2 -0
  365. package/dist/showcase/assets/ai-chat-B6PuqkEu.js +568 -0
  366. package/dist/showcase/assets/ai-elements-D_rpj_ds.js +379 -0
  367. package/dist/showcase/assets/ai-new-CUPrAbOK.js +167 -0
  368. package/dist/showcase/assets/ai-tool-call-CEr-dGVx.js +1 -0
  369. package/dist/showcase/assets/ai-zxF_msJF.js +41 -0
  370. package/dist/showcase/assets/alert-771BE3Ny.js +59 -0
  371. package/dist/showcase/assets/alert-CG42DAlX.js +1 -0
  372. package/dist/showcase/assets/api-key-list-D6jUN7Fq.js +73 -0
  373. package/dist/showcase/assets/arrow-down-CUoXUyN1.js +1 -0
  374. package/dist/showcase/assets/arrow-left-Cdq69X6h.js +1 -0
  375. package/dist/showcase/assets/arrow-right-i25q9L2H.js +1 -0
  376. package/dist/showcase/assets/arrow-up-pnezegnF.js +1 -0
  377. package/dist/showcase/assets/arrow-up-right-CK3XnMah.js +1 -0
  378. package/dist/showcase/assets/avatar-LPmQqZQv.js +1 -0
  379. package/dist/showcase/assets/avatar-ZVFIQouy.js +57 -0
  380. package/dist/showcase/assets/badge-DK4bsgZC.js +28 -0
  381. package/dist/showcase/assets/badge-check-Cw5gkVcG.js +1 -0
  382. package/dist/showcase/assets/bell-BvJELoaV.js +1 -0
  383. package/dist/showcase/assets/bot-DRj6sdSR.js +1 -0
  384. package/dist/showcase/assets/box-BNND3M2m.js +1 -0
  385. package/dist/showcase/assets/brain-Cy3o-12l.js +1 -0
  386. package/dist/showcase/assets/brand-DvipEpFn.js +40 -0
  387. package/dist/showcase/assets/breadcrumb-B-LNuOyv.js +1 -0
  388. package/dist/showcase/assets/breadcrumb-Lzpc0yo4.js +52 -0
  389. package/dist/showcase/assets/breadcrumbs-DD6msKFZ.js +1 -0
  390. package/dist/showcase/assets/briefcase-LcAwoEmu.js +1 -0
  391. package/dist/showcase/assets/button-CuwcGzk1.js +44 -0
  392. package/dist/showcase/assets/button-group-CAImjDrl.js +1 -0
  393. package/dist/showcase/assets/buttons-DTjNHCMl.js +259 -0
  394. package/dist/showcase/assets/calendar-B1zW0q6I.js +1 -0
  395. package/dist/showcase/assets/calendar-Dlv72ytt.js +1 -0
  396. package/dist/showcase/assets/calendar-ls2A08Pn.js +16 -0
  397. package/dist/showcase/assets/card-BhtkM1BT.js +1 -0
  398. package/dist/showcase/assets/cards-BRpRXzGk.js +328 -0
  399. package/dist/showcase/assets/chart-column-BpQkEi1H.js +1 -0
  400. package/dist/showcase/assets/chevron-down-DyObdfSb.js +1 -0
  401. package/dist/showcase/assets/chevron-left-T7dHNxYM.js +1 -0
  402. package/dist/showcase/assets/chevron-right-D_EcqHpT.js +1 -0
  403. package/dist/showcase/assets/chevron-up-B38ivdGO.js +1 -0
  404. package/dist/showcase/assets/chevrons-up-down-SdRARzoq.js +1 -0
  405. package/dist/showcase/assets/circle-BrCPAmDA.js +1 -0
  406. package/dist/showcase/assets/circle-alert-DdhzLPY_.js +1 -0
  407. package/dist/showcase/assets/circle-check-DlA6zidQ.js +1 -0
  408. package/dist/showcase/assets/circle-check-big-DFGJANQF.js +1 -0
  409. package/dist/showcase/assets/circle-dot-BKmnVUqM.js +1 -0
  410. package/dist/showcase/assets/circle-question-mark-BNREvgVC.js +1 -0
  411. package/dist/showcase/assets/circle-x-C45QjHEs.js +1 -0
  412. package/dist/showcase/assets/clock-D1nKQzQo.js +1 -0
  413. package/dist/showcase/assets/code-xml-B8N3GRSu.js +1 -0
  414. package/dist/showcase/assets/collapsible-4TfcWyNs.js +1 -0
  415. package/dist/showcase/assets/collapsible-CKbZtvTj.js +27 -0
  416. package/dist/showcase/assets/combobox-DTdGPaU0.js +622 -0
  417. package/dist/showcase/assets/command-DymTXwL1.js +1 -0
  418. package/dist/showcase/assets/command-ksVIHQKJ.js +45 -0
  419. package/dist/showcase/assets/comment-composer-DC9oS1Yy.js +1 -0
  420. package/dist/showcase/assets/comment-item-CAmKnJa7.js +1 -0
  421. package/dist/showcase/assets/comments-Benk-2mV.js +349 -0
  422. package/dist/showcase/assets/commerce-Qz-mq8mQ.js +78 -0
  423. package/dist/showcase/assets/commerce-extras-CQRc3Bna.js +179 -0
  424. package/dist/showcase/assets/composite-DBDXLPyz.js +1 -0
  425. package/dist/showcase/assets/contact-card-DkL2nI3r.js +65 -0
  426. package/dist/showcase/assets/content-container-mRm6oJEa.js +1 -0
  427. package/dist/showcase/assets/copyable-DmLlmwzy.js +96 -0
  428. package/dist/showcase/assets/course-card-CJJoeZj9.js +113 -0
  429. package/dist/showcase/assets/cpu-BXJnF2Xy.js +1 -0
  430. package/dist/showcase/assets/credit-card-BQK3KKb2.js +1 -0
  431. package/dist/showcase/assets/currency-DBPUh8ee.js +149 -0
  432. package/dist/showcase/assets/dark-surfaces-LpPuIeYy.js +90 -0
  433. package/dist/showcase/assets/database-BZerpzGE.js +1 -0
  434. package/dist/showcase/assets/date-block-iiHUpbNX.js +1 -0
  435. package/dist/showcase/assets/date-picker-BQeBGL7T.js +1 -0
  436. package/dist/showcase/assets/date-pickers-CKcUEMMF.js +110 -0
  437. package/dist/showcase/assets/dense-info-DATmxRU8.js +106 -0
  438. package/dist/showcase/assets/dialog-Bqu5KDYH.js +1 -0
  439. package/dist/showcase/assets/display-Bj7uPXD4.js +392 -0
  440. package/dist/showcase/assets/dist-QK7JxeYv.js +1 -0
  441. package/dist/showcase/assets/dollar-sign-DFZs6vfz.js +1 -0
  442. package/dist/showcase/assets/download-5oGw_WbW.js +1 -0
  443. package/dist/showcase/assets/dropdown-menu-1CJgYn0S.js +1 -0
  444. package/dist/showcase/assets/dropzone-Co1uhsDn.js +1 -0
  445. package/dist/showcase/assets/ellipsis-cKRcvuyL.js +1 -0
  446. package/dist/showcase/assets/ellipsis-vertical-B1RErEkj.js +1 -0
  447. package/dist/showcase/assets/empty-Y2-4nCBr.js +1 -0
  448. package/dist/showcase/assets/empty-item-USa6xcUv.js +49 -0
  449. package/dist/showcase/assets/empty-state-DfhZ9AT5.js +188 -0
  450. package/dist/showcase/assets/enhanced-activities-DmAPVUSu.js +359 -0
  451. package/dist/showcase/assets/esm-BeGQ_ZTM.js +2 -0
  452. package/dist/showcase/assets/event-calendar-D-jGrrZS.js +138 -0
  453. package/dist/showcase/assets/event-log-tA_i4eR9.js +326 -0
  454. package/dist/showcase/assets/example-6phCHGsN.js +1 -0
  455. package/dist/showcase/assets/external-link-BuVHkCy0.js +1 -0
  456. package/dist/showcase/assets/eye-DC5HfGm6.js +1 -0
  457. package/dist/showcase/assets/feature-announcement-DwvxLytd.js +34 -0
  458. package/dist/showcase/assets/file-D-xM4vLy.js +1 -0
  459. package/dist/showcase/assets/file-text-tmG5vNbr.js +1 -0
  460. package/dist/showcase/assets/filters-CrGRXmq6.js +78 -0
  461. package/dist/showcase/assets/flag-CWrEtkY5.js +1 -0
  462. package/dist/showcase/assets/folder-open-Br-x1pjP.js +1 -0
  463. package/dist/showcase/assets/form-sizing-Bb5hiM45.js +1 -0
  464. package/dist/showcase/assets/format-D_ETCyg4.js +1 -0
  465. package/dist/showcase/assets/forms-B_MkQ3rm.js +790 -0
  466. package/dist/showcase/assets/generic-CdmsyXV3.js +1 -0
  467. package/dist/showcase/assets/getPseudoElementBounds-CZnCbCFP.js +1 -0
  468. package/dist/showcase/assets/gift-NkuklfU2.js +1 -0
  469. package/dist/showcase/assets/giftcard-cards-BAvevZ0i.js +85 -0
  470. package/dist/showcase/assets/git-branch-B_CBqPeO.js +1 -0
  471. package/dist/showcase/assets/global-search-D9teAbPe.js +90 -0
  472. package/dist/showcase/assets/globe-gzw45GU2.js +1 -0
  473. package/dist/showcase/assets/gradient-card-Xk2r7R5H.js +58 -0
  474. package/dist/showcase/assets/header-notifications-_aZCpE5A.js +1 -0
  475. package/dist/showcase/assets/heart-CEMKbRaZ.js +1 -0
  476. package/dist/showcase/assets/house-BlGXAcMH.js +1 -0
  477. package/dist/showcase/assets/icon-badge-z6N9reH_.js +1 -0
  478. package/dist/showcase/assets/image-B8mzmVBr.js +1 -0
  479. package/dist/showcase/assets/inbox-qdSnP4UV.js +1 -0
  480. package/dist/showcase/assets/index-B4ubXfly.js +10 -0
  481. package/dist/showcase/assets/inertValue-D5Q8cLku.js +1 -0
  482. package/dist/showcase/assets/info-DBvvNjc_.js +1 -0
  483. package/dist/showcase/assets/inline-stat-Bm1zVT8D.js +1 -0
  484. package/dist/showcase/assets/input-CBQR0aeX.js +1 -0
  485. package/dist/showcase/assets/input-OrUzpI55.js +1 -0
  486. package/dist/showcase/assets/input-group-DhqOen2N.js +47 -0
  487. package/dist/showcase/assets/input-group-l8xa5nUq.js +1 -0
  488. package/dist/showcase/assets/inputs-DbiJ0qy2.js +49 -0
  489. package/dist/showcase/assets/invoice-header-C6youIbL.js +36 -0
  490. package/dist/showcase/assets/invoice-items-g6dgryF-.js +36 -0
  491. package/dist/showcase/assets/invoice-mini-0iWhufpt.js +14 -0
  492. package/dist/showcase/assets/invoice-table-Bvdh3rRq.js +30 -0
  493. package/dist/showcase/assets/isSameDay-BpZEtJe8.js +1 -0
  494. package/dist/showcase/assets/isToday-F0CS28oK.js +1 -0
  495. package/dist/showcase/assets/italic-CJOEwjdc.js +1 -0
  496. package/dist/showcase/assets/item-BiMm1PPB.js +1 -0
  497. package/dist/showcase/assets/item-CN0cwdj_.js +1 -0
  498. package/dist/showcase/assets/item-DNqEUYLT.js +117 -0
  499. package/dist/showcase/assets/kanban-DxePEUiQ.js +175 -0
  500. package/dist/showcase/assets/label-Dx4WO-fg.js +1 -0
  501. package/dist/showcase/assets/layout-containers-DDl8rG8S.js +96 -0
  502. package/dist/showcase/assets/layout-header-Bu6IcDWu.js +170 -0
  503. package/dist/showcase/assets/layout-page-D-88Qnoy.js +122 -0
  504. package/dist/showcase/assets/layout-sidebar-Ctft10pk.js +224 -0
  505. package/dist/showcase/assets/layout-users-DtbZduBG.js +104 -0
  506. package/dist/showcase/assets/lib-D9BoOYUd.js +1 -0
  507. package/dist/showcase/assets/lock-CHurDI0n.js +1 -0
  508. package/dist/showcase/assets/mail-DZ1o1RLW.js +1 -0
  509. package/dist/showcase/assets/map-C8xiyT9X.js +124 -0
  510. package/dist/showcase/assets/map-pin-CAKaoYod.js +1 -0
  511. package/dist/showcase/assets/menus-C6mnp636.js +89 -0
  512. package/dist/showcase/assets/message-square-Zo5J_zU1.js +1 -0
  513. package/dist/showcase/assets/metadata-list-W83-UMhc.js +278 -0
  514. package/dist/showcase/assets/metric-BSvxidIX.js +1 -0
  515. package/dist/showcase/assets/metric-grid-Dtqx_3Lg.js +1 -0
  516. package/dist/showcase/assets/metric-trend-chip-mtvcJ_M9.js +1 -0
  517. package/dist/showcase/assets/metrics-analytics-bar-DQbyss7i.js +44 -0
  518. package/dist/showcase/assets/metrics-analytics-cards-CEBu5Uw0.js +77 -0
  519. package/dist/showcase/assets/metrics-comparison-Bs-R6v4y.js +76 -0
  520. package/dist/showcase/assets/metrics-heatmap-BKHWH8sM.js +27 -0
  521. package/dist/showcase/assets/metrics-inline-badge-BxVn0Y2p.js +17 -0
  522. package/dist/showcase/assets/metrics-kpi-row-DtACYEds.js +31 -0
  523. package/dist/showcase/assets/metrics-micro-grid-BkwUGOUR.js +42 -0
  524. package/dist/showcase/assets/metrics-overview-BAtrlzsI.js +192 -0
  525. package/dist/showcase/assets/metrics-stat-cards-iCRCNyHY.js +54 -0
  526. package/dist/showcase/assets/minus-C6eBW-2t.js +1 -0
  527. package/dist/showcase/assets/money-display-DjGRJ16l.js +1 -0
  528. package/dist/showcase/assets/month-year-picker-DTDebPqf.js +1 -0
  529. package/dist/showcase/assets/navigation-BrG8Chig.js +86 -0
  530. package/dist/showcase/assets/navigation-CfXQJbyM.js +230 -0
  531. package/dist/showcase/assets/navigation-extras-D_gzLlZ5.js +43 -0
  532. package/dist/showcase/assets/onboarding-checklist-1EerUwAo.js +119 -0
  533. package/dist/showcase/assets/overlays-2AB9-S1Z.js +88 -0
  534. package/dist/showcase/assets/overlays-CYt9o3Xq.js +393 -0
  535. package/dist/showcase/assets/package-BJMP-Fcr.js +1 -0
  536. package/dist/showcase/assets/page-action-button-BZxJ0X1j.js +1 -0
  537. package/dist/showcase/assets/page-header-B_rqHJhe.js +1 -0
  538. package/dist/showcase/assets/pagination-BHiQvvka.js +1 -0
  539. package/dist/showcase/assets/pagination-Dq0GruQd.js +42 -0
  540. package/dist/showcase/assets/paperclip-BMYKrUQo.js +1 -0
  541. package/dist/showcase/assets/pencil-BJ3VS_FO.js +1 -0
  542. package/dist/showcase/assets/phone-CsRIyvep.js +1 -0
  543. package/dist/showcase/assets/plus-D2JuXYLg.js +1 -0
  544. package/dist/showcase/assets/popover-DNT9755r.js +1 -0
  545. package/dist/showcase/assets/popover-KvGgcPNg.js +1 -0
  546. package/dist/showcase/assets/popover-menu-CJx30R65.js +1 -0
  547. package/dist/showcase/assets/progress-B7WuXcJR.js +1 -0
  548. package/dist/showcase/assets/progress-CweCSAUv.js +18 -0
  549. package/dist/showcase/assets/props-table-uDY4eIzt.js +1 -0
  550. package/dist/showcase/assets/quote-DAyyfzQd.js +1 -0
  551. package/dist/showcase/assets/receipt-C0mMZGbF.js +1 -0
  552. package/dist/showcase/assets/refresh-cw-X06JbXb-.js +1 -0
  553. package/dist/showcase/assets/resolveValueLabel-Bks7UDko.js +1 -0
  554. package/dist/showcase/assets/rich-text-editor-QJsb-qIe.js +124 -0
  555. package/dist/showcase/assets/rich-text-editor-h07VBNI9.js +141 -0
  556. package/dist/showcase/assets/rotate-ccw-D84bdX_x.js +1 -0
  557. package/dist/showcase/assets/scroll-area-0rT06pXZ.js +1 -0
  558. package/dist/showcase/assets/scroll-area-YXwdzGpN.js +32 -0
  559. package/dist/showcase/assets/select-BoWQDtUf.js +1 -0
  560. package/dist/showcase/assets/send-DJsk3cr1.js +1 -0
  561. package/dist/showcase/assets/separator-CLSnRcJa.js +28 -0
  562. package/dist/showcase/assets/separator-DWv-twD-.js +1 -0
  563. package/dist/showcase/assets/settings-Cb2MsAmN.js +1 -0
  564. package/dist/showcase/assets/sheet-Dn1-MYus.js +1 -0
  565. package/dist/showcase/assets/shield-DwLjF5ch.js +1 -0
  566. package/dist/showcase/assets/shield-alert-D8i6gzMK.js +1 -0
  567. package/dist/showcase/assets/shield-check-D5YRSBIz.js +1 -0
  568. package/dist/showcase/assets/shopping-bag-BqlAP4vn.js +1 -0
  569. package/dist/showcase/assets/sidebar.context-BAp_pBEB.js +1 -0
  570. package/dist/showcase/assets/skeleton-CeNPp4hr.js +1 -0
  571. package/dist/showcase/assets/skeleton-QPsnM_NR.js +29 -0
  572. package/dist/showcase/assets/smart-card-BisUbLPt.js +1 -0
  573. package/dist/showcase/assets/sonner-B7GzbBK2.js +22 -0
  574. package/dist/showcase/assets/sortable.esm-BDcEOHT7.js +5 -0
  575. package/dist/showcase/assets/sparkles-CF9P5Tqh.js +1 -0
  576. package/dist/showcase/assets/spinner-BeamEyJd.js +49 -0
  577. package/dist/showcase/assets/spinner-DoYBfalR.js +1 -0
  578. package/dist/showcase/assets/spinner-UsLsOYzn.js +30 -0
  579. package/dist/showcase/assets/square-pen-BGTVdnt1.js +1 -0
  580. package/dist/showcase/assets/stacked-avatars-BWfVX1Ov.js +1 -0
  581. package/dist/showcase/assets/star-NsPNO9gR.js +1 -0
  582. package/dist/showcase/assets/startOfDay-zJBpxLuW.js +1 -0
  583. package/dist/showcase/assets/styles-DA7a7hVy.js +1 -0
  584. package/dist/showcase/assets/switch-C62S4U2o.js +1 -0
  585. package/dist/showcase/assets/switch-CYQcinJZ.js +1 -0
  586. package/dist/showcase/assets/table-w4IABkpa.js +1 -0
  587. package/dist/showcase/assets/table-xgB63UrY.js +390 -0
  588. package/dist/showcase/assets/tabs-BFTEaTXj.js +19 -0
  589. package/dist/showcase/assets/tabs-oMJn9Ujq.js +1 -0
  590. package/dist/showcase/assets/text-button-BgcutPuu.js +1 -0
  591. package/dist/showcase/assets/text-link-CS9thOWL.js +1 -0
  592. package/dist/showcase/assets/textarea-BOBx4EM6.js +1 -0
  593. package/dist/showcase/assets/textarea-CTzYZZqa.js +1 -0
  594. package/dist/showcase/assets/timelines-CK07mEBK.js +186 -0
  595. package/dist/showcase/assets/toggle-group-CSPdPT6G.js +1 -0
  596. package/dist/showcase/assets/toggles-DDSdl-gA.js +71 -0
  597. package/dist/showcase/assets/toggles-group-Y2BdKEFB.js +32 -0
  598. package/dist/showcase/assets/trash-2-C-FAptQP.js +1 -0
  599. package/dist/showcase/assets/trending-up-BmLhdF_w.js +1 -0
  600. package/dist/showcase/assets/truck-pZdUS_as.js +1 -0
  601. package/dist/showcase/assets/typography-CnBH2z7f.js +214 -0
  602. package/dist/showcase/assets/ui-badge-Cl6INRO5.js +28 -0
  603. package/dist/showcase/assets/ui-card-B5P-thNu.js +30 -0
  604. package/dist/showcase/assets/ui-table-B32RILKk.js +42 -0
  605. package/dist/showcase/assets/upload-tray-mu6bR2ZE.js +138 -0
  606. package/dist/showcase/assets/useAnchoredPopupScrollLock-CzDaXxmM.js +1 -0
  607. package/dist/showcase/assets/useCollapsiblePanel-B0DZvDFu.js +1 -0
  608. package/dist/showcase/assets/useCompositeItem-BVIVLT9X.js +1 -0
  609. package/dist/showcase/assets/useCompositeListItem-JEMeTFPx.js +1 -0
  610. package/dist/showcase/assets/useControlled-ZjqBfPCn.js +1 -0
  611. package/dist/showcase/assets/useLabelableId-D8CZq8Bm.js +1 -0
  612. package/dist/showcase/assets/useOpenInteractionType-CopGCf3q.js +1 -0
  613. package/dist/showcase/assets/useRender-zuKv6JQF.js +1 -0
  614. package/dist/showcase/assets/useRole-08KeyiD3.js +1 -0
  615. package/dist/showcase/assets/useTriggerFocusGuards-DEuz5CGe.js +1 -0
  616. package/dist/showcase/assets/useValueChanged-BxFi_qyj.js +1 -0
  617. package/dist/showcase/assets/user-Bgc2t2_e.js +1 -0
  618. package/dist/showcase/assets/user-plus-F_TfagnP.js +1 -0
  619. package/dist/showcase/assets/users-B7G4yTCR.js +1 -0
  620. package/dist/showcase/assets/vendor-profile-BTQmsKM6.js +37 -0
  621. package/dist/showcase/assets/wrench-BdzICmjR.js +1 -0
  622. package/dist/showcase/assets/x-B156Wr-5.js +1 -0
  623. package/dist/showcase/assets/zap-B3iByjNV.js +1 -0
  624. package/dist/showcase/index.html +1 -1
  625. package/package.json +254 -19
  626. package/dist/_shared/accordion-7rwpgJ1k.cjs +0 -2
  627. package/dist/_shared/accordion-7rwpgJ1k.cjs.map +0 -1
  628. package/dist/_shared/accordion-DcduCEIo.js +0 -130
  629. package/dist/_shared/accordion-DcduCEIo.js.map +0 -1
  630. package/dist/_shared/action-menu-D0u-q0q-.cjs +0 -2
  631. package/dist/_shared/action-menu-D0u-q0q-.cjs.map +0 -1
  632. package/dist/_shared/action-menu-DUBXdReV.js +0 -96
  633. package/dist/_shared/action-menu-DUBXdReV.js.map +0 -1
  634. package/dist/_shared/ai-artifact-C3R0god0.cjs +0 -3
  635. package/dist/_shared/ai-artifact-C3R0god0.cjs.map +0 -1
  636. package/dist/_shared/ai-artifact-DMjQv_Si.js +0 -1068
  637. package/dist/_shared/ai-artifact-DMjQv_Si.js.map +0 -1
  638. package/dist/_shared/alert-B2cuJGAA.cjs +0 -2
  639. package/dist/_shared/alert-B2cuJGAA.cjs.map +0 -1
  640. package/dist/_shared/alert-BKUmOI2e.js +0 -48
  641. package/dist/_shared/alert-BKUmOI2e.js.map +0 -1
  642. package/dist/_shared/avatar-BcYcRORH.cjs +0 -2
  643. package/dist/_shared/avatar-BcYcRORH.cjs.map +0 -1
  644. package/dist/_shared/avatar-CNzG6jSZ.js +0 -52
  645. package/dist/_shared/avatar-CNzG6jSZ.js.map +0 -1
  646. package/dist/_shared/badge-BbUN6W7E.js +0 -108
  647. package/dist/_shared/badge-BbUN6W7E.js.map +0 -1
  648. package/dist/_shared/badge-BjtDcU1M.cjs +0 -2
  649. package/dist/_shared/badge-BjtDcU1M.cjs.map +0 -1
  650. package/dist/_shared/breadcrumbs-DctwTld5.js +0 -111
  651. package/dist/_shared/breadcrumbs-DctwTld5.js.map +0 -1
  652. package/dist/_shared/breadcrumbs-m0-gCdNj.cjs +0 -2
  653. package/dist/_shared/breadcrumbs-m0-gCdNj.cjs.map +0 -1
  654. package/dist/_shared/button-BCABTFLE.js +0 -46
  655. package/dist/_shared/button-BCABTFLE.js.map +0 -1
  656. package/dist/_shared/button-Ck2qS42n.js +0 -176
  657. package/dist/_shared/button-Ck2qS42n.js.map +0 -1
  658. package/dist/_shared/button-DjJ-mDI1.cjs +0 -2
  659. package/dist/_shared/button-DjJ-mDI1.cjs.map +0 -1
  660. package/dist/_shared/button-DjacsNTg.cjs +0 -2
  661. package/dist/_shared/button-DjacsNTg.cjs.map +0 -1
  662. package/dist/_shared/buttons-BVnjQ-uE.js +0 -143
  663. package/dist/_shared/buttons-BVnjQ-uE.js.map +0 -1
  664. package/dist/_shared/buttons-BdY6igTr.cjs +0 -2
  665. package/dist/_shared/buttons-BdY6igTr.cjs.map +0 -1
  666. package/dist/_shared/card-radio-group--GP1xrz_.js +0 -158
  667. package/dist/_shared/card-radio-group--GP1xrz_.js.map +0 -1
  668. package/dist/_shared/card-radio-group-DnQsWozr.cjs +0 -2
  669. package/dist/_shared/card-radio-group-DnQsWozr.cjs.map +0 -1
  670. package/dist/_shared/combobox-DBrRE1Dr.cjs +0 -2
  671. package/dist/_shared/combobox-DBrRE1Dr.cjs.map +0 -1
  672. package/dist/_shared/combobox-DYztEJaw.js +0 -746
  673. package/dist/_shared/combobox-DYztEJaw.js.map +0 -1
  674. package/dist/_shared/command-COvgXQ8r.cjs +0 -2
  675. package/dist/_shared/command-COvgXQ8r.cjs.map +0 -1
  676. package/dist/_shared/command-CvZ6Emb8.js +0 -39
  677. package/dist/_shared/command-CvZ6Emb8.js.map +0 -1
  678. package/dist/_shared/command-DTFQIUVG.cjs +0 -2
  679. package/dist/_shared/command-DTFQIUVG.cjs.map +0 -1
  680. package/dist/_shared/command-Sq8XbHbA.js +0 -123
  681. package/dist/_shared/command-Sq8XbHbA.js.map +0 -1
  682. package/dist/_shared/comments-BOFU1GYY.js +0 -945
  683. package/dist/_shared/comments-BOFU1GYY.js.map +0 -1
  684. package/dist/_shared/comments-BbTYFzx6.cjs +0 -2
  685. package/dist/_shared/comments-BbTYFzx6.cjs.map +0 -1
  686. package/dist/_shared/containers-BthqdOhA.cjs +0 -2
  687. package/dist/_shared/containers-BthqdOhA.cjs.map +0 -1
  688. package/dist/_shared/containers-CD2xs1nk.js +0 -19
  689. package/dist/_shared/containers-CD2xs1nk.js.map +0 -1
  690. package/dist/_shared/content-container-CFfYbWoa.js +0 -33
  691. package/dist/_shared/content-container-CFfYbWoa.js.map +0 -1
  692. package/dist/_shared/content-container-CReiVugL.cjs +0 -2
  693. package/dist/_shared/content-container-CReiVugL.cjs.map +0 -1
  694. package/dist/_shared/copyable-CweQ72QI.cjs +0 -2
  695. package/dist/_shared/copyable-CweQ72QI.cjs.map +0 -1
  696. package/dist/_shared/copyable-JgsTp6ev.js +0 -38
  697. package/dist/_shared/copyable-JgsTp6ev.js.map +0 -1
  698. package/dist/_shared/date-picker-DI4b-SeE.cjs +0 -2
  699. package/dist/_shared/date-picker-DI4b-SeE.cjs.map +0 -1
  700. package/dist/_shared/date-picker-DTazvODY.js +0 -1352
  701. package/dist/_shared/date-picker-DTazvODY.js.map +0 -1
  702. package/dist/_shared/date-pickers-CLzuzmuc.cjs +0 -2
  703. package/dist/_shared/date-pickers-CLzuzmuc.cjs.map +0 -1
  704. package/dist/_shared/date-pickers-CWPxP3zy.js +0 -330
  705. package/dist/_shared/date-pickers-CWPxP3zy.js.map +0 -1
  706. package/dist/_shared/dialog-2MJmaj_d.js +0 -101
  707. package/dist/_shared/dialog-2MJmaj_d.js.map +0 -1
  708. package/dist/_shared/dialog-KKD0i1T8.cjs +0 -2
  709. package/dist/_shared/dialog-KKD0i1T8.cjs.map +0 -1
  710. package/dist/_shared/display-BCy1Ti7T.cjs +0 -8
  711. package/dist/_shared/display-BCy1Ti7T.cjs.map +0 -1
  712. package/dist/_shared/display-DUpkE2aS.js +0 -1462
  713. package/dist/_shared/display-DUpkE2aS.js.map +0 -1
  714. package/dist/_shared/dropdown-menu-BebBffUH.cjs +0 -2
  715. package/dist/_shared/dropdown-menu-BebBffUH.cjs.map +0 -1
  716. package/dist/_shared/dropdown-menu-xdGEynC8.js +0 -147
  717. package/dist/_shared/dropdown-menu-xdGEynC8.js.map +0 -1
  718. package/dist/_shared/form-field-rOj3cm6C.js +0 -319
  719. package/dist/_shared/form-field-rOj3cm6C.js.map +0 -1
  720. package/dist/_shared/form-field-rcyIIHjR.cjs +0 -2
  721. package/dist/_shared/form-field-rcyIIHjR.cjs.map +0 -1
  722. package/dist/_shared/form-sizing--bs_xPe2.cjs +0 -2
  723. package/dist/_shared/form-sizing--bs_xPe2.cjs.map +0 -1
  724. package/dist/_shared/form-sizing-CkKcs5fi.js +0 -21
  725. package/dist/_shared/form-sizing-CkKcs5fi.js.map +0 -1
  726. package/dist/_shared/format-BlVEsPyT.js +0 -48
  727. package/dist/_shared/format-BlVEsPyT.js.map +0 -1
  728. package/dist/_shared/format-DYVtSA2I.cjs +0 -2
  729. package/dist/_shared/format-DYVtSA2I.cjs.map +0 -1
  730. package/dist/_shared/forms-BAVsxxRk.js +0 -3374
  731. package/dist/_shared/forms-BAVsxxRk.js.map +0 -1
  732. package/dist/_shared/forms-DaZ3LsYc.cjs +0 -2
  733. package/dist/_shared/forms-DaZ3LsYc.cjs.map +0 -1
  734. package/dist/_shared/header-BtTMsQ5P.cjs +0 -2
  735. package/dist/_shared/header-BtTMsQ5P.cjs.map +0 -1
  736. package/dist/_shared/header-DpW4UWV6.js +0 -369
  737. package/dist/_shared/header-DpW4UWV6.js.map +0 -1
  738. package/dist/_shared/hooks-Bsm917yh.cjs +0 -2
  739. package/dist/_shared/hooks-Bsm917yh.cjs.map +0 -1
  740. package/dist/_shared/hooks-CX-SICd4.js +0 -118
  741. package/dist/_shared/hooks-CX-SICd4.js.map +0 -1
  742. package/dist/_shared/icon-badge-DGKpbo9_.cjs +0 -2
  743. package/dist/_shared/icon-badge-DGKpbo9_.cjs.map +0 -1
  744. package/dist/_shared/icon-badge-DoClA_9q.js +0 -52
  745. package/dist/_shared/icon-badge-DoClA_9q.js.map +0 -1
  746. package/dist/_shared/input-BXt-YtVs.cjs +0 -2
  747. package/dist/_shared/input-BXt-YtVs.cjs.map +0 -1
  748. package/dist/_shared/input-Bx4LeLhn.js +0 -17
  749. package/dist/_shared/input-Bx4LeLhn.js.map +0 -1
  750. package/dist/_shared/input-ChZGIhtS.cjs +0 -2
  751. package/dist/_shared/input-ChZGIhtS.cjs.map +0 -1
  752. package/dist/_shared/input-Cwv1-5jt.js +0 -182
  753. package/dist/_shared/input-Cwv1-5jt.js.map +0 -1
  754. package/dist/_shared/item-BmTYKzEb.js +0 -224
  755. package/dist/_shared/item-BmTYKzEb.js.map +0 -1
  756. package/dist/_shared/item-BtR-bz96.cjs +0 -2
  757. package/dist/_shared/item-BtR-bz96.cjs.map +0 -1
  758. package/dist/_shared/mentions-DVCjaO_z.cjs +0 -2
  759. package/dist/_shared/mentions-DVCjaO_z.cjs.map +0 -1
  760. package/dist/_shared/mentions-DzG8mX5H.js +0 -493
  761. package/dist/_shared/mentions-DzG8mX5H.js.map +0 -1
  762. package/dist/_shared/money-display-B5oxCs_0.cjs +0 -2
  763. package/dist/_shared/money-display-B5oxCs_0.cjs.map +0 -1
  764. package/dist/_shared/money-display-C0wI02ou.js +0 -198
  765. package/dist/_shared/money-display-C0wI02ou.js.map +0 -1
  766. package/dist/_shared/navigation-BA2nsTgU.cjs +0 -2
  767. package/dist/_shared/navigation-BA2nsTgU.cjs.map +0 -1
  768. package/dist/_shared/navigation-DHyaf-RZ.js +0 -420
  769. package/dist/_shared/navigation-DHyaf-RZ.js.map +0 -1
  770. package/dist/_shared/overlays-Kl6Gp6WR.js +0 -633
  771. package/dist/_shared/overlays-Kl6Gp6WR.js.map +0 -1
  772. package/dist/_shared/overlays-W6j-Pe1L.cjs +0 -2
  773. package/dist/_shared/overlays-W6j-Pe1L.cjs.map +0 -1
  774. package/dist/_shared/page-DROZhtWT.js +0 -263
  775. package/dist/_shared/page-DROZhtWT.js.map +0 -1
  776. package/dist/_shared/page-lh9Rcx_d.cjs +0 -2
  777. package/dist/_shared/page-lh9Rcx_d.cjs.map +0 -1
  778. package/dist/_shared/popover-BTEwjJZS.cjs +0 -2
  779. package/dist/_shared/popover-BTEwjJZS.cjs.map +0 -1
  780. package/dist/_shared/popover-CF9VWt-l.js +0 -83
  781. package/dist/_shared/popover-CF9VWt-l.js.map +0 -1
  782. package/dist/_shared/popover-menu-BYesl29w.js +0 -95
  783. package/dist/_shared/popover-menu-BYesl29w.js.map +0 -1
  784. package/dist/_shared/popover-menu-DF9sWz61.cjs +0 -2
  785. package/dist/_shared/popover-menu-DF9sWz61.cjs.map +0 -1
  786. package/dist/_shared/rich-text-editor-UZghkgsh.cjs +0 -2
  787. package/dist/_shared/rich-text-editor-UZghkgsh.cjs.map +0 -1
  788. package/dist/_shared/rich-text-editor-fUeuK-rY.js +0 -608
  789. package/dist/_shared/rich-text-editor-fUeuK-rY.js.map +0 -1
  790. package/dist/_shared/scroll-area-XJLcCczs.js +0 -41
  791. package/dist/_shared/scroll-area-XJLcCczs.js.map +0 -1
  792. package/dist/_shared/scroll-area-y8ZJoS97.cjs +0 -2
  793. package/dist/_shared/scroll-area-y8ZJoS97.cjs.map +0 -1
  794. package/dist/_shared/select-D8MYF4f7.js +0 -85
  795. package/dist/_shared/select-D8MYF4f7.js.map +0 -1
  796. package/dist/_shared/select-DxAiUfpM.cjs +0 -2
  797. package/dist/_shared/select-DxAiUfpM.cjs.map +0 -1
  798. package/dist/_shared/separator-BazqiQ9s.js +0 -16
  799. package/dist/_shared/separator-BazqiQ9s.js.map +0 -1
  800. package/dist/_shared/separator-DSkXMOXq.cjs +0 -2
  801. package/dist/_shared/separator-DSkXMOXq.cjs.map +0 -1
  802. package/dist/_shared/sheet-7iHOs-IU.js +0 -100
  803. package/dist/_shared/sheet-7iHOs-IU.js.map +0 -1
  804. package/dist/_shared/sheet-qKtoyxgi.cjs +0 -2
  805. package/dist/_shared/sheet-qKtoyxgi.cjs.map +0 -1
  806. package/dist/_shared/sidebar-CaTUJ3t-.js +0 -537
  807. package/dist/_shared/sidebar-CaTUJ3t-.js.map +0 -1
  808. package/dist/_shared/sidebar-DVjfsm-f.cjs +0 -2
  809. package/dist/_shared/sidebar-DVjfsm-f.cjs.map +0 -1
  810. package/dist/_shared/sidebar-aV5DVAVg.js +0 -371
  811. package/dist/_shared/sidebar-aV5DVAVg.js.map +0 -1
  812. package/dist/_shared/sidebar-mL0jSJ8u.cjs +0 -2
  813. package/dist/_shared/sidebar-mL0jSJ8u.cjs.map +0 -1
  814. package/dist/_shared/skeleton-Bwv_j9jJ.cjs +0 -2
  815. package/dist/_shared/skeleton-Bwv_j9jJ.cjs.map +0 -1
  816. package/dist/_shared/skeleton-DyKa-Ed-.js +0 -14
  817. package/dist/_shared/skeleton-DyKa-Ed-.js.map +0 -1
  818. package/dist/_shared/slot-ClIPTht1.cjs +0 -2
  819. package/dist/_shared/slot-ClIPTht1.cjs.map +0 -1
  820. package/dist/_shared/slot-CrS_VEVl.js +0 -18
  821. package/dist/_shared/slot-CrS_VEVl.js.map +0 -1
  822. package/dist/_shared/smart-card-Ddsjvf7r.cjs +0 -2
  823. package/dist/_shared/smart-card-Ddsjvf7r.cjs.map +0 -1
  824. package/dist/_shared/smart-card-hJ01usWt.js +0 -360
  825. package/dist/_shared/smart-card-hJ01usWt.js.map +0 -1
  826. package/dist/_shared/spinner-D-pcMBt1.js +0 -67
  827. package/dist/_shared/spinner-D-pcMBt1.js.map +0 -1
  828. package/dist/_shared/spinner-zbmhn0vE.cjs +0 -2
  829. package/dist/_shared/spinner-zbmhn0vE.cjs.map +0 -1
  830. package/dist/_shared/switch-C5J37LMI.cjs +0 -2
  831. package/dist/_shared/switch-C5J37LMI.cjs.map +0 -1
  832. package/dist/_shared/switch-ClGgHcEb.js +0 -51
  833. package/dist/_shared/switch-ClGgHcEb.js.map +0 -1
  834. package/dist/_shared/textarea-DeISZfHw.js +0 -119
  835. package/dist/_shared/textarea-DeISZfHw.js.map +0 -1
  836. package/dist/_shared/textarea-iR9txrty.cjs +0 -2
  837. package/dist/_shared/textarea-iR9txrty.cjs.map +0 -1
  838. package/dist/_shared/tooltip-CEqxHWxQ.js +0 -49
  839. package/dist/_shared/tooltip-CEqxHWxQ.js.map +0 -1
  840. package/dist/_shared/tooltip-DPv0LGr9.cjs +0 -2
  841. package/dist/_shared/tooltip-DPv0LGr9.cjs.map +0 -1
  842. package/dist/_shared/typography-BtPQBvSm.js +0 -135
  843. package/dist/_shared/typography-BtPQBvSm.js.map +0 -1
  844. package/dist/_shared/typography-DClleVWi.cjs +0 -2
  845. package/dist/_shared/typography-DClleVWi.cjs.map +0 -1
  846. package/dist/showcase/assets/AreaChart-D-RqNtqG.js +0 -6
  847. package/dist/showcase/assets/CSPContext-t69BXyB7.js +0 -1
  848. package/dist/showcase/assets/CompositeItem-DHNLgEeV.js +0 -1
  849. package/dist/showcase/assets/CompositeRoot-xq_0ZFev.js +0 -1
  850. package/dist/showcase/assets/DialogTrigger-Cl7n_3xX.js +0 -1
  851. package/dist/showcase/assets/FormContext-CXdwDz7F.js +0 -1
  852. package/dist/showcase/assets/PreviewLayout-BHemtKEf.js +0 -1
  853. package/dist/showcase/assets/RadioGroup-DXAt4VZN.js +0 -1
  854. package/dist/showcase/assets/Separator-C9vXwWmZ.js +0 -1
  855. package/dist/showcase/assets/ToolbarRootContext-iF4ctnIz.js +0 -1
  856. package/dist/showcase/assets/accordion-DzkNgNcB.js +0 -172
  857. package/dist/showcase/assets/accordion-variants-DP5-oxLe.js +0 -1
  858. package/dist/showcase/assets/action-menu-CyA2e9TF.js +0 -1
  859. package/dist/showcase/assets/activities-Dt-dO5ew.js +0 -501
  860. package/dist/showcase/assets/activities-feed-card-DZdFekXl.js +0 -1
  861. package/dist/showcase/assets/admin-C2SeJmE7.js +0 -80
  862. package/dist/showcase/assets/ai-Cwo0h_Xn.js +0 -41
  863. package/dist/showcase/assets/ai-artifact-3UJofyU5.js +0 -2
  864. package/dist/showcase/assets/ai-chat-CrFtG_Vg.js +0 -568
  865. package/dist/showcase/assets/ai-elements-iJ15Y7pS.js +0 -379
  866. package/dist/showcase/assets/ai-new-DuznZydd.js +0 -167
  867. package/dist/showcase/assets/ai-tool-call-CTcGGAQU.js +0 -1
  868. package/dist/showcase/assets/alert-CUGGckOX.js +0 -1
  869. package/dist/showcase/assets/alert-tWped3Sw.js +0 -59
  870. package/dist/showcase/assets/api-key-list-Q5LAqzMn.js +0 -73
  871. package/dist/showcase/assets/arrow-down-CfwCPcHL.js +0 -1
  872. package/dist/showcase/assets/arrow-left-BKx9qNX6.js +0 -1
  873. package/dist/showcase/assets/arrow-right-DlEpbqEk.js +0 -1
  874. package/dist/showcase/assets/arrow-up-BYQ4F9L1.js +0 -1
  875. package/dist/showcase/assets/arrow-up-right-C8r6vYfE.js +0 -1
  876. package/dist/showcase/assets/avatar-BuZ3zTbH.js +0 -57
  877. package/dist/showcase/assets/avatar-DR2mqPpY.js +0 -1
  878. package/dist/showcase/assets/badge-D1HLfP93.js +0 -28
  879. package/dist/showcase/assets/badge-check-oP2z_95u.js +0 -1
  880. package/dist/showcase/assets/bell-BTX2D-ES.js +0 -1
  881. package/dist/showcase/assets/bot-CKh5XgUG.js +0 -1
  882. package/dist/showcase/assets/box-F1uaZ6iw.js +0 -1
  883. package/dist/showcase/assets/brain-dD_ppLUa.js +0 -1
  884. package/dist/showcase/assets/brand-zisZOFKf.js +0 -40
  885. package/dist/showcase/assets/breadcrumb-C7vv0L8K.js +0 -52
  886. package/dist/showcase/assets/breadcrumb-fay5sLba.js +0 -1
  887. package/dist/showcase/assets/breadcrumbs-DklRXepp.js +0 -1
  888. package/dist/showcase/assets/briefcase-D9M4aNmi.js +0 -1
  889. package/dist/showcase/assets/button-DbhXfR1N.js +0 -44
  890. package/dist/showcase/assets/button-group-BpdhyMif.js +0 -1
  891. package/dist/showcase/assets/buttons-XexbmUtN.js +0 -259
  892. package/dist/showcase/assets/calendar-BADJgjpI.js +0 -16
  893. package/dist/showcase/assets/calendar-Djh3xLVx.js +0 -1
  894. package/dist/showcase/assets/calendar-dWZ2-0gU.js +0 -1
  895. package/dist/showcase/assets/card-BUSAPPkx.js +0 -1
  896. package/dist/showcase/assets/cards-DHBPe01w.js +0 -328
  897. package/dist/showcase/assets/chart-column-6l5wIZ0h.js +0 -1
  898. package/dist/showcase/assets/chevron-down-at2vrt1V.js +0 -1
  899. package/dist/showcase/assets/chevron-left-DIs3WYNO.js +0 -1
  900. package/dist/showcase/assets/chevron-right-BNy0Or0x.js +0 -1
  901. package/dist/showcase/assets/chevron-up-CX7619BJ.js +0 -1
  902. package/dist/showcase/assets/chevrons-up-down-Be6eciau.js +0 -1
  903. package/dist/showcase/assets/circle-C0Yd1DDS.js +0 -1
  904. package/dist/showcase/assets/circle-alert-DfQp_X3_.js +0 -1
  905. package/dist/showcase/assets/circle-check-BkqQe1tv.js +0 -1
  906. package/dist/showcase/assets/circle-check-big-BXxHUhuc.js +0 -1
  907. package/dist/showcase/assets/circle-dot-HeRgxZxN.js +0 -1
  908. package/dist/showcase/assets/circle-question-mark-BgS4fb6N.js +0 -1
  909. package/dist/showcase/assets/circle-x-CMzwDsaf.js +0 -1
  910. package/dist/showcase/assets/clock-ynCzs_rR.js +0 -1
  911. package/dist/showcase/assets/code-xml-B8aVstrJ.js +0 -1
  912. package/dist/showcase/assets/collapsible-C8CKdiRn.js +0 -27
  913. package/dist/showcase/assets/collapsible-u43HxDHB.js +0 -1
  914. package/dist/showcase/assets/combobox-D-6ff0VG.js +0 -622
  915. package/dist/showcase/assets/command-BsHudlBe.js +0 -1
  916. package/dist/showcase/assets/command-DZqmBolX.js +0 -45
  917. package/dist/showcase/assets/comment-composer-OnxlkC5y.js +0 -1
  918. package/dist/showcase/assets/comment-item-DmZ1AJ2Y.js +0 -1
  919. package/dist/showcase/assets/comments-BjIVksjE.js +0 -349
  920. package/dist/showcase/assets/commerce-3T1GxvrA.js +0 -78
  921. package/dist/showcase/assets/commerce-extras-CYv_uRQR.js +0 -179
  922. package/dist/showcase/assets/composite-mol0-2zZ.js +0 -1
  923. package/dist/showcase/assets/contact-card-CWAANJqn.js +0 -65
  924. package/dist/showcase/assets/content-container-D3Phw6h8.js +0 -1
  925. package/dist/showcase/assets/copyable-BdzUH3U3.js +0 -96
  926. package/dist/showcase/assets/course-card-Cb6Y2vJ6.js +0 -113
  927. package/dist/showcase/assets/cpu-CRrekbGQ.js +0 -1
  928. package/dist/showcase/assets/credit-card--5vg7bQy.js +0 -1
  929. package/dist/showcase/assets/currency-VuqnKj_Y.js +0 -149
  930. package/dist/showcase/assets/dark-surfaces-DEyBimFz.js +0 -90
  931. package/dist/showcase/assets/database-Bnvw0wVV.js +0 -1
  932. package/dist/showcase/assets/date-block-IhoCVl_d.js +0 -1
  933. package/dist/showcase/assets/date-picker-DnJpsnaF.js +0 -1
  934. package/dist/showcase/assets/date-pickers-CEbieq-R.js +0 -110
  935. package/dist/showcase/assets/dense-info-B04QmrOd.js +0 -106
  936. package/dist/showcase/assets/dialog-DotEO3IO.js +0 -1
  937. package/dist/showcase/assets/display-hK7Dtm-B.js +0 -392
  938. package/dist/showcase/assets/dist-DQgGKvzA.js +0 -1
  939. package/dist/showcase/assets/dollar-sign-gJtl-XaL.js +0 -1
  940. package/dist/showcase/assets/download-CMrNgeil.js +0 -1
  941. package/dist/showcase/assets/dropdown-menu-Cqv6D7Sb.js +0 -1
  942. package/dist/showcase/assets/dropzone-v69fWHZJ.js +0 -1
  943. package/dist/showcase/assets/ellipsis-CgqPlt6Z.js +0 -1
  944. package/dist/showcase/assets/ellipsis-vertical-CiJqC0n2.js +0 -1
  945. package/dist/showcase/assets/empty-DYHzk-Gb.js +0 -1
  946. package/dist/showcase/assets/empty-item-CTwvC_3M.js +0 -49
  947. package/dist/showcase/assets/empty-state-eUgJ4h41.js +0 -188
  948. package/dist/showcase/assets/enhanced-activities-XU2u5gO6.js +0 -359
  949. package/dist/showcase/assets/esm-B7xAMXnv.js +0 -2
  950. package/dist/showcase/assets/event-calendar-D2rjpzq1.js +0 -138
  951. package/dist/showcase/assets/event-log-BxER62Ds.js +0 -326
  952. package/dist/showcase/assets/example-DPfw-R7_.js +0 -1
  953. package/dist/showcase/assets/external-link-DJNGkjZ0.js +0 -1
  954. package/dist/showcase/assets/eye-BQU3UqWi.js +0 -1
  955. package/dist/showcase/assets/feature-announcement-CjGQEODB.js +0 -34
  956. package/dist/showcase/assets/file-DBpbC8g-.js +0 -1
  957. package/dist/showcase/assets/file-text-DokBif5V.js +0 -1
  958. package/dist/showcase/assets/filters-DM2olMKy.js +0 -78
  959. package/dist/showcase/assets/flag-hAuZbHU1.js +0 -1
  960. package/dist/showcase/assets/folder-open-DqubQ0ts.js +0 -1
  961. package/dist/showcase/assets/form-sizing-CfbZF8Ja.js +0 -1
  962. package/dist/showcase/assets/format-gCABLair.js +0 -1
  963. package/dist/showcase/assets/forms-FsAT0C-I.js +0 -790
  964. package/dist/showcase/assets/generic-BUuo7j09.js +0 -1
  965. package/dist/showcase/assets/getPseudoElementBounds-l8uxcPNL.js +0 -1
  966. package/dist/showcase/assets/gift-CS7Tg3kD.js +0 -1
  967. package/dist/showcase/assets/giftcard-cards-h1ffLs9F.js +0 -85
  968. package/dist/showcase/assets/git-branch-D4-6vv6t.js +0 -1
  969. package/dist/showcase/assets/global-search-BUyhhsQv.js +0 -90
  970. package/dist/showcase/assets/globe-CqLYhUfl.js +0 -1
  971. package/dist/showcase/assets/gradient-card-Bwr9OLIL.js +0 -58
  972. package/dist/showcase/assets/header-notifications-BWla1yhM.js +0 -1
  973. package/dist/showcase/assets/heart-DfZtXfIP.js +0 -1
  974. package/dist/showcase/assets/house-DhIReDt8.js +0 -1
  975. package/dist/showcase/assets/icon-badge-BgRFYZEc.js +0 -1
  976. package/dist/showcase/assets/image-D_eNEZWQ.js +0 -1
  977. package/dist/showcase/assets/inbox-5sFkO7gC.js +0 -1
  978. package/dist/showcase/assets/index-B-Z7p0So.js +0 -10
  979. package/dist/showcase/assets/inertValue-NU_Amr-x.js +0 -1
  980. package/dist/showcase/assets/info-DyB6KH3Z.js +0 -1
  981. package/dist/showcase/assets/inline-stat-D2aaM1Vt.js +0 -1
  982. package/dist/showcase/assets/input-BS64kyoq.js +0 -1
  983. package/dist/showcase/assets/input-DWLyniGt.js +0 -1
  984. package/dist/showcase/assets/input-group-BS8j5Eek.js +0 -47
  985. package/dist/showcase/assets/input-group-B_E_3EGS.js +0 -1
  986. package/dist/showcase/assets/inputs-DOQ2foig.js +0 -49
  987. package/dist/showcase/assets/invoice-header-C2-uQE_s.js +0 -36
  988. package/dist/showcase/assets/invoice-items-BUunRJqA.js +0 -36
  989. package/dist/showcase/assets/invoice-mini-BrLMrzN6.js +0 -14
  990. package/dist/showcase/assets/invoice-table-CaB9Z8jI.js +0 -30
  991. package/dist/showcase/assets/isSameDay-rwvIyLOL.js +0 -1
  992. package/dist/showcase/assets/isToday-CIAzBrb5.js +0 -1
  993. package/dist/showcase/assets/italic-B02a4PdD.js +0 -1
  994. package/dist/showcase/assets/item-C-0RObvI.js +0 -117
  995. package/dist/showcase/assets/item-CCu0Ufaq.js +0 -1
  996. package/dist/showcase/assets/item-DF4m_56j.js +0 -1
  997. package/dist/showcase/assets/kanban-BgW23a7P.js +0 -175
  998. package/dist/showcase/assets/label-MdV7pglj.js +0 -1
  999. package/dist/showcase/assets/layout-containers-nKVReEJB.js +0 -96
  1000. package/dist/showcase/assets/layout-header-CKyxHHPC.js +0 -170
  1001. package/dist/showcase/assets/layout-page-ClD2yMnK.js +0 -122
  1002. package/dist/showcase/assets/layout-sidebar-jdQnYDiT.js +0 -224
  1003. package/dist/showcase/assets/layout-users-Cv849xnU.js +0 -104
  1004. package/dist/showcase/assets/lib-BHW4JERQ.js +0 -1
  1005. package/dist/showcase/assets/lock-B8bfl9sZ.js +0 -1
  1006. package/dist/showcase/assets/mail-DmOBTX4I.js +0 -1
  1007. package/dist/showcase/assets/map-ButgRl8f.js +0 -124
  1008. package/dist/showcase/assets/map-pin-o3egisLq.js +0 -1
  1009. package/dist/showcase/assets/menus-DdXgYKVA.js +0 -89
  1010. package/dist/showcase/assets/message-square-Bl6P4TA0.js +0 -1
  1011. package/dist/showcase/assets/metadata-list-aXo96h_U.js +0 -278
  1012. package/dist/showcase/assets/metric-BLHKuZtE.js +0 -1
  1013. package/dist/showcase/assets/metric-grid-6Dpj5eV3.js +0 -1
  1014. package/dist/showcase/assets/metric-trend-chip-m389ipmG.js +0 -1
  1015. package/dist/showcase/assets/metrics-analytics-bar-B-1IUlHf.js +0 -44
  1016. package/dist/showcase/assets/metrics-analytics-cards-B8tvK_RB.js +0 -77
  1017. package/dist/showcase/assets/metrics-comparison-DKJ7Js3F.js +0 -76
  1018. package/dist/showcase/assets/metrics-heatmap-BlRnJoI0.js +0 -27
  1019. package/dist/showcase/assets/metrics-inline-badge-COI7f64X.js +0 -17
  1020. package/dist/showcase/assets/metrics-kpi-row-LRfmKhsy.js +0 -31
  1021. package/dist/showcase/assets/metrics-micro-grid-DmqIQVVR.js +0 -42
  1022. package/dist/showcase/assets/metrics-overview-Dbf5RM2k.js +0 -192
  1023. package/dist/showcase/assets/metrics-stat-cards-D5oevQvv.js +0 -54
  1024. package/dist/showcase/assets/minus-D-jmUi0G.js +0 -1
  1025. package/dist/showcase/assets/money-display-C__61373.js +0 -1
  1026. package/dist/showcase/assets/month-year-picker-BfBQePUY.js +0 -1
  1027. package/dist/showcase/assets/navigation-DUAe-sQV.js +0 -86
  1028. package/dist/showcase/assets/navigation-extras-itSAf6QT.js +0 -43
  1029. package/dist/showcase/assets/navigation-fAOvwIlP.js +0 -230
  1030. package/dist/showcase/assets/onboarding-checklist-1gmzk3_J.js +0 -119
  1031. package/dist/showcase/assets/overlays-BMTBOIEI.js +0 -88
  1032. package/dist/showcase/assets/overlays-Lu16yJWM.js +0 -393
  1033. package/dist/showcase/assets/package-BIa1hPVQ.js +0 -1
  1034. package/dist/showcase/assets/page-action-button-C5NiQHnP.js +0 -1
  1035. package/dist/showcase/assets/page-header-Cwf9DuhD.js +0 -1
  1036. package/dist/showcase/assets/pagination-9iSNmdCx.js +0 -1
  1037. package/dist/showcase/assets/pagination-MjniF-7j.js +0 -42
  1038. package/dist/showcase/assets/paperclip-CaNLUOIA.js +0 -1
  1039. package/dist/showcase/assets/pencil-DTLGPoc_.js +0 -1
  1040. package/dist/showcase/assets/phone-XvU6LndA.js +0 -1
  1041. package/dist/showcase/assets/plus-BDSCn8ol.js +0 -1
  1042. package/dist/showcase/assets/popover-CvhuubS6.js +0 -1
  1043. package/dist/showcase/assets/popover-DUQqLZN2.js +0 -1
  1044. package/dist/showcase/assets/popover-menu-DVGBuFpL.js +0 -1
  1045. package/dist/showcase/assets/progress-BQopCRpV.js +0 -1
  1046. package/dist/showcase/assets/progress-CvSUR260.js +0 -18
  1047. package/dist/showcase/assets/props-table-BzUnIcv-.js +0 -1
  1048. package/dist/showcase/assets/quote-D55lkoXn.js +0 -1
  1049. package/dist/showcase/assets/receipt-D3ilhl9U.js +0 -1
  1050. package/dist/showcase/assets/refresh-cw-Csl2LQ4l.js +0 -1
  1051. package/dist/showcase/assets/resolveValueLabel-CM5i142y.js +0 -1
  1052. package/dist/showcase/assets/rich-text-editor-Bz7jWvPv.js +0 -124
  1053. package/dist/showcase/assets/rich-text-editor-DWKFpgNI.js +0 -141
  1054. package/dist/showcase/assets/rotate-ccw-BnkpK7eq.js +0 -1
  1055. package/dist/showcase/assets/scroll-area-BTVLd58j.js +0 -1
  1056. package/dist/showcase/assets/scroll-area-CgFEDepJ.js +0 -32
  1057. package/dist/showcase/assets/select-B7-tZDlG.js +0 -1
  1058. package/dist/showcase/assets/send-BhjEdZ06.js +0 -1
  1059. package/dist/showcase/assets/separator-CJayjKGP.js +0 -28
  1060. package/dist/showcase/assets/separator-CZ_sPWQj.js +0 -1
  1061. package/dist/showcase/assets/settings-Duj7gAZe.js +0 -1
  1062. package/dist/showcase/assets/sheet-BMabZ_Gj.js +0 -1
  1063. package/dist/showcase/assets/shield-C22sWOf4.js +0 -1
  1064. package/dist/showcase/assets/shield-alert-DgZ6UO46.js +0 -1
  1065. package/dist/showcase/assets/shield-check-jGSgmijm.js +0 -1
  1066. package/dist/showcase/assets/shopping-bag-Cd09Ga6D.js +0 -1
  1067. package/dist/showcase/assets/sidebar.context-CXTHS3vn.js +0 -1
  1068. package/dist/showcase/assets/skeleton-Dmp4eC1A.js +0 -1
  1069. package/dist/showcase/assets/skeleton-FLNbc7QP.js +0 -29
  1070. package/dist/showcase/assets/smart-card-50WN9sCI.js +0 -1
  1071. package/dist/showcase/assets/sonner-DR_DYpqb.js +0 -22
  1072. package/dist/showcase/assets/sortable.esm-C_l8_Iqt.js +0 -5
  1073. package/dist/showcase/assets/sparkles-C-fyahzv.js +0 -1
  1074. package/dist/showcase/assets/spinner-B8jgVQNj.js +0 -30
  1075. package/dist/showcase/assets/spinner-C4zPRpI0.js +0 -49
  1076. package/dist/showcase/assets/spinner-DFjHsQlR.js +0 -1
  1077. package/dist/showcase/assets/square-pen-Dp7lCfI3.js +0 -1
  1078. package/dist/showcase/assets/stacked-avatars-CTckbUiW.js +0 -1
  1079. package/dist/showcase/assets/star-l00ivfkD.js +0 -1
  1080. package/dist/showcase/assets/startOfDay-Xmododib.js +0 -1
  1081. package/dist/showcase/assets/styles-zuwR0q1z.js +0 -1
  1082. package/dist/showcase/assets/switch-D3LrIrTQ.js +0 -1
  1083. package/dist/showcase/assets/switch-ylXVyh_N.js +0 -1
  1084. package/dist/showcase/assets/table-Cn3-19zb.js +0 -1
  1085. package/dist/showcase/assets/table-ao3IcAnF.js +0 -390
  1086. package/dist/showcase/assets/tabs-CTLQKtiu.js +0 -19
  1087. package/dist/showcase/assets/tabs-lc1fX94A.js +0 -1
  1088. package/dist/showcase/assets/text-button-Fu8UY1A8.js +0 -1
  1089. package/dist/showcase/assets/text-link--EyGasJN.js +0 -1
  1090. package/dist/showcase/assets/textarea-BdhnlNrF.js +0 -1
  1091. package/dist/showcase/assets/textarea-D1kG3a9B.js +0 -1
  1092. package/dist/showcase/assets/timelines-DF3tNgyG.js +0 -186
  1093. package/dist/showcase/assets/toggle-group-CfxuWsv9.js +0 -1
  1094. package/dist/showcase/assets/toggles-CacdBPlV.js +0 -71
  1095. package/dist/showcase/assets/toggles-group-CRhgTGmL.js +0 -32
  1096. package/dist/showcase/assets/trash-2-B0_GprQM.js +0 -1
  1097. package/dist/showcase/assets/trending-up-B202l1b6.js +0 -1
  1098. package/dist/showcase/assets/truck-Bl1pNrHi.js +0 -1
  1099. package/dist/showcase/assets/typography-DEtOxBlR.js +0 -214
  1100. package/dist/showcase/assets/ui-badge-n4RA0J5b.js +0 -28
  1101. package/dist/showcase/assets/ui-card-Ck-kzrTh.js +0 -30
  1102. package/dist/showcase/assets/ui-table-gzOp82pf.js +0 -42
  1103. package/dist/showcase/assets/upload-tray-VvKdTZSi.js +0 -138
  1104. package/dist/showcase/assets/useAnchoredPopupScrollLock-Cu2ZwN7Z.js +0 -1
  1105. package/dist/showcase/assets/useCollapsiblePanel-C6_cdQ7B.js +0 -1
  1106. package/dist/showcase/assets/useCompositeItem-BfUPqXoj.js +0 -1
  1107. package/dist/showcase/assets/useCompositeListItem-Cf2lpKB8.js +0 -1
  1108. package/dist/showcase/assets/useControlled-C6q3nmcf.js +0 -1
  1109. package/dist/showcase/assets/useLabelableId-CfPT16c1.js +0 -1
  1110. package/dist/showcase/assets/useOpenInteractionType-CGeqRuuY.js +0 -1
  1111. package/dist/showcase/assets/useRender-CoUlh0uZ.js +0 -1
  1112. package/dist/showcase/assets/useRole-DSPUSyVX.js +0 -1
  1113. package/dist/showcase/assets/useTriggerFocusGuards-BwZ1HD24.js +0 -1
  1114. package/dist/showcase/assets/useValueChanged-Dej794I1.js +0 -1
  1115. package/dist/showcase/assets/user-3L762Mec.js +0 -1
  1116. package/dist/showcase/assets/user-plus-9WRYjS04.js +0 -1
  1117. package/dist/showcase/assets/users-CxKZ7gt8.js +0 -1
  1118. package/dist/showcase/assets/vendor-profile-BaCptdMF.js +0 -37
  1119. package/dist/showcase/assets/wrench-Duh91tnW.js +0 -1
  1120. package/dist/showcase/assets/x-t42iKYpL.js +0 -1
  1121. package/dist/showcase/assets/zap-D0z3Tv_L.js +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smart-card-MT6JjkoI.js","names":[],"sources":["../../src/components/ui/card.tsx","../../src/components/base/cards/smart-card.tokens.ts","../../src/components/base/cards/partials/has-renderable-content.ts","../../src/components/base/cards/partials/card-primitives.tsx","../../src/components/base/cards/partials/smart-card-alert.tsx","../../src/components/base/cards/partials/smart-card-actions-menu.tsx","../../src/components/base/cards/partials/smart-card-header-row.tsx","../../src/components/base/cards/smart-card.strings.ts","../../src/components/base/cards/partials/smart-card-skeleton.tsx","../../src/components/base/cards/smart-card.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Card({\n className,\n size = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & { size?: \"default\" | \"sm\" }) {\n return (\n <div\n data-slot=\"card\"\n data-size={size}\n className={cn(\"ring-foreground/10 bg-card text-card-foreground gap-6 overflow-hidden rounded-xl py-6 text-sm shadow-xs ring-1 has-[>img:first-child]:pt-0 data-[size=sm]:gap-4 data-[size=sm]:py-4 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl group/card flex flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-header\"\n className={cn(\n \"gap-1 rounded-t-xl px-6 group-data-[size=sm]/card:px-4 [.border-b]:pb-6 group-data-[size=sm]/card:[.border-b]:pb-4 group/card-header @container/card-header grid auto-rows-min items-start has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto]\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-title\"\n className={cn(\"text-base leading-normal font-medium group-data-[size=sm]/card:text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-action\"\n className={cn(\n \"col-start-2 row-span-2 row-start-1 self-start justify-self-end\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-content\"\n className={cn(\"px-6 group-data-[size=sm]/card:px-4\", className)}\n {...props}\n />\n )\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-footer\"\n className={cn(\"rounded-b-xl px-6 group-data-[size=sm]/card:px-4 [.border-t]:pt-6 group-data-[size=sm]/card:[.border-t]:pt-4 flex items-center\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardAction,\n CardDescription,\n CardContent,\n}\n","import { cn } from '@/lib/utils';\n\nimport type { CardPadding, SmartCardSurface } from './smart-card.types';\n\n/**\n * BEM-style hooks applied to every SmartCard subregion. Library\n * consumers can target them in CSS / tests / analytics without\n * relying on shadcn's data-slot attributes (which are framework\n * internals). Keep these names consistent — they are part of the\n * public DOM contract.\n */\nexport const CARD_BEM = {\n\troot: 'card--component',\n\theader: 'card--header',\n\ttitle: 'card--title',\n\tdescription: 'card--description',\n\tcontent: 'card--content',\n\tfooter: 'card--footer',\n\talert: 'card--alert',\n} as const;\n\ninterface PaddingTokens {\n\tshell: string;\n\theaderX: string;\n\tcontentX: string;\n\tcontentY: string;\n\tfooterX: string;\n\talertX: string;\n\t/** Vertical offset applied when alert sits BELOW the header (pulls it up). */\n\talertOffsetWithHeader: string;\n\t/** Vertical spacing applied when alert is the first content (no header). */\n\talertOffsetStandalone: string;\n}\n\nexport const PADDING: Record<CardPadding, PaddingTokens> = {\n\tsm: {\n\t\tshell: 'gap-3 py-4',\n\t\theaderX: 'px-4',\n\t\tcontentX: 'px-4',\n\t\tcontentY: 'py-2',\n\t\tfooterX: 'px-4',\n\t\talertX: 'px-4',\n\t\talertOffsetWithHeader: '-mt-2',\n\t\talertOffsetStandalone: 'mt-1',\n\t},\n\tbase: {\n\t\tshell: 'gap-4 py-6',\n\t\theaderX: 'px-6',\n\t\tcontentX: 'px-6',\n\t\tcontentY: 'py-0',\n\t\tfooterX: 'px-6',\n\t\talertX: 'px-6',\n\t\talertOffsetWithHeader: '-mt-3',\n\t\talertOffsetStandalone: 'mt-2',\n\t},\n\tlg: {\n\t\tshell: 'gap-5 py-8',\n\t\theaderX: 'px-8',\n\t\tcontentX: 'px-8',\n\t\tcontentY: 'py-2',\n\t\tfooterX: 'px-8',\n\t\talertX: 'px-8',\n\t\talertOffsetWithHeader: '-mt-4',\n\t\talertOffsetStandalone: 'mt-3',\n\t},\n};\n\n/**\n * Surface-specific shell classes. The `framed` variant uses a soft 5px\n * outer border tinted from `--border` plus a 1px hairline inner border\n * drawn via the `before:` pseudo-element. All values flow through theme\n * tokens — no raw hex.\n */\nexport const SURFACE_CLASSES: Record<SmartCardSurface, string> = {\n\tcard: 'bg-card text-card-foreground rounded-xl border border-border shadow-sm',\n\tflat: 'bg-transparent text-card-foreground border-none shadow-none',\n\tframed: cn(\n\t\t'relative bg-card text-card-foreground',\n\t\t// Outer soft border: 5px, low-alpha tint of theme border.\n\t\t'border-[5px] border-border/30 rounded-2xl',\n\t\t// Inner hairline border drawn 5px inside the outer (matches the\n\t\t// border-thickness offset). Pure shadcn tokens (`border-border`\n\t\t// + `bg-card`) so it picks up the active theme.\n\t\t'before:pointer-events-none before:absolute before:inset-0 before:rounded-xl before:border before:border-border/60 before:shadow-[2px_2px_2px_3px_rgb(0_0_0/0.02)] before:content-[\"\"]',\n\t),\n};\n","import { Fragment, isValidElement, type ReactNode } from 'react';\n\n/**\n * Predicate used by SmartCard subregions to decide whether each slot\n * warrants rendering its wrapper. Numbers (incl. `0`) and JSX always\n * render; falsy / empty-string content is treated as absent. Fragments\n * recurse into their children.\n */\nexport function hasRenderableContent(content?: ReactNode): boolean {\n\tif (content === null || content === undefined) return false;\n\tif (typeof content === 'boolean') return false;\n\tif (typeof content === 'string') return content.trim().length > 0;\n\tif (typeof content === 'number' || typeof content === 'bigint') return true;\n\tif (Array.isArray(content)) return content.some(hasRenderableContent);\n\tif (isValidElement<{ children?: ReactNode }>(content)) {\n\t\tif (content.type === Fragment) return hasRenderableContent(content.props.children);\n\t\treturn true;\n\t}\n\treturn true;\n}\n","/**\n * Internal layout primitives — re-exported from `smart-card.tsx` for\n * advanced composition (deeply customised layouts that still want the\n * design-system surface tokens). Each primitive is intentionally thin:\n * a single responsibility, a single set of default classes, no business\n * logic. The BEM hooks (`card--component`, `card--header`, etc.) are\n * applied here so the public DOM contract lives in one place.\n */\nimport {\n\ttype ComponentPropsWithRef,\n\ttype ComponentPropsWithoutRef,\n} from 'react';\n\nimport {\n\tCard as CardPrimitive,\n\tCardContent as CardContentPrimitive,\n\tCardDescription as CardDescriptionPrimitive,\n\tCardFooter as CardFooterPrimitive,\n\tCardHeader as CardHeaderPrimitive,\n\tCardTitle as CardTitlePrimitive,\n} from '@/components/ui/card';\nimport Text from '@/components/typography/text';\nimport { cn } from '@/lib/utils';\n\nimport { CARD_BEM } from '../smart-card.tokens';\n\nimport { hasRenderableContent } from './has-renderable-content';\n\nexport function CardShell({ className, ...props }: ComponentPropsWithRef<'div'>) {\n\treturn (\n\t\t<CardPrimitive\n\t\t\tclassName={cn(\n\t\t\t\tCARD_BEM.root,\n\t\t\t\t'flex flex-col gap-6 py-6 ring-0',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function CardHeader({\n\tclassName,\n\t...props\n}: ComponentPropsWithoutRef<'div'>) {\n\treturn (\n\t\t<CardHeaderPrimitive\n\t\t\tclassName={cn(CARD_BEM.header, 'flex flex-col gap-0.5 px-6', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function CardTitle({\n\tclassName,\n\tchildren,\n\t...props\n}: ComponentPropsWithoutRef<'div'>) {\n\tif (!hasRenderableContent(children)) return null;\n\n\tconst isPlainText =\n\t\ttypeof children === 'string' ||\n\t\ttypeof children === 'number' ||\n\t\ttypeof children === 'bigint';\n\n\tif (!isPlainText) {\n\t\treturn (\n\t\t\t<CardTitlePrimitive\n\t\t\t\tclassName={cn(CARD_BEM.title, 'leading-none font-semibold', className)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</CardTitlePrimitive>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Text\n\t\t\tdata-slot=\"card-title\"\n\t\t\ttag=\"div\"\n\t\t\tweight=\"semibold\"\n\t\t\tlineHeight=\"none\"\n\t\t\tclassName={cn(CARD_BEM.title, 'leading-none font-semibold', className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t</Text>\n\t);\n}\n\nexport function CardDescription({\n\tclassName,\n\tchildren,\n\t...props\n}: ComponentPropsWithoutRef<'div'>) {\n\tif (!hasRenderableContent(children)) return null;\n\n\tconst isPlainText =\n\t\ttypeof children === 'string' ||\n\t\ttypeof children === 'number' ||\n\t\ttypeof children === 'bigint';\n\n\tif (!isPlainText) {\n\t\treturn (\n\t\t\t<CardDescriptionPrimitive\n\t\t\t\tclassName={cn(\n\t\t\t\t\tCARD_BEM.description,\n\t\t\t\t\t'text-muted-foreground text-sm',\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</CardDescriptionPrimitive>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Text\n\t\t\tdata-slot=\"card-description\"\n\t\t\ttag=\"div\"\n\t\t\ttype=\"secondary\"\n\t\t\tclassName={cn(\n\t\t\t\tCARD_BEM.description,\n\t\t\t\t'text-muted-foreground text-sm',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t</Text>\n\t);\n}\n\nexport function CardContent({\n\tclassName,\n\t...props\n}: ComponentPropsWithoutRef<'div'>) {\n\treturn (\n\t\t<CardContentPrimitive\n\t\t\tclassName={cn(CARD_BEM.content, 'px-6', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function CardFooter({\n\tclassName,\n\t...props\n}: ComponentPropsWithoutRef<'div'>) {\n\treturn (\n\t\t<CardFooterPrimitive\n\t\t\tclassName={cn(CARD_BEM.footer, 'flex items-center px-6', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n","/**\n * Inline alert banner rendered between the header and the card body.\n * Pulls itself up under the header (`alertOffsetWithHeader`) when one\n * exists so the visual gap between header bottom and alert top stays\n * tight; otherwise pushes itself down (`alertOffsetStandalone`) so it\n * doesn't kiss the card top edge.\n */\nimport type { ReactNode } from 'react';\n\nimport { Alert, AlertDescription } from '@/components/base/display/alert';\nimport { cn } from '@/lib/utils';\n\nimport { CARD_BEM, PADDING } from '../smart-card.tokens';\nimport type { CardAlertVariant, CardPadding } from '../smart-card.types';\n\ninterface AlertSlotProps {\n\talert: ReactNode | string;\n\talertVariant: CardAlertVariant;\n\thasHeader: boolean;\n\tpadding: CardPadding;\n}\n\nexport function SmartCardAlert({\n\talert,\n\talertVariant,\n\thasHeader,\n\tpadding,\n}: AlertSlotProps) {\n\tconst tokens = PADDING[padding];\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\tCARD_BEM.alert,\n\t\t\t\ttokens.alertX,\n\t\t\t\thasHeader ? tokens.alertOffsetWithHeader : tokens.alertOffsetStandalone,\n\t\t\t)}\n\t\t>\n\t\t\t<Alert variant={alertVariant}>\n\t\t\t\t<AlertDescription>{alert}</AlertDescription>\n\t\t\t</Alert>\n\t\t</div>\n\t);\n}\n","/**\n * SmartCard actions menu — `⋮` trigger + dropdown of consumer-supplied\n * `SmartCardAction` items. Always renders a 28×28 square trigger so it\n * reads cleanly as a circle (consumer overrides to `rounded-full`) or\n * a rectangle (default `rounded-md`).\n */\nimport { MoreHorizontal } from 'lucide-react';\n\nimport {\n\tDropdownMenu,\n\tDropdownMenuContent,\n\tDropdownMenuItem,\n\tDropdownMenuTrigger,\n} from '@/components/ui/dropdown-menu';\nimport { cn } from '@/lib/utils';\n\nimport type { SmartCardAction } from '../smart-card.types';\n\ninterface ActionsMenuProps {\n\tactions: SmartCardAction[];\n\tactionsLabel: string;\n}\n\nexport function ActionsMenu({ actions, actionsLabel }: ActionsMenuProps) {\n\treturn (\n\t\t<DropdownMenu>\n\t\t\t<DropdownMenuTrigger\n\t\t\t\ttype=\"button\"\n\t\t\t\taria-label={actionsLabel}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'inline-flex size-7 shrink-0 items-center justify-center rounded-md p-0',\n\t\t\t\t\t'text-muted-foreground hover:bg-accent hover:text-accent-foreground',\n\t\t\t\t\t'outline-none focus-visible:ring-2 focus-visible:ring-ring/50',\n\t\t\t\t\t'transition-colors',\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<MoreHorizontal className=\"size-4\" />\n\t\t\t</DropdownMenuTrigger>\n\t\t\t<DropdownMenuContent align=\"end\" className=\"min-w-[140px]\">\n\t\t\t\t{actions.map((action, index) => (\n\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\tkey={action.id ?? `${action.label}-${index}`}\n\t\t\t\t\t\tonClick={action.onClick}\n\t\t\t\t\t\tdisabled={action.disabled}\n\t\t\t\t\t\tclassName=\"gap-1.5 px-2 py-1 text-xs\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{!!action.icon && (\n\t\t\t\t\t\t\t<span className=\"flex shrink-0 items-center\">{action.icon}</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{action.label}\n\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t))}\n\t\t\t</DropdownMenuContent>\n\t\t</DropdownMenu>\n\t);\n}\n","/**\n * SmartCardHeaderRow — the chrome above the card body. Combines icon /\n * title / description / tooltip / suffix on the leading side with the\n * trailing `headerEnd` / `headerAction` slots and the actions menu.\n *\n * `TooltipTrigger_Info` is colocated here because it's only used by the\n * header — keeping it private avoids polluting the public partial\n * surface.\n */\nimport { Info } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport { Button } from '@/components/base/buttons';\nimport {\n\tTooltip,\n\tTooltipContent,\n\tTooltipTrigger,\n} from '@/components/base/display/tooltip';\nimport { cn } from '@/lib/utils';\n\nimport { PADDING } from '../smart-card.tokens';\nimport type { CardPadding, SmartCardAction } from '../smart-card.types';\n\nimport { CardHeader, CardTitle, CardDescription } from './card-primitives';\nimport { hasRenderableContent } from './has-renderable-content';\nimport { ActionsMenu } from './smart-card-actions-menu';\n\nfunction TooltipTrigger_Info({ tooltipLabel }: { tooltipLabel: string }) {\n\treturn (\n\t\t<TooltipTrigger\n\t\t\trender={(triggerProps) => {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\tconst passthrough = triggerProps as Record<string, any>;\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\t{...passthrough}\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\tsize=\"icon-xs\"\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'h-5 w-5 text-muted-foreground',\n\t\t\t\t\t\t\tpassthrough.className,\n\t\t\t\t\t\t)}\n\t\t\t\t\t\taria-label={tooltipLabel}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Info className=\"size-3.5\" />\n\t\t\t\t\t</Button>\n\t\t\t\t);\n\t\t\t}}\n\t\t/>\n\t);\n}\n\ninterface HeaderProps {\n\ticon?: ReactNode;\n\ttitle?: ReactNode;\n\ttitleSuffix?: ReactNode;\n\tdescription?: ReactNode;\n\ttooltip?: ReactNode;\n\ttooltipLabel: string;\n\theaderStart?: ReactNode;\n\theaderEnd?: ReactNode;\n\theaderAction?: ReactNode;\n\tactions?: SmartCardAction[];\n\tactionsLabel: string;\n\tpadding: CardPadding;\n\tclassName?: string;\n}\n\nexport function SmartCardHeaderRow({\n\ticon,\n\ttitle,\n\ttitleSuffix,\n\tdescription,\n\ttooltip,\n\ttooltipLabel,\n\theaderStart,\n\theaderEnd,\n\theaderAction,\n\tactions,\n\tactionsLabel,\n\tpadding,\n\tclassName,\n}: HeaderProps) {\n\tconst cardActions = Array.isArray(actions) ? actions : [];\n\tconst hasActions = cardActions.length > 0;\n\n\tconst hasIcon = hasRenderableContent(icon);\n\tconst hasTitle = hasRenderableContent(title);\n\tconst hasTitleSuffix = hasRenderableContent(titleSuffix);\n\tconst hasDescription = hasRenderableContent(description);\n\tconst hasTooltip = hasRenderableContent(tooltip);\n\tconst hasHeaderStart = hasRenderableContent(headerStart);\n\tconst hasHeaderEnd = hasRenderableContent(headerEnd);\n\tconst hasHeaderAction = hasRenderableContent(headerAction);\n\n\tconst showTitleRow = hasIcon || hasTitle || hasTitleSuffix || hasTooltip;\n\tconst showTrailing = hasHeaderEnd || hasHeaderAction || hasActions;\n\n\treturn (\n\t\t<CardHeader\n\t\t\tclassName={cn(\n\t\t\t\t'flex-row items-start justify-between gap-3 pb-0',\n\t\t\t\tPADDING[padding].headerX,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<div className=\"flex min-w-0 flex-1 flex-col gap-0.5\">\n\t\t\t\t{!!hasHeaderStart && headerStart}\n\n\t\t\t\t{!!showTitleRow && (\n\t\t\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t\t\t{!!hasIcon && (\n\t\t\t\t\t\t\t<span className=\"flex shrink-0 items-center text-muted-foreground\">\n\t\t\t\t\t\t\t\t{icon}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<CardTitle>{title}</CardTitle>\n\t\t\t\t\t\t{!!hasTitleSuffix && (\n\t\t\t\t\t\t\t<div className=\"flex items-center gap-2\">{titleSuffix}</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{!!hasTooltip && (\n\t\t\t\t\t\t\t<Tooltip>\n\t\t\t\t\t\t\t\t<TooltipTrigger_Info tooltipLabel={tooltipLabel} />\n\t\t\t\t\t\t\t\t<TooltipContent>{tooltip}</TooltipContent>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{!!hasDescription && (\n\t\t\t\t\t<CardDescription className=\"text-left\">{description}</CardDescription>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t{!!showTrailing && (\n\t\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t\t{!!hasHeaderEnd && headerEnd}\n\t\t\t\t\t{!!hasHeaderAction && headerAction}\n\t\t\t\t\t{!!hasActions && (\n\t\t\t\t\t\t<ActionsMenu actions={cardActions} actionsLabel={actionsLabel} />\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</CardHeader>\n\t);\n}\n","/**\n * SmartCard strings — i18n surface for the chrome the consumer doesn't\n * pass directly. Most copy (title, description, action labels, alert\n * body) flows in via props; the strings here cover the implicit\n * affordances (expand toggle).\n */\n\nexport interface SmartCardStrings {\n\texpandLabel: string;\n\tcollapseLabel: string;\n}\n\nexport const defaultSmartCardStrings: SmartCardStrings = {\n\texpandLabel: 'Expand card',\n\tcollapseLabel: 'Collapse card',\n};\n","/**\n * SmartCardSkeleton — placeholder shell rendered while a SmartCard's\n * data is loading. Picks up the canonical card surface so the loading\n * state visually matches the eventual `SmartCard` it'll replace.\n */\nimport type { ReactNode } from 'react';\n\nimport { cn } from '@/lib/utils';\n\nimport { SURFACE_CLASSES } from '../smart-card.tokens';\n\nimport {\n\tCardContent,\n\tCardHeader,\n\tCardShell,\n\tCardTitle,\n} from './card-primitives';\n\nexport interface SmartCardSkeletonProps {\n\ttitle?: ReactNode;\n\tlines?: number;\n\tclassName?: string;\n}\n\nexport function SmartCardSkeleton({\n\ttitle,\n\tlines = 2,\n\tclassName,\n}: SmartCardSkeletonProps) {\n\tconst SkeletonBar = ({ barClassName }: { barClassName?: string }) => (\n\t\t<div className={cn('animate-pulse rounded bg-muted', barClassName)} />\n\t);\n\n\treturn (\n\t\t<CardShell className={cn(SURFACE_CLASSES.card, 'gap-4 py-6', className)}>\n\t\t\t<CardHeader className=\"flex-col gap-1.5 px-6 pb-0\">\n\t\t\t\t{title ? <CardTitle>{title}</CardTitle> : <SkeletonBar barClassName=\"h-4 w-32\" />}\n\t\t\t</CardHeader>\n\t\t\t<CardContent className=\"space-y-3 px-6 py-0\">\n\t\t\t\t{Array.from({ length: lines }, (_, i) => (\n\t\t\t\t\t<SkeletonBar\n\t\t\t\t\t\tkey={`skel-${String(i)}`}\n\t\t\t\t\t\tbarClassName={cn('h-4', i === 0 ? 'w-full' : 'w-3/4')}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t\t</CardContent>\n\t\t</CardShell>\n\t);\n}\n\nSmartCardSkeleton.displayName = 'SmartCardSkeleton';\n","/**\n * SmartCard — composed card with header (icon, title, suffix, description,\n * tooltip), actions menu, alert banner, header / content / footer slots,\n * surface variants (card / flat / framed), and an opt-in expandable body.\n *\n * The single card primitive everything else builds on — never reach past it\n * to shadcn `Card` directly. The CardShell / CardHeader / CardTitle /\n * CardDescription / CardContent / CardFooter primitives are re-exported\n * for advanced composition (deeply customised layouts that still want the\n * design-system surface tokens). Each subregion paints a BEM-style hook\n * (`card--component`, `card--header`, `card--title`, …) for CSS / test /\n * analytics targeting independent of shadcn's data-slot internals.\n *\n * The file is a thin orchestrator. The actual chrome lives in:\n * - `./smart-card.types.ts` — public prop / variant types\n * - `./smart-card.strings.ts` — i18n (expand toggle copy)\n * - `./smart-card.tokens.ts` — PADDING + SURFACE_CLASSES + CARD_BEM\n * - `./partials/card-primitives.tsx` — CardShell + CardHeader / Title /\n * Description / Content / Footer\n * - `./partials/smart-card-header-row.tsx` — header layout + actions menu\n * - `./partials/smart-card-alert.tsx` — inline alert banner\n * - `./partials/smart-card-actions-menu.tsx` — `⋮` dropdown\n * - `./partials/smart-card-skeleton.tsx` — loading placeholder\n * - `./partials/has-renderable-content.ts` — slot-empty predicate\n */\nimport { ChevronDown } from 'lucide-react';\nimport {\n\ttype CSSProperties,\n\tforwardRef,\n\tuseCallback,\n\tuseState,\n} from 'react';\n\nimport { useCardConfig } from '@/lib/ui-provider';\nimport { cn } from '@/lib/utils';\n\nimport {\n\tCardContent,\n\tCardFooter,\n\tCardShell,\n} from './partials/card-primitives';\nimport { hasRenderableContent } from './partials/has-renderable-content';\nimport { SmartCardAlert } from './partials/smart-card-alert';\nimport { SmartCardHeaderRow } from './partials/smart-card-header-row';\nimport {\n\tdefaultSmartCardStrings,\n\ttype SmartCardStrings,\n} from './smart-card.strings';\nimport {\n\tPADDING,\n\tSURFACE_CLASSES,\n} from './smart-card.tokens';\nimport type {\n\tCardPadding,\n\tSmartCardProps,\n\tSmartCardSurface,\n} from './smart-card.types';\n\nexport const SmartCard = forwardRef<HTMLDivElement, SmartCardProps>(function SmartCard({\n\ticon,\n\ttitle,\n\ttitleSuffix,\n\tdescription,\n\ttooltip,\n\ttooltipAriaLabel = 'Card info',\n\tfooterText,\n\talert,\n\talertVariant = 'default',\n\tsurface,\n\ttransparent = false,\n\tpadding,\n\tactions,\n\tactionsLabel = 'Card actions',\n\theaderAction,\n\theaderStart,\n\theaderEnd,\n\tcontentTop,\n\tcontentBottom,\n\tfooterSlot,\n\theaderDivider = false,\n\tfooterDivider = false,\n\texpandable = false,\n\tdefaultExpanded = false,\n\texpanded: expandedProp,\n\tonExpandedChange,\n\tchildren,\n\tclassName,\n\theaderClassName,\n\tcontentClassName,\n\tfooterClassName,\n\tstrings: stringsProp,\n}, ref) {\n\tconst { defaultPadding } = useCardConfig();\n\tconst resolvedPadding: CardPadding = padding ?? defaultPadding ?? 'sm';\n\tconst tokens = PADDING[resolvedPadding];\n\tconst cardActions = Array.isArray(actions) ? actions : [];\n\tconst strings: SmartCardStrings = {\n\t\t...defaultSmartCardStrings,\n\t\t...stringsProp,\n\t};\n\n\tconst isExpandable = expandable !== false && expandable !== undefined;\n\tconst collapsedMaxHeightRaw =\n\t\ttypeof expandable === 'object' && expandable?.collapsedMaxHeight !== undefined\n\t\t\t? expandable.collapsedMaxHeight\n\t\t\t: '12rem';\n\tconst collapsedMaxHeight =\n\t\ttypeof collapsedMaxHeightRaw === 'number'\n\t\t\t? `${collapsedMaxHeightRaw}px`\n\t\t\t: collapsedMaxHeightRaw;\n\n\tconst isExpandedControlled = expandedProp !== undefined;\n\tconst [internalExpanded, setInternalExpanded] = useState(defaultExpanded);\n\tconst expanded = isExpandedControlled ? expandedProp : internalExpanded;\n\tconst handleToggle = useCallback(() => {\n\t\tconst next = !expanded;\n\t\tif (!isExpandedControlled) setInternalExpanded(next);\n\t\tonExpandedChange?.(next);\n\t}, [expanded, isExpandedControlled, onExpandedChange]);\n\n\tconst hasHeader =\n\t\thasRenderableContent(icon) ||\n\t\thasRenderableContent(title) ||\n\t\thasRenderableContent(description) ||\n\t\tcardActions.length > 0 ||\n\t\thasRenderableContent(headerAction) ||\n\t\thasRenderableContent(headerStart) ||\n\t\thasRenderableContent(headerEnd);\n\n\tconst hasAlert = hasRenderableContent(alert);\n\tconst hasFooterText = hasRenderableContent(footerText);\n\tconst hasFooterSlot = hasRenderableContent(footerSlot);\n\tconst hasContentTop = hasRenderableContent(contentTop);\n\tconst hasContentBottom = hasRenderableContent(contentBottom);\n\n\tconst tooltipLabel =\n\t\ttooltipAriaLabel.trim().length > 0 ? tooltipAriaLabel : 'Card info';\n\n\tconst collapseStyle: CSSProperties | undefined = isExpandable\n\t\t? {\n\t\t\t\tmaxHeight: expanded ? '' : collapsedMaxHeight,\n\t\t\t}\n\t\t: undefined;\n\n\t// Resolve surface — explicit `surface` wins, else legacy `transparent`,\n\t// else the default `'card'` chrome.\n\tconst resolvedSurface: SmartCardSurface = surface ?? (transparent ? 'flat' : 'card');\n\n\treturn (\n\t\t<CardShell\n\t\t\tref={ref}\n\t\t\tdata-surface={resolvedSurface}\n\t\t\tclassName={cn(\n\t\t\t\tSURFACE_CLASSES[resolvedSurface],\n\t\t\t\ttokens.shell,\n\t\t\t\t// `isExpandable` parks the chevron at `-bottom-4` outside the\n\t\t\t\t// shell — `overflow-visible` lets it render past the card\n\t\t\t\t// edge, otherwise the shadcn primitive's `overflow-hidden`\n\t\t\t\t// clips it.\n\t\t\t\tisExpandable && 'relative pb-1 !overflow-visible',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{!!hasHeader && (\n\t\t\t\t<SmartCardHeaderRow\n\t\t\t\t\ticon={icon}\n\t\t\t\t\ttitle={title}\n\t\t\t\t\ttitleSuffix={titleSuffix}\n\t\t\t\t\tdescription={description}\n\t\t\t\t\ttooltip={tooltip}\n\t\t\t\t\ttooltipLabel={tooltipLabel}\n\t\t\t\t\theaderStart={headerStart}\n\t\t\t\t\theaderEnd={headerEnd}\n\t\t\t\t\theaderAction={headerAction}\n\t\t\t\t\tactions={cardActions}\n\t\t\t\t\tactionsLabel={actionsLabel}\n\t\t\t\t\tpadding={resolvedPadding}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\theaderDivider && 'pb-3 border-b border-border/60',\n\t\t\t\t\t\theaderClassName,\n\t\t\t\t\t)}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t{!!hasAlert && (\n\t\t\t\t<SmartCardAlert\n\t\t\t\t\talert={alert}\n\t\t\t\t\talertVariant={alertVariant}\n\t\t\t\t\thasHeader={hasHeader}\n\t\t\t\t\tpadding={resolvedPadding}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t<CardContent\n\t\t\t\tclassName={cn(\n\t\t\t\t\ttokens.contentX,\n\t\t\t\t\ttokens.contentY,\n\t\t\t\t\tisExpandable &&\n\t\t\t\t\t\t'relative overflow-hidden transition-[max-height] duration-500 ease-in-out',\n\t\t\t\t\tcontentClassName,\n\t\t\t\t)}\n\t\t\t\tstyle={collapseStyle}\n\t\t\t>\n\t\t\t\t{!!hasContentTop && contentTop}\n\t\t\t\t{children}\n\t\t\t\t{!!hasContentBottom && contentBottom}\n\n\t\t\t\t{!!isExpandable && !expanded && (\n\t\t\t\t\t<div\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\tclassName=\"from-background pointer-events-none absolute inset-x-0 bottom-0 h-20 rounded-b-lg bg-linear-to-t to-transparent\"\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</CardContent>\n\n\t\t\t{!!hasFooterText && (\n\t\t\t\t<CardFooter\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'justify-end text-xs text-muted-foreground',\n\t\t\t\t\t\ttokens.footerX,\n\t\t\t\t\t\tfooterDivider && 'pt-3 border-t border-border/60',\n\t\t\t\t\t\tfooterClassName,\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{footerText}\n\t\t\t\t</CardFooter>\n\t\t\t)}\n\n\t\t\t{!!hasFooterSlot && (\n\t\t\t\t<CardFooter\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'flex-col items-stretch',\n\t\t\t\t\t\ttokens.footerX,\n\t\t\t\t\t\tfooterDivider && 'pt-3 border-t border-border/60',\n\t\t\t\t\t\tfooterClassName,\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{footerSlot}\n\t\t\t\t</CardFooter>\n\t\t\t)}\n\n\t\t\t{!!isExpandable && (\n\t\t\t\t<div className=\"absolute -bottom-4 left-1/2 -translate-x-1/2 z-10\">\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tonClick={handleToggle}\n\t\t\t\t\t\taria-expanded={expanded}\n\t\t\t\t\t\taria-label={expanded ? strings.collapseLabel : strings.expandLabel}\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'inline-flex size-8 items-center justify-center rounded-full',\n\t\t\t\t\t\t\t'border border-border bg-background text-foreground shadow-sm',\n\t\t\t\t\t\t\t'hover:bg-muted/40 transition-colors',\n\t\t\t\t\t\t\t'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/50',\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ChevronDown\n\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'size-4 transition-transform duration-300',\n\t\t\t\t\t\t\t\texpanded && 'rotate-180',\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span className=\"sr-only\">\n\t\t\t\t\t\t\t{expanded ? strings.collapseLabel : strings.expandLabel}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</CardShell>\n\t);\n});\n\nSmartCard.displayName = 'SmartCard';\n\n// ──────────────────────────────────────────────────────────────────────────\n// Re-exports — public surface lives here so `import { ... } from\n// '@/components/base/cards'` keeps working through the file split.\n// ──────────────────────────────────────────────────────────────────────────\n\nexport {\n\tdefaultSmartCardStrings,\n\ttype SmartCardStrings,\n} from './smart-card.strings';\nexport type {\n\tCardAlertVariant,\n\tCardPadding,\n\tSmartCardAction,\n\tSmartCardProps,\n\tSmartCardSkeletonProps,\n\tSmartCardSurface,\n} from './smart-card.types';\nexport {\n\tCardContent,\n\tCardDescription,\n\tCardFooter,\n\tCardHeader,\n\tCardShell,\n\tCardTitle,\n} from './partials/card-primitives';\nexport { SmartCardSkeleton } from './partials/smart-card-skeleton';\n"],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import { d as e } from "./ui-provider-4qKSKMPd.js";
2
+ import { cn as t } from "../lib/utils.js";
3
+ import { t as n } from "./text-DIxMTECE.js";
4
+ import { forwardRef as r } from "react";
5
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
6
+ //#region src/components/base/spinner/spinner.tsx
7
+ var o = r(function({ label: r, className: o = "", variant: u, style: d }, f) {
8
+ let { defaultVariant: p } = e(), m = u ?? p ?? "default";
9
+ return /* @__PURE__ */ i("div", {
10
+ ref: f,
11
+ className: t("spinner--component", "flex items-center justify-center p-8"),
12
+ style: d,
13
+ children: /* @__PURE__ */ a("div", {
14
+ className: "flex flex-col items-center justify-center gap-2 text-center",
15
+ children: [
16
+ m === "default" && /* @__PURE__ */ i(s, { className: o }),
17
+ m === "shimmer" && /* @__PURE__ */ i(c, { className: o }),
18
+ m === "progress" && /* @__PURE__ */ i(l, { className: o }),
19
+ !!r && /* @__PURE__ */ i(n, {
20
+ type: "secondary",
21
+ children: r
22
+ })
23
+ ]
24
+ })
25
+ });
26
+ });
27
+ o.displayName = "Spinner";
28
+ function s({ className: e = "" }) {
29
+ return /* @__PURE__ */ a("svg", {
30
+ className: t("h-10 w-10 text-primary", e),
31
+ fill: "currentColor",
32
+ viewBox: "0 0 24 24",
33
+ xmlns: "http://www.w3.org/2000/svg",
34
+ "aria-hidden": "true",
35
+ children: [/* @__PURE__ */ i("path", {
36
+ d: "M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z",
37
+ opacity: ".25"
38
+ }), /* @__PURE__ */ i("path", {
39
+ d: "M10.14,1.16a11,11,0,0,0-9,8.92A1.59,1.59,0,0,0,2.46,12,1.52,1.52,0,0,0,4.11,10.7a8,8,0,0,1,6.66-6.61A1.42,1.42,0,0,0,12,2.69h0A1.57,1.57,0,0,0,10.14,1.16Z",
40
+ children: /* @__PURE__ */ i("animateTransform", {
41
+ attributeName: "transform",
42
+ type: "rotate",
43
+ dur: "0.75s",
44
+ values: "0 12 12;360 12 12",
45
+ repeatCount: "indefinite"
46
+ })
47
+ })]
48
+ });
49
+ }
50
+ function c({ className: e = "" }) {
51
+ return /* @__PURE__ */ i("div", {
52
+ className: t("h-10 w-10 rounded-full bg-gradient-to-r from-muted via-muted-foreground/30 to-muted bg-[length:200%_100%]", "animate-[shimmer_1.5s_ease-in-out_infinite]", e),
53
+ "aria-hidden": "true"
54
+ });
55
+ }
56
+ function l({ className: e = "" }) {
57
+ return /* @__PURE__ */ i("div", {
58
+ className: t("h-1 w-32 overflow-hidden rounded bg-muted", e),
59
+ role: "progressbar",
60
+ "aria-busy": "true",
61
+ children: /* @__PURE__ */ i("div", { className: "h-full w-1/3 animate-[progress-slide_1.4s_ease-in-out_infinite] rounded bg-primary" })
62
+ });
63
+ }
64
+ //#endregion
65
+ export { o as t };
66
+
67
+ //# sourceMappingURL=spinner-BQjxJ_Kx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spinner-BQjxJ_Kx.js","names":[],"sources":["../../src/components/base/spinner/spinner.tsx"],"sourcesContent":["/**\n * Spinner — three-variant loading indicator with optional label.\n *\n * Variants:\n * - `default` — circular SVG spin (the legacy shape)\n * - `shimmer` — round shimmer bar\n * - `progress` — slim animated progress strip\n *\n * `variant` resolves via `useSpinnerConfig().defaultVariant ?? 'default'`,\n * so a consumer can set the library-wide spinner style at the\n * `<UIProvider>` root and override per-mount as needed. Forwards a ref to\n * the outer wrapper so consumers can position/measure the spinner.\n */\nimport { forwardRef, type CSSProperties } from 'react';\n\nimport { Text } from '@/components/typography';\nimport { useSpinnerConfig } from '@/lib/ui-provider';\nimport { cn } from '@/lib/utils';\n\nexport type SpinnerVariant = 'default' | 'shimmer' | 'progress';\n\nexport interface SpinnerProps {\n\tlabel?: string;\n\tclassName?: string;\n\tvariant?: SpinnerVariant;\n\tstyle?: CSSProperties;\n}\n\nexport const Spinner = forwardRef<HTMLDivElement, SpinnerProps>(function Spinner(\n\t{ label, className = '', variant: variantProp, style },\n\tref,\n) {\n\tconst { defaultVariant } = useSpinnerConfig();\n\tconst variant: SpinnerVariant = variantProp ?? defaultVariant ?? 'default';\n\n\treturn (\n\t\t<div ref={ref} className={cn('spinner--component', 'flex items-center justify-center p-8')} style={style}>\n\t\t\t<div className=\"flex flex-col items-center justify-center gap-2 text-center\">\n\t\t\t\t{variant === 'default' && <SpinnerDefault className={className} />}\n\t\t\t\t{variant === 'shimmer' && <SpinnerShimmer className={className} />}\n\t\t\t\t{variant === 'progress' && <SpinnerProgress className={className} />}\n\t\t\t\t{!!label && <Text type=\"secondary\">{label}</Text>}\n\t\t\t</div>\n\t\t</div>\n\t);\n});\n\nSpinner.displayName = 'Spinner';\n\nfunction SpinnerDefault({ className = '' }: { className?: string }) {\n\treturn (\n\t\t<svg\n\t\t\tclassName={cn('h-10 w-10 text-primary', className)}\n\t\t\tfill=\"currentColor\"\n\t\t\tviewBox=\"0 0 24 24\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\taria-hidden=\"true\"\n\t\t>\n\t\t\t<path\n\t\t\t\td=\"M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z\"\n\t\t\t\topacity=\".25\"\n\t\t\t/>\n\t\t\t<path d=\"M10.14,1.16a11,11,0,0,0-9,8.92A1.59,1.59,0,0,0,2.46,12,1.52,1.52,0,0,0,4.11,10.7a8,8,0,0,1,6.66-6.61A1.42,1.42,0,0,0,12,2.69h0A1.57,1.57,0,0,0,10.14,1.16Z\">\n\t\t\t\t<animateTransform\n\t\t\t\t\tattributeName=\"transform\"\n\t\t\t\t\ttype=\"rotate\"\n\t\t\t\t\tdur=\"0.75s\"\n\t\t\t\t\tvalues=\"0 12 12;360 12 12\"\n\t\t\t\t\trepeatCount=\"indefinite\"\n\t\t\t\t/>\n\t\t\t</path>\n\t\t</svg>\n\t);\n}\n\nfunction SpinnerShimmer({ className = '' }: { className?: string }) {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'h-10 w-10 rounded-full bg-gradient-to-r from-muted via-muted-foreground/30 to-muted bg-[length:200%_100%]',\n\t\t\t\t'animate-[shimmer_1.5s_ease-in-out_infinite]',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\taria-hidden=\"true\"\n\t\t/>\n\t);\n}\n\nfunction SpinnerProgress({ className = '' }: { className?: string }) {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('h-1 w-32 overflow-hidden rounded bg-muted', className)}\n\t\t\trole=\"progressbar\"\n\t\t\taria-busy=\"true\"\n\t\t>\n\t\t\t<div className=\"h-full w-1/3 animate-[progress-slide_1.4s_ease-in-out_infinite] rounded bg-primary\" />\n\t\t</div>\n\t);\n}\n"],"mappings":";;;;;;AA4BA,IAAa,IAAU,EAAyC,SAC/D,EAAE,UAAO,eAAY,IAAI,SAAS,GAAa,YAC/C,GACC;CACD,IAAM,EAAE,sBAAmB,GAAkB,EACvC,IAA0B,KAAe,KAAkB;AAEjE,QACC,kBAAC,OAAD;EAAU;EAAK,WAAW,EAAG,sBAAsB,uCAAuC;EAAS;YAClG,kBAAC,OAAD;GAAK,WAAU;aAAf;IACE,MAAY,aAAa,kBAAC,GAAD,EAA2B,cAAa,CAAA;IACjE,MAAY,aAAa,kBAAC,GAAD,EAA2B,cAAa,CAAA;IACjE,MAAY,cAAc,kBAAC,GAAD,EAA4B,cAAa,CAAA;IACnE,CAAC,CAAC,KAAS,kBAAC,GAAD;KAAM,MAAK;eAAa;KAAa,CAAA;IAC5C;;EACD,CAAA;EAEN;AAEF,EAAQ,cAAc;AAEtB,SAAS,EAAe,EAAE,eAAY,MAA8B;AACnE,QACC,kBAAC,OAAD;EACC,WAAW,EAAG,0BAA0B,EAAU;EAClD,MAAK;EACL,SAAQ;EACR,OAAM;EACN,eAAY;YALb,CAOC,kBAAC,QAAD;GACC,GAAE;GACF,SAAQ;GACP,CAAA,EACF,kBAAC,QAAD;GAAM,GAAE;aACP,kBAAC,oBAAD;IACC,eAAc;IACd,MAAK;IACL,KAAI;IACJ,QAAO;IACP,aAAY;IACX,CAAA;GACI,CAAA,CACF;;;AAIR,SAAS,EAAe,EAAE,eAAY,MAA8B;AACnE,QACC,kBAAC,OAAD;EACC,WAAW,EACV,6GACA,+CACA,EACA;EACD,eAAY;EACX,CAAA;;AAIJ,SAAS,EAAgB,EAAE,eAAY,MAA8B;AACpE,QACC,kBAAC,OAAD;EACC,WAAW,EAAG,6CAA6C,EAAU;EACrE,MAAK;EACL,aAAU;YAEV,kBAAC,OAAD,EAAK,WAAU,sFAAuF,CAAA;EACjG,CAAA"}
@@ -0,0 +1,2 @@
1
+ require(`./chunk-D3uCBrYO.cjs`);const e=require(`./ui-provider-uiQgATj1.cjs`),t=require(`../lib/utils.cjs`),n=require(`./text-DBnY6fcL.cjs`);let r=require(`react`),i=require(`react/jsx-runtime`);var a=(0,r.forwardRef)(function({label:r,className:a=``,variant:l,style:u},d){let{defaultVariant:f}=e.d(),p=l??f??`default`;return(0,i.jsx)(`div`,{ref:d,className:t.cn(`spinner--component`,`flex items-center justify-center p-8`),style:u,children:(0,i.jsxs)(`div`,{className:`flex flex-col items-center justify-center gap-2 text-center`,children:[p===`default`&&(0,i.jsx)(o,{className:a}),p===`shimmer`&&(0,i.jsx)(s,{className:a}),p===`progress`&&(0,i.jsx)(c,{className:a}),!!r&&(0,i.jsx)(n.t,{type:`secondary`,children:r})]})})});a.displayName=`Spinner`;function o({className:e=``}){return(0,i.jsxs)(`svg`,{className:t.cn(`h-10 w-10 text-primary`,e),fill:`currentColor`,viewBox:`0 0 24 24`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`,children:[(0,i.jsx)(`path`,{d:`M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z`,opacity:`.25`}),(0,i.jsx)(`path`,{d:`M10.14,1.16a11,11,0,0,0-9,8.92A1.59,1.59,0,0,0,2.46,12,1.52,1.52,0,0,0,4.11,10.7a8,8,0,0,1,6.66-6.61A1.42,1.42,0,0,0,12,2.69h0A1.57,1.57,0,0,0,10.14,1.16Z`,children:(0,i.jsx)(`animateTransform`,{attributeName:`transform`,type:`rotate`,dur:`0.75s`,values:`0 12 12;360 12 12`,repeatCount:`indefinite`})})]})}function s({className:e=``}){return(0,i.jsx)(`div`,{className:t.cn(`h-10 w-10 rounded-full bg-gradient-to-r from-muted via-muted-foreground/30 to-muted bg-[length:200%_100%]`,`animate-[shimmer_1.5s_ease-in-out_infinite]`,e),"aria-hidden":`true`})}function c({className:e=``}){return(0,i.jsx)(`div`,{className:t.cn(`h-1 w-32 overflow-hidden rounded bg-muted`,e),role:`progressbar`,"aria-busy":`true`,children:(0,i.jsx)(`div`,{className:`h-full w-1/3 animate-[progress-slide_1.4s_ease-in-out_infinite] rounded bg-primary`})})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}});
2
+ //# sourceMappingURL=spinner-Dvaa6GUm.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spinner-Dvaa6GUm.cjs","names":[],"sources":["../../src/components/base/spinner/spinner.tsx"],"sourcesContent":["/**\n * Spinner — three-variant loading indicator with optional label.\n *\n * Variants:\n * - `default` — circular SVG spin (the legacy shape)\n * - `shimmer` — round shimmer bar\n * - `progress` — slim animated progress strip\n *\n * `variant` resolves via `useSpinnerConfig().defaultVariant ?? 'default'`,\n * so a consumer can set the library-wide spinner style at the\n * `<UIProvider>` root and override per-mount as needed. Forwards a ref to\n * the outer wrapper so consumers can position/measure the spinner.\n */\nimport { forwardRef, type CSSProperties } from 'react';\n\nimport { Text } from '@/components/typography';\nimport { useSpinnerConfig } from '@/lib/ui-provider';\nimport { cn } from '@/lib/utils';\n\nexport type SpinnerVariant = 'default' | 'shimmer' | 'progress';\n\nexport interface SpinnerProps {\n\tlabel?: string;\n\tclassName?: string;\n\tvariant?: SpinnerVariant;\n\tstyle?: CSSProperties;\n}\n\nexport const Spinner = forwardRef<HTMLDivElement, SpinnerProps>(function Spinner(\n\t{ label, className = '', variant: variantProp, style },\n\tref,\n) {\n\tconst { defaultVariant } = useSpinnerConfig();\n\tconst variant: SpinnerVariant = variantProp ?? defaultVariant ?? 'default';\n\n\treturn (\n\t\t<div ref={ref} className={cn('spinner--component', 'flex items-center justify-center p-8')} style={style}>\n\t\t\t<div className=\"flex flex-col items-center justify-center gap-2 text-center\">\n\t\t\t\t{variant === 'default' && <SpinnerDefault className={className} />}\n\t\t\t\t{variant === 'shimmer' && <SpinnerShimmer className={className} />}\n\t\t\t\t{variant === 'progress' && <SpinnerProgress className={className} />}\n\t\t\t\t{!!label && <Text type=\"secondary\">{label}</Text>}\n\t\t\t</div>\n\t\t</div>\n\t);\n});\n\nSpinner.displayName = 'Spinner';\n\nfunction SpinnerDefault({ className = '' }: { className?: string }) {\n\treturn (\n\t\t<svg\n\t\t\tclassName={cn('h-10 w-10 text-primary', className)}\n\t\t\tfill=\"currentColor\"\n\t\t\tviewBox=\"0 0 24 24\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\taria-hidden=\"true\"\n\t\t>\n\t\t\t<path\n\t\t\t\td=\"M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z\"\n\t\t\t\topacity=\".25\"\n\t\t\t/>\n\t\t\t<path d=\"M10.14,1.16a11,11,0,0,0-9,8.92A1.59,1.59,0,0,0,2.46,12,1.52,1.52,0,0,0,4.11,10.7a8,8,0,0,1,6.66-6.61A1.42,1.42,0,0,0,12,2.69h0A1.57,1.57,0,0,0,10.14,1.16Z\">\n\t\t\t\t<animateTransform\n\t\t\t\t\tattributeName=\"transform\"\n\t\t\t\t\ttype=\"rotate\"\n\t\t\t\t\tdur=\"0.75s\"\n\t\t\t\t\tvalues=\"0 12 12;360 12 12\"\n\t\t\t\t\trepeatCount=\"indefinite\"\n\t\t\t\t/>\n\t\t\t</path>\n\t\t</svg>\n\t);\n}\n\nfunction SpinnerShimmer({ className = '' }: { className?: string }) {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'h-10 w-10 rounded-full bg-gradient-to-r from-muted via-muted-foreground/30 to-muted bg-[length:200%_100%]',\n\t\t\t\t'animate-[shimmer_1.5s_ease-in-out_infinite]',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\taria-hidden=\"true\"\n\t\t/>\n\t);\n}\n\nfunction SpinnerProgress({ className = '' }: { className?: string }) {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('h-1 w-32 overflow-hidden rounded bg-muted', className)}\n\t\t\trole=\"progressbar\"\n\t\t\taria-busy=\"true\"\n\t\t>\n\t\t\t<div className=\"h-full w-1/3 animate-[progress-slide_1.4s_ease-in-out_infinite] rounded bg-primary\" />\n\t\t</div>\n\t);\n}\n"],"mappings":"mMA4BA,IAAa,GAAA,EAAA,EAAA,YAAmD,SAC/D,CAAE,QAAO,YAAY,GAAI,QAAS,EAAa,SAC/C,EACC,CACD,GAAM,CAAE,kBAAmB,EAAA,GAAkB,CACvC,EAA0B,GAAe,GAAkB,UAEjE,OACC,EAAA,EAAA,KAAC,MAAD,CAAU,MAAK,UAAW,EAAA,GAAG,qBAAsB,uCAAuC,CAAS,kBAClG,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,uEAAf,CACE,IAAY,YAAa,EAAA,EAAA,KAAC,EAAD,CAA2B,YAAa,CAAA,CACjE,IAAY,YAAa,EAAA,EAAA,KAAC,EAAD,CAA2B,YAAa,CAAA,CACjE,IAAY,aAAc,EAAA,EAAA,KAAC,EAAD,CAA4B,YAAa,CAAA,CACnE,CAAC,CAAC,IAAS,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,qBAAa,EAAa,CAAA,CAC5C,GACD,CAAA,EAEN,CAEF,EAAQ,YAAc,UAEtB,SAAS,EAAe,CAAE,YAAY,IAA8B,CACnE,OACC,EAAA,EAAA,MAAC,MAAD,CACC,UAAW,EAAA,GAAG,yBAA0B,EAAU,CAClD,KAAK,eACL,QAAQ,YACR,MAAM,6BACN,cAAY,gBALb,EAOC,EAAA,EAAA,KAAC,OAAD,CACC,EAAE,gFACF,QAAQ,MACP,CAAA,EACF,EAAA,EAAA,KAAC,OAAD,CAAM,EAAE,uKACP,EAAA,EAAA,KAAC,mBAAD,CACC,cAAc,YACd,KAAK,SACL,IAAI,QACJ,OAAO,oBACP,YAAY,aACX,CAAA,CACI,CAAA,CACF,GAIR,SAAS,EAAe,CAAE,YAAY,IAA8B,CACnE,OACC,EAAA,EAAA,KAAC,MAAD,CACC,UAAW,EAAA,GACV,4GACA,8CACA,EACA,CACD,cAAY,OACX,CAAA,CAIJ,SAAS,EAAgB,CAAE,YAAY,IAA8B,CACpE,OACC,EAAA,EAAA,KAAC,MAAD,CACC,UAAW,EAAA,GAAG,4CAA6C,EAAU,CACrE,KAAK,cACL,YAAU,iBAEV,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,qFAAuF,CAAA,CACjG,CAAA"}
@@ -0,0 +1,51 @@
1
+ import { cn as e } from "../lib/utils.js";
2
+ import { forwardRef as t, useCallback as n, useMemo as r } from "react";
3
+ import { jsx as i } from "react/jsx-runtime";
4
+ import { Switch as a } from "@base-ui/react/switch";
5
+ //#region src/components/ui/switch.tsx
6
+ function o({ className: t, size: n = "default", ...r }) {
7
+ return /* @__PURE__ */ i(a.Root, {
8
+ "data-slot": "switch",
9
+ "data-size": n,
10
+ className: e("data-checked:bg-primary data-unchecked:bg-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 aria-invalid:border-destructive shrink-0 rounded-full border border-transparent focus-visible:ring-[3px] aria-invalid:ring-[3px] data-[size=default]:h-5 data-[size=default]:w-9 data-[size=sm]:h-4 data-[size=sm]:w-7 peer group/switch relative inline-flex items-center transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 data-disabled:cursor-not-allowed data-disabled:opacity-50", t),
11
+ ...r,
12
+ children: /* @__PURE__ */ i(a.Thumb, {
13
+ "data-slot": "switch-thumb",
14
+ className: "bg-background rounded-full shadow-sm group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[16px] group-data-[size=sm]/switch:data-checked:translate-x-[12px] group-data-[size=default]/switch:data-unchecked:translate-x-0.5 group-data-[size=sm]/switch:data-unchecked:translate-x-0.5 pointer-events-none block ring-0 transition-transform"
15
+ })
16
+ });
17
+ }
18
+ //#endregion
19
+ //#region src/components/base/forms/fields/switch.tsx
20
+ var s = t(function({ onCheckedChange: t, invalid: a, className: s, ...c }, l) {
21
+ let u = r(() => c.name ? String(c.name) : c.id ? String(c.id) : String((/* @__PURE__ */ new Date()).getTime()), [c.id, c.name]), d = c.id ?? u, f = n((e) => {
22
+ t?.({ target: {
23
+ name: u,
24
+ value: e
25
+ } });
26
+ }, [u, t]);
27
+ return /* @__PURE__ */ i(o, {
28
+ ref: l,
29
+ ...c,
30
+ onCheckedChange: f,
31
+ id: d,
32
+ name: u,
33
+ "aria-invalid": a || void 0,
34
+ className: e("switch--component", a && "data-[state=unchecked]:border-destructive", s)
35
+ });
36
+ });
37
+ s.displayName = "Switch";
38
+ var c = t(function({ onCheckedChange: t, invalid: n, className: r, ...a }, s) {
39
+ return /* @__PURE__ */ i(o, {
40
+ ref: s,
41
+ ...a,
42
+ onCheckedChange: (e) => t?.(e),
43
+ "aria-invalid": n || void 0,
44
+ className: e(n && "data-[state=unchecked]:border-destructive", r)
45
+ });
46
+ });
47
+ c.displayName = "ToggleSwitch";
48
+ //#endregion
49
+ export { c as n, o as r, s as t };
50
+
51
+ //# sourceMappingURL=switch-C0yyhsXZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"switch-C0yyhsXZ.js","names":[],"sources":["../../src/components/ui/switch.tsx","../../src/components/base/forms/fields/switch.tsx"],"sourcesContent":["import { Switch as SwitchPrimitive } from \"@base-ui/react/switch\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Switch({\n className,\n size = \"default\",\n ...props\n}: SwitchPrimitive.Root.Props & {\n size?: \"sm\" | \"default\"\n}) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n data-size={size}\n className={cn(\n \"data-checked:bg-primary data-unchecked:bg-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 aria-invalid:border-destructive shrink-0 rounded-full border border-transparent focus-visible:ring-[3px] aria-invalid:ring-[3px] data-[size=default]:h-5 data-[size=default]:w-9 data-[size=sm]:h-4 data-[size=sm]:w-7 peer group/switch relative inline-flex items-center transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 data-disabled:cursor-not-allowed data-disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className=\"bg-background rounded-full shadow-sm group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[16px] group-data-[size=sm]/switch:data-checked:translate-x-[12px] group-data-[size=default]/switch:data-unchecked:translate-x-0.5 group-data-[size=sm]/switch:data-unchecked:translate-x-0.5 pointer-events-none block ring-0 transition-transform\"\n />\n </SwitchPrimitive.Root>\n )\n}\n\nexport { Switch }\n","/**\n * Switch — base wrapper around the shadcn switch primitive.\n *\n * Two flavors:\n * - `Switch` — emits `ImitationEvent` (`{ target: { name, value } }`) so it\n * plugs into form-field bindings and synthetic onChange handlers.\n * - `ToggleSwitch` — emits a plain `boolean` for simpler controlled flows.\n *\n * Both forward refs to the underlying button so consumers can focus / measure\n * the switch programmatically.\n */\nimport type { ComponentProps } from 'react';\nimport { forwardRef, useCallback, useMemo } from 'react';\nimport { Switch as SwitchPrimitive } from '@/components/ui/switch';\nimport { cn } from '@/lib/utils';\n\nexport interface ImitationEvent {\n target: {\n name: string;\n value: boolean;\n };\n}\n\ntype BaseSwitchProps = ComponentProps<typeof SwitchPrimitive>;\ntype SwitchElement = React.ElementRef<typeof SwitchPrimitive>;\n\nexport interface SwitchProps extends Omit<BaseSwitchProps, 'onCheckedChange'> {\n /** Event-style change handler for form compatibility. */\n onCheckedChange?: (event: ImitationEvent) => void;\n /** Error state for styling (passed from FormField). */\n invalid?: boolean;\n}\n\nexport const Switch = forwardRef<SwitchElement, SwitchProps>(function Switch(\n { onCheckedChange, invalid, className, ...rest },\n ref,\n) {\n const name = useMemo(() => {\n if (rest.name) return String(rest.name);\n if (rest.id) return String(rest.id);\n return String(new Date().getTime());\n }, [rest.id, rest.name]);\n\n const resolvedId = rest.id ?? name;\n\n const handleChange = useCallback(\n (checked: boolean) => {\n onCheckedChange?.({\n target: { name, value: checked },\n });\n },\n [name, onCheckedChange]\n );\n\n return (\n <SwitchPrimitive\n ref={ref}\n {...rest}\n onCheckedChange={handleChange}\n id={resolvedId}\n name={name}\n aria-invalid={invalid || undefined}\n className={cn('switch--component', \n invalid && 'data-[state=unchecked]:border-destructive',\n className\n )}\n />\n );\n});\n\nSwitch.displayName = 'Switch';\n\nexport type ToggleSwitchProps = Omit<BaseSwitchProps, 'onCheckedChange'> & {\n onCheckedChange?: (checked: boolean) => void;\n invalid?: boolean;\n};\n\nexport const ToggleSwitch = forwardRef<SwitchElement, ToggleSwitchProps>(function ToggleSwitch(\n { onCheckedChange, invalid, className, ...props },\n ref,\n) {\n return (\n <SwitchPrimitive\n ref={ref}\n {...props}\n onCheckedChange={(checked) => onCheckedChange?.(checked)}\n aria-invalid={invalid || undefined}\n className={cn(invalid && 'data-[state=unchecked]:border-destructive', className)}\n />\n );\n});\n\nToggleSwitch.displayName = 'ToggleSwitch';\n"],"mappings":";;;;;AAIA,SAAS,EAAO,EACd,cACA,UAAO,WACP,GAAG,KAGF;AACD,QACE,kBAAC,EAAgB,MAAjB;EACE,aAAU;EACV,aAAW;EACX,WAAW,EACT,2hBACA,EACD;EACD,GAAI;YAEJ,kBAAC,EAAgB,OAAjB;GACE,aAAU;GACV,WAAU;GACV,CAAA;EACmB,CAAA;;;;ACQ3B,IAAa,IAAS,EAAuC,SACzD,EAAE,oBAAiB,YAAS,cAAW,GAAG,KAC1C,GACF;CACE,IAAM,IAAO,QACL,EAAK,OAAa,OAAO,EAAK,KAAK,GACnC,EAAK,KAAW,OAAO,EAAK,GAAG,GAC5B,wBAAO,IAAI,MAAM,EAAC,SAAS,CAAC,EACpC,CAAC,EAAK,IAAI,EAAK,KAAK,CAAC,EAElB,IAAa,EAAK,MAAM,GAExB,IAAe,GAChB,MAAqB;AAClB,MAAkB,EACd,QAAQ;GAAE;GAAM,OAAO;GAAS,EACnC,CAAC;IAEN,CAAC,GAAM,EAAgB,CAC1B;AAED,QACI,kBAAC,GAAD;EACS;EACL,GAAI;EACJ,iBAAiB;EACjB,IAAI;EACE;EACN,gBAAc,KAAW,KAAA;EACzB,WAAW,EAAG,qBACV,KAAW,6CACX,EACH;EACH,CAAA;EAER;AAEF,EAAO,cAAc;AAOrB,IAAa,IAAe,EAA6C,SACrE,EAAE,oBAAiB,YAAS,cAAW,GAAG,KAC1C,GACF;AACE,QACI,kBAAC,GAAD;EACS;EACL,GAAI;EACJ,kBAAkB,MAAY,IAAkB,EAAQ;EACxD,gBAAc,KAAW,KAAA;EACzB,WAAW,EAAG,KAAW,6CAA6C,EAAU;EAClF,CAAA;EAER;AAEF,EAAa,cAAc"}
@@ -0,0 +1,2 @@
1
+ require(`./chunk-D3uCBrYO.cjs`);const e=require(`../lib/utils.cjs`);let t=require(`react`),n=require(`react/jsx-runtime`),r=require(`@base-ui/react/switch`);function i({className:t,size:i=`default`,...a}){return(0,n.jsx)(r.Switch.Root,{"data-slot":`switch`,"data-size":i,className:e.cn(`data-checked:bg-primary data-unchecked:bg-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 aria-invalid:border-destructive shrink-0 rounded-full border border-transparent focus-visible:ring-[3px] aria-invalid:ring-[3px] data-[size=default]:h-5 data-[size=default]:w-9 data-[size=sm]:h-4 data-[size=sm]:w-7 peer group/switch relative inline-flex items-center transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 data-disabled:cursor-not-allowed data-disabled:opacity-50`,t),...a,children:(0,n.jsx)(r.Switch.Thumb,{"data-slot":`switch-thumb`,className:`bg-background rounded-full shadow-sm group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[16px] group-data-[size=sm]/switch:data-checked:translate-x-[12px] group-data-[size=default]/switch:data-unchecked:translate-x-0.5 group-data-[size=sm]/switch:data-unchecked:translate-x-0.5 pointer-events-none block ring-0 transition-transform`})})}var a=(0,t.forwardRef)(function({onCheckedChange:r,invalid:a,className:o,...s},c){let l=(0,t.useMemo)(()=>s.name?String(s.name):s.id?String(s.id):String(new Date().getTime()),[s.id,s.name]),u=s.id??l,d=(0,t.useCallback)(e=>{r?.({target:{name:l,value:e}})},[l,r]);return(0,n.jsx)(i,{ref:c,...s,onCheckedChange:d,id:u,name:l,"aria-invalid":a||void 0,className:e.cn(`switch--component`,a&&`data-[state=unchecked]:border-destructive`,o)})});a.displayName=`Switch`;var o=(0,t.forwardRef)(function({onCheckedChange:t,invalid:r,className:a,...o},s){return(0,n.jsx)(i,{ref:s,...o,onCheckedChange:e=>t?.(e),"aria-invalid":r||void 0,className:e.cn(r&&`data-[state=unchecked]:border-destructive`,a)})});o.displayName=`ToggleSwitch`,Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}});
2
+ //# sourceMappingURL=switch-DozkSQNn.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"switch-DozkSQNn.cjs","names":[],"sources":["../../src/components/ui/switch.tsx","../../src/components/base/forms/fields/switch.tsx"],"sourcesContent":["import { Switch as SwitchPrimitive } from \"@base-ui/react/switch\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Switch({\n className,\n size = \"default\",\n ...props\n}: SwitchPrimitive.Root.Props & {\n size?: \"sm\" | \"default\"\n}) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n data-size={size}\n className={cn(\n \"data-checked:bg-primary data-unchecked:bg-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 aria-invalid:border-destructive shrink-0 rounded-full border border-transparent focus-visible:ring-[3px] aria-invalid:ring-[3px] data-[size=default]:h-5 data-[size=default]:w-9 data-[size=sm]:h-4 data-[size=sm]:w-7 peer group/switch relative inline-flex items-center transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 data-disabled:cursor-not-allowed data-disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className=\"bg-background rounded-full shadow-sm group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[16px] group-data-[size=sm]/switch:data-checked:translate-x-[12px] group-data-[size=default]/switch:data-unchecked:translate-x-0.5 group-data-[size=sm]/switch:data-unchecked:translate-x-0.5 pointer-events-none block ring-0 transition-transform\"\n />\n </SwitchPrimitive.Root>\n )\n}\n\nexport { Switch }\n","/**\n * Switch — base wrapper around the shadcn switch primitive.\n *\n * Two flavors:\n * - `Switch` — emits `ImitationEvent` (`{ target: { name, value } }`) so it\n * plugs into form-field bindings and synthetic onChange handlers.\n * - `ToggleSwitch` — emits a plain `boolean` for simpler controlled flows.\n *\n * Both forward refs to the underlying button so consumers can focus / measure\n * the switch programmatically.\n */\nimport type { ComponentProps } from 'react';\nimport { forwardRef, useCallback, useMemo } from 'react';\nimport { Switch as SwitchPrimitive } from '@/components/ui/switch';\nimport { cn } from '@/lib/utils';\n\nexport interface ImitationEvent {\n target: {\n name: string;\n value: boolean;\n };\n}\n\ntype BaseSwitchProps = ComponentProps<typeof SwitchPrimitive>;\ntype SwitchElement = React.ElementRef<typeof SwitchPrimitive>;\n\nexport interface SwitchProps extends Omit<BaseSwitchProps, 'onCheckedChange'> {\n /** Event-style change handler for form compatibility. */\n onCheckedChange?: (event: ImitationEvent) => void;\n /** Error state for styling (passed from FormField). */\n invalid?: boolean;\n}\n\nexport const Switch = forwardRef<SwitchElement, SwitchProps>(function Switch(\n { onCheckedChange, invalid, className, ...rest },\n ref,\n) {\n const name = useMemo(() => {\n if (rest.name) return String(rest.name);\n if (rest.id) return String(rest.id);\n return String(new Date().getTime());\n }, [rest.id, rest.name]);\n\n const resolvedId = rest.id ?? name;\n\n const handleChange = useCallback(\n (checked: boolean) => {\n onCheckedChange?.({\n target: { name, value: checked },\n });\n },\n [name, onCheckedChange]\n );\n\n return (\n <SwitchPrimitive\n ref={ref}\n {...rest}\n onCheckedChange={handleChange}\n id={resolvedId}\n name={name}\n aria-invalid={invalid || undefined}\n className={cn('switch--component', \n invalid && 'data-[state=unchecked]:border-destructive',\n className\n )}\n />\n );\n});\n\nSwitch.displayName = 'Switch';\n\nexport type ToggleSwitchProps = Omit<BaseSwitchProps, 'onCheckedChange'> & {\n onCheckedChange?: (checked: boolean) => void;\n invalid?: boolean;\n};\n\nexport const ToggleSwitch = forwardRef<SwitchElement, ToggleSwitchProps>(function ToggleSwitch(\n { onCheckedChange, invalid, className, ...props },\n ref,\n) {\n return (\n <SwitchPrimitive\n ref={ref}\n {...props}\n onCheckedChange={(checked) => onCheckedChange?.(checked)}\n aria-invalid={invalid || undefined}\n className={cn(invalid && 'data-[state=unchecked]:border-destructive', className)}\n />\n );\n});\n\nToggleSwitch.displayName = 'ToggleSwitch';\n"],"mappings":"6JAIA,SAAS,EAAO,CACd,YACA,OAAO,UACP,GAAG,GAGF,CACD,OACE,EAAA,EAAA,KAAC,EAAA,OAAgB,KAAjB,CACE,YAAU,SACV,YAAW,EACX,UAAW,EAAA,GACT,0hBACA,EACD,CACD,GAAI,YAEJ,EAAA,EAAA,KAAC,EAAA,OAAgB,MAAjB,CACE,YAAU,eACV,UAAU,gaACV,CAAA,CACmB,CAAA,CCQ3B,IAAa,GAAA,EAAA,EAAA,YAAgD,SACzD,CAAE,kBAAiB,UAAS,YAAW,GAAG,GAC1C,EACF,CACE,IAAM,GAAA,EAAA,EAAA,aACE,EAAK,KAAa,OAAO,EAAK,KAAK,CACnC,EAAK,GAAW,OAAO,EAAK,GAAG,CAC5B,OAAO,IAAI,MAAM,CAAC,SAAS,CAAC,CACpC,CAAC,EAAK,GAAI,EAAK,KAAK,CAAC,CAElB,EAAa,EAAK,IAAM,EAExB,GAAA,EAAA,EAAA,aACD,GAAqB,CAClB,IAAkB,CACd,OAAQ,CAAE,OAAM,MAAO,EAAS,CACnC,CAAC,EAEN,CAAC,EAAM,EAAgB,CAC1B,CAED,OACI,EAAA,EAAA,KAAC,EAAD,CACS,MACL,GAAI,EACJ,gBAAiB,EACjB,GAAI,EACE,OACN,eAAc,GAAW,IAAA,GACzB,UAAW,EAAA,GAAG,oBACV,GAAW,4CACX,EACH,CACH,CAAA,EAER,CAEF,EAAO,YAAc,SAOrB,IAAa,GAAA,EAAA,EAAA,YAA4D,SACrE,CAAE,kBAAiB,UAAS,YAAW,GAAG,GAC1C,EACF,CACE,OACI,EAAA,EAAA,KAAC,EAAD,CACS,MACL,GAAI,EACJ,gBAAkB,GAAY,IAAkB,EAAQ,CACxD,eAAc,GAAW,IAAA,GACzB,UAAW,EAAA,GAAG,GAAW,4CAA6C,EAAU,CAClF,CAAA,EAER,CAEF,EAAa,YAAc"}
@@ -0,0 +1,119 @@
1
+ import { useStrings as e } from "../lib/strings.js";
2
+ import { s as t } from "./ui-provider-4qKSKMPd.js";
3
+ import { cn as n } from "../lib/utils.js";
4
+ import { t as r } from "./text-DIxMTECE.js";
5
+ import { n as i } from "./input-DQahu2sm.js";
6
+ import { i as a, r as o } from "./form-sizing-CcbB-OHF.js";
7
+ import * as s from "react";
8
+ import { useCallback as c, useEffect as l, useRef as u } from "react";
9
+ import { jsx as d, jsxs as f } from "react/jsx-runtime";
10
+ import { CircleXIcon as p, Loader2Icon as m } from "lucide-react";
11
+ //#region src/components/base/forms/fields/textarea.tsx
12
+ var h = { clear: "Clear textarea" }, g = s.forwardRef(({ className: s, maxLength: g, showCharacterCount: _, clearable: v, onClear: y, isLoading: b, invalid: x, size: S, autoResize: C = !1, minRows: w = 2, maxRows: T, onChange: E, value: D, defaultValue: O, id: k, strings: A, ...j }, M) => {
13
+ let N = u(null), P = e(h, A), { defaultControlSize: F } = t(), I = a(S, F), { id: L, value: R, isReactHookForm: z, characterCount: B, hasCharacterLimit: V, showCount: H, hasValue: U, updateValue: W, clearValue: G, wouldExceedLimit: K } = i({
14
+ controlledValue: D,
15
+ defaultValue: O,
16
+ maxLength: g,
17
+ showCharacterCount: _,
18
+ providedId: k,
19
+ idPrefix: "textarea",
20
+ hasOnChange: E !== void 0
21
+ }), q = !!x, J = u(0), Y = c(() => {
22
+ if (!C || !N.current) return;
23
+ let e = N.current;
24
+ J.current === 0 && (J.current = parseInt(getComputedStyle(e).lineHeight) || 20), e.style.height = "auto";
25
+ let t = J.current, n = t * w, r = T ? t * T : Infinity, i = Math.min(Math.max(e.scrollHeight, n), r);
26
+ e.style.height = `${i}px`;
27
+ }, [
28
+ C,
29
+ T,
30
+ w
31
+ ]);
32
+ l(() => {
33
+ Y();
34
+ }, [
35
+ R,
36
+ C,
37
+ Y
38
+ ]);
39
+ let X = c((e) => {
40
+ let t = e.target.value;
41
+ K(t) || (W(t), E?.(e), C && setTimeout(Y, 0));
42
+ }, [
43
+ E,
44
+ W,
45
+ K,
46
+ C,
47
+ Y
48
+ ]), Z = c(() => {
49
+ G(), E?.({
50
+ target: { value: "" },
51
+ currentTarget: { value: "" }
52
+ }), y?.(), N.current?.focus(), C && setTimeout(Y, 0);
53
+ }, [
54
+ G,
55
+ E,
56
+ y,
57
+ C,
58
+ Y
59
+ ]), Q = v && U && !b;
60
+ return /* @__PURE__ */ f("div", {
61
+ className: n("textarea--component", "relative w-full"),
62
+ children: [
63
+ /* @__PURE__ */ d("textarea", {
64
+ ref: (e) => {
65
+ typeof M == "function" ? M(e) : M && (M.current = e), N.current = e;
66
+ },
67
+ id: L,
68
+ ...!z && { value: R },
69
+ onChange: X,
70
+ maxLength: g,
71
+ "aria-invalid": q || void 0,
72
+ disabled: j.disabled || b,
73
+ rows: w,
74
+ style: {
75
+ resize: C ? "none" : j.style?.resize,
76
+ overflow: C && T ? "auto" : "visible",
77
+ ...j.style
78
+ },
79
+ className: n("placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground", "border-input flex w-full rounded-md border bg-transparent px-3 py-2", "transition-[color,box-shadow] outline-none", "disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50", o[I], "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]", "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", Q && "pr-10", H && "pr-16", s),
80
+ ...j
81
+ }),
82
+ !!H && /* @__PURE__ */ d("div", {
83
+ className: n("pointer-events-none absolute top-2 right-3 text-xs tabular-nums", j.disabled && "opacity-50", q ? "text-destructive" : "text-muted-foreground"),
84
+ "aria-live": "polite",
85
+ role: "status",
86
+ children: /* @__PURE__ */ f(r, {
87
+ tag: "span",
88
+ size: "xs",
89
+ type: q ? "error" : "secondary",
90
+ children: [B, V ? `/${g}` : ""]
91
+ })
92
+ }),
93
+ !!b && !H && /* @__PURE__ */ d("div", {
94
+ className: n("pointer-events-none absolute top-2 right-3", q ? "text-destructive" : "text-muted-foreground/80"),
95
+ children: /* @__PURE__ */ d(m, {
96
+ size: 16,
97
+ className: "animate-spin",
98
+ "aria-hidden": "true"
99
+ })
100
+ }),
101
+ !!Q && !H && /* @__PURE__ */ d("button", {
102
+ type: "button",
103
+ className: "text-muted-foreground/80 hover:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 absolute top-2 right-2 flex h-6 w-6 items-center justify-center rounded transition-[color,box-shadow] outline-none focus-visible:z-10 focus-visible:ring-[3px] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",
104
+ "aria-label": P.clear,
105
+ onClick: Z,
106
+ disabled: b,
107
+ children: /* @__PURE__ */ d(p, {
108
+ size: 14,
109
+ "aria-hidden": "true"
110
+ })
111
+ })
112
+ ]
113
+ });
114
+ });
115
+ g.displayName = "Textarea";
116
+ //#endregion
117
+ export { g as t };
118
+
119
+ //# sourceMappingURL=textarea-Cgl-FPwu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textarea-Cgl-FPwu.js","names":[],"sources":["../../src/components/base/forms/fields/textarea.tsx"],"sourcesContent":["import { CircleXIcon, Loader2Icon } from 'lucide-react';\nimport * as React from 'react';\nimport { useRef, useCallback, useEffect } from 'react';\nimport { Text } from '@/components/typography';\nimport { useFormsConfig, type FormControlSize } from '@/lib/ui-provider';\nimport { useStrings, type StringsProp } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\nimport { formTextareaSizeClasses, resolveFormControlSize } from '../form-sizing';\nimport { useFormFieldState } from './hooks';\n\nexport interface TextareaStrings {\n clear: string;\n}\n\nexport const defaultTextareaStrings: TextareaStrings = {\n clear: 'Clear textarea',\n};\n\nexport interface TextareaProps extends Omit<React.ComponentProps<'textarea'>, 'onChange'> {\n // String overrides (e.g. clear button aria-label)\n strings?: StringsProp<TextareaStrings>;\n // Character limit\n maxLength?: number;\n showCharacterCount?: boolean;\n\n // Clear button\n clearable?: boolean;\n onClear?: () => void;\n\n // Loading state\n isLoading?: boolean;\n\n // Error state for styling (passed from FormField)\n invalid?: boolean;\n\n // Visual size\n size?: FormControlSize;\n\n // Auto-resize functionality\n autoResize?: boolean;\n minRows?: number;\n maxRows?: number;\n\n // Value props\n onChange?: (e: React.ChangeEvent<HTMLTextAreaElement>) => void;\n value?: string;\n defaultValue?: string;\n}\n\nconst TextareaImpl = (\n {\n className,\n maxLength,\n showCharacterCount,\n clearable,\n onClear,\n isLoading,\n invalid,\n size: sizeProp,\n autoResize = false,\n minRows = 2,\n maxRows,\n onChange,\n value: controlledValue,\n defaultValue,\n id: providedId,\n strings: stringsProp,\n ...props\n }: TextareaProps,\n forwardedRef: React.ForwardedRef<HTMLTextAreaElement>,\n) => {\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n const strings = useStrings(defaultTextareaStrings, stringsProp);\n const { defaultControlSize } = useFormsConfig();\n const size = resolveFormControlSize(sizeProp, defaultControlSize);\n\n // Use shared form field state hook\n const {\n id,\n value: textareaValue,\n isReactHookForm,\n characterCount,\n hasCharacterLimit,\n showCount,\n hasValue,\n updateValue,\n clearValue,\n wouldExceedLimit,\n } = useFormFieldState({\n controlledValue,\n defaultValue,\n maxLength,\n showCharacterCount,\n providedId,\n idPrefix: 'textarea',\n hasOnChange: onChange !== undefined,\n });\n\n // Derive display states\n const hasError = Boolean(invalid);\n\n // Cache lineHeight so we call getComputedStyle once instead of on every\n // keystroke — avoids a forced synchronous style recalculation per input.\n const lineHeightRef = useRef<number>(0);\n\n const adjustHeight = useCallback(() => {\n if (!autoResize || !textareaRef.current) return;\n\n const textarea = textareaRef.current;\n\n if (lineHeightRef.current === 0) {\n lineHeightRef.current = parseInt(getComputedStyle(textarea).lineHeight) || 20;\n }\n\n textarea.style.height = 'auto';\n\n const lineHeight = lineHeightRef.current;\n const minHeight = lineHeight * minRows;\n const maxHeight = maxRows ? lineHeight * maxRows : Infinity;\n\n const newHeight = Math.min(Math.max(textarea.scrollHeight, minHeight), maxHeight);\n textarea.style.height = `${newHeight}px`;\n }, [autoResize, maxRows, minRows]);\n\n useEffect(() => {\n adjustHeight();\n }, [textareaValue, autoResize, adjustHeight]);\n\n const handleTextareaChange = useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n const newValue = e.target.value;\n\n // Check character limit\n if (wouldExceedLimit(newValue)) {\n return;\n }\n\n // Update internal state if uncontrolled\n updateValue(newValue);\n\n // Call external onChange\n onChange?.(e);\n\n // Auto-resize if enabled\n if (autoResize) {\n setTimeout(adjustHeight, 0);\n }\n },\n [onChange, updateValue, wouldExceedLimit, autoResize, adjustHeight]\n );\n\n const handleClear = useCallback(() => {\n const syntheticEvent = {\n target: { value: '' },\n currentTarget: { value: '' },\n } as React.ChangeEvent<HTMLTextAreaElement>;\n\n // Clear internal state\n clearValue();\n\n // Notify parent\n onChange?.(syntheticEvent);\n\n // Execute optional onClear callback\n onClear?.();\n\n // Focus the textarea after clearing\n textareaRef.current?.focus();\n\n // Auto-resize if enabled\n if (autoResize) {\n setTimeout(adjustHeight, 0);\n }\n }, [clearValue, onChange, onClear, autoResize, adjustHeight]);\n\n // Determine what to show in the end position\n const showClearButton = clearable && hasValue && !isLoading;\n\n return (\n <div className={cn('textarea--component', 'relative w-full')}>\n <textarea\n ref={(node) => {\n if (typeof forwardedRef === 'function') {\n forwardedRef(node);\n } else if (forwardedRef) {\n forwardedRef.current = node;\n }\n textareaRef.current = node;\n }}\n id={id}\n {...(!isReactHookForm && { value: textareaValue })}\n onChange={handleTextareaChange}\n maxLength={maxLength}\n aria-invalid={hasError || undefined}\n disabled={props.disabled || isLoading}\n rows={minRows}\n style={{\n resize: autoResize ? 'none' : props.style?.resize,\n overflow: autoResize && maxRows ? 'auto' : 'visible',\n ...props.style,\n }}\n className={cn(\n // Base styles\n 'placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground',\n 'border-input flex w-full rounded-md border bg-transparent px-3 py-2',\n 'transition-[color,box-shadow] outline-none',\n 'disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n formTextareaSizeClasses[size],\n // Focus styles\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n // Invalid/error styles\n 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\n // Dynamic padding for overlays\n showClearButton && 'pr-10',\n showCount && 'pr-16',\n className\n )}\n {...props}\n />\n\n {/* Character Count */}\n {!!showCount && (\n <div\n className={cn(\n 'pointer-events-none absolute top-2 right-3 text-xs tabular-nums',\n props.disabled && 'opacity-50',\n hasError ? 'text-destructive' : 'text-muted-foreground'\n )}\n aria-live=\"polite\"\n role=\"status\"\n >\n <Text tag=\"span\" size=\"xs\" type={hasError ? 'error' : 'secondary'}>\n {characterCount}\n {hasCharacterLimit ? `/${maxLength}` : ''}\n </Text>\n </div>\n )}\n\n {/* Loading Spinner */}\n {!!isLoading && !showCount && (\n <div\n className={cn(\n 'pointer-events-none absolute top-2 right-3',\n hasError ? 'text-destructive' : 'text-muted-foreground/80'\n )}\n >\n <Loader2Icon size={16} className=\"animate-spin\" aria-hidden=\"true\" />\n </div>\n )}\n\n {/* Clear Button */}\n {!!showClearButton && !showCount && (\n <button\n type=\"button\"\n className=\"text-muted-foreground/80 hover:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 absolute top-2 right-2 flex h-6 w-6 items-center justify-center rounded transition-[color,box-shadow] outline-none focus-visible:z-10 focus-visible:ring-[3px] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50\"\n aria-label={strings.clear}\n onClick={handleClear}\n disabled={isLoading}\n >\n <CircleXIcon size={14} aria-hidden=\"true\" />\n </button>\n )}\n </div>\n );\n};\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(TextareaImpl);\nTextarea.displayName = 'Textarea';\n\nexport { Textarea };\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ const e=require(`./chunk-D3uCBrYO.cjs`),t=require(`../lib/strings.cjs`),n=require(`./ui-provider-uiQgATj1.cjs`),r=require(`../lib/utils.cjs`),i=require(`./text-DBnY6fcL.cjs`),a=require(`./input-BJb10xb9.cjs`),o=require(`./form-sizing-Cw12UeI6.cjs`);let s=require(`react`);s=e.t(s,1);let c=require(`react/jsx-runtime`),l=require(`lucide-react`);var u={clear:`Clear textarea`},d=s.forwardRef(({className:e,maxLength:d,showCharacterCount:f,clearable:p,onClear:m,isLoading:h,invalid:g,size:_,autoResize:v=!1,minRows:y=2,maxRows:b,onChange:x,value:S,defaultValue:C,id:w,strings:T,...E},D)=>{let O=(0,s.useRef)(null),k=t.useStrings(u,T),{defaultControlSize:A}=n.s(),j=o.i(_,A),{id:M,value:N,isReactHookForm:P,characterCount:F,hasCharacterLimit:I,showCount:L,hasValue:R,updateValue:z,clearValue:B,wouldExceedLimit:V}=a.n({controlledValue:S,defaultValue:C,maxLength:d,showCharacterCount:f,providedId:w,idPrefix:`textarea`,hasOnChange:x!==void 0}),H=!!g,U=(0,s.useRef)(0),W=(0,s.useCallback)(()=>{if(!v||!O.current)return;let e=O.current;U.current===0&&(U.current=parseInt(getComputedStyle(e).lineHeight)||20),e.style.height=`auto`;let t=U.current,n=t*y,r=b?t*b:1/0,i=Math.min(Math.max(e.scrollHeight,n),r);e.style.height=`${i}px`},[v,b,y]);(0,s.useEffect)(()=>{W()},[N,v,W]);let G=(0,s.useCallback)(e=>{let t=e.target.value;V(t)||(z(t),x?.(e),v&&setTimeout(W,0))},[x,z,V,v,W]),K=(0,s.useCallback)(()=>{B(),x?.({target:{value:``},currentTarget:{value:``}}),m?.(),O.current?.focus(),v&&setTimeout(W,0)},[B,x,m,v,W]),q=p&&R&&!h;return(0,c.jsxs)(`div`,{className:r.cn(`textarea--component`,`relative w-full`),children:[(0,c.jsx)(`textarea`,{ref:e=>{typeof D==`function`?D(e):D&&(D.current=e),O.current=e},id:M,...!P&&{value:N},onChange:G,maxLength:d,"aria-invalid":H||void 0,disabled:E.disabled||h,rows:y,style:{resize:v?`none`:E.style?.resize,overflow:v&&b?`auto`:`visible`,...E.style},className:r.cn(`placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground`,`border-input flex w-full rounded-md border bg-transparent px-3 py-2`,`transition-[color,box-shadow] outline-none`,`disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50`,o.r[j],`focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]`,`aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive`,q&&`pr-10`,L&&`pr-16`,e),...E}),!!L&&(0,c.jsx)(`div`,{className:r.cn(`pointer-events-none absolute top-2 right-3 text-xs tabular-nums`,E.disabled&&`opacity-50`,H?`text-destructive`:`text-muted-foreground`),"aria-live":`polite`,role:`status`,children:(0,c.jsxs)(i.t,{tag:`span`,size:`xs`,type:H?`error`:`secondary`,children:[F,I?`/${d}`:``]})}),!!h&&!L&&(0,c.jsx)(`div`,{className:r.cn(`pointer-events-none absolute top-2 right-3`,H?`text-destructive`:`text-muted-foreground/80`),children:(0,c.jsx)(l.Loader2Icon,{size:16,className:`animate-spin`,"aria-hidden":`true`})}),!!q&&!L&&(0,c.jsx)(`button`,{type:`button`,className:`text-muted-foreground/80 hover:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 absolute top-2 right-2 flex h-6 w-6 items-center justify-center rounded transition-[color,box-shadow] outline-none focus-visible:z-10 focus-visible:ring-[3px] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50`,"aria-label":k.clear,onClick:K,disabled:h,children:(0,c.jsx)(l.CircleXIcon,{size:14,"aria-hidden":`true`})})]})});d.displayName=`Textarea`,Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return d}});
2
+ //# sourceMappingURL=textarea-D8wC0XlZ.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textarea-D8wC0XlZ.cjs","names":[],"sources":["../../src/components/base/forms/fields/textarea.tsx"],"sourcesContent":["import { CircleXIcon, Loader2Icon } from 'lucide-react';\nimport * as React from 'react';\nimport { useRef, useCallback, useEffect } from 'react';\nimport { Text } from '@/components/typography';\nimport { useFormsConfig, type FormControlSize } from '@/lib/ui-provider';\nimport { useStrings, type StringsProp } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\nimport { formTextareaSizeClasses, resolveFormControlSize } from '../form-sizing';\nimport { useFormFieldState } from './hooks';\n\nexport interface TextareaStrings {\n clear: string;\n}\n\nexport const defaultTextareaStrings: TextareaStrings = {\n clear: 'Clear textarea',\n};\n\nexport interface TextareaProps extends Omit<React.ComponentProps<'textarea'>, 'onChange'> {\n // String overrides (e.g. clear button aria-label)\n strings?: StringsProp<TextareaStrings>;\n // Character limit\n maxLength?: number;\n showCharacterCount?: boolean;\n\n // Clear button\n clearable?: boolean;\n onClear?: () => void;\n\n // Loading state\n isLoading?: boolean;\n\n // Error state for styling (passed from FormField)\n invalid?: boolean;\n\n // Visual size\n size?: FormControlSize;\n\n // Auto-resize functionality\n autoResize?: boolean;\n minRows?: number;\n maxRows?: number;\n\n // Value props\n onChange?: (e: React.ChangeEvent<HTMLTextAreaElement>) => void;\n value?: string;\n defaultValue?: string;\n}\n\nconst TextareaImpl = (\n {\n className,\n maxLength,\n showCharacterCount,\n clearable,\n onClear,\n isLoading,\n invalid,\n size: sizeProp,\n autoResize = false,\n minRows = 2,\n maxRows,\n onChange,\n value: controlledValue,\n defaultValue,\n id: providedId,\n strings: stringsProp,\n ...props\n }: TextareaProps,\n forwardedRef: React.ForwardedRef<HTMLTextAreaElement>,\n) => {\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n const strings = useStrings(defaultTextareaStrings, stringsProp);\n const { defaultControlSize } = useFormsConfig();\n const size = resolveFormControlSize(sizeProp, defaultControlSize);\n\n // Use shared form field state hook\n const {\n id,\n value: textareaValue,\n isReactHookForm,\n characterCount,\n hasCharacterLimit,\n showCount,\n hasValue,\n updateValue,\n clearValue,\n wouldExceedLimit,\n } = useFormFieldState({\n controlledValue,\n defaultValue,\n maxLength,\n showCharacterCount,\n providedId,\n idPrefix: 'textarea',\n hasOnChange: onChange !== undefined,\n });\n\n // Derive display states\n const hasError = Boolean(invalid);\n\n // Cache lineHeight so we call getComputedStyle once instead of on every\n // keystroke — avoids a forced synchronous style recalculation per input.\n const lineHeightRef = useRef<number>(0);\n\n const adjustHeight = useCallback(() => {\n if (!autoResize || !textareaRef.current) return;\n\n const textarea = textareaRef.current;\n\n if (lineHeightRef.current === 0) {\n lineHeightRef.current = parseInt(getComputedStyle(textarea).lineHeight) || 20;\n }\n\n textarea.style.height = 'auto';\n\n const lineHeight = lineHeightRef.current;\n const minHeight = lineHeight * minRows;\n const maxHeight = maxRows ? lineHeight * maxRows : Infinity;\n\n const newHeight = Math.min(Math.max(textarea.scrollHeight, minHeight), maxHeight);\n textarea.style.height = `${newHeight}px`;\n }, [autoResize, maxRows, minRows]);\n\n useEffect(() => {\n adjustHeight();\n }, [textareaValue, autoResize, adjustHeight]);\n\n const handleTextareaChange = useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n const newValue = e.target.value;\n\n // Check character limit\n if (wouldExceedLimit(newValue)) {\n return;\n }\n\n // Update internal state if uncontrolled\n updateValue(newValue);\n\n // Call external onChange\n onChange?.(e);\n\n // Auto-resize if enabled\n if (autoResize) {\n setTimeout(adjustHeight, 0);\n }\n },\n [onChange, updateValue, wouldExceedLimit, autoResize, adjustHeight]\n );\n\n const handleClear = useCallback(() => {\n const syntheticEvent = {\n target: { value: '' },\n currentTarget: { value: '' },\n } as React.ChangeEvent<HTMLTextAreaElement>;\n\n // Clear internal state\n clearValue();\n\n // Notify parent\n onChange?.(syntheticEvent);\n\n // Execute optional onClear callback\n onClear?.();\n\n // Focus the textarea after clearing\n textareaRef.current?.focus();\n\n // Auto-resize if enabled\n if (autoResize) {\n setTimeout(adjustHeight, 0);\n }\n }, [clearValue, onChange, onClear, autoResize, adjustHeight]);\n\n // Determine what to show in the end position\n const showClearButton = clearable && hasValue && !isLoading;\n\n return (\n <div className={cn('textarea--component', 'relative w-full')}>\n <textarea\n ref={(node) => {\n if (typeof forwardedRef === 'function') {\n forwardedRef(node);\n } else if (forwardedRef) {\n forwardedRef.current = node;\n }\n textareaRef.current = node;\n }}\n id={id}\n {...(!isReactHookForm && { value: textareaValue })}\n onChange={handleTextareaChange}\n maxLength={maxLength}\n aria-invalid={hasError || undefined}\n disabled={props.disabled || isLoading}\n rows={minRows}\n style={{\n resize: autoResize ? 'none' : props.style?.resize,\n overflow: autoResize && maxRows ? 'auto' : 'visible',\n ...props.style,\n }}\n className={cn(\n // Base styles\n 'placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground',\n 'border-input flex w-full rounded-md border bg-transparent px-3 py-2',\n 'transition-[color,box-shadow] outline-none',\n 'disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n formTextareaSizeClasses[size],\n // Focus styles\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n // Invalid/error styles\n 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\n // Dynamic padding for overlays\n showClearButton && 'pr-10',\n showCount && 'pr-16',\n className\n )}\n {...props}\n />\n\n {/* Character Count */}\n {!!showCount && (\n <div\n className={cn(\n 'pointer-events-none absolute top-2 right-3 text-xs tabular-nums',\n props.disabled && 'opacity-50',\n hasError ? 'text-destructive' : 'text-muted-foreground'\n )}\n aria-live=\"polite\"\n role=\"status\"\n >\n <Text tag=\"span\" size=\"xs\" type={hasError ? 'error' : 'secondary'}>\n {characterCount}\n {hasCharacterLimit ? `/${maxLength}` : ''}\n </Text>\n </div>\n )}\n\n {/* Loading Spinner */}\n {!!isLoading && !showCount && (\n <div\n className={cn(\n 'pointer-events-none absolute top-2 right-3',\n hasError ? 'text-destructive' : 'text-muted-foreground/80'\n )}\n >\n <Loader2Icon size={16} className=\"animate-spin\" aria-hidden=\"true\" />\n </div>\n )}\n\n {/* Clear Button */}\n {!!showClearButton && !showCount && (\n <button\n type=\"button\"\n className=\"text-muted-foreground/80 hover:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 absolute top-2 right-2 flex h-6 w-6 items-center justify-center rounded transition-[color,box-shadow] outline-none focus-visible:z-10 focus-visible:ring-[3px] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50\"\n aria-label={strings.clear}\n onClick={handleClear}\n disabled={isLoading}\n >\n <CircleXIcon size={14} aria-hidden=\"true\" />\n </button>\n )}\n </div>\n );\n};\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(TextareaImpl);\nTextarea.displayName = 'Textarea';\n\nexport { Textarea };\n"],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import { cn as e } from "../lib/utils.js";
2
+ import { t } from "./slot-BgnZtKR5.js";
3
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
4
+ import { Tooltip as i } from "@base-ui/react/tooltip";
5
+ //#region src/components/ui/tooltip.tsx
6
+ function a({ delay: e = 0, delayDuration: t, ...r }) {
7
+ return /* @__PURE__ */ n(i.Provider, {
8
+ "data-slot": "tooltip-provider",
9
+ delay: t ?? e,
10
+ ...r
11
+ });
12
+ }
13
+ function o({ ...e }) {
14
+ return /* @__PURE__ */ n(a, { children: /* @__PURE__ */ n(i.Root, {
15
+ "data-slot": "tooltip",
16
+ ...e
17
+ }) });
18
+ }
19
+ function s({ asChild: e = !1, render: r, children: a, ...o }) {
20
+ let s = e ? /* @__PURE__ */ n(t, {}) : void 0, c = typeof r == "function" ? ((e, t) => {
21
+ let { nativeButton: n, ...i } = e;
22
+ return r(i, t);
23
+ }) : r;
24
+ return /* @__PURE__ */ n(i.Trigger, {
25
+ "data-slot": "tooltip-trigger",
26
+ render: s ?? c,
27
+ ...o,
28
+ children: a
29
+ });
30
+ }
31
+ function c({ className: t, side: a = "top", sideOffset: o = 4, align: s = "center", alignOffset: c = 0, children: l, ...u }) {
32
+ return /* @__PURE__ */ n(i.Portal, { children: /* @__PURE__ */ n(i.Positioner, {
33
+ align: s,
34
+ alignOffset: c,
35
+ side: a,
36
+ sideOffset: o,
37
+ className: "isolate z-50",
38
+ children: /* @__PURE__ */ r(i.Popup, {
39
+ "data-slot": "tooltip-content",
40
+ className: e("data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 rounded-md px-3 py-1.5 text-xs data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 bg-foreground text-background z-50 w-fit max-w-xs origin-(--transform-origin)", t),
41
+ ...u,
42
+ children: [l, /* @__PURE__ */ n(i.Arrow, { className: "size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2 data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2 bg-foreground fill-foreground z-50 data-[side=bottom]:top-1 data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2 data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5" })]
43
+ })
44
+ }) });
45
+ }
46
+ //#endregion
47
+ export { s as i, c as n, a as r, o as t };
48
+
49
+ //# sourceMappingURL=tooltip-Cws4BiPT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip-Cws4BiPT.js","names":[],"sources":["../../src/components/ui/tooltip.tsx"],"sourcesContent":["import { Tooltip as TooltipPrimitive } from \"@base-ui/react/tooltip\"\n\nimport { Slot } from \"@/components/ui/slot\"\nimport { cn } from \"@/lib/utils\"\n\nfunction TooltipProvider({\n delay = 0,\n delayDuration,\n ...props\n}: TooltipPrimitive.Provider.Props & { delayDuration?: number }) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delay={delayDuration ?? delay}\n {...props}\n />\n )\n}\n\nfunction Tooltip({ ...props }: TooltipPrimitive.Root.Props) {\n return (\n <TooltipProvider>\n <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n </TooltipProvider>\n )\n}\n\nfunction TooltipTrigger({\n asChild = false,\n render,\n children,\n ...props\n}: TooltipPrimitive.Trigger.Props & { asChild?: boolean }) {\n const slotRender = asChild ? <Slot /> : undefined\n const safeRender: TooltipPrimitive.Trigger.Props[\"render\"] = typeof render === \"function\"\n ? ((renderProps, state) => {\n const { nativeButton: _nativeButton, ...rest } = renderProps as Record<string, unknown>\n void _nativeButton\n return render(rest as typeof renderProps, state)\n })\n : render\n\n return (\n <TooltipPrimitive.Trigger\n data-slot=\"tooltip-trigger\"\n render={slotRender ?? safeRender}\n {...props}\n >\n {children}\n </TooltipPrimitive.Trigger>\n )\n}\n\nfunction TooltipContent({\n className,\n side = \"top\",\n sideOffset = 4,\n align = \"center\",\n alignOffset = 0,\n children,\n ...props\n}: TooltipPrimitive.Popup.Props &\n Pick<\n TooltipPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\"\n >) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className=\"isolate z-50\"\n >\n <TooltipPrimitive.Popup\n data-slot=\"tooltip-content\"\n className={cn(\n \"data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 rounded-md px-3 py-1.5 text-xs data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 bg-foreground text-background z-50 w-fit max-w-xs origin-(--transform-origin)\",\n className\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2 data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2 bg-foreground fill-foreground z-50 data-[side=bottom]:top-1 data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2 data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5\" />\n </TooltipPrimitive.Popup>\n </TooltipPrimitive.Positioner>\n </TooltipPrimitive.Portal>\n )\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n"],"mappings":";;;;;AAKA,SAAS,EAAgB,EACvB,WAAQ,GACR,kBACA,GAAG,KAC4D;AAC/D,QACE,kBAAC,EAAiB,UAAlB;EACE,aAAU;EACV,OAAO,KAAiB;EACxB,GAAI;EACJ,CAAA;;AAIN,SAAS,EAAQ,EAAE,GAAG,KAAsC;AAC1D,QACE,kBAAC,GAAD,EAAA,UACE,kBAAC,EAAiB,MAAlB;EAAuB,aAAU;EAAU,GAAI;EAAS,CAAA,EACxC,CAAA;;AAItB,SAAS,EAAe,EACtB,aAAU,IACV,WACA,aACA,GAAG,KACsD;CACzD,IAAM,IAAa,IAAU,kBAAC,GAAD,EAAQ,CAAA,GAAG,KAAA,GAClC,IAAuD,OAAO,KAAW,eACzE,GAAa,MAAU;EACzB,IAAM,EAAE,cAAc,GAAe,GAAG,MAAS;AAEjD,SAAO,EAAO,GAA4B,EAAM;MAEhD;AAEJ,QACE,kBAAC,EAAiB,SAAlB;EACE,aAAU;EACV,QAAQ,KAAc;EACtB,GAAI;EAEH;EACwB,CAAA;;AAI/B,SAAS,EAAe,EACtB,cACA,UAAO,OACP,gBAAa,GACb,WAAQ,UACR,iBAAc,GACd,aACA,GAAG,KAKA;AACH,QACE,kBAAC,EAAiB,QAAlB,EAAA,UACE,kBAAC,EAAiB,YAAlB;EACS;EACM;EACP;EACM;EACZ,WAAU;YAEV,kBAAC,EAAiB,OAAlB;GACE,aAAU;GACV,WAAW,EACT,0lBACA,EACD;GACD,GAAI;aANN,CAQG,GACD,kBAAC,EAAiB,OAAlB,EAAwB,WAAU,8hBAA+hB,CAAA,CAC1iB;;EACG,CAAA,EACN,CAAA"}
@@ -0,0 +1,2 @@
1
+ require(`./chunk-D3uCBrYO.cjs`);const e=require(`../lib/utils.cjs`),t=require(`./slot-Dac1ipUC.cjs`);let n=require(`react/jsx-runtime`),r=require(`@base-ui/react/tooltip`);function i({delay:e=0,delayDuration:t,...i}){return(0,n.jsx)(r.Tooltip.Provider,{"data-slot":`tooltip-provider`,delay:t??e,...i})}function a({...e}){return(0,n.jsx)(i,{children:(0,n.jsx)(r.Tooltip.Root,{"data-slot":`tooltip`,...e})})}function o({asChild:e=!1,render:i,children:a,...o}){let s=e?(0,n.jsx)(t.t,{}):void 0,c=typeof i==`function`?((e,t)=>{let{nativeButton:n,...r}=e;return i(r,t)}):i;return(0,n.jsx)(r.Tooltip.Trigger,{"data-slot":`tooltip-trigger`,render:s??c,...o,children:a})}function s({className:t,side:i=`top`,sideOffset:a=4,align:o=`center`,alignOffset:s=0,children:c,...l}){return(0,n.jsx)(r.Tooltip.Portal,{children:(0,n.jsx)(r.Tooltip.Positioner,{align:o,alignOffset:s,side:i,sideOffset:a,className:`isolate z-50`,children:(0,n.jsxs)(r.Tooltip.Popup,{"data-slot":`tooltip-content`,className:e.cn(`data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 rounded-md px-3 py-1.5 text-xs data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 bg-foreground text-background z-50 w-fit max-w-xs origin-(--transform-origin)`,t),...l,children:[c,(0,n.jsx)(r.Tooltip.Arrow,{className:`size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2 data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2 bg-foreground fill-foreground z-50 data-[side=bottom]:top-1 data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2 data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5`})]})})})}Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}});
2
+ //# sourceMappingURL=tooltip-DyUi-Tac.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip-DyUi-Tac.cjs","names":[],"sources":["../../src/components/ui/tooltip.tsx"],"sourcesContent":["import { Tooltip as TooltipPrimitive } from \"@base-ui/react/tooltip\"\n\nimport { Slot } from \"@/components/ui/slot\"\nimport { cn } from \"@/lib/utils\"\n\nfunction TooltipProvider({\n delay = 0,\n delayDuration,\n ...props\n}: TooltipPrimitive.Provider.Props & { delayDuration?: number }) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delay={delayDuration ?? delay}\n {...props}\n />\n )\n}\n\nfunction Tooltip({ ...props }: TooltipPrimitive.Root.Props) {\n return (\n <TooltipProvider>\n <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n </TooltipProvider>\n )\n}\n\nfunction TooltipTrigger({\n asChild = false,\n render,\n children,\n ...props\n}: TooltipPrimitive.Trigger.Props & { asChild?: boolean }) {\n const slotRender = asChild ? <Slot /> : undefined\n const safeRender: TooltipPrimitive.Trigger.Props[\"render\"] = typeof render === \"function\"\n ? ((renderProps, state) => {\n const { nativeButton: _nativeButton, ...rest } = renderProps as Record<string, unknown>\n void _nativeButton\n return render(rest as typeof renderProps, state)\n })\n : render\n\n return (\n <TooltipPrimitive.Trigger\n data-slot=\"tooltip-trigger\"\n render={slotRender ?? safeRender}\n {...props}\n >\n {children}\n </TooltipPrimitive.Trigger>\n )\n}\n\nfunction TooltipContent({\n className,\n side = \"top\",\n sideOffset = 4,\n align = \"center\",\n alignOffset = 0,\n children,\n ...props\n}: TooltipPrimitive.Popup.Props &\n Pick<\n TooltipPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\"\n >) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className=\"isolate z-50\"\n >\n <TooltipPrimitive.Popup\n data-slot=\"tooltip-content\"\n className={cn(\n \"data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 rounded-md px-3 py-1.5 text-xs data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 bg-foreground text-background z-50 w-fit max-w-xs origin-(--transform-origin)\",\n className\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2 data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2 bg-foreground fill-foreground z-50 data-[side=bottom]:top-1 data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2 data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5\" />\n </TooltipPrimitive.Popup>\n </TooltipPrimitive.Positioner>\n </TooltipPrimitive.Portal>\n )\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n"],"mappings":"4KAKA,SAAS,EAAgB,CACvB,QAAQ,EACR,gBACA,GAAG,GAC4D,CAC/D,OACE,EAAA,EAAA,KAAC,EAAA,QAAiB,SAAlB,CACE,YAAU,mBACV,MAAO,GAAiB,EACxB,GAAI,EACJ,CAAA,CAIN,SAAS,EAAQ,CAAE,GAAG,GAAsC,CAC1D,OACE,EAAA,EAAA,KAAC,EAAD,CAAA,UACE,EAAA,EAAA,KAAC,EAAA,QAAiB,KAAlB,CAAuB,YAAU,UAAU,GAAI,EAAS,CAAA,CACxC,CAAA,CAItB,SAAS,EAAe,CACtB,UAAU,GACV,SACA,WACA,GAAG,GACsD,CACzD,IAAM,EAAa,GAAU,EAAA,EAAA,KAAC,EAAA,EAAD,EAAQ,CAAA,CAAG,IAAA,GAClC,EAAuD,OAAO,GAAW,aACzE,EAAa,IAAU,CACzB,GAAM,CAAE,aAAc,EAAe,GAAG,GAAS,EAEjD,OAAO,EAAO,EAA4B,EAAM,GAEhD,EAEJ,OACE,EAAA,EAAA,KAAC,EAAA,QAAiB,QAAlB,CACE,YAAU,kBACV,OAAQ,GAAc,EACtB,GAAI,EAEH,WACwB,CAAA,CAI/B,SAAS,EAAe,CACtB,YACA,OAAO,MACP,aAAa,EACb,QAAQ,SACR,cAAc,EACd,WACA,GAAG,GAKA,CACH,OACE,EAAA,EAAA,KAAC,EAAA,QAAiB,OAAlB,CAAA,UACE,EAAA,EAAA,KAAC,EAAA,QAAiB,WAAlB,CACS,QACM,cACP,OACM,aACZ,UAAU,yBAEV,EAAA,EAAA,MAAC,EAAA,QAAiB,MAAlB,CACE,YAAU,kBACV,UAAW,EAAA,GACT,ylBACA,EACD,CACD,GAAI,WANN,CAQG,GACD,EAAA,EAAA,KAAC,EAAA,QAAiB,MAAlB,CAAwB,UAAU,6hBAA+hB,CAAA,CAC1iB,GACG,CAAA,CACN,CAAA"}
@@ -0,0 +1,2 @@
1
+ require(`./chunk-D3uCBrYO.cjs`);const e=require(`./ui-provider-uiQgATj1.cjs`),t=require(`../lib/utils.cjs`),n=require(`./text-DBnY6fcL.cjs`);let r=require(`react/jsx-runtime`);var i={xs:`text-xs`,sm:`text-sm`,base:`text-base`};function a(e,t){return e??t??`sm`}function o({content:n,className:o=``,children:s,size:c,...l}){let{defaultLabelSize:u}=e.s(),d=a(c,u);return(0,r.jsx)(`label`,{...l,"data-typography":`label`,className:t.cn(`font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-50`,i[d],o),children:s||n})}o.displayName=`Label`;var s={inherit:`text-inherit`,sm:`text-sm`,xs:`text-xs`,base:`text-base`,lg:`text-lg`,xl:`text-xl`},c={main:`text-foreground`,inverse:`text-background`,secondary:`text-muted-foreground`,discrete:`text-muted-foreground/50`,error:`text-destructive`,success:`text-success`,primary:`text-primary`},l={normal:`leading-normal`,relaxed:`leading-relaxed`,loose:`leading-loose`,tight:`leading-tight`,snug:`leading-snug`,none:`leading-none`},u={regular:`font-normal`,medium:`font-medium`,semibold:`font-semibold`,bold:`font-bold`},d={center:`text-center`,right:`text-right`,left:`text-left`};function f({type:e=`main`,size:n=`sm`,align:i=`left`,lineHeight:a=`normal`,weight:o=`regular`,className:f=``,underline:p=!0,children:m,...h}){return(0,r.jsx)(`a`,{className:t.cn(c[e],s[n],d[i],l[a],u[o],p&&`underline decoration-neutral-300 underline-offset-4 transition-colors duration-300 ease-out hover:decoration-current! dark:decoration-neutral-500`,f),"data-typography":`link`,...h,children:m})}f.displayName=`TextLink`;var p={primary:`bg-primary text-primary-foreground`,success:`bg-success text-success-foreground`,error:`bg-destructive text-destructive-foreground`,warning:`bg-warning text-warning-foreground`},m={primary:`decoration-primary`,success:`decoration-success`,error:`decoration-destructive`,warning:`decoration-warning`};function h({content:e,variant:n=`primary`}){return(0,r.jsx)(`span`,{className:t.cn(`px-1.5 py-0.5 rounded-sm`,p[n]),children:e})}function g({content:e,variant:n=`primary`}){return(0,r.jsx)(`span`,{className:t.cn(`underline underline-offset-4 decoration-2`,m[n]),children:e})}function _({children:e,...t}){return(0,r.jsx)(`p`,{className:`__html_content`,dangerouslySetInnerHTML:{__html:n.n(typeof e==`string`?e:``)},...t})}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return _}});
2
+ //# sourceMappingURL=typography-BW7iZBx7.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typography-BW7iZBx7.cjs","names":[],"sources":["../../src/components/typography/label.tsx","../../src/components/typography/text-link.tsx","../../src/components/typography/typography.tsx"],"sourcesContent":["/**\n * Label — design-system label primitive for form fields and discrete UI captions.\n * Carries `data-typography=\"label\"` so the global `--label-font-scale` knob\n * scales every label without per-instance overrides. Pair with form fields and\n * any `peer` input pattern; the built-in disabled styles propagate from sibling.\n */\nimport type { LabelHTMLAttributes, ReactNode } from 'react';\n\nimport { useFormsConfig, type FormLabelSize } from '@/lib/ui-provider';\nimport { cn } from '@/lib/utils';\n\nconst labelSizeClasses: Record<FormLabelSize, string> = {\n\txs: 'text-xs',\n\tsm: 'text-sm',\n\tbase: 'text-base',\n};\n\nfunction resolveLabelSize(\n\tsizeProp: FormLabelSize | undefined,\n\tdefaultLabelSize: FormLabelSize | undefined,\n): FormLabelSize {\n\treturn sizeProp ?? defaultLabelSize ?? 'sm';\n}\n\nexport type LabelProps = {\n\tcontent?: ReactNode;\n\tclassName?: string;\n\tsize?: FormLabelSize;\n} & LabelHTMLAttributes<HTMLLabelElement>;\n\nfunction Label({ content, className = '', children, size: sizeProp, ...props }: LabelProps) {\n\tconst { defaultLabelSize } = useFormsConfig();\n\tconst size = resolveLabelSize(sizeProp, defaultLabelSize);\n\n\treturn (\n\t\t<label\n\t\t\t{...props}\n\t\t\tdata-typography=\"label\"\n\t\t\tclassName={cn(\n\t\t\t\t'font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n\t\t\t\tlabelSizeClasses[size],\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{children || content}\n\t\t</label>\n\t);\n}\n\nLabel.displayName = 'Label';\n\nexport default Label;\n","/**\n * TextLink — anchor variant of Text. Mirrors Text's `size`, `type`, `weight`,\n * `align`, and `lineHeight` props for consistency, with an optional `underline`\n * (default true). Carries `data-typography=\"link\"` so the global\n * `--link-font-scale` knob applies cleanly.\n */\nimport type { AnchorHTMLAttributes } from 'react';\n\nimport { cn } from '@/lib/utils';\n\nconst sizes = {\n\tinherit: 'text-inherit',\n\tsm: 'text-sm',\n\txs: 'text-xs',\n\tbase: 'text-base',\n\tlg: 'text-lg',\n\txl: 'text-xl',\n};\n\nconst types = {\n\tmain: 'text-foreground',\n\tinverse: 'text-background',\n\tsecondary: 'text-muted-foreground',\n\tdiscrete: 'text-muted-foreground/50',\n\terror: 'text-destructive',\n\tsuccess: 'text-success',\n\tprimary: 'text-primary',\n};\n\nconst lineHeights = {\n\tnormal: 'leading-normal',\n\trelaxed: 'leading-relaxed',\n\tloose: 'leading-loose',\n\ttight: 'leading-tight',\n\tsnug: 'leading-snug',\n\tnone: 'leading-none',\n};\n\nconst weights = {\n\tregular: 'font-normal',\n\tmedium: 'font-medium',\n\tsemibold: 'font-semibold',\n\tbold: 'font-bold',\n};\n\nconst alignment = { center: 'text-center', right: 'text-right', left: 'text-left' };\n\nexport interface TextLinkProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'type'> {\n\ttype?: keyof typeof types;\n\tsize?: keyof typeof sizes;\n\talign?: keyof typeof alignment;\n\tlineHeight?: keyof typeof lineHeights;\n\tweight?: keyof typeof weights;\n\tclassName?: string;\n\tunderline?: boolean;\n}\n\nfunction TextLink({\n\ttype = 'main',\n\tsize = 'sm',\n\talign = 'left',\n\tlineHeight = 'normal',\n\tweight = 'regular',\n\tclassName = '',\n\tunderline = true,\n\tchildren,\n\t...linkProps\n}: TextLinkProps) {\n\tconst textClassnames = cn(\n\t\ttypes[type],\n\t\tsizes[size],\n\t\talignment[align],\n\t\tlineHeights[lineHeight],\n\t\tweights[weight],\n\t\tunderline &&\n\t\t\t'underline decoration-neutral-300 underline-offset-4 transition-colors duration-300 ease-out hover:decoration-current! dark:decoration-neutral-500',\n\t\tclassName,\n\t);\n\n\treturn (\n\t\t<a className={textClassnames} data-typography=\"link\" {...linkProps}>\n\t\t\t{children}\n\t\t</a>\n\t);\n}\n\nTextLink.displayName = 'TextLink';\n\nexport default TextLink;\n","import type { ParamHTMLAttributes } from 'react';\n\nimport { sanitizeHtml } from '@/lib/sanitize-html';\nimport { cn } from '@/lib/utils';\n\nexport type Variants = 'primary' | 'success' | 'warning' | 'error';\n\nexport interface IVariant {\n\tvariant?: Variants;\n\tcontent: string;\n}\n\nconst highlightTypes = {\n\tprimary: 'bg-primary text-primary-foreground',\n\tsuccess: 'bg-success text-success-foreground',\n\terror: 'bg-destructive text-destructive-foreground',\n\twarning: 'bg-warning text-warning-foreground',\n};\n\nconst underlineTypes = {\n\tprimary: 'decoration-primary',\n\tsuccess: 'decoration-success',\n\terror: 'decoration-destructive',\n\twarning: 'decoration-warning',\n};\n\nexport function HighLight({ content, variant = 'primary' }: IVariant) {\n\tconst highlightClassNames = cn('px-1.5 py-0.5 rounded-sm', highlightTypes[variant]);\n\treturn <span className={highlightClassNames}>{content}</span>;\n};\n\nexport function Underline({ content, variant = 'primary' }: IVariant) {\n\tconst underlineClassNames = cn(\n\t\t'underline underline-offset-4 decoration-2',\n\t\tunderlineTypes[variant],\n\t);\n\treturn <span className={underlineClassNames}>{content}</span>;\n};\n\nexport function DangerousHTML({ children, ...props }: ParamHTMLAttributes<HTMLParagraphElement>) {\n\tconst sanitized = sanitizeHtml(typeof children === 'string' ? children : '');\n\treturn (\n\t\t<p\n\t\t\tclassName=\"__html_content\"\n\t\t\tdangerouslySetInnerHTML={{ __html: sanitized }}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n"],"mappings":"gLAWA,IAAM,EAAkD,CACvD,GAAI,UACJ,GAAI,UACJ,KAAM,YACN,CAED,SAAS,EACR,EACA,EACgB,CAChB,OAAO,GAAY,GAAoB,KASxC,SAAS,EAAM,CAAE,UAAS,YAAY,GAAI,WAAU,KAAM,EAAU,GAAG,GAAqB,CAC3F,GAAM,CAAE,oBAAqB,EAAA,GAAgB,CACvC,EAAO,EAAiB,EAAU,EAAiB,CAEzD,OACC,EAAA,EAAA,KAAC,QAAD,CACC,GAAI,EACJ,kBAAgB,QAChB,UAAW,EAAA,GACV,qFACA,EAAiB,GACjB,EACA,UAEA,GAAY,EACN,CAAA,CAIV,EAAM,YAAc,QCvCpB,IAAM,EAAQ,CACb,QAAS,eACT,GAAI,UACJ,GAAI,UACJ,KAAM,YACN,GAAI,UACJ,GAAI,UACJ,CAEK,EAAQ,CACb,KAAM,kBACN,QAAS,kBACT,UAAW,wBACX,SAAU,2BACV,MAAO,mBACP,QAAS,eACT,QAAS,eACT,CAEK,EAAc,CACnB,OAAQ,iBACR,QAAS,kBACT,MAAO,gBACP,MAAO,gBACP,KAAM,eACN,KAAM,eACN,CAEK,EAAU,CACf,QAAS,cACT,OAAQ,cACR,SAAU,gBACV,KAAM,YACN,CAEK,EAAY,CAAE,OAAQ,cAAe,MAAO,aAAc,KAAM,YAAa,CAYnF,SAAS,EAAS,CACjB,OAAO,OACP,OAAO,KACP,QAAQ,OACR,aAAa,SACb,SAAS,UACT,YAAY,GACZ,YAAY,GACZ,WACA,GAAG,GACc,CAYjB,OACC,EAAA,EAAA,KAAC,IAAD,CAAG,UAZmB,EAAA,GACtB,EAAM,GACN,EAAM,GACN,EAAU,GACV,EAAY,GACZ,EAAQ,GACR,GACC,oJACD,EAIc,CAAgB,kBAAgB,OAAO,GAAI,EACvD,WACE,CAAA,CAIN,EAAS,YAAc,WC1EvB,IAAM,EAAiB,CACtB,QAAS,qCACT,QAAS,qCACT,MAAO,6CACP,QAAS,qCACT,CAEK,EAAiB,CACtB,QAAS,qBACT,QAAS,qBACT,MAAO,yBACP,QAAS,qBACT,CAED,SAAgB,EAAU,CAAE,UAAS,UAAU,WAAuB,CAErE,OAAO,EAAA,EAAA,KAAC,OAAD,CAAM,UADe,EAAA,GAAG,2BAA4B,EAAe,GAClD,UAAsB,EAAe,CAAA,CAG9D,SAAgB,EAAU,CAAE,UAAS,UAAU,WAAuB,CAKrE,OAAO,EAAA,EAAA,KAAC,OAAD,CAAM,UAJe,EAAA,GAC3B,4CACA,EAAe,GAEQ,UAAsB,EAAe,CAAA,CAG9D,SAAgB,EAAc,CAAE,WAAU,GAAG,GAAoD,CAEhG,OACC,EAAA,EAAA,KAAC,IAAD,CACC,UAAU,iBACV,wBAAyB,CAAE,OAJX,EAAA,EAAa,OAAO,GAAa,SAAW,EAAW,GAIpC,CAAW,CAC9C,GAAI,EACH,CAAA"}