admin-ui-starter-kit 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1121) hide show
  1. package/.agents/skills/component-library-rules/SKILL.md +24 -0
  2. package/.agents/skills/component-library-rules/references/components/base__metadata-list.md +2 -2
  3. package/.agents/skills/component-library-rules/references/import-paths.md +27 -0
  4. package/AGENTS.md +8 -3
  5. package/INTEGRATION.md +33 -2
  6. package/PUBLISHING.md +3 -1
  7. package/README.md +33 -6
  8. package/dist/_shared/accordion-CztqyaIN.js +130 -0
  9. package/dist/_shared/accordion-CztqyaIN.js.map +1 -0
  10. package/dist/_shared/accordion-D5uTCLCB.cjs +2 -0
  11. package/dist/_shared/accordion-D5uTCLCB.cjs.map +1 -0
  12. package/dist/_shared/action-menu-Yrj6VzFS.js +96 -0
  13. package/dist/_shared/action-menu-Yrj6VzFS.js.map +1 -0
  14. package/dist/_shared/action-menu-eVP8GGlv.cjs +2 -0
  15. package/dist/_shared/action-menu-eVP8GGlv.cjs.map +1 -0
  16. package/dist/_shared/ai-artifact-DaHXJTKg.cjs +3 -0
  17. package/dist/_shared/ai-artifact-DaHXJTKg.cjs.map +1 -0
  18. package/dist/_shared/ai-artifact-DyLn3JAs.js +1068 -0
  19. package/dist/_shared/ai-artifact-DyLn3JAs.js.map +1 -0
  20. package/dist/_shared/alert-BVw4Mq6H.js +48 -0
  21. package/dist/_shared/alert-BVw4Mq6H.js.map +1 -0
  22. package/dist/_shared/alert-DXSlR9ja.cjs +2 -0
  23. package/dist/_shared/alert-DXSlR9ja.cjs.map +1 -0
  24. package/dist/_shared/avatar-CpBz9pTv.js +52 -0
  25. package/dist/_shared/avatar-CpBz9pTv.js.map +1 -0
  26. package/dist/_shared/avatar-dg20YFFs.cjs +2 -0
  27. package/dist/_shared/avatar-dg20YFFs.cjs.map +1 -0
  28. package/dist/_shared/badge-BVCh_hfL.js +108 -0
  29. package/dist/_shared/badge-BVCh_hfL.js.map +1 -0
  30. package/dist/_shared/badge-C49SSz-6.cjs +2 -0
  31. package/dist/_shared/badge-C49SSz-6.cjs.map +1 -0
  32. package/dist/_shared/breadcrumbs-Bo7j5Rhv.cjs +2 -0
  33. package/dist/_shared/breadcrumbs-Bo7j5Rhv.cjs.map +1 -0
  34. package/dist/_shared/breadcrumbs-Dc93fqqE.js +111 -0
  35. package/dist/_shared/breadcrumbs-Dc93fqqE.js.map +1 -0
  36. package/dist/_shared/button-2xglT7yf.cjs +2 -0
  37. package/dist/_shared/button-2xglT7yf.cjs.map +1 -0
  38. package/dist/_shared/button-ChCkwoOD.js +176 -0
  39. package/dist/_shared/button-ChCkwoOD.js.map +1 -0
  40. package/dist/_shared/button-D0nF99a9.cjs +2 -0
  41. package/dist/_shared/button-D0nF99a9.cjs.map +1 -0
  42. package/dist/_shared/button-DBR4QI9E.js +46 -0
  43. package/dist/_shared/button-DBR4QI9E.js.map +1 -0
  44. package/dist/_shared/buttons-Bcnt1md_.js +143 -0
  45. package/dist/_shared/buttons-Bcnt1md_.js.map +1 -0
  46. package/dist/_shared/buttons-km9xqXJv.cjs +2 -0
  47. package/dist/_shared/buttons-km9xqXJv.cjs.map +1 -0
  48. package/dist/_shared/card-radio-group-BGH93O5-.js +158 -0
  49. package/dist/_shared/card-radio-group-BGH93O5-.js.map +1 -0
  50. package/dist/_shared/card-radio-group-Vq741uhL.cjs +2 -0
  51. package/dist/_shared/card-radio-group-Vq741uhL.cjs.map +1 -0
  52. package/dist/_shared/combobox-BgXAxjU2.js +746 -0
  53. package/dist/_shared/combobox-BgXAxjU2.js.map +1 -0
  54. package/dist/_shared/combobox-DuIyh3xJ.cjs +2 -0
  55. package/dist/_shared/combobox-DuIyh3xJ.cjs.map +1 -0
  56. package/dist/_shared/command-BbiijN61.js +39 -0
  57. package/dist/_shared/command-BbiijN61.js.map +1 -0
  58. package/dist/_shared/command-D7zTvyBJ.cjs +2 -0
  59. package/dist/_shared/command-D7zTvyBJ.cjs.map +1 -0
  60. package/dist/_shared/command-DGNtTI-V.cjs +2 -0
  61. package/dist/_shared/command-DGNtTI-V.cjs.map +1 -0
  62. package/dist/_shared/command-jKbwFRtS.js +123 -0
  63. package/dist/_shared/command-jKbwFRtS.js.map +1 -0
  64. package/dist/_shared/comments-CNUsdwGW.cjs +2 -0
  65. package/dist/_shared/comments-CNUsdwGW.cjs.map +1 -0
  66. package/dist/_shared/comments-CvmS7zG3.js +945 -0
  67. package/dist/_shared/comments-CvmS7zG3.js.map +1 -0
  68. package/dist/_shared/containers-BFDv7cCV.cjs +2 -0
  69. package/dist/_shared/containers-BFDv7cCV.cjs.map +1 -0
  70. package/dist/_shared/containers-C1-A_2PT.js +19 -0
  71. package/dist/_shared/containers-C1-A_2PT.js.map +1 -0
  72. package/dist/_shared/content-container-CwqFnaI0.cjs +2 -0
  73. package/dist/_shared/content-container-CwqFnaI0.cjs.map +1 -0
  74. package/dist/_shared/content-container-D_3JGBSc.js +33 -0
  75. package/dist/_shared/content-container-D_3JGBSc.js.map +1 -0
  76. package/dist/_shared/copyable-CHhCGMfW.js +38 -0
  77. package/dist/_shared/copyable-CHhCGMfW.js.map +1 -0
  78. package/dist/_shared/copyable-ndaiocYq.cjs +2 -0
  79. package/dist/_shared/copyable-ndaiocYq.cjs.map +1 -0
  80. package/dist/_shared/date-picker-B8O_qbik.js +1353 -0
  81. package/dist/_shared/date-picker-B8O_qbik.js.map +1 -0
  82. package/dist/_shared/date-picker-BnOjyuKS.cjs +2 -0
  83. package/dist/_shared/date-picker-BnOjyuKS.cjs.map +1 -0
  84. package/dist/_shared/date-pickers-Cas9cPlj.js +330 -0
  85. package/dist/_shared/date-pickers-Cas9cPlj.js.map +1 -0
  86. package/dist/_shared/date-pickers-Dk-G3RMy.cjs +2 -0
  87. package/dist/_shared/date-pickers-Dk-G3RMy.cjs.map +1 -0
  88. package/dist/_shared/dialog-67GmkMLC.js +101 -0
  89. package/dist/_shared/dialog-67GmkMLC.js.map +1 -0
  90. package/dist/_shared/dialog-BF_4uAhE.cjs +2 -0
  91. package/dist/_shared/dialog-BF_4uAhE.cjs.map +1 -0
  92. package/dist/_shared/display-B9xVWboG.cjs +8 -0
  93. package/dist/_shared/display-B9xVWboG.cjs.map +1 -0
  94. package/dist/_shared/display-BM_GxDAo.js +1237 -0
  95. package/dist/_shared/display-BM_GxDAo.js.map +1 -0
  96. package/dist/_shared/dropdown-menu-4nxEBMnd.js +147 -0
  97. package/dist/_shared/dropdown-menu-4nxEBMnd.js.map +1 -0
  98. package/dist/_shared/dropdown-menu-DZlWHqWS.cjs +2 -0
  99. package/dist/_shared/dropdown-menu-DZlWHqWS.cjs.map +1 -0
  100. package/dist/_shared/form-field-BQlki-8s.js +319 -0
  101. package/dist/_shared/form-field-BQlki-8s.js.map +1 -0
  102. package/dist/_shared/form-field-DzpwVS99.cjs +2 -0
  103. package/dist/_shared/form-field-DzpwVS99.cjs.map +1 -0
  104. package/dist/_shared/form-sizing-CcbB-OHF.js +21 -0
  105. package/dist/_shared/form-sizing-CcbB-OHF.js.map +1 -0
  106. package/dist/_shared/form-sizing-Cw12UeI6.cjs +2 -0
  107. package/dist/_shared/form-sizing-Cw12UeI6.cjs.map +1 -0
  108. package/dist/_shared/format-B2AdSQVn.cjs +2 -0
  109. package/dist/_shared/format-B2AdSQVn.cjs.map +1 -0
  110. package/dist/_shared/format-CP65h1vK.js +48 -0
  111. package/dist/_shared/format-CP65h1vK.js.map +1 -0
  112. package/dist/_shared/forms-B8aaNG44.cjs +2 -0
  113. package/dist/_shared/forms-B8aaNG44.cjs.map +1 -0
  114. package/dist/_shared/forms-BusuTZZ2.js +3374 -0
  115. package/dist/_shared/forms-BusuTZZ2.js.map +1 -0
  116. package/dist/_shared/header-DWfOUjFL.cjs +2 -0
  117. package/dist/_shared/header-DWfOUjFL.cjs.map +1 -0
  118. package/dist/_shared/header-KpdoLtP9.js +369 -0
  119. package/dist/_shared/header-KpdoLtP9.js.map +1 -0
  120. package/dist/_shared/heading-BprqyzDs.js +39 -0
  121. package/dist/_shared/heading-BprqyzDs.js.map +1 -0
  122. package/dist/_shared/heading-mZc_jan1.cjs +2 -0
  123. package/dist/_shared/heading-mZc_jan1.cjs.map +1 -0
  124. package/dist/_shared/hooks-C-uWoRq5.cjs +2 -0
  125. package/dist/_shared/hooks-C-uWoRq5.cjs.map +1 -0
  126. package/dist/_shared/hooks-D5HJtvvP.js +118 -0
  127. package/dist/_shared/hooks-D5HJtvvP.js.map +1 -0
  128. package/dist/_shared/icon-badge-BBqDyAUz.cjs +2 -0
  129. package/dist/_shared/icon-badge-BBqDyAUz.cjs.map +1 -0
  130. package/dist/_shared/icon-badge-Bi63T-bj.js +52 -0
  131. package/dist/_shared/icon-badge-Bi63T-bj.js.map +1 -0
  132. package/dist/_shared/input-B2YXTHqz.cjs +2 -0
  133. package/dist/_shared/input-B2YXTHqz.cjs.map +1 -0
  134. package/dist/_shared/input-BJb10xb9.cjs +2 -0
  135. package/dist/_shared/input-BJb10xb9.cjs.map +1 -0
  136. package/dist/_shared/input-CZxP5Xgj.js +17 -0
  137. package/dist/_shared/input-CZxP5Xgj.js.map +1 -0
  138. package/dist/_shared/input-DQahu2sm.js +182 -0
  139. package/dist/_shared/input-DQahu2sm.js.map +1 -0
  140. package/dist/_shared/item-Cu5JbZyZ.js +224 -0
  141. package/dist/_shared/item-Cu5JbZyZ.js.map +1 -0
  142. package/dist/_shared/item-Cx_7QZ2o.cjs +2 -0
  143. package/dist/_shared/item-Cx_7QZ2o.cjs.map +1 -0
  144. package/dist/_shared/mentions-CS3rIhze.js +493 -0
  145. package/dist/_shared/mentions-CS3rIhze.js.map +1 -0
  146. package/dist/_shared/mentions-D7gnP3Nf.cjs +2 -0
  147. package/dist/_shared/mentions-D7gnP3Nf.cjs.map +1 -0
  148. package/dist/_shared/metadata-CRsVWE8Y.cjs +2 -0
  149. package/dist/_shared/metadata-CRsVWE8Y.cjs.map +1 -0
  150. package/dist/_shared/metadata-CfG0FdFZ.js +236 -0
  151. package/dist/_shared/metadata-CfG0FdFZ.js.map +1 -0
  152. package/dist/_shared/money-display-Bd0rkjc9.js +198 -0
  153. package/dist/_shared/money-display-Bd0rkjc9.js.map +1 -0
  154. package/dist/_shared/money-display-DSFft9Mi.cjs +2 -0
  155. package/dist/_shared/money-display-DSFft9Mi.cjs.map +1 -0
  156. package/dist/_shared/navigation-Do9k5Xh1.js +420 -0
  157. package/dist/_shared/navigation-Do9k5Xh1.js.map +1 -0
  158. package/dist/_shared/navigation-QAAD3HJd.cjs +2 -0
  159. package/dist/_shared/navigation-QAAD3HJd.cjs.map +1 -0
  160. package/dist/_shared/overlays-B8AH8fNv.js +633 -0
  161. package/dist/_shared/overlays-B8AH8fNv.js.map +1 -0
  162. package/dist/_shared/overlays-DOcoRy8k.cjs +2 -0
  163. package/dist/_shared/overlays-DOcoRy8k.cjs.map +1 -0
  164. package/dist/_shared/page-BPCeKX9X.js +263 -0
  165. package/dist/_shared/page-BPCeKX9X.js.map +1 -0
  166. package/dist/_shared/page-DMM32sxi.cjs +2 -0
  167. package/dist/_shared/page-DMM32sxi.cjs.map +1 -0
  168. package/dist/_shared/popover-B1f_EUQS.cjs +2 -0
  169. package/dist/_shared/popover-B1f_EUQS.cjs.map +1 -0
  170. package/dist/_shared/popover-CgRGcFk9.js +83 -0
  171. package/dist/_shared/popover-CgRGcFk9.js.map +1 -0
  172. package/dist/_shared/popover-menu-BEKIT3LR.cjs +2 -0
  173. package/dist/_shared/popover-menu-BEKIT3LR.cjs.map +1 -0
  174. package/dist/_shared/popover-menu-BHdHLEVL.js +95 -0
  175. package/dist/_shared/popover-menu-BHdHLEVL.js.map +1 -0
  176. package/dist/_shared/rich-text-editor-0uoIoYXU.js +608 -0
  177. package/dist/_shared/rich-text-editor-0uoIoYXU.js.map +1 -0
  178. package/dist/_shared/rich-text-editor-wTiARGuB.cjs +2 -0
  179. package/dist/_shared/rich-text-editor-wTiARGuB.cjs.map +1 -0
  180. package/dist/_shared/scroll-area-Bo17wtZD.cjs +2 -0
  181. package/dist/_shared/scroll-area-Bo17wtZD.cjs.map +1 -0
  182. package/dist/_shared/scroll-area-Cj-hmB5D.js +41 -0
  183. package/dist/_shared/scroll-area-Cj-hmB5D.js.map +1 -0
  184. package/dist/_shared/select-07RRiTWc.js +85 -0
  185. package/dist/_shared/select-07RRiTWc.js.map +1 -0
  186. package/dist/_shared/select-BfiU7a4n.cjs +2 -0
  187. package/dist/_shared/select-BfiU7a4n.cjs.map +1 -0
  188. package/dist/_shared/separator-CN9zAJfs.cjs +2 -0
  189. package/dist/_shared/separator-CN9zAJfs.cjs.map +1 -0
  190. package/dist/_shared/separator-DR0uUMKa.js +16 -0
  191. package/dist/_shared/separator-DR0uUMKa.js.map +1 -0
  192. package/dist/_shared/sheet-B5FoGJAZ.cjs +2 -0
  193. package/dist/_shared/sheet-B5FoGJAZ.cjs.map +1 -0
  194. package/dist/_shared/sheet-cUI8cypP.js +100 -0
  195. package/dist/_shared/sheet-cUI8cypP.js.map +1 -0
  196. package/dist/_shared/sidebar-Bq7yKLrG.cjs +2 -0
  197. package/dist/_shared/sidebar-Bq7yKLrG.cjs.map +1 -0
  198. package/dist/_shared/sidebar-Da20tCUc.cjs +2 -0
  199. package/dist/_shared/sidebar-Da20tCUc.cjs.map +1 -0
  200. package/dist/_shared/sidebar-Q6TYE8Ux.js +371 -0
  201. package/dist/_shared/sidebar-Q6TYE8Ux.js.map +1 -0
  202. package/dist/_shared/sidebar-WmnQ55YY.js +537 -0
  203. package/dist/_shared/sidebar-WmnQ55YY.js.map +1 -0
  204. package/dist/_shared/skeleton-B3HWEc6G.js +14 -0
  205. package/dist/_shared/skeleton-B3HWEc6G.js.map +1 -0
  206. package/dist/_shared/skeleton-Cz_l8-fc.cjs +2 -0
  207. package/dist/_shared/skeleton-Cz_l8-fc.cjs.map +1 -0
  208. package/dist/_shared/slot-BgnZtKR5.js +18 -0
  209. package/dist/_shared/slot-BgnZtKR5.js.map +1 -0
  210. package/dist/_shared/slot-Dac1ipUC.cjs +2 -0
  211. package/dist/_shared/slot-Dac1ipUC.cjs.map +1 -0
  212. package/dist/_shared/smart-card-Bm_VxYUG.cjs +2 -0
  213. package/dist/_shared/smart-card-Bm_VxYUG.cjs.map +1 -0
  214. package/dist/_shared/smart-card-MT6JjkoI.js +360 -0
  215. package/dist/_shared/smart-card-MT6JjkoI.js.map +1 -0
  216. package/dist/_shared/spinner-BQjxJ_Kx.js +67 -0
  217. package/dist/_shared/spinner-BQjxJ_Kx.js.map +1 -0
  218. package/dist/_shared/spinner-Dvaa6GUm.cjs +2 -0
  219. package/dist/_shared/spinner-Dvaa6GUm.cjs.map +1 -0
  220. package/dist/_shared/switch-C0yyhsXZ.js +51 -0
  221. package/dist/_shared/switch-C0yyhsXZ.js.map +1 -0
  222. package/dist/_shared/switch-DozkSQNn.cjs +2 -0
  223. package/dist/_shared/switch-DozkSQNn.cjs.map +1 -0
  224. package/dist/_shared/textarea-Cgl-FPwu.js +119 -0
  225. package/dist/_shared/textarea-Cgl-FPwu.js.map +1 -0
  226. package/dist/_shared/textarea-D8wC0XlZ.cjs +2 -0
  227. package/dist/_shared/textarea-D8wC0XlZ.cjs.map +1 -0
  228. package/dist/_shared/tooltip-Cws4BiPT.js +49 -0
  229. package/dist/_shared/tooltip-Cws4BiPT.js.map +1 -0
  230. package/dist/_shared/tooltip-DyUi-Tac.cjs +2 -0
  231. package/dist/_shared/tooltip-DyUi-Tac.cjs.map +1 -0
  232. package/dist/_shared/typography-BW7iZBx7.cjs +2 -0
  233. package/dist/_shared/typography-BW7iZBx7.cjs.map +1 -0
  234. package/dist/_shared/typography-a3hydyvI.js +102 -0
  235. package/dist/_shared/typography-a3hydyvI.js.map +1 -0
  236. package/dist/components/base/accordion/index.cjs +1 -1
  237. package/dist/components/base/accordion/index.js +1 -1
  238. package/dist/components/base/badge/index.cjs +1 -1
  239. package/dist/components/base/badge/index.js +1 -1
  240. package/dist/components/base/buttons/index.cjs +1 -1
  241. package/dist/components/base/buttons/index.js +2 -2
  242. package/dist/components/base/cards/index.cjs +1 -1
  243. package/dist/components/base/cards/index.js +1 -1
  244. package/dist/components/base/combobox/index.cjs +1 -1
  245. package/dist/components/base/combobox/index.js +1 -1
  246. package/dist/components/base/command/index.cjs +1 -1
  247. package/dist/components/base/command/index.js +2 -2
  248. package/dist/components/base/copyable/index.cjs +1 -1
  249. package/dist/components/base/copyable/index.js +1 -1
  250. package/dist/components/base/currency/index.cjs +1 -1
  251. package/dist/components/base/currency/index.js +1 -1
  252. package/dist/components/base/date-pickers/index.cjs +1 -1
  253. package/dist/components/base/date-pickers/index.js +2 -2
  254. package/dist/components/base/display/index.cjs +1 -1
  255. package/dist/components/base/display/index.js +12 -11
  256. package/dist/components/base/display/metadata/index.cjs +1 -0
  257. package/dist/components/base/display/metadata/index.js +2 -0
  258. package/dist/components/base/event-calendar/index.cjs +1 -1
  259. package/dist/components/base/event-calendar/index.cjs.map +1 -1
  260. package/dist/components/base/event-calendar/index.js +4 -4
  261. package/dist/components/base/forms/index.cjs +1 -1
  262. package/dist/components/base/forms/index.js +6 -6
  263. package/dist/components/base/item/index.cjs +1 -1
  264. package/dist/components/base/item/index.js +1 -1
  265. package/dist/components/base/map/index.cjs +1 -1
  266. package/dist/components/base/map/index.js +3 -3
  267. package/dist/components/base/navigation/index.cjs +1 -1
  268. package/dist/components/base/navigation/index.js +4 -4
  269. package/dist/components/base/popover/index.cjs +1 -1
  270. package/dist/components/base/popover/index.js +1 -1
  271. package/dist/components/base/popover-menu/index.cjs +1 -1
  272. package/dist/components/base/popover-menu/index.js +1 -1
  273. package/dist/components/base/sheet/index.cjs +1 -1
  274. package/dist/components/base/sheet/index.js +1 -1
  275. package/dist/components/base/sidebar/index.cjs +1 -1
  276. package/dist/components/base/sidebar/index.js +1 -1
  277. package/dist/components/base/spinner/index.cjs +1 -1
  278. package/dist/components/base/spinner/index.js +1 -1
  279. package/dist/components/base/table/index.cjs +1 -1
  280. package/dist/components/base/table/index.js +7 -7
  281. package/dist/components/composed/admin/index.cjs +1 -1
  282. package/dist/components/composed/admin/index.cjs.map +1 -1
  283. package/dist/components/composed/admin/index.js +12 -12
  284. package/dist/components/composed/ai/index.cjs +1 -1
  285. package/dist/components/composed/ai/index.js +9 -9
  286. package/dist/components/composed/analytics/index.cjs +1 -1
  287. package/dist/components/composed/analytics/index.cjs.map +1 -1
  288. package/dist/components/composed/analytics/index.js +4 -4
  289. package/dist/components/composed/cards/index.cjs +1 -1
  290. package/dist/components/composed/cards/index.cjs.map +1 -1
  291. package/dist/components/composed/cards/index.js +8 -8
  292. package/dist/components/composed/commerce/index.cjs +1 -1
  293. package/dist/components/composed/commerce/index.cjs.map +1 -1
  294. package/dist/components/composed/commerce/index.js +9 -9
  295. package/dist/components/composed/dark-surfaces/index.cjs +1 -1
  296. package/dist/components/composed/dark-surfaces/index.cjs.map +1 -1
  297. package/dist/components/composed/dark-surfaces/index.js +6 -6
  298. package/dist/components/composed/data-display/index.cjs +1 -1
  299. package/dist/components/composed/data-display/index.cjs.map +1 -1
  300. package/dist/components/composed/data-display/index.js +7 -7
  301. package/dist/components/composed/navigation/index.cjs +1 -1
  302. package/dist/components/composed/navigation/index.js +4 -4
  303. package/dist/components/composed/onboarding/index.cjs +1 -1
  304. package/dist/components/composed/onboarding/index.js +2 -2
  305. package/dist/components/composed/timelines/index.cjs +1 -1
  306. package/dist/components/composed/timelines/index.js +2 -2
  307. package/dist/components/features/activities/index.cjs +1 -1
  308. package/dist/components/features/activities/index.js +4 -4
  309. package/dist/components/features/ai-chat/index.cjs +1 -1
  310. package/dist/components/features/ai-chat/index.cjs.map +1 -1
  311. package/dist/components/features/ai-chat/index.js +6 -6
  312. package/dist/components/features/card/index.cjs +1 -1
  313. package/dist/components/features/card/index.js +3 -3
  314. package/dist/components/features/comments/index.cjs +1 -1
  315. package/dist/components/features/comments/index.js +2 -2
  316. package/dist/components/features/event-log/index.cjs +1 -1
  317. package/dist/components/features/event-log/index.js +3 -3
  318. package/dist/components/features/filters/index.cjs +1 -1
  319. package/dist/components/features/filters/index.js +9 -9
  320. package/dist/components/features/global-search/index.cjs +1 -1
  321. package/dist/components/features/global-search/index.js +2 -2
  322. package/dist/components/features/kanban/index.cjs +1 -1
  323. package/dist/components/features/kanban/index.js +1 -1
  324. package/dist/components/features/mentions/index.cjs +1 -1
  325. package/dist/components/features/mentions/index.js +1 -1
  326. package/dist/components/features/overlays/index.cjs +1 -1
  327. package/dist/components/features/overlays/index.js +1 -1
  328. package/dist/components/features/rich-text-editor/index.cjs +1 -1
  329. package/dist/components/features/rich-text-editor/index.js +1 -1
  330. package/dist/components/features/suggestions/index.cjs +1 -1
  331. package/dist/components/features/suggestions/index.js +1 -1
  332. package/dist/components/features/sync/index.cjs +1 -1
  333. package/dist/components/features/sync/index.js +2 -2
  334. package/dist/components/layout/containers/index.cjs +1 -1
  335. package/dist/components/layout/containers/index.js +2 -2
  336. package/dist/components/layout/header/index.cjs +1 -1
  337. package/dist/components/layout/header/index.js +1 -1
  338. package/dist/components/layout/hooks/index.cjs +1 -1
  339. package/dist/components/layout/hooks/index.js +1 -1
  340. package/dist/components/layout/index.cjs +1 -1
  341. package/dist/components/layout/index.js +6 -6
  342. package/dist/components/layout/page/index.cjs +1 -1
  343. package/dist/components/layout/page/index.js +1 -1
  344. package/dist/components/layout/sidebar/index.cjs +1 -1
  345. package/dist/components/layout/sidebar/index.js +2 -2
  346. package/dist/components/typography/index.cjs +1 -1
  347. package/dist/components/typography/index.js +3 -2
  348. package/dist/showcase/assets/AreaChart-CJ57G5Ub.js +6 -0
  349. package/dist/showcase/assets/CSPContext-BA7DfnCI.js +1 -0
  350. package/dist/showcase/assets/CompositeItem-PwzgE4va.js +1 -0
  351. package/dist/showcase/assets/CompositeRoot-Du4CMlK7.js +1 -0
  352. package/dist/showcase/assets/DialogTrigger-FkENgwo6.js +1 -0
  353. package/dist/showcase/assets/FormContext-ChygLayp.js +1 -0
  354. package/dist/showcase/assets/PreviewLayout-z6vpJJGt.js +1 -0
  355. package/dist/showcase/assets/RadioGroup-CcDmbxOw.js +1 -0
  356. package/dist/showcase/assets/Separator-Dk4eN76U.js +1 -0
  357. package/dist/showcase/assets/ToolbarRootContext-D_KAA5hZ.js +1 -0
  358. package/dist/showcase/assets/accordion-dQszzfmw.js +172 -0
  359. package/dist/showcase/assets/accordion-variants-Dp4wxic-.js +1 -0
  360. package/dist/showcase/assets/action-menu-CBi2Eiy0.js +1 -0
  361. package/dist/showcase/assets/activities-DoXsgP4G.js +501 -0
  362. package/dist/showcase/assets/activities-feed-card-xz5FtkOm.js +1 -0
  363. package/dist/showcase/assets/admin-CxklUqAG.js +80 -0
  364. package/dist/showcase/assets/ai-artifact-DkhUdEbM.js +2 -0
  365. package/dist/showcase/assets/ai-chat-B6PuqkEu.js +568 -0
  366. package/dist/showcase/assets/ai-elements-D_rpj_ds.js +379 -0
  367. package/dist/showcase/assets/ai-new-CUPrAbOK.js +167 -0
  368. package/dist/showcase/assets/ai-tool-call-CEr-dGVx.js +1 -0
  369. package/dist/showcase/assets/ai-zxF_msJF.js +41 -0
  370. package/dist/showcase/assets/alert-771BE3Ny.js +59 -0
  371. package/dist/showcase/assets/alert-CG42DAlX.js +1 -0
  372. package/dist/showcase/assets/api-key-list-D6jUN7Fq.js +73 -0
  373. package/dist/showcase/assets/arrow-down-CUoXUyN1.js +1 -0
  374. package/dist/showcase/assets/arrow-left-Cdq69X6h.js +1 -0
  375. package/dist/showcase/assets/arrow-right-i25q9L2H.js +1 -0
  376. package/dist/showcase/assets/arrow-up-pnezegnF.js +1 -0
  377. package/dist/showcase/assets/arrow-up-right-CK3XnMah.js +1 -0
  378. package/dist/showcase/assets/avatar-LPmQqZQv.js +1 -0
  379. package/dist/showcase/assets/avatar-ZVFIQouy.js +57 -0
  380. package/dist/showcase/assets/badge-DK4bsgZC.js +28 -0
  381. package/dist/showcase/assets/badge-check-Cw5gkVcG.js +1 -0
  382. package/dist/showcase/assets/bell-BvJELoaV.js +1 -0
  383. package/dist/showcase/assets/bot-DRj6sdSR.js +1 -0
  384. package/dist/showcase/assets/box-BNND3M2m.js +1 -0
  385. package/dist/showcase/assets/brain-Cy3o-12l.js +1 -0
  386. package/dist/showcase/assets/brand-DvipEpFn.js +40 -0
  387. package/dist/showcase/assets/breadcrumb-B-LNuOyv.js +1 -0
  388. package/dist/showcase/assets/breadcrumb-Lzpc0yo4.js +52 -0
  389. package/dist/showcase/assets/breadcrumbs-DD6msKFZ.js +1 -0
  390. package/dist/showcase/assets/briefcase-LcAwoEmu.js +1 -0
  391. package/dist/showcase/assets/button-CuwcGzk1.js +44 -0
  392. package/dist/showcase/assets/button-group-CAImjDrl.js +1 -0
  393. package/dist/showcase/assets/buttons-DTjNHCMl.js +259 -0
  394. package/dist/showcase/assets/calendar-B1zW0q6I.js +1 -0
  395. package/dist/showcase/assets/calendar-Dlv72ytt.js +1 -0
  396. package/dist/showcase/assets/calendar-ls2A08Pn.js +16 -0
  397. package/dist/showcase/assets/card-BhtkM1BT.js +1 -0
  398. package/dist/showcase/assets/cards-BRpRXzGk.js +328 -0
  399. package/dist/showcase/assets/chart-column-BpQkEi1H.js +1 -0
  400. package/dist/showcase/assets/chevron-down-DyObdfSb.js +1 -0
  401. package/dist/showcase/assets/chevron-left-T7dHNxYM.js +1 -0
  402. package/dist/showcase/assets/chevron-right-D_EcqHpT.js +1 -0
  403. package/dist/showcase/assets/chevron-up-B38ivdGO.js +1 -0
  404. package/dist/showcase/assets/chevrons-up-down-SdRARzoq.js +1 -0
  405. package/dist/showcase/assets/circle-BrCPAmDA.js +1 -0
  406. package/dist/showcase/assets/circle-alert-DdhzLPY_.js +1 -0
  407. package/dist/showcase/assets/circle-check-DlA6zidQ.js +1 -0
  408. package/dist/showcase/assets/circle-check-big-DFGJANQF.js +1 -0
  409. package/dist/showcase/assets/circle-dot-BKmnVUqM.js +1 -0
  410. package/dist/showcase/assets/circle-question-mark-BNREvgVC.js +1 -0
  411. package/dist/showcase/assets/circle-x-C45QjHEs.js +1 -0
  412. package/dist/showcase/assets/clock-D1nKQzQo.js +1 -0
  413. package/dist/showcase/assets/code-xml-B8N3GRSu.js +1 -0
  414. package/dist/showcase/assets/collapsible-4TfcWyNs.js +1 -0
  415. package/dist/showcase/assets/collapsible-CKbZtvTj.js +27 -0
  416. package/dist/showcase/assets/combobox-DTdGPaU0.js +622 -0
  417. package/dist/showcase/assets/command-DymTXwL1.js +1 -0
  418. package/dist/showcase/assets/command-ksVIHQKJ.js +45 -0
  419. package/dist/showcase/assets/comment-composer-DC9oS1Yy.js +1 -0
  420. package/dist/showcase/assets/comment-item-CAmKnJa7.js +1 -0
  421. package/dist/showcase/assets/comments-Benk-2mV.js +349 -0
  422. package/dist/showcase/assets/commerce-Qz-mq8mQ.js +78 -0
  423. package/dist/showcase/assets/commerce-extras-CQRc3Bna.js +179 -0
  424. package/dist/showcase/assets/composite-DBDXLPyz.js +1 -0
  425. package/dist/showcase/assets/contact-card-DkL2nI3r.js +65 -0
  426. package/dist/showcase/assets/content-container-mRm6oJEa.js +1 -0
  427. package/dist/showcase/assets/copyable-DmLlmwzy.js +96 -0
  428. package/dist/showcase/assets/course-card-CJJoeZj9.js +113 -0
  429. package/dist/showcase/assets/cpu-BXJnF2Xy.js +1 -0
  430. package/dist/showcase/assets/credit-card-BQK3KKb2.js +1 -0
  431. package/dist/showcase/assets/currency-DBPUh8ee.js +149 -0
  432. package/dist/showcase/assets/dark-surfaces-LpPuIeYy.js +90 -0
  433. package/dist/showcase/assets/database-BZerpzGE.js +1 -0
  434. package/dist/showcase/assets/date-block-iiHUpbNX.js +1 -0
  435. package/dist/showcase/assets/date-picker-BQeBGL7T.js +1 -0
  436. package/dist/showcase/assets/date-pickers-CKcUEMMF.js +110 -0
  437. package/dist/showcase/assets/dense-info-DATmxRU8.js +106 -0
  438. package/dist/showcase/assets/dialog-Bqu5KDYH.js +1 -0
  439. package/dist/showcase/assets/display-Bj7uPXD4.js +392 -0
  440. package/dist/showcase/assets/dist-QK7JxeYv.js +1 -0
  441. package/dist/showcase/assets/dollar-sign-DFZs6vfz.js +1 -0
  442. package/dist/showcase/assets/download-5oGw_WbW.js +1 -0
  443. package/dist/showcase/assets/dropdown-menu-1CJgYn0S.js +1 -0
  444. package/dist/showcase/assets/dropzone-Co1uhsDn.js +1 -0
  445. package/dist/showcase/assets/ellipsis-cKRcvuyL.js +1 -0
  446. package/dist/showcase/assets/ellipsis-vertical-B1RErEkj.js +1 -0
  447. package/dist/showcase/assets/empty-Y2-4nCBr.js +1 -0
  448. package/dist/showcase/assets/empty-item-USa6xcUv.js +49 -0
  449. package/dist/showcase/assets/empty-state-DfhZ9AT5.js +188 -0
  450. package/dist/showcase/assets/enhanced-activities-DmAPVUSu.js +359 -0
  451. package/dist/showcase/assets/esm-BeGQ_ZTM.js +2 -0
  452. package/dist/showcase/assets/event-calendar-D-jGrrZS.js +138 -0
  453. package/dist/showcase/assets/event-log-tA_i4eR9.js +326 -0
  454. package/dist/showcase/assets/example-6phCHGsN.js +1 -0
  455. package/dist/showcase/assets/external-link-BuVHkCy0.js +1 -0
  456. package/dist/showcase/assets/eye-DC5HfGm6.js +1 -0
  457. package/dist/showcase/assets/feature-announcement-DwvxLytd.js +34 -0
  458. package/dist/showcase/assets/file-D-xM4vLy.js +1 -0
  459. package/dist/showcase/assets/file-text-tmG5vNbr.js +1 -0
  460. package/dist/showcase/assets/filters-CrGRXmq6.js +78 -0
  461. package/dist/showcase/assets/flag-CWrEtkY5.js +1 -0
  462. package/dist/showcase/assets/folder-open-Br-x1pjP.js +1 -0
  463. package/dist/showcase/assets/form-sizing-Bb5hiM45.js +1 -0
  464. package/dist/showcase/assets/format-D_ETCyg4.js +1 -0
  465. package/dist/showcase/assets/forms-B_MkQ3rm.js +790 -0
  466. package/dist/showcase/assets/generic-CdmsyXV3.js +1 -0
  467. package/dist/showcase/assets/getPseudoElementBounds-CZnCbCFP.js +1 -0
  468. package/dist/showcase/assets/gift-NkuklfU2.js +1 -0
  469. package/dist/showcase/assets/giftcard-cards-BAvevZ0i.js +85 -0
  470. package/dist/showcase/assets/git-branch-B_CBqPeO.js +1 -0
  471. package/dist/showcase/assets/global-search-D9teAbPe.js +90 -0
  472. package/dist/showcase/assets/globe-gzw45GU2.js +1 -0
  473. package/dist/showcase/assets/gradient-card-Xk2r7R5H.js +58 -0
  474. package/dist/showcase/assets/header-notifications-_aZCpE5A.js +1 -0
  475. package/dist/showcase/assets/heart-CEMKbRaZ.js +1 -0
  476. package/dist/showcase/assets/house-BlGXAcMH.js +1 -0
  477. package/dist/showcase/assets/icon-badge-z6N9reH_.js +1 -0
  478. package/dist/showcase/assets/image-B8mzmVBr.js +1 -0
  479. package/dist/showcase/assets/inbox-qdSnP4UV.js +1 -0
  480. package/dist/showcase/assets/index-B4ubXfly.js +10 -0
  481. package/dist/showcase/assets/inertValue-D5Q8cLku.js +1 -0
  482. package/dist/showcase/assets/info-DBvvNjc_.js +1 -0
  483. package/dist/showcase/assets/inline-stat-Bm1zVT8D.js +1 -0
  484. package/dist/showcase/assets/input-CBQR0aeX.js +1 -0
  485. package/dist/showcase/assets/input-OrUzpI55.js +1 -0
  486. package/dist/showcase/assets/input-group-DhqOen2N.js +47 -0
  487. package/dist/showcase/assets/input-group-l8xa5nUq.js +1 -0
  488. package/dist/showcase/assets/inputs-DbiJ0qy2.js +49 -0
  489. package/dist/showcase/assets/invoice-header-C6youIbL.js +36 -0
  490. package/dist/showcase/assets/invoice-items-g6dgryF-.js +36 -0
  491. package/dist/showcase/assets/invoice-mini-0iWhufpt.js +14 -0
  492. package/dist/showcase/assets/invoice-table-Bvdh3rRq.js +30 -0
  493. package/dist/showcase/assets/isSameDay-BpZEtJe8.js +1 -0
  494. package/dist/showcase/assets/isToday-F0CS28oK.js +1 -0
  495. package/dist/showcase/assets/italic-CJOEwjdc.js +1 -0
  496. package/dist/showcase/assets/item-BiMm1PPB.js +1 -0
  497. package/dist/showcase/assets/item-CN0cwdj_.js +1 -0
  498. package/dist/showcase/assets/item-DNqEUYLT.js +117 -0
  499. package/dist/showcase/assets/kanban-DxePEUiQ.js +175 -0
  500. package/dist/showcase/assets/label-Dx4WO-fg.js +1 -0
  501. package/dist/showcase/assets/layout-containers-DDl8rG8S.js +96 -0
  502. package/dist/showcase/assets/layout-header-Bu6IcDWu.js +170 -0
  503. package/dist/showcase/assets/layout-page-D-88Qnoy.js +122 -0
  504. package/dist/showcase/assets/layout-sidebar-Ctft10pk.js +224 -0
  505. package/dist/showcase/assets/layout-users-DtbZduBG.js +104 -0
  506. package/dist/showcase/assets/lib-D9BoOYUd.js +1 -0
  507. package/dist/showcase/assets/lock-CHurDI0n.js +1 -0
  508. package/dist/showcase/assets/mail-DZ1o1RLW.js +1 -0
  509. package/dist/showcase/assets/map-C8xiyT9X.js +124 -0
  510. package/dist/showcase/assets/map-pin-CAKaoYod.js +1 -0
  511. package/dist/showcase/assets/menus-C6mnp636.js +89 -0
  512. package/dist/showcase/assets/message-square-Zo5J_zU1.js +1 -0
  513. package/dist/showcase/assets/metadata-list-W83-UMhc.js +278 -0
  514. package/dist/showcase/assets/metric-BSvxidIX.js +1 -0
  515. package/dist/showcase/assets/metric-grid-Dtqx_3Lg.js +1 -0
  516. package/dist/showcase/assets/metric-trend-chip-mtvcJ_M9.js +1 -0
  517. package/dist/showcase/assets/metrics-analytics-bar-DQbyss7i.js +44 -0
  518. package/dist/showcase/assets/metrics-analytics-cards-CEBu5Uw0.js +77 -0
  519. package/dist/showcase/assets/metrics-comparison-Bs-R6v4y.js +76 -0
  520. package/dist/showcase/assets/metrics-heatmap-BKHWH8sM.js +27 -0
  521. package/dist/showcase/assets/metrics-inline-badge-BxVn0Y2p.js +17 -0
  522. package/dist/showcase/assets/metrics-kpi-row-DtACYEds.js +31 -0
  523. package/dist/showcase/assets/metrics-micro-grid-BkwUGOUR.js +42 -0
  524. package/dist/showcase/assets/metrics-overview-BAtrlzsI.js +192 -0
  525. package/dist/showcase/assets/metrics-stat-cards-iCRCNyHY.js +54 -0
  526. package/dist/showcase/assets/minus-C6eBW-2t.js +1 -0
  527. package/dist/showcase/assets/money-display-DjGRJ16l.js +1 -0
  528. package/dist/showcase/assets/month-year-picker-DTDebPqf.js +1 -0
  529. package/dist/showcase/assets/navigation-BrG8Chig.js +86 -0
  530. package/dist/showcase/assets/navigation-CfXQJbyM.js +230 -0
  531. package/dist/showcase/assets/navigation-extras-D_gzLlZ5.js +43 -0
  532. package/dist/showcase/assets/onboarding-checklist-1EerUwAo.js +119 -0
  533. package/dist/showcase/assets/overlays-2AB9-S1Z.js +88 -0
  534. package/dist/showcase/assets/overlays-CYt9o3Xq.js +393 -0
  535. package/dist/showcase/assets/package-BJMP-Fcr.js +1 -0
  536. package/dist/showcase/assets/page-action-button-BZxJ0X1j.js +1 -0
  537. package/dist/showcase/assets/page-header-B_rqHJhe.js +1 -0
  538. package/dist/showcase/assets/pagination-BHiQvvka.js +1 -0
  539. package/dist/showcase/assets/pagination-Dq0GruQd.js +42 -0
  540. package/dist/showcase/assets/paperclip-BMYKrUQo.js +1 -0
  541. package/dist/showcase/assets/pencil-BJ3VS_FO.js +1 -0
  542. package/dist/showcase/assets/phone-CsRIyvep.js +1 -0
  543. package/dist/showcase/assets/plus-D2JuXYLg.js +1 -0
  544. package/dist/showcase/assets/popover-DNT9755r.js +1 -0
  545. package/dist/showcase/assets/popover-KvGgcPNg.js +1 -0
  546. package/dist/showcase/assets/popover-menu-CJx30R65.js +1 -0
  547. package/dist/showcase/assets/progress-B7WuXcJR.js +1 -0
  548. package/dist/showcase/assets/progress-CweCSAUv.js +18 -0
  549. package/dist/showcase/assets/props-table-uDY4eIzt.js +1 -0
  550. package/dist/showcase/assets/quote-DAyyfzQd.js +1 -0
  551. package/dist/showcase/assets/receipt-C0mMZGbF.js +1 -0
  552. package/dist/showcase/assets/refresh-cw-X06JbXb-.js +1 -0
  553. package/dist/showcase/assets/resolveValueLabel-Bks7UDko.js +1 -0
  554. package/dist/showcase/assets/rich-text-editor-QJsb-qIe.js +124 -0
  555. package/dist/showcase/assets/rich-text-editor-h07VBNI9.js +141 -0
  556. package/dist/showcase/assets/rotate-ccw-D84bdX_x.js +1 -0
  557. package/dist/showcase/assets/scroll-area-0rT06pXZ.js +1 -0
  558. package/dist/showcase/assets/scroll-area-YXwdzGpN.js +32 -0
  559. package/dist/showcase/assets/select-BoWQDtUf.js +1 -0
  560. package/dist/showcase/assets/send-DJsk3cr1.js +1 -0
  561. package/dist/showcase/assets/separator-CLSnRcJa.js +28 -0
  562. package/dist/showcase/assets/separator-DWv-twD-.js +1 -0
  563. package/dist/showcase/assets/settings-Cb2MsAmN.js +1 -0
  564. package/dist/showcase/assets/sheet-Dn1-MYus.js +1 -0
  565. package/dist/showcase/assets/shield-DwLjF5ch.js +1 -0
  566. package/dist/showcase/assets/shield-alert-D8i6gzMK.js +1 -0
  567. package/dist/showcase/assets/shield-check-D5YRSBIz.js +1 -0
  568. package/dist/showcase/assets/shopping-bag-BqlAP4vn.js +1 -0
  569. package/dist/showcase/assets/sidebar.context-BAp_pBEB.js +1 -0
  570. package/dist/showcase/assets/skeleton-CeNPp4hr.js +1 -0
  571. package/dist/showcase/assets/skeleton-QPsnM_NR.js +29 -0
  572. package/dist/showcase/assets/smart-card-BisUbLPt.js +1 -0
  573. package/dist/showcase/assets/sonner-B7GzbBK2.js +22 -0
  574. package/dist/showcase/assets/sortable.esm-BDcEOHT7.js +5 -0
  575. package/dist/showcase/assets/sparkles-CF9P5Tqh.js +1 -0
  576. package/dist/showcase/assets/spinner-BeamEyJd.js +49 -0
  577. package/dist/showcase/assets/spinner-DoYBfalR.js +1 -0
  578. package/dist/showcase/assets/spinner-UsLsOYzn.js +30 -0
  579. package/dist/showcase/assets/square-pen-BGTVdnt1.js +1 -0
  580. package/dist/showcase/assets/stacked-avatars-BWfVX1Ov.js +1 -0
  581. package/dist/showcase/assets/star-NsPNO9gR.js +1 -0
  582. package/dist/showcase/assets/startOfDay-zJBpxLuW.js +1 -0
  583. package/dist/showcase/assets/styles-DA7a7hVy.js +1 -0
  584. package/dist/showcase/assets/switch-C62S4U2o.js +1 -0
  585. package/dist/showcase/assets/switch-CYQcinJZ.js +1 -0
  586. package/dist/showcase/assets/table-w4IABkpa.js +1 -0
  587. package/dist/showcase/assets/table-xgB63UrY.js +390 -0
  588. package/dist/showcase/assets/tabs-BFTEaTXj.js +19 -0
  589. package/dist/showcase/assets/tabs-oMJn9Ujq.js +1 -0
  590. package/dist/showcase/assets/text-button-BgcutPuu.js +1 -0
  591. package/dist/showcase/assets/text-link-CS9thOWL.js +1 -0
  592. package/dist/showcase/assets/textarea-BOBx4EM6.js +1 -0
  593. package/dist/showcase/assets/textarea-CTzYZZqa.js +1 -0
  594. package/dist/showcase/assets/timelines-CK07mEBK.js +186 -0
  595. package/dist/showcase/assets/toggle-group-CSPdPT6G.js +1 -0
  596. package/dist/showcase/assets/toggles-DDSdl-gA.js +71 -0
  597. package/dist/showcase/assets/toggles-group-Y2BdKEFB.js +32 -0
  598. package/dist/showcase/assets/trash-2-C-FAptQP.js +1 -0
  599. package/dist/showcase/assets/trending-up-BmLhdF_w.js +1 -0
  600. package/dist/showcase/assets/truck-pZdUS_as.js +1 -0
  601. package/dist/showcase/assets/typography-CnBH2z7f.js +214 -0
  602. package/dist/showcase/assets/ui-badge-Cl6INRO5.js +28 -0
  603. package/dist/showcase/assets/ui-card-B5P-thNu.js +30 -0
  604. package/dist/showcase/assets/ui-table-B32RILKk.js +42 -0
  605. package/dist/showcase/assets/upload-tray-mu6bR2ZE.js +138 -0
  606. package/dist/showcase/assets/useAnchoredPopupScrollLock-CzDaXxmM.js +1 -0
  607. package/dist/showcase/assets/useCollapsiblePanel-B0DZvDFu.js +1 -0
  608. package/dist/showcase/assets/useCompositeItem-BVIVLT9X.js +1 -0
  609. package/dist/showcase/assets/useCompositeListItem-JEMeTFPx.js +1 -0
  610. package/dist/showcase/assets/useControlled-ZjqBfPCn.js +1 -0
  611. package/dist/showcase/assets/useLabelableId-D8CZq8Bm.js +1 -0
  612. package/dist/showcase/assets/useOpenInteractionType-CopGCf3q.js +1 -0
  613. package/dist/showcase/assets/useRender-zuKv6JQF.js +1 -0
  614. package/dist/showcase/assets/useRole-08KeyiD3.js +1 -0
  615. package/dist/showcase/assets/useTriggerFocusGuards-DEuz5CGe.js +1 -0
  616. package/dist/showcase/assets/useValueChanged-BxFi_qyj.js +1 -0
  617. package/dist/showcase/assets/user-Bgc2t2_e.js +1 -0
  618. package/dist/showcase/assets/user-plus-F_TfagnP.js +1 -0
  619. package/dist/showcase/assets/users-B7G4yTCR.js +1 -0
  620. package/dist/showcase/assets/vendor-profile-BTQmsKM6.js +37 -0
  621. package/dist/showcase/assets/wrench-BdzICmjR.js +1 -0
  622. package/dist/showcase/assets/x-B156Wr-5.js +1 -0
  623. package/dist/showcase/assets/zap-B3iByjNV.js +1 -0
  624. package/dist/showcase/index.html +1 -1
  625. package/package.json +254 -19
  626. package/dist/_shared/accordion-7rwpgJ1k.cjs +0 -2
  627. package/dist/_shared/accordion-7rwpgJ1k.cjs.map +0 -1
  628. package/dist/_shared/accordion-DcduCEIo.js +0 -130
  629. package/dist/_shared/accordion-DcduCEIo.js.map +0 -1
  630. package/dist/_shared/action-menu-D0u-q0q-.cjs +0 -2
  631. package/dist/_shared/action-menu-D0u-q0q-.cjs.map +0 -1
  632. package/dist/_shared/action-menu-DUBXdReV.js +0 -96
  633. package/dist/_shared/action-menu-DUBXdReV.js.map +0 -1
  634. package/dist/_shared/ai-artifact-C3R0god0.cjs +0 -3
  635. package/dist/_shared/ai-artifact-C3R0god0.cjs.map +0 -1
  636. package/dist/_shared/ai-artifact-DMjQv_Si.js +0 -1068
  637. package/dist/_shared/ai-artifact-DMjQv_Si.js.map +0 -1
  638. package/dist/_shared/alert-B2cuJGAA.cjs +0 -2
  639. package/dist/_shared/alert-B2cuJGAA.cjs.map +0 -1
  640. package/dist/_shared/alert-BKUmOI2e.js +0 -48
  641. package/dist/_shared/alert-BKUmOI2e.js.map +0 -1
  642. package/dist/_shared/avatar-BcYcRORH.cjs +0 -2
  643. package/dist/_shared/avatar-BcYcRORH.cjs.map +0 -1
  644. package/dist/_shared/avatar-CNzG6jSZ.js +0 -52
  645. package/dist/_shared/avatar-CNzG6jSZ.js.map +0 -1
  646. package/dist/_shared/badge-BbUN6W7E.js +0 -108
  647. package/dist/_shared/badge-BbUN6W7E.js.map +0 -1
  648. package/dist/_shared/badge-BjtDcU1M.cjs +0 -2
  649. package/dist/_shared/badge-BjtDcU1M.cjs.map +0 -1
  650. package/dist/_shared/breadcrumbs-DctwTld5.js +0 -111
  651. package/dist/_shared/breadcrumbs-DctwTld5.js.map +0 -1
  652. package/dist/_shared/breadcrumbs-m0-gCdNj.cjs +0 -2
  653. package/dist/_shared/breadcrumbs-m0-gCdNj.cjs.map +0 -1
  654. package/dist/_shared/button-BCABTFLE.js +0 -46
  655. package/dist/_shared/button-BCABTFLE.js.map +0 -1
  656. package/dist/_shared/button-Ck2qS42n.js +0 -176
  657. package/dist/_shared/button-Ck2qS42n.js.map +0 -1
  658. package/dist/_shared/button-DjJ-mDI1.cjs +0 -2
  659. package/dist/_shared/button-DjJ-mDI1.cjs.map +0 -1
  660. package/dist/_shared/button-DjacsNTg.cjs +0 -2
  661. package/dist/_shared/button-DjacsNTg.cjs.map +0 -1
  662. package/dist/_shared/buttons-BVnjQ-uE.js +0 -143
  663. package/dist/_shared/buttons-BVnjQ-uE.js.map +0 -1
  664. package/dist/_shared/buttons-BdY6igTr.cjs +0 -2
  665. package/dist/_shared/buttons-BdY6igTr.cjs.map +0 -1
  666. package/dist/_shared/card-radio-group--GP1xrz_.js +0 -158
  667. package/dist/_shared/card-radio-group--GP1xrz_.js.map +0 -1
  668. package/dist/_shared/card-radio-group-DnQsWozr.cjs +0 -2
  669. package/dist/_shared/card-radio-group-DnQsWozr.cjs.map +0 -1
  670. package/dist/_shared/combobox-DBrRE1Dr.cjs +0 -2
  671. package/dist/_shared/combobox-DBrRE1Dr.cjs.map +0 -1
  672. package/dist/_shared/combobox-DYztEJaw.js +0 -746
  673. package/dist/_shared/combobox-DYztEJaw.js.map +0 -1
  674. package/dist/_shared/command-COvgXQ8r.cjs +0 -2
  675. package/dist/_shared/command-COvgXQ8r.cjs.map +0 -1
  676. package/dist/_shared/command-CvZ6Emb8.js +0 -39
  677. package/dist/_shared/command-CvZ6Emb8.js.map +0 -1
  678. package/dist/_shared/command-DTFQIUVG.cjs +0 -2
  679. package/dist/_shared/command-DTFQIUVG.cjs.map +0 -1
  680. package/dist/_shared/command-Sq8XbHbA.js +0 -123
  681. package/dist/_shared/command-Sq8XbHbA.js.map +0 -1
  682. package/dist/_shared/comments-BOFU1GYY.js +0 -945
  683. package/dist/_shared/comments-BOFU1GYY.js.map +0 -1
  684. package/dist/_shared/comments-BbTYFzx6.cjs +0 -2
  685. package/dist/_shared/comments-BbTYFzx6.cjs.map +0 -1
  686. package/dist/_shared/containers-BthqdOhA.cjs +0 -2
  687. package/dist/_shared/containers-BthqdOhA.cjs.map +0 -1
  688. package/dist/_shared/containers-CD2xs1nk.js +0 -19
  689. package/dist/_shared/containers-CD2xs1nk.js.map +0 -1
  690. package/dist/_shared/content-container-CFfYbWoa.js +0 -33
  691. package/dist/_shared/content-container-CFfYbWoa.js.map +0 -1
  692. package/dist/_shared/content-container-CReiVugL.cjs +0 -2
  693. package/dist/_shared/content-container-CReiVugL.cjs.map +0 -1
  694. package/dist/_shared/copyable-CweQ72QI.cjs +0 -2
  695. package/dist/_shared/copyable-CweQ72QI.cjs.map +0 -1
  696. package/dist/_shared/copyable-JgsTp6ev.js +0 -38
  697. package/dist/_shared/copyable-JgsTp6ev.js.map +0 -1
  698. package/dist/_shared/date-picker-DI4b-SeE.cjs +0 -2
  699. package/dist/_shared/date-picker-DI4b-SeE.cjs.map +0 -1
  700. package/dist/_shared/date-picker-DTazvODY.js +0 -1352
  701. package/dist/_shared/date-picker-DTazvODY.js.map +0 -1
  702. package/dist/_shared/date-pickers-CLzuzmuc.cjs +0 -2
  703. package/dist/_shared/date-pickers-CLzuzmuc.cjs.map +0 -1
  704. package/dist/_shared/date-pickers-CWPxP3zy.js +0 -330
  705. package/dist/_shared/date-pickers-CWPxP3zy.js.map +0 -1
  706. package/dist/_shared/dialog-2MJmaj_d.js +0 -101
  707. package/dist/_shared/dialog-2MJmaj_d.js.map +0 -1
  708. package/dist/_shared/dialog-KKD0i1T8.cjs +0 -2
  709. package/dist/_shared/dialog-KKD0i1T8.cjs.map +0 -1
  710. package/dist/_shared/display-BCy1Ti7T.cjs +0 -8
  711. package/dist/_shared/display-BCy1Ti7T.cjs.map +0 -1
  712. package/dist/_shared/display-DUpkE2aS.js +0 -1462
  713. package/dist/_shared/display-DUpkE2aS.js.map +0 -1
  714. package/dist/_shared/dropdown-menu-BebBffUH.cjs +0 -2
  715. package/dist/_shared/dropdown-menu-BebBffUH.cjs.map +0 -1
  716. package/dist/_shared/dropdown-menu-xdGEynC8.js +0 -147
  717. package/dist/_shared/dropdown-menu-xdGEynC8.js.map +0 -1
  718. package/dist/_shared/form-field-rOj3cm6C.js +0 -319
  719. package/dist/_shared/form-field-rOj3cm6C.js.map +0 -1
  720. package/dist/_shared/form-field-rcyIIHjR.cjs +0 -2
  721. package/dist/_shared/form-field-rcyIIHjR.cjs.map +0 -1
  722. package/dist/_shared/form-sizing--bs_xPe2.cjs +0 -2
  723. package/dist/_shared/form-sizing--bs_xPe2.cjs.map +0 -1
  724. package/dist/_shared/form-sizing-CkKcs5fi.js +0 -21
  725. package/dist/_shared/form-sizing-CkKcs5fi.js.map +0 -1
  726. package/dist/_shared/format-BlVEsPyT.js +0 -48
  727. package/dist/_shared/format-BlVEsPyT.js.map +0 -1
  728. package/dist/_shared/format-DYVtSA2I.cjs +0 -2
  729. package/dist/_shared/format-DYVtSA2I.cjs.map +0 -1
  730. package/dist/_shared/forms-BAVsxxRk.js +0 -3374
  731. package/dist/_shared/forms-BAVsxxRk.js.map +0 -1
  732. package/dist/_shared/forms-DaZ3LsYc.cjs +0 -2
  733. package/dist/_shared/forms-DaZ3LsYc.cjs.map +0 -1
  734. package/dist/_shared/header-BtTMsQ5P.cjs +0 -2
  735. package/dist/_shared/header-BtTMsQ5P.cjs.map +0 -1
  736. package/dist/_shared/header-DpW4UWV6.js +0 -369
  737. package/dist/_shared/header-DpW4UWV6.js.map +0 -1
  738. package/dist/_shared/hooks-Bsm917yh.cjs +0 -2
  739. package/dist/_shared/hooks-Bsm917yh.cjs.map +0 -1
  740. package/dist/_shared/hooks-CX-SICd4.js +0 -118
  741. package/dist/_shared/hooks-CX-SICd4.js.map +0 -1
  742. package/dist/_shared/icon-badge-DGKpbo9_.cjs +0 -2
  743. package/dist/_shared/icon-badge-DGKpbo9_.cjs.map +0 -1
  744. package/dist/_shared/icon-badge-DoClA_9q.js +0 -52
  745. package/dist/_shared/icon-badge-DoClA_9q.js.map +0 -1
  746. package/dist/_shared/input-BXt-YtVs.cjs +0 -2
  747. package/dist/_shared/input-BXt-YtVs.cjs.map +0 -1
  748. package/dist/_shared/input-Bx4LeLhn.js +0 -17
  749. package/dist/_shared/input-Bx4LeLhn.js.map +0 -1
  750. package/dist/_shared/input-ChZGIhtS.cjs +0 -2
  751. package/dist/_shared/input-ChZGIhtS.cjs.map +0 -1
  752. package/dist/_shared/input-Cwv1-5jt.js +0 -182
  753. package/dist/_shared/input-Cwv1-5jt.js.map +0 -1
  754. package/dist/_shared/item-BmTYKzEb.js +0 -224
  755. package/dist/_shared/item-BmTYKzEb.js.map +0 -1
  756. package/dist/_shared/item-BtR-bz96.cjs +0 -2
  757. package/dist/_shared/item-BtR-bz96.cjs.map +0 -1
  758. package/dist/_shared/mentions-DVCjaO_z.cjs +0 -2
  759. package/dist/_shared/mentions-DVCjaO_z.cjs.map +0 -1
  760. package/dist/_shared/mentions-DzG8mX5H.js +0 -493
  761. package/dist/_shared/mentions-DzG8mX5H.js.map +0 -1
  762. package/dist/_shared/money-display-B5oxCs_0.cjs +0 -2
  763. package/dist/_shared/money-display-B5oxCs_0.cjs.map +0 -1
  764. package/dist/_shared/money-display-C0wI02ou.js +0 -198
  765. package/dist/_shared/money-display-C0wI02ou.js.map +0 -1
  766. package/dist/_shared/navigation-BA2nsTgU.cjs +0 -2
  767. package/dist/_shared/navigation-BA2nsTgU.cjs.map +0 -1
  768. package/dist/_shared/navigation-DHyaf-RZ.js +0 -420
  769. package/dist/_shared/navigation-DHyaf-RZ.js.map +0 -1
  770. package/dist/_shared/overlays-Kl6Gp6WR.js +0 -633
  771. package/dist/_shared/overlays-Kl6Gp6WR.js.map +0 -1
  772. package/dist/_shared/overlays-W6j-Pe1L.cjs +0 -2
  773. package/dist/_shared/overlays-W6j-Pe1L.cjs.map +0 -1
  774. package/dist/_shared/page-DROZhtWT.js +0 -263
  775. package/dist/_shared/page-DROZhtWT.js.map +0 -1
  776. package/dist/_shared/page-lh9Rcx_d.cjs +0 -2
  777. package/dist/_shared/page-lh9Rcx_d.cjs.map +0 -1
  778. package/dist/_shared/popover-BTEwjJZS.cjs +0 -2
  779. package/dist/_shared/popover-BTEwjJZS.cjs.map +0 -1
  780. package/dist/_shared/popover-CF9VWt-l.js +0 -83
  781. package/dist/_shared/popover-CF9VWt-l.js.map +0 -1
  782. package/dist/_shared/popover-menu-BYesl29w.js +0 -95
  783. package/dist/_shared/popover-menu-BYesl29w.js.map +0 -1
  784. package/dist/_shared/popover-menu-DF9sWz61.cjs +0 -2
  785. package/dist/_shared/popover-menu-DF9sWz61.cjs.map +0 -1
  786. package/dist/_shared/rich-text-editor-UZghkgsh.cjs +0 -2
  787. package/dist/_shared/rich-text-editor-UZghkgsh.cjs.map +0 -1
  788. package/dist/_shared/rich-text-editor-fUeuK-rY.js +0 -608
  789. package/dist/_shared/rich-text-editor-fUeuK-rY.js.map +0 -1
  790. package/dist/_shared/scroll-area-XJLcCczs.js +0 -41
  791. package/dist/_shared/scroll-area-XJLcCczs.js.map +0 -1
  792. package/dist/_shared/scroll-area-y8ZJoS97.cjs +0 -2
  793. package/dist/_shared/scroll-area-y8ZJoS97.cjs.map +0 -1
  794. package/dist/_shared/select-D8MYF4f7.js +0 -85
  795. package/dist/_shared/select-D8MYF4f7.js.map +0 -1
  796. package/dist/_shared/select-DxAiUfpM.cjs +0 -2
  797. package/dist/_shared/select-DxAiUfpM.cjs.map +0 -1
  798. package/dist/_shared/separator-BazqiQ9s.js +0 -16
  799. package/dist/_shared/separator-BazqiQ9s.js.map +0 -1
  800. package/dist/_shared/separator-DSkXMOXq.cjs +0 -2
  801. package/dist/_shared/separator-DSkXMOXq.cjs.map +0 -1
  802. package/dist/_shared/sheet-7iHOs-IU.js +0 -100
  803. package/dist/_shared/sheet-7iHOs-IU.js.map +0 -1
  804. package/dist/_shared/sheet-qKtoyxgi.cjs +0 -2
  805. package/dist/_shared/sheet-qKtoyxgi.cjs.map +0 -1
  806. package/dist/_shared/sidebar-CaTUJ3t-.js +0 -537
  807. package/dist/_shared/sidebar-CaTUJ3t-.js.map +0 -1
  808. package/dist/_shared/sidebar-DVjfsm-f.cjs +0 -2
  809. package/dist/_shared/sidebar-DVjfsm-f.cjs.map +0 -1
  810. package/dist/_shared/sidebar-aV5DVAVg.js +0 -371
  811. package/dist/_shared/sidebar-aV5DVAVg.js.map +0 -1
  812. package/dist/_shared/sidebar-mL0jSJ8u.cjs +0 -2
  813. package/dist/_shared/sidebar-mL0jSJ8u.cjs.map +0 -1
  814. package/dist/_shared/skeleton-Bwv_j9jJ.cjs +0 -2
  815. package/dist/_shared/skeleton-Bwv_j9jJ.cjs.map +0 -1
  816. package/dist/_shared/skeleton-DyKa-Ed-.js +0 -14
  817. package/dist/_shared/skeleton-DyKa-Ed-.js.map +0 -1
  818. package/dist/_shared/slot-ClIPTht1.cjs +0 -2
  819. package/dist/_shared/slot-ClIPTht1.cjs.map +0 -1
  820. package/dist/_shared/slot-CrS_VEVl.js +0 -18
  821. package/dist/_shared/slot-CrS_VEVl.js.map +0 -1
  822. package/dist/_shared/smart-card-Ddsjvf7r.cjs +0 -2
  823. package/dist/_shared/smart-card-Ddsjvf7r.cjs.map +0 -1
  824. package/dist/_shared/smart-card-hJ01usWt.js +0 -360
  825. package/dist/_shared/smart-card-hJ01usWt.js.map +0 -1
  826. package/dist/_shared/spinner-D-pcMBt1.js +0 -67
  827. package/dist/_shared/spinner-D-pcMBt1.js.map +0 -1
  828. package/dist/_shared/spinner-zbmhn0vE.cjs +0 -2
  829. package/dist/_shared/spinner-zbmhn0vE.cjs.map +0 -1
  830. package/dist/_shared/switch-C5J37LMI.cjs +0 -2
  831. package/dist/_shared/switch-C5J37LMI.cjs.map +0 -1
  832. package/dist/_shared/switch-ClGgHcEb.js +0 -51
  833. package/dist/_shared/switch-ClGgHcEb.js.map +0 -1
  834. package/dist/_shared/textarea-DeISZfHw.js +0 -119
  835. package/dist/_shared/textarea-DeISZfHw.js.map +0 -1
  836. package/dist/_shared/textarea-iR9txrty.cjs +0 -2
  837. package/dist/_shared/textarea-iR9txrty.cjs.map +0 -1
  838. package/dist/_shared/tooltip-CEqxHWxQ.js +0 -49
  839. package/dist/_shared/tooltip-CEqxHWxQ.js.map +0 -1
  840. package/dist/_shared/tooltip-DPv0LGr9.cjs +0 -2
  841. package/dist/_shared/tooltip-DPv0LGr9.cjs.map +0 -1
  842. package/dist/_shared/typography-BtPQBvSm.js +0 -135
  843. package/dist/_shared/typography-BtPQBvSm.js.map +0 -1
  844. package/dist/_shared/typography-DClleVWi.cjs +0 -2
  845. package/dist/_shared/typography-DClleVWi.cjs.map +0 -1
  846. package/dist/showcase/assets/AreaChart-D-RqNtqG.js +0 -6
  847. package/dist/showcase/assets/CSPContext-t69BXyB7.js +0 -1
  848. package/dist/showcase/assets/CompositeItem-DHNLgEeV.js +0 -1
  849. package/dist/showcase/assets/CompositeRoot-xq_0ZFev.js +0 -1
  850. package/dist/showcase/assets/DialogTrigger-Cl7n_3xX.js +0 -1
  851. package/dist/showcase/assets/FormContext-CXdwDz7F.js +0 -1
  852. package/dist/showcase/assets/PreviewLayout-BHemtKEf.js +0 -1
  853. package/dist/showcase/assets/RadioGroup-DXAt4VZN.js +0 -1
  854. package/dist/showcase/assets/Separator-C9vXwWmZ.js +0 -1
  855. package/dist/showcase/assets/ToolbarRootContext-iF4ctnIz.js +0 -1
  856. package/dist/showcase/assets/accordion-DzkNgNcB.js +0 -172
  857. package/dist/showcase/assets/accordion-variants-DP5-oxLe.js +0 -1
  858. package/dist/showcase/assets/action-menu-CyA2e9TF.js +0 -1
  859. package/dist/showcase/assets/activities-Dt-dO5ew.js +0 -501
  860. package/dist/showcase/assets/activities-feed-card-DZdFekXl.js +0 -1
  861. package/dist/showcase/assets/admin-C2SeJmE7.js +0 -80
  862. package/dist/showcase/assets/ai-Cwo0h_Xn.js +0 -41
  863. package/dist/showcase/assets/ai-artifact-3UJofyU5.js +0 -2
  864. package/dist/showcase/assets/ai-chat-CrFtG_Vg.js +0 -568
  865. package/dist/showcase/assets/ai-elements-iJ15Y7pS.js +0 -379
  866. package/dist/showcase/assets/ai-new-DuznZydd.js +0 -167
  867. package/dist/showcase/assets/ai-tool-call-CTcGGAQU.js +0 -1
  868. package/dist/showcase/assets/alert-CUGGckOX.js +0 -1
  869. package/dist/showcase/assets/alert-tWped3Sw.js +0 -59
  870. package/dist/showcase/assets/api-key-list-Q5LAqzMn.js +0 -73
  871. package/dist/showcase/assets/arrow-down-CfwCPcHL.js +0 -1
  872. package/dist/showcase/assets/arrow-left-BKx9qNX6.js +0 -1
  873. package/dist/showcase/assets/arrow-right-DlEpbqEk.js +0 -1
  874. package/dist/showcase/assets/arrow-up-BYQ4F9L1.js +0 -1
  875. package/dist/showcase/assets/arrow-up-right-C8r6vYfE.js +0 -1
  876. package/dist/showcase/assets/avatar-BuZ3zTbH.js +0 -57
  877. package/dist/showcase/assets/avatar-DR2mqPpY.js +0 -1
  878. package/dist/showcase/assets/badge-D1HLfP93.js +0 -28
  879. package/dist/showcase/assets/badge-check-oP2z_95u.js +0 -1
  880. package/dist/showcase/assets/bell-BTX2D-ES.js +0 -1
  881. package/dist/showcase/assets/bot-CKh5XgUG.js +0 -1
  882. package/dist/showcase/assets/box-F1uaZ6iw.js +0 -1
  883. package/dist/showcase/assets/brain-dD_ppLUa.js +0 -1
  884. package/dist/showcase/assets/brand-zisZOFKf.js +0 -40
  885. package/dist/showcase/assets/breadcrumb-C7vv0L8K.js +0 -52
  886. package/dist/showcase/assets/breadcrumb-fay5sLba.js +0 -1
  887. package/dist/showcase/assets/breadcrumbs-DklRXepp.js +0 -1
  888. package/dist/showcase/assets/briefcase-D9M4aNmi.js +0 -1
  889. package/dist/showcase/assets/button-DbhXfR1N.js +0 -44
  890. package/dist/showcase/assets/button-group-BpdhyMif.js +0 -1
  891. package/dist/showcase/assets/buttons-XexbmUtN.js +0 -259
  892. package/dist/showcase/assets/calendar-BADJgjpI.js +0 -16
  893. package/dist/showcase/assets/calendar-Djh3xLVx.js +0 -1
  894. package/dist/showcase/assets/calendar-dWZ2-0gU.js +0 -1
  895. package/dist/showcase/assets/card-BUSAPPkx.js +0 -1
  896. package/dist/showcase/assets/cards-DHBPe01w.js +0 -328
  897. package/dist/showcase/assets/chart-column-6l5wIZ0h.js +0 -1
  898. package/dist/showcase/assets/chevron-down-at2vrt1V.js +0 -1
  899. package/dist/showcase/assets/chevron-left-DIs3WYNO.js +0 -1
  900. package/dist/showcase/assets/chevron-right-BNy0Or0x.js +0 -1
  901. package/dist/showcase/assets/chevron-up-CX7619BJ.js +0 -1
  902. package/dist/showcase/assets/chevrons-up-down-Be6eciau.js +0 -1
  903. package/dist/showcase/assets/circle-C0Yd1DDS.js +0 -1
  904. package/dist/showcase/assets/circle-alert-DfQp_X3_.js +0 -1
  905. package/dist/showcase/assets/circle-check-BkqQe1tv.js +0 -1
  906. package/dist/showcase/assets/circle-check-big-BXxHUhuc.js +0 -1
  907. package/dist/showcase/assets/circle-dot-HeRgxZxN.js +0 -1
  908. package/dist/showcase/assets/circle-question-mark-BgS4fb6N.js +0 -1
  909. package/dist/showcase/assets/circle-x-CMzwDsaf.js +0 -1
  910. package/dist/showcase/assets/clock-ynCzs_rR.js +0 -1
  911. package/dist/showcase/assets/code-xml-B8aVstrJ.js +0 -1
  912. package/dist/showcase/assets/collapsible-C8CKdiRn.js +0 -27
  913. package/dist/showcase/assets/collapsible-u43HxDHB.js +0 -1
  914. package/dist/showcase/assets/combobox-D-6ff0VG.js +0 -622
  915. package/dist/showcase/assets/command-BsHudlBe.js +0 -1
  916. package/dist/showcase/assets/command-DZqmBolX.js +0 -45
  917. package/dist/showcase/assets/comment-composer-OnxlkC5y.js +0 -1
  918. package/dist/showcase/assets/comment-item-DmZ1AJ2Y.js +0 -1
  919. package/dist/showcase/assets/comments-BjIVksjE.js +0 -349
  920. package/dist/showcase/assets/commerce-3T1GxvrA.js +0 -78
  921. package/dist/showcase/assets/commerce-extras-CYv_uRQR.js +0 -179
  922. package/dist/showcase/assets/composite-mol0-2zZ.js +0 -1
  923. package/dist/showcase/assets/contact-card-CWAANJqn.js +0 -65
  924. package/dist/showcase/assets/content-container-D3Phw6h8.js +0 -1
  925. package/dist/showcase/assets/copyable-BdzUH3U3.js +0 -96
  926. package/dist/showcase/assets/course-card-Cb6Y2vJ6.js +0 -113
  927. package/dist/showcase/assets/cpu-CRrekbGQ.js +0 -1
  928. package/dist/showcase/assets/credit-card--5vg7bQy.js +0 -1
  929. package/dist/showcase/assets/currency-VuqnKj_Y.js +0 -149
  930. package/dist/showcase/assets/dark-surfaces-DEyBimFz.js +0 -90
  931. package/dist/showcase/assets/database-Bnvw0wVV.js +0 -1
  932. package/dist/showcase/assets/date-block-IhoCVl_d.js +0 -1
  933. package/dist/showcase/assets/date-picker-DnJpsnaF.js +0 -1
  934. package/dist/showcase/assets/date-pickers-CEbieq-R.js +0 -110
  935. package/dist/showcase/assets/dense-info-B04QmrOd.js +0 -106
  936. package/dist/showcase/assets/dialog-DotEO3IO.js +0 -1
  937. package/dist/showcase/assets/display-hK7Dtm-B.js +0 -392
  938. package/dist/showcase/assets/dist-DQgGKvzA.js +0 -1
  939. package/dist/showcase/assets/dollar-sign-gJtl-XaL.js +0 -1
  940. package/dist/showcase/assets/download-CMrNgeil.js +0 -1
  941. package/dist/showcase/assets/dropdown-menu-Cqv6D7Sb.js +0 -1
  942. package/dist/showcase/assets/dropzone-v69fWHZJ.js +0 -1
  943. package/dist/showcase/assets/ellipsis-CgqPlt6Z.js +0 -1
  944. package/dist/showcase/assets/ellipsis-vertical-CiJqC0n2.js +0 -1
  945. package/dist/showcase/assets/empty-DYHzk-Gb.js +0 -1
  946. package/dist/showcase/assets/empty-item-CTwvC_3M.js +0 -49
  947. package/dist/showcase/assets/empty-state-eUgJ4h41.js +0 -188
  948. package/dist/showcase/assets/enhanced-activities-XU2u5gO6.js +0 -359
  949. package/dist/showcase/assets/esm-B7xAMXnv.js +0 -2
  950. package/dist/showcase/assets/event-calendar-D2rjpzq1.js +0 -138
  951. package/dist/showcase/assets/event-log-BxER62Ds.js +0 -326
  952. package/dist/showcase/assets/example-DPfw-R7_.js +0 -1
  953. package/dist/showcase/assets/external-link-DJNGkjZ0.js +0 -1
  954. package/dist/showcase/assets/eye-BQU3UqWi.js +0 -1
  955. package/dist/showcase/assets/feature-announcement-CjGQEODB.js +0 -34
  956. package/dist/showcase/assets/file-DBpbC8g-.js +0 -1
  957. package/dist/showcase/assets/file-text-DokBif5V.js +0 -1
  958. package/dist/showcase/assets/filters-DM2olMKy.js +0 -78
  959. package/dist/showcase/assets/flag-hAuZbHU1.js +0 -1
  960. package/dist/showcase/assets/folder-open-DqubQ0ts.js +0 -1
  961. package/dist/showcase/assets/form-sizing-CfbZF8Ja.js +0 -1
  962. package/dist/showcase/assets/format-gCABLair.js +0 -1
  963. package/dist/showcase/assets/forms-FsAT0C-I.js +0 -790
  964. package/dist/showcase/assets/generic-BUuo7j09.js +0 -1
  965. package/dist/showcase/assets/getPseudoElementBounds-l8uxcPNL.js +0 -1
  966. package/dist/showcase/assets/gift-CS7Tg3kD.js +0 -1
  967. package/dist/showcase/assets/giftcard-cards-h1ffLs9F.js +0 -85
  968. package/dist/showcase/assets/git-branch-D4-6vv6t.js +0 -1
  969. package/dist/showcase/assets/global-search-BUyhhsQv.js +0 -90
  970. package/dist/showcase/assets/globe-CqLYhUfl.js +0 -1
  971. package/dist/showcase/assets/gradient-card-Bwr9OLIL.js +0 -58
  972. package/dist/showcase/assets/header-notifications-BWla1yhM.js +0 -1
  973. package/dist/showcase/assets/heart-DfZtXfIP.js +0 -1
  974. package/dist/showcase/assets/house-DhIReDt8.js +0 -1
  975. package/dist/showcase/assets/icon-badge-BgRFYZEc.js +0 -1
  976. package/dist/showcase/assets/image-D_eNEZWQ.js +0 -1
  977. package/dist/showcase/assets/inbox-5sFkO7gC.js +0 -1
  978. package/dist/showcase/assets/index-B-Z7p0So.js +0 -10
  979. package/dist/showcase/assets/inertValue-NU_Amr-x.js +0 -1
  980. package/dist/showcase/assets/info-DyB6KH3Z.js +0 -1
  981. package/dist/showcase/assets/inline-stat-D2aaM1Vt.js +0 -1
  982. package/dist/showcase/assets/input-BS64kyoq.js +0 -1
  983. package/dist/showcase/assets/input-DWLyniGt.js +0 -1
  984. package/dist/showcase/assets/input-group-BS8j5Eek.js +0 -47
  985. package/dist/showcase/assets/input-group-B_E_3EGS.js +0 -1
  986. package/dist/showcase/assets/inputs-DOQ2foig.js +0 -49
  987. package/dist/showcase/assets/invoice-header-C2-uQE_s.js +0 -36
  988. package/dist/showcase/assets/invoice-items-BUunRJqA.js +0 -36
  989. package/dist/showcase/assets/invoice-mini-BrLMrzN6.js +0 -14
  990. package/dist/showcase/assets/invoice-table-CaB9Z8jI.js +0 -30
  991. package/dist/showcase/assets/isSameDay-rwvIyLOL.js +0 -1
  992. package/dist/showcase/assets/isToday-CIAzBrb5.js +0 -1
  993. package/dist/showcase/assets/italic-B02a4PdD.js +0 -1
  994. package/dist/showcase/assets/item-C-0RObvI.js +0 -117
  995. package/dist/showcase/assets/item-CCu0Ufaq.js +0 -1
  996. package/dist/showcase/assets/item-DF4m_56j.js +0 -1
  997. package/dist/showcase/assets/kanban-BgW23a7P.js +0 -175
  998. package/dist/showcase/assets/label-MdV7pglj.js +0 -1
  999. package/dist/showcase/assets/layout-containers-nKVReEJB.js +0 -96
  1000. package/dist/showcase/assets/layout-header-CKyxHHPC.js +0 -170
  1001. package/dist/showcase/assets/layout-page-ClD2yMnK.js +0 -122
  1002. package/dist/showcase/assets/layout-sidebar-jdQnYDiT.js +0 -224
  1003. package/dist/showcase/assets/layout-users-Cv849xnU.js +0 -104
  1004. package/dist/showcase/assets/lib-BHW4JERQ.js +0 -1
  1005. package/dist/showcase/assets/lock-B8bfl9sZ.js +0 -1
  1006. package/dist/showcase/assets/mail-DmOBTX4I.js +0 -1
  1007. package/dist/showcase/assets/map-ButgRl8f.js +0 -124
  1008. package/dist/showcase/assets/map-pin-o3egisLq.js +0 -1
  1009. package/dist/showcase/assets/menus-DdXgYKVA.js +0 -89
  1010. package/dist/showcase/assets/message-square-Bl6P4TA0.js +0 -1
  1011. package/dist/showcase/assets/metadata-list-aXo96h_U.js +0 -278
  1012. package/dist/showcase/assets/metric-BLHKuZtE.js +0 -1
  1013. package/dist/showcase/assets/metric-grid-6Dpj5eV3.js +0 -1
  1014. package/dist/showcase/assets/metric-trend-chip-m389ipmG.js +0 -1
  1015. package/dist/showcase/assets/metrics-analytics-bar-B-1IUlHf.js +0 -44
  1016. package/dist/showcase/assets/metrics-analytics-cards-B8tvK_RB.js +0 -77
  1017. package/dist/showcase/assets/metrics-comparison-DKJ7Js3F.js +0 -76
  1018. package/dist/showcase/assets/metrics-heatmap-BlRnJoI0.js +0 -27
  1019. package/dist/showcase/assets/metrics-inline-badge-COI7f64X.js +0 -17
  1020. package/dist/showcase/assets/metrics-kpi-row-LRfmKhsy.js +0 -31
  1021. package/dist/showcase/assets/metrics-micro-grid-DmqIQVVR.js +0 -42
  1022. package/dist/showcase/assets/metrics-overview-Dbf5RM2k.js +0 -192
  1023. package/dist/showcase/assets/metrics-stat-cards-D5oevQvv.js +0 -54
  1024. package/dist/showcase/assets/minus-D-jmUi0G.js +0 -1
  1025. package/dist/showcase/assets/money-display-C__61373.js +0 -1
  1026. package/dist/showcase/assets/month-year-picker-BfBQePUY.js +0 -1
  1027. package/dist/showcase/assets/navigation-DUAe-sQV.js +0 -86
  1028. package/dist/showcase/assets/navigation-extras-itSAf6QT.js +0 -43
  1029. package/dist/showcase/assets/navigation-fAOvwIlP.js +0 -230
  1030. package/dist/showcase/assets/onboarding-checklist-1gmzk3_J.js +0 -119
  1031. package/dist/showcase/assets/overlays-BMTBOIEI.js +0 -88
  1032. package/dist/showcase/assets/overlays-Lu16yJWM.js +0 -393
  1033. package/dist/showcase/assets/package-BIa1hPVQ.js +0 -1
  1034. package/dist/showcase/assets/page-action-button-C5NiQHnP.js +0 -1
  1035. package/dist/showcase/assets/page-header-Cwf9DuhD.js +0 -1
  1036. package/dist/showcase/assets/pagination-9iSNmdCx.js +0 -1
  1037. package/dist/showcase/assets/pagination-MjniF-7j.js +0 -42
  1038. package/dist/showcase/assets/paperclip-CaNLUOIA.js +0 -1
  1039. package/dist/showcase/assets/pencil-DTLGPoc_.js +0 -1
  1040. package/dist/showcase/assets/phone-XvU6LndA.js +0 -1
  1041. package/dist/showcase/assets/plus-BDSCn8ol.js +0 -1
  1042. package/dist/showcase/assets/popover-CvhuubS6.js +0 -1
  1043. package/dist/showcase/assets/popover-DUQqLZN2.js +0 -1
  1044. package/dist/showcase/assets/popover-menu-DVGBuFpL.js +0 -1
  1045. package/dist/showcase/assets/progress-BQopCRpV.js +0 -1
  1046. package/dist/showcase/assets/progress-CvSUR260.js +0 -18
  1047. package/dist/showcase/assets/props-table-BzUnIcv-.js +0 -1
  1048. package/dist/showcase/assets/quote-D55lkoXn.js +0 -1
  1049. package/dist/showcase/assets/receipt-D3ilhl9U.js +0 -1
  1050. package/dist/showcase/assets/refresh-cw-Csl2LQ4l.js +0 -1
  1051. package/dist/showcase/assets/resolveValueLabel-CM5i142y.js +0 -1
  1052. package/dist/showcase/assets/rich-text-editor-Bz7jWvPv.js +0 -124
  1053. package/dist/showcase/assets/rich-text-editor-DWKFpgNI.js +0 -141
  1054. package/dist/showcase/assets/rotate-ccw-BnkpK7eq.js +0 -1
  1055. package/dist/showcase/assets/scroll-area-BTVLd58j.js +0 -1
  1056. package/dist/showcase/assets/scroll-area-CgFEDepJ.js +0 -32
  1057. package/dist/showcase/assets/select-B7-tZDlG.js +0 -1
  1058. package/dist/showcase/assets/send-BhjEdZ06.js +0 -1
  1059. package/dist/showcase/assets/separator-CJayjKGP.js +0 -28
  1060. package/dist/showcase/assets/separator-CZ_sPWQj.js +0 -1
  1061. package/dist/showcase/assets/settings-Duj7gAZe.js +0 -1
  1062. package/dist/showcase/assets/sheet-BMabZ_Gj.js +0 -1
  1063. package/dist/showcase/assets/shield-C22sWOf4.js +0 -1
  1064. package/dist/showcase/assets/shield-alert-DgZ6UO46.js +0 -1
  1065. package/dist/showcase/assets/shield-check-jGSgmijm.js +0 -1
  1066. package/dist/showcase/assets/shopping-bag-Cd09Ga6D.js +0 -1
  1067. package/dist/showcase/assets/sidebar.context-CXTHS3vn.js +0 -1
  1068. package/dist/showcase/assets/skeleton-Dmp4eC1A.js +0 -1
  1069. package/dist/showcase/assets/skeleton-FLNbc7QP.js +0 -29
  1070. package/dist/showcase/assets/smart-card-50WN9sCI.js +0 -1
  1071. package/dist/showcase/assets/sonner-DR_DYpqb.js +0 -22
  1072. package/dist/showcase/assets/sortable.esm-C_l8_Iqt.js +0 -5
  1073. package/dist/showcase/assets/sparkles-C-fyahzv.js +0 -1
  1074. package/dist/showcase/assets/spinner-B8jgVQNj.js +0 -30
  1075. package/dist/showcase/assets/spinner-C4zPRpI0.js +0 -49
  1076. package/dist/showcase/assets/spinner-DFjHsQlR.js +0 -1
  1077. package/dist/showcase/assets/square-pen-Dp7lCfI3.js +0 -1
  1078. package/dist/showcase/assets/stacked-avatars-CTckbUiW.js +0 -1
  1079. package/dist/showcase/assets/star-l00ivfkD.js +0 -1
  1080. package/dist/showcase/assets/startOfDay-Xmododib.js +0 -1
  1081. package/dist/showcase/assets/styles-zuwR0q1z.js +0 -1
  1082. package/dist/showcase/assets/switch-D3LrIrTQ.js +0 -1
  1083. package/dist/showcase/assets/switch-ylXVyh_N.js +0 -1
  1084. package/dist/showcase/assets/table-Cn3-19zb.js +0 -1
  1085. package/dist/showcase/assets/table-ao3IcAnF.js +0 -390
  1086. package/dist/showcase/assets/tabs-CTLQKtiu.js +0 -19
  1087. package/dist/showcase/assets/tabs-lc1fX94A.js +0 -1
  1088. package/dist/showcase/assets/text-button-Fu8UY1A8.js +0 -1
  1089. package/dist/showcase/assets/text-link--EyGasJN.js +0 -1
  1090. package/dist/showcase/assets/textarea-BdhnlNrF.js +0 -1
  1091. package/dist/showcase/assets/textarea-D1kG3a9B.js +0 -1
  1092. package/dist/showcase/assets/timelines-DF3tNgyG.js +0 -186
  1093. package/dist/showcase/assets/toggle-group-CfxuWsv9.js +0 -1
  1094. package/dist/showcase/assets/toggles-CacdBPlV.js +0 -71
  1095. package/dist/showcase/assets/toggles-group-CRhgTGmL.js +0 -32
  1096. package/dist/showcase/assets/trash-2-B0_GprQM.js +0 -1
  1097. package/dist/showcase/assets/trending-up-B202l1b6.js +0 -1
  1098. package/dist/showcase/assets/truck-Bl1pNrHi.js +0 -1
  1099. package/dist/showcase/assets/typography-DEtOxBlR.js +0 -214
  1100. package/dist/showcase/assets/ui-badge-n4RA0J5b.js +0 -28
  1101. package/dist/showcase/assets/ui-card-Ck-kzrTh.js +0 -30
  1102. package/dist/showcase/assets/ui-table-gzOp82pf.js +0 -42
  1103. package/dist/showcase/assets/upload-tray-VvKdTZSi.js +0 -138
  1104. package/dist/showcase/assets/useAnchoredPopupScrollLock-Cu2ZwN7Z.js +0 -1
  1105. package/dist/showcase/assets/useCollapsiblePanel-C6_cdQ7B.js +0 -1
  1106. package/dist/showcase/assets/useCompositeItem-BfUPqXoj.js +0 -1
  1107. package/dist/showcase/assets/useCompositeListItem-Cf2lpKB8.js +0 -1
  1108. package/dist/showcase/assets/useControlled-C6q3nmcf.js +0 -1
  1109. package/dist/showcase/assets/useLabelableId-CfPT16c1.js +0 -1
  1110. package/dist/showcase/assets/useOpenInteractionType-CGeqRuuY.js +0 -1
  1111. package/dist/showcase/assets/useRender-CoUlh0uZ.js +0 -1
  1112. package/dist/showcase/assets/useRole-DSPUSyVX.js +0 -1
  1113. package/dist/showcase/assets/useTriggerFocusGuards-BwZ1HD24.js +0 -1
  1114. package/dist/showcase/assets/useValueChanged-Dej794I1.js +0 -1
  1115. package/dist/showcase/assets/user-3L762Mec.js +0 -1
  1116. package/dist/showcase/assets/user-plus-9WRYjS04.js +0 -1
  1117. package/dist/showcase/assets/users-CxKZ7gt8.js +0 -1
  1118. package/dist/showcase/assets/vendor-profile-BaCptdMF.js +0 -37
  1119. package/dist/showcase/assets/wrench-Duh91tnW.js +0 -1
  1120. package/dist/showcase/assets/x-t42iKYpL.js +0 -1
  1121. package/dist/showcase/assets/zap-D0z3Tv_L.js +0 -1
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../../../_shared/chunk-D3uCBrYO.cjs`);const e=require(`../../../lib/strings.cjs`),t=require(`../../../lib/utils.cjs`),n=require(`../../../_shared/text-DBnY6fcL.cjs`),r=require(`../../../_shared/typography-DClleVWi.cjs`),i=require(`../../../_shared/icon-badge-DGKpbo9_.cjs`),a=require(`../../../_shared/badge-BjtDcU1M.cjs`),o=require(`../../../_shared/button-DjacsNTg.cjs`),s=require(`../../../_shared/smart-card-Ddsjvf7r.cjs`),c=require(`../../../_shared/separator-DSkXMOXq.cjs`),l=require(`../../../_shared/input-ChZGIhtS.cjs`),u=require(`../../../_shared/display-BCy1Ti7T.cjs`),d=require(`../../../_shared/item-BtR-bz96.cjs`);let f=require(`react`),p=require(`react/jsx-runtime`),m=require(`lucide-react`);function h(e){if(e.date!=null)return e.date;if(e.day&&e.month){let t=new Date().getFullYear(),n=new Date(`${e.month} ${e.day}, ${t}`);if(!Number.isNaN(n.getTime()))return n}return null}function g({bookings:e,className:r,locale:i,dateTone:a=`primary`,timePlacement:o=`below`}){return(0,p.jsx)(d.o,{className:t.cn(`upcoming-booking--component`,r),children:e.map((e,t)=>{let r=h(e);return(0,p.jsxs)(d.t,{children:[!!r&&(0,p.jsx)(d.c,{children:(0,p.jsx)(u.N,{date:r,time:o===`below`?e.time:void 0,tone:a,locale:i,timePlacement:`below`,layout:`stacked`})}),(0,p.jsxs)(d.r,{children:[(0,p.jsx)(d.u,{children:e.service}),(0,p.jsx)(d.i,{clamp:1,children:e.customer})]}),(0,p.jsxs)(d.n,{children:[o===`inline-trailing`&&(0,p.jsx)(n.t,{size:`xs`,type:`secondary`,className:`shrink-0 tabular-nums`,children:e.time}),(0,p.jsx)(n.t,{weight:`semibold`,className:`shrink-0 tabular-nums`,children:e.amount})]})]},e.id??`${e.service}-${e.time}-${t}`)})})}g.displayName=`UpcomingBookingRow`;var _={balanceLabel:`Loyalty Balance`,pointsAvailable:`points available`,redeem:`Redeem Points`};function v({balance:i,tier:l=`Gold Tier`,tierVariant:f,history:h=[],redeemLabel:g,onRedeem:v,className:y,strings:b}){let x=e.useStrings(_,{...g===void 0?{}:{redeem:g},...b});return(0,p.jsxs)(s.t,{className:t.cn(`loyalty-points--component`,y),children:[(0,p.jsx)(u.i,{label:x.balanceLabel,value:(0,p.jsxs)(a.t,{variant:`warning`,children:[(0,p.jsx)(m.Trophy,{className:`mr-1 inline size-3`}),l]}),labelClassName:`text-xs font-medium uppercase tracking-wider text-muted-foreground`}),(0,p.jsx)(r.o,{tag:`h3`,className:`text-4xl tabular-nums tracking-tight`,children:typeof i==`number`?i.toLocaleString():i}),(0,p.jsx)(n.t,{size:`xs`,type:`secondary`,children:x.pointsAvailable}),(0,p.jsx)(c.t,{className:`my-4`}),(0,p.jsx)(d.o,{children:h.map(e=>(0,p.jsxs)(d.t,{size:`xs`,className:`px-0`,children:[(0,p.jsxs)(d.r,{children:[(0,p.jsx)(d.u,{bold:!1,children:e.label}),(0,p.jsx)(d.i,{clamp:1,children:e.date})]}),(0,p.jsx)(d.n,{children:(0,p.jsx)(n.t,{weight:`semibold`,className:t.cn(`tabular-nums`,e.positive?`text-success`:`text-destructive`),children:e.points})})]},e.date+e.label))}),(0,p.jsxs)(o.t,{variant:`dark`,className:`mt-5 w-full rounded-full`,onClick:v,children:[(0,p.jsx)(m.Gift,{className:`mr-1.5 size-3.5`}),x.redeem]})]})}v.displayName=`LoyaltyPointsCard`;var y={title:`Applied Discounts`,totalSavings:`Total Savings`};function b({discounts:i,totalSavings:o,className:l,strings:f}){let m=e.useStrings(y,f);return(0,p.jsxs)(s.t,{title:m.title,className:t.cn(`discount-stack--component`,l),children:[(0,p.jsx)(d.o,{className:`mt-4`,children:i.map(e=>(0,p.jsxs)(d.t,{size:`xs`,className:`px-0`,children:[(0,p.jsx)(d.c,{children:(0,p.jsx)(a.t,{variant:e.badge,className:`w-16 justify-center text-xxs`,children:e.type})}),(0,p.jsx)(d.r,{children:(0,p.jsx)(d.u,{bold:!1,children:e.label})}),(0,p.jsx)(d.n,{children:(0,p.jsx)(n.t,{weight:`semibold`,className:`tabular-nums text-success`,children:e.amount})})]},e.type))}),(0,p.jsx)(c.t,{className:`my-4`}),(0,p.jsx)(u.i,{label:m.totalSavings,value:(0,p.jsx)(r.o,{tag:`h4`,className:`text-xl tabular-nums tracking-tight text-success border-none pb-0`,children:o}),labelClassName:`text-sm font-semibold`})]})}b.displayName=`DiscountStackPreview`;function x({trackingNumber:e,carrier:r,status:i,steps:o,details:l=[],className:d}){return(0,p.jsxs)(s.t,{className:t.cn(`shipment-tracking--component`,d),children:[(0,p.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,p.jsx)(n.t,{size:`xs`,weight:`medium`,className:`font-mono text-muted-foreground tracking-wide`,children:e}),!!r&&(0,p.jsx)(a.t,{variant:`info`,children:r})]}),(0,p.jsxs)(`div`,{className:`mt-4 flex items-center gap-1.5`,children:[(0,p.jsx)(`span`,{className:`h-2 w-2 rounded-full bg-success`}),(0,p.jsx)(n.t,{weight:`semibold`,children:i})]}),(0,p.jsx)(`div`,{className:`mt-5 flex items-center justify-between`,children:o.map((e,r)=>(0,p.jsxs)(`div`,{className:`flex flex-1 flex-col items-center gap-2`,children:[(0,p.jsxs)(`div`,{className:`flex w-full items-center`,children:[(0,p.jsx)(`div`,{className:t.cn(`size-3 shrink-0 rounded-full`,e.done?`bg-success`:`bg-muted`)}),r<o.length-1&&(0,p.jsx)(`div`,{className:t.cn(`h-0.5 flex-1`,e.done?`bg-success`:`bg-muted`)})]}),(0,p.jsx)(n.t,{size:`xs`,type:`secondary`,className:`text-center leading-tight`,children:e.label})]},e.label))}),l.length>0&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(c.t,{className:`my-4`}),(0,p.jsx)(`div`,{className:`space-y-2`,children:l.map(e=>(0,p.jsx)(u.i,{label:e.label,value:e.value,labelClassName:`text-xs`,valueClassName:`text-sm font-medium truncate max-w-[180px]`},e.label))})]})]})}x.displayName=`ShipmentTrackingCard`;var S={title:`Tax Breakdown`,subtotal:`Subtotal`,totalTax:`Total Tax`,total:`Total`};function C({subtotal:r,taxes:i,totalTax:a,total:o,className:l,strings:d}){let f=e.useStrings(S,d);return(0,p.jsxs)(s.t,{icon:(0,p.jsx)(m.Receipt,{className:`size-4`}),title:f.title,className:t.cn(`tax-breakdown--component`,l),children:[(0,p.jsx)(u.i,{label:f.subtotal,value:r,mono:!0,labelClassName:`text-sm`,valueClassName:`text-sm font-medium`}),(0,p.jsxs)(`div`,{className:`mt-3 space-y-1.5 rounded-lg border border-border/50 bg-muted/30 px-3 py-2.5`,children:[i.map((e,t)=>(0,p.jsxs)(`div`,{className:`flex items-baseline justify-between gap-3`,children:[(0,p.jsxs)(`div`,{className:`flex items-baseline gap-1.5 min-w-0`,children:[(0,p.jsx)(n.t,{size:`xs`,className:`truncate`,children:e.label}),!!e.rate&&(0,p.jsx)(n.t,{tag:`span`,size:`xxs`,type:`discrete`,className:`shrink-0`,children:e.rate})]}),(0,p.jsx)(n.t,{tag:`span`,size:`xs`,weight:`medium`,className:`tabular-nums shrink-0`,children:e.amount})]},e.id??`${e.label}-${t}`)),!!a&&i.length>1&&(0,p.jsx)(u.i,{label:f.totalTax,value:a,mono:!0,className:`border-t border-border/50 pt-1.5 mt-0.5`,labelClassName:`text-xs font-medium`,valueClassName:`text-xs font-semibold`})]}),(0,p.jsx)(c.t,{className:`my-3`}),(0,p.jsx)(u.i,{label:f.total,value:o,mono:!0,labelClassName:`text-sm font-semibold`,valueClassName:`text-lg font-bold`})]})}C.displayName=`TaxBreakdownCard`;var w={title:`Subscription`,plan:`Plan`,nextBilling:`Next billing`,perks:`Included`,manage:`Manage`,upgrade:`Upgrade`};function T({planName:c,priceLabel:l,cycleLabel:u,nextBillingDate:f,statusLabel:h,perks:g=[],onManage:_,onUpgrade:v,className:y,strings:b}){let x=e.useStrings(w,b);return(0,p.jsxs)(s.t,{icon:(0,p.jsx)(m.Repeat,{className:`size-4`}),title:x.title,headerEnd:h?(0,p.jsx)(a.t,{variant:`success`,children:h}):null,className:t.cn(`subscription-summary--component`,y),children:[(0,p.jsxs)(`div`,{className:`rounded-lg border border-border/60 bg-muted/30 p-4`,children:[(0,p.jsx)(n.t,{size:`xxs`,type:`secondary`,weight:`medium`,className:`uppercase tracking-wider`,children:x.plan}),(0,p.jsx)(r.o,{tag:`h3`,className:`mt-1 text-xl font-semibold tracking-tight border-none pb-0`,children:c}),(0,p.jsxs)(`div`,{className:`mt-1 flex items-baseline gap-1`,children:[(0,p.jsx)(n.t,{tag:`span`,size:`xl`,weight:`bold`,className:`tabular-nums`,children:l}),(0,p.jsx)(n.t,{type:`secondary`,children:u})]})]}),(0,p.jsxs)(`div`,{className:`mt-3 flex items-center justify-between rounded-md bg-card px-1`,children:[(0,p.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,p.jsx)(m.Calendar,{className:`size-3.5 text-muted-foreground`}),(0,p.jsx)(n.t,{size:`xs`,type:`secondary`,children:x.nextBilling})]}),(0,p.jsx)(n.t,{size:`xs`,weight:`semibold`,className:`tabular-nums`,children:f})]}),g.length>0&&(0,p.jsxs)(`div`,{className:`mt-4 space-y-2`,children:[(0,p.jsx)(n.t,{size:`xxs`,type:`secondary`,weight:`medium`,className:`uppercase tracking-wider`,children:x.perks}),(0,p.jsx)(d.o,{children:g.map((e,t)=>(0,p.jsxs)(d.t,{size:`xs`,className:`px-0`,children:[(0,p.jsx)(d.c,{children:(0,p.jsx)(i.t,{icon:e.icon??m.Check,tone:`success`,size:`xs`})}),(0,p.jsx)(d.r,{children:(0,p.jsx)(d.u,{bold:!1,children:e.label})})]},`${e.label}-${t}`))})]}),(_||v)&&(0,p.jsxs)(`div`,{className:`mt-4 flex items-center gap-2`,children:[!!_&&(0,p.jsx)(o.t,{variant:`secondary`,buttonStyle:`outline`,onClick:_,className:`flex-1`,children:x.manage}),!!v&&(0,p.jsxs)(o.t,{variant:`primary`,onClick:v,className:`flex-1`,children:[x.upgrade,(0,p.jsx)(m.ChevronRight,{className:`ml-1 size-3.5`})]})]})]})}T.displayName=`SubscriptionSummaryCard`;var E={title:`Refund Status`,requested:`Requested`,approved:`Approved`,processing:`Processing`,completed:`Completed`,amount:`Refund amount`,reason:`Reason`,eta:`Expected by`,method:`Refund to`},D=[`requested`,`approved`,`processing`,`completed`];function O({stage:i,amount:a,reason:o,method:l,eta:d,requestedAt:f,className:h,strings:g}){let _=e.useStrings(E,g),v=D.indexOf(i);return(0,p.jsxs)(s.t,{icon:(0,p.jsx)(m.RotateCcw,{className:`size-4`}),title:_.title,className:t.cn(`refund-status--component`,h),children:[(0,p.jsxs)(`div`,{className:`rounded-lg bg-muted/40 px-4 py-3`,children:[(0,p.jsx)(n.t,{size:`xxs`,type:`secondary`,weight:`medium`,className:`uppercase tracking-wider`,children:_.amount}),(0,p.jsx)(r.o,{tag:`h3`,className:`text-3xl tabular-nums tracking-tight`,children:a}),!!f&&(0,p.jsxs)(n.t,{size:`xs`,type:`secondary`,className:`mt-0.5`,children:[_.requested,`: `,f]})]}),(0,p.jsx)(`div`,{className:`mt-4 flex items-center justify-between`,children:D.map((e,r)=>{let i=r<=v,a=r===v;return(0,p.jsxs)(`div`,{className:`flex flex-1 flex-col items-center gap-1.5`,children:[(0,p.jsxs)(`div`,{className:`flex w-full items-center`,children:[(0,p.jsx)(`div`,{className:t.cn(`relative flex size-5 shrink-0 items-center justify-center rounded-full`,i?`bg-success text-success-foreground`:`border border-border bg-card text-muted-foreground`,a&&`ring-2 ring-success/30 ring-offset-2 ring-offset-background`),children:i?(0,p.jsx)(m.Check,{className:`size-3`}):(0,p.jsx)(n.t,{tag:`span`,size:`xxs`,weight:`medium`,className:`tabular-nums`,children:r+1})}),r<D.length-1&&(0,p.jsx)(`div`,{className:t.cn(`h-0.5 flex-1`,r<v?`bg-success`:`bg-border`)})]}),(0,p.jsx)(n.t,{size:`xxs`,weight:a?`semibold`:`medium`,type:i?`main`:`secondary`,className:`text-center leading-tight`,children:_[e]})]},e)})}),(o||l||d)&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(c.t,{className:`my-4`}),(0,p.jsxs)(`div`,{className:`space-y-2`,children:[!!o&&(0,p.jsx)(u.i,{label:_.reason,value:o,className:`items-start`,valueClassName:`text-sm font-medium text-right`}),!!l&&(0,p.jsx)(u.i,{label:_.method,value:l,valueClassName:`text-sm font-medium`}),!!d&&(0,p.jsx)(u.i,{label:_.eta,value:d,mono:!0,valueClassName:`text-sm font-medium`})]})]})]})}O.displayName=`RefundStatusCard`;var k={defaultBadge:`Default`,edit:`Edit`,remove:`Remove`,makeDefault:`Make default`,shipping:`Shipping address`,billing:`Billing address`,pickup:`Pickup address`};function A({kind:r=`shipping`,name:i,line1:o,line2:c,city:l,region:u,postalCode:d,country:f,phone:h,isDefault:g=!1,onEdit:_,onRemove:v,onMakeDefault:y,className:b,strings:x}){let S=e.useStrings(k,x),C={shipping:S.shipping,billing:S.billing,pickup:S.pickup},w=[l,u,d].filter(Boolean).join(`, `),T=[];return _&&T.push({id:`edit`,label:S.edit,icon:(0,p.jsx)(m.Edit2,{className:`size-3.5`}),onClick:_}),y&&!g&&T.push({id:`make-default`,label:S.makeDefault,icon:(0,p.jsx)(m.Star,{className:`size-3.5`}),onClick:y}),v&&T.push({id:`remove`,label:S.remove,icon:(0,p.jsx)(m.Trash2,{className:`size-3.5`}),onClick:v}),(0,p.jsx)(s.t,{icon:(0,p.jsx)(m.MapPin,{className:`size-4`}),title:C[r],headerEnd:g?(0,p.jsx)(a.t,{variant:`primary`,children:S.defaultBadge}):null,actions:T.length>0?T:void 0,className:t.cn(`address-card--component`,b),children:(0,p.jsxs)(`div`,{className:`space-y-0.5`,children:[(0,p.jsx)(n.t,{weight:`semibold`,children:i}),(0,p.jsx)(n.t,{children:o}),!!c&&(0,p.jsx)(n.t,{children:c}),!!w&&(0,p.jsx)(n.t,{children:w}),(0,p.jsx)(n.t,{type:`secondary`,children:f}),!!h&&(0,p.jsx)(n.t,{size:`xs`,type:`secondary`,className:`mt-1.5 tabular-nums`,children:h})]})})}A.displayName=`AddressCard`;var j={title:`Redeem a gift card`,placeholder:`Enter gift card code`,check:`Check balance`,remove:`Remove`,balance:`Available balance`,notFound:`That gift card code is not valid.`};function M({appliedCode:r,balance:a,error:c,loading:u,onCheck:h,onRemove:g,className:_,strings:v}){let y=e.useStrings(j,v),[b,x]=(0,f.useState)(``);return r?(0,p.jsx)(s.t,{icon:(0,p.jsx)(m.Gift,{className:`size-4`}),title:y.title,className:t.cn(`voucher-entry--component`,_),children:(0,p.jsxs)(d.t,{variant:`muted`,className:`border border-success/30 bg-success/8`,children:[(0,p.jsx)(d.c,{children:(0,p.jsx)(i.t,{icon:m.Check,tone:`success`,size:`md`,className:`ring-1 ring-success/20`})}),(0,p.jsxs)(d.r,{children:[(0,p.jsx)(d.u,{className:`font-mono tracking-wider`,children:r}),(0,p.jsx)(d.i,{className:`uppercase tracking-wide`,clamp:1,children:y.balance})]}),(0,p.jsxs)(d.n,{children:[!!a&&(0,p.jsx)(n.t,{tag:`span`,size:`base`,weight:`semibold`,type:`success`,className:`tabular-nums shrink-0`,children:a}),!!g&&(0,p.jsx)(o.t,{type:`button`,variant:`error`,buttonStyle:`ghost`,size:`icon-xs`,onClick:g,"aria-label":y.remove,className:`size-7 shrink-0 text-muted-foreground hover:text-destructive`,children:(0,p.jsx)(m.X,{className:`size-3.5`})})]})]})}):(0,p.jsx)(s.t,{icon:(0,p.jsx)(m.Gift,{className:`size-4`}),title:y.title,className:_,children:(0,p.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,p.jsxs)(`div`,{className:`flex gap-2`,children:[(0,p.jsx)(l.t,{value:b,onChange:e=>x(e.target.value),placeholder:y.placeholder,startIcon:m.Gift,className:`flex-1 font-mono uppercase tracking-wider`,invalid:!!c}),(0,p.jsx)(o.t,{onClick:()=>h?.(b),loading:u,disabled:!b.trim(),children:y.check})]}),!!c&&(0,p.jsx)(n.t,{size:`xs`,type:`error`,children:c||y.notFound})]})})}M.displayName=`VoucherEntryCard`;var N={title:`Cart`,subtotal:`Subtotal`,tax:`Tax`,shipping:`Shipping`,discount:`Discount`,total:`Total`,checkout:`Checkout`},P=e=>e.replace(/^[\s−-]+/,``);function F({items:r,subtotal:i,tax:a,shipping:l,discount:f,total:h,onCheckout:g,className:_,strings:v}){let y=e.useStrings(N,v),b=!!(i||a||l||f);return(0,p.jsxs)(s.t,{icon:(0,p.jsx)(m.ShoppingBag,{className:`size-4`}),title:y.title,className:t.cn(`cart-summary--component`,_),children:[(0,p.jsx)(d.o,{children:r.map(e=>(0,p.jsxs)(d.t,{size:`xs`,className:`px-0`,children:[(0,p.jsx)(d.c,{variant:`image`,children:e.imageUrl?(0,p.jsx)(`img`,{src:e.imageUrl,alt:e.name}):(0,p.jsx)(m.ShoppingBag,{})}),(0,p.jsxs)(d.r,{children:[(0,p.jsx)(d.u,{children:e.name}),(0,p.jsxs)(d.i,{clamp:1,className:`tabular-nums`,children:[`x`,e.qty]})]}),(0,p.jsx)(d.n,{children:(0,p.jsx)(n.t,{tag:`span`,weight:`semibold`,className:`tabular-nums shrink-0`,children:e.price})})]},e.id))}),!!b&&(0,p.jsxs)(`div`,{className:`mt-3 space-y-1.5 rounded-lg bg-muted/30 px-3 py-2.5`,children:[!!i&&(0,p.jsx)(u.i,{label:y.subtotal,value:i,mono:!0,valueClassName:`text-xs font-medium`,labelClassName:`text-xs`}),!!a&&(0,p.jsx)(u.i,{label:y.tax,value:a,mono:!0,valueClassName:`text-xs font-medium`,labelClassName:`text-xs`}),!!l&&(0,p.jsx)(u.i,{label:y.shipping,value:l,mono:!0,valueClassName:`text-xs font-medium`,labelClassName:`text-xs`}),!!f&&(0,p.jsx)(u.i,{label:y.discount,value:`−${P(f)}`,mono:!0,labelClassName:`text-xs`,valueClassName:`text-xs font-semibold text-success`})]}),(0,p.jsx)(c.t,{className:`my-3`}),(0,p.jsx)(u.i,{label:y.total,value:h,mono:!0,labelClassName:`text-sm font-semibold`,valueClassName:`text-lg font-bold`}),!!g&&(0,p.jsx)(o.t,{onClick:g,fullWidth:!0,className:`mt-4`,children:y.checkout})]})}F.displayName=`CartSummaryCard`;var I={title:`Have a code?`,placeholder:`Enter coupon code`,apply:`Apply`,remove:`Remove`,applied:`Applied`,invalid:`That code is not valid`},L=e=>e.replace(/^[\s−-]+/,``);function R({appliedCode:r,appliedDiscount:a,error:c,onApply:u,onRemove:h,loading:g,className:_,strings:v}){let y=e.useStrings(I,v),[b,x]=(0,f.useState)(``);return r?(0,p.jsx)(s.t,{icon:(0,p.jsx)(m.TicketPercent,{className:`size-4`}),title:y.title,className:t.cn(`coupon-input--component`,_),children:(0,p.jsxs)(d.t,{variant:`muted`,className:`border border-success/30 bg-success/8`,children:[(0,p.jsx)(d.c,{children:(0,p.jsx)(i.t,{icon:m.Check,tone:`success`,size:`md`,className:`ring-1 ring-success/20`})}),(0,p.jsxs)(d.r,{children:[(0,p.jsx)(d.u,{className:`font-mono tracking-wider`,children:r}),(0,p.jsx)(d.i,{className:`uppercase tracking-wide`,clamp:1,children:y.applied})]}),(0,p.jsxs)(d.n,{children:[!!a&&(0,p.jsxs)(n.t,{tag:`span`,size:`base`,weight:`semibold`,type:`success`,className:`tabular-nums shrink-0`,children:[`−`,L(a)]}),!!h&&(0,p.jsx)(o.t,{type:`button`,variant:`error`,buttonStyle:`ghost`,size:`icon-xs`,onClick:h,"aria-label":y.remove,className:`size-7 shrink-0 text-muted-foreground hover:text-destructive`,children:(0,p.jsx)(m.X,{className:`size-3.5`})})]})]})}):(0,p.jsx)(s.t,{icon:(0,p.jsx)(m.TicketPercent,{className:`size-4`}),title:y.title,className:_,children:(0,p.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,p.jsxs)(`div`,{className:`flex gap-2`,children:[(0,p.jsx)(l.t,{value:b,onChange:e=>x(e.target.value),placeholder:y.placeholder,startIcon:m.Sparkles,className:`flex-1 font-mono uppercase tracking-wider`,invalid:!!c}),(0,p.jsx)(o.t,{onClick:()=>u?.(b),loading:g,disabled:!b.trim(),children:y.apply})]}),!!c&&(0,p.jsx)(n.t,{size:`xs`,type:`error`,children:c||y.invalid})]})})}R.displayName=`CouponInputCard`;var z={title:`Order status`,statusLabel:`Current status`,eta:`ETA`},B={pending:`warning`,paid:`info`,fulfilled:`info`,shipped:`primary`,delivered:`success`,cancelled:`error`};function V({orderNumber:r,status:i,statusVariant:o,events:c,currentEta:l,className:u,strings:d}){let f=e.useStrings(z,d),h=o??B[i],g=c.reduce((e,t,n)=>t.complete?n:e,-1);return(0,p.jsxs)(s.t,{icon:(0,p.jsx)(m.Package,{className:`size-4`}),title:f.title,titleSuffix:(0,p.jsx)(a.t,{variant:h,className:`capitalize`,children:i}),description:`#${r}`,className:t.cn(`order-status--component`,u),children:[(0,p.jsx)(`div`,{className:`overflow-x-auto pb-1`,children:(0,p.jsx)(`div`,{className:`flex min-w-full items-start`,children:c.map((e,r)=>{let i=r===c.length-1,a=r<g,o=r===g+1||e.complete&&r===g;return(0,p.jsxs)(`div`,{className:`flex flex-1 flex-col items-center gap-1.5`,children:[(0,p.jsxs)(`div`,{className:`relative flex w-full items-center`,children:[r>0&&(0,p.jsx)(`div`,{className:t.cn(`h-0.5 flex-1`,r<=g?`bg-success`:`bg-border`)}),r===0&&(0,p.jsx)(`div`,{className:`flex-1`,"aria-hidden":`true`}),(0,p.jsx)(`div`,{className:t.cn(`relative flex size-6 shrink-0 items-center justify-center rounded-full`,e.complete?`bg-success text-success-foreground`:`border-2 border-border bg-card text-muted-foreground`,o&&!e.complete&&`border-primary text-primary`),children:e.complete?(0,p.jsx)(m.Check,{className:`size-3.5`,strokeWidth:2.5}):(0,p.jsx)(`span`,{className:`size-1.5 rounded-full bg-current`})}),i?(0,p.jsx)(`div`,{className:`flex-1`,"aria-hidden":`true`}):(0,p.jsx)(`div`,{className:t.cn(`h-0.5 flex-1`,a?`bg-success`:`bg-border`)})]}),(0,p.jsx)(n.t,{size:`xxs`,weight:e.complete||o?`semibold`:`medium`,className:t.cn(`whitespace-nowrap text-center`,!e.complete&&!o&&`text-muted-foreground`),children:e.label}),!!e.timestamp&&(0,p.jsx)(n.t,{size:`xxs`,type:`discrete`,className:`tabular-nums`,children:e.timestamp})]},`${e.label}-${r}`)})})}),!!l&&(0,p.jsxs)(`div`,{className:`mt-3 flex items-center justify-between rounded-lg border border-border/50 bg-primary/5 px-3 py-2`,children:[(0,p.jsx)(n.t,{size:`xs`,type:`secondary`,weight:`medium`,className:`uppercase tracking-wider`,children:f.eta}),(0,p.jsx)(n.t,{tag:`span`,weight:`semibold`,children:l})]})]})}V.displayName=`OrderStatusCard`;var H={title:`Payment method`,default:`Default`,cardHolder:`Card holder`,expires:`Expires`,change:`Change`},U={visa:`VISA`,mastercard:`MasterCard`,amex:`AMEX`,paypal:`PayPal`,applepay:`Apple Pay`,googlepay:`Google Pay`,unknown:`Card`},W={visa:`from-blue-700 via-blue-800 to-indigo-900`,mastercard:`from-orange-600 via-rose-700 to-rose-900`,amex:`from-sky-600 via-cyan-700 to-cyan-900`,paypal:`from-blue-600 via-indigo-700 to-blue-900`,applepay:`from-zinc-700 via-zinc-800 to-zinc-950`,googlepay:`from-emerald-600 via-teal-700 to-teal-900`,unknown:`from-zinc-700 via-zinc-800 to-zinc-950`};function G({brand:r,last4:i,expiry:c,holderName:l,isDefault:u,onChange:d,className:f,strings:h}){let g=e.useStrings(H,h),_=U[r],v=W[r];return(0,p.jsxs)(s.t,{icon:(0,p.jsx)(m.CreditCard,{className:`size-4`}),title:g.title,titleSuffix:u?(0,p.jsx)(a.t,{variant:`primary`,children:g.default}):null,className:t.cn(`payment-method--component`,f),children:[(0,p.jsxs)(`div`,{className:t.cn(`relative flex flex-col gap-5 rounded-xl bg-gradient-to-br p-4 text-white shadow-md ring-1 ring-white/10 overflow-hidden`,v),children:[(0,p.jsx)(`div`,{className:`absolute -top-8 -right-8 size-32 rounded-full bg-white/[0.08] blur-xl`,"aria-hidden":`true`}),(0,p.jsx)(`div`,{className:`absolute -bottom-6 -left-6 size-24 rounded-full bg-white/[0.06] blur-lg`,"aria-hidden":`true`}),(0,p.jsxs)(`div`,{className:`relative flex items-start justify-between`,children:[(0,p.jsx)(`div`,{className:`flex size-7 items-center justify-center rounded-md bg-gradient-to-br from-yellow-300/90 to-yellow-500/80 shadow-sm`,children:(0,p.jsx)(`div`,{className:`size-4 rounded-sm border border-yellow-700/30 bg-yellow-200/60`})}),(0,p.jsx)(n.t,{tag:`span`,weight:`bold`,className:`rounded bg-white/15 px-2 py-0.5 tracking-[0.15em] text-white backdrop-blur-sm`,children:_})]}),(0,p.jsx)(`div`,{className:`relative`,children:(0,p.jsxs)(n.t,{tag:`span`,size:`lg`,weight:`semibold`,className:`block font-mono tracking-[0.25em] text-white`,children:[`•••• •••• •••• `,i]})}),(0,p.jsxs)(`div`,{className:`relative flex items-end justify-between gap-3`,children:[(0,p.jsx)(`div`,{className:`min-w-0`,children:!!l&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(n.t,{size:`xxs`,className:`block uppercase tracking-wider text-white/60`,children:g.cardHolder}),(0,p.jsx)(n.t,{weight:`semibold`,className:`truncate text-white`,children:l})]})}),!!c&&(0,p.jsxs)(`div`,{className:`text-right shrink-0`,children:[(0,p.jsx)(n.t,{size:`xxs`,className:`block uppercase tracking-wider text-white/60`,children:g.expires}),(0,p.jsx)(n.t,{tag:`span`,weight:`semibold`,className:`tabular-nums text-white`,children:c})]})]})]}),!!d&&(0,p.jsx)(`div`,{className:`mt-3 flex justify-end`,children:(0,p.jsx)(o.t,{buttonStyle:`ghost`,variant:`secondary`,onClick:d,children:g.change})})]})}G.displayName=`PaymentMethodCard`,exports.AddressCard=A,exports.CartSummaryCard=F,exports.CouponInputCard=R,exports.DiscountStackPreview=b,exports.LoyaltyPointsCard=v,exports.OrderStatusCard=V,exports.PaymentMethodCard=G,exports.RefundStatusCard=O,exports.ShipmentTrackingCard=x,exports.SubscriptionSummaryCard=T,exports.TaxBreakdownCard=C,exports.UpcomingBookingRow=g,exports.VoucherEntryCard=M,exports.defaultAddressCardStrings=k,exports.defaultCartSummaryStrings=N,exports.defaultCouponInputStrings=I,exports.defaultDiscountStackStrings=y,exports.defaultLoyaltyPointsStrings=_,exports.defaultOrderStatusStrings=z,exports.defaultPaymentMethodStrings=H,exports.defaultRefundStatusStrings=E,exports.defaultSubscriptionSummaryStrings=w,exports.defaultTaxBreakdownStrings=S,exports.defaultVoucherEntryStrings=j;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../../../_shared/chunk-D3uCBrYO.cjs`);const e=require(`../../../lib/strings.cjs`),t=require(`../../../lib/utils.cjs`),n=require(`../../../_shared/text-DBnY6fcL.cjs`),r=require(`../../../_shared/heading-mZc_jan1.cjs`),i=require(`../../../_shared/icon-badge-BBqDyAUz.cjs`),a=require(`../../../_shared/badge-C49SSz-6.cjs`),o=require(`../../../_shared/button-D0nF99a9.cjs`),s=require(`../../../_shared/smart-card-Bm_VxYUG.cjs`),c=require(`../../../_shared/separator-CN9zAJfs.cjs`),l=require(`../../../_shared/input-BJb10xb9.cjs`),u=require(`../../../_shared/display-B9xVWboG.cjs`),d=require(`../../../_shared/item-Cx_7QZ2o.cjs`);let f=require(`react`),p=require(`react/jsx-runtime`),m=require(`lucide-react`);function h(e){if(e.date!=null)return e.date;if(e.day&&e.month){let t=new Date().getFullYear(),n=new Date(`${e.month} ${e.day}, ${t}`);if(!Number.isNaN(n.getTime()))return n}return null}function g({bookings:e,className:r,locale:i,dateTone:a=`primary`,timePlacement:o=`below`}){return(0,p.jsx)(d.o,{className:t.cn(`upcoming-booking--component`,r),children:e.map((e,t)=>{let r=h(e);return(0,p.jsxs)(d.t,{children:[!!r&&(0,p.jsx)(d.c,{children:(0,p.jsx)(u.M,{date:r,time:o===`below`?e.time:void 0,tone:a,locale:i,timePlacement:`below`,layout:`stacked`})}),(0,p.jsxs)(d.r,{children:[(0,p.jsx)(d.u,{children:e.service}),(0,p.jsx)(d.i,{clamp:1,children:e.customer})]}),(0,p.jsxs)(d.n,{children:[o===`inline-trailing`&&(0,p.jsx)(n.t,{size:`xs`,type:`secondary`,className:`shrink-0 tabular-nums`,children:e.time}),(0,p.jsx)(n.t,{weight:`semibold`,className:`shrink-0 tabular-nums`,children:e.amount})]})]},e.id??`${e.service}-${e.time}-${t}`)})})}g.displayName=`UpcomingBookingRow`;var _={balanceLabel:`Loyalty Balance`,pointsAvailable:`points available`,redeem:`Redeem Points`};function v({balance:i,tier:l=`Gold Tier`,tierVariant:f,history:h=[],redeemLabel:g,onRedeem:v,className:y,strings:b}){let x=e.useStrings(_,{...g===void 0?{}:{redeem:g},...b});return(0,p.jsxs)(s.t,{className:t.cn(`loyalty-points--component`,y),children:[(0,p.jsx)(u.i,{label:x.balanceLabel,value:(0,p.jsxs)(a.t,{variant:`warning`,children:[(0,p.jsx)(m.Trophy,{className:`mr-1 inline size-3`}),l]}),labelClassName:`text-xs font-medium uppercase tracking-wider text-muted-foreground`}),(0,p.jsx)(r.t,{tag:`h3`,className:`text-4xl tabular-nums tracking-tight`,children:typeof i==`number`?i.toLocaleString():i}),(0,p.jsx)(n.t,{size:`xs`,type:`secondary`,children:x.pointsAvailable}),(0,p.jsx)(c.t,{className:`my-4`}),(0,p.jsx)(d.o,{children:h.map(e=>(0,p.jsxs)(d.t,{size:`xs`,className:`px-0`,children:[(0,p.jsxs)(d.r,{children:[(0,p.jsx)(d.u,{bold:!1,children:e.label}),(0,p.jsx)(d.i,{clamp:1,children:e.date})]}),(0,p.jsx)(d.n,{children:(0,p.jsx)(n.t,{weight:`semibold`,className:t.cn(`tabular-nums`,e.positive?`text-success`:`text-destructive`),children:e.points})})]},e.date+e.label))}),(0,p.jsxs)(o.t,{variant:`dark`,className:`mt-5 w-full rounded-full`,onClick:v,children:[(0,p.jsx)(m.Gift,{className:`mr-1.5 size-3.5`}),x.redeem]})]})}v.displayName=`LoyaltyPointsCard`;var y={title:`Applied Discounts`,totalSavings:`Total Savings`};function b({discounts:i,totalSavings:o,className:l,strings:f}){let m=e.useStrings(y,f);return(0,p.jsxs)(s.t,{title:m.title,className:t.cn(`discount-stack--component`,l),children:[(0,p.jsx)(d.o,{className:`mt-4`,children:i.map(e=>(0,p.jsxs)(d.t,{size:`xs`,className:`px-0`,children:[(0,p.jsx)(d.c,{children:(0,p.jsx)(a.t,{variant:e.badge,className:`w-16 justify-center text-xxs`,children:e.type})}),(0,p.jsx)(d.r,{children:(0,p.jsx)(d.u,{bold:!1,children:e.label})}),(0,p.jsx)(d.n,{children:(0,p.jsx)(n.t,{weight:`semibold`,className:`tabular-nums text-success`,children:e.amount})})]},e.type))}),(0,p.jsx)(c.t,{className:`my-4`}),(0,p.jsx)(u.i,{label:m.totalSavings,value:(0,p.jsx)(r.t,{tag:`h4`,className:`text-xl tabular-nums tracking-tight text-success border-none pb-0`,children:o}),labelClassName:`text-sm font-semibold`})]})}b.displayName=`DiscountStackPreview`;function x({trackingNumber:e,carrier:r,status:i,steps:o,details:l=[],className:d}){return(0,p.jsxs)(s.t,{className:t.cn(`shipment-tracking--component`,d),children:[(0,p.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,p.jsx)(n.t,{size:`xs`,weight:`medium`,className:`font-mono text-muted-foreground tracking-wide`,children:e}),!!r&&(0,p.jsx)(a.t,{variant:`info`,children:r})]}),(0,p.jsxs)(`div`,{className:`mt-4 flex items-center gap-1.5`,children:[(0,p.jsx)(`span`,{className:`h-2 w-2 rounded-full bg-success`}),(0,p.jsx)(n.t,{weight:`semibold`,children:i})]}),(0,p.jsx)(`div`,{className:`mt-5 flex items-center justify-between`,children:o.map((e,r)=>(0,p.jsxs)(`div`,{className:`flex flex-1 flex-col items-center gap-2`,children:[(0,p.jsxs)(`div`,{className:`flex w-full items-center`,children:[(0,p.jsx)(`div`,{className:t.cn(`size-3 shrink-0 rounded-full`,e.done?`bg-success`:`bg-muted`)}),r<o.length-1&&(0,p.jsx)(`div`,{className:t.cn(`h-0.5 flex-1`,e.done?`bg-success`:`bg-muted`)})]}),(0,p.jsx)(n.t,{size:`xs`,type:`secondary`,className:`text-center leading-tight`,children:e.label})]},e.label))}),l.length>0&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(c.t,{className:`my-4`}),(0,p.jsx)(`div`,{className:`space-y-2`,children:l.map(e=>(0,p.jsx)(u.i,{label:e.label,value:e.value,labelClassName:`text-xs`,valueClassName:`text-sm font-medium truncate max-w-[180px]`},e.label))})]})]})}x.displayName=`ShipmentTrackingCard`;var S={title:`Tax Breakdown`,subtotal:`Subtotal`,totalTax:`Total Tax`,total:`Total`};function C({subtotal:r,taxes:i,totalTax:a,total:o,className:l,strings:d}){let f=e.useStrings(S,d);return(0,p.jsxs)(s.t,{icon:(0,p.jsx)(m.Receipt,{className:`size-4`}),title:f.title,className:t.cn(`tax-breakdown--component`,l),children:[(0,p.jsx)(u.i,{label:f.subtotal,value:r,mono:!0,labelClassName:`text-sm`,valueClassName:`text-sm font-medium`}),(0,p.jsxs)(`div`,{className:`mt-3 space-y-1.5 rounded-lg border border-border/50 bg-muted/30 px-3 py-2.5`,children:[i.map((e,t)=>(0,p.jsxs)(`div`,{className:`flex items-baseline justify-between gap-3`,children:[(0,p.jsxs)(`div`,{className:`flex items-baseline gap-1.5 min-w-0`,children:[(0,p.jsx)(n.t,{size:`xs`,className:`truncate`,children:e.label}),!!e.rate&&(0,p.jsx)(n.t,{tag:`span`,size:`xxs`,type:`discrete`,className:`shrink-0`,children:e.rate})]}),(0,p.jsx)(n.t,{tag:`span`,size:`xs`,weight:`medium`,className:`tabular-nums shrink-0`,children:e.amount})]},e.id??`${e.label}-${t}`)),!!a&&i.length>1&&(0,p.jsx)(u.i,{label:f.totalTax,value:a,mono:!0,className:`border-t border-border/50 pt-1.5 mt-0.5`,labelClassName:`text-xs font-medium`,valueClassName:`text-xs font-semibold`})]}),(0,p.jsx)(c.t,{className:`my-3`}),(0,p.jsx)(u.i,{label:f.total,value:o,mono:!0,labelClassName:`text-sm font-semibold`,valueClassName:`text-lg font-bold`})]})}C.displayName=`TaxBreakdownCard`;var w={title:`Subscription`,plan:`Plan`,nextBilling:`Next billing`,perks:`Included`,manage:`Manage`,upgrade:`Upgrade`};function T({planName:c,priceLabel:l,cycleLabel:u,nextBillingDate:f,statusLabel:h,perks:g=[],onManage:_,onUpgrade:v,className:y,strings:b}){let x=e.useStrings(w,b);return(0,p.jsxs)(s.t,{icon:(0,p.jsx)(m.Repeat,{className:`size-4`}),title:x.title,headerEnd:h?(0,p.jsx)(a.t,{variant:`success`,children:h}):null,className:t.cn(`subscription-summary--component`,y),children:[(0,p.jsxs)(`div`,{className:`rounded-lg border border-border/60 bg-muted/30 p-4`,children:[(0,p.jsx)(n.t,{size:`xxs`,type:`secondary`,weight:`medium`,className:`uppercase tracking-wider`,children:x.plan}),(0,p.jsx)(r.t,{tag:`h3`,className:`mt-1 text-xl font-semibold tracking-tight border-none pb-0`,children:c}),(0,p.jsxs)(`div`,{className:`mt-1 flex items-baseline gap-1`,children:[(0,p.jsx)(n.t,{tag:`span`,size:`xl`,weight:`bold`,className:`tabular-nums`,children:l}),(0,p.jsx)(n.t,{type:`secondary`,children:u})]})]}),(0,p.jsxs)(`div`,{className:`mt-3 flex items-center justify-between rounded-md bg-card px-1`,children:[(0,p.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,p.jsx)(m.Calendar,{className:`size-3.5 text-muted-foreground`}),(0,p.jsx)(n.t,{size:`xs`,type:`secondary`,children:x.nextBilling})]}),(0,p.jsx)(n.t,{size:`xs`,weight:`semibold`,className:`tabular-nums`,children:f})]}),g.length>0&&(0,p.jsxs)(`div`,{className:`mt-4 space-y-2`,children:[(0,p.jsx)(n.t,{size:`xxs`,type:`secondary`,weight:`medium`,className:`uppercase tracking-wider`,children:x.perks}),(0,p.jsx)(d.o,{children:g.map((e,t)=>(0,p.jsxs)(d.t,{size:`xs`,className:`px-0`,children:[(0,p.jsx)(d.c,{children:(0,p.jsx)(i.t,{icon:e.icon??m.Check,tone:`success`,size:`xs`})}),(0,p.jsx)(d.r,{children:(0,p.jsx)(d.u,{bold:!1,children:e.label})})]},`${e.label}-${t}`))})]}),(_||v)&&(0,p.jsxs)(`div`,{className:`mt-4 flex items-center gap-2`,children:[!!_&&(0,p.jsx)(o.t,{variant:`secondary`,buttonStyle:`outline`,onClick:_,className:`flex-1`,children:x.manage}),!!v&&(0,p.jsxs)(o.t,{variant:`primary`,onClick:v,className:`flex-1`,children:[x.upgrade,(0,p.jsx)(m.ChevronRight,{className:`ml-1 size-3.5`})]})]})]})}T.displayName=`SubscriptionSummaryCard`;var E={title:`Refund Status`,requested:`Requested`,approved:`Approved`,processing:`Processing`,completed:`Completed`,amount:`Refund amount`,reason:`Reason`,eta:`Expected by`,method:`Refund to`},D=[`requested`,`approved`,`processing`,`completed`];function O({stage:i,amount:a,reason:o,method:l,eta:d,requestedAt:f,className:h,strings:g}){let _=e.useStrings(E,g),v=D.indexOf(i);return(0,p.jsxs)(s.t,{icon:(0,p.jsx)(m.RotateCcw,{className:`size-4`}),title:_.title,className:t.cn(`refund-status--component`,h),children:[(0,p.jsxs)(`div`,{className:`rounded-lg bg-muted/40 px-4 py-3`,children:[(0,p.jsx)(n.t,{size:`xxs`,type:`secondary`,weight:`medium`,className:`uppercase tracking-wider`,children:_.amount}),(0,p.jsx)(r.t,{tag:`h3`,className:`text-3xl tabular-nums tracking-tight`,children:a}),!!f&&(0,p.jsxs)(n.t,{size:`xs`,type:`secondary`,className:`mt-0.5`,children:[_.requested,`: `,f]})]}),(0,p.jsx)(`div`,{className:`mt-4 flex items-center justify-between`,children:D.map((e,r)=>{let i=r<=v,a=r===v;return(0,p.jsxs)(`div`,{className:`flex flex-1 flex-col items-center gap-1.5`,children:[(0,p.jsxs)(`div`,{className:`flex w-full items-center`,children:[(0,p.jsx)(`div`,{className:t.cn(`relative flex size-5 shrink-0 items-center justify-center rounded-full`,i?`bg-success text-success-foreground`:`border border-border bg-card text-muted-foreground`,a&&`ring-2 ring-success/30 ring-offset-2 ring-offset-background`),children:i?(0,p.jsx)(m.Check,{className:`size-3`}):(0,p.jsx)(n.t,{tag:`span`,size:`xxs`,weight:`medium`,className:`tabular-nums`,children:r+1})}),r<D.length-1&&(0,p.jsx)(`div`,{className:t.cn(`h-0.5 flex-1`,r<v?`bg-success`:`bg-border`)})]}),(0,p.jsx)(n.t,{size:`xxs`,weight:a?`semibold`:`medium`,type:i?`main`:`secondary`,className:`text-center leading-tight`,children:_[e]})]},e)})}),(o||l||d)&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(c.t,{className:`my-4`}),(0,p.jsxs)(`div`,{className:`space-y-2`,children:[!!o&&(0,p.jsx)(u.i,{label:_.reason,value:o,className:`items-start`,valueClassName:`text-sm font-medium text-right`}),!!l&&(0,p.jsx)(u.i,{label:_.method,value:l,valueClassName:`text-sm font-medium`}),!!d&&(0,p.jsx)(u.i,{label:_.eta,value:d,mono:!0,valueClassName:`text-sm font-medium`})]})]})]})}O.displayName=`RefundStatusCard`;var k={defaultBadge:`Default`,edit:`Edit`,remove:`Remove`,makeDefault:`Make default`,shipping:`Shipping address`,billing:`Billing address`,pickup:`Pickup address`};function A({kind:r=`shipping`,name:i,line1:o,line2:c,city:l,region:u,postalCode:d,country:f,phone:h,isDefault:g=!1,onEdit:_,onRemove:v,onMakeDefault:y,className:b,strings:x}){let S=e.useStrings(k,x),C={shipping:S.shipping,billing:S.billing,pickup:S.pickup},w=[l,u,d].filter(Boolean).join(`, `),T=[];return _&&T.push({id:`edit`,label:S.edit,icon:(0,p.jsx)(m.Edit2,{className:`size-3.5`}),onClick:_}),y&&!g&&T.push({id:`make-default`,label:S.makeDefault,icon:(0,p.jsx)(m.Star,{className:`size-3.5`}),onClick:y}),v&&T.push({id:`remove`,label:S.remove,icon:(0,p.jsx)(m.Trash2,{className:`size-3.5`}),onClick:v}),(0,p.jsx)(s.t,{icon:(0,p.jsx)(m.MapPin,{className:`size-4`}),title:C[r],headerEnd:g?(0,p.jsx)(a.t,{variant:`primary`,children:S.defaultBadge}):null,actions:T.length>0?T:void 0,className:t.cn(`address-card--component`,b),children:(0,p.jsxs)(`div`,{className:`space-y-0.5`,children:[(0,p.jsx)(n.t,{weight:`semibold`,children:i}),(0,p.jsx)(n.t,{children:o}),!!c&&(0,p.jsx)(n.t,{children:c}),!!w&&(0,p.jsx)(n.t,{children:w}),(0,p.jsx)(n.t,{type:`secondary`,children:f}),!!h&&(0,p.jsx)(n.t,{size:`xs`,type:`secondary`,className:`mt-1.5 tabular-nums`,children:h})]})})}A.displayName=`AddressCard`;var j={title:`Redeem a gift card`,placeholder:`Enter gift card code`,check:`Check balance`,remove:`Remove`,balance:`Available balance`,notFound:`That gift card code is not valid.`};function M({appliedCode:r,balance:a,error:c,loading:u,onCheck:h,onRemove:g,className:_,strings:v}){let y=e.useStrings(j,v),[b,x]=(0,f.useState)(``);return r?(0,p.jsx)(s.t,{icon:(0,p.jsx)(m.Gift,{className:`size-4`}),title:y.title,className:t.cn(`voucher-entry--component`,_),children:(0,p.jsxs)(d.t,{variant:`muted`,className:`border border-success/30 bg-success/8`,children:[(0,p.jsx)(d.c,{children:(0,p.jsx)(i.t,{icon:m.Check,tone:`success`,size:`md`,className:`ring-1 ring-success/20`})}),(0,p.jsxs)(d.r,{children:[(0,p.jsx)(d.u,{className:`font-mono tracking-wider`,children:r}),(0,p.jsx)(d.i,{className:`uppercase tracking-wide`,clamp:1,children:y.balance})]}),(0,p.jsxs)(d.n,{children:[!!a&&(0,p.jsx)(n.t,{tag:`span`,size:`base`,weight:`semibold`,type:`success`,className:`tabular-nums shrink-0`,children:a}),!!g&&(0,p.jsx)(o.t,{type:`button`,variant:`error`,buttonStyle:`ghost`,size:`icon-xs`,onClick:g,"aria-label":y.remove,className:`size-7 shrink-0 text-muted-foreground hover:text-destructive`,children:(0,p.jsx)(m.X,{className:`size-3.5`})})]})]})}):(0,p.jsx)(s.t,{icon:(0,p.jsx)(m.Gift,{className:`size-4`}),title:y.title,className:_,children:(0,p.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,p.jsxs)(`div`,{className:`flex gap-2`,children:[(0,p.jsx)(l.t,{value:b,onChange:e=>x(e.target.value),placeholder:y.placeholder,startIcon:m.Gift,className:`flex-1 font-mono uppercase tracking-wider`,invalid:!!c}),(0,p.jsx)(o.t,{onClick:()=>h?.(b),loading:u,disabled:!b.trim(),children:y.check})]}),!!c&&(0,p.jsx)(n.t,{size:`xs`,type:`error`,children:c||y.notFound})]})})}M.displayName=`VoucherEntryCard`;var N={title:`Cart`,subtotal:`Subtotal`,tax:`Tax`,shipping:`Shipping`,discount:`Discount`,total:`Total`,checkout:`Checkout`},P=e=>e.replace(/^[\s−-]+/,``);function F({items:r,subtotal:i,tax:a,shipping:l,discount:f,total:h,onCheckout:g,className:_,strings:v}){let y=e.useStrings(N,v),b=!!(i||a||l||f);return(0,p.jsxs)(s.t,{icon:(0,p.jsx)(m.ShoppingBag,{className:`size-4`}),title:y.title,className:t.cn(`cart-summary--component`,_),children:[(0,p.jsx)(d.o,{children:r.map(e=>(0,p.jsxs)(d.t,{size:`xs`,className:`px-0`,children:[(0,p.jsx)(d.c,{variant:`image`,children:e.imageUrl?(0,p.jsx)(`img`,{src:e.imageUrl,alt:e.name}):(0,p.jsx)(m.ShoppingBag,{})}),(0,p.jsxs)(d.r,{children:[(0,p.jsx)(d.u,{children:e.name}),(0,p.jsxs)(d.i,{clamp:1,className:`tabular-nums`,children:[`x`,e.qty]})]}),(0,p.jsx)(d.n,{children:(0,p.jsx)(n.t,{tag:`span`,weight:`semibold`,className:`tabular-nums shrink-0`,children:e.price})})]},e.id))}),!!b&&(0,p.jsxs)(`div`,{className:`mt-3 space-y-1.5 rounded-lg bg-muted/30 px-3 py-2.5`,children:[!!i&&(0,p.jsx)(u.i,{label:y.subtotal,value:i,mono:!0,valueClassName:`text-xs font-medium`,labelClassName:`text-xs`}),!!a&&(0,p.jsx)(u.i,{label:y.tax,value:a,mono:!0,valueClassName:`text-xs font-medium`,labelClassName:`text-xs`}),!!l&&(0,p.jsx)(u.i,{label:y.shipping,value:l,mono:!0,valueClassName:`text-xs font-medium`,labelClassName:`text-xs`}),!!f&&(0,p.jsx)(u.i,{label:y.discount,value:`−${P(f)}`,mono:!0,labelClassName:`text-xs`,valueClassName:`text-xs font-semibold text-success`})]}),(0,p.jsx)(c.t,{className:`my-3`}),(0,p.jsx)(u.i,{label:y.total,value:h,mono:!0,labelClassName:`text-sm font-semibold`,valueClassName:`text-lg font-bold`}),!!g&&(0,p.jsx)(o.t,{onClick:g,fullWidth:!0,className:`mt-4`,children:y.checkout})]})}F.displayName=`CartSummaryCard`;var I={title:`Have a code?`,placeholder:`Enter coupon code`,apply:`Apply`,remove:`Remove`,applied:`Applied`,invalid:`That code is not valid`},L=e=>e.replace(/^[\s−-]+/,``);function R({appliedCode:r,appliedDiscount:a,error:c,onApply:u,onRemove:h,loading:g,className:_,strings:v}){let y=e.useStrings(I,v),[b,x]=(0,f.useState)(``);return r?(0,p.jsx)(s.t,{icon:(0,p.jsx)(m.TicketPercent,{className:`size-4`}),title:y.title,className:t.cn(`coupon-input--component`,_),children:(0,p.jsxs)(d.t,{variant:`muted`,className:`border border-success/30 bg-success/8`,children:[(0,p.jsx)(d.c,{children:(0,p.jsx)(i.t,{icon:m.Check,tone:`success`,size:`md`,className:`ring-1 ring-success/20`})}),(0,p.jsxs)(d.r,{children:[(0,p.jsx)(d.u,{className:`font-mono tracking-wider`,children:r}),(0,p.jsx)(d.i,{className:`uppercase tracking-wide`,clamp:1,children:y.applied})]}),(0,p.jsxs)(d.n,{children:[!!a&&(0,p.jsxs)(n.t,{tag:`span`,size:`base`,weight:`semibold`,type:`success`,className:`tabular-nums shrink-0`,children:[`−`,L(a)]}),!!h&&(0,p.jsx)(o.t,{type:`button`,variant:`error`,buttonStyle:`ghost`,size:`icon-xs`,onClick:h,"aria-label":y.remove,className:`size-7 shrink-0 text-muted-foreground hover:text-destructive`,children:(0,p.jsx)(m.X,{className:`size-3.5`})})]})]})}):(0,p.jsx)(s.t,{icon:(0,p.jsx)(m.TicketPercent,{className:`size-4`}),title:y.title,className:_,children:(0,p.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,p.jsxs)(`div`,{className:`flex gap-2`,children:[(0,p.jsx)(l.t,{value:b,onChange:e=>x(e.target.value),placeholder:y.placeholder,startIcon:m.Sparkles,className:`flex-1 font-mono uppercase tracking-wider`,invalid:!!c}),(0,p.jsx)(o.t,{onClick:()=>u?.(b),loading:g,disabled:!b.trim(),children:y.apply})]}),!!c&&(0,p.jsx)(n.t,{size:`xs`,type:`error`,children:c||y.invalid})]})})}R.displayName=`CouponInputCard`;var z={title:`Order status`,statusLabel:`Current status`,eta:`ETA`},B={pending:`warning`,paid:`info`,fulfilled:`info`,shipped:`primary`,delivered:`success`,cancelled:`error`};function V({orderNumber:r,status:i,statusVariant:o,events:c,currentEta:l,className:u,strings:d}){let f=e.useStrings(z,d),h=o??B[i],g=c.reduce((e,t,n)=>t.complete?n:e,-1);return(0,p.jsxs)(s.t,{icon:(0,p.jsx)(m.Package,{className:`size-4`}),title:f.title,titleSuffix:(0,p.jsx)(a.t,{variant:h,className:`capitalize`,children:i}),description:`#${r}`,className:t.cn(`order-status--component`,u),children:[(0,p.jsx)(`div`,{className:`overflow-x-auto pb-1`,children:(0,p.jsx)(`div`,{className:`flex min-w-full items-start`,children:c.map((e,r)=>{let i=r===c.length-1,a=r<g,o=r===g+1||e.complete&&r===g;return(0,p.jsxs)(`div`,{className:`flex flex-1 flex-col items-center gap-1.5`,children:[(0,p.jsxs)(`div`,{className:`relative flex w-full items-center`,children:[r>0&&(0,p.jsx)(`div`,{className:t.cn(`h-0.5 flex-1`,r<=g?`bg-success`:`bg-border`)}),r===0&&(0,p.jsx)(`div`,{className:`flex-1`,"aria-hidden":`true`}),(0,p.jsx)(`div`,{className:t.cn(`relative flex size-6 shrink-0 items-center justify-center rounded-full`,e.complete?`bg-success text-success-foreground`:`border-2 border-border bg-card text-muted-foreground`,o&&!e.complete&&`border-primary text-primary`),children:e.complete?(0,p.jsx)(m.Check,{className:`size-3.5`,strokeWidth:2.5}):(0,p.jsx)(`span`,{className:`size-1.5 rounded-full bg-current`})}),i?(0,p.jsx)(`div`,{className:`flex-1`,"aria-hidden":`true`}):(0,p.jsx)(`div`,{className:t.cn(`h-0.5 flex-1`,a?`bg-success`:`bg-border`)})]}),(0,p.jsx)(n.t,{size:`xxs`,weight:e.complete||o?`semibold`:`medium`,className:t.cn(`whitespace-nowrap text-center`,!e.complete&&!o&&`text-muted-foreground`),children:e.label}),!!e.timestamp&&(0,p.jsx)(n.t,{size:`xxs`,type:`discrete`,className:`tabular-nums`,children:e.timestamp})]},`${e.label}-${r}`)})})}),!!l&&(0,p.jsxs)(`div`,{className:`mt-3 flex items-center justify-between rounded-lg border border-border/50 bg-primary/5 px-3 py-2`,children:[(0,p.jsx)(n.t,{size:`xs`,type:`secondary`,weight:`medium`,className:`uppercase tracking-wider`,children:f.eta}),(0,p.jsx)(n.t,{tag:`span`,weight:`semibold`,children:l})]})]})}V.displayName=`OrderStatusCard`;var H={title:`Payment method`,default:`Default`,cardHolder:`Card holder`,expires:`Expires`,change:`Change`},U={visa:`VISA`,mastercard:`MasterCard`,amex:`AMEX`,paypal:`PayPal`,applepay:`Apple Pay`,googlepay:`Google Pay`,unknown:`Card`},W={visa:`from-blue-700 via-blue-800 to-indigo-900`,mastercard:`from-orange-600 via-rose-700 to-rose-900`,amex:`from-sky-600 via-cyan-700 to-cyan-900`,paypal:`from-blue-600 via-indigo-700 to-blue-900`,applepay:`from-zinc-700 via-zinc-800 to-zinc-950`,googlepay:`from-emerald-600 via-teal-700 to-teal-900`,unknown:`from-zinc-700 via-zinc-800 to-zinc-950`};function G({brand:r,last4:i,expiry:c,holderName:l,isDefault:u,onChange:d,className:f,strings:h}){let g=e.useStrings(H,h),_=U[r],v=W[r];return(0,p.jsxs)(s.t,{icon:(0,p.jsx)(m.CreditCard,{className:`size-4`}),title:g.title,titleSuffix:u?(0,p.jsx)(a.t,{variant:`primary`,children:g.default}):null,className:t.cn(`payment-method--component`,f),children:[(0,p.jsxs)(`div`,{className:t.cn(`relative flex flex-col gap-5 rounded-xl bg-gradient-to-br p-4 text-white shadow-md ring-1 ring-white/10 overflow-hidden`,v),children:[(0,p.jsx)(`div`,{className:`absolute -top-8 -right-8 size-32 rounded-full bg-white/[0.08] blur-xl`,"aria-hidden":`true`}),(0,p.jsx)(`div`,{className:`absolute -bottom-6 -left-6 size-24 rounded-full bg-white/[0.06] blur-lg`,"aria-hidden":`true`}),(0,p.jsxs)(`div`,{className:`relative flex items-start justify-between`,children:[(0,p.jsx)(`div`,{className:`flex size-7 items-center justify-center rounded-md bg-gradient-to-br from-yellow-300/90 to-yellow-500/80 shadow-sm`,children:(0,p.jsx)(`div`,{className:`size-4 rounded-sm border border-yellow-700/30 bg-yellow-200/60`})}),(0,p.jsx)(n.t,{tag:`span`,weight:`bold`,className:`rounded bg-white/15 px-2 py-0.5 tracking-[0.15em] text-white backdrop-blur-sm`,children:_})]}),(0,p.jsx)(`div`,{className:`relative`,children:(0,p.jsxs)(n.t,{tag:`span`,size:`lg`,weight:`semibold`,className:`block font-mono tracking-[0.25em] text-white`,children:[`•••• •••• •••• `,i]})}),(0,p.jsxs)(`div`,{className:`relative flex items-end justify-between gap-3`,children:[(0,p.jsx)(`div`,{className:`min-w-0`,children:!!l&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(n.t,{size:`xxs`,className:`block uppercase tracking-wider text-white/60`,children:g.cardHolder}),(0,p.jsx)(n.t,{weight:`semibold`,className:`truncate text-white`,children:l})]})}),!!c&&(0,p.jsxs)(`div`,{className:`text-right shrink-0`,children:[(0,p.jsx)(n.t,{size:`xxs`,className:`block uppercase tracking-wider text-white/60`,children:g.expires}),(0,p.jsx)(n.t,{tag:`span`,weight:`semibold`,className:`tabular-nums text-white`,children:c})]})]})]}),!!d&&(0,p.jsx)(`div`,{className:`mt-3 flex justify-end`,children:(0,p.jsx)(o.t,{buttonStyle:`ghost`,variant:`secondary`,onClick:d,children:g.change})})]})}G.displayName=`PaymentMethodCard`,exports.AddressCard=A,exports.CartSummaryCard=F,exports.CouponInputCard=R,exports.DiscountStackPreview=b,exports.LoyaltyPointsCard=v,exports.OrderStatusCard=V,exports.PaymentMethodCard=G,exports.RefundStatusCard=O,exports.ShipmentTrackingCard=x,exports.SubscriptionSummaryCard=T,exports.TaxBreakdownCard=C,exports.UpcomingBookingRow=g,exports.VoucherEntryCard=M,exports.defaultAddressCardStrings=k,exports.defaultCartSummaryStrings=N,exports.defaultCouponInputStrings=I,exports.defaultDiscountStackStrings=y,exports.defaultLoyaltyPointsStrings=_,exports.defaultOrderStatusStrings=z,exports.defaultPaymentMethodStrings=H,exports.defaultRefundStatusStrings=E,exports.defaultSubscriptionSummaryStrings=w,exports.defaultTaxBreakdownStrings=S,exports.defaultVoucherEntryStrings=j;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","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 = 'primary',\n\ttimePlacement = 'below',\n}: UpcomingBookingRowProps) {\n\treturn (\n\t\t<ItemGroup className={cn('upcoming-booking--component', 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}`}>\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>\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>\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', 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\">\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', 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\">\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', 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', 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', 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', 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\theaderEnd={\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', 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\tplaceholder: string;\n\tcheck: string;\n\tremove: string;\n\tbalance: string;\n\tnotFound: string;\n}\n\nexport const defaultVoucherEntryStrings: VoucherEntryStrings = {\n\ttitle: 'Redeem a gift card',\n\tplaceholder: 'Enter gift card code',\n\tcheck: 'Check balance',\n\tremove: 'Remove',\n\tbalance: 'Available balance',\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 { useState } from 'react';\nimport { Check, Gift, X } from 'lucide-react';\nimport { Button } from '@/components/base/buttons';\nimport { SmartCard } from '@/components/base/cards';\nimport { IconBadge } from '@/components/base/display';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemDescription,\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';\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 [code, setCode] = useState('');\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', className)}\n\t\t\t>\n\t\t\t\t<Item variant=\"muted\" className=\"border border-success/30 bg-success/8\">\n\t\t\t\t\t<ItemMedia>\n\t\t\t\t\t\t<IconBadge icon={Check} tone=\"success\" size=\"md\" className=\"ring-1 ring-success/20\" />\n\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t<ItemContent>\n\t\t\t\t\t\t<ItemTitle className=\"font-mono tracking-wider\">\n\t\t\t\t\t\t\t{appliedCode}\n\t\t\t\t\t\t</ItemTitle>\n\t\t\t\t\t\t<ItemDescription className=\"uppercase tracking-wide\" clamp={1}>\n\t\t\t\t\t\t\t{strings.balance}\n\t\t\t\t\t\t</ItemDescription>\n\t\t\t\t\t</ItemContent>\n\t\t\t\t\t<ItemActions>\n\t\t\t\t\t\t{!!balance && (\n\t\t\t\t\t\t\t<Text tag=\"span\" size=\"base\" weight=\"semibold\" type=\"success\" className=\"tabular-nums shrink-0\">\n\t\t\t\t\t\t\t\t{balance}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{!!onRemove && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\tvariant=\"error\"\n\t\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\t\tsize=\"icon-xs\"\n\t\t\t\t\t\t\t\tonClick={onRemove}\n\t\t\t\t\t\t\t\taria-label={strings.remove}\n\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>\n\t\t\t\t\t\t\t\t<X className=\"size-3.5\" />\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</ItemActions>\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={className}\n\t\t>\n\t\t\t<div className=\"flex flex-col gap-2\">\n\t\t\t\t<div className=\"flex gap-2\">\n\t\t\t\t\t<Input\n\t\t\t\t\t\tvalue={code}\n\t\t\t\t\t\tonChange={(e) => setCode((e.target as HTMLInputElement).value)}\n\t\t\t\t\t\tplaceholder={strings.placeholder}\n\t\t\t\t\t\tstartIcon={Gift}\n\t\t\t\t\t\tclassName=\"flex-1 font-mono uppercase tracking-wider\"\n\t\t\t\t\t\tinvalid={Boolean(error)}\n\t\t\t\t\t/>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tonClick={() => onCheck?.(code)}\n\t\t\t\t\t\tloading={loading}\n\t\t\t\t\t\tdisabled={!code.trim()}\n\t\t\t\t\t>\n\t\t\t\t\t\t{strings.check}\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\">\n\t\t\t\t\t\t{error || strings.notFound}\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\nVoucherEntryCard.displayName = 'VoucherEntryCard';\n","export interface CartLineItem {\n\tid: string;\n\tname: string;\n\tqty: number;\n\tprice: string;\n\timageUrl?: 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 CartSummaryCardProps } from './types';\n\nimport { cn } from '@/lib/utils';\nconst stripLeadingMinus = (value: string): string => value.replace(/^[\\s−-]+/, '');\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', className)}>\n\t\t\t<ItemGroup>\n\t\t\t\t{items.map((it) => (\n\t\t\t\t\t<Item key={it.id} size=\"xs\" className=\"px-0\">\n\t\t\t\t\t\t<ItemMedia variant=\"image\">\n\t\t\t\t\t\t\t{it.imageUrl ? (\n\t\t\t\t\t\t\t\t<img src={it.imageUrl} alt={it.name} />\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<ShoppingBag />\n\t\t\t\t\t\t\t)}\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>{it.name}</ItemTitle>\n\t\t\t\t\t\t\t<ItemDescription clamp={1} className=\"tabular-nums\">x{it.qty}</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 tag=\"span\" weight=\"semibold\" className=\"tabular-nums shrink-0\">{it.price}</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{!!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\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−-]+/, '');\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\n\tif (appliedCode) {\n\t\treturn (\n\t\t\t<SmartCard icon={<TicketPercent className=\"size-4\" />} title={strings.title} className={cn('coupon-input--component', className)}>\n\t\t\t\t<Item variant=\"muted\" className=\"border border-success/30 bg-success/8\">\n\t\t\t\t\t<ItemMedia>\n\t\t\t\t\t\t<IconBadge icon={Check} tone=\"success\" size=\"md\" className=\"ring-1 ring-success/20\" />\n\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t<ItemContent>\n\t\t\t\t\t\t<ItemTitle className=\"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<ItemActions>\n\t\t\t\t\t\t{!!appliedDiscount && (\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\tsize=\"base\"\n\t\t\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\t\t\ttype=\"success\"\n\t\t\t\t\t\t\t\tclassName=\"tabular-nums shrink-0\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t−{stripLeadingMinus(appliedDiscount)}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{!!onRemove && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\tvariant=\"error\"\n\t\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\t\tsize=\"icon-xs\"\n\t\t\t\t\t\t\t\tonClick={onRemove}\n\t\t\t\t\t\t\t\taria-label={strings.remove}\n\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>\n\t\t\t\t\t\t\t\t<X className=\"size-3.5\" />\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</ItemActions>\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={className}>\n\t\t\t<div className=\"flex flex-col gap-2\">\n\t\t\t\t<div className=\"flex gap-2\">\n\t\t\t\t\t<Input\n\t\t\t\t\t\tvalue={code}\n\t\t\t\t\t\tonChange={(e) => setCode((e.target as HTMLInputElement).value)}\n\t\t\t\t\t\tplaceholder={strings.placeholder}\n\t\t\t\t\t\tstartIcon={Sparkles}\n\t\t\t\t\t\tclassName=\"flex-1 font-mono uppercase tracking-wider\"\n\t\t\t\t\t\tinvalid={Boolean(error)}\n\t\t\t\t\t/>\n\t\t\t\t\t<Button onClick={() => onApply?.(code)} loading={loading} disabled={!code.trim()}>\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}\n\nexport const defaultOrderStatusStrings: OrderStatusStrings = {\n\ttitle: 'Order status',\n\tstatusLabel: 'Current status',\n\teta: 'ETA',\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 + horizontal step ribbon\n * (each step shows its label, optional timestamp, and a connector line to\n * the next step). Ideal for dashboards / receipt summaries. Strings\n * overridable for i18n.\n */\nimport { Package, Check } 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\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', className)}\n\t\t>\n\t\t\t<div className=\"overflow-x-auto pb-1\">\n\t\t\t\t<div className=\"flex min-w-full items-start\">\n\t\t\t\t\t{events.map((e, i) => {\n\t\t\t\t\t\tconst isLast = i === events.length - 1;\n\t\t\t\t\t\tconst connectorActive = i < lastCompleteIdx;\n\t\t\t\t\t\tconst isCurrent = i === lastCompleteIdx + 1 || (e.complete && i === lastCompleteIdx);\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<div key={`${e.label}-${i}`} className=\"flex flex-1 flex-col items-center gap-1.5\">\n\t\t\t\t\t\t\t\t{/* Dot + connector row */}\n\t\t\t\t\t\t\t\t<div className=\"relative flex w-full items-center\">\n\t\t\t\t\t\t\t\t\t{/* leading half-line */}\n\t\t\t\t\t\t\t\t\t{i > 0 && (\n\t\t\t\t\t\t\t\t\t\t<div\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'h-0.5 flex-1',\n\t\t\t\t\t\t\t\t\t\t\t\ti <= 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\t{i === 0 && <div className=\"flex-1\" aria-hidden=\"true\" />}\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'relative flex size-6 shrink-0 items-center justify-center rounded-full',\n\t\t\t\t\t\t\t\t\t\t\te.complete\n\t\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\t: 'border-2 border-border bg-card text-muted-foreground',\n\t\t\t\t\t\t\t\t\t\t\tisCurrent && !e.complete && 'border-primary text-primary',\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{e.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) : (\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"size-1.5 rounded-full bg-current\" />\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t{/* trailing half-line */}\n\t\t\t\t\t\t\t\t\t{!isLast ? (\n\t\t\t\t\t\t\t\t\t\t<div\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'h-0.5 flex-1',\n\t\t\t\t\t\t\t\t\t\t\t\tconnectorActive ? '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\t\t<div className=\"flex-1\" aria-hidden=\"true\" />\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<Text\n\t\t\t\t\t\t\t\t\tsize=\"xxs\"\n\t\t\t\t\t\t\t\t\tweight={e.complete || isCurrent ? 'semibold' : 'medium'}\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t'whitespace-nowrap text-center',\n\t\t\t\t\t\t\t\t\t\t!e.complete && !isCurrent && 'text-muted-foreground',\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{e.label}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t{!!e.timestamp && (\n\t\t\t\t\t\t\t\t\t<Text size=\"xxs\" type=\"discrete\" className=\"tabular-nums\">{e.timestamp}</Text>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{!!currentEta && (\n\t\t\t\t<div className=\"mt-3 flex items-center justify-between rounded-lg border border-border/50 bg-primary/5 px-3 py-2\">\n\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" weight=\"medium\" className=\"uppercase tracking-wider\">{strings.eta}</Text>\n\t\t\t\t\t<Text tag=\"span\" weight=\"semibold\">{currentEta}</Text>\n\t\t\t\t</div>\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 a soft gradient, 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-blue-700 via-blue-800 to-indigo-900',\n\tmastercard: 'from-orange-600 via-rose-700 to-rose-900',\n\tamex: 'from-sky-600 via-cyan-700 to-cyan-900',\n\tpaypal: 'from-blue-600 via-indigo-700 to-blue-900',\n\tapplepay: 'from-zinc-700 via-zinc-800 to-zinc-950',\n\tgooglepay: 'from-emerald-600 via-teal-700 to-teal-900',\n\tunknown: 'from-zinc-700 via-zinc-800 to-zinc-950',\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\tclassName={cn('payment-method--component', 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 flex flex-col gap-5 rounded-xl bg-gradient-to-br p-4 text-white shadow-md ring-1 ring-white/10 overflow-hidden',\n\t\t\t\t\tgradient,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{/* Decorative chip + glow */}\n\t\t\t\t<div className=\"absolute -top-8 -right-8 size-32 rounded-full bg-white/[0.08] blur-xl\" aria-hidden=\"true\" />\n\t\t\t\t<div className=\"absolute -bottom-6 -left-6 size-24 rounded-full bg-white/[0.06] blur-lg\" aria-hidden=\"true\" />\n\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-yellow-300/90 to-yellow-500/80 shadow-sm\">\n\t\t\t\t\t\t<div className=\"size-4 rounded-sm border border-yellow-700/30 bg-yellow-200/60\" />\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-white/15 px-2 py-0.5 tracking-[0.15em] text-white 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=\"lg\"\n\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\tclassName=\"block font-mono tracking-[0.25em] text-white\"\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-white/60\">{strings.cardHolder}</Text>\n\t\t\t\t\t\t\t\t<Text weight=\"semibold\" className=\"truncate text-white\">{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-white/60\">{strings.expires}</Text>\n\t\t\t\t\t\t\t<Text tag=\"span\" weight=\"semibold\" className=\"tabular-nums text-white\">{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\t{!!onChange && (\n\t\t\t\t<div className=\"mt-3 flex justify-end\">\n\t\t\t\t\t<Button buttonStyle=\"ghost\" variant=\"secondary\" onClick={onChange}>\n\t\t\t\t\t\t{strings.change}\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</SmartCard>\n\t);\n}\n\nPaymentMethodCard.displayName = 'PaymentMethodCard';\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","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 = 'primary',\n\ttimePlacement = 'below',\n}: UpcomingBookingRowProps) {\n\treturn (\n\t\t<ItemGroup className={cn('upcoming-booking--component', 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}`}>\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>\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>\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', 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\">\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', 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\">\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', 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', 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', 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', 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\theaderEnd={\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', 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\tplaceholder: string;\n\tcheck: string;\n\tremove: string;\n\tbalance: string;\n\tnotFound: string;\n}\n\nexport const defaultVoucherEntryStrings: VoucherEntryStrings = {\n\ttitle: 'Redeem a gift card',\n\tplaceholder: 'Enter gift card code',\n\tcheck: 'Check balance',\n\tremove: 'Remove',\n\tbalance: 'Available balance',\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 { useState } from 'react';\nimport { Check, Gift, X } from 'lucide-react';\nimport { Button } from '@/components/base/buttons';\nimport { SmartCard } from '@/components/base/cards';\nimport { IconBadge } from '@/components/base/display';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemDescription,\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';\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 [code, setCode] = useState('');\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', className)}\n\t\t\t>\n\t\t\t\t<Item variant=\"muted\" className=\"border border-success/30 bg-success/8\">\n\t\t\t\t\t<ItemMedia>\n\t\t\t\t\t\t<IconBadge icon={Check} tone=\"success\" size=\"md\" className=\"ring-1 ring-success/20\" />\n\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t<ItemContent>\n\t\t\t\t\t\t<ItemTitle className=\"font-mono tracking-wider\">\n\t\t\t\t\t\t\t{appliedCode}\n\t\t\t\t\t\t</ItemTitle>\n\t\t\t\t\t\t<ItemDescription className=\"uppercase tracking-wide\" clamp={1}>\n\t\t\t\t\t\t\t{strings.balance}\n\t\t\t\t\t\t</ItemDescription>\n\t\t\t\t\t</ItemContent>\n\t\t\t\t\t<ItemActions>\n\t\t\t\t\t\t{!!balance && (\n\t\t\t\t\t\t\t<Text tag=\"span\" size=\"base\" weight=\"semibold\" type=\"success\" className=\"tabular-nums shrink-0\">\n\t\t\t\t\t\t\t\t{balance}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{!!onRemove && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\tvariant=\"error\"\n\t\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\t\tsize=\"icon-xs\"\n\t\t\t\t\t\t\t\tonClick={onRemove}\n\t\t\t\t\t\t\t\taria-label={strings.remove}\n\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>\n\t\t\t\t\t\t\t\t<X className=\"size-3.5\" />\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</ItemActions>\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={className}\n\t\t>\n\t\t\t<div className=\"flex flex-col gap-2\">\n\t\t\t\t<div className=\"flex gap-2\">\n\t\t\t\t\t<Input\n\t\t\t\t\t\tvalue={code}\n\t\t\t\t\t\tonChange={(e) => setCode((e.target as HTMLInputElement).value)}\n\t\t\t\t\t\tplaceholder={strings.placeholder}\n\t\t\t\t\t\tstartIcon={Gift}\n\t\t\t\t\t\tclassName=\"flex-1 font-mono uppercase tracking-wider\"\n\t\t\t\t\t\tinvalid={Boolean(error)}\n\t\t\t\t\t/>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tonClick={() => onCheck?.(code)}\n\t\t\t\t\t\tloading={loading}\n\t\t\t\t\t\tdisabled={!code.trim()}\n\t\t\t\t\t>\n\t\t\t\t\t\t{strings.check}\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\">\n\t\t\t\t\t\t{error || strings.notFound}\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\nVoucherEntryCard.displayName = 'VoucherEntryCard';\n","export interface CartLineItem {\n\tid: string;\n\tname: string;\n\tqty: number;\n\tprice: string;\n\timageUrl?: 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 CartSummaryCardProps } from './types';\n\nimport { cn } from '@/lib/utils';\nconst stripLeadingMinus = (value: string): string => value.replace(/^[\\s−-]+/, '');\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', className)}>\n\t\t\t<ItemGroup>\n\t\t\t\t{items.map((it) => (\n\t\t\t\t\t<Item key={it.id} size=\"xs\" className=\"px-0\">\n\t\t\t\t\t\t<ItemMedia variant=\"image\">\n\t\t\t\t\t\t\t{it.imageUrl ? (\n\t\t\t\t\t\t\t\t<img src={it.imageUrl} alt={it.name} />\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<ShoppingBag />\n\t\t\t\t\t\t\t)}\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>{it.name}</ItemTitle>\n\t\t\t\t\t\t\t<ItemDescription clamp={1} className=\"tabular-nums\">x{it.qty}</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 tag=\"span\" weight=\"semibold\" className=\"tabular-nums shrink-0\">{it.price}</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{!!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\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−-]+/, '');\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\n\tif (appliedCode) {\n\t\treturn (\n\t\t\t<SmartCard icon={<TicketPercent className=\"size-4\" />} title={strings.title} className={cn('coupon-input--component', className)}>\n\t\t\t\t<Item variant=\"muted\" className=\"border border-success/30 bg-success/8\">\n\t\t\t\t\t<ItemMedia>\n\t\t\t\t\t\t<IconBadge icon={Check} tone=\"success\" size=\"md\" className=\"ring-1 ring-success/20\" />\n\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t<ItemContent>\n\t\t\t\t\t\t<ItemTitle className=\"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<ItemActions>\n\t\t\t\t\t\t{!!appliedDiscount && (\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\tsize=\"base\"\n\t\t\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\t\t\ttype=\"success\"\n\t\t\t\t\t\t\t\tclassName=\"tabular-nums shrink-0\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t−{stripLeadingMinus(appliedDiscount)}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{!!onRemove && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\tvariant=\"error\"\n\t\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\t\tsize=\"icon-xs\"\n\t\t\t\t\t\t\t\tonClick={onRemove}\n\t\t\t\t\t\t\t\taria-label={strings.remove}\n\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>\n\t\t\t\t\t\t\t\t<X className=\"size-3.5\" />\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</ItemActions>\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={className}>\n\t\t\t<div className=\"flex flex-col gap-2\">\n\t\t\t\t<div className=\"flex gap-2\">\n\t\t\t\t\t<Input\n\t\t\t\t\t\tvalue={code}\n\t\t\t\t\t\tonChange={(e) => setCode((e.target as HTMLInputElement).value)}\n\t\t\t\t\t\tplaceholder={strings.placeholder}\n\t\t\t\t\t\tstartIcon={Sparkles}\n\t\t\t\t\t\tclassName=\"flex-1 font-mono uppercase tracking-wider\"\n\t\t\t\t\t\tinvalid={Boolean(error)}\n\t\t\t\t\t/>\n\t\t\t\t\t<Button onClick={() => onApply?.(code)} loading={loading} disabled={!code.trim()}>\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}\n\nexport const defaultOrderStatusStrings: OrderStatusStrings = {\n\ttitle: 'Order status',\n\tstatusLabel: 'Current status',\n\teta: 'ETA',\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 + horizontal step ribbon\n * (each step shows its label, optional timestamp, and a connector line to\n * the next step). Ideal for dashboards / receipt summaries. Strings\n * overridable for i18n.\n */\nimport { Package, Check } 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\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', className)}\n\t\t>\n\t\t\t<div className=\"overflow-x-auto pb-1\">\n\t\t\t\t<div className=\"flex min-w-full items-start\">\n\t\t\t\t\t{events.map((e, i) => {\n\t\t\t\t\t\tconst isLast = i === events.length - 1;\n\t\t\t\t\t\tconst connectorActive = i < lastCompleteIdx;\n\t\t\t\t\t\tconst isCurrent = i === lastCompleteIdx + 1 || (e.complete && i === lastCompleteIdx);\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<div key={`${e.label}-${i}`} className=\"flex flex-1 flex-col items-center gap-1.5\">\n\t\t\t\t\t\t\t\t{/* Dot + connector row */}\n\t\t\t\t\t\t\t\t<div className=\"relative flex w-full items-center\">\n\t\t\t\t\t\t\t\t\t{/* leading half-line */}\n\t\t\t\t\t\t\t\t\t{i > 0 && (\n\t\t\t\t\t\t\t\t\t\t<div\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'h-0.5 flex-1',\n\t\t\t\t\t\t\t\t\t\t\t\ti <= 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\t{i === 0 && <div className=\"flex-1\" aria-hidden=\"true\" />}\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'relative flex size-6 shrink-0 items-center justify-center rounded-full',\n\t\t\t\t\t\t\t\t\t\t\te.complete\n\t\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\t: 'border-2 border-border bg-card text-muted-foreground',\n\t\t\t\t\t\t\t\t\t\t\tisCurrent && !e.complete && 'border-primary text-primary',\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{e.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) : (\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"size-1.5 rounded-full bg-current\" />\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t{/* trailing half-line */}\n\t\t\t\t\t\t\t\t\t{!isLast ? (\n\t\t\t\t\t\t\t\t\t\t<div\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'h-0.5 flex-1',\n\t\t\t\t\t\t\t\t\t\t\t\tconnectorActive ? '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\t\t<div className=\"flex-1\" aria-hidden=\"true\" />\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<Text\n\t\t\t\t\t\t\t\t\tsize=\"xxs\"\n\t\t\t\t\t\t\t\t\tweight={e.complete || isCurrent ? 'semibold' : 'medium'}\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t'whitespace-nowrap text-center',\n\t\t\t\t\t\t\t\t\t\t!e.complete && !isCurrent && 'text-muted-foreground',\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{e.label}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t{!!e.timestamp && (\n\t\t\t\t\t\t\t\t\t<Text size=\"xxs\" type=\"discrete\" className=\"tabular-nums\">{e.timestamp}</Text>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{!!currentEta && (\n\t\t\t\t<div className=\"mt-3 flex items-center justify-between rounded-lg border border-border/50 bg-primary/5 px-3 py-2\">\n\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" weight=\"medium\" className=\"uppercase tracking-wider\">{strings.eta}</Text>\n\t\t\t\t\t<Text tag=\"span\" weight=\"semibold\">{currentEta}</Text>\n\t\t\t\t</div>\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 a soft gradient, 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-blue-700 via-blue-800 to-indigo-900',\n\tmastercard: 'from-orange-600 via-rose-700 to-rose-900',\n\tamex: 'from-sky-600 via-cyan-700 to-cyan-900',\n\tpaypal: 'from-blue-600 via-indigo-700 to-blue-900',\n\tapplepay: 'from-zinc-700 via-zinc-800 to-zinc-950',\n\tgooglepay: 'from-emerald-600 via-teal-700 to-teal-900',\n\tunknown: 'from-zinc-700 via-zinc-800 to-zinc-950',\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\tclassName={cn('payment-method--component', 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 flex flex-col gap-5 rounded-xl bg-gradient-to-br p-4 text-white shadow-md ring-1 ring-white/10 overflow-hidden',\n\t\t\t\t\tgradient,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{/* Decorative chip + glow */}\n\t\t\t\t<div className=\"absolute -top-8 -right-8 size-32 rounded-full bg-white/[0.08] blur-xl\" aria-hidden=\"true\" />\n\t\t\t\t<div className=\"absolute -bottom-6 -left-6 size-24 rounded-full bg-white/[0.06] blur-lg\" aria-hidden=\"true\" />\n\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-yellow-300/90 to-yellow-500/80 shadow-sm\">\n\t\t\t\t\t\t<div className=\"size-4 rounded-sm border border-yellow-700/30 bg-yellow-200/60\" />\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-white/15 px-2 py-0.5 tracking-[0.15em] text-white 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=\"lg\"\n\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\tclassName=\"block font-mono tracking-[0.25em] text-white\"\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-white/60\">{strings.cardHolder}</Text>\n\t\t\t\t\t\t\t\t<Text weight=\"semibold\" className=\"truncate text-white\">{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-white/60\">{strings.expires}</Text>\n\t\t\t\t\t\t\t<Text tag=\"span\" weight=\"semibold\" className=\"tabular-nums text-white\">{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\t{!!onChange && (\n\t\t\t\t<div className=\"mt-3 flex justify-end\">\n\t\t\t\t\t<Button buttonStyle=\"ghost\" variant=\"secondary\" onClick={onChange}>\n\t\t\t\t\t\t{strings.change}\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</SmartCard>\n\t);\n}\n\nPaymentMethodCard.displayName = 'PaymentMethodCard';\n"],"mappings":"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"}
@@ -1,15 +1,15 @@
1
1
  import { useStrings as e } from "../../../lib/strings.js";
2
2
  import { cn as t } from "../../../lib/utils.js";
3
3
  import { t as n } from "../../../_shared/text-DIxMTECE.js";
4
- import { o as r } from "../../../_shared/typography-BtPQBvSm.js";
5
- import { t as i } from "../../../_shared/icon-badge-DoClA_9q.js";
6
- import { t as a } from "../../../_shared/badge-BbUN6W7E.js";
7
- import { t as o } from "../../../_shared/button-Ck2qS42n.js";
8
- import { t as s } from "../../../_shared/smart-card-hJ01usWt.js";
9
- import { t as c } from "../../../_shared/separator-BazqiQ9s.js";
10
- import { t as l } from "../../../_shared/input-Cwv1-5jt.js";
11
- import { N as u, i as d } from "../../../_shared/display-DUpkE2aS.js";
12
- import { c as f, i as p, n as m, o as h, r as g, t as _, u as v } from "../../../_shared/item-BmTYKzEb.js";
4
+ import { t as r } from "../../../_shared/heading-BprqyzDs.js";
5
+ import { t as i } from "../../../_shared/icon-badge-Bi63T-bj.js";
6
+ import { t as a } from "../../../_shared/badge-BVCh_hfL.js";
7
+ import { t as o } from "../../../_shared/button-ChCkwoOD.js";
8
+ import { t as s } from "../../../_shared/smart-card-MT6JjkoI.js";
9
+ import { t as c } from "../../../_shared/separator-DR0uUMKa.js";
10
+ import { t as l } from "../../../_shared/input-DQahu2sm.js";
11
+ import { M as u, i as d } from "../../../_shared/display-BM_GxDAo.js";
12
+ import { c as f, i as p, n as m, o as h, r as g, t as _, u as v } from "../../../_shared/item-Cu5JbZyZ.js";
13
13
  import { useState as y } from "react";
14
14
  import { Fragment as b, jsx as x, jsxs as S } from "react/jsx-runtime";
15
15
  import { Calendar as C, Check as w, ChevronRight as T, CreditCard as E, Edit2 as D, Gift as O, MapPin as ee, Package as te, Receipt as ne, Repeat as re, RotateCcw as ie, ShoppingBag as k, Sparkles as ae, Star as oe, TicketPercent as A, Trash2 as se, Trophy as ce, X as j } from "lucide-react";