admin-ui-starter-kit 0.1.4 → 0.4.3

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 (1589) hide show
  1. package/.agents/skills/admin-ui-consumer-migration/SKILL.md +276 -2
  2. package/.agents/skills/component-library-rules/SKILL.md +15 -9
  3. package/.agents/skills/component-library-rules/references/audit-followups.md +4 -4
  4. package/.agents/skills/component-library-rules/references/base-wrapper.md +24 -4
  5. package/.agents/skills/component-library-rules/references/components/INDEX.json +107 -93
  6. package/.agents/skills/component-library-rules/references/components/INDEX.md +21 -7
  7. package/.agents/skills/component-library-rules/references/components/base__accordion.md +78 -9
  8. package/.agents/skills/component-library-rules/references/components/base__alert.md +156 -0
  9. package/.agents/skills/component-library-rules/references/components/base__badge.md +8 -1
  10. package/.agents/skills/component-library-rules/references/components/base__buttons.md +121 -1
  11. package/.agents/skills/component-library-rules/references/components/base__cards.md +101 -4
  12. package/.agents/skills/component-library-rules/references/components/base__carousel.md +524 -0
  13. package/.agents/skills/component-library-rules/references/components/base__chart.md +391 -0
  14. package/.agents/skills/component-library-rules/references/components/base__combobox.md +212 -3
  15. package/.agents/skills/component-library-rules/references/components/base__copyable.md +49 -1
  16. package/.agents/skills/component-library-rules/references/components/base__currency.md +72 -1
  17. package/.agents/skills/component-library-rules/references/components/base__date-pickers.md +84 -50
  18. package/.agents/skills/component-library-rules/references/components/base__display.md +186 -39
  19. package/.agents/skills/component-library-rules/references/components/base__empty-state.md +67 -1
  20. package/.agents/skills/component-library-rules/references/components/base__event-calendar.md +56 -1
  21. package/.agents/skills/component-library-rules/references/components/base__forms.md +329 -2
  22. package/.agents/skills/component-library-rules/references/components/base__frame.md +235 -0
  23. package/.agents/skills/component-library-rules/references/components/base__item.md +47 -1
  24. package/.agents/skills/component-library-rules/references/components/base__map.md +37 -1
  25. package/.agents/skills/component-library-rules/references/components/base__metadata-list.md +99 -7
  26. package/.agents/skills/component-library-rules/references/components/base__navigation.md +71 -1
  27. package/.agents/skills/component-library-rules/references/components/base__spinner.md +44 -3
  28. package/.agents/skills/component-library-rules/references/components/base__table.md +108 -14
  29. package/.agents/skills/component-library-rules/references/components/base__typography.md +122 -1
  30. package/.agents/skills/component-library-rules/references/components/base__upload-tray.md +43 -1
  31. package/.agents/skills/component-library-rules/references/components/common__brand.md +21 -25
  32. package/.agents/skills/component-library-rules/references/components/composed__admin.md +8 -1
  33. package/.agents/skills/component-library-rules/references/components/composed__ai-elements.md +17 -2
  34. package/.agents/skills/component-library-rules/references/components/composed__ai-new.md +8 -1
  35. package/.agents/skills/component-library-rules/references/components/composed__ai.md +8 -1
  36. package/.agents/skills/component-library-rules/references/components/composed__api-key-list.md +8 -1
  37. package/.agents/skills/component-library-rules/references/components/composed__commerce-extras.md +87 -16
  38. package/.agents/skills/component-library-rules/references/components/composed__commerce.md +8 -1
  39. package/.agents/skills/component-library-rules/references/components/composed__contact-card.md +8 -1
  40. package/.agents/skills/component-library-rules/references/components/composed__course-card.md +90 -105
  41. package/.agents/skills/component-library-rules/references/components/composed__dark-surfaces.md +10 -3
  42. package/.agents/skills/component-library-rules/references/components/composed__dense-info.md +11 -4
  43. package/.agents/skills/component-library-rules/references/components/composed__feature-announcement.md +8 -1
  44. package/.agents/skills/component-library-rules/references/components/composed__giftcard-cards.md +8 -1
  45. package/.agents/skills/component-library-rules/references/components/composed__gradient-card.md +8 -1
  46. package/.agents/skills/component-library-rules/references/components/composed__invoice-header.md +8 -1
  47. package/.agents/skills/component-library-rules/references/components/composed__invoice-items.md +8 -1
  48. package/.agents/skills/component-library-rules/references/components/composed__invoice-mini.md +9 -2
  49. package/.agents/skills/component-library-rules/references/components/composed__invoice-table.md +8 -1
  50. package/.agents/skills/component-library-rules/references/components/composed__navigation-extras.md +8 -1
  51. package/.agents/skills/component-library-rules/references/components/composed__navigation.md +12 -5
  52. package/.agents/skills/component-library-rules/references/components/composed__onboarding-checklist.md +8 -1
  53. package/.agents/skills/component-library-rules/references/components/composed__timelines.md +8 -1
  54. package/.agents/skills/component-library-rules/references/components/composed__vendor-profile.md +8 -1
  55. package/.agents/skills/component-library-rules/references/components/features__activities.md +60 -19
  56. package/.agents/skills/component-library-rules/references/components/features__ai-chat.md +134 -1
  57. package/.agents/skills/component-library-rules/references/components/features__card.md +239 -0
  58. package/.agents/skills/component-library-rules/references/components/features__comments.md +36 -1
  59. package/.agents/skills/component-library-rules/references/components/features__enhanced-activities.md +19 -4
  60. package/.agents/skills/component-library-rules/references/components/features__event-log.md +8 -1
  61. package/.agents/skills/component-library-rules/references/components/features__filters.md +21 -1
  62. package/.agents/skills/component-library-rules/references/components/features__global-search.md +173 -2
  63. package/.agents/skills/component-library-rules/references/components/features__kanban.md +99 -81
  64. package/.agents/skills/component-library-rules/references/components/features__media-library.md +796 -0
  65. package/.agents/skills/component-library-rules/references/components/features__mentions.md +187 -0
  66. package/.agents/skills/component-library-rules/references/components/features__metrics-analytics-bar.md +8 -1
  67. package/.agents/skills/component-library-rules/references/components/features__metrics-analytics-cards.md +8 -1
  68. package/.agents/skills/component-library-rules/references/components/features__metrics-comparison.md +8 -1
  69. package/.agents/skills/component-library-rules/references/components/features__metrics-heatmap.md +10 -3
  70. package/.agents/skills/component-library-rules/references/components/features__metrics-inline-badge.md +8 -1
  71. package/.agents/skills/component-library-rules/references/components/features__metrics-kpi-row.md +8 -1
  72. package/.agents/skills/component-library-rules/references/components/features__metrics-micro-grid.md +8 -1
  73. package/.agents/skills/component-library-rules/references/components/features__metrics-overview.md +8 -1
  74. package/.agents/skills/component-library-rules/references/components/features__metrics-stat-cards.md +8 -1
  75. package/.agents/skills/component-library-rules/references/components/features__overlays.md +48 -16
  76. package/.agents/skills/component-library-rules/references/components/features__products.md +491 -0
  77. package/.agents/skills/component-library-rules/references/components/features__rich-text-editor.md +8 -1
  78. package/.agents/skills/component-library-rules/references/components/features__schema-form.md +375 -0
  79. package/.agents/skills/component-library-rules/references/components/features__suggestions.md +177 -0
  80. package/.agents/skills/component-library-rules/references/components/features__sync.md +155 -0
  81. package/.agents/skills/component-library-rules/references/components/layout__layout-app-shell.md +139 -24
  82. package/.agents/skills/component-library-rules/references/components/layout__layout-auth.md +826 -0
  83. package/.agents/skills/component-library-rules/references/components/layout__layout-containers.md +15 -3
  84. package/.agents/skills/component-library-rules/references/components/layout__layout-header.md +8 -1
  85. package/.agents/skills/component-library-rules/references/components/layout__layout-page.md +8 -1
  86. package/.agents/skills/component-library-rules/references/components/layout__layout-sidebar.md +9 -2
  87. package/.agents/skills/component-library-rules/references/components/layout__layout-users.md +51 -30
  88. package/.agents/skills/component-library-rules/references/components/layout__layout-workspace.md +234 -0
  89. package/.agents/skills/component-library-rules/references/components/ui__alert.md +6 -2
  90. package/.agents/skills/component-library-rules/references/components/ui__avatar.md +2 -2
  91. package/.agents/skills/component-library-rules/references/components/ui__breadcrumb.md +1 -1
  92. package/.agents/skills/component-library-rules/references/components/ui__button.md +1 -1
  93. package/.agents/skills/component-library-rules/references/components/ui__calendar.md +1 -1
  94. package/.agents/skills/component-library-rules/references/components/ui__collapsible.md +1 -1
  95. package/.agents/skills/component-library-rules/references/components/ui__empty-item.md +1 -1
  96. package/.agents/skills/component-library-rules/references/components/ui__input-group.md +1 -1
  97. package/.agents/skills/component-library-rules/references/components/ui__inputs.md +118 -19
  98. package/.agents/skills/component-library-rules/references/components/ui__layout-primitives.md +71 -0
  99. package/.agents/skills/component-library-rules/references/components/ui__menus.md +126 -44
  100. package/.agents/skills/component-library-rules/references/components/ui__overlays.md +118 -43
  101. package/.agents/skills/component-library-rules/references/components/ui__pagination.md +1 -1
  102. package/.agents/skills/component-library-rules/references/components/ui__progress.md +1 -1
  103. package/.agents/skills/component-library-rules/references/components/ui__scroll-area.md +1 -1
  104. package/.agents/skills/component-library-rules/references/components/ui__separator.md +1 -1
  105. package/.agents/skills/component-library-rules/references/components/ui__skeleton.md +1 -1
  106. package/.agents/skills/component-library-rules/references/components/ui__sonner.md +1 -1
  107. package/.agents/skills/component-library-rules/references/components/ui__spinner.md +2 -2
  108. package/.agents/skills/component-library-rules/references/components/ui__tabs.md +1 -1
  109. package/.agents/skills/component-library-rules/references/components/ui__toggles-group.md +1 -1
  110. package/.agents/skills/component-library-rules/references/components/ui__toggles.md +1 -1
  111. package/.agents/skills/component-library-rules/references/components/ui__ui-badge.md +1 -1
  112. package/.agents/skills/component-library-rules/references/components/ui__ui-card.md +1 -1
  113. package/.agents/skills/component-library-rules/references/components/ui__ui-table.md +1 -1
  114. package/.agents/skills/component-library-rules/references/visual-eval.md +1 -1
  115. package/.agents/skills/component-quality-pass/SKILL.md +47 -0
  116. package/.agents/skills/component-quality-pass/agents/openai.yaml +4 -0
  117. package/.agents/skills/component-quality-pass/references/audit-workflow.md +133 -0
  118. package/.agents/skills/component-quality-pass/scripts/list-preview-routes.mjs +71 -0
  119. package/.agents/skills/component-quality-pass/scripts/scan-quality-smells.mjs +213 -0
  120. package/AGENTS.md +7 -4
  121. package/COMPONENT_SELECTION.md +51 -5
  122. package/INTEGRATION.md +48 -2
  123. package/MIGRATION.md +17 -3
  124. package/PUBLISHING.md +4 -1
  125. package/README.md +84 -11
  126. package/dist/_shared/accordion-BWU7zxlO.cjs +2 -0
  127. package/dist/_shared/accordion-BWU7zxlO.cjs.map +1 -0
  128. package/dist/_shared/accordion-DTYKGqWD.js +130 -0
  129. package/dist/_shared/accordion-DTYKGqWD.js.map +1 -0
  130. package/dist/_shared/action-menu-BoQnI2UF.cjs +2 -0
  131. package/dist/_shared/action-menu-BoQnI2UF.cjs.map +1 -0
  132. package/dist/_shared/action-menu-uyg1Phsn.js +96 -0
  133. package/dist/_shared/action-menu-uyg1Phsn.js.map +1 -0
  134. package/dist/_shared/ai-artifact-CY1Jf9gM.cjs +3 -0
  135. package/dist/_shared/ai-artifact-CY1Jf9gM.cjs.map +1 -0
  136. package/dist/_shared/ai-artifact-DdlK_l56.js +1099 -0
  137. package/dist/_shared/ai-artifact-DdlK_l56.js.map +1 -0
  138. package/dist/_shared/alert-CuIIKJC-.cjs +2 -0
  139. package/dist/_shared/alert-CuIIKJC-.cjs.map +1 -0
  140. package/dist/_shared/alert-k60OnTtb.js +81 -0
  141. package/dist/_shared/alert-k60OnTtb.js.map +1 -0
  142. package/dist/_shared/app-shell-DqDnnKT4.cjs +2 -0
  143. package/dist/_shared/app-shell-DqDnnKT4.cjs.map +1 -0
  144. package/dist/_shared/app-shell-w5h0vEKg.js +69 -0
  145. package/dist/_shared/app-shell-w5h0vEKg.js.map +1 -0
  146. package/dist/_shared/auth-CDjZFJxy.cjs +2 -0
  147. package/dist/_shared/auth-CDjZFJxy.cjs.map +1 -0
  148. package/dist/_shared/auth-_udUdWtn.js +643 -0
  149. package/dist/_shared/auth-_udUdWtn.js.map +1 -0
  150. package/dist/_shared/badge--o9wFHB_.cjs +2 -0
  151. package/dist/_shared/badge--o9wFHB_.cjs.map +1 -0
  152. package/dist/_shared/badge-yGlx9trX.js +108 -0
  153. package/dist/_shared/badge-yGlx9trX.js.map +1 -0
  154. package/dist/_shared/button-C1qc97U1.cjs +2 -0
  155. package/dist/_shared/button-C1qc97U1.cjs.map +1 -0
  156. package/dist/_shared/button-SuocMQFT.js +173 -0
  157. package/dist/_shared/button-SuocMQFT.js.map +1 -0
  158. package/dist/_shared/buttons-9YBwevkP.cjs +2 -0
  159. package/dist/_shared/buttons-9YBwevkP.cjs.map +1 -0
  160. package/dist/_shared/buttons-BR4BGVYf.js +143 -0
  161. package/dist/_shared/buttons-BR4BGVYf.js.map +1 -0
  162. package/dist/_shared/card-radio-group-Bna2uZs1.cjs +2 -0
  163. package/dist/_shared/card-radio-group-Bna2uZs1.cjs.map +1 -0
  164. package/dist/_shared/card-radio-group-D_CY1HRy.js +158 -0
  165. package/dist/_shared/card-radio-group-D_CY1HRy.js.map +1 -0
  166. package/dist/_shared/checkbox-CTqqawIT.js +22 -0
  167. package/dist/_shared/checkbox-CTqqawIT.js.map +1 -0
  168. package/dist/_shared/checkbox-D1n-nfLP.cjs +2 -0
  169. package/dist/_shared/checkbox-D1n-nfLP.cjs.map +1 -0
  170. package/dist/_shared/combobox-CpSmiPV8.cjs +2 -0
  171. package/dist/_shared/combobox-CpSmiPV8.cjs.map +1 -0
  172. package/dist/_shared/combobox-D01JwyFZ.js +810 -0
  173. package/dist/_shared/combobox-D01JwyFZ.js.map +1 -0
  174. package/dist/_shared/comments-D9velZAW.js +952 -0
  175. package/dist/_shared/comments-D9velZAW.js.map +1 -0
  176. package/dist/_shared/comments-DyUAKSQu.cjs +2 -0
  177. package/dist/_shared/comments-DyUAKSQu.cjs.map +1 -0
  178. package/dist/_shared/copyable-Bx4J7fuT.cjs +2 -0
  179. package/dist/_shared/copyable-Bx4J7fuT.cjs.map +1 -0
  180. package/dist/_shared/copyable-cfF4gZoT.js +38 -0
  181. package/dist/_shared/copyable-cfF4gZoT.js.map +1 -0
  182. package/dist/_shared/date-picker-BnsvBFOZ.cjs +2 -0
  183. package/dist/_shared/date-picker-BnsvBFOZ.cjs.map +1 -0
  184. package/dist/_shared/date-picker-TMcjGO26.js +1361 -0
  185. package/dist/_shared/date-picker-TMcjGO26.js.map +1 -0
  186. package/dist/_shared/date-pickers-BI4xLjHR.js +330 -0
  187. package/dist/_shared/date-pickers-BI4xLjHR.js.map +1 -0
  188. package/dist/_shared/date-pickers-BhaUK5S2.cjs +2 -0
  189. package/dist/_shared/date-pickers-BhaUK5S2.cjs.map +1 -0
  190. package/dist/_shared/display-C4n0uuxl.js +1154 -0
  191. package/dist/_shared/display-C4n0uuxl.js.map +1 -0
  192. package/dist/_shared/display-oDW0O9yB.cjs +2 -0
  193. package/dist/_shared/display-oDW0O9yB.cjs.map +1 -0
  194. package/dist/_shared/form-field-B7taMVbC.js +329 -0
  195. package/dist/_shared/form-field-B7taMVbC.js.map +1 -0
  196. package/dist/_shared/form-field-rMGPvHFK.cjs +2 -0
  197. package/dist/_shared/form-field-rMGPvHFK.cjs.map +1 -0
  198. package/dist/_shared/form-sizing-D74IS9KG.js.map +1 -1
  199. package/dist/_shared/form-sizing-aVwVuF-w.cjs.map +1 -1
  200. package/dist/_shared/forms-CwJci54_.js +3430 -0
  201. package/dist/_shared/forms-CwJci54_.js.map +1 -0
  202. package/dist/_shared/forms-E3JkTgcC.cjs +2 -0
  203. package/dist/_shared/forms-E3JkTgcC.cjs.map +1 -0
  204. package/dist/_shared/header-CyBTcM-L.js +360 -0
  205. package/dist/_shared/header-CyBTcM-L.js.map +1 -0
  206. package/dist/_shared/header-kwvkesfq.cjs +2 -0
  207. package/dist/_shared/header-kwvkesfq.cjs.map +1 -0
  208. package/dist/_shared/heading-0DYCOrgC.cjs +2 -0
  209. package/dist/_shared/heading-0DYCOrgC.cjs.map +1 -0
  210. package/dist/_shared/heading-HeP06nXG.js +107 -0
  211. package/dist/_shared/heading-HeP06nXG.js.map +1 -0
  212. package/dist/_shared/hooks-MW0UTO3q.cjs +2 -0
  213. package/dist/_shared/hooks-MW0UTO3q.cjs.map +1 -0
  214. package/dist/_shared/hooks-ZiPIvs0_.js +118 -0
  215. package/dist/_shared/hooks-ZiPIvs0_.js.map +1 -0
  216. package/dist/_shared/input-C7t-RHYq.js +182 -0
  217. package/dist/_shared/input-C7t-RHYq.js.map +1 -0
  218. package/dist/_shared/input-COMcb1WY.cjs +2 -0
  219. package/dist/_shared/input-COMcb1WY.cjs.map +1 -0
  220. package/dist/_shared/item-DAjqQhhj.js +225 -0
  221. package/dist/_shared/item-DAjqQhhj.js.map +1 -0
  222. package/dist/_shared/item-DoXXYgPm.cjs +2 -0
  223. package/dist/_shared/item-DoXXYgPm.cjs.map +1 -0
  224. package/dist/_shared/mentions-Br-EP9tq.js +506 -0
  225. package/dist/_shared/mentions-Br-EP9tq.js.map +1 -0
  226. package/dist/_shared/mentions-DNTsRHJl.cjs +2 -0
  227. package/dist/_shared/mentions-DNTsRHJl.cjs.map +1 -0
  228. package/dist/_shared/metadata-CPSQGPJh.cjs +2 -0
  229. package/dist/_shared/metadata-CPSQGPJh.cjs.map +1 -0
  230. package/dist/_shared/metadata-qTNAOM7E.js +235 -0
  231. package/dist/_shared/metadata-qTNAOM7E.js.map +1 -0
  232. package/dist/_shared/money-display-CFSMUtxS.cjs +2 -0
  233. package/dist/_shared/money-display-CFSMUtxS.cjs.map +1 -0
  234. package/dist/_shared/money-display-D4Z3P3f_.js +198 -0
  235. package/dist/_shared/money-display-D4Z3P3f_.js.map +1 -0
  236. package/dist/_shared/navigation-HnnA6uSV.js +419 -0
  237. package/dist/_shared/navigation-HnnA6uSV.js.map +1 -0
  238. package/dist/_shared/navigation-J2g0Tw9D.cjs +2 -0
  239. package/dist/_shared/navigation-J2g0Tw9D.cjs.map +1 -0
  240. package/dist/_shared/overlays-CIeniDjj.js +639 -0
  241. package/dist/_shared/overlays-CIeniDjj.js.map +1 -0
  242. package/dist/_shared/overlays-Xc_F_Y-E.cjs +2 -0
  243. package/dist/_shared/overlays-Xc_F_Y-E.cjs.map +1 -0
  244. package/dist/_shared/page-BFV-KE8H.js +262 -0
  245. package/dist/_shared/page-BFV-KE8H.js.map +1 -0
  246. package/dist/_shared/page-UJfWfw2R.cjs +2 -0
  247. package/dist/_shared/page-UJfWfw2R.cjs.map +1 -0
  248. package/dist/_shared/popover-menu-Fz-bvWJF.cjs +2 -0
  249. package/dist/_shared/popover-menu-Fz-bvWJF.cjs.map +1 -0
  250. package/dist/_shared/popover-menu-bKQatoYF.js +93 -0
  251. package/dist/_shared/popover-menu-bKQatoYF.js.map +1 -0
  252. package/dist/_shared/rich-text-editor-B6WKHUKC.js +620 -0
  253. package/dist/_shared/rich-text-editor-B6WKHUKC.js.map +1 -0
  254. package/dist/_shared/rich-text-editor-Dm-6r_xe.cjs +2 -0
  255. package/dist/_shared/rich-text-editor-Dm-6r_xe.cjs.map +1 -0
  256. package/dist/_shared/sidebar-B_L_dnAe.cjs +2 -0
  257. package/dist/_shared/sidebar-B_L_dnAe.cjs.map +1 -0
  258. package/dist/_shared/sidebar-C5DApiDy.js +389 -0
  259. package/dist/_shared/sidebar-C5DApiDy.js.map +1 -0
  260. package/dist/_shared/sidebar-CIlGkVbF.js +538 -0
  261. package/dist/_shared/sidebar-CIlGkVbF.js.map +1 -0
  262. package/dist/_shared/sidebar-D3sK9otF.cjs +2 -0
  263. package/dist/_shared/sidebar-D3sK9otF.cjs.map +1 -0
  264. package/dist/_shared/smart-card-DYZGY_Su.js +361 -0
  265. package/dist/_shared/smart-card-DYZGY_Su.js.map +1 -0
  266. package/dist/_shared/smart-card-Df80VF8x.cjs +2 -0
  267. package/dist/_shared/smart-card-Df80VF8x.cjs.map +1 -0
  268. package/dist/_shared/spinner-BfAbXTQ7.js +67 -0
  269. package/dist/_shared/spinner-BfAbXTQ7.js.map +1 -0
  270. package/dist/_shared/spinner-DWn3x9Tl.cjs +2 -0
  271. package/dist/_shared/spinner-DWn3x9Tl.cjs.map +1 -0
  272. package/dist/_shared/table-CBKDA7ZE.js +1189 -0
  273. package/dist/_shared/table-CBKDA7ZE.js.map +1 -0
  274. package/dist/_shared/table-CJoxRCWy.cjs +2 -0
  275. package/dist/_shared/table-CJoxRCWy.cjs.map +1 -0
  276. package/dist/_shared/textarea-C4SOrh0z.cjs +2 -0
  277. package/dist/_shared/textarea-C4SOrh0z.cjs.map +1 -0
  278. package/dist/_shared/textarea-CsMkelmp.js +119 -0
  279. package/dist/_shared/textarea-CsMkelmp.js.map +1 -0
  280. package/dist/_shared/typography-Bzsl7aTu.cjs +2 -0
  281. package/dist/_shared/typography-Bzsl7aTu.cjs.map +1 -0
  282. package/dist/_shared/typography-CdxyWB1T.js +102 -0
  283. package/dist/_shared/typography-CdxyWB1T.js.map +1 -0
  284. package/dist/_shared/ui-provider-BF4m2cR0.cjs +2 -0
  285. package/dist/_shared/ui-provider-BF4m2cR0.cjs.map +1 -0
  286. package/dist/_shared/ui-provider-C8Ot88lS.js +85 -0
  287. package/dist/_shared/ui-provider-C8Ot88lS.js.map +1 -0
  288. package/dist/_shared/workspace-CTjIGCE0.cjs +2 -0
  289. package/dist/_shared/workspace-CTjIGCE0.cjs.map +1 -0
  290. package/dist/_shared/workspace-WgJgiSUA.js +357 -0
  291. package/dist/_shared/workspace-WgJgiSUA.js.map +1 -0
  292. package/dist/components/base/accordion/index.cjs +1 -1
  293. package/dist/components/base/accordion/index.js +1 -1
  294. package/dist/components/base/badge/index.cjs +1 -1
  295. package/dist/components/base/badge/index.js +1 -1
  296. package/dist/components/base/buttons/base-button.d.ts.map +1 -1
  297. package/dist/components/base/buttons/index.cjs +1 -1
  298. package/dist/components/base/buttons/index.js +2 -2
  299. package/dist/components/base/cards/index.cjs +1 -1
  300. package/dist/components/base/cards/index.d.ts +1 -1
  301. package/dist/components/base/cards/index.d.ts.map +1 -1
  302. package/dist/components/base/cards/index.js +1 -1
  303. package/dist/components/base/cards/smart-card.d.ts.map +1 -1
  304. package/dist/components/base/cards/smart-card.types.d.ts +2 -1
  305. package/dist/components/base/cards/smart-card.types.d.ts.map +1 -1
  306. package/dist/components/base/carousel/carousel.d.ts +66 -0
  307. package/dist/components/base/carousel/carousel.d.ts.map +1 -0
  308. package/dist/components/base/carousel/carousel.strings.d.ts +7 -0
  309. package/dist/components/base/carousel/carousel.strings.d.ts.map +1 -0
  310. package/dist/components/base/carousel/index.cjs +2 -0
  311. package/dist/components/base/carousel/index.cjs.map +1 -0
  312. package/dist/components/base/carousel/index.d.ts +3 -0
  313. package/dist/components/base/carousel/index.d.ts.map +1 -0
  314. package/dist/components/base/carousel/index.js +239 -0
  315. package/dist/components/base/carousel/index.js.map +1 -0
  316. package/dist/components/base/combobox/enhanced-combobox.d.ts +2 -2
  317. package/dist/components/base/combobox/enhanced-combobox.d.ts.map +1 -1
  318. package/dist/components/base/combobox/hooks/use-debounced-search.d.ts.map +1 -1
  319. package/dist/components/base/combobox/index.cjs +1 -1
  320. package/dist/components/base/combobox/index.js +1 -1
  321. package/dist/components/base/combobox/types.d.ts +4 -1
  322. package/dist/components/base/combobox/types.d.ts.map +1 -1
  323. package/dist/components/base/copyable/index.cjs +1 -1
  324. package/dist/components/base/copyable/index.js +1 -1
  325. package/dist/components/base/currency/index.cjs +1 -1
  326. package/dist/components/base/currency/index.js +1 -1
  327. package/dist/components/base/date-pickers/index.cjs +1 -1
  328. package/dist/components/base/date-pickers/index.js +2 -2
  329. package/dist/components/base/display/alert.d.ts +13 -1
  330. package/dist/components/base/display/alert.d.ts.map +1 -1
  331. package/dist/components/base/display/chart.cjs +8 -0
  332. package/dist/components/base/display/chart.cjs.map +1 -0
  333. package/dist/components/base/display/chart.d.ts +71 -1
  334. package/dist/components/base/display/chart.d.ts.map +1 -1
  335. package/dist/components/base/display/chart.js +144 -0
  336. package/dist/components/base/display/chart.js.map +1 -0
  337. package/dist/components/base/display/date-block.d.ts +1 -1
  338. package/dist/components/base/display/date-block.d.ts.map +1 -1
  339. package/dist/components/base/display/index.cjs +1 -1
  340. package/dist/components/base/display/index.d.ts +1 -2
  341. package/dist/components/base/display/index.d.ts.map +1 -1
  342. package/dist/components/base/display/index.js +10 -10
  343. package/dist/components/base/display/metadata/index.cjs +1 -1
  344. package/dist/components/base/display/metadata/index.js +1 -1
  345. package/dist/components/base/display/notification-banner.d.ts.map +1 -1
  346. package/dist/components/base/display/stacked-avatars.d.ts +6 -5
  347. package/dist/components/base/display/stacked-avatars.d.ts.map +1 -1
  348. package/dist/components/base/event-calendar/event-calendar-event-badge.d.ts.map +1 -1
  349. package/dist/components/base/event-calendar/event-calendar-event-card.d.ts.map +1 -1
  350. package/dist/components/base/event-calendar/event-calendar-header.d.ts.map +1 -1
  351. package/dist/components/base/event-calendar/event-calendar-legend.d.ts.map +1 -1
  352. package/dist/components/base/event-calendar/event-calendar.d.ts.map +1 -1
  353. package/dist/components/base/event-calendar/event-calendar.types.d.ts +3 -2
  354. package/dist/components/base/event-calendar/event-calendar.types.d.ts.map +1 -1
  355. package/dist/components/base/event-calendar/index.cjs +1 -1
  356. package/dist/components/base/event-calendar/index.cjs.map +1 -1
  357. package/dist/components/base/event-calendar/index.js +196 -205
  358. package/dist/components/base/event-calendar/index.js.map +1 -1
  359. package/dist/components/base/forms/fields/currency-input.d.ts.map +1 -1
  360. package/dist/components/base/forms/fields/decimal-input.d.ts.map +1 -1
  361. package/dist/components/base/forms/fields/index.d.ts +2 -0
  362. package/dist/components/base/forms/fields/index.d.ts.map +1 -1
  363. package/dist/components/base/forms/fields/password-input.d.ts +21 -0
  364. package/dist/components/base/forms/fields/password-input.d.ts.map +1 -0
  365. package/dist/components/base/forms/fields/select.d.ts +2 -0
  366. package/dist/components/base/forms/fields/select.d.ts.map +1 -1
  367. package/dist/components/base/forms/fields/slug-field.d.ts +16 -0
  368. package/dist/components/base/forms/fields/slug-field.d.ts.map +1 -0
  369. package/dist/components/base/forms/fields/switch-card.d.ts.map +1 -1
  370. package/dist/components/base/forms/index.cjs +1 -1
  371. package/dist/components/base/forms/index.js +8 -7
  372. package/dist/components/base/frame/frame.d.ts +24 -0
  373. package/dist/components/base/frame/frame.d.ts.map +1 -0
  374. package/dist/components/base/frame/index.cjs +2 -0
  375. package/dist/components/base/frame/index.cjs.map +1 -0
  376. package/dist/components/base/frame/index.d.ts +2 -0
  377. package/dist/components/base/frame/index.d.ts.map +1 -0
  378. package/dist/components/base/frame/index.js +164 -0
  379. package/dist/components/base/frame/index.js.map +1 -0
  380. package/dist/components/base/index.d.ts.map +1 -1
  381. package/dist/components/base/item/index.cjs +1 -1
  382. package/dist/components/base/item/index.js +1 -1
  383. package/dist/components/base/item/item.d.ts.map +1 -1
  384. package/dist/components/base/map/index.cjs +1 -1
  385. package/dist/components/base/map/index.cjs.map +1 -1
  386. package/dist/components/base/map/index.js +1 -1
  387. package/dist/components/base/navigation/index.cjs +1 -1
  388. package/dist/components/base/navigation/index.js +2 -2
  389. package/dist/components/base/popover-menu/index.cjs +1 -1
  390. package/dist/components/base/popover-menu/index.js +1 -1
  391. package/dist/components/base/popover-menu/popover-menu.d.ts +2 -1
  392. package/dist/components/base/popover-menu/popover-menu.d.ts.map +1 -1
  393. package/dist/components/base/sidebar/index.cjs +1 -1
  394. package/dist/components/base/sidebar/index.js +2 -2
  395. package/dist/components/base/sidebar/sidebar.d.ts +5 -3
  396. package/dist/components/base/sidebar/sidebar.d.ts.map +1 -1
  397. package/dist/components/base/spinner/index.cjs +1 -1
  398. package/dist/components/base/spinner/index.js +1 -1
  399. package/dist/components/base/table/data-table.d.ts.map +1 -1
  400. package/dist/components/base/table/index.cjs +1 -2
  401. package/dist/components/base/table/index.js +2 -1189
  402. package/dist/components/base/table/table-body.d.ts.map +1 -1
  403. package/dist/components/base/table/table-header.d.ts.map +1 -1
  404. package/dist/components/base/table/table-helpers.d.ts.map +1 -1
  405. package/dist/components/base/table/table.types.d.ts +6 -1
  406. package/dist/components/base/table/table.types.d.ts.map +1 -1
  407. package/dist/components/base/toaster/index.cjs +1 -1
  408. package/dist/components/base/toaster/index.js +1 -1
  409. package/dist/components/composed/admin/api-key-list/api-key-list.d.ts.map +1 -1
  410. package/dist/components/composed/admin/index.cjs +1 -1
  411. package/dist/components/composed/admin/index.cjs.map +1 -1
  412. package/dist/components/composed/admin/index.js +18 -13
  413. package/dist/components/composed/admin/index.js.map +1 -1
  414. package/dist/components/composed/admin/role-permission/role-permission.d.ts.map +1 -1
  415. package/dist/components/composed/ai/ai-attachment/ai-attachment.d.ts.map +1 -1
  416. package/dist/components/composed/ai/ai-citation/ai-citation.d.ts.map +1 -1
  417. package/dist/components/composed/ai/ai-code-block/ai-code-block.d.ts.map +1 -1
  418. package/dist/components/composed/ai/ai-file-tree/ai-file-tree.d.ts.map +1 -1
  419. package/dist/components/composed/ai/ai-inline-citation/ai-inline-citation.d.ts.map +1 -1
  420. package/dist/components/composed/ai/ai-prompt-suggestions/ai-prompt-suggestions.d.ts.map +1 -1
  421. package/dist/components/composed/ai/ai-reasoning/ai-reasoning.d.ts.map +1 -1
  422. package/dist/components/composed/ai/ai-sources/ai-sources.d.ts.map +1 -1
  423. package/dist/components/composed/ai/ai-task/ai-task.d.ts.map +1 -1
  424. package/dist/components/composed/ai/ai-task/types.d.ts +2 -0
  425. package/dist/components/composed/ai/ai-task/types.d.ts.map +1 -1
  426. package/dist/components/composed/ai/ai-tool-call/ai-tool-call.d.ts.map +1 -1
  427. package/dist/components/composed/ai/index.cjs +1 -1
  428. package/dist/components/composed/ai/index.cjs.map +1 -1
  429. package/dist/components/composed/ai/index.js +87 -83
  430. package/dist/components/composed/ai/index.js.map +1 -1
  431. package/dist/components/composed/analytics/chart-card/chart-card.d.ts +22 -0
  432. package/dist/components/composed/analytics/chart-card/chart-card.d.ts.map +1 -0
  433. package/dist/components/composed/analytics/chart-card/index.d.ts +2 -0
  434. package/dist/components/composed/analytics/chart-card/index.d.ts.map +1 -0
  435. package/dist/components/composed/analytics/format-metric-value.d.ts.map +1 -1
  436. package/dist/components/composed/analytics/index.cjs +1 -1
  437. package/dist/components/composed/analytics/index.cjs.map +1 -1
  438. package/dist/components/composed/analytics/index.d.ts +2 -0
  439. package/dist/components/composed/analytics/index.d.ts.map +1 -1
  440. package/dist/components/composed/analytics/index.js +369 -377
  441. package/dist/components/composed/analytics/index.js.map +1 -1
  442. package/dist/components/composed/analytics/metric-comparison/metric-comparison.d.ts +2 -1
  443. package/dist/components/composed/analytics/metric-comparison/metric-comparison.d.ts.map +1 -1
  444. package/dist/components/composed/analytics/metric-gradient/metric-gradient.d.ts.map +1 -1
  445. package/dist/components/composed/cards/contact-card/contact-card.d.ts.map +1 -1
  446. package/dist/components/composed/cards/course-card/course-card.d.ts.map +1 -1
  447. package/dist/components/composed/cards/giftcard-card/partials/giftcard-compact.d.ts.map +1 -1
  448. package/dist/components/composed/cards/giftcard-card/partials/giftcard-dark.d.ts.map +1 -1
  449. package/dist/components/composed/cards/giftcard-card/partials/giftcard-full.d.ts.map +1 -1
  450. package/dist/components/composed/cards/giftcard-card/partials/giftcard-illustrated.d.ts.map +1 -1
  451. package/dist/components/composed/cards/giftcard-card/partials/giftcard-minimal.d.ts.map +1 -1
  452. package/dist/components/composed/cards/index.cjs +1 -1
  453. package/dist/components/composed/cards/index.cjs.map +1 -1
  454. package/dist/components/composed/cards/index.js +586 -606
  455. package/dist/components/composed/cards/index.js.map +1 -1
  456. package/dist/components/composed/cards/vendor-profile/vendor-profile.d.ts.map +1 -1
  457. package/dist/components/composed/commerce/cart-summary/cart-summary.d.ts.map +1 -1
  458. package/dist/components/composed/commerce/cart-summary/types.d.ts +8 -1
  459. package/dist/components/composed/commerce/cart-summary/types.d.ts.map +1 -1
  460. package/dist/components/composed/commerce/coupon-input/coupon-input.d.ts.map +1 -1
  461. package/dist/components/composed/commerce/index.cjs +1 -1
  462. package/dist/components/composed/commerce/index.cjs.map +1 -1
  463. package/dist/components/composed/commerce/index.js +580 -486
  464. package/dist/components/composed/commerce/index.js.map +1 -1
  465. package/dist/components/composed/commerce/order-status/order-status.d.ts.map +1 -1
  466. package/dist/components/composed/commerce/order-status/types.d.ts +2 -0
  467. package/dist/components/composed/commerce/order-status/types.d.ts.map +1 -1
  468. package/dist/components/composed/commerce/payment-method/payment-method.d.ts.map +1 -1
  469. package/dist/components/composed/commerce/voucher-entry/types.d.ts +3 -0
  470. package/dist/components/composed/commerce/voucher-entry/types.d.ts.map +1 -1
  471. package/dist/components/composed/commerce/voucher-entry/voucher-entry.d.ts.map +1 -1
  472. package/dist/components/composed/dark-surfaces/booking-receipt/booking-receipt.d.ts.map +1 -1
  473. package/dist/components/composed/dark-surfaces/index.cjs +1 -1
  474. package/dist/components/composed/dark-surfaces/index.cjs.map +1 -1
  475. package/dist/components/composed/dark-surfaces/index.js +23 -16
  476. package/dist/components/composed/dark-surfaces/index.js.map +1 -1
  477. package/dist/components/composed/dark-surfaces/order-items/order-items.d.ts.map +1 -1
  478. package/dist/components/composed/dark-surfaces/order-items/types.d.ts +3 -1
  479. package/dist/components/composed/dark-surfaces/order-items/types.d.ts.map +1 -1
  480. package/dist/components/composed/data-display/index.cjs +1 -1
  481. package/dist/components/composed/data-display/index.cjs.map +1 -1
  482. package/dist/components/composed/data-display/index.js +18 -17
  483. package/dist/components/composed/data-display/index.js.map +1 -1
  484. package/dist/components/composed/data-display/invoice-mini/invoice-mini.d.ts.map +1 -1
  485. package/dist/components/composed/navigation/breadcrumb-progress/breadcrumb-progress.d.ts.map +1 -1
  486. package/dist/components/composed/navigation/index.cjs +1 -1
  487. package/dist/components/composed/navigation/index.cjs.map +1 -1
  488. package/dist/components/composed/navigation/index.js +90 -72
  489. package/dist/components/composed/navigation/index.js.map +1 -1
  490. package/dist/components/composed/navigation/kanban-board/kanban-board.d.ts.map +1 -1
  491. package/dist/components/composed/navigation/kanban-board/types.d.ts +5 -1
  492. package/dist/components/composed/navigation/kanban-board/types.d.ts.map +1 -1
  493. package/dist/components/composed/onboarding/index.cjs +1 -1
  494. package/dist/components/composed/onboarding/index.cjs.map +1 -1
  495. package/dist/components/composed/onboarding/index.js +3 -3
  496. package/dist/components/composed/timelines/index.cjs +1 -1
  497. package/dist/components/composed/timelines/index.cjs.map +1 -1
  498. package/dist/components/composed/timelines/index.js +6 -6
  499. package/dist/components/composed/timelines/index.js.map +1 -1
  500. package/dist/components/features/activities/activities-feed.d.ts.map +1 -1
  501. package/dist/components/features/activities/activities.types.d.ts +2 -1
  502. package/dist/components/features/activities/activities.types.d.ts.map +1 -1
  503. package/dist/components/features/activities/index.cjs +1 -1
  504. package/dist/components/features/activities/index.cjs.map +1 -1
  505. package/dist/components/features/activities/index.js +286 -301
  506. package/dist/components/features/activities/index.js.map +1 -1
  507. package/dist/components/features/activities/partials/activities-feed-card.d.ts.map +1 -1
  508. package/dist/components/features/activities/partials/activity-headline.d.ts.map +1 -1
  509. package/dist/components/features/activities/partials/activity-resource-tag.d.ts.map +1 -1
  510. package/dist/components/features/activities/partials/activity-row.d.ts.map +1 -1
  511. package/dist/components/features/ai-chat/ai-chat.d.ts +2 -1
  512. package/dist/components/features/ai-chat/ai-chat.d.ts.map +1 -1
  513. package/dist/components/features/ai-chat/index.cjs +2 -2
  514. package/dist/components/features/ai-chat/index.cjs.map +1 -1
  515. package/dist/components/features/ai-chat/index.js +16 -14
  516. package/dist/components/features/ai-chat/index.js.map +1 -1
  517. package/dist/components/features/ai-chat/partials/ai-chat-conversation.d.ts +2 -1
  518. package/dist/components/features/ai-chat/partials/ai-chat-conversation.d.ts.map +1 -1
  519. package/dist/components/features/ai-chat/partials/ai-chat-message.d.ts +2 -1
  520. package/dist/components/features/ai-chat/partials/ai-chat-message.d.ts.map +1 -1
  521. package/dist/components/features/ai-chat/partials/ai-chat-prompt-input.d.ts +2 -1
  522. package/dist/components/features/ai-chat/partials/ai-chat-prompt-input.d.ts.map +1 -1
  523. package/dist/components/features/ai-chat/partials/ai-chat-queue.d.ts +2 -1
  524. package/dist/components/features/ai-chat/partials/ai-chat-queue.d.ts.map +1 -1
  525. package/dist/components/features/ai-chat/partials/ai-chat-suggestions-row.d.ts +2 -1
  526. package/dist/components/features/ai-chat/partials/ai-chat-suggestions-row.d.ts.map +1 -1
  527. package/dist/components/features/card/card.types.d.ts +2 -0
  528. package/dist/components/features/card/card.types.d.ts.map +1 -1
  529. package/dist/components/features/card/index.cjs +1 -1
  530. package/dist/components/features/card/index.cjs.map +1 -1
  531. package/dist/components/features/card/index.js +37 -43
  532. package/dist/components/features/card/index.js.map +1 -1
  533. package/dist/components/features/card/partials/default-shared-resource-partials.d.ts +2 -1
  534. package/dist/components/features/card/partials/default-shared-resource-partials.d.ts.map +1 -1
  535. package/dist/components/features/card/shared-resource-card.d.ts.map +1 -1
  536. package/dist/components/features/comments/comments-provider.d.ts +2 -1
  537. package/dist/components/features/comments/comments-provider.d.ts.map +1 -1
  538. package/dist/components/features/comments/comments.types.d.ts +6 -5
  539. package/dist/components/features/comments/comments.types.d.ts.map +1 -1
  540. package/dist/components/features/comments/index.cjs +1 -1
  541. package/dist/components/features/comments/index.js +2 -2
  542. package/dist/components/features/comments/partials/comment-attachment-chip.d.ts +2 -1
  543. package/dist/components/features/comments/partials/comment-attachment-chip.d.ts.map +1 -1
  544. package/dist/components/features/comments/partials/comment-composer.d.ts.map +1 -1
  545. package/dist/components/features/comments/partials/comment-empty.d.ts +2 -1
  546. package/dist/components/features/comments/partials/comment-empty.d.ts.map +1 -1
  547. package/dist/components/features/comments/partials/comment-item.d.ts.map +1 -1
  548. package/dist/components/features/event-log/event-log.d.ts.map +1 -1
  549. package/dist/components/features/event-log/event-log.types.d.ts +2 -2
  550. package/dist/components/features/event-log/event-log.types.d.ts.map +1 -1
  551. package/dist/components/features/event-log/index.cjs +1 -1
  552. package/dist/components/features/event-log/index.cjs.map +1 -1
  553. package/dist/components/features/event-log/index.js +86 -86
  554. package/dist/components/features/event-log/index.js.map +1 -1
  555. package/dist/components/features/filters/facets/async-select-facet.d.ts +1 -1
  556. package/dist/components/features/filters/facets/async-select-facet.d.ts.map +1 -1
  557. package/dist/components/features/filters/filters.types.d.ts +7 -7
  558. package/dist/components/features/filters/filters.types.d.ts.map +1 -1
  559. package/dist/components/features/filters/hooks/use-async-options.d.ts.map +1 -1
  560. package/dist/components/features/filters/index.cjs +1 -1
  561. package/dist/components/features/filters/index.cjs.map +1 -1
  562. package/dist/components/features/filters/index.js +518 -495
  563. package/dist/components/features/filters/index.js.map +1 -1
  564. package/dist/components/features/filters/partials/async-filter-content.d.ts +1 -1
  565. package/dist/components/features/filters/partials/async-filter-content.d.ts.map +1 -1
  566. package/dist/components/features/filters/partials/filter-pill.d.ts.map +1 -1
  567. package/dist/components/features/filters/partials/filters-button.d.ts.map +1 -1
  568. package/dist/components/features/global-search/global-search.d.ts +2 -1
  569. package/dist/components/features/global-search/global-search.d.ts.map +1 -1
  570. package/dist/components/features/global-search/index.cjs +1 -1
  571. package/dist/components/features/global-search/index.cjs.map +1 -1
  572. package/dist/components/features/global-search/index.js +291 -271
  573. package/dist/components/features/global-search/index.js.map +1 -1
  574. package/dist/components/features/global-search/partials/global-search-idle-state.d.ts.map +1 -1
  575. package/dist/components/features/global-search/partials/global-search-input.d.ts.map +1 -1
  576. package/dist/components/features/global-search/partials/global-search-result-row.d.ts.map +1 -1
  577. package/dist/components/features/global-search/partials/global-search-tabs.d.ts.map +1 -1
  578. package/dist/components/features/index.d.ts.map +1 -1
  579. package/dist/components/features/kanban/index.cjs +1 -1
  580. package/dist/components/features/kanban/index.cjs.map +1 -1
  581. package/dist/components/features/kanban/index.js +133 -124
  582. package/dist/components/features/kanban/index.js.map +1 -1
  583. package/dist/components/features/kanban/kanban-context.d.ts +1 -0
  584. package/dist/components/features/kanban/kanban-context.d.ts.map +1 -1
  585. package/dist/components/features/kanban/kanban.d.ts.map +1 -1
  586. package/dist/components/features/media-library/hooks/index.d.ts +2 -0
  587. package/dist/components/features/media-library/hooks/index.d.ts.map +1 -0
  588. package/dist/components/features/media-library/hooks/use-media-library.d.ts +6 -0
  589. package/dist/components/features/media-library/hooks/use-media-library.d.ts.map +1 -0
  590. package/dist/components/features/media-library/index.cjs +2 -0
  591. package/dist/components/features/media-library/index.cjs.map +1 -0
  592. package/dist/components/features/media-library/index.d.ts +7 -0
  593. package/dist/components/features/media-library/index.d.ts.map +1 -0
  594. package/dist/components/features/media-library/index.js +1796 -0
  595. package/dist/components/features/media-library/index.js.map +1 -0
  596. package/dist/components/features/media-library/media-library.d.ts +4 -0
  597. package/dist/components/features/media-library/media-library.d.ts.map +1 -0
  598. package/dist/components/features/media-library/media-library.strings.d.ts +120 -0
  599. package/dist/components/features/media-library/media-library.strings.d.ts.map +1 -0
  600. package/dist/components/features/media-library/media-library.types.d.ts +340 -0
  601. package/dist/components/features/media-library/media-library.types.d.ts.map +1 -0
  602. package/dist/components/features/media-library/media-resource-gallery.d.ts +3 -0
  603. package/dist/components/features/media-library/media-resource-gallery.d.ts.map +1 -0
  604. package/dist/components/features/media-library/partials/index.d.ts +2 -0
  605. package/dist/components/features/media-library/partials/index.d.ts.map +1 -0
  606. package/dist/components/features/media-library/partials/media-library-partials.d.ts +11 -0
  607. package/dist/components/features/media-library/partials/media-library-partials.d.ts.map +1 -0
  608. package/dist/components/features/mentions/index.cjs +1 -1
  609. package/dist/components/features/mentions/index.js +1 -1
  610. package/dist/components/features/mentions/partials/mention-chip.d.ts.map +1 -1
  611. package/dist/components/features/mentions/partials/mention-inline-suggestions.d.ts.map +1 -1
  612. package/dist/components/features/mentions/partials/mention-picker.d.ts.map +1 -1
  613. package/dist/components/features/mentions/utils/build-mention-html.d.ts +3 -3
  614. package/dist/components/features/overlays/dialog.d.ts +1 -1
  615. package/dist/components/features/overlays/dialog.d.ts.map +1 -1
  616. package/dist/components/features/overlays/drawer.d.ts.map +1 -1
  617. package/dist/components/features/overlays/index.cjs +1 -1
  618. package/dist/components/features/overlays/index.js +1 -1
  619. package/dist/components/features/overlays/overlays.types.d.ts +3 -1
  620. package/dist/components/features/overlays/overlays.types.d.ts.map +1 -1
  621. package/dist/components/features/products/components/index.d.ts +15 -0
  622. package/dist/components/features/products/components/index.d.ts.map +1 -0
  623. package/dist/components/features/products/components/product-contract-overview.d.ts +6 -0
  624. package/dist/components/features/products/components/product-contract-overview.d.ts.map +1 -0
  625. package/dist/components/features/products/components/product-details-card.d.ts +6 -0
  626. package/dist/components/features/products/components/product-details-card.d.ts.map +1 -0
  627. package/dist/components/features/products/components/product-operations-card.d.ts +6 -0
  628. package/dist/components/features/products/components/product-operations-card.d.ts.map +1 -0
  629. package/dist/components/features/products/components/product-option-action-menu.d.ts +6 -0
  630. package/dist/components/features/products/components/product-option-action-menu.d.ts.map +1 -0
  631. package/dist/components/features/products/components/product-options-summary.d.ts +6 -0
  632. package/dist/components/features/products/components/product-options-summary.d.ts.map +1 -0
  633. package/dist/components/features/products/components/product-overview.d.ts +6 -0
  634. package/dist/components/features/products/components/product-overview.d.ts.map +1 -0
  635. package/dist/components/features/products/components/product-policies-card.d.ts +6 -0
  636. package/dist/components/features/products/components/product-policies-card.d.ts.map +1 -0
  637. package/dist/components/features/products/components/product-quote-preview-card.d.ts +6 -0
  638. package/dist/components/features/products/components/product-quote-preview-card.d.ts.map +1 -0
  639. package/dist/components/features/products/components/product-readiness-card.d.ts +6 -0
  640. package/dist/components/features/products/components/product-readiness-card.d.ts.map +1 -0
  641. package/dist/components/features/products/components/product-structure-card.d.ts +6 -0
  642. package/dist/components/features/products/components/product-structure-card.d.ts.map +1 -0
  643. package/dist/components/features/products/components/product-variant-action-menu.d.ts +6 -0
  644. package/dist/components/features/products/components/product-variant-action-menu.d.ts.map +1 -0
  645. package/dist/components/features/products/components/product-variant-details.d.ts +6 -0
  646. package/dist/components/features/products/components/product-variant-details.d.ts.map +1 -0
  647. package/dist/components/features/products/components/product-variant-editor.d.ts +6 -0
  648. package/dist/components/features/products/components/product-variant-editor.d.ts.map +1 -0
  649. package/dist/components/features/products/components/product-variants-table.d.ts +6 -0
  650. package/dist/components/features/products/components/product-variants-table.d.ts.map +1 -0
  651. package/dist/components/features/products/index.cjs +2 -0
  652. package/dist/components/features/products/index.cjs.map +1 -0
  653. package/dist/components/features/products/index.d.ts +6 -0
  654. package/dist/components/features/products/index.d.ts.map +1 -0
  655. package/dist/components/features/products/index.js +1749 -0
  656. package/dist/components/features/products/index.js.map +1 -0
  657. package/dist/components/features/products/partials/index.d.ts +8 -0
  658. package/dist/components/features/products/partials/index.d.ts.map +1 -0
  659. package/dist/components/features/products/partials/product-actions.d.ts +8 -0
  660. package/dist/components/features/products/partials/product-actions.d.ts.map +1 -0
  661. package/dist/components/features/products/partials/product-empty-state.d.ts +8 -0
  662. package/dist/components/features/products/partials/product-empty-state.d.ts.map +1 -0
  663. package/dist/components/features/products/partials/product-metric-tile.d.ts +5 -0
  664. package/dist/components/features/products/partials/product-metric-tile.d.ts.map +1 -0
  665. package/dist/components/features/products/partials/product-rows.d.ts +25 -0
  666. package/dist/components/features/products/partials/product-rows.d.ts.map +1 -0
  667. package/dist/components/features/products/partials/product-tone.d.ts +9 -0
  668. package/dist/components/features/products/partials/product-tone.d.ts.map +1 -0
  669. package/dist/components/features/products/partials/product-values.d.ts +2 -0
  670. package/dist/components/features/products/partials/product-values.d.ts.map +1 -0
  671. package/dist/components/features/products/partials/product-variant-table-parts.d.ts +22 -0
  672. package/dist/components/features/products/partials/product-variant-table-parts.d.ts.map +1 -0
  673. package/dist/components/features/products/products.d.ts +7 -0
  674. package/dist/components/features/products/products.d.ts.map +1 -0
  675. package/dist/components/features/products/products.strings.d.ts +197 -0
  676. package/dist/components/features/products/products.strings.d.ts.map +1 -0
  677. package/dist/components/features/products/products.types.d.ts +372 -0
  678. package/dist/components/features/products/products.types.d.ts.map +1 -0
  679. package/dist/components/features/rich-text-editor/index.cjs +1 -1
  680. package/dist/components/features/rich-text-editor/index.js +1 -1
  681. package/dist/components/features/rich-text-editor/partials/rich-text-editor-fallback.d.ts.map +1 -1
  682. package/dist/components/features/rich-text-editor/partials/rich-text-editor-tiptap.d.ts.map +1 -1
  683. package/dist/components/features/schema-form/hooks/index.d.ts +2 -0
  684. package/dist/components/features/schema-form/hooks/index.d.ts.map +1 -0
  685. package/dist/components/features/schema-form/hooks/use-schema-form.d.ts +24 -0
  686. package/dist/components/features/schema-form/hooks/use-schema-form.d.ts.map +1 -0
  687. package/dist/components/features/schema-form/index.cjs +2 -0
  688. package/dist/components/features/schema-form/index.cjs.map +1 -0
  689. package/dist/components/features/schema-form/index.d.ts +6 -0
  690. package/dist/components/features/schema-form/index.d.ts.map +1 -0
  691. package/dist/components/features/schema-form/index.js +721 -0
  692. package/dist/components/features/schema-form/index.js.map +1 -0
  693. package/dist/components/features/schema-form/partials/index.d.ts +4 -0
  694. package/dist/components/features/schema-form/partials/index.d.ts.map +1 -0
  695. package/dist/components/features/schema-form/partials/schema-form-actions.d.ts +16 -0
  696. package/dist/components/features/schema-form/partials/schema-form-actions.d.ts.map +1 -0
  697. package/dist/components/features/schema-form/partials/schema-form-empty.d.ts +10 -0
  698. package/dist/components/features/schema-form/partials/schema-form-empty.d.ts.map +1 -0
  699. package/dist/components/features/schema-form/partials/schema-form-field.d.ts +11 -0
  700. package/dist/components/features/schema-form/partials/schema-form-field.d.ts.map +1 -0
  701. package/dist/components/features/schema-form/schema-form.d.ts +6 -0
  702. package/dist/components/features/schema-form/schema-form.d.ts.map +1 -0
  703. package/dist/components/features/schema-form/schema-form.strings.d.ts +12 -0
  704. package/dist/components/features/schema-form/schema-form.strings.d.ts.map +1 -0
  705. package/dist/components/features/schema-form/schema-form.types.d.ts +198 -0
  706. package/dist/components/features/schema-form/schema-form.types.d.ts.map +1 -0
  707. package/dist/components/features/schema-form/schema-form.utils.d.ts +19 -0
  708. package/dist/components/features/schema-form/schema-form.utils.d.ts.map +1 -0
  709. package/dist/components/features/suggestions/hooks/use-suggestions.d.ts.map +1 -1
  710. package/dist/components/features/suggestions/index.cjs +1 -1
  711. package/dist/components/features/suggestions/index.cjs.map +1 -1
  712. package/dist/components/features/suggestions/index.js +64 -64
  713. package/dist/components/features/suggestions/index.js.map +1 -1
  714. package/dist/components/features/suggestions/suggestions.d.ts.map +1 -1
  715. package/dist/components/features/suggestions/suggestions.types.d.ts +1 -0
  716. package/dist/components/features/suggestions/suggestions.types.d.ts.map +1 -1
  717. package/dist/components/features/sync/index.cjs +1 -1
  718. package/dist/components/features/sync/index.cjs.map +1 -1
  719. package/dist/components/features/sync/index.js +3 -3
  720. package/dist/components/layout/app-shell/app-shell.types.d.ts +1 -1
  721. package/dist/components/layout/app-shell/app-shell.types.d.ts.map +1 -1
  722. package/dist/components/layout/app-shell/index.cjs +1 -1
  723. package/dist/components/layout/app-shell/index.js +1 -1
  724. package/dist/components/layout/app-shell/topbar-sidebar-layout.d.ts.map +1 -1
  725. package/dist/components/layout/auth/auth-card.d.ts +3 -0
  726. package/dist/components/layout/auth/auth-card.d.ts.map +1 -0
  727. package/dist/components/layout/auth/auth-footer-links.d.ts +3 -0
  728. package/dist/components/layout/auth/auth-footer-links.d.ts.map +1 -0
  729. package/dist/components/layout/auth/auth-hooks.d.ts +5 -0
  730. package/dist/components/layout/auth/auth-hooks.d.ts.map +1 -0
  731. package/dist/components/layout/auth/auth-method-switch.d.ts +5 -0
  732. package/dist/components/layout/auth/auth-method-switch.d.ts.map +1 -0
  733. package/dist/components/layout/auth/auth-shell.d.ts +3 -0
  734. package/dist/components/layout/auth/auth-shell.d.ts.map +1 -0
  735. package/dist/components/layout/auth/auth-social-providers.d.ts +4 -0
  736. package/dist/components/layout/auth/auth-social-providers.d.ts.map +1 -0
  737. package/dist/components/layout/auth/auth-split-panel.d.ts +3 -0
  738. package/dist/components/layout/auth/auth-split-panel.d.ts.map +1 -0
  739. package/dist/components/layout/auth/auth.strings.d.ts +22 -0
  740. package/dist/components/layout/auth/auth.strings.d.ts.map +1 -0
  741. package/dist/components/layout/auth/auth.types.d.ts +187 -0
  742. package/dist/components/layout/auth/auth.types.d.ts.map +1 -0
  743. package/dist/components/layout/auth/index.cjs +1 -0
  744. package/dist/components/layout/auth/index.d.ts +10 -0
  745. package/dist/components/layout/auth/index.d.ts.map +1 -0
  746. package/dist/components/layout/auth/index.js +2 -0
  747. package/dist/components/layout/header/index.cjs +1 -1
  748. package/dist/components/layout/header/index.js +1 -1
  749. package/dist/components/layout/header/partials/header-notifications.d.ts.map +1 -1
  750. package/dist/components/layout/header/partials/header-search.d.ts.map +1 -1
  751. package/dist/components/layout/hooks/index.cjs +1 -1
  752. package/dist/components/layout/hooks/index.js +1 -1
  753. package/dist/components/layout/index.cjs +1 -1
  754. package/dist/components/layout/index.d.ts +2 -0
  755. package/dist/components/layout/index.d.ts.map +1 -1
  756. package/dist/components/layout/index.js +8 -6
  757. package/dist/components/layout/page/index.cjs +1 -1
  758. package/dist/components/layout/page/index.js +1 -1
  759. package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts.map +1 -1
  760. package/dist/components/layout/sidebar/index.cjs +1 -1
  761. package/dist/components/layout/sidebar/index.js +2 -2
  762. package/dist/components/layout/workspace/index.cjs +1 -0
  763. package/dist/components/layout/workspace/index.d.ts +4 -0
  764. package/dist/components/layout/workspace/index.d.ts.map +1 -0
  765. package/dist/components/layout/workspace/index.js +2 -0
  766. package/dist/components/layout/workspace/workspace.d.ts +7 -0
  767. package/dist/components/layout/workspace/workspace.d.ts.map +1 -0
  768. package/dist/components/layout/workspace/workspace.strings.d.ts +19 -0
  769. package/dist/components/layout/workspace/workspace.strings.d.ts.map +1 -0
  770. package/dist/components/layout/workspace/workspace.types.d.ts +96 -0
  771. package/dist/components/layout/workspace/workspace.types.d.ts.map +1 -0
  772. package/dist/components/typography/heading.d.ts +2 -1
  773. package/dist/components/typography/heading.d.ts.map +1 -1
  774. package/dist/components/typography/index.cjs +1 -1
  775. package/dist/components/typography/index.js +2 -3
  776. package/dist/components/typography/text-link.d.ts.map +1 -1
  777. package/dist/components/typography/text.d.ts +2 -1
  778. package/dist/components/typography/text.d.ts.map +1 -1
  779. package/dist/components/ui/alert-dialog.d.ts +19 -0
  780. package/dist/components/ui/alert-dialog.d.ts.map +1 -0
  781. package/dist/components/ui/aspect-ratio.d.ts +5 -0
  782. package/dist/components/ui/aspect-ratio.d.ts.map +1 -0
  783. package/dist/components/ui/carousel.d.ts +29 -0
  784. package/dist/components/ui/carousel.d.ts.map +1 -0
  785. package/dist/components/ui/direction.d.ts +2 -0
  786. package/dist/components/ui/direction.d.ts.map +1 -0
  787. package/dist/components/ui/drawer.d.ts +14 -0
  788. package/dist/components/ui/drawer.d.ts.map +1 -0
  789. package/dist/components/ui/field.d.ts +25 -0
  790. package/dist/components/ui/field.d.ts.map +1 -0
  791. package/dist/components/ui/input-group.d.ts +1 -1
  792. package/dist/components/ui/input-otp.d.ts +12 -0
  793. package/dist/components/ui/input-otp.d.ts.map +1 -0
  794. package/dist/components/ui/kbd.d.ts +4 -0
  795. package/dist/components/ui/kbd.d.ts.map +1 -0
  796. package/dist/components/ui/label.d.ts +4 -0
  797. package/dist/components/ui/label.d.ts.map +1 -0
  798. package/dist/components/ui/menubar.d.ts +30 -0
  799. package/dist/components/ui/menubar.d.ts.map +1 -0
  800. package/dist/components/ui/native-select.d.ts +9 -0
  801. package/dist/components/ui/native-select.d.ts.map +1 -0
  802. package/dist/components/ui/navigation-menu.d.ts +12 -0
  803. package/dist/components/ui/navigation-menu.d.ts.map +1 -0
  804. package/dist/components/ui/resizable.d.ts +8 -0
  805. package/dist/components/ui/resizable.d.ts.map +1 -0
  806. package/dist/index.cjs +1 -1
  807. package/dist/index.js +1 -1
  808. package/dist/lib/ui-provider/index.cjs +1 -1
  809. package/dist/lib/ui-provider/index.js +1 -1
  810. package/dist/lib/utils.cjs +1 -1
  811. package/dist/lib/utils.cjs.map +1 -1
  812. package/dist/lib/utils.d.ts.map +1 -1
  813. package/dist/lib/utils.js +19 -16
  814. package/dist/lib/utils.js.map +1 -1
  815. package/dist/showcase/assets/AreaChart-BkAbL-UV.js +6 -0
  816. package/dist/showcase/assets/CSPContext-B11tftuK.js +1 -0
  817. package/dist/showcase/assets/CompositeItem-Dzu0MfUC.js +1 -0
  818. package/dist/showcase/assets/CompositeRoot-CQvQ_uj2.js +1 -0
  819. package/dist/showcase/assets/DialogTrigger-BxVhSw4D.js +1 -0
  820. package/dist/showcase/assets/FieldItemContext-BSFHjS7g.js +1 -0
  821. package/dist/showcase/assets/LabelableContext-DapqaNeY.js +1 -0
  822. package/dist/showcase/assets/PreviewLayout-CGEkbS-i.js +1 -0
  823. package/dist/showcase/assets/RadioGroup-DBA3iBQw.js +1 -0
  824. package/dist/showcase/assets/Separator-BEMr82IS.js +1 -0
  825. package/dist/showcase/assets/ToolbarRootContext-xN-ruoGR.js +1 -0
  826. package/dist/showcase/assets/accordion-B-Iy0jKu.js +171 -0
  827. package/dist/showcase/assets/accordion-variants-B9GD0oBE.js +1 -0
  828. package/dist/showcase/assets/action-menu-CMUF6gPp.js +1 -0
  829. package/dist/showcase/assets/activities-C1P9bsJm.js +501 -0
  830. package/dist/showcase/assets/activities-feed-card-WZUuGHmT.js +1 -0
  831. package/dist/showcase/assets/activity-BVP5C805.js +1 -0
  832. package/dist/showcase/assets/admin-DWOK4sj4.js +80 -0
  833. package/dist/showcase/assets/ai-Dteb3y6G.js +41 -0
  834. package/dist/showcase/assets/ai-artifact-B0d7GveY.js +2 -0
  835. package/dist/showcase/assets/ai-chat-IJ0b2FOw.js +568 -0
  836. package/dist/showcase/assets/ai-elements-Cr8GgtEV.js +387 -0
  837. package/dist/showcase/assets/ai-new-BJN9wNvX.js +167 -0
  838. package/dist/showcase/assets/ai-tool-call-BqlQuR1P.js +1 -0
  839. package/dist/showcase/assets/alert-2_0J7Vv6.js +1 -0
  840. package/dist/showcase/assets/alert-7wEOpEor.js +93 -0
  841. package/dist/showcase/assets/alert-C_FOBilU.js +62 -0
  842. package/dist/showcase/assets/api-key-list-CGV1k52v.js +73 -0
  843. package/dist/showcase/assets/app-sidebar-S6oUYO4h.js +1 -0
  844. package/dist/showcase/assets/arrow-down-VNr82bS3.js +1 -0
  845. package/dist/showcase/assets/arrow-left-BSVeKWNq.js +1 -0
  846. package/dist/showcase/assets/arrow-right-D6hTB0Bd.js +1 -0
  847. package/dist/showcase/assets/arrow-up-p9oA4cIz.js +1 -0
  848. package/dist/showcase/assets/arrow-up-right-BtlQ62bc.js +1 -0
  849. package/dist/showcase/assets/avatar-BxcQUuh0.js +57 -0
  850. package/dist/showcase/assets/avatar-LGWm52rv.js +1 -0
  851. package/dist/showcase/assets/badge-COn5psy3.js +28 -0
  852. package/dist/showcase/assets/badge-check-D2C2BPUT.js +1 -0
  853. package/dist/showcase/assets/bell-C80n9VRl.js +1 -0
  854. package/dist/showcase/assets/bot-C83bUUi9.js +1 -0
  855. package/dist/showcase/assets/box-rZ0pA-02.js +1 -0
  856. package/dist/showcase/assets/brain-BJtktdVu.js +1 -0
  857. package/dist/showcase/assets/brand-CxdIBpyJ.js +36 -0
  858. package/dist/showcase/assets/breadcrumb-BZsr_A8k.js +1 -0
  859. package/dist/showcase/assets/breadcrumb-CSU8FvWB.js +52 -0
  860. package/dist/showcase/assets/breadcrumbs-BUm4gHzL.js +1 -0
  861. package/dist/showcase/assets/briefcase-0WhUdLn5.js +1 -0
  862. package/dist/showcase/assets/building-2-1D6zVdCI.js +1 -0
  863. package/dist/showcase/assets/button-C22Gs6y0.js +44 -0
  864. package/dist/showcase/assets/button-group-C0Ts4-x3.js +1 -0
  865. package/dist/showcase/assets/buttons-Dfn6hmwe.js +270 -0
  866. package/dist/showcase/assets/calendar-7a4yQlzJ.js +1 -0
  867. package/dist/showcase/assets/calendar-Bo17POsN.js +1 -0
  868. package/dist/showcase/assets/calendar-D6XNDRVQ.js +16 -0
  869. package/dist/showcase/assets/calendar-days-C4mG2tOe.js +1 -0
  870. package/dist/showcase/assets/camera-C16z6v0m.js +1 -0
  871. package/dist/showcase/assets/card-BjqRQxxz.js +1 -0
  872. package/dist/showcase/assets/card-IzYmUTpI.js +188 -0
  873. package/dist/showcase/assets/card-primitives-BDj4DtS8.js +1 -0
  874. package/dist/showcase/assets/card-radio-group-7GU9AtWs.js +1 -0
  875. package/dist/showcase/assets/cards-DAqpr8CM.js +328 -0
  876. package/dist/showcase/assets/carousel-D1n4Kkoo.js +449 -0
  877. package/dist/showcase/assets/chart-D2EGeI3b.js +358 -0
  878. package/dist/showcase/assets/chart-column-DKcP77Dx.js +1 -0
  879. package/dist/showcase/assets/checkbox-BI3gcjED.js +1 -0
  880. package/dist/showcase/assets/chevron-down-ByPPEdNm.js +1 -0
  881. package/dist/showcase/assets/chevron-left-BNByuq3g.js +1 -0
  882. package/dist/showcase/assets/chevron-right-D4pIMCh9.js +1 -0
  883. package/dist/showcase/assets/chevron-up-Cha879Nz.js +1 -0
  884. package/dist/showcase/assets/chevrons-up-down-eAgHau5X.js +1 -0
  885. package/dist/showcase/assets/circle-V5hdlsIn.js +1 -0
  886. package/dist/showcase/assets/circle-alert-BW-Btwgh.js +1 -0
  887. package/dist/showcase/assets/circle-check-1MSds3Vu.js +1 -0
  888. package/dist/showcase/assets/circle-check-big-vBWkmhCZ.js +1 -0
  889. package/dist/showcase/assets/circle-dot-CsD5uXwH.js +1 -0
  890. package/dist/showcase/assets/circle-question-mark-xYn9p1nL.js +1 -0
  891. package/dist/showcase/assets/circle-x-VSqZOeGt.js +1 -0
  892. package/dist/showcase/assets/clock-3-CP_t59kW.js +1 -0
  893. package/dist/showcase/assets/clock-9xbB7EnW.js +1 -0
  894. package/dist/showcase/assets/code-xml-CeGA85eB.js +1 -0
  895. package/dist/showcase/assets/collapsible-C2W51-wl.js +27 -0
  896. package/dist/showcase/assets/collapsible-C4eof15p.js +1 -0
  897. package/dist/showcase/assets/combobox-i8o4u6Q0.js +696 -0
  898. package/dist/showcase/assets/command-C4F78Ppy.js +1 -0
  899. package/dist/showcase/assets/command-wjOXUieO.js +1 -0
  900. package/dist/showcase/assets/comment-composer-DeURrlgL.js +1 -0
  901. package/dist/showcase/assets/comment-item-D07Qk-Nt.js +1 -0
  902. package/dist/showcase/assets/comments-Bo-lZU18.js +357 -0
  903. package/dist/showcase/assets/commerce-extras-Cio3xn_B.js +189 -0
  904. package/dist/showcase/assets/commerce-jqA58sCZ.js +79 -0
  905. package/dist/showcase/assets/composite-BQFpnmS9.js +1 -0
  906. package/dist/showcase/assets/contact-card-4ajPhcd_.js +65 -0
  907. package/dist/showcase/assets/content-container-B83BnjFb.js +1 -0
  908. package/dist/showcase/assets/copyable-DKkroGJ3.js +96 -0
  909. package/dist/showcase/assets/course-card-DShYl03k.js +77 -0
  910. package/dist/showcase/assets/cpu-BZTsuaUu.js +1 -0
  911. package/dist/showcase/assets/credit-card-CAI3F3HB.js +1 -0
  912. package/dist/showcase/assets/currency-PXgbngHk.js +149 -0
  913. package/dist/showcase/assets/dark-surfaces-pSCicdm4.js +90 -0
  914. package/dist/showcase/assets/database-oHsxHUj-.js +1 -0
  915. package/dist/showcase/assets/date-block-CvCdJr8d.js +1 -0
  916. package/dist/showcase/assets/date-picker-Cd5vsEEd.js +1 -0
  917. package/dist/showcase/assets/date-pickers-CBK-zvSB.js +73 -0
  918. package/dist/showcase/assets/dense-info-zOdJpez6.js +106 -0
  919. package/dist/showcase/assets/dialog-D9-MRCRg.js +1 -0
  920. package/dist/showcase/assets/dialog-EDw9DvZs.js +1 -0
  921. package/dist/showcase/assets/display-CE9JWinr.js +403 -0
  922. package/dist/showcase/assets/dist-CjZ6RM9v.js +45 -0
  923. package/dist/showcase/assets/dollar-sign-BXD_x2mP.js +1 -0
  924. package/dist/showcase/assets/download-D0ur_d_N.js +1 -0
  925. package/dist/showcase/assets/dropdown-menu-Cto8-yDW.js +1 -0
  926. package/dist/showcase/assets/dropzone-9Gb4mR4x.js +1 -0
  927. package/dist/showcase/assets/earth-BN1w3w7h.js +1 -0
  928. package/dist/showcase/assets/ellipsis-DsrebD1Y.js +1 -0
  929. package/dist/showcase/assets/ellipsis-vertical-CAiMV7G2.js +1 -0
  930. package/dist/showcase/assets/empty-DoJF3uif.js +1 -0
  931. package/dist/showcase/assets/empty-item-zZ85qI6s.js +49 -0
  932. package/dist/showcase/assets/empty-state-CGfB7sOE.js +1 -0
  933. package/dist/showcase/assets/empty-state-Y_4qnNWt.js +188 -0
  934. package/dist/showcase/assets/enhanced-activities-B41hAxhb.js +361 -0
  935. package/dist/showcase/assets/enhanced-combobox-BOimEW-1.js +1 -0
  936. package/dist/showcase/assets/event-calendar-BjcfC6fM.js +138 -0
  937. package/dist/showcase/assets/event-log-BhoMXcix.js +330 -0
  938. package/dist/showcase/assets/example-Cz_880po.js +1 -0
  939. package/dist/showcase/assets/external-link-Cy1-PP8k.js +1 -0
  940. package/dist/showcase/assets/eye-C85PNNdH.js +1 -0
  941. package/dist/showcase/assets/feature-announcement-_tpahla3.js +34 -0
  942. package/dist/showcase/assets/file-C8PCBEtY.js +1 -0
  943. package/dist/showcase/assets/file-text-DwqbUujq.js +1 -0
  944. package/dist/showcase/assets/filters-ChqGg_1z.js +78 -0
  945. package/dist/showcase/assets/flag-csHQcBml.js +1 -0
  946. package/dist/showcase/assets/folder-open-BThTng3d.js +1 -0
  947. package/dist/showcase/assets/form-field-B5g_5Zjm.js +1 -0
  948. package/dist/showcase/assets/form-sizing-DHUDpiPA.js +1 -0
  949. package/dist/showcase/assets/format-DrTwpH65.js +1 -0
  950. package/dist/showcase/assets/format-metric-value-BTsvOjZQ.js +1 -0
  951. package/dist/showcase/assets/forms-BukyUSKs.js +862 -0
  952. package/dist/showcase/assets/frame-BNKhZVlb.js +167 -0
  953. package/dist/showcase/assets/getPseudoElementBounds-DwyQgIj-.js +1 -0
  954. package/dist/showcase/assets/gift-CtM--bDo.js +1 -0
  955. package/dist/showcase/assets/giftcard-cards-imm4Br0H.js +85 -0
  956. package/dist/showcase/assets/git-branch-Dl3AzbqP.js +1 -0
  957. package/dist/showcase/assets/global-search-Bhl7z_vN.js +1 -0
  958. package/dist/showcase/assets/global-search-C4yaPFSW.js +215 -0
  959. package/dist/showcase/assets/globe-BCikLfKc.js +1 -0
  960. package/dist/showcase/assets/gradient-card-Dh_5ZYv0.js +58 -0
  961. package/dist/showcase/assets/hash-C8m0EECO.js +1 -0
  962. package/dist/showcase/assets/header-BXjw7Lm_.js +1 -0
  963. package/dist/showcase/assets/header-notifications-CShSQ8kR.js +1 -0
  964. package/dist/showcase/assets/heart-BJVBFZ-j.js +1 -0
  965. package/dist/showcase/assets/hero-CLDdwZDr.png +0 -0
  966. package/dist/showcase/assets/house-C3fXPhlL.js +1 -0
  967. package/dist/showcase/assets/icon-badge-dwVx3Hxf.js +1 -0
  968. package/dist/showcase/assets/image-gc4qX_7C.js +1 -0
  969. package/dist/showcase/assets/inbox-C0GJ1KEC.js +1 -0
  970. package/dist/showcase/assets/index-BQIv1ffM.js +10 -0
  971. package/dist/showcase/assets/index-DN3tqopz.css +2 -0
  972. package/dist/showcase/assets/index.esm-Ducg7a0P.js +1 -0
  973. package/dist/showcase/assets/inertValue-DeVQ2cCe.js +1 -0
  974. package/dist/showcase/assets/info-BimmreJ-.js +1 -0
  975. package/dist/showcase/assets/inline-stat-DcNP6bcO.js +1 -0
  976. package/dist/showcase/assets/input-DJAWOJEx.js +1 -0
  977. package/dist/showcase/assets/input-NIgvB9CZ.js +1 -0
  978. package/dist/showcase/assets/input-group-BmqJ20bA.js +1 -0
  979. package/dist/showcase/assets/input-group-gOUubhee.js +47 -0
  980. package/dist/showcase/assets/inputs-Dk8YOVkI.js +155 -0
  981. package/dist/showcase/assets/invoice-header-BnNpWej2.js +36 -0
  982. package/dist/showcase/assets/invoice-items-BdPmW10L.js +36 -0
  983. package/dist/showcase/assets/invoice-mini-CbSYyHIb.js +14 -0
  984. package/dist/showcase/assets/invoice-table-DjnWG3KF.js +30 -0
  985. package/dist/showcase/assets/isSameDay-B2KDl_YX.js +1 -0
  986. package/dist/showcase/assets/isToday-CXNS7ELW.js +1 -0
  987. package/dist/showcase/assets/italic-BRS-PpYL.js +1 -0
  988. package/dist/showcase/assets/item--6Hx9AXZ.js +1 -0
  989. package/dist/showcase/assets/item-BszVRzXj.js +134 -0
  990. package/dist/showcase/assets/item-YF6wMI9W.js +1 -0
  991. package/dist/showcase/assets/kanban-BWBbWLVe.js +186 -0
  992. package/dist/showcase/assets/label-BgpcD3V6.js +1 -0
  993. package/dist/showcase/assets/languages-DDgmIDFe.js +1 -0
  994. package/dist/showcase/assets/layers-nkkXRmvA.js +1 -0
  995. package/dist/showcase/assets/layout-app-shell-D3MbPoGC.js +608 -0
  996. package/dist/showcase/assets/layout-auth-DIeRtG0B.js +754 -0
  997. package/dist/showcase/assets/layout-containers-Dc3-IAgV.js +101 -0
  998. package/dist/showcase/assets/layout-header-Cg6GfMST.js +170 -0
  999. package/dist/showcase/assets/layout-page-DojPq8S6.js +122 -0
  1000. package/dist/showcase/assets/layout-primitives-JBSQS72B.js +34 -0
  1001. package/dist/showcase/assets/layout-sidebar-C6jUJRhx.js +224 -0
  1002. package/dist/showcase/assets/layout-users-uzPscfo7.js +117 -0
  1003. package/dist/showcase/assets/layout-workspace-B3leaOKl.js +183 -0
  1004. package/dist/showcase/assets/lock-DLIcOBUd.js +1 -0
  1005. package/dist/showcase/assets/lock-keyhole-DY6aV7Mq.js +1 -0
  1006. package/dist/showcase/assets/mail-AES_tOd2.js +1 -0
  1007. package/dist/showcase/assets/mail-check-dJTzg2bD.js +1 -0
  1008. package/dist/showcase/assets/map-CZ2l0iGH.js +124 -0
  1009. package/dist/showcase/assets/map-pin-0O7GD5Dz.js +1 -0
  1010. package/dist/showcase/assets/media-library-CRllxSGQ.js +695 -0
  1011. package/dist/showcase/assets/mention-inline-suggestions-Dx2Z1GHF.js +1 -0
  1012. package/dist/showcase/assets/mentions-CDqqGCE4.js +138 -0
  1013. package/dist/showcase/assets/menus-CDgE79I5.js +165 -0
  1014. package/dist/showcase/assets/message-square-CBNI_sf8.js +1 -0
  1015. package/dist/showcase/assets/metadata-list-BoEVt7cX.js +1 -0
  1016. package/dist/showcase/assets/metadata-list-NtWuY9W8.js +288 -0
  1017. package/dist/showcase/assets/metric-Bx_LWobe.js +1 -0
  1018. package/dist/showcase/assets/metric-bar-BldYHNLQ.js +1 -0
  1019. package/dist/showcase/assets/metric-grid-BDw7w7d2.js +1 -0
  1020. package/dist/showcase/assets/metric-trend-chip-lSjDkUEo.js +1 -0
  1021. package/dist/showcase/assets/metrics-analytics-bar-CCFhTmQZ.js +44 -0
  1022. package/dist/showcase/assets/metrics-analytics-cards-C1AjZqJU.js +50 -0
  1023. package/dist/showcase/assets/metrics-comparison-vEE6BtuW.js +76 -0
  1024. package/dist/showcase/assets/metrics-heatmap-DKkz8ibX.js +27 -0
  1025. package/dist/showcase/assets/metrics-inline-badge-CZmVnReB.js +17 -0
  1026. package/dist/showcase/assets/metrics-kpi-row-s2FYIYB1.js +31 -0
  1027. package/dist/showcase/assets/metrics-micro-grid-DDlCl9Ep.js +42 -0
  1028. package/dist/showcase/assets/metrics-overview-BgliK2L1.js +192 -0
  1029. package/dist/showcase/assets/metrics-stat-cards-Cn5sRZsB.js +54 -0
  1030. package/dist/showcase/assets/minus-DByvcC8K.js +1 -0
  1031. package/dist/showcase/assets/money-display-DG4IaEaA.js +1 -0
  1032. package/dist/showcase/assets/month-year-picker-CVurc9L7.js +1 -0
  1033. package/dist/showcase/assets/navigation-CHYgQTsY.js +90 -0
  1034. package/dist/showcase/assets/navigation-C_6gS4FA.js +230 -0
  1035. package/dist/showcase/assets/navigation-extras-CflOar2P.js +43 -0
  1036. package/dist/showcase/assets/onboarding-checklist-CYiciKwv.js +119 -0
  1037. package/dist/showcase/assets/overlays-HrH2wdTK.js +408 -0
  1038. package/dist/showcase/assets/overlays-cp7VMq3b.js +159 -0
  1039. package/dist/showcase/assets/package-CjcwDJKu.js +1 -0
  1040. package/dist/showcase/assets/package-check-CCH3ax-x.js +1 -0
  1041. package/dist/showcase/assets/page-action-button-Cn5j2_EP.js +1 -0
  1042. package/dist/showcase/assets/page-header-CkvCF1MQ.js +1 -0
  1043. package/dist/showcase/assets/pagination-DM5QGPo2.js +42 -0
  1044. package/dist/showcase/assets/pagination-DUzHnhJ6.js +1 -0
  1045. package/dist/showcase/assets/paperclip-DoqDQQVa.js +1 -0
  1046. package/dist/showcase/assets/password-input-CfS4sfCl.js +1 -0
  1047. package/dist/showcase/assets/pencil-C2OfFQMj.js +1 -0
  1048. package/dist/showcase/assets/phone-CLvml_XI.js +1 -0
  1049. package/dist/showcase/assets/plus-D5swsZCz.js +1 -0
  1050. package/dist/showcase/assets/popover-menu-Bu9q96nE.js +1 -0
  1051. package/dist/showcase/assets/popover-nCGXR4Yd.js +1 -0
  1052. package/dist/showcase/assets/popover-xC8qczvP.js +1 -0
  1053. package/dist/showcase/assets/products-BbSzEFvw.js +407 -0
  1054. package/dist/showcase/assets/progress-DYfoy7pk.js +1 -0
  1055. package/dist/showcase/assets/progress-ENNwjW3X.js +18 -0
  1056. package/dist/showcase/assets/props-table-2pIZzGC-.js +1 -0
  1057. package/dist/showcase/assets/props.generated-DggzG-JL.json +38611 -0
  1058. package/dist/showcase/assets/quote-BO1bufuX.js +1 -0
  1059. package/dist/showcase/assets/receipt-kIVP3kxJ.js +1 -0
  1060. package/dist/showcase/assets/receipt-text-BDQIvI4l.js +1 -0
  1061. package/dist/showcase/assets/refresh-cw-UdL93poQ.js +1 -0
  1062. package/dist/showcase/assets/resolveAriaLabelledBy-iFo8AzEr.js +1 -0
  1063. package/dist/showcase/assets/resolveValueLabel-DfiI3G4i.js +1 -0
  1064. package/dist/showcase/assets/rich-text-editor-CNtfwLC2.js +143 -0
  1065. package/dist/showcase/assets/rich-text-editor-DB4QWptQ.js +124 -0
  1066. package/dist/showcase/assets/rotate-ccw-DQPoMfMY.js +1 -0
  1067. package/dist/showcase/assets/save-Cd0ZM40i.js +1 -0
  1068. package/dist/showcase/assets/schema-form-Cyc6vCVO.js +325 -0
  1069. package/dist/showcase/assets/scroll-area-B5NZsDdi.js +32 -0
  1070. package/dist/showcase/assets/scroll-area-BvTq99pz.js +1 -0
  1071. package/dist/showcase/assets/select-BRbyPtx8.js +1 -0
  1072. package/dist/showcase/assets/select-Dymyvyh6.js +1 -0
  1073. package/dist/showcase/assets/send-BWzI7mwi.js +1 -0
  1074. package/dist/showcase/assets/separator-BsYPzBlF.js +1 -0
  1075. package/dist/showcase/assets/separator-Osp0OJ78.js +28 -0
  1076. package/dist/showcase/assets/serializeValue-B_EucO5O.js +1 -0
  1077. package/dist/showcase/assets/settings-DRmWJILI.js +1 -0
  1078. package/dist/showcase/assets/sheet-BKsjMYMo.js +1 -0
  1079. package/dist/showcase/assets/shield-D1EaWJMG.js +1 -0
  1080. package/dist/showcase/assets/shield-alert-DWsbR2jn.js +1 -0
  1081. package/dist/showcase/assets/shield-check-DUTAPADm.js +1 -0
  1082. package/dist/showcase/assets/shopping-bag-XmeqUqk9.js +1 -0
  1083. package/dist/showcase/assets/sidebar-B5uO9sUB.js +1 -0
  1084. package/dist/showcase/assets/sidebar.context-CRjgeYJL.js +1 -0
  1085. package/dist/showcase/assets/skeleton-BtiPkfxB.js +1 -0
  1086. package/dist/showcase/assets/skeleton-DbybIpkV.js +29 -0
  1087. package/dist/showcase/assets/slider-vuwVVBby.js +1 -0
  1088. package/dist/showcase/assets/sliders-horizontal-BE_cwUn0.js +1 -0
  1089. package/dist/showcase/assets/smart-card-Dhu_1A_u.js +1 -0
  1090. package/dist/showcase/assets/sonner-DZB-G4q5.js +22 -0
  1091. package/dist/showcase/assets/sortable.esm-YOwRw8Hr.js +5 -0
  1092. package/dist/showcase/assets/sparkles-N8rqKQez.js +1 -0
  1093. package/dist/showcase/assets/spinner-B5zKCNXu.js +30 -0
  1094. package/dist/showcase/assets/spinner-BOjRziLu.js +1 -0
  1095. package/dist/showcase/assets/spinner-PIr8y8av.js +49 -0
  1096. package/dist/showcase/assets/square-pen-ImRrVwT8.js +1 -0
  1097. package/dist/showcase/assets/stacked-avatars-DnIAc098.js +1 -0
  1098. package/dist/showcase/assets/star-BaV-UTPq.js +1 -0
  1099. package/dist/showcase/assets/startOfDay-CtTeiGV0.js +1 -0
  1100. package/dist/showcase/assets/stringifyLocale-CkHjdQTJ.js +1 -0
  1101. package/dist/showcase/assets/styles-Bv0pDLVi.js +1 -0
  1102. package/dist/showcase/assets/suggestions-QnLPdgnG.js +126 -0
  1103. package/dist/showcase/assets/switch-DwAS_TXx.js +1 -0
  1104. package/dist/showcase/assets/switch-xzxCDtyg.js +1 -0
  1105. package/dist/showcase/assets/sync-LeYxWAap.js +107 -0
  1106. package/dist/showcase/assets/table-BbEFanNu.js +1 -0
  1107. package/dist/showcase/assets/table-CVVHBty6.js +382 -0
  1108. package/dist/showcase/assets/table-actions-DvI9U67L.js +1 -0
  1109. package/dist/showcase/assets/tabs-CLcyGwLd.js +1 -0
  1110. package/dist/showcase/assets/tabs-ck8y1Bjr.js +19 -0
  1111. package/dist/showcase/assets/tags-input-DmBY2CKI.js +1 -0
  1112. package/dist/showcase/assets/text-button-C54O1rZM.js +1 -0
  1113. package/dist/showcase/assets/text-link-9_mZpq_f.js +1 -0
  1114. package/dist/showcase/assets/textarea-CHvnWHWH.js +1 -0
  1115. package/dist/showcase/assets/textarea-jexcMklP.js +1 -0
  1116. package/dist/showcase/assets/timelines-uvFVjEQv.js +200 -0
  1117. package/dist/showcase/assets/toggle-group-B3fORi8i.js +1 -0
  1118. package/dist/showcase/assets/toggles-Cox6Yk2k.js +71 -0
  1119. package/dist/showcase/assets/toggles-group-CSvSPqCB.js +32 -0
  1120. package/dist/showcase/assets/trash-2-CE9bDw49.js +1 -0
  1121. package/dist/showcase/assets/trending-up-0iJl0XvC.js +1 -0
  1122. package/dist/showcase/assets/truck-DlhOPoCD.js +1 -0
  1123. package/dist/showcase/assets/typography-BotOITw4.js +223 -0
  1124. package/dist/showcase/assets/ui-badge-hfmO1K3-.js +28 -0
  1125. package/dist/showcase/assets/ui-card-Aigzxhn3.js +30 -0
  1126. package/dist/showcase/assets/ui-table-CKif9sNO.js +42 -0
  1127. package/dist/showcase/assets/upload-tray-BnKDNrw9.js +138 -0
  1128. package/dist/showcase/assets/use-form-field-state-Sbo6tfr9.js +1 -0
  1129. package/dist/showcase/assets/use-layout-link-BQ6Y9z__.js +1 -0
  1130. package/dist/showcase/assets/useAnchoredPopupScrollLock-CP1vkwD7.js +1 -0
  1131. package/dist/showcase/assets/useAriaLabelledBy-J_Rvjwx3.js +1 -0
  1132. package/dist/showcase/assets/useCollapsiblePanel-BwUOowW2.js +1 -0
  1133. package/dist/showcase/assets/useCompositeItem-D3XOIML-.js +1 -0
  1134. package/dist/showcase/assets/useCompositeListItem-BWfShNPP.js +1 -0
  1135. package/dist/showcase/assets/useControlled-BF8maje6.js +1 -0
  1136. package/dist/showcase/assets/useLabelableId-DxorZ3YW.js +1 -0
  1137. package/dist/showcase/assets/useOpenInteractionType-DLUX6CcH.js +1 -0
  1138. package/dist/showcase/assets/useRender-B9zzqKA1.js +1 -0
  1139. package/dist/showcase/assets/useTriggerFocusGuards-BSvL8pKg.js +1 -0
  1140. package/dist/showcase/assets/useValueChanged-DSoTBFAJ.js +1 -0
  1141. package/dist/showcase/assets/user-BZog6aIh.js +1 -0
  1142. package/dist/showcase/assets/user-plus-CPxlPoxf.js +1 -0
  1143. package/dist/showcase/assets/users-BgXAp2UO.js +1 -0
  1144. package/dist/showcase/assets/valueToPercent-gleKSaFe.js +1 -0
  1145. package/dist/showcase/assets/vendor-profile-BLYiDIrO.js +37 -0
  1146. package/dist/showcase/assets/video-YBnCbmIb.js +1 -0
  1147. package/dist/showcase/assets/wrench-BFTavxzg.js +1 -0
  1148. package/dist/showcase/assets/x-D8UN9pOu.js +1 -0
  1149. package/dist/showcase/assets/zap-DIJUAJEb.js +1 -0
  1150. package/dist/showcase/index.html +2 -2
  1151. package/dist/style.css +1 -1
  1152. package/package.json +63 -3
  1153. package/scripts/install-skill.mjs +5 -1
  1154. package/src/App.css +9 -388
  1155. package/dist/_shared/accordion-BnxO7Is4.js +0 -130
  1156. package/dist/_shared/accordion-BnxO7Is4.js.map +0 -1
  1157. package/dist/_shared/accordion-RIN0MjPz.cjs +0 -2
  1158. package/dist/_shared/accordion-RIN0MjPz.cjs.map +0 -1
  1159. package/dist/_shared/action-menu-IIO9KtJ2.js +0 -96
  1160. package/dist/_shared/action-menu-IIO9KtJ2.js.map +0 -1
  1161. package/dist/_shared/action-menu-RAyg3cvM.cjs +0 -2
  1162. package/dist/_shared/action-menu-RAyg3cvM.cjs.map +0 -1
  1163. package/dist/_shared/ai-artifact--MqIfP-8.js +0 -1068
  1164. package/dist/_shared/ai-artifact--MqIfP-8.js.map +0 -1
  1165. package/dist/_shared/ai-artifact-D1dBeEz1.cjs +0 -3
  1166. package/dist/_shared/ai-artifact-D1dBeEz1.cjs.map +0 -1
  1167. package/dist/_shared/alert-D3gRd7RK.cjs +0 -2
  1168. package/dist/_shared/alert-D3gRd7RK.cjs.map +0 -1
  1169. package/dist/_shared/alert-DQ-tV8b-.js +0 -48
  1170. package/dist/_shared/alert-DQ-tV8b-.js.map +0 -1
  1171. package/dist/_shared/app-shell-C4d7kCCd.cjs +0 -2
  1172. package/dist/_shared/app-shell-C4d7kCCd.cjs.map +0 -1
  1173. package/dist/_shared/app-shell-CKxcpPTc.js +0 -94
  1174. package/dist/_shared/app-shell-CKxcpPTc.js.map +0 -1
  1175. package/dist/_shared/badge-BK5VvEgg.js +0 -108
  1176. package/dist/_shared/badge-BK5VvEgg.js.map +0 -1
  1177. package/dist/_shared/badge-kS_XtN-z.cjs +0 -2
  1178. package/dist/_shared/badge-kS_XtN-z.cjs.map +0 -1
  1179. package/dist/_shared/button-LZWDn-aU.cjs +0 -2
  1180. package/dist/_shared/button-LZWDn-aU.cjs.map +0 -1
  1181. package/dist/_shared/button-cnkCF8q8.js +0 -177
  1182. package/dist/_shared/button-cnkCF8q8.js.map +0 -1
  1183. package/dist/_shared/buttons-DHV2eZAf.cjs +0 -2
  1184. package/dist/_shared/buttons-DHV2eZAf.cjs.map +0 -1
  1185. package/dist/_shared/buttons-ehfMSkwP.js +0 -143
  1186. package/dist/_shared/buttons-ehfMSkwP.js.map +0 -1
  1187. package/dist/_shared/card-radio-group-Bf03M6c5.js +0 -158
  1188. package/dist/_shared/card-radio-group-Bf03M6c5.js.map +0 -1
  1189. package/dist/_shared/card-radio-group-SqPUL0Je.cjs +0 -2
  1190. package/dist/_shared/card-radio-group-SqPUL0Je.cjs.map +0 -1
  1191. package/dist/_shared/combobox-Cvs70ic4.js +0 -808
  1192. package/dist/_shared/combobox-Cvs70ic4.js.map +0 -1
  1193. package/dist/_shared/combobox-Dos9YWjk.cjs +0 -2
  1194. package/dist/_shared/combobox-Dos9YWjk.cjs.map +0 -1
  1195. package/dist/_shared/comments-DD2aeZVz.js +0 -946
  1196. package/dist/_shared/comments-DD2aeZVz.js.map +0 -1
  1197. package/dist/_shared/comments-DzwU4sNE.cjs +0 -2
  1198. package/dist/_shared/comments-DzwU4sNE.cjs.map +0 -1
  1199. package/dist/_shared/copyable-D7WhgEzJ.js +0 -38
  1200. package/dist/_shared/copyable-D7WhgEzJ.js.map +0 -1
  1201. package/dist/_shared/copyable-DDjT505-.cjs +0 -2
  1202. package/dist/_shared/copyable-DDjT505-.cjs.map +0 -1
  1203. package/dist/_shared/date-picker-3G3C-sIq.cjs +0 -2
  1204. package/dist/_shared/date-picker-3G3C-sIq.cjs.map +0 -1
  1205. package/dist/_shared/date-picker-7yuMHPYs.js +0 -1362
  1206. package/dist/_shared/date-picker-7yuMHPYs.js.map +0 -1
  1207. package/dist/_shared/date-pickers-B_VUgjvY.cjs +0 -2
  1208. package/dist/_shared/date-pickers-B_VUgjvY.cjs.map +0 -1
  1209. package/dist/_shared/date-pickers-DZXi0di0.js +0 -330
  1210. package/dist/_shared/date-pickers-DZXi0di0.js.map +0 -1
  1211. package/dist/_shared/display-Cuj4td-V.js +0 -1237
  1212. package/dist/_shared/display-Cuj4td-V.js.map +0 -1
  1213. package/dist/_shared/display-D2q93jiS.cjs +0 -8
  1214. package/dist/_shared/display-D2q93jiS.cjs.map +0 -1
  1215. package/dist/_shared/form-field-BNuCBym1.js +0 -319
  1216. package/dist/_shared/form-field-BNuCBym1.js.map +0 -1
  1217. package/dist/_shared/form-field-C4fQYsqv.cjs +0 -2
  1218. package/dist/_shared/form-field-C4fQYsqv.cjs.map +0 -1
  1219. package/dist/_shared/forms-BV4fHeRx.cjs +0 -2
  1220. package/dist/_shared/forms-BV4fHeRx.cjs.map +0 -1
  1221. package/dist/_shared/forms-DjAdYxme.js +0 -3378
  1222. package/dist/_shared/forms-DjAdYxme.js.map +0 -1
  1223. package/dist/_shared/header-D4Oz-mCv.cjs +0 -2
  1224. package/dist/_shared/header-D4Oz-mCv.cjs.map +0 -1
  1225. package/dist/_shared/header-X5DZ8vmO.js +0 -360
  1226. package/dist/_shared/header-X5DZ8vmO.js.map +0 -1
  1227. package/dist/_shared/heading-C7mNh03X.cjs +0 -2
  1228. package/dist/_shared/heading-C7mNh03X.cjs.map +0 -1
  1229. package/dist/_shared/heading-CrNpYcUr.js +0 -39
  1230. package/dist/_shared/heading-CrNpYcUr.js.map +0 -1
  1231. package/dist/_shared/hooks-CKXPg30g.js +0 -118
  1232. package/dist/_shared/hooks-CKXPg30g.js.map +0 -1
  1233. package/dist/_shared/hooks-CTiEImZp.cjs +0 -2
  1234. package/dist/_shared/hooks-CTiEImZp.cjs.map +0 -1
  1235. package/dist/_shared/input-Cw2uICc1.cjs +0 -2
  1236. package/dist/_shared/input-Cw2uICc1.cjs.map +0 -1
  1237. package/dist/_shared/input-DJo8d1Rr.js +0 -182
  1238. package/dist/_shared/input-DJo8d1Rr.js.map +0 -1
  1239. package/dist/_shared/item-BxlP5TO3.js +0 -224
  1240. package/dist/_shared/item-BxlP5TO3.js.map +0 -1
  1241. package/dist/_shared/item-X18HIqR7.cjs +0 -2
  1242. package/dist/_shared/item-X18HIqR7.cjs.map +0 -1
  1243. package/dist/_shared/mentions-DE9aDOMu.cjs +0 -2
  1244. package/dist/_shared/mentions-DE9aDOMu.cjs.map +0 -1
  1245. package/dist/_shared/mentions-DjjYmMLc.js +0 -493
  1246. package/dist/_shared/mentions-DjjYmMLc.js.map +0 -1
  1247. package/dist/_shared/metadata-C5MSNo7y.js +0 -236
  1248. package/dist/_shared/metadata-C5MSNo7y.js.map +0 -1
  1249. package/dist/_shared/metadata-Cw3Kj2Ug.cjs +0 -2
  1250. package/dist/_shared/metadata-Cw3Kj2Ug.cjs.map +0 -1
  1251. package/dist/_shared/money-display-B7AKxxNt.js +0 -198
  1252. package/dist/_shared/money-display-B7AKxxNt.js.map +0 -1
  1253. package/dist/_shared/money-display-E22wbM21.cjs +0 -2
  1254. package/dist/_shared/money-display-E22wbM21.cjs.map +0 -1
  1255. package/dist/_shared/navigation-B9VAXqLL.cjs +0 -2
  1256. package/dist/_shared/navigation-B9VAXqLL.cjs.map +0 -1
  1257. package/dist/_shared/navigation-CxoJVgfo.js +0 -420
  1258. package/dist/_shared/navigation-CxoJVgfo.js.map +0 -1
  1259. package/dist/_shared/overlays-C-T8RnJz.cjs +0 -2
  1260. package/dist/_shared/overlays-C-T8RnJz.cjs.map +0 -1
  1261. package/dist/_shared/overlays-DfRsQzD3.js +0 -633
  1262. package/dist/_shared/overlays-DfRsQzD3.js.map +0 -1
  1263. package/dist/_shared/page-C4jEULwi.js +0 -263
  1264. package/dist/_shared/page-C4jEULwi.js.map +0 -1
  1265. package/dist/_shared/page-DX3pA_tJ.cjs +0 -2
  1266. package/dist/_shared/page-DX3pA_tJ.cjs.map +0 -1
  1267. package/dist/_shared/popover-menu-CVAr985u.js +0 -95
  1268. package/dist/_shared/popover-menu-CVAr985u.js.map +0 -1
  1269. package/dist/_shared/popover-menu-Cq-LnAMh.cjs +0 -2
  1270. package/dist/_shared/popover-menu-Cq-LnAMh.cjs.map +0 -1
  1271. package/dist/_shared/rich-text-editor-C3gVBm-v.cjs +0 -2
  1272. package/dist/_shared/rich-text-editor-C3gVBm-v.cjs.map +0 -1
  1273. package/dist/_shared/rich-text-editor-Cylb-lkv.js +0 -616
  1274. package/dist/_shared/rich-text-editor-Cylb-lkv.js.map +0 -1
  1275. package/dist/_shared/sidebar-BeWLjIRR.js +0 -537
  1276. package/dist/_shared/sidebar-BeWLjIRR.js.map +0 -1
  1277. package/dist/_shared/sidebar-Bl_KRk-S.cjs +0 -2
  1278. package/dist/_shared/sidebar-Bl_KRk-S.cjs.map +0 -1
  1279. package/dist/_shared/sidebar-DzzdJ2xk.cjs +0 -2
  1280. package/dist/_shared/sidebar-DzzdJ2xk.cjs.map +0 -1
  1281. package/dist/_shared/sidebar-ux-yk-Ph.js +0 -382
  1282. package/dist/_shared/sidebar-ux-yk-Ph.js.map +0 -1
  1283. package/dist/_shared/smart-card-DL7esK_y.cjs +0 -2
  1284. package/dist/_shared/smart-card-DL7esK_y.cjs.map +0 -1
  1285. package/dist/_shared/smart-card-eBfUvQ9r.js +0 -360
  1286. package/dist/_shared/smart-card-eBfUvQ9r.js.map +0 -1
  1287. package/dist/_shared/spinner-Bvjs1ybK.cjs +0 -2
  1288. package/dist/_shared/spinner-Bvjs1ybK.cjs.map +0 -1
  1289. package/dist/_shared/spinner-XcfVYbbp.js +0 -67
  1290. package/dist/_shared/spinner-XcfVYbbp.js.map +0 -1
  1291. package/dist/_shared/text-DzKt9cyb.cjs +0 -2
  1292. package/dist/_shared/text-DzKt9cyb.cjs.map +0 -1
  1293. package/dist/_shared/text-qsEg5GdP.js +0 -74
  1294. package/dist/_shared/text-qsEg5GdP.js.map +0 -1
  1295. package/dist/_shared/textarea-BAKapsLQ.cjs +0 -2
  1296. package/dist/_shared/textarea-BAKapsLQ.cjs.map +0 -1
  1297. package/dist/_shared/textarea-Bfv1KxBm.js +0 -119
  1298. package/dist/_shared/textarea-Bfv1KxBm.js.map +0 -1
  1299. package/dist/_shared/typography-4CSyoCj9.js +0 -102
  1300. package/dist/_shared/typography-4CSyoCj9.js.map +0 -1
  1301. package/dist/_shared/typography-DKn7P4wX.cjs +0 -2
  1302. package/dist/_shared/typography-DKn7P4wX.cjs.map +0 -1
  1303. package/dist/_shared/ui-provider-CQJ1glwN.js +0 -85
  1304. package/dist/_shared/ui-provider-CQJ1glwN.js.map +0 -1
  1305. package/dist/_shared/ui-provider-RIYE7O_V.cjs +0 -2
  1306. package/dist/_shared/ui-provider-RIYE7O_V.cjs.map +0 -1
  1307. package/dist/components/base/table/index.cjs.map +0 -1
  1308. package/dist/components/base/table/index.js.map +0 -1
  1309. package/dist/showcase/assets/AreaChart-CzBEYPbz.js +0 -6
  1310. package/dist/showcase/assets/CSPContext-ImKusJJ_.js +0 -1
  1311. package/dist/showcase/assets/CompositeItem-C-DIOBdJ.js +0 -1
  1312. package/dist/showcase/assets/CompositeRoot-Ce4ORgG2.js +0 -1
  1313. package/dist/showcase/assets/DialogTrigger-DWvMs7dp.js +0 -1
  1314. package/dist/showcase/assets/FormContext-BeC1MJpT.js +0 -1
  1315. package/dist/showcase/assets/PreviewLayout-N1PTTyZK.js +0 -1
  1316. package/dist/showcase/assets/RadioGroup-DAWaa26D.js +0 -1
  1317. package/dist/showcase/assets/Separator-guDkmky0.js +0 -1
  1318. package/dist/showcase/assets/ToolbarRootContext-BJ7hWga8.js +0 -1
  1319. package/dist/showcase/assets/accordion-CiM9WhkT.js +0 -172
  1320. package/dist/showcase/assets/accordion-variants-C_sHrQ7C.js +0 -1
  1321. package/dist/showcase/assets/action-menu-mlWlGE5P.js +0 -1
  1322. package/dist/showcase/assets/activities-YWR4wh4f.js +0 -501
  1323. package/dist/showcase/assets/activities-feed-card-Cglnf5as.js +0 -1
  1324. package/dist/showcase/assets/admin-BtOtzPd4.js +0 -80
  1325. package/dist/showcase/assets/ai-8iNe0R1M.js +0 -41
  1326. package/dist/showcase/assets/ai-artifact-CQL5krnJ.js +0 -2
  1327. package/dist/showcase/assets/ai-chat-BzCdOOc6.js +0 -568
  1328. package/dist/showcase/assets/ai-elements-CBHy2xWU.js +0 -379
  1329. package/dist/showcase/assets/ai-new-CgL5NeVs.js +0 -167
  1330. package/dist/showcase/assets/ai-tool-call-D9AsaWJF.js +0 -1
  1331. package/dist/showcase/assets/alert-B2BuF4vZ.js +0 -59
  1332. package/dist/showcase/assets/alert-BkVaTONJ.js +0 -1
  1333. package/dist/showcase/assets/api-key-list-C-_59dli.js +0 -73
  1334. package/dist/showcase/assets/app-sidebar-BdOu5rVn.js +0 -1
  1335. package/dist/showcase/assets/arrow-down-BpVaq9-H.js +0 -1
  1336. package/dist/showcase/assets/arrow-left-C40rxfqj.js +0 -1
  1337. package/dist/showcase/assets/arrow-right-BclouSfP.js +0 -1
  1338. package/dist/showcase/assets/arrow-up-BpWEnkdX.js +0 -1
  1339. package/dist/showcase/assets/arrow-up-right-Z5sMa1HH.js +0 -1
  1340. package/dist/showcase/assets/avatar-CDNhh3rv.js +0 -57
  1341. package/dist/showcase/assets/avatar-QBwg3fvR.js +0 -1
  1342. package/dist/showcase/assets/badge-check-DXDQ3SaL.js +0 -1
  1343. package/dist/showcase/assets/badge-tAdYt--9.js +0 -28
  1344. package/dist/showcase/assets/bell-CVEeEWw4.js +0 -1
  1345. package/dist/showcase/assets/bot-Bcx5mNAQ.js +0 -1
  1346. package/dist/showcase/assets/box-Dgy2Xc70.js +0 -1
  1347. package/dist/showcase/assets/brain-DsoOsd7m.js +0 -1
  1348. package/dist/showcase/assets/brand-DAyuXNUz.js +0 -40
  1349. package/dist/showcase/assets/breadcrumb-CC4Z8eMY.js +0 -1
  1350. package/dist/showcase/assets/breadcrumb-DCbAzeMs.js +0 -52
  1351. package/dist/showcase/assets/breadcrumbs-DGZMpIoQ.js +0 -1
  1352. package/dist/showcase/assets/briefcase-2uLXCvAZ.js +0 -1
  1353. package/dist/showcase/assets/button-DhQ6rMPU.js +0 -44
  1354. package/dist/showcase/assets/button-group-Ce9vnZ1H.js +0 -1
  1355. package/dist/showcase/assets/buttons-CHja0LUL.js +0 -270
  1356. package/dist/showcase/assets/calendar-BbiK8AMZ.js +0 -16
  1357. package/dist/showcase/assets/calendar-BhZpIjCo.js +0 -1
  1358. package/dist/showcase/assets/calendar-oKaDsUIy.js +0 -1
  1359. package/dist/showcase/assets/card-DoU1VD79.js +0 -1
  1360. package/dist/showcase/assets/cards-3OgH8m3F.js +0 -328
  1361. package/dist/showcase/assets/chart-column-6Tn3WAT9.js +0 -1
  1362. package/dist/showcase/assets/chevron-down-x7TQsvYY.js +0 -1
  1363. package/dist/showcase/assets/chevron-left-CglzJgA2.js +0 -1
  1364. package/dist/showcase/assets/chevron-right-CDDMIkYP.js +0 -1
  1365. package/dist/showcase/assets/chevron-up-Dc3aAaGH.js +0 -1
  1366. package/dist/showcase/assets/chevrons-up-down-DJNnSBAj.js +0 -1
  1367. package/dist/showcase/assets/circle-BBmNFtO8.js +0 -1
  1368. package/dist/showcase/assets/circle-alert-DJevf3tT.js +0 -1
  1369. package/dist/showcase/assets/circle-check-BCxORlAM.js +0 -1
  1370. package/dist/showcase/assets/circle-check-big-tiuK2w0-.js +0 -1
  1371. package/dist/showcase/assets/circle-dot-BEVVQjgN.js +0 -1
  1372. package/dist/showcase/assets/circle-question-mark-BQrUUiKD.js +0 -1
  1373. package/dist/showcase/assets/circle-x-CoV_AUtZ.js +0 -1
  1374. package/dist/showcase/assets/clock-Bn2R4aDX.js +0 -1
  1375. package/dist/showcase/assets/code-xml-BVYp_JDX.js +0 -1
  1376. package/dist/showcase/assets/collapsible-Co2Y739_.js +0 -27
  1377. package/dist/showcase/assets/collapsible-DPbftgrO.js +0 -1
  1378. package/dist/showcase/assets/combobox-Cm4__LnJ.js +0 -622
  1379. package/dist/showcase/assets/command-DQFIxPN9.js +0 -45
  1380. package/dist/showcase/assets/command-KNncGgZW.js +0 -1
  1381. package/dist/showcase/assets/comment-composer-DTJtqYGP.js +0 -1
  1382. package/dist/showcase/assets/comment-item-DIEYMmV_.js +0 -1
  1383. package/dist/showcase/assets/comments-B0BbDp-3.js +0 -357
  1384. package/dist/showcase/assets/commerce-BOWBCLA-.js +0 -79
  1385. package/dist/showcase/assets/commerce-extras-C6CWYfpC.js +0 -173
  1386. package/dist/showcase/assets/composite-YicTVAO0.js +0 -1
  1387. package/dist/showcase/assets/contact-card-DQPRIlnJ.js +0 -65
  1388. package/dist/showcase/assets/content-container-CHXwWViz.js +0 -1
  1389. package/dist/showcase/assets/copyable-CjTwco9O.js +0 -96
  1390. package/dist/showcase/assets/course-card-CTQScd2C.js +0 -113
  1391. package/dist/showcase/assets/cpu-D52NjUWq.js +0 -1
  1392. package/dist/showcase/assets/credit-card-BoDfW0R8.js +0 -1
  1393. package/dist/showcase/assets/currency-BPREbpDA.js +0 -149
  1394. package/dist/showcase/assets/dark-surfaces-BCG45K2m.js +0 -90
  1395. package/dist/showcase/assets/database-DeGR0hed.js +0 -1
  1396. package/dist/showcase/assets/date-block-Bl1kXJrM.js +0 -1
  1397. package/dist/showcase/assets/date-picker-BHbZa4ML.js +0 -1
  1398. package/dist/showcase/assets/date-pickers-DumwUEXE.js +0 -110
  1399. package/dist/showcase/assets/dense-info-DxfgBw9Z.js +0 -106
  1400. package/dist/showcase/assets/dialog-BYHZvlL8.js +0 -1
  1401. package/dist/showcase/assets/display-BXMGOjL3.js +0 -392
  1402. package/dist/showcase/assets/dollar-sign-BipUTVXC.js +0 -1
  1403. package/dist/showcase/assets/download-CxspQgIc.js +0 -1
  1404. package/dist/showcase/assets/dropdown-menu-Q1BV3wPP.js +0 -1
  1405. package/dist/showcase/assets/dropzone-OivkuTPF.js +0 -1
  1406. package/dist/showcase/assets/ellipsis-Bn-XgoA7.js +0 -1
  1407. package/dist/showcase/assets/ellipsis-vertical-Bcl9HX9k.js +0 -1
  1408. package/dist/showcase/assets/empty-CcafLcw-.js +0 -1
  1409. package/dist/showcase/assets/empty-item-CiJeS8ZV.js +0 -49
  1410. package/dist/showcase/assets/empty-state-B1RYYjUP.js +0 -188
  1411. package/dist/showcase/assets/enhanced-activities-IB811DS6.js +0 -361
  1412. package/dist/showcase/assets/event-calendar-C2VCfcUz.js +0 -138
  1413. package/dist/showcase/assets/event-log-ckmsCPmG.js +0 -330
  1414. package/dist/showcase/assets/example-C6-_Sy6B.js +0 -1
  1415. package/dist/showcase/assets/external-link-Bg-_8Uq7.js +0 -1
  1416. package/dist/showcase/assets/eye-JVsUA85G.js +0 -1
  1417. package/dist/showcase/assets/feature-announcement-C4aRXesF.js +0 -34
  1418. package/dist/showcase/assets/file-4pOq58jl.js +0 -1
  1419. package/dist/showcase/assets/file-text-BIi71mZ1.js +0 -1
  1420. package/dist/showcase/assets/filters-CxrcnmLU.js +0 -78
  1421. package/dist/showcase/assets/flag-DeiJmomk.js +0 -1
  1422. package/dist/showcase/assets/folder-open-zMXBpVNs.js +0 -1
  1423. package/dist/showcase/assets/form-sizing-B8jbL5tL.js +0 -1
  1424. package/dist/showcase/assets/format-BG4laCmp.js +0 -1
  1425. package/dist/showcase/assets/format-metric-value-B94EDo8X.js +0 -1
  1426. package/dist/showcase/assets/forms-PsN5zTLx.js +0 -793
  1427. package/dist/showcase/assets/getPseudoElementBounds-B7wr19E1.js +0 -1
  1428. package/dist/showcase/assets/gift-CKFIh1Wh.js +0 -1
  1429. package/dist/showcase/assets/giftcard-cards-BfOlIHmA.js +0 -85
  1430. package/dist/showcase/assets/git-branch-BO9i8XkJ.js +0 -1
  1431. package/dist/showcase/assets/global-search-CNmUraNa.js +0 -90
  1432. package/dist/showcase/assets/global-search-DkJkQ0Vs.js +0 -1
  1433. package/dist/showcase/assets/globe-47T22W56.js +0 -1
  1434. package/dist/showcase/assets/gradient-card-CXSY29TZ.js +0 -58
  1435. package/dist/showcase/assets/header-eZHN-s6P.js +0 -1
  1436. package/dist/showcase/assets/header-notifications-Caa9i87J.js +0 -1
  1437. package/dist/showcase/assets/heart-DjKkkUsX.js +0 -1
  1438. package/dist/showcase/assets/house-DKxCiHyB.js +0 -1
  1439. package/dist/showcase/assets/icon-badge-Bcm8TlJi.js +0 -1
  1440. package/dist/showcase/assets/image-r-gMI33G.js +0 -1
  1441. package/dist/showcase/assets/inbox-ZxSy1pgX.js +0 -1
  1442. package/dist/showcase/assets/index-B8DVXCmf.js +0 -10
  1443. package/dist/showcase/assets/index-DbLs6mcj.css +0 -2
  1444. package/dist/showcase/assets/inertValue-i0cAMG-0.js +0 -1
  1445. package/dist/showcase/assets/info-B1KV2DkO.js +0 -1
  1446. package/dist/showcase/assets/inline-stat-D0sE-A4C.js +0 -1
  1447. package/dist/showcase/assets/input-25epjsiD.js +0 -1
  1448. package/dist/showcase/assets/input-CnwMt9Sr.js +0 -1
  1449. package/dist/showcase/assets/input-group-DSKyV7we.js +0 -47
  1450. package/dist/showcase/assets/input-group-x5eWeAZg.js +0 -1
  1451. package/dist/showcase/assets/inputs-B2Maxr14.js +0 -49
  1452. package/dist/showcase/assets/invoice-header-Gxl--yFu.js +0 -36
  1453. package/dist/showcase/assets/invoice-items-BtoaGNjE.js +0 -36
  1454. package/dist/showcase/assets/invoice-mini-DHFSZegy.js +0 -14
  1455. package/dist/showcase/assets/invoice-table-6dmU_KrL.js +0 -30
  1456. package/dist/showcase/assets/isSameDay-BrDHfKHm.js +0 -1
  1457. package/dist/showcase/assets/isToday-VtoSc1IH.js +0 -1
  1458. package/dist/showcase/assets/italic-CXkAsf6H.js +0 -1
  1459. package/dist/showcase/assets/item-CGOThKAx.js +0 -1
  1460. package/dist/showcase/assets/item-CMRbW6s-.js +0 -1
  1461. package/dist/showcase/assets/item-sw6fAZcn.js +0 -117
  1462. package/dist/showcase/assets/kanban-CKGYTXji.js +0 -175
  1463. package/dist/showcase/assets/label-BmKD22pm.js +0 -1
  1464. package/dist/showcase/assets/layout-app-shell-CeMHzVNn.js +0 -501
  1465. package/dist/showcase/assets/layout-containers-8Drow5f9.js +0 -96
  1466. package/dist/showcase/assets/layout-header-BlBw4JAV.js +0 -170
  1467. package/dist/showcase/assets/layout-page-BQfgHFau.js +0 -122
  1468. package/dist/showcase/assets/layout-sidebar-DZer5Uuh.js +0 -224
  1469. package/dist/showcase/assets/layout-users-nuioUkeu.js +0 -104
  1470. package/dist/showcase/assets/lock-DQcZ9cEj.js +0 -1
  1471. package/dist/showcase/assets/mail-yNXDtmNr.js +0 -1
  1472. package/dist/showcase/assets/map-JMM1F9VR.js +0 -124
  1473. package/dist/showcase/assets/map-pin-2WS7oVo3.js +0 -1
  1474. package/dist/showcase/assets/menus-mK-FeNki.js +0 -89
  1475. package/dist/showcase/assets/message-square-DGTAjNJG.js +0 -1
  1476. package/dist/showcase/assets/metadata-list-CBxuQjVO.js +0 -278
  1477. package/dist/showcase/assets/metric-BWGrmyD6.js +0 -1
  1478. package/dist/showcase/assets/metric-grid-CewIJQvo.js +0 -1
  1479. package/dist/showcase/assets/metric-trend-chip-kLBN8u5z.js +0 -1
  1480. package/dist/showcase/assets/metrics-analytics-bar-COnc7VN9.js +0 -44
  1481. package/dist/showcase/assets/metrics-analytics-cards-BR83UVqi.js +0 -77
  1482. package/dist/showcase/assets/metrics-comparison-C0SUjdMg.js +0 -76
  1483. package/dist/showcase/assets/metrics-heatmap-Orq1hLk-.js +0 -27
  1484. package/dist/showcase/assets/metrics-inline-badge-C924q2Xx.js +0 -17
  1485. package/dist/showcase/assets/metrics-kpi-row-Cwi05ruK.js +0 -31
  1486. package/dist/showcase/assets/metrics-micro-grid-D97nkrge.js +0 -42
  1487. package/dist/showcase/assets/metrics-overview-BOc8y3QX.js +0 -192
  1488. package/dist/showcase/assets/metrics-stat-cards-Cilh-A5D.js +0 -54
  1489. package/dist/showcase/assets/minus-DvrDGcTv.js +0 -1
  1490. package/dist/showcase/assets/money-display-0egZ_O76.js +0 -1
  1491. package/dist/showcase/assets/month-year-picker-2cWfwnmP.js +0 -1
  1492. package/dist/showcase/assets/navigation-BnYme-Wj.js +0 -90
  1493. package/dist/showcase/assets/navigation-CLQWl32A.js +0 -230
  1494. package/dist/showcase/assets/navigation-extras-BPDoAdXF.js +0 -43
  1495. package/dist/showcase/assets/onboarding-checklist-26XVWgDF.js +0 -119
  1496. package/dist/showcase/assets/overlays-2sVGhanu.js +0 -88
  1497. package/dist/showcase/assets/overlays-BaR6HDwB.js +0 -394
  1498. package/dist/showcase/assets/package-CUNvdlBi.js +0 -1
  1499. package/dist/showcase/assets/page-action-button-DgvZVtzx.js +0 -1
  1500. package/dist/showcase/assets/page-header-4F_iaFPW.js +0 -1
  1501. package/dist/showcase/assets/pagination-CDjZ6jiZ.js +0 -42
  1502. package/dist/showcase/assets/pagination-g1NQaN42.js +0 -1
  1503. package/dist/showcase/assets/paperclip-CDxdf8Os.js +0 -1
  1504. package/dist/showcase/assets/pencil-Ddc5JwBe.js +0 -1
  1505. package/dist/showcase/assets/phone-NIZ5SwgK.js +0 -1
  1506. package/dist/showcase/assets/plus-C9kwz7rW.js +0 -1
  1507. package/dist/showcase/assets/popover-DtnuOBgr.js +0 -1
  1508. package/dist/showcase/assets/popover-T85aV4zW.js +0 -1
  1509. package/dist/showcase/assets/popover-menu-BRGSZe4f.js +0 -1
  1510. package/dist/showcase/assets/progress-CcZjuzK3.js +0 -1
  1511. package/dist/showcase/assets/progress-DbouniUl.js +0 -18
  1512. package/dist/showcase/assets/props-table-CM_1cocj.js +0 -1
  1513. package/dist/showcase/assets/props.generated-Bg627Jai.json +0 -32829
  1514. package/dist/showcase/assets/quote-vjygm2-7.js +0 -1
  1515. package/dist/showcase/assets/receipt-CfMgwFPl.js +0 -1
  1516. package/dist/showcase/assets/refresh-cw-Tu5E_cGA.js +0 -1
  1517. package/dist/showcase/assets/resolveAriaLabelledBy-B6CR9UP2.js +0 -1
  1518. package/dist/showcase/assets/resolveValueLabel-CipUZh6i.js +0 -1
  1519. package/dist/showcase/assets/rich-text-editor-BMZUyuQX.js +0 -143
  1520. package/dist/showcase/assets/rich-text-editor-HwYIeWYW.js +0 -124
  1521. package/dist/showcase/assets/rotate-ccw-B4Wi4ws7.js +0 -1
  1522. package/dist/showcase/assets/scroll-area-CuB_woqF.js +0 -1
  1523. package/dist/showcase/assets/scroll-area-I4mSIpRq.js +0 -32
  1524. package/dist/showcase/assets/select-CF3cKjCo.js +0 -1
  1525. package/dist/showcase/assets/send-Blu_n6xl.js +0 -1
  1526. package/dist/showcase/assets/separator-9mrRf_DZ.js +0 -28
  1527. package/dist/showcase/assets/separator-DUKleOvU.js +0 -1
  1528. package/dist/showcase/assets/settings-DlKX-bZT.js +0 -1
  1529. package/dist/showcase/assets/sheet-CwcLVoF3.js +0 -1
  1530. package/dist/showcase/assets/shield-BD0Y8Jj3.js +0 -1
  1531. package/dist/showcase/assets/shield-alert-DNOTmkwG.js +0 -1
  1532. package/dist/showcase/assets/shield-check-Sbul0dUK.js +0 -1
  1533. package/dist/showcase/assets/shopping-bag-EDVpxI9n.js +0 -1
  1534. package/dist/showcase/assets/sidebar-JWZ88xw5.js +0 -1
  1535. package/dist/showcase/assets/sidebar.context-D3P7qppn.js +0 -1
  1536. package/dist/showcase/assets/skeleton-CIS1Kaas.js +0 -1
  1537. package/dist/showcase/assets/skeleton-CJCJDQFt.js +0 -29
  1538. package/dist/showcase/assets/smart-card-7szg_qSt.js +0 -1
  1539. package/dist/showcase/assets/sonner-DMHXr9Ce.js +0 -22
  1540. package/dist/showcase/assets/sortable.esm-DVuzVA1U.js +0 -5
  1541. package/dist/showcase/assets/sparkles-BEa1AgNq.js +0 -1
  1542. package/dist/showcase/assets/spinner-Bi-T9etI.js +0 -30
  1543. package/dist/showcase/assets/spinner-C77XIUVf.js +0 -1
  1544. package/dist/showcase/assets/spinner-DK9BAT6K.js +0 -49
  1545. package/dist/showcase/assets/square-pen-N0mq-vPu.js +0 -1
  1546. package/dist/showcase/assets/stacked-avatars-DORVEni2.js +0 -1
  1547. package/dist/showcase/assets/star-Dbtxr60S.js +0 -1
  1548. package/dist/showcase/assets/startOfDay-BJgxz4yq.js +0 -1
  1549. package/dist/showcase/assets/styles-CwW4IBUg.js +0 -1
  1550. package/dist/showcase/assets/switch-B4iRxZFU.js +0 -1
  1551. package/dist/showcase/assets/switch-B_rnbXwy.js +0 -1
  1552. package/dist/showcase/assets/table-BJ9HSK6H.js +0 -1
  1553. package/dist/showcase/assets/table-IB0MEYf4.js +0 -389
  1554. package/dist/showcase/assets/tabs-D02JL-Fa.js +0 -1
  1555. package/dist/showcase/assets/tabs-XpsVS3ff.js +0 -19
  1556. package/dist/showcase/assets/text-button-BWCgXGnr.js +0 -1
  1557. package/dist/showcase/assets/text-link-TzuDnSCF.js +0 -1
  1558. package/dist/showcase/assets/textarea-B7DUIiH_.js +0 -1
  1559. package/dist/showcase/assets/textarea-CV5gNzXf.js +0 -1
  1560. package/dist/showcase/assets/timelines-CF0UYhwm.js +0 -200
  1561. package/dist/showcase/assets/toggle-group-CK8mBx6E.js +0 -1
  1562. package/dist/showcase/assets/toggles-CqJSApnF.js +0 -71
  1563. package/dist/showcase/assets/toggles-group-v0JijMzG.js +0 -32
  1564. package/dist/showcase/assets/trash-2-_xF5j-Ya.js +0 -1
  1565. package/dist/showcase/assets/trending-up-BCzmjYzm.js +0 -1
  1566. package/dist/showcase/assets/truck-CryH-5dx.js +0 -1
  1567. package/dist/showcase/assets/typography-D3PFbRpb.js +0 -215
  1568. package/dist/showcase/assets/ui-badge-ByyFPLOB.js +0 -28
  1569. package/dist/showcase/assets/ui-card-DYLLiD89.js +0 -30
  1570. package/dist/showcase/assets/ui-table-DW4QIwxK.js +0 -42
  1571. package/dist/showcase/assets/upload-tray-ZdL_dzc0.js +0 -138
  1572. package/dist/showcase/assets/useAnchoredPopupScrollLock-AFPLx3SZ.js +0 -1
  1573. package/dist/showcase/assets/useCollapsiblePanel-CeHRY8U2.js +0 -1
  1574. package/dist/showcase/assets/useCompositeItem-C-1zP8zD.js +0 -1
  1575. package/dist/showcase/assets/useCompositeListItem-D4ugfKLB.js +0 -1
  1576. package/dist/showcase/assets/useControlled-Cpg8gDqb.js +0 -1
  1577. package/dist/showcase/assets/useLabelableId-CSxAHpU-.js +0 -1
  1578. package/dist/showcase/assets/useOpenInteractionType-BLV8Pa2n.js +0 -1
  1579. package/dist/showcase/assets/useRender-DparzvOu.js +0 -1
  1580. package/dist/showcase/assets/useTriggerFocusGuards-CrYLO2g5.js +0 -1
  1581. package/dist/showcase/assets/useValueChanged-DwgbaueK.js +0 -1
  1582. package/dist/showcase/assets/user-CGcV8Ppb.js +0 -1
  1583. package/dist/showcase/assets/user-plus-iOsntM6P.js +0 -1
  1584. package/dist/showcase/assets/users-DzgXeZbf.js +0 -1
  1585. package/dist/showcase/assets/valueToPercent-B5BHWU68.js +0 -1
  1586. package/dist/showcase/assets/vendor-profile-DbFPkGn9.js +0 -37
  1587. package/dist/showcase/assets/wrench-1Ra9xb3d.js +0 -1
  1588. package/dist/showcase/assets/x-CE8oevyh.js +0 -1
  1589. package/dist/showcase/assets/zap-se3n2YVD.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","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-sm\"\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-[160px]\">\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/15',\n fg: 'text-primary',\n dot: 'bg-primary',\n line: 'bg-primary/30',\n chipBg: 'bg-primary/10',\n chipFg: 'text-primary',\n },\n success: {\n bg: 'bg-success/15',\n fg: 'text-success',\n dot: 'bg-success',\n line: 'bg-success/30',\n chipBg: 'bg-success/15',\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/15',\n fg: 'text-destructive',\n dot: 'bg-destructive',\n line: 'bg-destructive/30',\n chipBg: 'bg-destructive/15',\n chipFg: 'text-destructive',\n },\n info: {\n bg: 'bg-info/15',\n fg: 'text-info',\n dot: 'bg-info',\n line: 'bg-info/30',\n chipBg: 'bg-info/15',\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 { 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-3 shrink-0', palette.fg)} />\n <Text tag=\"span\" size=\"xs\" 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=\"border-l border-current/20 pl-1.5 ml-0.5\"\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-1\"\n >\n {config.badge.label}\n </Badge>\n )}\n </>\n );\n\n const chipClass = cn(\n 'inline-flex items-center gap-1 rounded-full px-2 py-0.5 align-baseline',\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 onClick={(e) => {\n e.stopPropagation();\n onClick?.();\n }}\n className={chipClass}\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 { 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 onClick={(e) => {\n e.stopPropagation();\n onActorClick(actor, activity);\n }}\n className=\"font-semibold text-foreground underline-offset-2 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded\"\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\n return (\n <div\n className={cn(\n 'relative flex gap-3',\n interactive && 'cursor-pointer rounded-md hover:bg-muted/40',\n )}\n onClick={interactive ? () => onActivityClick?.(activity) : undefined}\n role={interactive ? 'button' : undefined}\n tabIndex={interactive ? 0 : undefined}\n onKeyDown={\n interactive\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-4' : density === 'compact' ? 'pb-2.5' : 'pb-3'),\n )}\n >\n <div className=\"flex flex-col gap-1 sm:flex-row sm:items-start sm:justify-between sm:gap-3\">\n <div className=\"flex min-w-0 flex-wrap items-center gap-x-1.5 gap-y-1\">\n <Text tag=\"span\" 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-xs\"\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-1\">\n {!!relativeTime && (\n <Text\n size=\"xs\"\n type=\"secondary\"\n className=\"whitespace-nowrap tabular-nums pt-0.5\"\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=\"xs\" type=\"secondary\" className=\"mt-1\">\n {activity.description}\n </Text>\n )}\n\n {!!showRichBody && hasMetadata && activity.metadata && (\n <div className=\"mt-2 flex flex-wrap gap-x-3 gap-y-1\">\n {activity.metadata.map((m) => (\n <Text key={m.label} size=\"xs\" type=\"secondary\">\n <Text tag=\"span\" size=\"xs\" type=\"discrete\">\n {m.label}:{' '}\n </Text>\n {m.value}\n </Text>\n ))}\n </div>\n )}\n\n {!!showRichBody && hasResources && activity.resources && (\n <div className=\"mt-2 flex flex-wrap gap-1.5\">\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-2\">\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 { useDatesConfig } from '@/lib/ui-provider';\nimport { cn } from '@/lib/utils';\n\nimport {\n defaultActivityEventConfig,\n resolveEventConfig,\n} from './activities.config';\nimport {\n defaultActivitiesStrings,\n type ActivitiesStrings,\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: ActivitiesStrings = useMemo<ActivitiesStrings>(\n () => ({\n ...defaultActivitiesStrings,\n ...stringsProp,\n sources: {\n ...defaultActivitiesStrings.sources,\n ...(stringsProp?.sources ?? {}),\n },\n events: {\n ...defaultActivitiesStrings.events,\n ...(stringsProp?.events ?? {}),\n },\n }),\n [stringsProp],\n );\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('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('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';\n\nimport { ActivityFeed } from '../activities-feed';\nimport {\n defaultActivitiesStrings,\n type ActivitiesStrings,\n} from '../activities.strings';\nimport type { ActivityFeedCardProps } from '../activities.types';\n\nexport function ActivityFeedCard<TData = unknown>({\n title,\n titleSuffix,\n description,\n padding = 'base',\n composerSlot,\n className,\n strings: stringsProp,\n slots,\n ...feedProps\n}: ActivityFeedCardProps<TData>) {\n const strings: ActivitiesStrings = {\n ...defaultActivitiesStrings,\n ...stringsProp,\n sources: {\n ...defaultActivitiesStrings.sources,\n ...(stringsProp?.sources ?? {}),\n },\n events: {\n ...defaultActivitiesStrings.events,\n ...(stringsProp?.events ?? {}),\n },\n };\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.js","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-sm\"\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-[160px]\">\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-3 shrink-0', palette.fg)} />\n <Text tag=\"span\" size=\"xs\" 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=\"border-l border-current/20 pl-1.5 ml-0.5\"\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-1\"\n >\n {config.badge.label}\n </Badge>\n )}\n </>\n );\n\n const chipClass = cn(\n 'inline-flex items-center gap-1 rounded-full px-2 py-0.5 align-baseline',\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=\"xs\"\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=\"xs\"\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-3',\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-4' : density === 'compact' ? 'pb-2.5' : 'pb-3'),\n )}\n >\n <div className=\"flex flex-col gap-1 sm:flex-row sm:items-start sm:justify-between sm:gap-3\">\n <div className=\"flex min-w-0 flex-wrap items-center gap-x-1.5 gap-y-1\">\n <Text tag=\"span\" 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-xs\"\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-1\">\n {!!relativeTime && (\n <Text\n size=\"xs\"\n type=\"secondary\"\n className=\"whitespace-nowrap tabular-nums pt-0.5\"\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=\"xs\" type=\"secondary\" className=\"mt-1\">\n {activity.description}\n </Text>\n )}\n\n {!!showRichBody && hasMetadata && activity.metadata && (\n <div className=\"mt-2 flex flex-wrap gap-x-3 gap-y-1\">\n {activity.metadata.map((m) => (\n <Text key={m.label} size=\"xs\" type=\"secondary\">\n <Text tag=\"span\" size=\"xs\" type=\"discrete\">\n {m.label}:{' '}\n </Text>\n {m.value}\n </Text>\n ))}\n </div>\n )}\n\n {!!showRichBody && hasResources && activity.resources && (\n <div className=\"mt-2 flex flex-wrap gap-1.5\">\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-2\">\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 = 'base',\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 +1 @@
1
- {"version":3,"file":"activities-feed-card.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/activities/partials/activities-feed-card.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEjE,wBAAgB,gBAAgB,CAAC,KAAK,GAAG,OAAO,EAAE,EAC9C,KAAK,EACL,WAAW,EACX,WAAW,EACX,OAAgB,EAChB,YAAY,EACZ,SAAS,EACT,OAAO,EAAE,WAAW,EACpB,KAAK,EACL,GAAG,SAAS,EACf,EAAE,qBAAqB,CAAC,KAAK,CAAC,+BAmC9B;yBA7Ce,gBAAgB"}
1
+ {"version":3,"file":"activities-feed-card.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/activities/partials/activities-feed-card.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEjE,wBAAgB,gBAAgB,CAAC,KAAK,GAAG,OAAO,EAAE,EAC9C,KAAK,EACL,WAAW,EACX,WAAW,EACX,OAAgB,EAChB,YAAY,EACZ,SAAS,EACT,OAAO,EAAE,WAAW,EACpB,KAAK,EACL,GAAG,SAAS,EACf,EAAE,qBAAqB,CAAC,KAAK,CAAC,+BAwB9B;yBAlCe,gBAAgB"}
@@ -1 +1 @@
1
- {"version":3,"file":"activity-headline.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/activities/partials/activity-headline.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACR,aAAa,EAEb,YAAY,EACZ,sBAAsB,EACtB,mBAAmB,EACtB,MAAM,qBAAqB,CAAC;AAI7B,MAAM,WAAW,qBAAqB,CAAC,KAAK,GAAG,OAAO;IAClD,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IAC7E,eAAe,CAAC,EAAE,CACd,QAAQ,EAAE,mBAAmB,EAC7B,MAAM,EAAE,sBAAsB,GAAG,SAAS,EAC1C,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,KAC5B,IAAI,CAAC;IACV,kDAAkD;IAClD,iBAAiB,CAAC,EAAE,CAChB,GAAG,EAAE,mBAAmB,KACvB,sBAAsB,GAAG,SAAS,CAAC;CAC3C;AAoLD,wBAAgB,gBAAgB,CAAC,KAAK,GAAG,OAAO,EAC5C,KAAK,EAAE,qBAAqB,CAAC,KAAK,CAAC,+BAWtC"}
1
+ {"version":3,"file":"activity-headline.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/activities/partials/activity-headline.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACR,aAAa,EAEb,YAAY,EACZ,sBAAsB,EACtB,mBAAmB,EACtB,MAAM,qBAAqB,CAAC;AAI7B,MAAM,WAAW,qBAAqB,CAAC,KAAK,GAAG,OAAO;IAClD,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IAC7E,eAAe,CAAC,EAAE,CACd,QAAQ,EAAE,mBAAmB,EAC7B,MAAM,EAAE,sBAAsB,GAAG,SAAS,EAC1C,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,KAC5B,IAAI,CAAC;IACV,kDAAkD;IAClD,iBAAiB,CAAC,EAAE,CAChB,GAAG,EAAE,mBAAmB,KACvB,sBAAsB,GAAG,SAAS,CAAC;CAC3C;AAuLD,wBAAgB,gBAAgB,CAAC,KAAK,GAAG,OAAO,EAC5C,KAAK,EAAE,qBAAqB,CAAC,KAAK,CAAC,+BAWtC"}
@@ -1 +1 @@
1
- {"version":3,"file":"activity-resource-tag.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/activities/partials/activity-resource-tag.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACR,sBAAsB,EACtB,mBAAmB,EAEtB,MAAM,qBAAqB,CAAC;AAI7B,MAAM,WAAW,wBAAwB;IACrC,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,wBAAgB,mBAAmB,CAAC,EAChC,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,OAAO,GACV,EAAE,wBAAwB,+BAgE1B"}
1
+ {"version":3,"file":"activity-resource-tag.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/activities/partials/activity-resource-tag.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACR,sBAAsB,EACtB,mBAAmB,EAEtB,MAAM,qBAAqB,CAAC;AAI7B,MAAM,WAAW,wBAAwB;IACrC,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,wBAAgB,mBAAmB,CAAC,EAChC,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,OAAO,GACV,EAAE,wBAAwB,+BAmE1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"activity-row.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/activities/partials/activity-row.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOvC,OAAO,KAAK,EACR,cAAc,EACd,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,sBAAsB,EACtB,mBAAmB,EACnB,YAAY,EACf,MAAM,qBAAqB,CAAC;AAQ7B,MAAM,WAAW,gBAAgB,CAAC,KAAK,GAAG,OAAO;IAC7C,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,EAAE,eAAe,CAAC;IACzB,WAAW,EAAE,mBAAmB,CAAC;IACjC,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,SAAS,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;IAC1C,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IAC1D,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IAC7E,eAAe,CAAC,EAAE,CACd,QAAQ,EAAE,mBAAmB,EAC7B,MAAM,EAAE,sBAAsB,GAAG,SAAS,EAC1C,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,KAC5B,IAAI,CAAC;IACV,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IACrE,iBAAiB,CAAC,EAAE,CAChB,GAAG,EAAE,mBAAmB,KACvB,sBAAsB,GAAG,SAAS,CAAC;IACxC,2CAA2C;IAC3C,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,yCAAyC;IACzC,cAAc,CAAC,EAAE,SAAS,CAAC;CAC9B;AAED,wBAAgB,WAAW,CAAC,KAAK,GAAG,OAAO,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,+BAuM1E"}
1
+ {"version":3,"file":"activity-row.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/activities/partials/activity-row.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOvC,OAAO,KAAK,EACR,cAAc,EACd,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,sBAAsB,EACtB,mBAAmB,EACnB,YAAY,EACf,MAAM,qBAAqB,CAAC;AAQ7B,MAAM,WAAW,gBAAgB,CAAC,KAAK,GAAG,OAAO;IAC7C,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,EAAE,eAAe,CAAC;IACzB,WAAW,EAAE,mBAAmB,CAAC;IACjC,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,SAAS,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;IAC1C,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IAC1D,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IAC7E,eAAe,CAAC,EAAE,CACd,QAAQ,EAAE,mBAAmB,EAC7B,MAAM,EAAE,sBAAsB,GAAG,SAAS,EAC1C,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,KAC5B,IAAI,CAAC;IACV,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IACrE,iBAAiB,CAAC,EAAE,CAChB,GAAG,EAAE,mBAAmB,KACvB,sBAAsB,GAAG,SAAS,CAAC;IACxC,2CAA2C;IAC3C,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,yCAAyC;IACzC,cAAc,CAAC,EAAE,SAAS,CAAC;CAC9B;AAED,wBAAgB,WAAW,CAAC,KAAK,GAAG,OAAO,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,+BA+M1E"}
@@ -1,4 +1,5 @@
1
1
  import { ReactNode } from 'react';
2
+ import { StringsProp } from '../../../lib/strings';
2
3
  import { AiChatStrings } from './ai-chat.strings';
3
4
  import { AiChatAgent, AiChatAttachment, AiChatMessage as AiChatMessageType, AiChatQueueItem, AiChatSlots, AiChatSubmitValues, AiChatSuggestion } from './ai-chat.types';
4
5
  export interface AiChatProps {
@@ -47,7 +48,7 @@ export interface AiChatProps {
47
48
  /** Slot map for replacing default surfaces. */
48
49
  slots?: AiChatSlots;
49
50
  /** String overrides. */
50
- strings?: Partial<AiChatStrings>;
51
+ strings?: StringsProp<AiChatStrings>;
51
52
  className?: string;
52
53
  }
53
54
  export declare function AiChat({ messages, inputValue, onInputChange, onSubmit, onStop, streaming, disabled, attachments, onRemoveAttachment, onAttach, showAttach, agent, headerActions, queue, onCancelQueueItem, suggestions, onPickSuggestion, onMessageCopy, onMessageRegenerate, onAttachmentOpen, disableAutoScroll, slots, strings: stringsProp, className, }: AiChatProps): import("react").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"ai-chat.d.ts","sourceRoot":"","sources":["../../../../src/components/features/ai-chat/ai-chat.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAyB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAM9D,OAAO,EAEN,KAAK,aAAa,EAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACX,WAAW,EACX,gBAAgB,EAChB,aAAa,IAAI,iBAAiB,EAClC,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,MAAM,iBAAiB,CAAC;AAUzB,MAAM,WAAW,WAAW;IAC3B,oDAAoD;IACpD,QAAQ,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAE3C,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAChD,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,oEAAoE;IACpE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,oCAAoC;IACpC,WAAW,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC9C,kCAAkC;IAClC,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,4FAA4F;IAC5F,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,8DAA8D;IAC9D,aAAa,CAAC,EAAE,SAAS,CAAC;IAE1B,wDAAwD;IACxD,KAAK,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IACvC,2EAA2E;IAC3E,iBAAiB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAEzC,2DAA2D;IAC3D,WAAW,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC9C,kCAAkC;IAClC,gBAAgB,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAEjD,iCAAiC;IACjC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACrD,wDAAwD;IACxD,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC3D,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAErE,wDAAwD;IACxD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,+CAA+C;IAC/C,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,wBAAwB;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,MAAM,CAAC,EACtB,QAAQ,EACR,UAAU,EACV,aAAa,EACb,QAAQ,EACR,MAAM,EACN,SAAiB,EACjB,QAAgB,EAChB,WAAgB,EAChB,kBAAkB,EAClB,QAAQ,EACR,UAAU,EACV,KAAK,EACL,aAAa,EACb,KAAU,EACV,iBAAiB,EACjB,WAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,EACL,OAAO,EAAE,WAAW,EACpB,SAAS,GACT,EAAE,WAAW,+BA0Jb;yBAnLe,MAAM"}
1
+ {"version":3,"file":"ai-chat.d.ts","sourceRoot":"","sources":["../../../../src/components/features/ai-chat/ai-chat.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../lib/strings.cjs"),t=require("../../../lib/utils.cjs"),n=require("../../../_shared/text-DzKt9cyb.cjs"),r=require("../../../_shared/heading-C7mNh03X.cjs"),i=require("../../../_shared/icon-badge-BAWl1oOe.cjs"),a=require("../../../_shared/badge-kS_XtN-z.cjs"),o=require("../../../_shared/button-LZWDn-aU.cjs"),s=require("../../../_shared/textarea-BAKapsLQ.cjs"),c=require("../../../_shared/ai-artifact-D1dBeEz1.cjs");let l=require("react"),u=require("react/jsx-runtime"),d=require("lucide-react");var f={placeholder:`Ask anything…`,attachAria:`Attach files`,submitAria:`Send message`,stopAria:`Stop generating`,modelPickerAria:`Choose model`,hint:`Press {{submitKey}} to send · {{newlineKey}} for newline`},p={scrollToBottom:`Jump to latest`,scrollToBottomAria:`Scroll to bottom`},m={header:`In queue`,cancelAria:`Remove from queue`,queuedLabel:`Queued`,runningLabel:`Running`},h={header:`Try`},g={pending:`Thinking…`},_={prompt:f,conversation:p,queue:m,suggestions:h,message:g,emptyTitle:`Start a conversation`,emptyDescription:`Ask a question, share context, or attach a file to get going.`};function v(e,t){return e.replace(/\{\{\s*(\w+)\s*\}\}/g,(e,n)=>{let r=t[n];return r===void 0?e:String(r)})}function y({attachments:e,onRemove:n,onOpen:r,className:i}){return e.length===0?null:(0,u.jsx)(`div`,{className:t.cn(`flex flex-wrap gap-2`,i),children:e.map(e=>(0,u.jsx)(c.h,{name:e.name,meta:e.meta,kind:e.kind,icon:e.icon,thumbnailUrl:e.thumbnailUrl,progress:e.progress,errored:e.errored,onOpen:r?()=>r(e):void 0,onRemove:n?()=>n(e.id):void 0},e.id))})}y.displayName=`AiChatAttachmentsStrip`;function b({threshold:e=80,dependency:t,disableAutoScroll:n=!1}={}){let r=(0,l.useRef)(null),i=(0,l.useRef)(null),[a,o]=(0,l.useState)(!0),s=(0,l.useCallback)((e=`smooth`)=>{i.current?.scrollIntoView({behavior:e,block:`end`})},[]);return(0,l.useEffect)(()=>{let t=r.current;if(!t)return;let n=()=>{o(t.scrollHeight-t.clientHeight-t.scrollTop<=e)};return n(),t.addEventListener(`scroll`,n,{passive:!0}),()=>t.removeEventListener(`scroll`,n)},[e]),(0,l.useEffect)(()=>{if(n||!a)return;let e=window.requestAnimationFrame(()=>s(`auto`));return()=>window.cancelAnimationFrame(e)},[t,n]),{containerRef:r,endRef:i,isAtBottom:a,scrollToBottom:s}}function x({messages:r,renderMessage:i,intro:a,footer:s,empty:c,disableAutoScroll:l,className:f,strings:m}){let h=e.useStrings(p,m),{containerRef:g,endRef:_,isAtBottom:v,scrollToBottom:y}=b({dependency:r.length,disableAutoScroll:l}),x=r.length===0&&!a;return(0,u.jsxs)(`div`,{className:t.cn(`relative flex h-full min-h-0 flex-col`,f),children:[(0,u.jsxs)(`div`,{ref:g,className:`flex-1 overflow-y-auto px-3 py-4 sm:px-4`,children:[!!a&&(0,u.jsx)(`div`,{className:`mb-4`,children:a}),x?c??(0,u.jsx)(`div`,{className:`flex h-full items-center justify-center px-6 py-12`,children:(0,u.jsx)(n.t,{type:`secondary`,children:`No messages yet.`})}):(0,u.jsx)(`ol`,{className:`space-y-4`,children:r.map((e,t)=>(0,u.jsx)(`li`,{children:i(e,{isLast:t===r.length-1,index:t})},e.id))}),!!s&&(0,u.jsx)(`div`,{className:`mt-4`,children:s}),(0,u.jsx)(`div`,{ref:_,"aria-hidden":!0,className:`h-px`})]}),!v&&(0,u.jsx)(`div`,{className:`pointer-events-none absolute bottom-3 left-1/2 -translate-x-1/2`,children:(0,u.jsxs)(o.t,{type:`button`,variant:`secondary`,buttonStyle:`solid`,"aria-label":h.scrollToBottomAria,onClick:()=>y(`smooth`),className:t.cn(`pointer-events-auto rounded-full shadow-md`,`border border-border/60`),children:[(0,u.jsx)(d.ArrowDown,{className:`size-3.5`}),h.scrollToBottom]})})]})}x.displayName=`AiChatConversation`;function S({title:e=`Start a conversation`,description:a,icon:o=d.Sparkles,below:s,className:c}){return(0,u.jsxs)(`div`,{className:t.cn(`flex h-full flex-col items-center justify-center gap-3 px-4 py-10 text-center`,c),children:[(0,u.jsx)(i.t,{icon:o,tone:`primary`,size:`md`,shape:`square`}),(0,u.jsxs)(`div`,{className:`max-w-md space-y-1`,children:[(0,u.jsx)(r.t,{tag:`h4`,children:e}),!!a&&(0,u.jsx)(n.t,{type:`secondary`,children:a})]}),!!s&&(0,u.jsx)(`div`,{className:`mt-4 w-full max-w-2xl`,children:s})]})}S.displayName=`AiChatEmptyState`;function C({message:n,onCopy:r,onRegenerate:i,onAttachmentOpen:a,className:o,strings:s}){let l=e.useStrings(g,s),d=[],f=[];for(let e of n.parts)e.type===`text`?d.push(e):f.push(e);let p=d.map(e=>e.type===`text`?e.plain??T(e.content):``).filter(Boolean).join(`
2
- `)||void 0,m=n.pending?(0,u.jsx)(c.y,{children:l.pending}):d.length===0&&f.length>0?null:(0,u.jsx)(`div`,{className:`space-y-2`,children:d.map((e,t)=>e.type===`text`?(0,u.jsx)(`div`,{className:`whitespace-pre-wrap`,children:e.content},t):null)});return(0,u.jsxs)(`div`,{className:t.cn(`space-y-2`,o),children:[(m!==null||n.pending)&&(0,u.jsx)(c.S,{role:n.role,avatar:n.avatar,authorName:n.authorName,timestamp:n.timestamp,plainText:p,loading:n.loading,onCopy:p?r??(()=>void 0):void 0,onRegenerate:i,children:m}),f.length>0&&(0,u.jsx)(`div`,{className:t.cn(`space-y-2`,n.role===`user`?`pr-9 sm:pl-12`:`pl-9 sm:pr-12`),children:f.map((e,t)=>(0,u.jsx)(w,{part:e,onAttachmentOpen:a},t))}),!!n.trailing&&(0,u.jsx)(`div`,{className:t.cn(n.role===`user`?`pr-9 sm:pl-12`:`pl-9 sm:pr-12`),children:n.trailing})]})}C.displayName=`AiChatMessage`;function w({part:e,onAttachmentOpen:t}){switch(e.type){case`text`:return(0,u.jsx)(n.t,{children:e.content});case`reasoning`:return(0,u.jsx)(c.s,{streaming:e.streaming,durationSeconds:e.durationSeconds,children:e.content});case`chain-of-thought`:return(0,u.jsx)(c.a,{steps:e.steps,streaming:e.streaming});case`tool`:return(0,u.jsx)(c.b,{name:e.name,status:e.status,icon:e.icon,args:e.args,result:e.result,error:e.error,durationMs:e.durationMs,defaultExpanded:e.defaultExpanded});case`code`:return(0,u.jsx)(c._,{code:e.code,language:e.language,filename:e.filename,showLineNumbers:e.showLineNumbers,highlightLines:e.highlightLines});case`attachments`:return(0,u.jsx)(y,{attachments:e.items,onOpen:t?e=>t(e.id):void 0});case`sources`:return(0,u.jsx)(c.l,{sources:e.items,variant:e.variant,defaultExpanded:e.defaultExpanded});case`task`:return(0,u.jsx)(c.r,{task:e.task});case`artifact`:return(0,u.jsx)(c.t,{title:e.title,subtitle:e.subtitle,icon:e.icon,copyText:e.copyText,actions:e.actions,onOpen:e.onOpen,onDownload:e.onDownload,children:e.body});case`confirmation`:return(0,u.jsx)(c.d,{title:e.title,description:e.description,tone:e.tone,status:e.status,details:e.details,onApprove:e.onApprove,onReject:e.onReject});case`custom`:return(0,u.jsx)(u.Fragment,{children:e.render()});default:return null}}function T(e){return typeof e==`string`||typeof e==`number`?String(e):Array.isArray(e)?e.map(T).join(``):``}function E({value:r,onChange:i,onSubmit:a,onStop:c,streaming:p=!1,disabled:m=!1,attachments:h=[],onRemoveAttachment:g,onAttach:_,showAttach:b,leadingActions:x,trailingActions:S,hideHint:C=!1,minRows:w=1,maxRows:T=8,autoFocus:E=!1,className:D,strings:O}){let k=e.useStrings(f,O),A=(0,l.useRef)(null),j=!p&&!m&&(r.trim().length>0||h.length>0),M=(0,l.useCallback)(()=>{j&&a?.({text:r,attachments:h})},[j,a,r,h]),N=(0,l.useCallback)(e=>{e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&(e.preventDefault(),M())},[M]),P=b??!!_,F=typeof navigator<`u`&&navigator.platform?.toLowerCase().includes(`mac`)?`⌘↩`:`↩`;return(0,u.jsxs)(`div`,{className:t.cn(`rounded-xl border border-border bg-card transition-colors duration-150`,`focus-within:border-foreground/20 focus-within:ring-2 focus-within:ring-ring/30`,m&&`opacity-60 pointer-events-none`,D),children:[h.length>0&&(0,u.jsx)(`div`,{className:`border-b border-border/60 p-2`,children:(0,u.jsx)(y,{attachments:h,onRemove:g})}),(0,u.jsx)(s.t,{ref:A,value:r,onChange:e=>i(e.target.value),onKeyDown:N,placeholder:k.placeholder,autoResize:!0,minRows:w,maxRows:T,autoFocus:E,disabled:m,className:t.cn(`!border-0 !bg-transparent !shadow-none focus-visible:!ring-0 resize-none px-3 py-2.5`)}),(0,u.jsxs)(`div`,{className:`flex items-center gap-1 border-t border-border/60 px-2 py-1.5`,children:[x,P&&(0,u.jsx)(o.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-sm`,"aria-label":k.attachAria,onClick:_,disabled:m,children:(0,u.jsx)(d.Paperclip,{className:`size-4`})}),(0,u.jsxs)(`div`,{className:`ml-auto flex items-center gap-1`,children:[S,p?(0,u.jsx)(o.t,{type:`button`,variant:`secondary`,buttonStyle:`solid`,size:`icon-sm`,"aria-label":k.stopAria,onClick:c,children:(0,u.jsx)(d.Square,{className:`size-3.5 fill-current`})}):(0,u.jsx)(o.t,{type:`button`,variant:`primary`,buttonStyle:`solid`,size:`icon-sm`,"aria-label":k.submitAria,onClick:M,disabled:!j,children:(0,u.jsx)(d.ArrowUp,{className:`size-4`})})]})]}),!C&&(0,u.jsx)(`div`,{className:`px-3 pb-2`,children:(0,u.jsx)(n.t,{size:`xxs`,type:`discrete`,children:v(k.hint,{submitKey:F,newlineKey:`⇧↩`})})})]})}E.displayName=`AiChatPromptInput`;function D({items:r,hideHeader:i=!1,onCancel:s,className:c,strings:l}){let f=e.useStrings(m,l);return r.length===0?null:(0,u.jsxs)(`div`,{className:t.cn(`rounded-lg border border-border/60 bg-muted/20 px-2.5 py-2`,c),children:[!i&&(0,u.jsxs)(n.t,{size:`xxs`,type:`secondary`,weight:`medium`,className:`mb-1.5 px-1 uppercase tracking-wider`,children:[f.header,` · `,r.length]}),(0,u.jsx)(`ul`,{className:`space-y-1`,children:r.map(e=>{let t=e.status??`queued`;return(0,u.jsxs)(`li`,{className:`flex items-center gap-2 rounded-md bg-card px-2 py-1.5`,children:[t===`running`?(0,u.jsx)(d.Loader2,{className:`size-3.5 shrink-0 animate-spin text-primary`}):(0,u.jsx)(`span`,{"aria-hidden":!0,className:`size-2 shrink-0 rounded-full bg-muted-foreground/50`}),(0,u.jsx)(n.t,{size:`xs`,className:`flex-1 truncate`,children:e.label}),(0,u.jsx)(a.t,{variant:t===`running`?`primary`:`secondary`,children:t===`running`?f.runningLabel:f.queuedLabel}),(!!e.onCancel||!!s)&&(0,u.jsx)(o.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-xs`,"aria-label":f.cancelAria,onClick:()=>{e.onCancel?.(),s?.(e.id)},children:(0,u.jsx)(d.X,{className:`size-3.5`})})]},e.id)})})]})}D.displayName=`AiChatQueue`;function O({suggestions:r,onPick:i,hideHeader:a=!1,className:o,strings:s}){let c=e.useStrings(h,s);return r.length===0?null:(0,u.jsxs)(`div`,{className:t.cn(`flex items-center gap-2`,o),children:[!a&&(0,u.jsxs)(`div`,{className:`inline-flex shrink-0 items-center gap-1.5`,children:[(0,u.jsx)(d.Sparkles,{className:`size-3.5 text-muted-foreground`}),(0,u.jsx)(n.t,{size:`xxs`,type:`secondary`,weight:`medium`,className:`uppercase tracking-wider`,children:c.header})]}),(0,u.jsx)(`div`,{className:`-mx-1 flex flex-1 items-center gap-1.5 overflow-x-auto px-1 py-0.5 [scrollbar-width:none] [&::-webkit-scrollbar]:hidden`,children:r.map(e=>{let r=e.icon;return(0,u.jsxs)(`button`,{type:`button`,onClick:()=>i?.(e),className:t.cn(`inline-flex shrink-0 items-center gap-1.5 rounded-full border border-border/60 bg-card px-2.5 py-1`,`transition-[border-color,background] duration-150`,`hover:border-foreground/20 hover:bg-muted/40`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40`),children:[!!r&&(0,u.jsx)(r,{className:`size-3 text-muted-foreground`}),(0,u.jsx)(n.t,{tag:`span`,size:`xs`,weight:`medium`,children:e.label})]},e.id)})})]})}O.displayName=`AiChatSuggestionsRow`;function k({messages:r,inputValue:i,onInputChange:a,onSubmit:o,onStop:s,streaming:d=!1,disabled:f=!1,attachments:p=[],onRemoveAttachment:m,onAttach:h,showAttach:g,agent:v,headerActions:y,queue:b=[],onCancelQueueItem:w,suggestions:T=[],onPickSuggestion:k,onMessageCopy:A,onMessageRegenerate:j,onAttachmentOpen:M,disableAutoScroll:N,slots:P,strings:F,className:I}){let L=e.useStrings(_,F),[,R]=(0,l.useState)(0),z=(0,l.useCallback)((e,t)=>P?.renderMessage?P.renderMessage(e,t):(0,u.jsx)(C,{className:`ai-chat--component`,message:e,strings:L.message,onCopy:A?()=>A(e):void 0,onRegenerate:j?()=>j(e):void 0,onAttachmentOpen:M?t=>M(e.id,t):void 0}),[M,A,j,P,L.message]),B=P?.header??(v?(0,u.jsxs)(`div`,{className:`flex items-center gap-3 border-b border-border bg-card px-3 py-2 sm:px-4`,children:[(0,u.jsx)(c.p,{name:v.name,icon:v.icon,avatar:v.avatar,subtitle:v.subtitle,tone:v.tone,status:v.status,variant:`inline`}),!!y&&(0,u.jsx)(`div`,{className:`ml-auto flex items-center gap-1`,children:y})]}):null),V=P?.empty??(r.length===0?(0,u.jsx)(S,{title:L.emptyTitle,description:L.emptyDescription}):null),H=P?.queue??(b.length>0?(0,u.jsx)(D,{items:b,onCancel:w,strings:L.queue}):null),U=P?.suggestions??(T.length>0?(0,u.jsx)(O,{suggestions:T,onPick:k,strings:L.suggestions}):null),W=P?.input??(0,u.jsx)(E,{value:i,onChange:a,onSubmit:e=>{o?.(e),R(e=>e+1)},onStop:s,streaming:d,disabled:f,attachments:p,onRemoveAttachment:m,onAttach:h,showAttach:g,strings:L.prompt});return(0,u.jsxs)(`div`,{className:t.cn(`flex h-full flex-col overflow-hidden rounded-xl border border-border bg-background`,I),children:[B,(0,u.jsx)(x,{messages:r,renderMessage:z,intro:P?.intro,footer:P?.belowMessages,empty:V,disableAutoScroll:N,strings:L.conversation}),(H||U||W)&&(0,u.jsxs)(`div`,{className:`border-t border-border bg-card/60`,children:[H&&(0,u.jsx)(`div`,{className:`px-3 pb-2 pt-3 sm:px-4`,children:H}),U&&(0,u.jsx)(`div`,{className:t.cn(`px-3 sm:px-4`,!H&&`pt-3`,`pb-2`),children:U}),W&&(0,u.jsx)(`div`,{className:`px-3 pb-3 pt-2 sm:px-4 sm:pb-4`,children:W})]}),f&&(0,u.jsx)(n.t,{className:`sr-only`,"aria-live":`polite`,children:`Chat is disabled`})]})}k.displayName=`AiChat`,exports.AiChat=k,exports.AiChatAttachmentsStrip=y,exports.AiChatConversation=x,exports.AiChatEmptyState=S,exports.AiChatMessageView=C,exports.AiChatPromptInput=E,exports.AiChatQueue=D,exports.AiChatSuggestionsRow=O,exports.defaultAiChatConversationStrings=p,exports.defaultAiChatMessageStrings=g,exports.defaultAiChatPromptInputStrings=f,exports.defaultAiChatQueueStrings=m,exports.defaultAiChatStrings=_,exports.defaultAiChatSuggestionsStrings=h,exports.interpolateString=v,exports.useAiChatScroll=b;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../lib/strings.cjs"),t=require("../../../lib/utils.cjs"),n=require("../../../_shared/heading-0DYCOrgC.cjs"),r=require("../../../_shared/icon-badge-BAWl1oOe.cjs"),i=require("../../../_shared/badge--o9wFHB_.cjs"),a=require("../../../_shared/button-C1qc97U1.cjs"),o=require("../../../_shared/textarea-C4SOrh0z.cjs"),s=require("../../../_shared/ai-artifact-CY1Jf9gM.cjs");let c=require("react"),l=require("react/jsx-runtime"),u=require("lucide-react");var d={placeholder:`Ask anything…`,attachAria:`Attach files`,submitAria:`Send message`,stopAria:`Stop generating`,modelPickerAria:`Choose model`,hint:`Press {{submitKey}} to send · {{newlineKey}} for newline`},f={scrollToBottom:`Jump to latest`,scrollToBottomAria:`Scroll to bottom`},p={header:`In queue`,cancelAria:`Remove from queue`,queuedLabel:`Queued`,runningLabel:`Running`},m={header:`Try`},h={pending:`Thinking…`},g={prompt:d,conversation:f,queue:p,suggestions:m,message:h,emptyTitle:`Start a conversation`,emptyDescription:`Ask a question, share context, or attach a file to get going.`};function _(e,t){return e.replace(/\{\{\s*(\w+)\s*\}\}/g,(e,n)=>{let r=t[n];return r===void 0?e:String(r)})}function v({attachments:e,onRemove:n,onOpen:r,className:i}){return e.length===0?null:(0,l.jsx)(`div`,{className:t.cn(`flex flex-wrap gap-2`,i),children:e.map(e=>(0,l.jsx)(s.h,{name:e.name,meta:e.meta,kind:e.kind,icon:e.icon,thumbnailUrl:e.thumbnailUrl,progress:e.progress,errored:e.errored,onOpen:r?()=>r(e):void 0,onRemove:n?()=>n(e.id):void 0},e.id))})}v.displayName=`AiChatAttachmentsStrip`;function y({threshold:e=80,dependency:t,disableAutoScroll:n=!1}={}){let r=(0,c.useRef)(null),i=(0,c.useRef)(null),[a,o]=(0,c.useState)(!0),s=(0,c.useCallback)((e=`smooth`)=>{i.current?.scrollIntoView({behavior:e,block:`end`})},[]);return(0,c.useEffect)(()=>{let t=r.current;if(!t)return;let n=()=>{o(t.scrollHeight-t.clientHeight-t.scrollTop<=e)};return n(),t.addEventListener(`scroll`,n,{passive:!0}),()=>t.removeEventListener(`scroll`,n)},[e]),(0,c.useEffect)(()=>{if(n||!a)return;let e=window.requestAnimationFrame(()=>s(`auto`));return()=>window.cancelAnimationFrame(e)},[t,n]),{containerRef:r,endRef:i,isAtBottom:a,scrollToBottom:s}}function b({messages:r,renderMessage:i,intro:o,footer:s,empty:c,disableAutoScroll:d,className:p,strings:m}){let h=e.useStrings(f,m),{containerRef:g,endRef:_,isAtBottom:v,scrollToBottom:b}=y({dependency:r.length,disableAutoScroll:d}),x=r.length===0&&!o;return(0,l.jsxs)(`div`,{className:t.cn(`relative flex h-full min-h-0 flex-col`,p),children:[(0,l.jsxs)(`div`,{ref:g,className:`flex-1 overflow-y-auto px-3 py-4 sm:px-4`,children:[!!o&&(0,l.jsx)(`div`,{className:`mb-4`,children:o}),x?c??(0,l.jsx)(`div`,{className:`flex h-full items-center justify-center px-6 py-12`,children:(0,l.jsx)(n.n,{type:`secondary`,children:`No messages yet.`})}):(0,l.jsx)(`ol`,{className:`space-y-4`,children:r.map((e,t)=>(0,l.jsx)(`li`,{children:i(e,{isLast:t===r.length-1,index:t})},e.id))}),!!s&&(0,l.jsx)(`div`,{className:`mt-4`,children:s}),(0,l.jsx)(`div`,{ref:_,"aria-hidden":!0,className:`h-px`})]}),!v&&(0,l.jsx)(`div`,{className:`pointer-events-none absolute bottom-3 left-1/2 -translate-x-1/2`,children:(0,l.jsxs)(a.t,{type:`button`,variant:`secondary`,buttonStyle:`solid`,"aria-label":h.scrollToBottomAria,onClick:()=>b(`smooth`),className:t.cn(`pointer-events-auto rounded-full shadow-md`,`border border-border/60`),children:[(0,l.jsx)(u.ArrowDown,{className:`size-3.5`}),h.scrollToBottom]})})]})}b.displayName=`AiChatConversation`;function x({title:e=`Start a conversation`,description:i,icon:a=u.Sparkles,below:o,className:s}){return(0,l.jsxs)(`div`,{className:t.cn(`flex h-full flex-col items-center justify-center gap-3 px-4 py-10 text-center`,s),children:[(0,l.jsx)(r.t,{icon:a,tone:`primary`,size:`md`,shape:`square`}),(0,l.jsxs)(`div`,{className:`max-w-md space-y-1`,children:[(0,l.jsx)(n.t,{tag:`h4`,children:e}),!!i&&(0,l.jsx)(n.n,{type:`secondary`,children:i})]}),!!o&&(0,l.jsx)(`div`,{className:`mt-4 w-full max-w-2xl`,children:o})]})}x.displayName=`AiChatEmptyState`;function S({message:n,onCopy:r,onRegenerate:i,onAttachmentOpen:a,className:o,strings:c}){let u=e.useStrings(h,c),d=[],f=[];for(let e of n.parts)e.type===`text`?d.push(e):f.push(e);let p=d.map(e=>e.type===`text`?e.plain??w(e.content):``).filter(Boolean).join(`
2
+ `)||void 0,m=n.pending?(0,l.jsx)(s.y,{children:u.pending}):d.length===0&&f.length>0?null:(0,l.jsx)(`div`,{className:`space-y-2`,children:d.map((e,t)=>e.type===`text`?(0,l.jsx)(`div`,{className:`whitespace-pre-wrap`,children:e.content},t):null)});return(0,l.jsxs)(`div`,{className:t.cn(`space-y-2`,o),children:[(m!==null||n.pending)&&(0,l.jsx)(s.S,{role:n.role,avatar:n.avatar,authorName:n.authorName,timestamp:n.timestamp,plainText:p,loading:n.loading,onCopy:p?r??(()=>void 0):void 0,onRegenerate:i,children:m}),f.length>0&&(0,l.jsx)(`div`,{className:t.cn(`space-y-2`,n.role===`user`?`pr-9 sm:pl-12`:`pl-9 sm:pr-12`),children:f.map((e,t)=>(0,l.jsx)(C,{part:e,onAttachmentOpen:a},t))}),!!n.trailing&&(0,l.jsx)(`div`,{className:t.cn(n.role===`user`?`pr-9 sm:pl-12`:`pl-9 sm:pr-12`),children:n.trailing})]})}S.displayName=`AiChatMessage`;function C({part:e,onAttachmentOpen:t}){switch(e.type){case`text`:return(0,l.jsx)(n.n,{children:e.content});case`reasoning`:return(0,l.jsx)(s.s,{streaming:e.streaming,durationSeconds:e.durationSeconds,children:e.content});case`chain-of-thought`:return(0,l.jsx)(s.a,{steps:e.steps,streaming:e.streaming});case`tool`:return(0,l.jsx)(s.b,{name:e.name,status:e.status,icon:e.icon,args:e.args,result:e.result,error:e.error,durationMs:e.durationMs,defaultExpanded:e.defaultExpanded});case`code`:return(0,l.jsx)(s._,{code:e.code,language:e.language,filename:e.filename,showLineNumbers:e.showLineNumbers,highlightLines:e.highlightLines});case`attachments`:return(0,l.jsx)(v,{attachments:e.items,onOpen:t?e=>t(e.id):void 0});case`sources`:return(0,l.jsx)(s.l,{sources:e.items,variant:e.variant,defaultExpanded:e.defaultExpanded});case`task`:return(0,l.jsx)(s.r,{task:e.task});case`artifact`:return(0,l.jsx)(s.t,{title:e.title,subtitle:e.subtitle,icon:e.icon,copyText:e.copyText,actions:e.actions,onOpen:e.onOpen,onDownload:e.onDownload,children:e.body});case`confirmation`:return(0,l.jsx)(s.d,{title:e.title,description:e.description,tone:e.tone,status:e.status,details:e.details,onApprove:e.onApprove,onReject:e.onReject});case`custom`:return(0,l.jsx)(l.Fragment,{children:e.render()});default:return null}}function w(e){return typeof e==`string`||typeof e==`number`?String(e):Array.isArray(e)?e.map(w).join(``):``}function T({value:r,onChange:i,onSubmit:s,onStop:f,streaming:p=!1,disabled:m=!1,attachments:h=[],onRemoveAttachment:g,onAttach:y,showAttach:b,leadingActions:x,trailingActions:S,hideHint:C=!1,minRows:w=1,maxRows:T=8,autoFocus:E=!1,className:D,strings:O}){let k=e.useStrings(d,O),A=(0,c.useRef)(null),j=!p&&!m&&(r.trim().length>0||h.length>0),M=(0,c.useCallback)(()=>{j&&s?.({text:r,attachments:h})},[j,s,r,h]),N=(0,c.useCallback)(e=>{e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&(e.preventDefault(),M())},[M]),P=b??!!y,F=typeof navigator<`u`&&navigator.platform?.toLowerCase().includes(`mac`)?`⌘↩`:`↩`;return(0,l.jsxs)(`div`,{className:t.cn(`rounded-xl border border-border bg-card transition-colors duration-150`,`focus-within:border-foreground/20 focus-within:ring-2 focus-within:ring-ring/30`,m&&`opacity-60 pointer-events-none`,D),children:[h.length>0&&(0,l.jsx)(`div`,{className:`border-b border-border/60 p-2`,children:(0,l.jsx)(v,{attachments:h,onRemove:g})}),(0,l.jsx)(o.t,{ref:A,value:r,onChange:e=>i(e.target.value),onKeyDown:N,placeholder:k.placeholder,autoResize:!0,minRows:w,maxRows:T,autoFocus:E,disabled:m,className:t.cn(`!border-0 !bg-transparent !shadow-none focus-visible:!ring-0 resize-none px-3 py-2.5`)}),(0,l.jsxs)(`div`,{className:`flex items-center gap-1 border-t border-border/60 px-2 py-1.5`,children:[x,P&&(0,l.jsx)(a.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-sm`,"aria-label":k.attachAria,onClick:y,disabled:m,children:(0,l.jsx)(u.Paperclip,{className:`size-4`})}),(0,l.jsxs)(`div`,{className:`ml-auto flex items-center gap-1`,children:[S,p?(0,l.jsx)(a.t,{type:`button`,variant:`secondary`,buttonStyle:`solid`,size:`icon-sm`,"aria-label":k.stopAria,onClick:f,children:(0,l.jsx)(u.Square,{className:`size-3.5 fill-current`})}):(0,l.jsx)(a.t,{type:`button`,variant:`primary`,buttonStyle:`solid`,size:`icon-sm`,"aria-label":k.submitAria,onClick:M,disabled:!j,children:(0,l.jsx)(u.ArrowUp,{className:`size-4`})})]})]}),!C&&(0,l.jsx)(`div`,{className:`px-3 pb-2`,children:(0,l.jsx)(n.n,{size:`xxs`,type:`discrete`,children:_(k.hint,{submitKey:F,newlineKey:`⇧↩`})})})]})}T.displayName=`AiChatPromptInput`;function E({items:r,hideHeader:o=!1,onCancel:s,className:c,strings:d}){let f=e.useStrings(p,d);return r.length===0?null:(0,l.jsxs)(`div`,{className:t.cn(`rounded-lg border border-border/60 bg-muted/20 px-2.5 py-2`,c),children:[!o&&(0,l.jsxs)(n.n,{size:`xxs`,type:`secondary`,weight:`medium`,className:`mb-1.5 px-1 uppercase tracking-wider`,children:[f.header,` · `,r.length]}),(0,l.jsx)(`ul`,{className:`space-y-1`,children:r.map(e=>{let t=e.status??`queued`;return(0,l.jsxs)(`li`,{className:`flex items-center gap-2 rounded-md bg-card px-2 py-1.5`,children:[t===`running`?(0,l.jsx)(u.Loader2,{className:`size-3.5 shrink-0 animate-spin text-primary`}):(0,l.jsx)(`span`,{"aria-hidden":!0,className:`size-2 shrink-0 rounded-full bg-muted-foreground/50`}),(0,l.jsx)(n.n,{size:`xs`,className:`flex-1 truncate`,children:e.label}),(0,l.jsx)(i.t,{variant:t===`running`?`primary`:`secondary`,children:t===`running`?f.runningLabel:f.queuedLabel}),(!!e.onCancel||!!s)&&(0,l.jsx)(a.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-xs`,"aria-label":f.cancelAria,onClick:()=>{e.onCancel?.(),s?.(e.id)},children:(0,l.jsx)(u.X,{className:`size-3.5`})})]},e.id)})})]})}E.displayName=`AiChatQueue`;function D({suggestions:r,onPick:i,hideHeader:o=!1,className:s,strings:c}){let d=e.useStrings(m,c);return r.length===0?null:(0,l.jsxs)(`div`,{className:t.cn(`flex items-center gap-2`,s),children:[!o&&(0,l.jsxs)(`div`,{className:`inline-flex shrink-0 items-center gap-1.5`,children:[(0,l.jsx)(u.Sparkles,{className:`size-3.5 text-muted-foreground`}),(0,l.jsx)(n.n,{size:`xxs`,type:`secondary`,weight:`medium`,className:`uppercase tracking-wider`,children:d.header})]}),(0,l.jsx)(`div`,{className:`-mx-1 flex flex-1 items-center gap-1.5 overflow-x-auto px-1 py-0.5 [scrollbar-width:none] [&::-webkit-scrollbar]:hidden`,children:r.map(e=>{let r=e.icon;return(0,l.jsxs)(a.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`xs`,onClick:()=>i?.(e),className:t.cn(`h-auto shrink-0 gap-1.5 rounded-full border border-border/60 bg-card px-2.5 py-1`,`transition-[border-color,background] duration-150`,`hover:border-foreground/20 hover:bg-muted/40`),children:[!!r&&(0,l.jsx)(r,{className:`size-3 text-muted-foreground`}),(0,l.jsx)(n.n,{tag:`span`,size:`xs`,weight:`medium`,children:e.label})]},e.id)})})]})}D.displayName=`AiChatSuggestionsRow`;function O({messages:r,inputValue:i,onInputChange:a,onSubmit:o,onStop:u,streaming:d=!1,disabled:f=!1,attachments:p=[],onRemoveAttachment:m,onAttach:h,showAttach:_,agent:v,headerActions:y,queue:C=[],onCancelQueueItem:w,suggestions:O=[],onPickSuggestion:k,onMessageCopy:A,onMessageRegenerate:j,onAttachmentOpen:M,disableAutoScroll:N,slots:P,strings:F,className:I}){let L=e.useStrings(g,F),[,R]=(0,c.useState)(0),z=(0,c.useCallback)((e,t)=>P?.renderMessage?P.renderMessage(e,t):(0,l.jsx)(S,{className:`ai-chat-message--component`,message:e,strings:L.message,onCopy:A?()=>A(e):void 0,onRegenerate:j?()=>j(e):void 0,onAttachmentOpen:M?t=>M(e.id,t):void 0}),[M,A,j,P,L.message]),B=P?.header??(v?(0,l.jsxs)(`div`,{className:`flex items-center gap-3 border-b border-border bg-card px-3 py-2 sm:px-4`,children:[(0,l.jsx)(s.p,{name:v.name,icon:v.icon,avatar:v.avatar,subtitle:v.subtitle,tone:v.tone,status:v.status,variant:`inline`}),!!y&&(0,l.jsx)(`div`,{className:`ml-auto flex items-center gap-1`,children:y})]}):null),V=P?.empty??(r.length===0?(0,l.jsx)(x,{title:L.emptyTitle,description:L.emptyDescription}):null),H=P?.queue??(C.length>0?(0,l.jsx)(E,{items:C,onCancel:w,strings:L.queue}):null),U=P?.suggestions??(O.length>0?(0,l.jsx)(D,{suggestions:O,onPick:k,strings:L.suggestions}):null),W=P?.input??(0,l.jsx)(T,{value:i,onChange:a,onSubmit:e=>{o?.(e),R(e=>e+1)},onStop:u,streaming:d,disabled:f,attachments:p,onRemoveAttachment:m,onAttach:h,showAttach:_,strings:L.prompt});return(0,l.jsxs)(`div`,{className:t.cn(`ai-chat--component flex h-full flex-col overflow-hidden rounded-xl border border-border bg-background`,I),children:[B,(0,l.jsx)(b,{messages:r,renderMessage:z,intro:P?.intro,footer:P?.belowMessages,empty:V,disableAutoScroll:N,strings:L.conversation}),(H||U||W)&&(0,l.jsxs)(`div`,{className:`border-t border-border bg-card/60`,children:[H&&(0,l.jsx)(`div`,{className:`px-3 pb-2 pt-3 sm:px-4`,children:H}),U&&(0,l.jsx)(`div`,{className:t.cn(`px-3 sm:px-4`,!H&&`pt-3`,`pb-2`),children:U}),W&&(0,l.jsx)(`div`,{className:`px-3 pb-3 pt-2 sm:px-4 sm:pb-4`,children:W})]}),f&&(0,l.jsx)(n.n,{className:`sr-only`,"aria-live":`polite`,children:`Chat is disabled`})]})}O.displayName=`AiChat`,exports.AiChat=O,exports.AiChatAttachmentsStrip=v,exports.AiChatConversation=b,exports.AiChatEmptyState=x,exports.AiChatMessageView=S,exports.AiChatPromptInput=T,exports.AiChatQueue=E,exports.AiChatSuggestionsRow=D,exports.defaultAiChatConversationStrings=f,exports.defaultAiChatMessageStrings=h,exports.defaultAiChatPromptInputStrings=d,exports.defaultAiChatQueueStrings=p,exports.defaultAiChatStrings=g,exports.defaultAiChatSuggestionsStrings=m,exports.interpolateString=_,exports.useAiChatScroll=y;
3
3
  //# sourceMappingURL=index.cjs.map