admin-ui-starter-kit 0.4.5 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (980) hide show
  1. package/.agents/skills/admin-ui-consumer-migration/SKILL.md +26 -4
  2. package/.agents/skills/admin-ui-consumer-migration/references/actions-service.md +57 -47
  3. package/.agents/skills/admin-ui-consumer-migration/references/package-gap-surfaces.md +52 -0
  4. package/.agents/skills/component-library-rules/references/components/INDEX.json +8 -7
  5. package/.agents/skills/component-library-rules/references/components/INDEX.md +1 -0
  6. package/.agents/skills/component-library-rules/references/components/base__combobox.md +37 -1
  7. package/.agents/skills/component-library-rules/references/components/base__forms.md +56 -1
  8. package/.agents/skills/component-library-rules/references/components/base__table.md +145 -3
  9. package/.agents/skills/component-library-rules/references/components/composed__admin.md +66 -0
  10. package/.agents/skills/component-library-rules/references/components/composed__resource-selector-card.md +85 -0
  11. package/.agents/skills/component-library-rules/references/components/features__filters.md +69 -0
  12. package/.agents/skills/component-library-rules/references/components/layout__layout-header.md +35 -0
  13. package/.agents/skills/component-library-rules/references/components/layout__layout-page.md +170 -7
  14. package/CHANGELOG.md +19 -3
  15. package/COMPONENT_SELECTION.md +30 -3
  16. package/INTEGRATION.md +69 -20
  17. package/README.md +60 -27
  18. package/dist/_shared/ai-artifact--vEDQFvM.cjs +3 -0
  19. package/dist/_shared/ai-artifact--vEDQFvM.cjs.map +1 -0
  20. package/dist/_shared/ai-artifact-p45wDWWX.js +1099 -0
  21. package/dist/_shared/ai-artifact-p45wDWWX.js.map +1 -0
  22. package/dist/_shared/auth-1Fl_2u-c.js +643 -0
  23. package/dist/_shared/auth-1Fl_2u-c.js.map +1 -0
  24. package/dist/_shared/auth-CVDNwcge.cjs +2 -0
  25. package/dist/_shared/auth-CVDNwcge.cjs.map +1 -0
  26. package/dist/_shared/badge-A8wQRShC.js +108 -0
  27. package/dist/_shared/badge-A8wQRShC.js.map +1 -0
  28. package/dist/_shared/badge-D7A2LnSf.cjs +2 -0
  29. package/dist/_shared/badge-D7A2LnSf.cjs.map +1 -0
  30. package/dist/_shared/combobox-CEzH533Y.cjs +2 -0
  31. package/dist/_shared/combobox-CEzH533Y.cjs.map +1 -0
  32. package/dist/_shared/combobox-Dc4vaeGt.js +927 -0
  33. package/dist/_shared/combobox-Dc4vaeGt.js.map +1 -0
  34. package/dist/_shared/comments-BDnq4RPN.js +952 -0
  35. package/dist/_shared/comments-BDnq4RPN.js.map +1 -0
  36. package/dist/_shared/comments-C4djB-nG.cjs +2 -0
  37. package/dist/_shared/comments-C4djB-nG.cjs.map +1 -0
  38. package/dist/_shared/display-AtPyyUZc.cjs +2 -0
  39. package/dist/_shared/display-AtPyyUZc.cjs.map +1 -0
  40. package/dist/_shared/display-CL69dmsv.js +1471 -0
  41. package/dist/_shared/display-CL69dmsv.js.map +1 -0
  42. package/dist/_shared/forms-Bi5rUH3t.cjs +2 -0
  43. package/dist/_shared/forms-Bi5rUH3t.cjs.map +1 -0
  44. package/dist/_shared/forms-Yd0b-3MQ.js +3556 -0
  45. package/dist/_shared/forms-Yd0b-3MQ.js.map +1 -0
  46. package/dist/_shared/header-C4SvsbMn.cjs +2 -0
  47. package/dist/_shared/header-C4SvsbMn.cjs.map +1 -0
  48. package/dist/_shared/header-CcnW83Vs.js +447 -0
  49. package/dist/_shared/header-CcnW83Vs.js.map +1 -0
  50. package/dist/_shared/hooks-DsDGr8xz.cjs +2 -0
  51. package/dist/_shared/hooks-DsDGr8xz.cjs.map +1 -0
  52. package/dist/_shared/hooks-IEM3N4VG.js +95 -0
  53. package/dist/_shared/hooks-IEM3N4VG.js.map +1 -0
  54. package/dist/_shared/layout.types-CYuDZ_4h.cjs +2 -0
  55. package/dist/_shared/layout.types-CYuDZ_4h.cjs.map +1 -0
  56. package/dist/_shared/layout.types-j7zZAPtg.js +28 -0
  57. package/dist/_shared/layout.types-j7zZAPtg.js.map +1 -0
  58. package/dist/_shared/mentions-CqwT7pUL.cjs +2 -0
  59. package/dist/_shared/mentions-CqwT7pUL.cjs.map +1 -0
  60. package/dist/_shared/mentions-RxzSRAWE.js +506 -0
  61. package/dist/_shared/mentions-RxzSRAWE.js.map +1 -0
  62. package/dist/_shared/navigation-B-TE-HR-.cjs +2 -0
  63. package/dist/_shared/navigation-B-TE-HR-.cjs.map +1 -0
  64. package/dist/_shared/navigation-Cg0UqMDP.js +424 -0
  65. package/dist/_shared/navigation-Cg0UqMDP.js.map +1 -0
  66. package/dist/_shared/page-Bl_eSGLh.js +262 -0
  67. package/dist/_shared/page-Bl_eSGLh.js.map +1 -0
  68. package/dist/_shared/page-DTEqSyEK.cjs +2 -0
  69. package/dist/_shared/page-DTEqSyEK.cjs.map +1 -0
  70. package/dist/_shared/resource-Bb7dj-aj.cjs +2 -0
  71. package/dist/_shared/resource-Bb7dj-aj.cjs.map +1 -0
  72. package/dist/_shared/resource-DljsYA7W.js +243 -0
  73. package/dist/_shared/resource-DljsYA7W.js.map +1 -0
  74. package/dist/_shared/settings-BtNkFHl3.cjs +2 -0
  75. package/dist/_shared/settings-BtNkFHl3.cjs.map +1 -0
  76. package/dist/_shared/settings-Do6SuM-H.js +143 -0
  77. package/dist/_shared/settings-Do6SuM-H.js.map +1 -0
  78. package/dist/_shared/sidebar-BhcdQ9e9.cjs +2 -0
  79. package/dist/_shared/sidebar-BhcdQ9e9.cjs.map +1 -0
  80. package/dist/_shared/sidebar-CMoxtuSw.js +538 -0
  81. package/dist/_shared/sidebar-CMoxtuSw.js.map +1 -0
  82. package/dist/_shared/table-BgpL5Yt8.cjs +2 -0
  83. package/dist/_shared/table-BgpL5Yt8.cjs.map +1 -0
  84. package/dist/_shared/table-Ct3nl0lV.js +1381 -0
  85. package/dist/_shared/table-Ct3nl0lV.js.map +1 -0
  86. package/dist/_shared/workspace-BzTFBkmd.cjs +2 -0
  87. package/dist/_shared/workspace-BzTFBkmd.cjs.map +1 -0
  88. package/dist/_shared/workspace-CvUYln5V.js +357 -0
  89. package/dist/_shared/workspace-CvUYln5V.js.map +1 -0
  90. package/dist/components/base/badge/badge.d.ts.map +1 -1
  91. package/dist/components/base/badge/index.cjs +1 -1
  92. package/dist/components/base/badge/index.js +1 -1
  93. package/dist/components/base/combobox/async-resource-combobox.d.ts +41 -0
  94. package/dist/components/base/combobox/async-resource-combobox.d.ts.map +1 -0
  95. package/dist/components/base/combobox/index.cjs +1 -1
  96. package/dist/components/base/combobox/index.d.ts +1 -0
  97. package/dist/components/base/combobox/index.d.ts.map +1 -1
  98. package/dist/components/base/combobox/index.js +2 -2
  99. package/dist/components/base/data-view/data-view.d.ts +6 -0
  100. package/dist/components/base/data-view/data-view.d.ts.map +1 -0
  101. package/dist/components/base/data-view/data-view.strings.d.ts +7 -0
  102. package/dist/components/base/data-view/data-view.strings.d.ts.map +1 -0
  103. package/dist/components/base/data-view/data-view.types.d.ts +57 -0
  104. package/dist/components/base/data-view/data-view.types.d.ts.map +1 -0
  105. package/dist/components/base/data-view/index.cjs +2 -0
  106. package/dist/components/base/data-view/index.cjs.map +1 -0
  107. package/dist/components/base/data-view/index.d.ts +4 -0
  108. package/dist/components/base/data-view/index.d.ts.map +1 -0
  109. package/dist/components/base/data-view/index.js +146 -0
  110. package/dist/components/base/data-view/index.js.map +1 -0
  111. package/dist/components/base/display/index.cjs +1 -1
  112. package/dist/components/base/display/index.js +5 -5
  113. package/dist/components/base/forms/index.cjs +1 -1
  114. package/dist/components/base/forms/index.d.ts +1 -0
  115. package/dist/components/base/forms/index.d.ts.map +1 -1
  116. package/dist/components/base/forms/index.js +5 -6
  117. package/dist/components/base/forms/workflow.d.ts +47 -0
  118. package/dist/components/base/forms/workflow.d.ts.map +1 -0
  119. package/dist/components/base/navigation/index.cjs +1 -1
  120. package/dist/components/base/navigation/index.js +1 -1
  121. package/dist/components/base/navigation/overflow-tab-bar.d.ts.map +1 -1
  122. package/dist/components/base/table/data-table.d.ts +1 -1
  123. package/dist/components/base/table/data-table.d.ts.map +1 -1
  124. package/dist/components/base/table/index.cjs +1 -1
  125. package/dist/components/base/table/index.d.ts +1 -1
  126. package/dist/components/base/table/index.d.ts.map +1 -1
  127. package/dist/components/base/table/index.js +2 -2
  128. package/dist/components/base/table/partials/cell-renderers.d.ts +69 -0
  129. package/dist/components/base/table/partials/cell-renderers.d.ts.map +1 -1
  130. package/dist/components/base/table/table.strings.d.ts.map +1 -1
  131. package/dist/components/base/table/table.types.d.ts +22 -1
  132. package/dist/components/base/table/table.types.d.ts.map +1 -1
  133. package/dist/components/composed/admin/action-surfaces/index.d.ts +118 -0
  134. package/dist/components/composed/admin/action-surfaces/index.d.ts.map +1 -0
  135. package/dist/components/composed/admin/index.cjs +1 -1
  136. package/dist/components/composed/admin/index.cjs.map +1 -1
  137. package/dist/components/composed/admin/index.d.ts +1 -0
  138. package/dist/components/composed/admin/index.d.ts.map +1 -1
  139. package/dist/components/composed/admin/index.js +392 -131
  140. package/dist/components/composed/admin/index.js.map +1 -1
  141. package/dist/components/composed/ai/index.cjs +1 -1
  142. package/dist/components/composed/ai/index.js +17 -17
  143. package/dist/components/composed/cards/index.cjs +1 -1
  144. package/dist/components/composed/cards/index.js +2 -2
  145. package/dist/components/composed/commerce/index.cjs +1 -1
  146. package/dist/components/composed/commerce/index.cjs.map +1 -1
  147. package/dist/components/composed/commerce/index.js +43 -44
  148. package/dist/components/composed/commerce/index.js.map +1 -1
  149. package/dist/components/composed/dark-surfaces/index.cjs +1 -1
  150. package/dist/components/composed/dark-surfaces/index.js +17 -17
  151. package/dist/components/composed/data-display/index.cjs +1 -1
  152. package/dist/components/composed/data-display/index.cjs.map +1 -1
  153. package/dist/components/composed/data-display/index.d.ts +1 -0
  154. package/dist/components/composed/data-display/index.d.ts.map +1 -1
  155. package/dist/components/composed/data-display/index.js +355 -285
  156. package/dist/components/composed/data-display/index.js.map +1 -1
  157. package/dist/components/composed/data-display/resource-selector-card.d.ts +43 -0
  158. package/dist/components/composed/data-display/resource-selector-card.d.ts.map +1 -0
  159. package/dist/components/composed/navigation/index.cjs +1 -1
  160. package/dist/components/composed/navigation/index.js +1 -1
  161. package/dist/components/composed/timelines/index.cjs +1 -1
  162. package/dist/components/composed/timelines/index.js +1 -1
  163. package/dist/components/features/activities/index.cjs +1 -1
  164. package/dist/components/features/activities/index.js +1 -1
  165. package/dist/components/features/ai-chat/index.cjs +1 -1
  166. package/dist/components/features/ai-chat/index.js +2 -2
  167. package/dist/components/features/comments/index.cjs +1 -1
  168. package/dist/components/features/comments/index.js +2 -2
  169. package/dist/components/features/event-log/index.cjs +1 -1
  170. package/dist/components/features/event-log/index.js +2 -2
  171. package/dist/components/features/filters/filter-query.d.ts +22 -0
  172. package/dist/components/features/filters/filter-query.d.ts.map +1 -0
  173. package/dist/components/features/filters/index.cjs +1 -1
  174. package/dist/components/features/filters/index.cjs.map +1 -1
  175. package/dist/components/features/filters/index.d.ts +1 -0
  176. package/dist/components/features/filters/index.d.ts.map +1 -1
  177. package/dist/components/features/filters/index.js +105 -22
  178. package/dist/components/features/filters/index.js.map +1 -1
  179. package/dist/components/features/global-search/index.cjs +1 -1
  180. package/dist/components/features/global-search/index.js +1 -1
  181. package/dist/components/features/media-library/index.cjs +1 -1
  182. package/dist/components/features/media-library/index.cjs.map +1 -1
  183. package/dist/components/features/media-library/index.js +36 -37
  184. package/dist/components/features/media-library/index.js.map +1 -1
  185. package/dist/components/features/mentions/index.cjs +1 -1
  186. package/dist/components/features/mentions/index.js +1 -1
  187. package/dist/components/features/products/index.cjs +1 -1
  188. package/dist/components/features/products/index.cjs.map +1 -1
  189. package/dist/components/features/products/index.js +4 -5
  190. package/dist/components/features/products/index.js.map +1 -1
  191. package/dist/components/features/schema-form/index.cjs +1 -1
  192. package/dist/components/features/schema-form/index.cjs.map +1 -1
  193. package/dist/components/features/schema-form/index.js +20 -20
  194. package/dist/components/features/suggestions/index.cjs +1 -1
  195. package/dist/components/features/suggestions/index.js +1 -1
  196. package/dist/components/layout/app-shell/index.cjs +1 -1
  197. package/dist/components/layout/app-shell/index.d.ts +1 -0
  198. package/dist/components/layout/app-shell/index.d.ts.map +1 -1
  199. package/dist/components/layout/app-shell/index.js +1 -1
  200. package/dist/components/layout/auth/index.cjs +1 -1
  201. package/dist/components/layout/auth/index.js +1 -1
  202. package/dist/components/layout/header/header.types.d.ts +40 -4
  203. package/dist/components/layout/header/header.types.d.ts.map +1 -1
  204. package/dist/components/layout/header/index.cjs +1 -1
  205. package/dist/components/layout/header/index.d.ts +5 -1
  206. package/dist/components/layout/header/index.d.ts.map +1 -1
  207. package/dist/components/layout/header/index.js +2 -2
  208. package/dist/components/layout/header/partials/header-global-search-trigger.d.ts +3 -0
  209. package/dist/components/layout/header/partials/header-global-search-trigger.d.ts.map +1 -0
  210. package/dist/components/layout/header/partials/header-notifications.d.ts.map +1 -1
  211. package/dist/components/layout/header/partials/header-search.d.ts.map +1 -1
  212. package/dist/components/layout/header/partials/header-tool-button.d.ts +5 -0
  213. package/dist/components/layout/header/partials/header-tool-button.d.ts.map +1 -0
  214. package/dist/components/layout/header/partials/header-tool-popover.d.ts +3 -0
  215. package/dist/components/layout/header/partials/header-tool-popover.d.ts.map +1 -0
  216. package/dist/components/layout/header/partials/header-user-menu.d.ts.map +1 -1
  217. package/dist/components/layout/hooks/index.cjs +1 -1
  218. package/dist/components/layout/hooks/index.js +1 -1
  219. package/dist/components/layout/index.cjs +1 -1
  220. package/dist/components/layout/index.d.ts +2 -0
  221. package/dist/components/layout/index.d.ts.map +1 -1
  222. package/dist/components/layout/index.js +13 -10
  223. package/dist/components/layout/page/index.cjs +1 -1
  224. package/dist/components/layout/page/index.js +1 -1
  225. package/dist/components/layout/resource/index.cjs +1 -0
  226. package/dist/components/layout/resource/index.d.ts +3 -0
  227. package/dist/components/layout/resource/index.d.ts.map +1 -0
  228. package/dist/components/layout/resource/index.js +2 -0
  229. package/dist/components/layout/resource/resource.d.ts +13 -0
  230. package/dist/components/layout/resource/resource.d.ts.map +1 -0
  231. package/dist/components/layout/resource/resource.types.d.ts +86 -0
  232. package/dist/components/layout/resource/resource.types.d.ts.map +1 -0
  233. package/dist/components/layout/settings/index.cjs +1 -0
  234. package/dist/components/layout/settings/index.d.ts +2 -0
  235. package/dist/components/layout/settings/index.d.ts.map +1 -0
  236. package/dist/components/layout/settings/index.js +2 -0
  237. package/dist/components/layout/settings/settings.d.ts +47 -0
  238. package/dist/components/layout/settings/settings.d.ts.map +1 -0
  239. package/dist/components/layout/sidebar/index.cjs +1 -1
  240. package/dist/components/layout/sidebar/index.d.ts +1 -0
  241. package/dist/components/layout/sidebar/index.d.ts.map +1 -1
  242. package/dist/components/layout/sidebar/index.js +3 -3
  243. package/dist/components/layout/workspace/index.cjs +1 -1
  244. package/dist/components/layout/workspace/index.js +1 -1
  245. package/dist/services/actions/action-adapters.d.ts +5 -0
  246. package/dist/services/actions/action-adapters.d.ts.map +1 -1
  247. package/dist/services/actions/action-provider.d.ts +1 -1
  248. package/dist/services/actions/action-provider.d.ts.map +1 -1
  249. package/dist/services/actions/action-store.d.ts.map +1 -1
  250. package/dist/services/actions/actions.types.d.ts +25 -0
  251. package/dist/services/actions/actions.types.d.ts.map +1 -1
  252. package/dist/services/actions/index.cjs +1 -1
  253. package/dist/services/actions/index.cjs.map +1 -1
  254. package/dist/services/actions/index.d.ts +1 -1
  255. package/dist/services/actions/index.d.ts.map +1 -1
  256. package/dist/services/actions/index.js +113 -95
  257. package/dist/services/actions/index.js.map +1 -1
  258. package/dist/showcase/assets/AreaChart-CPs34Emq.js +6 -0
  259. package/dist/showcase/assets/CompositeItem-CRBdF4lY.js +1 -0
  260. package/dist/showcase/assets/CompositeRoot-BJL04x4e.js +1 -0
  261. package/dist/showcase/assets/DialogTrigger-DLTfNVyT.js +1 -0
  262. package/dist/showcase/assets/LabelableContext-DqxJotB_.js +1 -0
  263. package/dist/showcase/assets/PreviewLayout-DQIZaXaO.js +1 -0
  264. package/dist/showcase/assets/RadioGroup-Bd_Zncc1.js +1 -0
  265. package/dist/showcase/assets/Separator-BP98bGSM.js +1 -0
  266. package/dist/showcase/assets/ToolbarRootContext-CHQj8-IW.js +1 -0
  267. package/dist/showcase/assets/accordion-C-grh_FX.js +171 -0
  268. package/dist/showcase/assets/accordion-variants-xiD_mqaf.js +1 -0
  269. package/dist/showcase/assets/action-menu-BkBav9jX.js +1 -0
  270. package/dist/showcase/assets/activities-DWhVEoyf.js +501 -0
  271. package/dist/showcase/assets/activities-feed-card-BW5nKGmZ.js +1 -0
  272. package/dist/showcase/assets/activity-poGMMgYW.js +1 -0
  273. package/dist/showcase/assets/admin-Dd5rNbt8.js +140 -0
  274. package/dist/showcase/assets/ai-B-HxItKA.js +41 -0
  275. package/dist/showcase/assets/ai-artifact-CakosBY2.js +2 -0
  276. package/dist/showcase/assets/ai-chat-DdxooReQ.js +568 -0
  277. package/dist/showcase/assets/ai-elements-D1Vv9_Tw.js +387 -0
  278. package/dist/showcase/assets/ai-new-nIwh-IOk.js +167 -0
  279. package/dist/showcase/assets/ai-tool-call-D_D0wP5v.js +1 -0
  280. package/dist/showcase/assets/alert-BUcCtIUZ.js +1 -0
  281. package/dist/showcase/assets/alert-Dia0s7JO.js +62 -0
  282. package/dist/showcase/assets/alert-T1jitthq.js +93 -0
  283. package/dist/showcase/assets/api-key-list-BH7hCegB.js +1 -0
  284. package/dist/showcase/assets/api-key-list-DGw5v3TM.js +73 -0
  285. package/dist/showcase/assets/app-sidebar-C9tjHr7T.js +1 -0
  286. package/dist/showcase/assets/arrow-down-B6kyPDb5.js +1 -0
  287. package/dist/showcase/assets/arrow-left-D0CtgCZo.js +1 -0
  288. package/dist/showcase/assets/arrow-right-KBaOzj0x.js +1 -0
  289. package/dist/showcase/assets/arrow-up-C4Mo45qq.js +1 -0
  290. package/dist/showcase/assets/arrow-up-right-DP1T-yaT.js +1 -0
  291. package/dist/showcase/assets/avatar-D7SDbnVK.js +57 -0
  292. package/dist/showcase/assets/avatar-Dk78XyHT.js +1 -0
  293. package/dist/showcase/assets/badge-BynPmAU-.js +28 -0
  294. package/dist/showcase/assets/badge-check-BLKxMna6.js +1 -0
  295. package/dist/showcase/assets/bell-YYeVQNAQ.js +1 -0
  296. package/dist/showcase/assets/bot-DW1y5yQ-.js +1 -0
  297. package/dist/showcase/assets/box-xRYm3qua.js +1 -0
  298. package/dist/showcase/assets/brain-D_5EG0Lz.js +1 -0
  299. package/dist/showcase/assets/brand-Dyp6oyOk.js +36 -0
  300. package/dist/showcase/assets/breadcrumb-DXvRsHCJ.js +52 -0
  301. package/dist/showcase/assets/breadcrumb-IsBRcWTe.js +1 -0
  302. package/dist/showcase/assets/breadcrumbs-BU7Rgcpu.js +1 -0
  303. package/dist/showcase/assets/briefcase-DNJAkTSQ.js +1 -0
  304. package/dist/showcase/assets/building-2-ew23uhTO.js +1 -0
  305. package/dist/showcase/assets/button-Vw1Oyu_k.js +44 -0
  306. package/dist/showcase/assets/button-group-B-jDeq6X.js +1 -0
  307. package/dist/showcase/assets/buttons-C51ePl4d.js +270 -0
  308. package/dist/showcase/assets/calendar-B5HmDXFy.js +16 -0
  309. package/dist/showcase/assets/calendar-BcfonDWf.js +1 -0
  310. package/dist/showcase/assets/calendar-C30zoOBE.js +1 -0
  311. package/dist/showcase/assets/calendar-days-RYOuU9Cg.js +1 -0
  312. package/dist/showcase/assets/camera-CyHnOpqm.js +1 -0
  313. package/dist/showcase/assets/card-Btuv-VxD.js +188 -0
  314. package/dist/showcase/assets/card-BvOjmZEl.js +1 -0
  315. package/dist/showcase/assets/card-primitives-FJQ8zNnk.js +1 -0
  316. package/dist/showcase/assets/card-radio-group-CEX1QGZc.js +1 -0
  317. package/dist/showcase/assets/cards-CL6XfZ22.js +328 -0
  318. package/dist/showcase/assets/carousel-D9G8bQhs.js +449 -0
  319. package/dist/showcase/assets/cell-renderers-CFw3ElYS.js +1 -0
  320. package/dist/showcase/assets/chart-CXAM6h1e.js +358 -0
  321. package/dist/showcase/assets/chart-column-BAuLvocu.js +1 -0
  322. package/dist/showcase/assets/checkbox-Bu3lf4gm.js +1 -0
  323. package/dist/showcase/assets/chevron-down-BbbFJsFU.js +1 -0
  324. package/dist/showcase/assets/chevron-left-CmperXCk.js +1 -0
  325. package/dist/showcase/assets/chevron-right-0nQcAzMY.js +1 -0
  326. package/dist/showcase/assets/chevron-up-BXSFzrxh.js +1 -0
  327. package/dist/showcase/assets/chevrons-up-down-lvrM2T-O.js +1 -0
  328. package/dist/showcase/assets/circle-DswWOvJq.js +1 -0
  329. package/dist/showcase/assets/circle-alert-DM8Q0Da0.js +1 -0
  330. package/dist/showcase/assets/circle-check-BYi8zv0a.js +1 -0
  331. package/dist/showcase/assets/circle-check-big-WtxiRvrB.js +1 -0
  332. package/dist/showcase/assets/circle-dot-MfYw-Dij.js +1 -0
  333. package/dist/showcase/assets/circle-question-mark-CbXDG7RP.js +1 -0
  334. package/dist/showcase/assets/circle-x-DeZby2HN.js +1 -0
  335. package/dist/showcase/assets/clock-3-BxradwSg.js +1 -0
  336. package/dist/showcase/assets/clock-BBX3LCxu.js +1 -0
  337. package/dist/showcase/assets/code-xml-ldsBhjwS.js +1 -0
  338. package/dist/showcase/assets/collapsible-COxB1q4f.js +1 -0
  339. package/dist/showcase/assets/collapsible-D8iHSi7O.js +27 -0
  340. package/dist/showcase/assets/combobox-gNdpv0PU.js +726 -0
  341. package/dist/showcase/assets/command-BNVn6pYm.js +1 -0
  342. package/dist/showcase/assets/command-Bwp2eLDF.js +1 -0
  343. package/dist/showcase/assets/comment-composer-eU5HG1ZD.js +1 -0
  344. package/dist/showcase/assets/comment-item-AKJEHLvt.js +1 -0
  345. package/dist/showcase/assets/comments-hcLJicNU.js +357 -0
  346. package/dist/showcase/assets/commerce-C_RgOVxU.js +79 -0
  347. package/dist/showcase/assets/commerce-extras-CVVnDyB5.js +189 -0
  348. package/dist/showcase/assets/composite-BW91WkOo.js +1 -0
  349. package/dist/showcase/assets/contact-card-CE82BDxj.js +65 -0
  350. package/dist/showcase/assets/content-container-Cc8Vv5Wp.js +1 -0
  351. package/dist/showcase/assets/copyable-CD9f6sxk.js +96 -0
  352. package/dist/showcase/assets/copyable-DRvJ9iOu.js +1 -0
  353. package/dist/showcase/assets/course-card-DYzULN2A.js +77 -0
  354. package/dist/showcase/assets/cpu-Cc__BewW.js +1 -0
  355. package/dist/showcase/assets/credit-card-CoIW8_5L.js +1 -0
  356. package/dist/showcase/assets/currency-DEKUvlFU.js +149 -0
  357. package/dist/showcase/assets/dark-surfaces-D5WXaLLj.js +90 -0
  358. package/dist/showcase/assets/database-C8o4g1ov.js +1 -0
  359. package/dist/showcase/assets/date-block-Aw2riL52.js +1 -0
  360. package/dist/showcase/assets/date-picker-BrBCLxZ8.js +1 -0
  361. package/dist/showcase/assets/date-pickers-B84_YAGT.js +73 -0
  362. package/dist/showcase/assets/dense-info-BaI61NnP.js +106 -0
  363. package/dist/showcase/assets/dialog-CfKGB1qy.js +1 -0
  364. package/dist/showcase/assets/dialog-DpfYwJPk.js +1 -0
  365. package/dist/showcase/assets/display-ZDXpxNSP.js +403 -0
  366. package/dist/showcase/assets/dist-DRkwLUFP.js +45 -0
  367. package/dist/showcase/assets/dollar-sign-BTuul0J-.js +1 -0
  368. package/dist/showcase/assets/download-Nn6XkM9l.js +1 -0
  369. package/dist/showcase/assets/dropdown-menu-CrcweCup.js +1 -0
  370. package/dist/showcase/assets/dropzone-MajEhAfA.js +1 -0
  371. package/dist/showcase/assets/earth-Cv_-EtPW.js +1 -0
  372. package/dist/showcase/assets/ellipsis-D0y6rUzm.js +1 -0
  373. package/dist/showcase/assets/ellipsis-vertical-B6ICYsU2.js +1 -0
  374. package/dist/showcase/assets/empty-CWtvDL2Z.js +1 -0
  375. package/dist/showcase/assets/empty-item-CBdSL5K4.js +49 -0
  376. package/dist/showcase/assets/empty-state-DpAXXKE_.js +1 -0
  377. package/dist/showcase/assets/empty-state-x7W66Jff.js +188 -0
  378. package/dist/showcase/assets/enhanced-activities-BgQBDjph.js +361 -0
  379. package/dist/showcase/assets/enhanced-combobox-BT-d7sfw.js +1 -0
  380. package/dist/showcase/assets/event-calendar-Bl3N30L5.js +138 -0
  381. package/dist/showcase/assets/event-log-BI24HOvx.js +330 -0
  382. package/dist/showcase/assets/example-CbMg22fx.js +1 -0
  383. package/dist/showcase/assets/external-link-C4QW5KPr.js +1 -0
  384. package/dist/showcase/assets/eye-rvb4fYw0.js +1 -0
  385. package/dist/showcase/assets/feature-announcement-CChQvOnH.js +34 -0
  386. package/dist/showcase/assets/file-GOMuLez7.js +1 -0
  387. package/dist/showcase/assets/file-text-B21ZcL9w.js +1 -0
  388. package/dist/showcase/assets/filters-Crp5EI1q.js +139 -0
  389. package/dist/showcase/assets/flag-D1iXMqPC.js +1 -0
  390. package/dist/showcase/assets/folder-open-CjZE_PS8.js +1 -0
  391. package/dist/showcase/assets/form-field-Dtn_NArM.js +1 -0
  392. package/dist/showcase/assets/format-Cu09wP-k.js +1 -0
  393. package/dist/showcase/assets/forms-noSArwvn.js +911 -0
  394. package/dist/showcase/assets/frame-2DJdBXkw.js +167 -0
  395. package/dist/showcase/assets/getPseudoElementBounds-DxlN6Yut.js +1 -0
  396. package/dist/showcase/assets/gift-DBIsZsVg.js +1 -0
  397. package/dist/showcase/assets/giftcard-cards-B3ffDDjK.js +85 -0
  398. package/dist/showcase/assets/git-branch-6eIv9W2g.js +1 -0
  399. package/dist/showcase/assets/global-search-BelZn8mj.js +215 -0
  400. package/dist/showcase/assets/global-search-DSMNBBiZ.js +1 -0
  401. package/dist/showcase/assets/globe-B_Lqx3uz.js +1 -0
  402. package/dist/showcase/assets/gradient-card-D_2eaE6O.js +58 -0
  403. package/dist/showcase/assets/hash-BC0RnYwr.js +1 -0
  404. package/dist/showcase/assets/header-CMjgUhtM.js +1 -0
  405. package/dist/showcase/assets/header-notifications-fOFoqfCR.js +1 -0
  406. package/dist/showcase/assets/heart-BM6yPMXn.js +1 -0
  407. package/dist/showcase/assets/house-CnsMNKdQ.js +1 -0
  408. package/dist/showcase/assets/icon-badge-IP9B3lQm.js +1 -0
  409. package/dist/showcase/assets/image-B5jt_w43.js +1 -0
  410. package/dist/showcase/assets/inbox-BcbV9uGN.js +1 -0
  411. package/dist/showcase/assets/index-Bn8k0P7-.css +2 -0
  412. package/dist/showcase/assets/index-DNH0y0r-.js +10 -0
  413. package/dist/showcase/assets/inertValue-B82SGILi.js +1 -0
  414. package/dist/showcase/assets/info-DO5VmDSw.js +1 -0
  415. package/dist/showcase/assets/inline-stat-B2s_ozrX.js +1 -0
  416. package/dist/showcase/assets/input-BCxdburb.js +1 -0
  417. package/dist/showcase/assets/input-DcQuALxy.js +1 -0
  418. package/dist/showcase/assets/input-group-DZJrOGbm.js +1 -0
  419. package/dist/showcase/assets/input-group-PwfoPR94.js +47 -0
  420. package/dist/showcase/assets/inputs-DetnUcEp.js +155 -0
  421. package/dist/showcase/assets/invoice-header-BMWL_9sW.js +36 -0
  422. package/dist/showcase/assets/invoice-items-DLEQR54f.js +36 -0
  423. package/dist/showcase/assets/invoice-mini-BxO8W_p2.js +14 -0
  424. package/dist/showcase/assets/invoice-table-ClMTdfvZ.js +30 -0
  425. package/dist/showcase/assets/isSameDay-B9x5Mpln.js +1 -0
  426. package/dist/showcase/assets/isToday-CT4NGB5x.js +1 -0
  427. package/dist/showcase/assets/italic-BiQv-7DA.js +1 -0
  428. package/dist/showcase/assets/item-CdgzxWcL.js +1 -0
  429. package/dist/showcase/assets/item-JreKWzkR.js +134 -0
  430. package/dist/showcase/assets/item-a8FCQMvC.js +1 -0
  431. package/dist/showcase/assets/kanban-CekpGtlO.js +186 -0
  432. package/dist/showcase/assets/key-round-CpIUGlhG.js +1 -0
  433. package/dist/showcase/assets/label-BE1d_Rxi.js +1 -0
  434. package/dist/showcase/assets/languages-DaFWrOam.js +1 -0
  435. package/dist/showcase/assets/layers-DDIuTz4-.js +1 -0
  436. package/dist/showcase/assets/layout-app-shell-BkqOwNe9.js +608 -0
  437. package/dist/showcase/assets/layout-auth-Bng_0NM0.js +754 -0
  438. package/dist/showcase/assets/layout-containers-Bk_jSDWd.js +101 -0
  439. package/dist/showcase/assets/layout-header-CuJVU1Rx.js +203 -0
  440. package/dist/showcase/assets/layout-page-DHOPox5Z.js +278 -0
  441. package/dist/showcase/assets/layout-primitives-BnIgANs6.js +34 -0
  442. package/dist/showcase/assets/layout-sidebar-BUOjQm9-.js +224 -0
  443. package/dist/showcase/assets/layout-users-DFlJQAuB.js +117 -0
  444. package/dist/showcase/assets/layout-workspace-Cq63UWwT.js +183 -0
  445. package/dist/showcase/assets/lock-DTD3z5Vh.js +1 -0
  446. package/dist/showcase/assets/lock-keyhole-Bbs1Ry2S.js +1 -0
  447. package/dist/showcase/assets/mail-DAa8myka.js +1 -0
  448. package/dist/showcase/assets/mail-check-DrmYfqQb.js +1 -0
  449. package/dist/showcase/assets/map-DfYPJKDx.js +124 -0
  450. package/dist/showcase/assets/map-pin-Cf_uffQY.js +1 -0
  451. package/dist/showcase/assets/media-library-Duyf6M0c.js +695 -0
  452. package/dist/showcase/assets/mention-inline-suggestions-tOlG56Jr.js +1 -0
  453. package/dist/showcase/assets/mentions-LbZlN995.js +138 -0
  454. package/dist/showcase/assets/menus-Cs95R125.js +165 -0
  455. package/dist/showcase/assets/message-square-CjaeUwPc.js +1 -0
  456. package/dist/showcase/assets/metadata-list-Bcy5s1_q.js +1 -0
  457. package/dist/showcase/assets/metadata-list-C9L63gMM2.js +288 -0
  458. package/dist/showcase/assets/metric-D8bF87C1.js +1 -0
  459. package/dist/showcase/assets/metric-bar-DQF1jEsY.js +1 -0
  460. package/dist/showcase/assets/metric-grid-DJZjbFrm.js +1 -0
  461. package/dist/showcase/assets/metric-trend-chip-C9YeKxwe.js +1 -0
  462. package/dist/showcase/assets/metrics-analytics-bar-CfGjnKEG.js +44 -0
  463. package/dist/showcase/assets/metrics-analytics-cards-C4R2q2ia.js +50 -0
  464. package/dist/showcase/assets/metrics-comparison-B2FZ-rUG.js +76 -0
  465. package/dist/showcase/assets/metrics-heatmap-BS4EafAM.js +27 -0
  466. package/dist/showcase/assets/metrics-inline-badge-CyWA0Plw.js +17 -0
  467. package/dist/showcase/assets/metrics-kpi-row-CH_KTuo2.js +31 -0
  468. package/dist/showcase/assets/metrics-micro-grid-Dw1rbkBU.js +42 -0
  469. package/dist/showcase/assets/metrics-overview-BuLSn0GC.js +192 -0
  470. package/dist/showcase/assets/metrics-stat-cards-Zo4F0-y4.js +54 -0
  471. package/dist/showcase/assets/minus-COUx_vHQ.js +1 -0
  472. package/dist/showcase/assets/money-display-prumQLQ2.js +1 -0
  473. package/dist/showcase/assets/month-year-picker-BDTiuGOD.js +1 -0
  474. package/dist/showcase/assets/navigation-Bf_sgFei.js +90 -0
  475. package/dist/showcase/assets/navigation-Dnqq0un0.js +230 -0
  476. package/dist/showcase/assets/navigation-extras-ydwfzYfj.js +43 -0
  477. package/dist/showcase/assets/onboarding-checklist-DBLaUqhZ.js +119 -0
  478. package/dist/showcase/assets/overflow-tab-bar-UXs-T5Fq.js +1 -0
  479. package/dist/showcase/assets/overlays-C1ET_VvE.js +408 -0
  480. package/dist/showcase/assets/overlays-dMd0EOT1.js +159 -0
  481. package/dist/showcase/assets/package-C9EnWNEP.js +1 -0
  482. package/dist/showcase/assets/package-check-BGT72daQ.js +1 -0
  483. package/dist/showcase/assets/page-action-button-8faHdFOD.js +1 -0
  484. package/dist/showcase/assets/page-header-DoZnb9z9.js +1 -0
  485. package/dist/showcase/assets/pagination-BJ3wQQtL.js +42 -0
  486. package/dist/showcase/assets/pagination-DJnga08n.js +1 -0
  487. package/dist/showcase/assets/paperclip-DsQ_IPLp.js +1 -0
  488. package/dist/showcase/assets/password-input-CLxvZdDC.js +1 -0
  489. package/dist/showcase/assets/pencil-37DzPmX5.js +1 -0
  490. package/dist/showcase/assets/phone-CLDh9lYU.js +1 -0
  491. package/dist/showcase/assets/plus-PKSdX45c.js +1 -0
  492. package/dist/showcase/assets/popover-BWbBoxN0.js +1 -0
  493. package/dist/showcase/assets/popover-DoEhmJ7G.js +1 -0
  494. package/dist/showcase/assets/popover-menu-wt8kWbr1.js +1 -0
  495. package/dist/showcase/assets/products-Bvl2zRfb.js +407 -0
  496. package/dist/showcase/assets/progress-BeusdG_D.js +18 -0
  497. package/dist/showcase/assets/progress-CQr08MPz.js +1 -0
  498. package/dist/showcase/assets/props-table-DSdjPLVr.js +1 -0
  499. package/dist/showcase/assets/props.generated-AlskAQY9.json +41579 -0
  500. package/dist/showcase/assets/quote-D1DrZRcn.js +1 -0
  501. package/dist/showcase/assets/receipt-CxNJvyC5.js +1 -0
  502. package/dist/showcase/assets/receipt-text-2YwFjXVP.js +1 -0
  503. package/dist/showcase/assets/refresh-cw-DlkWEAjG.js +1 -0
  504. package/dist/showcase/assets/resolveValueLabel-Ctt-9xwK.js +1 -0
  505. package/dist/showcase/assets/resource-selector-card-C9zM67wN.js +39 -0
  506. package/dist/showcase/assets/rich-text-editor-DUWBkEdn.js +124 -0
  507. package/dist/showcase/assets/rich-text-editor-DjsgN-HX.js +143 -0
  508. package/dist/showcase/assets/rotate-ccw-ZkWMrEMJ.js +1 -0
  509. package/dist/showcase/assets/save-CQjTFBwm.js +1 -0
  510. package/dist/showcase/assets/schema-form-yfcV7ZHE.js +325 -0
  511. package/dist/showcase/assets/scroll-area-D73Zq5No.js +32 -0
  512. package/dist/showcase/assets/scroll-area-Toa6lE_G.js +1 -0
  513. package/dist/showcase/assets/select-BQWY3ndy.js +1 -0
  514. package/dist/showcase/assets/select-x02n3iNp.js +1 -0
  515. package/dist/showcase/assets/send-L-LNhDVx.js +1 -0
  516. package/dist/showcase/assets/separator-B57lhXSg.js +28 -0
  517. package/dist/showcase/assets/separator-kwh2KDqD.js +1 -0
  518. package/dist/showcase/assets/settings-Mbnp6hDe.js +1 -0
  519. package/dist/showcase/assets/sheet-DwYghriA.js +1 -0
  520. package/dist/showcase/assets/shield-D084AWSl.js +1 -0
  521. package/dist/showcase/assets/shield-alert-h6F2vnr-.js +1 -0
  522. package/dist/showcase/assets/shield-check-UiN6QwPl.js +1 -0
  523. package/dist/showcase/assets/shopping-bag-oxYbVKoz.js +1 -0
  524. package/dist/showcase/assets/sidebar-BWDrvFY1.js +1 -0
  525. package/dist/showcase/assets/sidebar.context-BhexAjPM.js +1 -0
  526. package/dist/showcase/assets/skeleton-BIS2X39p.js +29 -0
  527. package/dist/showcase/assets/skeleton-uyUucxJA.js +1 -0
  528. package/dist/showcase/assets/slider-DL--Jsf0.js +1 -0
  529. package/dist/showcase/assets/sliders-horizontal-C6SHwI9f.js +1 -0
  530. package/dist/showcase/assets/smart-card-DpvRHqI9.js +1 -0
  531. package/dist/showcase/assets/sonner-CvCutMP9.js +22 -0
  532. package/dist/showcase/assets/sortable.esm-COtQXiwU.js +5 -0
  533. package/dist/showcase/assets/sparkles-bMR7rbuC.js +1 -0
  534. package/dist/showcase/assets/spinner-CBXhPGyW.js +30 -0
  535. package/dist/showcase/assets/spinner-Dl2u80sI.js +49 -0
  536. package/dist/showcase/assets/spinner-ULnFdoGj.js +1 -0
  537. package/dist/showcase/assets/square-pen-3jbmTAqh.js +1 -0
  538. package/dist/showcase/assets/stacked-avatars-XKXaLCmk.js +1 -0
  539. package/dist/showcase/assets/star-0BUJBDj_.js +1 -0
  540. package/dist/showcase/assets/startOfDay-C8cGxdjJ.js +1 -0
  541. package/dist/showcase/assets/styles-Cl6qvIKS.js +1 -0
  542. package/dist/showcase/assets/suggestions-EB3TFZpP.js +126 -0
  543. package/dist/showcase/assets/switch-BbZ7_Rk-.js +1 -0
  544. package/dist/showcase/assets/switch-C0QtKm5H.js +1 -0
  545. package/dist/showcase/assets/sync-BAO20Naa.js +107 -0
  546. package/dist/showcase/assets/table-CnCYxSnD.js +509 -0
  547. package/dist/showcase/assets/table-DF7x4TGI.js +1 -0
  548. package/dist/showcase/assets/table-actions-CjaUIKQl.js +1 -0
  549. package/dist/showcase/assets/tabs-D3YHyrQ5.js +1 -0
  550. package/dist/showcase/assets/tabs-vUgN5IPn.js +19 -0
  551. package/dist/showcase/assets/tags-input-jtEAac1b.js +1 -0
  552. package/dist/showcase/assets/text-button-fiMDoWms.js +1 -0
  553. package/dist/showcase/assets/text-link-CSzy09hn.js +1 -0
  554. package/dist/showcase/assets/textarea-DnvQVkFU.js +1 -0
  555. package/dist/showcase/assets/textarea-mATRsiLJ.js +1 -0
  556. package/dist/showcase/assets/timelines-fQQIiGc4.js +200 -0
  557. package/dist/showcase/assets/toggle-group-B0hN7VRz.js +1 -0
  558. package/dist/showcase/assets/toggles-group-CXm2HDJ1.js +32 -0
  559. package/dist/showcase/assets/toggles-kwgQf4hQ.js +71 -0
  560. package/dist/showcase/assets/trash-2-xwHdvAn6.js +1 -0
  561. package/dist/showcase/assets/trending-up-CKnZUURN.js +1 -0
  562. package/dist/showcase/assets/truck-8P8-8rHh.js +1 -0
  563. package/dist/showcase/assets/typography-BP3SCf0c.js +223 -0
  564. package/dist/showcase/assets/ui-badge-eTC8uxVw.js +28 -0
  565. package/dist/showcase/assets/ui-card-AQkRKit0.js +30 -0
  566. package/dist/showcase/assets/ui-table-BTE7t50V.js +42 -0
  567. package/dist/showcase/assets/upload-tray-DpW8ZnxN.js +138 -0
  568. package/dist/showcase/assets/use-layout-link-DR4Apqbc.js +1 -0
  569. package/dist/showcase/assets/useAnchoredPopupScrollLock-CT1urU5D.js +1 -0
  570. package/dist/showcase/assets/useAriaLabelledBy-DiHf8Ou_.js +1 -0
  571. package/dist/showcase/assets/useCollapsiblePanel-NNLPWtyS.js +1 -0
  572. package/dist/showcase/assets/useCompositeItem-BE0Lg9Iz.js +1 -0
  573. package/dist/showcase/assets/useCompositeListItem-OwLLy0R3.js +1 -0
  574. package/dist/showcase/assets/useLabelableId-Y-6YW07q.js +1 -0
  575. package/dist/showcase/assets/useOpenInteractionType-CUTVNS1V.js +1 -0
  576. package/dist/showcase/assets/useRender-BiaVVD8L.js +1 -0
  577. package/dist/showcase/assets/useTriggerFocusGuards-DCMcmSgH.js +1 -0
  578. package/dist/showcase/assets/useValueChanged-kq4oH4So.js +1 -0
  579. package/dist/showcase/assets/user-BCzeUL5p.js +1 -0
  580. package/dist/showcase/assets/user-plus-CUbfQtkK.js +1 -0
  581. package/dist/showcase/assets/users-DOGJZmUN.js +1 -0
  582. package/dist/showcase/assets/vendor-profile-C7dXfVv_.js +37 -0
  583. package/dist/showcase/assets/video-DbaCGki8.js +1 -0
  584. package/dist/showcase/assets/wrench-TbDfItHQ.js +1 -0
  585. package/dist/showcase/assets/x-BpAEmld2.js +1 -0
  586. package/dist/showcase/assets/zap-E8G3kjwh.js +1 -0
  587. package/dist/showcase/index.html +2 -2
  588. package/dist/style.css +1 -1
  589. package/package.json +16 -1
  590. package/dist/_shared/ai-artifact-D4EjKoq6.cjs +0 -3
  591. package/dist/_shared/ai-artifact-D4EjKoq6.cjs.map +0 -1
  592. package/dist/_shared/ai-artifact-nlOrSeqT.js +0 -1099
  593. package/dist/_shared/ai-artifact-nlOrSeqT.js.map +0 -1
  594. package/dist/_shared/auth-C5HawWvp.cjs +0 -2
  595. package/dist/_shared/auth-C5HawWvp.cjs.map +0 -1
  596. package/dist/_shared/auth-DnMEJXP9.js +0 -643
  597. package/dist/_shared/auth-DnMEJXP9.js.map +0 -1
  598. package/dist/_shared/badge-6WYAMJwA.js +0 -108
  599. package/dist/_shared/badge-6WYAMJwA.js.map +0 -1
  600. package/dist/_shared/badge-CBof1rbF.cjs +0 -2
  601. package/dist/_shared/badge-CBof1rbF.cjs.map +0 -1
  602. package/dist/_shared/combobox-B4KmDZK0.cjs +0 -2
  603. package/dist/_shared/combobox-B4KmDZK0.cjs.map +0 -1
  604. package/dist/_shared/combobox-YUGi3xSc.js +0 -810
  605. package/dist/_shared/combobox-YUGi3xSc.js.map +0 -1
  606. package/dist/_shared/comments-GzXdwpq4.js +0 -952
  607. package/dist/_shared/comments-GzXdwpq4.js.map +0 -1
  608. package/dist/_shared/comments-Zj_foV1V.cjs +0 -2
  609. package/dist/_shared/comments-Zj_foV1V.cjs.map +0 -1
  610. package/dist/_shared/display-Dhy5ogxC.cjs +0 -2
  611. package/dist/_shared/display-Dhy5ogxC.cjs.map +0 -1
  612. package/dist/_shared/display-NBtWdAMl.js +0 -1154
  613. package/dist/_shared/display-NBtWdAMl.js.map +0 -1
  614. package/dist/_shared/form-field-B7taMVbC.js +0 -329
  615. package/dist/_shared/form-field-B7taMVbC.js.map +0 -1
  616. package/dist/_shared/form-field-rMGPvHFK.cjs +0 -2
  617. package/dist/_shared/form-field-rMGPvHFK.cjs.map +0 -1
  618. package/dist/_shared/forms-BweX9Lm8.cjs +0 -2
  619. package/dist/_shared/forms-BweX9Lm8.cjs.map +0 -1
  620. package/dist/_shared/forms-L1hyNKpZ.js +0 -3430
  621. package/dist/_shared/forms-L1hyNKpZ.js.map +0 -1
  622. package/dist/_shared/header-BSBPtGn4.cjs +0 -2
  623. package/dist/_shared/header-BSBPtGn4.cjs.map +0 -1
  624. package/dist/_shared/header-No6GSp4R.js +0 -360
  625. package/dist/_shared/header-No6GSp4R.js.map +0 -1
  626. package/dist/_shared/hooks-BkXvZ4py.js +0 -118
  627. package/dist/_shared/hooks-BkXvZ4py.js.map +0 -1
  628. package/dist/_shared/hooks-D3SbLBRk.cjs +0 -2
  629. package/dist/_shared/hooks-D3SbLBRk.cjs.map +0 -1
  630. package/dist/_shared/mentions-CA1Ka_Bv.cjs +0 -2
  631. package/dist/_shared/mentions-CA1Ka_Bv.cjs.map +0 -1
  632. package/dist/_shared/mentions-CdvvLGQG.js +0 -506
  633. package/dist/_shared/mentions-CdvvLGQG.js.map +0 -1
  634. package/dist/_shared/navigation-BemwPPC8.cjs +0 -2
  635. package/dist/_shared/navigation-BemwPPC8.cjs.map +0 -1
  636. package/dist/_shared/navigation-DY540HB0.js +0 -419
  637. package/dist/_shared/navigation-DY540HB0.js.map +0 -1
  638. package/dist/_shared/page-Cg_gNpyK.js +0 -262
  639. package/dist/_shared/page-Cg_gNpyK.js.map +0 -1
  640. package/dist/_shared/page-CpFWQuWU.cjs +0 -2
  641. package/dist/_shared/page-CpFWQuWU.cjs.map +0 -1
  642. package/dist/_shared/sidebar-BTFfxmNG.cjs +0 -2
  643. package/dist/_shared/sidebar-BTFfxmNG.cjs.map +0 -1
  644. package/dist/_shared/sidebar-wmztVpnO.js +0 -538
  645. package/dist/_shared/sidebar-wmztVpnO.js.map +0 -1
  646. package/dist/_shared/switch-BBP3u1z5.js +0 -55
  647. package/dist/_shared/switch-BBP3u1z5.js.map +0 -1
  648. package/dist/_shared/switch-zFZhhOEP.cjs +0 -2
  649. package/dist/_shared/switch-zFZhhOEP.cjs.map +0 -1
  650. package/dist/_shared/table-BItnJ8lG.cjs +0 -2
  651. package/dist/_shared/table-BItnJ8lG.cjs.map +0 -1
  652. package/dist/_shared/table-D3349b-v.js +0 -1189
  653. package/dist/_shared/table-D3349b-v.js.map +0 -1
  654. package/dist/_shared/workspace-BGVeTeJy.js +0 -357
  655. package/dist/_shared/workspace-BGVeTeJy.js.map +0 -1
  656. package/dist/_shared/workspace-CWyzTUmE.cjs +0 -2
  657. package/dist/_shared/workspace-CWyzTUmE.cjs.map +0 -1
  658. package/dist/showcase/assets/AreaChart-BYEewdc_.js +0 -6
  659. package/dist/showcase/assets/CompositeItem-Duekeg4m.js +0 -1
  660. package/dist/showcase/assets/CompositeRoot-BgNU3T7R.js +0 -1
  661. package/dist/showcase/assets/DialogTrigger-9xWmoeF5.js +0 -1
  662. package/dist/showcase/assets/LabelableContext-B3W_70Qk.js +0 -1
  663. package/dist/showcase/assets/PreviewLayout-nADJqRlP.js +0 -1
  664. package/dist/showcase/assets/RadioGroup-Bp1VCzxr.js +0 -1
  665. package/dist/showcase/assets/Separator-9PWX3shz.js +0 -1
  666. package/dist/showcase/assets/ToolbarRootContext-DwELw9xS.js +0 -1
  667. package/dist/showcase/assets/accordion-CfqHO9_z.js +0 -171
  668. package/dist/showcase/assets/accordion-variants-pkPHxkLW.js +0 -1
  669. package/dist/showcase/assets/action-menu-DFzSuDjI.js +0 -1
  670. package/dist/showcase/assets/activities-Bo97b2-I.js +0 -501
  671. package/dist/showcase/assets/activities-feed-card-D77gf27B.js +0 -1
  672. package/dist/showcase/assets/activity-BUlCWLI8.js +0 -1
  673. package/dist/showcase/assets/admin-CxTV4kZX.js +0 -80
  674. package/dist/showcase/assets/ai-Bym5H8bn.js +0 -41
  675. package/dist/showcase/assets/ai-artifact-DZVl1WmK.js +0 -2
  676. package/dist/showcase/assets/ai-chat-M3X5-PgT.js +0 -568
  677. package/dist/showcase/assets/ai-elements-DjppcMBD.js +0 -387
  678. package/dist/showcase/assets/ai-new-CXnrIi5S.js +0 -167
  679. package/dist/showcase/assets/ai-tool-call-DyMI8DqD.js +0 -1
  680. package/dist/showcase/assets/alert-D6Pygy2s.js +0 -62
  681. package/dist/showcase/assets/alert-DCrWLbEx.js +0 -93
  682. package/dist/showcase/assets/alert-qTNM0vld.js +0 -1
  683. package/dist/showcase/assets/api-key-list-CCpuHYHc.js +0 -73
  684. package/dist/showcase/assets/app-sidebar-CxTRNC5L.js +0 -1
  685. package/dist/showcase/assets/arrow-down--phuskCV.js +0 -1
  686. package/dist/showcase/assets/arrow-left-B__WWqyA.js +0 -1
  687. package/dist/showcase/assets/arrow-right-1-EvXxjB.js +0 -1
  688. package/dist/showcase/assets/arrow-up-lWotnmo7.js +0 -1
  689. package/dist/showcase/assets/arrow-up-right-IyQ3oeq0.js +0 -1
  690. package/dist/showcase/assets/avatar-gugtNx4D.js +0 -57
  691. package/dist/showcase/assets/avatar-n1nywTlx.js +0 -1
  692. package/dist/showcase/assets/badge-TuE-u3Hv.js +0 -28
  693. package/dist/showcase/assets/badge-check-CPDvpVzK.js +0 -1
  694. package/dist/showcase/assets/bell-DeCVddCA.js +0 -1
  695. package/dist/showcase/assets/bot-B_vzJEJH.js +0 -1
  696. package/dist/showcase/assets/box-z4O8t_K5.js +0 -1
  697. package/dist/showcase/assets/brain-DdKBE4Bh.js +0 -1
  698. package/dist/showcase/assets/brand-CfW7mgTY.js +0 -36
  699. package/dist/showcase/assets/breadcrumb-B4TBbKv3.js +0 -52
  700. package/dist/showcase/assets/breadcrumb-bF_sFVBL.js +0 -1
  701. package/dist/showcase/assets/breadcrumbs-CBv3EaMX.js +0 -1
  702. package/dist/showcase/assets/briefcase-ClqzeNt3.js +0 -1
  703. package/dist/showcase/assets/building-2-BQuWgjZj.js +0 -1
  704. package/dist/showcase/assets/button-CWKNCI82.js +0 -44
  705. package/dist/showcase/assets/button-group-BYhxtFwV.js +0 -1
  706. package/dist/showcase/assets/buttons-mBRyBw3Q.js +0 -270
  707. package/dist/showcase/assets/calendar-BgloJjlW.js +0 -1
  708. package/dist/showcase/assets/calendar-CJDWspzi.js +0 -1
  709. package/dist/showcase/assets/calendar-CgML2kJt.js +0 -16
  710. package/dist/showcase/assets/calendar-days-C0gTLVnY.js +0 -1
  711. package/dist/showcase/assets/camera-nIlaz4Sn.js +0 -1
  712. package/dist/showcase/assets/card-1ncRnRvq.js +0 -1
  713. package/dist/showcase/assets/card-CcgWzFB-.js +0 -188
  714. package/dist/showcase/assets/card-primitives-By4-RTuP.js +0 -1
  715. package/dist/showcase/assets/card-radio-group-DeX3qsRg.js +0 -1
  716. package/dist/showcase/assets/cards-DdqQr8rY.js +0 -328
  717. package/dist/showcase/assets/carousel-CV8ltDl8.js +0 -449
  718. package/dist/showcase/assets/chart-BNzHjskC.js +0 -358
  719. package/dist/showcase/assets/chart-column-CpTxRLEH.js +0 -1
  720. package/dist/showcase/assets/checkbox-CZTTm4Dv.js +0 -1
  721. package/dist/showcase/assets/chevron-down-LWBNHe9S.js +0 -1
  722. package/dist/showcase/assets/chevron-left-BsshO7nf.js +0 -1
  723. package/dist/showcase/assets/chevron-right-t68um2_G.js +0 -1
  724. package/dist/showcase/assets/chevron-up-DjhlESJB.js +0 -1
  725. package/dist/showcase/assets/chevrons-up-down-ZUo0Do59.js +0 -1
  726. package/dist/showcase/assets/circle-BL52dLr9.js +0 -1
  727. package/dist/showcase/assets/circle-alert-CXCt6zxc.js +0 -1
  728. package/dist/showcase/assets/circle-check-CbiRRw7s.js +0 -1
  729. package/dist/showcase/assets/circle-check-big-BSgn7lyt.js +0 -1
  730. package/dist/showcase/assets/circle-dot-WEOpGGJf.js +0 -1
  731. package/dist/showcase/assets/circle-question-mark-C9hLlsD7.js +0 -1
  732. package/dist/showcase/assets/circle-x-BT9TJbJC.js +0 -1
  733. package/dist/showcase/assets/clock-3-CfRK8ckc.js +0 -1
  734. package/dist/showcase/assets/clock-D-3zf0c1.js +0 -1
  735. package/dist/showcase/assets/code-xml-CQYKKuBU.js +0 -1
  736. package/dist/showcase/assets/collapsible-BC0hQvat.js +0 -27
  737. package/dist/showcase/assets/collapsible-CRVtVDCF.js +0 -1
  738. package/dist/showcase/assets/combobox-D4VYvYCT.js +0 -696
  739. package/dist/showcase/assets/command-CxeHT4lL.js +0 -1
  740. package/dist/showcase/assets/command-Do_t_Zou.js +0 -1
  741. package/dist/showcase/assets/comment-composer-DoFwvVlq.js +0 -1
  742. package/dist/showcase/assets/comment-item-CT8UbVeg.js +0 -1
  743. package/dist/showcase/assets/comments-CqdXrjUn.js +0 -357
  744. package/dist/showcase/assets/commerce-B9V2Wo_q.js +0 -79
  745. package/dist/showcase/assets/commerce-extras-CNT3QmAT.js +0 -189
  746. package/dist/showcase/assets/composite-BXLXcagx.js +0 -1
  747. package/dist/showcase/assets/contact-card-BLcAXepj.js +0 -65
  748. package/dist/showcase/assets/content-container-DJVD3ZmI.js +0 -1
  749. package/dist/showcase/assets/copyable-od17NrMu.js +0 -96
  750. package/dist/showcase/assets/course-card-CdZQr5yy.js +0 -77
  751. package/dist/showcase/assets/cpu-B8kRNR1R.js +0 -1
  752. package/dist/showcase/assets/credit-card-BYMQj03s.js +0 -1
  753. package/dist/showcase/assets/currency-Cxv3Cp6B.js +0 -149
  754. package/dist/showcase/assets/dark-surfaces-Cfp58iFb.js +0 -90
  755. package/dist/showcase/assets/database-DuUABvxU.js +0 -1
  756. package/dist/showcase/assets/date-block-E9qfY7W7.js +0 -1
  757. package/dist/showcase/assets/date-picker-I8BdaiiU.js +0 -1
  758. package/dist/showcase/assets/date-pickers-BLJaqhcS.js +0 -73
  759. package/dist/showcase/assets/dense-info-Bk1K_7Ww.js +0 -106
  760. package/dist/showcase/assets/dialog-BuatDnQ9.js +0 -1
  761. package/dist/showcase/assets/dialog-DCx-LydW.js +0 -1
  762. package/dist/showcase/assets/display-Bt7busw5.js +0 -403
  763. package/dist/showcase/assets/dist-BPyBHOXU.js +0 -45
  764. package/dist/showcase/assets/dollar-sign-qXQSS6Gh.js +0 -1
  765. package/dist/showcase/assets/download-B2JAmHmJ.js +0 -1
  766. package/dist/showcase/assets/dropdown-menu-DXT3BZLa.js +0 -1
  767. package/dist/showcase/assets/dropzone-BKIxDJNy.js +0 -1
  768. package/dist/showcase/assets/earth-7-Z3Gv2v.js +0 -1
  769. package/dist/showcase/assets/ellipsis-6Krb3RRW.js +0 -1
  770. package/dist/showcase/assets/ellipsis-vertical-DeOMIw1J.js +0 -1
  771. package/dist/showcase/assets/empty-BSYKaeXQ.js +0 -1
  772. package/dist/showcase/assets/empty-item-YElgv25f.js +0 -49
  773. package/dist/showcase/assets/empty-state-D-LrvnKF.js +0 -1
  774. package/dist/showcase/assets/empty-state-dNh1GtVU.js +0 -188
  775. package/dist/showcase/assets/enhanced-activities-Bw99ItYl.js +0 -361
  776. package/dist/showcase/assets/enhanced-combobox-CqLZmU3K.js +0 -1
  777. package/dist/showcase/assets/event-calendar-CcSi7g5A.js +0 -138
  778. package/dist/showcase/assets/event-log-2uq-eYxh.js +0 -330
  779. package/dist/showcase/assets/example-CTJ8AdNR.js +0 -1
  780. package/dist/showcase/assets/external-link-D0gqSa1q.js +0 -1
  781. package/dist/showcase/assets/eye-CDMCDLei.js +0 -1
  782. package/dist/showcase/assets/feature-announcement-BlyNck35.js +0 -34
  783. package/dist/showcase/assets/file-Y5EbzufX.js +0 -1
  784. package/dist/showcase/assets/file-text-DH1mBuPi.js +0 -1
  785. package/dist/showcase/assets/filters-BtHF4GSM.js +0 -78
  786. package/dist/showcase/assets/flag-CJ08LwLY.js +0 -1
  787. package/dist/showcase/assets/folder-open-DODo2pjy.js +0 -1
  788. package/dist/showcase/assets/form-field-CHY7jh1q.js +0 -1
  789. package/dist/showcase/assets/format-DYJqAuDM.js +0 -1
  790. package/dist/showcase/assets/forms-DgvQQXHO.js +0 -862
  791. package/dist/showcase/assets/frame-CdKicP4A.js +0 -167
  792. package/dist/showcase/assets/getPseudoElementBounds-D9-Hr3mO.js +0 -1
  793. package/dist/showcase/assets/gift-DD8O7cld.js +0 -1
  794. package/dist/showcase/assets/giftcard-cards-Dp9eYodY.js +0 -85
  795. package/dist/showcase/assets/git-branch-DZq1Vo2G.js +0 -1
  796. package/dist/showcase/assets/global-search-BqDotXql.js +0 -215
  797. package/dist/showcase/assets/global-search-PH6LXqZw.js +0 -1
  798. package/dist/showcase/assets/globe-mRTwrUxM.js +0 -1
  799. package/dist/showcase/assets/gradient-card-CaL88YKv.js +0 -58
  800. package/dist/showcase/assets/hash-DuqvHQHv.js +0 -1
  801. package/dist/showcase/assets/header-CiNgDop3.js +0 -1
  802. package/dist/showcase/assets/header-notifications-B9XMBsK_.js +0 -1
  803. package/dist/showcase/assets/heart-DsGJfnDx.js +0 -1
  804. package/dist/showcase/assets/house-B504aFIP.js +0 -1
  805. package/dist/showcase/assets/icon-badge-DMNu8xb5.js +0 -1
  806. package/dist/showcase/assets/image-C3DaMxmn.js +0 -1
  807. package/dist/showcase/assets/inbox-BWKQMLMx.js +0 -1
  808. package/dist/showcase/assets/index-DN3tqopz.css +0 -2
  809. package/dist/showcase/assets/index-DaYVSqKu.js +0 -10
  810. package/dist/showcase/assets/inertValue-DrtTkMGx.js +0 -1
  811. package/dist/showcase/assets/info-_FrGoCay.js +0 -1
  812. package/dist/showcase/assets/inline-stat-BYu-tiUU.js +0 -1
  813. package/dist/showcase/assets/input-C96HMHWR.js +0 -1
  814. package/dist/showcase/assets/input-fMPi7XxI.js +0 -1
  815. package/dist/showcase/assets/input-group-BZnSgFCn.js +0 -47
  816. package/dist/showcase/assets/input-group-CVONNP3T.js +0 -1
  817. package/dist/showcase/assets/inputs-Blh0LJ8-.js +0 -155
  818. package/dist/showcase/assets/invoice-header-Bpo4iwX3.js +0 -36
  819. package/dist/showcase/assets/invoice-items-OVIrbG0k.js +0 -36
  820. package/dist/showcase/assets/invoice-mini-CaOMTiUO.js +0 -14
  821. package/dist/showcase/assets/invoice-table-BXd_HhUg.js +0 -30
  822. package/dist/showcase/assets/isSameDay-NBVO9AKF.js +0 -1
  823. package/dist/showcase/assets/isToday-Bk5HMXWn.js +0 -1
  824. package/dist/showcase/assets/italic-BOv5bW4H.js +0 -1
  825. package/dist/showcase/assets/item-B4rdcVVp.js +0 -134
  826. package/dist/showcase/assets/item-BVt0zZ12.js +0 -1
  827. package/dist/showcase/assets/item-C4Xk3DC1.js +0 -1
  828. package/dist/showcase/assets/kanban-BXbelelR.js +0 -186
  829. package/dist/showcase/assets/label-Cv6wotdv.js +0 -1
  830. package/dist/showcase/assets/languages-BofyvcCF.js +0 -1
  831. package/dist/showcase/assets/layers-DJK0t5px.js +0 -1
  832. package/dist/showcase/assets/layout-app-shell-D_yMonSl.js +0 -608
  833. package/dist/showcase/assets/layout-auth-BTvSTwUz.js +0 -754
  834. package/dist/showcase/assets/layout-containers-PMuo__2O.js +0 -101
  835. package/dist/showcase/assets/layout-header-DQ3zeCHz.js +0 -170
  836. package/dist/showcase/assets/layout-page-CbvWdHrK.js +0 -122
  837. package/dist/showcase/assets/layout-primitives-6nsFFIdE.js +0 -34
  838. package/dist/showcase/assets/layout-sidebar-CKqeVCSY.js +0 -224
  839. package/dist/showcase/assets/layout-users-Cypq-42s.js +0 -117
  840. package/dist/showcase/assets/layout-workspace-DiRR8vDv.js +0 -183
  841. package/dist/showcase/assets/lock-DXmvLEEx.js +0 -1
  842. package/dist/showcase/assets/lock-keyhole-Cu6M-jjE.js +0 -1
  843. package/dist/showcase/assets/mail-CXVFHkzh.js +0 -1
  844. package/dist/showcase/assets/mail-check-BNEu3j2a.js +0 -1
  845. package/dist/showcase/assets/map-DnE1pFCQ.js +0 -124
  846. package/dist/showcase/assets/map-pin-CpOVa8IH.js +0 -1
  847. package/dist/showcase/assets/media-library-C-KfEvm4.js +0 -695
  848. package/dist/showcase/assets/mention-inline-suggestions-DlmslsfR.js +0 -1
  849. package/dist/showcase/assets/mentions-C8ZdNFuC.js +0 -138
  850. package/dist/showcase/assets/menus-B8yUL75K.js +0 -165
  851. package/dist/showcase/assets/message-square-DNOTaOFs.js +0 -1
  852. package/dist/showcase/assets/metadata-list-BQAanxM-.js +0 -1
  853. package/dist/showcase/assets/metadata-list-DL9qgDAp.js +0 -288
  854. package/dist/showcase/assets/metric-CYi09Ltx.js +0 -1
  855. package/dist/showcase/assets/metric-bar-CQH1z8T3.js +0 -1
  856. package/dist/showcase/assets/metric-grid-H1ixqMCI.js +0 -1
  857. package/dist/showcase/assets/metric-trend-chip-BBzWzFZ-.js +0 -1
  858. package/dist/showcase/assets/metrics-analytics-bar-C7Z2ITl4.js +0 -44
  859. package/dist/showcase/assets/metrics-analytics-cards-CZZSWiMn.js +0 -50
  860. package/dist/showcase/assets/metrics-comparison-BPqz8k30.js +0 -76
  861. package/dist/showcase/assets/metrics-heatmap-C3NYZAfx.js +0 -27
  862. package/dist/showcase/assets/metrics-inline-badge-RjHfm7um.js +0 -17
  863. package/dist/showcase/assets/metrics-kpi-row-DnBjyDH4.js +0 -31
  864. package/dist/showcase/assets/metrics-micro-grid-CKn405qb.js +0 -42
  865. package/dist/showcase/assets/metrics-overview-D8YGtdrh.js +0 -192
  866. package/dist/showcase/assets/metrics-stat-cards-Dxh6cAha.js +0 -54
  867. package/dist/showcase/assets/minus-20OTSSxf.js +0 -1
  868. package/dist/showcase/assets/money-display-BoiAMxH8.js +0 -1
  869. package/dist/showcase/assets/month-year-picker-Bl59Ygq9.js +0 -1
  870. package/dist/showcase/assets/navigation-B8d2CDU6.js +0 -90
  871. package/dist/showcase/assets/navigation-D16JX3kL.js +0 -230
  872. package/dist/showcase/assets/navigation-extras-Dm83uT6i.js +0 -43
  873. package/dist/showcase/assets/onboarding-checklist-DznDpP9M.js +0 -119
  874. package/dist/showcase/assets/overlays-CzlSqbFz.js +0 -408
  875. package/dist/showcase/assets/overlays-DUFqbkb9.js +0 -159
  876. package/dist/showcase/assets/package-BCXIwEPz.js +0 -1
  877. package/dist/showcase/assets/package-check-Ol-Cw3j-.js +0 -1
  878. package/dist/showcase/assets/page-action-button-DpzdSYvw.js +0 -1
  879. package/dist/showcase/assets/page-header-B_b7SqW8.js +0 -1
  880. package/dist/showcase/assets/pagination-BPDQo9Dl.js +0 -1
  881. package/dist/showcase/assets/pagination-PvkEX0qs.js +0 -42
  882. package/dist/showcase/assets/paperclip-CznEsmLN.js +0 -1
  883. package/dist/showcase/assets/password-input-CWMY5q3b.js +0 -1
  884. package/dist/showcase/assets/pencil-Cl9qi90g.js +0 -1
  885. package/dist/showcase/assets/phone-DbvK_QQJ.js +0 -1
  886. package/dist/showcase/assets/plus-CO8t66Yo.js +0 -1
  887. package/dist/showcase/assets/popover-3QIVx9lU.js +0 -1
  888. package/dist/showcase/assets/popover-Cyg9oYIU.js +0 -1
  889. package/dist/showcase/assets/popover-menu-DJPHeIL1.js +0 -1
  890. package/dist/showcase/assets/products-WsU-qdMz.js +0 -407
  891. package/dist/showcase/assets/progress-C61sf-qt.js +0 -1
  892. package/dist/showcase/assets/progress-PvTl8Fgf.js +0 -18
  893. package/dist/showcase/assets/props-table-C8la6vcG.js +0 -1
  894. package/dist/showcase/assets/props.generated-vFrhDrth.json +0 -38618
  895. package/dist/showcase/assets/quote-N1_lRDnX.js +0 -1
  896. package/dist/showcase/assets/receipt-C6a_WyLu.js +0 -1
  897. package/dist/showcase/assets/receipt-text-CDOh8FAv.js +0 -1
  898. package/dist/showcase/assets/refresh-cw-D4-ECZ1x.js +0 -1
  899. package/dist/showcase/assets/resolveValueLabel-DqAP3zJd.js +0 -1
  900. package/dist/showcase/assets/rich-text-editor-CU0IZpwV.js +0 -143
  901. package/dist/showcase/assets/rich-text-editor-DCU7mMoO.js +0 -124
  902. package/dist/showcase/assets/rotate-ccw-Dd5zEmr7.js +0 -1
  903. package/dist/showcase/assets/save-DDmFSQli.js +0 -1
  904. package/dist/showcase/assets/schema-form-B7naqMvv.js +0 -325
  905. package/dist/showcase/assets/scroll-area-CdaYm4UK.js +0 -32
  906. package/dist/showcase/assets/scroll-area-DwWSHYHB.js +0 -1
  907. package/dist/showcase/assets/select-CNzpb5ug.js +0 -1
  908. package/dist/showcase/assets/select-DBXZ_Wzf.js +0 -1
  909. package/dist/showcase/assets/send-eDm7YMmA.js +0 -1
  910. package/dist/showcase/assets/separator-4IC9ED7s.js +0 -1
  911. package/dist/showcase/assets/separator-DPGDsZpG.js +0 -28
  912. package/dist/showcase/assets/settings-IANZGo2i.js +0 -1
  913. package/dist/showcase/assets/sheet-2oCce5ae.js +0 -1
  914. package/dist/showcase/assets/shield-CDZhhvFW.js +0 -1
  915. package/dist/showcase/assets/shield-alert-5hL3sdf3.js +0 -1
  916. package/dist/showcase/assets/shield-check-CaO2dhVS.js +0 -1
  917. package/dist/showcase/assets/shopping-bag-Bt3iK-Bv.js +0 -1
  918. package/dist/showcase/assets/sidebar-Cds60-PS.js +0 -1
  919. package/dist/showcase/assets/sidebar.context-CdH_DH9M.js +0 -1
  920. package/dist/showcase/assets/skeleton-2HajJKO4.js +0 -29
  921. package/dist/showcase/assets/skeleton-CGEJwPdD.js +0 -1
  922. package/dist/showcase/assets/slider-BjQViBR0.js +0 -1
  923. package/dist/showcase/assets/sliders-horizontal-C3JH5WQu.js +0 -1
  924. package/dist/showcase/assets/smart-card-CHouYi8U.js +0 -1
  925. package/dist/showcase/assets/sonner-Cog559j7.js +0 -22
  926. package/dist/showcase/assets/sortable.esm-hUEKsxpQ.js +0 -5
  927. package/dist/showcase/assets/sparkles-B18eTHVN.js +0 -1
  928. package/dist/showcase/assets/spinner-BSI97i4D.js +0 -1
  929. package/dist/showcase/assets/spinner-D0WhVyye.js +0 -30
  930. package/dist/showcase/assets/spinner-DQmJ7k9y.js +0 -49
  931. package/dist/showcase/assets/square-pen-CLyDWdhj.js +0 -1
  932. package/dist/showcase/assets/stacked-avatars-ECnU27uV.js +0 -1
  933. package/dist/showcase/assets/star-C3mhkpSK.js +0 -1
  934. package/dist/showcase/assets/startOfDay-ECIxhJGC.js +0 -1
  935. package/dist/showcase/assets/styles-CDD7mDye.js +0 -1
  936. package/dist/showcase/assets/suggestions-DOW6NBJp.js +0 -126
  937. package/dist/showcase/assets/switch-D59YKmf6.js +0 -1
  938. package/dist/showcase/assets/switch-NICmdoPn.js +0 -1
  939. package/dist/showcase/assets/sync-B8nBZXQ9.js +0 -107
  940. package/dist/showcase/assets/table-CckompuR.js +0 -382
  941. package/dist/showcase/assets/table-DtA4-Q0p.js +0 -1
  942. package/dist/showcase/assets/table-actions-DdoPJTMy.js +0 -1
  943. package/dist/showcase/assets/tabs-BrC_HxL_.js +0 -1
  944. package/dist/showcase/assets/tabs-UVxr80vY.js +0 -19
  945. package/dist/showcase/assets/tags-input-iDfvhzZD.js +0 -1
  946. package/dist/showcase/assets/text-button-DHFCLCoc.js +0 -1
  947. package/dist/showcase/assets/text-link-nCLLDcS_.js +0 -1
  948. package/dist/showcase/assets/textarea-DsSuQHQY.js +0 -1
  949. package/dist/showcase/assets/textarea-DyGI3Kcn.js +0 -1
  950. package/dist/showcase/assets/timelines-JmMcH657.js +0 -200
  951. package/dist/showcase/assets/toggle-group-BZKzMmC8.js +0 -1
  952. package/dist/showcase/assets/toggles-BSJvy4Tw.js +0 -71
  953. package/dist/showcase/assets/toggles-group-Bsc6eaWw.js +0 -32
  954. package/dist/showcase/assets/trash-2-C9AC7Pcv.js +0 -1
  955. package/dist/showcase/assets/trending-up-CGaDZj0S.js +0 -1
  956. package/dist/showcase/assets/truck-Dq6heokm.js +0 -1
  957. package/dist/showcase/assets/typography-ByvwR6Kg.js +0 -223
  958. package/dist/showcase/assets/ui-badge-BYgJSE_w.js +0 -28
  959. package/dist/showcase/assets/ui-card-BdueUfow.js +0 -30
  960. package/dist/showcase/assets/ui-table-CxtCQUsg.js +0 -42
  961. package/dist/showcase/assets/upload-tray-DKJ8nFZp.js +0 -138
  962. package/dist/showcase/assets/use-layout-link-CGBQHZon.js +0 -1
  963. package/dist/showcase/assets/useAnchoredPopupScrollLock-CywAbxVB.js +0 -1
  964. package/dist/showcase/assets/useAriaLabelledBy-B2bZzE7D.js +0 -1
  965. package/dist/showcase/assets/useCollapsiblePanel-SLdY_s6S.js +0 -1
  966. package/dist/showcase/assets/useCompositeItem-g6aCBp84.js +0 -1
  967. package/dist/showcase/assets/useCompositeListItem-DK0Tpege.js +0 -1
  968. package/dist/showcase/assets/useLabelableId-hdKzFCp2.js +0 -1
  969. package/dist/showcase/assets/useOpenInteractionType-CnhifZ1E.js +0 -1
  970. package/dist/showcase/assets/useRender-QhawWhpb.js +0 -1
  971. package/dist/showcase/assets/useTriggerFocusGuards-Cht7Sa7e.js +0 -1
  972. package/dist/showcase/assets/useValueChanged-DURO1kfZ.js +0 -1
  973. package/dist/showcase/assets/user-plus-DbOuTfr7.js +0 -1
  974. package/dist/showcase/assets/user-u65Fo7k7.js +0 -1
  975. package/dist/showcase/assets/users-BUb7CmVp.js +0 -1
  976. package/dist/showcase/assets/vendor-profile-wfI3PBuO.js +0 -37
  977. package/dist/showcase/assets/video-e4hDbTQ2.js +0 -1
  978. package/dist/showcase/assets/wrench-CBUvtxdr.js +0 -1
  979. package/dist/showcase/assets/x-oVTJnCJn.js +0 -1
  980. package/dist/showcase/assets/zap-CzABYL3c.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../src/components/composed/commerce/upcoming-booking/upcoming-booking.tsx","../../../../src/components/composed/commerce/loyalty-points/types.ts","../../../../src/components/composed/commerce/loyalty-points/loyalty-points.tsx","../../../../src/components/composed/commerce/discount-stack/types.ts","../../../../src/components/composed/commerce/discount-stack/discount-stack.tsx","../../../../src/components/composed/commerce/shipment-tracking/shipment-tracking.tsx","../../../../src/components/composed/commerce/tax-breakdown/types.ts","../../../../src/components/composed/commerce/tax-breakdown/tax-breakdown.tsx","../../../../src/components/composed/commerce/subscription-summary/types.ts","../../../../src/components/composed/commerce/subscription-summary/subscription-summary.tsx","../../../../src/components/composed/commerce/refund-status/types.ts","../../../../src/components/composed/commerce/refund-status/refund-status.tsx","../../../../src/components/composed/commerce/address-card/types.ts","../../../../src/components/composed/commerce/address-card/address-card.tsx","../../../../src/components/composed/commerce/voucher-entry/types.ts","../../../../src/components/composed/commerce/voucher-entry/voucher-entry.tsx","../../../../src/components/composed/commerce/cart-summary/types.ts","../../../../src/components/composed/commerce/cart-summary/cart-summary.tsx","../../../../src/components/composed/commerce/coupon-input/types.ts","../../../../src/components/composed/commerce/coupon-input/coupon-input.tsx","../../../../src/components/composed/commerce/order-status/types.ts","../../../../src/components/composed/commerce/order-status/order-status.tsx","../../../../src/components/composed/commerce/payment-method/types.ts","../../../../src/components/composed/commerce/payment-method/payment-method.tsx"],"sourcesContent":["/**\n * UpcomingBookingRow — compact booking list. Each row shows a `DateBlock`\n * (weekday / day / month / time) on the left, service + customer in the\n * middle, and trailing amount. Locale and date-tone are configurable.\n *\n * Time is placed BELOW the date block by default (matches the date block\n * vertical rhythm); pass `timePlacement=\"inline-trailing\"` to use a\n * separate trailing time column.\n */\nimport { Text } from '@/components/typography/text';\nimport { DateBlock } from '@/components/base/display/date-block';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemDescription,\n\tItemGroup,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\n\nimport type { BookingEntry, UpcomingBookingRowProps } from './types';\n\nimport { cn } from '@/lib/utils';\nfunction resolveDate(entry: BookingEntry): Date | string | number | null {\n\tif (entry.date != null) return entry.date;\n\tif (entry.day && entry.month) {\n\t\tconst year = new Date().getFullYear();\n\t\tconst synth = new Date(`${entry.month} ${entry.day}, ${year}`);\n\t\tif (!Number.isNaN(synth.getTime())) return synth;\n\t}\n\treturn null;\n}\n\nexport function UpcomingBookingRow({\n\tbookings,\n\tclassName,\n\tlocale,\n\tdateTone = 'inverse',\n\ttimePlacement = 'below',\n}: UpcomingBookingRowProps) {\n\treturn (\n\t\t<ItemGroup className={cn('upcoming-booking--component w-full gap-2', className)}>\n\t\t\t{bookings.map((b, idx) => {\n\t\t\t\tconst dateInput = resolveDate(b);\n\t\t\t\treturn (\n\t\t\t\t\t<Item key={b.id ?? `${b.service}-${b.time}-${idx}`} className=\"items-center px-0 py-1.5\">\n\t\t\t\t\t\t{!!dateInput && (\n\t\t\t\t\t\t\t<ItemMedia>\n\t\t\t\t\t\t\t\t<DateBlock\n\t\t\t\t\t\t\t\t\tdate={dateInput}\n\t\t\t\t\t\t\t\t\ttime={timePlacement === 'below' ? b.time : undefined}\n\t\t\t\t\t\t\t\t\ttone={dateTone}\n\t\t\t\t\t\t\t\t\tlocale={locale}\n\t\t\t\t\t\t\t\t\ttimePlacement=\"below\"\n\t\t\t\t\t\t\t\t\tlayout=\"stacked\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<ItemContent className=\"min-w-[min(12rem,100%)]\">\n\t\t\t\t\t\t\t<ItemTitle>{b.service}</ItemTitle>\n\t\t\t\t\t\t\t<ItemDescription clamp={1}>{b.customer}</ItemDescription>\n\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t<ItemActions className=\"ml-auto shrink-0 flex-wrap justify-end\">\n\t\t\t\t\t\t\t{timePlacement === 'inline-trailing' && (\n\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{b.time}\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<Text weight=\"semibold\" className=\"shrink-0 tabular-nums\">\n\t\t\t\t\t\t\t\t{b.amount}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</ItemActions>\n\t\t\t\t\t</Item>\n\t\t\t\t);\n\t\t\t})}\n\t\t</ItemGroup>\n\t);\n}\n\nUpcomingBookingRow.displayName = 'UpcomingBookingRow';\n","export interface LoyaltyHistoryEntry {\n label: string;\n points: string;\n date: string;\n positive: boolean;\n}\n\nexport interface LoyaltyPointsStrings {\n balanceLabel: string;\n pointsAvailable: string;\n redeem: string;\n}\n\nexport const defaultLoyaltyPointsStrings: LoyaltyPointsStrings = {\n balanceLabel: 'Loyalty Balance',\n pointsAvailable: 'points available',\n redeem: 'Redeem Points',\n};\n\nexport interface LoyaltyPointsCardProps {\n balance: number | string;\n tier?: string;\n tierVariant?: string;\n history?: LoyaltyHistoryEntry[];\n /** @deprecated Use `strings.redeem`. */\n redeemLabel?: string;\n onRedeem?: () => void;\n className?: string;\n strings?: Partial<LoyaltyPointsStrings>;\n}\n","/**\n * LoyaltyPointsCard — current balance, tier badge, recent history rows\n * (label / date / signed-points), and a redemption CTA. Strings overridable\n * for i18n.\n */\nimport { Badge } from '@/components/base/badge/badge';\nimport { Button } from '@/components/base/buttons';\nimport { SmartCard } from '@/components/base/cards/smart-card';\nimport Heading from '@/components/typography/heading';\nimport { Text } from '@/components/typography/text';\nimport { InlineStat } from '@/components/base/display';\nimport { Separator } from '@/components/base/display/separator';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemDescription,\n\tItemGroup,\n\tItemTitle,\n} from '@/components/base/item';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\nimport { Gift, Trophy } from 'lucide-react';\n\nimport { defaultLoyaltyPointsStrings, type LoyaltyPointsCardProps } from './types';\n\nexport function LoyaltyPointsCard({\n\tbalance,\n\ttier = 'Gold Tier',\n\ttierVariant: _tierVariant,\n\thistory = [],\n\tredeemLabel,\n\tonRedeem,\n\tclassName,\n\tstrings: stringsProp,\n}: LoyaltyPointsCardProps) {\n\tconst strings = useStrings(defaultLoyaltyPointsStrings, {\n\t\t...(redeemLabel !== undefined ? { redeem: redeemLabel } : {}),\n\t\t...stringsProp,\n\t});\n\treturn (\n\t\t<SmartCard className={cn('loyalty-points--component w-full', className)}>\n\t\t\t<InlineStat\n\t\t\t\tlabel={strings.balanceLabel}\n\t\t\t\tvalue={\n\t\t\t\t\t<Badge variant=\"warning\">\n\t\t\t\t\t\t<Trophy className=\"mr-1 inline size-3\" />\n\t\t\t\t\t\t{tier}\n\t\t\t\t\t</Badge>\n\t\t\t\t}\n\t\t\t\tlabelClassName=\"text-xs font-medium uppercase tracking-wider text-muted-foreground\"\n\t\t\t/>\n\n\t\t\t<Heading tag=\"h3\" className=\"text-4xl tabular-nums tracking-tight\">\n\t\t\t\t{typeof balance === 'number' ? balance.toLocaleString() : balance}\n\t\t\t</Heading>\n\t\t\t<Text size=\"xs\" type=\"secondary\">\n\t\t\t\t{strings.pointsAvailable}\n\t\t\t</Text>\n\n\t\t\t<Separator className=\"my-4\" />\n\n\t\t\t<ItemGroup>\n\t\t\t\t{history.map((entry) => (\n\t\t\t\t\t<Item key={entry.date + entry.label} size=\"xs\" className=\"px-0 py-1\">\n\t\t\t\t\t\t<ItemContent>\n\t\t\t\t\t\t\t<ItemTitle bold={false}>{entry.label}</ItemTitle>\n\t\t\t\t\t\t\t<ItemDescription clamp={1}>{entry.date}</ItemDescription>\n\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t<ItemActions>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t'tabular-nums',\n\t\t\t\t\t\t\t\t\tentry.positive ? 'text-success' : 'text-destructive',\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{entry.points}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</ItemActions>\n\t\t\t\t\t</Item>\n\t\t\t\t))}\n\t\t\t</ItemGroup>\n\n\t\t\t<Button\n\t\t\t\tvariant=\"dark\"\n\t\t\t\tclassName=\"mt-5 w-full rounded-full\"\n\t\t\t\tonClick={onRedeem}\n\t\t\t>\n\t\t\t\t<Gift className=\"mr-1.5 size-3.5\" />\n\t\t\t\t{strings.redeem}\n\t\t\t</Button>\n\t\t</SmartCard>\n\t);\n}\n\nLoyaltyPointsCard.displayName = 'LoyaltyPointsCard';\n","import type { ComposedBadgeVariant as BadgeVariant } from '@/components/base/badge/badge';\n\nexport interface Discount {\n type: string;\n label: string;\n amount: string;\n badge: BadgeVariant;\n}\n\nexport interface DiscountStackStrings {\n title: string;\n totalSavings: string;\n}\n\nexport const defaultDiscountStackStrings: DiscountStackStrings = {\n title: 'Applied Discounts',\n totalSavings: 'Total Savings',\n};\n\nexport interface DiscountStackPreviewProps {\n discounts: Discount[];\n totalSavings: string;\n className?: string;\n strings?: Partial<DiscountStackStrings>;\n}\n","/**\n * DiscountStackPreview — list of applied discounts (type chip + label +\n * amount) with a total-savings summary line. Strings overridable for i18n.\n */\nimport { Badge } from '@/components/base/badge/badge';\nimport { SmartCard } from '@/components/base/cards/smart-card';\nimport Heading from '@/components/typography/heading';\nimport { Text } from '@/components/typography/text';\nimport { InlineStat } from '@/components/base/display';\nimport { Separator } from '@/components/base/display/separator';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemGroup,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { useStrings } from '@/lib/strings';\n\nimport { defaultDiscountStackStrings, type DiscountStackPreviewProps } from './types';\n\nimport { cn } from '@/lib/utils';\nexport function DiscountStackPreview({\n\tdiscounts,\n\ttotalSavings,\n\tclassName,\n\tstrings: stringsProp,\n}: DiscountStackPreviewProps) {\n\tconst strings = useStrings(defaultDiscountStackStrings, stringsProp);\n\treturn (\n\t\t<SmartCard title={strings.title} className={cn('discount-stack--component w-full', className)}>\n\t\t\t<ItemGroup className=\"mt-4\">\n\t\t\t\t{discounts.map((d) => (\n\t\t\t\t\t<Item key={d.type} size=\"xs\" className=\"px-0 py-1\">\n\t\t\t\t\t\t<ItemMedia>\n\t\t\t\t\t\t\t<Badge variant={d.badge} className=\"w-16 justify-center text-xxs\">\n\t\t\t\t\t\t\t\t{d.type}\n\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t\t<ItemContent>\n\t\t\t\t\t\t\t<ItemTitle bold={false}>{d.label}</ItemTitle>\n\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t<ItemActions>\n\t\t\t\t\t\t\t<Text weight=\"semibold\" className=\"tabular-nums text-success\">\n\t\t\t\t\t\t\t\t{d.amount}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</ItemActions>\n\t\t\t\t\t</Item>\n\t\t\t\t))}\n\t\t\t</ItemGroup>\n\n\t\t\t<Separator className=\"my-4\" />\n\n\t\t\t<InlineStat\n\t\t\t\tlabel={strings.totalSavings}\n\t\t\t\tvalue={\n\t\t\t\t\t<Heading tag=\"h4\" className=\"text-xl tabular-nums tracking-tight text-success border-none pb-0\">\n\t\t\t\t\t\t{totalSavings}\n\t\t\t\t\t</Heading>\n\t\t\t\t}\n\t\t\t\tlabelClassName=\"text-sm font-semibold\"\n\t\t\t/>\n\t\t</SmartCard>\n\t);\n}\n\nDiscountStackPreview.displayName = 'DiscountStackPreview';\n","/**\n * ShipmentTrackingCard — tracking number + carrier header, current status\n * with pulse dot, horizontal step progress bar, and an optional details row\n * grid (e.g. weight, ETA, recipient). All copy is consumer-supplied via\n * `steps[].label` / `details[].label`.\n */\nimport { Badge } from '@/components/base/badge/badge';\nimport { SmartCard } from '@/components/base/cards/smart-card';\nimport { Text } from '@/components/typography/text';\nimport { InlineStat } from '@/components/base/display';\nimport { Separator } from '@/components/base/display/separator';\nimport { cn } from '@/lib/utils';\n\nimport type { ShipmentTrackingCardProps } from './types';\n\nexport function ShipmentTrackingCard({\n trackingNumber,\n carrier,\n status,\n steps,\n details = [],\n className,\n}: ShipmentTrackingCardProps) {\n return (\n <SmartCard className={cn('shipment-tracking--component w-full', className)}>\n <div className=\"flex items-center justify-between\">\n <Text size=\"xs\" weight=\"medium\" className=\"font-mono text-muted-foreground tracking-wide\">\n {trackingNumber}\n </Text>\n {!!carrier && <Badge variant=\"info\">{carrier}</Badge>}\n </div>\n\n <div className=\"mt-4 flex items-center gap-1.5\">\n <span className=\"h-2 w-2 rounded-full bg-success\" />\n <Text weight=\"semibold\">\n {status}\n </Text>\n </div>\n\n <div className=\"mt-5 flex items-center justify-between\">\n {steps.map((step, i) => (\n <div key={step.label} className=\"flex flex-1 flex-col items-center gap-2\">\n <div className=\"flex w-full items-center\">\n <div className={cn('size-3 shrink-0 rounded-full', step.done ? 'bg-success' : 'bg-muted')} />\n {i < steps.length - 1 && (\n <div className={cn('h-0.5 flex-1', step.done ? 'bg-success' : 'bg-muted')} />\n )}\n </div>\n <Text size=\"xs\" type=\"secondary\" className=\"text-center leading-tight\">\n {step.label}\n </Text>\n </div>\n ))}\n </div>\n\n {details.length > 0 && (\n <>\n <Separator className=\"my-4\" />\n <div className=\"space-y-2\">\n {details.map((detail) => (\n <InlineStat\n key={detail.label}\n label={detail.label}\n value={detail.value}\n labelClassName=\"text-xs\"\n valueClassName=\"text-sm font-medium truncate max-w-[180px]\"\n />\n ))}\n </div>\n </>\n )}\n </SmartCard>\n );\n}\n\nShipmentTrackingCard.displayName = 'ShipmentTrackingCard';\n","export interface TaxLineItem {\n\tid?: string;\n\tlabel: string;\n\trate?: string;\n\tamount: string;\n}\n\nexport interface TaxBreakdownStrings {\n\ttitle: string;\n\tsubtotal: string;\n\ttotalTax: string;\n\ttotal: string;\n}\n\nexport const defaultTaxBreakdownStrings: TaxBreakdownStrings = {\n\ttitle: 'Tax Breakdown',\n\tsubtotal: 'Subtotal',\n\ttotalTax: 'Total Tax',\n\ttotal: 'Total',\n};\n\nexport interface TaxBreakdownCardProps {\n\tsubtotal: string;\n\ttaxes: TaxLineItem[];\n\ttotalTax?: string;\n\ttotal: string;\n\tclassName?: string;\n\tstrings?: Partial<TaxBreakdownStrings>;\n}\n","/**\n * TaxBreakdownCard — itemised tax breakdown for an order or invoice. Shows a\n * subtotal, one row per tax line (with optional rate suffix), an optional\n * \"Total tax\" rollup, and a final total. Pairs with `CartSummaryCard` when\n * consumers need to expose VAT / regional tax detail. Strings overridable\n * for i18n.\n */\nimport { Receipt } from 'lucide-react';\nimport { SmartCard } from '@/components/base/cards';\nimport { Text } from '@/components/typography';\nimport { InlineStat } from '@/components/base/display';\nimport { Separator } from '@/components/base/display/separator';\nimport { useStrings } from '@/lib/strings';\n\nimport { defaultTaxBreakdownStrings, type TaxBreakdownCardProps } from './types';\n\nimport { cn } from '@/lib/utils';\nexport function TaxBreakdownCard({\n\tsubtotal,\n\ttaxes,\n\ttotalTax,\n\ttotal,\n\tclassName,\n\tstrings: stringsProp,\n}: TaxBreakdownCardProps) {\n\tconst strings = useStrings(defaultTaxBreakdownStrings, stringsProp);\n\n\treturn (\n\t\t<SmartCard\n\t\t\ticon={<Receipt className=\"size-4\" />}\n\t\t\ttitle={strings.title}\n\t\t\tclassName={cn('tax-breakdown--component w-full', className)}\n\t\t>\n\t\t\t<InlineStat\n\t\t\t\tlabel={strings.subtotal}\n\t\t\t\tvalue={subtotal}\n\t\t\t\tmono\n\t\t\t\tlabelClassName=\"text-sm\"\n\t\t\t\tvalueClassName=\"text-sm font-medium\"\n\t\t\t/>\n\n\t\t\t<div className=\"mt-3 space-y-1.5 rounded-lg border border-border/50 bg-muted/30 px-3 py-2.5\">\n\t\t\t\t{taxes.map((tax, i) => (\n\t\t\t\t\t<div\n\t\t\t\t\t\tkey={tax.id ?? `${tax.label}-${i}`}\n\t\t\t\t\t\tclassName=\"flex items-baseline justify-between gap-3\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"flex items-baseline gap-1.5 min-w-0\">\n\t\t\t\t\t\t\t<Text size=\"xs\" className=\"truncate\">{tax.label}</Text>\n\t\t\t\t\t\t\t{!!tax.rate && (\n\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xxs\" type=\"discrete\" className=\"shrink-0\">\n\t\t\t\t\t\t\t\t\t{tax.rate}\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</div>\n\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" weight=\"medium\" className=\"tabular-nums shrink-0\">\n\t\t\t\t\t\t\t{tax.amount}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</div>\n\t\t\t\t))}\n\t\t\t\t{!!totalTax && taxes.length > 1 && (\n\t\t\t\t\t<InlineStat\n\t\t\t\t\t\tlabel={strings.totalTax}\n\t\t\t\t\t\tvalue={totalTax}\n\t\t\t\t\t\tmono\n\t\t\t\t\t\tclassName=\"border-t border-border/50 pt-1.5 mt-0.5\"\n\t\t\t\t\t\tlabelClassName=\"text-xs font-medium\"\n\t\t\t\t\t\tvalueClassName=\"text-xs font-semibold\"\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t<Separator className=\"my-3\" />\n\n\t\t\t<InlineStat\n\t\t\t\tlabel={strings.total}\n\t\t\t\tvalue={total}\n\t\t\t\tmono\n\t\t\t\tlabelClassName=\"text-sm font-semibold\"\n\t\t\t\tvalueClassName=\"text-lg font-bold\"\n\t\t\t/>\n\t\t</SmartCard>\n\t);\n}\n\nTaxBreakdownCard.displayName = 'TaxBreakdownCard';\n","import type { LucideIcon } from 'lucide-react';\n\nexport interface SubscriptionPerk {\n\ticon?: LucideIcon;\n\tlabel: string;\n}\n\nexport interface SubscriptionSummaryStrings {\n\ttitle: string;\n\tplan: string;\n\tnextBilling: string;\n\tperks: string;\n\tmanage: string;\n\tupgrade: string;\n}\n\nexport const defaultSubscriptionSummaryStrings: SubscriptionSummaryStrings = {\n\ttitle: 'Subscription',\n\tplan: 'Plan',\n\tnextBilling: 'Next billing',\n\tperks: 'Included',\n\tmanage: 'Manage',\n\tupgrade: 'Upgrade',\n};\n\nexport interface SubscriptionSummaryCardProps {\n\tplanName: string;\n\tpriceLabel: string;\n\tcycleLabel: string;\n\tnextBillingDate: string;\n\tstatusLabel?: string;\n\tperks?: SubscriptionPerk[];\n\tonManage?: () => void;\n\tonUpgrade?: () => void;\n\tclassName?: string;\n\tstrings?: Partial<SubscriptionSummaryStrings>;\n}\n","/**\n * SubscriptionSummaryCard — at-a-glance subscription card with the active\n * plan name as the hero heading, an inline price + cycle, the next billing\n * date in a meta row, an optional perks list, and trailing\n * Manage / Upgrade actions. Strings overridable for i18n.\n */\nimport { Calendar, Check, ChevronRight, Repeat } from 'lucide-react';\nimport { Badge } from '@/components/base/badge';\nimport { Button } from '@/components/base/buttons';\nimport { SmartCard } from '@/components/base/cards';\nimport { IconBadge } from '@/components/base/display';\nimport {\n\tItem,\n\tItemContent,\n\tItemGroup,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport Heading from '@/components/typography/heading';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\n\nimport {\n\tdefaultSubscriptionSummaryStrings,\n\ttype SubscriptionSummaryCardProps,\n} from './types';\n\nimport { cn } from '@/lib/utils';\nexport function SubscriptionSummaryCard({\n\tplanName,\n\tpriceLabel,\n\tcycleLabel,\n\tnextBillingDate,\n\tstatusLabel,\n\tperks = [],\n\tonManage,\n\tonUpgrade,\n\tclassName,\n\tstrings: stringsProp,\n}: SubscriptionSummaryCardProps) {\n\tconst strings = useStrings(defaultSubscriptionSummaryStrings, stringsProp);\n\n\treturn (\n\t\t<SmartCard\n\t\t\ticon={<Repeat className=\"size-4\" />}\n\t\t\ttitle={strings.title}\n\t\t\theaderEnd={statusLabel ? <Badge variant=\"success\">{statusLabel}</Badge> : null}\n\t\t\tclassName={cn('subscription-summary--component w-full', className)}\n\t\t>\n\t\t\t<div className=\"rounded-lg border border-border/60 bg-muted/30 p-4\">\n\t\t\t\t<Text size=\"xxs\" type=\"secondary\" weight=\"medium\" className=\"uppercase tracking-wider\">\n\t\t\t\t\t{strings.plan}\n\t\t\t\t</Text>\n\t\t\t\t<Heading tag=\"h3\" className=\"mt-1 text-xl font-semibold tracking-tight border-none pb-0\">\n\t\t\t\t\t{planName}\n\t\t\t\t</Heading>\n\t\t\t\t<div className=\"mt-1 flex items-baseline gap-1\">\n\t\t\t\t\t<Text tag=\"span\" size=\"xl\" weight=\"bold\" className=\"tabular-nums\">\n\t\t\t\t\t\t{priceLabel}\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Text type=\"secondary\">\n\t\t\t\t\t\t{cycleLabel}\n\t\t\t\t\t</Text>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div className=\"mt-3 flex items-center justify-between rounded-md bg-card px-1\">\n\t\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t\t<Calendar className=\"size-3.5 text-muted-foreground\" />\n\t\t\t\t\t<Text size=\"xs\" type=\"secondary\">{strings.nextBilling}</Text>\n\t\t\t\t</div>\n\t\t\t\t<Text size=\"xs\" weight=\"semibold\" className=\"tabular-nums\">{nextBillingDate}</Text>\n\t\t\t</div>\n\n\t\t\t{perks.length > 0 && (\n\t\t\t\t<div className=\"mt-4 space-y-2\">\n\t\t\t\t\t<Text size=\"xxs\" type=\"secondary\" weight=\"medium\" className=\"uppercase tracking-wider\">\n\t\t\t\t\t\t{strings.perks}\n\t\t\t\t\t</Text>\n\t\t\t\t\t<ItemGroup>\n\t\t\t\t\t\t{perks.map((perk, i) => {\n\t\t\t\t\t\t\tconst Icon = perk.icon ?? Check;\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<Item key={`${perk.label}-${i}`} size=\"xs\" className=\"px-0\">\n\t\t\t\t\t\t\t\t\t<ItemMedia>\n\t\t\t\t\t\t\t\t\t\t<IconBadge icon={Icon} tone=\"success\" size=\"xs\" />\n\t\t\t\t\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t\t\t\t\t<ItemContent>\n\t\t\t\t\t\t\t\t\t\t<ItemTitle bold={false}>{perk.label}</ItemTitle>\n\t\t\t\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t\t\t</Item>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t</ItemGroup>\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{(onManage || onUpgrade) && (\n\t\t\t\t<div className=\"mt-4 flex items-center gap-2\">\n\t\t\t\t\t{!!onManage && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\t\t\tonClick={onManage}\n\t\t\t\t\t\t\tclassName=\"flex-1\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{strings.manage}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!onUpgrade && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tonClick={onUpgrade}\n\t\t\t\t\t\t\tclassName=\"flex-1\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{strings.upgrade}\n\t\t\t\t\t\t\t<ChevronRight className=\"ml-1 size-3.5\" />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</SmartCard>\n\t);\n}\n\nSubscriptionSummaryCard.displayName = 'SubscriptionSummaryCard';\n","export type RefundStage = 'requested' | 'approved' | 'processing' | 'completed';\n\nexport interface RefundStatusStrings {\n\ttitle: string;\n\trequested: string;\n\tapproved: string;\n\tprocessing: string;\n\tcompleted: string;\n\tamount: string;\n\treason: string;\n\teta: string;\n\tmethod: string;\n}\n\nexport const defaultRefundStatusStrings: RefundStatusStrings = {\n\ttitle: 'Refund Status',\n\trequested: 'Requested',\n\tapproved: 'Approved',\n\tprocessing: 'Processing',\n\tcompleted: 'Completed',\n\tamount: 'Refund amount',\n\treason: 'Reason',\n\teta: 'Expected by',\n\tmethod: 'Refund to',\n};\n\nexport interface RefundStatusCardProps {\n\tstage: RefundStage;\n\tamount: string;\n\treason?: string;\n\tmethod?: string;\n\teta?: string;\n\trequestedAt?: string;\n\tclassName?: string;\n\tstrings?: Partial<RefundStatusStrings>;\n}\n","/**\n * RefundStatusCard — refund-flow tracker. Shows the four canonical refund\n * stages (Requested → Approved → Processing → Completed) as a horizontal\n * progress bar, with refund amount as the lead figure and an optional reason\n * / method / ETA detail block. Strings overridable for i18n.\n */\nimport { Check, RotateCcw } from 'lucide-react';\nimport { SmartCard } from '@/components/base/cards';\nimport { Text } from '@/components/typography';\nimport Heading from '@/components/typography/heading';\nimport { InlineStat } from '@/components/base/display';\nimport { Separator } from '@/components/base/display/separator';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport {\n\tdefaultRefundStatusStrings,\n\ttype RefundStage,\n\ttype RefundStatusCardProps,\n} from './types';\n\nconst STAGE_ORDER: RefundStage[] = ['requested', 'approved', 'processing', 'completed'];\n\nexport function RefundStatusCard({\n\tstage,\n\tamount,\n\treason,\n\tmethod,\n\teta,\n\trequestedAt,\n\tclassName,\n\tstrings: stringsProp,\n}: RefundStatusCardProps) {\n\tconst strings = useStrings(defaultRefundStatusStrings, stringsProp);\n\tconst currentIdx = STAGE_ORDER.indexOf(stage);\n\n\treturn (\n\t\t<SmartCard\n\t\t\ticon={<RotateCcw className=\"size-4\" />}\n\t\t\ttitle={strings.title}\n\t\t\tclassName={cn('refund-status--component w-full', className)}\n\t\t>\n\t\t\t<div className=\"rounded-lg bg-muted/40 px-4 py-3\">\n\t\t\t\t<Text size=\"xxs\" type=\"secondary\" weight=\"medium\" className=\"uppercase tracking-wider\">\n\t\t\t\t\t{strings.amount}\n\t\t\t\t</Text>\n\t\t\t\t<Heading tag=\"h3\" className=\"text-3xl tabular-nums tracking-tight\">\n\t\t\t\t\t{amount}\n\t\t\t\t</Heading>\n\t\t\t\t{!!requestedAt && (\n\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"mt-0.5\">\n\t\t\t\t\t\t{strings.requested}: {requestedAt}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t{/* Stages */}\n\t\t\t<div className=\"mt-4 flex items-center justify-between\">\n\t\t\t\t{STAGE_ORDER.map((s, i) => {\n\t\t\t\t\tconst done = i <= currentIdx;\n\t\t\t\t\tconst current = i === currentIdx;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div key={s} className=\"flex flex-1 flex-col items-center gap-1.5\">\n\t\t\t\t\t\t\t<div className=\"flex w-full items-center\">\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t'relative flex size-5 shrink-0 items-center justify-center rounded-full',\n\t\t\t\t\t\t\t\t\t\tdone\n\t\t\t\t\t\t\t\t\t\t\t? 'bg-success text-success-foreground'\n\t\t\t\t\t\t\t\t\t\t\t: 'border border-border bg-card text-muted-foreground',\n\t\t\t\t\t\t\t\t\t\tcurrent && 'ring-2 ring-success/30 ring-offset-2 ring-offset-background',\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{done ? (\n\t\t\t\t\t\t\t\t\t\t<Check className=\"size-3\" />\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xxs\" weight=\"medium\" className=\"tabular-nums\">{i + 1}</Text>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{i < STAGE_ORDER.length - 1 && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t'h-0.5 flex-1',\n\t\t\t\t\t\t\t\t\t\t\ti < currentIdx ? 'bg-success' : 'bg-border',\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t/>\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<Text\n\t\t\t\t\t\t\t\tsize=\"xxs\"\n\t\t\t\t\t\t\t\tweight={current ? 'semibold' : 'medium'}\n\t\t\t\t\t\t\t\ttype={done ? 'main' : 'secondary'}\n\t\t\t\t\t\t\t\tclassName=\"text-center leading-tight\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{strings[s]}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\n\t\t\t{(reason || method || eta) && (\n\t\t\t\t<>\n\t\t\t\t\t<Separator className=\"my-4\" />\n\t\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t\t{!!reason && (\n\t\t\t\t\t\t\t<InlineStat label={strings.reason} value={reason} className=\"items-start\" valueClassName=\"text-sm font-medium text-right\" />\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{!!method && (\n\t\t\t\t\t\t\t<InlineStat label={strings.method} value={method} valueClassName=\"text-sm font-medium\" />\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{!!eta && (\n\t\t\t\t\t\t\t<InlineStat label={strings.eta} value={eta} mono valueClassName=\"text-sm font-medium\" />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</>\n\t\t\t)}\n\t\t</SmartCard>\n\t);\n}\n\nRefundStatusCard.displayName = 'RefundStatusCard';\n","export type AddressKind = 'shipping' | 'billing' | 'pickup';\n\nexport interface AddressCardStrings {\n\tdefaultBadge: string;\n\tedit: string;\n\tremove: string;\n\tmakeDefault: string;\n\tshipping: string;\n\tbilling: string;\n\tpickup: string;\n}\n\nexport const defaultAddressCardStrings: AddressCardStrings = {\n\tdefaultBadge: 'Default',\n\tedit: 'Edit',\n\tremove: 'Remove',\n\tmakeDefault: 'Make default',\n\tshipping: 'Shipping address',\n\tbilling: 'Billing address',\n\tpickup: 'Pickup address',\n};\n\nexport interface AddressCardProps {\n\tkind?: AddressKind;\n\tname: string;\n\tline1: string;\n\tline2?: string;\n\tcity: string;\n\tregion?: string;\n\tpostalCode?: string;\n\tcountry: string;\n\tphone?: string;\n\tisDefault?: boolean;\n\tonEdit?: () => void;\n\tonRemove?: () => void;\n\tonMakeDefault?: () => void;\n\tclassName?: string;\n\tstrings?: Partial<AddressCardStrings>;\n}\n","/**\n * AddressCard — saved postal address surface. Title varies by `kind`\n * (shipping / billing / pickup); shows recipient name, address lines, phone,\n * and a \"Default\" badge when applicable.\n *\n * Edit / remove / make-default actions ride through SmartCard's actions menu\n * (the canonical card-actions affordance) instead of inline footer buttons —\n * keeps the surface consistent with every other card in the library.\n */\nimport { Edit2, MapPin, Star, Trash2 } from 'lucide-react';\nimport { Badge } from '@/components/base/badge';\nimport { SmartCard, type SmartCardAction } from '@/components/base/cards';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\n\nimport {\n\tdefaultAddressCardStrings,\n\ttype AddressCardProps,\n\ttype AddressKind,\n} from './types';\n\nimport { cn } from '@/lib/utils';\nexport function AddressCard({\n\tkind = 'shipping',\n\tname,\n\tline1,\n\tline2,\n\tcity,\n\tregion,\n\tpostalCode,\n\tcountry,\n\tphone,\n\tisDefault = false,\n\tonEdit,\n\tonRemove,\n\tonMakeDefault,\n\tclassName,\n\tstrings: stringsProp,\n}: AddressCardProps) {\n\tconst strings = useStrings(defaultAddressCardStrings, stringsProp);\n\tconst titleByKind: Record<AddressKind, string> = {\n\t\tshipping: strings.shipping,\n\t\tbilling: strings.billing,\n\t\tpickup: strings.pickup,\n\t};\n\n\tconst cityLine = [city, region, postalCode].filter(Boolean).join(', ');\n\n\tconst actions: SmartCardAction[] = [];\n\tif (onEdit) {\n\t\tactions.push({\n\t\t\tid: 'edit',\n\t\t\tlabel: strings.edit,\n\t\t\ticon: <Edit2 className=\"size-3.5\" />,\n\t\t\tonClick: onEdit,\n\t\t});\n\t}\n\tif (onMakeDefault && !isDefault) {\n\t\tactions.push({\n\t\t\tid: 'make-default',\n\t\t\tlabel: strings.makeDefault,\n\t\t\ticon: <Star className=\"size-3.5\" />,\n\t\t\tonClick: onMakeDefault,\n\t\t});\n\t}\n\tif (onRemove) {\n\t\tactions.push({\n\t\t\tid: 'remove',\n\t\t\tlabel: strings.remove,\n\t\t\ticon: <Trash2 className=\"size-3.5\" />,\n\t\t\tonClick: onRemove,\n\t\t});\n\t}\n\n\treturn (\n\t\t<SmartCard\n\t\t\ticon={<MapPin className=\"size-4\" />}\n\t\t\ttitle={titleByKind[kind]}\n\t\t\ttitleSuffix={\n\t\t\t\tisDefault ? <Badge variant=\"primary\">{strings.defaultBadge}</Badge> : null\n\t\t\t}\n\t\t\tactions={actions.length > 0 ? actions : undefined}\n\t\t\tclassName={cn('address-card--component w-full', className)}\n\t\t>\n\t\t\t<div className=\"space-y-0.5\">\n\t\t\t\t<Text weight=\"semibold\">{name}</Text>\n\t\t\t\t<Text>{line1}</Text>\n\t\t\t\t{!!line2 && <Text>{line2}</Text>}\n\t\t\t\t{!!cityLine && <Text>{cityLine}</Text>}\n\t\t\t\t<Text type=\"secondary\">{country}</Text>\n\t\t\t\t{!!phone && (\n\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"mt-1.5 tabular-nums\">\n\t\t\t\t\t\t{phone}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</SmartCard>\n\t);\n}\n\nAddressCard.displayName = 'AddressCard';\n","export interface VoucherEntryStrings {\n\ttitle: string;\n\tinputLabel: string;\n\tplaceholder: string;\n\thelperText: string;\n\tcheck: string;\n\tremove: string;\n\tbalance: string;\n\tapplied: string;\n\tnotFound: string;\n}\n\nexport const defaultVoucherEntryStrings: VoucherEntryStrings = {\n\ttitle: 'Redeem a gift card',\n\tinputLabel: 'Gift card code',\n\tplaceholder: 'Enter gift card code',\n\thelperText: 'Apply one gift card or voucher to this order.',\n\tcheck: 'Check balance',\n\tremove: 'Remove',\n\tbalance: 'Available balance',\n\tapplied: 'Applied',\n\tnotFound: 'That gift card code is not valid.',\n};\n\nexport interface VoucherEntryCardProps {\n\tappliedCode?: string;\n\tbalance?: string;\n\terror?: string;\n\tloading?: boolean;\n\tonCheck?: (code: string) => void;\n\tonRemove?: () => void;\n\tclassName?: string;\n\tstrings?: Partial<VoucherEntryStrings>;\n}\n","/**\n * VoucherEntryCard — gift-card / voucher redemption entry.\n *\n * Empty state — leading gift icon input + check button, helper line surfacing\n * errors. Applied state — success-tinted row with check medallion, code,\n * balance amount, and a destructive remove icon.\n */\nimport { type FormEvent, useId, useState } from 'react';\nimport { Check, Gift, X } from 'lucide-react';\nimport { Badge } from '@/components/base/badge';\nimport { Button } from '@/components/base/buttons';\nimport { SmartCard } from '@/components/base/cards';\nimport { IconBadge } from '@/components/base/display';\nimport { FormField } from '@/components/base/forms';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemDescription,\n\tItemFooter,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { Input } from '@/components/base/forms/fields';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\n\nimport { defaultVoucherEntryStrings, type VoucherEntryCardProps } from './types';\n\nimport { cn } from '@/lib/utils';\nconst normalizeCode = (value: string): string => value.toUpperCase();\n\nexport function VoucherEntryCard({\n\tappliedCode,\n\tbalance,\n\terror,\n\tloading,\n\tonCheck,\n\tonRemove,\n\tclassName,\n\tstrings: stringsProp,\n}: VoucherEntryCardProps) {\n\tconst strings = useStrings(defaultVoucherEntryStrings, stringsProp);\n\tconst inputId = useId();\n\tconst [code, setCode] = useState('');\n\tconst trimmedCode = code.trim();\n\tconst handleSubmit = (event: FormEvent<HTMLFormElement>) => {\n\t\tevent.preventDefault();\n\t\tif (!trimmedCode) return;\n\t\tonCheck?.(trimmedCode);\n\t};\n\n\tif (appliedCode) {\n\t\treturn (\n\t\t\t<SmartCard\n\t\t\t\ticon={<Gift className=\"size-4\" />}\n\t\t\t\ttitle={strings.title}\n\t\t\t\tclassName={cn('voucher-entry--component w-full', className)}\n\t\t\t>\n\t\t\t\t<Item size=\"xs\" variant=\"outline\" className=\"items-center gap-x-2.5 gap-y-1.5 border-success/30 bg-success/5 px-2.5 py-2\">\n\t\t\t\t\t<ItemMedia>\n\t\t\t\t\t\t<IconBadge icon={Check} tone=\"success\" size=\"sm\" className=\"ring-1 ring-success/20\" />\n\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t<ItemContent className=\"min-w-0\">\n\t\t\t\t\t\t<div className=\"flex flex-wrap items-center gap-1.5\">\n\t\t\t\t\t\t\t<ItemTitle className=\"max-w-full font-mono tracking-wider\">{appliedCode}</ItemTitle>\n\t\t\t\t\t\t\t<Badge variant=\"success\" size=\"xs\">{strings.applied}</Badge>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<ItemDescription clamp={1}>{strings.balance}</ItemDescription>\n\t\t\t\t\t</ItemContent>\n\t\t\t\t\t<ItemFooter className=\"border-t border-success/15 pt-1\">\n\t\t\t\t\t\t<span />\n\t\t\t\t\t\t<ItemActions className=\"shrink-0 gap-1.5\">\n\t\t\t\t\t\t\t{!!balance && (\n\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" weight=\"semibold\" type=\"success\" className=\"tabular-nums shrink-0\">\n\t\t\t\t\t\t\t\t\t{balance}\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{!!onRemove && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tvariant=\"error\"\n\t\t\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\t\t\tsize=\"icon-xs\"\n\t\t\t\t\t\t\t\t\tonClick={onRemove}\n\t\t\t\t\t\t\t\t\taria-label={strings.remove}\n\t\t\t\t\t\t\t\t\tclassName=\"size-7 shrink-0 text-muted-foreground hover:text-destructive\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<X className=\"size-3.5\" />\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</ItemActions>\n\t\t\t\t\t</ItemFooter>\n\t\t\t\t</Item>\n\t\t\t</SmartCard>\n\t\t);\n\t}\n\n\treturn (\n\t\t<SmartCard\n\t\t\ticon={<Gift className=\"size-4\" />}\n\t\t\ttitle={strings.title}\n\t\t\tclassName={cn('voucher-entry--component w-full', className)}\n\t\t>\n\t\t\t<form onSubmit={handleSubmit}>\n\t\t\t\t<FormField\n\t\t\t\t\tlabel={strings.inputLabel}\n\t\t\t\t\thtmlFor={inputId}\n\t\t\t\t\terror={error}\n\t\t\t\t\thint={error ? undefined : strings.helperText}\n\t\t\t\t>\n\t\t\t\t\t<div className=\"flex flex-wrap gap-2\">\n\t\t\t\t\t\t<div className=\"min-w-[12rem] flex-1\">\n\t\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\t\tid={inputId}\n\t\t\t\t\t\t\t\tvalue={code}\n\t\t\t\t\t\t\t\tonChange={(e) => setCode(normalizeCode((e.target as HTMLInputElement).value))}\n\t\t\t\t\t\t\t\tplaceholder={strings.placeholder}\n\t\t\t\t\t\t\t\tstartIcon={Gift}\n\t\t\t\t\t\t\t\tautoCapitalize=\"characters\"\n\t\t\t\t\t\t\t\tspellCheck={false}\n\t\t\t\t\t\t\t\tclassName=\"font-mono\"\n\t\t\t\t\t\t\t\tinvalid={Boolean(error)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\tloading={loading}\n\t\t\t\t\t\t\tdisabled={!trimmedCode}\n\t\t\t\t\t\t\tclassName=\"shrink-0\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{strings.check}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\t\t\t\t</FormField>\n\t\t\t</form>\n\t\t</SmartCard>\n\t);\n}\n\nVoucherEntryCard.displayName = 'VoucherEntryCard';\n","export interface CartLineItem {\n\tid: string;\n\tname?: string;\n\tproductTitle?: string;\n\ttitle?: string;\n\tvariantTitle?: string;\n\tqty: number;\n\tprice: string;\n\timageUrl?: string;\n\timageSrc?: string;\n\tsrc?: string;\n\turl?: string;\n\timageAlt?: string;\n}\n\nexport interface CartSummaryStrings {\n\ttitle: string;\n\tsubtotal: string;\n\ttax: string;\n\tshipping: string;\n\tdiscount: string;\n\ttotal: string;\n\tcheckout: string;\n}\n\nexport const defaultCartSummaryStrings: CartSummaryStrings = {\n\ttitle: 'Cart',\n\tsubtotal: 'Subtotal',\n\ttax: 'Tax',\n\tshipping: 'Shipping',\n\tdiscount: 'Discount',\n\ttotal: 'Total',\n\tcheckout: 'Checkout',\n};\n\nexport interface CartSummaryCardProps {\n\titems: CartLineItem[];\n\tsubtotal?: string;\n\ttax?: string;\n\tshipping?: string;\n\tdiscount?: string;\n\ttotal: string;\n\tonCheckout?: () => void;\n\tclassName?: string;\n\tstrings?: Partial<CartSummaryStrings>;\n}\n","/**\n * CartSummaryCard — line-item list with optional subtotal / tax / shipping /\n * discount breakdown and a primary \"Checkout\" action. Items render through\n * `<ItemGroup>` for density consistency; the breakdown rows sit in a tight\n * summary block above the total. The discount value is shown as a signed\n * delta in success colour.\n */\nimport { ShoppingBag } from 'lucide-react';\nimport { SmartCard } from '@/components/base/cards';\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography';\nimport { InlineStat } from '@/components/base/display';\nimport { Separator } from '@/components/base/display/separator';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemDescription,\n\tItemGroup,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { useStrings } from '@/lib/strings';\n\nimport { defaultCartSummaryStrings, type CartLineItem, type CartSummaryCardProps } from './types';\n\nimport { cn } from '@/lib/utils';\nconst stripLeadingMinus = (value: string): string => value.replace(/^[\\s−-]+/, '');\n\nconst resolveCartLineTitle = (item: CartLineItem): string => {\n\treturn [item.productTitle, item.title, item.name].find((value) => !!value?.trim()) ?? item.id;\n};\n\nconst resolveCartLineImageSrc = (item: CartLineItem): string | undefined => {\n\treturn [item.imageUrl, item.imageSrc, item.src, item.url].find((value) => !!value?.trim());\n};\n\nconst getCartLinePlaceholderLabel = (title: string): string => {\n\tconst initials = title\n\t\t.trim()\n\t\t.split(/\\s+/)\n\t\t.map((part) => part[0])\n\t\t.join('')\n\t\t.slice(0, 2)\n\t\t.toUpperCase();\n\n\treturn initials || title.trim().slice(0, 2).toUpperCase();\n};\n\nfunction CartLineImagePlaceholder({ title }: { title: string }) {\n\treturn (\n\t\t<div\n\t\t\taria-hidden=\"true\"\n\t\t\tclassName=\"flex size-full items-center justify-center rounded-[inherit] bg-muted text-[length:var(--text-xxs)] font-semibold text-muted-foreground ring-1 ring-border/60\"\n\t\t>\n\t\t\t{getCartLinePlaceholderLabel(title)}\n\t\t</div>\n\t);\n}\n\nexport function CartSummaryCard({\n\titems,\n\tsubtotal,\n\ttax,\n\tshipping,\n\tdiscount,\n\ttotal,\n\tonCheckout,\n\tclassName,\n\tstrings: stringsProp,\n}: CartSummaryCardProps) {\n\tconst strings = useStrings(defaultCartSummaryStrings, stringsProp);\n\tconst hasBreakdown = !!(subtotal || tax || shipping || discount);\n\n\treturn (\n\t\t<SmartCard icon={<ShoppingBag className=\"size-4\" />} title={strings.title} className={cn('cart-summary--component w-full', className)}>\n\t\t\t<ItemGroup>\n\t\t\t\t{items.map((it) => {\n\t\t\t\t\tconst title = resolveCartLineTitle(it);\n\t\t\t\t\tconst imageSrc = resolveCartLineImageSrc(it);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Item key={it.id} className=\"cart-summary--item px-0\">\n\t\t\t\t\t\t\t<ItemMedia variant=\"image\" className=\"cart-summary--item-media\">\n\t\t\t\t\t\t\t\t{imageSrc ? (\n\t\t\t\t\t\t\t\t\t<img src={imageSrc} alt={it.imageAlt ?? title} />\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<CartLineImagePlaceholder title={title} />\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t\t\t<ItemContent className=\"cart-summary--item-content\">\n\t\t\t\t\t\t\t\t<ItemTitle>{title}</ItemTitle>\n\t\t\t\t\t\t\t\t{!!it.variantTitle && (\n\t\t\t\t\t\t\t\t\t<ItemDescription clamp={1}>{it.variantTitle}</ItemDescription>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t\t<ItemActions className=\"cart-summary--item-actions\">\n\t\t\t\t\t\t\t\t<div className=\"flex shrink-0 flex-col items-end gap-0.5\">\n\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" className=\"tabular-nums\">x{it.qty}</Text>\n\t\t\t\t\t\t\t\t\t<Text tag=\"span\" weight=\"semibold\" className=\"tabular-nums\">{it.price}</Text>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</ItemActions>\n\t\t\t\t\t\t</Item>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</ItemGroup>\n\n\t\t\t{!!hasBreakdown && (\n\t\t\t\t<div className=\"mt-3 space-y-1.5 rounded-lg bg-muted/30 px-3 py-2.5\">\n\t\t\t\t\t{!!subtotal && (\n\t\t\t\t\t\t<InlineStat label={strings.subtotal} value={subtotal} mono valueClassName=\"text-xs font-medium\" labelClassName=\"text-xs\" />\n\t\t\t\t\t)}\n\t\t\t\t\t{!!tax && (\n\t\t\t\t\t\t<InlineStat label={strings.tax} value={tax} mono valueClassName=\"text-xs font-medium\" labelClassName=\"text-xs\" />\n\t\t\t\t\t)}\n\t\t\t\t\t{!!shipping && (\n\t\t\t\t\t\t<InlineStat label={strings.shipping} value={shipping} mono valueClassName=\"text-xs font-medium\" labelClassName=\"text-xs\" />\n\t\t\t\t\t)}\n\t\t\t\t\t{!!discount && (\n\t\t\t\t\t\t<InlineStat\n\t\t\t\t\t\t\tlabel={strings.discount}\n\t\t\t\t\t\t\tvalue={`−${stripLeadingMinus(discount)}`}\n\t\t\t\t\t\t\tmono\n\t\t\t\t\t\t\tlabelClassName=\"text-xs\"\n\t\t\t\t\t\t\tvalueClassName=\"text-xs font-semibold text-success\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t<Separator className=\"my-3\" />\n\n\t\t\t<InlineStat\n\t\t\t\tlabel={strings.total}\n\t\t\t\tvalue={total}\n\t\t\t\tmono\n\t\t\t\tlabelClassName=\"text-sm font-semibold\"\n\t\t\t\tvalueClassName=\"text-lg font-bold\"\n\t\t\t/>\n\n\t\t\t{!!onCheckout && (\n\t\t\t\t<Button onClick={onCheckout} fullWidth className=\"mt-4\">{strings.checkout}</Button>\n\t\t\t)}\n\t\t</SmartCard>\n\t);\n}\n\nCartSummaryCard.displayName = 'CartSummaryCard';\n","export interface CouponInputStrings {\n\ttitle: string;\n\tplaceholder: string;\n\tapply: string;\n\tremove: string;\n\tapplied: string;\n\tinvalid: string;\n}\n\nexport const defaultCouponInputStrings: CouponInputStrings = {\n\ttitle: 'Have a code?',\n\tplaceholder: 'Enter coupon code',\n\tapply: 'Apply',\n\tremove: 'Remove',\n\tapplied: 'Applied',\n\tinvalid: 'That code is not valid',\n};\n\nexport interface CouponInputCardProps {\n\tappliedCode?: string;\n\tappliedDiscount?: string;\n\terror?: string;\n\tonApply?: (code: string) => void;\n\tonRemove?: () => void;\n\tloading?: boolean;\n\tclassName?: string;\n\tstrings?: Partial<CouponInputStrings>;\n}\n","/**\n * CouponInputCard — promo / coupon code entry with an applied state and\n * inline error messaging.\n *\n * Empty state — leading-icon input + apply button, helper line for\n * placeholders or errors. Applied state — success-tinted row with a check\n * medallion, monospaced code, discount delta, and a destructive remove icon.\n */\nimport { useState } from 'react';\nimport { Check, Sparkles, TicketPercent, X } from 'lucide-react';\nimport { SmartCard } from '@/components/base/cards';\nimport { Button } from '@/components/base/buttons';\nimport { IconBadge } from '@/components/base/display';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemDescription,\n\tItemFooter,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { Text } from '@/components/typography';\nimport { Input } from '@/components/base/forms/fields';\nimport { useStrings } from '@/lib/strings';\n\nimport { defaultCouponInputStrings, type CouponInputCardProps } from './types';\n\nimport { cn } from '@/lib/utils';\nconst stripLeadingMinus = (value: string): string => value.replace(/^[\\s−-]+/, '');\nconst normalizeCode = (value: string): string => value.toUpperCase();\n\nexport function CouponInputCard({\n\tappliedCode,\n\tappliedDiscount,\n\terror,\n\tonApply,\n\tonRemove,\n\tloading,\n\tclassName,\n\tstrings: stringsProp,\n}: CouponInputCardProps) {\n\tconst strings = useStrings(defaultCouponInputStrings, stringsProp);\n\tconst [code, setCode] = useState('');\n\tconst trimmedCode = code.trim();\n\n\tif (appliedCode) {\n\t\treturn (\n\t\t\t<SmartCard icon={<TicketPercent className=\"size-4\" />} title={strings.title} className={cn('coupon-input--component w-full', className)}>\n\t\t\t\t<Item size=\"xs\" variant=\"muted\" className=\"items-center gap-x-2.5 gap-y-1.5 border border-success/30 bg-success/8 px-2.5 py-2\">\n\t\t\t\t\t<ItemMedia>\n\t\t\t\t\t\t<IconBadge icon={Check} tone=\"success\" size=\"sm\" className=\"ring-1 ring-success/20\" />\n\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t<ItemContent className=\"min-w-0\">\n\t\t\t\t\t\t<ItemTitle className=\"max-w-full font-mono tracking-wider\">{appliedCode}</ItemTitle>\n\t\t\t\t\t\t<ItemDescription className=\"uppercase tracking-wide\" clamp={1}>\n\t\t\t\t\t\t\t{strings.applied}\n\t\t\t\t\t\t</ItemDescription>\n\t\t\t\t\t</ItemContent>\n\t\t\t\t\t<ItemFooter className=\"border-t border-success/15 pt-1\">\n\t\t\t\t\t\t<span />\n\t\t\t\t\t\t<ItemActions className=\"shrink-0 gap-1.5\">\n\t\t\t\t\t\t\t{!!appliedDiscount && (\n\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\t\t\t\ttype=\"success\"\n\t\t\t\t\t\t\t\t\tclassName=\"tabular-nums shrink-0\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t−{stripLeadingMinus(appliedDiscount)}\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{!!onRemove && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tvariant=\"error\"\n\t\t\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\t\t\tsize=\"icon-xs\"\n\t\t\t\t\t\t\t\t\tonClick={onRemove}\n\t\t\t\t\t\t\t\t\taria-label={strings.remove}\n\t\t\t\t\t\t\t\t\tclassName=\"size-7 shrink-0 text-muted-foreground hover:text-destructive\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<X className=\"size-3.5\" />\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</ItemActions>\n\t\t\t\t\t</ItemFooter>\n\t\t\t\t</Item>\n\t\t\t</SmartCard>\n\t\t);\n\t}\n\n\treturn (\n\t\t<SmartCard icon={<TicketPercent className=\"size-4\" />} title={strings.title} className={cn('coupon-input--component w-full', className)}>\n\t\t\t<div className=\"flex flex-col gap-2\">\n\t\t\t\t<div className=\"flex flex-wrap gap-2\">\n\t\t\t\t\t<div className=\"min-w-[11rem] flex-1\">\n\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\tvalue={code}\n\t\t\t\t\t\t\tonChange={(e) => setCode(normalizeCode((e.target as HTMLInputElement).value))}\n\t\t\t\t\t\t\tplaceholder={strings.placeholder}\n\t\t\t\t\t\t\tstartIcon={Sparkles}\n\t\t\t\t\t\t\tautoCapitalize=\"characters\"\n\t\t\t\t\t\t\tspellCheck={false}\n\t\t\t\t\t\t\tclassName=\"font-mono\"\n\t\t\t\t\t\t\tinvalid={Boolean(error)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"default\"\n\t\t\t\t\t\tonClick={() => onApply?.(trimmedCode)}\n\t\t\t\t\t\tloading={loading}\n\t\t\t\t\t\tdisabled={!trimmedCode}\n\t\t\t\t\t\tclassName=\"shrink-0\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{strings.apply}\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t\t{!!error && (\n\t\t\t\t\t<Text size=\"xs\" type=\"error\">{error || strings.invalid}</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</SmartCard>\n\t);\n}\n\nCouponInputCard.displayName = 'CouponInputCard';\n","import type { ComposedBadgeVariant } from '@/components/base/badge/badge';\n\nexport type OrderStatusKind = 'pending' | 'paid' | 'fulfilled' | 'shipped' | 'delivered' | 'cancelled';\n\nexport interface OrderStatusEvent {\n\tlabel: string;\n\ttimestamp?: string;\n\tcomplete: boolean;\n}\n\nexport interface OrderStatusStrings {\n\ttitle: string;\n\tstatusLabel: string;\n\teta: string;\n\tlatestEvent: string;\n\tcurrentStep: string;\n}\n\nexport const defaultOrderStatusStrings: OrderStatusStrings = {\n\ttitle: 'Order status',\n\tstatusLabel: 'Current status',\n\teta: 'ETA',\n\tlatestEvent: 'Latest event',\n\tcurrentStep: 'Current step',\n};\n\nexport interface OrderStatusCardProps {\n\torderNumber: string;\n\tstatus: OrderStatusKind;\n\tstatusVariant?: ComposedBadgeVariant;\n\tevents: OrderStatusEvent[];\n\tcurrentEta?: string;\n\tclassName?: string;\n\tstrings?: Partial<OrderStatusStrings>;\n}\n","/**\n * OrderStatusCard — order number + status badge + readable event timeline.\n * Ideal for dashboards / receipt summaries. Strings overridable for i18n.\n */\nimport { CalendarClock, Check, Circle, Package } from 'lucide-react';\nimport { SmartCard } from '@/components/base/cards';\nimport { Text } from '@/components/typography';\nimport { Badge } from '@/components/base/badge';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport {\n\tdefaultOrderStatusStrings,\n\ttype OrderStatusCardProps,\n\ttype OrderStatusKind,\n} from './types';\n\nconst VARIANT_BY_STATUS: Record<OrderStatusKind, 'primary' | 'success' | 'warning' | 'error' | 'info' | 'secondary'> = {\n\tpending: 'warning',\n\tpaid: 'info',\n\tfulfilled: 'info',\n\tshipped: 'primary',\n\tdelivered: 'success',\n\tcancelled: 'error',\n};\n\nexport function OrderStatusCard({\n\torderNumber,\n\tstatus,\n\tstatusVariant,\n\tevents,\n\tcurrentEta,\n\tclassName,\n\tstrings: stringsProp,\n}: OrderStatusCardProps) {\n\tconst strings = useStrings(defaultOrderStatusStrings, stringsProp);\n\tconst variant = statusVariant ?? VARIANT_BY_STATUS[status];\n\tconst lastCompleteIdx = events.reduce((acc, e, i) => (e.complete ? i : acc), -1);\n\tconst latestEvent = events[lastCompleteIdx] ?? events[0];\n\tconst nextEvent = events.find((event) => !event.complete);\n\n\treturn (\n\t\t<SmartCard\n\t\t\ticon={<Package className=\"size-4\" />}\n\t\t\ttitle={strings.title}\n\t\t\ttitleSuffix={<Badge variant={variant} className=\"capitalize\">{status}</Badge>}\n\t\t\tdescription={`#${orderNumber}`}\n\t\t\tclassName={cn('order-status--component w-full', className)}\n\t\t>\n\t\t\t<div className=\"rounded-lg border border-border bg-muted/20 p-3\">\n\t\t\t\t<div className=\"grid gap-3 sm:grid-cols-3\">\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<Text size=\"xxs\" type=\"secondary\" className=\"uppercase tracking-wide\">\n\t\t\t\t\t\t\t{strings.statusLabel}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t<Text weight=\"semibold\" className=\"mt-0.5 capitalize\">\n\t\t\t\t\t\t\t{status}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</div>\n\t\t\t\t\t{!!latestEvent && (\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<Text size=\"xxs\" type=\"secondary\" className=\"uppercase tracking-wide\">\n\t\t\t\t\t\t\t\t{latestEvent.complete ? strings.latestEvent : strings.currentStep}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Text weight=\"semibold\" className=\"mt-0.5\">\n\t\t\t\t\t\t\t\t{latestEvent.label}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!currentEta && (\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<Text size=\"xxs\" type=\"secondary\" className=\"uppercase tracking-wide\">\n\t\t\t\t\t\t\t\t{strings.eta}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Text weight=\"semibold\" className=\"mt-0.5 tabular-nums\">\n\t\t\t\t\t\t\t\t{currentEta}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{events.length > 0 && (\n\t\t\t\t<ol className=\"mt-4\">\n\t\t\t\t\t{events.map((event, index) => {\n\t\t\t\t\t\tconst isLast = index === events.length - 1;\n\t\t\t\t\t\tconst isCurrent = nextEvent ? event === nextEvent : index === lastCompleteIdx;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<li key={`${event.label}-${index}`} className=\"relative flex gap-3\">\n\t\t\t\t\t\t\t\t<div className=\"flex flex-col items-center\">\n\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t'flex size-6 shrink-0 items-center justify-center rounded-full border',\n\t\t\t\t\t\t\t\t\t\t\tevent.complete\n\t\t\t\t\t\t\t\t\t\t\t\t? 'border-success bg-success text-success-foreground'\n\t\t\t\t\t\t\t\t\t\t\t\t: 'border-border bg-card text-muted-foreground',\n\t\t\t\t\t\t\t\t\t\t\tisCurrent && !event.complete && 'border-primary text-primary ring-4 ring-primary/10',\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{event.complete ? (\n\t\t\t\t\t\t\t\t\t\t\t<Check className=\"size-3.5\" strokeWidth={2.5} />\n\t\t\t\t\t\t\t\t\t\t) : isCurrent ? (\n\t\t\t\t\t\t\t\t\t\t\t<CalendarClock className=\"size-3.5\" />\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t<Circle className=\"size-3\" />\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t{!isLast && (\n\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t'min-h-6 w-px flex-1',\n\t\t\t\t\t\t\t\t\t\t\t\tindex < lastCompleteIdx ? 'bg-success' : 'bg-border',\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div className={cn('min-w-0 flex-1 pb-4', isLast && 'pb-0')}>\n\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\tweight={event.complete || isCurrent ? 'semibold' : 'medium'}\n\t\t\t\t\t\t\t\t\t\tclassName={cn(!event.complete && !isCurrent && 'text-muted-foreground')}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{event.label}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t{!!event.timestamp && (\n\t\t\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"mt-0.5 tabular-nums\">\n\t\t\t\t\t\t\t\t\t\t\t{event.timestamp}\n\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</ol>\n\t\t\t)}\n\t\t</SmartCard>\n\t);\n}\n\nOrderStatusCard.displayName = 'OrderStatusCard';\n","export type PaymentBrand = 'visa' | 'mastercard' | 'amex' | 'paypal' | 'applepay' | 'googlepay' | 'unknown';\n\nexport interface PaymentMethodStrings {\n\ttitle: string;\n\tdefault: string;\n\tcardHolder: string;\n\texpires: string;\n\tchange: string;\n}\n\nexport const defaultPaymentMethodStrings: PaymentMethodStrings = {\n\ttitle: 'Payment method',\n\tdefault: 'Default',\n\tcardHolder: 'Card holder',\n\texpires: 'Expires',\n\tchange: 'Change',\n};\n\nexport interface PaymentMethodCardProps {\n\tbrand: PaymentBrand;\n\tlast4: string;\n\texpiry?: string; // MM/YY\n\tholderName?: string;\n\tisDefault?: boolean;\n\tonChange?: () => void;\n\tclassName?: string;\n\tstrings?: Partial<PaymentMethodStrings>;\n}\n","/**\n * PaymentMethodCard — saved-card surface. The hero block is rendered as a\n * mini credit-card mock with real card proportions, brand chip top-right, masked\n * PAN center, and holder + expiry on the bottom row. Trailing actions sit\n * in a footer below the mock so the hierarchy is \"card → details → CTA\".\n */\nimport { CreditCard } from 'lucide-react';\nimport { SmartCard } from '@/components/base/cards';\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography';\nimport { Badge } from '@/components/base/badge';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport { defaultPaymentMethodStrings, type PaymentBrand, type PaymentMethodCardProps } from './types';\n\nconst BRAND_LABEL: Record<PaymentBrand, string> = {\n\tvisa: 'VISA',\n\tmastercard: 'MasterCard',\n\tamex: 'AMEX',\n\tpaypal: 'PayPal',\n\tapplepay: 'Apple Pay',\n\tgooglepay: 'Google Pay',\n\tunknown: 'Card',\n};\n\nconst BRAND_GRADIENT: Record<PaymentBrand, string> = {\n\tvisa: 'from-info via-primary to-info',\n\tmastercard: 'from-warning via-destructive to-destructive',\n\tamex: 'from-info via-primary to-info',\n\tpaypal: 'from-info via-primary to-info',\n\tapplepay: 'from-foreground via-muted-foreground to-foreground',\n\tgooglepay: 'from-success via-primary to-success',\n\tunknown: 'from-foreground via-muted-foreground to-foreground',\n};\n\nexport function PaymentMethodCard({\n\tbrand,\n\tlast4,\n\texpiry,\n\tholderName,\n\tisDefault,\n\tonChange,\n\tclassName,\n\tstrings: stringsProp,\n}: PaymentMethodCardProps) {\n\tconst strings = useStrings(defaultPaymentMethodStrings, stringsProp);\n\tconst brandLabel = BRAND_LABEL[brand];\n\tconst gradient = BRAND_GRADIENT[brand];\n\n\treturn (\n\t\t<SmartCard\n\t\t\ticon={<CreditCard className=\"size-4\" />}\n\t\t\ttitle={strings.title}\n\t\t\ttitleSuffix={isDefault ? <Badge variant=\"primary\">{strings.default}</Badge> : null}\n\t\t\theaderAction={onChange ? (\n\t\t\t\t<Button buttonStyle=\"ghost\" variant=\"secondary\" onClick={onChange}>\n\t\t\t\t\t{strings.change}\n\t\t\t\t</Button>\n\t\t\t) : undefined}\n\t\t\tclassName={cn('payment-method--component w-full', className)}\n\t\t>\n\t\t\t{/* Mini card mock */}\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'relative mx-auto flex aspect-[85.6/53.98] w-full max-w-[22rem] flex-col justify-between overflow-hidden rounded-lg bg-gradient-to-br p-3.5 text-inverse-foreground shadow-sm ring-1 ring-inverse-border',\n\t\t\t\t\tgradient,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<div className=\"relative flex items-start justify-between\">\n\t\t\t\t\t<div className=\"flex size-7 items-center justify-center rounded-md bg-gradient-to-br from-warning/80 to-warning shadow-sm\">\n\t\t\t\t\t\t<div className=\"size-4 rounded-sm border border-warning-foreground/25 bg-warning-foreground/15\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<Text\n\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\tweight=\"bold\"\n\t\t\t\t\t\tclassName=\"rounded bg-inverse-surface px-2 py-0.5 tracking-[0.15em] text-inverse-foreground backdrop-blur-sm\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{brandLabel}\n\t\t\t\t\t</Text>\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"relative\">\n\t\t\t\t\t<Text\n\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\tsize=\"base\"\n\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\tclassName=\"block font-mono tracking-[0.25em] text-inverse-foreground\"\n\t\t\t\t\t>\n\t\t\t\t\t\t•••• •••• •••• {last4}\n\t\t\t\t\t</Text>\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"relative flex items-end justify-between gap-3\">\n\t\t\t\t\t<div className=\"min-w-0\">\n\t\t\t\t\t\t{!!holderName && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Text size=\"xxs\" className=\"block uppercase tracking-wider text-inverse-subtle\">{strings.cardHolder}</Text>\n\t\t\t\t\t\t\t\t<Text weight=\"semibold\" className=\"truncate text-inverse-foreground\">{holderName}</Text>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t\t{!!expiry && (\n\t\t\t\t\t\t<div className=\"text-right shrink-0\">\n\t\t\t\t\t\t\t<Text size=\"xxs\" className=\"block uppercase tracking-wider text-inverse-subtle\">{strings.expires}</Text>\n\t\t\t\t\t\t\t<Text tag=\"span\" weight=\"semibold\" className=\"tabular-nums text-inverse-foreground\">{expiry}</Text>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t</SmartCard>\n\t);\n}\n\nPaymentMethodCard.displayName = 'PaymentMethodCard';\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../src/components/composed/commerce/upcoming-booking/upcoming-booking.tsx","../../../../src/components/composed/commerce/loyalty-points/types.ts","../../../../src/components/composed/commerce/loyalty-points/loyalty-points.tsx","../../../../src/components/composed/commerce/discount-stack/types.ts","../../../../src/components/composed/commerce/discount-stack/discount-stack.tsx","../../../../src/components/composed/commerce/shipment-tracking/shipment-tracking.tsx","../../../../src/components/composed/commerce/tax-breakdown/types.ts","../../../../src/components/composed/commerce/tax-breakdown/tax-breakdown.tsx","../../../../src/components/composed/commerce/subscription-summary/types.ts","../../../../src/components/composed/commerce/subscription-summary/subscription-summary.tsx","../../../../src/components/composed/commerce/refund-status/types.ts","../../../../src/components/composed/commerce/refund-status/refund-status.tsx","../../../../src/components/composed/commerce/address-card/types.ts","../../../../src/components/composed/commerce/address-card/address-card.tsx","../../../../src/components/composed/commerce/voucher-entry/types.ts","../../../../src/components/composed/commerce/voucher-entry/voucher-entry.tsx","../../../../src/components/composed/commerce/cart-summary/types.ts","../../../../src/components/composed/commerce/cart-summary/cart-summary.tsx","../../../../src/components/composed/commerce/coupon-input/types.ts","../../../../src/components/composed/commerce/coupon-input/coupon-input.tsx","../../../../src/components/composed/commerce/order-status/types.ts","../../../../src/components/composed/commerce/order-status/order-status.tsx","../../../../src/components/composed/commerce/payment-method/types.ts","../../../../src/components/composed/commerce/payment-method/payment-method.tsx"],"sourcesContent":["/**\n * UpcomingBookingRow — compact booking list. Each row shows a `DateBlock`\n * (weekday / day / month / time) on the left, service + customer in the\n * middle, and trailing amount. Locale and date-tone are configurable.\n *\n * Time is placed BELOW the date block by default (matches the date block\n * vertical rhythm); pass `timePlacement=\"inline-trailing\"` to use a\n * separate trailing time column.\n */\nimport { Text } from '@/components/typography/text';\nimport { DateBlock } from '@/components/base/display/date-block';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemDescription,\n\tItemGroup,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\n\nimport type { BookingEntry, UpcomingBookingRowProps } from './types';\n\nimport { cn } from '@/lib/utils';\nfunction resolveDate(entry: BookingEntry): Date | string | number | null {\n\tif (entry.date != null) return entry.date;\n\tif (entry.day && entry.month) {\n\t\tconst year = new Date().getFullYear();\n\t\tconst synth = new Date(`${entry.month} ${entry.day}, ${year}`);\n\t\tif (!Number.isNaN(synth.getTime())) return synth;\n\t}\n\treturn null;\n}\n\nexport function UpcomingBookingRow({\n\tbookings,\n\tclassName,\n\tlocale,\n\tdateTone = 'inverse',\n\ttimePlacement = 'below',\n}: UpcomingBookingRowProps) {\n\treturn (\n\t\t<ItemGroup className={cn('upcoming-booking--component w-full gap-2', className)}>\n\t\t\t{bookings.map((b, idx) => {\n\t\t\t\tconst dateInput = resolveDate(b);\n\t\t\t\treturn (\n\t\t\t\t\t<Item key={b.id ?? `${b.service}-${b.time}-${idx}`} className=\"items-center px-0 py-1.5\">\n\t\t\t\t\t\t{!!dateInput && (\n\t\t\t\t\t\t\t<ItemMedia>\n\t\t\t\t\t\t\t\t<DateBlock\n\t\t\t\t\t\t\t\t\tdate={dateInput}\n\t\t\t\t\t\t\t\t\ttime={timePlacement === 'below' ? b.time : undefined}\n\t\t\t\t\t\t\t\t\ttone={dateTone}\n\t\t\t\t\t\t\t\t\tlocale={locale}\n\t\t\t\t\t\t\t\t\ttimePlacement=\"below\"\n\t\t\t\t\t\t\t\t\tlayout=\"stacked\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<ItemContent className=\"min-w-[min(12rem,100%)]\">\n\t\t\t\t\t\t\t<ItemTitle>{b.service}</ItemTitle>\n\t\t\t\t\t\t\t<ItemDescription clamp={1}>{b.customer}</ItemDescription>\n\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t<ItemActions className=\"ml-auto shrink-0 flex-wrap justify-end\">\n\t\t\t\t\t\t\t{timePlacement === 'inline-trailing' && (\n\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{b.time}\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<Text weight=\"semibold\" className=\"shrink-0 tabular-nums\">\n\t\t\t\t\t\t\t\t{b.amount}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</ItemActions>\n\t\t\t\t\t</Item>\n\t\t\t\t);\n\t\t\t})}\n\t\t</ItemGroup>\n\t);\n}\n\nUpcomingBookingRow.displayName = 'UpcomingBookingRow';\n","export interface LoyaltyHistoryEntry {\n label: string;\n points: string;\n date: string;\n positive: boolean;\n}\n\nexport interface LoyaltyPointsStrings {\n balanceLabel: string;\n pointsAvailable: string;\n redeem: string;\n}\n\nexport const defaultLoyaltyPointsStrings: LoyaltyPointsStrings = {\n balanceLabel: 'Loyalty Balance',\n pointsAvailable: 'points available',\n redeem: 'Redeem Points',\n};\n\nexport interface LoyaltyPointsCardProps {\n balance: number | string;\n tier?: string;\n tierVariant?: string;\n history?: LoyaltyHistoryEntry[];\n /** @deprecated Use `strings.redeem`. */\n redeemLabel?: string;\n onRedeem?: () => void;\n className?: string;\n strings?: Partial<LoyaltyPointsStrings>;\n}\n","/**\n * LoyaltyPointsCard — current balance, tier badge, recent history rows\n * (label / date / signed-points), and a redemption CTA. Strings overridable\n * for i18n.\n */\nimport { Badge } from '@/components/base/badge/badge';\nimport { Button } from '@/components/base/buttons';\nimport { SmartCard } from '@/components/base/cards/smart-card';\nimport Heading from '@/components/typography/heading';\nimport { Text } from '@/components/typography/text';\nimport { InlineStat } from '@/components/base/display';\nimport { Separator } from '@/components/base/display/separator';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemDescription,\n\tItemGroup,\n\tItemTitle,\n} from '@/components/base/item';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\nimport { Gift, Trophy } from 'lucide-react';\n\nimport { defaultLoyaltyPointsStrings, type LoyaltyPointsCardProps } from './types';\n\nexport function LoyaltyPointsCard({\n\tbalance,\n\ttier = 'Gold Tier',\n\ttierVariant: _tierVariant,\n\thistory = [],\n\tredeemLabel,\n\tonRedeem,\n\tclassName,\n\tstrings: stringsProp,\n}: LoyaltyPointsCardProps) {\n\tconst strings = useStrings(defaultLoyaltyPointsStrings, {\n\t\t...(redeemLabel !== undefined ? { redeem: redeemLabel } : {}),\n\t\t...stringsProp,\n\t});\n\treturn (\n\t\t<SmartCard className={cn('loyalty-points--component w-full', className)}>\n\t\t\t<InlineStat\n\t\t\t\tlabel={strings.balanceLabel}\n\t\t\t\tvalue={\n\t\t\t\t\t<Badge variant=\"warning\">\n\t\t\t\t\t\t<Trophy className=\"mr-1 inline size-3\" />\n\t\t\t\t\t\t{tier}\n\t\t\t\t\t</Badge>\n\t\t\t\t}\n\t\t\t\tlabelClassName=\"text-xs font-medium uppercase tracking-wider text-muted-foreground\"\n\t\t\t/>\n\n\t\t\t<Heading tag=\"h3\" className=\"text-4xl tabular-nums tracking-tight\">\n\t\t\t\t{typeof balance === 'number' ? balance.toLocaleString() : balance}\n\t\t\t</Heading>\n\t\t\t<Text size=\"xs\" type=\"secondary\">\n\t\t\t\t{strings.pointsAvailable}\n\t\t\t</Text>\n\n\t\t\t<Separator className=\"my-4\" />\n\n\t\t\t<ItemGroup>\n\t\t\t\t{history.map((entry) => (\n\t\t\t\t\t<Item key={entry.date + entry.label} size=\"xs\" className=\"px-0 py-1\">\n\t\t\t\t\t\t<ItemContent>\n\t\t\t\t\t\t\t<ItemTitle bold={false}>{entry.label}</ItemTitle>\n\t\t\t\t\t\t\t<ItemDescription clamp={1}>{entry.date}</ItemDescription>\n\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t<ItemActions>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t'tabular-nums',\n\t\t\t\t\t\t\t\t\tentry.positive ? 'text-success' : 'text-destructive',\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{entry.points}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</ItemActions>\n\t\t\t\t\t</Item>\n\t\t\t\t))}\n\t\t\t</ItemGroup>\n\n\t\t\t<Button\n\t\t\t\tvariant=\"dark\"\n\t\t\t\tclassName=\"mt-5 w-full rounded-full\"\n\t\t\t\tonClick={onRedeem}\n\t\t\t>\n\t\t\t\t<Gift className=\"mr-1.5 size-3.5\" />\n\t\t\t\t{strings.redeem}\n\t\t\t</Button>\n\t\t</SmartCard>\n\t);\n}\n\nLoyaltyPointsCard.displayName = 'LoyaltyPointsCard';\n","import type { ComposedBadgeVariant as BadgeVariant } from '@/components/base/badge/badge';\n\nexport interface Discount {\n type: string;\n label: string;\n amount: string;\n badge: BadgeVariant;\n}\n\nexport interface DiscountStackStrings {\n title: string;\n totalSavings: string;\n}\n\nexport const defaultDiscountStackStrings: DiscountStackStrings = {\n title: 'Applied Discounts',\n totalSavings: 'Total Savings',\n};\n\nexport interface DiscountStackPreviewProps {\n discounts: Discount[];\n totalSavings: string;\n className?: string;\n strings?: Partial<DiscountStackStrings>;\n}\n","/**\n * DiscountStackPreview — list of applied discounts (type chip + label +\n * amount) with a total-savings summary line. Strings overridable for i18n.\n */\nimport { Badge } from '@/components/base/badge/badge';\nimport { SmartCard } from '@/components/base/cards/smart-card';\nimport Heading from '@/components/typography/heading';\nimport { Text } from '@/components/typography/text';\nimport { InlineStat } from '@/components/base/display';\nimport { Separator } from '@/components/base/display/separator';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemGroup,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { useStrings } from '@/lib/strings';\n\nimport { defaultDiscountStackStrings, type DiscountStackPreviewProps } from './types';\n\nimport { cn } from '@/lib/utils';\nexport function DiscountStackPreview({\n\tdiscounts,\n\ttotalSavings,\n\tclassName,\n\tstrings: stringsProp,\n}: DiscountStackPreviewProps) {\n\tconst strings = useStrings(defaultDiscountStackStrings, stringsProp);\n\treturn (\n\t\t<SmartCard title={strings.title} className={cn('discount-stack--component w-full', className)}>\n\t\t\t<ItemGroup className=\"mt-4\">\n\t\t\t\t{discounts.map((d) => (\n\t\t\t\t\t<Item key={d.type} size=\"xs\" className=\"px-0 py-1\">\n\t\t\t\t\t\t<ItemMedia>\n\t\t\t\t\t\t\t<Badge variant={d.badge} className=\"w-16 justify-center text-xxs\">\n\t\t\t\t\t\t\t\t{d.type}\n\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t\t<ItemContent>\n\t\t\t\t\t\t\t<ItemTitle bold={false}>{d.label}</ItemTitle>\n\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t<ItemActions>\n\t\t\t\t\t\t\t<Text weight=\"semibold\" className=\"tabular-nums text-success\">\n\t\t\t\t\t\t\t\t{d.amount}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</ItemActions>\n\t\t\t\t\t</Item>\n\t\t\t\t))}\n\t\t\t</ItemGroup>\n\n\t\t\t<Separator className=\"my-4\" />\n\n\t\t\t<InlineStat\n\t\t\t\tlabel={strings.totalSavings}\n\t\t\t\tvalue={\n\t\t\t\t\t<Heading tag=\"h4\" className=\"text-xl tabular-nums tracking-tight text-success border-none pb-0\">\n\t\t\t\t\t\t{totalSavings}\n\t\t\t\t\t</Heading>\n\t\t\t\t}\n\t\t\t\tlabelClassName=\"text-sm font-semibold\"\n\t\t\t/>\n\t\t</SmartCard>\n\t);\n}\n\nDiscountStackPreview.displayName = 'DiscountStackPreview';\n","/**\n * ShipmentTrackingCard — tracking number + carrier header, current status\n * with pulse dot, horizontal step progress bar, and an optional details row\n * grid (e.g. weight, ETA, recipient). All copy is consumer-supplied via\n * `steps[].label` / `details[].label`.\n */\nimport { Badge } from '@/components/base/badge/badge';\nimport { SmartCard } from '@/components/base/cards/smart-card';\nimport { Text } from '@/components/typography/text';\nimport { InlineStat } from '@/components/base/display';\nimport { Separator } from '@/components/base/display/separator';\nimport { cn } from '@/lib/utils';\n\nimport type { ShipmentTrackingCardProps } from './types';\n\nexport function ShipmentTrackingCard({\n trackingNumber,\n carrier,\n status,\n steps,\n details = [],\n className,\n}: ShipmentTrackingCardProps) {\n return (\n <SmartCard className={cn('shipment-tracking--component w-full', className)}>\n <div className=\"flex items-center justify-between\">\n <Text size=\"xs\" weight=\"medium\" className=\"font-mono text-muted-foreground tracking-wide\">\n {trackingNumber}\n </Text>\n {!!carrier && <Badge variant=\"info\">{carrier}</Badge>}\n </div>\n\n <div className=\"mt-4 flex items-center gap-1.5\">\n <span className=\"h-2 w-2 rounded-full bg-success\" />\n <Text weight=\"semibold\">\n {status}\n </Text>\n </div>\n\n <div className=\"mt-5 flex items-center justify-between\">\n {steps.map((step, i) => (\n <div key={step.label} className=\"flex flex-1 flex-col items-center gap-2\">\n <div className=\"flex w-full items-center\">\n <div className={cn('size-3 shrink-0 rounded-full', step.done ? 'bg-success' : 'bg-muted')} />\n {i < steps.length - 1 && (\n <div className={cn('h-0.5 flex-1', step.done ? 'bg-success' : 'bg-muted')} />\n )}\n </div>\n <Text size=\"xs\" type=\"secondary\" className=\"text-center leading-tight\">\n {step.label}\n </Text>\n </div>\n ))}\n </div>\n\n {details.length > 0 && (\n <>\n <Separator className=\"my-4\" />\n <div className=\"space-y-2\">\n {details.map((detail) => (\n <InlineStat\n key={detail.label}\n label={detail.label}\n value={detail.value}\n labelClassName=\"text-xs\"\n valueClassName=\"text-sm font-medium truncate max-w-[180px]\"\n />\n ))}\n </div>\n </>\n )}\n </SmartCard>\n );\n}\n\nShipmentTrackingCard.displayName = 'ShipmentTrackingCard';\n","export interface TaxLineItem {\n\tid?: string;\n\tlabel: string;\n\trate?: string;\n\tamount: string;\n}\n\nexport interface TaxBreakdownStrings {\n\ttitle: string;\n\tsubtotal: string;\n\ttotalTax: string;\n\ttotal: string;\n}\n\nexport const defaultTaxBreakdownStrings: TaxBreakdownStrings = {\n\ttitle: 'Tax Breakdown',\n\tsubtotal: 'Subtotal',\n\ttotalTax: 'Total Tax',\n\ttotal: 'Total',\n};\n\nexport interface TaxBreakdownCardProps {\n\tsubtotal: string;\n\ttaxes: TaxLineItem[];\n\ttotalTax?: string;\n\ttotal: string;\n\tclassName?: string;\n\tstrings?: Partial<TaxBreakdownStrings>;\n}\n","/**\n * TaxBreakdownCard — itemised tax breakdown for an order or invoice. Shows a\n * subtotal, one row per tax line (with optional rate suffix), an optional\n * \"Total tax\" rollup, and a final total. Pairs with `CartSummaryCard` when\n * consumers need to expose VAT / regional tax detail. Strings overridable\n * for i18n.\n */\nimport { Receipt } from 'lucide-react';\nimport { SmartCard } from '@/components/base/cards';\nimport { Text } from '@/components/typography';\nimport { InlineStat } from '@/components/base/display';\nimport { Separator } from '@/components/base/display/separator';\nimport { useStrings } from '@/lib/strings';\n\nimport { defaultTaxBreakdownStrings, type TaxBreakdownCardProps } from './types';\n\nimport { cn } from '@/lib/utils';\nexport function TaxBreakdownCard({\n\tsubtotal,\n\ttaxes,\n\ttotalTax,\n\ttotal,\n\tclassName,\n\tstrings: stringsProp,\n}: TaxBreakdownCardProps) {\n\tconst strings = useStrings(defaultTaxBreakdownStrings, stringsProp);\n\n\treturn (\n\t\t<SmartCard\n\t\t\ticon={<Receipt className=\"size-4\" />}\n\t\t\ttitle={strings.title}\n\t\t\tclassName={cn('tax-breakdown--component w-full', className)}\n\t\t>\n\t\t\t<InlineStat\n\t\t\t\tlabel={strings.subtotal}\n\t\t\t\tvalue={subtotal}\n\t\t\t\tmono\n\t\t\t\tlabelClassName=\"text-sm\"\n\t\t\t\tvalueClassName=\"text-sm font-medium\"\n\t\t\t/>\n\n\t\t\t<div className=\"mt-3 space-y-1.5 rounded-lg border border-border/50 bg-muted/30 px-3 py-2.5\">\n\t\t\t\t{taxes.map((tax, i) => (\n\t\t\t\t\t<div\n\t\t\t\t\t\tkey={tax.id ?? `${tax.label}-${i}`}\n\t\t\t\t\t\tclassName=\"flex items-baseline justify-between gap-3\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"flex items-baseline gap-1.5 min-w-0\">\n\t\t\t\t\t\t\t<Text size=\"xs\" className=\"truncate\">{tax.label}</Text>\n\t\t\t\t\t\t\t{!!tax.rate && (\n\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xxs\" type=\"discrete\" className=\"shrink-0\">\n\t\t\t\t\t\t\t\t\t{tax.rate}\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</div>\n\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" weight=\"medium\" className=\"tabular-nums shrink-0\">\n\t\t\t\t\t\t\t{tax.amount}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</div>\n\t\t\t\t))}\n\t\t\t\t{!!totalTax && taxes.length > 1 && (\n\t\t\t\t\t<InlineStat\n\t\t\t\t\t\tlabel={strings.totalTax}\n\t\t\t\t\t\tvalue={totalTax}\n\t\t\t\t\t\tmono\n\t\t\t\t\t\tclassName=\"border-t border-border/50 pt-1.5 mt-0.5\"\n\t\t\t\t\t\tlabelClassName=\"text-xs font-medium\"\n\t\t\t\t\t\tvalueClassName=\"text-xs font-semibold\"\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t<Separator className=\"my-3\" />\n\n\t\t\t<InlineStat\n\t\t\t\tlabel={strings.total}\n\t\t\t\tvalue={total}\n\t\t\t\tmono\n\t\t\t\tlabelClassName=\"text-sm font-semibold\"\n\t\t\t\tvalueClassName=\"text-lg font-bold\"\n\t\t\t/>\n\t\t</SmartCard>\n\t);\n}\n\nTaxBreakdownCard.displayName = 'TaxBreakdownCard';\n","import type { LucideIcon } from 'lucide-react';\n\nexport interface SubscriptionPerk {\n\ticon?: LucideIcon;\n\tlabel: string;\n}\n\nexport interface SubscriptionSummaryStrings {\n\ttitle: string;\n\tplan: string;\n\tnextBilling: string;\n\tperks: string;\n\tmanage: string;\n\tupgrade: string;\n}\n\nexport const defaultSubscriptionSummaryStrings: SubscriptionSummaryStrings = {\n\ttitle: 'Subscription',\n\tplan: 'Plan',\n\tnextBilling: 'Next billing',\n\tperks: 'Included',\n\tmanage: 'Manage',\n\tupgrade: 'Upgrade',\n};\n\nexport interface SubscriptionSummaryCardProps {\n\tplanName: string;\n\tpriceLabel: string;\n\tcycleLabel: string;\n\tnextBillingDate: string;\n\tstatusLabel?: string;\n\tperks?: SubscriptionPerk[];\n\tonManage?: () => void;\n\tonUpgrade?: () => void;\n\tclassName?: string;\n\tstrings?: Partial<SubscriptionSummaryStrings>;\n}\n","/**\n * SubscriptionSummaryCard — at-a-glance subscription card with the active\n * plan name as the hero heading, an inline price + cycle, the next billing\n * date in a meta row, an optional perks list, and trailing\n * Manage / Upgrade actions. Strings overridable for i18n.\n */\nimport { Calendar, Check, ChevronRight, Repeat } from 'lucide-react';\nimport { Badge } from '@/components/base/badge';\nimport { Button } from '@/components/base/buttons';\nimport { SmartCard } from '@/components/base/cards';\nimport { IconBadge } from '@/components/base/display';\nimport {\n\tItem,\n\tItemContent,\n\tItemGroup,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport Heading from '@/components/typography/heading';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\n\nimport {\n\tdefaultSubscriptionSummaryStrings,\n\ttype SubscriptionSummaryCardProps,\n} from './types';\n\nimport { cn } from '@/lib/utils';\nexport function SubscriptionSummaryCard({\n\tplanName,\n\tpriceLabel,\n\tcycleLabel,\n\tnextBillingDate,\n\tstatusLabel,\n\tperks = [],\n\tonManage,\n\tonUpgrade,\n\tclassName,\n\tstrings: stringsProp,\n}: SubscriptionSummaryCardProps) {\n\tconst strings = useStrings(defaultSubscriptionSummaryStrings, stringsProp);\n\n\treturn (\n\t\t<SmartCard\n\t\t\ticon={<Repeat className=\"size-4\" />}\n\t\t\ttitle={strings.title}\n\t\t\theaderEnd={statusLabel ? <Badge variant=\"success\">{statusLabel}</Badge> : null}\n\t\t\tclassName={cn('subscription-summary--component w-full', className)}\n\t\t>\n\t\t\t<div className=\"rounded-lg border border-border/60 bg-muted/30 p-4\">\n\t\t\t\t<Text size=\"xxs\" type=\"secondary\" weight=\"medium\" className=\"uppercase tracking-wider\">\n\t\t\t\t\t{strings.plan}\n\t\t\t\t</Text>\n\t\t\t\t<Heading tag=\"h3\" className=\"mt-1 text-xl font-semibold tracking-tight border-none pb-0\">\n\t\t\t\t\t{planName}\n\t\t\t\t</Heading>\n\t\t\t\t<div className=\"mt-1 flex items-baseline gap-1\">\n\t\t\t\t\t<Text tag=\"span\" size=\"xl\" weight=\"bold\" className=\"tabular-nums\">\n\t\t\t\t\t\t{priceLabel}\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Text type=\"secondary\">\n\t\t\t\t\t\t{cycleLabel}\n\t\t\t\t\t</Text>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div className=\"mt-3 flex items-center justify-between rounded-md bg-card px-1\">\n\t\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t\t<Calendar className=\"size-3.5 text-muted-foreground\" />\n\t\t\t\t\t<Text size=\"xs\" type=\"secondary\">{strings.nextBilling}</Text>\n\t\t\t\t</div>\n\t\t\t\t<Text size=\"xs\" weight=\"semibold\" className=\"tabular-nums\">{nextBillingDate}</Text>\n\t\t\t</div>\n\n\t\t\t{perks.length > 0 && (\n\t\t\t\t<div className=\"mt-4 space-y-2\">\n\t\t\t\t\t<Text size=\"xxs\" type=\"secondary\" weight=\"medium\" className=\"uppercase tracking-wider\">\n\t\t\t\t\t\t{strings.perks}\n\t\t\t\t\t</Text>\n\t\t\t\t\t<ItemGroup>\n\t\t\t\t\t\t{perks.map((perk, i) => {\n\t\t\t\t\t\t\tconst Icon = perk.icon ?? Check;\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<Item key={`${perk.label}-${i}`} size=\"xs\" className=\"px-0\">\n\t\t\t\t\t\t\t\t\t<ItemMedia>\n\t\t\t\t\t\t\t\t\t\t<IconBadge icon={Icon} tone=\"success\" size=\"xs\" />\n\t\t\t\t\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t\t\t\t\t<ItemContent>\n\t\t\t\t\t\t\t\t\t\t<ItemTitle bold={false}>{perk.label}</ItemTitle>\n\t\t\t\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t\t\t</Item>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t</ItemGroup>\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{(onManage || onUpgrade) && (\n\t\t\t\t<div className=\"mt-4 flex items-center gap-2\">\n\t\t\t\t\t{!!onManage && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\t\t\tonClick={onManage}\n\t\t\t\t\t\t\tclassName=\"flex-1\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{strings.manage}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!onUpgrade && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tonClick={onUpgrade}\n\t\t\t\t\t\t\tclassName=\"flex-1\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{strings.upgrade}\n\t\t\t\t\t\t\t<ChevronRight className=\"ml-1 size-3.5\" />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</SmartCard>\n\t);\n}\n\nSubscriptionSummaryCard.displayName = 'SubscriptionSummaryCard';\n","export type RefundStage = 'requested' | 'approved' | 'processing' | 'completed';\n\nexport interface RefundStatusStrings {\n\ttitle: string;\n\trequested: string;\n\tapproved: string;\n\tprocessing: string;\n\tcompleted: string;\n\tamount: string;\n\treason: string;\n\teta: string;\n\tmethod: string;\n}\n\nexport const defaultRefundStatusStrings: RefundStatusStrings = {\n\ttitle: 'Refund Status',\n\trequested: 'Requested',\n\tapproved: 'Approved',\n\tprocessing: 'Processing',\n\tcompleted: 'Completed',\n\tamount: 'Refund amount',\n\treason: 'Reason',\n\teta: 'Expected by',\n\tmethod: 'Refund to',\n};\n\nexport interface RefundStatusCardProps {\n\tstage: RefundStage;\n\tamount: string;\n\treason?: string;\n\tmethod?: string;\n\teta?: string;\n\trequestedAt?: string;\n\tclassName?: string;\n\tstrings?: Partial<RefundStatusStrings>;\n}\n","/**\n * RefundStatusCard — refund-flow tracker. Shows the four canonical refund\n * stages (Requested → Approved → Processing → Completed) as a horizontal\n * progress bar, with refund amount as the lead figure and an optional reason\n * / method / ETA detail block. Strings overridable for i18n.\n */\nimport { Check, RotateCcw } from 'lucide-react';\nimport { SmartCard } from '@/components/base/cards';\nimport { Text } from '@/components/typography';\nimport Heading from '@/components/typography/heading';\nimport { InlineStat } from '@/components/base/display';\nimport { Separator } from '@/components/base/display/separator';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport {\n\tdefaultRefundStatusStrings,\n\ttype RefundStage,\n\ttype RefundStatusCardProps,\n} from './types';\n\nconst STAGE_ORDER: RefundStage[] = ['requested', 'approved', 'processing', 'completed'];\n\nexport function RefundStatusCard({\n\tstage,\n\tamount,\n\treason,\n\tmethod,\n\teta,\n\trequestedAt,\n\tclassName,\n\tstrings: stringsProp,\n}: RefundStatusCardProps) {\n\tconst strings = useStrings(defaultRefundStatusStrings, stringsProp);\n\tconst currentIdx = STAGE_ORDER.indexOf(stage);\n\n\treturn (\n\t\t<SmartCard\n\t\t\ticon={<RotateCcw className=\"size-4\" />}\n\t\t\ttitle={strings.title}\n\t\t\tclassName={cn('refund-status--component w-full', className)}\n\t\t>\n\t\t\t<div className=\"rounded-lg bg-muted/40 px-4 py-3\">\n\t\t\t\t<Text size=\"xxs\" type=\"secondary\" weight=\"medium\" className=\"uppercase tracking-wider\">\n\t\t\t\t\t{strings.amount}\n\t\t\t\t</Text>\n\t\t\t\t<Heading tag=\"h3\" className=\"text-3xl tabular-nums tracking-tight\">\n\t\t\t\t\t{amount}\n\t\t\t\t</Heading>\n\t\t\t\t{!!requestedAt && (\n\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"mt-0.5\">\n\t\t\t\t\t\t{strings.requested}: {requestedAt}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t{/* Stages */}\n\t\t\t<div className=\"mt-4 flex items-center justify-between\">\n\t\t\t\t{STAGE_ORDER.map((s, i) => {\n\t\t\t\t\tconst done = i <= currentIdx;\n\t\t\t\t\tconst current = i === currentIdx;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div key={s} className=\"flex flex-1 flex-col items-center gap-1.5\">\n\t\t\t\t\t\t\t<div className=\"flex w-full items-center\">\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t'relative flex size-5 shrink-0 items-center justify-center rounded-full',\n\t\t\t\t\t\t\t\t\t\tdone\n\t\t\t\t\t\t\t\t\t\t\t? 'bg-success text-success-foreground'\n\t\t\t\t\t\t\t\t\t\t\t: 'border border-border bg-card text-muted-foreground',\n\t\t\t\t\t\t\t\t\t\tcurrent && 'ring-2 ring-success/30 ring-offset-2 ring-offset-background',\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{done ? (\n\t\t\t\t\t\t\t\t\t\t<Check className=\"size-3\" />\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xxs\" weight=\"medium\" className=\"tabular-nums\">{i + 1}</Text>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{i < STAGE_ORDER.length - 1 && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t'h-0.5 flex-1',\n\t\t\t\t\t\t\t\t\t\t\ti < currentIdx ? 'bg-success' : 'bg-border',\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t/>\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<Text\n\t\t\t\t\t\t\t\tsize=\"xxs\"\n\t\t\t\t\t\t\t\tweight={current ? 'semibold' : 'medium'}\n\t\t\t\t\t\t\t\ttype={done ? 'main' : 'secondary'}\n\t\t\t\t\t\t\t\tclassName=\"text-center leading-tight\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{strings[s]}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\n\t\t\t{(reason || method || eta) && (\n\t\t\t\t<>\n\t\t\t\t\t<Separator className=\"my-4\" />\n\t\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t\t{!!reason && (\n\t\t\t\t\t\t\t<InlineStat label={strings.reason} value={reason} className=\"items-start\" valueClassName=\"text-sm font-medium text-right\" />\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{!!method && (\n\t\t\t\t\t\t\t<InlineStat label={strings.method} value={method} valueClassName=\"text-sm font-medium\" />\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{!!eta && (\n\t\t\t\t\t\t\t<InlineStat label={strings.eta} value={eta} mono valueClassName=\"text-sm font-medium\" />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</>\n\t\t\t)}\n\t\t</SmartCard>\n\t);\n}\n\nRefundStatusCard.displayName = 'RefundStatusCard';\n","export type AddressKind = 'shipping' | 'billing' | 'pickup';\n\nexport interface AddressCardStrings {\n\tdefaultBadge: string;\n\tedit: string;\n\tremove: string;\n\tmakeDefault: string;\n\tshipping: string;\n\tbilling: string;\n\tpickup: string;\n}\n\nexport const defaultAddressCardStrings: AddressCardStrings = {\n\tdefaultBadge: 'Default',\n\tedit: 'Edit',\n\tremove: 'Remove',\n\tmakeDefault: 'Make default',\n\tshipping: 'Shipping address',\n\tbilling: 'Billing address',\n\tpickup: 'Pickup address',\n};\n\nexport interface AddressCardProps {\n\tkind?: AddressKind;\n\tname: string;\n\tline1: string;\n\tline2?: string;\n\tcity: string;\n\tregion?: string;\n\tpostalCode?: string;\n\tcountry: string;\n\tphone?: string;\n\tisDefault?: boolean;\n\tonEdit?: () => void;\n\tonRemove?: () => void;\n\tonMakeDefault?: () => void;\n\tclassName?: string;\n\tstrings?: Partial<AddressCardStrings>;\n}\n","/**\n * AddressCard — saved postal address surface. Title varies by `kind`\n * (shipping / billing / pickup); shows recipient name, address lines, phone,\n * and a \"Default\" badge when applicable.\n *\n * Edit / remove / make-default actions ride through SmartCard's actions menu\n * (the canonical card-actions affordance) instead of inline footer buttons —\n * keeps the surface consistent with every other card in the library.\n */\nimport { Edit2, MapPin, Star, Trash2 } from 'lucide-react';\nimport { Badge } from '@/components/base/badge';\nimport { SmartCard, type SmartCardAction } from '@/components/base/cards';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\n\nimport {\n\tdefaultAddressCardStrings,\n\ttype AddressCardProps,\n\ttype AddressKind,\n} from './types';\n\nimport { cn } from '@/lib/utils';\nexport function AddressCard({\n\tkind = 'shipping',\n\tname,\n\tline1,\n\tline2,\n\tcity,\n\tregion,\n\tpostalCode,\n\tcountry,\n\tphone,\n\tisDefault = false,\n\tonEdit,\n\tonRemove,\n\tonMakeDefault,\n\tclassName,\n\tstrings: stringsProp,\n}: AddressCardProps) {\n\tconst strings = useStrings(defaultAddressCardStrings, stringsProp);\n\tconst titleByKind: Record<AddressKind, string> = {\n\t\tshipping: strings.shipping,\n\t\tbilling: strings.billing,\n\t\tpickup: strings.pickup,\n\t};\n\n\tconst cityLine = [city, region, postalCode].filter(Boolean).join(', ');\n\n\tconst actions: SmartCardAction[] = [];\n\tif (onEdit) {\n\t\tactions.push({\n\t\t\tid: 'edit',\n\t\t\tlabel: strings.edit,\n\t\t\ticon: <Edit2 className=\"size-3.5\" />,\n\t\t\tonClick: onEdit,\n\t\t});\n\t}\n\tif (onMakeDefault && !isDefault) {\n\t\tactions.push({\n\t\t\tid: 'make-default',\n\t\t\tlabel: strings.makeDefault,\n\t\t\ticon: <Star className=\"size-3.5\" />,\n\t\t\tonClick: onMakeDefault,\n\t\t});\n\t}\n\tif (onRemove) {\n\t\tactions.push({\n\t\t\tid: 'remove',\n\t\t\tlabel: strings.remove,\n\t\t\ticon: <Trash2 className=\"size-3.5\" />,\n\t\t\tonClick: onRemove,\n\t\t});\n\t}\n\n\treturn (\n\t\t<SmartCard\n\t\t\ticon={<MapPin className=\"size-4\" />}\n\t\t\ttitle={titleByKind[kind]}\n\t\t\ttitleSuffix={\n\t\t\t\tisDefault ? <Badge variant=\"primary\">{strings.defaultBadge}</Badge> : null\n\t\t\t}\n\t\t\tactions={actions.length > 0 ? actions : undefined}\n\t\t\tclassName={cn('address-card--component w-full', className)}\n\t\t>\n\t\t\t<div className=\"space-y-0.5\">\n\t\t\t\t<Text weight=\"semibold\">{name}</Text>\n\t\t\t\t<Text>{line1}</Text>\n\t\t\t\t{!!line2 && <Text>{line2}</Text>}\n\t\t\t\t{!!cityLine && <Text>{cityLine}</Text>}\n\t\t\t\t<Text type=\"secondary\">{country}</Text>\n\t\t\t\t{!!phone && (\n\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"mt-1.5 tabular-nums\">\n\t\t\t\t\t\t{phone}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</SmartCard>\n\t);\n}\n\nAddressCard.displayName = 'AddressCard';\n","export interface VoucherEntryStrings {\n\ttitle: string;\n\tinputLabel: string;\n\tplaceholder: string;\n\thelperText: string;\n\tcheck: string;\n\tremove: string;\n\tbalance: string;\n\tapplied: string;\n\tnotFound: string;\n}\n\nexport const defaultVoucherEntryStrings: VoucherEntryStrings = {\n\ttitle: 'Redeem a gift card',\n\tinputLabel: 'Gift card code',\n\tplaceholder: 'Enter gift card code',\n\thelperText: 'Apply one gift card or voucher to this order.',\n\tcheck: 'Check balance',\n\tremove: 'Remove',\n\tbalance: 'Available balance',\n\tapplied: 'Applied',\n\tnotFound: 'That gift card code is not valid.',\n};\n\nexport interface VoucherEntryCardProps {\n\tappliedCode?: string;\n\tbalance?: string;\n\terror?: string;\n\tloading?: boolean;\n\tonCheck?: (code: string) => void;\n\tonRemove?: () => void;\n\tclassName?: string;\n\tstrings?: Partial<VoucherEntryStrings>;\n}\n","/**\n * VoucherEntryCard — gift-card / voucher redemption entry.\n *\n * Empty state — leading gift icon input + check button, helper line surfacing\n * errors. Applied state — success-tinted row with check medallion, code,\n * balance amount, and a destructive remove icon.\n */\nimport { type FormEvent, useId, useState } from 'react';\nimport { Check, Gift, X } from 'lucide-react';\nimport { Badge } from '@/components/base/badge';\nimport { Button } from '@/components/base/buttons';\nimport { SmartCard } from '@/components/base/cards';\nimport { IconBadge } from '@/components/base/display';\nimport { FormField } from '@/components/base/forms';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemDescription,\n\tItemFooter,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { Input } from '@/components/base/forms/fields';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\n\nimport { defaultVoucherEntryStrings, type VoucherEntryCardProps } from './types';\n\nimport { cn } from '@/lib/utils';\nconst normalizeCode = (value: string): string => value.toUpperCase();\n\nexport function VoucherEntryCard({\n\tappliedCode,\n\tbalance,\n\terror,\n\tloading,\n\tonCheck,\n\tonRemove,\n\tclassName,\n\tstrings: stringsProp,\n}: VoucherEntryCardProps) {\n\tconst strings = useStrings(defaultVoucherEntryStrings, stringsProp);\n\tconst inputId = useId();\n\tconst [code, setCode] = useState('');\n\tconst trimmedCode = code.trim();\n\tconst handleSubmit = (event: FormEvent<HTMLFormElement>) => {\n\t\tevent.preventDefault();\n\t\tif (!trimmedCode) return;\n\t\tonCheck?.(trimmedCode);\n\t};\n\n\tif (appliedCode) {\n\t\treturn (\n\t\t\t<SmartCard\n\t\t\t\ticon={<Gift className=\"size-4\" />}\n\t\t\t\ttitle={strings.title}\n\t\t\t\tclassName={cn('voucher-entry--component w-full', className)}\n\t\t\t>\n\t\t\t\t<Item size=\"xs\" variant=\"outline\" className=\"items-center gap-x-2.5 gap-y-1.5 border-success/30 bg-success/5 px-2.5 py-2\">\n\t\t\t\t\t<ItemMedia>\n\t\t\t\t\t\t<IconBadge icon={Check} tone=\"success\" size=\"sm\" className=\"ring-1 ring-success/20\" />\n\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t<ItemContent className=\"min-w-0\">\n\t\t\t\t\t\t<div className=\"flex flex-wrap items-center gap-1.5\">\n\t\t\t\t\t\t\t<ItemTitle className=\"max-w-full font-mono tracking-wider\">{appliedCode}</ItemTitle>\n\t\t\t\t\t\t\t<Badge variant=\"success\" size=\"xs\">{strings.applied}</Badge>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<ItemDescription clamp={1}>{strings.balance}</ItemDescription>\n\t\t\t\t\t</ItemContent>\n\t\t\t\t\t<ItemFooter className=\"border-t border-success/15 pt-1\">\n\t\t\t\t\t\t<span />\n\t\t\t\t\t\t<ItemActions className=\"shrink-0 gap-1.5\">\n\t\t\t\t\t\t\t{!!balance && (\n\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" weight=\"semibold\" type=\"success\" className=\"tabular-nums shrink-0\">\n\t\t\t\t\t\t\t\t\t{balance}\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{!!onRemove && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tvariant=\"error\"\n\t\t\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\t\t\tsize=\"icon-xs\"\n\t\t\t\t\t\t\t\t\tonClick={onRemove}\n\t\t\t\t\t\t\t\t\taria-label={strings.remove}\n\t\t\t\t\t\t\t\t\tclassName=\"size-7 shrink-0 text-muted-foreground hover:text-destructive\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<X className=\"size-3.5\" />\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</ItemActions>\n\t\t\t\t\t</ItemFooter>\n\t\t\t\t</Item>\n\t\t\t</SmartCard>\n\t\t);\n\t}\n\n\treturn (\n\t\t<SmartCard\n\t\t\ticon={<Gift className=\"size-4\" />}\n\t\t\ttitle={strings.title}\n\t\t\tclassName={cn('voucher-entry--component w-full', className)}\n\t\t>\n\t\t\t<form onSubmit={handleSubmit}>\n\t\t\t\t<FormField\n\t\t\t\t\tlabel={strings.inputLabel}\n\t\t\t\t\thtmlFor={inputId}\n\t\t\t\t\terror={error}\n\t\t\t\t\thint={error ? undefined : strings.helperText}\n\t\t\t\t>\n\t\t\t\t\t<div className=\"flex flex-wrap gap-2\">\n\t\t\t\t\t\t<div className=\"min-w-[12rem] flex-1\">\n\t\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\t\tid={inputId}\n\t\t\t\t\t\t\t\tvalue={code}\n\t\t\t\t\t\t\t\tonChange={(e) => setCode(normalizeCode((e.target as HTMLInputElement).value))}\n\t\t\t\t\t\t\t\tplaceholder={strings.placeholder}\n\t\t\t\t\t\t\t\tstartIcon={Gift}\n\t\t\t\t\t\t\t\tautoCapitalize=\"characters\"\n\t\t\t\t\t\t\t\tspellCheck={false}\n\t\t\t\t\t\t\t\tclassName=\"font-mono\"\n\t\t\t\t\t\t\t\tinvalid={Boolean(error)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\tloading={loading}\n\t\t\t\t\t\t\tdisabled={!trimmedCode}\n\t\t\t\t\t\t\tclassName=\"shrink-0\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{strings.check}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\t\t\t\t</FormField>\n\t\t\t</form>\n\t\t</SmartCard>\n\t);\n}\n\nVoucherEntryCard.displayName = 'VoucherEntryCard';\n","export interface CartLineItem {\n\tid: string;\n\tname?: string;\n\tproductTitle?: string;\n\ttitle?: string;\n\tvariantTitle?: string;\n\tqty: number;\n\tprice: string;\n\timageUrl?: string;\n\timageSrc?: string;\n\tsrc?: string;\n\turl?: string;\n\timageAlt?: string;\n}\n\nexport interface CartSummaryStrings {\n\ttitle: string;\n\tsubtotal: string;\n\ttax: string;\n\tshipping: string;\n\tdiscount: string;\n\ttotal: string;\n\tcheckout: string;\n}\n\nexport const defaultCartSummaryStrings: CartSummaryStrings = {\n\ttitle: 'Cart',\n\tsubtotal: 'Subtotal',\n\ttax: 'Tax',\n\tshipping: 'Shipping',\n\tdiscount: 'Discount',\n\ttotal: 'Total',\n\tcheckout: 'Checkout',\n};\n\nexport interface CartSummaryCardProps {\n\titems: CartLineItem[];\n\tsubtotal?: string;\n\ttax?: string;\n\tshipping?: string;\n\tdiscount?: string;\n\ttotal: string;\n\tonCheckout?: () => void;\n\tclassName?: string;\n\tstrings?: Partial<CartSummaryStrings>;\n}\n","/**\n * CartSummaryCard — line-item list with optional subtotal / tax / shipping /\n * discount breakdown and a primary \"Checkout\" action. Items render through\n * `<ItemGroup>` for density consistency; the breakdown rows sit in a tight\n * summary block above the total. The discount value is shown as a signed\n * delta in success colour.\n */\nimport { ShoppingBag } from 'lucide-react';\nimport { SmartCard } from '@/components/base/cards';\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography';\nimport { InlineStat } from '@/components/base/display';\nimport { Separator } from '@/components/base/display/separator';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemDescription,\n\tItemGroup,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { useStrings } from '@/lib/strings';\n\nimport { defaultCartSummaryStrings, type CartLineItem, type CartSummaryCardProps } from './types';\n\nimport { cn } from '@/lib/utils';\nconst stripLeadingMinus = (value: string): string => value.replace(/^[\\s−-]+/, '');\n\nconst resolveCartLineTitle = (item: CartLineItem): string => {\n\treturn [item.productTitle, item.title, item.name].find((value) => !!value?.trim()) ?? item.id;\n};\n\nconst resolveCartLineImageSrc = (item: CartLineItem): string | undefined => {\n\treturn [item.imageUrl, item.imageSrc, item.src, item.url].find((value) => !!value?.trim());\n};\n\nconst getCartLinePlaceholderLabel = (title: string): string => {\n\tconst initials = title\n\t\t.trim()\n\t\t.split(/\\s+/)\n\t\t.map((part) => part[0])\n\t\t.join('')\n\t\t.slice(0, 2)\n\t\t.toUpperCase();\n\n\treturn initials || title.trim().slice(0, 2).toUpperCase();\n};\n\nfunction CartLineImagePlaceholder({ title }: { title: string }) {\n\treturn (\n\t\t<div\n\t\t\taria-hidden=\"true\"\n\t\t\tclassName=\"flex size-full items-center justify-center rounded-[inherit] bg-muted text-[length:var(--text-xxs)] font-semibold text-muted-foreground ring-1 ring-border/60\"\n\t\t>\n\t\t\t{getCartLinePlaceholderLabel(title)}\n\t\t</div>\n\t);\n}\n\nexport function CartSummaryCard({\n\titems,\n\tsubtotal,\n\ttax,\n\tshipping,\n\tdiscount,\n\ttotal,\n\tonCheckout,\n\tclassName,\n\tstrings: stringsProp,\n}: CartSummaryCardProps) {\n\tconst strings = useStrings(defaultCartSummaryStrings, stringsProp);\n\tconst hasBreakdown = !!(subtotal || tax || shipping || discount);\n\n\treturn (\n\t\t<SmartCard icon={<ShoppingBag className=\"size-4\" />} title={strings.title} className={cn('cart-summary--component w-full', className)}>\n\t\t\t<ItemGroup>\n\t\t\t\t{items.map((it) => {\n\t\t\t\t\tconst title = resolveCartLineTitle(it);\n\t\t\t\t\tconst imageSrc = resolveCartLineImageSrc(it);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Item key={it.id} className=\"cart-summary--item px-0\">\n\t\t\t\t\t\t\t<ItemMedia variant=\"image\" className=\"cart-summary--item-media\">\n\t\t\t\t\t\t\t\t{imageSrc ? (\n\t\t\t\t\t\t\t\t\t<img src={imageSrc} alt={it.imageAlt ?? title} />\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<CartLineImagePlaceholder title={title} />\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t\t\t<ItemContent className=\"cart-summary--item-content\">\n\t\t\t\t\t\t\t\t<ItemTitle>{title}</ItemTitle>\n\t\t\t\t\t\t\t\t{!!it.variantTitle && (\n\t\t\t\t\t\t\t\t\t<ItemDescription clamp={1}>{it.variantTitle}</ItemDescription>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t\t<ItemActions className=\"cart-summary--item-actions\">\n\t\t\t\t\t\t\t\t<div className=\"flex shrink-0 flex-col items-end gap-0.5\">\n\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" className=\"tabular-nums\">x{it.qty}</Text>\n\t\t\t\t\t\t\t\t\t<Text tag=\"span\" weight=\"semibold\" className=\"tabular-nums\">{it.price}</Text>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</ItemActions>\n\t\t\t\t\t\t</Item>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</ItemGroup>\n\n\t\t\t{!!hasBreakdown && (\n\t\t\t\t<div className=\"mt-3 space-y-1.5 rounded-lg bg-muted/30 px-3 py-2.5\">\n\t\t\t\t\t{!!subtotal && (\n\t\t\t\t\t\t<InlineStat label={strings.subtotal} value={subtotal} mono valueClassName=\"text-xs font-medium\" labelClassName=\"text-xs\" />\n\t\t\t\t\t)}\n\t\t\t\t\t{!!tax && (\n\t\t\t\t\t\t<InlineStat label={strings.tax} value={tax} mono valueClassName=\"text-xs font-medium\" labelClassName=\"text-xs\" />\n\t\t\t\t\t)}\n\t\t\t\t\t{!!shipping && (\n\t\t\t\t\t\t<InlineStat label={strings.shipping} value={shipping} mono valueClassName=\"text-xs font-medium\" labelClassName=\"text-xs\" />\n\t\t\t\t\t)}\n\t\t\t\t\t{!!discount && (\n\t\t\t\t\t\t<InlineStat\n\t\t\t\t\t\t\tlabel={strings.discount}\n\t\t\t\t\t\t\tvalue={`−${stripLeadingMinus(discount)}`}\n\t\t\t\t\t\t\tmono\n\t\t\t\t\t\t\tlabelClassName=\"text-xs\"\n\t\t\t\t\t\t\tvalueClassName=\"text-xs font-semibold text-success\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t<Separator className=\"my-3\" />\n\n\t\t\t<InlineStat\n\t\t\t\tlabel={strings.total}\n\t\t\t\tvalue={total}\n\t\t\t\tmono\n\t\t\t\tlabelClassName=\"text-sm font-semibold\"\n\t\t\t\tvalueClassName=\"text-lg font-bold\"\n\t\t\t/>\n\n\t\t\t{!!onCheckout && (\n\t\t\t\t<Button onClick={onCheckout} fullWidth className=\"mt-4\">{strings.checkout}</Button>\n\t\t\t)}\n\t\t</SmartCard>\n\t);\n}\n\nCartSummaryCard.displayName = 'CartSummaryCard';\n","export interface CouponInputStrings {\n\ttitle: string;\n\tplaceholder: string;\n\tapply: string;\n\tremove: string;\n\tapplied: string;\n\tinvalid: string;\n}\n\nexport const defaultCouponInputStrings: CouponInputStrings = {\n\ttitle: 'Have a code?',\n\tplaceholder: 'Enter coupon code',\n\tapply: 'Apply',\n\tremove: 'Remove',\n\tapplied: 'Applied',\n\tinvalid: 'That code is not valid',\n};\n\nexport interface CouponInputCardProps {\n\tappliedCode?: string;\n\tappliedDiscount?: string;\n\terror?: string;\n\tonApply?: (code: string) => void;\n\tonRemove?: () => void;\n\tloading?: boolean;\n\tclassName?: string;\n\tstrings?: Partial<CouponInputStrings>;\n}\n","/**\n * CouponInputCard — promo / coupon code entry with an applied state and\n * inline error messaging.\n *\n * Empty state — leading-icon input + apply button, helper line for\n * placeholders or errors. Applied state — success-tinted row with a check\n * medallion, monospaced code, discount delta, and a destructive remove icon.\n */\nimport { useState } from 'react';\nimport { Check, Sparkles, TicketPercent, X } from 'lucide-react';\nimport { SmartCard } from '@/components/base/cards';\nimport { Button } from '@/components/base/buttons';\nimport { IconBadge } from '@/components/base/display';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemDescription,\n\tItemFooter,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { Text } from '@/components/typography';\nimport { Input } from '@/components/base/forms/fields';\nimport { useStrings } from '@/lib/strings';\n\nimport { defaultCouponInputStrings, type CouponInputCardProps } from './types';\n\nimport { cn } from '@/lib/utils';\nconst stripLeadingMinus = (value: string): string => value.replace(/^[\\s−-]+/, '');\nconst normalizeCode = (value: string): string => value.toUpperCase();\n\nexport function CouponInputCard({\n\tappliedCode,\n\tappliedDiscount,\n\terror,\n\tonApply,\n\tonRemove,\n\tloading,\n\tclassName,\n\tstrings: stringsProp,\n}: CouponInputCardProps) {\n\tconst strings = useStrings(defaultCouponInputStrings, stringsProp);\n\tconst [code, setCode] = useState('');\n\tconst trimmedCode = code.trim();\n\n\tif (appliedCode) {\n\t\treturn (\n\t\t\t<SmartCard icon={<TicketPercent className=\"size-4\" />} title={strings.title} className={cn('coupon-input--component w-full', className)}>\n\t\t\t\t<Item size=\"xs\" variant=\"muted\" className=\"items-center gap-x-2.5 gap-y-1.5 border border-success/30 bg-success/8 px-2.5 py-2\">\n\t\t\t\t\t<ItemMedia>\n\t\t\t\t\t\t<IconBadge icon={Check} tone=\"success\" size=\"sm\" className=\"ring-1 ring-success/20\" />\n\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t<ItemContent className=\"min-w-0\">\n\t\t\t\t\t\t<ItemTitle className=\"max-w-full font-mono tracking-wider\">{appliedCode}</ItemTitle>\n\t\t\t\t\t\t<ItemDescription className=\"uppercase tracking-wide\" clamp={1}>\n\t\t\t\t\t\t\t{strings.applied}\n\t\t\t\t\t\t</ItemDescription>\n\t\t\t\t\t</ItemContent>\n\t\t\t\t\t<ItemFooter className=\"border-t border-success/15 pt-1\">\n\t\t\t\t\t\t<span />\n\t\t\t\t\t\t<ItemActions className=\"shrink-0 gap-1.5\">\n\t\t\t\t\t\t\t{!!appliedDiscount && (\n\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\t\t\t\ttype=\"success\"\n\t\t\t\t\t\t\t\t\tclassName=\"tabular-nums shrink-0\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t−{stripLeadingMinus(appliedDiscount)}\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{!!onRemove && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tvariant=\"error\"\n\t\t\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\t\t\tsize=\"icon-xs\"\n\t\t\t\t\t\t\t\t\tonClick={onRemove}\n\t\t\t\t\t\t\t\t\taria-label={strings.remove}\n\t\t\t\t\t\t\t\t\tclassName=\"size-7 shrink-0 text-muted-foreground hover:text-destructive\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<X className=\"size-3.5\" />\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</ItemActions>\n\t\t\t\t\t</ItemFooter>\n\t\t\t\t</Item>\n\t\t\t</SmartCard>\n\t\t);\n\t}\n\n\treturn (\n\t\t<SmartCard icon={<TicketPercent className=\"size-4\" />} title={strings.title} className={cn('coupon-input--component w-full', className)}>\n\t\t\t<div className=\"flex flex-col gap-2\">\n\t\t\t\t<div className=\"flex flex-wrap gap-2\">\n\t\t\t\t\t<div className=\"min-w-[11rem] flex-1\">\n\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\tvalue={code}\n\t\t\t\t\t\t\tonChange={(e) => setCode(normalizeCode((e.target as HTMLInputElement).value))}\n\t\t\t\t\t\t\tplaceholder={strings.placeholder}\n\t\t\t\t\t\t\tstartIcon={Sparkles}\n\t\t\t\t\t\t\tautoCapitalize=\"characters\"\n\t\t\t\t\t\t\tspellCheck={false}\n\t\t\t\t\t\t\tclassName=\"font-mono\"\n\t\t\t\t\t\t\tinvalid={Boolean(error)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"default\"\n\t\t\t\t\t\tonClick={() => onApply?.(trimmedCode)}\n\t\t\t\t\t\tloading={loading}\n\t\t\t\t\t\tdisabled={!trimmedCode}\n\t\t\t\t\t\tclassName=\"shrink-0\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{strings.apply}\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t\t{!!error && (\n\t\t\t\t\t<Text size=\"xs\" type=\"error\">{error || strings.invalid}</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</SmartCard>\n\t);\n}\n\nCouponInputCard.displayName = 'CouponInputCard';\n","import type { ComposedBadgeVariant } from '@/components/base/badge/badge';\n\nexport type OrderStatusKind = 'pending' | 'paid' | 'fulfilled' | 'shipped' | 'delivered' | 'cancelled';\n\nexport interface OrderStatusEvent {\n\tlabel: string;\n\ttimestamp?: string;\n\tcomplete: boolean;\n}\n\nexport interface OrderStatusStrings {\n\ttitle: string;\n\tstatusLabel: string;\n\teta: string;\n\tlatestEvent: string;\n\tcurrentStep: string;\n}\n\nexport const defaultOrderStatusStrings: OrderStatusStrings = {\n\ttitle: 'Order status',\n\tstatusLabel: 'Current status',\n\teta: 'ETA',\n\tlatestEvent: 'Latest event',\n\tcurrentStep: 'Current step',\n};\n\nexport interface OrderStatusCardProps {\n\torderNumber: string;\n\tstatus: OrderStatusKind;\n\tstatusVariant?: ComposedBadgeVariant;\n\tevents: OrderStatusEvent[];\n\tcurrentEta?: string;\n\tclassName?: string;\n\tstrings?: Partial<OrderStatusStrings>;\n}\n","/**\n * OrderStatusCard — order number + status badge + readable event timeline.\n * Ideal for dashboards / receipt summaries. Strings overridable for i18n.\n */\nimport { CalendarClock, Check, Circle, Package } from 'lucide-react';\nimport { SmartCard } from '@/components/base/cards';\nimport { Text } from '@/components/typography';\nimport { Badge } from '@/components/base/badge';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport {\n\tdefaultOrderStatusStrings,\n\ttype OrderStatusCardProps,\n\ttype OrderStatusKind,\n} from './types';\n\nconst VARIANT_BY_STATUS: Record<OrderStatusKind, 'primary' | 'success' | 'warning' | 'error' | 'info' | 'secondary'> = {\n\tpending: 'warning',\n\tpaid: 'info',\n\tfulfilled: 'info',\n\tshipped: 'primary',\n\tdelivered: 'success',\n\tcancelled: 'error',\n};\n\nexport function OrderStatusCard({\n\torderNumber,\n\tstatus,\n\tstatusVariant,\n\tevents,\n\tcurrentEta,\n\tclassName,\n\tstrings: stringsProp,\n}: OrderStatusCardProps) {\n\tconst strings = useStrings(defaultOrderStatusStrings, stringsProp);\n\tconst variant = statusVariant ?? VARIANT_BY_STATUS[status];\n\tconst lastCompleteIdx = events.reduce((acc, e, i) => (e.complete ? i : acc), -1);\n\tconst latestEvent = events[lastCompleteIdx] ?? events[0];\n\tconst nextEvent = events.find((event) => !event.complete);\n\n\treturn (\n\t\t<SmartCard\n\t\t\ticon={<Package className=\"size-4\" />}\n\t\t\ttitle={strings.title}\n\t\t\ttitleSuffix={<Badge variant={variant} className=\"capitalize\">{status}</Badge>}\n\t\t\tdescription={`#${orderNumber}`}\n\t\t\tclassName={cn('order-status--component w-full', className)}\n\t\t>\n\t\t\t<div className=\"rounded-lg border border-border bg-muted/20 p-3\">\n\t\t\t\t<div className=\"grid gap-3 sm:grid-cols-3\">\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<Text size=\"xxs\" type=\"secondary\" className=\"uppercase tracking-wide\">\n\t\t\t\t\t\t\t{strings.statusLabel}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t<Text weight=\"semibold\" className=\"mt-0.5 capitalize\">\n\t\t\t\t\t\t\t{status}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</div>\n\t\t\t\t\t{!!latestEvent && (\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<Text size=\"xxs\" type=\"secondary\" className=\"uppercase tracking-wide\">\n\t\t\t\t\t\t\t\t{latestEvent.complete ? strings.latestEvent : strings.currentStep}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Text weight=\"semibold\" className=\"mt-0.5\">\n\t\t\t\t\t\t\t\t{latestEvent.label}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!currentEta && (\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<Text size=\"xxs\" type=\"secondary\" className=\"uppercase tracking-wide\">\n\t\t\t\t\t\t\t\t{strings.eta}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Text weight=\"semibold\" className=\"mt-0.5 tabular-nums\">\n\t\t\t\t\t\t\t\t{currentEta}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{events.length > 0 && (\n\t\t\t\t<ol className=\"mt-4\">\n\t\t\t\t\t{events.map((event, index) => {\n\t\t\t\t\t\tconst isLast = index === events.length - 1;\n\t\t\t\t\t\tconst isCurrent = nextEvent ? event === nextEvent : index === lastCompleteIdx;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<li key={`${event.label}-${index}`} className=\"relative flex gap-3\">\n\t\t\t\t\t\t\t\t<div className=\"flex flex-col items-center\">\n\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t'flex size-6 shrink-0 items-center justify-center rounded-full border',\n\t\t\t\t\t\t\t\t\t\t\tevent.complete\n\t\t\t\t\t\t\t\t\t\t\t\t? 'border-success bg-success text-success-foreground'\n\t\t\t\t\t\t\t\t\t\t\t\t: 'border-border bg-card text-muted-foreground',\n\t\t\t\t\t\t\t\t\t\t\tisCurrent && !event.complete && 'border-primary text-primary ring-4 ring-primary/10',\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{event.complete ? (\n\t\t\t\t\t\t\t\t\t\t\t<Check className=\"size-3.5\" strokeWidth={2.5} />\n\t\t\t\t\t\t\t\t\t\t) : isCurrent ? (\n\t\t\t\t\t\t\t\t\t\t\t<CalendarClock className=\"size-3.5\" />\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t<Circle className=\"size-3\" />\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t{!isLast && (\n\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t'min-h-6 w-px flex-1',\n\t\t\t\t\t\t\t\t\t\t\t\tindex < lastCompleteIdx ? 'bg-success' : 'bg-border',\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div className={cn('min-w-0 flex-1 pb-4', isLast && 'pb-0')}>\n\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\tweight={event.complete || isCurrent ? 'semibold' : 'medium'}\n\t\t\t\t\t\t\t\t\t\tclassName={cn(!event.complete && !isCurrent && 'text-muted-foreground')}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{event.label}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t{!!event.timestamp && (\n\t\t\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"mt-0.5 tabular-nums\">\n\t\t\t\t\t\t\t\t\t\t\t{event.timestamp}\n\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</ol>\n\t\t\t)}\n\t\t</SmartCard>\n\t);\n}\n\nOrderStatusCard.displayName = 'OrderStatusCard';\n","export type PaymentBrand = 'visa' | 'mastercard' | 'amex' | 'paypal' | 'applepay' | 'googlepay' | 'unknown';\n\nexport interface PaymentMethodStrings {\n\ttitle: string;\n\tdefault: string;\n\tcardHolder: string;\n\texpires: string;\n\tchange: string;\n}\n\nexport const defaultPaymentMethodStrings: PaymentMethodStrings = {\n\ttitle: 'Payment method',\n\tdefault: 'Default',\n\tcardHolder: 'Card holder',\n\texpires: 'Expires',\n\tchange: 'Change',\n};\n\nexport interface PaymentMethodCardProps {\n\tbrand: PaymentBrand;\n\tlast4: string;\n\texpiry?: string; // MM/YY\n\tholderName?: string;\n\tisDefault?: boolean;\n\tonChange?: () => void;\n\tclassName?: string;\n\tstrings?: Partial<PaymentMethodStrings>;\n}\n","/**\n * PaymentMethodCard — saved-card surface. The hero block is rendered as a\n * mini credit-card mock with real card proportions, brand chip top-right, masked\n * PAN center, and holder + expiry on the bottom row. Trailing actions sit\n * in a footer below the mock so the hierarchy is \"card → details → CTA\".\n */\nimport { CreditCard } from 'lucide-react';\nimport { SmartCard } from '@/components/base/cards';\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography';\nimport { Badge } from '@/components/base/badge';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport { defaultPaymentMethodStrings, type PaymentBrand, type PaymentMethodCardProps } from './types';\n\nconst BRAND_LABEL: Record<PaymentBrand, string> = {\n\tvisa: 'VISA',\n\tmastercard: 'MasterCard',\n\tamex: 'AMEX',\n\tpaypal: 'PayPal',\n\tapplepay: 'Apple Pay',\n\tgooglepay: 'Google Pay',\n\tunknown: 'Card',\n};\n\nconst BRAND_GRADIENT: Record<PaymentBrand, string> = {\n\tvisa: 'from-info via-primary to-info',\n\tmastercard: 'from-warning via-destructive to-destructive',\n\tamex: 'from-info via-primary to-info',\n\tpaypal: 'from-info via-primary to-info',\n\tapplepay: 'from-foreground via-muted-foreground to-foreground',\n\tgooglepay: 'from-success via-primary to-success',\n\tunknown: 'from-foreground via-muted-foreground to-foreground',\n};\n\nexport function PaymentMethodCard({\n\tbrand,\n\tlast4,\n\texpiry,\n\tholderName,\n\tisDefault,\n\tonChange,\n\tclassName,\n\tstrings: stringsProp,\n}: PaymentMethodCardProps) {\n\tconst strings = useStrings(defaultPaymentMethodStrings, stringsProp);\n\tconst brandLabel = BRAND_LABEL[brand];\n\tconst gradient = BRAND_GRADIENT[brand];\n\n\treturn (\n\t\t<SmartCard\n\t\t\ticon={<CreditCard className=\"size-4\" />}\n\t\t\ttitle={strings.title}\n\t\t\ttitleSuffix={isDefault ? <Badge variant=\"primary\">{strings.default}</Badge> : null}\n\t\t\theaderAction={onChange ? (\n\t\t\t\t<Button buttonStyle=\"ghost\" variant=\"secondary\" onClick={onChange}>\n\t\t\t\t\t{strings.change}\n\t\t\t\t</Button>\n\t\t\t) : undefined}\n\t\t\tclassName={cn('payment-method--component w-full', className)}\n\t\t>\n\t\t\t{/* Mini card mock */}\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'relative mx-auto flex aspect-[85.6/53.98] w-full max-w-[22rem] flex-col justify-between overflow-hidden rounded-lg bg-gradient-to-br p-3.5 text-inverse-foreground shadow-sm ring-1 ring-inverse-border',\n\t\t\t\t\tgradient,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<div className=\"relative flex items-start justify-between\">\n\t\t\t\t\t<div className=\"flex size-7 items-center justify-center rounded-md bg-gradient-to-br from-warning/80 to-warning shadow-sm\">\n\t\t\t\t\t\t<div className=\"size-4 rounded-sm border border-warning-foreground/25 bg-warning-foreground/15\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<Text\n\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\tweight=\"bold\"\n\t\t\t\t\t\tclassName=\"rounded bg-inverse-surface px-2 py-0.5 tracking-[0.15em] text-inverse-foreground backdrop-blur-sm\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{brandLabel}\n\t\t\t\t\t</Text>\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"relative\">\n\t\t\t\t\t<Text\n\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\tsize=\"base\"\n\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\tclassName=\"block font-mono tracking-[0.25em] text-inverse-foreground\"\n\t\t\t\t\t>\n\t\t\t\t\t\t•••• •••• •••• {last4}\n\t\t\t\t\t</Text>\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"relative flex items-end justify-between gap-3\">\n\t\t\t\t\t<div className=\"min-w-0\">\n\t\t\t\t\t\t{!!holderName && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Text size=\"xxs\" className=\"block uppercase tracking-wider text-inverse-subtle\">{strings.cardHolder}</Text>\n\t\t\t\t\t\t\t\t<Text weight=\"semibold\" className=\"truncate text-inverse-foreground\">{holderName}</Text>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t\t{!!expiry && (\n\t\t\t\t\t\t<div className=\"text-right shrink-0\">\n\t\t\t\t\t\t\t<Text size=\"xxs\" className=\"block uppercase tracking-wider text-inverse-subtle\">{strings.expires}</Text>\n\t\t\t\t\t\t\t<Text tag=\"span\" weight=\"semibold\" className=\"tabular-nums text-inverse-foreground\">{expiry}</Text>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t</SmartCard>\n\t);\n}\n\nPaymentMethodCard.displayName = 'PaymentMethodCard';\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../lib/strings.cjs"),t=require("../../../lib/utils.cjs"),n=require("../../../_shared/button-BI347RlM.cjs"),r=require("../../../_shared/heading-0DYCOrgC.cjs"),i=require("../../../_shared/icon-badge-BAWl1oOe.cjs"),a=require("../../../_shared/separator-q42IlFFA.cjs"),o=require("../../../_shared/display-Dhy5ogxC.cjs"),s=require("../../../_shared/item-DoXXYgPm.cjs");let c=require("react"),l=require("react/jsx-runtime"),u=require("lucide-react");var d={title:`Booking Receipt`,statusConfirmed:`Confirmed`,amountPaidLabel:`Amount Paid`},f={successTitle:`Payment Successful`,successDescription:`Transaction completed`,detailsToggle:`Payment Details`},p={defaultTitle:`Details`},m={title:`Order Items`,totalLabel:`Total`},h={title:`Outstanding Balance`,dueDateLabel:`Due Date`,customerLabel:`Customer`,sendReminder:`Send Reminder`,recordPayment:`Record Payment`};function g({amount:d,details:p=[],helpText:m,onHelp:h,className:g,strings:_}){let v=e.useStrings(f,_),[y,b]=(0,c.useState)(!0);return(0,l.jsxs)(`div`,{className:t.cn(`dark-payment--component`,`dark rounded-lg bg-card p-5 text-card-foreground shadow-sm ring-1 ring-border`,g),children:[(0,l.jsxs)(`div`,{className:`flex flex-col items-center text-center`,children:[(0,l.jsx)(i.t,{icon:u.Check,tone:`success`,size:`lg`,className:`size-14 [&>svg]:size-7`}),(0,l.jsx)(r.t,{tag:`h5`,className:`mt-3 !border-0 !pb-0`,children:v.successTitle}),(0,l.jsx)(r.n,{size:`xs`,type:`secondary`,children:v.successDescription}),(0,l.jsx)(r.t,{tag:`h3`,className:`border-none pb-0 text-2xl tabular-nums tracking-tight`,children:d})]}),p.length>0&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(a.t,{className:`my-4`}),(0,l.jsxs)(n.t,{variant:`light`,buttonStyle:`ghost`,onClick:()=>b(!y),className:`flex w-full items-center justify-between border-0 p-0 h-auto text-muted-foreground hover:text-foreground`,children:[(0,l.jsx)(r.n,{weight:`medium`,children:v.detailsToggle}),y?(0,l.jsx)(u.ChevronUp,{className:`size-4`}):(0,l.jsx)(u.ChevronDown,{className:`size-4`})]}),!!y&&(0,l.jsx)(`div`,{className:`mt-3 space-y-2.5`,children:p.map(e=>(0,l.jsx)(o.i,{label:e.label,value:e.value,labelClassName:`text-sm`,valueClassName:`text-sm font-medium`},e.label))})]}),!!m&&(0,l.jsxs)(s.t,{variant:`muted`,className:t.cn(`mt-4`,h&&`cursor-pointer`),onClick:h,children:[(0,l.jsx)(s.c,{variant:`icon`,className:`text-muted-foreground`,children:(0,l.jsx)(u.HelpCircle,{})}),(0,l.jsx)(s.r,{children:(0,l.jsx)(s.u,{bold:!1,className:`text-muted-foreground`,children:m})}),(0,l.jsx)(s.n,{children:(0,l.jsx)(u.ChevronRight,{className:`size-4 text-muted-foreground`})})]})]})}g.displayName=`DarkPaymentConfirmation`;function _({referenceCode:n,status:i,details:a=[],amountPaid:s,className:c,strings:u}){let f=e.useStrings(d,u),p=i??f.statusConfirmed;return(0,l.jsxs)(`div`,{className:t.cn(`booking-receipt--component`,`dark space-y-3 rounded-lg bg-card p-4 text-card-foreground shadow-sm ring-1 ring-border`,c),children:[(0,l.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,l.jsx)(r.t,{tag:`h6`,className:`!border-0 !pb-0`,children:f.title}),(0,l.jsxs)(r.n,{size:`xs`,weight:`medium`,className:`flex items-center gap-1.5 rounded-full bg-success/15 px-2.5 py-1 text-success`,children:[(0,l.jsx)(`span`,{className:`size-1.5 rounded-full bg-success`}),p]})]}),a.length>0&&(0,l.jsx)(`div`,{className:`space-y-1.5 text-sm`,children:a.map(e=>(0,l.jsx)(o.i,{label:e.label,value:e.value,labelClassName:`text-sm`,valueClassName:`text-sm font-medium`},e.label))}),!!n&&(0,l.jsx)(r.n,{tag:`div`,size:`xs`,type:`secondary`,align:`center`,className:`rounded-md bg-muted px-3 py-2 font-mono tracking-wider`,children:n}),(0,l.jsx)(o.i,{className:`border-t border-border pt-3`,label:f.amountPaidLabel,value:(0,l.jsx)(r.t,{tag:`h4`,className:`border-none pb-0 text-lg`,children:s}),labelClassName:`text-sm`})]})}_.displayName=`BookingReceiptDark`;function v({title:i,items:a,totalLabel:o,totalValue:s,defaultOpen:d=!0,className:f,strings:m}){let h=e.useStrings(p,m),g=i??h.defaultTitle,[_,v]=(0,c.useState)(d);return(0,l.jsxs)(`div`,{className:t.cn(`dark-info-panel--component`,`dark rounded-lg bg-card p-4 text-card-foreground shadow-sm ring-1 ring-border`,f),children:[(0,l.jsxs)(n.t,{variant:`light`,buttonStyle:`ghost`,onClick:()=>v(!_),className:`flex w-full items-center justify-between border-0 p-0 h-auto`,children:[(0,l.jsx)(r.t,{tag:`h6`,className:`!border-0 !pb-0`,children:g}),_?(0,l.jsx)(u.ChevronUp,{className:`size-4 text-muted-foreground`}):(0,l.jsx)(u.ChevronDown,{className:`size-4 text-muted-foreground`})]}),!!_&&(0,l.jsxs)(`div`,{className:`mt-3 space-y-3 text-sm`,children:[a.map(e=>(0,l.jsxs)(`div`,{className:`flex items-baseline justify-between gap-6`,children:[(0,l.jsx)(r.n,{type:`secondary`,className:`min-w-0`,children:e.label}),(0,l.jsx)(r.n,{weight:`medium`,className:t.cn(`shrink-0 text-right`,e.highlight&&`text-success`),children:e.value})]},e.label)),!!o&&!!s&&(0,l.jsx)(`div`,{className:`border-t border-dashed border-border pt-3`,children:(0,l.jsxs)(`div`,{className:`flex items-baseline justify-between gap-6`,children:[(0,l.jsx)(r.n,{weight:`semibold`,type:`secondary`,className:`min-w-0`,children:o}),(0,l.jsx)(r.n,{weight:`semibold`,className:`shrink-0 text-right`,children:s})]})})]})]})}v.displayName=`DarkInfoPanel`;var y={neutral:`bg-muted-foreground`,primary:`bg-primary`,info:`bg-info`,success:`bg-success`,warning:`bg-warning`,destructive:`bg-destructive`};function b({items:n,summary:i=[],total:a,className:c,strings:u}){let d=e.useStrings(m,u);return(0,l.jsxs)(`div`,{className:t.cn(`order-items--component`,`dark rounded-lg bg-card p-4 text-card-foreground shadow-sm ring-1 ring-border`,c),children:[(0,l.jsx)(r.t,{tag:`h6`,className:`!border-0 !pb-0`,children:d.title}),(0,l.jsx)(s.o,{className:`mt-3 gap-2`,children:n.map(e=>(0,l.jsxs)(s.t,{variant:`muted`,className:`flex-col items-stretch gap-2`,children:[(0,l.jsxs)(s.s,{children:[(0,l.jsx)(r.n,{size:`xs`,type:`secondary`,children:e.vendor}),!!e.badge&&(0,l.jsx)(r.n,{size:`xs`,weight:`medium`,className:`rounded-full bg-secondary px-3 py-1 text-secondary-foreground`,children:e.badge})]}),(0,l.jsxs)(`div`,{className:`flex w-full items-center justify-between gap-3`,children:[(0,l.jsxs)(s.r,{children:[(0,l.jsx)(s.u,{children:e.name}),(0,l.jsx)(s.i,{clamp:1,children:(0,l.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[(0,l.jsx)(`span`,{className:t.cn(`size-2.5 rounded-full`,y[e.tone??`neutral`])}),`x`,e.qty]})})]}),(0,l.jsx)(s.n,{children:(0,l.jsx)(r.n,{weight:`bold`,children:e.price})})]})]},e.name))}),!!(i.length>0||a)&&(0,l.jsxs)(`div`,{className:`mt-3 space-y-2 border-t border-border pt-3 text-sm`,children:[i.map(e=>(0,l.jsx)(o.i,{label:e.label,value:e.value,labelClassName:`text-sm text-muted-foreground`,valueClassName:`text-sm text-muted-foreground`},e.label)),!!a&&(0,l.jsx)(o.i,{className:`border-t border-dashed border-border pt-2`,label:d.totalLabel,value:a,labelClassName:`text-sm font-semibold`,valueClassName:`text-sm font-semibold`})]})]})}b.displayName=`OrderItemsCard`;function x({amount:i,amountColor:a=`text-warning`,dueDate:s,customer:c,onSendReminder:d,onRecordPayment:f,className:p,strings:m}){let g=e.useStrings(h,m);return(0,l.jsxs)(`div`,{className:t.cn(`outstanding-balance--component`,`dark rounded-lg bg-card p-5 text-card-foreground shadow-sm ring-1 ring-border`,p),children:[(0,l.jsx)(r.n,{size:`xs`,weight:`medium`,type:`secondary`,className:`uppercase tracking-wider`,children:g.title}),(0,l.jsx)(r.t,{tag:`h3`,className:t.cn(`border-none pb-0 text-2xl tabular-nums tracking-tight`,a),children:i}),(0,l.jsxs)(`div`,{className:`mt-4 space-y-2`,children:[(0,l.jsx)(o.i,{label:g.dueDateLabel,value:(0,l.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,l.jsx)(`span`,{className:`size-2 rounded-full bg-destructive animate-pulse`}),(0,l.jsx)(r.n,{tag:`span`,weight:`medium`,children:s})]}),labelClassName:`text-xs`}),(0,l.jsx)(o.i,{label:g.customerLabel,value:c,labelClassName:`text-xs`,valueClassName:`text-sm font-medium`})]}),(0,l.jsxs)(`div`,{className:`mt-4 flex gap-2`,children:[(0,l.jsxs)(n.t,{variant:`warning`,className:`flex-1 rounded-md`,onClick:d,children:[(0,l.jsx)(u.Send,{className:`mr-1.5 size-3.5`}),g.sendReminder]}),(0,l.jsxs)(n.t,{variant:`success`,className:`flex-1 rounded-md`,onClick:f,children:[(0,l.jsx)(u.CreditCard,{className:`mr-1.5 size-3.5`}),g.recordPayment]})]})]})}x.displayName=`OutstandingBalanceCard`,exports.BookingReceiptDark=_,exports.DarkInfoPanel=v,exports.DarkPaymentConfirmation=g,exports.OrderItemsCard=b,exports.OutstandingBalanceCard=x;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../lib/strings.cjs"),t=require("../../../lib/utils.cjs"),n=require("../../../_shared/button-BI347RlM.cjs"),r=require("../../../_shared/heading-0DYCOrgC.cjs"),i=require("../../../_shared/icon-badge-BAWl1oOe.cjs"),a=require("../../../_shared/display-AtPyyUZc.cjs"),o=require("../../../_shared/separator-q42IlFFA.cjs"),s=require("../../../_shared/item-DoXXYgPm.cjs");let c=require("react"),l=require("react/jsx-runtime"),u=require("lucide-react");var d={title:`Booking Receipt`,statusConfirmed:`Confirmed`,amountPaidLabel:`Amount Paid`},f={successTitle:`Payment Successful`,successDescription:`Transaction completed`,detailsToggle:`Payment Details`},p={defaultTitle:`Details`},m={title:`Order Items`,totalLabel:`Total`},h={title:`Outstanding Balance`,dueDateLabel:`Due Date`,customerLabel:`Customer`,sendReminder:`Send Reminder`,recordPayment:`Record Payment`};function g({amount:d,details:p=[],helpText:m,onHelp:h,className:g,strings:_}){let v=e.useStrings(f,_),[y,b]=(0,c.useState)(!0);return(0,l.jsxs)(`div`,{className:t.cn(`dark-payment--component`,`dark rounded-lg bg-card p-5 text-card-foreground shadow-sm ring-1 ring-border`,g),children:[(0,l.jsxs)(`div`,{className:`flex flex-col items-center text-center`,children:[(0,l.jsx)(i.t,{icon:u.Check,tone:`success`,size:`lg`,className:`size-14 [&>svg]:size-7`}),(0,l.jsx)(r.t,{tag:`h5`,className:`mt-3 !border-0 !pb-0`,children:v.successTitle}),(0,l.jsx)(r.n,{size:`xs`,type:`secondary`,children:v.successDescription}),(0,l.jsx)(r.t,{tag:`h3`,className:`border-none pb-0 text-2xl tabular-nums tracking-tight`,children:d})]}),p.length>0&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(o.t,{className:`my-4`}),(0,l.jsxs)(n.t,{variant:`light`,buttonStyle:`ghost`,onClick:()=>b(!y),className:`flex w-full items-center justify-between border-0 p-0 h-auto text-muted-foreground hover:text-foreground`,children:[(0,l.jsx)(r.n,{weight:`medium`,children:v.detailsToggle}),y?(0,l.jsx)(u.ChevronUp,{className:`size-4`}):(0,l.jsx)(u.ChevronDown,{className:`size-4`})]}),!!y&&(0,l.jsx)(`div`,{className:`mt-3 space-y-2.5`,children:p.map(e=>(0,l.jsx)(a.i,{label:e.label,value:e.value,labelClassName:`text-sm`,valueClassName:`text-sm font-medium`},e.label))})]}),!!m&&(0,l.jsxs)(s.t,{variant:`muted`,className:t.cn(`mt-4`,h&&`cursor-pointer`),onClick:h,children:[(0,l.jsx)(s.c,{variant:`icon`,className:`text-muted-foreground`,children:(0,l.jsx)(u.HelpCircle,{})}),(0,l.jsx)(s.r,{children:(0,l.jsx)(s.u,{bold:!1,className:`text-muted-foreground`,children:m})}),(0,l.jsx)(s.n,{children:(0,l.jsx)(u.ChevronRight,{className:`size-4 text-muted-foreground`})})]})]})}g.displayName=`DarkPaymentConfirmation`;function _({referenceCode:n,status:i,details:o=[],amountPaid:s,className:c,strings:u}){let f=e.useStrings(d,u),p=i??f.statusConfirmed;return(0,l.jsxs)(`div`,{className:t.cn(`booking-receipt--component`,`dark space-y-3 rounded-lg bg-card p-4 text-card-foreground shadow-sm ring-1 ring-border`,c),children:[(0,l.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,l.jsx)(r.t,{tag:`h6`,className:`!border-0 !pb-0`,children:f.title}),(0,l.jsxs)(r.n,{size:`xs`,weight:`medium`,className:`flex items-center gap-1.5 rounded-full bg-success/15 px-2.5 py-1 text-success`,children:[(0,l.jsx)(`span`,{className:`size-1.5 rounded-full bg-success`}),p]})]}),o.length>0&&(0,l.jsx)(`div`,{className:`space-y-1.5 text-sm`,children:o.map(e=>(0,l.jsx)(a.i,{label:e.label,value:e.value,labelClassName:`text-sm`,valueClassName:`text-sm font-medium`},e.label))}),!!n&&(0,l.jsx)(r.n,{tag:`div`,size:`xs`,type:`secondary`,align:`center`,className:`rounded-md bg-muted px-3 py-2 font-mono tracking-wider`,children:n}),(0,l.jsx)(a.i,{className:`border-t border-border pt-3`,label:f.amountPaidLabel,value:(0,l.jsx)(r.t,{tag:`h4`,className:`border-none pb-0 text-lg`,children:s}),labelClassName:`text-sm`})]})}_.displayName=`BookingReceiptDark`;function v({title:i,items:a,totalLabel:o,totalValue:s,defaultOpen:d=!0,className:f,strings:m}){let h=e.useStrings(p,m),g=i??h.defaultTitle,[_,v]=(0,c.useState)(d);return(0,l.jsxs)(`div`,{className:t.cn(`dark-info-panel--component`,`dark rounded-lg bg-card p-4 text-card-foreground shadow-sm ring-1 ring-border`,f),children:[(0,l.jsxs)(n.t,{variant:`light`,buttonStyle:`ghost`,onClick:()=>v(!_),className:`flex w-full items-center justify-between border-0 p-0 h-auto`,children:[(0,l.jsx)(r.t,{tag:`h6`,className:`!border-0 !pb-0`,children:g}),_?(0,l.jsx)(u.ChevronUp,{className:`size-4 text-muted-foreground`}):(0,l.jsx)(u.ChevronDown,{className:`size-4 text-muted-foreground`})]}),!!_&&(0,l.jsxs)(`div`,{className:`mt-3 space-y-3 text-sm`,children:[a.map(e=>(0,l.jsxs)(`div`,{className:`flex items-baseline justify-between gap-6`,children:[(0,l.jsx)(r.n,{type:`secondary`,className:`min-w-0`,children:e.label}),(0,l.jsx)(r.n,{weight:`medium`,className:t.cn(`shrink-0 text-right`,e.highlight&&`text-success`),children:e.value})]},e.label)),!!o&&!!s&&(0,l.jsx)(`div`,{className:`border-t border-dashed border-border pt-3`,children:(0,l.jsxs)(`div`,{className:`flex items-baseline justify-between gap-6`,children:[(0,l.jsx)(r.n,{weight:`semibold`,type:`secondary`,className:`min-w-0`,children:o}),(0,l.jsx)(r.n,{weight:`semibold`,className:`shrink-0 text-right`,children:s})]})})]})]})}v.displayName=`DarkInfoPanel`;var y={neutral:`bg-muted-foreground`,primary:`bg-primary`,info:`bg-info`,success:`bg-success`,warning:`bg-warning`,destructive:`bg-destructive`};function b({items:n,summary:i=[],total:o,className:c,strings:u}){let d=e.useStrings(m,u);return(0,l.jsxs)(`div`,{className:t.cn(`order-items--component`,`dark rounded-lg bg-card p-4 text-card-foreground shadow-sm ring-1 ring-border`,c),children:[(0,l.jsx)(r.t,{tag:`h6`,className:`!border-0 !pb-0`,children:d.title}),(0,l.jsx)(s.o,{className:`mt-3 gap-2`,children:n.map(e=>(0,l.jsxs)(s.t,{variant:`muted`,className:`flex-col items-stretch gap-2`,children:[(0,l.jsxs)(s.s,{children:[(0,l.jsx)(r.n,{size:`xs`,type:`secondary`,children:e.vendor}),!!e.badge&&(0,l.jsx)(r.n,{size:`xs`,weight:`medium`,className:`rounded-full bg-secondary px-3 py-1 text-secondary-foreground`,children:e.badge})]}),(0,l.jsxs)(`div`,{className:`flex w-full items-center justify-between gap-3`,children:[(0,l.jsxs)(s.r,{children:[(0,l.jsx)(s.u,{children:e.name}),(0,l.jsx)(s.i,{clamp:1,children:(0,l.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[(0,l.jsx)(`span`,{className:t.cn(`size-2.5 rounded-full`,y[e.tone??`neutral`])}),`x`,e.qty]})})]}),(0,l.jsx)(s.n,{children:(0,l.jsx)(r.n,{weight:`bold`,children:e.price})})]})]},e.name))}),!!(i.length>0||o)&&(0,l.jsxs)(`div`,{className:`mt-3 space-y-2 border-t border-border pt-3 text-sm`,children:[i.map(e=>(0,l.jsx)(a.i,{label:e.label,value:e.value,labelClassName:`text-sm text-muted-foreground`,valueClassName:`text-sm text-muted-foreground`},e.label)),!!o&&(0,l.jsx)(a.i,{className:`border-t border-dashed border-border pt-2`,label:d.totalLabel,value:o,labelClassName:`text-sm font-semibold`,valueClassName:`text-sm font-semibold`})]})]})}b.displayName=`OrderItemsCard`;function x({amount:i,amountColor:o=`text-warning`,dueDate:s,customer:c,onSendReminder:d,onRecordPayment:f,className:p,strings:m}){let g=e.useStrings(h,m);return(0,l.jsxs)(`div`,{className:t.cn(`outstanding-balance--component`,`dark rounded-lg bg-card p-5 text-card-foreground shadow-sm ring-1 ring-border`,p),children:[(0,l.jsx)(r.n,{size:`xs`,weight:`medium`,type:`secondary`,className:`uppercase tracking-wider`,children:g.title}),(0,l.jsx)(r.t,{tag:`h3`,className:t.cn(`border-none pb-0 text-2xl tabular-nums tracking-tight`,o),children:i}),(0,l.jsxs)(`div`,{className:`mt-4 space-y-2`,children:[(0,l.jsx)(a.i,{label:g.dueDateLabel,value:(0,l.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,l.jsx)(`span`,{className:`size-2 rounded-full bg-destructive animate-pulse`}),(0,l.jsx)(r.n,{tag:`span`,weight:`medium`,children:s})]}),labelClassName:`text-xs`}),(0,l.jsx)(a.i,{label:g.customerLabel,value:c,labelClassName:`text-xs`,valueClassName:`text-sm font-medium`})]}),(0,l.jsxs)(`div`,{className:`mt-4 flex gap-2`,children:[(0,l.jsxs)(n.t,{variant:`warning`,className:`flex-1 rounded-md`,onClick:d,children:[(0,l.jsx)(u.Send,{className:`mr-1.5 size-3.5`}),g.sendReminder]}),(0,l.jsxs)(n.t,{variant:`success`,className:`flex-1 rounded-md`,onClick:f,children:[(0,l.jsx)(u.CreditCard,{className:`mr-1.5 size-3.5`}),g.recordPayment]})]})]})}x.displayName=`OutstandingBalanceCard`,exports.BookingReceiptDark=_,exports.DarkInfoPanel=v,exports.DarkPaymentConfirmation=g,exports.OrderItemsCard=b,exports.OutstandingBalanceCard=x;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -3,8 +3,8 @@ import { cn as t } from "../../../lib/utils.js";
3
3
  import { t as n } from "../../../_shared/button-BGKY8UY0.js";
4
4
  import { n as r, t as i } from "../../../_shared/heading-HeP06nXG.js";
5
5
  import { t as a } from "../../../_shared/icon-badge-zTBVtgt9.js";
6
- import { t as o } from "../../../_shared/separator-B8FBp-7E.js";
7
- import { i as s } from "../../../_shared/display-NBtWdAMl.js";
6
+ import { i as o } from "../../../_shared/display-CL69dmsv.js";
7
+ import { t as s } from "../../../_shared/separator-B8FBp-7E.js";
8
8
  import { c, i as l, n as u, o as d, r as f, s as p, t as m, u as h } from "../../../_shared/item-DAjqQhhj.js";
9
9
  import { useState as g } from "react";
10
10
  import { Fragment as _, jsx as v, jsxs as y } from "react/jsx-runtime";
@@ -62,7 +62,7 @@ function M({ amount: l, details: d = [], helpText: p, onHelp: w, className: E, s
62
62
  ]
63
63
  }),
64
64
  d.length > 0 && /* @__PURE__ */ y(_, { children: [
65
- /* @__PURE__ */ v(o, { className: "my-4" }),
65
+ /* @__PURE__ */ v(s, { className: "my-4" }),
66
66
  /* @__PURE__ */ y(n, {
67
67
  variant: "light",
68
68
  buttonStyle: "ghost",
@@ -75,7 +75,7 @@ function M({ amount: l, details: d = [], helpText: p, onHelp: w, className: E, s
75
75
  }),
76
76
  !!A && /* @__PURE__ */ v("div", {
77
77
  className: "mt-3 space-y-2.5",
78
- children: d.map((e) => /* @__PURE__ */ v(s, {
78
+ children: d.map((e) => /* @__PURE__ */ v(o, {
79
79
  label: e.label,
80
80
  value: e.value,
81
81
  labelClassName: "text-sm",
@@ -107,7 +107,7 @@ function M({ amount: l, details: d = [], helpText: p, onHelp: w, className: E, s
107
107
  M.displayName = "DarkPaymentConfirmation";
108
108
  //#endregion
109
109
  //#region src/components/composed/dark-surfaces/booking-receipt/booking-receipt.tsx
110
- function N({ referenceCode: n, status: a, details: o = [], amountPaid: c, className: l, strings: u }) {
110
+ function N({ referenceCode: n, status: a, details: s = [], amountPaid: c, className: l, strings: u }) {
111
111
  let d = e(D, u), f = a ?? d.statusConfirmed;
112
112
  return /* @__PURE__ */ y("div", {
113
113
  className: t("booking-receipt--component", "dark space-y-3 rounded-lg bg-card p-4 text-card-foreground shadow-sm ring-1 ring-border", l),
@@ -125,9 +125,9 @@ function N({ referenceCode: n, status: a, details: o = [], amountPaid: c, classN
125
125
  children: [/* @__PURE__ */ v("span", { className: "size-1.5 rounded-full bg-success" }), f]
126
126
  })]
127
127
  }),
128
- o.length > 0 && /* @__PURE__ */ v("div", {
128
+ s.length > 0 && /* @__PURE__ */ v("div", {
129
129
  className: "space-y-1.5 text-sm",
130
- children: o.map((e) => /* @__PURE__ */ v(s, {
130
+ children: s.map((e) => /* @__PURE__ */ v(o, {
131
131
  label: e.label,
132
132
  value: e.value,
133
133
  labelClassName: "text-sm",
@@ -142,7 +142,7 @@ function N({ referenceCode: n, status: a, details: o = [], amountPaid: c, classN
142
142
  className: "rounded-md bg-muted px-3 py-2 font-mono tracking-wider",
143
143
  children: n
144
144
  }),
145
- /* @__PURE__ */ v(s, {
145
+ /* @__PURE__ */ v(o, {
146
146
  className: "border-t border-border pt-3",
147
147
  label: d.amountPaidLabel,
148
148
  value: /* @__PURE__ */ v(i, {
@@ -215,7 +215,7 @@ var F = {
215
215
  warning: "bg-warning",
216
216
  destructive: "bg-destructive"
217
217
  };
218
- function I({ items: n, summary: a = [], total: o, className: c, strings: g }) {
218
+ function I({ items: n, summary: a = [], total: s, className: c, strings: g }) {
219
219
  let _ = e(A, g);
220
220
  return /* @__PURE__ */ y("div", {
221
221
  className: t("order-items--component", "dark rounded-lg bg-card p-4 text-card-foreground shadow-sm ring-1 ring-border", c),
@@ -258,17 +258,17 @@ function I({ items: n, summary: a = [], total: o, className: c, strings: g }) {
258
258
  })]
259
259
  }, e.name))
260
260
  }),
261
- !!(a.length > 0 || o) && /* @__PURE__ */ y("div", {
261
+ !!(a.length > 0 || s) && /* @__PURE__ */ y("div", {
262
262
  className: "mt-3 space-y-2 border-t border-border pt-3 text-sm",
263
- children: [a.map((e) => /* @__PURE__ */ v(s, {
263
+ children: [a.map((e) => /* @__PURE__ */ v(o, {
264
264
  label: e.label,
265
265
  value: e.value,
266
266
  labelClassName: "text-sm text-muted-foreground",
267
267
  valueClassName: "text-sm text-muted-foreground"
268
- }, e.label)), !!o && /* @__PURE__ */ v(s, {
268
+ }, e.label)), !!s && /* @__PURE__ */ v(o, {
269
269
  className: "border-t border-dashed border-border pt-2",
270
270
  label: _.totalLabel,
271
- value: o,
271
+ value: s,
272
272
  labelClassName: "text-sm font-semibold",
273
273
  valueClassName: "text-sm font-semibold"
274
274
  })]
@@ -279,7 +279,7 @@ function I({ items: n, summary: a = [], total: o, className: c, strings: g }) {
279
279
  I.displayName = "OrderItemsCard";
280
280
  //#endregion
281
281
  //#region src/components/composed/dark-surfaces/outstanding-balance/outstanding-balance.tsx
282
- function L({ amount: a, amountColor: o = "text-warning", dueDate: c, customer: l, onSendReminder: u, onRecordPayment: d, className: f, strings: p }) {
282
+ function L({ amount: a, amountColor: s = "text-warning", dueDate: c, customer: l, onSendReminder: u, onRecordPayment: d, className: f, strings: p }) {
283
283
  let m = e(j, p);
284
284
  return /* @__PURE__ */ y("div", {
285
285
  className: t("outstanding-balance--component", "dark rounded-lg bg-card p-5 text-card-foreground shadow-sm ring-1 ring-border", f),
@@ -293,12 +293,12 @@ function L({ amount: a, amountColor: o = "text-warning", dueDate: c, customer: l
293
293
  }),
294
294
  /* @__PURE__ */ v(i, {
295
295
  tag: "h3",
296
- className: t("border-none pb-0 text-2xl tabular-nums tracking-tight", o),
296
+ className: t("border-none pb-0 text-2xl tabular-nums tracking-tight", s),
297
297
  children: a
298
298
  }),
299
299
  /* @__PURE__ */ y("div", {
300
300
  className: "mt-4 space-y-2",
301
- children: [/* @__PURE__ */ v(s, {
301
+ children: [/* @__PURE__ */ v(o, {
302
302
  label: m.dueDateLabel,
303
303
  value: /* @__PURE__ */ y("span", {
304
304
  className: "flex items-center gap-1.5",
@@ -309,7 +309,7 @@ function L({ amount: a, amountColor: o = "text-warning", dueDate: c, customer: l
309
309
  })]
310
310
  }),
311
311
  labelClassName: "text-xs"
312
- }), /* @__PURE__ */ v(s, {
312
+ }), /* @__PURE__ */ v(o, {
313
313
  label: m.customerLabel,
314
314
  value: l,
315
315
  labelClassName: "text-xs",