admin-ui-starter-kit 0.6.6 → 0.6.7

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 (1143) hide show
  1. package/.agents/skills/component-library-rules/references/components/base__cards.md +4 -4
  2. package/.agents/skills/component-library-rules/references/components/base__carousel.md +4 -4
  3. package/.agents/skills/component-library-rules/references/components/base__combobox.md +1 -1
  4. package/.agents/skills/component-library-rules/references/components/base__css-variables.md +2 -1
  5. package/.agents/skills/component-library-rules/references/components/base__event-calendar.md +1 -1
  6. package/.agents/skills/component-library-rules/references/components/base__typography.md +1 -1
  7. package/.agents/skills/component-library-rules/references/components/composed__metadata-list.md +3 -3
  8. package/.agents/skills/component-library-rules/references/components/features__activities.md +1 -1
  9. package/.agents/skills/component-library-rules/references/components/features__enhanced-activities.md +6 -6
  10. package/.agents/skills/component-library-rules/references/components/features__metrics-overview.md +3 -3
  11. package/.agents/skills/component-library-rules/references/components/features__overlays.md +2 -2
  12. package/.agents/skills/component-library-rules/references/components/features__products.md +1 -1
  13. package/.agents/skills/component-library-rules/references/components/layout__layout-app-shell.md +1 -1
  14. package/.agents/skills/component-library-rules/references/components/layout__layout-containers.md +1 -1
  15. package/.agents/skills/component-library-rules/references/components/layout__layout-sidebar.md +2 -2
  16. package/dist/_shared/accordion-CxjH2WZG.js +135 -0
  17. package/dist/_shared/accordion-CxjH2WZG.js.map +1 -0
  18. package/dist/_shared/accordion-mTdJmy23.cjs +2 -0
  19. package/dist/_shared/accordion-mTdJmy23.cjs.map +1 -0
  20. package/dist/_shared/ai-artifact-CS2Pv-bu.js +1099 -0
  21. package/dist/_shared/ai-artifact-CS2Pv-bu.js.map +1 -0
  22. package/dist/_shared/ai-artifact-R4bxz5Iq.cjs +3 -0
  23. package/dist/_shared/ai-artifact-R4bxz5Iq.cjs.map +1 -0
  24. package/dist/_shared/alert-BisCSsOE.cjs +2 -0
  25. package/dist/_shared/alert-BisCSsOE.cjs.map +1 -0
  26. package/dist/_shared/alert-D23Q7I0W.js +81 -0
  27. package/dist/_shared/alert-D23Q7I0W.js.map +1 -0
  28. package/dist/_shared/auth-BV9Daibu.cjs +2 -0
  29. package/dist/_shared/auth-BV9Daibu.cjs.map +1 -0
  30. package/dist/_shared/auth-DACpcTnL.js +643 -0
  31. package/dist/_shared/auth-DACpcTnL.js.map +1 -0
  32. package/dist/_shared/badge-B4oBB5BJ.js +110 -0
  33. package/dist/_shared/badge-B4oBB5BJ.js.map +1 -0
  34. package/dist/_shared/badge-DvUA9Pr2.cjs +2 -0
  35. package/dist/_shared/badge-DvUA9Pr2.cjs.map +1 -0
  36. package/dist/_shared/card-radio-group-BL--IyPB.js +150 -0
  37. package/dist/_shared/card-radio-group-BL--IyPB.js.map +1 -0
  38. package/dist/_shared/card-radio-group-Cl5ptR1d.cjs +2 -0
  39. package/dist/_shared/card-radio-group-Cl5ptR1d.cjs.map +1 -0
  40. package/dist/_shared/cards-CMNXFo3Y.js +354 -0
  41. package/dist/_shared/cards-CMNXFo3Y.js.map +1 -0
  42. package/dist/_shared/cards-DQN9fcwo.cjs +2 -0
  43. package/dist/_shared/cards-DQN9fcwo.cjs.map +1 -0
  44. package/dist/_shared/combobox-D0avSXIB.cjs +2 -0
  45. package/dist/_shared/combobox-D0avSXIB.cjs.map +1 -0
  46. package/dist/_shared/combobox-Df0srISK.js +954 -0
  47. package/dist/_shared/combobox-Df0srISK.js.map +1 -0
  48. package/dist/_shared/command-B5BpMgBT.js +39 -0
  49. package/dist/_shared/command-B5BpMgBT.js.map +1 -0
  50. package/dist/_shared/command-en62SpQ7.cjs +2 -0
  51. package/dist/_shared/command-en62SpQ7.cjs.map +1 -0
  52. package/dist/_shared/comments-CfkortDW.js +952 -0
  53. package/dist/_shared/comments-CfkortDW.js.map +1 -0
  54. package/dist/_shared/comments-yVd7QMOu.cjs +2 -0
  55. package/dist/_shared/comments-yVd7QMOu.cjs.map +1 -0
  56. package/dist/_shared/copyable-Cn7tRGL5.js +38 -0
  57. package/dist/_shared/copyable-Cn7tRGL5.js.map +1 -0
  58. package/dist/_shared/copyable-CoKTxMSP.cjs +2 -0
  59. package/dist/_shared/copyable-CoKTxMSP.cjs.map +1 -0
  60. package/dist/_shared/data-display-BG7CD164.js +1873 -0
  61. package/dist/_shared/data-display-BG7CD164.js.map +1 -0
  62. package/dist/_shared/data-display-CXVoX3la.cjs +2 -0
  63. package/dist/_shared/data-display-CXVoX3la.cjs.map +1 -0
  64. package/dist/_shared/date-picker-Bf-nnyi-.js +1361 -0
  65. package/dist/_shared/date-picker-Bf-nnyi-.js.map +1 -0
  66. package/dist/_shared/date-picker-Cox4PAUt.cjs +2 -0
  67. package/dist/_shared/date-picker-Cox4PAUt.cjs.map +1 -0
  68. package/dist/_shared/date-pickers-DbN4q0dn.cjs +2 -0
  69. package/dist/_shared/date-pickers-DbN4q0dn.cjs.map +1 -0
  70. package/dist/_shared/date-pickers-DvrOCP-s.js +329 -0
  71. package/dist/_shared/date-pickers-DvrOCP-s.js.map +1 -0
  72. package/dist/_shared/display-BQijMo37.js +986 -0
  73. package/dist/_shared/display-BQijMo37.js.map +1 -0
  74. package/dist/_shared/display-C0ut-Lew.cjs +2 -0
  75. package/dist/_shared/display-C0ut-Lew.cjs.map +1 -0
  76. package/dist/_shared/forms-BjG7QIb1.cjs +2 -0
  77. package/dist/_shared/forms-BjG7QIb1.cjs.map +1 -0
  78. package/dist/_shared/forms-DljDdyXR.js +3533 -0
  79. package/dist/_shared/forms-DljDdyXR.js.map +1 -0
  80. package/dist/_shared/header-BpFJRINR.cjs +2 -0
  81. package/dist/_shared/header-BpFJRINR.cjs.map +1 -0
  82. package/dist/_shared/header-CKqQF4_r.js +447 -0
  83. package/dist/_shared/header-CKqQF4_r.js.map +1 -0
  84. package/dist/_shared/hooks-DcCkbP1F.js +95 -0
  85. package/dist/_shared/hooks-DcCkbP1F.js.map +1 -0
  86. package/dist/_shared/hooks-RkLytuGj.cjs +2 -0
  87. package/dist/_shared/hooks-RkLytuGj.cjs.map +1 -0
  88. package/dist/_shared/input-Cin0qpjj.js +182 -0
  89. package/dist/_shared/input-Cin0qpjj.js.map +1 -0
  90. package/dist/_shared/input-uuWeiagN.cjs +2 -0
  91. package/dist/_shared/input-uuWeiagN.cjs.map +1 -0
  92. package/dist/_shared/item-CIlSaQg8.js +226 -0
  93. package/dist/_shared/item-CIlSaQg8.js.map +1 -0
  94. package/dist/_shared/item-CSk9Y2qB.cjs +2 -0
  95. package/dist/_shared/item-CSk9Y2qB.cjs.map +1 -0
  96. package/dist/_shared/layout-Cun0HPL4.cjs +2 -0
  97. package/dist/_shared/layout-Cun0HPL4.cjs.map +1 -0
  98. package/dist/_shared/layout-HrU5gwH3.js +261 -0
  99. package/dist/_shared/layout-HrU5gwH3.js.map +1 -0
  100. package/dist/_shared/mentions-BqN82Fon.cjs +2 -0
  101. package/dist/_shared/mentions-BqN82Fon.cjs.map +1 -0
  102. package/dist/_shared/mentions-DV0FT1Th.js +506 -0
  103. package/dist/_shared/mentions-DV0FT1Th.js.map +1 -0
  104. package/dist/_shared/money-display-D5FCRhzB.cjs +2 -0
  105. package/dist/_shared/money-display-D5FCRhzB.cjs.map +1 -0
  106. package/dist/_shared/money-display-FcCAQDCz.js +198 -0
  107. package/dist/_shared/money-display-FcCAQDCz.js.map +1 -0
  108. package/dist/_shared/navigation-CI_Dd8jM.js +436 -0
  109. package/dist/_shared/navigation-CI_Dd8jM.js.map +1 -0
  110. package/dist/_shared/navigation-DUGhCPzJ.cjs +2 -0
  111. package/dist/_shared/navigation-DUGhCPzJ.cjs.map +1 -0
  112. package/dist/_shared/overlays-BRLemLSn.cjs +2 -0
  113. package/dist/_shared/overlays-BRLemLSn.cjs.map +1 -0
  114. package/dist/_shared/overlays-Bef7VNYY.js +735 -0
  115. package/dist/_shared/overlays-Bef7VNYY.js.map +1 -0
  116. package/dist/_shared/popover-menu-CAjhhTfX.js +93 -0
  117. package/dist/_shared/popover-menu-CAjhhTfX.js.map +1 -0
  118. package/dist/_shared/popover-menu-DlkRgOkR.cjs +2 -0
  119. package/dist/_shared/popover-menu-DlkRgOkR.cjs.map +1 -0
  120. package/dist/_shared/rich-text-editor-Bpt3r3J3.js +620 -0
  121. package/dist/_shared/rich-text-editor-Bpt3r3J3.js.map +1 -0
  122. package/dist/_shared/rich-text-editor-DUTX7kBa.cjs +2 -0
  123. package/dist/_shared/rich-text-editor-DUTX7kBa.cjs.map +1 -0
  124. package/dist/_shared/settings-CNT4-6u8.cjs +2 -0
  125. package/dist/_shared/settings-CNT4-6u8.cjs.map +1 -0
  126. package/dist/_shared/settings-CRP6409J.js +143 -0
  127. package/dist/_shared/settings-CRP6409J.js.map +1 -0
  128. package/dist/_shared/sidebar-B0LcBrfI.cjs +2 -0
  129. package/dist/_shared/sidebar-B0LcBrfI.cjs.map +1 -0
  130. package/dist/_shared/sidebar-Bc6JsOTD.js +548 -0
  131. package/dist/_shared/sidebar-Bc6JsOTD.js.map +1 -0
  132. package/dist/_shared/spinner-CVG62sGs.js +67 -0
  133. package/dist/_shared/spinner-CVG62sGs.js.map +1 -0
  134. package/dist/_shared/spinner-VjdonFU2.cjs +2 -0
  135. package/dist/_shared/spinner-VjdonFU2.cjs.map +1 -0
  136. package/dist/_shared/table-_yujELN3.js +1377 -0
  137. package/dist/_shared/table-_yujELN3.js.map +1 -0
  138. package/dist/_shared/table-iV8H1AE0.cjs +2 -0
  139. package/dist/_shared/table-iV8H1AE0.cjs.map +1 -0
  140. package/dist/_shared/textarea-B4zbbqff.cjs +2 -0
  141. package/dist/_shared/textarea-B4zbbqff.cjs.map +1 -0
  142. package/dist/_shared/textarea-Dp0RU-rc.js +118 -0
  143. package/dist/_shared/textarea-Dp0RU-rc.js.map +1 -0
  144. package/dist/_shared/typography-DXvCmE8w.js +201 -0
  145. package/dist/_shared/typography-DXvCmE8w.js.map +1 -0
  146. package/dist/_shared/typography-pzCKaFOc.cjs +2 -0
  147. package/dist/_shared/typography-pzCKaFOc.cjs.map +1 -0
  148. package/dist/_shared/workspace-C3U57t2a.cjs +2 -0
  149. package/dist/_shared/workspace-C3U57t2a.cjs.map +1 -0
  150. package/dist/_shared/workspace-Db--ow3r.js +357 -0
  151. package/dist/_shared/workspace-Db--ow3r.js.map +1 -0
  152. package/dist/components/base/accordion/index.cjs +1 -1
  153. package/dist/components/base/accordion/index.js +1 -1
  154. package/dist/components/base/badge/index.cjs +1 -1
  155. package/dist/components/base/badge/index.js +1 -1
  156. package/dist/components/base/cards/index.cjs +1 -1
  157. package/dist/components/base/cards/index.js +1 -1
  158. package/dist/components/base/combobox/index.cjs +1 -1
  159. package/dist/components/base/combobox/index.js +1 -1
  160. package/dist/components/base/command/index.cjs +1 -1
  161. package/dist/components/base/command/index.js +1 -1
  162. package/dist/components/base/copyable/index.cjs +1 -1
  163. package/dist/components/base/copyable/index.js +1 -1
  164. package/dist/components/base/currency/index.cjs +1 -1
  165. package/dist/components/base/currency/index.js +1 -1
  166. package/dist/components/base/date-pickers/index.cjs +1 -1
  167. package/dist/components/base/date-pickers/index.js +2 -2
  168. package/dist/components/base/display/chart.cjs +1 -1
  169. package/dist/components/base/display/chart.js +1 -1
  170. package/dist/components/base/display/index.cjs +1 -1
  171. package/dist/components/base/display/index.js +3 -3
  172. package/dist/components/base/event-calendar/index.cjs +1 -1
  173. package/dist/components/base/event-calendar/index.cjs.map +1 -1
  174. package/dist/components/base/event-calendar/index.js +5 -5
  175. package/dist/components/base/event-calendar/index.js.map +1 -1
  176. package/dist/components/base/forms/index.cjs +1 -1
  177. package/dist/components/base/forms/index.js +5 -5
  178. package/dist/components/base/item/index.cjs +1 -1
  179. package/dist/components/base/item/index.js +1 -1
  180. package/dist/components/base/map/index.cjs +1 -1
  181. package/dist/components/base/map/index.js +1 -1
  182. package/dist/components/base/navigation/index.cjs +1 -1
  183. package/dist/components/base/navigation/index.js +1 -1
  184. package/dist/components/base/popover-menu/index.cjs +1 -1
  185. package/dist/components/base/popover-menu/index.js +1 -1
  186. package/dist/components/base/spinner/index.cjs +1 -1
  187. package/dist/components/base/spinner/index.js +1 -1
  188. package/dist/components/base/table/index.cjs +1 -1
  189. package/dist/components/base/table/index.js +1 -1
  190. package/dist/components/base/table/table-header.d.ts.map +1 -1
  191. package/dist/components/composed/admin/index.cjs +1 -1
  192. package/dist/components/composed/admin/index.cjs.map +1 -1
  193. package/dist/components/composed/admin/index.js +11 -11
  194. package/dist/components/composed/admin/index.js.map +1 -1
  195. package/dist/components/composed/ai/index.cjs +1 -1
  196. package/dist/components/composed/ai/index.cjs.map +1 -1
  197. package/dist/components/composed/ai/index.js +24 -24
  198. package/dist/components/composed/ai/index.js.map +1 -1
  199. package/dist/components/composed/analytics/index.cjs +1 -1
  200. package/dist/components/composed/analytics/index.cjs.map +1 -1
  201. package/dist/components/composed/analytics/index.js +25 -25
  202. package/dist/components/composed/analytics/index.js.map +1 -1
  203. package/dist/components/composed/cards/index.cjs +1 -1
  204. package/dist/components/composed/cards/index.cjs.map +1 -1
  205. package/dist/components/composed/cards/index.js +14 -14
  206. package/dist/components/composed/cards/index.js.map +1 -1
  207. package/dist/components/composed/commerce/index.cjs +1 -1
  208. package/dist/components/composed/commerce/index.cjs.map +1 -1
  209. package/dist/components/composed/commerce/index.js +27 -27
  210. package/dist/components/composed/commerce/index.js.map +1 -1
  211. package/dist/components/composed/dark-surfaces/index.cjs +1 -1
  212. package/dist/components/composed/dark-surfaces/index.js +3 -3
  213. package/dist/components/composed/data-display/index.cjs +1 -1
  214. package/dist/components/composed/data-display/index.js +1 -1
  215. package/dist/components/composed/data-display/metadata/metadata-list.d.ts.map +1 -1
  216. package/dist/components/composed/navigation/index.cjs +1 -1
  217. package/dist/components/composed/navigation/index.cjs.map +1 -1
  218. package/dist/components/composed/navigation/index.js +14 -14
  219. package/dist/components/composed/navigation/index.js.map +1 -1
  220. package/dist/components/composed/onboarding/index.cjs +1 -1
  221. package/dist/components/composed/onboarding/index.js +3 -3
  222. package/dist/components/composed/timelines/index.cjs +1 -1
  223. package/dist/components/composed/timelines/index.cjs.map +1 -1
  224. package/dist/components/composed/timelines/index.js +10 -10
  225. package/dist/components/composed/timelines/index.js.map +1 -1
  226. package/dist/components/features/activities/index.cjs +1 -1
  227. package/dist/components/features/activities/index.cjs.map +1 -1
  228. package/dist/components/features/activities/index.js +8 -8
  229. package/dist/components/features/activities/index.js.map +1 -1
  230. package/dist/components/features/ai-chat/index.cjs +2 -2
  231. package/dist/components/features/ai-chat/index.cjs.map +1 -1
  232. package/dist/components/features/ai-chat/index.js +7 -7
  233. package/dist/components/features/ai-chat/index.js.map +1 -1
  234. package/dist/components/features/card/index.cjs +1 -1
  235. package/dist/components/features/card/index.js +3 -3
  236. package/dist/components/features/comments/index.cjs +1 -1
  237. package/dist/components/features/comments/index.js +2 -2
  238. package/dist/components/features/data-view/index.cjs +1 -1
  239. package/dist/components/features/data-view/index.cjs.map +1 -1
  240. package/dist/components/features/data-view/index.js +2 -2
  241. package/dist/components/features/data-view/index.js.map +1 -1
  242. package/dist/components/features/event-log/index.cjs +1 -1
  243. package/dist/components/features/event-log/index.js +4 -4
  244. package/dist/components/features/filters/index.cjs +1 -1
  245. package/dist/components/features/filters/index.cjs.map +1 -1
  246. package/dist/components/features/filters/index.js +10 -10
  247. package/dist/components/features/filters/index.js.map +1 -1
  248. package/dist/components/features/global-search/index.cjs +1 -1
  249. package/dist/components/features/global-search/index.cjs.map +1 -1
  250. package/dist/components/features/global-search/index.js +13 -13
  251. package/dist/components/features/global-search/index.js.map +1 -1
  252. package/dist/components/features/kanban/index.cjs +1 -1
  253. package/dist/components/features/kanban/index.js +2 -2
  254. package/dist/components/features/media-library/index.cjs +1 -1
  255. package/dist/components/features/media-library/index.cjs.map +1 -1
  256. package/dist/components/features/media-library/index.js +22 -22
  257. package/dist/components/features/media-library/index.js.map +1 -1
  258. package/dist/components/features/mentions/index.cjs +1 -1
  259. package/dist/components/features/mentions/index.js +1 -1
  260. package/dist/components/features/overlays/index.cjs +1 -1
  261. package/dist/components/features/overlays/index.js +1 -1
  262. package/dist/components/features/products/index.cjs +1 -1
  263. package/dist/components/features/products/index.cjs.map +1 -1
  264. package/dist/components/features/products/index.js +13 -13
  265. package/dist/components/features/products/index.js.map +1 -1
  266. package/dist/components/features/resource/index.cjs +1 -1
  267. package/dist/components/features/resource/index.cjs.map +1 -1
  268. package/dist/components/features/resource/index.js +5 -5
  269. package/dist/components/features/resource/index.js.map +1 -1
  270. package/dist/components/features/rich-text-editor/index.cjs +1 -1
  271. package/dist/components/features/rich-text-editor/index.js +1 -1
  272. package/dist/components/features/schema-form/index.cjs +1 -1
  273. package/dist/components/features/schema-form/index.js +7 -7
  274. package/dist/components/features/suggestions/index.cjs +1 -1
  275. package/dist/components/features/suggestions/index.js +1 -1
  276. package/dist/components/features/sync/index.cjs +1 -1
  277. package/dist/components/features/sync/index.js +2 -2
  278. package/dist/components/layout/auth/index.cjs +1 -1
  279. package/dist/components/layout/auth/index.js +1 -1
  280. package/dist/components/layout/header/index.cjs +1 -1
  281. package/dist/components/layout/header/index.js +1 -1
  282. package/dist/components/layout/hooks/index.cjs +1 -1
  283. package/dist/components/layout/hooks/index.js +1 -1
  284. package/dist/components/layout/index.cjs +1 -1
  285. package/dist/components/layout/index.js +7 -7
  286. package/dist/components/layout/page/index.cjs +1 -1
  287. package/dist/components/layout/page/index.js +1 -1
  288. package/dist/components/layout/settings/index.cjs +1 -1
  289. package/dist/components/layout/settings/index.js +1 -1
  290. package/dist/components/layout/sidebar/index.cjs +1 -1
  291. package/dist/components/layout/sidebar/index.js +2 -2
  292. package/dist/components/layout/workspace/index.cjs +1 -1
  293. package/dist/components/layout/workspace/index.js +1 -1
  294. package/dist/components/typography/index.cjs +1 -1
  295. package/dist/components/typography/index.js +1 -1
  296. package/dist/services/actions/index.cjs +1 -1
  297. package/dist/services/actions/index.js +1 -1
  298. package/dist/showcase/assets/AreaChart-DtVzijR8.js +6 -0
  299. package/dist/showcase/assets/CompositeItem-SL6R0H3r.js +1 -0
  300. package/dist/showcase/assets/CompositeRoot-CTygKc2d.js +1 -0
  301. package/dist/showcase/assets/DialogTrigger-m2m9VdXk.js +1 -0
  302. package/dist/showcase/assets/LabelableContext-D6DcOg5I.js +1 -0
  303. package/dist/showcase/assets/PreviewLayout-CHW8F5uE.js +1 -0
  304. package/dist/showcase/assets/RadioGroup-BAOoU1eO.js +1 -0
  305. package/dist/showcase/assets/ScrollAreaCorner-CrCCP65t.js +1 -0
  306. package/dist/showcase/assets/Separator-DMs71Vib.js +1 -0
  307. package/dist/showcase/assets/ToolbarRootContext-DWKxsCxT.js +1 -0
  308. package/dist/showcase/assets/accordion-Clw5XNXP.js +171 -0
  309. package/dist/showcase/assets/accordion-variants-jiwKaPjE.js +1 -0
  310. package/dist/showcase/assets/action-menu-CW8zR6Ne.js +1 -0
  311. package/dist/showcase/assets/actions-Cf7vl3u0.js +310 -0
  312. package/dist/showcase/assets/activities-CyI5sJuS.js +500 -0
  313. package/dist/showcase/assets/activities-feed-card-Gv-Y4BBq.js +1 -0
  314. package/dist/showcase/assets/admin-CQVbTxGD.js +140 -0
  315. package/dist/showcase/assets/ai-Bkp2BY_z.js +207 -0
  316. package/dist/showcase/assets/ai-artifact-Cf1vEdVD.js +2 -0
  317. package/dist/showcase/assets/ai-chat-Bs3x6cK3.js +568 -0
  318. package/dist/showcase/assets/ai-elements-VbMUV2-i.js +387 -0
  319. package/dist/showcase/assets/ai-tool-call-BQYg4QB_.js +1 -0
  320. package/dist/showcase/assets/alert-BUmpNcXV.js +1 -0
  321. package/dist/showcase/assets/alert-CWPNW7eb.js +93 -0
  322. package/dist/showcase/assets/alert-nUwhk3AB.js +62 -0
  323. package/dist/showcase/assets/api-key-list-B1qVywOP.js +73 -0
  324. package/dist/showcase/assets/api-key-list-BI2FGbzV.js +1 -0
  325. package/dist/showcase/assets/app-sidebar-B35a8HWK.js +1 -0
  326. package/dist/showcase/assets/arrow-down-C1w0M8tE.js +1 -0
  327. package/dist/showcase/assets/arrow-left-DtILDtAv.js +1 -0
  328. package/dist/showcase/assets/arrow-right-TnZMfDbP.js +1 -0
  329. package/dist/showcase/assets/arrow-up-BX-KDIDB.js +1 -0
  330. package/dist/showcase/assets/arrow-up-right-CrnWqXwJ.js +1 -0
  331. package/dist/showcase/assets/avatar-C5YI0roK.js +67 -0
  332. package/dist/showcase/assets/avatar-DsnH-Xmz.js +1 -0
  333. package/dist/showcase/assets/avatar-S4vMi7Be.js +57 -0
  334. package/dist/showcase/assets/avatar-q4wqX6yD.js +1 -0
  335. package/dist/showcase/assets/badge-DJacF8-J.js +31 -0
  336. package/dist/showcase/assets/badge-check-DDJtQHcD.js +1 -0
  337. package/dist/showcase/assets/bell-DiXXE8YI.js +1 -0
  338. package/dist/showcase/assets/bot-bONqc_7j.js +1 -0
  339. package/dist/showcase/assets/box-lhUq3Chj.js +1 -0
  340. package/dist/showcase/assets/braces-IKXiJgb3.js +1 -0
  341. package/dist/showcase/assets/brain-DcXlhbJZ.js +1 -0
  342. package/dist/showcase/assets/brand-CramZg2-.js +36 -0
  343. package/dist/showcase/assets/breadcrumb-BL7UjlLh.js +1 -0
  344. package/dist/showcase/assets/breadcrumb-CZRbcf09.js +52 -0
  345. package/dist/showcase/assets/breadcrumbs-DJzvSt_Z.js +1 -0
  346. package/dist/showcase/assets/briefcase-CQQ0m97G.js +1 -0
  347. package/dist/showcase/assets/building-2-BkQcv8WR.js +1 -0
  348. package/dist/showcase/assets/button-K7M0irWq.js +44 -0
  349. package/dist/showcase/assets/button-group-KCGa38c8.js +1 -0
  350. package/dist/showcase/assets/buttons-CvyBMRD6.js +272 -0
  351. package/dist/showcase/assets/calendar-BJHjhWQX.js +1 -0
  352. package/dist/showcase/assets/calendar-ChMVRsNC.js +16 -0
  353. package/dist/showcase/assets/calendar-days-BgkRJVxQ.js +1 -0
  354. package/dist/showcase/assets/calendar-xpHhfGnq.js +1 -0
  355. package/dist/showcase/assets/camera-C67freYi.js +1 -0
  356. package/dist/showcase/assets/card-CfOqXMVz.js +188 -0
  357. package/dist/showcase/assets/card-bLjedjT5.js +1 -0
  358. package/dist/showcase/assets/card-primitives-FUPmQCsu.js +1 -0
  359. package/dist/showcase/assets/card-radio-group-D_QNJ2Hm.js +1 -0
  360. package/dist/showcase/assets/cards-yHZa0kEf.js +353 -0
  361. package/dist/showcase/assets/carousel-DG1cKry4.js +449 -0
  362. package/dist/showcase/assets/cell-renderers-qfJ-7alN.js +1 -0
  363. package/dist/showcase/assets/chart-B_yVfbWJ.js +358 -0
  364. package/dist/showcase/assets/chart-column-CYrVWmMk.js +1 -0
  365. package/dist/showcase/assets/checkbox-NW6EcvtD.js +1 -0
  366. package/dist/showcase/assets/checkbox-pA_L1P-f.js +1 -0
  367. package/dist/showcase/assets/chevron-down-DLrHjdQ6.js +1 -0
  368. package/dist/showcase/assets/chevron-left-B_NQOEWI.js +1 -0
  369. package/dist/showcase/assets/chevron-up-6hst2jwR.js +1 -0
  370. package/dist/showcase/assets/chevrons-up-down-C_pj9oOa.js +1 -0
  371. package/dist/showcase/assets/circle-Cw9qV72m.js +1 -0
  372. package/dist/showcase/assets/circle-alert-D3Vcma6L.js +1 -0
  373. package/dist/showcase/assets/circle-check-DdjJpGc9.js +1 -0
  374. package/dist/showcase/assets/circle-check-big-Dnq-jwtv.js +1 -0
  375. package/dist/showcase/assets/circle-dot-DN8DFgIP.js +1 -0
  376. package/dist/showcase/assets/circle-question-mark-Dzgiv4oS.js +1 -0
  377. package/dist/showcase/assets/circle-x-BzTSkndC.js +1 -0
  378. package/dist/showcase/assets/clock-3-CVwHXCmo.js +1 -0
  379. package/dist/showcase/assets/clock-BIJ9p953.js +1 -0
  380. package/dist/showcase/assets/code-xml-DrU5ziCA.js +1 -0
  381. package/dist/showcase/assets/collapsible-7rdCo71k.js +27 -0
  382. package/dist/showcase/assets/collapsible-DCcTSlEH.js +1 -0
  383. package/dist/showcase/assets/combobox-mx8o5sV1.js +685 -0
  384. package/dist/showcase/assets/command-CKJDGdA9.js +1 -0
  385. package/dist/showcase/assets/command-CzGLPzoO.js +1 -0
  386. package/dist/showcase/assets/comment-composer-CSoEIapl.js +1 -0
  387. package/dist/showcase/assets/comment-item-pjaH53iB.js +1 -0
  388. package/dist/showcase/assets/comments-_ccotzWA.js +357 -0
  389. package/dist/showcase/assets/commerce-BuiQiRsf.js +267 -0
  390. package/dist/showcase/assets/composite-Bghohd0p.js +1 -0
  391. package/dist/showcase/assets/contact-card-CqM2uz_w.js +65 -0
  392. package/dist/showcase/assets/content-container-fC4z98GI.js +1 -0
  393. package/dist/showcase/assets/copyable-BMQK8sID.js +1 -0
  394. package/dist/showcase/assets/copyable-DVR2FAa0.js +96 -0
  395. package/dist/showcase/assets/course-card-Cku2z18g.js +77 -0
  396. package/dist/showcase/assets/cpu-A072t3kq.js +1 -0
  397. package/dist/showcase/assets/credit-card-BGwhx9Zo.js +1 -0
  398. package/dist/showcase/assets/css-variables-BAW_VrGk.js +1205 -0
  399. package/dist/showcase/assets/currency-Da3C0Uzb.js +149 -0
  400. package/dist/showcase/assets/dark-surfaces-BHYLEj80.js +90 -0
  401. package/dist/showcase/assets/data-view--EAYihh0.js +124 -0
  402. package/dist/showcase/assets/data-view-BAMwKzZO.js +4 -0
  403. package/dist/showcase/assets/database-C489WIbr.js +1 -0
  404. package/dist/showcase/assets/date-block-DuNaPSBU.js +1 -0
  405. package/dist/showcase/assets/date-picker-Dq-9L64y.js +1 -0
  406. package/dist/showcase/assets/date-pickers-D0ReMKc9.js +73 -0
  407. package/dist/showcase/assets/dense-info-CXwjqQB1.js +106 -0
  408. package/dist/showcase/assets/design-system-consistency-CGoKv0Vf.js +264 -0
  409. package/dist/showcase/assets/dialog-DIrJcAzq.js +1 -0
  410. package/dist/showcase/assets/dialog-O45UwQJs.js +1 -0
  411. package/dist/showcase/assets/display-utilities-VKOARJyC.js +267 -0
  412. package/dist/showcase/assets/dist-BavkTE-I.js +1 -0
  413. package/dist/showcase/assets/dist-DPxPKIgU.js +45 -0
  414. package/dist/showcase/assets/dollar-sign-CH2fcyek.js +1 -0
  415. package/dist/showcase/assets/download-whAw79X4.js +1 -0
  416. package/dist/showcase/assets/dropdown-menu-PVKwhWds.js +1 -0
  417. package/dist/showcase/assets/dropzone-B9sc8Mwa.js +1 -0
  418. package/dist/showcase/assets/earth-BpkE9LMh.js +1 -0
  419. package/dist/showcase/assets/ellipsis-CEVdIbhD.js +1 -0
  420. package/dist/showcase/assets/ellipsis-vertical-CBIvtUVz.js +1 -0
  421. package/dist/showcase/assets/empty-Dp1eCMIl.js +1 -0
  422. package/dist/showcase/assets/empty-item--dZz4VlJ.js +49 -0
  423. package/dist/showcase/assets/empty-state-ZOiE-hWY.js +190 -0
  424. package/dist/showcase/assets/empty-state-dsivN4CA.js +1 -0
  425. package/dist/showcase/assets/enhanced-activities-BpzUxaof.js +357 -0
  426. package/dist/showcase/assets/enhanced-combobox-D71BOuiX.js +1 -0
  427. package/dist/showcase/assets/esm-DT-TXPCJ.js +2 -0
  428. package/dist/showcase/assets/event-calendar-aVpAFZFq.js +138 -0
  429. package/dist/showcase/assets/event-log-DVcvyQ-P.js +330 -0
  430. package/dist/showcase/assets/example-CzbL5xoH.js +1 -0
  431. package/dist/showcase/assets/external-link-BaLE1QE5.js +1 -0
  432. package/dist/showcase/assets/eye-Dq0mLKrs.js +1 -0
  433. package/dist/showcase/assets/feature-announcement-sWKBC2fs.js +34 -0
  434. package/dist/showcase/assets/file-CgW3NvCL.js +1 -0
  435. package/dist/showcase/assets/file-text-JGaJQ8Wd.js +1 -0
  436. package/dist/showcase/assets/filter-layout-jfahl8aJ.js +1 -0
  437. package/dist/showcase/assets/filters-D7zegZVD.js +139 -0
  438. package/dist/showcase/assets/flag-H6U1f4wd.js +1 -0
  439. package/dist/showcase/assets/folder-open-sT96wRxJ.js +1 -0
  440. package/dist/showcase/assets/form-field-CQuSWnj8.js +1 -0
  441. package/dist/showcase/assets/format-DGPJ5dDq.js +1 -0
  442. package/dist/showcase/assets/forms-CdDJkAFt.js +915 -0
  443. package/dist/showcase/assets/funnel-Bh56GDO0.js +1 -0
  444. package/dist/showcase/assets/generic-CqSABKHr.js +1 -0
  445. package/dist/showcase/assets/getPseudoElementBounds-Cgw3-xUB.js +1 -0
  446. package/dist/showcase/assets/gift-ChVS2ovQ.js +1 -0
  447. package/dist/showcase/assets/giftcard-cards-CuaGn8-J.js +85 -0
  448. package/dist/showcase/assets/git-branch-86jQZnz4.js +1 -0
  449. package/dist/showcase/assets/global-search-C92CjOf8.js +215 -0
  450. package/dist/showcase/assets/global-search-DpVIWyO9.js +1 -0
  451. package/dist/showcase/assets/globe-DmGzYOlq.js +1 -0
  452. package/dist/showcase/assets/gradient-card-BUZzXFdZ.js +58 -0
  453. package/dist/showcase/assets/hash-pc6IIDge.js +1 -0
  454. package/dist/showcase/assets/header-DbM4l1Z6.js +1 -0
  455. package/dist/showcase/assets/header-notifications-CaymUd4n.js +1 -0
  456. package/dist/showcase/assets/heart-DtfPBlXq.js +1 -0
  457. package/dist/showcase/assets/hooks-JiLlGOJ-.js +220 -0
  458. package/dist/showcase/assets/house-CzNWewi5.js +1 -0
  459. package/dist/showcase/assets/icon-badge-G9Fp891n.js +1 -0
  460. package/dist/showcase/assets/icon-badge-e8N5BSYf.js +37 -0
  461. package/dist/showcase/assets/image-9IQW7agU.js +1 -0
  462. package/dist/showcase/assets/inbox-DU4YaGtc.js +1 -0
  463. package/dist/showcase/assets/index-CuXjv2p6.css +2 -0
  464. package/dist/showcase/assets/index-DN09-Vts.js +10 -0
  465. package/dist/showcase/assets/inertValue-kRQb7jwi.js +1 -0
  466. package/dist/showcase/assets/info-B9AXwUDF.js +1 -0
  467. package/dist/showcase/assets/inline-stat-BkLIKCvD.js +1 -0
  468. package/dist/showcase/assets/inline-stat-XqGHDQrK.js +15 -0
  469. package/dist/showcase/assets/input-BXHv6p9P.js +1 -0
  470. package/dist/showcase/assets/input-D_T9s_tn.js +1 -0
  471. package/dist/showcase/assets/input-group-Bs8dmhR6.js +47 -0
  472. package/dist/showcase/assets/input-group-CqkASeoV.js +1 -0
  473. package/dist/showcase/assets/inputs-DY7w_ssI.js +155 -0
  474. package/dist/showcase/assets/installation-Dg3FdGJ1.js +134 -0
  475. package/dist/showcase/assets/invoice-header-Ba-Y55Ag.js +36 -0
  476. package/dist/showcase/assets/invoice-items-CIJ8EfPg.js +36 -0
  477. package/dist/showcase/assets/invoice-mini-BISFvM7J.js +14 -0
  478. package/dist/showcase/assets/invoice-table-DcyVZTvl.js +30 -0
  479. package/dist/showcase/assets/isSameDay-av07hGac.js +1 -0
  480. package/dist/showcase/assets/isToday-GY5FlPL9.js +1 -0
  481. package/dist/showcase/assets/italic-Du0n76Xk.js +1 -0
  482. package/dist/showcase/assets/item-D8Lp4R-T.js +139 -0
  483. package/dist/showcase/assets/item-DTsZnSJG.js +1 -0
  484. package/dist/showcase/assets/item-Di7HZF5G.js +1 -0
  485. package/dist/showcase/assets/kanban-Dcminjsa.js +188 -0
  486. package/dist/showcase/assets/key-round-BBue3xKx.js +1 -0
  487. package/dist/showcase/assets/label-dkUEHYaz.js +1 -0
  488. package/dist/showcase/assets/languages-XxP8Uu82.js +1 -0
  489. package/dist/showcase/assets/layers-Bi_-RuHS.js +1 -0
  490. package/dist/showcase/assets/layout-app-shell-Cr6Ep0Zz.js +608 -0
  491. package/dist/showcase/assets/layout-auth-DffIslnp.js +790 -0
  492. package/dist/showcase/assets/layout-containers-BuSg6L6o.js +101 -0
  493. package/dist/showcase/assets/layout-header-DAxSUI18.js +203 -0
  494. package/dist/showcase/assets/layout-page-CVgVJHf1.js +314 -0
  495. package/dist/showcase/assets/layout-primitives-q8NXbEld.js +34 -0
  496. package/dist/showcase/assets/layout-sidebar-bB6AJaGs.js +224 -0
  497. package/dist/showcase/assets/layout-users-DG5u517t.js +117 -0
  498. package/dist/showcase/assets/layout-workspace-CKMDUM2b.js +191 -0
  499. package/dist/showcase/assets/lib-CaQvPpSJ.js +1 -0
  500. package/dist/showcase/assets/list-checks-Dhr60VvL.js +1 -0
  501. package/dist/showcase/assets/lock-CYVbyBpM.js +1 -0
  502. package/dist/showcase/assets/lock-keyhole-TUVID45I.js +1 -0
  503. package/dist/showcase/assets/mail-DfkwmVKE.js +1 -0
  504. package/dist/showcase/assets/mail-check-CnBhgH_h.js +1 -0
  505. package/dist/showcase/assets/map-Ck14_o-F.js +124 -0
  506. package/dist/showcase/assets/map-pin-Di7TUhai.js +1 -0
  507. package/dist/showcase/assets/media-library-CzM_to29.js +699 -0
  508. package/dist/showcase/assets/mention-inline-suggestions-B1RHUfnH.js +1 -0
  509. package/dist/showcase/assets/mentions-CdaPXOLl.js +138 -0
  510. package/dist/showcase/assets/menus-DuqcLdg1.js +171 -0
  511. package/dist/showcase/assets/message-square-DuW3PrFI.js +1 -0
  512. package/dist/showcase/assets/metadata-list-CCRGSPaS.js +286 -0
  513. package/dist/showcase/assets/metadata-list-Drvz5mwy.js +1 -0
  514. package/dist/showcase/assets/metric-BSaXa3Z_.js +1 -0
  515. package/dist/showcase/assets/metric-bar-CM1Rmk8y.js +1 -0
  516. package/dist/showcase/assets/metric-grid-BBGxdYNJ.js +1 -0
  517. package/dist/showcase/assets/metric-trend-chip-C_LrbPyT.js +1 -0
  518. package/dist/showcase/assets/metrics-analytics-bar-ByvVltQV.js +44 -0
  519. package/dist/showcase/assets/metrics-analytics-cards-CNGiVG1A.js +50 -0
  520. package/dist/showcase/assets/metrics-comparison-BLUvtt5N.js +76 -0
  521. package/dist/showcase/assets/metrics-heatmap-CZWhn4_i.js +27 -0
  522. package/dist/showcase/assets/metrics-inline-badge-CcPm2_ON.js +17 -0
  523. package/dist/showcase/assets/metrics-kpi-row-CitG5Aea.js +31 -0
  524. package/dist/showcase/assets/metrics-micro-grid-CAsplRVI.js +42 -0
  525. package/dist/showcase/assets/metrics-overview-DSRwW-3j.js +192 -0
  526. package/dist/showcase/assets/metrics-stat-cards-BTdSpUV_.js +54 -0
  527. package/dist/showcase/assets/minus-BaXg6nPb.js +1 -0
  528. package/dist/showcase/assets/money-display-HegN6NVU.js +1 -0
  529. package/dist/showcase/assets/month-year-picker-DGSalGea.js +1 -0
  530. package/dist/showcase/assets/navigation-B9kcgNmJ.js +90 -0
  531. package/dist/showcase/assets/navigation-D4OJbw4T.js +231 -0
  532. package/dist/showcase/assets/navigation-extras-xm_wzPZr.js +43 -0
  533. package/dist/showcase/assets/onboarding-checklist-CWuCJKDd.js +119 -0
  534. package/dist/showcase/assets/overflow-tab-bar-Dq-I4MUu.js +1 -0
  535. package/dist/showcase/assets/overlays-BHf9SZOh.js +159 -0
  536. package/dist/showcase/assets/overlays-DziL3nVU.js +408 -0
  537. package/dist/showcase/assets/overview-Cc69up8i.js +184 -0
  538. package/dist/showcase/assets/package-Bc-NuFnd.js +1 -0
  539. package/dist/showcase/assets/package-check-5LQwCfGh.js +1 -0
  540. package/dist/showcase/assets/page-B2o5HSfY.js +1 -0
  541. package/dist/showcase/assets/page-action-button-CfS6vsyC.js +1 -0
  542. package/dist/showcase/assets/page-header-W6quU5pO.js +1 -0
  543. package/dist/showcase/assets/pagination-Bfs7Zszm.js +1 -0
  544. package/dist/showcase/assets/pagination-DHs104ji.js +42 -0
  545. package/dist/showcase/assets/paperclip-CXeiMywc.js +1 -0
  546. package/dist/showcase/assets/password-input-C61t743N.js +1 -0
  547. package/dist/showcase/assets/pencil-C1TXsTfP.js +1 -0
  548. package/dist/showcase/assets/phone-Bh-68R_E.js +1 -0
  549. package/dist/showcase/assets/plus-CKBaO4jG.js +1 -0
  550. package/dist/showcase/assets/popover-C_7qLizt.js +1 -0
  551. package/dist/showcase/assets/popover-hgtHqd0h.js +1 -0
  552. package/dist/showcase/assets/popover-menu-DmYSBsji.js +1 -0
  553. package/dist/showcase/assets/products-DSvcQz-Q.js +423 -0
  554. package/dist/showcase/assets/progress-Chxeo8g4.js +18 -0
  555. package/dist/showcase/assets/progress-fYPoCyf-.js +1 -0
  556. package/dist/showcase/assets/props-table-izArO1Pv.js +1 -0
  557. package/dist/showcase/assets/quote-wvfNu9t7.js +1 -0
  558. package/dist/showcase/assets/receipt-BlXBX4ZJ.js +1 -0
  559. package/dist/showcase/assets/receipt-text-stSsUTV5.js +1 -0
  560. package/dist/showcase/assets/refinement-guide-Bri81J9N.js +189 -0
  561. package/dist/showcase/assets/refresh-cw-tZzNDEGO.js +1 -0
  562. package/dist/showcase/assets/resolveValueLabel-Cti97iX8.js +1 -0
  563. package/dist/showcase/assets/resource-B727CTVi.js +139 -0
  564. package/dist/showcase/assets/resource-DytT_quB.js +1 -0
  565. package/dist/showcase/assets/resource-selector-card-wNuW382N.js +43 -0
  566. package/dist/showcase/assets/rich-text-editor-DdK5YD0y.js +143 -0
  567. package/dist/showcase/assets/rich-text-editor-DqY2H6e0.js +124 -0
  568. package/dist/showcase/assets/rotate-ccw-Bp4aMDrI.js +1 -0
  569. package/dist/showcase/assets/route-D2owHMka.js +1 -0
  570. package/dist/showcase/assets/save-DjC_iy0t.js +1 -0
  571. package/dist/showcase/assets/schema-form-CQtLwGC1.js +327 -0
  572. package/dist/showcase/assets/scroll-area-BQlHFfkG.js +32 -0
  573. package/dist/showcase/assets/scroll-area-D3Rrt85s.js +1 -0
  574. package/dist/showcase/assets/section-DYfGx1Q5.js +1 -0
  575. package/dist/showcase/assets/select-BCJGhRpc.js +1 -0
  576. package/dist/showcase/assets/select-Cf5EigqA.js +1 -0
  577. package/dist/showcase/assets/send-86Vr11Ys.js +1 -0
  578. package/dist/showcase/assets/separator-BHjNVb5O.js +1 -0
  579. package/dist/showcase/assets/separator-BejjbTbO.js +28 -0
  580. package/dist/showcase/assets/settings-2-DNNVOsjP.js +1 -0
  581. package/dist/showcase/assets/settings-Bsi5BLx5.js +1 -0
  582. package/dist/showcase/assets/sheet-BazhMvfb.js +1 -0
  583. package/dist/showcase/assets/shield-alert-D-Jbocfj.js +1 -0
  584. package/dist/showcase/assets/shield-check-D9eDVcJ1.js +1 -0
  585. package/dist/showcase/assets/shield-xI2P9G5d.js +1 -0
  586. package/dist/showcase/assets/shopping-bag-DOGs3sez.js +1 -0
  587. package/dist/showcase/assets/showcase-s-5CuLAJ.js +132 -0
  588. package/dist/showcase/assets/sidebar-Rz44gw_a.js +1 -0
  589. package/dist/showcase/assets/sidebar.context-Bbcdo3o8.js +1 -0
  590. package/dist/showcase/assets/skeleton-CY8ieqD-.js +1 -0
  591. package/dist/showcase/assets/skeleton-CgoH6CPT.js +29 -0
  592. package/dist/showcase/assets/slider-okW2bgkG.js +1 -0
  593. package/dist/showcase/assets/smart-card-CVwEPwfI.js +1 -0
  594. package/dist/showcase/assets/sonner-CixCpxj2.js +22 -0
  595. package/dist/showcase/assets/sortable.esm-DKcVtGTb.js +5 -0
  596. package/dist/showcase/assets/sparkles-DDEVdtmy.js +1 -0
  597. package/dist/showcase/assets/spinner-BVGPoAEv.js +49 -0
  598. package/dist/showcase/assets/spinner-FURXSp1Q.js +1 -0
  599. package/dist/showcase/assets/spinner-u6TwJ3Ii.js +30 -0
  600. package/dist/showcase/assets/square-pen-DVXVT0cQ.js +1 -0
  601. package/dist/showcase/assets/stacked-avatars-CKOQhAx4.js +1 -0
  602. package/dist/showcase/assets/star-B3ZPfxuz.js +1 -0
  603. package/dist/showcase/assets/startOfDay-LwMBRUSU.js +1 -0
  604. package/dist/showcase/assets/styles-UIKkojWJ.js +1 -0
  605. package/dist/showcase/assets/suggestions-DbrzKjbi.js +126 -0
  606. package/dist/showcase/assets/switch-CAw84QpS.js +1 -0
  607. package/dist/showcase/assets/switch-Cjt2MCgr.js +1 -0
  608. package/dist/showcase/assets/sync-DWbqfpBH.js +124 -0
  609. package/dist/showcase/assets/table-Bx5lo5FP.js +686 -0
  610. package/dist/showcase/assets/table-C2RQulDb.js +1 -0
  611. package/dist/showcase/assets/table-actions-Clo3WEfM.js +1 -0
  612. package/dist/showcase/assets/tabs-DRtlcg6b.js +19 -0
  613. package/dist/showcase/assets/tabs-wMPtvuT5.js +1 -0
  614. package/dist/showcase/assets/tags-input-D5FpWOWF.js +1 -0
  615. package/dist/showcase/assets/text-button-Cwh6D6qG.js +1 -0
  616. package/dist/showcase/assets/text-link-DI1uXdGl.js +1 -0
  617. package/dist/showcase/assets/textarea-CGbt4gBZ.js +1 -0
  618. package/dist/showcase/assets/textarea-JPgPLhyk.js +1 -0
  619. package/dist/showcase/assets/timelines-CkHN08n6.js +200 -0
  620. package/dist/showcase/assets/toggle-group-BpXkR9uD.js +1 -0
  621. package/dist/showcase/assets/toggles-DK9iCbki.js +71 -0
  622. package/dist/showcase/assets/toggles-group-DwzRj0f7.js +32 -0
  623. package/dist/showcase/assets/tooltip-PtP1suag.js +31 -0
  624. package/dist/showcase/assets/trash-2-BE4XUI2g.js +1 -0
  625. package/dist/showcase/assets/trending-up-ByxOf-nR.js +1 -0
  626. package/dist/showcase/assets/truck-RTOdcRV0.js +1 -0
  627. package/dist/showcase/assets/typography-BKLgHDxU.js +223 -0
  628. package/dist/showcase/assets/ui-badge-DIh_3Wmo.js +28 -0
  629. package/dist/showcase/assets/ui-card-BOdHnZwv.js +30 -0
  630. package/dist/showcase/assets/ui-table-BW4FCClv.js +42 -0
  631. package/dist/showcase/assets/upload-tray-CV9_5Lpa.js +138 -0
  632. package/dist/showcase/assets/use-layout-link-MyeE-CDj.js +1 -0
  633. package/dist/showcase/assets/useAnchoredPopupScrollLock-DSaog2w5.js +1 -0
  634. package/dist/showcase/assets/useAriaLabelledBy-DSpPzrxG.js +1 -0
  635. package/dist/showcase/assets/useCollapsiblePanel-DsuJtES0.js +1 -0
  636. package/dist/showcase/assets/useCompositeItem-lbAimLrR.js +1 -0
  637. package/dist/showcase/assets/useCompositeListItem-pRXWGj4x.js +1 -0
  638. package/dist/showcase/assets/useLabelableId-IRM1zB5m.js +1 -0
  639. package/dist/showcase/assets/useOpenInteractionType-CHDcTj9f.js +1 -0
  640. package/dist/showcase/assets/useRender-Ogz5zjeJ.js +1 -0
  641. package/dist/showcase/assets/useTriggerFocusGuards-Du6btFNB.js +1 -0
  642. package/dist/showcase/assets/useValueChanged-CXpsR4fl.js +1 -0
  643. package/dist/showcase/assets/user-plus-CLj8AZe1.js +1 -0
  644. package/dist/showcase/assets/user-ymdT26JK.js +1 -0
  645. package/dist/showcase/assets/users-BGba2Xwv.js +1 -0
  646. package/dist/showcase/assets/vendor-profile-Ci6c9mFC.js +37 -0
  647. package/dist/showcase/assets/video-BcKa36-p.js +1 -0
  648. package/dist/showcase/assets/wrench-Cj2hRrih.js +1 -0
  649. package/dist/showcase/assets/x-iCqjAC2D.js +1 -0
  650. package/dist/showcase/assets/zap-H4bc_OhS.js +1 -0
  651. package/dist/showcase/index.html +2 -2
  652. package/dist/style.css +1 -1
  653. package/package.json +1 -1
  654. package/src/css/tokens/foundation.css +19 -5
  655. package/dist/_shared/accordion-BRj4TDQx.js +0 -135
  656. package/dist/_shared/accordion-BRj4TDQx.js.map +0 -1
  657. package/dist/_shared/accordion-DvlDjk29.cjs +0 -2
  658. package/dist/_shared/accordion-DvlDjk29.cjs.map +0 -1
  659. package/dist/_shared/ai-artifact-BHgd3agA.js +0 -1099
  660. package/dist/_shared/ai-artifact-BHgd3agA.js.map +0 -1
  661. package/dist/_shared/ai-artifact-BRM5cvGv.cjs +0 -3
  662. package/dist/_shared/ai-artifact-BRM5cvGv.cjs.map +0 -1
  663. package/dist/_shared/alert-CMVVt2Br.js +0 -81
  664. package/dist/_shared/alert-CMVVt2Br.js.map +0 -1
  665. package/dist/_shared/alert-Dmhtbmpg.cjs +0 -2
  666. package/dist/_shared/alert-Dmhtbmpg.cjs.map +0 -1
  667. package/dist/_shared/auth-DZW6NkJx.cjs +0 -2
  668. package/dist/_shared/auth-DZW6NkJx.cjs.map +0 -1
  669. package/dist/_shared/auth-Dh790NI_.js +0 -643
  670. package/dist/_shared/auth-Dh790NI_.js.map +0 -1
  671. package/dist/_shared/badge-B8xGFpfM.cjs +0 -2
  672. package/dist/_shared/badge-B8xGFpfM.cjs.map +0 -1
  673. package/dist/_shared/badge-BYNwSWh5.js +0 -110
  674. package/dist/_shared/badge-BYNwSWh5.js.map +0 -1
  675. package/dist/_shared/card-radio-group-Bhe8gAbH.js +0 -150
  676. package/dist/_shared/card-radio-group-Bhe8gAbH.js.map +0 -1
  677. package/dist/_shared/card-radio-group-CdG1zr8M.cjs +0 -2
  678. package/dist/_shared/card-radio-group-CdG1zr8M.cjs.map +0 -1
  679. package/dist/_shared/cards-Cu6p1Brd.cjs +0 -2
  680. package/dist/_shared/cards-Cu6p1Brd.cjs.map +0 -1
  681. package/dist/_shared/cards-cQ9lL6zy.js +0 -354
  682. package/dist/_shared/cards-cQ9lL6zy.js.map +0 -1
  683. package/dist/_shared/combobox-BGYjyXeN.cjs +0 -2
  684. package/dist/_shared/combobox-BGYjyXeN.cjs.map +0 -1
  685. package/dist/_shared/combobox-DTwomOBt.js +0 -954
  686. package/dist/_shared/combobox-DTwomOBt.js.map +0 -1
  687. package/dist/_shared/command-ByedBajF.js +0 -39
  688. package/dist/_shared/command-ByedBajF.js.map +0 -1
  689. package/dist/_shared/command-EGR0nhGc.cjs +0 -2
  690. package/dist/_shared/command-EGR0nhGc.cjs.map +0 -1
  691. package/dist/_shared/comments-C97vL5km.js +0 -952
  692. package/dist/_shared/comments-C97vL5km.js.map +0 -1
  693. package/dist/_shared/comments-DBe6dP-d.cjs +0 -2
  694. package/dist/_shared/comments-DBe6dP-d.cjs.map +0 -1
  695. package/dist/_shared/copyable-BgFdERqs.js +0 -38
  696. package/dist/_shared/copyable-BgFdERqs.js.map +0 -1
  697. package/dist/_shared/copyable-Ce8rmE-V.cjs +0 -2
  698. package/dist/_shared/copyable-Ce8rmE-V.cjs.map +0 -1
  699. package/dist/_shared/data-display-DUWxoDKq.js +0 -1873
  700. package/dist/_shared/data-display-DUWxoDKq.js.map +0 -1
  701. package/dist/_shared/data-display-o-rbMuIA.cjs +0 -2
  702. package/dist/_shared/data-display-o-rbMuIA.cjs.map +0 -1
  703. package/dist/_shared/date-picker-Cxx9jllA.js +0 -1361
  704. package/dist/_shared/date-picker-Cxx9jllA.js.map +0 -1
  705. package/dist/_shared/date-picker-DE5A8yqN.cjs +0 -2
  706. package/dist/_shared/date-picker-DE5A8yqN.cjs.map +0 -1
  707. package/dist/_shared/date-pickers-Dex1Mfye.cjs +0 -2
  708. package/dist/_shared/date-pickers-Dex1Mfye.cjs.map +0 -1
  709. package/dist/_shared/date-pickers-m0dpDcqH.js +0 -329
  710. package/dist/_shared/date-pickers-m0dpDcqH.js.map +0 -1
  711. package/dist/_shared/display-Bro3Kufg.js +0 -986
  712. package/dist/_shared/display-Bro3Kufg.js.map +0 -1
  713. package/dist/_shared/display-CRQjSjgB.cjs +0 -2
  714. package/dist/_shared/display-CRQjSjgB.cjs.map +0 -1
  715. package/dist/_shared/forms-D-SNQmtB.cjs +0 -2
  716. package/dist/_shared/forms-D-SNQmtB.cjs.map +0 -1
  717. package/dist/_shared/forms-p7cfzJwf.js +0 -3533
  718. package/dist/_shared/forms-p7cfzJwf.js.map +0 -1
  719. package/dist/_shared/header-8C71wVRp.js +0 -447
  720. package/dist/_shared/header-8C71wVRp.js.map +0 -1
  721. package/dist/_shared/header-CYgFCnjZ.cjs +0 -2
  722. package/dist/_shared/header-CYgFCnjZ.cjs.map +0 -1
  723. package/dist/_shared/hooks-Ci1LFWRG.js +0 -95
  724. package/dist/_shared/hooks-Ci1LFWRG.js.map +0 -1
  725. package/dist/_shared/hooks-Cjl7LJpn.cjs +0 -2
  726. package/dist/_shared/hooks-Cjl7LJpn.cjs.map +0 -1
  727. package/dist/_shared/input-BgcP6x4C.js +0 -182
  728. package/dist/_shared/input-BgcP6x4C.js.map +0 -1
  729. package/dist/_shared/input-DV3g7Fm5.cjs +0 -2
  730. package/dist/_shared/input-DV3g7Fm5.cjs.map +0 -1
  731. package/dist/_shared/item-D7GTzvhf.js +0 -226
  732. package/dist/_shared/item-D7GTzvhf.js.map +0 -1
  733. package/dist/_shared/item-DTrnHpfm.cjs +0 -2
  734. package/dist/_shared/item-DTrnHpfm.cjs.map +0 -1
  735. package/dist/_shared/layout-BExg7Vlx.js +0 -261
  736. package/dist/_shared/layout-BExg7Vlx.js.map +0 -1
  737. package/dist/_shared/layout-CKRD_goE.cjs +0 -2
  738. package/dist/_shared/layout-CKRD_goE.cjs.map +0 -1
  739. package/dist/_shared/mentions-BtGhYisA.js +0 -506
  740. package/dist/_shared/mentions-BtGhYisA.js.map +0 -1
  741. package/dist/_shared/mentions-CnVOuQJU.cjs +0 -2
  742. package/dist/_shared/mentions-CnVOuQJU.cjs.map +0 -1
  743. package/dist/_shared/money-display-BvVpRUs5.cjs +0 -2
  744. package/dist/_shared/money-display-BvVpRUs5.cjs.map +0 -1
  745. package/dist/_shared/money-display-D6Qtvyyv.js +0 -198
  746. package/dist/_shared/money-display-D6Qtvyyv.js.map +0 -1
  747. package/dist/_shared/navigation-C4dO1I82.cjs +0 -2
  748. package/dist/_shared/navigation-C4dO1I82.cjs.map +0 -1
  749. package/dist/_shared/navigation-Ct-LFlpY.js +0 -436
  750. package/dist/_shared/navigation-Ct-LFlpY.js.map +0 -1
  751. package/dist/_shared/overlays-ChyqXn0n.js +0 -735
  752. package/dist/_shared/overlays-ChyqXn0n.js.map +0 -1
  753. package/dist/_shared/overlays-Dn2bt3CL.cjs +0 -2
  754. package/dist/_shared/overlays-Dn2bt3CL.cjs.map +0 -1
  755. package/dist/_shared/popover-menu-17Dxn25O.js +0 -93
  756. package/dist/_shared/popover-menu-17Dxn25O.js.map +0 -1
  757. package/dist/_shared/popover-menu-DXVN0bvj.cjs +0 -2
  758. package/dist/_shared/popover-menu-DXVN0bvj.cjs.map +0 -1
  759. package/dist/_shared/rich-text-editor-BRpcNkj1.js +0 -620
  760. package/dist/_shared/rich-text-editor-BRpcNkj1.js.map +0 -1
  761. package/dist/_shared/rich-text-editor-BXxGNbmI.cjs +0 -2
  762. package/dist/_shared/rich-text-editor-BXxGNbmI.cjs.map +0 -1
  763. package/dist/_shared/settings-CW9yzfQM.js +0 -143
  764. package/dist/_shared/settings-CW9yzfQM.js.map +0 -1
  765. package/dist/_shared/settings-cCPrw7si.cjs +0 -2
  766. package/dist/_shared/settings-cCPrw7si.cjs.map +0 -1
  767. package/dist/_shared/sidebar-Cq6J_I4l.cjs +0 -2
  768. package/dist/_shared/sidebar-Cq6J_I4l.cjs.map +0 -1
  769. package/dist/_shared/sidebar-DtF_ihE3.js +0 -548
  770. package/dist/_shared/sidebar-DtF_ihE3.js.map +0 -1
  771. package/dist/_shared/spinner-DY2de3Wt.cjs +0 -2
  772. package/dist/_shared/spinner-DY2de3Wt.cjs.map +0 -1
  773. package/dist/_shared/spinner-ZmIq_zsx.js +0 -67
  774. package/dist/_shared/spinner-ZmIq_zsx.js.map +0 -1
  775. package/dist/_shared/table-BBWc-wIw.js +0 -1377
  776. package/dist/_shared/table-BBWc-wIw.js.map +0 -1
  777. package/dist/_shared/table-DMDkdLzV.cjs +0 -2
  778. package/dist/_shared/table-DMDkdLzV.cjs.map +0 -1
  779. package/dist/_shared/textarea-C1TeJ7Vt.cjs +0 -2
  780. package/dist/_shared/textarea-C1TeJ7Vt.cjs.map +0 -1
  781. package/dist/_shared/textarea-CGRkgH5z.js +0 -118
  782. package/dist/_shared/textarea-CGRkgH5z.js.map +0 -1
  783. package/dist/_shared/typography-CzFVA1w1.js +0 -201
  784. package/dist/_shared/typography-CzFVA1w1.js.map +0 -1
  785. package/dist/_shared/typography-GtkgK9QX.cjs +0 -2
  786. package/dist/_shared/typography-GtkgK9QX.cjs.map +0 -1
  787. package/dist/_shared/workspace-BF5BtDhD.cjs +0 -2
  788. package/dist/_shared/workspace-BF5BtDhD.cjs.map +0 -1
  789. package/dist/_shared/workspace-IvsczduM.js +0 -357
  790. package/dist/_shared/workspace-IvsczduM.js.map +0 -1
  791. package/dist/showcase/assets/AreaChart-CsIm9z7Y.js +0 -6
  792. package/dist/showcase/assets/CompositeItem-D9zznn01.js +0 -1
  793. package/dist/showcase/assets/CompositeRoot-CvxtZ81W.js +0 -1
  794. package/dist/showcase/assets/DialogTrigger-C-osQGHu.js +0 -1
  795. package/dist/showcase/assets/LabelableContext-_EE-HBND.js +0 -1
  796. package/dist/showcase/assets/PreviewLayout-KdEsSl3b.js +0 -1
  797. package/dist/showcase/assets/RadioGroup-4jOeNTc1.js +0 -1
  798. package/dist/showcase/assets/ScrollAreaCorner-CXTdUcaE.js +0 -1
  799. package/dist/showcase/assets/Separator-CHVXO6nj.js +0 -1
  800. package/dist/showcase/assets/ToolbarRootContext-CM5tQGGX.js +0 -1
  801. package/dist/showcase/assets/accordion-CA84bxb2.js +0 -171
  802. package/dist/showcase/assets/accordion-variants-DqWzAOO3.js +0 -1
  803. package/dist/showcase/assets/action-menu-D0q5z-Kq.js +0 -1
  804. package/dist/showcase/assets/actions-DnqxABJU.js +0 -310
  805. package/dist/showcase/assets/activities-BC9hoMy9.js +0 -500
  806. package/dist/showcase/assets/activities-feed-card-D6wGLpbH.js +0 -1
  807. package/dist/showcase/assets/admin-CMnMsugJ.js +0 -140
  808. package/dist/showcase/assets/ai-B6_sE9Zg.js +0 -207
  809. package/dist/showcase/assets/ai-artifact-BVvbsSJB.js +0 -2
  810. package/dist/showcase/assets/ai-chat-lcXeqJrA.js +0 -568
  811. package/dist/showcase/assets/ai-elements-B32o_UjE.js +0 -387
  812. package/dist/showcase/assets/ai-tool-call-BLrAioKz.js +0 -1
  813. package/dist/showcase/assets/alert-B1p1Grce.js +0 -62
  814. package/dist/showcase/assets/alert-BBiffYsY.js +0 -93
  815. package/dist/showcase/assets/alert-vH0nJ8J9.js +0 -1
  816. package/dist/showcase/assets/api-key-list-BrSc6V1y.js +0 -1
  817. package/dist/showcase/assets/api-key-list-CoKe_PaL.js +0 -73
  818. package/dist/showcase/assets/app-sidebar-R93lRPB4.js +0 -1
  819. package/dist/showcase/assets/arrow-down-xxVIADbv.js +0 -1
  820. package/dist/showcase/assets/arrow-left-DxnlnN8R.js +0 -1
  821. package/dist/showcase/assets/arrow-right-S5k93UPM.js +0 -1
  822. package/dist/showcase/assets/arrow-up-OlEVG7a-.js +0 -1
  823. package/dist/showcase/assets/arrow-up-right-j55bbl4b.js +0 -1
  824. package/dist/showcase/assets/avatar-BbiXvZq7.js +0 -67
  825. package/dist/showcase/assets/avatar-Bwpw-hQo.js +0 -57
  826. package/dist/showcase/assets/avatar-D0DKQ1lK.js +0 -1
  827. package/dist/showcase/assets/avatar-WyjSBov9.js +0 -1
  828. package/dist/showcase/assets/badge-BzLZQO3L.js +0 -31
  829. package/dist/showcase/assets/badge-check-TFWm1m3F.js +0 -1
  830. package/dist/showcase/assets/bell-CmuQlO_k.js +0 -1
  831. package/dist/showcase/assets/bot-Bu518AJB.js +0 -1
  832. package/dist/showcase/assets/box-D-wrSdOJ.js +0 -1
  833. package/dist/showcase/assets/braces-CgCdmdAl.js +0 -1
  834. package/dist/showcase/assets/brain-DkHdwgHO.js +0 -1
  835. package/dist/showcase/assets/brand-CpovnVoG.js +0 -36
  836. package/dist/showcase/assets/breadcrumb-BUc0WC5d.js +0 -1
  837. package/dist/showcase/assets/breadcrumb-Do_Dazt1.js +0 -52
  838. package/dist/showcase/assets/breadcrumbs-Bj21o2zm.js +0 -1
  839. package/dist/showcase/assets/briefcase-CQBh2kok.js +0 -1
  840. package/dist/showcase/assets/building-2-D07Ej6iR.js +0 -1
  841. package/dist/showcase/assets/button-CCZ4KEGQ.js +0 -44
  842. package/dist/showcase/assets/button-group-BTjeHOvz.js +0 -1
  843. package/dist/showcase/assets/buttons-D45Wwiwn.js +0 -272
  844. package/dist/showcase/assets/calendar-BsEWULmZ.js +0 -16
  845. package/dist/showcase/assets/calendar-CkPefzIO.js +0 -1
  846. package/dist/showcase/assets/calendar-DZlT3qTq.js +0 -1
  847. package/dist/showcase/assets/calendar-days-C9awTMru.js +0 -1
  848. package/dist/showcase/assets/camera-CQhMw-RD.js +0 -1
  849. package/dist/showcase/assets/card-CKrz_UHt.js +0 -1
  850. package/dist/showcase/assets/card-DZgZgjXO.js +0 -188
  851. package/dist/showcase/assets/card-primitives-CpkDLK3Y.js +0 -1
  852. package/dist/showcase/assets/card-radio-group-BjXwMI4v.js +0 -1
  853. package/dist/showcase/assets/cards-Cd24XZ9l.js +0 -353
  854. package/dist/showcase/assets/carousel-Doon04yO.js +0 -449
  855. package/dist/showcase/assets/cell-renderers-CTay3duH.js +0 -1
  856. package/dist/showcase/assets/chart-CkvbdpWw.js +0 -358
  857. package/dist/showcase/assets/chart-column-Dz57kUMl.js +0 -1
  858. package/dist/showcase/assets/checkbox-L-L4-wvA.js +0 -1
  859. package/dist/showcase/assets/checkbox-sP254E7e.js +0 -1
  860. package/dist/showcase/assets/chevron-down-CLc_a2Ua.js +0 -1
  861. package/dist/showcase/assets/chevron-left-CMRIGOJt.js +0 -1
  862. package/dist/showcase/assets/chevron-up-BDw6LdDZ.js +0 -1
  863. package/dist/showcase/assets/chevrons-up-down-C519RKki.js +0 -1
  864. package/dist/showcase/assets/circle-B_tOHWTY.js +0 -1
  865. package/dist/showcase/assets/circle-alert-B56AFULT.js +0 -1
  866. package/dist/showcase/assets/circle-check-B4XZj4Ty.js +0 -1
  867. package/dist/showcase/assets/circle-check-big-C0iEkwPB.js +0 -1
  868. package/dist/showcase/assets/circle-dot-DPdJZkc6.js +0 -1
  869. package/dist/showcase/assets/circle-question-mark-LTetdrq6.js +0 -1
  870. package/dist/showcase/assets/circle-x-B4FwM-sI.js +0 -1
  871. package/dist/showcase/assets/clock-3-DZhjBuw8.js +0 -1
  872. package/dist/showcase/assets/clock-B9Fna2Q3.js +0 -1
  873. package/dist/showcase/assets/code-xml-B6Xb_vIg.js +0 -1
  874. package/dist/showcase/assets/collapsible-Bf7Oo37i.js +0 -27
  875. package/dist/showcase/assets/collapsible-BfLeooy8.js +0 -1
  876. package/dist/showcase/assets/combobox-4NYfJznY.js +0 -685
  877. package/dist/showcase/assets/command-7jRRucHf.js +0 -1
  878. package/dist/showcase/assets/command-D56CjgNc.js +0 -1
  879. package/dist/showcase/assets/comment-composer-BWeXIZfK.js +0 -1
  880. package/dist/showcase/assets/comment-item-ChkiK-ut.js +0 -1
  881. package/dist/showcase/assets/comments-YnEop7v3.js +0 -357
  882. package/dist/showcase/assets/commerce-7XxWJChs.js +0 -267
  883. package/dist/showcase/assets/composite-CHcyYCsk.js +0 -1
  884. package/dist/showcase/assets/contact-card-BXw-VuBm.js +0 -65
  885. package/dist/showcase/assets/content-container-C4uopCBg.js +0 -1
  886. package/dist/showcase/assets/copyable-CjVYEJ0P.js +0 -1
  887. package/dist/showcase/assets/copyable-Cz2jW7yL.js +0 -96
  888. package/dist/showcase/assets/course-card-CvK3dw9W.js +0 -77
  889. package/dist/showcase/assets/cpu-Vk5WgcC1.js +0 -1
  890. package/dist/showcase/assets/credit-card-CaigqZGk.js +0 -1
  891. package/dist/showcase/assets/css-variables-hLaBmeMt.js +0 -1190
  892. package/dist/showcase/assets/currency-yO1giHp1.js +0 -149
  893. package/dist/showcase/assets/dark-surfaces-BPQnyk9a.js +0 -90
  894. package/dist/showcase/assets/data-view-CjjXn5VT.js +0 -124
  895. package/dist/showcase/assets/data-view-DF0n8uva.js +0 -4
  896. package/dist/showcase/assets/database-ChUBDe8E.js +0 -1
  897. package/dist/showcase/assets/date-block-DUg1Oyn4.js +0 -1
  898. package/dist/showcase/assets/date-picker-CoQPZa34.js +0 -1
  899. package/dist/showcase/assets/date-pickers-B-IUbyXw.js +0 -73
  900. package/dist/showcase/assets/dense-info-zVQSWqOU.js +0 -106
  901. package/dist/showcase/assets/design-system-consistency-Bnz_h3-6.js +0 -264
  902. package/dist/showcase/assets/dialog-BtilpgxJ.js +0 -1
  903. package/dist/showcase/assets/dialog-kf9WwmTC.js +0 -1
  904. package/dist/showcase/assets/display-utilities-BBzG5EPX.js +0 -267
  905. package/dist/showcase/assets/dist-9gFIhkw-.js +0 -45
  906. package/dist/showcase/assets/dist-CGpz_7Mu.js +0 -1
  907. package/dist/showcase/assets/dollar-sign-CWbYI3Pd.js +0 -1
  908. package/dist/showcase/assets/download-Bt_z-poH.js +0 -1
  909. package/dist/showcase/assets/dropdown-menu-C1_SYTHm.js +0 -1
  910. package/dist/showcase/assets/dropzone-D5BGVTnl.js +0 -1
  911. package/dist/showcase/assets/earth-sP5mIgG3.js +0 -1
  912. package/dist/showcase/assets/ellipsis-vertical-BD7kMOzj.js +0 -1
  913. package/dist/showcase/assets/ellipsis-yqIF49C8.js +0 -1
  914. package/dist/showcase/assets/empty-DIrJgtrh.js +0 -1
  915. package/dist/showcase/assets/empty-item-GgnZk2yf.js +0 -49
  916. package/dist/showcase/assets/empty-state-ZGKkJ6sf.js +0 -190
  917. package/dist/showcase/assets/empty-state-n_Fspzt-.js +0 -1
  918. package/dist/showcase/assets/enhanced-activities-CCw_hZnZ.js +0 -357
  919. package/dist/showcase/assets/enhanced-combobox-bBF-ADDs.js +0 -1
  920. package/dist/showcase/assets/esm-CyFPn936.js +0 -2
  921. package/dist/showcase/assets/event-calendar-Czo7yBDx.js +0 -138
  922. package/dist/showcase/assets/event-log-DJ3B3nMV.js +0 -330
  923. package/dist/showcase/assets/example-eGsLGIcp.js +0 -1
  924. package/dist/showcase/assets/external-link-DPOQEVWH.js +0 -1
  925. package/dist/showcase/assets/eye-CN92NVL0.js +0 -1
  926. package/dist/showcase/assets/feature-announcement-BXkSW17e.js +0 -34
  927. package/dist/showcase/assets/file-CFHePlKG.js +0 -1
  928. package/dist/showcase/assets/file-text--WYCYQMw.js +0 -1
  929. package/dist/showcase/assets/filter-layout-B35gGmcO.js +0 -1
  930. package/dist/showcase/assets/filters-GDW_oiT3.js +0 -139
  931. package/dist/showcase/assets/flag-XsT9XFPr.js +0 -1
  932. package/dist/showcase/assets/folder-open-RtsQ8vxf.js +0 -1
  933. package/dist/showcase/assets/form-field-Bijd1Gex.js +0 -1
  934. package/dist/showcase/assets/format-Ckw4OM66.js +0 -1
  935. package/dist/showcase/assets/forms-00bU7LN8.js +0 -915
  936. package/dist/showcase/assets/funnel-qu25WlXD.js +0 -1
  937. package/dist/showcase/assets/generic-Bf82Wiol.js +0 -1
  938. package/dist/showcase/assets/getPseudoElementBounds-BR4_m2HH.js +0 -1
  939. package/dist/showcase/assets/gift-D4GQoqzV.js +0 -1
  940. package/dist/showcase/assets/giftcard-cards-CMutwaAY.js +0 -85
  941. package/dist/showcase/assets/git-branch-B2QG2zRg.js +0 -1
  942. package/dist/showcase/assets/global-search-CRAB9TSF.js +0 -1
  943. package/dist/showcase/assets/global-search-DY0cKfhY.js +0 -215
  944. package/dist/showcase/assets/globe-BxZW28rG.js +0 -1
  945. package/dist/showcase/assets/gradient-card-CQGnXG8r.js +0 -58
  946. package/dist/showcase/assets/hash-CsRtIoKK.js +0 -1
  947. package/dist/showcase/assets/header-DzYOgZLP.js +0 -1
  948. package/dist/showcase/assets/header-notifications-D_CJPbvs.js +0 -1
  949. package/dist/showcase/assets/heart-B2YsYprq.js +0 -1
  950. package/dist/showcase/assets/hooks-BhUMA4Tb.js +0 -220
  951. package/dist/showcase/assets/house-HeRFNhI0.js +0 -1
  952. package/dist/showcase/assets/icon-badge-CpDkc-S0.js +0 -37
  953. package/dist/showcase/assets/icon-badge-eNEGgpAV.js +0 -1
  954. package/dist/showcase/assets/image-T88JyDag.js +0 -1
  955. package/dist/showcase/assets/inbox-DLrLLnTR.js +0 -1
  956. package/dist/showcase/assets/index-DDZl6kOS.js +0 -10
  957. package/dist/showcase/assets/index-nOkXemgw.css +0 -2
  958. package/dist/showcase/assets/inertValue-BajuuRy4.js +0 -1
  959. package/dist/showcase/assets/info-CNYfw2Yz.js +0 -1
  960. package/dist/showcase/assets/inline-stat-BN6yhDR5.js +0 -15
  961. package/dist/showcase/assets/inline-stat-Bqw3lVfk.js +0 -1
  962. package/dist/showcase/assets/input-C-9K6F0N.js +0 -1
  963. package/dist/showcase/assets/input-DaZzfkZV.js +0 -1
  964. package/dist/showcase/assets/input-group-DE-Xdhv4.js +0 -1
  965. package/dist/showcase/assets/input-group-DIQZnytn.js +0 -47
  966. package/dist/showcase/assets/inputs-Cl_JgSR4.js +0 -155
  967. package/dist/showcase/assets/installation-DdhD4Dkq.js +0 -134
  968. package/dist/showcase/assets/invoice-header-DOs2ACqQ.js +0 -36
  969. package/dist/showcase/assets/invoice-items-1EuA62mF.js +0 -36
  970. package/dist/showcase/assets/invoice-mini-vCrYEtWp.js +0 -14
  971. package/dist/showcase/assets/invoice-table--mDTs1Iz.js +0 -30
  972. package/dist/showcase/assets/isSameDay-BNB1yam4.js +0 -1
  973. package/dist/showcase/assets/isToday-BugOpGJC.js +0 -1
  974. package/dist/showcase/assets/italic-Ck4UD2ZT.js +0 -1
  975. package/dist/showcase/assets/item-BcesxqFS.js +0 -139
  976. package/dist/showcase/assets/item-BgPlwUMv.js +0 -1
  977. package/dist/showcase/assets/item-CB9k_rmo.js +0 -1
  978. package/dist/showcase/assets/kanban-cPuSVqWY.js +0 -188
  979. package/dist/showcase/assets/key-round-BmYjd5dk.js +0 -1
  980. package/dist/showcase/assets/label-BTIBJBqN.js +0 -1
  981. package/dist/showcase/assets/languages-he6FNXRs.js +0 -1
  982. package/dist/showcase/assets/layers-B_48DtOz.js +0 -1
  983. package/dist/showcase/assets/layout-app-shell-zwLv6jTP.js +0 -608
  984. package/dist/showcase/assets/layout-auth-2Zv5lr52.js +0 -790
  985. package/dist/showcase/assets/layout-containers-Dzw3xlKn.js +0 -101
  986. package/dist/showcase/assets/layout-header-TJ-WVmG3.js +0 -203
  987. package/dist/showcase/assets/layout-page-CIVQCKXK.js +0 -314
  988. package/dist/showcase/assets/layout-primitives-i_O81fzT.js +0 -34
  989. package/dist/showcase/assets/layout-sidebar-eH_pwBq_.js +0 -224
  990. package/dist/showcase/assets/layout-users-CWSaFBLj.js +0 -117
  991. package/dist/showcase/assets/layout-workspace-w3oe32GE.js +0 -191
  992. package/dist/showcase/assets/lib-CoS0xjP8.js +0 -1
  993. package/dist/showcase/assets/list-checks-DecRPpK3.js +0 -1
  994. package/dist/showcase/assets/lock-D9f8uXol.js +0 -1
  995. package/dist/showcase/assets/lock-keyhole-C20eixH6.js +0 -1
  996. package/dist/showcase/assets/mail-CVgP8Qlo.js +0 -1
  997. package/dist/showcase/assets/mail-check-mplTKcSH.js +0 -1
  998. package/dist/showcase/assets/map-B6OGeOup.js +0 -124
  999. package/dist/showcase/assets/map-pin-BZXSwrzT.js +0 -1
  1000. package/dist/showcase/assets/media-library-DSlVIM1Q.js +0 -699
  1001. package/dist/showcase/assets/mention-inline-suggestions-CNAEeXgy.js +0 -1
  1002. package/dist/showcase/assets/mentions-Cb3g4hDN.js +0 -138
  1003. package/dist/showcase/assets/menus-CE0Hlj8N.js +0 -171
  1004. package/dist/showcase/assets/message-square-HliU8vbW.js +0 -1
  1005. package/dist/showcase/assets/metadata-list-CJ5v5Bvc.js +0 -286
  1006. package/dist/showcase/assets/metadata-list-DY92-pw2.js +0 -1
  1007. package/dist/showcase/assets/metric-DxMTjIvU.js +0 -1
  1008. package/dist/showcase/assets/metric-bar-cW9nWCRl.js +0 -1
  1009. package/dist/showcase/assets/metric-grid-CvfO52X1.js +0 -1
  1010. package/dist/showcase/assets/metric-trend-chip-BmjQdRus.js +0 -1
  1011. package/dist/showcase/assets/metrics-analytics-bar-BZqB5d1y.js +0 -44
  1012. package/dist/showcase/assets/metrics-analytics-cards-jAhlrQCI.js +0 -50
  1013. package/dist/showcase/assets/metrics-comparison-DURZ6qEL.js +0 -76
  1014. package/dist/showcase/assets/metrics-heatmap-HhJDBguh.js +0 -27
  1015. package/dist/showcase/assets/metrics-inline-badge-Dq5k-P6F.js +0 -17
  1016. package/dist/showcase/assets/metrics-kpi-row-DXzhwa6z.js +0 -31
  1017. package/dist/showcase/assets/metrics-micro-grid-C6O5b0wP.js +0 -42
  1018. package/dist/showcase/assets/metrics-overview-Hv2mseb3.js +0 -192
  1019. package/dist/showcase/assets/metrics-stat-cards-CW42vBCS.js +0 -54
  1020. package/dist/showcase/assets/minus-BW62vCxf.js +0 -1
  1021. package/dist/showcase/assets/money-display-CAdGk5Lr.js +0 -1
  1022. package/dist/showcase/assets/month-year-picker-dHuvgz1E.js +0 -1
  1023. package/dist/showcase/assets/navigation-C4uSLvbZ.js +0 -90
  1024. package/dist/showcase/assets/navigation-SjsZrtIc.js +0 -231
  1025. package/dist/showcase/assets/navigation-extras-CMVNVskk.js +0 -43
  1026. package/dist/showcase/assets/onboarding-checklist-C1jwRdMU.js +0 -119
  1027. package/dist/showcase/assets/overflow-tab-bar-BYFLpl5w.js +0 -1
  1028. package/dist/showcase/assets/overlays-0Y8MAz39.js +0 -159
  1029. package/dist/showcase/assets/overlays-ClOnjahL.js +0 -408
  1030. package/dist/showcase/assets/overview-B5ztGmTp.js +0 -184
  1031. package/dist/showcase/assets/package-check-MeSw6bS4.js +0 -1
  1032. package/dist/showcase/assets/package-vYJ0q0QM.js +0 -1
  1033. package/dist/showcase/assets/page-4lMKtBQ7.js +0 -1
  1034. package/dist/showcase/assets/page-action-button-C5-TGSzy.js +0 -1
  1035. package/dist/showcase/assets/page-header-C_-KYryO.js +0 -1
  1036. package/dist/showcase/assets/pagination-D3L3Iwus.js +0 -1
  1037. package/dist/showcase/assets/pagination-dZXPxwHx.js +0 -42
  1038. package/dist/showcase/assets/paperclip-BZhdPOw8.js +0 -1
  1039. package/dist/showcase/assets/password-input-CDSMtGxt.js +0 -1
  1040. package/dist/showcase/assets/pencil-DiYr3CZ9.js +0 -1
  1041. package/dist/showcase/assets/phone-Dm5qzlG8.js +0 -1
  1042. package/dist/showcase/assets/plus-pfGaA3St.js +0 -1
  1043. package/dist/showcase/assets/popover-CjVWDO7C.js +0 -1
  1044. package/dist/showcase/assets/popover-menu-JcZyGV3Y.js +0 -1
  1045. package/dist/showcase/assets/popover-pZ4Jbp0s.js +0 -1
  1046. package/dist/showcase/assets/products-C62MKtAR.js +0 -423
  1047. package/dist/showcase/assets/progress-Btw-ZUaU.js +0 -18
  1048. package/dist/showcase/assets/progress-DpB5LL6R.js +0 -1
  1049. package/dist/showcase/assets/props-table-Bjc9IHmp.js +0 -1
  1050. package/dist/showcase/assets/quote-DcxVd1fj.js +0 -1
  1051. package/dist/showcase/assets/receipt-BHns-S5Q.js +0 -1
  1052. package/dist/showcase/assets/receipt-text-L0aYasyt.js +0 -1
  1053. package/dist/showcase/assets/refinement-guide-BBOGBJ4I.js +0 -189
  1054. package/dist/showcase/assets/refresh-cw-z6mlm0HI.js +0 -1
  1055. package/dist/showcase/assets/resolveValueLabel-hsarzg5A.js +0 -1
  1056. package/dist/showcase/assets/resource-CIn_zKZ4.js +0 -139
  1057. package/dist/showcase/assets/resource-DxktLgEK.js +0 -1
  1058. package/dist/showcase/assets/resource-selector-card-dkcEQ6bl.js +0 -43
  1059. package/dist/showcase/assets/rich-text-editor-Dd-rWisw.js +0 -124
  1060. package/dist/showcase/assets/rich-text-editor-DvJMFj48.js +0 -143
  1061. package/dist/showcase/assets/rotate-ccw-DEz6nb5P.js +0 -1
  1062. package/dist/showcase/assets/route-BeXaXTk8.js +0 -1
  1063. package/dist/showcase/assets/save-EE7Tc5OT.js +0 -1
  1064. package/dist/showcase/assets/schema-form-RK9Zpz1E.js +0 -327
  1065. package/dist/showcase/assets/scroll-area-BejQJ0Q1.js +0 -32
  1066. package/dist/showcase/assets/scroll-area-DS8LJ7LG.js +0 -1
  1067. package/dist/showcase/assets/section-Cv8i4DIx.js +0 -1
  1068. package/dist/showcase/assets/select-Cuy3YKW9.js +0 -1
  1069. package/dist/showcase/assets/select-qFy1jm91.js +0 -1
  1070. package/dist/showcase/assets/send-CXv0ST9u.js +0 -1
  1071. package/dist/showcase/assets/separator-CecGyBaV.js +0 -1
  1072. package/dist/showcase/assets/separator-CqtFQXrk.js +0 -28
  1073. package/dist/showcase/assets/settings-2-CCeMwMOj.js +0 -1
  1074. package/dist/showcase/assets/settings-CXjN6wTC.js +0 -1
  1075. package/dist/showcase/assets/sheet-Csyrmkqp.js +0 -1
  1076. package/dist/showcase/assets/shield-DR0ZfAFA.js +0 -1
  1077. package/dist/showcase/assets/shield-alert-Bp1iFJ2q.js +0 -1
  1078. package/dist/showcase/assets/shield-check-ClL4B_Cd.js +0 -1
  1079. package/dist/showcase/assets/shopping-bag-DnSmbPUX.js +0 -1
  1080. package/dist/showcase/assets/showcase-CQKt5VGi.js +0 -132
  1081. package/dist/showcase/assets/sidebar-CXy94md1.js +0 -1
  1082. package/dist/showcase/assets/sidebar.context-C8gkOwJ5.js +0 -1
  1083. package/dist/showcase/assets/skeleton-B8wC5P66.js +0 -29
  1084. package/dist/showcase/assets/skeleton-DBlCLlBC.js +0 -1
  1085. package/dist/showcase/assets/slider-BcjkNx6W.js +0 -1
  1086. package/dist/showcase/assets/smart-card-Cg6rtWH9.js +0 -1
  1087. package/dist/showcase/assets/sonner-ZGBQ13wS.js +0 -22
  1088. package/dist/showcase/assets/sortable.esm-CGFWc-Cn.js +0 -5
  1089. package/dist/showcase/assets/sparkles-q1-9JZqa.js +0 -1
  1090. package/dist/showcase/assets/spinner-CKg8QLHu.js +0 -1
  1091. package/dist/showcase/assets/spinner-D1Ao9j9T.js +0 -49
  1092. package/dist/showcase/assets/spinner-oahLIkgb.js +0 -30
  1093. package/dist/showcase/assets/square-pen-DZ3bQJia.js +0 -1
  1094. package/dist/showcase/assets/stacked-avatars-CKPtb3Hj.js +0 -1
  1095. package/dist/showcase/assets/star-suetD-KI.js +0 -1
  1096. package/dist/showcase/assets/startOfDay-OjIsUeiv.js +0 -1
  1097. package/dist/showcase/assets/styles-1mYOoC2k.js +0 -1
  1098. package/dist/showcase/assets/suggestions-DLYaI-In.js +0 -126
  1099. package/dist/showcase/assets/switch-CTTrJNwo.js +0 -1
  1100. package/dist/showcase/assets/switch-ChJWWmxN.js +0 -1
  1101. package/dist/showcase/assets/sync-DsHYydvo.js +0 -124
  1102. package/dist/showcase/assets/table-Ck2ptin2.js +0 -686
  1103. package/dist/showcase/assets/table-DyJ9oADQ.js +0 -1
  1104. package/dist/showcase/assets/table-actions-COU4zHfh.js +0 -1
  1105. package/dist/showcase/assets/tabs-Bl_RHGIw.js +0 -1
  1106. package/dist/showcase/assets/tabs-DS-4VSkb.js +0 -19
  1107. package/dist/showcase/assets/tags-input-BlYzb5fF.js +0 -1
  1108. package/dist/showcase/assets/text-button-OPdNs3fb.js +0 -1
  1109. package/dist/showcase/assets/text-link-D27gqGeg.js +0 -1
  1110. package/dist/showcase/assets/textarea-DpC7J5F-.js +0 -1
  1111. package/dist/showcase/assets/textarea-JtXUjxvc.js +0 -1
  1112. package/dist/showcase/assets/timelines-DQM-B4Xo.js +0 -200
  1113. package/dist/showcase/assets/toggle-group-CMneKREH.js +0 -1
  1114. package/dist/showcase/assets/toggles-CAXXgjO_.js +0 -71
  1115. package/dist/showcase/assets/toggles-group-CHRqrpoM.js +0 -32
  1116. package/dist/showcase/assets/tooltip-CwGZAioX.js +0 -31
  1117. package/dist/showcase/assets/trash-2-BpMb9Zbb.js +0 -1
  1118. package/dist/showcase/assets/trending-up-B1BzitCg.js +0 -1
  1119. package/dist/showcase/assets/truck-CDSE5-HZ.js +0 -1
  1120. package/dist/showcase/assets/typography-BoNJ1hRZ.js +0 -223
  1121. package/dist/showcase/assets/ui-badge-Djh6NiB2.js +0 -28
  1122. package/dist/showcase/assets/ui-card-QC_rl_H2.js +0 -30
  1123. package/dist/showcase/assets/ui-table-qAGsc3qN.js +0 -42
  1124. package/dist/showcase/assets/upload-tray-DKCJgW5u.js +0 -138
  1125. package/dist/showcase/assets/use-layout-link-BPlsZ8Ys.js +0 -1
  1126. package/dist/showcase/assets/useAnchoredPopupScrollLock-526MebAC.js +0 -1
  1127. package/dist/showcase/assets/useAriaLabelledBy-CqySZiH9.js +0 -1
  1128. package/dist/showcase/assets/useCollapsiblePanel-DWX7LbGX.js +0 -1
  1129. package/dist/showcase/assets/useCompositeItem-DGEBUXgE.js +0 -1
  1130. package/dist/showcase/assets/useCompositeListItem-B2nuNlc2.js +0 -1
  1131. package/dist/showcase/assets/useLabelableId-DY4O1lpt.js +0 -1
  1132. package/dist/showcase/assets/useOpenInteractionType-DxwujDvt.js +0 -1
  1133. package/dist/showcase/assets/useRender-BPoNv-Lm.js +0 -1
  1134. package/dist/showcase/assets/useTriggerFocusGuards-BnOSAjfy.js +0 -1
  1135. package/dist/showcase/assets/useValueChanged-CXmDOWxx.js +0 -1
  1136. package/dist/showcase/assets/user-BGchdtV_.js +0 -1
  1137. package/dist/showcase/assets/user-plus-BifI_xVA.js +0 -1
  1138. package/dist/showcase/assets/users-Cl5yYqdg.js +0 -1
  1139. package/dist/showcase/assets/vendor-profile-BNW4FYna.js +0 -37
  1140. package/dist/showcase/assets/video-BtQPixYN.js +0 -1
  1141. package/dist/showcase/assets/wrench-CRalc5fG.js +0 -1
  1142. package/dist/showcase/assets/x-D6hUY89S.js +0 -1
  1143. package/dist/showcase/assets/zap-v_qbqeI5.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":[],"sources":["../../../../src/components/composed/timelines/steps-card/steps-card.tsx","../../../../src/components/composed/timelines/order-timeline/order-timeline.tsx","../../../../src/components/composed/timelines/payment-timeline/payment-timeline.tsx","../../../../src/components/composed/timelines/activity-stream/types.ts","../../../../src/components/composed/timelines/activity-stream/activity-stream.tsx","../../../../src/components/composed/timelines/shared/timeline.tsx","../../../../src/components/composed/timelines/changelog/types.ts","../../../../src/components/composed/timelines/changelog/changelog-timeline.tsx","../../../../src/components/composed/timelines/milestones/types.ts","../../../../src/components/composed/timelines/milestones/milestones-timeline.tsx"],"sourcesContent":["import { SmartCard } from '@/components/base/cards/smart-card';\nimport { Text } from '@/components/typography/text';\nimport { Badge } from '@/components/base/badge/badge';\nimport { cn } from '@/lib/utils';\nimport { Check, Circle, Loader2 } from 'lucide-react';\nimport { type StepStatus, type StepsCardProps, type StepsHorizontalProps } from './types';\n\nconst statusStyles: Record<StepStatus, {\n dot: string;\n line: string;\n title: string;\n Icon: typeof Check;\n}> = {\n completed: {\n dot: 'bg-success text-success-foreground',\n line: 'bg-success',\n title: 'text-foreground',\n Icon: Check,\n },\n current: {\n dot: 'bg-primary text-primary-foreground ring-4 ring-primary/20',\n line: 'bg-border',\n title: 'text-foreground',\n Icon: Loader2,\n },\n upcoming: {\n dot: 'bg-muted text-muted-foreground',\n line: 'bg-border',\n title: 'text-muted-foreground',\n Icon: Circle,\n },\n};\n\nfunction StepIndicator({ status }: { status: StepStatus }) {\n const { dot, Icon } = statusStyles[status];\n const isAnimated = status === 'current';\n\n return (\n <div className={cn('steps-card--component', \n 'relative z-10 flex h-8 w-8 shrink-0 items-center justify-center rounded-full transition-all',\n dot,\n )}>\n <Icon className={cn('h-4 w-4', isAnimated && 'animate-spin')} />\n </div>\n );\n}\n\n/* ─── Vertical StepsCard (original) ────────────────────────────────────────── */\n\nexport function StepsCard({ title, description, steps, footerText, className }: StepsCardProps) {\n return (\n <SmartCard\n title={title}\n description={description}\n footerText={footerText}\n className={className}\n >\n <div className=\"relative\">\n {steps.map((step, idx) => {\n const isLast = idx === steps.length - 1;\n const { line, title: titleColor } = statusStyles[step.status];\n\n return (\n <div key={step.id} className=\"relative flex gap-4\">\n {/* Vertical line + dot */}\n <div className=\"flex flex-col items-center\">\n <StepIndicator status={step.status} />\n {!isLast && (\n <div className={cn('w-0.5 flex-1 min-h-6', line)} />\n )}\n </div>\n\n {/* Content */}\n <div className={cn('flex-1 pb-6', isLast && 'pb-0')}>\n <div className=\"flex items-center gap-2 pt-1\">\n <Text weight=\"semibold\" className={titleColor}>\n {step.title}\n </Text>\n {!!step.badge && (\n <Badge variant={step.badgeVariant ?? 'secondary'}>\n {step.badge}\n </Badge>\n )}\n </div>\n {!!step.description && (\n <Text size=\"xs\" type=\"secondary\" className=\"mt-0.5\">\n {step.description}\n </Text>\n )}\n {!!step.timestamp && (\n <Text size=\"xxs\" type=\"discrete\" className=\"mt-1\">\n {step.timestamp}\n </Text>\n )}\n {!!step.content && (\n <div className=\"mt-2\">{step.content}</div>\n )}\n </div>\n </div>\n );\n })}\n </div>\n </SmartCard>\n );\n}\n\nStepsCard.displayName = 'StepsCard';\n\n/*──────────────────────────────────────────────────────────────────────────────\n * STEPS HORIZONTAL — Horizontal step bar with connecting lines\n *────────────────────────────────────────────────────────────────────────────*/\n\nfunction HorizontalDot({ status, stepNumber }: { status: StepStatus; stepNumber: number }) {\n if (status === 'completed') {\n return (\n <div className=\"relative z-10 flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-success text-success-foreground\">\n <Check className=\"h-4 w-4\" />\n </div>\n );\n }\n\n if (status === 'current') {\n return (\n <div className=\"relative z-10 flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-primary text-primary-foreground\">\n <Text weight=\"bold\" className=\"text-primary-foreground\">\n {stepNumber}\n </Text>\n </div>\n );\n }\n\n return (\n <div className=\"relative z-10 flex h-8 w-8 shrink-0 items-center justify-center rounded-lg border-2 border-muted text-muted-foreground\">\n <Text weight=\"medium\" className=\"text-muted-foreground\">\n {stepNumber}\n </Text>\n </div>\n );\n}\n\nexport function StepsHorizontal({ title, description, steps, footerText, className }: StepsHorizontalProps) {\n return (\n <SmartCard\n title={title}\n description={description}\n footerText={footerText}\n className={className}\n >\n <div className=\"space-y-3 sm:hidden\">\n {steps.map((step, idx) => {\n const isLast = idx === steps.length - 1;\n const lineColor = step.status === 'completed' ? 'bg-success' : 'bg-border';\n\n return (\n <div key={step.id} className=\"flex gap-3\">\n <div className=\"flex flex-col items-center\">\n <HorizontalDot status={step.status} stepNumber={idx + 1} />\n {!isLast && <div className={cn('mt-1 w-0.5 flex-1 min-h-5', lineColor)} />}\n </div>\n <div className={cn('min-w-0 flex-1 pb-2', isLast && 'pb-0')}>\n <Text\n weight=\"semibold\"\n className={cn(\n 'leading-snug',\n step.status === 'upcoming' ? 'text-muted-foreground' : 'text-foreground',\n )}\n >\n {step.title}\n </Text>\n {!!step.description && (\n <Text size=\"xs\" type=\"secondary\" className=\"mt-0.5 line-clamp-2\">\n {step.description}\n </Text>\n )}\n </div>\n </div>\n );\n })}\n </div>\n\n {/* Horizontal scroll wrapper — when total step width exceeds the\n card, this lets users scroll instead of clipping labels. */}\n <div className=\"-mx-1 hidden overflow-x-auto px-1 sm:block\">\n <div className=\"flex min-w-fit items-start\">\n {steps.map((step, idx) => {\n const isLast = idx === steps.length - 1;\n const lineColor = step.status === 'completed' ? 'bg-success' : 'bg-border';\n\n return (\n <div key={step.id} className=\"flex min-w-28 flex-1 items-start\">\n <div className=\"flex w-full flex-col items-center\">\n <div className=\"flex w-full items-center\">\n {idx > 0 && (\n <div className={cn(\n 'h-0.5 flex-1',\n steps[idx - 1].status === 'completed' ? 'bg-success' : 'bg-border',\n )} />\n )}\n {idx === 0 && <div className=\"flex-1\" />}\n\n <HorizontalDot status={step.status} stepNumber={idx + 1} />\n\n {!isLast && (\n <div className={cn('h-0.5 flex-1', lineColor)} />\n )}\n {!!isLast && <div className=\"flex-1\" />}\n </div>\n\n {/* Labels below dot — clamped to 2 lines so long step\n names break gracefully instead of pushing the\n row taller. */}\n <div className=\"mt-2 flex w-full flex-col items-center px-1 text-center\">\n <Text\n size=\"xs\"\n weight=\"semibold\"\n className={cn(\n 'leading-snug line-clamp-2',\n step.status === 'upcoming' ? 'text-muted-foreground' : 'text-foreground',\n )}\n >\n {step.title}\n </Text>\n {!!step.description && (\n <Text size=\"xxs\" type=\"secondary\" className=\"mt-0.5 leading-snug line-clamp-2\">\n {step.description}\n </Text>\n )}\n </div>\n </div>\n </div>\n );\n })}\n </div>\n </div>\n </SmartCard>\n );\n}\n\nStepsHorizontal.displayName = 'StepsHorizontal';\n","import { SmartCard } from '@/components/base/cards/smart-card';\nimport { Text } from '@/components/typography/text';\nimport { cn } from '@/lib/utils';\nimport { type OrderTimelineEvent, type OrderTimelineCardProps } from './types';\n\nconst timelineStatusDot: Record<OrderTimelineEvent['status'], string> = {\n completed: 'bg-success',\n current: 'bg-primary ring-3 ring-primary/20',\n pending: 'bg-muted',\n};\n\nexport function OrderTimelineCard({ title, description, events, footerText, className }: OrderTimelineCardProps) {\n return (\n <SmartCard title={title} description={description} footerText={footerText} className={cn('order-timeline--component', className)}>\n <div className=\"relative space-y-0\">\n {events.map((event, index) => {\n const isLast = index === events.length - 1;\n\n return (\n <div key={event.id} className=\"relative flex gap-3 pb-4 last:pb-0\">\n {/* Connector line */}\n {!isLast && (\n <div className=\"absolute bottom-0 left-[5px] top-[14px] w-px bg-border\" />\n )}\n\n {/* Dot */}\n <div className=\"relative z-10 mt-[5px] flex-shrink-0\">\n <div className={cn('size-3 rounded-full', timelineStatusDot[event.status])} />\n </div>\n\n {/* Content */}\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-baseline justify-between gap-2\">\n <Text weight=\"medium\" className=\"truncate\">\n {event.title}\n </Text>\n <Text size=\"xxs\" type=\"secondary\" className=\"flex-shrink-0 font-mono tabular-nums\">\n {event.timestamp}\n </Text>\n </div>\n {!!event.description && (\n <Text size=\"xs\" type=\"secondary\" className=\"mt-0.5\">\n {event.description}\n </Text>\n )}\n </div>\n </div>\n );\n })}\n </div>\n </SmartCard>\n );\n}\n","import { SmartCard } from '@/components/base/cards/smart-card';\nimport { Text } from '@/components/typography/text';\nimport { cn } from '@/lib/utils';\n\nimport type { PaymentTimelineCardProps } from './types';\n\nexport function PaymentTimelineCard({ events, className }: PaymentTimelineCardProps) {\n return (\n <SmartCard title=\"Payment Timeline\" className={cn('payment-timeline--component', className)}>\n <div className=\"mt-5 space-y-0\">\n {events.map((evt, i) => {\n const Icon = evt.icon;\n return (\n <div key={evt.label} className=\"flex gap-4\">\n <div className=\"flex flex-col items-center\">\n <div\n className={cn(\n 'flex size-8 items-center justify-center rounded-full',\n evt.done ? 'bg-success/20' : 'bg-muted',\n )}\n >\n <Icon className={cn('size-3.5', evt.done ? 'text-success' : 'text-muted-foreground')} />\n </div>\n {i < events.length - 1 && (\n <div className={cn('mt-1 h-8 w-px', evt.done ? 'bg-success/30' : 'bg-border')} />\n )}\n </div>\n <div className=\"pb-6\">\n <Text weight=\"medium\">\n {evt.label}\n </Text>\n <Text size=\"xs\" type=\"secondary\">\n {evt.date}\n </Text>\n {!!evt.amount && (\n <Text size=\"xs\" weight=\"medium\" className=\"mt-0.5 tabular-nums text-success\">\n {evt.amount}\n </Text>\n )}\n </div>\n </div>\n );\n })}\n </div>\n </SmartCard>\n );\n}\n","import type { LucideIcon } from 'lucide-react';\nimport type { ComposedBadgeVariant } from '@/components/base/badge/badge';\nimport type { StringsProp } from '@/lib/strings';\n\nexport interface ActivityStreamItem {\n\tid: string;\n\ticon?: LucideIcon;\n\ticonVariant?: ComposedBadgeVariant;\n\tactor?: string;\n\taction: string;\n\ttarget?: string;\n\ttimestamp: string;\n\tmetadata?: { label: string; value: string }[];\n}\n\nexport interface ActivityStreamStrings {\n\ttitle: string;\n\tempty: string;\n}\n\nexport const defaultActivityStreamStrings: ActivityStreamStrings = {\n\ttitle: 'Activity',\n\tempty: 'No activity yet',\n};\n\nexport interface ActivityStreamCardProps {\n\titems: ActivityStreamItem[];\n\tclassName?: string;\n\tstrings?: StringsProp<ActivityStreamStrings>;\n}\n","/**\n * ActivityStreamCard — chronological list of icon + actor + action + target items\n * with optional inline metadata. Designed for audit logs / \"what happened\" feeds.\n */\nimport { Activity, Circle } from 'lucide-react';\nimport { SmartCard } from '@/components/base/cards';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport {\n\tdefaultActivityStreamStrings,\n\ttype ActivityStreamCardProps,\n} from './types';\n\nconst VARIANT_CLASSES: Record<string, string> = {\n\tprimary: 'bg-primary/10 text-primary',\n\tsecondary: 'bg-secondary text-secondary-foreground',\n\tsuccess: 'bg-success/15 text-success',\n\tinfo: 'bg-info/15 text-info',\n\twarning: 'bg-warning/30 text-warning-foreground',\n\terror: 'bg-destructive/15 text-destructive',\n};\n\nexport function ActivityStreamCard({ items, className, strings: stringsProp }: ActivityStreamCardProps) {\n\tconst strings = useStrings(defaultActivityStreamStrings, stringsProp);\n\n\tif (items.length === 0) {\n\t\treturn (\n\t\t\t<SmartCard icon={<Activity className=\"size-4\" />} title={strings.title} className={cn('activity-stream--component', className)}>\n\t\t\t\t<Text type=\"secondary\" align=\"center\" className=\"py-6\">{strings.empty}</Text>\n\t\t\t</SmartCard>\n\t\t);\n\t}\n\n\treturn (\n\t\t<SmartCard icon={<Activity className=\"size-4\" />} title={strings.title} className={className}>\n\t\t\t<ul className=\"space-y-3\">\n\t\t\t\t{items.map((it, idx) => {\n\t\t\t\t\tconst Icon = it.icon ?? Circle;\n\t\t\t\t\tconst isLast = idx === items.length - 1;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<li key={it.id} className=\"relative flex gap-3\">\n\t\t\t\t\t\t\t<div className=\"relative flex flex-col items-center\">\n\t\t\t\t\t\t\t\t<div className={cn('flex size-7 items-center justify-center rounded-full', VARIANT_CLASSES[it.iconVariant ?? 'primary'])}>\n\t\t\t\t\t\t\t\t\t<Icon className=\"size-3.5\" />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{!isLast && <div className=\"mt-1 w-px flex-1 bg-border\" />}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"min-w-0 flex-1 pb-3\">\n\t\t\t\t\t\t\t\t<div className=\"flex flex-wrap items-baseline gap-x-1.5\">\n\t\t\t\t\t\t\t\t\t{!!it.actor && <Text tag=\"span\" weight=\"semibold\">{it.actor}</Text>}\n\t\t\t\t\t\t\t\t\t<Text tag=\"span\" type=\"secondary\">{it.action}</Text>\n\t\t\t\t\t\t\t\t\t{!!it.target && <Text tag=\"span\" weight=\"medium\">{it.target}</Text>}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{!!it.metadata && it.metadata.length > 0 && (\n\t\t\t\t\t\t\t\t\t<div className=\"mt-1 flex flex-wrap gap-x-3 gap-y-0.5\">\n\t\t\t\t\t\t\t\t\t\t{it.metadata.map((m) => (\n\t\t\t\t\t\t\t\t\t\t\t<Text key={m.label} size=\"xs\" type=\"secondary\">\n\t\t\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"discrete\">{m.label}: </Text>\n\t\t\t\t\t\t\t\t\t\t\t\t{m.value}\n\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t<Text size=\"xxs\" type=\"discrete\" className=\"mt-0.5 tabular-nums\">{it.timestamp}</Text>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</ul>\n\t\t</SmartCard>\n\t);\n}\n\nActivityStreamCard.displayName = 'ActivityStreamCard';\n","/**\n * Timeline — shared base primitive for the composed timeline family.\n *\n * Renders a vertical, dot-and-line list of events. Each item supports an\n * icon (Lucide component), a status that maps to dot tone, a title row, an\n * optional description block, an optional timestamp, and free-form content\n * via `children`. Use this primitive directly for new timeline variants\n * instead of reinventing the dot/line geometry — see `ChangeLogTimeline`,\n * `MilestonesTimeline`, and the existing OrderTimeline / PaymentTimeline /\n * ActivityStream consumers for examples.\n */\nimport type { LucideIcon } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nexport type TimelineStatus =\n\t| 'completed'\n\t| 'current'\n\t| 'pending'\n\t| 'success'\n\t| 'warning'\n\t| 'error'\n\t| 'neutral';\n\nexport type TimelineDotSize = 'sm' | 'base' | 'lg';\n\nexport interface TimelineItem {\n\tid: string;\n\ttitle: ReactNode;\n\tdescription?: ReactNode;\n\ttimestamp?: ReactNode;\n\ticon?: LucideIcon;\n\tstatus?: TimelineStatus;\n\tchildren?: ReactNode;\n}\n\nexport interface TimelineProps {\n\titems: TimelineItem[];\n\tdotSize?: TimelineDotSize;\n\tclassName?: string;\n}\n\nconst DOT_PX: Record<TimelineDotSize, string> = {\n\tsm: 'size-2.5',\n\tbase: 'size-3.5',\n\tlg: 'size-5',\n};\n\nconst ICON_PX: Record<TimelineDotSize, string> = {\n\tsm: 'size-2',\n\tbase: 'size-2.5',\n\tlg: 'size-3',\n};\n\nconst STATUS_TONE: Record<TimelineStatus, { bg: string; text: string; ring: string; line: string }> = {\n\tcompleted: { bg: 'bg-success', text: 'text-success-foreground', ring: 'ring-success/20', line: 'bg-success/40' },\n\tcurrent: { bg: 'bg-primary', text: 'text-primary-foreground', ring: 'ring-primary/30', line: 'bg-primary/40' },\n\tpending: { bg: 'bg-muted', text: 'text-muted-foreground', ring: 'ring-border', line: 'bg-border' },\n\tsuccess: { bg: 'bg-success', text: 'text-success-foreground', ring: 'ring-success/20', line: 'bg-success/40' },\n\twarning: { bg: 'bg-warning', text: 'text-warning-foreground', ring: 'ring-warning/30', line: 'bg-warning/40' },\n\terror: { bg: 'bg-destructive', text: 'text-destructive-foreground', ring: 'ring-destructive/30', line: 'bg-destructive/40' },\n\tneutral: { bg: 'bg-card', text: 'text-foreground', ring: 'ring-border', line: 'bg-border' },\n};\n\nexport function Timeline({ items, dotSize = 'base', className }: TimelineProps) {\n\treturn (\n\t\t<ol className={cn('timeline--component', 'relative space-y-4', className)}>\n\t\t\t{items.map((item, i) => {\n\t\t\t\tconst status = item.status ?? 'neutral';\n\t\t\t\tconst tone = STATUS_TONE[status];\n\t\t\t\tconst Icon = item.icon;\n\t\t\t\tconst isLast = i === items.length - 1;\n\n\t\t\t\treturn (\n\t\t\t\t\t<li key={item.id} className=\"relative flex gap-3\">\n\t\t\t\t\t\t{/* Connector line — fills available space below dot until last */}\n\t\t\t\t\t\t{!isLast && (\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t'absolute left-[7px] top-4 bottom-[-1rem] w-px',\n\t\t\t\t\t\t\t\t\ttone.line,\n\t\t\t\t\t\t\t\t\tdotSize === 'lg' && 'left-[10px]',\n\t\t\t\t\t\t\t\t\tdotSize === 'sm' && 'left-[5px]',\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t<div className=\"relative z-[1] mt-0.5 flex shrink-0 items-start\">\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t'inline-flex items-center justify-center rounded-full ring-2',\n\t\t\t\t\t\t\t\t\ttone.bg,\n\t\t\t\t\t\t\t\t\ttone.text,\n\t\t\t\t\t\t\t\t\ttone.ring,\n\t\t\t\t\t\t\t\t\tDOT_PX[dotSize],\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{!!Icon && <Icon className={ICON_PX[dotSize]} />}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div className=\"min-w-0 flex-1 pb-2\">\n\t\t\t\t\t\t\t<div className=\"flex items-baseline justify-between gap-2\">\n\t\t\t\t\t\t\t\t<Text weight=\"medium\" className=\"leading-tight\">\n\t\t\t\t\t\t\t\t\t{item.title}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t{!!item.timestamp && (\n\t\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"shrink-0 tabular-nums\">\n\t\t\t\t\t\t\t\t\t\t{item.timestamp}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{!!item.description && (\n\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"mt-0.5\">\n\t\t\t\t\t\t\t\t\t{item.description}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{!!item.children && <div className=\"mt-2\">{item.children}</div>}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</li>\n\t\t\t\t);\n\t\t\t})}\n\t\t</ol>\n\t);\n}\n\nTimeline.displayName = 'Timeline';\n","import type { ReactNode } from 'react';\nimport type { StringsProp } from '@/lib/strings';\n\nexport type ChangelogEntryKind = 'added' | 'removed' | 'modified' | 'fixed';\n\nexport interface ChangelogEntry {\n\tid: string;\n\tkind: ChangelogEntryKind;\n\ttitle: ReactNode;\n\tdescription?: ReactNode;\n\tversion?: string;\n\ttimestamp?: string;\n\tauthor?: string;\n}\n\nexport interface ChangelogTimelineStrings {\n\ttitle: string;\n\tadded: string;\n\tremoved: string;\n\tmodified: string;\n\tfixed: string;\n}\n\nexport const defaultChangelogTimelineStrings: ChangelogTimelineStrings = {\n\ttitle: 'Changelog',\n\tadded: 'Added',\n\tremoved: 'Removed',\n\tmodified: 'Modified',\n\tfixed: 'Fixed',\n};\n\nexport interface ChangelogTimelineCardProps {\n\tentries: ChangelogEntry[];\n\tclassName?: string;\n\tstrings?: StringsProp<ChangelogTimelineStrings>;\n}\n","/**\n * ChangelogTimelineCard — code/release changelog rendered through the shared\n * `Timeline` primitive. Each entry maps a semantic kind (added / removed /\n * modified / fixed) to a colour-coded chip (green / red / amber / blue) plus\n * an optional version label and timestamp. Strings overridable for i18n.\n */\nimport { GitCommit, Minus, Plus, Wrench } from 'lucide-react';\nimport { Badge } from '@/components/base/badge';\nimport { SmartCard } from '@/components/base/cards';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\n\nimport {\n\tTimeline,\n\ttype TimelineItem,\n\ttype TimelineStatus,\n} from '../shared';\nimport {\n\tdefaultChangelogTimelineStrings,\n\ttype ChangelogEntry,\n\ttype ChangelogEntryKind,\n\ttype ChangelogTimelineCardProps,\n} from './types';\n\nimport { cn } from '@/lib/utils';\nconst KIND_TO_STATUS: Record<ChangelogEntryKind, TimelineStatus> = {\n\tadded: 'success',\n\tremoved: 'error',\n\tmodified: 'warning',\n\tfixed: 'current',\n};\n\nconst KIND_TO_BADGE: Record<\n\tChangelogEntryKind,\n\t'success' | 'error' | 'warning' | 'info'\n> = {\n\tadded: 'success',\n\tremoved: 'error',\n\tmodified: 'warning',\n\tfixed: 'info',\n};\n\nconst KIND_ICON = {\n\tadded: Plus,\n\tremoved: Minus,\n\tmodified: Wrench,\n\tfixed: GitCommit,\n} as const;\n\nexport function ChangelogTimelineCard({\n\tentries,\n\tclassName,\n\tstrings: stringsProp,\n}: ChangelogTimelineCardProps) {\n\tconst strings = useStrings(defaultChangelogTimelineStrings, stringsProp);\n\tconst labelByKind: Record<ChangelogEntryKind, string> = {\n\t\tadded: strings.added,\n\t\tremoved: strings.removed,\n\t\tmodified: strings.modified,\n\t\tfixed: strings.fixed,\n\t};\n\n\tconst items: TimelineItem[] = entries.map((entry: ChangelogEntry) => ({\n\t\tid: entry.id,\n\t\ttitle: (\n\t\t\t<span className=\"inline-flex flex-wrap items-center gap-1.5\">\n\t\t\t\t<Badge variant={KIND_TO_BADGE[entry.kind]}>\n\t\t\t\t\t{labelByKind[entry.kind]}\n\t\t\t\t</Badge>\n\t\t\t\t<span>{entry.title}</span>\n\t\t\t\t{!!entry.version && (\n\t\t\t\t\t<Text tag=\"span\" size=\"xxs\" type=\"secondary\" className=\"font-mono\">\n\t\t\t\t\t\t{entry.version}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</span>\n\t\t),\n\t\tdescription: entry.author ? (\n\t\t\t<>\n\t\t\t\t{entry.description}\n\t\t\t\t<Text tag=\"span\" size=\"xxs\" type=\"discrete\" className=\"ml-2\">\n\t\t\t\t\t— {entry.author}\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t) : (\n\t\t\tentry.description\n\t\t),\n\t\ttimestamp: entry.timestamp,\n\t\ticon: KIND_ICON[entry.kind],\n\t\tstatus: KIND_TO_STATUS[entry.kind],\n\t}));\n\n\treturn (\n\t\t<SmartCard\n\t\t\ticon={<GitCommit className=\"size-4\" />}\n\t\t\ttitle={strings.title}\n\t\t\tclassName={cn('changelog-timeline--component', className)}\n\t\t>\n\t\t\t<Timeline items={items} dotSize=\"base\" />\n\t\t</SmartCard>\n\t);\n}\n\nChangelogTimelineCard.displayName = 'ChangelogTimelineCard';\n","import type { ReactNode } from 'react';\nimport type { StringsProp } from '@/lib/strings';\n\nexport type MilestoneStatus = 'completed' | 'in_progress' | 'upcoming' | 'blocked';\n\nexport interface MilestoneItem {\n\tid: string;\n\ttitle: ReactNode;\n\tdescription?: ReactNode;\n\tdueDate?: string;\n\tstatus: MilestoneStatus;\n\t/** 0–100; only used when status is `in_progress`. */\n\tprogress?: number;\n}\n\nexport interface MilestonesTimelineStrings {\n\ttitle: string;\n\tcompleted: string;\n\tin_progress: string;\n\tupcoming: string;\n\tblocked: string;\n\tdueOn: string;\n}\n\nexport const defaultMilestonesTimelineStrings: MilestonesTimelineStrings = {\n\ttitle: 'Milestones',\n\tcompleted: 'Completed',\n\tin_progress: 'In progress',\n\tupcoming: 'Upcoming',\n\tblocked: 'Blocked',\n\tdueOn: 'Due',\n};\n\nexport interface MilestonesTimelineCardProps {\n\tmilestones: MilestoneItem[];\n\tclassName?: string;\n\tstrings?: StringsProp<MilestonesTimelineStrings>;\n}\n","/**\n * MilestonesTimelineCard — project / goal milestones rendered through the\n * shared `Timeline` primitive. Each milestone has a status (completed /\n * in-progress / upcoming / blocked) that drives the dot tone, and an\n * optional `progress` percent that renders an inline progress bar when the\n * milestone is in flight. Strings overridable for i18n.\n */\nimport { Check, Circle, Clock, Flag, X } from 'lucide-react';\nimport { Badge } from '@/components/base/badge';\nimport { SmartCard } from '@/components/base/cards';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport {\n\tTimeline,\n\ttype TimelineItem,\n\ttype TimelineStatus,\n} from '../shared';\nimport {\n\tdefaultMilestonesTimelineStrings,\n\ttype MilestoneItem,\n\ttype MilestoneStatus,\n\ttype MilestonesTimelineCardProps,\n} from './types';\n\nconst STATUS_TO_TIMELINE: Record<MilestoneStatus, TimelineStatus> = {\n\tcompleted: 'completed',\n\tin_progress: 'current',\n\tupcoming: 'pending',\n\tblocked: 'error',\n};\n\nconst STATUS_ICON = {\n\tcompleted: Check,\n\tin_progress: Clock,\n\tupcoming: Circle,\n\tblocked: X,\n} as const;\n\nconst STATUS_BADGE: Record<MilestoneStatus, 'success' | 'primary' | 'secondary' | 'error'> = {\n\tcompleted: 'success',\n\tin_progress: 'primary',\n\tupcoming: 'secondary',\n\tblocked: 'error',\n};\n\nexport function MilestonesTimelineCard({\n\tmilestones,\n\tclassName,\n\tstrings: stringsProp,\n}: MilestonesTimelineCardProps) {\n\tconst strings = useStrings(defaultMilestonesTimelineStrings, stringsProp);\n\tconst labelByStatus: Record<MilestoneStatus, string> = {\n\t\tcompleted: strings.completed,\n\t\tin_progress: strings.in_progress,\n\t\tupcoming: strings.upcoming,\n\t\tblocked: strings.blocked,\n\t};\n\n\tconst items: TimelineItem[] = milestones.map((m: MilestoneItem) => ({\n\t\tid: m.id,\n\t\ttitle: (\n\t\t\t<span className=\"inline-flex flex-wrap items-center gap-1.5\">\n\t\t\t\t<span>{m.title}</span>\n\t\t\t\t<Badge variant={STATUS_BADGE[m.status]}>\n\t\t\t\t\t{labelByStatus[m.status]}\n\t\t\t\t</Badge>\n\t\t\t</span>\n\t\t),\n\t\tdescription: m.description,\n\t\ttimestamp: m.dueDate ? `${strings.dueOn} ${m.dueDate}` : undefined,\n\t\ticon: STATUS_ICON[m.status],\n\t\tstatus: STATUS_TO_TIMELINE[m.status],\n\t\tchildren:\n\t\t\tm.status === 'in_progress' && typeof m.progress === 'number' ? (\n\t\t\t\t<div className=\"space-y-1\">\n\t\t\t\t\t<div className=\"h-1.5 w-full overflow-hidden rounded-full bg-muted\">\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={cn('h-full rounded-full bg-primary transition-[width] duration-300')}\n\t\t\t\t\t\t\tstyle={{ width: `${Math.max(0, Math.min(100, m.progress))}%` }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t\t<Text size=\"xxs\" type=\"secondary\" className=\"tabular-nums\">\n\t\t\t\t\t\t{Math.round(m.progress)}%\n\t\t\t\t\t</Text>\n\t\t\t\t</div>\n\t\t\t) : undefined,\n\t}));\n\n\treturn (\n\t\t<SmartCard\n\t\t\ticon={<Flag className=\"size-4\" />}\n\t\t\ttitle={strings.title}\n\t\t\tclassName={cn('milestones-timeline--component', className)}\n\t\t>\n\t\t\t<Timeline items={items} dotSize=\"base\" />\n\t\t</SmartCard>\n\t);\n}\n\nMilestonesTimelineCard.displayName = 'MilestonesTimelineCard';\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","names":[],"sources":["../../../../src/components/composed/timelines/steps-card/steps-card.tsx","../../../../src/components/composed/timelines/order-timeline/order-timeline.tsx","../../../../src/components/composed/timelines/payment-timeline/payment-timeline.tsx","../../../../src/components/composed/timelines/activity-stream/types.ts","../../../../src/components/composed/timelines/activity-stream/activity-stream.tsx","../../../../src/components/composed/timelines/shared/timeline.tsx","../../../../src/components/composed/timelines/changelog/types.ts","../../../../src/components/composed/timelines/changelog/changelog-timeline.tsx","../../../../src/components/composed/timelines/milestones/types.ts","../../../../src/components/composed/timelines/milestones/milestones-timeline.tsx"],"sourcesContent":["import { SmartCard } from '@/components/base/cards/smart-card';\nimport { Text } from '@/components/typography/text';\nimport { Badge } from '@/components/base/badge/badge';\nimport { cn } from '@/lib/utils';\nimport { Check, Circle, Loader2 } from 'lucide-react';\nimport { type StepStatus, type StepsCardProps, type StepsHorizontalProps } from './types';\n\nconst statusStyles: Record<StepStatus, {\n dot: string;\n line: string;\n title: string;\n Icon: typeof Check;\n}> = {\n completed: {\n dot: 'bg-success text-success-foreground',\n line: 'bg-success',\n title: 'text-foreground',\n Icon: Check,\n },\n current: {\n dot: 'bg-primary text-primary-foreground ring-4 ring-primary/20',\n line: 'bg-border',\n title: 'text-foreground',\n Icon: Loader2,\n },\n upcoming: {\n dot: 'bg-muted text-muted-foreground',\n line: 'bg-border',\n title: 'text-muted-foreground',\n Icon: Circle,\n },\n};\n\nfunction StepIndicator({ status }: { status: StepStatus }) {\n const { dot, Icon } = statusStyles[status];\n const isAnimated = status === 'current';\n\n return (\n <div className={cn('steps-card--component', \n 'relative z-10 flex h-8 w-8 shrink-0 items-center justify-center rounded-full transition-all',\n dot,\n )}>\n <Icon className={cn('h-4 w-4', isAnimated && 'animate-spin')} />\n </div>\n );\n}\n\n/* ─── Vertical StepsCard (original) ────────────────────────────────────────── */\n\nexport function StepsCard({ title, description, steps, footerText, className }: StepsCardProps) {\n return (\n <SmartCard\n title={title}\n description={description}\n footerText={footerText}\n className={className}\n >\n <div className=\"relative\">\n {steps.map((step, idx) => {\n const isLast = idx === steps.length - 1;\n const { line, title: titleColor } = statusStyles[step.status];\n\n return (\n <div key={step.id} className=\"relative flex gap-4\">\n {/* Vertical line + dot */}\n <div className=\"flex flex-col items-center\">\n <StepIndicator status={step.status} />\n {!isLast && (\n <div className={cn('w-0.5 flex-1 min-h-6', line)} />\n )}\n </div>\n\n {/* Content */}\n <div className={cn('flex-1 pb-6', isLast && 'pb-0')}>\n <div className=\"flex items-center gap-2 pt-1\">\n <Text weight=\"semibold\" className={titleColor}>\n {step.title}\n </Text>\n {!!step.badge && (\n <Badge variant={step.badgeVariant ?? 'secondary'}>\n {step.badge}\n </Badge>\n )}\n </div>\n {!!step.description && (\n <Text size=\"xs\" type=\"secondary\" className=\"mt-0.5\">\n {step.description}\n </Text>\n )}\n {!!step.timestamp && (\n <Text size=\"xs\" type=\"discrete\" className=\"mt-1\">\n {step.timestamp}\n </Text>\n )}\n {!!step.content && (\n <div className=\"mt-2\">{step.content}</div>\n )}\n </div>\n </div>\n );\n })}\n </div>\n </SmartCard>\n );\n}\n\nStepsCard.displayName = 'StepsCard';\n\n/*──────────────────────────────────────────────────────────────────────────────\n * STEPS HORIZONTAL — Horizontal step bar with connecting lines\n *────────────────────────────────────────────────────────────────────────────*/\n\nfunction HorizontalDot({ status, stepNumber }: { status: StepStatus; stepNumber: number }) {\n if (status === 'completed') {\n return (\n <div className=\"relative z-10 flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-success text-success-foreground\">\n <Check className=\"h-4 w-4\" />\n </div>\n );\n }\n\n if (status === 'current') {\n return (\n <div className=\"relative z-10 flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-primary text-primary-foreground\">\n <Text weight=\"bold\" className=\"text-primary-foreground\">\n {stepNumber}\n </Text>\n </div>\n );\n }\n\n return (\n <div className=\"relative z-10 flex h-8 w-8 shrink-0 items-center justify-center rounded-lg border-2 border-muted text-muted-foreground\">\n <Text weight=\"medium\" className=\"text-muted-foreground\">\n {stepNumber}\n </Text>\n </div>\n );\n}\n\nexport function StepsHorizontal({ title, description, steps, footerText, className }: StepsHorizontalProps) {\n return (\n <SmartCard\n title={title}\n description={description}\n footerText={footerText}\n className={className}\n >\n <div className=\"space-y-3 sm:hidden\">\n {steps.map((step, idx) => {\n const isLast = idx === steps.length - 1;\n const lineColor = step.status === 'completed' ? 'bg-success' : 'bg-border';\n\n return (\n <div key={step.id} className=\"flex gap-3\">\n <div className=\"flex flex-col items-center\">\n <HorizontalDot status={step.status} stepNumber={idx + 1} />\n {!isLast && <div className={cn('mt-1 w-0.5 flex-1 min-h-5', lineColor)} />}\n </div>\n <div className={cn('min-w-0 flex-1 pb-2', isLast && 'pb-0')}>\n <Text\n weight=\"semibold\"\n className={cn(\n 'leading-snug',\n step.status === 'upcoming' ? 'text-muted-foreground' : 'text-foreground',\n )}\n >\n {step.title}\n </Text>\n {!!step.description && (\n <Text size=\"xs\" type=\"secondary\" className=\"mt-0.5 line-clamp-2\">\n {step.description}\n </Text>\n )}\n </div>\n </div>\n );\n })}\n </div>\n\n {/* Horizontal scroll wrapper — when total step width exceeds the\n card, this lets users scroll instead of clipping labels. */}\n <div className=\"-mx-1 hidden overflow-x-auto px-1 sm:block\">\n <div className=\"flex min-w-fit items-start\">\n {steps.map((step, idx) => {\n const isLast = idx === steps.length - 1;\n const lineColor = step.status === 'completed' ? 'bg-success' : 'bg-border';\n\n return (\n <div key={step.id} className=\"flex min-w-28 flex-1 items-start\">\n <div className=\"flex w-full flex-col items-center\">\n <div className=\"flex w-full items-center\">\n {idx > 0 && (\n <div className={cn(\n 'h-0.5 flex-1',\n steps[idx - 1].status === 'completed' ? 'bg-success' : 'bg-border',\n )} />\n )}\n {idx === 0 && <div className=\"flex-1\" />}\n\n <HorizontalDot status={step.status} stepNumber={idx + 1} />\n\n {!isLast && (\n <div className={cn('h-0.5 flex-1', lineColor)} />\n )}\n {!!isLast && <div className=\"flex-1\" />}\n </div>\n\n {/* Labels below dot — clamped to 2 lines so long step\n names break gracefully instead of pushing the\n row taller. */}\n <div className=\"mt-2 flex w-full flex-col items-center px-1 text-center\">\n <Text\n size=\"xs\"\n weight=\"semibold\"\n className={cn(\n 'leading-snug line-clamp-2',\n step.status === 'upcoming' ? 'text-muted-foreground' : 'text-foreground',\n )}\n >\n {step.title}\n </Text>\n {!!step.description && (\n <Text size=\"xs\" type=\"secondary\" className=\"mt-0.5 leading-snug line-clamp-2\">\n {step.description}\n </Text>\n )}\n </div>\n </div>\n </div>\n );\n })}\n </div>\n </div>\n </SmartCard>\n );\n}\n\nStepsHorizontal.displayName = 'StepsHorizontal';\n","import { SmartCard } from '@/components/base/cards/smart-card';\nimport { Text } from '@/components/typography/text';\nimport { cn } from '@/lib/utils';\nimport { type OrderTimelineEvent, type OrderTimelineCardProps } from './types';\n\nconst timelineStatusDot: Record<OrderTimelineEvent['status'], string> = {\n completed: 'bg-success',\n current: 'bg-primary ring-3 ring-primary/20',\n pending: 'bg-muted',\n};\n\nexport function OrderTimelineCard({ title, description, events, footerText, className }: OrderTimelineCardProps) {\n return (\n <SmartCard title={title} description={description} footerText={footerText} className={cn('order-timeline--component', className)}>\n <div className=\"relative space-y-0\">\n {events.map((event, index) => {\n const isLast = index === events.length - 1;\n\n return (\n <div key={event.id} className=\"relative flex gap-3 pb-4 last:pb-0\">\n {/* Connector line */}\n {!isLast && (\n <div className=\"absolute bottom-0 left-[5px] top-[14px] w-px bg-border\" />\n )}\n\n {/* Dot */}\n <div className=\"relative z-10 mt-[5px] flex-shrink-0\">\n <div className={cn('size-3 rounded-full', timelineStatusDot[event.status])} />\n </div>\n\n {/* Content */}\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-baseline justify-between gap-2\">\n <Text weight=\"medium\" className=\"truncate\">\n {event.title}\n </Text>\n <Text size=\"xs\" type=\"secondary\" className=\"flex-shrink-0 font-mono tabular-nums\">\n {event.timestamp}\n </Text>\n </div>\n {!!event.description && (\n <Text size=\"xs\" type=\"secondary\" className=\"mt-0.5\">\n {event.description}\n </Text>\n )}\n </div>\n </div>\n );\n })}\n </div>\n </SmartCard>\n );\n}\n","import { SmartCard } from '@/components/base/cards/smart-card';\nimport { Text } from '@/components/typography/text';\nimport { cn } from '@/lib/utils';\n\nimport type { PaymentTimelineCardProps } from './types';\n\nexport function PaymentTimelineCard({ events, className }: PaymentTimelineCardProps) {\n return (\n <SmartCard title=\"Payment Timeline\" className={cn('payment-timeline--component', className)}>\n <div className=\"mt-5 space-y-0\">\n {events.map((evt, i) => {\n const Icon = evt.icon;\n return (\n <div key={evt.label} className=\"flex gap-4\">\n <div className=\"flex flex-col items-center\">\n <div\n className={cn(\n 'flex size-8 items-center justify-center rounded-full',\n evt.done ? 'bg-success/20' : 'bg-muted',\n )}\n >\n <Icon className={cn('size-3.5', evt.done ? 'text-success' : 'text-muted-foreground')} />\n </div>\n {i < events.length - 1 && (\n <div className={cn('mt-1 h-8 w-px', evt.done ? 'bg-success/30' : 'bg-border')} />\n )}\n </div>\n <div className=\"pb-6\">\n <Text weight=\"medium\">\n {evt.label}\n </Text>\n <Text size=\"xs\" type=\"secondary\">\n {evt.date}\n </Text>\n {!!evt.amount && (\n <Text size=\"xs\" weight=\"medium\" className=\"mt-0.5 tabular-nums text-success\">\n {evt.amount}\n </Text>\n )}\n </div>\n </div>\n );\n })}\n </div>\n </SmartCard>\n );\n}\n","import type { LucideIcon } from 'lucide-react';\nimport type { ComposedBadgeVariant } from '@/components/base/badge/badge';\nimport type { StringsProp } from '@/lib/strings';\n\nexport interface ActivityStreamItem {\n\tid: string;\n\ticon?: LucideIcon;\n\ticonVariant?: ComposedBadgeVariant;\n\tactor?: string;\n\taction: string;\n\ttarget?: string;\n\ttimestamp: string;\n\tmetadata?: { label: string; value: string }[];\n}\n\nexport interface ActivityStreamStrings {\n\ttitle: string;\n\tempty: string;\n}\n\nexport const defaultActivityStreamStrings: ActivityStreamStrings = {\n\ttitle: 'Activity',\n\tempty: 'No activity yet',\n};\n\nexport interface ActivityStreamCardProps {\n\titems: ActivityStreamItem[];\n\tclassName?: string;\n\tstrings?: StringsProp<ActivityStreamStrings>;\n}\n","/**\n * ActivityStreamCard — chronological list of icon + actor + action + target items\n * with optional inline metadata. Designed for audit logs / \"what happened\" feeds.\n */\nimport { Activity, Circle } from 'lucide-react';\nimport { SmartCard } from '@/components/base/cards';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport {\n\tdefaultActivityStreamStrings,\n\ttype ActivityStreamCardProps,\n} from './types';\n\nconst VARIANT_CLASSES: Record<string, string> = {\n\tprimary: 'bg-primary/10 text-primary',\n\tsecondary: 'bg-secondary text-secondary-foreground',\n\tsuccess: 'bg-success/15 text-success',\n\tinfo: 'bg-info/15 text-info',\n\twarning: 'bg-warning/30 text-warning-foreground',\n\terror: 'bg-destructive/15 text-destructive',\n};\n\nexport function ActivityStreamCard({ items, className, strings: stringsProp }: ActivityStreamCardProps) {\n\tconst strings = useStrings(defaultActivityStreamStrings, stringsProp);\n\n\tif (items.length === 0) {\n\t\treturn (\n\t\t\t<SmartCard icon={<Activity className=\"size-4\" />} title={strings.title} className={cn('activity-stream--component', className)}>\n\t\t\t\t<Text type=\"secondary\" align=\"center\" className=\"py-6\">{strings.empty}</Text>\n\t\t\t</SmartCard>\n\t\t);\n\t}\n\n\treturn (\n\t\t<SmartCard icon={<Activity className=\"size-4\" />} title={strings.title} className={className}>\n\t\t\t<ul className=\"space-y-3\">\n\t\t\t\t{items.map((it, idx) => {\n\t\t\t\t\tconst Icon = it.icon ?? Circle;\n\t\t\t\t\tconst isLast = idx === items.length - 1;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<li key={it.id} className=\"relative flex gap-3\">\n\t\t\t\t\t\t\t<div className=\"relative flex flex-col items-center\">\n\t\t\t\t\t\t\t\t<div className={cn('flex size-7 items-center justify-center rounded-full', VARIANT_CLASSES[it.iconVariant ?? 'primary'])}>\n\t\t\t\t\t\t\t\t\t<Icon className=\"size-3.5\" />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{!isLast && <div className=\"mt-1 w-px flex-1 bg-border\" />}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"min-w-0 flex-1 pb-3\">\n\t\t\t\t\t\t\t\t<div className=\"flex flex-wrap items-baseline gap-x-1.5\">\n\t\t\t\t\t\t\t\t\t{!!it.actor && <Text tag=\"span\" weight=\"semibold\">{it.actor}</Text>}\n\t\t\t\t\t\t\t\t\t<Text tag=\"span\" type=\"secondary\">{it.action}</Text>\n\t\t\t\t\t\t\t\t\t{!!it.target && <Text tag=\"span\" weight=\"medium\">{it.target}</Text>}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{!!it.metadata && it.metadata.length > 0 && (\n\t\t\t\t\t\t\t\t\t<div className=\"mt-1 flex flex-wrap gap-x-3 gap-y-0.5\">\n\t\t\t\t\t\t\t\t\t\t{it.metadata.map((m) => (\n\t\t\t\t\t\t\t\t\t\t\t<Text key={m.label} size=\"xs\" type=\"secondary\">\n\t\t\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"discrete\">{m.label}: </Text>\n\t\t\t\t\t\t\t\t\t\t\t\t{m.value}\n\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"discrete\" className=\"mt-0.5 tabular-nums\">{it.timestamp}</Text>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</ul>\n\t\t</SmartCard>\n\t);\n}\n\nActivityStreamCard.displayName = 'ActivityStreamCard';\n","/**\n * Timeline — shared base primitive for the composed timeline family.\n *\n * Renders a vertical, dot-and-line list of events. Each item supports an\n * icon (Lucide component), a status that maps to dot tone, a title row, an\n * optional description block, an optional timestamp, and free-form content\n * via `children`. Use this primitive directly for new timeline variants\n * instead of reinventing the dot/line geometry — see `ChangeLogTimeline`,\n * `MilestonesTimeline`, and the existing OrderTimeline / PaymentTimeline /\n * ActivityStream consumers for examples.\n */\nimport type { LucideIcon } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nexport type TimelineStatus =\n\t| 'completed'\n\t| 'current'\n\t| 'pending'\n\t| 'success'\n\t| 'warning'\n\t| 'error'\n\t| 'neutral';\n\nexport type TimelineDotSize = 'sm' | 'base' | 'lg';\n\nexport interface TimelineItem {\n\tid: string;\n\ttitle: ReactNode;\n\tdescription?: ReactNode;\n\ttimestamp?: ReactNode;\n\ticon?: LucideIcon;\n\tstatus?: TimelineStatus;\n\tchildren?: ReactNode;\n}\n\nexport interface TimelineProps {\n\titems: TimelineItem[];\n\tdotSize?: TimelineDotSize;\n\tclassName?: string;\n}\n\nconst DOT_PX: Record<TimelineDotSize, string> = {\n\tsm: 'size-2.5',\n\tbase: 'size-3.5',\n\tlg: 'size-5',\n};\n\nconst ICON_PX: Record<TimelineDotSize, string> = {\n\tsm: 'size-2',\n\tbase: 'size-2.5',\n\tlg: 'size-3',\n};\n\nconst STATUS_TONE: Record<TimelineStatus, { bg: string; text: string; ring: string; line: string }> = {\n\tcompleted: { bg: 'bg-success', text: 'text-success-foreground', ring: 'ring-success/20', line: 'bg-success/40' },\n\tcurrent: { bg: 'bg-primary', text: 'text-primary-foreground', ring: 'ring-primary/30', line: 'bg-primary/40' },\n\tpending: { bg: 'bg-muted', text: 'text-muted-foreground', ring: 'ring-border', line: 'bg-border' },\n\tsuccess: { bg: 'bg-success', text: 'text-success-foreground', ring: 'ring-success/20', line: 'bg-success/40' },\n\twarning: { bg: 'bg-warning', text: 'text-warning-foreground', ring: 'ring-warning/30', line: 'bg-warning/40' },\n\terror: { bg: 'bg-destructive', text: 'text-destructive-foreground', ring: 'ring-destructive/30', line: 'bg-destructive/40' },\n\tneutral: { bg: 'bg-card', text: 'text-foreground', ring: 'ring-border', line: 'bg-border' },\n};\n\nexport function Timeline({ items, dotSize = 'base', className }: TimelineProps) {\n\treturn (\n\t\t<ol className={cn('timeline--component', 'relative space-y-4', className)}>\n\t\t\t{items.map((item, i) => {\n\t\t\t\tconst status = item.status ?? 'neutral';\n\t\t\t\tconst tone = STATUS_TONE[status];\n\t\t\t\tconst Icon = item.icon;\n\t\t\t\tconst isLast = i === items.length - 1;\n\n\t\t\t\treturn (\n\t\t\t\t\t<li key={item.id} className=\"relative flex gap-3\">\n\t\t\t\t\t\t{/* Connector line — fills available space below dot until last */}\n\t\t\t\t\t\t{!isLast && (\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t'absolute left-[7px] top-4 bottom-[-1rem] w-px',\n\t\t\t\t\t\t\t\t\ttone.line,\n\t\t\t\t\t\t\t\t\tdotSize === 'lg' && 'left-[10px]',\n\t\t\t\t\t\t\t\t\tdotSize === 'sm' && 'left-[5px]',\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t<div className=\"relative z-[1] mt-0.5 flex shrink-0 items-start\">\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t'inline-flex items-center justify-center rounded-full ring-2',\n\t\t\t\t\t\t\t\t\ttone.bg,\n\t\t\t\t\t\t\t\t\ttone.text,\n\t\t\t\t\t\t\t\t\ttone.ring,\n\t\t\t\t\t\t\t\t\tDOT_PX[dotSize],\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{!!Icon && <Icon className={ICON_PX[dotSize]} />}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div className=\"min-w-0 flex-1 pb-2\">\n\t\t\t\t\t\t\t<div className=\"flex items-baseline justify-between gap-2\">\n\t\t\t\t\t\t\t\t<Text weight=\"medium\" className=\"leading-tight\">\n\t\t\t\t\t\t\t\t\t{item.title}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t{!!item.timestamp && (\n\t\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"shrink-0 tabular-nums\">\n\t\t\t\t\t\t\t\t\t\t{item.timestamp}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{!!item.description && (\n\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"mt-0.5\">\n\t\t\t\t\t\t\t\t\t{item.description}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{!!item.children && <div className=\"mt-2\">{item.children}</div>}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</li>\n\t\t\t\t);\n\t\t\t})}\n\t\t</ol>\n\t);\n}\n\nTimeline.displayName = 'Timeline';\n","import type { ReactNode } from 'react';\nimport type { StringsProp } from '@/lib/strings';\n\nexport type ChangelogEntryKind = 'added' | 'removed' | 'modified' | 'fixed';\n\nexport interface ChangelogEntry {\n\tid: string;\n\tkind: ChangelogEntryKind;\n\ttitle: ReactNode;\n\tdescription?: ReactNode;\n\tversion?: string;\n\ttimestamp?: string;\n\tauthor?: string;\n}\n\nexport interface ChangelogTimelineStrings {\n\ttitle: string;\n\tadded: string;\n\tremoved: string;\n\tmodified: string;\n\tfixed: string;\n}\n\nexport const defaultChangelogTimelineStrings: ChangelogTimelineStrings = {\n\ttitle: 'Changelog',\n\tadded: 'Added',\n\tremoved: 'Removed',\n\tmodified: 'Modified',\n\tfixed: 'Fixed',\n};\n\nexport interface ChangelogTimelineCardProps {\n\tentries: ChangelogEntry[];\n\tclassName?: string;\n\tstrings?: StringsProp<ChangelogTimelineStrings>;\n}\n","/**\n * ChangelogTimelineCard — code/release changelog rendered through the shared\n * `Timeline` primitive. Each entry maps a semantic kind (added / removed /\n * modified / fixed) to a colour-coded chip (green / red / amber / blue) plus\n * an optional version label and timestamp. Strings overridable for i18n.\n */\nimport { GitCommit, Minus, Plus, Wrench } from 'lucide-react';\nimport { Badge } from '@/components/base/badge';\nimport { SmartCard } from '@/components/base/cards';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\n\nimport {\n\tTimeline,\n\ttype TimelineItem,\n\ttype TimelineStatus,\n} from '../shared';\nimport {\n\tdefaultChangelogTimelineStrings,\n\ttype ChangelogEntry,\n\ttype ChangelogEntryKind,\n\ttype ChangelogTimelineCardProps,\n} from './types';\n\nimport { cn } from '@/lib/utils';\nconst KIND_TO_STATUS: Record<ChangelogEntryKind, TimelineStatus> = {\n\tadded: 'success',\n\tremoved: 'error',\n\tmodified: 'warning',\n\tfixed: 'current',\n};\n\nconst KIND_TO_BADGE: Record<\n\tChangelogEntryKind,\n\t'success' | 'error' | 'warning' | 'info'\n> = {\n\tadded: 'success',\n\tremoved: 'error',\n\tmodified: 'warning',\n\tfixed: 'info',\n};\n\nconst KIND_ICON = {\n\tadded: Plus,\n\tremoved: Minus,\n\tmodified: Wrench,\n\tfixed: GitCommit,\n} as const;\n\nexport function ChangelogTimelineCard({\n\tentries,\n\tclassName,\n\tstrings: stringsProp,\n}: ChangelogTimelineCardProps) {\n\tconst strings = useStrings(defaultChangelogTimelineStrings, stringsProp);\n\tconst labelByKind: Record<ChangelogEntryKind, string> = {\n\t\tadded: strings.added,\n\t\tremoved: strings.removed,\n\t\tmodified: strings.modified,\n\t\tfixed: strings.fixed,\n\t};\n\n\tconst items: TimelineItem[] = entries.map((entry: ChangelogEntry) => ({\n\t\tid: entry.id,\n\t\ttitle: (\n\t\t\t<span className=\"inline-flex flex-wrap items-center gap-1.5\">\n\t\t\t\t<Badge variant={KIND_TO_BADGE[entry.kind]}>\n\t\t\t\t\t{labelByKind[entry.kind]}\n\t\t\t\t</Badge>\n\t\t\t\t<span>{entry.title}</span>\n\t\t\t\t{!!entry.version && (\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" className=\"font-mono\">\n\t\t\t\t\t\t{entry.version}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</span>\n\t\t),\n\t\tdescription: entry.author ? (\n\t\t\t<>\n\t\t\t\t{entry.description}\n\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"discrete\" className=\"ml-2\">\n\t\t\t\t\t— {entry.author}\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t) : (\n\t\t\tentry.description\n\t\t),\n\t\ttimestamp: entry.timestamp,\n\t\ticon: KIND_ICON[entry.kind],\n\t\tstatus: KIND_TO_STATUS[entry.kind],\n\t}));\n\n\treturn (\n\t\t<SmartCard\n\t\t\ticon={<GitCommit className=\"size-4\" />}\n\t\t\ttitle={strings.title}\n\t\t\tclassName={cn('changelog-timeline--component', className)}\n\t\t>\n\t\t\t<Timeline items={items} dotSize=\"base\" />\n\t\t</SmartCard>\n\t);\n}\n\nChangelogTimelineCard.displayName = 'ChangelogTimelineCard';\n","import type { ReactNode } from 'react';\nimport type { StringsProp } from '@/lib/strings';\n\nexport type MilestoneStatus = 'completed' | 'in_progress' | 'upcoming' | 'blocked';\n\nexport interface MilestoneItem {\n\tid: string;\n\ttitle: ReactNode;\n\tdescription?: ReactNode;\n\tdueDate?: string;\n\tstatus: MilestoneStatus;\n\t/** 0–100; only used when status is `in_progress`. */\n\tprogress?: number;\n}\n\nexport interface MilestonesTimelineStrings {\n\ttitle: string;\n\tcompleted: string;\n\tin_progress: string;\n\tupcoming: string;\n\tblocked: string;\n\tdueOn: string;\n}\n\nexport const defaultMilestonesTimelineStrings: MilestonesTimelineStrings = {\n\ttitle: 'Milestones',\n\tcompleted: 'Completed',\n\tin_progress: 'In progress',\n\tupcoming: 'Upcoming',\n\tblocked: 'Blocked',\n\tdueOn: 'Due',\n};\n\nexport interface MilestonesTimelineCardProps {\n\tmilestones: MilestoneItem[];\n\tclassName?: string;\n\tstrings?: StringsProp<MilestonesTimelineStrings>;\n}\n","/**\n * MilestonesTimelineCard — project / goal milestones rendered through the\n * shared `Timeline` primitive. Each milestone has a status (completed /\n * in-progress / upcoming / blocked) that drives the dot tone, and an\n * optional `progress` percent that renders an inline progress bar when the\n * milestone is in flight. Strings overridable for i18n.\n */\nimport { Check, Circle, Clock, Flag, X } from 'lucide-react';\nimport { Badge } from '@/components/base/badge';\nimport { SmartCard } from '@/components/base/cards';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport {\n\tTimeline,\n\ttype TimelineItem,\n\ttype TimelineStatus,\n} from '../shared';\nimport {\n\tdefaultMilestonesTimelineStrings,\n\ttype MilestoneItem,\n\ttype MilestoneStatus,\n\ttype MilestonesTimelineCardProps,\n} from './types';\n\nconst STATUS_TO_TIMELINE: Record<MilestoneStatus, TimelineStatus> = {\n\tcompleted: 'completed',\n\tin_progress: 'current',\n\tupcoming: 'pending',\n\tblocked: 'error',\n};\n\nconst STATUS_ICON = {\n\tcompleted: Check,\n\tin_progress: Clock,\n\tupcoming: Circle,\n\tblocked: X,\n} as const;\n\nconst STATUS_BADGE: Record<MilestoneStatus, 'success' | 'primary' | 'secondary' | 'error'> = {\n\tcompleted: 'success',\n\tin_progress: 'primary',\n\tupcoming: 'secondary',\n\tblocked: 'error',\n};\n\nexport function MilestonesTimelineCard({\n\tmilestones,\n\tclassName,\n\tstrings: stringsProp,\n}: MilestonesTimelineCardProps) {\n\tconst strings = useStrings(defaultMilestonesTimelineStrings, stringsProp);\n\tconst labelByStatus: Record<MilestoneStatus, string> = {\n\t\tcompleted: strings.completed,\n\t\tin_progress: strings.in_progress,\n\t\tupcoming: strings.upcoming,\n\t\tblocked: strings.blocked,\n\t};\n\n\tconst items: TimelineItem[] = milestones.map((m: MilestoneItem) => ({\n\t\tid: m.id,\n\t\ttitle: (\n\t\t\t<span className=\"inline-flex flex-wrap items-center gap-1.5\">\n\t\t\t\t<span>{m.title}</span>\n\t\t\t\t<Badge variant={STATUS_BADGE[m.status]}>\n\t\t\t\t\t{labelByStatus[m.status]}\n\t\t\t\t</Badge>\n\t\t\t</span>\n\t\t),\n\t\tdescription: m.description,\n\t\ttimestamp: m.dueDate ? `${strings.dueOn} ${m.dueDate}` : undefined,\n\t\ticon: STATUS_ICON[m.status],\n\t\tstatus: STATUS_TO_TIMELINE[m.status],\n\t\tchildren:\n\t\t\tm.status === 'in_progress' && typeof m.progress === 'number' ? (\n\t\t\t\t<div className=\"space-y-1\">\n\t\t\t\t\t<div className=\"h-1.5 w-full overflow-hidden rounded-full bg-muted\">\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={cn('h-full rounded-full bg-primary transition-[width] duration-300')}\n\t\t\t\t\t\t\tstyle={{ width: `${Math.max(0, Math.min(100, m.progress))}%` }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"tabular-nums\">\n\t\t\t\t\t\t{Math.round(m.progress)}%\n\t\t\t\t\t</Text>\n\t\t\t\t</div>\n\t\t\t) : undefined,\n\t}));\n\n\treturn (\n\t\t<SmartCard\n\t\t\ticon={<Flag className=\"size-4\" />}\n\t\t\ttitle={strings.title}\n\t\t\tclassName={cn('milestones-timeline--component', className)}\n\t\t>\n\t\t\t<Timeline items={items} dotSize=\"base\" />\n\t\t</SmartCard>\n\t);\n}\n\nMilestonesTimelineCard.displayName = 'MilestonesTimelineCard';\n"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { useStrings as e } from "../../../lib/strings.js";
2
2
  import { cn as t } from "../../../lib/utils.js";
3
- import { s as n } from "../../../_shared/typography-CzFVA1w1.js";
4
- import { t as r } from "../../../_shared/badge-BYNwSWh5.js";
5
- import { t as i } from "../../../_shared/cards-cQ9lL6zy.js";
3
+ import { s as n } from "../../../_shared/typography-DXvCmE8w.js";
4
+ import { t as r } from "../../../_shared/badge-B4oBB5BJ.js";
5
+ import { t as i } from "../../../_shared/cards-CMNXFo3Y.js";
6
6
  import { Fragment as a, jsx as o, jsxs as s } from "react/jsx-runtime";
7
7
  import { Activity as c, Check as l, Circle as u, Clock as d, Flag as f, GitCommit as p, Loader2 as m, Minus as h, Plus as g, Wrench as _, X as v } from "lucide-react";
8
8
  //#region src/components/composed/timelines/steps-card/steps-card.tsx
@@ -69,7 +69,7 @@ function x({ title: e, description: a, steps: c, footerText: l, className: u })
69
69
  children: e.description
70
70
  }),
71
71
  !!e.timestamp && /* @__PURE__ */ o(n, {
72
- size: "xxs",
72
+ size: "xs",
73
73
  type: "discrete",
74
74
  className: "mt-1",
75
75
  children: e.timestamp
@@ -169,7 +169,7 @@ function C({ title: e, description: r, steps: a, footerText: c, className: l })
169
169
  className: t("leading-snug line-clamp-2", e.status === "upcoming" ? "text-muted-foreground" : "text-foreground"),
170
170
  children: e.title
171
171
  }), !!e.description && /* @__PURE__ */ o(n, {
172
- size: "xxs",
172
+ size: "xs",
173
173
  type: "secondary",
174
174
  className: "mt-0.5 leading-snug line-clamp-2",
175
175
  children: e.description
@@ -215,7 +215,7 @@ function T({ title: e, description: r, events: a, footerText: c, className: l })
215
215
  className: "truncate",
216
216
  children: e.title
217
217
  }), /* @__PURE__ */ o(n, {
218
- size: "xxs",
218
+ size: "xs",
219
219
  type: "secondary",
220
220
  className: "flex-shrink-0 font-mono tabular-nums",
221
221
  children: e.timestamp
@@ -353,7 +353,7 @@ function k({ items: r, className: a, strings: l }) {
353
353
  }, e.label))
354
354
  }),
355
355
  /* @__PURE__ */ o(n, {
356
- size: "xxs",
356
+ size: "xs",
357
357
  type: "discrete",
358
358
  className: "mt-0.5 tabular-nums",
359
359
  children: e.timestamp
@@ -515,7 +515,7 @@ function R({ entries: c, className: l, strings: u }) {
515
515
  /* @__PURE__ */ o("span", { children: e.title }),
516
516
  !!e.version && /* @__PURE__ */ o(n, {
517
517
  tag: "span",
518
- size: "xxs",
518
+ size: "xs",
519
519
  type: "secondary",
520
520
  className: "font-mono",
521
521
  children: e.version
@@ -524,7 +524,7 @@ function R({ entries: c, className: l, strings: u }) {
524
524
  }),
525
525
  description: e.author ? /* @__PURE__ */ s(a, { children: [e.description, /* @__PURE__ */ s(n, {
526
526
  tag: "span",
527
- size: "xxs",
527
+ size: "xs",
528
528
  type: "discrete",
529
529
  className: "ml-2",
530
530
  children: ["— ", e.author]
@@ -597,7 +597,7 @@ function U({ milestones: a, className: c, strings: l }) {
597
597
  style: { width: `${Math.max(0, Math.min(100, e.progress))}%` }
598
598
  })
599
599
  }), /* @__PURE__ */ s(n, {
600
- size: "xxs",
600
+ size: "xs",
601
601
  type: "secondary",
602
602
  className: "tabular-nums",
603
603
  children: [Math.round(e.progress), "%"]
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../src/components/composed/timelines/steps-card/steps-card.tsx","../../../../src/components/composed/timelines/order-timeline/order-timeline.tsx","../../../../src/components/composed/timelines/payment-timeline/payment-timeline.tsx","../../../../src/components/composed/timelines/activity-stream/types.ts","../../../../src/components/composed/timelines/activity-stream/activity-stream.tsx","../../../../src/components/composed/timelines/shared/timeline.tsx","../../../../src/components/composed/timelines/changelog/types.ts","../../../../src/components/composed/timelines/changelog/changelog-timeline.tsx","../../../../src/components/composed/timelines/milestones/types.ts","../../../../src/components/composed/timelines/milestones/milestones-timeline.tsx"],"sourcesContent":["import { SmartCard } from '@/components/base/cards/smart-card';\nimport { Text } from '@/components/typography/text';\nimport { Badge } from '@/components/base/badge/badge';\nimport { cn } from '@/lib/utils';\nimport { Check, Circle, Loader2 } from 'lucide-react';\nimport { type StepStatus, type StepsCardProps, type StepsHorizontalProps } from './types';\n\nconst statusStyles: Record<StepStatus, {\n dot: string;\n line: string;\n title: string;\n Icon: typeof Check;\n}> = {\n completed: {\n dot: 'bg-success text-success-foreground',\n line: 'bg-success',\n title: 'text-foreground',\n Icon: Check,\n },\n current: {\n dot: 'bg-primary text-primary-foreground ring-4 ring-primary/20',\n line: 'bg-border',\n title: 'text-foreground',\n Icon: Loader2,\n },\n upcoming: {\n dot: 'bg-muted text-muted-foreground',\n line: 'bg-border',\n title: 'text-muted-foreground',\n Icon: Circle,\n },\n};\n\nfunction StepIndicator({ status }: { status: StepStatus }) {\n const { dot, Icon } = statusStyles[status];\n const isAnimated = status === 'current';\n\n return (\n <div className={cn('steps-card--component', \n 'relative z-10 flex h-8 w-8 shrink-0 items-center justify-center rounded-full transition-all',\n dot,\n )}>\n <Icon className={cn('h-4 w-4', isAnimated && 'animate-spin')} />\n </div>\n );\n}\n\n/* ─── Vertical StepsCard (original) ────────────────────────────────────────── */\n\nexport function StepsCard({ title, description, steps, footerText, className }: StepsCardProps) {\n return (\n <SmartCard\n title={title}\n description={description}\n footerText={footerText}\n className={className}\n >\n <div className=\"relative\">\n {steps.map((step, idx) => {\n const isLast = idx === steps.length - 1;\n const { line, title: titleColor } = statusStyles[step.status];\n\n return (\n <div key={step.id} className=\"relative flex gap-4\">\n {/* Vertical line + dot */}\n <div className=\"flex flex-col items-center\">\n <StepIndicator status={step.status} />\n {!isLast && (\n <div className={cn('w-0.5 flex-1 min-h-6', line)} />\n )}\n </div>\n\n {/* Content */}\n <div className={cn('flex-1 pb-6', isLast && 'pb-0')}>\n <div className=\"flex items-center gap-2 pt-1\">\n <Text weight=\"semibold\" className={titleColor}>\n {step.title}\n </Text>\n {!!step.badge && (\n <Badge variant={step.badgeVariant ?? 'secondary'}>\n {step.badge}\n </Badge>\n )}\n </div>\n {!!step.description && (\n <Text size=\"xs\" type=\"secondary\" className=\"mt-0.5\">\n {step.description}\n </Text>\n )}\n {!!step.timestamp && (\n <Text size=\"xxs\" type=\"discrete\" className=\"mt-1\">\n {step.timestamp}\n </Text>\n )}\n {!!step.content && (\n <div className=\"mt-2\">{step.content}</div>\n )}\n </div>\n </div>\n );\n })}\n </div>\n </SmartCard>\n );\n}\n\nStepsCard.displayName = 'StepsCard';\n\n/*──────────────────────────────────────────────────────────────────────────────\n * STEPS HORIZONTAL — Horizontal step bar with connecting lines\n *────────────────────────────────────────────────────────────────────────────*/\n\nfunction HorizontalDot({ status, stepNumber }: { status: StepStatus; stepNumber: number }) {\n if (status === 'completed') {\n return (\n <div className=\"relative z-10 flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-success text-success-foreground\">\n <Check className=\"h-4 w-4\" />\n </div>\n );\n }\n\n if (status === 'current') {\n return (\n <div className=\"relative z-10 flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-primary text-primary-foreground\">\n <Text weight=\"bold\" className=\"text-primary-foreground\">\n {stepNumber}\n </Text>\n </div>\n );\n }\n\n return (\n <div className=\"relative z-10 flex h-8 w-8 shrink-0 items-center justify-center rounded-lg border-2 border-muted text-muted-foreground\">\n <Text weight=\"medium\" className=\"text-muted-foreground\">\n {stepNumber}\n </Text>\n </div>\n );\n}\n\nexport function StepsHorizontal({ title, description, steps, footerText, className }: StepsHorizontalProps) {\n return (\n <SmartCard\n title={title}\n description={description}\n footerText={footerText}\n className={className}\n >\n <div className=\"space-y-3 sm:hidden\">\n {steps.map((step, idx) => {\n const isLast = idx === steps.length - 1;\n const lineColor = step.status === 'completed' ? 'bg-success' : 'bg-border';\n\n return (\n <div key={step.id} className=\"flex gap-3\">\n <div className=\"flex flex-col items-center\">\n <HorizontalDot status={step.status} stepNumber={idx + 1} />\n {!isLast && <div className={cn('mt-1 w-0.5 flex-1 min-h-5', lineColor)} />}\n </div>\n <div className={cn('min-w-0 flex-1 pb-2', isLast && 'pb-0')}>\n <Text\n weight=\"semibold\"\n className={cn(\n 'leading-snug',\n step.status === 'upcoming' ? 'text-muted-foreground' : 'text-foreground',\n )}\n >\n {step.title}\n </Text>\n {!!step.description && (\n <Text size=\"xs\" type=\"secondary\" className=\"mt-0.5 line-clamp-2\">\n {step.description}\n </Text>\n )}\n </div>\n </div>\n );\n })}\n </div>\n\n {/* Horizontal scroll wrapper — when total step width exceeds the\n card, this lets users scroll instead of clipping labels. */}\n <div className=\"-mx-1 hidden overflow-x-auto px-1 sm:block\">\n <div className=\"flex min-w-fit items-start\">\n {steps.map((step, idx) => {\n const isLast = idx === steps.length - 1;\n const lineColor = step.status === 'completed' ? 'bg-success' : 'bg-border';\n\n return (\n <div key={step.id} className=\"flex min-w-28 flex-1 items-start\">\n <div className=\"flex w-full flex-col items-center\">\n <div className=\"flex w-full items-center\">\n {idx > 0 && (\n <div className={cn(\n 'h-0.5 flex-1',\n steps[idx - 1].status === 'completed' ? 'bg-success' : 'bg-border',\n )} />\n )}\n {idx === 0 && <div className=\"flex-1\" />}\n\n <HorizontalDot status={step.status} stepNumber={idx + 1} />\n\n {!isLast && (\n <div className={cn('h-0.5 flex-1', lineColor)} />\n )}\n {!!isLast && <div className=\"flex-1\" />}\n </div>\n\n {/* Labels below dot — clamped to 2 lines so long step\n names break gracefully instead of pushing the\n row taller. */}\n <div className=\"mt-2 flex w-full flex-col items-center px-1 text-center\">\n <Text\n size=\"xs\"\n weight=\"semibold\"\n className={cn(\n 'leading-snug line-clamp-2',\n step.status === 'upcoming' ? 'text-muted-foreground' : 'text-foreground',\n )}\n >\n {step.title}\n </Text>\n {!!step.description && (\n <Text size=\"xxs\" type=\"secondary\" className=\"mt-0.5 leading-snug line-clamp-2\">\n {step.description}\n </Text>\n )}\n </div>\n </div>\n </div>\n );\n })}\n </div>\n </div>\n </SmartCard>\n );\n}\n\nStepsHorizontal.displayName = 'StepsHorizontal';\n","import { SmartCard } from '@/components/base/cards/smart-card';\nimport { Text } from '@/components/typography/text';\nimport { cn } from '@/lib/utils';\nimport { type OrderTimelineEvent, type OrderTimelineCardProps } from './types';\n\nconst timelineStatusDot: Record<OrderTimelineEvent['status'], string> = {\n completed: 'bg-success',\n current: 'bg-primary ring-3 ring-primary/20',\n pending: 'bg-muted',\n};\n\nexport function OrderTimelineCard({ title, description, events, footerText, className }: OrderTimelineCardProps) {\n return (\n <SmartCard title={title} description={description} footerText={footerText} className={cn('order-timeline--component', className)}>\n <div className=\"relative space-y-0\">\n {events.map((event, index) => {\n const isLast = index === events.length - 1;\n\n return (\n <div key={event.id} className=\"relative flex gap-3 pb-4 last:pb-0\">\n {/* Connector line */}\n {!isLast && (\n <div className=\"absolute bottom-0 left-[5px] top-[14px] w-px bg-border\" />\n )}\n\n {/* Dot */}\n <div className=\"relative z-10 mt-[5px] flex-shrink-0\">\n <div className={cn('size-3 rounded-full', timelineStatusDot[event.status])} />\n </div>\n\n {/* Content */}\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-baseline justify-between gap-2\">\n <Text weight=\"medium\" className=\"truncate\">\n {event.title}\n </Text>\n <Text size=\"xxs\" type=\"secondary\" className=\"flex-shrink-0 font-mono tabular-nums\">\n {event.timestamp}\n </Text>\n </div>\n {!!event.description && (\n <Text size=\"xs\" type=\"secondary\" className=\"mt-0.5\">\n {event.description}\n </Text>\n )}\n </div>\n </div>\n );\n })}\n </div>\n </SmartCard>\n );\n}\n","import { SmartCard } from '@/components/base/cards/smart-card';\nimport { Text } from '@/components/typography/text';\nimport { cn } from '@/lib/utils';\n\nimport type { PaymentTimelineCardProps } from './types';\n\nexport function PaymentTimelineCard({ events, className }: PaymentTimelineCardProps) {\n return (\n <SmartCard title=\"Payment Timeline\" className={cn('payment-timeline--component', className)}>\n <div className=\"mt-5 space-y-0\">\n {events.map((evt, i) => {\n const Icon = evt.icon;\n return (\n <div key={evt.label} className=\"flex gap-4\">\n <div className=\"flex flex-col items-center\">\n <div\n className={cn(\n 'flex size-8 items-center justify-center rounded-full',\n evt.done ? 'bg-success/20' : 'bg-muted',\n )}\n >\n <Icon className={cn('size-3.5', evt.done ? 'text-success' : 'text-muted-foreground')} />\n </div>\n {i < events.length - 1 && (\n <div className={cn('mt-1 h-8 w-px', evt.done ? 'bg-success/30' : 'bg-border')} />\n )}\n </div>\n <div className=\"pb-6\">\n <Text weight=\"medium\">\n {evt.label}\n </Text>\n <Text size=\"xs\" type=\"secondary\">\n {evt.date}\n </Text>\n {!!evt.amount && (\n <Text size=\"xs\" weight=\"medium\" className=\"mt-0.5 tabular-nums text-success\">\n {evt.amount}\n </Text>\n )}\n </div>\n </div>\n );\n })}\n </div>\n </SmartCard>\n );\n}\n","import type { LucideIcon } from 'lucide-react';\nimport type { ComposedBadgeVariant } from '@/components/base/badge/badge';\nimport type { StringsProp } from '@/lib/strings';\n\nexport interface ActivityStreamItem {\n\tid: string;\n\ticon?: LucideIcon;\n\ticonVariant?: ComposedBadgeVariant;\n\tactor?: string;\n\taction: string;\n\ttarget?: string;\n\ttimestamp: string;\n\tmetadata?: { label: string; value: string }[];\n}\n\nexport interface ActivityStreamStrings {\n\ttitle: string;\n\tempty: string;\n}\n\nexport const defaultActivityStreamStrings: ActivityStreamStrings = {\n\ttitle: 'Activity',\n\tempty: 'No activity yet',\n};\n\nexport interface ActivityStreamCardProps {\n\titems: ActivityStreamItem[];\n\tclassName?: string;\n\tstrings?: StringsProp<ActivityStreamStrings>;\n}\n","/**\n * ActivityStreamCard — chronological list of icon + actor + action + target items\n * with optional inline metadata. Designed for audit logs / \"what happened\" feeds.\n */\nimport { Activity, Circle } from 'lucide-react';\nimport { SmartCard } from '@/components/base/cards';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport {\n\tdefaultActivityStreamStrings,\n\ttype ActivityStreamCardProps,\n} from './types';\n\nconst VARIANT_CLASSES: Record<string, string> = {\n\tprimary: 'bg-primary/10 text-primary',\n\tsecondary: 'bg-secondary text-secondary-foreground',\n\tsuccess: 'bg-success/15 text-success',\n\tinfo: 'bg-info/15 text-info',\n\twarning: 'bg-warning/30 text-warning-foreground',\n\terror: 'bg-destructive/15 text-destructive',\n};\n\nexport function ActivityStreamCard({ items, className, strings: stringsProp }: ActivityStreamCardProps) {\n\tconst strings = useStrings(defaultActivityStreamStrings, stringsProp);\n\n\tif (items.length === 0) {\n\t\treturn (\n\t\t\t<SmartCard icon={<Activity className=\"size-4\" />} title={strings.title} className={cn('activity-stream--component', className)}>\n\t\t\t\t<Text type=\"secondary\" align=\"center\" className=\"py-6\">{strings.empty}</Text>\n\t\t\t</SmartCard>\n\t\t);\n\t}\n\n\treturn (\n\t\t<SmartCard icon={<Activity className=\"size-4\" />} title={strings.title} className={className}>\n\t\t\t<ul className=\"space-y-3\">\n\t\t\t\t{items.map((it, idx) => {\n\t\t\t\t\tconst Icon = it.icon ?? Circle;\n\t\t\t\t\tconst isLast = idx === items.length - 1;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<li key={it.id} className=\"relative flex gap-3\">\n\t\t\t\t\t\t\t<div className=\"relative flex flex-col items-center\">\n\t\t\t\t\t\t\t\t<div className={cn('flex size-7 items-center justify-center rounded-full', VARIANT_CLASSES[it.iconVariant ?? 'primary'])}>\n\t\t\t\t\t\t\t\t\t<Icon className=\"size-3.5\" />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{!isLast && <div className=\"mt-1 w-px flex-1 bg-border\" />}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"min-w-0 flex-1 pb-3\">\n\t\t\t\t\t\t\t\t<div className=\"flex flex-wrap items-baseline gap-x-1.5\">\n\t\t\t\t\t\t\t\t\t{!!it.actor && <Text tag=\"span\" weight=\"semibold\">{it.actor}</Text>}\n\t\t\t\t\t\t\t\t\t<Text tag=\"span\" type=\"secondary\">{it.action}</Text>\n\t\t\t\t\t\t\t\t\t{!!it.target && <Text tag=\"span\" weight=\"medium\">{it.target}</Text>}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{!!it.metadata && it.metadata.length > 0 && (\n\t\t\t\t\t\t\t\t\t<div className=\"mt-1 flex flex-wrap gap-x-3 gap-y-0.5\">\n\t\t\t\t\t\t\t\t\t\t{it.metadata.map((m) => (\n\t\t\t\t\t\t\t\t\t\t\t<Text key={m.label} size=\"xs\" type=\"secondary\">\n\t\t\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"discrete\">{m.label}: </Text>\n\t\t\t\t\t\t\t\t\t\t\t\t{m.value}\n\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t<Text size=\"xxs\" type=\"discrete\" className=\"mt-0.5 tabular-nums\">{it.timestamp}</Text>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</ul>\n\t\t</SmartCard>\n\t);\n}\n\nActivityStreamCard.displayName = 'ActivityStreamCard';\n","/**\n * Timeline — shared base primitive for the composed timeline family.\n *\n * Renders a vertical, dot-and-line list of events. Each item supports an\n * icon (Lucide component), a status that maps to dot tone, a title row, an\n * optional description block, an optional timestamp, and free-form content\n * via `children`. Use this primitive directly for new timeline variants\n * instead of reinventing the dot/line geometry — see `ChangeLogTimeline`,\n * `MilestonesTimeline`, and the existing OrderTimeline / PaymentTimeline /\n * ActivityStream consumers for examples.\n */\nimport type { LucideIcon } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nexport type TimelineStatus =\n\t| 'completed'\n\t| 'current'\n\t| 'pending'\n\t| 'success'\n\t| 'warning'\n\t| 'error'\n\t| 'neutral';\n\nexport type TimelineDotSize = 'sm' | 'base' | 'lg';\n\nexport interface TimelineItem {\n\tid: string;\n\ttitle: ReactNode;\n\tdescription?: ReactNode;\n\ttimestamp?: ReactNode;\n\ticon?: LucideIcon;\n\tstatus?: TimelineStatus;\n\tchildren?: ReactNode;\n}\n\nexport interface TimelineProps {\n\titems: TimelineItem[];\n\tdotSize?: TimelineDotSize;\n\tclassName?: string;\n}\n\nconst DOT_PX: Record<TimelineDotSize, string> = {\n\tsm: 'size-2.5',\n\tbase: 'size-3.5',\n\tlg: 'size-5',\n};\n\nconst ICON_PX: Record<TimelineDotSize, string> = {\n\tsm: 'size-2',\n\tbase: 'size-2.5',\n\tlg: 'size-3',\n};\n\nconst STATUS_TONE: Record<TimelineStatus, { bg: string; text: string; ring: string; line: string }> = {\n\tcompleted: { bg: 'bg-success', text: 'text-success-foreground', ring: 'ring-success/20', line: 'bg-success/40' },\n\tcurrent: { bg: 'bg-primary', text: 'text-primary-foreground', ring: 'ring-primary/30', line: 'bg-primary/40' },\n\tpending: { bg: 'bg-muted', text: 'text-muted-foreground', ring: 'ring-border', line: 'bg-border' },\n\tsuccess: { bg: 'bg-success', text: 'text-success-foreground', ring: 'ring-success/20', line: 'bg-success/40' },\n\twarning: { bg: 'bg-warning', text: 'text-warning-foreground', ring: 'ring-warning/30', line: 'bg-warning/40' },\n\terror: { bg: 'bg-destructive', text: 'text-destructive-foreground', ring: 'ring-destructive/30', line: 'bg-destructive/40' },\n\tneutral: { bg: 'bg-card', text: 'text-foreground', ring: 'ring-border', line: 'bg-border' },\n};\n\nexport function Timeline({ items, dotSize = 'base', className }: TimelineProps) {\n\treturn (\n\t\t<ol className={cn('timeline--component', 'relative space-y-4', className)}>\n\t\t\t{items.map((item, i) => {\n\t\t\t\tconst status = item.status ?? 'neutral';\n\t\t\t\tconst tone = STATUS_TONE[status];\n\t\t\t\tconst Icon = item.icon;\n\t\t\t\tconst isLast = i === items.length - 1;\n\n\t\t\t\treturn (\n\t\t\t\t\t<li key={item.id} className=\"relative flex gap-3\">\n\t\t\t\t\t\t{/* Connector line — fills available space below dot until last */}\n\t\t\t\t\t\t{!isLast && (\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t'absolute left-[7px] top-4 bottom-[-1rem] w-px',\n\t\t\t\t\t\t\t\t\ttone.line,\n\t\t\t\t\t\t\t\t\tdotSize === 'lg' && 'left-[10px]',\n\t\t\t\t\t\t\t\t\tdotSize === 'sm' && 'left-[5px]',\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t<div className=\"relative z-[1] mt-0.5 flex shrink-0 items-start\">\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t'inline-flex items-center justify-center rounded-full ring-2',\n\t\t\t\t\t\t\t\t\ttone.bg,\n\t\t\t\t\t\t\t\t\ttone.text,\n\t\t\t\t\t\t\t\t\ttone.ring,\n\t\t\t\t\t\t\t\t\tDOT_PX[dotSize],\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{!!Icon && <Icon className={ICON_PX[dotSize]} />}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div className=\"min-w-0 flex-1 pb-2\">\n\t\t\t\t\t\t\t<div className=\"flex items-baseline justify-between gap-2\">\n\t\t\t\t\t\t\t\t<Text weight=\"medium\" className=\"leading-tight\">\n\t\t\t\t\t\t\t\t\t{item.title}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t{!!item.timestamp && (\n\t\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"shrink-0 tabular-nums\">\n\t\t\t\t\t\t\t\t\t\t{item.timestamp}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{!!item.description && (\n\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"mt-0.5\">\n\t\t\t\t\t\t\t\t\t{item.description}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{!!item.children && <div className=\"mt-2\">{item.children}</div>}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</li>\n\t\t\t\t);\n\t\t\t})}\n\t\t</ol>\n\t);\n}\n\nTimeline.displayName = 'Timeline';\n","import type { ReactNode } from 'react';\nimport type { StringsProp } from '@/lib/strings';\n\nexport type ChangelogEntryKind = 'added' | 'removed' | 'modified' | 'fixed';\n\nexport interface ChangelogEntry {\n\tid: string;\n\tkind: ChangelogEntryKind;\n\ttitle: ReactNode;\n\tdescription?: ReactNode;\n\tversion?: string;\n\ttimestamp?: string;\n\tauthor?: string;\n}\n\nexport interface ChangelogTimelineStrings {\n\ttitle: string;\n\tadded: string;\n\tremoved: string;\n\tmodified: string;\n\tfixed: string;\n}\n\nexport const defaultChangelogTimelineStrings: ChangelogTimelineStrings = {\n\ttitle: 'Changelog',\n\tadded: 'Added',\n\tremoved: 'Removed',\n\tmodified: 'Modified',\n\tfixed: 'Fixed',\n};\n\nexport interface ChangelogTimelineCardProps {\n\tentries: ChangelogEntry[];\n\tclassName?: string;\n\tstrings?: StringsProp<ChangelogTimelineStrings>;\n}\n","/**\n * ChangelogTimelineCard — code/release changelog rendered through the shared\n * `Timeline` primitive. Each entry maps a semantic kind (added / removed /\n * modified / fixed) to a colour-coded chip (green / red / amber / blue) plus\n * an optional version label and timestamp. Strings overridable for i18n.\n */\nimport { GitCommit, Minus, Plus, Wrench } from 'lucide-react';\nimport { Badge } from '@/components/base/badge';\nimport { SmartCard } from '@/components/base/cards';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\n\nimport {\n\tTimeline,\n\ttype TimelineItem,\n\ttype TimelineStatus,\n} from '../shared';\nimport {\n\tdefaultChangelogTimelineStrings,\n\ttype ChangelogEntry,\n\ttype ChangelogEntryKind,\n\ttype ChangelogTimelineCardProps,\n} from './types';\n\nimport { cn } from '@/lib/utils';\nconst KIND_TO_STATUS: Record<ChangelogEntryKind, TimelineStatus> = {\n\tadded: 'success',\n\tremoved: 'error',\n\tmodified: 'warning',\n\tfixed: 'current',\n};\n\nconst KIND_TO_BADGE: Record<\n\tChangelogEntryKind,\n\t'success' | 'error' | 'warning' | 'info'\n> = {\n\tadded: 'success',\n\tremoved: 'error',\n\tmodified: 'warning',\n\tfixed: 'info',\n};\n\nconst KIND_ICON = {\n\tadded: Plus,\n\tremoved: Minus,\n\tmodified: Wrench,\n\tfixed: GitCommit,\n} as const;\n\nexport function ChangelogTimelineCard({\n\tentries,\n\tclassName,\n\tstrings: stringsProp,\n}: ChangelogTimelineCardProps) {\n\tconst strings = useStrings(defaultChangelogTimelineStrings, stringsProp);\n\tconst labelByKind: Record<ChangelogEntryKind, string> = {\n\t\tadded: strings.added,\n\t\tremoved: strings.removed,\n\t\tmodified: strings.modified,\n\t\tfixed: strings.fixed,\n\t};\n\n\tconst items: TimelineItem[] = entries.map((entry: ChangelogEntry) => ({\n\t\tid: entry.id,\n\t\ttitle: (\n\t\t\t<span className=\"inline-flex flex-wrap items-center gap-1.5\">\n\t\t\t\t<Badge variant={KIND_TO_BADGE[entry.kind]}>\n\t\t\t\t\t{labelByKind[entry.kind]}\n\t\t\t\t</Badge>\n\t\t\t\t<span>{entry.title}</span>\n\t\t\t\t{!!entry.version && (\n\t\t\t\t\t<Text tag=\"span\" size=\"xxs\" type=\"secondary\" className=\"font-mono\">\n\t\t\t\t\t\t{entry.version}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</span>\n\t\t),\n\t\tdescription: entry.author ? (\n\t\t\t<>\n\t\t\t\t{entry.description}\n\t\t\t\t<Text tag=\"span\" size=\"xxs\" type=\"discrete\" className=\"ml-2\">\n\t\t\t\t\t— {entry.author}\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t) : (\n\t\t\tentry.description\n\t\t),\n\t\ttimestamp: entry.timestamp,\n\t\ticon: KIND_ICON[entry.kind],\n\t\tstatus: KIND_TO_STATUS[entry.kind],\n\t}));\n\n\treturn (\n\t\t<SmartCard\n\t\t\ticon={<GitCommit className=\"size-4\" />}\n\t\t\ttitle={strings.title}\n\t\t\tclassName={cn('changelog-timeline--component', className)}\n\t\t>\n\t\t\t<Timeline items={items} dotSize=\"base\" />\n\t\t</SmartCard>\n\t);\n}\n\nChangelogTimelineCard.displayName = 'ChangelogTimelineCard';\n","import type { ReactNode } from 'react';\nimport type { StringsProp } from '@/lib/strings';\n\nexport type MilestoneStatus = 'completed' | 'in_progress' | 'upcoming' | 'blocked';\n\nexport interface MilestoneItem {\n\tid: string;\n\ttitle: ReactNode;\n\tdescription?: ReactNode;\n\tdueDate?: string;\n\tstatus: MilestoneStatus;\n\t/** 0–100; only used when status is `in_progress`. */\n\tprogress?: number;\n}\n\nexport interface MilestonesTimelineStrings {\n\ttitle: string;\n\tcompleted: string;\n\tin_progress: string;\n\tupcoming: string;\n\tblocked: string;\n\tdueOn: string;\n}\n\nexport const defaultMilestonesTimelineStrings: MilestonesTimelineStrings = {\n\ttitle: 'Milestones',\n\tcompleted: 'Completed',\n\tin_progress: 'In progress',\n\tupcoming: 'Upcoming',\n\tblocked: 'Blocked',\n\tdueOn: 'Due',\n};\n\nexport interface MilestonesTimelineCardProps {\n\tmilestones: MilestoneItem[];\n\tclassName?: string;\n\tstrings?: StringsProp<MilestonesTimelineStrings>;\n}\n","/**\n * MilestonesTimelineCard — project / goal milestones rendered through the\n * shared `Timeline` primitive. Each milestone has a status (completed /\n * in-progress / upcoming / blocked) that drives the dot tone, and an\n * optional `progress` percent that renders an inline progress bar when the\n * milestone is in flight. Strings overridable for i18n.\n */\nimport { Check, Circle, Clock, Flag, X } from 'lucide-react';\nimport { Badge } from '@/components/base/badge';\nimport { SmartCard } from '@/components/base/cards';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport {\n\tTimeline,\n\ttype TimelineItem,\n\ttype TimelineStatus,\n} from '../shared';\nimport {\n\tdefaultMilestonesTimelineStrings,\n\ttype MilestoneItem,\n\ttype MilestoneStatus,\n\ttype MilestonesTimelineCardProps,\n} from './types';\n\nconst STATUS_TO_TIMELINE: Record<MilestoneStatus, TimelineStatus> = {\n\tcompleted: 'completed',\n\tin_progress: 'current',\n\tupcoming: 'pending',\n\tblocked: 'error',\n};\n\nconst STATUS_ICON = {\n\tcompleted: Check,\n\tin_progress: Clock,\n\tupcoming: Circle,\n\tblocked: X,\n} as const;\n\nconst STATUS_BADGE: Record<MilestoneStatus, 'success' | 'primary' | 'secondary' | 'error'> = {\n\tcompleted: 'success',\n\tin_progress: 'primary',\n\tupcoming: 'secondary',\n\tblocked: 'error',\n};\n\nexport function MilestonesTimelineCard({\n\tmilestones,\n\tclassName,\n\tstrings: stringsProp,\n}: MilestonesTimelineCardProps) {\n\tconst strings = useStrings(defaultMilestonesTimelineStrings, stringsProp);\n\tconst labelByStatus: Record<MilestoneStatus, string> = {\n\t\tcompleted: strings.completed,\n\t\tin_progress: strings.in_progress,\n\t\tupcoming: strings.upcoming,\n\t\tblocked: strings.blocked,\n\t};\n\n\tconst items: TimelineItem[] = milestones.map((m: MilestoneItem) => ({\n\t\tid: m.id,\n\t\ttitle: (\n\t\t\t<span className=\"inline-flex flex-wrap items-center gap-1.5\">\n\t\t\t\t<span>{m.title}</span>\n\t\t\t\t<Badge variant={STATUS_BADGE[m.status]}>\n\t\t\t\t\t{labelByStatus[m.status]}\n\t\t\t\t</Badge>\n\t\t\t</span>\n\t\t),\n\t\tdescription: m.description,\n\t\ttimestamp: m.dueDate ? `${strings.dueOn} ${m.dueDate}` : undefined,\n\t\ticon: STATUS_ICON[m.status],\n\t\tstatus: STATUS_TO_TIMELINE[m.status],\n\t\tchildren:\n\t\t\tm.status === 'in_progress' && typeof m.progress === 'number' ? (\n\t\t\t\t<div className=\"space-y-1\">\n\t\t\t\t\t<div className=\"h-1.5 w-full overflow-hidden rounded-full bg-muted\">\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={cn('h-full rounded-full bg-primary transition-[width] duration-300')}\n\t\t\t\t\t\t\tstyle={{ width: `${Math.max(0, Math.min(100, m.progress))}%` }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t\t<Text size=\"xxs\" type=\"secondary\" className=\"tabular-nums\">\n\t\t\t\t\t\t{Math.round(m.progress)}%\n\t\t\t\t\t</Text>\n\t\t\t\t</div>\n\t\t\t) : undefined,\n\t}));\n\n\treturn (\n\t\t<SmartCard\n\t\t\ticon={<Flag className=\"size-4\" />}\n\t\t\ttitle={strings.title}\n\t\t\tclassName={cn('milestones-timeline--component', className)}\n\t\t>\n\t\t\t<Timeline items={items} dotSize=\"base\" />\n\t\t</SmartCard>\n\t);\n}\n\nMilestonesTimelineCard.displayName = 'MilestonesTimelineCard';\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../src/components/composed/timelines/steps-card/steps-card.tsx","../../../../src/components/composed/timelines/order-timeline/order-timeline.tsx","../../../../src/components/composed/timelines/payment-timeline/payment-timeline.tsx","../../../../src/components/composed/timelines/activity-stream/types.ts","../../../../src/components/composed/timelines/activity-stream/activity-stream.tsx","../../../../src/components/composed/timelines/shared/timeline.tsx","../../../../src/components/composed/timelines/changelog/types.ts","../../../../src/components/composed/timelines/changelog/changelog-timeline.tsx","../../../../src/components/composed/timelines/milestones/types.ts","../../../../src/components/composed/timelines/milestones/milestones-timeline.tsx"],"sourcesContent":["import { SmartCard } from '@/components/base/cards/smart-card';\nimport { Text } from '@/components/typography/text';\nimport { Badge } from '@/components/base/badge/badge';\nimport { cn } from '@/lib/utils';\nimport { Check, Circle, Loader2 } from 'lucide-react';\nimport { type StepStatus, type StepsCardProps, type StepsHorizontalProps } from './types';\n\nconst statusStyles: Record<StepStatus, {\n dot: string;\n line: string;\n title: string;\n Icon: typeof Check;\n}> = {\n completed: {\n dot: 'bg-success text-success-foreground',\n line: 'bg-success',\n title: 'text-foreground',\n Icon: Check,\n },\n current: {\n dot: 'bg-primary text-primary-foreground ring-4 ring-primary/20',\n line: 'bg-border',\n title: 'text-foreground',\n Icon: Loader2,\n },\n upcoming: {\n dot: 'bg-muted text-muted-foreground',\n line: 'bg-border',\n title: 'text-muted-foreground',\n Icon: Circle,\n },\n};\n\nfunction StepIndicator({ status }: { status: StepStatus }) {\n const { dot, Icon } = statusStyles[status];\n const isAnimated = status === 'current';\n\n return (\n <div className={cn('steps-card--component', \n 'relative z-10 flex h-8 w-8 shrink-0 items-center justify-center rounded-full transition-all',\n dot,\n )}>\n <Icon className={cn('h-4 w-4', isAnimated && 'animate-spin')} />\n </div>\n );\n}\n\n/* ─── Vertical StepsCard (original) ────────────────────────────────────────── */\n\nexport function StepsCard({ title, description, steps, footerText, className }: StepsCardProps) {\n return (\n <SmartCard\n title={title}\n description={description}\n footerText={footerText}\n className={className}\n >\n <div className=\"relative\">\n {steps.map((step, idx) => {\n const isLast = idx === steps.length - 1;\n const { line, title: titleColor } = statusStyles[step.status];\n\n return (\n <div key={step.id} className=\"relative flex gap-4\">\n {/* Vertical line + dot */}\n <div className=\"flex flex-col items-center\">\n <StepIndicator status={step.status} />\n {!isLast && (\n <div className={cn('w-0.5 flex-1 min-h-6', line)} />\n )}\n </div>\n\n {/* Content */}\n <div className={cn('flex-1 pb-6', isLast && 'pb-0')}>\n <div className=\"flex items-center gap-2 pt-1\">\n <Text weight=\"semibold\" className={titleColor}>\n {step.title}\n </Text>\n {!!step.badge && (\n <Badge variant={step.badgeVariant ?? 'secondary'}>\n {step.badge}\n </Badge>\n )}\n </div>\n {!!step.description && (\n <Text size=\"xs\" type=\"secondary\" className=\"mt-0.5\">\n {step.description}\n </Text>\n )}\n {!!step.timestamp && (\n <Text size=\"xs\" type=\"discrete\" className=\"mt-1\">\n {step.timestamp}\n </Text>\n )}\n {!!step.content && (\n <div className=\"mt-2\">{step.content}</div>\n )}\n </div>\n </div>\n );\n })}\n </div>\n </SmartCard>\n );\n}\n\nStepsCard.displayName = 'StepsCard';\n\n/*──────────────────────────────────────────────────────────────────────────────\n * STEPS HORIZONTAL — Horizontal step bar with connecting lines\n *────────────────────────────────────────────────────────────────────────────*/\n\nfunction HorizontalDot({ status, stepNumber }: { status: StepStatus; stepNumber: number }) {\n if (status === 'completed') {\n return (\n <div className=\"relative z-10 flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-success text-success-foreground\">\n <Check className=\"h-4 w-4\" />\n </div>\n );\n }\n\n if (status === 'current') {\n return (\n <div className=\"relative z-10 flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-primary text-primary-foreground\">\n <Text weight=\"bold\" className=\"text-primary-foreground\">\n {stepNumber}\n </Text>\n </div>\n );\n }\n\n return (\n <div className=\"relative z-10 flex h-8 w-8 shrink-0 items-center justify-center rounded-lg border-2 border-muted text-muted-foreground\">\n <Text weight=\"medium\" className=\"text-muted-foreground\">\n {stepNumber}\n </Text>\n </div>\n );\n}\n\nexport function StepsHorizontal({ title, description, steps, footerText, className }: StepsHorizontalProps) {\n return (\n <SmartCard\n title={title}\n description={description}\n footerText={footerText}\n className={className}\n >\n <div className=\"space-y-3 sm:hidden\">\n {steps.map((step, idx) => {\n const isLast = idx === steps.length - 1;\n const lineColor = step.status === 'completed' ? 'bg-success' : 'bg-border';\n\n return (\n <div key={step.id} className=\"flex gap-3\">\n <div className=\"flex flex-col items-center\">\n <HorizontalDot status={step.status} stepNumber={idx + 1} />\n {!isLast && <div className={cn('mt-1 w-0.5 flex-1 min-h-5', lineColor)} />}\n </div>\n <div className={cn('min-w-0 flex-1 pb-2', isLast && 'pb-0')}>\n <Text\n weight=\"semibold\"\n className={cn(\n 'leading-snug',\n step.status === 'upcoming' ? 'text-muted-foreground' : 'text-foreground',\n )}\n >\n {step.title}\n </Text>\n {!!step.description && (\n <Text size=\"xs\" type=\"secondary\" className=\"mt-0.5 line-clamp-2\">\n {step.description}\n </Text>\n )}\n </div>\n </div>\n );\n })}\n </div>\n\n {/* Horizontal scroll wrapper — when total step width exceeds the\n card, this lets users scroll instead of clipping labels. */}\n <div className=\"-mx-1 hidden overflow-x-auto px-1 sm:block\">\n <div className=\"flex min-w-fit items-start\">\n {steps.map((step, idx) => {\n const isLast = idx === steps.length - 1;\n const lineColor = step.status === 'completed' ? 'bg-success' : 'bg-border';\n\n return (\n <div key={step.id} className=\"flex min-w-28 flex-1 items-start\">\n <div className=\"flex w-full flex-col items-center\">\n <div className=\"flex w-full items-center\">\n {idx > 0 && (\n <div className={cn(\n 'h-0.5 flex-1',\n steps[idx - 1].status === 'completed' ? 'bg-success' : 'bg-border',\n )} />\n )}\n {idx === 0 && <div className=\"flex-1\" />}\n\n <HorizontalDot status={step.status} stepNumber={idx + 1} />\n\n {!isLast && (\n <div className={cn('h-0.5 flex-1', lineColor)} />\n )}\n {!!isLast && <div className=\"flex-1\" />}\n </div>\n\n {/* Labels below dot — clamped to 2 lines so long step\n names break gracefully instead of pushing the\n row taller. */}\n <div className=\"mt-2 flex w-full flex-col items-center px-1 text-center\">\n <Text\n size=\"xs\"\n weight=\"semibold\"\n className={cn(\n 'leading-snug line-clamp-2',\n step.status === 'upcoming' ? 'text-muted-foreground' : 'text-foreground',\n )}\n >\n {step.title}\n </Text>\n {!!step.description && (\n <Text size=\"xs\" type=\"secondary\" className=\"mt-0.5 leading-snug line-clamp-2\">\n {step.description}\n </Text>\n )}\n </div>\n </div>\n </div>\n );\n })}\n </div>\n </div>\n </SmartCard>\n );\n}\n\nStepsHorizontal.displayName = 'StepsHorizontal';\n","import { SmartCard } from '@/components/base/cards/smart-card';\nimport { Text } from '@/components/typography/text';\nimport { cn } from '@/lib/utils';\nimport { type OrderTimelineEvent, type OrderTimelineCardProps } from './types';\n\nconst timelineStatusDot: Record<OrderTimelineEvent['status'], string> = {\n completed: 'bg-success',\n current: 'bg-primary ring-3 ring-primary/20',\n pending: 'bg-muted',\n};\n\nexport function OrderTimelineCard({ title, description, events, footerText, className }: OrderTimelineCardProps) {\n return (\n <SmartCard title={title} description={description} footerText={footerText} className={cn('order-timeline--component', className)}>\n <div className=\"relative space-y-0\">\n {events.map((event, index) => {\n const isLast = index === events.length - 1;\n\n return (\n <div key={event.id} className=\"relative flex gap-3 pb-4 last:pb-0\">\n {/* Connector line */}\n {!isLast && (\n <div className=\"absolute bottom-0 left-[5px] top-[14px] w-px bg-border\" />\n )}\n\n {/* Dot */}\n <div className=\"relative z-10 mt-[5px] flex-shrink-0\">\n <div className={cn('size-3 rounded-full', timelineStatusDot[event.status])} />\n </div>\n\n {/* Content */}\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-baseline justify-between gap-2\">\n <Text weight=\"medium\" className=\"truncate\">\n {event.title}\n </Text>\n <Text size=\"xs\" type=\"secondary\" className=\"flex-shrink-0 font-mono tabular-nums\">\n {event.timestamp}\n </Text>\n </div>\n {!!event.description && (\n <Text size=\"xs\" type=\"secondary\" className=\"mt-0.5\">\n {event.description}\n </Text>\n )}\n </div>\n </div>\n );\n })}\n </div>\n </SmartCard>\n );\n}\n","import { SmartCard } from '@/components/base/cards/smart-card';\nimport { Text } from '@/components/typography/text';\nimport { cn } from '@/lib/utils';\n\nimport type { PaymentTimelineCardProps } from './types';\n\nexport function PaymentTimelineCard({ events, className }: PaymentTimelineCardProps) {\n return (\n <SmartCard title=\"Payment Timeline\" className={cn('payment-timeline--component', className)}>\n <div className=\"mt-5 space-y-0\">\n {events.map((evt, i) => {\n const Icon = evt.icon;\n return (\n <div key={evt.label} className=\"flex gap-4\">\n <div className=\"flex flex-col items-center\">\n <div\n className={cn(\n 'flex size-8 items-center justify-center rounded-full',\n evt.done ? 'bg-success/20' : 'bg-muted',\n )}\n >\n <Icon className={cn('size-3.5', evt.done ? 'text-success' : 'text-muted-foreground')} />\n </div>\n {i < events.length - 1 && (\n <div className={cn('mt-1 h-8 w-px', evt.done ? 'bg-success/30' : 'bg-border')} />\n )}\n </div>\n <div className=\"pb-6\">\n <Text weight=\"medium\">\n {evt.label}\n </Text>\n <Text size=\"xs\" type=\"secondary\">\n {evt.date}\n </Text>\n {!!evt.amount && (\n <Text size=\"xs\" weight=\"medium\" className=\"mt-0.5 tabular-nums text-success\">\n {evt.amount}\n </Text>\n )}\n </div>\n </div>\n );\n })}\n </div>\n </SmartCard>\n );\n}\n","import type { LucideIcon } from 'lucide-react';\nimport type { ComposedBadgeVariant } from '@/components/base/badge/badge';\nimport type { StringsProp } from '@/lib/strings';\n\nexport interface ActivityStreamItem {\n\tid: string;\n\ticon?: LucideIcon;\n\ticonVariant?: ComposedBadgeVariant;\n\tactor?: string;\n\taction: string;\n\ttarget?: string;\n\ttimestamp: string;\n\tmetadata?: { label: string; value: string }[];\n}\n\nexport interface ActivityStreamStrings {\n\ttitle: string;\n\tempty: string;\n}\n\nexport const defaultActivityStreamStrings: ActivityStreamStrings = {\n\ttitle: 'Activity',\n\tempty: 'No activity yet',\n};\n\nexport interface ActivityStreamCardProps {\n\titems: ActivityStreamItem[];\n\tclassName?: string;\n\tstrings?: StringsProp<ActivityStreamStrings>;\n}\n","/**\n * ActivityStreamCard — chronological list of icon + actor + action + target items\n * with optional inline metadata. Designed for audit logs / \"what happened\" feeds.\n */\nimport { Activity, Circle } from 'lucide-react';\nimport { SmartCard } from '@/components/base/cards';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport {\n\tdefaultActivityStreamStrings,\n\ttype ActivityStreamCardProps,\n} from './types';\n\nconst VARIANT_CLASSES: Record<string, string> = {\n\tprimary: 'bg-primary/10 text-primary',\n\tsecondary: 'bg-secondary text-secondary-foreground',\n\tsuccess: 'bg-success/15 text-success',\n\tinfo: 'bg-info/15 text-info',\n\twarning: 'bg-warning/30 text-warning-foreground',\n\terror: 'bg-destructive/15 text-destructive',\n};\n\nexport function ActivityStreamCard({ items, className, strings: stringsProp }: ActivityStreamCardProps) {\n\tconst strings = useStrings(defaultActivityStreamStrings, stringsProp);\n\n\tif (items.length === 0) {\n\t\treturn (\n\t\t\t<SmartCard icon={<Activity className=\"size-4\" />} title={strings.title} className={cn('activity-stream--component', className)}>\n\t\t\t\t<Text type=\"secondary\" align=\"center\" className=\"py-6\">{strings.empty}</Text>\n\t\t\t</SmartCard>\n\t\t);\n\t}\n\n\treturn (\n\t\t<SmartCard icon={<Activity className=\"size-4\" />} title={strings.title} className={className}>\n\t\t\t<ul className=\"space-y-3\">\n\t\t\t\t{items.map((it, idx) => {\n\t\t\t\t\tconst Icon = it.icon ?? Circle;\n\t\t\t\t\tconst isLast = idx === items.length - 1;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<li key={it.id} className=\"relative flex gap-3\">\n\t\t\t\t\t\t\t<div className=\"relative flex flex-col items-center\">\n\t\t\t\t\t\t\t\t<div className={cn('flex size-7 items-center justify-center rounded-full', VARIANT_CLASSES[it.iconVariant ?? 'primary'])}>\n\t\t\t\t\t\t\t\t\t<Icon className=\"size-3.5\" />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{!isLast && <div className=\"mt-1 w-px flex-1 bg-border\" />}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"min-w-0 flex-1 pb-3\">\n\t\t\t\t\t\t\t\t<div className=\"flex flex-wrap items-baseline gap-x-1.5\">\n\t\t\t\t\t\t\t\t\t{!!it.actor && <Text tag=\"span\" weight=\"semibold\">{it.actor}</Text>}\n\t\t\t\t\t\t\t\t\t<Text tag=\"span\" type=\"secondary\">{it.action}</Text>\n\t\t\t\t\t\t\t\t\t{!!it.target && <Text tag=\"span\" weight=\"medium\">{it.target}</Text>}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{!!it.metadata && it.metadata.length > 0 && (\n\t\t\t\t\t\t\t\t\t<div className=\"mt-1 flex flex-wrap gap-x-3 gap-y-0.5\">\n\t\t\t\t\t\t\t\t\t\t{it.metadata.map((m) => (\n\t\t\t\t\t\t\t\t\t\t\t<Text key={m.label} size=\"xs\" type=\"secondary\">\n\t\t\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"discrete\">{m.label}: </Text>\n\t\t\t\t\t\t\t\t\t\t\t\t{m.value}\n\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"discrete\" className=\"mt-0.5 tabular-nums\">{it.timestamp}</Text>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</ul>\n\t\t</SmartCard>\n\t);\n}\n\nActivityStreamCard.displayName = 'ActivityStreamCard';\n","/**\n * Timeline — shared base primitive for the composed timeline family.\n *\n * Renders a vertical, dot-and-line list of events. Each item supports an\n * icon (Lucide component), a status that maps to dot tone, a title row, an\n * optional description block, an optional timestamp, and free-form content\n * via `children`. Use this primitive directly for new timeline variants\n * instead of reinventing the dot/line geometry — see `ChangeLogTimeline`,\n * `MilestonesTimeline`, and the existing OrderTimeline / PaymentTimeline /\n * ActivityStream consumers for examples.\n */\nimport type { LucideIcon } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nexport type TimelineStatus =\n\t| 'completed'\n\t| 'current'\n\t| 'pending'\n\t| 'success'\n\t| 'warning'\n\t| 'error'\n\t| 'neutral';\n\nexport type TimelineDotSize = 'sm' | 'base' | 'lg';\n\nexport interface TimelineItem {\n\tid: string;\n\ttitle: ReactNode;\n\tdescription?: ReactNode;\n\ttimestamp?: ReactNode;\n\ticon?: LucideIcon;\n\tstatus?: TimelineStatus;\n\tchildren?: ReactNode;\n}\n\nexport interface TimelineProps {\n\titems: TimelineItem[];\n\tdotSize?: TimelineDotSize;\n\tclassName?: string;\n}\n\nconst DOT_PX: Record<TimelineDotSize, string> = {\n\tsm: 'size-2.5',\n\tbase: 'size-3.5',\n\tlg: 'size-5',\n};\n\nconst ICON_PX: Record<TimelineDotSize, string> = {\n\tsm: 'size-2',\n\tbase: 'size-2.5',\n\tlg: 'size-3',\n};\n\nconst STATUS_TONE: Record<TimelineStatus, { bg: string; text: string; ring: string; line: string }> = {\n\tcompleted: { bg: 'bg-success', text: 'text-success-foreground', ring: 'ring-success/20', line: 'bg-success/40' },\n\tcurrent: { bg: 'bg-primary', text: 'text-primary-foreground', ring: 'ring-primary/30', line: 'bg-primary/40' },\n\tpending: { bg: 'bg-muted', text: 'text-muted-foreground', ring: 'ring-border', line: 'bg-border' },\n\tsuccess: { bg: 'bg-success', text: 'text-success-foreground', ring: 'ring-success/20', line: 'bg-success/40' },\n\twarning: { bg: 'bg-warning', text: 'text-warning-foreground', ring: 'ring-warning/30', line: 'bg-warning/40' },\n\terror: { bg: 'bg-destructive', text: 'text-destructive-foreground', ring: 'ring-destructive/30', line: 'bg-destructive/40' },\n\tneutral: { bg: 'bg-card', text: 'text-foreground', ring: 'ring-border', line: 'bg-border' },\n};\n\nexport function Timeline({ items, dotSize = 'base', className }: TimelineProps) {\n\treturn (\n\t\t<ol className={cn('timeline--component', 'relative space-y-4', className)}>\n\t\t\t{items.map((item, i) => {\n\t\t\t\tconst status = item.status ?? 'neutral';\n\t\t\t\tconst tone = STATUS_TONE[status];\n\t\t\t\tconst Icon = item.icon;\n\t\t\t\tconst isLast = i === items.length - 1;\n\n\t\t\t\treturn (\n\t\t\t\t\t<li key={item.id} className=\"relative flex gap-3\">\n\t\t\t\t\t\t{/* Connector line — fills available space below dot until last */}\n\t\t\t\t\t\t{!isLast && (\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t'absolute left-[7px] top-4 bottom-[-1rem] w-px',\n\t\t\t\t\t\t\t\t\ttone.line,\n\t\t\t\t\t\t\t\t\tdotSize === 'lg' && 'left-[10px]',\n\t\t\t\t\t\t\t\t\tdotSize === 'sm' && 'left-[5px]',\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t<div className=\"relative z-[1] mt-0.5 flex shrink-0 items-start\">\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t'inline-flex items-center justify-center rounded-full ring-2',\n\t\t\t\t\t\t\t\t\ttone.bg,\n\t\t\t\t\t\t\t\t\ttone.text,\n\t\t\t\t\t\t\t\t\ttone.ring,\n\t\t\t\t\t\t\t\t\tDOT_PX[dotSize],\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{!!Icon && <Icon className={ICON_PX[dotSize]} />}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div className=\"min-w-0 flex-1 pb-2\">\n\t\t\t\t\t\t\t<div className=\"flex items-baseline justify-between gap-2\">\n\t\t\t\t\t\t\t\t<Text weight=\"medium\" className=\"leading-tight\">\n\t\t\t\t\t\t\t\t\t{item.title}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t{!!item.timestamp && (\n\t\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"shrink-0 tabular-nums\">\n\t\t\t\t\t\t\t\t\t\t{item.timestamp}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{!!item.description && (\n\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"mt-0.5\">\n\t\t\t\t\t\t\t\t\t{item.description}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{!!item.children && <div className=\"mt-2\">{item.children}</div>}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</li>\n\t\t\t\t);\n\t\t\t})}\n\t\t</ol>\n\t);\n}\n\nTimeline.displayName = 'Timeline';\n","import type { ReactNode } from 'react';\nimport type { StringsProp } from '@/lib/strings';\n\nexport type ChangelogEntryKind = 'added' | 'removed' | 'modified' | 'fixed';\n\nexport interface ChangelogEntry {\n\tid: string;\n\tkind: ChangelogEntryKind;\n\ttitle: ReactNode;\n\tdescription?: ReactNode;\n\tversion?: string;\n\ttimestamp?: string;\n\tauthor?: string;\n}\n\nexport interface ChangelogTimelineStrings {\n\ttitle: string;\n\tadded: string;\n\tremoved: string;\n\tmodified: string;\n\tfixed: string;\n}\n\nexport const defaultChangelogTimelineStrings: ChangelogTimelineStrings = {\n\ttitle: 'Changelog',\n\tadded: 'Added',\n\tremoved: 'Removed',\n\tmodified: 'Modified',\n\tfixed: 'Fixed',\n};\n\nexport interface ChangelogTimelineCardProps {\n\tentries: ChangelogEntry[];\n\tclassName?: string;\n\tstrings?: StringsProp<ChangelogTimelineStrings>;\n}\n","/**\n * ChangelogTimelineCard — code/release changelog rendered through the shared\n * `Timeline` primitive. Each entry maps a semantic kind (added / removed /\n * modified / fixed) to a colour-coded chip (green / red / amber / blue) plus\n * an optional version label and timestamp. Strings overridable for i18n.\n */\nimport { GitCommit, Minus, Plus, Wrench } from 'lucide-react';\nimport { Badge } from '@/components/base/badge';\nimport { SmartCard } from '@/components/base/cards';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\n\nimport {\n\tTimeline,\n\ttype TimelineItem,\n\ttype TimelineStatus,\n} from '../shared';\nimport {\n\tdefaultChangelogTimelineStrings,\n\ttype ChangelogEntry,\n\ttype ChangelogEntryKind,\n\ttype ChangelogTimelineCardProps,\n} from './types';\n\nimport { cn } from '@/lib/utils';\nconst KIND_TO_STATUS: Record<ChangelogEntryKind, TimelineStatus> = {\n\tadded: 'success',\n\tremoved: 'error',\n\tmodified: 'warning',\n\tfixed: 'current',\n};\n\nconst KIND_TO_BADGE: Record<\n\tChangelogEntryKind,\n\t'success' | 'error' | 'warning' | 'info'\n> = {\n\tadded: 'success',\n\tremoved: 'error',\n\tmodified: 'warning',\n\tfixed: 'info',\n};\n\nconst KIND_ICON = {\n\tadded: Plus,\n\tremoved: Minus,\n\tmodified: Wrench,\n\tfixed: GitCommit,\n} as const;\n\nexport function ChangelogTimelineCard({\n\tentries,\n\tclassName,\n\tstrings: stringsProp,\n}: ChangelogTimelineCardProps) {\n\tconst strings = useStrings(defaultChangelogTimelineStrings, stringsProp);\n\tconst labelByKind: Record<ChangelogEntryKind, string> = {\n\t\tadded: strings.added,\n\t\tremoved: strings.removed,\n\t\tmodified: strings.modified,\n\t\tfixed: strings.fixed,\n\t};\n\n\tconst items: TimelineItem[] = entries.map((entry: ChangelogEntry) => ({\n\t\tid: entry.id,\n\t\ttitle: (\n\t\t\t<span className=\"inline-flex flex-wrap items-center gap-1.5\">\n\t\t\t\t<Badge variant={KIND_TO_BADGE[entry.kind]}>\n\t\t\t\t\t{labelByKind[entry.kind]}\n\t\t\t\t</Badge>\n\t\t\t\t<span>{entry.title}</span>\n\t\t\t\t{!!entry.version && (\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" className=\"font-mono\">\n\t\t\t\t\t\t{entry.version}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</span>\n\t\t),\n\t\tdescription: entry.author ? (\n\t\t\t<>\n\t\t\t\t{entry.description}\n\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"discrete\" className=\"ml-2\">\n\t\t\t\t\t— {entry.author}\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t) : (\n\t\t\tentry.description\n\t\t),\n\t\ttimestamp: entry.timestamp,\n\t\ticon: KIND_ICON[entry.kind],\n\t\tstatus: KIND_TO_STATUS[entry.kind],\n\t}));\n\n\treturn (\n\t\t<SmartCard\n\t\t\ticon={<GitCommit className=\"size-4\" />}\n\t\t\ttitle={strings.title}\n\t\t\tclassName={cn('changelog-timeline--component', className)}\n\t\t>\n\t\t\t<Timeline items={items} dotSize=\"base\" />\n\t\t</SmartCard>\n\t);\n}\n\nChangelogTimelineCard.displayName = 'ChangelogTimelineCard';\n","import type { ReactNode } from 'react';\nimport type { StringsProp } from '@/lib/strings';\n\nexport type MilestoneStatus = 'completed' | 'in_progress' | 'upcoming' | 'blocked';\n\nexport interface MilestoneItem {\n\tid: string;\n\ttitle: ReactNode;\n\tdescription?: ReactNode;\n\tdueDate?: string;\n\tstatus: MilestoneStatus;\n\t/** 0–100; only used when status is `in_progress`. */\n\tprogress?: number;\n}\n\nexport interface MilestonesTimelineStrings {\n\ttitle: string;\n\tcompleted: string;\n\tin_progress: string;\n\tupcoming: string;\n\tblocked: string;\n\tdueOn: string;\n}\n\nexport const defaultMilestonesTimelineStrings: MilestonesTimelineStrings = {\n\ttitle: 'Milestones',\n\tcompleted: 'Completed',\n\tin_progress: 'In progress',\n\tupcoming: 'Upcoming',\n\tblocked: 'Blocked',\n\tdueOn: 'Due',\n};\n\nexport interface MilestonesTimelineCardProps {\n\tmilestones: MilestoneItem[];\n\tclassName?: string;\n\tstrings?: StringsProp<MilestonesTimelineStrings>;\n}\n","/**\n * MilestonesTimelineCard — project / goal milestones rendered through the\n * shared `Timeline` primitive. Each milestone has a status (completed /\n * in-progress / upcoming / blocked) that drives the dot tone, and an\n * optional `progress` percent that renders an inline progress bar when the\n * milestone is in flight. Strings overridable for i18n.\n */\nimport { Check, Circle, Clock, Flag, X } from 'lucide-react';\nimport { Badge } from '@/components/base/badge';\nimport { SmartCard } from '@/components/base/cards';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport {\n\tTimeline,\n\ttype TimelineItem,\n\ttype TimelineStatus,\n} from '../shared';\nimport {\n\tdefaultMilestonesTimelineStrings,\n\ttype MilestoneItem,\n\ttype MilestoneStatus,\n\ttype MilestonesTimelineCardProps,\n} from './types';\n\nconst STATUS_TO_TIMELINE: Record<MilestoneStatus, TimelineStatus> = {\n\tcompleted: 'completed',\n\tin_progress: 'current',\n\tupcoming: 'pending',\n\tblocked: 'error',\n};\n\nconst STATUS_ICON = {\n\tcompleted: Check,\n\tin_progress: Clock,\n\tupcoming: Circle,\n\tblocked: X,\n} as const;\n\nconst STATUS_BADGE: Record<MilestoneStatus, 'success' | 'primary' | 'secondary' | 'error'> = {\n\tcompleted: 'success',\n\tin_progress: 'primary',\n\tupcoming: 'secondary',\n\tblocked: 'error',\n};\n\nexport function MilestonesTimelineCard({\n\tmilestones,\n\tclassName,\n\tstrings: stringsProp,\n}: MilestonesTimelineCardProps) {\n\tconst strings = useStrings(defaultMilestonesTimelineStrings, stringsProp);\n\tconst labelByStatus: Record<MilestoneStatus, string> = {\n\t\tcompleted: strings.completed,\n\t\tin_progress: strings.in_progress,\n\t\tupcoming: strings.upcoming,\n\t\tblocked: strings.blocked,\n\t};\n\n\tconst items: TimelineItem[] = milestones.map((m: MilestoneItem) => ({\n\t\tid: m.id,\n\t\ttitle: (\n\t\t\t<span className=\"inline-flex flex-wrap items-center gap-1.5\">\n\t\t\t\t<span>{m.title}</span>\n\t\t\t\t<Badge variant={STATUS_BADGE[m.status]}>\n\t\t\t\t\t{labelByStatus[m.status]}\n\t\t\t\t</Badge>\n\t\t\t</span>\n\t\t),\n\t\tdescription: m.description,\n\t\ttimestamp: m.dueDate ? `${strings.dueOn} ${m.dueDate}` : undefined,\n\t\ticon: STATUS_ICON[m.status],\n\t\tstatus: STATUS_TO_TIMELINE[m.status],\n\t\tchildren:\n\t\t\tm.status === 'in_progress' && typeof m.progress === 'number' ? (\n\t\t\t\t<div className=\"space-y-1\">\n\t\t\t\t\t<div className=\"h-1.5 w-full overflow-hidden rounded-full bg-muted\">\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={cn('h-full rounded-full bg-primary transition-[width] duration-300')}\n\t\t\t\t\t\t\tstyle={{ width: `${Math.max(0, Math.min(100, m.progress))}%` }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"tabular-nums\">\n\t\t\t\t\t\t{Math.round(m.progress)}%\n\t\t\t\t\t</Text>\n\t\t\t\t</div>\n\t\t\t) : undefined,\n\t}));\n\n\treturn (\n\t\t<SmartCard\n\t\t\ticon={<Flag className=\"size-4\" />}\n\t\t\ttitle={strings.title}\n\t\t\tclassName={cn('milestones-timeline--component', className)}\n\t\t>\n\t\t\t<Timeline items={items} dotSize=\"base\" />\n\t\t</SmartCard>\n\t);\n}\n\nMilestonesTimelineCard.displayName = 'MilestonesTimelineCard';\n"],"mappings":"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"}