admin-ui-starter-kit 0.6.6 → 0.6.8

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 (1256) hide show
  1. package/.agents/skills/component-library-rules/SKILL.md +2 -2
  2. package/.agents/skills/component-library-rules/references/components/INDEX.json +15 -1
  3. package/.agents/skills/component-library-rules/references/components/INDEX.md +15 -1
  4. package/.agents/skills/component-library-rules/references/components/base__boolean-indicator.md +33 -0
  5. package/.agents/skills/component-library-rules/references/components/base__cards.md +7 -6
  6. package/.agents/skills/component-library-rules/references/components/base__carousel.md +4 -4
  7. package/.agents/skills/component-library-rules/references/components/base__collapsible.md +39 -0
  8. package/.agents/skills/component-library-rules/references/components/base__combobox.md +1 -1
  9. package/.agents/skills/component-library-rules/references/components/base__conditional-rendering.md +39 -0
  10. package/.agents/skills/component-library-rules/references/components/base__css-variables.md +2 -1
  11. package/.agents/skills/component-library-rules/references/components/base__date-block.md +39 -0
  12. package/.agents/skills/component-library-rules/references/components/base__dialog.md +39 -0
  13. package/.agents/skills/component-library-rules/references/components/base__display-utilities.md +59 -95
  14. package/.agents/skills/component-library-rules/references/components/base__event-calendar.md +1 -1
  15. package/.agents/skills/component-library-rules/references/components/base__item.md +4 -3
  16. package/.agents/skills/component-library-rules/references/components/base__money-display.md +39 -0
  17. package/.agents/skills/component-library-rules/references/components/base__notification-banner.md +39 -0
  18. package/.agents/skills/component-library-rules/references/components/base__placeholder-pattern.md +39 -0
  19. package/.agents/skills/component-library-rules/references/components/base__progress.md +33 -0
  20. package/.agents/skills/component-library-rules/references/components/base__qr-code.md +39 -0
  21. package/.agents/skills/component-library-rules/references/components/base__separator.md +33 -0
  22. package/.agents/skills/component-library-rules/references/components/base__skeleton.md +55 -0
  23. package/.agents/skills/component-library-rules/references/components/base__throttle-alert.md +39 -0
  24. package/.agents/skills/component-library-rules/references/components/base__typography.md +1 -1
  25. package/.agents/skills/component-library-rules/references/components/base__visually-hidden.md +39 -0
  26. package/.agents/skills/component-library-rules/references/components/composed__metadata-list.md +3 -3
  27. package/.agents/skills/component-library-rules/references/components/features__activities.md +1 -1
  28. package/.agents/skills/component-library-rules/references/components/features__enhanced-activities.md +6 -6
  29. package/.agents/skills/component-library-rules/references/components/features__metrics-overview.md +3 -3
  30. package/.agents/skills/component-library-rules/references/components/features__overlays.md +2 -2
  31. package/.agents/skills/component-library-rules/references/components/features__products.md +1 -1
  32. package/.agents/skills/component-library-rules/references/components/layout__layout-app-shell.md +1 -1
  33. package/.agents/skills/component-library-rules/references/components/layout__layout-containers.md +1 -1
  34. package/.agents/skills/component-library-rules/references/components/layout__layout-page.md +2 -1
  35. package/.agents/skills/component-library-rules/references/components/layout__layout-sidebar.md +2 -2
  36. package/.agents/skills/component-library-rules/references/ui-provider.md +2 -2
  37. package/dist/_shared/accordion-8B4OFqiT.cjs +2 -0
  38. package/dist/_shared/accordion-8B4OFqiT.cjs.map +1 -0
  39. package/dist/_shared/accordion-DlpTSZ3p.js +135 -0
  40. package/dist/_shared/accordion-DlpTSZ3p.js.map +1 -0
  41. package/dist/_shared/action-menu-BYrYdpkR.cjs +2 -0
  42. package/dist/_shared/action-menu-BYrYdpkR.cjs.map +1 -0
  43. package/dist/_shared/action-menu-CYwMZX-b.js +96 -0
  44. package/dist/_shared/action-menu-CYwMZX-b.js.map +1 -0
  45. package/dist/_shared/ai-artifact-BylloxGO.js +1099 -0
  46. package/dist/_shared/ai-artifact-BylloxGO.js.map +1 -0
  47. package/dist/_shared/ai-artifact-DfT97Mpi.cjs +3 -0
  48. package/dist/_shared/ai-artifact-DfT97Mpi.cjs.map +1 -0
  49. package/dist/_shared/auth-1Ht9Kevx.js +643 -0
  50. package/dist/_shared/auth-1Ht9Kevx.js.map +1 -0
  51. package/dist/_shared/auth-DTN6sFXM.cjs +2 -0
  52. package/dist/_shared/auth-DTN6sFXM.cjs.map +1 -0
  53. package/dist/_shared/badge-LSAgdmGt.cjs +2 -0
  54. package/dist/_shared/badge-LSAgdmGt.cjs.map +1 -0
  55. package/dist/_shared/badge-nZ2zbAV4.js +110 -0
  56. package/dist/_shared/badge-nZ2zbAV4.js.map +1 -0
  57. package/dist/_shared/button-Be2ayMxF.js +192 -0
  58. package/dist/_shared/button-Be2ayMxF.js.map +1 -0
  59. package/dist/_shared/button-CfQtOuBK.cjs +2 -0
  60. package/dist/_shared/button-CfQtOuBK.cjs.map +1 -0
  61. package/dist/_shared/buttons-DABiSx6N.cjs +2 -0
  62. package/dist/_shared/buttons-DABiSx6N.cjs.map +1 -0
  63. package/dist/_shared/buttons-DYQqQPpk.js +137 -0
  64. package/dist/_shared/buttons-DYQqQPpk.js.map +1 -0
  65. package/dist/_shared/card-radio-group-DKhZhBFV.cjs +2 -0
  66. package/dist/_shared/card-radio-group-DKhZhBFV.cjs.map +1 -0
  67. package/dist/_shared/card-radio-group-DRjmLN5s.js +150 -0
  68. package/dist/_shared/card-radio-group-DRjmLN5s.js.map +1 -0
  69. package/dist/_shared/cards-BJctT9KD.js +428 -0
  70. package/dist/_shared/cards-BJctT9KD.js.map +1 -0
  71. package/dist/_shared/cards-m03XN10f.cjs +2 -0
  72. package/dist/_shared/cards-m03XN10f.cjs.map +1 -0
  73. package/dist/_shared/combobox-BdBpeD3C.cjs +2 -0
  74. package/dist/_shared/combobox-BdBpeD3C.cjs.map +1 -0
  75. package/dist/_shared/combobox-D9tU_83-.js +954 -0
  76. package/dist/_shared/combobox-D9tU_83-.js.map +1 -0
  77. package/dist/_shared/command-BbJB0pjP.cjs +2 -0
  78. package/dist/_shared/command-BbJB0pjP.cjs.map +1 -0
  79. package/dist/_shared/command-IP2wy_HN.js +39 -0
  80. package/dist/_shared/command-IP2wy_HN.js.map +1 -0
  81. package/dist/_shared/comments-B_WKQUol.js +952 -0
  82. package/dist/_shared/comments-B_WKQUol.js.map +1 -0
  83. package/dist/_shared/comments-DMHMNObS.cjs +2 -0
  84. package/dist/_shared/comments-DMHMNObS.cjs.map +1 -0
  85. package/dist/_shared/copyable-BJYx2SlN.js +38 -0
  86. package/dist/_shared/copyable-BJYx2SlN.js.map +1 -0
  87. package/dist/_shared/copyable-DiDEjp8Z.cjs +2 -0
  88. package/dist/_shared/copyable-DiDEjp8Z.cjs.map +1 -0
  89. package/dist/_shared/data-display-4E_irfF2.js +1878 -0
  90. package/dist/_shared/data-display-4E_irfF2.js.map +1 -0
  91. package/dist/_shared/data-display-BPn-7qFO.cjs +2 -0
  92. package/dist/_shared/data-display-BPn-7qFO.cjs.map +1 -0
  93. package/dist/_shared/date-picker-CvqLnlxm.js +1361 -0
  94. package/dist/_shared/date-picker-CvqLnlxm.js.map +1 -0
  95. package/dist/_shared/date-picker-D83fCi2g.cjs +2 -0
  96. package/dist/_shared/date-picker-D83fCi2g.cjs.map +1 -0
  97. package/dist/_shared/date-pickers-C6ku2BPp.cjs +2 -0
  98. package/dist/_shared/date-pickers-C6ku2BPp.cjs.map +1 -0
  99. package/dist/_shared/date-pickers-RdbwIhdY.js +329 -0
  100. package/dist/_shared/date-pickers-RdbwIhdY.js.map +1 -0
  101. package/dist/_shared/display-DFVeSuWL.js +986 -0
  102. package/dist/_shared/display-DFVeSuWL.js.map +1 -0
  103. package/dist/_shared/display-Lr3xTd4a.cjs +2 -0
  104. package/dist/_shared/display-Lr3xTd4a.cjs.map +1 -0
  105. package/dist/_shared/forms-BA8Aa_fi.js +3534 -0
  106. package/dist/_shared/forms-BA8Aa_fi.js.map +1 -0
  107. package/dist/_shared/forms-CNjjdFcf.cjs +2 -0
  108. package/dist/_shared/forms-CNjjdFcf.cjs.map +1 -0
  109. package/dist/_shared/header-BEsz1_so.cjs +2 -0
  110. package/dist/_shared/header-BEsz1_so.cjs.map +1 -0
  111. package/dist/_shared/header-bJx8z6zT.js +447 -0
  112. package/dist/_shared/header-bJx8z6zT.js.map +1 -0
  113. package/dist/_shared/hooks-gRgVhyY2.js +95 -0
  114. package/dist/_shared/hooks-gRgVhyY2.js.map +1 -0
  115. package/dist/_shared/hooks-nFiRfUxX.cjs +2 -0
  116. package/dist/_shared/hooks-nFiRfUxX.cjs.map +1 -0
  117. package/dist/_shared/input-CzJzVyQ0.js +182 -0
  118. package/dist/_shared/input-CzJzVyQ0.js.map +1 -0
  119. package/dist/_shared/input-Dvvmn96E.cjs +2 -0
  120. package/dist/_shared/input-Dvvmn96E.cjs.map +1 -0
  121. package/dist/_shared/item-CVjjpHQd.js +226 -0
  122. package/dist/_shared/item-CVjjpHQd.js.map +1 -0
  123. package/dist/_shared/item-ChHblHhR.cjs +2 -0
  124. package/dist/_shared/item-ChHblHhR.cjs.map +1 -0
  125. package/dist/_shared/layout-C_dYiKtE.cjs +2 -0
  126. package/dist/_shared/layout-C_dYiKtE.cjs.map +1 -0
  127. package/dist/_shared/layout-nigj488k.js +268 -0
  128. package/dist/_shared/layout-nigj488k.js.map +1 -0
  129. package/dist/_shared/mentions-BE51BNeq.cjs +2 -0
  130. package/dist/_shared/mentions-BE51BNeq.cjs.map +1 -0
  131. package/dist/_shared/mentions-CBhP29St.js +506 -0
  132. package/dist/_shared/mentions-CBhP29St.js.map +1 -0
  133. package/dist/_shared/money-display-BFk9Gu21.cjs +2 -0
  134. package/dist/_shared/money-display-BFk9Gu21.cjs.map +1 -0
  135. package/dist/_shared/money-display-DpuLnsK2.js +198 -0
  136. package/dist/_shared/money-display-DpuLnsK2.js.map +1 -0
  137. package/dist/_shared/navigation-CWK_YQ5Y.js +436 -0
  138. package/dist/_shared/navigation-CWK_YQ5Y.js.map +1 -0
  139. package/dist/_shared/navigation-DTBMb7-M.cjs +2 -0
  140. package/dist/_shared/navigation-DTBMb7-M.cjs.map +1 -0
  141. package/dist/_shared/overlays-BJLczwpz.js +735 -0
  142. package/dist/_shared/overlays-BJLczwpz.js.map +1 -0
  143. package/dist/_shared/overlays-DbaPLT67.cjs +2 -0
  144. package/dist/_shared/overlays-DbaPLT67.cjs.map +1 -0
  145. package/dist/_shared/popover-menu-D_t6rCvN.cjs +2 -0
  146. package/dist/_shared/popover-menu-D_t6rCvN.cjs.map +1 -0
  147. package/dist/_shared/popover-menu-f2O6R_27.js +93 -0
  148. package/dist/_shared/popover-menu-f2O6R_27.js.map +1 -0
  149. package/dist/_shared/rich-text-editor-DmZHbsms.js +620 -0
  150. package/dist/_shared/rich-text-editor-DmZHbsms.js.map +1 -0
  151. package/dist/_shared/rich-text-editor-DqUU-H7i.cjs +2 -0
  152. package/dist/_shared/rich-text-editor-DqUU-H7i.cjs.map +1 -0
  153. package/dist/_shared/settings-D-HAOE3R.js +143 -0
  154. package/dist/_shared/settings-D-HAOE3R.js.map +1 -0
  155. package/dist/_shared/settings-DkL3bOk0.cjs +2 -0
  156. package/dist/_shared/settings-DkL3bOk0.cjs.map +1 -0
  157. package/dist/_shared/sidebar-BTyx7ipN.cjs +2 -0
  158. package/dist/_shared/sidebar-BTyx7ipN.cjs.map +1 -0
  159. package/dist/_shared/sidebar-DkBNualh.js +548 -0
  160. package/dist/_shared/sidebar-DkBNualh.js.map +1 -0
  161. package/dist/_shared/skeleton-DwF5VdMh.cjs +2 -0
  162. package/dist/_shared/skeleton-DwF5VdMh.cjs.map +1 -0
  163. package/dist/_shared/skeleton-yUXqeWzB.js +256 -0
  164. package/dist/_shared/skeleton-yUXqeWzB.js.map +1 -0
  165. package/dist/_shared/spinner-BDrUzfTo.cjs +2 -0
  166. package/dist/_shared/spinner-BDrUzfTo.cjs.map +1 -0
  167. package/dist/_shared/spinner-CuVZhJhN.js +67 -0
  168. package/dist/_shared/spinner-CuVZhJhN.js.map +1 -0
  169. package/dist/_shared/table-Cq0jkSm5.js +1377 -0
  170. package/dist/_shared/table-Cq0jkSm5.js.map +1 -0
  171. package/dist/_shared/table-GqTKCC8F.cjs +2 -0
  172. package/dist/_shared/table-GqTKCC8F.cjs.map +1 -0
  173. package/dist/_shared/textarea-C0iZwWdD.js +118 -0
  174. package/dist/_shared/textarea-C0iZwWdD.js.map +1 -0
  175. package/dist/_shared/textarea-bHFAtwYd.cjs +2 -0
  176. package/dist/_shared/textarea-bHFAtwYd.cjs.map +1 -0
  177. package/dist/_shared/typography-5bLhAYaK.js +201 -0
  178. package/dist/_shared/typography-5bLhAYaK.js.map +1 -0
  179. package/dist/_shared/typography-CWEobAJV.cjs +2 -0
  180. package/dist/_shared/typography-CWEobAJV.cjs.map +1 -0
  181. package/dist/_shared/ui-provider-CrsJ_dGn.cjs +2 -0
  182. package/dist/_shared/ui-provider-CrsJ_dGn.cjs.map +1 -0
  183. package/dist/_shared/ui-provider-Dz2qXgZQ.js +89 -0
  184. package/dist/_shared/ui-provider-Dz2qXgZQ.js.map +1 -0
  185. package/dist/_shared/workspace-5UId04M9.js +357 -0
  186. package/dist/_shared/workspace-5UId04M9.js.map +1 -0
  187. package/dist/_shared/workspace-BMws_rFf.cjs +2 -0
  188. package/dist/_shared/workspace-BMws_rFf.cjs.map +1 -0
  189. package/dist/components/base/accordion/index.cjs +1 -1
  190. package/dist/components/base/accordion/index.js +1 -1
  191. package/dist/components/base/badge/index.cjs +1 -1
  192. package/dist/components/base/badge/index.js +1 -1
  193. package/dist/components/base/buttons/button.d.ts.map +1 -1
  194. package/dist/components/base/buttons/index.cjs +1 -1
  195. package/dist/components/base/buttons/index.js +2 -2
  196. package/dist/components/base/buttons/tooltip-button.d.ts.map +1 -1
  197. package/dist/components/base/cards/index.cjs +1 -1
  198. package/dist/components/base/cards/index.js +2 -2
  199. package/dist/components/base/cards/partials/card-primitives.d.ts.map +1 -1
  200. package/dist/components/base/cards/smart-card.d.ts.map +1 -1
  201. package/dist/components/base/cards/smart-card.types.d.ts +7 -3
  202. package/dist/components/base/cards/smart-card.types.d.ts.map +1 -1
  203. package/dist/components/base/carousel/index.cjs +1 -1
  204. package/dist/components/base/carousel/index.js +1 -1
  205. package/dist/components/base/combobox/index.cjs +1 -1
  206. package/dist/components/base/combobox/index.js +1 -1
  207. package/dist/components/base/command/index.cjs +1 -1
  208. package/dist/components/base/command/index.js +1 -1
  209. package/dist/components/base/copyable/index.cjs +1 -1
  210. package/dist/components/base/copyable/index.js +1 -1
  211. package/dist/components/base/currency/index.cjs +1 -1
  212. package/dist/components/base/currency/index.js +1 -1
  213. package/dist/components/base/date-pickers/index.cjs +1 -1
  214. package/dist/components/base/date-pickers/index.js +2 -2
  215. package/dist/components/base/display/chart.cjs +1 -1
  216. package/dist/components/base/display/chart.js +1 -1
  217. package/dist/components/base/display/index.cjs +1 -1
  218. package/dist/components/base/display/index.js +5 -5
  219. package/dist/components/base/display/skeleton.d.ts +52 -1
  220. package/dist/components/base/display/skeleton.d.ts.map +1 -1
  221. package/dist/components/base/event-calendar/index.cjs +1 -1
  222. package/dist/components/base/event-calendar/index.cjs.map +1 -1
  223. package/dist/components/base/event-calendar/index.js +7 -7
  224. package/dist/components/base/event-calendar/index.js.map +1 -1
  225. package/dist/components/base/forms/fields/file-upload.d.ts.map +1 -1
  226. package/dist/components/base/forms/index.cjs +1 -1
  227. package/dist/components/base/forms/index.js +5 -5
  228. package/dist/components/base/item/index.cjs +1 -1
  229. package/dist/components/base/item/index.js +1 -1
  230. package/dist/components/base/item/item.d.ts.map +1 -1
  231. package/dist/components/base/item/item.types.d.ts +3 -0
  232. package/dist/components/base/item/item.types.d.ts.map +1 -1
  233. package/dist/components/base/map/index.cjs +1 -1
  234. package/dist/components/base/map/index.js +2 -2
  235. package/dist/components/base/navigation/index.cjs +1 -1
  236. package/dist/components/base/navigation/index.js +2 -2
  237. package/dist/components/base/popover-menu/index.cjs +1 -1
  238. package/dist/components/base/popover-menu/index.js +1 -1
  239. package/dist/components/base/spinner/index.cjs +1 -1
  240. package/dist/components/base/spinner/index.js +1 -1
  241. package/dist/components/base/table/index.cjs +1 -1
  242. package/dist/components/base/table/index.js +1 -1
  243. package/dist/components/base/table/table-header.d.ts.map +1 -1
  244. package/dist/components/base/toaster/index.cjs +1 -1
  245. package/dist/components/base/toaster/index.cjs.map +1 -1
  246. package/dist/components/base/toaster/index.js +82 -23
  247. package/dist/components/base/toaster/index.js.map +1 -1
  248. package/dist/components/base/toaster/toaster.d.ts +1 -1
  249. package/dist/components/base/toaster/toaster.d.ts.map +1 -1
  250. package/dist/components/composed/admin/api-key-list/api-key-list.d.ts.map +1 -1
  251. package/dist/components/composed/admin/index.cjs +1 -1
  252. package/dist/components/composed/admin/index.cjs.map +1 -1
  253. package/dist/components/composed/admin/index.js +69 -69
  254. package/dist/components/composed/admin/index.js.map +1 -1
  255. package/dist/components/composed/ai/index.cjs +1 -1
  256. package/dist/components/composed/ai/index.cjs.map +1 -1
  257. package/dist/components/composed/ai/index.js +25 -25
  258. package/dist/components/composed/ai/index.js.map +1 -1
  259. package/dist/components/composed/analytics/index.cjs +1 -1
  260. package/dist/components/composed/analytics/index.cjs.map +1 -1
  261. package/dist/components/composed/analytics/index.js +33 -33
  262. package/dist/components/composed/analytics/index.js.map +1 -1
  263. package/dist/components/composed/cards/index.cjs +1 -1
  264. package/dist/components/composed/cards/index.cjs.map +1 -1
  265. package/dist/components/composed/cards/index.js +15 -15
  266. package/dist/components/composed/cards/index.js.map +1 -1
  267. package/dist/components/composed/commerce/index.cjs +1 -1
  268. package/dist/components/composed/commerce/index.cjs.map +1 -1
  269. package/dist/components/composed/commerce/index.js +28 -28
  270. package/dist/components/composed/commerce/index.js.map +1 -1
  271. package/dist/components/composed/dark-surfaces/index.cjs +1 -1
  272. package/dist/components/composed/dark-surfaces/index.js +4 -4
  273. package/dist/components/composed/data-display/dense-info-card/partials/dense-info-dashboard.d.ts.map +1 -1
  274. package/dist/components/composed/data-display/dense-info-card/partials/dense-info-financial.d.ts.map +1 -1
  275. package/dist/components/composed/data-display/dense-info-card/partials/dense-info-score.d.ts.map +1 -1
  276. package/dist/components/composed/data-display/index.cjs +1 -1
  277. package/dist/components/composed/data-display/index.js +1 -1
  278. package/dist/components/composed/data-display/metadata/metadata-list.d.ts.map +1 -1
  279. package/dist/components/composed/data-display/resource-selector-card.d.ts.map +1 -1
  280. package/dist/components/composed/navigation/index.cjs +1 -1
  281. package/dist/components/composed/navigation/index.cjs.map +1 -1
  282. package/dist/components/composed/navigation/index.js +15 -15
  283. package/dist/components/composed/navigation/index.js.map +1 -1
  284. package/dist/components/composed/onboarding/index.cjs +1 -1
  285. package/dist/components/composed/onboarding/index.js +3 -3
  286. package/dist/components/composed/timelines/index.cjs +1 -1
  287. package/dist/components/composed/timelines/index.cjs.map +1 -1
  288. package/dist/components/composed/timelines/index.js +10 -10
  289. package/dist/components/composed/timelines/index.js.map +1 -1
  290. package/dist/components/features/activities/index.cjs +1 -1
  291. package/dist/components/features/activities/index.cjs.map +1 -1
  292. package/dist/components/features/activities/index.js +10 -10
  293. package/dist/components/features/activities/index.js.map +1 -1
  294. package/dist/components/features/ai-chat/index.cjs +2 -2
  295. package/dist/components/features/ai-chat/index.cjs.map +1 -1
  296. package/dist/components/features/ai-chat/index.js +8 -8
  297. package/dist/components/features/ai-chat/index.js.map +1 -1
  298. package/dist/components/features/card/index.cjs +1 -1
  299. package/dist/components/features/card/index.js +4 -4
  300. package/dist/components/features/comments/index.cjs +1 -1
  301. package/dist/components/features/comments/index.js +2 -2
  302. package/dist/components/features/data-view/index.cjs +1 -1
  303. package/dist/components/features/data-view/index.cjs.map +1 -1
  304. package/dist/components/features/data-view/index.js +3 -3
  305. package/dist/components/features/data-view/index.js.map +1 -1
  306. package/dist/components/features/event-log/index.cjs +1 -1
  307. package/dist/components/features/event-log/index.js +5 -5
  308. package/dist/components/features/filters/index.cjs +1 -1
  309. package/dist/components/features/filters/index.cjs.map +1 -1
  310. package/dist/components/features/filters/index.js +194 -194
  311. package/dist/components/features/filters/index.js.map +1 -1
  312. package/dist/components/features/filters/partials/filters-button.d.ts.map +1 -1
  313. package/dist/components/features/global-search/index.cjs +1 -1
  314. package/dist/components/features/global-search/index.cjs.map +1 -1
  315. package/dist/components/features/global-search/index.js +14 -14
  316. package/dist/components/features/global-search/index.js.map +1 -1
  317. package/dist/components/features/kanban/index.cjs +1 -1
  318. package/dist/components/features/kanban/index.js +3 -3
  319. package/dist/components/features/media-library/index.cjs +1 -1
  320. package/dist/components/features/media-library/index.cjs.map +1 -1
  321. package/dist/components/features/media-library/index.js +25 -25
  322. package/dist/components/features/media-library/index.js.map +1 -1
  323. package/dist/components/features/mentions/index.cjs +1 -1
  324. package/dist/components/features/mentions/index.js +1 -1
  325. package/dist/components/features/overlays/index.cjs +1 -1
  326. package/dist/components/features/overlays/index.js +1 -1
  327. package/dist/components/features/products/index.cjs +1 -1
  328. package/dist/components/features/products/index.cjs.map +1 -1
  329. package/dist/components/features/products/index.js +14 -14
  330. package/dist/components/features/products/index.js.map +1 -1
  331. package/dist/components/features/resource/index.cjs +1 -1
  332. package/dist/components/features/resource/index.cjs.map +1 -1
  333. package/dist/components/features/resource/index.js +6 -6
  334. package/dist/components/features/resource/index.js.map +1 -1
  335. package/dist/components/features/rich-text-editor/index.cjs +1 -1
  336. package/dist/components/features/rich-text-editor/index.js +1 -1
  337. package/dist/components/features/schema-form/index.cjs +1 -1
  338. package/dist/components/features/schema-form/index.js +8 -8
  339. package/dist/components/features/suggestions/index.cjs +1 -1
  340. package/dist/components/features/suggestions/index.js +1 -1
  341. package/dist/components/features/sync/index.cjs +1 -1
  342. package/dist/components/features/sync/index.js +2 -2
  343. package/dist/components/layout/auth/index.cjs +1 -1
  344. package/dist/components/layout/auth/index.js +1 -1
  345. package/dist/components/layout/header/index.cjs +1 -1
  346. package/dist/components/layout/header/index.js +1 -1
  347. package/dist/components/layout/hooks/index.cjs +1 -1
  348. package/dist/components/layout/hooks/index.js +1 -1
  349. package/dist/components/layout/index.cjs +1 -1
  350. package/dist/components/layout/index.js +7 -7
  351. package/dist/components/layout/page/index.cjs +1 -1
  352. package/dist/components/layout/page/index.js +1 -1
  353. package/dist/components/layout/page/page.types.d.ts +5 -0
  354. package/dist/components/layout/page/page.types.d.ts.map +1 -1
  355. package/dist/components/layout/page/partials/page-header.d.ts +1 -1
  356. package/dist/components/layout/page/partials/page-header.d.ts.map +1 -1
  357. package/dist/components/layout/settings/index.cjs +1 -1
  358. package/dist/components/layout/settings/index.js +1 -1
  359. package/dist/components/layout/sidebar/index.cjs +1 -1
  360. package/dist/components/layout/sidebar/index.js +2 -2
  361. package/dist/components/layout/workspace/index.cjs +1 -1
  362. package/dist/components/layout/workspace/index.js +1 -1
  363. package/dist/components/typography/index.cjs +1 -1
  364. package/dist/components/typography/index.js +1 -1
  365. package/dist/index.cjs +1 -1
  366. package/dist/index.js +1 -1
  367. package/dist/lib/ui-provider/defaults.d.ts.map +1 -1
  368. package/dist/lib/ui-provider/index.cjs +1 -1
  369. package/dist/lib/ui-provider/index.d.ts +1 -1
  370. package/dist/lib/ui-provider/index.d.ts.map +1 -1
  371. package/dist/lib/ui-provider/index.js +1 -1
  372. package/dist/lib/ui-provider/types.d.ts +14 -0
  373. package/dist/lib/ui-provider/types.d.ts.map +1 -1
  374. package/dist/services/actions/index.cjs +1 -1
  375. package/dist/services/actions/index.js +1 -1
  376. package/dist/showcase/assets/AreaChart-oKO7Ng_P.js +6 -0
  377. package/dist/showcase/assets/CompositeItem-CK7jBYU8.js +1 -0
  378. package/dist/showcase/assets/CompositeRoot-_AuToqhT.js +1 -0
  379. package/dist/showcase/assets/DialogTrigger-C44ZZXQ9.js +1 -0
  380. package/dist/showcase/assets/LabelableContext-DLVZlnur.js +1 -0
  381. package/dist/showcase/assets/PreviewLayout-Oik7TDHN.js +1 -0
  382. package/dist/showcase/assets/RadioGroup-DeYb8CGE.js +1 -0
  383. package/dist/showcase/assets/ScrollAreaCorner-BZlE_Bil.js +1 -0
  384. package/dist/showcase/assets/Separator-uiIktHzk.js +1 -0
  385. package/dist/showcase/assets/ToolbarRootContext-CEzj5dKk.js +1 -0
  386. package/dist/showcase/assets/accordion-B_wg_YOp.js +171 -0
  387. package/dist/showcase/assets/accordion-variants-O6U7E38x.js +1 -0
  388. package/dist/showcase/assets/action-menu-D_wGvb_o.js +1 -0
  389. package/dist/showcase/assets/actions-u4Fl4zm1.js +310 -0
  390. package/dist/showcase/assets/activities-C6iITHzB.js +500 -0
  391. package/dist/showcase/assets/activities-feed-card-OpYs16UV.js +1 -0
  392. package/dist/showcase/assets/admin-Bq15E5Wd.js +140 -0
  393. package/dist/showcase/assets/ai-DcUzGTlb.js +207 -0
  394. package/dist/showcase/assets/ai-artifact-BUAu1_jV.js +2 -0
  395. package/dist/showcase/assets/ai-chat-C6OWWBqh.js +568 -0
  396. package/dist/showcase/assets/ai-elements-CCe4Aqj_.js +387 -0
  397. package/dist/showcase/assets/ai-tool-call-B_NF1ePn.js +1 -0
  398. package/dist/showcase/assets/alert-B4VWkFPE.js +1 -0
  399. package/dist/showcase/assets/alert-BDIqciKo.js +62 -0
  400. package/dist/showcase/assets/alert-jvCEGWe6.js +93 -0
  401. package/dist/showcase/assets/api-key-list-BH8mde9A.js +1 -0
  402. package/dist/showcase/assets/api-key-list-CA6O3hsc.js +73 -0
  403. package/dist/showcase/assets/app-sidebar-DsMTwSAB.js +1 -0
  404. package/dist/showcase/assets/arrow-down-BzPC0rON.js +1 -0
  405. package/dist/showcase/assets/arrow-left-DNehZvF-.js +1 -0
  406. package/dist/showcase/assets/arrow-right-CKIgWncF.js +1 -0
  407. package/dist/showcase/assets/arrow-up-YjujZi8v.js +1 -0
  408. package/dist/showcase/assets/arrow-up-right-KnVxFmw9.js +1 -0
  409. package/dist/showcase/assets/avatar-BBLri7tX.js +57 -0
  410. package/dist/showcase/assets/avatar-BeFx8JQd.js +1 -0
  411. package/dist/showcase/assets/avatar-CFWUZzaF.js +67 -0
  412. package/dist/showcase/assets/avatar-D6exHRSK.js +1 -0
  413. package/dist/showcase/assets/badge-check-BfY3RIjR.js +1 -0
  414. package/dist/showcase/assets/badge-jGj2HQsg.js +31 -0
  415. package/dist/showcase/assets/bell-CTDSIOv8.js +1 -0
  416. package/dist/showcase/assets/boolean-indicator-C1u7OFcR.js +1 -0
  417. package/dist/showcase/assets/bot-D-iqtYiQ.js +1 -0
  418. package/dist/showcase/assets/box-DxjjLEh2.js +1 -0
  419. package/dist/showcase/assets/braces-B6XLlZwJ.js +1 -0
  420. package/dist/showcase/assets/brain-BdNpswBH.js +1 -0
  421. package/dist/showcase/assets/brand-C6srYuIa.js +36 -0
  422. package/dist/showcase/assets/breadcrumb-BaeV7C4t.js +52 -0
  423. package/dist/showcase/assets/breadcrumb-jKu4EUFo.js +1 -0
  424. package/dist/showcase/assets/breadcrumbs-D7vYX_5y.js +1 -0
  425. package/dist/showcase/assets/briefcase-cs9wyoxL.js +1 -0
  426. package/dist/showcase/assets/building-2-rcMEYcbf.js +1 -0
  427. package/dist/showcase/assets/button-group-D1oXfasP.js +1 -0
  428. package/dist/showcase/assets/button-oBRwhAhs.js +44 -0
  429. package/dist/showcase/assets/buttons-D_SDu9w3.js +272 -0
  430. package/dist/showcase/assets/calendar-CGTiVckW.js +1 -0
  431. package/dist/showcase/assets/calendar-ChLkVME0.js +16 -0
  432. package/dist/showcase/assets/calendar-CjMPvWfI.js +1 -0
  433. package/dist/showcase/assets/calendar-days-CNom8Y38.js +1 -0
  434. package/dist/showcase/assets/camera-D0rjOOcs.js +1 -0
  435. package/dist/showcase/assets/card-CYz4UxYz.js +1 -0
  436. package/dist/showcase/assets/card-D9updr3B.js +188 -0
  437. package/dist/showcase/assets/card-primitives-BQ0hSEWX.js +1 -0
  438. package/dist/showcase/assets/card-radio-group-CrNG04Bl.js +1 -0
  439. package/dist/showcase/assets/cards-D4Lw-AI6.js +354 -0
  440. package/dist/showcase/assets/carousel-C6Mmapzw.js +449 -0
  441. package/dist/showcase/assets/cell-renderers-BF80Z3jW.js +1 -0
  442. package/dist/showcase/assets/chart-BHgMfUB5.js +358 -0
  443. package/dist/showcase/assets/chart-column-CE_VhlUz.js +1 -0
  444. package/dist/showcase/assets/checkbox-CDLT09vU.js +1 -0
  445. package/dist/showcase/assets/checkbox-Dj24Tegr.js +1 -0
  446. package/dist/showcase/assets/chevron-down-1GeJ4hOO.js +1 -0
  447. package/dist/showcase/assets/chevron-left-wqlWv2Qy.js +1 -0
  448. package/dist/showcase/assets/chevron-up-CZAm-2rZ.js +1 -0
  449. package/dist/showcase/assets/chevrons-up-down-DgysGYWR.js +1 -0
  450. package/dist/showcase/assets/circle-C9Ooo8Lv.js +1 -0
  451. package/dist/showcase/assets/circle-alert-C6XBfkf2.js +1 -0
  452. package/dist/showcase/assets/circle-check-DvCYlVmL.js +1 -0
  453. package/dist/showcase/assets/circle-check-big-C8o9clAE.js +1 -0
  454. package/dist/showcase/assets/circle-dot-BoYf3vOR.js +1 -0
  455. package/dist/showcase/assets/circle-question-mark-DYPX0qe9.js +1 -0
  456. package/dist/showcase/assets/circle-x-GosnT0l7.js +1 -0
  457. package/dist/showcase/assets/clock-3-DklFhayq.js +1 -0
  458. package/dist/showcase/assets/clock-BvwTkk1w.js +1 -0
  459. package/dist/showcase/assets/code-xml-AGOwtN8Z.js +1 -0
  460. package/dist/showcase/assets/collapsible-CBkbr3ho.js +1 -0
  461. package/dist/showcase/assets/collapsible-CmY1SA28.js +27 -0
  462. package/dist/showcase/assets/collapsible-DfDnQ_t_.js +1 -0
  463. package/dist/showcase/assets/combobox-BsZQo7hF.js +685 -0
  464. package/dist/showcase/assets/command-B0Q84gg6.js +1 -0
  465. package/dist/showcase/assets/command-BtADdA65.js +1 -0
  466. package/dist/showcase/assets/comment-composer-BmBnkba9.js +1 -0
  467. package/dist/showcase/assets/comment-item-y5mTfSmU.js +1 -0
  468. package/dist/showcase/assets/comments-BuYiGPxI.js +357 -0
  469. package/dist/showcase/assets/commerce-21Ef_rsW.js +267 -0
  470. package/dist/showcase/assets/composite-fKT6fZFs.js +1 -0
  471. package/dist/showcase/assets/conditional-rendering-DsTG0sOE.js +1 -0
  472. package/dist/showcase/assets/contact-card-S8koA9Sr.js +65 -0
  473. package/dist/showcase/assets/content-container-B4gW5fmA.js +1 -0
  474. package/dist/showcase/assets/copyable-D2xL2rMm.js +96 -0
  475. package/dist/showcase/assets/copyable-gLrmPayI.js +1 -0
  476. package/dist/showcase/assets/course-card-B8eEvF7a.js +77 -0
  477. package/dist/showcase/assets/cpu-Cp1On3tr.js +1 -0
  478. package/dist/showcase/assets/credit-card-QbZMZB90.js +1 -0
  479. package/dist/showcase/assets/css-variables-BXICo9fV.js +1205 -0
  480. package/dist/showcase/assets/currency-D2MSLjLt.js +149 -0
  481. package/dist/showcase/assets/dark-surfaces-CJsxuvQU.js +90 -0
  482. package/dist/showcase/assets/data-view-syhKhdz9.js +124 -0
  483. package/dist/showcase/assets/data-view-znnAeb6b.js +4 -0
  484. package/dist/showcase/assets/database-isLkCvDd.js +1 -0
  485. package/dist/showcase/assets/date-block-BDn9lGVM.js +1 -0
  486. package/dist/showcase/assets/date-block-CqRL1xfo.js +1 -0
  487. package/dist/showcase/assets/date-picker-DNcmSgQk.js +1 -0
  488. package/dist/showcase/assets/date-pickers-3lQUDDS7.js +73 -0
  489. package/dist/showcase/assets/dense-info-CfvqiIpM.js +106 -0
  490. package/dist/showcase/assets/design-system-consistency-C3yRhKwF.js +264 -0
  491. package/dist/showcase/assets/dialog-DiAkrPHO.js +1 -0
  492. package/dist/showcase/assets/dialog-feUFM03m.js +1 -0
  493. package/dist/showcase/assets/dialog-ruVOqJnB.js +1 -0
  494. package/dist/showcase/assets/display-utilities-SPJxlrkp.js +4 -0
  495. package/dist/showcase/assets/display-utilities.examples-ByRydMl0.js +302 -0
  496. package/dist/showcase/assets/dist-C9DVZddl.js +45 -0
  497. package/dist/showcase/assets/dist-DNARKM_B.js +1 -0
  498. package/dist/showcase/assets/dollar-sign-CUDuWyun.js +1 -0
  499. package/dist/showcase/assets/download-CIbh9VUU.js +1 -0
  500. package/dist/showcase/assets/dropdown-menu-MoIAG0ES.js +1 -0
  501. package/dist/showcase/assets/dropzone-D0kHIUuh.js +1 -0
  502. package/dist/showcase/assets/earth-BpNTeF25.js +1 -0
  503. package/dist/showcase/assets/ellipsis-B9w0cuoH.js +1 -0
  504. package/dist/showcase/assets/ellipsis-vertical-DHbOsjTF.js +1 -0
  505. package/dist/showcase/assets/empty-DvYVgcNF.js +1 -0
  506. package/dist/showcase/assets/empty-item-oFM5kPCp.js +49 -0
  507. package/dist/showcase/assets/empty-state-DTq86muv.js +1 -0
  508. package/dist/showcase/assets/empty-state-De7XCht-.js +190 -0
  509. package/dist/showcase/assets/enhanced-activities--XHjx99M.js +357 -0
  510. package/dist/showcase/assets/enhanced-combobox-CX_mTkei.js +1 -0
  511. package/dist/showcase/assets/esm-XXqBjGGF.js +2 -0
  512. package/dist/showcase/assets/event-calendar-zTiCWOF5.js +138 -0
  513. package/dist/showcase/assets/event-log-C_zSlY6y.js +330 -0
  514. package/dist/showcase/assets/example-Cv05rz75.js +1 -0
  515. package/dist/showcase/assets/external-link-DaR-AMyf.js +1 -0
  516. package/dist/showcase/assets/eye-CDSbB0kZ.js +1 -0
  517. package/dist/showcase/assets/feature-announcement-DJ26ZDVB.js +34 -0
  518. package/dist/showcase/assets/file-DPSK5cGC.js +1 -0
  519. package/dist/showcase/assets/file-text-BBWpAppG.js +1 -0
  520. package/dist/showcase/assets/filter-layout-CZRGcd6Z.js +1 -0
  521. package/dist/showcase/assets/filters-Bn7hYUeq.js +139 -0
  522. package/dist/showcase/assets/flag-BRs-GTCx.js +1 -0
  523. package/dist/showcase/assets/folder-open-DnFjlB3X.js +1 -0
  524. package/dist/showcase/assets/form-field-SW-Yp7H7.js +1 -0
  525. package/dist/showcase/assets/format-Bki5m7M3.js +1 -0
  526. package/dist/showcase/assets/forms-CAUL2gGq.js +915 -0
  527. package/dist/showcase/assets/funnel-D6g2Suhd.js +1 -0
  528. package/dist/showcase/assets/generic-CU6JNqKO.js +1 -0
  529. package/dist/showcase/assets/getPseudoElementBounds-yqDwWA_y.js +1 -0
  530. package/dist/showcase/assets/gift-B2Qp9Vqt.js +1 -0
  531. package/dist/showcase/assets/giftcard-cards-Dk0DYoN2.js +85 -0
  532. package/dist/showcase/assets/git-branch-CPtvCNGc.js +1 -0
  533. package/dist/showcase/assets/global-search-D1ow01VA.js +1 -0
  534. package/dist/showcase/assets/global-search-DQR2AgDO.js +215 -0
  535. package/dist/showcase/assets/globe-BiZgUZFZ.js +1 -0
  536. package/dist/showcase/assets/gradient-card-D5isLy3_.js +58 -0
  537. package/dist/showcase/assets/hash-NJ5ohGOa.js +1 -0
  538. package/dist/showcase/assets/header-Df9uYSSH.js +1 -0
  539. package/dist/showcase/assets/header-notifications-sPR5NuON.js +1 -0
  540. package/dist/showcase/assets/heart-C4t7PVKW.js +1 -0
  541. package/dist/showcase/assets/hooks-0TKg0ZAK.js +220 -0
  542. package/dist/showcase/assets/house-CuLXFtjd.js +1 -0
  543. package/dist/showcase/assets/icon-badge-Cr6DD-_7.js +1 -0
  544. package/dist/showcase/assets/icon-badge-DMdMSSRL.js +37 -0
  545. package/dist/showcase/assets/image-DYjJaO0i.js +1 -0
  546. package/dist/showcase/assets/inbox-DGF8FgvV.js +1 -0
  547. package/dist/showcase/assets/index-ATou_nFA.js +10 -0
  548. package/dist/showcase/assets/index-C8U-r6l7.css +2 -0
  549. package/dist/showcase/assets/inertValue-CBi0sj8C.js +1 -0
  550. package/dist/showcase/assets/info-DLaTRPUT.js +1 -0
  551. package/dist/showcase/assets/inline-stat-DGpunTNF.js +1 -0
  552. package/dist/showcase/assets/inline-stat-rUaaOSmR.js +15 -0
  553. package/dist/showcase/assets/input-Cmrgo51H.js +1 -0
  554. package/dist/showcase/assets/input-CnmnWnGb.js +1 -0
  555. package/dist/showcase/assets/input-group-BwujFvXM.js +1 -0
  556. package/dist/showcase/assets/input-group-DvXgZtra.js +47 -0
  557. package/dist/showcase/assets/inputs-CjzW_R8z.js +155 -0
  558. package/dist/showcase/assets/installation-2dW-rmF2.js +134 -0
  559. package/dist/showcase/assets/invoice-header-DeWxMKCe.js +36 -0
  560. package/dist/showcase/assets/invoice-items-Dxb95w0e.js +36 -0
  561. package/dist/showcase/assets/invoice-mini-EMzCkmR7.js +14 -0
  562. package/dist/showcase/assets/invoice-table-ClWJaclJ.js +30 -0
  563. package/dist/showcase/assets/isSameDay-BNPzVySj.js +1 -0
  564. package/dist/showcase/assets/isToday-D6n7oLej.js +1 -0
  565. package/dist/showcase/assets/italic-B8w3dpYw.js +1 -0
  566. package/dist/showcase/assets/item-B8_dwOlT.js +1 -0
  567. package/dist/showcase/assets/item-Baq-Mmy2.js +1 -0
  568. package/dist/showcase/assets/item-BtMuqGwy.js +140 -0
  569. package/dist/showcase/assets/kanban-B-QxvKMg.js +188 -0
  570. package/dist/showcase/assets/key-round-CrBIyzIa.js +1 -0
  571. package/dist/showcase/assets/label-VWe_nbHh.js +1 -0
  572. package/dist/showcase/assets/languages-N0uGt5nC.js +1 -0
  573. package/dist/showcase/assets/layers-DEZvT5cX.js +1 -0
  574. package/dist/showcase/assets/layout-app-shell-T9UqKX2o.js +608 -0
  575. package/dist/showcase/assets/layout-auth-IVC4DuU3.js +790 -0
  576. package/dist/showcase/assets/layout-containers-naBpuH05.js +101 -0
  577. package/dist/showcase/assets/layout-header-9i_7ygKU.js +203 -0
  578. package/dist/showcase/assets/layout-page-CrEUiJpW.js +315 -0
  579. package/dist/showcase/assets/layout-primitives-DPrVHpu3.js +34 -0
  580. package/dist/showcase/assets/layout-sidebar-D7z6-kPu.js +224 -0
  581. package/dist/showcase/assets/layout-users-Cov9D84d.js +117 -0
  582. package/dist/showcase/assets/layout-workspace-Czlmi8gY.js +191 -0
  583. package/dist/showcase/assets/lib-DNMH46Rn.js +1 -0
  584. package/dist/showcase/assets/list-checks-DygDRIGi.js +1 -0
  585. package/dist/showcase/assets/lock-DqEahakB.js +1 -0
  586. package/dist/showcase/assets/lock-keyhole-CETEK3R0.js +1 -0
  587. package/dist/showcase/assets/mail-LKhBlrEc.js +1 -0
  588. package/dist/showcase/assets/mail-check-BOTjWQJf.js +1 -0
  589. package/dist/showcase/assets/map-0vJT2r8C.js +124 -0
  590. package/dist/showcase/assets/map-pin-D0qrpDJI.js +1 -0
  591. package/dist/showcase/assets/media-library-Bp99WaS9.js +699 -0
  592. package/dist/showcase/assets/mention-inline-suggestions-mlV7LRvD.js +1 -0
  593. package/dist/showcase/assets/mentions-Cmd1zxOR.js +138 -0
  594. package/dist/showcase/assets/menus-CtjFPoDr.js +171 -0
  595. package/dist/showcase/assets/message-square-BXyvikcZ.js +1 -0
  596. package/dist/showcase/assets/metadata-list-DLUBcy7E.js +286 -0
  597. package/dist/showcase/assets/metadata-list-F3bWXtZB.js +1 -0
  598. package/dist/showcase/assets/metric-CXPRptlh.js +1 -0
  599. package/dist/showcase/assets/metric-bar-BY25WVZ0.js +1 -0
  600. package/dist/showcase/assets/metric-grid-DQtf9y6E.js +1 -0
  601. package/dist/showcase/assets/metric-trend-chip-CXHpkj3U.js +1 -0
  602. package/dist/showcase/assets/metrics-analytics-bar-BIuwiVrn.js +44 -0
  603. package/dist/showcase/assets/metrics-analytics-cards-yx5lMGQf.js +50 -0
  604. package/dist/showcase/assets/metrics-comparison-BC_7jLXf.js +76 -0
  605. package/dist/showcase/assets/metrics-heatmap-C_nhCljz.js +27 -0
  606. package/dist/showcase/assets/metrics-inline-badge-3oySQnoR.js +17 -0
  607. package/dist/showcase/assets/metrics-kpi-row-zS4-oiTO.js +31 -0
  608. package/dist/showcase/assets/metrics-micro-grid-UJkA2LNR.js +42 -0
  609. package/dist/showcase/assets/metrics-overview-DQFr22ol.js +192 -0
  610. package/dist/showcase/assets/metrics-stat-cards-DnBirxKV.js +54 -0
  611. package/dist/showcase/assets/minus-BOVQEx6C.js +1 -0
  612. package/dist/showcase/assets/money-display-DV7xlrNV.js +1 -0
  613. package/dist/showcase/assets/money-display-DxnM5--7.js +1 -0
  614. package/dist/showcase/assets/month-year-picker-BzRXCrQ7.js +1 -0
  615. package/dist/showcase/assets/navigation-ChJKLv4Y.js +90 -0
  616. package/dist/showcase/assets/navigation-D7VJsKrP.js +231 -0
  617. package/dist/showcase/assets/navigation-extras-BVc1xQuB.js +43 -0
  618. package/dist/showcase/assets/notification-banner-1ivcmPLe.js +1 -0
  619. package/dist/showcase/assets/onboarding-checklist-CbARgwpX.js +119 -0
  620. package/dist/showcase/assets/overflow-tab-bar-DlqMmyTx.js +1 -0
  621. package/dist/showcase/assets/overlays-DkWO50b8.js +159 -0
  622. package/dist/showcase/assets/overlays-KKZpxWjt.js +408 -0
  623. package/dist/showcase/assets/overview-BjQe-YZE.js +184 -0
  624. package/dist/showcase/assets/package-DhQRoFDo.js +1 -0
  625. package/dist/showcase/assets/package-check-CBgGiccG.js +1 -0
  626. package/dist/showcase/assets/page-BWTmyV5J.js +1 -0
  627. package/dist/showcase/assets/page-action-button-DV-YYRA4.js +1 -0
  628. package/dist/showcase/assets/page-header-Bmg4NU_P.js +1 -0
  629. package/dist/showcase/assets/pagination-ByQ_OXRU.js +1 -0
  630. package/dist/showcase/assets/pagination-Db5CuoBb.js +42 -0
  631. package/dist/showcase/assets/paperclip-BQNPUzG_.js +1 -0
  632. package/dist/showcase/assets/password-input-CPvjzM1f.js +1 -0
  633. package/dist/showcase/assets/pencil-DuBakHme.js +1 -0
  634. package/dist/showcase/assets/phone-t94LTB1m.js +1 -0
  635. package/dist/showcase/assets/placeholder-pattern-BNou2ep-.js +1 -0
  636. package/dist/showcase/assets/plus-BRcp6JhT.js +1 -0
  637. package/dist/showcase/assets/popover-CVuJP03o.js +1 -0
  638. package/dist/showcase/assets/popover-D_P2gTn8.js +1 -0
  639. package/dist/showcase/assets/popover-menu-DGY5jEk4.js +1 -0
  640. package/dist/showcase/assets/products-8sUfDMPU.js +423 -0
  641. package/dist/showcase/assets/progress-BrMvIZIz.js +1 -0
  642. package/dist/showcase/assets/progress-CSXZAavT.js +18 -0
  643. package/dist/showcase/assets/progress-Dvqpf_O0.js +1 -0
  644. package/dist/showcase/assets/props-table-BAfz1Zc6.js +1 -0
  645. package/dist/showcase/assets/props.generated-CuVoOKYT.json +41746 -0
  646. package/dist/showcase/assets/qr-code-C-CaHJQ2.js +1 -0
  647. package/dist/showcase/assets/quote-Ci80eS0u.js +1 -0
  648. package/dist/showcase/assets/receipt-jvwbPuE3.js +1 -0
  649. package/dist/showcase/assets/receipt-text-CT0GiMQm.js +1 -0
  650. package/dist/showcase/assets/refinement-guide-BnCQ9-6f.js +189 -0
  651. package/dist/showcase/assets/refresh-cw-CXDARnCe.js +1 -0
  652. package/dist/showcase/assets/resolveValueLabel-DJanfUim.js +1 -0
  653. package/dist/showcase/assets/resource-Bir-z7ie.js +139 -0
  654. package/dist/showcase/assets/resource-D19qhfYP.js +1 -0
  655. package/dist/showcase/assets/resource-selector-card-BUbuu-QH.js +43 -0
  656. package/dist/showcase/assets/rich-text-editor-BCtz589M.js +124 -0
  657. package/dist/showcase/assets/rich-text-editor-uu9FmB8B.js +143 -0
  658. package/dist/showcase/assets/rotate-ccw-DEIVfiHA.js +1 -0
  659. package/dist/showcase/assets/route-B5vtDLsE.js +1 -0
  660. package/dist/showcase/assets/save-DQ4Up8ZB.js +1 -0
  661. package/dist/showcase/assets/schema-form-D7wbdl5u.js +327 -0
  662. package/dist/showcase/assets/scroll-area-B0QD6o1Y.js +32 -0
  663. package/dist/showcase/assets/scroll-area-BoZ1SrfI.js +1 -0
  664. package/dist/showcase/assets/section-BXsVHOsI.js +1 -0
  665. package/dist/showcase/assets/select-CW8SYsOY.js +1 -0
  666. package/dist/showcase/assets/select-DmRqLSoG.js +1 -0
  667. package/dist/showcase/assets/send-Dxs1-xSj.js +1 -0
  668. package/dist/showcase/assets/separator-BLOG_8oO.js +1 -0
  669. package/dist/showcase/assets/separator-DZC_uQU-.js +1 -0
  670. package/dist/showcase/assets/separator-OlLHRN7k.js +28 -0
  671. package/dist/showcase/assets/settings-2-BSpgytsy.js +1 -0
  672. package/dist/showcase/assets/settings-CCNP7XOu.js +1 -0
  673. package/dist/showcase/assets/sheet-DIfJjbgA.js +1 -0
  674. package/dist/showcase/assets/shield-D2gTWkwA.js +1 -0
  675. package/dist/showcase/assets/shield-alert-C-3oWpoe.js +1 -0
  676. package/dist/showcase/assets/shield-check-D11r1eJ8.js +1 -0
  677. package/dist/showcase/assets/shopping-bag-DAeaVQ5O.js +1 -0
  678. package/dist/showcase/assets/showcase-GdZcH6OR.js +132 -0
  679. package/dist/showcase/assets/sidebar-RBzHNuB7.js +1 -0
  680. package/dist/showcase/assets/sidebar.context-Dyw470Qp.js +1 -0
  681. package/dist/showcase/assets/skeleton-B7crngMw.js +1 -0
  682. package/dist/showcase/assets/skeleton-BwEVNdGJ.js +1 -0
  683. package/dist/showcase/assets/skeleton-DM73_ueB.js +1 -0
  684. package/dist/showcase/assets/skeleton-cHsWJOtO.js +29 -0
  685. package/dist/showcase/assets/slider-DRPnIs0S.js +1 -0
  686. package/dist/showcase/assets/smart-card-DER7dpD9.js +1 -0
  687. package/dist/showcase/assets/sonner-Go1YsPBH.js +22 -0
  688. package/dist/showcase/assets/sortable.esm-q6LdsxSr.js +5 -0
  689. package/dist/showcase/assets/sparkles-DqH40POl.js +1 -0
  690. package/dist/showcase/assets/spinner-C0YWWxyj.js +1 -0
  691. package/dist/showcase/assets/spinner-CpHNR13f.js +30 -0
  692. package/dist/showcase/assets/spinner-Dwvf24e9.js +49 -0
  693. package/dist/showcase/assets/square-pen-D-xHmIA0.js +1 -0
  694. package/dist/showcase/assets/stacked-avatars-C92NYKIa.js +1 -0
  695. package/dist/showcase/assets/star-dD4CAJ83.js +1 -0
  696. package/dist/showcase/assets/startOfDay-BXZshd4g.js +1 -0
  697. package/dist/showcase/assets/styles-BPJdkO_3.js +1 -0
  698. package/dist/showcase/assets/suggestions-CyhKme4Q.js +126 -0
  699. package/dist/showcase/assets/switch-C7DVTgQd.js +1 -0
  700. package/dist/showcase/assets/switch-LU6nljdS.js +1 -0
  701. package/dist/showcase/assets/sync-bERw1shm.js +124 -0
  702. package/dist/showcase/assets/table-BuIv4nqB.js +686 -0
  703. package/dist/showcase/assets/table-CDMDtBgJ.js +1 -0
  704. package/dist/showcase/assets/table-actions-DsK7d8Yb.js +1 -0
  705. package/dist/showcase/assets/tabs-BDryywGb.js +19 -0
  706. package/dist/showcase/assets/tabs-BNaZmM48.js +1 -0
  707. package/dist/showcase/assets/tags-input-CzE_5BJl.js +1 -0
  708. package/dist/showcase/assets/text-button-B1m5cpX_.js +1 -0
  709. package/dist/showcase/assets/text-link-CqjW10Ce.js +1 -0
  710. package/dist/showcase/assets/textarea-xJ3EE8R9.js +1 -0
  711. package/dist/showcase/assets/textarea-xOekToAG.js +1 -0
  712. package/dist/showcase/assets/throttle-alert-BH1HMiaI.js +1 -0
  713. package/dist/showcase/assets/timelines-DjWkuOz3.js +200 -0
  714. package/dist/showcase/assets/toggle-group-Css6pfUI.js +1 -0
  715. package/dist/showcase/assets/toggles-DhDrn3YH.js +71 -0
  716. package/dist/showcase/assets/toggles-group-e4xtKzkl.js +32 -0
  717. package/dist/showcase/assets/tooltip-DMvMUrGe.js +31 -0
  718. package/dist/showcase/assets/trash-2-zILxQmtX.js +1 -0
  719. package/dist/showcase/assets/trending-up-CRH278ig.js +1 -0
  720. package/dist/showcase/assets/truck-At9CEKg7.js +1 -0
  721. package/dist/showcase/assets/typography-B0ehvSV4.js +223 -0
  722. package/dist/showcase/assets/ui-badge-CyLWYf3f.js +28 -0
  723. package/dist/showcase/assets/ui-card-BPnLZmkJ.js +30 -0
  724. package/dist/showcase/assets/ui-table-C-zXhcOm.js +42 -0
  725. package/dist/showcase/assets/upload-tray-IyQJEM9n.js +138 -0
  726. package/dist/showcase/assets/use-layout-link-Cux4giQO.js +1 -0
  727. package/dist/showcase/assets/useAriaLabelledBy-Bo0rTGvc.js +1 -0
  728. package/dist/showcase/assets/useCollapsiblePanel-CzU-1LY3.js +1 -0
  729. package/dist/showcase/assets/useCompositeItem-CJFNnVql.js +1 -0
  730. package/dist/showcase/assets/useCompositeListItem-BAuO9hue.js +1 -0
  731. package/dist/showcase/assets/useLabelableId-HuACs9ba.js +1 -0
  732. package/dist/showcase/assets/useOpenInteractionType-MEUfJuxN.js +1 -0
  733. package/dist/showcase/assets/useRender-B-6DpRfj.js +1 -0
  734. package/dist/showcase/assets/useTriggerFocusGuards-B-mRyUJJ.js +1 -0
  735. package/dist/showcase/assets/useValueChanged-CVn_Rfso.js +1 -0
  736. package/dist/showcase/assets/user-eelwPGBI.js +1 -0
  737. package/dist/showcase/assets/user-plus-DhswMZvb.js +1 -0
  738. package/dist/showcase/assets/users-BVMmaveS.js +1 -0
  739. package/dist/showcase/assets/vendor-profile-FHaiInTe.js +37 -0
  740. package/dist/showcase/assets/video-C42fxAyj.js +1 -0
  741. package/dist/showcase/assets/visually-hidden-BwzlEinj.js +1 -0
  742. package/dist/showcase/assets/wrench-EKI7PaKp.js +1 -0
  743. package/dist/showcase/assets/x--LIqlhum.js +1 -0
  744. package/dist/showcase/assets/zap-C1fX30vt.js +1 -0
  745. package/dist/showcase/index.html +2 -2
  746. package/dist/style.css +1 -1
  747. package/package.json +1 -1
  748. package/src/css/tokens/foundation.css +20 -6
  749. package/src/css/tokens/primitives.css +1 -1
  750. package/src/css/tokens/states.css +3 -0
  751. package/dist/_shared/accordion-BRj4TDQx.js +0 -135
  752. package/dist/_shared/accordion-BRj4TDQx.js.map +0 -1
  753. package/dist/_shared/accordion-DvlDjk29.cjs +0 -2
  754. package/dist/_shared/accordion-DvlDjk29.cjs.map +0 -1
  755. package/dist/_shared/action-menu-BrHF4nss.cjs +0 -2
  756. package/dist/_shared/action-menu-BrHF4nss.cjs.map +0 -1
  757. package/dist/_shared/action-menu-Crn22LKo.js +0 -96
  758. package/dist/_shared/action-menu-Crn22LKo.js.map +0 -1
  759. package/dist/_shared/ai-artifact-BHgd3agA.js +0 -1099
  760. package/dist/_shared/ai-artifact-BHgd3agA.js.map +0 -1
  761. package/dist/_shared/ai-artifact-BRM5cvGv.cjs +0 -3
  762. package/dist/_shared/ai-artifact-BRM5cvGv.cjs.map +0 -1
  763. package/dist/_shared/alert-CMVVt2Br.js +0 -81
  764. package/dist/_shared/alert-CMVVt2Br.js.map +0 -1
  765. package/dist/_shared/alert-Dmhtbmpg.cjs +0 -2
  766. package/dist/_shared/alert-Dmhtbmpg.cjs.map +0 -1
  767. package/dist/_shared/auth-DZW6NkJx.cjs +0 -2
  768. package/dist/_shared/auth-DZW6NkJx.cjs.map +0 -1
  769. package/dist/_shared/auth-Dh790NI_.js +0 -643
  770. package/dist/_shared/auth-Dh790NI_.js.map +0 -1
  771. package/dist/_shared/badge-B8xGFpfM.cjs +0 -2
  772. package/dist/_shared/badge-B8xGFpfM.cjs.map +0 -1
  773. package/dist/_shared/badge-BYNwSWh5.js +0 -110
  774. package/dist/_shared/badge-BYNwSWh5.js.map +0 -1
  775. package/dist/_shared/button-BMiPFJIb.cjs +0 -2
  776. package/dist/_shared/button-BMiPFJIb.cjs.map +0 -1
  777. package/dist/_shared/button-vv59_uS_.js +0 -189
  778. package/dist/_shared/button-vv59_uS_.js.map +0 -1
  779. package/dist/_shared/buttons-CvqIMv3I.js +0 -137
  780. package/dist/_shared/buttons-CvqIMv3I.js.map +0 -1
  781. package/dist/_shared/buttons-tCkWktN3.cjs +0 -2
  782. package/dist/_shared/buttons-tCkWktN3.cjs.map +0 -1
  783. package/dist/_shared/card-radio-group-Bhe8gAbH.js +0 -150
  784. package/dist/_shared/card-radio-group-Bhe8gAbH.js.map +0 -1
  785. package/dist/_shared/card-radio-group-CdG1zr8M.cjs +0 -2
  786. package/dist/_shared/card-radio-group-CdG1zr8M.cjs.map +0 -1
  787. package/dist/_shared/cards-Cu6p1Brd.cjs +0 -2
  788. package/dist/_shared/cards-Cu6p1Brd.cjs.map +0 -1
  789. package/dist/_shared/cards-cQ9lL6zy.js +0 -354
  790. package/dist/_shared/cards-cQ9lL6zy.js.map +0 -1
  791. package/dist/_shared/combobox-BGYjyXeN.cjs +0 -2
  792. package/dist/_shared/combobox-BGYjyXeN.cjs.map +0 -1
  793. package/dist/_shared/combobox-DTwomOBt.js +0 -954
  794. package/dist/_shared/combobox-DTwomOBt.js.map +0 -1
  795. package/dist/_shared/command-ByedBajF.js +0 -39
  796. package/dist/_shared/command-ByedBajF.js.map +0 -1
  797. package/dist/_shared/command-EGR0nhGc.cjs +0 -2
  798. package/dist/_shared/command-EGR0nhGc.cjs.map +0 -1
  799. package/dist/_shared/comments-C97vL5km.js +0 -952
  800. package/dist/_shared/comments-C97vL5km.js.map +0 -1
  801. package/dist/_shared/comments-DBe6dP-d.cjs +0 -2
  802. package/dist/_shared/comments-DBe6dP-d.cjs.map +0 -1
  803. package/dist/_shared/copyable-BgFdERqs.js +0 -38
  804. package/dist/_shared/copyable-BgFdERqs.js.map +0 -1
  805. package/dist/_shared/copyable-Ce8rmE-V.cjs +0 -2
  806. package/dist/_shared/copyable-Ce8rmE-V.cjs.map +0 -1
  807. package/dist/_shared/data-display-DUWxoDKq.js +0 -1873
  808. package/dist/_shared/data-display-DUWxoDKq.js.map +0 -1
  809. package/dist/_shared/data-display-o-rbMuIA.cjs +0 -2
  810. package/dist/_shared/data-display-o-rbMuIA.cjs.map +0 -1
  811. package/dist/_shared/date-picker-Cxx9jllA.js +0 -1361
  812. package/dist/_shared/date-picker-Cxx9jllA.js.map +0 -1
  813. package/dist/_shared/date-picker-DE5A8yqN.cjs +0 -2
  814. package/dist/_shared/date-picker-DE5A8yqN.cjs.map +0 -1
  815. package/dist/_shared/date-pickers-Dex1Mfye.cjs +0 -2
  816. package/dist/_shared/date-pickers-Dex1Mfye.cjs.map +0 -1
  817. package/dist/_shared/date-pickers-m0dpDcqH.js +0 -329
  818. package/dist/_shared/date-pickers-m0dpDcqH.js.map +0 -1
  819. package/dist/_shared/display-Bro3Kufg.js +0 -986
  820. package/dist/_shared/display-Bro3Kufg.js.map +0 -1
  821. package/dist/_shared/display-CRQjSjgB.cjs +0 -2
  822. package/dist/_shared/display-CRQjSjgB.cjs.map +0 -1
  823. package/dist/_shared/forms-D-SNQmtB.cjs +0 -2
  824. package/dist/_shared/forms-D-SNQmtB.cjs.map +0 -1
  825. package/dist/_shared/forms-p7cfzJwf.js +0 -3533
  826. package/dist/_shared/forms-p7cfzJwf.js.map +0 -1
  827. package/dist/_shared/header-8C71wVRp.js +0 -447
  828. package/dist/_shared/header-8C71wVRp.js.map +0 -1
  829. package/dist/_shared/header-CYgFCnjZ.cjs +0 -2
  830. package/dist/_shared/header-CYgFCnjZ.cjs.map +0 -1
  831. package/dist/_shared/hooks-Ci1LFWRG.js +0 -95
  832. package/dist/_shared/hooks-Ci1LFWRG.js.map +0 -1
  833. package/dist/_shared/hooks-Cjl7LJpn.cjs +0 -2
  834. package/dist/_shared/hooks-Cjl7LJpn.cjs.map +0 -1
  835. package/dist/_shared/input-BgcP6x4C.js +0 -182
  836. package/dist/_shared/input-BgcP6x4C.js.map +0 -1
  837. package/dist/_shared/input-DV3g7Fm5.cjs +0 -2
  838. package/dist/_shared/input-DV3g7Fm5.cjs.map +0 -1
  839. package/dist/_shared/item-D7GTzvhf.js +0 -226
  840. package/dist/_shared/item-D7GTzvhf.js.map +0 -1
  841. package/dist/_shared/item-DTrnHpfm.cjs +0 -2
  842. package/dist/_shared/item-DTrnHpfm.cjs.map +0 -1
  843. package/dist/_shared/layout-BExg7Vlx.js +0 -261
  844. package/dist/_shared/layout-BExg7Vlx.js.map +0 -1
  845. package/dist/_shared/layout-CKRD_goE.cjs +0 -2
  846. package/dist/_shared/layout-CKRD_goE.cjs.map +0 -1
  847. package/dist/_shared/mentions-BtGhYisA.js +0 -506
  848. package/dist/_shared/mentions-BtGhYisA.js.map +0 -1
  849. package/dist/_shared/mentions-CnVOuQJU.cjs +0 -2
  850. package/dist/_shared/mentions-CnVOuQJU.cjs.map +0 -1
  851. package/dist/_shared/money-display-BvVpRUs5.cjs +0 -2
  852. package/dist/_shared/money-display-BvVpRUs5.cjs.map +0 -1
  853. package/dist/_shared/money-display-D6Qtvyyv.js +0 -198
  854. package/dist/_shared/money-display-D6Qtvyyv.js.map +0 -1
  855. package/dist/_shared/navigation-C4dO1I82.cjs +0 -2
  856. package/dist/_shared/navigation-C4dO1I82.cjs.map +0 -1
  857. package/dist/_shared/navigation-Ct-LFlpY.js +0 -436
  858. package/dist/_shared/navigation-Ct-LFlpY.js.map +0 -1
  859. package/dist/_shared/overlays-ChyqXn0n.js +0 -735
  860. package/dist/_shared/overlays-ChyqXn0n.js.map +0 -1
  861. package/dist/_shared/overlays-Dn2bt3CL.cjs +0 -2
  862. package/dist/_shared/overlays-Dn2bt3CL.cjs.map +0 -1
  863. package/dist/_shared/popover-menu-17Dxn25O.js +0 -93
  864. package/dist/_shared/popover-menu-17Dxn25O.js.map +0 -1
  865. package/dist/_shared/popover-menu-DXVN0bvj.cjs +0 -2
  866. package/dist/_shared/popover-menu-DXVN0bvj.cjs.map +0 -1
  867. package/dist/_shared/rich-text-editor-BRpcNkj1.js +0 -620
  868. package/dist/_shared/rich-text-editor-BRpcNkj1.js.map +0 -1
  869. package/dist/_shared/rich-text-editor-BXxGNbmI.cjs +0 -2
  870. package/dist/_shared/rich-text-editor-BXxGNbmI.cjs.map +0 -1
  871. package/dist/_shared/settings-CW9yzfQM.js +0 -143
  872. package/dist/_shared/settings-CW9yzfQM.js.map +0 -1
  873. package/dist/_shared/settings-cCPrw7si.cjs +0 -2
  874. package/dist/_shared/settings-cCPrw7si.cjs.map +0 -1
  875. package/dist/_shared/sidebar-Cq6J_I4l.cjs +0 -2
  876. package/dist/_shared/sidebar-Cq6J_I4l.cjs.map +0 -1
  877. package/dist/_shared/sidebar-DtF_ihE3.js +0 -548
  878. package/dist/_shared/sidebar-DtF_ihE3.js.map +0 -1
  879. package/dist/_shared/spinner-DY2de3Wt.cjs +0 -2
  880. package/dist/_shared/spinner-DY2de3Wt.cjs.map +0 -1
  881. package/dist/_shared/spinner-ZmIq_zsx.js +0 -67
  882. package/dist/_shared/spinner-ZmIq_zsx.js.map +0 -1
  883. package/dist/_shared/table-BBWc-wIw.js +0 -1377
  884. package/dist/_shared/table-BBWc-wIw.js.map +0 -1
  885. package/dist/_shared/table-DMDkdLzV.cjs +0 -2
  886. package/dist/_shared/table-DMDkdLzV.cjs.map +0 -1
  887. package/dist/_shared/textarea-C1TeJ7Vt.cjs +0 -2
  888. package/dist/_shared/textarea-C1TeJ7Vt.cjs.map +0 -1
  889. package/dist/_shared/textarea-CGRkgH5z.js +0 -118
  890. package/dist/_shared/textarea-CGRkgH5z.js.map +0 -1
  891. package/dist/_shared/typography-CzFVA1w1.js +0 -201
  892. package/dist/_shared/typography-CzFVA1w1.js.map +0 -1
  893. package/dist/_shared/typography-GtkgK9QX.cjs +0 -2
  894. package/dist/_shared/typography-GtkgK9QX.cjs.map +0 -1
  895. package/dist/_shared/ui-provider-DZWtUXf2.cjs +0 -2
  896. package/dist/_shared/ui-provider-DZWtUXf2.cjs.map +0 -1
  897. package/dist/_shared/ui-provider-Dj6OSOZi.js +0 -81
  898. package/dist/_shared/ui-provider-Dj6OSOZi.js.map +0 -1
  899. package/dist/_shared/workspace-BF5BtDhD.cjs +0 -2
  900. package/dist/_shared/workspace-BF5BtDhD.cjs.map +0 -1
  901. package/dist/_shared/workspace-IvsczduM.js +0 -357
  902. package/dist/_shared/workspace-IvsczduM.js.map +0 -1
  903. package/dist/showcase/assets/AreaChart-CsIm9z7Y.js +0 -6
  904. package/dist/showcase/assets/CompositeItem-D9zznn01.js +0 -1
  905. package/dist/showcase/assets/CompositeRoot-CvxtZ81W.js +0 -1
  906. package/dist/showcase/assets/DialogTrigger-C-osQGHu.js +0 -1
  907. package/dist/showcase/assets/LabelableContext-_EE-HBND.js +0 -1
  908. package/dist/showcase/assets/PreviewLayout-KdEsSl3b.js +0 -1
  909. package/dist/showcase/assets/RadioGroup-4jOeNTc1.js +0 -1
  910. package/dist/showcase/assets/ScrollAreaCorner-CXTdUcaE.js +0 -1
  911. package/dist/showcase/assets/Separator-CHVXO6nj.js +0 -1
  912. package/dist/showcase/assets/ToolbarRootContext-CM5tQGGX.js +0 -1
  913. package/dist/showcase/assets/accordion-CA84bxb2.js +0 -171
  914. package/dist/showcase/assets/accordion-variants-DqWzAOO3.js +0 -1
  915. package/dist/showcase/assets/action-menu-D0q5z-Kq.js +0 -1
  916. package/dist/showcase/assets/actions-DnqxABJU.js +0 -310
  917. package/dist/showcase/assets/activities-BC9hoMy9.js +0 -500
  918. package/dist/showcase/assets/activities-feed-card-D6wGLpbH.js +0 -1
  919. package/dist/showcase/assets/admin-CMnMsugJ.js +0 -140
  920. package/dist/showcase/assets/ai-B6_sE9Zg.js +0 -207
  921. package/dist/showcase/assets/ai-artifact-BVvbsSJB.js +0 -2
  922. package/dist/showcase/assets/ai-chat-lcXeqJrA.js +0 -568
  923. package/dist/showcase/assets/ai-elements-B32o_UjE.js +0 -387
  924. package/dist/showcase/assets/ai-tool-call-BLrAioKz.js +0 -1
  925. package/dist/showcase/assets/alert-B1p1Grce.js +0 -62
  926. package/dist/showcase/assets/alert-BBiffYsY.js +0 -93
  927. package/dist/showcase/assets/alert-vH0nJ8J9.js +0 -1
  928. package/dist/showcase/assets/api-key-list-BrSc6V1y.js +0 -1
  929. package/dist/showcase/assets/api-key-list-CoKe_PaL.js +0 -73
  930. package/dist/showcase/assets/app-sidebar-R93lRPB4.js +0 -1
  931. package/dist/showcase/assets/arrow-down-xxVIADbv.js +0 -1
  932. package/dist/showcase/assets/arrow-left-DxnlnN8R.js +0 -1
  933. package/dist/showcase/assets/arrow-right-S5k93UPM.js +0 -1
  934. package/dist/showcase/assets/arrow-up-OlEVG7a-.js +0 -1
  935. package/dist/showcase/assets/arrow-up-right-j55bbl4b.js +0 -1
  936. package/dist/showcase/assets/avatar-BbiXvZq7.js +0 -67
  937. package/dist/showcase/assets/avatar-Bwpw-hQo.js +0 -57
  938. package/dist/showcase/assets/avatar-D0DKQ1lK.js +0 -1
  939. package/dist/showcase/assets/avatar-WyjSBov9.js +0 -1
  940. package/dist/showcase/assets/badge-BzLZQO3L.js +0 -31
  941. package/dist/showcase/assets/badge-check-TFWm1m3F.js +0 -1
  942. package/dist/showcase/assets/bell-CmuQlO_k.js +0 -1
  943. package/dist/showcase/assets/bot-Bu518AJB.js +0 -1
  944. package/dist/showcase/assets/box-D-wrSdOJ.js +0 -1
  945. package/dist/showcase/assets/braces-CgCdmdAl.js +0 -1
  946. package/dist/showcase/assets/brain-DkHdwgHO.js +0 -1
  947. package/dist/showcase/assets/brand-CpovnVoG.js +0 -36
  948. package/dist/showcase/assets/breadcrumb-BUc0WC5d.js +0 -1
  949. package/dist/showcase/assets/breadcrumb-Do_Dazt1.js +0 -52
  950. package/dist/showcase/assets/breadcrumbs-Bj21o2zm.js +0 -1
  951. package/dist/showcase/assets/briefcase-CQBh2kok.js +0 -1
  952. package/dist/showcase/assets/building-2-D07Ej6iR.js +0 -1
  953. package/dist/showcase/assets/button-CCZ4KEGQ.js +0 -44
  954. package/dist/showcase/assets/button-group-BTjeHOvz.js +0 -1
  955. package/dist/showcase/assets/buttons-D45Wwiwn.js +0 -272
  956. package/dist/showcase/assets/calendar-BsEWULmZ.js +0 -16
  957. package/dist/showcase/assets/calendar-CkPefzIO.js +0 -1
  958. package/dist/showcase/assets/calendar-DZlT3qTq.js +0 -1
  959. package/dist/showcase/assets/calendar-days-C9awTMru.js +0 -1
  960. package/dist/showcase/assets/camera-CQhMw-RD.js +0 -1
  961. package/dist/showcase/assets/card-CKrz_UHt.js +0 -1
  962. package/dist/showcase/assets/card-DZgZgjXO.js +0 -188
  963. package/dist/showcase/assets/card-primitives-CpkDLK3Y.js +0 -1
  964. package/dist/showcase/assets/card-radio-group-BjXwMI4v.js +0 -1
  965. package/dist/showcase/assets/cards-Cd24XZ9l.js +0 -353
  966. package/dist/showcase/assets/carousel-Doon04yO.js +0 -449
  967. package/dist/showcase/assets/cell-renderers-CTay3duH.js +0 -1
  968. package/dist/showcase/assets/chart-CkvbdpWw.js +0 -358
  969. package/dist/showcase/assets/chart-column-Dz57kUMl.js +0 -1
  970. package/dist/showcase/assets/checkbox-L-L4-wvA.js +0 -1
  971. package/dist/showcase/assets/checkbox-sP254E7e.js +0 -1
  972. package/dist/showcase/assets/chevron-down-CLc_a2Ua.js +0 -1
  973. package/dist/showcase/assets/chevron-left-CMRIGOJt.js +0 -1
  974. package/dist/showcase/assets/chevron-up-BDw6LdDZ.js +0 -1
  975. package/dist/showcase/assets/chevrons-up-down-C519RKki.js +0 -1
  976. package/dist/showcase/assets/circle-B_tOHWTY.js +0 -1
  977. package/dist/showcase/assets/circle-alert-B56AFULT.js +0 -1
  978. package/dist/showcase/assets/circle-check-B4XZj4Ty.js +0 -1
  979. package/dist/showcase/assets/circle-check-big-C0iEkwPB.js +0 -1
  980. package/dist/showcase/assets/circle-dot-DPdJZkc6.js +0 -1
  981. package/dist/showcase/assets/circle-question-mark-LTetdrq6.js +0 -1
  982. package/dist/showcase/assets/circle-x-B4FwM-sI.js +0 -1
  983. package/dist/showcase/assets/clock-3-DZhjBuw8.js +0 -1
  984. package/dist/showcase/assets/clock-B9Fna2Q3.js +0 -1
  985. package/dist/showcase/assets/code-xml-B6Xb_vIg.js +0 -1
  986. package/dist/showcase/assets/collapsible-Bf7Oo37i.js +0 -27
  987. package/dist/showcase/assets/collapsible-BfLeooy8.js +0 -1
  988. package/dist/showcase/assets/combobox-4NYfJznY.js +0 -685
  989. package/dist/showcase/assets/command-7jRRucHf.js +0 -1
  990. package/dist/showcase/assets/command-D56CjgNc.js +0 -1
  991. package/dist/showcase/assets/comment-composer-BWeXIZfK.js +0 -1
  992. package/dist/showcase/assets/comment-item-ChkiK-ut.js +0 -1
  993. package/dist/showcase/assets/comments-YnEop7v3.js +0 -357
  994. package/dist/showcase/assets/commerce-7XxWJChs.js +0 -267
  995. package/dist/showcase/assets/composite-CHcyYCsk.js +0 -1
  996. package/dist/showcase/assets/contact-card-BXw-VuBm.js +0 -65
  997. package/dist/showcase/assets/content-container-C4uopCBg.js +0 -1
  998. package/dist/showcase/assets/copyable-CjVYEJ0P.js +0 -1
  999. package/dist/showcase/assets/copyable-Cz2jW7yL.js +0 -96
  1000. package/dist/showcase/assets/course-card-CvK3dw9W.js +0 -77
  1001. package/dist/showcase/assets/cpu-Vk5WgcC1.js +0 -1
  1002. package/dist/showcase/assets/credit-card-CaigqZGk.js +0 -1
  1003. package/dist/showcase/assets/css-variables-hLaBmeMt.js +0 -1190
  1004. package/dist/showcase/assets/currency-yO1giHp1.js +0 -149
  1005. package/dist/showcase/assets/dark-surfaces-BPQnyk9a.js +0 -90
  1006. package/dist/showcase/assets/data-view-CjjXn5VT.js +0 -124
  1007. package/dist/showcase/assets/data-view-DF0n8uva.js +0 -4
  1008. package/dist/showcase/assets/database-ChUBDe8E.js +0 -1
  1009. package/dist/showcase/assets/date-block-DUg1Oyn4.js +0 -1
  1010. package/dist/showcase/assets/date-picker-CoQPZa34.js +0 -1
  1011. package/dist/showcase/assets/date-pickers-B-IUbyXw.js +0 -73
  1012. package/dist/showcase/assets/dense-info-zVQSWqOU.js +0 -106
  1013. package/dist/showcase/assets/design-system-consistency-Bnz_h3-6.js +0 -264
  1014. package/dist/showcase/assets/dialog-BtilpgxJ.js +0 -1
  1015. package/dist/showcase/assets/dialog-kf9WwmTC.js +0 -1
  1016. package/dist/showcase/assets/display-utilities-BBzG5EPX.js +0 -267
  1017. package/dist/showcase/assets/dist-9gFIhkw-.js +0 -45
  1018. package/dist/showcase/assets/dist-CGpz_7Mu.js +0 -1
  1019. package/dist/showcase/assets/dollar-sign-CWbYI3Pd.js +0 -1
  1020. package/dist/showcase/assets/download-Bt_z-poH.js +0 -1
  1021. package/dist/showcase/assets/dropdown-menu-C1_SYTHm.js +0 -1
  1022. package/dist/showcase/assets/dropzone-D5BGVTnl.js +0 -1
  1023. package/dist/showcase/assets/earth-sP5mIgG3.js +0 -1
  1024. package/dist/showcase/assets/ellipsis-vertical-BD7kMOzj.js +0 -1
  1025. package/dist/showcase/assets/ellipsis-yqIF49C8.js +0 -1
  1026. package/dist/showcase/assets/empty-DIrJgtrh.js +0 -1
  1027. package/dist/showcase/assets/empty-item-GgnZk2yf.js +0 -49
  1028. package/dist/showcase/assets/empty-state-ZGKkJ6sf.js +0 -190
  1029. package/dist/showcase/assets/empty-state-n_Fspzt-.js +0 -1
  1030. package/dist/showcase/assets/enhanced-activities-CCw_hZnZ.js +0 -357
  1031. package/dist/showcase/assets/enhanced-combobox-bBF-ADDs.js +0 -1
  1032. package/dist/showcase/assets/esm-CyFPn936.js +0 -2
  1033. package/dist/showcase/assets/event-calendar-Czo7yBDx.js +0 -138
  1034. package/dist/showcase/assets/event-log-DJ3B3nMV.js +0 -330
  1035. package/dist/showcase/assets/example-eGsLGIcp.js +0 -1
  1036. package/dist/showcase/assets/external-link-DPOQEVWH.js +0 -1
  1037. package/dist/showcase/assets/eye-CN92NVL0.js +0 -1
  1038. package/dist/showcase/assets/feature-announcement-BXkSW17e.js +0 -34
  1039. package/dist/showcase/assets/file-CFHePlKG.js +0 -1
  1040. package/dist/showcase/assets/file-text--WYCYQMw.js +0 -1
  1041. package/dist/showcase/assets/filter-layout-B35gGmcO.js +0 -1
  1042. package/dist/showcase/assets/filters-GDW_oiT3.js +0 -139
  1043. package/dist/showcase/assets/flag-XsT9XFPr.js +0 -1
  1044. package/dist/showcase/assets/folder-open-RtsQ8vxf.js +0 -1
  1045. package/dist/showcase/assets/form-field-Bijd1Gex.js +0 -1
  1046. package/dist/showcase/assets/format-Ckw4OM66.js +0 -1
  1047. package/dist/showcase/assets/forms-00bU7LN8.js +0 -915
  1048. package/dist/showcase/assets/funnel-qu25WlXD.js +0 -1
  1049. package/dist/showcase/assets/generic-Bf82Wiol.js +0 -1
  1050. package/dist/showcase/assets/getPseudoElementBounds-BR4_m2HH.js +0 -1
  1051. package/dist/showcase/assets/gift-D4GQoqzV.js +0 -1
  1052. package/dist/showcase/assets/giftcard-cards-CMutwaAY.js +0 -85
  1053. package/dist/showcase/assets/git-branch-B2QG2zRg.js +0 -1
  1054. package/dist/showcase/assets/global-search-CRAB9TSF.js +0 -1
  1055. package/dist/showcase/assets/global-search-DY0cKfhY.js +0 -215
  1056. package/dist/showcase/assets/globe-BxZW28rG.js +0 -1
  1057. package/dist/showcase/assets/gradient-card-CQGnXG8r.js +0 -58
  1058. package/dist/showcase/assets/hash-CsRtIoKK.js +0 -1
  1059. package/dist/showcase/assets/header-DzYOgZLP.js +0 -1
  1060. package/dist/showcase/assets/header-notifications-D_CJPbvs.js +0 -1
  1061. package/dist/showcase/assets/heart-B2YsYprq.js +0 -1
  1062. package/dist/showcase/assets/hooks-BhUMA4Tb.js +0 -220
  1063. package/dist/showcase/assets/house-HeRFNhI0.js +0 -1
  1064. package/dist/showcase/assets/icon-badge-CpDkc-S0.js +0 -37
  1065. package/dist/showcase/assets/icon-badge-eNEGgpAV.js +0 -1
  1066. package/dist/showcase/assets/image-T88JyDag.js +0 -1
  1067. package/dist/showcase/assets/inbox-DLrLLnTR.js +0 -1
  1068. package/dist/showcase/assets/index-DDZl6kOS.js +0 -10
  1069. package/dist/showcase/assets/index-nOkXemgw.css +0 -2
  1070. package/dist/showcase/assets/inertValue-BajuuRy4.js +0 -1
  1071. package/dist/showcase/assets/info-CNYfw2Yz.js +0 -1
  1072. package/dist/showcase/assets/inline-stat-BN6yhDR5.js +0 -15
  1073. package/dist/showcase/assets/inline-stat-Bqw3lVfk.js +0 -1
  1074. package/dist/showcase/assets/input-C-9K6F0N.js +0 -1
  1075. package/dist/showcase/assets/input-DaZzfkZV.js +0 -1
  1076. package/dist/showcase/assets/input-group-DE-Xdhv4.js +0 -1
  1077. package/dist/showcase/assets/input-group-DIQZnytn.js +0 -47
  1078. package/dist/showcase/assets/inputs-Cl_JgSR4.js +0 -155
  1079. package/dist/showcase/assets/installation-DdhD4Dkq.js +0 -134
  1080. package/dist/showcase/assets/invoice-header-DOs2ACqQ.js +0 -36
  1081. package/dist/showcase/assets/invoice-items-1EuA62mF.js +0 -36
  1082. package/dist/showcase/assets/invoice-mini-vCrYEtWp.js +0 -14
  1083. package/dist/showcase/assets/invoice-table--mDTs1Iz.js +0 -30
  1084. package/dist/showcase/assets/isSameDay-BNB1yam4.js +0 -1
  1085. package/dist/showcase/assets/isToday-BugOpGJC.js +0 -1
  1086. package/dist/showcase/assets/italic-Ck4UD2ZT.js +0 -1
  1087. package/dist/showcase/assets/item-BcesxqFS.js +0 -139
  1088. package/dist/showcase/assets/item-BgPlwUMv.js +0 -1
  1089. package/dist/showcase/assets/item-CB9k_rmo.js +0 -1
  1090. package/dist/showcase/assets/kanban-cPuSVqWY.js +0 -188
  1091. package/dist/showcase/assets/key-round-BmYjd5dk.js +0 -1
  1092. package/dist/showcase/assets/label-BTIBJBqN.js +0 -1
  1093. package/dist/showcase/assets/languages-he6FNXRs.js +0 -1
  1094. package/dist/showcase/assets/layers-B_48DtOz.js +0 -1
  1095. package/dist/showcase/assets/layout-app-shell-zwLv6jTP.js +0 -608
  1096. package/dist/showcase/assets/layout-auth-2Zv5lr52.js +0 -790
  1097. package/dist/showcase/assets/layout-containers-Dzw3xlKn.js +0 -101
  1098. package/dist/showcase/assets/layout-header-TJ-WVmG3.js +0 -203
  1099. package/dist/showcase/assets/layout-page-CIVQCKXK.js +0 -314
  1100. package/dist/showcase/assets/layout-primitives-i_O81fzT.js +0 -34
  1101. package/dist/showcase/assets/layout-sidebar-eH_pwBq_.js +0 -224
  1102. package/dist/showcase/assets/layout-users-CWSaFBLj.js +0 -117
  1103. package/dist/showcase/assets/layout-workspace-w3oe32GE.js +0 -191
  1104. package/dist/showcase/assets/lib-CoS0xjP8.js +0 -1
  1105. package/dist/showcase/assets/list-checks-DecRPpK3.js +0 -1
  1106. package/dist/showcase/assets/lock-D9f8uXol.js +0 -1
  1107. package/dist/showcase/assets/lock-keyhole-C20eixH6.js +0 -1
  1108. package/dist/showcase/assets/mail-CVgP8Qlo.js +0 -1
  1109. package/dist/showcase/assets/mail-check-mplTKcSH.js +0 -1
  1110. package/dist/showcase/assets/map-B6OGeOup.js +0 -124
  1111. package/dist/showcase/assets/map-pin-BZXSwrzT.js +0 -1
  1112. package/dist/showcase/assets/media-library-DSlVIM1Q.js +0 -699
  1113. package/dist/showcase/assets/mention-inline-suggestions-CNAEeXgy.js +0 -1
  1114. package/dist/showcase/assets/mentions-Cb3g4hDN.js +0 -138
  1115. package/dist/showcase/assets/menus-CE0Hlj8N.js +0 -171
  1116. package/dist/showcase/assets/message-square-HliU8vbW.js +0 -1
  1117. package/dist/showcase/assets/metadata-list-CJ5v5Bvc.js +0 -286
  1118. package/dist/showcase/assets/metadata-list-DY92-pw2.js +0 -1
  1119. package/dist/showcase/assets/metric-DxMTjIvU.js +0 -1
  1120. package/dist/showcase/assets/metric-bar-cW9nWCRl.js +0 -1
  1121. package/dist/showcase/assets/metric-grid-CvfO52X1.js +0 -1
  1122. package/dist/showcase/assets/metric-trend-chip-BmjQdRus.js +0 -1
  1123. package/dist/showcase/assets/metrics-analytics-bar-BZqB5d1y.js +0 -44
  1124. package/dist/showcase/assets/metrics-analytics-cards-jAhlrQCI.js +0 -50
  1125. package/dist/showcase/assets/metrics-comparison-DURZ6qEL.js +0 -76
  1126. package/dist/showcase/assets/metrics-heatmap-HhJDBguh.js +0 -27
  1127. package/dist/showcase/assets/metrics-inline-badge-Dq5k-P6F.js +0 -17
  1128. package/dist/showcase/assets/metrics-kpi-row-DXzhwa6z.js +0 -31
  1129. package/dist/showcase/assets/metrics-micro-grid-C6O5b0wP.js +0 -42
  1130. package/dist/showcase/assets/metrics-overview-Hv2mseb3.js +0 -192
  1131. package/dist/showcase/assets/metrics-stat-cards-CW42vBCS.js +0 -54
  1132. package/dist/showcase/assets/minus-BW62vCxf.js +0 -1
  1133. package/dist/showcase/assets/money-display-CAdGk5Lr.js +0 -1
  1134. package/dist/showcase/assets/month-year-picker-dHuvgz1E.js +0 -1
  1135. package/dist/showcase/assets/navigation-C4uSLvbZ.js +0 -90
  1136. package/dist/showcase/assets/navigation-SjsZrtIc.js +0 -231
  1137. package/dist/showcase/assets/navigation-extras-CMVNVskk.js +0 -43
  1138. package/dist/showcase/assets/onboarding-checklist-C1jwRdMU.js +0 -119
  1139. package/dist/showcase/assets/overflow-tab-bar-BYFLpl5w.js +0 -1
  1140. package/dist/showcase/assets/overlays-0Y8MAz39.js +0 -159
  1141. package/dist/showcase/assets/overlays-ClOnjahL.js +0 -408
  1142. package/dist/showcase/assets/overview-B5ztGmTp.js +0 -184
  1143. package/dist/showcase/assets/package-check-MeSw6bS4.js +0 -1
  1144. package/dist/showcase/assets/package-vYJ0q0QM.js +0 -1
  1145. package/dist/showcase/assets/page-4lMKtBQ7.js +0 -1
  1146. package/dist/showcase/assets/page-action-button-C5-TGSzy.js +0 -1
  1147. package/dist/showcase/assets/page-header-C_-KYryO.js +0 -1
  1148. package/dist/showcase/assets/pagination-D3L3Iwus.js +0 -1
  1149. package/dist/showcase/assets/pagination-dZXPxwHx.js +0 -42
  1150. package/dist/showcase/assets/paperclip-BZhdPOw8.js +0 -1
  1151. package/dist/showcase/assets/password-input-CDSMtGxt.js +0 -1
  1152. package/dist/showcase/assets/pencil-DiYr3CZ9.js +0 -1
  1153. package/dist/showcase/assets/phone-Dm5qzlG8.js +0 -1
  1154. package/dist/showcase/assets/plus-pfGaA3St.js +0 -1
  1155. package/dist/showcase/assets/popover-CjVWDO7C.js +0 -1
  1156. package/dist/showcase/assets/popover-menu-JcZyGV3Y.js +0 -1
  1157. package/dist/showcase/assets/popover-pZ4Jbp0s.js +0 -1
  1158. package/dist/showcase/assets/products-C62MKtAR.js +0 -423
  1159. package/dist/showcase/assets/progress-Btw-ZUaU.js +0 -18
  1160. package/dist/showcase/assets/progress-DpB5LL6R.js +0 -1
  1161. package/dist/showcase/assets/props-table-Bjc9IHmp.js +0 -1
  1162. package/dist/showcase/assets/props.generated-cO7HmIpY.json +0 -41578
  1163. package/dist/showcase/assets/quote-DcxVd1fj.js +0 -1
  1164. package/dist/showcase/assets/receipt-BHns-S5Q.js +0 -1
  1165. package/dist/showcase/assets/receipt-text-L0aYasyt.js +0 -1
  1166. package/dist/showcase/assets/refinement-guide-BBOGBJ4I.js +0 -189
  1167. package/dist/showcase/assets/refresh-cw-z6mlm0HI.js +0 -1
  1168. package/dist/showcase/assets/resolveValueLabel-hsarzg5A.js +0 -1
  1169. package/dist/showcase/assets/resource-CIn_zKZ4.js +0 -139
  1170. package/dist/showcase/assets/resource-DxktLgEK.js +0 -1
  1171. package/dist/showcase/assets/resource-selector-card-dkcEQ6bl.js +0 -43
  1172. package/dist/showcase/assets/rich-text-editor-Dd-rWisw.js +0 -124
  1173. package/dist/showcase/assets/rich-text-editor-DvJMFj48.js +0 -143
  1174. package/dist/showcase/assets/rotate-ccw-DEz6nb5P.js +0 -1
  1175. package/dist/showcase/assets/route-BeXaXTk8.js +0 -1
  1176. package/dist/showcase/assets/save-EE7Tc5OT.js +0 -1
  1177. package/dist/showcase/assets/schema-form-RK9Zpz1E.js +0 -327
  1178. package/dist/showcase/assets/scroll-area-BejQJ0Q1.js +0 -32
  1179. package/dist/showcase/assets/scroll-area-DS8LJ7LG.js +0 -1
  1180. package/dist/showcase/assets/section-Cv8i4DIx.js +0 -1
  1181. package/dist/showcase/assets/select-Cuy3YKW9.js +0 -1
  1182. package/dist/showcase/assets/select-qFy1jm91.js +0 -1
  1183. package/dist/showcase/assets/send-CXv0ST9u.js +0 -1
  1184. package/dist/showcase/assets/separator-CecGyBaV.js +0 -1
  1185. package/dist/showcase/assets/separator-CqtFQXrk.js +0 -28
  1186. package/dist/showcase/assets/settings-2-CCeMwMOj.js +0 -1
  1187. package/dist/showcase/assets/settings-CXjN6wTC.js +0 -1
  1188. package/dist/showcase/assets/sheet-Csyrmkqp.js +0 -1
  1189. package/dist/showcase/assets/shield-DR0ZfAFA.js +0 -1
  1190. package/dist/showcase/assets/shield-alert-Bp1iFJ2q.js +0 -1
  1191. package/dist/showcase/assets/shield-check-ClL4B_Cd.js +0 -1
  1192. package/dist/showcase/assets/shopping-bag-DnSmbPUX.js +0 -1
  1193. package/dist/showcase/assets/showcase-CQKt5VGi.js +0 -132
  1194. package/dist/showcase/assets/sidebar-CXy94md1.js +0 -1
  1195. package/dist/showcase/assets/sidebar.context-C8gkOwJ5.js +0 -1
  1196. package/dist/showcase/assets/skeleton-B8wC5P66.js +0 -29
  1197. package/dist/showcase/assets/skeleton-DBlCLlBC.js +0 -1
  1198. package/dist/showcase/assets/slider-BcjkNx6W.js +0 -1
  1199. package/dist/showcase/assets/smart-card-Cg6rtWH9.js +0 -1
  1200. package/dist/showcase/assets/sonner-ZGBQ13wS.js +0 -22
  1201. package/dist/showcase/assets/sortable.esm-CGFWc-Cn.js +0 -5
  1202. package/dist/showcase/assets/sparkles-q1-9JZqa.js +0 -1
  1203. package/dist/showcase/assets/spinner-CKg8QLHu.js +0 -1
  1204. package/dist/showcase/assets/spinner-D1Ao9j9T.js +0 -49
  1205. package/dist/showcase/assets/spinner-oahLIkgb.js +0 -30
  1206. package/dist/showcase/assets/square-pen-DZ3bQJia.js +0 -1
  1207. package/dist/showcase/assets/stacked-avatars-CKPtb3Hj.js +0 -1
  1208. package/dist/showcase/assets/star-suetD-KI.js +0 -1
  1209. package/dist/showcase/assets/startOfDay-OjIsUeiv.js +0 -1
  1210. package/dist/showcase/assets/styles-1mYOoC2k.js +0 -1
  1211. package/dist/showcase/assets/suggestions-DLYaI-In.js +0 -126
  1212. package/dist/showcase/assets/switch-CTTrJNwo.js +0 -1
  1213. package/dist/showcase/assets/switch-ChJWWmxN.js +0 -1
  1214. package/dist/showcase/assets/sync-DsHYydvo.js +0 -124
  1215. package/dist/showcase/assets/table-Ck2ptin2.js +0 -686
  1216. package/dist/showcase/assets/table-DyJ9oADQ.js +0 -1
  1217. package/dist/showcase/assets/table-actions-COU4zHfh.js +0 -1
  1218. package/dist/showcase/assets/tabs-Bl_RHGIw.js +0 -1
  1219. package/dist/showcase/assets/tabs-DS-4VSkb.js +0 -19
  1220. package/dist/showcase/assets/tags-input-BlYzb5fF.js +0 -1
  1221. package/dist/showcase/assets/text-button-OPdNs3fb.js +0 -1
  1222. package/dist/showcase/assets/text-link-D27gqGeg.js +0 -1
  1223. package/dist/showcase/assets/textarea-DpC7J5F-.js +0 -1
  1224. package/dist/showcase/assets/textarea-JtXUjxvc.js +0 -1
  1225. package/dist/showcase/assets/timelines-DQM-B4Xo.js +0 -200
  1226. package/dist/showcase/assets/toggle-group-CMneKREH.js +0 -1
  1227. package/dist/showcase/assets/toggles-CAXXgjO_.js +0 -71
  1228. package/dist/showcase/assets/toggles-group-CHRqrpoM.js +0 -32
  1229. package/dist/showcase/assets/tooltip-CwGZAioX.js +0 -31
  1230. package/dist/showcase/assets/trash-2-BpMb9Zbb.js +0 -1
  1231. package/dist/showcase/assets/trending-up-B1BzitCg.js +0 -1
  1232. package/dist/showcase/assets/truck-CDSE5-HZ.js +0 -1
  1233. package/dist/showcase/assets/typography-BoNJ1hRZ.js +0 -223
  1234. package/dist/showcase/assets/ui-badge-Djh6NiB2.js +0 -28
  1235. package/dist/showcase/assets/ui-card-QC_rl_H2.js +0 -30
  1236. package/dist/showcase/assets/ui-table-qAGsc3qN.js +0 -42
  1237. package/dist/showcase/assets/upload-tray-DKCJgW5u.js +0 -138
  1238. package/dist/showcase/assets/use-layout-link-BPlsZ8Ys.js +0 -1
  1239. package/dist/showcase/assets/useAnchoredPopupScrollLock-526MebAC.js +0 -1
  1240. package/dist/showcase/assets/useAriaLabelledBy-CqySZiH9.js +0 -1
  1241. package/dist/showcase/assets/useCollapsiblePanel-DWX7LbGX.js +0 -1
  1242. package/dist/showcase/assets/useCompositeItem-DGEBUXgE.js +0 -1
  1243. package/dist/showcase/assets/useCompositeListItem-B2nuNlc2.js +0 -1
  1244. package/dist/showcase/assets/useLabelableId-DY4O1lpt.js +0 -1
  1245. package/dist/showcase/assets/useOpenInteractionType-DxwujDvt.js +0 -1
  1246. package/dist/showcase/assets/useRender-BPoNv-Lm.js +0 -1
  1247. package/dist/showcase/assets/useTriggerFocusGuards-BnOSAjfy.js +0 -1
  1248. package/dist/showcase/assets/useValueChanged-CXmDOWxx.js +0 -1
  1249. package/dist/showcase/assets/user-BGchdtV_.js +0 -1
  1250. package/dist/showcase/assets/user-plus-BifI_xVA.js +0 -1
  1251. package/dist/showcase/assets/users-Cl5yYqdg.js +0 -1
  1252. package/dist/showcase/assets/vendor-profile-BNW4FYna.js +0 -37
  1253. package/dist/showcase/assets/video-BtQPixYN.js +0 -1
  1254. package/dist/showcase/assets/wrench-CRalc5fG.js +0 -1
  1255. package/dist/showcase/assets/x-D6hUY89S.js +0 -1
  1256. package/dist/showcase/assets/zap-v_qbqeI5.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":[],"sources":["../../../../src/components/features/activities/activities.config.ts","../../../../src/components/features/activities/activities.strings.ts","../../../../src/components/features/activities/hooks/use-activity-feed.ts","../../../../src/components/features/activities/hooks/use-activity-resources.ts","../../../../src/components/features/activities/partials/activity-actions-menu.tsx","../../../../src/components/features/activities/partials/activity-changes.tsx","../../../../src/components/features/activities/partials/activity-date-label.tsx","../../../../src/components/features/activities/partials/activity-empty-state.tsx","../../../../src/components/features/activities/partials/tone-tokens.ts","../../../../src/components/features/activities/partials/activity-resource-tag.tsx","../../../../src/components/features/activities/partials/activity-headline.tsx","../../../../src/components/features/activities/partials/activity-marker.tsx","../../../../src/components/features/activities/partials/activity-row.tsx","../../../../src/components/features/activities/activities-feed.tsx","../../../../src/components/features/activities/partials/activities-feed-card.tsx"],"sourcesContent":["/**\n * Default per-event configuration. Consumers override individual events by\n * spreading this map and overwriting the keys they care about, e.g.:\n *\n * import { defaultActivityEventConfig } from '@/components/features/activities';\n *\n * const eventConfig = {\n * ...defaultActivityEventConfig,\n * order_refunded: { icon: Receipt, tone: 'warning', label: 'Refunded' },\n * };\n *\n * The mass `eventConfig` prop on `<ActivityFeed />` is shallow-merged on top\n * of these defaults, so any unspecified event falls back to the library\n * default and ultimately to the neutral `defaultEvent` entry below.\n */\nimport {\n AlertTriangle,\n ArrowLeftRight,\n Ban,\n Check,\n CircleDot,\n FileEdit,\n Flag,\n Heart,\n LinkIcon,\n Mail,\n MailCheck,\n MailOpen,\n MailX,\n MessageSquare,\n Pencil,\n Plus,\n ShieldCheck,\n ShoppingBag,\n Sparkles,\n Star,\n Trash2,\n UserMinus,\n UserPlus,\n} from 'lucide-react';\n\nimport type { ActivityEventConfig, ActivityEventConfigMap } from './activities.types';\n\n/** Neutral fallback used when an event has no entry in the registry. */\nexport const defaultEventConfig: ActivityEventConfig = {\n icon: CircleDot,\n tone: 'neutral',\n};\n\nexport const defaultActivityEventConfig: ActivityEventConfigMap = {\n // Lifecycle\n created: { icon: Plus, tone: 'success', label: 'Created' },\n updated: { icon: Pencil, tone: 'info', label: 'Updated' },\n edited: { icon: FileEdit, tone: 'info', label: 'Edited' },\n deleted: { icon: Trash2, tone: 'destructive', label: 'Deleted' },\n cancelled: { icon: Ban, tone: 'destructive', label: 'Cancelled' },\n restored: { icon: Sparkles, tone: 'success', label: 'Restored' },\n\n // Status transitions\n status_changed: { icon: ArrowLeftRight, tone: 'primary', label: 'Status changed' },\n status_transition: { icon: ArrowLeftRight, tone: 'primary', label: 'Status changed' },\n status_override: { icon: ArrowLeftRight, tone: 'warning', label: 'Status overridden' },\n\n // People\n assigned: { icon: UserPlus, tone: 'info', label: 'Assigned' },\n unassigned: { icon: UserMinus, tone: 'destructive', label: 'Unassigned' },\n\n // Mail\n mail_sent: { icon: Mail, tone: 'info', label: 'Email sent' },\n mail_delivered: { icon: MailCheck, tone: 'success', label: 'Email delivered' },\n mail_opened: { icon: MailOpen, tone: 'info', label: 'Email opened' },\n mail_clicked: { icon: MailOpen, tone: 'info', label: 'Email clicked' },\n mail_bounced: { icon: MailX, tone: 'destructive', label: 'Email bounced' },\n mail_failed: { icon: MailX, tone: 'destructive', label: 'Email failed' },\n\n // Comments\n comment_created: { icon: MessageSquare, tone: 'warning', label: 'Comment posted' },\n comment_deleted: { icon: MessageSquare, tone: 'destructive', label: 'Comment deleted' },\n\n // Commerce\n paid: { icon: Check, tone: 'success', label: 'Paid' },\n refunded: { icon: ArrowLeftRight, tone: 'warning', label: 'Refunded' },\n confirmed: { icon: ShieldCheck, tone: 'success', label: 'Confirmed' },\n favorited: { icon: Heart, tone: 'warning', label: 'Favorited' },\n ordered: { icon: ShoppingBag, tone: 'primary', label: 'Order placed' },\n\n // Publishing\n published: { icon: Star, tone: 'success', label: 'Published' },\n flagged: { icon: Flag, tone: 'warning', label: 'Flagged' },\n linked: { icon: LinkIcon, tone: 'info', label: 'Linked' },\n\n // Failures\n failed: { icon: AlertTriangle, tone: 'destructive', label: 'Failed' },\n health_check_failed: { icon: AlertTriangle, tone: 'destructive', label: 'Health check failed' },\n};\n\n/** Resolve `eventConfig[event]` with override + default fallback. */\nexport function resolveEventConfig(\n event: string,\n map: ActivityEventConfigMap,\n): ActivityEventConfig {\n return map[event] ?? defaultEventConfig;\n}\n","/**\n * Strings for the Activities feature. Consumers override via the `strings`\n * prop on `<ActivityFeed>` / `<ActivityFeedCard>`. Values are deep-merged\n * over these defaults — `sources` and `events` merge one level deep so a\n * consumer can override a single source/event label without rewriting the\n * whole map.\n */\nexport interface ActivitiesStrings {\n /** Card title — usually \"Activity\". */\n title: string;\n /** Empty-state copy. */\n empty: string;\n /** Loading-state copy. */\n loading: string;\n /** Date-group label for today. */\n today: string;\n /** Date-group label for yesterday. */\n yesterday: string;\n /** Fallback label for activities without a timestamp. */\n undated: string;\n /** Replacement for actor name when `actorId === currentUserId`. */\n you: string;\n /** Toggle button label — collapsed state. */\n showChanges: string;\n /** Toggle button label — expanded state. */\n hideChanges: string;\n /** aria-label for the actions menu trigger. */\n actionsLabel: string;\n /** Generic \"more\" affordance label. */\n moreLabel: string;\n /** Map of `source` → display label. */\n sources: Record<string, string>;\n /** Map of `event` → display label. Used as a fallback for headlines. */\n events: Record<string, string>;\n}\n\nexport const defaultActivitiesStrings: ActivitiesStrings = {\n title: 'Activity',\n empty: 'No activity yet.',\n loading: 'Loading activity…',\n today: 'Today',\n yesterday: 'Yesterday',\n undated: 'Undated',\n you: 'You',\n showChanges: 'Show changes',\n hideChanges: 'Hide changes',\n actionsLabel: 'Activity actions',\n moreLabel: 'More',\n sources: {\n comment: 'Comment',\n mail: 'Mail',\n booking_log: 'Booking log',\n activity_log: '',\n system: 'System',\n },\n events: {},\n};\n\n/** Replace `{{key}}` tokens with values from `params`. */\nexport function interpolate(\n template: string,\n params: Record<string, string | number>,\n): string {\n return template.replace(/\\{\\{\\s*(\\w+)\\s*\\}\\}/g, (match, key) => {\n const v = params[key];\n return v === undefined ? match : String(v);\n });\n}\n","/**\n * useActivityFeed — headless state machine for the Activities feature.\n *\n * Returns date-grouped activities with stable React keys, plus the expand /\n * collapse map for change-detail rows. Consumers wanting a fully custom UI\n * can call this hook directly and bypass `<ActivityFeed />`.\n */\nimport { isToday, isYesterday } from 'date-fns';\nimport { useCallback, useMemo, useState } from 'react';\n\nimport type { ActivitiesStrings } from '../activities.strings';\nimport type { ActivityItem } from '../activities.types';\n\nexport interface ActivityKeyedItem<TData = unknown> {\n activity: ActivityItem<TData>;\n key: string;\n}\n\nexport interface ActivityDateGroup<TData = unknown> {\n label: string;\n items: ActivityKeyedItem<TData>[];\n}\n\nexport interface UseActivityFeedOptions<TData = unknown> {\n activities: ReadonlyArray<ActivityItem<TData>>;\n groupByDate?: boolean;\n expandedByDefault?: boolean;\n locale?: string;\n strings: ActivitiesStrings;\n formatDateGroupLabel?: (\n iso: string | null,\n strings: ActivitiesStrings,\n ) => string;\n}\n\nexport interface UseActivityFeedReturn<TData = unknown> {\n groups: ActivityDateGroup<TData>[];\n total: number;\n isExpanded: (id: string) => boolean;\n toggleExpanded: (id: string) => void;\n setExpanded: (id: string, value: boolean) => void;\n expandAll: () => void;\n collapseAll: () => void;\n}\n\nfunction defaultDateGroupLabel(\n iso: string | null,\n strings: ActivitiesStrings,\n locale?: string,\n): string {\n if (!iso) return strings.undated;\n const date = new Date(iso);\n if (isToday(date)) return strings.today;\n if (isYesterday(date)) return strings.yesterday;\n try {\n return new Intl.DateTimeFormat(locale, {\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n }).format(date);\n } catch {\n return new Intl.DateTimeFormat(undefined, {\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n }).format(date);\n }\n}\n\nexport function useActivityFeed<TData = unknown>({\n activities,\n groupByDate = true,\n expandedByDefault = false,\n locale,\n strings,\n formatDateGroupLabel,\n}: UseActivityFeedOptions<TData>): UseActivityFeedReturn<TData> {\n const [expandedMap, setExpandedMap] = useState<Record<string, boolean>>({});\n\n const keyed = useMemo<ActivityKeyedItem<TData>[]>(() => {\n const seen = new Map<string, number>();\n return activities.map((activity) => {\n const baseId = String(activity.id ?? '').trim();\n const createdAt = String(activity.createdAt ?? '').trim();\n const event = String(activity.event ?? '').trim();\n const source = String(activity.source ?? '').trim();\n const keyBase = [baseId, createdAt, event, source].join(':');\n const occurrence = (seen.get(keyBase) ?? 0) + 1;\n seen.set(keyBase, occurrence);\n return { activity, key: `${keyBase}:${occurrence}` };\n });\n }, [activities]);\n\n const groups = useMemo<ActivityDateGroup<TData>[]>(() => {\n if (!groupByDate) {\n return keyed.length > 0 ? [{ label: '', items: keyed }] : [];\n }\n const out: ActivityDateGroup<TData>[] = [];\n let currentLabel = '__init__';\n let currentItems: ActivityKeyedItem<TData>[] = [];\n\n const labelFor = (iso: string | null) =>\n formatDateGroupLabel\n ? formatDateGroupLabel(iso, strings)\n : defaultDateGroupLabel(iso, strings, locale);\n\n for (const item of keyed) {\n const iso = item.activity.createdAt ?? null;\n const label = labelFor(iso);\n if (label !== currentLabel) {\n if (currentItems.length > 0) {\n out.push({ label: currentLabel, items: currentItems });\n }\n currentLabel = label;\n currentItems = [item];\n } else {\n currentItems.push(item);\n }\n }\n if (currentItems.length > 0) {\n out.push({ label: currentLabel, items: currentItems });\n }\n return out;\n }, [keyed, groupByDate, locale, strings, formatDateGroupLabel]);\n\n const isExpanded = useCallback(\n (id: string) => expandedMap[id] ?? expandedByDefault,\n [expandedMap, expandedByDefault],\n );\n\n const toggleExpanded = useCallback((id: string) => {\n setExpandedMap((current) => ({\n ...current,\n [id]: !(current[id] ?? false),\n }));\n }, []);\n\n const setExpanded = useCallback((id: string, value: boolean) => {\n setExpandedMap((current) => ({ ...current, [id]: value }));\n }, []);\n\n const expandAll = useCallback(() => {\n const next: Record<string, boolean> = {};\n for (const k of keyed) next[k.activity.id] = true;\n setExpandedMap(next);\n }, [keyed]);\n\n const collapseAll = useCallback(() => setExpandedMap({}), []);\n\n return {\n groups,\n total: keyed.length,\n isExpanded,\n toggleExpanded,\n setExpanded,\n expandAll,\n collapseAll,\n };\n}\n","/**\n * useActivityResources — registry hook for the rich-resource feature.\n *\n * The registry maps `key → ActivityResourceConfig`. Activity items reference\n * resources by `key`; the row renderer looks up the live config so badges,\n * icons, and links can be edited globally without touching individual rows.\n *\n * The hook re-seeds whenever the `resources` prop reference changes and emits\n * the full registry on every mutation via `onResourcesChange`. Wire that\n * callback to localStorage / a backend mutation to persist the user's\n * resource customisations across sessions.\n */\nimport { useCallback, useEffect, useRef, useState } from 'react';\n\nimport type {\n ActivityResourceConfig,\n ActivityResourceRef,\n} from '../activities.types';\n\nexport type ActivityResourceRegistry = Readonly<\n Record<string, ActivityResourceConfig>\n>;\n\nexport interface UseActivityResourcesOptions {\n resources?: ActivityResourceRegistry;\n onResourcesChange?: (registry: ActivityResourceRegistry) => void;\n}\n\nexport interface UseActivityResourcesReturn {\n registry: ActivityResourceRegistry;\n /** Look up a resource by ref or key. */\n get: (\n ref: ActivityResourceRef | string,\n ) => ActivityResourceConfig | undefined;\n /** Replace a resource entry wholesale (or insert new). */\n register: (key: string, config: ActivityResourceConfig) => void;\n /** Shallow-merge a partial update over an existing entry. */\n update: (key: string, partial: Partial<ActivityResourceConfig>) => void;\n /** Remove an entry. */\n remove: (key: string) => void;\n /** Replace the entire registry. */\n setAll: (registry: ActivityResourceRegistry) => void;\n /** Reset to the original `resources` prop (or empty if none). */\n reset: () => void;\n}\n\nexport function useActivityResources({\n resources,\n onResourcesChange,\n}: UseActivityResourcesOptions = {}): UseActivityResourcesReturn {\n const [registry, setRegistry] = useState<ActivityResourceRegistry>(\n () => resources ?? {},\n );\n\n const seedRef = useRef(resources);\n useEffect(() => {\n if (resources !== seedRef.current) {\n seedRef.current = resources;\n setRegistry(resources ?? {});\n }\n }, [resources]);\n\n const onChangeRef = useRef(onResourcesChange);\n useEffect(() => {\n onChangeRef.current = onResourcesChange;\n }, [onResourcesChange]);\n\n const emit = useCallback((next: ActivityResourceRegistry) => {\n onChangeRef.current?.(next);\n }, []);\n\n const register = useCallback(\n (key: string, config: ActivityResourceConfig) => {\n setRegistry((current) => {\n const next = { ...current, [key]: config };\n emit(next);\n return next;\n });\n },\n [emit],\n );\n\n const update = useCallback(\n (key: string, partial: Partial<ActivityResourceConfig>) => {\n setRegistry((current) => {\n const existing = current[key];\n if (!existing) return current;\n const next = {\n ...current,\n [key]: { ...existing, ...partial },\n };\n emit(next);\n return next;\n });\n },\n [emit],\n );\n\n const remove = useCallback(\n (key: string) => {\n setRegistry((current) => {\n if (!(key in current)) return current;\n const next = { ...current };\n delete next[key];\n emit(next);\n return next;\n });\n },\n [emit],\n );\n\n const setAll = useCallback(\n (next: ActivityResourceRegistry) => {\n setRegistry(next);\n emit(next);\n },\n [emit],\n );\n\n const reset = useCallback(() => {\n const next = seedRef.current ?? {};\n setRegistry(next);\n emit(next);\n }, [emit]);\n\n const get = useCallback(\n (ref: ActivityResourceRef | string) => {\n const key = typeof ref === 'string' ? ref : ref.key;\n return registry[key];\n },\n [registry],\n );\n\n return { registry, get, register, update, remove, setAll, reset };\n}\n","/**\n * ActivityActionsMenu — inline overflow menu rendered on rich rows.\n *\n * Backed by the shadcn DropdownMenu primitive; each item fires the\n * activity's per-row `onClick` and forwards `actionId` through `onAction` so\n * consumers can route actions centrally.\n */\nimport { MoreHorizontal } from 'lucide-react';\n\nimport { Button } from '@/components/base/buttons';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from '@/components/base/navigation';\n\nimport type { ActivityAction, ActivityItem } from '../activities.types';\n\nexport interface ActivityActionsMenuProps<TData = unknown> {\n activity: ActivityItem<TData>;\n actions: readonly ActivityAction<TData>[];\n onAction?: (actionId: string, activity: ActivityItem<TData>) => void;\n label: string;\n}\n\nexport function ActivityActionsMenu<TData = unknown>({\n activity,\n actions,\n onAction,\n label,\n}: ActivityActionsMenuProps<TData>) {\n if (actions.length === 0) return null;\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger\n render={(triggerProps) => (\n <Button\n {...(triggerProps as Record<string, unknown>)}\n type=\"button\"\n variant=\"secondary\"\n buttonStyle=\"ghost\"\n size=\"icon-small\"\n aria-label={label}\n className=\"h-7 w-7 text-muted-foreground\"\n >\n <MoreHorizontal className=\"size-4\" />\n </Button>\n )}\n />\n <DropdownMenuContent align=\"end\" className=\"min-w-40\">\n {actions.map((action) => {\n const Icon = action.icon;\n return (\n <DropdownMenuItem\n key={action.id}\n onClick={() => {\n if (action.disabled) return;\n action.onClick(activity);\n onAction?.(action.id, activity);\n }}\n disabled={action.disabled}\n variant={action.tone === 'destructive' ? 'destructive' : 'default'}\n className=\"gap-2 px-2 py-1.5 text-xs\"\n >\n {!!Icon && <Icon className=\"size-3.5\" />}\n {action.label}\n </DropdownMenuItem>\n );\n })}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n","/**\n * ActivityChanges — collapsible old → new diff block.\n *\n * Each entry shows the attribute label, the previous value (line-through, on\n * a destructive tint), an arrow, and the new value (on a success tint). When\n * neither old nor new is set, falls back to `description`.\n */\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nimport type { ActivityChange } from '../activities.types';\n\nexport interface ActivityChangesProps {\n changes: readonly ActivityChange[];\n className?: string;\n}\n\nfunction ChangeValue({ change }: { change: ActivityChange }) {\n const hasOld = change.old !== null && change.old !== undefined;\n const hasNew = change.new !== null && change.new !== undefined;\n\n if (!hasOld && !hasNew) {\n return (\n <Text size=\"xs\" tag=\"span\">\n {change.description}\n </Text>\n );\n }\n\n return (\n <Text tag=\"span\" size=\"xs\" className=\"inline-flex flex-wrap items-baseline gap-1\">\n {!!hasOld && (\n <Text\n tag=\"span\"\n size=\"xs\"\n className=\"rounded bg-destructive/10 text-destructive line-through px-1 py-px\"\n >\n {change.old}\n </Text>\n )}\n {hasOld && hasNew && (\n <Text tag=\"span\" size=\"xs\" type=\"secondary\">\n →\n </Text>\n )}\n {!!hasNew && (\n <Text\n tag=\"span\"\n size=\"xs\"\n className=\"rounded bg-success/15 text-success px-1 py-px\"\n >\n {change.new}\n </Text>\n )}\n </Text>\n );\n}\n\nexport function ActivityChanges({ changes, className }: ActivityChangesProps) {\n if (changes.length === 0) return null;\n return (\n <div\n className={cn(\n 'space-y-1.5 rounded-lg border border-border/60 bg-muted/30 px-3 py-2',\n className,\n )}\n >\n {changes.map((change) => (\n <div\n key={`${change.key}-${change.label}`}\n className=\"flex items-baseline gap-2\"\n >\n <Text\n size=\"xs\"\n type=\"secondary\"\n weight=\"medium\"\n className=\"shrink-0\"\n >\n {change.label}\n </Text>\n <ChangeValue change={change} />\n </div>\n ))}\n </div>\n );\n}\n","/**\n * ActivityDateLabel — eyebrow rendered above each date group.\n *\n * Consumers can override via `slots.renderDateLabel`. Default: small\n * uppercase eyebrow above each group, with extra top margin between groups.\n */\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nexport interface ActivityDateLabelProps {\n label: string;\n isFirst: boolean;\n className?: string;\n}\n\nexport function ActivityDateLabel({\n label,\n isFirst,\n className,\n}: ActivityDateLabelProps) {\n if (label === '') return null;\n return (\n <Text\n size=\"xxs\"\n type=\"secondary\"\n weight=\"medium\"\n className={cn(\n 'uppercase tracking-wider',\n !isFirst && 'mt-5',\n className,\n )}\n >\n {label}\n </Text>\n );\n}\n","/**\n * ActivityEmptyState — neutral empty surface used when no activities are\n * available. Consumers replace via `slots.empty`.\n */\nimport { Activity } from 'lucide-react';\n\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nexport interface ActivityEmptyStateProps {\n title: string;\n hint?: string;\n className?: string;\n}\n\nexport function ActivityEmptyState({\n title,\n hint,\n className,\n}: ActivityEmptyStateProps) {\n return (\n <div\n className={cn(\n 'flex flex-col items-center justify-center gap-2 px-6 py-10 text-center',\n className,\n )}\n >\n <span className=\"flex size-9 items-center justify-center rounded-full bg-muted text-muted-foreground\">\n <Activity className=\"size-4\" />\n </span>\n <Text weight=\"medium\">\n {title}\n </Text>\n {!!hint && (\n <Text size=\"xs\" type=\"secondary\">\n {hint}\n </Text>\n )}\n </div>\n );\n}\n","/**\n * Tone palettes shared by the marker, headline status segments, and the\n * resource tag. Tones map to semantic shadcn tokens — never to raw colours —\n * so a consumer rebrand at `:root` flows through the activities feature\n * automatically.\n */\nimport type { ActivityTone } from '../activities.types';\nimport type { ComposedBadgeVariant } from '@/components/base/badge/badge';\n\nexport interface ActivityToneStyle {\n /** Filled background — used by the rich icon marker. */\n bg: string;\n /** Foreground text colour matching the bg. */\n fg: string;\n /** Solid colour used by the compact dot. */\n dot: string;\n /** Border tint used by the connector line. */\n line: string;\n /** Background for chips / tags. */\n chipBg: string;\n /** Text colour for chips / tags. */\n chipFg: string;\n}\n\nexport const ACTIVITY_TONE: Record<ActivityTone, ActivityToneStyle> = {\n primary: {\n bg: 'bg-primary/10',\n fg: 'text-primary',\n dot: 'bg-primary',\n line: 'bg-primary/30',\n chipBg: 'bg-primary/5',\n chipFg: 'text-primary',\n },\n success: {\n bg: 'bg-success/10',\n fg: 'text-success',\n dot: 'bg-success',\n line: 'bg-success/30',\n chipBg: 'bg-success/10',\n chipFg: 'text-success',\n },\n warning: {\n bg: 'bg-warning/30',\n fg: 'text-warning-foreground',\n dot: 'bg-warning',\n line: 'bg-warning/40',\n chipBg: 'bg-warning/30',\n chipFg: 'text-warning-foreground',\n },\n destructive: {\n bg: 'bg-destructive/10',\n fg: 'text-destructive',\n dot: 'bg-destructive',\n line: 'bg-destructive/30',\n chipBg: 'bg-destructive/10',\n chipFg: 'text-destructive',\n },\n info: {\n bg: 'bg-info/10',\n fg: 'text-info',\n dot: 'bg-info',\n line: 'bg-info/30',\n chipBg: 'bg-info/10',\n chipFg: 'text-info',\n },\n neutral: {\n bg: 'bg-muted',\n fg: 'text-muted-foreground',\n dot: 'bg-muted-foreground/60',\n line: 'bg-border',\n chipBg: 'bg-muted',\n chipFg: 'text-muted-foreground',\n },\n};\n\n/** Map an activity tone onto the closest base/Badge variant. */\nexport const TONE_TO_BADGE_VARIANT: Record<ActivityTone, ComposedBadgeVariant> = {\n primary: 'primary',\n success: 'success',\n warning: 'warning',\n destructive: 'destructive',\n info: 'info',\n neutral: 'secondary',\n};\n","/**\n * ActivityResourceTag — chip rendering for a registered resource.\n *\n * The resource registry stores per-key `ActivityResourceConfig` (label, icon,\n * tone, badge, tags). This component renders those as a single inline chip\n * suitable for embedding into a headline. Falls back gracefully when the\n * registry has no entry — uses the segment's text/label.\n */\nimport { CircleDot } from 'lucide-react';\nimport { cn } from '@/lib/utils';\n\nimport { Badge } from '@/components/base/badge';\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography';\n\nimport type {\n ActivityResourceConfig,\n ActivityResourceRef,\n ActivityTone,\n} from '../activities.types';\n\nimport { ACTIVITY_TONE, TONE_TO_BADGE_VARIANT } from './tone-tokens';\n\nexport interface ActivityResourceTagProps {\n resource: ActivityResourceRef;\n config?: ActivityResourceConfig;\n /** Fallback label if neither config nor segment text are present. */\n fallbackText?: string;\n onClick?: () => void;\n}\n\nexport function ActivityResourceTag({\n resource,\n config,\n fallbackText,\n onClick,\n}: ActivityResourceTagProps) {\n const tone: ActivityTone = config?.tone ?? 'neutral';\n const palette = ACTIVITY_TONE[tone];\n const Icon = config?.icon ?? CircleDot;\n const label = config?.label ?? fallbackText ?? resource.label ?? resource.key;\n const interactive = typeof onClick === 'function';\n\n const inner = (\n <>\n <Icon className={cn('size-icon-sm shrink-0', palette.fg)} />\n <Text tag=\"span\" size=\"inherit\" weight=\"medium\" className={palette.chipFg}>\n {label}\n </Text>\n {!!config?.tags && config.tags.length > 0 && (\n <Text\n tag=\"span\"\n size=\"xxs\"\n type=\"secondary\"\n className=\"ml-space-2xs border-l border-current/20 pl-space-sm\"\n >\n {config.tags.join(' · ')}\n </Text>\n )}\n {!!config?.badge && (\n <Badge\n inline\n variant={TONE_TO_BADGE_VARIANT[config.badge.tone ?? 'neutral']}\n className=\"ml-space-2xs\"\n >\n {config.badge.label}\n </Badge>\n )}\n </>\n );\n\n const chipClass = cn(\n 'inline-flex items-center gap-space-sm rounded-full px-space-md py-space-2xs align-baseline text-xxs',\n 'border border-border/60',\n palette.chipBg,\n interactive &&\n 'cursor-pointer transition-colors hover:bg-foreground/5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n );\n\n if (interactive) {\n return (\n <Button\n type=\"button\"\n variant=\"secondary\"\n buttonStyle=\"ghost\"\n size=\"small\"\n onClick={(e) => {\n e.stopPropagation();\n onClick?.();\n }}\n className={cn(chipClass, 'h-auto rounded-full')}\n title={config?.note}\n >\n {inner}\n </Button>\n );\n }\n\n return (\n <span className={chipClass} title={config?.note}>\n {inner}\n </span>\n );\n}\n","/**\n * ActivityHeadline — segment renderer for the headline line.\n *\n * Renders typed segments (`actor` / `field` / `value` / `status` / `resource`\n * / `text`) into mixed inline content with proper typography and tone.\n *\n * When no segments are provided, falls back to splitting `headline` around\n * the actor's name so the actor still becomes interactive when possible.\n */\nimport { Fragment, type ReactNode } from 'react';\n\nimport { Badge } from '@/components/base/badge';\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography';\n\nimport type {\n ActivityActor,\n ActivityHeadlineSegment,\n ActivityItem,\n ActivityResourceConfig,\n ActivityResourceRef,\n} from '../activities.types';\nimport { ActivityResourceTag } from './activity-resource-tag';\nimport { TONE_TO_BADGE_VARIANT } from './tone-tokens';\n\nexport interface ActivityHeadlineProps<TData = unknown> {\n activity: ActivityItem<TData>;\n currentUserId?: string;\n youLabel: string;\n onActorClick?: (actor: ActivityActor, activity: ActivityItem<TData>) => void;\n onResourceClick?: (\n resource: ActivityResourceRef,\n config: ActivityResourceConfig | undefined,\n activity: ActivityItem<TData>,\n ) => void;\n /** Live registry lookup for resource segments. */\n getResourceConfig?: (\n ref: ActivityResourceRef,\n ) => ActivityResourceConfig | undefined;\n}\n\nfunction ActorNode<TData>({\n actorId,\n text,\n href,\n activity,\n youLabel,\n currentUserId,\n onActorClick,\n}: {\n actorId?: string;\n text: string;\n href?: string;\n activity: ActivityItem<TData>;\n youLabel: string;\n currentUserId?: string;\n onActorClick?: (actor: ActivityActor, activity: ActivityItem<TData>) => void;\n}) {\n const isYou =\n currentUserId !== undefined &&\n actorId !== undefined &&\n currentUserId === actorId;\n const display = isYou ? youLabel : text;\n const actor: ActivityActor = activity.actor ?? { id: actorId, name: text };\n\n if (href) {\n return (\n <a\n href={href}\n onClick={(e) => {\n if (onActorClick) {\n e.preventDefault();\n e.stopPropagation();\n onActorClick(actor, activity);\n }\n }}\n className=\"font-semibold text-foreground underline-offset-2 hover:underline\"\n >\n {display}\n </a>\n );\n }\n\n if (onActorClick) {\n return (\n <Button\n type=\"button\"\n variant=\"secondary\"\n buttonStyle=\"ghost\"\n size=\"small\"\n onClick={(e) => {\n e.stopPropagation();\n onActorClick(actor, activity);\n }}\n className=\"h-auto rounded px-0 py-0 font-semibold text-foreground underline-offset-2 hover:underline\"\n >\n {display}\n </Button>\n );\n }\n\n return (\n <Text tag=\"span\" weight=\"semibold\">\n {display}\n </Text>\n );\n}\n\nfunction renderSegments<TData>(\n segments: readonly ActivityHeadlineSegment[],\n props: ActivityHeadlineProps<TData>,\n): ReactNode {\n return segments.map((segment, index) => {\n const key = `seg-${index}-${segment.type}`;\n switch (segment.type) {\n case 'actor':\n return (\n <Fragment key={key}>\n <ActorNode<TData>\n actorId={segment.actorId}\n text={segment.text}\n href={segment.href}\n activity={props.activity}\n youLabel={props.youLabel}\n currentUserId={props.currentUserId}\n onActorClick={props.onActorClick}\n />{' '}\n </Fragment>\n );\n case 'field':\n case 'value':\n return (\n <Fragment key={key}>\n <Text tag=\"span\" weight=\"semibold\">\n {segment.text}\n </Text>{' '}\n </Fragment>\n );\n case 'status':\n return (\n <Fragment key={key}>\n <Badge\n inline\n variant={TONE_TO_BADGE_VARIANT[segment.tone ?? 'neutral']}\n >\n {segment.text}\n </Badge>{' '}\n </Fragment>\n );\n case 'resource': {\n const config = props.getResourceConfig?.(segment.resource);\n return (\n <Fragment key={key}>\n <ActivityResourceTag\n resource={segment.resource}\n config={config}\n fallbackText={segment.text}\n onClick={\n props.onResourceClick\n ? () =>\n props.onResourceClick?.(\n segment.resource,\n config,\n props.activity,\n )\n : undefined\n }\n />{' '}\n </Fragment>\n );\n }\n case 'text':\n default:\n return (\n <Fragment key={key}>\n <Text tag=\"span\">\n {segment.text}\n </Text>{' '}\n </Fragment>\n );\n }\n });\n}\n\nfunction renderFallback<TData>(props: ActivityHeadlineProps<TData>): ReactNode {\n const { activity } = props;\n const fallbackHeadline =\n activity.headline ?? activity.event;\n const actorName = activity.actor?.name;\n if (!actorName || !fallbackHeadline.includes(actorName)) {\n return (\n <Text tag=\"span\">\n {fallbackHeadline}\n </Text>\n );\n }\n const [before, ...after] = fallbackHeadline.split(actorName);\n return (\n <>\n {!!before && (\n <Text tag=\"span\">\n {before}\n </Text>\n )}\n <ActorNode<TData>\n actorId={activity.actor?.id}\n text={actorName}\n href={activity.actor?.href}\n activity={activity}\n youLabel={props.youLabel}\n currentUserId={props.currentUserId}\n onActorClick={props.onActorClick}\n />\n {after.length > 0 && (\n <Text tag=\"span\">\n {after.join(actorName)}\n </Text>\n )}\n </>\n );\n}\n\nexport function ActivityHeadline<TData = unknown>(\n props: ActivityHeadlineProps<TData>,\n) {\n const segments = props.activity.segments;\n if (segments && segments.length > 0) {\n return (\n <span className=\"leading-snug [&>span]:leading-snug\">\n {renderSegments<TData>(segments, props)}\n </span>\n );\n }\n return <span className=\"leading-snug\">{renderFallback<TData>(props)}</span>;\n}\n","/**\n * ActivityMarker — left-edge visual for a row.\n *\n * Density mapping:\n * - `compact` → small tone-coloured dot\n * - `default` → 22px tone-tinted square with the event icon\n * - `rich` → 28px tone-tinted circle with the event icon\n *\n * Always renders the connector line beneath unless `isLast` is true.\n */\nimport type { LucideIcon } from 'lucide-react';\nimport { cn } from '@/lib/utils';\n\nimport type { ActivityDensity, ActivityTone } from '../activities.types';\n\nimport { ACTIVITY_TONE } from './tone-tokens';\n\nexport interface ActivityMarkerProps {\n icon: LucideIcon;\n tone: ActivityTone;\n density: ActivityDensity;\n isLast: boolean;\n}\n\nexport function ActivityMarker({\n icon: Icon,\n tone,\n density,\n isLast,\n}: ActivityMarkerProps) {\n const palette = ACTIVITY_TONE[tone];\n\n if (density === 'compact') {\n return (\n <div className=\"flex flex-col items-center\">\n <span\n aria-hidden\n className={cn('mt-1.5 size-2 shrink-0 rounded-full', palette.dot)}\n />\n {!isLast && (\n <span aria-hidden className={cn('mt-1 w-px flex-1', palette.line)} />\n )}\n </div>\n );\n }\n\n if (density === 'rich') {\n return (\n <div className=\"flex flex-col items-center\">\n <span\n className={cn(\n 'flex size-7 shrink-0 items-center justify-center rounded-full ring-1 ring-border/60',\n palette.bg,\n palette.fg,\n )}\n >\n <Icon className=\"size-3.5\" />\n </span>\n {!isLast && (\n <span aria-hidden className={cn('mt-1 w-px flex-1', palette.line)} />\n )}\n </div>\n );\n }\n\n return (\n <div className=\"flex flex-col items-center\">\n <span\n className={cn(\n 'flex size-5 shrink-0 items-center justify-center rounded-full',\n palette.bg,\n palette.fg,\n )}\n >\n <Icon className=\"size-3\" />\n </span>\n {!isLast && (\n <span aria-hidden className={cn('mt-1 w-px flex-1', palette.line)} />\n )}\n </div>\n );\n}\n","/**\n * ActivityRow — single row layout used by `<ActivityFeed />`.\n *\n * Composes the marker, headline, optional description, metadata chips,\n * source badge, timestamp, and (rich-only) the change-detail block plus\n * action menu. Per-density layout follows the design-system rules:\n * compact (dot, single line) / default (icon, headline + meta line) /\n * rich (icon, full header + body + actions).\n */\nimport { ChevronDown, ChevronRight } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport { Badge } from '@/components/base/badge';\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nimport type {\n ActivityAction,\n ActivityActor,\n ActivityDensity,\n ActivityEventConfig,\n ActivityItem,\n ActivityResourceConfig,\n ActivityResourceRef,\n ActivityTone,\n} from '../activities.types';\n\nimport { ActivityActionsMenu } from './activity-actions-menu';\nimport { ActivityChanges } from './activity-changes';\nimport { ActivityHeadline } from './activity-headline';\nimport { ActivityMarker } from './activity-marker';\nimport { ActivityResourceTag } from './activity-resource-tag';\n\nexport interface ActivityRowProps<TData = unknown> {\n activity: ActivityItem<TData>;\n density: ActivityDensity;\n eventConfig: ActivityEventConfig;\n tone: ActivityTone;\n isLast: boolean;\n expanded: boolean;\n onToggleExpanded: () => void;\n relativeTime: string | null;\n absoluteTime: string | null;\n sourceLabel: string | null;\n youLabel: string;\n showChangesLabel: string;\n hideChangesLabel: string;\n actionsLabel: string;\n currentUserId?: string;\n actions: readonly ActivityAction<TData>[];\n onActivityClick?: (activity: ActivityItem<TData>) => void;\n onActorClick?: (actor: ActivityActor, activity: ActivityItem<TData>) => void;\n onResourceClick?: (\n resource: ActivityResourceRef,\n config: ActivityResourceConfig | undefined,\n activity: ActivityItem<TData>,\n ) => void;\n onAction?: (actionId: string, activity: ActivityItem<TData>) => void;\n getResourceConfig?: (\n ref: ActivityResourceRef,\n ) => ActivityResourceConfig | undefined;\n /** Slot override for the headline only. */\n headlineOverride?: ReactNode;\n /** Slot override for the marker only. */\n markerOverride?: ReactNode;\n}\n\nexport function ActivityRow<TData = unknown>(props: ActivityRowProps<TData>) {\n const {\n activity,\n density,\n eventConfig,\n tone,\n isLast,\n expanded,\n onToggleExpanded,\n relativeTime,\n absoluteTime,\n sourceLabel,\n youLabel,\n showChangesLabel,\n hideChangesLabel,\n actionsLabel,\n currentUserId,\n actions,\n onActivityClick,\n onActorClick,\n onResourceClick,\n onAction,\n getResourceConfig,\n headlineOverride,\n markerOverride,\n } = props;\n\n const Icon = activity.iconOverride ?? eventConfig.icon;\n const hasChanges = (activity.changes?.length ?? 0) > 0;\n const hasMetadata = (activity.metadata?.length ?? 0) > 0;\n const hasResources = (activity.resources?.length ?? 0) > 0;\n const hasDescription =\n activity.description !== undefined &&\n activity.description !== null &&\n activity.description !== '';\n const showSecondaryRow = density !== 'compact';\n const showRichBody = density === 'rich';\n\n const headlineNode =\n headlineOverride ??\n (\n <ActivityHeadline<TData>\n activity={activity}\n currentUserId={currentUserId}\n youLabel={youLabel}\n onActorClick={onActorClick}\n onResourceClick={onResourceClick}\n getResourceConfig={getResourceConfig}\n />\n );\n\n const markerNode =\n markerOverride ?? (\n <ActivityMarker\n icon={Icon}\n tone={tone}\n density={density}\n isLast={isLast}\n />\n );\n\n const interactive = typeof onActivityClick === 'function';\n const hasNestedInteractive = (\n hasChanges ||\n hasResources ||\n actions.length > 0 ||\n typeof onActorClick === 'function' ||\n typeof onResourceClick === 'function'\n );\n const keyboardInteractive = interactive && !hasNestedInteractive;\n\n return (\n <div\n className={cn(\n 'relative flex gap-space-lg',\n interactive && 'cursor-pointer rounded-md hover:bg-muted/40',\n )}\n onClick={interactive ? () => onActivityClick?.(activity) : undefined}\n role={keyboardInteractive ? 'button' : undefined}\n tabIndex={keyboardInteractive ? 0 : undefined}\n onKeyDown={\n keyboardInteractive\n ? (e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onActivityClick?.(activity);\n }\n }\n : undefined\n }\n >\n {markerNode}\n\n <div\n className={cn(\n 'min-w-0 flex-1',\n !isLast && (density === 'rich' ? 'pb-row-y-lg' : density === 'compact' ? 'pb-row-y' : 'pb-row-y-lg'),\n )}\n >\n <div className=\"flex flex-col gap-space-sm sm:flex-row sm:items-start sm:justify-between sm:gap-space-lg\">\n <div className=\"flex min-w-0 flex-wrap items-center gap-x-space-sm gap-y-space-sm\">\n <Text tag=\"span\" size=\"inherit\" lineHeight=\"snug\">\n {headlineNode}\n </Text>\n {!!sourceLabel && (\n <Badge inline variant=\"secondary\">\n {sourceLabel}\n </Badge>\n )}\n {showRichBody && hasChanges && (\n <Button\n type=\"button\"\n size=\"icon-small\"\n variant=\"secondary\"\n buttonStyle=\"ghost\"\n className=\"h-5 w-5 text-muted-foreground\"\n onClick={(e) => {\n e.stopPropagation();\n onToggleExpanded();\n }}\n title={expanded ? hideChangesLabel : showChangesLabel}\n aria-label={expanded ? hideChangesLabel : showChangesLabel}\n aria-expanded={expanded}\n >\n {expanded ? (\n <ChevronDown className=\"size-3.5\" />\n ) : (\n <ChevronRight className=\"size-3.5\" />\n )}\n </Button>\n )}\n </div>\n\n <div className=\"flex shrink-0 items-center gap-space-sm\">\n {!!relativeTime && (\n <Text\n size=\"inherit\"\n type=\"secondary\"\n className=\"whitespace-nowrap tabular-nums pt-space-2xs text-xxs\"\n title={absoluteTime ?? undefined}\n >\n {relativeTime}\n </Text>\n )}\n {showRichBody && actions.length > 0 && (\n <ActivityActionsMenu<TData>\n activity={activity}\n actions={actions}\n onAction={onAction}\n label={actionsLabel}\n />\n )}\n </div>\n </div>\n\n {!!showSecondaryRow && hasDescription && (\n <Text tag=\"div\" size=\"inherit\" type=\"secondary\" className=\"mt-space-sm text-xs\">\n {activity.description}\n </Text>\n )}\n\n {!!showRichBody && hasMetadata && activity.metadata && (\n <div className=\"mt-space-md flex flex-wrap gap-x-space-lg gap-y-space-sm\">\n {activity.metadata.map((m) => (\n <Text key={m.label} size=\"inherit\" type=\"secondary\" className=\"text-xs\">\n <Text tag=\"span\" size=\"inherit\" type=\"discrete\" className=\"text-xxs\">\n {m.label}:{' '}\n </Text>\n {m.value}\n </Text>\n ))}\n </div>\n )}\n\n {!!showRichBody && hasResources && activity.resources && (\n <div className=\"mt-space-md flex flex-wrap gap-space-sm\">\n {activity.resources.map((res) => {\n const cfg = getResourceConfig?.(res);\n return (\n <ActivityResourceTag\n key={res.key}\n resource={res}\n config={cfg}\n onClick={\n onResourceClick\n ? () =>\n onResourceClick(\n res,\n cfg,\n activity,\n )\n : undefined\n }\n />\n );\n })}\n </div>\n )}\n\n {!!showRichBody && hasChanges && expanded && activity.changes && (\n <div className=\"mt-space-md\">\n <ActivityChanges changes={activity.changes} />\n </div>\n )}\n </div>\n </div>\n );\n}\n","/**\n * ActivityFeed — framework-agnostic activity timeline.\n *\n * Composition seams:\n * - `strings` — deep-partial override of every label\n * - `eventConfig` — mass-configurable per-event icon/tone/labels\n * - `slots` — replace any region (row / headline / marker /\n * dateLabel / empty / loading / header / footer)\n * - `slots.renderRow` — full per-row override\n * - `accessors` — formatRelative/Absolute, getEventLabel, …\n * - `actionsForActivity` — surface a per-row action menu (rich density)\n * - `resources` + `onResourcesChange` — registry-driven rich resource\n * tags (icons, badges, links, tags) with save\n * and restore semantics for the consumer\n *\n * Headless usage:\n * - Call `useActivityFeed({ activities, ... })` directly to drive a\n * completely custom UI against the same grouping/expand state machine.\n * - Call `useActivityResources({ resources, onResourcesChange })` to\n * drive the registry independently.\n *\n * Framework-agnostic:\n * - No router import, no i18n SDK import. Wire actor / resource navigation\n * via callbacks at the call site.\n */\nimport { useMemo, type ReactNode } from 'react';\n\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\nimport { useDatesConfig } from '@/lib/ui-provider';\nimport { cn } from '@/lib/utils';\n\nimport {\n defaultActivityEventConfig,\n resolveEventConfig,\n} from './activities.config';\nimport {\n defaultActivitiesStrings,\n} from './activities.strings';\nimport type {\n ActivityAction,\n ActivityFeedProps,\n ActivityItem,\n ActivityRenderRowContext,\n ActivityTone,\n} from './activities.types';\nimport { useActivityFeed } from './hooks/use-activity-feed';\nimport { useActivityResources } from './hooks/use-activity-resources';\nimport {\n ActivityDateLabel,\n ActivityEmptyState,\n ActivityRow,\n} from './partials';\n\nfunction defaultFormatAbsolute(iso: string, locale?: string): string {\n try {\n return new Intl.DateTimeFormat(locale, {\n dateStyle: 'medium',\n timeStyle: 'short',\n }).format(new Date(iso));\n } catch {\n return iso;\n }\n}\n\nfunction resolveTone<TData>(\n activity: ActivityItem<TData>,\n eventTone: ActivityTone,\n): ActivityTone {\n return activity.toneOverride ?? eventTone;\n}\n\nexport function ActivityFeed<TData = unknown>(props: ActivityFeedProps<TData>) {\n const {\n activities = [],\n density = 'default',\n groupByDate = true,\n expandedByDefault = false,\n currentUserId,\n loading = false,\n eventConfig: eventConfigOverride,\n strings: stringsProp,\n slots,\n className,\n locale,\n // accessors\n formatRelativeTime,\n formatAbsoluteTime,\n formatDateGroupLabel,\n getEventLabel: _getEventLabel,\n getSourceLabel,\n actionsForActivity,\n // callbacks\n onActivityClick,\n onActorClick,\n onResourceClick,\n onAction,\n // resources\n resources,\n onResourcesChange,\n } = props;\n\n const strings = useStrings(defaultActivitiesStrings, stringsProp);\n\n const eventConfigMap = useMemo(\n () => ({ ...defaultActivityEventConfig, ...eventConfigOverride }),\n [eventConfigOverride],\n );\n\n const registry = useActivityResources({\n resources,\n onResourcesChange,\n });\n\n const feed = useActivityFeed<TData>({\n activities,\n groupByDate,\n expandedByDefault,\n locale,\n strings,\n formatDateGroupLabel,\n });\n\n const { formatRelativeTime: storeFormatRelative } = useDatesConfig();\n const fmtRelative = formatRelativeTime ?? storeFormatRelative ?? ((iso: string) => iso);\n const fmtAbsolute = formatAbsoluteTime ?? ((iso: string) => defaultFormatAbsolute(iso, locale));\n\n if (loading) {\n return (\n <div className={cn('activities-feed--component', 'px-2 py-4', className)}>\n {slots?.loading ?? (\n <Text type=\"secondary\" align=\"center\">\n {strings.loading}\n </Text>\n )}\n </div>\n );\n }\n\n if (activities.length === 0) {\n return (\n <div className={cn('activities-feed--component', 'px-2 py-2', className)}>\n {slots?.empty ?? <ActivityEmptyState title={strings.empty} />}\n </div>\n );\n }\n\n const totalRendered = feed.groups.reduce((acc, g) => acc + g.items.length, 0);\n let renderedSoFar = 0;\n\n return (\n <div className={cn('activities-feed--component flex flex-col', className)}>\n {!!slots?.header && <div className=\"mb-3\">{slots.header}</div>}\n\n <div className=\"flex flex-col\">\n {feed.groups.map((group, gi) => {\n const isFirstGroup = gi === 0;\n return (\n <div key={`${group.label}-${gi}`} className={cn(isFirstGroup ? '' : 'mt-1')}>\n {slots?.renderDateLabel\n ? slots.renderDateLabel(group.label, isFirstGroup)\n : (\n <ActivityDateLabel\n label={group.label}\n isFirst={isFirstGroup}\n className={isFirstGroup ? '' : 'mb-2'}\n />\n )}\n\n <div className={cn('flex flex-col', !!group.label && 'mt-2')}>\n {group.items.map((keyed, ii) => {\n const activity = keyed.activity;\n const isFirstInGroup = ii === 0;\n const isLast =\n ++renderedSoFar === totalRendered;\n const eventCfg = resolveEventConfig(\n activity.event,\n eventConfigMap,\n );\n const tone = resolveTone(activity, eventCfg.tone);\n const relativeTime = activity.timestamp\n ?? (activity.createdAt\n ? fmtRelative(activity.createdAt)\n : null);\n const absoluteTime = activity.createdAt\n ? fmtAbsolute(activity.createdAt)\n : null;\n const sourceLabel = activity.source\n ? (getSourceLabel?.(activity.source)\n ?? strings.sources[activity.source]\n ?? eventCfg.sourceLabel\n ?? null)\n : eventCfg.sourceLabel ?? null;\n const sourceLabelTrimmed =\n sourceLabel && sourceLabel.trim().length > 0\n ? sourceLabel\n : null;\n const actions: readonly ActivityAction<TData>[] =\n actionsForActivity?.(activity) ?? [];\n\n const ctx: ActivityRenderRowContext<TData> = {\n density,\n isLast,\n isFirstInGroup,\n activity,\n eventConfig: eventCfg,\n tone,\n relativeTime,\n absoluteTime,\n sourceLabel: sourceLabelTrimmed,\n expanded: feed.isExpanded(activity.id),\n toggleExpanded: () =>\n feed.toggleExpanded(activity.id),\n };\n\n const customRow = slots?.renderRow?.(activity, ctx);\n if (customRow !== undefined) {\n return (\n <div key={keyed.key}>{customRow}</div>\n );\n }\n\n const headlineOverride =\n slots?.renderHeadline?.(activity, ctx);\n const markerOverride =\n slots?.renderMarker?.(activity, ctx);\n\n return (\n <ActivityRow<TData>\n key={keyed.key}\n activity={activity}\n density={density}\n eventConfig={eventCfg}\n tone={tone}\n isLast={isLast}\n expanded={ctx.expanded}\n onToggleExpanded={ctx.toggleExpanded}\n relativeTime={relativeTime}\n absoluteTime={absoluteTime}\n sourceLabel={sourceLabelTrimmed}\n youLabel={strings.you}\n showChangesLabel={strings.showChanges}\n hideChangesLabel={strings.hideChanges}\n actionsLabel={strings.actionsLabel}\n currentUserId={currentUserId}\n actions={actions}\n onActivityClick={onActivityClick}\n onActorClick={onActorClick}\n onResourceClick={onResourceClick}\n onAction={onAction}\n getResourceConfig={(ref) =>\n registry.get(ref)\n }\n headlineOverride={\n headlineOverride as ReactNode | undefined\n }\n markerOverride={\n markerOverride as ReactNode | undefined\n }\n />\n );\n })}\n </div>\n </div>\n );\n })}\n </div>\n\n {!!slots?.footer && <div className=\"mt-3\">{slots.footer}</div>}\n </div>\n );\n}\n\nActivityFeed.displayName = 'ActivityFeed';\n","/**\n * ActivityFeedCard — `<ActivityFeed />` wrapped in `SmartCard`.\n *\n * Use this when you want the canonical card chrome (title + description +\n * actions menu + content padding). For embedded surfaces (sidebars, panels)\n * use `<ActivityFeed />` directly.\n */\nimport { Activity } from 'lucide-react';\n\nimport { SmartCard } from '@/components/base/cards';\nimport { useStrings } from '@/lib/strings';\n\nimport { ActivityFeed } from '../activities-feed';\nimport { defaultActivitiesStrings } from '../activities.strings';\nimport type { ActivityFeedCardProps } from '../activities.types';\n\nexport function ActivityFeedCard<TData = unknown>({\n title,\n titleSuffix,\n description,\n padding = 'default',\n composerSlot,\n className,\n strings: stringsProp,\n slots,\n ...feedProps\n}: ActivityFeedCardProps<TData>) {\n const strings = useStrings(defaultActivitiesStrings, stringsProp);\n\n const cardTitle = title ?? strings.title;\n\n return (\n <SmartCard\n icon={<Activity className=\"size-4\" />}\n title={cardTitle}\n titleSuffix={titleSuffix}\n description={description}\n padding={padding}\n className={className}\n >\n <ActivityFeed<TData>\n {...feedProps}\n strings={stringsProp}\n slots={{\n ...slots,\n header: composerSlot ?? slots?.header,\n }}\n />\n </SmartCard>\n );\n}\n\nActivityFeedCard.displayName = 'ActivityFeedCard';\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","names":[],"sources":["../../../../src/components/features/activities/activities.config.ts","../../../../src/components/features/activities/activities.strings.ts","../../../../src/components/features/activities/hooks/use-activity-feed.ts","../../../../src/components/features/activities/hooks/use-activity-resources.ts","../../../../src/components/features/activities/partials/activity-actions-menu.tsx","../../../../src/components/features/activities/partials/activity-changes.tsx","../../../../src/components/features/activities/partials/activity-date-label.tsx","../../../../src/components/features/activities/partials/activity-empty-state.tsx","../../../../src/components/features/activities/partials/tone-tokens.ts","../../../../src/components/features/activities/partials/activity-resource-tag.tsx","../../../../src/components/features/activities/partials/activity-headline.tsx","../../../../src/components/features/activities/partials/activity-marker.tsx","../../../../src/components/features/activities/partials/activity-row.tsx","../../../../src/components/features/activities/activities-feed.tsx","../../../../src/components/features/activities/partials/activities-feed-card.tsx"],"sourcesContent":["/**\n * Default per-event configuration. Consumers override individual events by\n * spreading this map and overwriting the keys they care about, e.g.:\n *\n * import { defaultActivityEventConfig } from '@/components/features/activities';\n *\n * const eventConfig = {\n * ...defaultActivityEventConfig,\n * order_refunded: { icon: Receipt, tone: 'warning', label: 'Refunded' },\n * };\n *\n * The mass `eventConfig` prop on `<ActivityFeed />` is shallow-merged on top\n * of these defaults, so any unspecified event falls back to the library\n * default and ultimately to the neutral `defaultEvent` entry below.\n */\nimport {\n AlertTriangle,\n ArrowLeftRight,\n Ban,\n Check,\n CircleDot,\n FileEdit,\n Flag,\n Heart,\n LinkIcon,\n Mail,\n MailCheck,\n MailOpen,\n MailX,\n MessageSquare,\n Pencil,\n Plus,\n ShieldCheck,\n ShoppingBag,\n Sparkles,\n Star,\n Trash2,\n UserMinus,\n UserPlus,\n} from 'lucide-react';\n\nimport type { ActivityEventConfig, ActivityEventConfigMap } from './activities.types';\n\n/** Neutral fallback used when an event has no entry in the registry. */\nexport const defaultEventConfig: ActivityEventConfig = {\n icon: CircleDot,\n tone: 'neutral',\n};\n\nexport const defaultActivityEventConfig: ActivityEventConfigMap = {\n // Lifecycle\n created: { icon: Plus, tone: 'success', label: 'Created' },\n updated: { icon: Pencil, tone: 'info', label: 'Updated' },\n edited: { icon: FileEdit, tone: 'info', label: 'Edited' },\n deleted: { icon: Trash2, tone: 'destructive', label: 'Deleted' },\n cancelled: { icon: Ban, tone: 'destructive', label: 'Cancelled' },\n restored: { icon: Sparkles, tone: 'success', label: 'Restored' },\n\n // Status transitions\n status_changed: { icon: ArrowLeftRight, tone: 'primary', label: 'Status changed' },\n status_transition: { icon: ArrowLeftRight, tone: 'primary', label: 'Status changed' },\n status_override: { icon: ArrowLeftRight, tone: 'warning', label: 'Status overridden' },\n\n // People\n assigned: { icon: UserPlus, tone: 'info', label: 'Assigned' },\n unassigned: { icon: UserMinus, tone: 'destructive', label: 'Unassigned' },\n\n // Mail\n mail_sent: { icon: Mail, tone: 'info', label: 'Email sent' },\n mail_delivered: { icon: MailCheck, tone: 'success', label: 'Email delivered' },\n mail_opened: { icon: MailOpen, tone: 'info', label: 'Email opened' },\n mail_clicked: { icon: MailOpen, tone: 'info', label: 'Email clicked' },\n mail_bounced: { icon: MailX, tone: 'destructive', label: 'Email bounced' },\n mail_failed: { icon: MailX, tone: 'destructive', label: 'Email failed' },\n\n // Comments\n comment_created: { icon: MessageSquare, tone: 'warning', label: 'Comment posted' },\n comment_deleted: { icon: MessageSquare, tone: 'destructive', label: 'Comment deleted' },\n\n // Commerce\n paid: { icon: Check, tone: 'success', label: 'Paid' },\n refunded: { icon: ArrowLeftRight, tone: 'warning', label: 'Refunded' },\n confirmed: { icon: ShieldCheck, tone: 'success', label: 'Confirmed' },\n favorited: { icon: Heart, tone: 'warning', label: 'Favorited' },\n ordered: { icon: ShoppingBag, tone: 'primary', label: 'Order placed' },\n\n // Publishing\n published: { icon: Star, tone: 'success', label: 'Published' },\n flagged: { icon: Flag, tone: 'warning', label: 'Flagged' },\n linked: { icon: LinkIcon, tone: 'info', label: 'Linked' },\n\n // Failures\n failed: { icon: AlertTriangle, tone: 'destructive', label: 'Failed' },\n health_check_failed: { icon: AlertTriangle, tone: 'destructive', label: 'Health check failed' },\n};\n\n/** Resolve `eventConfig[event]` with override + default fallback. */\nexport function resolveEventConfig(\n event: string,\n map: ActivityEventConfigMap,\n): ActivityEventConfig {\n return map[event] ?? defaultEventConfig;\n}\n","/**\n * Strings for the Activities feature. Consumers override via the `strings`\n * prop on `<ActivityFeed>` / `<ActivityFeedCard>`. Values are deep-merged\n * over these defaults — `sources` and `events` merge one level deep so a\n * consumer can override a single source/event label without rewriting the\n * whole map.\n */\nexport interface ActivitiesStrings {\n /** Card title — usually \"Activity\". */\n title: string;\n /** Empty-state copy. */\n empty: string;\n /** Loading-state copy. */\n loading: string;\n /** Date-group label for today. */\n today: string;\n /** Date-group label for yesterday. */\n yesterday: string;\n /** Fallback label for activities without a timestamp. */\n undated: string;\n /** Replacement for actor name when `actorId === currentUserId`. */\n you: string;\n /** Toggle button label — collapsed state. */\n showChanges: string;\n /** Toggle button label — expanded state. */\n hideChanges: string;\n /** aria-label for the actions menu trigger. */\n actionsLabel: string;\n /** Generic \"more\" affordance label. */\n moreLabel: string;\n /** Map of `source` → display label. */\n sources: Record<string, string>;\n /** Map of `event` → display label. Used as a fallback for headlines. */\n events: Record<string, string>;\n}\n\nexport const defaultActivitiesStrings: ActivitiesStrings = {\n title: 'Activity',\n empty: 'No activity yet.',\n loading: 'Loading activity…',\n today: 'Today',\n yesterday: 'Yesterday',\n undated: 'Undated',\n you: 'You',\n showChanges: 'Show changes',\n hideChanges: 'Hide changes',\n actionsLabel: 'Activity actions',\n moreLabel: 'More',\n sources: {\n comment: 'Comment',\n mail: 'Mail',\n booking_log: 'Booking log',\n activity_log: '',\n system: 'System',\n },\n events: {},\n};\n\n/** Replace `{{key}}` tokens with values from `params`. */\nexport function interpolate(\n template: string,\n params: Record<string, string | number>,\n): string {\n return template.replace(/\\{\\{\\s*(\\w+)\\s*\\}\\}/g, (match, key) => {\n const v = params[key];\n return v === undefined ? match : String(v);\n });\n}\n","/**\n * useActivityFeed — headless state machine for the Activities feature.\n *\n * Returns date-grouped activities with stable React keys, plus the expand /\n * collapse map for change-detail rows. Consumers wanting a fully custom UI\n * can call this hook directly and bypass `<ActivityFeed />`.\n */\nimport { isToday, isYesterday } from 'date-fns';\nimport { useCallback, useMemo, useState } from 'react';\n\nimport type { ActivitiesStrings } from '../activities.strings';\nimport type { ActivityItem } from '../activities.types';\n\nexport interface ActivityKeyedItem<TData = unknown> {\n activity: ActivityItem<TData>;\n key: string;\n}\n\nexport interface ActivityDateGroup<TData = unknown> {\n label: string;\n items: ActivityKeyedItem<TData>[];\n}\n\nexport interface UseActivityFeedOptions<TData = unknown> {\n activities: ReadonlyArray<ActivityItem<TData>>;\n groupByDate?: boolean;\n expandedByDefault?: boolean;\n locale?: string;\n strings: ActivitiesStrings;\n formatDateGroupLabel?: (\n iso: string | null,\n strings: ActivitiesStrings,\n ) => string;\n}\n\nexport interface UseActivityFeedReturn<TData = unknown> {\n groups: ActivityDateGroup<TData>[];\n total: number;\n isExpanded: (id: string) => boolean;\n toggleExpanded: (id: string) => void;\n setExpanded: (id: string, value: boolean) => void;\n expandAll: () => void;\n collapseAll: () => void;\n}\n\nfunction defaultDateGroupLabel(\n iso: string | null,\n strings: ActivitiesStrings,\n locale?: string,\n): string {\n if (!iso) return strings.undated;\n const date = new Date(iso);\n if (isToday(date)) return strings.today;\n if (isYesterday(date)) return strings.yesterday;\n try {\n return new Intl.DateTimeFormat(locale, {\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n }).format(date);\n } catch {\n return new Intl.DateTimeFormat(undefined, {\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n }).format(date);\n }\n}\n\nexport function useActivityFeed<TData = unknown>({\n activities,\n groupByDate = true,\n expandedByDefault = false,\n locale,\n strings,\n formatDateGroupLabel,\n}: UseActivityFeedOptions<TData>): UseActivityFeedReturn<TData> {\n const [expandedMap, setExpandedMap] = useState<Record<string, boolean>>({});\n\n const keyed = useMemo<ActivityKeyedItem<TData>[]>(() => {\n const seen = new Map<string, number>();\n return activities.map((activity) => {\n const baseId = String(activity.id ?? '').trim();\n const createdAt = String(activity.createdAt ?? '').trim();\n const event = String(activity.event ?? '').trim();\n const source = String(activity.source ?? '').trim();\n const keyBase = [baseId, createdAt, event, source].join(':');\n const occurrence = (seen.get(keyBase) ?? 0) + 1;\n seen.set(keyBase, occurrence);\n return { activity, key: `${keyBase}:${occurrence}` };\n });\n }, [activities]);\n\n const groups = useMemo<ActivityDateGroup<TData>[]>(() => {\n if (!groupByDate) {\n return keyed.length > 0 ? [{ label: '', items: keyed }] : [];\n }\n const out: ActivityDateGroup<TData>[] = [];\n let currentLabel = '__init__';\n let currentItems: ActivityKeyedItem<TData>[] = [];\n\n const labelFor = (iso: string | null) =>\n formatDateGroupLabel\n ? formatDateGroupLabel(iso, strings)\n : defaultDateGroupLabel(iso, strings, locale);\n\n for (const item of keyed) {\n const iso = item.activity.createdAt ?? null;\n const label = labelFor(iso);\n if (label !== currentLabel) {\n if (currentItems.length > 0) {\n out.push({ label: currentLabel, items: currentItems });\n }\n currentLabel = label;\n currentItems = [item];\n } else {\n currentItems.push(item);\n }\n }\n if (currentItems.length > 0) {\n out.push({ label: currentLabel, items: currentItems });\n }\n return out;\n }, [keyed, groupByDate, locale, strings, formatDateGroupLabel]);\n\n const isExpanded = useCallback(\n (id: string) => expandedMap[id] ?? expandedByDefault,\n [expandedMap, expandedByDefault],\n );\n\n const toggleExpanded = useCallback((id: string) => {\n setExpandedMap((current) => ({\n ...current,\n [id]: !(current[id] ?? false),\n }));\n }, []);\n\n const setExpanded = useCallback((id: string, value: boolean) => {\n setExpandedMap((current) => ({ ...current, [id]: value }));\n }, []);\n\n const expandAll = useCallback(() => {\n const next: Record<string, boolean> = {};\n for (const k of keyed) next[k.activity.id] = true;\n setExpandedMap(next);\n }, [keyed]);\n\n const collapseAll = useCallback(() => setExpandedMap({}), []);\n\n return {\n groups,\n total: keyed.length,\n isExpanded,\n toggleExpanded,\n setExpanded,\n expandAll,\n collapseAll,\n };\n}\n","/**\n * useActivityResources — registry hook for the rich-resource feature.\n *\n * The registry maps `key → ActivityResourceConfig`. Activity items reference\n * resources by `key`; the row renderer looks up the live config so badges,\n * icons, and links can be edited globally without touching individual rows.\n *\n * The hook re-seeds whenever the `resources` prop reference changes and emits\n * the full registry on every mutation via `onResourcesChange`. Wire that\n * callback to localStorage / a backend mutation to persist the user's\n * resource customisations across sessions.\n */\nimport { useCallback, useEffect, useRef, useState } from 'react';\n\nimport type {\n ActivityResourceConfig,\n ActivityResourceRef,\n} from '../activities.types';\n\nexport type ActivityResourceRegistry = Readonly<\n Record<string, ActivityResourceConfig>\n>;\n\nexport interface UseActivityResourcesOptions {\n resources?: ActivityResourceRegistry;\n onResourcesChange?: (registry: ActivityResourceRegistry) => void;\n}\n\nexport interface UseActivityResourcesReturn {\n registry: ActivityResourceRegistry;\n /** Look up a resource by ref or key. */\n get: (\n ref: ActivityResourceRef | string,\n ) => ActivityResourceConfig | undefined;\n /** Replace a resource entry wholesale (or insert new). */\n register: (key: string, config: ActivityResourceConfig) => void;\n /** Shallow-merge a partial update over an existing entry. */\n update: (key: string, partial: Partial<ActivityResourceConfig>) => void;\n /** Remove an entry. */\n remove: (key: string) => void;\n /** Replace the entire registry. */\n setAll: (registry: ActivityResourceRegistry) => void;\n /** Reset to the original `resources` prop (or empty if none). */\n reset: () => void;\n}\n\nexport function useActivityResources({\n resources,\n onResourcesChange,\n}: UseActivityResourcesOptions = {}): UseActivityResourcesReturn {\n const [registry, setRegistry] = useState<ActivityResourceRegistry>(\n () => resources ?? {},\n );\n\n const seedRef = useRef(resources);\n useEffect(() => {\n if (resources !== seedRef.current) {\n seedRef.current = resources;\n setRegistry(resources ?? {});\n }\n }, [resources]);\n\n const onChangeRef = useRef(onResourcesChange);\n useEffect(() => {\n onChangeRef.current = onResourcesChange;\n }, [onResourcesChange]);\n\n const emit = useCallback((next: ActivityResourceRegistry) => {\n onChangeRef.current?.(next);\n }, []);\n\n const register = useCallback(\n (key: string, config: ActivityResourceConfig) => {\n setRegistry((current) => {\n const next = { ...current, [key]: config };\n emit(next);\n return next;\n });\n },\n [emit],\n );\n\n const update = useCallback(\n (key: string, partial: Partial<ActivityResourceConfig>) => {\n setRegistry((current) => {\n const existing = current[key];\n if (!existing) return current;\n const next = {\n ...current,\n [key]: { ...existing, ...partial },\n };\n emit(next);\n return next;\n });\n },\n [emit],\n );\n\n const remove = useCallback(\n (key: string) => {\n setRegistry((current) => {\n if (!(key in current)) return current;\n const next = { ...current };\n delete next[key];\n emit(next);\n return next;\n });\n },\n [emit],\n );\n\n const setAll = useCallback(\n (next: ActivityResourceRegistry) => {\n setRegistry(next);\n emit(next);\n },\n [emit],\n );\n\n const reset = useCallback(() => {\n const next = seedRef.current ?? {};\n setRegistry(next);\n emit(next);\n }, [emit]);\n\n const get = useCallback(\n (ref: ActivityResourceRef | string) => {\n const key = typeof ref === 'string' ? ref : ref.key;\n return registry[key];\n },\n [registry],\n );\n\n return { registry, get, register, update, remove, setAll, reset };\n}\n","/**\n * ActivityActionsMenu — inline overflow menu rendered on rich rows.\n *\n * Backed by the shadcn DropdownMenu primitive; each item fires the\n * activity's per-row `onClick` and forwards `actionId` through `onAction` so\n * consumers can route actions centrally.\n */\nimport { MoreHorizontal } from 'lucide-react';\n\nimport { Button } from '@/components/base/buttons';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from '@/components/base/navigation';\n\nimport type { ActivityAction, ActivityItem } from '../activities.types';\n\nexport interface ActivityActionsMenuProps<TData = unknown> {\n activity: ActivityItem<TData>;\n actions: readonly ActivityAction<TData>[];\n onAction?: (actionId: string, activity: ActivityItem<TData>) => void;\n label: string;\n}\n\nexport function ActivityActionsMenu<TData = unknown>({\n activity,\n actions,\n onAction,\n label,\n}: ActivityActionsMenuProps<TData>) {\n if (actions.length === 0) return null;\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger\n render={(triggerProps) => (\n <Button\n {...(triggerProps as Record<string, unknown>)}\n type=\"button\"\n variant=\"secondary\"\n buttonStyle=\"ghost\"\n size=\"icon-small\"\n aria-label={label}\n className=\"h-7 w-7 text-muted-foreground\"\n >\n <MoreHorizontal className=\"size-4\" />\n </Button>\n )}\n />\n <DropdownMenuContent align=\"end\" className=\"min-w-40\">\n {actions.map((action) => {\n const Icon = action.icon;\n return (\n <DropdownMenuItem\n key={action.id}\n onClick={() => {\n if (action.disabled) return;\n action.onClick(activity);\n onAction?.(action.id, activity);\n }}\n disabled={action.disabled}\n variant={action.tone === 'destructive' ? 'destructive' : 'default'}\n className=\"gap-2 px-2 py-1.5 text-xs\"\n >\n {!!Icon && <Icon className=\"size-3.5\" />}\n {action.label}\n </DropdownMenuItem>\n );\n })}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n","/**\n * ActivityChanges — collapsible old → new diff block.\n *\n * Each entry shows the attribute label, the previous value (line-through, on\n * a destructive tint), an arrow, and the new value (on a success tint). When\n * neither old nor new is set, falls back to `description`.\n */\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nimport type { ActivityChange } from '../activities.types';\n\nexport interface ActivityChangesProps {\n changes: readonly ActivityChange[];\n className?: string;\n}\n\nfunction ChangeValue({ change }: { change: ActivityChange }) {\n const hasOld = change.old !== null && change.old !== undefined;\n const hasNew = change.new !== null && change.new !== undefined;\n\n if (!hasOld && !hasNew) {\n return (\n <Text size=\"xs\" tag=\"span\">\n {change.description}\n </Text>\n );\n }\n\n return (\n <Text tag=\"span\" size=\"xs\" className=\"inline-flex flex-wrap items-baseline gap-1\">\n {!!hasOld && (\n <Text\n tag=\"span\"\n size=\"xs\"\n className=\"rounded bg-destructive/10 text-destructive line-through px-1 py-px\"\n >\n {change.old}\n </Text>\n )}\n {hasOld && hasNew && (\n <Text tag=\"span\" size=\"xs\" type=\"secondary\">\n →\n </Text>\n )}\n {!!hasNew && (\n <Text\n tag=\"span\"\n size=\"xs\"\n className=\"rounded bg-success/15 text-success px-1 py-px\"\n >\n {change.new}\n </Text>\n )}\n </Text>\n );\n}\n\nexport function ActivityChanges({ changes, className }: ActivityChangesProps) {\n if (changes.length === 0) return null;\n return (\n <div\n className={cn(\n 'space-y-1.5 rounded-lg border border-border/60 bg-muted/30 px-3 py-2',\n className,\n )}\n >\n {changes.map((change) => (\n <div\n key={`${change.key}-${change.label}`}\n className=\"flex items-baseline gap-2\"\n >\n <Text\n size=\"xs\"\n type=\"secondary\"\n weight=\"medium\"\n className=\"shrink-0\"\n >\n {change.label}\n </Text>\n <ChangeValue change={change} />\n </div>\n ))}\n </div>\n );\n}\n","/**\n * ActivityDateLabel — eyebrow rendered above each date group.\n *\n * Consumers can override via `slots.renderDateLabel`. Default: small\n * uppercase eyebrow above each group, with extra top margin between groups.\n */\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nexport interface ActivityDateLabelProps {\n label: string;\n isFirst: boolean;\n className?: string;\n}\n\nexport function ActivityDateLabel({\n label,\n isFirst,\n className,\n}: ActivityDateLabelProps) {\n if (label === '') return null;\n return (\n <Text\n size=\"xs\"\n type=\"secondary\"\n weight=\"medium\"\n className={cn(\n 'uppercase tracking-wider',\n !isFirst && 'mt-5',\n className,\n )}\n >\n {label}\n </Text>\n );\n}\n","/**\n * ActivityEmptyState — neutral empty surface used when no activities are\n * available. Consumers replace via `slots.empty`.\n */\nimport { Activity } from 'lucide-react';\n\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nexport interface ActivityEmptyStateProps {\n title: string;\n hint?: string;\n className?: string;\n}\n\nexport function ActivityEmptyState({\n title,\n hint,\n className,\n}: ActivityEmptyStateProps) {\n return (\n <div\n className={cn(\n 'flex flex-col items-center justify-center gap-2 px-6 py-10 text-center',\n className,\n )}\n >\n <span className=\"flex size-9 items-center justify-center rounded-full bg-muted text-muted-foreground\">\n <Activity className=\"size-4\" />\n </span>\n <Text weight=\"medium\">\n {title}\n </Text>\n {!!hint && (\n <Text size=\"xs\" type=\"secondary\">\n {hint}\n </Text>\n )}\n </div>\n );\n}\n","/**\n * Tone palettes shared by the marker, headline status segments, and the\n * resource tag. Tones map to semantic shadcn tokens — never to raw colours —\n * so a consumer rebrand at `:root` flows through the activities feature\n * automatically.\n */\nimport type { ActivityTone } from '../activities.types';\nimport type { ComposedBadgeVariant } from '@/components/base/badge/badge';\n\nexport interface ActivityToneStyle {\n /** Filled background — used by the rich icon marker. */\n bg: string;\n /** Foreground text colour matching the bg. */\n fg: string;\n /** Solid colour used by the compact dot. */\n dot: string;\n /** Border tint used by the connector line. */\n line: string;\n /** Background for chips / tags. */\n chipBg: string;\n /** Text colour for chips / tags. */\n chipFg: string;\n}\n\nexport const ACTIVITY_TONE: Record<ActivityTone, ActivityToneStyle> = {\n primary: {\n bg: 'bg-primary/10',\n fg: 'text-primary',\n dot: 'bg-primary',\n line: 'bg-primary/30',\n chipBg: 'bg-primary/5',\n chipFg: 'text-primary',\n },\n success: {\n bg: 'bg-success/10',\n fg: 'text-success',\n dot: 'bg-success',\n line: 'bg-success/30',\n chipBg: 'bg-success/10',\n chipFg: 'text-success',\n },\n warning: {\n bg: 'bg-warning/30',\n fg: 'text-warning-foreground',\n dot: 'bg-warning',\n line: 'bg-warning/40',\n chipBg: 'bg-warning/30',\n chipFg: 'text-warning-foreground',\n },\n destructive: {\n bg: 'bg-destructive/10',\n fg: 'text-destructive',\n dot: 'bg-destructive',\n line: 'bg-destructive/30',\n chipBg: 'bg-destructive/10',\n chipFg: 'text-destructive',\n },\n info: {\n bg: 'bg-info/10',\n fg: 'text-info',\n dot: 'bg-info',\n line: 'bg-info/30',\n chipBg: 'bg-info/10',\n chipFg: 'text-info',\n },\n neutral: {\n bg: 'bg-muted',\n fg: 'text-muted-foreground',\n dot: 'bg-muted-foreground/60',\n line: 'bg-border',\n chipBg: 'bg-muted',\n chipFg: 'text-muted-foreground',\n },\n};\n\n/** Map an activity tone onto the closest base/Badge variant. */\nexport const TONE_TO_BADGE_VARIANT: Record<ActivityTone, ComposedBadgeVariant> = {\n primary: 'primary',\n success: 'success',\n warning: 'warning',\n destructive: 'destructive',\n info: 'info',\n neutral: 'secondary',\n};\n","/**\n * ActivityResourceTag — chip rendering for a registered resource.\n *\n * The resource registry stores per-key `ActivityResourceConfig` (label, icon,\n * tone, badge, tags). This component renders those as a single inline chip\n * suitable for embedding into a headline. Falls back gracefully when the\n * registry has no entry — uses the segment's text/label.\n */\nimport { CircleDot } from 'lucide-react';\nimport { cn } from '@/lib/utils';\n\nimport { Badge } from '@/components/base/badge';\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography';\n\nimport type {\n ActivityResourceConfig,\n ActivityResourceRef,\n ActivityTone,\n} from '../activities.types';\n\nimport { ACTIVITY_TONE, TONE_TO_BADGE_VARIANT } from './tone-tokens';\n\nexport interface ActivityResourceTagProps {\n resource: ActivityResourceRef;\n config?: ActivityResourceConfig;\n /** Fallback label if neither config nor segment text are present. */\n fallbackText?: string;\n onClick?: () => void;\n}\n\nexport function ActivityResourceTag({\n resource,\n config,\n fallbackText,\n onClick,\n}: ActivityResourceTagProps) {\n const tone: ActivityTone = config?.tone ?? 'neutral';\n const palette = ACTIVITY_TONE[tone];\n const Icon = config?.icon ?? CircleDot;\n const label = config?.label ?? fallbackText ?? resource.label ?? resource.key;\n const interactive = typeof onClick === 'function';\n\n const inner = (\n <>\n <Icon className={cn('size-icon-sm shrink-0', palette.fg)} />\n <Text tag=\"span\" size=\"inherit\" weight=\"medium\" className={palette.chipFg}>\n {label}\n </Text>\n {!!config?.tags && config.tags.length > 0 && (\n <Text\n tag=\"span\"\n size=\"xs\"\n type=\"secondary\"\n className=\"ml-space-2xs border-l border-current/20 pl-space-sm\"\n >\n {config.tags.join(' · ')}\n </Text>\n )}\n {!!config?.badge && (\n <Badge\n inline\n variant={TONE_TO_BADGE_VARIANT[config.badge.tone ?? 'neutral']}\n className=\"ml-space-2xs\"\n >\n {config.badge.label}\n </Badge>\n )}\n </>\n );\n\n const chipClass = cn(\n 'inline-flex items-center gap-space-sm rounded-full px-space-md py-space-2xs align-baseline text-xs',\n 'border border-border/60',\n palette.chipBg,\n interactive &&\n 'cursor-pointer transition-colors hover:bg-foreground/5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n );\n\n if (interactive) {\n return (\n <Button\n type=\"button\"\n variant=\"secondary\"\n buttonStyle=\"ghost\"\n size=\"small\"\n onClick={(e) => {\n e.stopPropagation();\n onClick?.();\n }}\n className={cn(chipClass, 'h-auto rounded-full')}\n title={config?.note}\n >\n {inner}\n </Button>\n );\n }\n\n return (\n <span className={chipClass} title={config?.note}>\n {inner}\n </span>\n );\n}\n","/**\n * ActivityHeadline — segment renderer for the headline line.\n *\n * Renders typed segments (`actor` / `field` / `value` / `status` / `resource`\n * / `text`) into mixed inline content with proper typography and tone.\n *\n * When no segments are provided, falls back to splitting `headline` around\n * the actor's name so the actor still becomes interactive when possible.\n */\nimport { Fragment, type ReactNode } from 'react';\n\nimport { Badge } from '@/components/base/badge';\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography';\n\nimport type {\n ActivityActor,\n ActivityHeadlineSegment,\n ActivityItem,\n ActivityResourceConfig,\n ActivityResourceRef,\n} from '../activities.types';\nimport { ActivityResourceTag } from './activity-resource-tag';\nimport { TONE_TO_BADGE_VARIANT } from './tone-tokens';\n\nexport interface ActivityHeadlineProps<TData = unknown> {\n activity: ActivityItem<TData>;\n currentUserId?: string;\n youLabel: string;\n onActorClick?: (actor: ActivityActor, activity: ActivityItem<TData>) => void;\n onResourceClick?: (\n resource: ActivityResourceRef,\n config: ActivityResourceConfig | undefined,\n activity: ActivityItem<TData>,\n ) => void;\n /** Live registry lookup for resource segments. */\n getResourceConfig?: (\n ref: ActivityResourceRef,\n ) => ActivityResourceConfig | undefined;\n}\n\nfunction ActorNode<TData>({\n actorId,\n text,\n href,\n activity,\n youLabel,\n currentUserId,\n onActorClick,\n}: {\n actorId?: string;\n text: string;\n href?: string;\n activity: ActivityItem<TData>;\n youLabel: string;\n currentUserId?: string;\n onActorClick?: (actor: ActivityActor, activity: ActivityItem<TData>) => void;\n}) {\n const isYou =\n currentUserId !== undefined &&\n actorId !== undefined &&\n currentUserId === actorId;\n const display = isYou ? youLabel : text;\n const actor: ActivityActor = activity.actor ?? { id: actorId, name: text };\n\n if (href) {\n return (\n <a\n href={href}\n onClick={(e) => {\n if (onActorClick) {\n e.preventDefault();\n e.stopPropagation();\n onActorClick(actor, activity);\n }\n }}\n className=\"font-semibold text-foreground underline-offset-2 hover:underline\"\n >\n {display}\n </a>\n );\n }\n\n if (onActorClick) {\n return (\n <Button\n type=\"button\"\n variant=\"secondary\"\n buttonStyle=\"ghost\"\n size=\"small\"\n onClick={(e) => {\n e.stopPropagation();\n onActorClick(actor, activity);\n }}\n className=\"h-auto rounded px-0 py-0 font-semibold text-foreground underline-offset-2 hover:underline\"\n >\n {display}\n </Button>\n );\n }\n\n return (\n <Text tag=\"span\" weight=\"semibold\">\n {display}\n </Text>\n );\n}\n\nfunction renderSegments<TData>(\n segments: readonly ActivityHeadlineSegment[],\n props: ActivityHeadlineProps<TData>,\n): ReactNode {\n return segments.map((segment, index) => {\n const key = `seg-${index}-${segment.type}`;\n switch (segment.type) {\n case 'actor':\n return (\n <Fragment key={key}>\n <ActorNode<TData>\n actorId={segment.actorId}\n text={segment.text}\n href={segment.href}\n activity={props.activity}\n youLabel={props.youLabel}\n currentUserId={props.currentUserId}\n onActorClick={props.onActorClick}\n />{' '}\n </Fragment>\n );\n case 'field':\n case 'value':\n return (\n <Fragment key={key}>\n <Text tag=\"span\" weight=\"semibold\">\n {segment.text}\n </Text>{' '}\n </Fragment>\n );\n case 'status':\n return (\n <Fragment key={key}>\n <Badge\n inline\n variant={TONE_TO_BADGE_VARIANT[segment.tone ?? 'neutral']}\n >\n {segment.text}\n </Badge>{' '}\n </Fragment>\n );\n case 'resource': {\n const config = props.getResourceConfig?.(segment.resource);\n return (\n <Fragment key={key}>\n <ActivityResourceTag\n resource={segment.resource}\n config={config}\n fallbackText={segment.text}\n onClick={\n props.onResourceClick\n ? () =>\n props.onResourceClick?.(\n segment.resource,\n config,\n props.activity,\n )\n : undefined\n }\n />{' '}\n </Fragment>\n );\n }\n case 'text':\n default:\n return (\n <Fragment key={key}>\n <Text tag=\"span\">\n {segment.text}\n </Text>{' '}\n </Fragment>\n );\n }\n });\n}\n\nfunction renderFallback<TData>(props: ActivityHeadlineProps<TData>): ReactNode {\n const { activity } = props;\n const fallbackHeadline =\n activity.headline ?? activity.event;\n const actorName = activity.actor?.name;\n if (!actorName || !fallbackHeadline.includes(actorName)) {\n return (\n <Text tag=\"span\">\n {fallbackHeadline}\n </Text>\n );\n }\n const [before, ...after] = fallbackHeadline.split(actorName);\n return (\n <>\n {!!before && (\n <Text tag=\"span\">\n {before}\n </Text>\n )}\n <ActorNode<TData>\n actorId={activity.actor?.id}\n text={actorName}\n href={activity.actor?.href}\n activity={activity}\n youLabel={props.youLabel}\n currentUserId={props.currentUserId}\n onActorClick={props.onActorClick}\n />\n {after.length > 0 && (\n <Text tag=\"span\">\n {after.join(actorName)}\n </Text>\n )}\n </>\n );\n}\n\nexport function ActivityHeadline<TData = unknown>(\n props: ActivityHeadlineProps<TData>,\n) {\n const segments = props.activity.segments;\n if (segments && segments.length > 0) {\n return (\n <span className=\"leading-snug [&>span]:leading-snug\">\n {renderSegments<TData>(segments, props)}\n </span>\n );\n }\n return <span className=\"leading-snug\">{renderFallback<TData>(props)}</span>;\n}\n","/**\n * ActivityMarker — left-edge visual for a row.\n *\n * Density mapping:\n * - `compact` → small tone-coloured dot\n * - `default` → 22px tone-tinted square with the event icon\n * - `rich` → 28px tone-tinted circle with the event icon\n *\n * Always renders the connector line beneath unless `isLast` is true.\n */\nimport type { LucideIcon } from 'lucide-react';\nimport { cn } from '@/lib/utils';\n\nimport type { ActivityDensity, ActivityTone } from '../activities.types';\n\nimport { ACTIVITY_TONE } from './tone-tokens';\n\nexport interface ActivityMarkerProps {\n icon: LucideIcon;\n tone: ActivityTone;\n density: ActivityDensity;\n isLast: boolean;\n}\n\nexport function ActivityMarker({\n icon: Icon,\n tone,\n density,\n isLast,\n}: ActivityMarkerProps) {\n const palette = ACTIVITY_TONE[tone];\n\n if (density === 'compact') {\n return (\n <div className=\"flex flex-col items-center\">\n <span\n aria-hidden\n className={cn('mt-1.5 size-2 shrink-0 rounded-full', palette.dot)}\n />\n {!isLast && (\n <span aria-hidden className={cn('mt-1 w-px flex-1', palette.line)} />\n )}\n </div>\n );\n }\n\n if (density === 'rich') {\n return (\n <div className=\"flex flex-col items-center\">\n <span\n className={cn(\n 'flex size-7 shrink-0 items-center justify-center rounded-full ring-1 ring-border/60',\n palette.bg,\n palette.fg,\n )}\n >\n <Icon className=\"size-3.5\" />\n </span>\n {!isLast && (\n <span aria-hidden className={cn('mt-1 w-px flex-1', palette.line)} />\n )}\n </div>\n );\n }\n\n return (\n <div className=\"flex flex-col items-center\">\n <span\n className={cn(\n 'flex size-5 shrink-0 items-center justify-center rounded-full',\n palette.bg,\n palette.fg,\n )}\n >\n <Icon className=\"size-3\" />\n </span>\n {!isLast && (\n <span aria-hidden className={cn('mt-1 w-px flex-1', palette.line)} />\n )}\n </div>\n );\n}\n","/**\n * ActivityRow — single row layout used by `<ActivityFeed />`.\n *\n * Composes the marker, headline, optional description, metadata chips,\n * source badge, timestamp, and (rich-only) the change-detail block plus\n * action menu. Per-density layout follows the design-system rules:\n * compact (dot, single line) / default (icon, headline + meta line) /\n * rich (icon, full header + body + actions).\n */\nimport { ChevronDown, ChevronRight } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport { Badge } from '@/components/base/badge';\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nimport type {\n ActivityAction,\n ActivityActor,\n ActivityDensity,\n ActivityEventConfig,\n ActivityItem,\n ActivityResourceConfig,\n ActivityResourceRef,\n ActivityTone,\n} from '../activities.types';\n\nimport { ActivityActionsMenu } from './activity-actions-menu';\nimport { ActivityChanges } from './activity-changes';\nimport { ActivityHeadline } from './activity-headline';\nimport { ActivityMarker } from './activity-marker';\nimport { ActivityResourceTag } from './activity-resource-tag';\n\nexport interface ActivityRowProps<TData = unknown> {\n activity: ActivityItem<TData>;\n density: ActivityDensity;\n eventConfig: ActivityEventConfig;\n tone: ActivityTone;\n isLast: boolean;\n expanded: boolean;\n onToggleExpanded: () => void;\n relativeTime: string | null;\n absoluteTime: string | null;\n sourceLabel: string | null;\n youLabel: string;\n showChangesLabel: string;\n hideChangesLabel: string;\n actionsLabel: string;\n currentUserId?: string;\n actions: readonly ActivityAction<TData>[];\n onActivityClick?: (activity: ActivityItem<TData>) => void;\n onActorClick?: (actor: ActivityActor, activity: ActivityItem<TData>) => void;\n onResourceClick?: (\n resource: ActivityResourceRef,\n config: ActivityResourceConfig | undefined,\n activity: ActivityItem<TData>,\n ) => void;\n onAction?: (actionId: string, activity: ActivityItem<TData>) => void;\n getResourceConfig?: (\n ref: ActivityResourceRef,\n ) => ActivityResourceConfig | undefined;\n /** Slot override for the headline only. */\n headlineOverride?: ReactNode;\n /** Slot override for the marker only. */\n markerOverride?: ReactNode;\n}\n\nexport function ActivityRow<TData = unknown>(props: ActivityRowProps<TData>) {\n const {\n activity,\n density,\n eventConfig,\n tone,\n isLast,\n expanded,\n onToggleExpanded,\n relativeTime,\n absoluteTime,\n sourceLabel,\n youLabel,\n showChangesLabel,\n hideChangesLabel,\n actionsLabel,\n currentUserId,\n actions,\n onActivityClick,\n onActorClick,\n onResourceClick,\n onAction,\n getResourceConfig,\n headlineOverride,\n markerOverride,\n } = props;\n\n const Icon = activity.iconOverride ?? eventConfig.icon;\n const hasChanges = (activity.changes?.length ?? 0) > 0;\n const hasMetadata = (activity.metadata?.length ?? 0) > 0;\n const hasResources = (activity.resources?.length ?? 0) > 0;\n const hasDescription =\n activity.description !== undefined &&\n activity.description !== null &&\n activity.description !== '';\n const showSecondaryRow = density !== 'compact';\n const showRichBody = density === 'rich';\n\n const headlineNode =\n headlineOverride ??\n (\n <ActivityHeadline<TData>\n activity={activity}\n currentUserId={currentUserId}\n youLabel={youLabel}\n onActorClick={onActorClick}\n onResourceClick={onResourceClick}\n getResourceConfig={getResourceConfig}\n />\n );\n\n const markerNode =\n markerOverride ?? (\n <ActivityMarker\n icon={Icon}\n tone={tone}\n density={density}\n isLast={isLast}\n />\n );\n\n const interactive = typeof onActivityClick === 'function';\n const hasNestedInteractive = (\n hasChanges ||\n hasResources ||\n actions.length > 0 ||\n typeof onActorClick === 'function' ||\n typeof onResourceClick === 'function'\n );\n const keyboardInteractive = interactive && !hasNestedInteractive;\n\n return (\n <div\n className={cn(\n 'relative flex gap-space-lg',\n interactive && 'cursor-pointer rounded-md hover:bg-muted/40',\n )}\n onClick={interactive ? () => onActivityClick?.(activity) : undefined}\n role={keyboardInteractive ? 'button' : undefined}\n tabIndex={keyboardInteractive ? 0 : undefined}\n onKeyDown={\n keyboardInteractive\n ? (e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onActivityClick?.(activity);\n }\n }\n : undefined\n }\n >\n {markerNode}\n\n <div\n className={cn(\n 'min-w-0 flex-1',\n !isLast && (density === 'rich' ? 'pb-row-y-lg' : density === 'compact' ? 'pb-row-y' : 'pb-row-y-lg'),\n )}\n >\n <div className=\"flex flex-col gap-space-sm sm:flex-row sm:items-start sm:justify-between sm:gap-space-lg\">\n <div className=\"flex min-w-0 flex-wrap items-center gap-x-space-sm gap-y-space-sm\">\n <Text tag=\"span\" size=\"inherit\" lineHeight=\"snug\">\n {headlineNode}\n </Text>\n {!!sourceLabel && (\n <Badge inline variant=\"secondary\">\n {sourceLabel}\n </Badge>\n )}\n {showRichBody && hasChanges && (\n <Button\n type=\"button\"\n size=\"icon-small\"\n variant=\"secondary\"\n buttonStyle=\"ghost\"\n className=\"h-5 w-5 text-muted-foreground\"\n onClick={(e) => {\n e.stopPropagation();\n onToggleExpanded();\n }}\n title={expanded ? hideChangesLabel : showChangesLabel}\n aria-label={expanded ? hideChangesLabel : showChangesLabel}\n aria-expanded={expanded}\n >\n {expanded ? (\n <ChevronDown className=\"size-3.5\" />\n ) : (\n <ChevronRight className=\"size-3.5\" />\n )}\n </Button>\n )}\n </div>\n\n <div className=\"flex shrink-0 items-center gap-space-sm\">\n {!!relativeTime && (\n <Text\n size=\"inherit\"\n type=\"secondary\"\n className=\"whitespace-nowrap tabular-nums pt-space-2xs text-xs\"\n title={absoluteTime ?? undefined}\n >\n {relativeTime}\n </Text>\n )}\n {showRichBody && actions.length > 0 && (\n <ActivityActionsMenu<TData>\n activity={activity}\n actions={actions}\n onAction={onAction}\n label={actionsLabel}\n />\n )}\n </div>\n </div>\n\n {!!showSecondaryRow && hasDescription && (\n <Text tag=\"div\" size=\"inherit\" type=\"secondary\" className=\"mt-space-sm text-xs\">\n {activity.description}\n </Text>\n )}\n\n {!!showRichBody && hasMetadata && activity.metadata && (\n <div className=\"mt-space-md flex flex-wrap gap-x-space-lg gap-y-space-sm\">\n {activity.metadata.map((m) => (\n <Text key={m.label} size=\"inherit\" type=\"secondary\" className=\"text-xs\">\n <Text tag=\"span\" size=\"inherit\" type=\"discrete\" className=\"text-xs\">\n {m.label}:{' '}\n </Text>\n {m.value}\n </Text>\n ))}\n </div>\n )}\n\n {!!showRichBody && hasResources && activity.resources && (\n <div className=\"mt-space-md flex flex-wrap gap-space-sm\">\n {activity.resources.map((res) => {\n const cfg = getResourceConfig?.(res);\n return (\n <ActivityResourceTag\n key={res.key}\n resource={res}\n config={cfg}\n onClick={\n onResourceClick\n ? () =>\n onResourceClick(\n res,\n cfg,\n activity,\n )\n : undefined\n }\n />\n );\n })}\n </div>\n )}\n\n {!!showRichBody && hasChanges && expanded && activity.changes && (\n <div className=\"mt-space-md\">\n <ActivityChanges changes={activity.changes} />\n </div>\n )}\n </div>\n </div>\n );\n}\n","/**\n * ActivityFeed — framework-agnostic activity timeline.\n *\n * Composition seams:\n * - `strings` — deep-partial override of every label\n * - `eventConfig` — mass-configurable per-event icon/tone/labels\n * - `slots` — replace any region (row / headline / marker /\n * dateLabel / empty / loading / header / footer)\n * - `slots.renderRow` — full per-row override\n * - `accessors` — formatRelative/Absolute, getEventLabel, …\n * - `actionsForActivity` — surface a per-row action menu (rich density)\n * - `resources` + `onResourcesChange` — registry-driven rich resource\n * tags (icons, badges, links, tags) with save\n * and restore semantics for the consumer\n *\n * Headless usage:\n * - Call `useActivityFeed({ activities, ... })` directly to drive a\n * completely custom UI against the same grouping/expand state machine.\n * - Call `useActivityResources({ resources, onResourcesChange })` to\n * drive the registry independently.\n *\n * Framework-agnostic:\n * - No router import, no i18n SDK import. Wire actor / resource navigation\n * via callbacks at the call site.\n */\nimport { useMemo, type ReactNode } from 'react';\n\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\nimport { useDatesConfig } from '@/lib/ui-provider';\nimport { cn } from '@/lib/utils';\n\nimport {\n defaultActivityEventConfig,\n resolveEventConfig,\n} from './activities.config';\nimport {\n defaultActivitiesStrings,\n} from './activities.strings';\nimport type {\n ActivityAction,\n ActivityFeedProps,\n ActivityItem,\n ActivityRenderRowContext,\n ActivityTone,\n} from './activities.types';\nimport { useActivityFeed } from './hooks/use-activity-feed';\nimport { useActivityResources } from './hooks/use-activity-resources';\nimport {\n ActivityDateLabel,\n ActivityEmptyState,\n ActivityRow,\n} from './partials';\n\nfunction defaultFormatAbsolute(iso: string, locale?: string): string {\n try {\n return new Intl.DateTimeFormat(locale, {\n dateStyle: 'medium',\n timeStyle: 'short',\n }).format(new Date(iso));\n } catch {\n return iso;\n }\n}\n\nfunction resolveTone<TData>(\n activity: ActivityItem<TData>,\n eventTone: ActivityTone,\n): ActivityTone {\n return activity.toneOverride ?? eventTone;\n}\n\nexport function ActivityFeed<TData = unknown>(props: ActivityFeedProps<TData>) {\n const {\n activities = [],\n density = 'default',\n groupByDate = true,\n expandedByDefault = false,\n currentUserId,\n loading = false,\n eventConfig: eventConfigOverride,\n strings: stringsProp,\n slots,\n className,\n locale,\n // accessors\n formatRelativeTime,\n formatAbsoluteTime,\n formatDateGroupLabel,\n getEventLabel: _getEventLabel,\n getSourceLabel,\n actionsForActivity,\n // callbacks\n onActivityClick,\n onActorClick,\n onResourceClick,\n onAction,\n // resources\n resources,\n onResourcesChange,\n } = props;\n\n const strings = useStrings(defaultActivitiesStrings, stringsProp);\n\n const eventConfigMap = useMemo(\n () => ({ ...defaultActivityEventConfig, ...eventConfigOverride }),\n [eventConfigOverride],\n );\n\n const registry = useActivityResources({\n resources,\n onResourcesChange,\n });\n\n const feed = useActivityFeed<TData>({\n activities,\n groupByDate,\n expandedByDefault,\n locale,\n strings,\n formatDateGroupLabel,\n });\n\n const { formatRelativeTime: storeFormatRelative } = useDatesConfig();\n const fmtRelative = formatRelativeTime ?? storeFormatRelative ?? ((iso: string) => iso);\n const fmtAbsolute = formatAbsoluteTime ?? ((iso: string) => defaultFormatAbsolute(iso, locale));\n\n if (loading) {\n return (\n <div className={cn('activities-feed--component', 'px-2 py-4', className)}>\n {slots?.loading ?? (\n <Text type=\"secondary\" align=\"center\">\n {strings.loading}\n </Text>\n )}\n </div>\n );\n }\n\n if (activities.length === 0) {\n return (\n <div className={cn('activities-feed--component', 'px-2 py-2', className)}>\n {slots?.empty ?? <ActivityEmptyState title={strings.empty} />}\n </div>\n );\n }\n\n const totalRendered = feed.groups.reduce((acc, g) => acc + g.items.length, 0);\n let renderedSoFar = 0;\n\n return (\n <div className={cn('activities-feed--component flex flex-col', className)}>\n {!!slots?.header && <div className=\"mb-3\">{slots.header}</div>}\n\n <div className=\"flex flex-col\">\n {feed.groups.map((group, gi) => {\n const isFirstGroup = gi === 0;\n return (\n <div key={`${group.label}-${gi}`} className={cn(isFirstGroup ? '' : 'mt-1')}>\n {slots?.renderDateLabel\n ? slots.renderDateLabel(group.label, isFirstGroup)\n : (\n <ActivityDateLabel\n label={group.label}\n isFirst={isFirstGroup}\n className={isFirstGroup ? '' : 'mb-2'}\n />\n )}\n\n <div className={cn('flex flex-col', !!group.label && 'mt-2')}>\n {group.items.map((keyed, ii) => {\n const activity = keyed.activity;\n const isFirstInGroup = ii === 0;\n const isLast =\n ++renderedSoFar === totalRendered;\n const eventCfg = resolveEventConfig(\n activity.event,\n eventConfigMap,\n );\n const tone = resolveTone(activity, eventCfg.tone);\n const relativeTime = activity.timestamp\n ?? (activity.createdAt\n ? fmtRelative(activity.createdAt)\n : null);\n const absoluteTime = activity.createdAt\n ? fmtAbsolute(activity.createdAt)\n : null;\n const sourceLabel = activity.source\n ? (getSourceLabel?.(activity.source)\n ?? strings.sources[activity.source]\n ?? eventCfg.sourceLabel\n ?? null)\n : eventCfg.sourceLabel ?? null;\n const sourceLabelTrimmed =\n sourceLabel && sourceLabel.trim().length > 0\n ? sourceLabel\n : null;\n const actions: readonly ActivityAction<TData>[] =\n actionsForActivity?.(activity) ?? [];\n\n const ctx: ActivityRenderRowContext<TData> = {\n density,\n isLast,\n isFirstInGroup,\n activity,\n eventConfig: eventCfg,\n tone,\n relativeTime,\n absoluteTime,\n sourceLabel: sourceLabelTrimmed,\n expanded: feed.isExpanded(activity.id),\n toggleExpanded: () =>\n feed.toggleExpanded(activity.id),\n };\n\n const customRow = slots?.renderRow?.(activity, ctx);\n if (customRow !== undefined) {\n return (\n <div key={keyed.key}>{customRow}</div>\n );\n }\n\n const headlineOverride =\n slots?.renderHeadline?.(activity, ctx);\n const markerOverride =\n slots?.renderMarker?.(activity, ctx);\n\n return (\n <ActivityRow<TData>\n key={keyed.key}\n activity={activity}\n density={density}\n eventConfig={eventCfg}\n tone={tone}\n isLast={isLast}\n expanded={ctx.expanded}\n onToggleExpanded={ctx.toggleExpanded}\n relativeTime={relativeTime}\n absoluteTime={absoluteTime}\n sourceLabel={sourceLabelTrimmed}\n youLabel={strings.you}\n showChangesLabel={strings.showChanges}\n hideChangesLabel={strings.hideChanges}\n actionsLabel={strings.actionsLabel}\n currentUserId={currentUserId}\n actions={actions}\n onActivityClick={onActivityClick}\n onActorClick={onActorClick}\n onResourceClick={onResourceClick}\n onAction={onAction}\n getResourceConfig={(ref) =>\n registry.get(ref)\n }\n headlineOverride={\n headlineOverride as ReactNode | undefined\n }\n markerOverride={\n markerOverride as ReactNode | undefined\n }\n />\n );\n })}\n </div>\n </div>\n );\n })}\n </div>\n\n {!!slots?.footer && <div className=\"mt-3\">{slots.footer}</div>}\n </div>\n );\n}\n\nActivityFeed.displayName = 'ActivityFeed';\n","/**\n * ActivityFeedCard — `<ActivityFeed />` wrapped in `SmartCard`.\n *\n * Use this when you want the canonical card chrome (title + description +\n * actions menu + content padding). For embedded surfaces (sidebars, panels)\n * use `<ActivityFeed />` directly.\n */\nimport { Activity } from 'lucide-react';\n\nimport { SmartCard } from '@/components/base/cards';\nimport { useStrings } from '@/lib/strings';\n\nimport { ActivityFeed } from '../activities-feed';\nimport { defaultActivitiesStrings } from '../activities.strings';\nimport type { ActivityFeedCardProps } from '../activities.types';\n\nexport function ActivityFeedCard<TData = unknown>({\n title,\n titleSuffix,\n description,\n padding = 'default',\n composerSlot,\n className,\n strings: stringsProp,\n slots,\n ...feedProps\n}: ActivityFeedCardProps<TData>) {\n const strings = useStrings(defaultActivitiesStrings, stringsProp);\n\n const cardTitle = title ?? strings.title;\n\n return (\n <SmartCard\n icon={<Activity className=\"size-4\" />}\n title={cardTitle}\n titleSuffix={titleSuffix}\n description={description}\n padding={padding}\n className={className}\n >\n <ActivityFeed<TData>\n {...feedProps}\n strings={stringsProp}\n slots={{\n ...slots,\n header: composerSlot ?? slots?.header,\n }}\n />\n </SmartCard>\n );\n}\n\nActivityFeedCard.displayName = 'ActivityFeedCard';\n"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import { useStrings as e } from "../../../lib/strings.js";
2
- import { i as t } from "../../../_shared/ui-provider-Dj6OSOZi.js";
2
+ import { i as t } from "../../../_shared/ui-provider-Dz2qXgZQ.js";
3
3
  import { cn as n } from "../../../lib/utils.js";
4
- import { t as r } from "../../../_shared/button-vv59_uS_.js";
5
- import { s as i } from "../../../_shared/typography-CzFVA1w1.js";
6
- import { t as a } from "../../../_shared/badge-BYNwSWh5.js";
7
- import { t as o } from "../../../_shared/cards-cQ9lL6zy.js";
4
+ import { t as r } from "../../../_shared/button-Be2ayMxF.js";
5
+ import { s as i } from "../../../_shared/typography-5bLhAYaK.js";
6
+ import { t as a } from "../../../_shared/badge-nZ2zbAV4.js";
7
+ import { t as o } from "../../../_shared/cards-BJctT9KD.js";
8
8
  import { a as s, g as c, r as l, t as u } from "../../../_shared/dropdown-menu-CoWmrjYX.js";
9
9
  import { Fragment as d, useCallback as f, useEffect as p, useMemo as m, useRef as h, useState as g } from "react";
10
10
  import { isToday as _, isYesterday as v } from "date-fns";
@@ -415,7 +415,7 @@ function J({ changes: e, className: t }) {
415
415
  //#region src/components/features/activities/partials/activity-date-label.tsx
416
416
  function de({ label: e, isFirst: t, className: r }) {
417
417
  return e === "" ? null : /* @__PURE__ */ b(i, {
418
- size: "xxs",
418
+ size: "xs",
419
419
  type: "secondary",
420
420
  weight: "medium",
421
421
  className: n("uppercase tracking-wider", !t && "mt-5", r),
@@ -517,7 +517,7 @@ function Z({ resource: e, config: t, fallbackText: o, onClick: s }) {
517
517
  }),
518
518
  !!t?.tags && t.tags.length > 0 && /* @__PURE__ */ b(i, {
519
519
  tag: "span",
520
- size: "xxs",
520
+ size: "xs",
521
521
  type: "secondary",
522
522
  className: "ml-space-2xs border-l border-current/20 pl-space-sm",
523
523
  children: t.tags.join(" · ")
@@ -528,7 +528,7 @@ function Z({ resource: e, config: t, fallbackText: o, onClick: s }) {
528
528
  className: "ml-space-2xs",
529
529
  children: t.badge.label
530
530
  })
531
- ] }), p = n("inline-flex items-center gap-space-sm rounded-full px-space-md py-space-2xs align-baseline text-xxs", "border border-border/60", c.chipBg, d && "cursor-pointer transition-colors hover:bg-foreground/5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring");
531
+ ] }), p = n("inline-flex items-center gap-space-sm rounded-full px-space-md py-space-2xs align-baseline text-xs", "border border-border/60", c.chipBg, d && "cursor-pointer transition-colors hover:bg-foreground/5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring");
532
532
  return d ? /* @__PURE__ */ b(r, {
533
533
  type: "button",
534
534
  variant: "secondary",
@@ -749,7 +749,7 @@ function _e(e) {
749
749
  children: [!!f && /* @__PURE__ */ b(i, {
750
750
  size: "inherit",
751
751
  type: "secondary",
752
- className: "whitespace-nowrap tabular-nums pt-space-2xs text-xxs",
752
+ className: "whitespace-nowrap tabular-nums pt-space-2xs text-xs",
753
753
  title: p ?? void 0,
754
754
  children: f
755
755
  }), I && S.length > 0 && /* @__PURE__ */ b(q, {
@@ -777,7 +777,7 @@ function _e(e) {
777
777
  tag: "span",
778
778
  size: "inherit",
779
779
  type: "discrete",
780
- className: "text-xxs",
780
+ className: "text-xs",
781
781
  children: [
782
782
  e.label,
783
783
  ":",