admin-ui-starter-kit 0.4.5 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (980) hide show
  1. package/.agents/skills/admin-ui-consumer-migration/SKILL.md +26 -4
  2. package/.agents/skills/admin-ui-consumer-migration/references/actions-service.md +57 -47
  3. package/.agents/skills/admin-ui-consumer-migration/references/package-gap-surfaces.md +52 -0
  4. package/.agents/skills/component-library-rules/references/components/INDEX.json +8 -7
  5. package/.agents/skills/component-library-rules/references/components/INDEX.md +1 -0
  6. package/.agents/skills/component-library-rules/references/components/base__combobox.md +37 -1
  7. package/.agents/skills/component-library-rules/references/components/base__forms.md +56 -1
  8. package/.agents/skills/component-library-rules/references/components/base__table.md +145 -3
  9. package/.agents/skills/component-library-rules/references/components/composed__admin.md +66 -0
  10. package/.agents/skills/component-library-rules/references/components/composed__resource-selector-card.md +85 -0
  11. package/.agents/skills/component-library-rules/references/components/features__filters.md +69 -0
  12. package/.agents/skills/component-library-rules/references/components/layout__layout-header.md +35 -0
  13. package/.agents/skills/component-library-rules/references/components/layout__layout-page.md +170 -7
  14. package/CHANGELOG.md +19 -3
  15. package/COMPONENT_SELECTION.md +30 -3
  16. package/INTEGRATION.md +69 -20
  17. package/README.md +60 -27
  18. package/dist/_shared/ai-artifact--vEDQFvM.cjs +3 -0
  19. package/dist/_shared/ai-artifact--vEDQFvM.cjs.map +1 -0
  20. package/dist/_shared/ai-artifact-p45wDWWX.js +1099 -0
  21. package/dist/_shared/ai-artifact-p45wDWWX.js.map +1 -0
  22. package/dist/_shared/auth-1Fl_2u-c.js +643 -0
  23. package/dist/_shared/auth-1Fl_2u-c.js.map +1 -0
  24. package/dist/_shared/auth-CVDNwcge.cjs +2 -0
  25. package/dist/_shared/auth-CVDNwcge.cjs.map +1 -0
  26. package/dist/_shared/badge-A8wQRShC.js +108 -0
  27. package/dist/_shared/badge-A8wQRShC.js.map +1 -0
  28. package/dist/_shared/badge-D7A2LnSf.cjs +2 -0
  29. package/dist/_shared/badge-D7A2LnSf.cjs.map +1 -0
  30. package/dist/_shared/combobox-CEzH533Y.cjs +2 -0
  31. package/dist/_shared/combobox-CEzH533Y.cjs.map +1 -0
  32. package/dist/_shared/combobox-Dc4vaeGt.js +927 -0
  33. package/dist/_shared/combobox-Dc4vaeGt.js.map +1 -0
  34. package/dist/_shared/comments-BDnq4RPN.js +952 -0
  35. package/dist/_shared/comments-BDnq4RPN.js.map +1 -0
  36. package/dist/_shared/comments-C4djB-nG.cjs +2 -0
  37. package/dist/_shared/comments-C4djB-nG.cjs.map +1 -0
  38. package/dist/_shared/display-AtPyyUZc.cjs +2 -0
  39. package/dist/_shared/display-AtPyyUZc.cjs.map +1 -0
  40. package/dist/_shared/display-CL69dmsv.js +1471 -0
  41. package/dist/_shared/display-CL69dmsv.js.map +1 -0
  42. package/dist/_shared/forms-Bi5rUH3t.cjs +2 -0
  43. package/dist/_shared/forms-Bi5rUH3t.cjs.map +1 -0
  44. package/dist/_shared/forms-Yd0b-3MQ.js +3556 -0
  45. package/dist/_shared/forms-Yd0b-3MQ.js.map +1 -0
  46. package/dist/_shared/header-C4SvsbMn.cjs +2 -0
  47. package/dist/_shared/header-C4SvsbMn.cjs.map +1 -0
  48. package/dist/_shared/header-CcnW83Vs.js +447 -0
  49. package/dist/_shared/header-CcnW83Vs.js.map +1 -0
  50. package/dist/_shared/hooks-DsDGr8xz.cjs +2 -0
  51. package/dist/_shared/hooks-DsDGr8xz.cjs.map +1 -0
  52. package/dist/_shared/hooks-IEM3N4VG.js +95 -0
  53. package/dist/_shared/hooks-IEM3N4VG.js.map +1 -0
  54. package/dist/_shared/layout.types-CYuDZ_4h.cjs +2 -0
  55. package/dist/_shared/layout.types-CYuDZ_4h.cjs.map +1 -0
  56. package/dist/_shared/layout.types-j7zZAPtg.js +28 -0
  57. package/dist/_shared/layout.types-j7zZAPtg.js.map +1 -0
  58. package/dist/_shared/mentions-CqwT7pUL.cjs +2 -0
  59. package/dist/_shared/mentions-CqwT7pUL.cjs.map +1 -0
  60. package/dist/_shared/mentions-RxzSRAWE.js +506 -0
  61. package/dist/_shared/mentions-RxzSRAWE.js.map +1 -0
  62. package/dist/_shared/navigation-B-TE-HR-.cjs +2 -0
  63. package/dist/_shared/navigation-B-TE-HR-.cjs.map +1 -0
  64. package/dist/_shared/navigation-Cg0UqMDP.js +424 -0
  65. package/dist/_shared/navigation-Cg0UqMDP.js.map +1 -0
  66. package/dist/_shared/page-Bl_eSGLh.js +262 -0
  67. package/dist/_shared/page-Bl_eSGLh.js.map +1 -0
  68. package/dist/_shared/page-DTEqSyEK.cjs +2 -0
  69. package/dist/_shared/page-DTEqSyEK.cjs.map +1 -0
  70. package/dist/_shared/resource-Bb7dj-aj.cjs +2 -0
  71. package/dist/_shared/resource-Bb7dj-aj.cjs.map +1 -0
  72. package/dist/_shared/resource-DljsYA7W.js +243 -0
  73. package/dist/_shared/resource-DljsYA7W.js.map +1 -0
  74. package/dist/_shared/settings-BtNkFHl3.cjs +2 -0
  75. package/dist/_shared/settings-BtNkFHl3.cjs.map +1 -0
  76. package/dist/_shared/settings-Do6SuM-H.js +143 -0
  77. package/dist/_shared/settings-Do6SuM-H.js.map +1 -0
  78. package/dist/_shared/sidebar-BhcdQ9e9.cjs +2 -0
  79. package/dist/_shared/sidebar-BhcdQ9e9.cjs.map +1 -0
  80. package/dist/_shared/sidebar-CMoxtuSw.js +538 -0
  81. package/dist/_shared/sidebar-CMoxtuSw.js.map +1 -0
  82. package/dist/_shared/table-BgpL5Yt8.cjs +2 -0
  83. package/dist/_shared/table-BgpL5Yt8.cjs.map +1 -0
  84. package/dist/_shared/table-Ct3nl0lV.js +1381 -0
  85. package/dist/_shared/table-Ct3nl0lV.js.map +1 -0
  86. package/dist/_shared/workspace-BzTFBkmd.cjs +2 -0
  87. package/dist/_shared/workspace-BzTFBkmd.cjs.map +1 -0
  88. package/dist/_shared/workspace-CvUYln5V.js +357 -0
  89. package/dist/_shared/workspace-CvUYln5V.js.map +1 -0
  90. package/dist/components/base/badge/badge.d.ts.map +1 -1
  91. package/dist/components/base/badge/index.cjs +1 -1
  92. package/dist/components/base/badge/index.js +1 -1
  93. package/dist/components/base/combobox/async-resource-combobox.d.ts +41 -0
  94. package/dist/components/base/combobox/async-resource-combobox.d.ts.map +1 -0
  95. package/dist/components/base/combobox/index.cjs +1 -1
  96. package/dist/components/base/combobox/index.d.ts +1 -0
  97. package/dist/components/base/combobox/index.d.ts.map +1 -1
  98. package/dist/components/base/combobox/index.js +2 -2
  99. package/dist/components/base/data-view/data-view.d.ts +6 -0
  100. package/dist/components/base/data-view/data-view.d.ts.map +1 -0
  101. package/dist/components/base/data-view/data-view.strings.d.ts +7 -0
  102. package/dist/components/base/data-view/data-view.strings.d.ts.map +1 -0
  103. package/dist/components/base/data-view/data-view.types.d.ts +57 -0
  104. package/dist/components/base/data-view/data-view.types.d.ts.map +1 -0
  105. package/dist/components/base/data-view/index.cjs +2 -0
  106. package/dist/components/base/data-view/index.cjs.map +1 -0
  107. package/dist/components/base/data-view/index.d.ts +4 -0
  108. package/dist/components/base/data-view/index.d.ts.map +1 -0
  109. package/dist/components/base/data-view/index.js +146 -0
  110. package/dist/components/base/data-view/index.js.map +1 -0
  111. package/dist/components/base/display/index.cjs +1 -1
  112. package/dist/components/base/display/index.js +5 -5
  113. package/dist/components/base/forms/index.cjs +1 -1
  114. package/dist/components/base/forms/index.d.ts +1 -0
  115. package/dist/components/base/forms/index.d.ts.map +1 -1
  116. package/dist/components/base/forms/index.js +5 -6
  117. package/dist/components/base/forms/workflow.d.ts +47 -0
  118. package/dist/components/base/forms/workflow.d.ts.map +1 -0
  119. package/dist/components/base/navigation/index.cjs +1 -1
  120. package/dist/components/base/navigation/index.js +1 -1
  121. package/dist/components/base/navigation/overflow-tab-bar.d.ts.map +1 -1
  122. package/dist/components/base/table/data-table.d.ts +1 -1
  123. package/dist/components/base/table/data-table.d.ts.map +1 -1
  124. package/dist/components/base/table/index.cjs +1 -1
  125. package/dist/components/base/table/index.d.ts +1 -1
  126. package/dist/components/base/table/index.d.ts.map +1 -1
  127. package/dist/components/base/table/index.js +2 -2
  128. package/dist/components/base/table/partials/cell-renderers.d.ts +69 -0
  129. package/dist/components/base/table/partials/cell-renderers.d.ts.map +1 -1
  130. package/dist/components/base/table/table.strings.d.ts.map +1 -1
  131. package/dist/components/base/table/table.types.d.ts +22 -1
  132. package/dist/components/base/table/table.types.d.ts.map +1 -1
  133. package/dist/components/composed/admin/action-surfaces/index.d.ts +118 -0
  134. package/dist/components/composed/admin/action-surfaces/index.d.ts.map +1 -0
  135. package/dist/components/composed/admin/index.cjs +1 -1
  136. package/dist/components/composed/admin/index.cjs.map +1 -1
  137. package/dist/components/composed/admin/index.d.ts +1 -0
  138. package/dist/components/composed/admin/index.d.ts.map +1 -1
  139. package/dist/components/composed/admin/index.js +392 -131
  140. package/dist/components/composed/admin/index.js.map +1 -1
  141. package/dist/components/composed/ai/index.cjs +1 -1
  142. package/dist/components/composed/ai/index.js +17 -17
  143. package/dist/components/composed/cards/index.cjs +1 -1
  144. package/dist/components/composed/cards/index.js +2 -2
  145. package/dist/components/composed/commerce/index.cjs +1 -1
  146. package/dist/components/composed/commerce/index.cjs.map +1 -1
  147. package/dist/components/composed/commerce/index.js +43 -44
  148. package/dist/components/composed/commerce/index.js.map +1 -1
  149. package/dist/components/composed/dark-surfaces/index.cjs +1 -1
  150. package/dist/components/composed/dark-surfaces/index.js +17 -17
  151. package/dist/components/composed/data-display/index.cjs +1 -1
  152. package/dist/components/composed/data-display/index.cjs.map +1 -1
  153. package/dist/components/composed/data-display/index.d.ts +1 -0
  154. package/dist/components/composed/data-display/index.d.ts.map +1 -1
  155. package/dist/components/composed/data-display/index.js +355 -285
  156. package/dist/components/composed/data-display/index.js.map +1 -1
  157. package/dist/components/composed/data-display/resource-selector-card.d.ts +43 -0
  158. package/dist/components/composed/data-display/resource-selector-card.d.ts.map +1 -0
  159. package/dist/components/composed/navigation/index.cjs +1 -1
  160. package/dist/components/composed/navigation/index.js +1 -1
  161. package/dist/components/composed/timelines/index.cjs +1 -1
  162. package/dist/components/composed/timelines/index.js +1 -1
  163. package/dist/components/features/activities/index.cjs +1 -1
  164. package/dist/components/features/activities/index.js +1 -1
  165. package/dist/components/features/ai-chat/index.cjs +1 -1
  166. package/dist/components/features/ai-chat/index.js +2 -2
  167. package/dist/components/features/comments/index.cjs +1 -1
  168. package/dist/components/features/comments/index.js +2 -2
  169. package/dist/components/features/event-log/index.cjs +1 -1
  170. package/dist/components/features/event-log/index.js +2 -2
  171. package/dist/components/features/filters/filter-query.d.ts +22 -0
  172. package/dist/components/features/filters/filter-query.d.ts.map +1 -0
  173. package/dist/components/features/filters/index.cjs +1 -1
  174. package/dist/components/features/filters/index.cjs.map +1 -1
  175. package/dist/components/features/filters/index.d.ts +1 -0
  176. package/dist/components/features/filters/index.d.ts.map +1 -1
  177. package/dist/components/features/filters/index.js +105 -22
  178. package/dist/components/features/filters/index.js.map +1 -1
  179. package/dist/components/features/global-search/index.cjs +1 -1
  180. package/dist/components/features/global-search/index.js +1 -1
  181. package/dist/components/features/media-library/index.cjs +1 -1
  182. package/dist/components/features/media-library/index.cjs.map +1 -1
  183. package/dist/components/features/media-library/index.js +36 -37
  184. package/dist/components/features/media-library/index.js.map +1 -1
  185. package/dist/components/features/mentions/index.cjs +1 -1
  186. package/dist/components/features/mentions/index.js +1 -1
  187. package/dist/components/features/products/index.cjs +1 -1
  188. package/dist/components/features/products/index.cjs.map +1 -1
  189. package/dist/components/features/products/index.js +4 -5
  190. package/dist/components/features/products/index.js.map +1 -1
  191. package/dist/components/features/schema-form/index.cjs +1 -1
  192. package/dist/components/features/schema-form/index.cjs.map +1 -1
  193. package/dist/components/features/schema-form/index.js +20 -20
  194. package/dist/components/features/suggestions/index.cjs +1 -1
  195. package/dist/components/features/suggestions/index.js +1 -1
  196. package/dist/components/layout/app-shell/index.cjs +1 -1
  197. package/dist/components/layout/app-shell/index.d.ts +1 -0
  198. package/dist/components/layout/app-shell/index.d.ts.map +1 -1
  199. package/dist/components/layout/app-shell/index.js +1 -1
  200. package/dist/components/layout/auth/index.cjs +1 -1
  201. package/dist/components/layout/auth/index.js +1 -1
  202. package/dist/components/layout/header/header.types.d.ts +40 -4
  203. package/dist/components/layout/header/header.types.d.ts.map +1 -1
  204. package/dist/components/layout/header/index.cjs +1 -1
  205. package/dist/components/layout/header/index.d.ts +5 -1
  206. package/dist/components/layout/header/index.d.ts.map +1 -1
  207. package/dist/components/layout/header/index.js +2 -2
  208. package/dist/components/layout/header/partials/header-global-search-trigger.d.ts +3 -0
  209. package/dist/components/layout/header/partials/header-global-search-trigger.d.ts.map +1 -0
  210. package/dist/components/layout/header/partials/header-notifications.d.ts.map +1 -1
  211. package/dist/components/layout/header/partials/header-search.d.ts.map +1 -1
  212. package/dist/components/layout/header/partials/header-tool-button.d.ts +5 -0
  213. package/dist/components/layout/header/partials/header-tool-button.d.ts.map +1 -0
  214. package/dist/components/layout/header/partials/header-tool-popover.d.ts +3 -0
  215. package/dist/components/layout/header/partials/header-tool-popover.d.ts.map +1 -0
  216. package/dist/components/layout/header/partials/header-user-menu.d.ts.map +1 -1
  217. package/dist/components/layout/hooks/index.cjs +1 -1
  218. package/dist/components/layout/hooks/index.js +1 -1
  219. package/dist/components/layout/index.cjs +1 -1
  220. package/dist/components/layout/index.d.ts +2 -0
  221. package/dist/components/layout/index.d.ts.map +1 -1
  222. package/dist/components/layout/index.js +13 -10
  223. package/dist/components/layout/page/index.cjs +1 -1
  224. package/dist/components/layout/page/index.js +1 -1
  225. package/dist/components/layout/resource/index.cjs +1 -0
  226. package/dist/components/layout/resource/index.d.ts +3 -0
  227. package/dist/components/layout/resource/index.d.ts.map +1 -0
  228. package/dist/components/layout/resource/index.js +2 -0
  229. package/dist/components/layout/resource/resource.d.ts +13 -0
  230. package/dist/components/layout/resource/resource.d.ts.map +1 -0
  231. package/dist/components/layout/resource/resource.types.d.ts +86 -0
  232. package/dist/components/layout/resource/resource.types.d.ts.map +1 -0
  233. package/dist/components/layout/settings/index.cjs +1 -0
  234. package/dist/components/layout/settings/index.d.ts +2 -0
  235. package/dist/components/layout/settings/index.d.ts.map +1 -0
  236. package/dist/components/layout/settings/index.js +2 -0
  237. package/dist/components/layout/settings/settings.d.ts +47 -0
  238. package/dist/components/layout/settings/settings.d.ts.map +1 -0
  239. package/dist/components/layout/sidebar/index.cjs +1 -1
  240. package/dist/components/layout/sidebar/index.d.ts +1 -0
  241. package/dist/components/layout/sidebar/index.d.ts.map +1 -1
  242. package/dist/components/layout/sidebar/index.js +3 -3
  243. package/dist/components/layout/workspace/index.cjs +1 -1
  244. package/dist/components/layout/workspace/index.js +1 -1
  245. package/dist/services/actions/action-adapters.d.ts +5 -0
  246. package/dist/services/actions/action-adapters.d.ts.map +1 -1
  247. package/dist/services/actions/action-provider.d.ts +1 -1
  248. package/dist/services/actions/action-provider.d.ts.map +1 -1
  249. package/dist/services/actions/action-store.d.ts.map +1 -1
  250. package/dist/services/actions/actions.types.d.ts +25 -0
  251. package/dist/services/actions/actions.types.d.ts.map +1 -1
  252. package/dist/services/actions/index.cjs +1 -1
  253. package/dist/services/actions/index.cjs.map +1 -1
  254. package/dist/services/actions/index.d.ts +1 -1
  255. package/dist/services/actions/index.d.ts.map +1 -1
  256. package/dist/services/actions/index.js +113 -95
  257. package/dist/services/actions/index.js.map +1 -1
  258. package/dist/showcase/assets/AreaChart-CPs34Emq.js +6 -0
  259. package/dist/showcase/assets/CompositeItem-CRBdF4lY.js +1 -0
  260. package/dist/showcase/assets/CompositeRoot-BJL04x4e.js +1 -0
  261. package/dist/showcase/assets/DialogTrigger-DLTfNVyT.js +1 -0
  262. package/dist/showcase/assets/LabelableContext-DqxJotB_.js +1 -0
  263. package/dist/showcase/assets/PreviewLayout-DQIZaXaO.js +1 -0
  264. package/dist/showcase/assets/RadioGroup-Bd_Zncc1.js +1 -0
  265. package/dist/showcase/assets/Separator-BP98bGSM.js +1 -0
  266. package/dist/showcase/assets/ToolbarRootContext-CHQj8-IW.js +1 -0
  267. package/dist/showcase/assets/accordion-C-grh_FX.js +171 -0
  268. package/dist/showcase/assets/accordion-variants-xiD_mqaf.js +1 -0
  269. package/dist/showcase/assets/action-menu-BkBav9jX.js +1 -0
  270. package/dist/showcase/assets/activities-DWhVEoyf.js +501 -0
  271. package/dist/showcase/assets/activities-feed-card-BW5nKGmZ.js +1 -0
  272. package/dist/showcase/assets/activity-poGMMgYW.js +1 -0
  273. package/dist/showcase/assets/admin-Dd5rNbt8.js +140 -0
  274. package/dist/showcase/assets/ai-B-HxItKA.js +41 -0
  275. package/dist/showcase/assets/ai-artifact-CakosBY2.js +2 -0
  276. package/dist/showcase/assets/ai-chat-DdxooReQ.js +568 -0
  277. package/dist/showcase/assets/ai-elements-D1Vv9_Tw.js +387 -0
  278. package/dist/showcase/assets/ai-new-nIwh-IOk.js +167 -0
  279. package/dist/showcase/assets/ai-tool-call-D_D0wP5v.js +1 -0
  280. package/dist/showcase/assets/alert-BUcCtIUZ.js +1 -0
  281. package/dist/showcase/assets/alert-Dia0s7JO.js +62 -0
  282. package/dist/showcase/assets/alert-T1jitthq.js +93 -0
  283. package/dist/showcase/assets/api-key-list-BH7hCegB.js +1 -0
  284. package/dist/showcase/assets/api-key-list-DGw5v3TM.js +73 -0
  285. package/dist/showcase/assets/app-sidebar-C9tjHr7T.js +1 -0
  286. package/dist/showcase/assets/arrow-down-B6kyPDb5.js +1 -0
  287. package/dist/showcase/assets/arrow-left-D0CtgCZo.js +1 -0
  288. package/dist/showcase/assets/arrow-right-KBaOzj0x.js +1 -0
  289. package/dist/showcase/assets/arrow-up-C4Mo45qq.js +1 -0
  290. package/dist/showcase/assets/arrow-up-right-DP1T-yaT.js +1 -0
  291. package/dist/showcase/assets/avatar-D7SDbnVK.js +57 -0
  292. package/dist/showcase/assets/avatar-Dk78XyHT.js +1 -0
  293. package/dist/showcase/assets/badge-BynPmAU-.js +28 -0
  294. package/dist/showcase/assets/badge-check-BLKxMna6.js +1 -0
  295. package/dist/showcase/assets/bell-YYeVQNAQ.js +1 -0
  296. package/dist/showcase/assets/bot-DW1y5yQ-.js +1 -0
  297. package/dist/showcase/assets/box-xRYm3qua.js +1 -0
  298. package/dist/showcase/assets/brain-D_5EG0Lz.js +1 -0
  299. package/dist/showcase/assets/brand-Dyp6oyOk.js +36 -0
  300. package/dist/showcase/assets/breadcrumb-DXvRsHCJ.js +52 -0
  301. package/dist/showcase/assets/breadcrumb-IsBRcWTe.js +1 -0
  302. package/dist/showcase/assets/breadcrumbs-BU7Rgcpu.js +1 -0
  303. package/dist/showcase/assets/briefcase-DNJAkTSQ.js +1 -0
  304. package/dist/showcase/assets/building-2-ew23uhTO.js +1 -0
  305. package/dist/showcase/assets/button-Vw1Oyu_k.js +44 -0
  306. package/dist/showcase/assets/button-group-B-jDeq6X.js +1 -0
  307. package/dist/showcase/assets/buttons-C51ePl4d.js +270 -0
  308. package/dist/showcase/assets/calendar-B5HmDXFy.js +16 -0
  309. package/dist/showcase/assets/calendar-BcfonDWf.js +1 -0
  310. package/dist/showcase/assets/calendar-C30zoOBE.js +1 -0
  311. package/dist/showcase/assets/calendar-days-RYOuU9Cg.js +1 -0
  312. package/dist/showcase/assets/camera-CyHnOpqm.js +1 -0
  313. package/dist/showcase/assets/card-Btuv-VxD.js +188 -0
  314. package/dist/showcase/assets/card-BvOjmZEl.js +1 -0
  315. package/dist/showcase/assets/card-primitives-FJQ8zNnk.js +1 -0
  316. package/dist/showcase/assets/card-radio-group-CEX1QGZc.js +1 -0
  317. package/dist/showcase/assets/cards-CL6XfZ22.js +328 -0
  318. package/dist/showcase/assets/carousel-D9G8bQhs.js +449 -0
  319. package/dist/showcase/assets/cell-renderers-CFw3ElYS.js +1 -0
  320. package/dist/showcase/assets/chart-CXAM6h1e.js +358 -0
  321. package/dist/showcase/assets/chart-column-BAuLvocu.js +1 -0
  322. package/dist/showcase/assets/checkbox-Bu3lf4gm.js +1 -0
  323. package/dist/showcase/assets/chevron-down-BbbFJsFU.js +1 -0
  324. package/dist/showcase/assets/chevron-left-CmperXCk.js +1 -0
  325. package/dist/showcase/assets/chevron-right-0nQcAzMY.js +1 -0
  326. package/dist/showcase/assets/chevron-up-BXSFzrxh.js +1 -0
  327. package/dist/showcase/assets/chevrons-up-down-lvrM2T-O.js +1 -0
  328. package/dist/showcase/assets/circle-DswWOvJq.js +1 -0
  329. package/dist/showcase/assets/circle-alert-DM8Q0Da0.js +1 -0
  330. package/dist/showcase/assets/circle-check-BYi8zv0a.js +1 -0
  331. package/dist/showcase/assets/circle-check-big-WtxiRvrB.js +1 -0
  332. package/dist/showcase/assets/circle-dot-MfYw-Dij.js +1 -0
  333. package/dist/showcase/assets/circle-question-mark-CbXDG7RP.js +1 -0
  334. package/dist/showcase/assets/circle-x-DeZby2HN.js +1 -0
  335. package/dist/showcase/assets/clock-3-BxradwSg.js +1 -0
  336. package/dist/showcase/assets/clock-BBX3LCxu.js +1 -0
  337. package/dist/showcase/assets/code-xml-ldsBhjwS.js +1 -0
  338. package/dist/showcase/assets/collapsible-COxB1q4f.js +1 -0
  339. package/dist/showcase/assets/collapsible-D8iHSi7O.js +27 -0
  340. package/dist/showcase/assets/combobox-gNdpv0PU.js +726 -0
  341. package/dist/showcase/assets/command-BNVn6pYm.js +1 -0
  342. package/dist/showcase/assets/command-Bwp2eLDF.js +1 -0
  343. package/dist/showcase/assets/comment-composer-eU5HG1ZD.js +1 -0
  344. package/dist/showcase/assets/comment-item-AKJEHLvt.js +1 -0
  345. package/dist/showcase/assets/comments-hcLJicNU.js +357 -0
  346. package/dist/showcase/assets/commerce-C_RgOVxU.js +79 -0
  347. package/dist/showcase/assets/commerce-extras-CVVnDyB5.js +189 -0
  348. package/dist/showcase/assets/composite-BW91WkOo.js +1 -0
  349. package/dist/showcase/assets/contact-card-CE82BDxj.js +65 -0
  350. package/dist/showcase/assets/content-container-Cc8Vv5Wp.js +1 -0
  351. package/dist/showcase/assets/copyable-CD9f6sxk.js +96 -0
  352. package/dist/showcase/assets/copyable-DRvJ9iOu.js +1 -0
  353. package/dist/showcase/assets/course-card-DYzULN2A.js +77 -0
  354. package/dist/showcase/assets/cpu-Cc__BewW.js +1 -0
  355. package/dist/showcase/assets/credit-card-CoIW8_5L.js +1 -0
  356. package/dist/showcase/assets/currency-DEKUvlFU.js +149 -0
  357. package/dist/showcase/assets/dark-surfaces-D5WXaLLj.js +90 -0
  358. package/dist/showcase/assets/database-C8o4g1ov.js +1 -0
  359. package/dist/showcase/assets/date-block-Aw2riL52.js +1 -0
  360. package/dist/showcase/assets/date-picker-BrBCLxZ8.js +1 -0
  361. package/dist/showcase/assets/date-pickers-B84_YAGT.js +73 -0
  362. package/dist/showcase/assets/dense-info-BaI61NnP.js +106 -0
  363. package/dist/showcase/assets/dialog-CfKGB1qy.js +1 -0
  364. package/dist/showcase/assets/dialog-DpfYwJPk.js +1 -0
  365. package/dist/showcase/assets/display-ZDXpxNSP.js +403 -0
  366. package/dist/showcase/assets/dist-DRkwLUFP.js +45 -0
  367. package/dist/showcase/assets/dollar-sign-BTuul0J-.js +1 -0
  368. package/dist/showcase/assets/download-Nn6XkM9l.js +1 -0
  369. package/dist/showcase/assets/dropdown-menu-CrcweCup.js +1 -0
  370. package/dist/showcase/assets/dropzone-MajEhAfA.js +1 -0
  371. package/dist/showcase/assets/earth-Cv_-EtPW.js +1 -0
  372. package/dist/showcase/assets/ellipsis-D0y6rUzm.js +1 -0
  373. package/dist/showcase/assets/ellipsis-vertical-B6ICYsU2.js +1 -0
  374. package/dist/showcase/assets/empty-CWtvDL2Z.js +1 -0
  375. package/dist/showcase/assets/empty-item-CBdSL5K4.js +49 -0
  376. package/dist/showcase/assets/empty-state-DpAXXKE_.js +1 -0
  377. package/dist/showcase/assets/empty-state-x7W66Jff.js +188 -0
  378. package/dist/showcase/assets/enhanced-activities-BgQBDjph.js +361 -0
  379. package/dist/showcase/assets/enhanced-combobox-BT-d7sfw.js +1 -0
  380. package/dist/showcase/assets/event-calendar-Bl3N30L5.js +138 -0
  381. package/dist/showcase/assets/event-log-BI24HOvx.js +330 -0
  382. package/dist/showcase/assets/example-CbMg22fx.js +1 -0
  383. package/dist/showcase/assets/external-link-C4QW5KPr.js +1 -0
  384. package/dist/showcase/assets/eye-rvb4fYw0.js +1 -0
  385. package/dist/showcase/assets/feature-announcement-CChQvOnH.js +34 -0
  386. package/dist/showcase/assets/file-GOMuLez7.js +1 -0
  387. package/dist/showcase/assets/file-text-B21ZcL9w.js +1 -0
  388. package/dist/showcase/assets/filters-Crp5EI1q.js +139 -0
  389. package/dist/showcase/assets/flag-D1iXMqPC.js +1 -0
  390. package/dist/showcase/assets/folder-open-CjZE_PS8.js +1 -0
  391. package/dist/showcase/assets/form-field-Dtn_NArM.js +1 -0
  392. package/dist/showcase/assets/format-Cu09wP-k.js +1 -0
  393. package/dist/showcase/assets/forms-noSArwvn.js +911 -0
  394. package/dist/showcase/assets/frame-2DJdBXkw.js +167 -0
  395. package/dist/showcase/assets/getPseudoElementBounds-DxlN6Yut.js +1 -0
  396. package/dist/showcase/assets/gift-DBIsZsVg.js +1 -0
  397. package/dist/showcase/assets/giftcard-cards-B3ffDDjK.js +85 -0
  398. package/dist/showcase/assets/git-branch-6eIv9W2g.js +1 -0
  399. package/dist/showcase/assets/global-search-BelZn8mj.js +215 -0
  400. package/dist/showcase/assets/global-search-DSMNBBiZ.js +1 -0
  401. package/dist/showcase/assets/globe-B_Lqx3uz.js +1 -0
  402. package/dist/showcase/assets/gradient-card-D_2eaE6O.js +58 -0
  403. package/dist/showcase/assets/hash-BC0RnYwr.js +1 -0
  404. package/dist/showcase/assets/header-CMjgUhtM.js +1 -0
  405. package/dist/showcase/assets/header-notifications-fOFoqfCR.js +1 -0
  406. package/dist/showcase/assets/heart-BM6yPMXn.js +1 -0
  407. package/dist/showcase/assets/house-CnsMNKdQ.js +1 -0
  408. package/dist/showcase/assets/icon-badge-IP9B3lQm.js +1 -0
  409. package/dist/showcase/assets/image-B5jt_w43.js +1 -0
  410. package/dist/showcase/assets/inbox-BcbV9uGN.js +1 -0
  411. package/dist/showcase/assets/index-Bn8k0P7-.css +2 -0
  412. package/dist/showcase/assets/index-DNH0y0r-.js +10 -0
  413. package/dist/showcase/assets/inertValue-B82SGILi.js +1 -0
  414. package/dist/showcase/assets/info-DO5VmDSw.js +1 -0
  415. package/dist/showcase/assets/inline-stat-B2s_ozrX.js +1 -0
  416. package/dist/showcase/assets/input-BCxdburb.js +1 -0
  417. package/dist/showcase/assets/input-DcQuALxy.js +1 -0
  418. package/dist/showcase/assets/input-group-DZJrOGbm.js +1 -0
  419. package/dist/showcase/assets/input-group-PwfoPR94.js +47 -0
  420. package/dist/showcase/assets/inputs-DetnUcEp.js +155 -0
  421. package/dist/showcase/assets/invoice-header-BMWL_9sW.js +36 -0
  422. package/dist/showcase/assets/invoice-items-DLEQR54f.js +36 -0
  423. package/dist/showcase/assets/invoice-mini-BxO8W_p2.js +14 -0
  424. package/dist/showcase/assets/invoice-table-ClMTdfvZ.js +30 -0
  425. package/dist/showcase/assets/isSameDay-B9x5Mpln.js +1 -0
  426. package/dist/showcase/assets/isToday-CT4NGB5x.js +1 -0
  427. package/dist/showcase/assets/italic-BiQv-7DA.js +1 -0
  428. package/dist/showcase/assets/item-CdgzxWcL.js +1 -0
  429. package/dist/showcase/assets/item-JreKWzkR.js +134 -0
  430. package/dist/showcase/assets/item-a8FCQMvC.js +1 -0
  431. package/dist/showcase/assets/kanban-CekpGtlO.js +186 -0
  432. package/dist/showcase/assets/key-round-CpIUGlhG.js +1 -0
  433. package/dist/showcase/assets/label-BE1d_Rxi.js +1 -0
  434. package/dist/showcase/assets/languages-DaFWrOam.js +1 -0
  435. package/dist/showcase/assets/layers-DDIuTz4-.js +1 -0
  436. package/dist/showcase/assets/layout-app-shell-BkqOwNe9.js +608 -0
  437. package/dist/showcase/assets/layout-auth-Bng_0NM0.js +754 -0
  438. package/dist/showcase/assets/layout-containers-Bk_jSDWd.js +101 -0
  439. package/dist/showcase/assets/layout-header-CuJVU1Rx.js +203 -0
  440. package/dist/showcase/assets/layout-page-DHOPox5Z.js +278 -0
  441. package/dist/showcase/assets/layout-primitives-BnIgANs6.js +34 -0
  442. package/dist/showcase/assets/layout-sidebar-BUOjQm9-.js +224 -0
  443. package/dist/showcase/assets/layout-users-DFlJQAuB.js +117 -0
  444. package/dist/showcase/assets/layout-workspace-Cq63UWwT.js +183 -0
  445. package/dist/showcase/assets/lock-DTD3z5Vh.js +1 -0
  446. package/dist/showcase/assets/lock-keyhole-Bbs1Ry2S.js +1 -0
  447. package/dist/showcase/assets/mail-DAa8myka.js +1 -0
  448. package/dist/showcase/assets/mail-check-DrmYfqQb.js +1 -0
  449. package/dist/showcase/assets/map-DfYPJKDx.js +124 -0
  450. package/dist/showcase/assets/map-pin-Cf_uffQY.js +1 -0
  451. package/dist/showcase/assets/media-library-Duyf6M0c.js +695 -0
  452. package/dist/showcase/assets/mention-inline-suggestions-tOlG56Jr.js +1 -0
  453. package/dist/showcase/assets/mentions-LbZlN995.js +138 -0
  454. package/dist/showcase/assets/menus-Cs95R125.js +165 -0
  455. package/dist/showcase/assets/message-square-CjaeUwPc.js +1 -0
  456. package/dist/showcase/assets/metadata-list-Bcy5s1_q.js +1 -0
  457. package/dist/showcase/assets/metadata-list-C9L63gMM2.js +288 -0
  458. package/dist/showcase/assets/metric-D8bF87C1.js +1 -0
  459. package/dist/showcase/assets/metric-bar-DQF1jEsY.js +1 -0
  460. package/dist/showcase/assets/metric-grid-DJZjbFrm.js +1 -0
  461. package/dist/showcase/assets/metric-trend-chip-C9YeKxwe.js +1 -0
  462. package/dist/showcase/assets/metrics-analytics-bar-CfGjnKEG.js +44 -0
  463. package/dist/showcase/assets/metrics-analytics-cards-C4R2q2ia.js +50 -0
  464. package/dist/showcase/assets/metrics-comparison-B2FZ-rUG.js +76 -0
  465. package/dist/showcase/assets/metrics-heatmap-BS4EafAM.js +27 -0
  466. package/dist/showcase/assets/metrics-inline-badge-CyWA0Plw.js +17 -0
  467. package/dist/showcase/assets/metrics-kpi-row-CH_KTuo2.js +31 -0
  468. package/dist/showcase/assets/metrics-micro-grid-Dw1rbkBU.js +42 -0
  469. package/dist/showcase/assets/metrics-overview-BuLSn0GC.js +192 -0
  470. package/dist/showcase/assets/metrics-stat-cards-Zo4F0-y4.js +54 -0
  471. package/dist/showcase/assets/minus-COUx_vHQ.js +1 -0
  472. package/dist/showcase/assets/money-display-prumQLQ2.js +1 -0
  473. package/dist/showcase/assets/month-year-picker-BDTiuGOD.js +1 -0
  474. package/dist/showcase/assets/navigation-Bf_sgFei.js +90 -0
  475. package/dist/showcase/assets/navigation-Dnqq0un0.js +230 -0
  476. package/dist/showcase/assets/navigation-extras-ydwfzYfj.js +43 -0
  477. package/dist/showcase/assets/onboarding-checklist-DBLaUqhZ.js +119 -0
  478. package/dist/showcase/assets/overflow-tab-bar-UXs-T5Fq.js +1 -0
  479. package/dist/showcase/assets/overlays-C1ET_VvE.js +408 -0
  480. package/dist/showcase/assets/overlays-dMd0EOT1.js +159 -0
  481. package/dist/showcase/assets/package-C9EnWNEP.js +1 -0
  482. package/dist/showcase/assets/package-check-BGT72daQ.js +1 -0
  483. package/dist/showcase/assets/page-action-button-8faHdFOD.js +1 -0
  484. package/dist/showcase/assets/page-header-DoZnb9z9.js +1 -0
  485. package/dist/showcase/assets/pagination-BJ3wQQtL.js +42 -0
  486. package/dist/showcase/assets/pagination-DJnga08n.js +1 -0
  487. package/dist/showcase/assets/paperclip-DsQ_IPLp.js +1 -0
  488. package/dist/showcase/assets/password-input-CLxvZdDC.js +1 -0
  489. package/dist/showcase/assets/pencil-37DzPmX5.js +1 -0
  490. package/dist/showcase/assets/phone-CLDh9lYU.js +1 -0
  491. package/dist/showcase/assets/plus-PKSdX45c.js +1 -0
  492. package/dist/showcase/assets/popover-BWbBoxN0.js +1 -0
  493. package/dist/showcase/assets/popover-DoEhmJ7G.js +1 -0
  494. package/dist/showcase/assets/popover-menu-wt8kWbr1.js +1 -0
  495. package/dist/showcase/assets/products-Bvl2zRfb.js +407 -0
  496. package/dist/showcase/assets/progress-BeusdG_D.js +18 -0
  497. package/dist/showcase/assets/progress-CQr08MPz.js +1 -0
  498. package/dist/showcase/assets/props-table-DSdjPLVr.js +1 -0
  499. package/dist/showcase/assets/props.generated-AlskAQY9.json +41579 -0
  500. package/dist/showcase/assets/quote-D1DrZRcn.js +1 -0
  501. package/dist/showcase/assets/receipt-CxNJvyC5.js +1 -0
  502. package/dist/showcase/assets/receipt-text-2YwFjXVP.js +1 -0
  503. package/dist/showcase/assets/refresh-cw-DlkWEAjG.js +1 -0
  504. package/dist/showcase/assets/resolveValueLabel-Ctt-9xwK.js +1 -0
  505. package/dist/showcase/assets/resource-selector-card-C9zM67wN.js +39 -0
  506. package/dist/showcase/assets/rich-text-editor-DUWBkEdn.js +124 -0
  507. package/dist/showcase/assets/rich-text-editor-DjsgN-HX.js +143 -0
  508. package/dist/showcase/assets/rotate-ccw-ZkWMrEMJ.js +1 -0
  509. package/dist/showcase/assets/save-CQjTFBwm.js +1 -0
  510. package/dist/showcase/assets/schema-form-yfcV7ZHE.js +325 -0
  511. package/dist/showcase/assets/scroll-area-D73Zq5No.js +32 -0
  512. package/dist/showcase/assets/scroll-area-Toa6lE_G.js +1 -0
  513. package/dist/showcase/assets/select-BQWY3ndy.js +1 -0
  514. package/dist/showcase/assets/select-x02n3iNp.js +1 -0
  515. package/dist/showcase/assets/send-L-LNhDVx.js +1 -0
  516. package/dist/showcase/assets/separator-B57lhXSg.js +28 -0
  517. package/dist/showcase/assets/separator-kwh2KDqD.js +1 -0
  518. package/dist/showcase/assets/settings-Mbnp6hDe.js +1 -0
  519. package/dist/showcase/assets/sheet-DwYghriA.js +1 -0
  520. package/dist/showcase/assets/shield-D084AWSl.js +1 -0
  521. package/dist/showcase/assets/shield-alert-h6F2vnr-.js +1 -0
  522. package/dist/showcase/assets/shield-check-UiN6QwPl.js +1 -0
  523. package/dist/showcase/assets/shopping-bag-oxYbVKoz.js +1 -0
  524. package/dist/showcase/assets/sidebar-BWDrvFY1.js +1 -0
  525. package/dist/showcase/assets/sidebar.context-BhexAjPM.js +1 -0
  526. package/dist/showcase/assets/skeleton-BIS2X39p.js +29 -0
  527. package/dist/showcase/assets/skeleton-uyUucxJA.js +1 -0
  528. package/dist/showcase/assets/slider-DL--Jsf0.js +1 -0
  529. package/dist/showcase/assets/sliders-horizontal-C6SHwI9f.js +1 -0
  530. package/dist/showcase/assets/smart-card-DpvRHqI9.js +1 -0
  531. package/dist/showcase/assets/sonner-CvCutMP9.js +22 -0
  532. package/dist/showcase/assets/sortable.esm-COtQXiwU.js +5 -0
  533. package/dist/showcase/assets/sparkles-bMR7rbuC.js +1 -0
  534. package/dist/showcase/assets/spinner-CBXhPGyW.js +30 -0
  535. package/dist/showcase/assets/spinner-Dl2u80sI.js +49 -0
  536. package/dist/showcase/assets/spinner-ULnFdoGj.js +1 -0
  537. package/dist/showcase/assets/square-pen-3jbmTAqh.js +1 -0
  538. package/dist/showcase/assets/stacked-avatars-XKXaLCmk.js +1 -0
  539. package/dist/showcase/assets/star-0BUJBDj_.js +1 -0
  540. package/dist/showcase/assets/startOfDay-C8cGxdjJ.js +1 -0
  541. package/dist/showcase/assets/styles-Cl6qvIKS.js +1 -0
  542. package/dist/showcase/assets/suggestions-EB3TFZpP.js +126 -0
  543. package/dist/showcase/assets/switch-BbZ7_Rk-.js +1 -0
  544. package/dist/showcase/assets/switch-C0QtKm5H.js +1 -0
  545. package/dist/showcase/assets/sync-BAO20Naa.js +107 -0
  546. package/dist/showcase/assets/table-CnCYxSnD.js +509 -0
  547. package/dist/showcase/assets/table-DF7x4TGI.js +1 -0
  548. package/dist/showcase/assets/table-actions-CjaUIKQl.js +1 -0
  549. package/dist/showcase/assets/tabs-D3YHyrQ5.js +1 -0
  550. package/dist/showcase/assets/tabs-vUgN5IPn.js +19 -0
  551. package/dist/showcase/assets/tags-input-jtEAac1b.js +1 -0
  552. package/dist/showcase/assets/text-button-fiMDoWms.js +1 -0
  553. package/dist/showcase/assets/text-link-CSzy09hn.js +1 -0
  554. package/dist/showcase/assets/textarea-DnvQVkFU.js +1 -0
  555. package/dist/showcase/assets/textarea-mATRsiLJ.js +1 -0
  556. package/dist/showcase/assets/timelines-fQQIiGc4.js +200 -0
  557. package/dist/showcase/assets/toggle-group-B0hN7VRz.js +1 -0
  558. package/dist/showcase/assets/toggles-group-CXm2HDJ1.js +32 -0
  559. package/dist/showcase/assets/toggles-kwgQf4hQ.js +71 -0
  560. package/dist/showcase/assets/trash-2-xwHdvAn6.js +1 -0
  561. package/dist/showcase/assets/trending-up-CKnZUURN.js +1 -0
  562. package/dist/showcase/assets/truck-8P8-8rHh.js +1 -0
  563. package/dist/showcase/assets/typography-BP3SCf0c.js +223 -0
  564. package/dist/showcase/assets/ui-badge-eTC8uxVw.js +28 -0
  565. package/dist/showcase/assets/ui-card-AQkRKit0.js +30 -0
  566. package/dist/showcase/assets/ui-table-BTE7t50V.js +42 -0
  567. package/dist/showcase/assets/upload-tray-DpW8ZnxN.js +138 -0
  568. package/dist/showcase/assets/use-layout-link-DR4Apqbc.js +1 -0
  569. package/dist/showcase/assets/useAnchoredPopupScrollLock-CT1urU5D.js +1 -0
  570. package/dist/showcase/assets/useAriaLabelledBy-DiHf8Ou_.js +1 -0
  571. package/dist/showcase/assets/useCollapsiblePanel-NNLPWtyS.js +1 -0
  572. package/dist/showcase/assets/useCompositeItem-BE0Lg9Iz.js +1 -0
  573. package/dist/showcase/assets/useCompositeListItem-OwLLy0R3.js +1 -0
  574. package/dist/showcase/assets/useLabelableId-Y-6YW07q.js +1 -0
  575. package/dist/showcase/assets/useOpenInteractionType-CUTVNS1V.js +1 -0
  576. package/dist/showcase/assets/useRender-BiaVVD8L.js +1 -0
  577. package/dist/showcase/assets/useTriggerFocusGuards-DCMcmSgH.js +1 -0
  578. package/dist/showcase/assets/useValueChanged-kq4oH4So.js +1 -0
  579. package/dist/showcase/assets/user-BCzeUL5p.js +1 -0
  580. package/dist/showcase/assets/user-plus-CUbfQtkK.js +1 -0
  581. package/dist/showcase/assets/users-DOGJZmUN.js +1 -0
  582. package/dist/showcase/assets/vendor-profile-C7dXfVv_.js +37 -0
  583. package/dist/showcase/assets/video-DbaCGki8.js +1 -0
  584. package/dist/showcase/assets/wrench-TbDfItHQ.js +1 -0
  585. package/dist/showcase/assets/x-BpAEmld2.js +1 -0
  586. package/dist/showcase/assets/zap-E8G3kjwh.js +1 -0
  587. package/dist/showcase/index.html +2 -2
  588. package/dist/style.css +1 -1
  589. package/package.json +16 -1
  590. package/dist/_shared/ai-artifact-D4EjKoq6.cjs +0 -3
  591. package/dist/_shared/ai-artifact-D4EjKoq6.cjs.map +0 -1
  592. package/dist/_shared/ai-artifact-nlOrSeqT.js +0 -1099
  593. package/dist/_shared/ai-artifact-nlOrSeqT.js.map +0 -1
  594. package/dist/_shared/auth-C5HawWvp.cjs +0 -2
  595. package/dist/_shared/auth-C5HawWvp.cjs.map +0 -1
  596. package/dist/_shared/auth-DnMEJXP9.js +0 -643
  597. package/dist/_shared/auth-DnMEJXP9.js.map +0 -1
  598. package/dist/_shared/badge-6WYAMJwA.js +0 -108
  599. package/dist/_shared/badge-6WYAMJwA.js.map +0 -1
  600. package/dist/_shared/badge-CBof1rbF.cjs +0 -2
  601. package/dist/_shared/badge-CBof1rbF.cjs.map +0 -1
  602. package/dist/_shared/combobox-B4KmDZK0.cjs +0 -2
  603. package/dist/_shared/combobox-B4KmDZK0.cjs.map +0 -1
  604. package/dist/_shared/combobox-YUGi3xSc.js +0 -810
  605. package/dist/_shared/combobox-YUGi3xSc.js.map +0 -1
  606. package/dist/_shared/comments-GzXdwpq4.js +0 -952
  607. package/dist/_shared/comments-GzXdwpq4.js.map +0 -1
  608. package/dist/_shared/comments-Zj_foV1V.cjs +0 -2
  609. package/dist/_shared/comments-Zj_foV1V.cjs.map +0 -1
  610. package/dist/_shared/display-Dhy5ogxC.cjs +0 -2
  611. package/dist/_shared/display-Dhy5ogxC.cjs.map +0 -1
  612. package/dist/_shared/display-NBtWdAMl.js +0 -1154
  613. package/dist/_shared/display-NBtWdAMl.js.map +0 -1
  614. package/dist/_shared/form-field-B7taMVbC.js +0 -329
  615. package/dist/_shared/form-field-B7taMVbC.js.map +0 -1
  616. package/dist/_shared/form-field-rMGPvHFK.cjs +0 -2
  617. package/dist/_shared/form-field-rMGPvHFK.cjs.map +0 -1
  618. package/dist/_shared/forms-BweX9Lm8.cjs +0 -2
  619. package/dist/_shared/forms-BweX9Lm8.cjs.map +0 -1
  620. package/dist/_shared/forms-L1hyNKpZ.js +0 -3430
  621. package/dist/_shared/forms-L1hyNKpZ.js.map +0 -1
  622. package/dist/_shared/header-BSBPtGn4.cjs +0 -2
  623. package/dist/_shared/header-BSBPtGn4.cjs.map +0 -1
  624. package/dist/_shared/header-No6GSp4R.js +0 -360
  625. package/dist/_shared/header-No6GSp4R.js.map +0 -1
  626. package/dist/_shared/hooks-BkXvZ4py.js +0 -118
  627. package/dist/_shared/hooks-BkXvZ4py.js.map +0 -1
  628. package/dist/_shared/hooks-D3SbLBRk.cjs +0 -2
  629. package/dist/_shared/hooks-D3SbLBRk.cjs.map +0 -1
  630. package/dist/_shared/mentions-CA1Ka_Bv.cjs +0 -2
  631. package/dist/_shared/mentions-CA1Ka_Bv.cjs.map +0 -1
  632. package/dist/_shared/mentions-CdvvLGQG.js +0 -506
  633. package/dist/_shared/mentions-CdvvLGQG.js.map +0 -1
  634. package/dist/_shared/navigation-BemwPPC8.cjs +0 -2
  635. package/dist/_shared/navigation-BemwPPC8.cjs.map +0 -1
  636. package/dist/_shared/navigation-DY540HB0.js +0 -419
  637. package/dist/_shared/navigation-DY540HB0.js.map +0 -1
  638. package/dist/_shared/page-Cg_gNpyK.js +0 -262
  639. package/dist/_shared/page-Cg_gNpyK.js.map +0 -1
  640. package/dist/_shared/page-CpFWQuWU.cjs +0 -2
  641. package/dist/_shared/page-CpFWQuWU.cjs.map +0 -1
  642. package/dist/_shared/sidebar-BTFfxmNG.cjs +0 -2
  643. package/dist/_shared/sidebar-BTFfxmNG.cjs.map +0 -1
  644. package/dist/_shared/sidebar-wmztVpnO.js +0 -538
  645. package/dist/_shared/sidebar-wmztVpnO.js.map +0 -1
  646. package/dist/_shared/switch-BBP3u1z5.js +0 -55
  647. package/dist/_shared/switch-BBP3u1z5.js.map +0 -1
  648. package/dist/_shared/switch-zFZhhOEP.cjs +0 -2
  649. package/dist/_shared/switch-zFZhhOEP.cjs.map +0 -1
  650. package/dist/_shared/table-BItnJ8lG.cjs +0 -2
  651. package/dist/_shared/table-BItnJ8lG.cjs.map +0 -1
  652. package/dist/_shared/table-D3349b-v.js +0 -1189
  653. package/dist/_shared/table-D3349b-v.js.map +0 -1
  654. package/dist/_shared/workspace-BGVeTeJy.js +0 -357
  655. package/dist/_shared/workspace-BGVeTeJy.js.map +0 -1
  656. package/dist/_shared/workspace-CWyzTUmE.cjs +0 -2
  657. package/dist/_shared/workspace-CWyzTUmE.cjs.map +0 -1
  658. package/dist/showcase/assets/AreaChart-BYEewdc_.js +0 -6
  659. package/dist/showcase/assets/CompositeItem-Duekeg4m.js +0 -1
  660. package/dist/showcase/assets/CompositeRoot-BgNU3T7R.js +0 -1
  661. package/dist/showcase/assets/DialogTrigger-9xWmoeF5.js +0 -1
  662. package/dist/showcase/assets/LabelableContext-B3W_70Qk.js +0 -1
  663. package/dist/showcase/assets/PreviewLayout-nADJqRlP.js +0 -1
  664. package/dist/showcase/assets/RadioGroup-Bp1VCzxr.js +0 -1
  665. package/dist/showcase/assets/Separator-9PWX3shz.js +0 -1
  666. package/dist/showcase/assets/ToolbarRootContext-DwELw9xS.js +0 -1
  667. package/dist/showcase/assets/accordion-CfqHO9_z.js +0 -171
  668. package/dist/showcase/assets/accordion-variants-pkPHxkLW.js +0 -1
  669. package/dist/showcase/assets/action-menu-DFzSuDjI.js +0 -1
  670. package/dist/showcase/assets/activities-Bo97b2-I.js +0 -501
  671. package/dist/showcase/assets/activities-feed-card-D77gf27B.js +0 -1
  672. package/dist/showcase/assets/activity-BUlCWLI8.js +0 -1
  673. package/dist/showcase/assets/admin-CxTV4kZX.js +0 -80
  674. package/dist/showcase/assets/ai-Bym5H8bn.js +0 -41
  675. package/dist/showcase/assets/ai-artifact-DZVl1WmK.js +0 -2
  676. package/dist/showcase/assets/ai-chat-M3X5-PgT.js +0 -568
  677. package/dist/showcase/assets/ai-elements-DjppcMBD.js +0 -387
  678. package/dist/showcase/assets/ai-new-CXnrIi5S.js +0 -167
  679. package/dist/showcase/assets/ai-tool-call-DyMI8DqD.js +0 -1
  680. package/dist/showcase/assets/alert-D6Pygy2s.js +0 -62
  681. package/dist/showcase/assets/alert-DCrWLbEx.js +0 -93
  682. package/dist/showcase/assets/alert-qTNM0vld.js +0 -1
  683. package/dist/showcase/assets/api-key-list-CCpuHYHc.js +0 -73
  684. package/dist/showcase/assets/app-sidebar-CxTRNC5L.js +0 -1
  685. package/dist/showcase/assets/arrow-down--phuskCV.js +0 -1
  686. package/dist/showcase/assets/arrow-left-B__WWqyA.js +0 -1
  687. package/dist/showcase/assets/arrow-right-1-EvXxjB.js +0 -1
  688. package/dist/showcase/assets/arrow-up-lWotnmo7.js +0 -1
  689. package/dist/showcase/assets/arrow-up-right-IyQ3oeq0.js +0 -1
  690. package/dist/showcase/assets/avatar-gugtNx4D.js +0 -57
  691. package/dist/showcase/assets/avatar-n1nywTlx.js +0 -1
  692. package/dist/showcase/assets/badge-TuE-u3Hv.js +0 -28
  693. package/dist/showcase/assets/badge-check-CPDvpVzK.js +0 -1
  694. package/dist/showcase/assets/bell-DeCVddCA.js +0 -1
  695. package/dist/showcase/assets/bot-B_vzJEJH.js +0 -1
  696. package/dist/showcase/assets/box-z4O8t_K5.js +0 -1
  697. package/dist/showcase/assets/brain-DdKBE4Bh.js +0 -1
  698. package/dist/showcase/assets/brand-CfW7mgTY.js +0 -36
  699. package/dist/showcase/assets/breadcrumb-B4TBbKv3.js +0 -52
  700. package/dist/showcase/assets/breadcrumb-bF_sFVBL.js +0 -1
  701. package/dist/showcase/assets/breadcrumbs-CBv3EaMX.js +0 -1
  702. package/dist/showcase/assets/briefcase-ClqzeNt3.js +0 -1
  703. package/dist/showcase/assets/building-2-BQuWgjZj.js +0 -1
  704. package/dist/showcase/assets/button-CWKNCI82.js +0 -44
  705. package/dist/showcase/assets/button-group-BYhxtFwV.js +0 -1
  706. package/dist/showcase/assets/buttons-mBRyBw3Q.js +0 -270
  707. package/dist/showcase/assets/calendar-BgloJjlW.js +0 -1
  708. package/dist/showcase/assets/calendar-CJDWspzi.js +0 -1
  709. package/dist/showcase/assets/calendar-CgML2kJt.js +0 -16
  710. package/dist/showcase/assets/calendar-days-C0gTLVnY.js +0 -1
  711. package/dist/showcase/assets/camera-nIlaz4Sn.js +0 -1
  712. package/dist/showcase/assets/card-1ncRnRvq.js +0 -1
  713. package/dist/showcase/assets/card-CcgWzFB-.js +0 -188
  714. package/dist/showcase/assets/card-primitives-By4-RTuP.js +0 -1
  715. package/dist/showcase/assets/card-radio-group-DeX3qsRg.js +0 -1
  716. package/dist/showcase/assets/cards-DdqQr8rY.js +0 -328
  717. package/dist/showcase/assets/carousel-CV8ltDl8.js +0 -449
  718. package/dist/showcase/assets/chart-BNzHjskC.js +0 -358
  719. package/dist/showcase/assets/chart-column-CpTxRLEH.js +0 -1
  720. package/dist/showcase/assets/checkbox-CZTTm4Dv.js +0 -1
  721. package/dist/showcase/assets/chevron-down-LWBNHe9S.js +0 -1
  722. package/dist/showcase/assets/chevron-left-BsshO7nf.js +0 -1
  723. package/dist/showcase/assets/chevron-right-t68um2_G.js +0 -1
  724. package/dist/showcase/assets/chevron-up-DjhlESJB.js +0 -1
  725. package/dist/showcase/assets/chevrons-up-down-ZUo0Do59.js +0 -1
  726. package/dist/showcase/assets/circle-BL52dLr9.js +0 -1
  727. package/dist/showcase/assets/circle-alert-CXCt6zxc.js +0 -1
  728. package/dist/showcase/assets/circle-check-CbiRRw7s.js +0 -1
  729. package/dist/showcase/assets/circle-check-big-BSgn7lyt.js +0 -1
  730. package/dist/showcase/assets/circle-dot-WEOpGGJf.js +0 -1
  731. package/dist/showcase/assets/circle-question-mark-C9hLlsD7.js +0 -1
  732. package/dist/showcase/assets/circle-x-BT9TJbJC.js +0 -1
  733. package/dist/showcase/assets/clock-3-CfRK8ckc.js +0 -1
  734. package/dist/showcase/assets/clock-D-3zf0c1.js +0 -1
  735. package/dist/showcase/assets/code-xml-CQYKKuBU.js +0 -1
  736. package/dist/showcase/assets/collapsible-BC0hQvat.js +0 -27
  737. package/dist/showcase/assets/collapsible-CRVtVDCF.js +0 -1
  738. package/dist/showcase/assets/combobox-D4VYvYCT.js +0 -696
  739. package/dist/showcase/assets/command-CxeHT4lL.js +0 -1
  740. package/dist/showcase/assets/command-Do_t_Zou.js +0 -1
  741. package/dist/showcase/assets/comment-composer-DoFwvVlq.js +0 -1
  742. package/dist/showcase/assets/comment-item-CT8UbVeg.js +0 -1
  743. package/dist/showcase/assets/comments-CqdXrjUn.js +0 -357
  744. package/dist/showcase/assets/commerce-B9V2Wo_q.js +0 -79
  745. package/dist/showcase/assets/commerce-extras-CNT3QmAT.js +0 -189
  746. package/dist/showcase/assets/composite-BXLXcagx.js +0 -1
  747. package/dist/showcase/assets/contact-card-BLcAXepj.js +0 -65
  748. package/dist/showcase/assets/content-container-DJVD3ZmI.js +0 -1
  749. package/dist/showcase/assets/copyable-od17NrMu.js +0 -96
  750. package/dist/showcase/assets/course-card-CdZQr5yy.js +0 -77
  751. package/dist/showcase/assets/cpu-B8kRNR1R.js +0 -1
  752. package/dist/showcase/assets/credit-card-BYMQj03s.js +0 -1
  753. package/dist/showcase/assets/currency-Cxv3Cp6B.js +0 -149
  754. package/dist/showcase/assets/dark-surfaces-Cfp58iFb.js +0 -90
  755. package/dist/showcase/assets/database-DuUABvxU.js +0 -1
  756. package/dist/showcase/assets/date-block-E9qfY7W7.js +0 -1
  757. package/dist/showcase/assets/date-picker-I8BdaiiU.js +0 -1
  758. package/dist/showcase/assets/date-pickers-BLJaqhcS.js +0 -73
  759. package/dist/showcase/assets/dense-info-Bk1K_7Ww.js +0 -106
  760. package/dist/showcase/assets/dialog-BuatDnQ9.js +0 -1
  761. package/dist/showcase/assets/dialog-DCx-LydW.js +0 -1
  762. package/dist/showcase/assets/display-Bt7busw5.js +0 -403
  763. package/dist/showcase/assets/dist-BPyBHOXU.js +0 -45
  764. package/dist/showcase/assets/dollar-sign-qXQSS6Gh.js +0 -1
  765. package/dist/showcase/assets/download-B2JAmHmJ.js +0 -1
  766. package/dist/showcase/assets/dropdown-menu-DXT3BZLa.js +0 -1
  767. package/dist/showcase/assets/dropzone-BKIxDJNy.js +0 -1
  768. package/dist/showcase/assets/earth-7-Z3Gv2v.js +0 -1
  769. package/dist/showcase/assets/ellipsis-6Krb3RRW.js +0 -1
  770. package/dist/showcase/assets/ellipsis-vertical-DeOMIw1J.js +0 -1
  771. package/dist/showcase/assets/empty-BSYKaeXQ.js +0 -1
  772. package/dist/showcase/assets/empty-item-YElgv25f.js +0 -49
  773. package/dist/showcase/assets/empty-state-D-LrvnKF.js +0 -1
  774. package/dist/showcase/assets/empty-state-dNh1GtVU.js +0 -188
  775. package/dist/showcase/assets/enhanced-activities-Bw99ItYl.js +0 -361
  776. package/dist/showcase/assets/enhanced-combobox-CqLZmU3K.js +0 -1
  777. package/dist/showcase/assets/event-calendar-CcSi7g5A.js +0 -138
  778. package/dist/showcase/assets/event-log-2uq-eYxh.js +0 -330
  779. package/dist/showcase/assets/example-CTJ8AdNR.js +0 -1
  780. package/dist/showcase/assets/external-link-D0gqSa1q.js +0 -1
  781. package/dist/showcase/assets/eye-CDMCDLei.js +0 -1
  782. package/dist/showcase/assets/feature-announcement-BlyNck35.js +0 -34
  783. package/dist/showcase/assets/file-Y5EbzufX.js +0 -1
  784. package/dist/showcase/assets/file-text-DH1mBuPi.js +0 -1
  785. package/dist/showcase/assets/filters-BtHF4GSM.js +0 -78
  786. package/dist/showcase/assets/flag-CJ08LwLY.js +0 -1
  787. package/dist/showcase/assets/folder-open-DODo2pjy.js +0 -1
  788. package/dist/showcase/assets/form-field-CHY7jh1q.js +0 -1
  789. package/dist/showcase/assets/format-DYJqAuDM.js +0 -1
  790. package/dist/showcase/assets/forms-DgvQQXHO.js +0 -862
  791. package/dist/showcase/assets/frame-CdKicP4A.js +0 -167
  792. package/dist/showcase/assets/getPseudoElementBounds-D9-Hr3mO.js +0 -1
  793. package/dist/showcase/assets/gift-DD8O7cld.js +0 -1
  794. package/dist/showcase/assets/giftcard-cards-Dp9eYodY.js +0 -85
  795. package/dist/showcase/assets/git-branch-DZq1Vo2G.js +0 -1
  796. package/dist/showcase/assets/global-search-BqDotXql.js +0 -215
  797. package/dist/showcase/assets/global-search-PH6LXqZw.js +0 -1
  798. package/dist/showcase/assets/globe-mRTwrUxM.js +0 -1
  799. package/dist/showcase/assets/gradient-card-CaL88YKv.js +0 -58
  800. package/dist/showcase/assets/hash-DuqvHQHv.js +0 -1
  801. package/dist/showcase/assets/header-CiNgDop3.js +0 -1
  802. package/dist/showcase/assets/header-notifications-B9XMBsK_.js +0 -1
  803. package/dist/showcase/assets/heart-DsGJfnDx.js +0 -1
  804. package/dist/showcase/assets/house-B504aFIP.js +0 -1
  805. package/dist/showcase/assets/icon-badge-DMNu8xb5.js +0 -1
  806. package/dist/showcase/assets/image-C3DaMxmn.js +0 -1
  807. package/dist/showcase/assets/inbox-BWKQMLMx.js +0 -1
  808. package/dist/showcase/assets/index-DN3tqopz.css +0 -2
  809. package/dist/showcase/assets/index-DaYVSqKu.js +0 -10
  810. package/dist/showcase/assets/inertValue-DrtTkMGx.js +0 -1
  811. package/dist/showcase/assets/info-_FrGoCay.js +0 -1
  812. package/dist/showcase/assets/inline-stat-BYu-tiUU.js +0 -1
  813. package/dist/showcase/assets/input-C96HMHWR.js +0 -1
  814. package/dist/showcase/assets/input-fMPi7XxI.js +0 -1
  815. package/dist/showcase/assets/input-group-BZnSgFCn.js +0 -47
  816. package/dist/showcase/assets/input-group-CVONNP3T.js +0 -1
  817. package/dist/showcase/assets/inputs-Blh0LJ8-.js +0 -155
  818. package/dist/showcase/assets/invoice-header-Bpo4iwX3.js +0 -36
  819. package/dist/showcase/assets/invoice-items-OVIrbG0k.js +0 -36
  820. package/dist/showcase/assets/invoice-mini-CaOMTiUO.js +0 -14
  821. package/dist/showcase/assets/invoice-table-BXd_HhUg.js +0 -30
  822. package/dist/showcase/assets/isSameDay-NBVO9AKF.js +0 -1
  823. package/dist/showcase/assets/isToday-Bk5HMXWn.js +0 -1
  824. package/dist/showcase/assets/italic-BOv5bW4H.js +0 -1
  825. package/dist/showcase/assets/item-B4rdcVVp.js +0 -134
  826. package/dist/showcase/assets/item-BVt0zZ12.js +0 -1
  827. package/dist/showcase/assets/item-C4Xk3DC1.js +0 -1
  828. package/dist/showcase/assets/kanban-BXbelelR.js +0 -186
  829. package/dist/showcase/assets/label-Cv6wotdv.js +0 -1
  830. package/dist/showcase/assets/languages-BofyvcCF.js +0 -1
  831. package/dist/showcase/assets/layers-DJK0t5px.js +0 -1
  832. package/dist/showcase/assets/layout-app-shell-D_yMonSl.js +0 -608
  833. package/dist/showcase/assets/layout-auth-BTvSTwUz.js +0 -754
  834. package/dist/showcase/assets/layout-containers-PMuo__2O.js +0 -101
  835. package/dist/showcase/assets/layout-header-DQ3zeCHz.js +0 -170
  836. package/dist/showcase/assets/layout-page-CbvWdHrK.js +0 -122
  837. package/dist/showcase/assets/layout-primitives-6nsFFIdE.js +0 -34
  838. package/dist/showcase/assets/layout-sidebar-CKqeVCSY.js +0 -224
  839. package/dist/showcase/assets/layout-users-Cypq-42s.js +0 -117
  840. package/dist/showcase/assets/layout-workspace-DiRR8vDv.js +0 -183
  841. package/dist/showcase/assets/lock-DXmvLEEx.js +0 -1
  842. package/dist/showcase/assets/lock-keyhole-Cu6M-jjE.js +0 -1
  843. package/dist/showcase/assets/mail-CXVFHkzh.js +0 -1
  844. package/dist/showcase/assets/mail-check-BNEu3j2a.js +0 -1
  845. package/dist/showcase/assets/map-DnE1pFCQ.js +0 -124
  846. package/dist/showcase/assets/map-pin-CpOVa8IH.js +0 -1
  847. package/dist/showcase/assets/media-library-C-KfEvm4.js +0 -695
  848. package/dist/showcase/assets/mention-inline-suggestions-DlmslsfR.js +0 -1
  849. package/dist/showcase/assets/mentions-C8ZdNFuC.js +0 -138
  850. package/dist/showcase/assets/menus-B8yUL75K.js +0 -165
  851. package/dist/showcase/assets/message-square-DNOTaOFs.js +0 -1
  852. package/dist/showcase/assets/metadata-list-BQAanxM-.js +0 -1
  853. package/dist/showcase/assets/metadata-list-DL9qgDAp.js +0 -288
  854. package/dist/showcase/assets/metric-CYi09Ltx.js +0 -1
  855. package/dist/showcase/assets/metric-bar-CQH1z8T3.js +0 -1
  856. package/dist/showcase/assets/metric-grid-H1ixqMCI.js +0 -1
  857. package/dist/showcase/assets/metric-trend-chip-BBzWzFZ-.js +0 -1
  858. package/dist/showcase/assets/metrics-analytics-bar-C7Z2ITl4.js +0 -44
  859. package/dist/showcase/assets/metrics-analytics-cards-CZZSWiMn.js +0 -50
  860. package/dist/showcase/assets/metrics-comparison-BPqz8k30.js +0 -76
  861. package/dist/showcase/assets/metrics-heatmap-C3NYZAfx.js +0 -27
  862. package/dist/showcase/assets/metrics-inline-badge-RjHfm7um.js +0 -17
  863. package/dist/showcase/assets/metrics-kpi-row-DnBjyDH4.js +0 -31
  864. package/dist/showcase/assets/metrics-micro-grid-CKn405qb.js +0 -42
  865. package/dist/showcase/assets/metrics-overview-D8YGtdrh.js +0 -192
  866. package/dist/showcase/assets/metrics-stat-cards-Dxh6cAha.js +0 -54
  867. package/dist/showcase/assets/minus-20OTSSxf.js +0 -1
  868. package/dist/showcase/assets/money-display-BoiAMxH8.js +0 -1
  869. package/dist/showcase/assets/month-year-picker-Bl59Ygq9.js +0 -1
  870. package/dist/showcase/assets/navigation-B8d2CDU6.js +0 -90
  871. package/dist/showcase/assets/navigation-D16JX3kL.js +0 -230
  872. package/dist/showcase/assets/navigation-extras-Dm83uT6i.js +0 -43
  873. package/dist/showcase/assets/onboarding-checklist-DznDpP9M.js +0 -119
  874. package/dist/showcase/assets/overlays-CzlSqbFz.js +0 -408
  875. package/dist/showcase/assets/overlays-DUFqbkb9.js +0 -159
  876. package/dist/showcase/assets/package-BCXIwEPz.js +0 -1
  877. package/dist/showcase/assets/package-check-Ol-Cw3j-.js +0 -1
  878. package/dist/showcase/assets/page-action-button-DpzdSYvw.js +0 -1
  879. package/dist/showcase/assets/page-header-B_b7SqW8.js +0 -1
  880. package/dist/showcase/assets/pagination-BPDQo9Dl.js +0 -1
  881. package/dist/showcase/assets/pagination-PvkEX0qs.js +0 -42
  882. package/dist/showcase/assets/paperclip-CznEsmLN.js +0 -1
  883. package/dist/showcase/assets/password-input-CWMY5q3b.js +0 -1
  884. package/dist/showcase/assets/pencil-Cl9qi90g.js +0 -1
  885. package/dist/showcase/assets/phone-DbvK_QQJ.js +0 -1
  886. package/dist/showcase/assets/plus-CO8t66Yo.js +0 -1
  887. package/dist/showcase/assets/popover-3QIVx9lU.js +0 -1
  888. package/dist/showcase/assets/popover-Cyg9oYIU.js +0 -1
  889. package/dist/showcase/assets/popover-menu-DJPHeIL1.js +0 -1
  890. package/dist/showcase/assets/products-WsU-qdMz.js +0 -407
  891. package/dist/showcase/assets/progress-C61sf-qt.js +0 -1
  892. package/dist/showcase/assets/progress-PvTl8Fgf.js +0 -18
  893. package/dist/showcase/assets/props-table-C8la6vcG.js +0 -1
  894. package/dist/showcase/assets/props.generated-vFrhDrth.json +0 -38618
  895. package/dist/showcase/assets/quote-N1_lRDnX.js +0 -1
  896. package/dist/showcase/assets/receipt-C6a_WyLu.js +0 -1
  897. package/dist/showcase/assets/receipt-text-CDOh8FAv.js +0 -1
  898. package/dist/showcase/assets/refresh-cw-D4-ECZ1x.js +0 -1
  899. package/dist/showcase/assets/resolveValueLabel-DqAP3zJd.js +0 -1
  900. package/dist/showcase/assets/rich-text-editor-CU0IZpwV.js +0 -143
  901. package/dist/showcase/assets/rich-text-editor-DCU7mMoO.js +0 -124
  902. package/dist/showcase/assets/rotate-ccw-Dd5zEmr7.js +0 -1
  903. package/dist/showcase/assets/save-DDmFSQli.js +0 -1
  904. package/dist/showcase/assets/schema-form-B7naqMvv.js +0 -325
  905. package/dist/showcase/assets/scroll-area-CdaYm4UK.js +0 -32
  906. package/dist/showcase/assets/scroll-area-DwWSHYHB.js +0 -1
  907. package/dist/showcase/assets/select-CNzpb5ug.js +0 -1
  908. package/dist/showcase/assets/select-DBXZ_Wzf.js +0 -1
  909. package/dist/showcase/assets/send-eDm7YMmA.js +0 -1
  910. package/dist/showcase/assets/separator-4IC9ED7s.js +0 -1
  911. package/dist/showcase/assets/separator-DPGDsZpG.js +0 -28
  912. package/dist/showcase/assets/settings-IANZGo2i.js +0 -1
  913. package/dist/showcase/assets/sheet-2oCce5ae.js +0 -1
  914. package/dist/showcase/assets/shield-CDZhhvFW.js +0 -1
  915. package/dist/showcase/assets/shield-alert-5hL3sdf3.js +0 -1
  916. package/dist/showcase/assets/shield-check-CaO2dhVS.js +0 -1
  917. package/dist/showcase/assets/shopping-bag-Bt3iK-Bv.js +0 -1
  918. package/dist/showcase/assets/sidebar-Cds60-PS.js +0 -1
  919. package/dist/showcase/assets/sidebar.context-CdH_DH9M.js +0 -1
  920. package/dist/showcase/assets/skeleton-2HajJKO4.js +0 -29
  921. package/dist/showcase/assets/skeleton-CGEJwPdD.js +0 -1
  922. package/dist/showcase/assets/slider-BjQViBR0.js +0 -1
  923. package/dist/showcase/assets/sliders-horizontal-C3JH5WQu.js +0 -1
  924. package/dist/showcase/assets/smart-card-CHouYi8U.js +0 -1
  925. package/dist/showcase/assets/sonner-Cog559j7.js +0 -22
  926. package/dist/showcase/assets/sortable.esm-hUEKsxpQ.js +0 -5
  927. package/dist/showcase/assets/sparkles-B18eTHVN.js +0 -1
  928. package/dist/showcase/assets/spinner-BSI97i4D.js +0 -1
  929. package/dist/showcase/assets/spinner-D0WhVyye.js +0 -30
  930. package/dist/showcase/assets/spinner-DQmJ7k9y.js +0 -49
  931. package/dist/showcase/assets/square-pen-CLyDWdhj.js +0 -1
  932. package/dist/showcase/assets/stacked-avatars-ECnU27uV.js +0 -1
  933. package/dist/showcase/assets/star-C3mhkpSK.js +0 -1
  934. package/dist/showcase/assets/startOfDay-ECIxhJGC.js +0 -1
  935. package/dist/showcase/assets/styles-CDD7mDye.js +0 -1
  936. package/dist/showcase/assets/suggestions-DOW6NBJp.js +0 -126
  937. package/dist/showcase/assets/switch-D59YKmf6.js +0 -1
  938. package/dist/showcase/assets/switch-NICmdoPn.js +0 -1
  939. package/dist/showcase/assets/sync-B8nBZXQ9.js +0 -107
  940. package/dist/showcase/assets/table-CckompuR.js +0 -382
  941. package/dist/showcase/assets/table-DtA4-Q0p.js +0 -1
  942. package/dist/showcase/assets/table-actions-DdoPJTMy.js +0 -1
  943. package/dist/showcase/assets/tabs-BrC_HxL_.js +0 -1
  944. package/dist/showcase/assets/tabs-UVxr80vY.js +0 -19
  945. package/dist/showcase/assets/tags-input-iDfvhzZD.js +0 -1
  946. package/dist/showcase/assets/text-button-DHFCLCoc.js +0 -1
  947. package/dist/showcase/assets/text-link-nCLLDcS_.js +0 -1
  948. package/dist/showcase/assets/textarea-DsSuQHQY.js +0 -1
  949. package/dist/showcase/assets/textarea-DyGI3Kcn.js +0 -1
  950. package/dist/showcase/assets/timelines-JmMcH657.js +0 -200
  951. package/dist/showcase/assets/toggle-group-BZKzMmC8.js +0 -1
  952. package/dist/showcase/assets/toggles-BSJvy4Tw.js +0 -71
  953. package/dist/showcase/assets/toggles-group-Bsc6eaWw.js +0 -32
  954. package/dist/showcase/assets/trash-2-C9AC7Pcv.js +0 -1
  955. package/dist/showcase/assets/trending-up-CGaDZj0S.js +0 -1
  956. package/dist/showcase/assets/truck-Dq6heokm.js +0 -1
  957. package/dist/showcase/assets/typography-ByvwR6Kg.js +0 -223
  958. package/dist/showcase/assets/ui-badge-BYgJSE_w.js +0 -28
  959. package/dist/showcase/assets/ui-card-BdueUfow.js +0 -30
  960. package/dist/showcase/assets/ui-table-CxtCQUsg.js +0 -42
  961. package/dist/showcase/assets/upload-tray-DKJ8nFZp.js +0 -138
  962. package/dist/showcase/assets/use-layout-link-CGBQHZon.js +0 -1
  963. package/dist/showcase/assets/useAnchoredPopupScrollLock-CywAbxVB.js +0 -1
  964. package/dist/showcase/assets/useAriaLabelledBy-B2bZzE7D.js +0 -1
  965. package/dist/showcase/assets/useCollapsiblePanel-SLdY_s6S.js +0 -1
  966. package/dist/showcase/assets/useCompositeItem-g6aCBp84.js +0 -1
  967. package/dist/showcase/assets/useCompositeListItem-DK0Tpege.js +0 -1
  968. package/dist/showcase/assets/useLabelableId-hdKzFCp2.js +0 -1
  969. package/dist/showcase/assets/useOpenInteractionType-CnhifZ1E.js +0 -1
  970. package/dist/showcase/assets/useRender-QhawWhpb.js +0 -1
  971. package/dist/showcase/assets/useTriggerFocusGuards-Cht7Sa7e.js +0 -1
  972. package/dist/showcase/assets/useValueChanged-DURO1kfZ.js +0 -1
  973. package/dist/showcase/assets/user-plus-DbOuTfr7.js +0 -1
  974. package/dist/showcase/assets/user-u65Fo7k7.js +0 -1
  975. package/dist/showcase/assets/users-BUb7CmVp.js +0 -1
  976. package/dist/showcase/assets/vendor-profile-wfI3PBuO.js +0 -37
  977. package/dist/showcase/assets/video-e4hDbTQ2.js +0 -1
  978. package/dist/showcase/assets/wrench-CBUvtxdr.js +0 -1
  979. package/dist/showcase/assets/x-oVTJnCJn.js +0 -1
  980. package/dist/showcase/assets/zap-CzABYL3c.js +0 -1
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../lib/strings.cjs"),t=require("../../../lib/utils.cjs"),n=require("../../../_shared/button-BI347RlM.cjs"),r=require("../../../_shared/heading-0DYCOrgC.cjs"),i=require("../../../_shared/icon-badge-BAWl1oOe.cjs"),a=require("../../../_shared/badge-CBof1rbF.cjs"),o=require("../../../_shared/smart-card-B6m7tmt0.cjs"),s=require("../../../_shared/input-COMcb1WY.cjs"),c=require("../../../_shared/form-field-rMGPvHFK.cjs"),l=require("../../../_shared/separator-q42IlFFA.cjs"),u=require("../../../_shared/display-Dhy5ogxC.cjs"),d=require("../../../_shared/item-DoXXYgPm.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:n,locale:i,dateTone:a=`inverse`,timePlacement:o=`below`}){return(0,p.jsx)(d.o,{className:t.cn(`upcoming-booking--component w-full gap-2`,n),children:e.map((e,t)=>{let n=h(e);return(0,p.jsxs)(d.t,{className:`items-center px-0 py-1.5`,children:[!!n&&(0,p.jsx)(d.c,{children:(0,p.jsx)(u.E,{date:n,time:o===`below`?e.time:void 0,tone:a,locale:i,timePlacement:`below`,layout:`stacked`})}),(0,p.jsxs)(d.r,{className:`min-w-[min(12rem,100%)]`,children:[(0,p.jsx)(d.u,{children:e.service}),(0,p.jsx)(d.i,{clamp:1,children:e.customer})]}),(0,p.jsxs)(d.n,{className:`ml-auto shrink-0 flex-wrap justify-end`,children:[o===`inline-trailing`&&(0,p.jsx)(r.n,{size:`xs`,type:`secondary`,className:`shrink-0 tabular-nums`,children:e.time}),(0,p.jsx)(r.n,{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:s=`Gold Tier`,tierVariant:c,history:f=[],redeemLabel:h,onRedeem:g,className:v,strings:y}){let b=e.useStrings(_,{...h===void 0?{}:{redeem:h},...y});return(0,p.jsxs)(o.t,{className:t.cn(`loyalty-points--component w-full`,v),children:[(0,p.jsx)(u.i,{label:b.balanceLabel,value:(0,p.jsxs)(a.t,{variant:`warning`,children:[(0,p.jsx)(m.Trophy,{className:`mr-1 inline size-3`}),s]}),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)(r.n,{size:`xs`,type:`secondary`,children:b.pointsAvailable}),(0,p.jsx)(l.t,{className:`my-4`}),(0,p.jsx)(d.o,{children:f.map(e=>(0,p.jsxs)(d.t,{size:`xs`,className:`px-0 py-1`,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)(r.n,{weight:`semibold`,className:t.cn(`tabular-nums`,e.positive?`text-success`:`text-destructive`),children:e.points})})]},e.date+e.label))}),(0,p.jsxs)(n.t,{variant:`dark`,className:`mt-5 w-full rounded-full`,onClick:g,children:[(0,p.jsx)(m.Gift,{className:`mr-1.5 size-3.5`}),b.redeem]})]})}v.displayName=`LoyaltyPointsCard`;var y={title:`Applied Discounts`,totalSavings:`Total Savings`};function b({discounts:n,totalSavings:i,className:s,strings:c}){let f=e.useStrings(y,c);return(0,p.jsxs)(o.t,{title:f.title,className:t.cn(`discount-stack--component w-full`,s),children:[(0,p.jsx)(d.o,{className:`mt-4`,children:n.map(e=>(0,p.jsxs)(d.t,{size:`xs`,className:`px-0 py-1`,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)(r.n,{weight:`semibold`,className:`tabular-nums text-success`,children:e.amount})})]},e.type))}),(0,p.jsx)(l.t,{className:`my-4`}),(0,p.jsx)(u.i,{label:f.totalSavings,value:(0,p.jsx)(r.t,{tag:`h4`,className:`text-xl tabular-nums tracking-tight text-success border-none pb-0`,children:i}),labelClassName:`text-sm font-semibold`})]})}b.displayName=`DiscountStackPreview`;function x({trackingNumber:e,carrier:n,status:i,steps:s,details:c=[],className:d}){return(0,p.jsxs)(o.t,{className:t.cn(`shipment-tracking--component w-full`,d),children:[(0,p.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,p.jsx)(r.n,{size:`xs`,weight:`medium`,className:`font-mono text-muted-foreground tracking-wide`,children:e}),!!n&&(0,p.jsx)(a.t,{variant:`info`,children:n})]}),(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)(r.n,{weight:`semibold`,children:i})]}),(0,p.jsx)(`div`,{className:`mt-5 flex items-center justify-between`,children:s.map((e,n)=>(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`)}),n<s.length-1&&(0,p.jsx)(`div`,{className:t.cn(`h-0.5 flex-1`,e.done?`bg-success`:`bg-muted`)})]}),(0,p.jsx)(r.n,{size:`xs`,type:`secondary`,className:`text-center leading-tight`,children:e.label})]},e.label))}),c.length>0&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(l.t,{className:`my-4`}),(0,p.jsx)(`div`,{className:`space-y-2`,children:c.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:n,taxes:i,totalTax:a,total:s,className:c,strings:d}){let f=e.useStrings(S,d);return(0,p.jsxs)(o.t,{icon:(0,p.jsx)(m.Receipt,{className:`size-4`}),title:f.title,className:t.cn(`tax-breakdown--component w-full`,c),children:[(0,p.jsx)(u.i,{label:f.subtotal,value:n,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)(r.n,{size:`xs`,className:`truncate`,children:e.label}),!!e.rate&&(0,p.jsx)(r.n,{tag:`span`,size:`xxs`,type:`discrete`,className:`shrink-0`,children:e.rate})]}),(0,p.jsx)(r.n,{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)(l.t,{className:`my-3`}),(0,p.jsx)(u.i,{label:f.total,value:s,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:s,priceLabel:c,cycleLabel:l,nextBillingDate:u,statusLabel:f,perks:h=[],onManage:g,onUpgrade:_,className:v,strings:y}){let b=e.useStrings(w,y);return(0,p.jsxs)(o.t,{icon:(0,p.jsx)(m.Repeat,{className:`size-4`}),title:b.title,headerEnd:f?(0,p.jsx)(a.t,{variant:`success`,children:f}):null,className:t.cn(`subscription-summary--component w-full`,v),children:[(0,p.jsxs)(`div`,{className:`rounded-lg border border-border/60 bg-muted/30 p-4`,children:[(0,p.jsx)(r.n,{size:`xxs`,type:`secondary`,weight:`medium`,className:`uppercase tracking-wider`,children:b.plan}),(0,p.jsx)(r.t,{tag:`h3`,className:`mt-1 text-xl font-semibold tracking-tight border-none pb-0`,children:s}),(0,p.jsxs)(`div`,{className:`mt-1 flex items-baseline gap-1`,children:[(0,p.jsx)(r.n,{tag:`span`,size:`xl`,weight:`bold`,className:`tabular-nums`,children:c}),(0,p.jsx)(r.n,{type:`secondary`,children:l})]})]}),(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)(r.n,{size:`xs`,type:`secondary`,children:b.nextBilling})]}),(0,p.jsx)(r.n,{size:`xs`,weight:`semibold`,className:`tabular-nums`,children:u})]}),h.length>0&&(0,p.jsxs)(`div`,{className:`mt-4 space-y-2`,children:[(0,p.jsx)(r.n,{size:`xxs`,type:`secondary`,weight:`medium`,className:`uppercase tracking-wider`,children:b.perks}),(0,p.jsx)(d.o,{children:h.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}`))})]}),(g||_)&&(0,p.jsxs)(`div`,{className:`mt-4 flex items-center gap-2`,children:[!!g&&(0,p.jsx)(n.t,{variant:`secondary`,buttonStyle:`outline`,onClick:g,className:`flex-1`,children:b.manage}),!!_&&(0,p.jsxs)(n.t,{variant:`primary`,onClick:_,className:`flex-1`,children:[b.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:n,amount:i,reason:a,method:s,eta:c,requestedAt:d,className:f,strings:h}){let g=e.useStrings(E,h),_=D.indexOf(n);return(0,p.jsxs)(o.t,{icon:(0,p.jsx)(m.RotateCcw,{className:`size-4`}),title:g.title,className:t.cn(`refund-status--component w-full`,f),children:[(0,p.jsxs)(`div`,{className:`rounded-lg bg-muted/40 px-4 py-3`,children:[(0,p.jsx)(r.n,{size:`xxs`,type:`secondary`,weight:`medium`,className:`uppercase tracking-wider`,children:g.amount}),(0,p.jsx)(r.t,{tag:`h3`,className:`text-3xl tabular-nums tracking-tight`,children:i}),!!d&&(0,p.jsxs)(r.n,{size:`xs`,type:`secondary`,className:`mt-0.5`,children:[g.requested,`: `,d]})]}),(0,p.jsx)(`div`,{className:`mt-4 flex items-center justify-between`,children:D.map((e,n)=>{let i=n<=_,a=n===_;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)(r.n,{tag:`span`,size:`xxs`,weight:`medium`,className:`tabular-nums`,children:n+1})}),n<D.length-1&&(0,p.jsx)(`div`,{className:t.cn(`h-0.5 flex-1`,n<_?`bg-success`:`bg-border`)})]}),(0,p.jsx)(r.n,{size:`xxs`,weight:a?`semibold`:`medium`,type:i?`main`:`secondary`,className:`text-center leading-tight`,children:g[e]})]},e)})}),(a||s||c)&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(l.t,{className:`my-4`}),(0,p.jsxs)(`div`,{className:`space-y-2`,children:[!!a&&(0,p.jsx)(u.i,{label:g.reason,value:a,className:`items-start`,valueClassName:`text-sm font-medium text-right`}),!!s&&(0,p.jsx)(u.i,{label:g.method,value:s,valueClassName:`text-sm font-medium`}),!!c&&(0,p.jsx)(u.i,{label:g.eta,value:c,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:n=`shipping`,name:i,line1:s,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)(o.t,{icon:(0,p.jsx)(m.MapPin,{className:`size-4`}),title:C[n],titleSuffix: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 w-full`,b),children:(0,p.jsxs)(`div`,{className:`space-y-0.5`,children:[(0,p.jsx)(r.n,{weight:`semibold`,children:i}),(0,p.jsx)(r.n,{children:s}),!!c&&(0,p.jsx)(r.n,{children:c}),!!w&&(0,p.jsx)(r.n,{children:w}),(0,p.jsx)(r.n,{type:`secondary`,children:f}),!!h&&(0,p.jsx)(r.n,{size:`xs`,type:`secondary`,className:`mt-1.5 tabular-nums`,children:h})]})})}A.displayName=`AddressCard`;var j={title:`Redeem a gift card`,inputLabel:`Gift card code`,placeholder:`Enter gift card code`,helperText:`Apply one gift card or voucher to this order.`,check:`Check balance`,remove:`Remove`,balance:`Available balance`,applied:`Applied`,notFound:`That gift card code is not valid.`},M=e=>e.toUpperCase();function N({appliedCode:l,balance:u,error:h,loading:g,onCheck:_,onRemove:v,className:y,strings:b}){let x=e.useStrings(j,b),S=(0,f.useId)(),[C,w]=(0,f.useState)(``),T=C.trim();return l?(0,p.jsx)(o.t,{icon:(0,p.jsx)(m.Gift,{className:`size-4`}),title:x.title,className:t.cn(`voucher-entry--component w-full`,y),children:(0,p.jsxs)(d.t,{size:`xs`,variant:`outline`,className:`items-center gap-x-2.5 gap-y-1.5 border-success/30 bg-success/5 px-2.5 py-2`,children:[(0,p.jsx)(d.c,{children:(0,p.jsx)(i.t,{icon:m.Check,tone:`success`,size:`sm`,className:`ring-1 ring-success/20`})}),(0,p.jsxs)(d.r,{className:`min-w-0`,children:[(0,p.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,p.jsx)(d.u,{className:`max-w-full font-mono tracking-wider`,children:l}),(0,p.jsx)(a.t,{variant:`success`,size:`xs`,children:x.applied})]}),(0,p.jsx)(d.i,{clamp:1,children:x.balance})]}),(0,p.jsxs)(d.a,{className:`border-t border-success/15 pt-1`,children:[(0,p.jsx)(`span`,{}),(0,p.jsxs)(d.n,{className:`shrink-0 gap-1.5`,children:[!!u&&(0,p.jsx)(r.n,{tag:`span`,size:`xs`,weight:`semibold`,type:`success`,className:`tabular-nums shrink-0`,children:u}),!!v&&(0,p.jsx)(n.t,{type:`button`,variant:`error`,buttonStyle:`ghost`,size:`icon-xs`,onClick:v,"aria-label":x.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)(o.t,{icon:(0,p.jsx)(m.Gift,{className:`size-4`}),title:x.title,className:t.cn(`voucher-entry--component w-full`,y),children:(0,p.jsx)(`form`,{onSubmit:e=>{e.preventDefault(),T&&_?.(T)},children:(0,p.jsx)(c.n,{label:x.inputLabel,htmlFor:S,error:h,hint:h?void 0:x.helperText,children:(0,p.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,p.jsx)(`div`,{className:`min-w-[12rem] flex-1`,children:(0,p.jsx)(s.t,{id:S,value:C,onChange:e=>w(M(e.target.value)),placeholder:x.placeholder,startIcon:m.Gift,autoCapitalize:`characters`,spellCheck:!1,className:`font-mono`,invalid:!!h})}),(0,p.jsx)(n.t,{type:`submit`,loading:g,disabled:!T,className:`shrink-0`,children:x.check})]})})})})}N.displayName=`VoucherEntryCard`;var P={title:`Cart`,subtotal:`Subtotal`,tax:`Tax`,shipping:`Shipping`,discount:`Discount`,total:`Total`,checkout:`Checkout`},F=e=>e.replace(/^[\s−-]+/,``),I=e=>[e.productTitle,e.title,e.name].find(e=>!!e?.trim())??e.id,L=e=>[e.imageUrl,e.imageSrc,e.src,e.url].find(e=>!!e?.trim()),R=e=>e.trim().split(/\s+/).map(e=>e[0]).join(``).slice(0,2).toUpperCase()||e.trim().slice(0,2).toUpperCase();function z({title:e}){return(0,p.jsx)(`div`,{"aria-hidden":`true`,className:`flex size-full items-center justify-center rounded-[inherit] bg-muted text-[length:var(--text-xxs)] font-semibold text-muted-foreground ring-1 ring-border/60`,children:R(e)})}function B({items:i,subtotal:a,tax:s,shipping:c,discount:f,total:h,onCheckout:g,className:_,strings:v}){let y=e.useStrings(P,v),b=!!(a||s||c||f);return(0,p.jsxs)(o.t,{icon:(0,p.jsx)(m.ShoppingBag,{className:`size-4`}),title:y.title,className:t.cn(`cart-summary--component w-full`,_),children:[(0,p.jsx)(d.o,{children:i.map(e=>{let t=I(e),n=L(e);return(0,p.jsxs)(d.t,{className:`cart-summary--item px-0`,children:[(0,p.jsx)(d.c,{variant:`image`,className:`cart-summary--item-media`,children:n?(0,p.jsx)(`img`,{src:n,alt:e.imageAlt??t}):(0,p.jsx)(z,{title:t})}),(0,p.jsxs)(d.r,{className:`cart-summary--item-content`,children:[(0,p.jsx)(d.u,{children:t}),!!e.variantTitle&&(0,p.jsx)(d.i,{clamp:1,children:e.variantTitle})]}),(0,p.jsx)(d.n,{className:`cart-summary--item-actions`,children:(0,p.jsxs)(`div`,{className:`flex shrink-0 flex-col items-end gap-0.5`,children:[(0,p.jsxs)(r.n,{tag:`span`,size:`xs`,type:`secondary`,className:`tabular-nums`,children:[`x`,e.qty]}),(0,p.jsx)(r.n,{tag:`span`,weight:`semibold`,className:`tabular-nums`,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:[!!a&&(0,p.jsx)(u.i,{label:y.subtotal,value:a,mono:!0,valueClassName:`text-xs font-medium`,labelClassName:`text-xs`}),!!s&&(0,p.jsx)(u.i,{label:y.tax,value:s,mono:!0,valueClassName:`text-xs font-medium`,labelClassName:`text-xs`}),!!c&&(0,p.jsx)(u.i,{label:y.shipping,value:c,mono:!0,valueClassName:`text-xs font-medium`,labelClassName:`text-xs`}),!!f&&(0,p.jsx)(u.i,{label:y.discount,value:`−${F(f)}`,mono:!0,labelClassName:`text-xs`,valueClassName:`text-xs font-semibold text-success`})]}),(0,p.jsx)(l.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)(n.t,{onClick:g,fullWidth:!0,className:`mt-4`,children:y.checkout})]})}B.displayName=`CartSummaryCard`;var V={title:`Have a code?`,placeholder:`Enter coupon code`,apply:`Apply`,remove:`Remove`,applied:`Applied`,invalid:`That code is not valid`},H=e=>e.replace(/^[\s−-]+/,``),U=e=>e.toUpperCase();function W({appliedCode:a,appliedDiscount:c,error:l,onApply:u,onRemove:h,loading:g,className:_,strings:v}){let y=e.useStrings(V,v),[b,x]=(0,f.useState)(``),S=b.trim();return a?(0,p.jsx)(o.t,{icon:(0,p.jsx)(m.TicketPercent,{className:`size-4`}),title:y.title,className:t.cn(`coupon-input--component w-full`,_),children:(0,p.jsxs)(d.t,{size:`xs`,variant:`muted`,className:`items-center gap-x-2.5 gap-y-1.5 border border-success/30 bg-success/8 px-2.5 py-2`,children:[(0,p.jsx)(d.c,{children:(0,p.jsx)(i.t,{icon:m.Check,tone:`success`,size:`sm`,className:`ring-1 ring-success/20`})}),(0,p.jsxs)(d.r,{className:`min-w-0`,children:[(0,p.jsx)(d.u,{className:`max-w-full font-mono tracking-wider`,children:a}),(0,p.jsx)(d.i,{className:`uppercase tracking-wide`,clamp:1,children:y.applied})]}),(0,p.jsxs)(d.a,{className:`border-t border-success/15 pt-1`,children:[(0,p.jsx)(`span`,{}),(0,p.jsxs)(d.n,{className:`shrink-0 gap-1.5`,children:[!!c&&(0,p.jsxs)(r.n,{tag:`span`,size:`xs`,weight:`semibold`,type:`success`,className:`tabular-nums shrink-0`,children:[`−`,H(c)]}),!!h&&(0,p.jsx)(n.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)(o.t,{icon:(0,p.jsx)(m.TicketPercent,{className:`size-4`}),title:y.title,className:t.cn(`coupon-input--component w-full`,_),children:(0,p.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,p.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,p.jsx)(`div`,{className:`min-w-[11rem] flex-1`,children:(0,p.jsx)(s.t,{value:b,onChange:e=>x(U(e.target.value)),placeholder:y.placeholder,startIcon:m.Sparkles,autoCapitalize:`characters`,spellCheck:!1,className:`font-mono`,invalid:!!l})}),(0,p.jsx)(n.t,{size:`default`,onClick:()=>u?.(S),loading:g,disabled:!S,className:`shrink-0`,children:y.apply})]}),!!l&&(0,p.jsx)(r.n,{size:`xs`,type:`error`,children:l||y.invalid})]})})}W.displayName=`CouponInputCard`;var G={title:`Order status`,statusLabel:`Current status`,eta:`ETA`,latestEvent:`Latest event`,currentStep:`Current step`},K={pending:`warning`,paid:`info`,fulfilled:`info`,shipped:`primary`,delivered:`success`,cancelled:`error`};function q({orderNumber:n,status:i,statusVariant:s,events:c,currentEta:l,className:u,strings:d}){let f=e.useStrings(G,d),h=s??K[i],g=c.reduce((e,t,n)=>t.complete?n:e,-1),_=c[g]??c[0],v=c.find(e=>!e.complete);return(0,p.jsxs)(o.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:`#${n}`,className:t.cn(`order-status--component w-full`,u),children:[(0,p.jsx)(`div`,{className:`rounded-lg border border-border bg-muted/20 p-3`,children:(0,p.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-3`,children:[(0,p.jsxs)(`div`,{children:[(0,p.jsx)(r.n,{size:`xxs`,type:`secondary`,className:`uppercase tracking-wide`,children:f.statusLabel}),(0,p.jsx)(r.n,{weight:`semibold`,className:`mt-0.5 capitalize`,children:i})]}),!!_&&(0,p.jsxs)(`div`,{children:[(0,p.jsx)(r.n,{size:`xxs`,type:`secondary`,className:`uppercase tracking-wide`,children:_.complete?f.latestEvent:f.currentStep}),(0,p.jsx)(r.n,{weight:`semibold`,className:`mt-0.5`,children:_.label})]}),!!l&&(0,p.jsxs)(`div`,{children:[(0,p.jsx)(r.n,{size:`xxs`,type:`secondary`,className:`uppercase tracking-wide`,children:f.eta}),(0,p.jsx)(r.n,{weight:`semibold`,className:`mt-0.5 tabular-nums`,children:l})]})]})}),c.length>0&&(0,p.jsx)(`ol`,{className:`mt-4`,children:c.map((e,n)=>{let i=n===c.length-1,a=v?e===v:n===g;return(0,p.jsxs)(`li`,{className:`relative flex gap-3`,children:[(0,p.jsxs)(`div`,{className:`flex flex-col items-center`,children:[(0,p.jsx)(`span`,{className:t.cn(`flex size-6 shrink-0 items-center justify-center rounded-full border`,e.complete?`border-success bg-success text-success-foreground`:`border-border bg-card text-muted-foreground`,a&&!e.complete&&`border-primary text-primary ring-4 ring-primary/10`),children:e.complete?(0,p.jsx)(m.Check,{className:`size-3.5`,strokeWidth:2.5}):a?(0,p.jsx)(m.CalendarClock,{className:`size-3.5`}):(0,p.jsx)(m.Circle,{className:`size-3`})}),!i&&(0,p.jsx)(`span`,{"aria-hidden":`true`,className:t.cn(`min-h-6 w-px flex-1`,n<g?`bg-success`:`bg-border`)})]}),(0,p.jsxs)(`div`,{className:t.cn(`min-w-0 flex-1 pb-4`,i&&`pb-0`),children:[(0,p.jsx)(r.n,{weight:e.complete||a?`semibold`:`medium`,className:t.cn(!e.complete&&!a&&`text-muted-foreground`),children:e.label}),!!e.timestamp&&(0,p.jsx)(r.n,{size:`xs`,type:`secondary`,className:`mt-0.5 tabular-nums`,children:e.timestamp})]})]},`${e.label}-${n}`)})})]})}q.displayName=`OrderStatusCard`;var J={title:`Payment method`,default:`Default`,cardHolder:`Card holder`,expires:`Expires`,change:`Change`},Y={visa:`VISA`,mastercard:`MasterCard`,amex:`AMEX`,paypal:`PayPal`,applepay:`Apple Pay`,googlepay:`Google Pay`,unknown:`Card`},X={visa:`from-info via-primary to-info`,mastercard:`from-warning via-destructive to-destructive`,amex:`from-info via-primary to-info`,paypal:`from-info via-primary to-info`,applepay:`from-foreground via-muted-foreground to-foreground`,googlepay:`from-success via-primary to-success`,unknown:`from-foreground via-muted-foreground to-foreground`};function Z({brand:i,last4:s,expiry:c,holderName:l,isDefault:u,onChange:d,className:f,strings:h}){let g=e.useStrings(J,h),_=Y[i],v=X[i];return(0,p.jsx)(o.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,headerAction:d?(0,p.jsx)(n.t,{buttonStyle:`ghost`,variant:`secondary`,onClick:d,children:g.change}):void 0,className:t.cn(`payment-method--component w-full`,f),children:(0,p.jsxs)(`div`,{className:t.cn(`relative mx-auto flex aspect-[85.6/53.98] w-full max-w-[22rem] flex-col justify-between overflow-hidden rounded-lg bg-gradient-to-br p-3.5 text-inverse-foreground shadow-sm ring-1 ring-inverse-border`,v),children:[(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-warning/80 to-warning shadow-sm`,children:(0,p.jsx)(`div`,{className:`size-4 rounded-sm border border-warning-foreground/25 bg-warning-foreground/15`})}),(0,p.jsx)(r.n,{tag:`span`,weight:`bold`,className:`rounded bg-inverse-surface px-2 py-0.5 tracking-[0.15em] text-inverse-foreground backdrop-blur-sm`,children:_})]}),(0,p.jsx)(`div`,{className:`relative`,children:(0,p.jsxs)(r.n,{tag:`span`,size:`base`,weight:`semibold`,className:`block font-mono tracking-[0.25em] text-inverse-foreground`,children:[`•••• •••• •••• `,s]})}),(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)(r.n,{size:`xxs`,className:`block uppercase tracking-wider text-inverse-subtle`,children:g.cardHolder}),(0,p.jsx)(r.n,{weight:`semibold`,className:`truncate text-inverse-foreground`,children:l})]})}),!!c&&(0,p.jsxs)(`div`,{className:`text-right shrink-0`,children:[(0,p.jsx)(r.n,{size:`xxs`,className:`block uppercase tracking-wider text-inverse-subtle`,children:g.expires}),(0,p.jsx)(r.n,{tag:`span`,weight:`semibold`,className:`tabular-nums text-inverse-foreground`,children:c})]})]})]})})}Z.displayName=`PaymentMethodCard`,exports.AddressCard=A,exports.CartSummaryCard=B,exports.CouponInputCard=W,exports.DiscountStackPreview=b,exports.LoyaltyPointsCard=v,exports.OrderStatusCard=q,exports.PaymentMethodCard=Z,exports.RefundStatusCard=O,exports.ShipmentTrackingCard=x,exports.SubscriptionSummaryCard=T,exports.TaxBreakdownCard=C,exports.UpcomingBookingRow=g,exports.VoucherEntryCard=N,exports.defaultAddressCardStrings=k,exports.defaultCartSummaryStrings=P,exports.defaultCouponInputStrings=V,exports.defaultDiscountStackStrings=y,exports.defaultLoyaltyPointsStrings=_,exports.defaultOrderStatusStrings=G,exports.defaultPaymentMethodStrings=J,exports.defaultRefundStatusStrings=E,exports.defaultSubscriptionSummaryStrings=w,exports.defaultTaxBreakdownStrings=S,exports.defaultVoucherEntryStrings=j;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../lib/strings.cjs"),t=require("../../../lib/utils.cjs"),n=require("../../../_shared/button-BI347RlM.cjs"),r=require("../../../_shared/heading-0DYCOrgC.cjs"),i=require("../../../_shared/icon-badge-BAWl1oOe.cjs"),a=require("../../../_shared/badge-D7A2LnSf.cjs"),o=require("../../../_shared/smart-card-B6m7tmt0.cjs"),s=require("../../../_shared/input-COMcb1WY.cjs"),c=require("../../../_shared/display-AtPyyUZc.cjs"),l=require("../../../_shared/separator-q42IlFFA.cjs"),u=require("../../../_shared/item-DoXXYgPm.cjs");let d=require("react"),f=require("react/jsx-runtime"),p=require("lucide-react");function m(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 h({bookings:e,className:n,locale:i,dateTone:a=`inverse`,timePlacement:o=`below`}){return(0,f.jsx)(u.o,{className:t.cn(`upcoming-booking--component w-full gap-2`,n),children:e.map((e,t)=>{let n=m(e);return(0,f.jsxs)(u.t,{className:`items-center px-0 py-1.5`,children:[!!n&&(0,f.jsx)(u.c,{children:(0,f.jsx)(c.E,{date:n,time:o===`below`?e.time:void 0,tone:a,locale:i,timePlacement:`below`,layout:`stacked`})}),(0,f.jsxs)(u.r,{className:`min-w-[min(12rem,100%)]`,children:[(0,f.jsx)(u.u,{children:e.service}),(0,f.jsx)(u.i,{clamp:1,children:e.customer})]}),(0,f.jsxs)(u.n,{className:`ml-auto shrink-0 flex-wrap justify-end`,children:[o===`inline-trailing`&&(0,f.jsx)(r.n,{size:`xs`,type:`secondary`,className:`shrink-0 tabular-nums`,children:e.time}),(0,f.jsx)(r.n,{weight:`semibold`,className:`shrink-0 tabular-nums`,children:e.amount})]})]},e.id??`${e.service}-${e.time}-${t}`)})})}h.displayName=`UpcomingBookingRow`;var g={balanceLabel:`Loyalty Balance`,pointsAvailable:`points available`,redeem:`Redeem Points`};function _({balance:i,tier:s=`Gold Tier`,tierVariant:d,history:m=[],redeemLabel:h,onRedeem:_,className:v,strings:y}){let b=e.useStrings(g,{...h===void 0?{}:{redeem:h},...y});return(0,f.jsxs)(o.t,{className:t.cn(`loyalty-points--component w-full`,v),children:[(0,f.jsx)(c.i,{label:b.balanceLabel,value:(0,f.jsxs)(a.t,{variant:`warning`,children:[(0,f.jsx)(p.Trophy,{className:`mr-1 inline size-3`}),s]}),labelClassName:`text-xs font-medium uppercase tracking-wider text-muted-foreground`}),(0,f.jsx)(r.t,{tag:`h3`,className:`text-4xl tabular-nums tracking-tight`,children:typeof i==`number`?i.toLocaleString():i}),(0,f.jsx)(r.n,{size:`xs`,type:`secondary`,children:b.pointsAvailable}),(0,f.jsx)(l.t,{className:`my-4`}),(0,f.jsx)(u.o,{children:m.map(e=>(0,f.jsxs)(u.t,{size:`xs`,className:`px-0 py-1`,children:[(0,f.jsxs)(u.r,{children:[(0,f.jsx)(u.u,{bold:!1,children:e.label}),(0,f.jsx)(u.i,{clamp:1,children:e.date})]}),(0,f.jsx)(u.n,{children:(0,f.jsx)(r.n,{weight:`semibold`,className:t.cn(`tabular-nums`,e.positive?`text-success`:`text-destructive`),children:e.points})})]},e.date+e.label))}),(0,f.jsxs)(n.t,{variant:`dark`,className:`mt-5 w-full rounded-full`,onClick:_,children:[(0,f.jsx)(p.Gift,{className:`mr-1.5 size-3.5`}),b.redeem]})]})}_.displayName=`LoyaltyPointsCard`;var v={title:`Applied Discounts`,totalSavings:`Total Savings`};function y({discounts:n,totalSavings:i,className:s,strings:d}){let p=e.useStrings(v,d);return(0,f.jsxs)(o.t,{title:p.title,className:t.cn(`discount-stack--component w-full`,s),children:[(0,f.jsx)(u.o,{className:`mt-4`,children:n.map(e=>(0,f.jsxs)(u.t,{size:`xs`,className:`px-0 py-1`,children:[(0,f.jsx)(u.c,{children:(0,f.jsx)(a.t,{variant:e.badge,className:`w-16 justify-center text-xxs`,children:e.type})}),(0,f.jsx)(u.r,{children:(0,f.jsx)(u.u,{bold:!1,children:e.label})}),(0,f.jsx)(u.n,{children:(0,f.jsx)(r.n,{weight:`semibold`,className:`tabular-nums text-success`,children:e.amount})})]},e.type))}),(0,f.jsx)(l.t,{className:`my-4`}),(0,f.jsx)(c.i,{label:p.totalSavings,value:(0,f.jsx)(r.t,{tag:`h4`,className:`text-xl tabular-nums tracking-tight text-success border-none pb-0`,children:i}),labelClassName:`text-sm font-semibold`})]})}y.displayName=`DiscountStackPreview`;function b({trackingNumber:e,carrier:n,status:i,steps:s,details:u=[],className:d}){return(0,f.jsxs)(o.t,{className:t.cn(`shipment-tracking--component w-full`,d),children:[(0,f.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,f.jsx)(r.n,{size:`xs`,weight:`medium`,className:`font-mono text-muted-foreground tracking-wide`,children:e}),!!n&&(0,f.jsx)(a.t,{variant:`info`,children:n})]}),(0,f.jsxs)(`div`,{className:`mt-4 flex items-center gap-1.5`,children:[(0,f.jsx)(`span`,{className:`h-2 w-2 rounded-full bg-success`}),(0,f.jsx)(r.n,{weight:`semibold`,children:i})]}),(0,f.jsx)(`div`,{className:`mt-5 flex items-center justify-between`,children:s.map((e,n)=>(0,f.jsxs)(`div`,{className:`flex flex-1 flex-col items-center gap-2`,children:[(0,f.jsxs)(`div`,{className:`flex w-full items-center`,children:[(0,f.jsx)(`div`,{className:t.cn(`size-3 shrink-0 rounded-full`,e.done?`bg-success`:`bg-muted`)}),n<s.length-1&&(0,f.jsx)(`div`,{className:t.cn(`h-0.5 flex-1`,e.done?`bg-success`:`bg-muted`)})]}),(0,f.jsx)(r.n,{size:`xs`,type:`secondary`,className:`text-center leading-tight`,children:e.label})]},e.label))}),u.length>0&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(l.t,{className:`my-4`}),(0,f.jsx)(`div`,{className:`space-y-2`,children:u.map(e=>(0,f.jsx)(c.i,{label:e.label,value:e.value,labelClassName:`text-xs`,valueClassName:`text-sm font-medium truncate max-w-[180px]`},e.label))})]})]})}b.displayName=`ShipmentTrackingCard`;var x={title:`Tax Breakdown`,subtotal:`Subtotal`,totalTax:`Total Tax`,total:`Total`};function S({subtotal:n,taxes:i,totalTax:a,total:s,className:u,strings:d}){let m=e.useStrings(x,d);return(0,f.jsxs)(o.t,{icon:(0,f.jsx)(p.Receipt,{className:`size-4`}),title:m.title,className:t.cn(`tax-breakdown--component w-full`,u),children:[(0,f.jsx)(c.i,{label:m.subtotal,value:n,mono:!0,labelClassName:`text-sm`,valueClassName:`text-sm font-medium`}),(0,f.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,f.jsxs)(`div`,{className:`flex items-baseline justify-between gap-3`,children:[(0,f.jsxs)(`div`,{className:`flex items-baseline gap-1.5 min-w-0`,children:[(0,f.jsx)(r.n,{size:`xs`,className:`truncate`,children:e.label}),!!e.rate&&(0,f.jsx)(r.n,{tag:`span`,size:`xxs`,type:`discrete`,className:`shrink-0`,children:e.rate})]}),(0,f.jsx)(r.n,{tag:`span`,size:`xs`,weight:`medium`,className:`tabular-nums shrink-0`,children:e.amount})]},e.id??`${e.label}-${t}`)),!!a&&i.length>1&&(0,f.jsx)(c.i,{label:m.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,f.jsx)(l.t,{className:`my-3`}),(0,f.jsx)(c.i,{label:m.total,value:s,mono:!0,labelClassName:`text-sm font-semibold`,valueClassName:`text-lg font-bold`})]})}S.displayName=`TaxBreakdownCard`;var C={title:`Subscription`,plan:`Plan`,nextBilling:`Next billing`,perks:`Included`,manage:`Manage`,upgrade:`Upgrade`};function w({planName:s,priceLabel:c,cycleLabel:l,nextBillingDate:d,statusLabel:m,perks:h=[],onManage:g,onUpgrade:_,className:v,strings:y}){let b=e.useStrings(C,y);return(0,f.jsxs)(o.t,{icon:(0,f.jsx)(p.Repeat,{className:`size-4`}),title:b.title,headerEnd:m?(0,f.jsx)(a.t,{variant:`success`,children:m}):null,className:t.cn(`subscription-summary--component w-full`,v),children:[(0,f.jsxs)(`div`,{className:`rounded-lg border border-border/60 bg-muted/30 p-4`,children:[(0,f.jsx)(r.n,{size:`xxs`,type:`secondary`,weight:`medium`,className:`uppercase tracking-wider`,children:b.plan}),(0,f.jsx)(r.t,{tag:`h3`,className:`mt-1 text-xl font-semibold tracking-tight border-none pb-0`,children:s}),(0,f.jsxs)(`div`,{className:`mt-1 flex items-baseline gap-1`,children:[(0,f.jsx)(r.n,{tag:`span`,size:`xl`,weight:`bold`,className:`tabular-nums`,children:c}),(0,f.jsx)(r.n,{type:`secondary`,children:l})]})]}),(0,f.jsxs)(`div`,{className:`mt-3 flex items-center justify-between rounded-md bg-card px-1`,children:[(0,f.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,f.jsx)(p.Calendar,{className:`size-3.5 text-muted-foreground`}),(0,f.jsx)(r.n,{size:`xs`,type:`secondary`,children:b.nextBilling})]}),(0,f.jsx)(r.n,{size:`xs`,weight:`semibold`,className:`tabular-nums`,children:d})]}),h.length>0&&(0,f.jsxs)(`div`,{className:`mt-4 space-y-2`,children:[(0,f.jsx)(r.n,{size:`xxs`,type:`secondary`,weight:`medium`,className:`uppercase tracking-wider`,children:b.perks}),(0,f.jsx)(u.o,{children:h.map((e,t)=>(0,f.jsxs)(u.t,{size:`xs`,className:`px-0`,children:[(0,f.jsx)(u.c,{children:(0,f.jsx)(i.t,{icon:e.icon??p.Check,tone:`success`,size:`xs`})}),(0,f.jsx)(u.r,{children:(0,f.jsx)(u.u,{bold:!1,children:e.label})})]},`${e.label}-${t}`))})]}),(g||_)&&(0,f.jsxs)(`div`,{className:`mt-4 flex items-center gap-2`,children:[!!g&&(0,f.jsx)(n.t,{variant:`secondary`,buttonStyle:`outline`,onClick:g,className:`flex-1`,children:b.manage}),!!_&&(0,f.jsxs)(n.t,{variant:`primary`,onClick:_,className:`flex-1`,children:[b.upgrade,(0,f.jsx)(p.ChevronRight,{className:`ml-1 size-3.5`})]})]})]})}w.displayName=`SubscriptionSummaryCard`;var T={title:`Refund Status`,requested:`Requested`,approved:`Approved`,processing:`Processing`,completed:`Completed`,amount:`Refund amount`,reason:`Reason`,eta:`Expected by`,method:`Refund to`},E=[`requested`,`approved`,`processing`,`completed`];function D({stage:n,amount:i,reason:a,method:s,eta:u,requestedAt:d,className:m,strings:h}){let g=e.useStrings(T,h),_=E.indexOf(n);return(0,f.jsxs)(o.t,{icon:(0,f.jsx)(p.RotateCcw,{className:`size-4`}),title:g.title,className:t.cn(`refund-status--component w-full`,m),children:[(0,f.jsxs)(`div`,{className:`rounded-lg bg-muted/40 px-4 py-3`,children:[(0,f.jsx)(r.n,{size:`xxs`,type:`secondary`,weight:`medium`,className:`uppercase tracking-wider`,children:g.amount}),(0,f.jsx)(r.t,{tag:`h3`,className:`text-3xl tabular-nums tracking-tight`,children:i}),!!d&&(0,f.jsxs)(r.n,{size:`xs`,type:`secondary`,className:`mt-0.5`,children:[g.requested,`: `,d]})]}),(0,f.jsx)(`div`,{className:`mt-4 flex items-center justify-between`,children:E.map((e,n)=>{let i=n<=_,a=n===_;return(0,f.jsxs)(`div`,{className:`flex flex-1 flex-col items-center gap-1.5`,children:[(0,f.jsxs)(`div`,{className:`flex w-full items-center`,children:[(0,f.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,f.jsx)(p.Check,{className:`size-3`}):(0,f.jsx)(r.n,{tag:`span`,size:`xxs`,weight:`medium`,className:`tabular-nums`,children:n+1})}),n<E.length-1&&(0,f.jsx)(`div`,{className:t.cn(`h-0.5 flex-1`,n<_?`bg-success`:`bg-border`)})]}),(0,f.jsx)(r.n,{size:`xxs`,weight:a?`semibold`:`medium`,type:i?`main`:`secondary`,className:`text-center leading-tight`,children:g[e]})]},e)})}),(a||s||u)&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(l.t,{className:`my-4`}),(0,f.jsxs)(`div`,{className:`space-y-2`,children:[!!a&&(0,f.jsx)(c.i,{label:g.reason,value:a,className:`items-start`,valueClassName:`text-sm font-medium text-right`}),!!s&&(0,f.jsx)(c.i,{label:g.method,value:s,valueClassName:`text-sm font-medium`}),!!u&&(0,f.jsx)(c.i,{label:g.eta,value:u,mono:!0,valueClassName:`text-sm font-medium`})]})]})]})}D.displayName=`RefundStatusCard`;var O={defaultBadge:`Default`,edit:`Edit`,remove:`Remove`,makeDefault:`Make default`,shipping:`Shipping address`,billing:`Billing address`,pickup:`Pickup address`};function k({kind:n=`shipping`,name:i,line1:s,line2:c,city:l,region:u,postalCode:d,country:m,phone:h,isDefault:g=!1,onEdit:_,onRemove:v,onMakeDefault:y,className:b,strings:x}){let S=e.useStrings(O,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,f.jsx)(p.Edit2,{className:`size-3.5`}),onClick:_}),y&&!g&&T.push({id:`make-default`,label:S.makeDefault,icon:(0,f.jsx)(p.Star,{className:`size-3.5`}),onClick:y}),v&&T.push({id:`remove`,label:S.remove,icon:(0,f.jsx)(p.Trash2,{className:`size-3.5`}),onClick:v}),(0,f.jsx)(o.t,{icon:(0,f.jsx)(p.MapPin,{className:`size-4`}),title:C[n],titleSuffix:g?(0,f.jsx)(a.t,{variant:`primary`,children:S.defaultBadge}):null,actions:T.length>0?T:void 0,className:t.cn(`address-card--component w-full`,b),children:(0,f.jsxs)(`div`,{className:`space-y-0.5`,children:[(0,f.jsx)(r.n,{weight:`semibold`,children:i}),(0,f.jsx)(r.n,{children:s}),!!c&&(0,f.jsx)(r.n,{children:c}),!!w&&(0,f.jsx)(r.n,{children:w}),(0,f.jsx)(r.n,{type:`secondary`,children:m}),!!h&&(0,f.jsx)(r.n,{size:`xs`,type:`secondary`,className:`mt-1.5 tabular-nums`,children:h})]})})}k.displayName=`AddressCard`;var A={title:`Redeem a gift card`,inputLabel:`Gift card code`,placeholder:`Enter gift card code`,helperText:`Apply one gift card or voucher to this order.`,check:`Check balance`,remove:`Remove`,balance:`Available balance`,applied:`Applied`,notFound:`That gift card code is not valid.`},j=e=>e.toUpperCase();function M({appliedCode:l,balance:m,error:h,loading:g,onCheck:_,onRemove:v,className:y,strings:b}){let x=e.useStrings(A,b),S=(0,d.useId)(),[C,w]=(0,d.useState)(``),T=C.trim();return l?(0,f.jsx)(o.t,{icon:(0,f.jsx)(p.Gift,{className:`size-4`}),title:x.title,className:t.cn(`voucher-entry--component w-full`,y),children:(0,f.jsxs)(u.t,{size:`xs`,variant:`outline`,className:`items-center gap-x-2.5 gap-y-1.5 border-success/30 bg-success/5 px-2.5 py-2`,children:[(0,f.jsx)(u.c,{children:(0,f.jsx)(i.t,{icon:p.Check,tone:`success`,size:`sm`,className:`ring-1 ring-success/20`})}),(0,f.jsxs)(u.r,{className:`min-w-0`,children:[(0,f.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,f.jsx)(u.u,{className:`max-w-full font-mono tracking-wider`,children:l}),(0,f.jsx)(a.t,{variant:`success`,size:`xs`,children:x.applied})]}),(0,f.jsx)(u.i,{clamp:1,children:x.balance})]}),(0,f.jsxs)(u.a,{className:`border-t border-success/15 pt-1`,children:[(0,f.jsx)(`span`,{}),(0,f.jsxs)(u.n,{className:`shrink-0 gap-1.5`,children:[!!m&&(0,f.jsx)(r.n,{tag:`span`,size:`xs`,weight:`semibold`,type:`success`,className:`tabular-nums shrink-0`,children:m}),!!v&&(0,f.jsx)(n.t,{type:`button`,variant:`error`,buttonStyle:`ghost`,size:`icon-xs`,onClick:v,"aria-label":x.remove,className:`size-7 shrink-0 text-muted-foreground hover:text-destructive`,children:(0,f.jsx)(p.X,{className:`size-3.5`})})]})]})]})}):(0,f.jsx)(o.t,{icon:(0,f.jsx)(p.Gift,{className:`size-4`}),title:x.title,className:t.cn(`voucher-entry--component w-full`,y),children:(0,f.jsx)(`form`,{onSubmit:e=>{e.preventDefault(),T&&_?.(T)},children:(0,f.jsx)(c.F,{label:x.inputLabel,htmlFor:S,error:h,hint:h?void 0:x.helperText,children:(0,f.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,f.jsx)(`div`,{className:`min-w-[12rem] flex-1`,children:(0,f.jsx)(s.t,{id:S,value:C,onChange:e=>w(j(e.target.value)),placeholder:x.placeholder,startIcon:p.Gift,autoCapitalize:`characters`,spellCheck:!1,className:`font-mono`,invalid:!!h})}),(0,f.jsx)(n.t,{type:`submit`,loading:g,disabled:!T,className:`shrink-0`,children:x.check})]})})})})}M.displayName=`VoucherEntryCard`;var N={title:`Cart`,subtotal:`Subtotal`,tax:`Tax`,shipping:`Shipping`,discount:`Discount`,total:`Total`,checkout:`Checkout`},P=e=>e.replace(/^[\s−-]+/,``),F=e=>[e.productTitle,e.title,e.name].find(e=>!!e?.trim())??e.id,I=e=>[e.imageUrl,e.imageSrc,e.src,e.url].find(e=>!!e?.trim()),L=e=>e.trim().split(/\s+/).map(e=>e[0]).join(``).slice(0,2).toUpperCase()||e.trim().slice(0,2).toUpperCase();function R({title:e}){return(0,f.jsx)(`div`,{"aria-hidden":`true`,className:`flex size-full items-center justify-center rounded-[inherit] bg-muted text-[length:var(--text-xxs)] font-semibold text-muted-foreground ring-1 ring-border/60`,children:L(e)})}function z({items:i,subtotal:a,tax:s,shipping:d,discount:m,total:h,onCheckout:g,className:_,strings:v}){let y=e.useStrings(N,v),b=!!(a||s||d||m);return(0,f.jsxs)(o.t,{icon:(0,f.jsx)(p.ShoppingBag,{className:`size-4`}),title:y.title,className:t.cn(`cart-summary--component w-full`,_),children:[(0,f.jsx)(u.o,{children:i.map(e=>{let t=F(e),n=I(e);return(0,f.jsxs)(u.t,{className:`cart-summary--item px-0`,children:[(0,f.jsx)(u.c,{variant:`image`,className:`cart-summary--item-media`,children:n?(0,f.jsx)(`img`,{src:n,alt:e.imageAlt??t}):(0,f.jsx)(R,{title:t})}),(0,f.jsxs)(u.r,{className:`cart-summary--item-content`,children:[(0,f.jsx)(u.u,{children:t}),!!e.variantTitle&&(0,f.jsx)(u.i,{clamp:1,children:e.variantTitle})]}),(0,f.jsx)(u.n,{className:`cart-summary--item-actions`,children:(0,f.jsxs)(`div`,{className:`flex shrink-0 flex-col items-end gap-0.5`,children:[(0,f.jsxs)(r.n,{tag:`span`,size:`xs`,type:`secondary`,className:`tabular-nums`,children:[`x`,e.qty]}),(0,f.jsx)(r.n,{tag:`span`,weight:`semibold`,className:`tabular-nums`,children:e.price})]})})]},e.id)})}),!!b&&(0,f.jsxs)(`div`,{className:`mt-3 space-y-1.5 rounded-lg bg-muted/30 px-3 py-2.5`,children:[!!a&&(0,f.jsx)(c.i,{label:y.subtotal,value:a,mono:!0,valueClassName:`text-xs font-medium`,labelClassName:`text-xs`}),!!s&&(0,f.jsx)(c.i,{label:y.tax,value:s,mono:!0,valueClassName:`text-xs font-medium`,labelClassName:`text-xs`}),!!d&&(0,f.jsx)(c.i,{label:y.shipping,value:d,mono:!0,valueClassName:`text-xs font-medium`,labelClassName:`text-xs`}),!!m&&(0,f.jsx)(c.i,{label:y.discount,value:`−${P(m)}`,mono:!0,labelClassName:`text-xs`,valueClassName:`text-xs font-semibold text-success`})]}),(0,f.jsx)(l.t,{className:`my-3`}),(0,f.jsx)(c.i,{label:y.total,value:h,mono:!0,labelClassName:`text-sm font-semibold`,valueClassName:`text-lg font-bold`}),!!g&&(0,f.jsx)(n.t,{onClick:g,fullWidth:!0,className:`mt-4`,children:y.checkout})]})}z.displayName=`CartSummaryCard`;var B={title:`Have a code?`,placeholder:`Enter coupon code`,apply:`Apply`,remove:`Remove`,applied:`Applied`,invalid:`That code is not valid`},V=e=>e.replace(/^[\s−-]+/,``),H=e=>e.toUpperCase();function U({appliedCode:a,appliedDiscount:c,error:l,onApply:m,onRemove:h,loading:g,className:_,strings:v}){let y=e.useStrings(B,v),[b,x]=(0,d.useState)(``),S=b.trim();return a?(0,f.jsx)(o.t,{icon:(0,f.jsx)(p.TicketPercent,{className:`size-4`}),title:y.title,className:t.cn(`coupon-input--component w-full`,_),children:(0,f.jsxs)(u.t,{size:`xs`,variant:`muted`,className:`items-center gap-x-2.5 gap-y-1.5 border border-success/30 bg-success/8 px-2.5 py-2`,children:[(0,f.jsx)(u.c,{children:(0,f.jsx)(i.t,{icon:p.Check,tone:`success`,size:`sm`,className:`ring-1 ring-success/20`})}),(0,f.jsxs)(u.r,{className:`min-w-0`,children:[(0,f.jsx)(u.u,{className:`max-w-full font-mono tracking-wider`,children:a}),(0,f.jsx)(u.i,{className:`uppercase tracking-wide`,clamp:1,children:y.applied})]}),(0,f.jsxs)(u.a,{className:`border-t border-success/15 pt-1`,children:[(0,f.jsx)(`span`,{}),(0,f.jsxs)(u.n,{className:`shrink-0 gap-1.5`,children:[!!c&&(0,f.jsxs)(r.n,{tag:`span`,size:`xs`,weight:`semibold`,type:`success`,className:`tabular-nums shrink-0`,children:[`−`,V(c)]}),!!h&&(0,f.jsx)(n.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,f.jsx)(p.X,{className:`size-3.5`})})]})]})]})}):(0,f.jsx)(o.t,{icon:(0,f.jsx)(p.TicketPercent,{className:`size-4`}),title:y.title,className:t.cn(`coupon-input--component w-full`,_),children:(0,f.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,f.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,f.jsx)(`div`,{className:`min-w-[11rem] flex-1`,children:(0,f.jsx)(s.t,{value:b,onChange:e=>x(H(e.target.value)),placeholder:y.placeholder,startIcon:p.Sparkles,autoCapitalize:`characters`,spellCheck:!1,className:`font-mono`,invalid:!!l})}),(0,f.jsx)(n.t,{size:`default`,onClick:()=>m?.(S),loading:g,disabled:!S,className:`shrink-0`,children:y.apply})]}),!!l&&(0,f.jsx)(r.n,{size:`xs`,type:`error`,children:l||y.invalid})]})})}U.displayName=`CouponInputCard`;var W={title:`Order status`,statusLabel:`Current status`,eta:`ETA`,latestEvent:`Latest event`,currentStep:`Current step`},G={pending:`warning`,paid:`info`,fulfilled:`info`,shipped:`primary`,delivered:`success`,cancelled:`error`};function K({orderNumber:n,status:i,statusVariant:s,events:c,currentEta:l,className:u,strings:d}){let m=e.useStrings(W,d),h=s??G[i],g=c.reduce((e,t,n)=>t.complete?n:e,-1),_=c[g]??c[0],v=c.find(e=>!e.complete);return(0,f.jsxs)(o.t,{icon:(0,f.jsx)(p.Package,{className:`size-4`}),title:m.title,titleSuffix:(0,f.jsx)(a.t,{variant:h,className:`capitalize`,children:i}),description:`#${n}`,className:t.cn(`order-status--component w-full`,u),children:[(0,f.jsx)(`div`,{className:`rounded-lg border border-border bg-muted/20 p-3`,children:(0,f.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-3`,children:[(0,f.jsxs)(`div`,{children:[(0,f.jsx)(r.n,{size:`xxs`,type:`secondary`,className:`uppercase tracking-wide`,children:m.statusLabel}),(0,f.jsx)(r.n,{weight:`semibold`,className:`mt-0.5 capitalize`,children:i})]}),!!_&&(0,f.jsxs)(`div`,{children:[(0,f.jsx)(r.n,{size:`xxs`,type:`secondary`,className:`uppercase tracking-wide`,children:_.complete?m.latestEvent:m.currentStep}),(0,f.jsx)(r.n,{weight:`semibold`,className:`mt-0.5`,children:_.label})]}),!!l&&(0,f.jsxs)(`div`,{children:[(0,f.jsx)(r.n,{size:`xxs`,type:`secondary`,className:`uppercase tracking-wide`,children:m.eta}),(0,f.jsx)(r.n,{weight:`semibold`,className:`mt-0.5 tabular-nums`,children:l})]})]})}),c.length>0&&(0,f.jsx)(`ol`,{className:`mt-4`,children:c.map((e,n)=>{let i=n===c.length-1,a=v?e===v:n===g;return(0,f.jsxs)(`li`,{className:`relative flex gap-3`,children:[(0,f.jsxs)(`div`,{className:`flex flex-col items-center`,children:[(0,f.jsx)(`span`,{className:t.cn(`flex size-6 shrink-0 items-center justify-center rounded-full border`,e.complete?`border-success bg-success text-success-foreground`:`border-border bg-card text-muted-foreground`,a&&!e.complete&&`border-primary text-primary ring-4 ring-primary/10`),children:e.complete?(0,f.jsx)(p.Check,{className:`size-3.5`,strokeWidth:2.5}):a?(0,f.jsx)(p.CalendarClock,{className:`size-3.5`}):(0,f.jsx)(p.Circle,{className:`size-3`})}),!i&&(0,f.jsx)(`span`,{"aria-hidden":`true`,className:t.cn(`min-h-6 w-px flex-1`,n<g?`bg-success`:`bg-border`)})]}),(0,f.jsxs)(`div`,{className:t.cn(`min-w-0 flex-1 pb-4`,i&&`pb-0`),children:[(0,f.jsx)(r.n,{weight:e.complete||a?`semibold`:`medium`,className:t.cn(!e.complete&&!a&&`text-muted-foreground`),children:e.label}),!!e.timestamp&&(0,f.jsx)(r.n,{size:`xs`,type:`secondary`,className:`mt-0.5 tabular-nums`,children:e.timestamp})]})]},`${e.label}-${n}`)})})]})}K.displayName=`OrderStatusCard`;var q={title:`Payment method`,default:`Default`,cardHolder:`Card holder`,expires:`Expires`,change:`Change`},J={visa:`VISA`,mastercard:`MasterCard`,amex:`AMEX`,paypal:`PayPal`,applepay:`Apple Pay`,googlepay:`Google Pay`,unknown:`Card`},Y={visa:`from-info via-primary to-info`,mastercard:`from-warning via-destructive to-destructive`,amex:`from-info via-primary to-info`,paypal:`from-info via-primary to-info`,applepay:`from-foreground via-muted-foreground to-foreground`,googlepay:`from-success via-primary to-success`,unknown:`from-foreground via-muted-foreground to-foreground`};function X({brand:i,last4:s,expiry:c,holderName:l,isDefault:u,onChange:d,className:m,strings:h}){let g=e.useStrings(q,h),_=J[i],v=Y[i];return(0,f.jsx)(o.t,{icon:(0,f.jsx)(p.CreditCard,{className:`size-4`}),title:g.title,titleSuffix:u?(0,f.jsx)(a.t,{variant:`primary`,children:g.default}):null,headerAction:d?(0,f.jsx)(n.t,{buttonStyle:`ghost`,variant:`secondary`,onClick:d,children:g.change}):void 0,className:t.cn(`payment-method--component w-full`,m),children:(0,f.jsxs)(`div`,{className:t.cn(`relative mx-auto flex aspect-[85.6/53.98] w-full max-w-[22rem] flex-col justify-between overflow-hidden rounded-lg bg-gradient-to-br p-3.5 text-inverse-foreground shadow-sm ring-1 ring-inverse-border`,v),children:[(0,f.jsxs)(`div`,{className:`relative flex items-start justify-between`,children:[(0,f.jsx)(`div`,{className:`flex size-7 items-center justify-center rounded-md bg-gradient-to-br from-warning/80 to-warning shadow-sm`,children:(0,f.jsx)(`div`,{className:`size-4 rounded-sm border border-warning-foreground/25 bg-warning-foreground/15`})}),(0,f.jsx)(r.n,{tag:`span`,weight:`bold`,className:`rounded bg-inverse-surface px-2 py-0.5 tracking-[0.15em] text-inverse-foreground backdrop-blur-sm`,children:_})]}),(0,f.jsx)(`div`,{className:`relative`,children:(0,f.jsxs)(r.n,{tag:`span`,size:`base`,weight:`semibold`,className:`block font-mono tracking-[0.25em] text-inverse-foreground`,children:[`•••• •••• •••• `,s]})}),(0,f.jsxs)(`div`,{className:`relative flex items-end justify-between gap-3`,children:[(0,f.jsx)(`div`,{className:`min-w-0`,children:!!l&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(r.n,{size:`xxs`,className:`block uppercase tracking-wider text-inverse-subtle`,children:g.cardHolder}),(0,f.jsx)(r.n,{weight:`semibold`,className:`truncate text-inverse-foreground`,children:l})]})}),!!c&&(0,f.jsxs)(`div`,{className:`text-right shrink-0`,children:[(0,f.jsx)(r.n,{size:`xxs`,className:`block uppercase tracking-wider text-inverse-subtle`,children:g.expires}),(0,f.jsx)(r.n,{tag:`span`,weight:`semibold`,className:`tabular-nums text-inverse-foreground`,children:c})]})]})]})})}X.displayName=`PaymentMethodCard`,exports.AddressCard=k,exports.CartSummaryCard=z,exports.CouponInputCard=U,exports.DiscountStackPreview=y,exports.LoyaltyPointsCard=_,exports.OrderStatusCard=K,exports.PaymentMethodCard=X,exports.RefundStatusCard=D,exports.ShipmentTrackingCard=b,exports.SubscriptionSummaryCard=w,exports.TaxBreakdownCard=S,exports.UpcomingBookingRow=h,exports.VoucherEntryCard=M,exports.defaultAddressCardStrings=O,exports.defaultCartSummaryStrings=N,exports.defaultCouponInputStrings=B,exports.defaultDiscountStackStrings=v,exports.defaultLoyaltyPointsStrings=g,exports.defaultOrderStatusStrings=W,exports.defaultPaymentMethodStrings=q,exports.defaultRefundStatusStrings=T,exports.defaultSubscriptionSummaryStrings=C,exports.defaultTaxBreakdownStrings=x,exports.defaultVoucherEntryStrings=A;
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 = 'inverse',\n\ttimePlacement = 'below',\n}: UpcomingBookingRowProps) {\n\treturn (\n\t\t<ItemGroup className={cn('upcoming-booking--component w-full gap-2', className)}>\n\t\t\t{bookings.map((b, idx) => {\n\t\t\t\tconst dateInput = resolveDate(b);\n\t\t\t\treturn (\n\t\t\t\t\t<Item key={b.id ?? `${b.service}-${b.time}-${idx}`} className=\"items-center px-0 py-1.5\">\n\t\t\t\t\t\t{!!dateInput && (\n\t\t\t\t\t\t\t<ItemMedia>\n\t\t\t\t\t\t\t\t<DateBlock\n\t\t\t\t\t\t\t\t\tdate={dateInput}\n\t\t\t\t\t\t\t\t\ttime={timePlacement === 'below' ? b.time : undefined}\n\t\t\t\t\t\t\t\t\ttone={dateTone}\n\t\t\t\t\t\t\t\t\tlocale={locale}\n\t\t\t\t\t\t\t\t\ttimePlacement=\"below\"\n\t\t\t\t\t\t\t\t\tlayout=\"stacked\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<ItemContent className=\"min-w-[min(12rem,100%)]\">\n\t\t\t\t\t\t\t<ItemTitle>{b.service}</ItemTitle>\n\t\t\t\t\t\t\t<ItemDescription clamp={1}>{b.customer}</ItemDescription>\n\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t<ItemActions className=\"ml-auto shrink-0 flex-wrap justify-end\">\n\t\t\t\t\t\t\t{timePlacement === 'inline-trailing' && (\n\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"shrink-0 tabular-nums\">\n\t\t\t\t\t\t\t\t\t{b.time}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t<Text weight=\"semibold\" className=\"shrink-0 tabular-nums\">\n\t\t\t\t\t\t\t\t{b.amount}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</ItemActions>\n\t\t\t\t\t</Item>\n\t\t\t\t);\n\t\t\t})}\n\t\t</ItemGroup>\n\t);\n}\n\nUpcomingBookingRow.displayName = 'UpcomingBookingRow';\n","export interface LoyaltyHistoryEntry {\n label: string;\n points: string;\n date: string;\n positive: boolean;\n}\n\nexport interface LoyaltyPointsStrings {\n balanceLabel: string;\n pointsAvailable: string;\n redeem: string;\n}\n\nexport const defaultLoyaltyPointsStrings: LoyaltyPointsStrings = {\n balanceLabel: 'Loyalty Balance',\n pointsAvailable: 'points available',\n redeem: 'Redeem Points',\n};\n\nexport interface LoyaltyPointsCardProps {\n balance: number | string;\n tier?: string;\n tierVariant?: string;\n history?: LoyaltyHistoryEntry[];\n /** @deprecated Use `strings.redeem`. */\n redeemLabel?: string;\n onRedeem?: () => void;\n className?: string;\n strings?: Partial<LoyaltyPointsStrings>;\n}\n","/**\n * LoyaltyPointsCard — current balance, tier badge, recent history rows\n * (label / date / signed-points), and a redemption CTA. Strings overridable\n * for i18n.\n */\nimport { Badge } from '@/components/base/badge/badge';\nimport { Button } from '@/components/base/buttons';\nimport { SmartCard } from '@/components/base/cards/smart-card';\nimport Heading from '@/components/typography/heading';\nimport { Text } from '@/components/typography/text';\nimport { InlineStat } from '@/components/base/display';\nimport { Separator } from '@/components/base/display/separator';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemDescription,\n\tItemGroup,\n\tItemTitle,\n} from '@/components/base/item';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\nimport { Gift, Trophy } from 'lucide-react';\n\nimport { defaultLoyaltyPointsStrings, type LoyaltyPointsCardProps } from './types';\n\nexport function LoyaltyPointsCard({\n\tbalance,\n\ttier = 'Gold Tier',\n\ttierVariant: _tierVariant,\n\thistory = [],\n\tredeemLabel,\n\tonRedeem,\n\tclassName,\n\tstrings: stringsProp,\n}: LoyaltyPointsCardProps) {\n\tconst strings = useStrings(defaultLoyaltyPointsStrings, {\n\t\t...(redeemLabel !== undefined ? { redeem: redeemLabel } : {}),\n\t\t...stringsProp,\n\t});\n\treturn (\n\t\t<SmartCard className={cn('loyalty-points--component w-full', className)}>\n\t\t\t<InlineStat\n\t\t\t\tlabel={strings.balanceLabel}\n\t\t\t\tvalue={\n\t\t\t\t\t<Badge variant=\"warning\">\n\t\t\t\t\t\t<Trophy className=\"mr-1 inline size-3\" />\n\t\t\t\t\t\t{tier}\n\t\t\t\t\t</Badge>\n\t\t\t\t}\n\t\t\t\tlabelClassName=\"text-xs font-medium uppercase tracking-wider text-muted-foreground\"\n\t\t\t/>\n\n\t\t\t<Heading tag=\"h3\" className=\"text-4xl tabular-nums tracking-tight\">\n\t\t\t\t{typeof balance === 'number' ? balance.toLocaleString() : balance}\n\t\t\t</Heading>\n\t\t\t<Text size=\"xs\" type=\"secondary\">\n\t\t\t\t{strings.pointsAvailable}\n\t\t\t</Text>\n\n\t\t\t<Separator className=\"my-4\" />\n\n\t\t\t<ItemGroup>\n\t\t\t\t{history.map((entry) => (\n\t\t\t\t\t<Item key={entry.date + entry.label} size=\"xs\" className=\"px-0 py-1\">\n\t\t\t\t\t\t<ItemContent>\n\t\t\t\t\t\t\t<ItemTitle bold={false}>{entry.label}</ItemTitle>\n\t\t\t\t\t\t\t<ItemDescription clamp={1}>{entry.date}</ItemDescription>\n\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t<ItemActions>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t'tabular-nums',\n\t\t\t\t\t\t\t\t\tentry.positive ? 'text-success' : 'text-destructive',\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{entry.points}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</ItemActions>\n\t\t\t\t\t</Item>\n\t\t\t\t))}\n\t\t\t</ItemGroup>\n\n\t\t\t<Button\n\t\t\t\tvariant=\"dark\"\n\t\t\t\tclassName=\"mt-5 w-full rounded-full\"\n\t\t\t\tonClick={onRedeem}\n\t\t\t>\n\t\t\t\t<Gift className=\"mr-1.5 size-3.5\" />\n\t\t\t\t{strings.redeem}\n\t\t\t</Button>\n\t\t</SmartCard>\n\t);\n}\n\nLoyaltyPointsCard.displayName = 'LoyaltyPointsCard';\n","import type { ComposedBadgeVariant as BadgeVariant } from '@/components/base/badge/badge';\n\nexport interface Discount {\n type: string;\n label: string;\n amount: string;\n badge: BadgeVariant;\n}\n\nexport interface DiscountStackStrings {\n title: string;\n totalSavings: string;\n}\n\nexport const defaultDiscountStackStrings: DiscountStackStrings = {\n title: 'Applied Discounts',\n totalSavings: 'Total Savings',\n};\n\nexport interface DiscountStackPreviewProps {\n discounts: Discount[];\n totalSavings: string;\n className?: string;\n strings?: Partial<DiscountStackStrings>;\n}\n","/**\n * DiscountStackPreview — list of applied discounts (type chip + label +\n * amount) with a total-savings summary line. Strings overridable for i18n.\n */\nimport { Badge } from '@/components/base/badge/badge';\nimport { SmartCard } from '@/components/base/cards/smart-card';\nimport Heading from '@/components/typography/heading';\nimport { Text } from '@/components/typography/text';\nimport { InlineStat } from '@/components/base/display';\nimport { Separator } from '@/components/base/display/separator';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemGroup,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { useStrings } from '@/lib/strings';\n\nimport { defaultDiscountStackStrings, type DiscountStackPreviewProps } from './types';\n\nimport { cn } from '@/lib/utils';\nexport function DiscountStackPreview({\n\tdiscounts,\n\ttotalSavings,\n\tclassName,\n\tstrings: stringsProp,\n}: DiscountStackPreviewProps) {\n\tconst strings = useStrings(defaultDiscountStackStrings, stringsProp);\n\treturn (\n\t\t<SmartCard title={strings.title} className={cn('discount-stack--component w-full', className)}>\n\t\t\t<ItemGroup className=\"mt-4\">\n\t\t\t\t{discounts.map((d) => (\n\t\t\t\t\t<Item key={d.type} size=\"xs\" className=\"px-0 py-1\">\n\t\t\t\t\t\t<ItemMedia>\n\t\t\t\t\t\t\t<Badge variant={d.badge} className=\"w-16 justify-center text-xxs\">\n\t\t\t\t\t\t\t\t{d.type}\n\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t\t<ItemContent>\n\t\t\t\t\t\t\t<ItemTitle bold={false}>{d.label}</ItemTitle>\n\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t<ItemActions>\n\t\t\t\t\t\t\t<Text weight=\"semibold\" className=\"tabular-nums text-success\">\n\t\t\t\t\t\t\t\t{d.amount}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</ItemActions>\n\t\t\t\t\t</Item>\n\t\t\t\t))}\n\t\t\t</ItemGroup>\n\n\t\t\t<Separator className=\"my-4\" />\n\n\t\t\t<InlineStat\n\t\t\t\tlabel={strings.totalSavings}\n\t\t\t\tvalue={\n\t\t\t\t\t<Heading tag=\"h4\" className=\"text-xl tabular-nums tracking-tight text-success border-none pb-0\">\n\t\t\t\t\t\t{totalSavings}\n\t\t\t\t\t</Heading>\n\t\t\t\t}\n\t\t\t\tlabelClassName=\"text-sm font-semibold\"\n\t\t\t/>\n\t\t</SmartCard>\n\t);\n}\n\nDiscountStackPreview.displayName = 'DiscountStackPreview';\n","/**\n * ShipmentTrackingCard — tracking number + carrier header, current status\n * with pulse dot, horizontal step progress bar, and an optional details row\n * grid (e.g. weight, ETA, recipient). All copy is consumer-supplied via\n * `steps[].label` / `details[].label`.\n */\nimport { Badge } from '@/components/base/badge/badge';\nimport { SmartCard } from '@/components/base/cards/smart-card';\nimport { Text } from '@/components/typography/text';\nimport { InlineStat } from '@/components/base/display';\nimport { Separator } from '@/components/base/display/separator';\nimport { cn } from '@/lib/utils';\n\nimport type { ShipmentTrackingCardProps } from './types';\n\nexport function ShipmentTrackingCard({\n trackingNumber,\n carrier,\n status,\n steps,\n details = [],\n className,\n}: ShipmentTrackingCardProps) {\n return (\n <SmartCard className={cn('shipment-tracking--component w-full', className)}>\n <div className=\"flex items-center justify-between\">\n <Text size=\"xs\" weight=\"medium\" className=\"font-mono text-muted-foreground tracking-wide\">\n {trackingNumber}\n </Text>\n {!!carrier && <Badge variant=\"info\">{carrier}</Badge>}\n </div>\n\n <div className=\"mt-4 flex items-center gap-1.5\">\n <span className=\"h-2 w-2 rounded-full bg-success\" />\n <Text weight=\"semibold\">\n {status}\n </Text>\n </div>\n\n <div className=\"mt-5 flex items-center justify-between\">\n {steps.map((step, i) => (\n <div key={step.label} className=\"flex flex-1 flex-col items-center gap-2\">\n <div className=\"flex w-full items-center\">\n <div className={cn('size-3 shrink-0 rounded-full', step.done ? 'bg-success' : 'bg-muted')} />\n {i < steps.length - 1 && (\n <div className={cn('h-0.5 flex-1', step.done ? 'bg-success' : 'bg-muted')} />\n )}\n </div>\n <Text size=\"xs\" type=\"secondary\" className=\"text-center leading-tight\">\n {step.label}\n </Text>\n </div>\n ))}\n </div>\n\n {details.length > 0 && (\n <>\n <Separator className=\"my-4\" />\n <div className=\"space-y-2\">\n {details.map((detail) => (\n <InlineStat\n key={detail.label}\n label={detail.label}\n value={detail.value}\n labelClassName=\"text-xs\"\n valueClassName=\"text-sm font-medium truncate max-w-[180px]\"\n />\n ))}\n </div>\n </>\n )}\n </SmartCard>\n );\n}\n\nShipmentTrackingCard.displayName = 'ShipmentTrackingCard';\n","export interface TaxLineItem {\n\tid?: string;\n\tlabel: string;\n\trate?: string;\n\tamount: string;\n}\n\nexport interface TaxBreakdownStrings {\n\ttitle: string;\n\tsubtotal: string;\n\ttotalTax: string;\n\ttotal: string;\n}\n\nexport const defaultTaxBreakdownStrings: TaxBreakdownStrings = {\n\ttitle: 'Tax Breakdown',\n\tsubtotal: 'Subtotal',\n\ttotalTax: 'Total Tax',\n\ttotal: 'Total',\n};\n\nexport interface TaxBreakdownCardProps {\n\tsubtotal: string;\n\ttaxes: TaxLineItem[];\n\ttotalTax?: string;\n\ttotal: string;\n\tclassName?: string;\n\tstrings?: Partial<TaxBreakdownStrings>;\n}\n","/**\n * TaxBreakdownCard — itemised tax breakdown for an order or invoice. Shows a\n * subtotal, one row per tax line (with optional rate suffix), an optional\n * \"Total tax\" rollup, and a final total. Pairs with `CartSummaryCard` when\n * consumers need to expose VAT / regional tax detail. Strings overridable\n * for i18n.\n */\nimport { Receipt } from 'lucide-react';\nimport { SmartCard } from '@/components/base/cards';\nimport { Text } from '@/components/typography';\nimport { InlineStat } from '@/components/base/display';\nimport { Separator } from '@/components/base/display/separator';\nimport { useStrings } from '@/lib/strings';\n\nimport { defaultTaxBreakdownStrings, type TaxBreakdownCardProps } from './types';\n\nimport { cn } from '@/lib/utils';\nexport function TaxBreakdownCard({\n\tsubtotal,\n\ttaxes,\n\ttotalTax,\n\ttotal,\n\tclassName,\n\tstrings: stringsProp,\n}: TaxBreakdownCardProps) {\n\tconst strings = useStrings(defaultTaxBreakdownStrings, stringsProp);\n\n\treturn (\n\t\t<SmartCard\n\t\t\ticon={<Receipt className=\"size-4\" />}\n\t\t\ttitle={strings.title}\n\t\t\tclassName={cn('tax-breakdown--component w-full', className)}\n\t\t>\n\t\t\t<InlineStat\n\t\t\t\tlabel={strings.subtotal}\n\t\t\t\tvalue={subtotal}\n\t\t\t\tmono\n\t\t\t\tlabelClassName=\"text-sm\"\n\t\t\t\tvalueClassName=\"text-sm font-medium\"\n\t\t\t/>\n\n\t\t\t<div className=\"mt-3 space-y-1.5 rounded-lg border border-border/50 bg-muted/30 px-3 py-2.5\">\n\t\t\t\t{taxes.map((tax, i) => (\n\t\t\t\t\t<div\n\t\t\t\t\t\tkey={tax.id ?? `${tax.label}-${i}`}\n\t\t\t\t\t\tclassName=\"flex items-baseline justify-between gap-3\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"flex items-baseline gap-1.5 min-w-0\">\n\t\t\t\t\t\t\t<Text size=\"xs\" className=\"truncate\">{tax.label}</Text>\n\t\t\t\t\t\t\t{!!tax.rate && (\n\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xxs\" type=\"discrete\" className=\"shrink-0\">\n\t\t\t\t\t\t\t\t\t{tax.rate}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" weight=\"medium\" className=\"tabular-nums shrink-0\">\n\t\t\t\t\t\t\t{tax.amount}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</div>\n\t\t\t\t))}\n\t\t\t\t{!!totalTax && taxes.length > 1 && (\n\t\t\t\t\t<InlineStat\n\t\t\t\t\t\tlabel={strings.totalTax}\n\t\t\t\t\t\tvalue={totalTax}\n\t\t\t\t\t\tmono\n\t\t\t\t\t\tclassName=\"border-t border-border/50 pt-1.5 mt-0.5\"\n\t\t\t\t\t\tlabelClassName=\"text-xs font-medium\"\n\t\t\t\t\t\tvalueClassName=\"text-xs font-semibold\"\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t<Separator className=\"my-3\" />\n\n\t\t\t<InlineStat\n\t\t\t\tlabel={strings.total}\n\t\t\t\tvalue={total}\n\t\t\t\tmono\n\t\t\t\tlabelClassName=\"text-sm font-semibold\"\n\t\t\t\tvalueClassName=\"text-lg font-bold\"\n\t\t\t/>\n\t\t</SmartCard>\n\t);\n}\n\nTaxBreakdownCard.displayName = 'TaxBreakdownCard';\n","import type { LucideIcon } from 'lucide-react';\n\nexport interface SubscriptionPerk {\n\ticon?: LucideIcon;\n\tlabel: string;\n}\n\nexport interface SubscriptionSummaryStrings {\n\ttitle: string;\n\tplan: string;\n\tnextBilling: string;\n\tperks: string;\n\tmanage: string;\n\tupgrade: string;\n}\n\nexport const defaultSubscriptionSummaryStrings: SubscriptionSummaryStrings = {\n\ttitle: 'Subscription',\n\tplan: 'Plan',\n\tnextBilling: 'Next billing',\n\tperks: 'Included',\n\tmanage: 'Manage',\n\tupgrade: 'Upgrade',\n};\n\nexport interface SubscriptionSummaryCardProps {\n\tplanName: string;\n\tpriceLabel: string;\n\tcycleLabel: string;\n\tnextBillingDate: string;\n\tstatusLabel?: string;\n\tperks?: SubscriptionPerk[];\n\tonManage?: () => void;\n\tonUpgrade?: () => void;\n\tclassName?: string;\n\tstrings?: Partial<SubscriptionSummaryStrings>;\n}\n","/**\n * SubscriptionSummaryCard — at-a-glance subscription card with the active\n * plan name as the hero heading, an inline price + cycle, the next billing\n * date in a meta row, an optional perks list, and trailing\n * Manage / Upgrade actions. Strings overridable for i18n.\n */\nimport { Calendar, Check, ChevronRight, Repeat } from 'lucide-react';\nimport { Badge } from '@/components/base/badge';\nimport { Button } from '@/components/base/buttons';\nimport { SmartCard } from '@/components/base/cards';\nimport { IconBadge } from '@/components/base/display';\nimport {\n\tItem,\n\tItemContent,\n\tItemGroup,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport Heading from '@/components/typography/heading';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\n\nimport {\n\tdefaultSubscriptionSummaryStrings,\n\ttype SubscriptionSummaryCardProps,\n} from './types';\n\nimport { cn } from '@/lib/utils';\nexport function SubscriptionSummaryCard({\n\tplanName,\n\tpriceLabel,\n\tcycleLabel,\n\tnextBillingDate,\n\tstatusLabel,\n\tperks = [],\n\tonManage,\n\tonUpgrade,\n\tclassName,\n\tstrings: stringsProp,\n}: SubscriptionSummaryCardProps) {\n\tconst strings = useStrings(defaultSubscriptionSummaryStrings, stringsProp);\n\n\treturn (\n\t\t<SmartCard\n\t\t\ticon={<Repeat className=\"size-4\" />}\n\t\t\ttitle={strings.title}\n\t\t\theaderEnd={statusLabel ? <Badge variant=\"success\">{statusLabel}</Badge> : null}\n\t\t\tclassName={cn('subscription-summary--component w-full', className)}\n\t\t>\n\t\t\t<div className=\"rounded-lg border border-border/60 bg-muted/30 p-4\">\n\t\t\t\t<Text size=\"xxs\" type=\"secondary\" weight=\"medium\" className=\"uppercase tracking-wider\">\n\t\t\t\t\t{strings.plan}\n\t\t\t\t</Text>\n\t\t\t\t<Heading tag=\"h3\" className=\"mt-1 text-xl font-semibold tracking-tight border-none pb-0\">\n\t\t\t\t\t{planName}\n\t\t\t\t</Heading>\n\t\t\t\t<div className=\"mt-1 flex items-baseline gap-1\">\n\t\t\t\t\t<Text tag=\"span\" size=\"xl\" weight=\"bold\" className=\"tabular-nums\">\n\t\t\t\t\t\t{priceLabel}\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Text type=\"secondary\">\n\t\t\t\t\t\t{cycleLabel}\n\t\t\t\t\t</Text>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div className=\"mt-3 flex items-center justify-between rounded-md bg-card px-1\">\n\t\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t\t<Calendar className=\"size-3.5 text-muted-foreground\" />\n\t\t\t\t\t<Text size=\"xs\" type=\"secondary\">{strings.nextBilling}</Text>\n\t\t\t\t</div>\n\t\t\t\t<Text size=\"xs\" weight=\"semibold\" className=\"tabular-nums\">{nextBillingDate}</Text>\n\t\t\t</div>\n\n\t\t\t{perks.length > 0 && (\n\t\t\t\t<div className=\"mt-4 space-y-2\">\n\t\t\t\t\t<Text size=\"xxs\" type=\"secondary\" weight=\"medium\" className=\"uppercase tracking-wider\">\n\t\t\t\t\t\t{strings.perks}\n\t\t\t\t\t</Text>\n\t\t\t\t\t<ItemGroup>\n\t\t\t\t\t\t{perks.map((perk, i) => {\n\t\t\t\t\t\t\tconst Icon = perk.icon ?? Check;\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<Item key={`${perk.label}-${i}`} size=\"xs\" className=\"px-0\">\n\t\t\t\t\t\t\t\t\t<ItemMedia>\n\t\t\t\t\t\t\t\t\t\t<IconBadge icon={Icon} tone=\"success\" size=\"xs\" />\n\t\t\t\t\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t\t\t\t\t<ItemContent>\n\t\t\t\t\t\t\t\t\t\t<ItemTitle bold={false}>{perk.label}</ItemTitle>\n\t\t\t\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t\t\t</Item>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t</ItemGroup>\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{(onManage || onUpgrade) && (\n\t\t\t\t<div className=\"mt-4 flex items-center gap-2\">\n\t\t\t\t\t{!!onManage && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\t\t\tonClick={onManage}\n\t\t\t\t\t\t\tclassName=\"flex-1\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{strings.manage}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!onUpgrade && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tonClick={onUpgrade}\n\t\t\t\t\t\t\tclassName=\"flex-1\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{strings.upgrade}\n\t\t\t\t\t\t\t<ChevronRight className=\"ml-1 size-3.5\" />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</SmartCard>\n\t);\n}\n\nSubscriptionSummaryCard.displayName = 'SubscriptionSummaryCard';\n","export type RefundStage = 'requested' | 'approved' | 'processing' | 'completed';\n\nexport interface RefundStatusStrings {\n\ttitle: string;\n\trequested: string;\n\tapproved: string;\n\tprocessing: string;\n\tcompleted: string;\n\tamount: string;\n\treason: string;\n\teta: string;\n\tmethod: string;\n}\n\nexport const defaultRefundStatusStrings: RefundStatusStrings = {\n\ttitle: 'Refund Status',\n\trequested: 'Requested',\n\tapproved: 'Approved',\n\tprocessing: 'Processing',\n\tcompleted: 'Completed',\n\tamount: 'Refund amount',\n\treason: 'Reason',\n\teta: 'Expected by',\n\tmethod: 'Refund to',\n};\n\nexport interface RefundStatusCardProps {\n\tstage: RefundStage;\n\tamount: string;\n\treason?: string;\n\tmethod?: string;\n\teta?: string;\n\trequestedAt?: string;\n\tclassName?: string;\n\tstrings?: Partial<RefundStatusStrings>;\n}\n","/**\n * RefundStatusCard — refund-flow tracker. Shows the four canonical refund\n * stages (Requested → Approved → Processing → Completed) as a horizontal\n * progress bar, with refund amount as the lead figure and an optional reason\n * / method / ETA detail block. Strings overridable for i18n.\n */\nimport { Check, RotateCcw } from 'lucide-react';\nimport { SmartCard } from '@/components/base/cards';\nimport { Text } from '@/components/typography';\nimport Heading from '@/components/typography/heading';\nimport { InlineStat } from '@/components/base/display';\nimport { Separator } from '@/components/base/display/separator';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport {\n\tdefaultRefundStatusStrings,\n\ttype RefundStage,\n\ttype RefundStatusCardProps,\n} from './types';\n\nconst STAGE_ORDER: RefundStage[] = ['requested', 'approved', 'processing', 'completed'];\n\nexport function RefundStatusCard({\n\tstage,\n\tamount,\n\treason,\n\tmethod,\n\teta,\n\trequestedAt,\n\tclassName,\n\tstrings: stringsProp,\n}: RefundStatusCardProps) {\n\tconst strings = useStrings(defaultRefundStatusStrings, stringsProp);\n\tconst currentIdx = STAGE_ORDER.indexOf(stage);\n\n\treturn (\n\t\t<SmartCard\n\t\t\ticon={<RotateCcw className=\"size-4\" />}\n\t\t\ttitle={strings.title}\n\t\t\tclassName={cn('refund-status--component w-full', className)}\n\t\t>\n\t\t\t<div className=\"rounded-lg bg-muted/40 px-4 py-3\">\n\t\t\t\t<Text size=\"xxs\" type=\"secondary\" weight=\"medium\" className=\"uppercase tracking-wider\">\n\t\t\t\t\t{strings.amount}\n\t\t\t\t</Text>\n\t\t\t\t<Heading tag=\"h3\" className=\"text-3xl tabular-nums tracking-tight\">\n\t\t\t\t\t{amount}\n\t\t\t\t</Heading>\n\t\t\t\t{!!requestedAt && (\n\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"mt-0.5\">\n\t\t\t\t\t\t{strings.requested}: {requestedAt}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t{/* Stages */}\n\t\t\t<div className=\"mt-4 flex items-center justify-between\">\n\t\t\t\t{STAGE_ORDER.map((s, i) => {\n\t\t\t\t\tconst done = i <= currentIdx;\n\t\t\t\t\tconst current = i === currentIdx;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div key={s} className=\"flex flex-1 flex-col items-center gap-1.5\">\n\t\t\t\t\t\t\t<div className=\"flex w-full items-center\">\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t'relative flex size-5 shrink-0 items-center justify-center rounded-full',\n\t\t\t\t\t\t\t\t\t\tdone\n\t\t\t\t\t\t\t\t\t\t\t? 'bg-success text-success-foreground'\n\t\t\t\t\t\t\t\t\t\t\t: 'border border-border bg-card text-muted-foreground',\n\t\t\t\t\t\t\t\t\t\tcurrent && 'ring-2 ring-success/30 ring-offset-2 ring-offset-background',\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{done ? (\n\t\t\t\t\t\t\t\t\t\t<Check className=\"size-3\" />\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xxs\" weight=\"medium\" className=\"tabular-nums\">{i + 1}</Text>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{i < STAGE_ORDER.length - 1 && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t'h-0.5 flex-1',\n\t\t\t\t\t\t\t\t\t\t\ti < currentIdx ? 'bg-success' : 'bg-border',\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tsize=\"xxs\"\n\t\t\t\t\t\t\t\tweight={current ? 'semibold' : 'medium'}\n\t\t\t\t\t\t\t\ttype={done ? 'main' : 'secondary'}\n\t\t\t\t\t\t\t\tclassName=\"text-center leading-tight\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{strings[s]}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\n\t\t\t{(reason || method || eta) && (\n\t\t\t\t<>\n\t\t\t\t\t<Separator className=\"my-4\" />\n\t\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t\t{!!reason && (\n\t\t\t\t\t\t\t<InlineStat label={strings.reason} value={reason} className=\"items-start\" valueClassName=\"text-sm font-medium text-right\" />\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{!!method && (\n\t\t\t\t\t\t\t<InlineStat label={strings.method} value={method} valueClassName=\"text-sm font-medium\" />\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{!!eta && (\n\t\t\t\t\t\t\t<InlineStat label={strings.eta} value={eta} mono valueClassName=\"text-sm font-medium\" />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</>\n\t\t\t)}\n\t\t</SmartCard>\n\t);\n}\n\nRefundStatusCard.displayName = 'RefundStatusCard';\n","export type AddressKind = 'shipping' | 'billing' | 'pickup';\n\nexport interface AddressCardStrings {\n\tdefaultBadge: string;\n\tedit: string;\n\tremove: string;\n\tmakeDefault: string;\n\tshipping: string;\n\tbilling: string;\n\tpickup: string;\n}\n\nexport const defaultAddressCardStrings: AddressCardStrings = {\n\tdefaultBadge: 'Default',\n\tedit: 'Edit',\n\tremove: 'Remove',\n\tmakeDefault: 'Make default',\n\tshipping: 'Shipping address',\n\tbilling: 'Billing address',\n\tpickup: 'Pickup address',\n};\n\nexport interface AddressCardProps {\n\tkind?: AddressKind;\n\tname: string;\n\tline1: string;\n\tline2?: string;\n\tcity: string;\n\tregion?: string;\n\tpostalCode?: string;\n\tcountry: string;\n\tphone?: string;\n\tisDefault?: boolean;\n\tonEdit?: () => void;\n\tonRemove?: () => void;\n\tonMakeDefault?: () => void;\n\tclassName?: string;\n\tstrings?: Partial<AddressCardStrings>;\n}\n","/**\n * AddressCard — saved postal address surface. Title varies by `kind`\n * (shipping / billing / pickup); shows recipient name, address lines, phone,\n * and a \"Default\" badge when applicable.\n *\n * Edit / remove / make-default actions ride through SmartCard's actions menu\n * (the canonical card-actions affordance) instead of inline footer buttons —\n * keeps the surface consistent with every other card in the library.\n */\nimport { Edit2, MapPin, Star, Trash2 } from 'lucide-react';\nimport { Badge } from '@/components/base/badge';\nimport { SmartCard, type SmartCardAction } from '@/components/base/cards';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\n\nimport {\n\tdefaultAddressCardStrings,\n\ttype AddressCardProps,\n\ttype AddressKind,\n} from './types';\n\nimport { cn } from '@/lib/utils';\nexport function AddressCard({\n\tkind = 'shipping',\n\tname,\n\tline1,\n\tline2,\n\tcity,\n\tregion,\n\tpostalCode,\n\tcountry,\n\tphone,\n\tisDefault = false,\n\tonEdit,\n\tonRemove,\n\tonMakeDefault,\n\tclassName,\n\tstrings: stringsProp,\n}: AddressCardProps) {\n\tconst strings = useStrings(defaultAddressCardStrings, stringsProp);\n\tconst titleByKind: Record<AddressKind, string> = {\n\t\tshipping: strings.shipping,\n\t\tbilling: strings.billing,\n\t\tpickup: strings.pickup,\n\t};\n\n\tconst cityLine = [city, region, postalCode].filter(Boolean).join(', ');\n\n\tconst actions: SmartCardAction[] = [];\n\tif (onEdit) {\n\t\tactions.push({\n\t\t\tid: 'edit',\n\t\t\tlabel: strings.edit,\n\t\t\ticon: <Edit2 className=\"size-3.5\" />,\n\t\t\tonClick: onEdit,\n\t\t});\n\t}\n\tif (onMakeDefault && !isDefault) {\n\t\tactions.push({\n\t\t\tid: 'make-default',\n\t\t\tlabel: strings.makeDefault,\n\t\t\ticon: <Star className=\"size-3.5\" />,\n\t\t\tonClick: onMakeDefault,\n\t\t});\n\t}\n\tif (onRemove) {\n\t\tactions.push({\n\t\t\tid: 'remove',\n\t\t\tlabel: strings.remove,\n\t\t\ticon: <Trash2 className=\"size-3.5\" />,\n\t\t\tonClick: onRemove,\n\t\t});\n\t}\n\n\treturn (\n\t\t<SmartCard\n\t\t\ticon={<MapPin className=\"size-4\" />}\n\t\t\ttitle={titleByKind[kind]}\n\t\t\ttitleSuffix={\n\t\t\t\tisDefault ? <Badge variant=\"primary\">{strings.defaultBadge}</Badge> : null\n\t\t\t}\n\t\t\tactions={actions.length > 0 ? actions : undefined}\n\t\t\tclassName={cn('address-card--component w-full', className)}\n\t\t>\n\t\t\t<div className=\"space-y-0.5\">\n\t\t\t\t<Text weight=\"semibold\">{name}</Text>\n\t\t\t\t<Text>{line1}</Text>\n\t\t\t\t{!!line2 && <Text>{line2}</Text>}\n\t\t\t\t{!!cityLine && <Text>{cityLine}</Text>}\n\t\t\t\t<Text type=\"secondary\">{country}</Text>\n\t\t\t\t{!!phone && (\n\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"mt-1.5 tabular-nums\">\n\t\t\t\t\t\t{phone}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</SmartCard>\n\t);\n}\n\nAddressCard.displayName = 'AddressCard';\n","export interface VoucherEntryStrings {\n\ttitle: string;\n\tinputLabel: string;\n\tplaceholder: string;\n\thelperText: string;\n\tcheck: string;\n\tremove: string;\n\tbalance: string;\n\tapplied: string;\n\tnotFound: string;\n}\n\nexport const defaultVoucherEntryStrings: VoucherEntryStrings = {\n\ttitle: 'Redeem a gift card',\n\tinputLabel: 'Gift card code',\n\tplaceholder: 'Enter gift card code',\n\thelperText: 'Apply one gift card or voucher to this order.',\n\tcheck: 'Check balance',\n\tremove: 'Remove',\n\tbalance: 'Available balance',\n\tapplied: 'Applied',\n\tnotFound: 'That gift card code is not valid.',\n};\n\nexport interface VoucherEntryCardProps {\n\tappliedCode?: string;\n\tbalance?: string;\n\terror?: string;\n\tloading?: boolean;\n\tonCheck?: (code: string) => void;\n\tonRemove?: () => void;\n\tclassName?: string;\n\tstrings?: Partial<VoucherEntryStrings>;\n}\n","/**\n * VoucherEntryCard — gift-card / voucher redemption entry.\n *\n * Empty state — leading gift icon input + check button, helper line surfacing\n * errors. Applied state — success-tinted row with check medallion, code,\n * balance amount, and a destructive remove icon.\n */\nimport { type FormEvent, useId, useState } from 'react';\nimport { Check, Gift, X } from 'lucide-react';\nimport { Badge } from '@/components/base/badge';\nimport { Button } from '@/components/base/buttons';\nimport { SmartCard } from '@/components/base/cards';\nimport { IconBadge } from '@/components/base/display';\nimport { FormField } from '@/components/base/forms';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemDescription,\n\tItemFooter,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { Input } from '@/components/base/forms/fields';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\n\nimport { defaultVoucherEntryStrings, type VoucherEntryCardProps } from './types';\n\nimport { cn } from '@/lib/utils';\nconst normalizeCode = (value: string): string => value.toUpperCase();\n\nexport function VoucherEntryCard({\n\tappliedCode,\n\tbalance,\n\terror,\n\tloading,\n\tonCheck,\n\tonRemove,\n\tclassName,\n\tstrings: stringsProp,\n}: VoucherEntryCardProps) {\n\tconst strings = useStrings(defaultVoucherEntryStrings, stringsProp);\n\tconst inputId = useId();\n\tconst [code, setCode] = useState('');\n\tconst trimmedCode = code.trim();\n\tconst handleSubmit = (event: FormEvent<HTMLFormElement>) => {\n\t\tevent.preventDefault();\n\t\tif (!trimmedCode) return;\n\t\tonCheck?.(trimmedCode);\n\t};\n\n\tif (appliedCode) {\n\t\treturn (\n\t\t\t<SmartCard\n\t\t\t\ticon={<Gift className=\"size-4\" />}\n\t\t\t\ttitle={strings.title}\n\t\t\t\tclassName={cn('voucher-entry--component w-full', className)}\n\t\t\t>\n\t\t\t\t<Item size=\"xs\" variant=\"outline\" className=\"items-center gap-x-2.5 gap-y-1.5 border-success/30 bg-success/5 px-2.5 py-2\">\n\t\t\t\t\t<ItemMedia>\n\t\t\t\t\t\t<IconBadge icon={Check} tone=\"success\" size=\"sm\" className=\"ring-1 ring-success/20\" />\n\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t<ItemContent className=\"min-w-0\">\n\t\t\t\t\t\t<div className=\"flex flex-wrap items-center gap-1.5\">\n\t\t\t\t\t\t\t<ItemTitle className=\"max-w-full font-mono tracking-wider\">{appliedCode}</ItemTitle>\n\t\t\t\t\t\t\t<Badge variant=\"success\" size=\"xs\">{strings.applied}</Badge>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<ItemDescription clamp={1}>{strings.balance}</ItemDescription>\n\t\t\t\t\t</ItemContent>\n\t\t\t\t\t<ItemFooter className=\"border-t border-success/15 pt-1\">\n\t\t\t\t\t\t<span />\n\t\t\t\t\t\t<ItemActions className=\"shrink-0 gap-1.5\">\n\t\t\t\t\t\t\t{!!balance && (\n\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" weight=\"semibold\" type=\"success\" className=\"tabular-nums shrink-0\">\n\t\t\t\t\t\t\t\t\t{balance}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{!!onRemove && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tvariant=\"error\"\n\t\t\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\t\t\tsize=\"icon-xs\"\n\t\t\t\t\t\t\t\t\tonClick={onRemove}\n\t\t\t\t\t\t\t\t\taria-label={strings.remove}\n\t\t\t\t\t\t\t\t\tclassName=\"size-7 shrink-0 text-muted-foreground hover:text-destructive\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<X className=\"size-3.5\" />\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</ItemActions>\n\t\t\t\t\t</ItemFooter>\n\t\t\t\t</Item>\n\t\t\t</SmartCard>\n\t\t);\n\t}\n\n\treturn (\n\t\t<SmartCard\n\t\t\ticon={<Gift className=\"size-4\" />}\n\t\t\ttitle={strings.title}\n\t\t\tclassName={cn('voucher-entry--component w-full', className)}\n\t\t>\n\t\t\t<form onSubmit={handleSubmit}>\n\t\t\t\t<FormField\n\t\t\t\t\tlabel={strings.inputLabel}\n\t\t\t\t\thtmlFor={inputId}\n\t\t\t\t\terror={error}\n\t\t\t\t\thint={error ? undefined : strings.helperText}\n\t\t\t\t>\n\t\t\t\t\t<div className=\"flex flex-wrap gap-2\">\n\t\t\t\t\t\t<div className=\"min-w-[12rem] flex-1\">\n\t\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\t\tid={inputId}\n\t\t\t\t\t\t\t\tvalue={code}\n\t\t\t\t\t\t\t\tonChange={(e) => setCode(normalizeCode((e.target as HTMLInputElement).value))}\n\t\t\t\t\t\t\t\tplaceholder={strings.placeholder}\n\t\t\t\t\t\t\t\tstartIcon={Gift}\n\t\t\t\t\t\t\t\tautoCapitalize=\"characters\"\n\t\t\t\t\t\t\t\tspellCheck={false}\n\t\t\t\t\t\t\t\tclassName=\"font-mono\"\n\t\t\t\t\t\t\t\tinvalid={Boolean(error)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\tloading={loading}\n\t\t\t\t\t\t\tdisabled={!trimmedCode}\n\t\t\t\t\t\t\tclassName=\"shrink-0\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{strings.check}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\t\t\t\t</FormField>\n\t\t\t</form>\n\t\t</SmartCard>\n\t);\n}\n\nVoucherEntryCard.displayName = 'VoucherEntryCard';\n","export interface CartLineItem {\n\tid: string;\n\tname?: string;\n\tproductTitle?: string;\n\ttitle?: string;\n\tvariantTitle?: string;\n\tqty: number;\n\tprice: string;\n\timageUrl?: string;\n\timageSrc?: string;\n\tsrc?: string;\n\turl?: string;\n\timageAlt?: string;\n}\n\nexport interface CartSummaryStrings {\n\ttitle: string;\n\tsubtotal: string;\n\ttax: string;\n\tshipping: string;\n\tdiscount: string;\n\ttotal: string;\n\tcheckout: string;\n}\n\nexport const defaultCartSummaryStrings: CartSummaryStrings = {\n\ttitle: 'Cart',\n\tsubtotal: 'Subtotal',\n\ttax: 'Tax',\n\tshipping: 'Shipping',\n\tdiscount: 'Discount',\n\ttotal: 'Total',\n\tcheckout: 'Checkout',\n};\n\nexport interface CartSummaryCardProps {\n\titems: CartLineItem[];\n\tsubtotal?: string;\n\ttax?: string;\n\tshipping?: string;\n\tdiscount?: string;\n\ttotal: string;\n\tonCheckout?: () => void;\n\tclassName?: string;\n\tstrings?: Partial<CartSummaryStrings>;\n}\n","/**\n * CartSummaryCard — line-item list with optional subtotal / tax / shipping /\n * discount breakdown and a primary \"Checkout\" action. Items render through\n * `<ItemGroup>` for density consistency; the breakdown rows sit in a tight\n * summary block above the total. The discount value is shown as a signed\n * delta in success colour.\n */\nimport { ShoppingBag } from 'lucide-react';\nimport { SmartCard } from '@/components/base/cards';\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography';\nimport { InlineStat } from '@/components/base/display';\nimport { Separator } from '@/components/base/display/separator';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemDescription,\n\tItemGroup,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { useStrings } from '@/lib/strings';\n\nimport { defaultCartSummaryStrings, type CartLineItem, type CartSummaryCardProps } from './types';\n\nimport { cn } from '@/lib/utils';\nconst stripLeadingMinus = (value: string): string => value.replace(/^[\\s−-]+/, '');\n\nconst resolveCartLineTitle = (item: CartLineItem): string => {\n\treturn [item.productTitle, item.title, item.name].find((value) => !!value?.trim()) ?? item.id;\n};\n\nconst resolveCartLineImageSrc = (item: CartLineItem): string | undefined => {\n\treturn [item.imageUrl, item.imageSrc, item.src, item.url].find((value) => !!value?.trim());\n};\n\nconst getCartLinePlaceholderLabel = (title: string): string => {\n\tconst initials = title\n\t\t.trim()\n\t\t.split(/\\s+/)\n\t\t.map((part) => part[0])\n\t\t.join('')\n\t\t.slice(0, 2)\n\t\t.toUpperCase();\n\n\treturn initials || title.trim().slice(0, 2).toUpperCase();\n};\n\nfunction CartLineImagePlaceholder({ title }: { title: string }) {\n\treturn (\n\t\t<div\n\t\t\taria-hidden=\"true\"\n\t\t\tclassName=\"flex size-full items-center justify-center rounded-[inherit] bg-muted text-[length:var(--text-xxs)] font-semibold text-muted-foreground ring-1 ring-border/60\"\n\t\t>\n\t\t\t{getCartLinePlaceholderLabel(title)}\n\t\t</div>\n\t);\n}\n\nexport function CartSummaryCard({\n\titems,\n\tsubtotal,\n\ttax,\n\tshipping,\n\tdiscount,\n\ttotal,\n\tonCheckout,\n\tclassName,\n\tstrings: stringsProp,\n}: CartSummaryCardProps) {\n\tconst strings = useStrings(defaultCartSummaryStrings, stringsProp);\n\tconst hasBreakdown = !!(subtotal || tax || shipping || discount);\n\n\treturn (\n\t\t<SmartCard icon={<ShoppingBag className=\"size-4\" />} title={strings.title} className={cn('cart-summary--component w-full', className)}>\n\t\t\t<ItemGroup>\n\t\t\t\t{items.map((it) => {\n\t\t\t\t\tconst title = resolveCartLineTitle(it);\n\t\t\t\t\tconst imageSrc = resolveCartLineImageSrc(it);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Item key={it.id} className=\"cart-summary--item px-0\">\n\t\t\t\t\t\t\t<ItemMedia variant=\"image\" className=\"cart-summary--item-media\">\n\t\t\t\t\t\t\t\t{imageSrc ? (\n\t\t\t\t\t\t\t\t\t<img src={imageSrc} alt={it.imageAlt ?? title} />\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<CartLineImagePlaceholder title={title} />\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t\t\t<ItemContent className=\"cart-summary--item-content\">\n\t\t\t\t\t\t\t\t<ItemTitle>{title}</ItemTitle>\n\t\t\t\t\t\t\t\t{!!it.variantTitle && (\n\t\t\t\t\t\t\t\t\t<ItemDescription clamp={1}>{it.variantTitle}</ItemDescription>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t\t<ItemActions className=\"cart-summary--item-actions\">\n\t\t\t\t\t\t\t\t<div className=\"flex shrink-0 flex-col items-end gap-0.5\">\n\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" className=\"tabular-nums\">x{it.qty}</Text>\n\t\t\t\t\t\t\t\t\t<Text tag=\"span\" weight=\"semibold\" className=\"tabular-nums\">{it.price}</Text>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</ItemActions>\n\t\t\t\t\t\t</Item>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</ItemGroup>\n\n\t\t\t{!!hasBreakdown && (\n\t\t\t\t<div className=\"mt-3 space-y-1.5 rounded-lg bg-muted/30 px-3 py-2.5\">\n\t\t\t\t\t{!!subtotal && (\n\t\t\t\t\t\t<InlineStat label={strings.subtotal} value={subtotal} mono valueClassName=\"text-xs font-medium\" labelClassName=\"text-xs\" />\n\t\t\t\t\t)}\n\t\t\t\t\t{!!tax && (\n\t\t\t\t\t\t<InlineStat label={strings.tax} value={tax} mono valueClassName=\"text-xs font-medium\" labelClassName=\"text-xs\" />\n\t\t\t\t\t)}\n\t\t\t\t\t{!!shipping && (\n\t\t\t\t\t\t<InlineStat label={strings.shipping} value={shipping} mono valueClassName=\"text-xs font-medium\" labelClassName=\"text-xs\" />\n\t\t\t\t\t)}\n\t\t\t\t\t{!!discount && (\n\t\t\t\t\t\t<InlineStat\n\t\t\t\t\t\t\tlabel={strings.discount}\n\t\t\t\t\t\t\tvalue={`−${stripLeadingMinus(discount)}`}\n\t\t\t\t\t\t\tmono\n\t\t\t\t\t\t\tlabelClassName=\"text-xs\"\n\t\t\t\t\t\t\tvalueClassName=\"text-xs font-semibold text-success\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t<Separator className=\"my-3\" />\n\n\t\t\t<InlineStat\n\t\t\t\tlabel={strings.total}\n\t\t\t\tvalue={total}\n\t\t\t\tmono\n\t\t\t\tlabelClassName=\"text-sm font-semibold\"\n\t\t\t\tvalueClassName=\"text-lg font-bold\"\n\t\t\t/>\n\n\t\t\t{!!onCheckout && (\n\t\t\t\t<Button onClick={onCheckout} fullWidth className=\"mt-4\">{strings.checkout}</Button>\n\t\t\t)}\n\t\t</SmartCard>\n\t);\n}\n\nCartSummaryCard.displayName = 'CartSummaryCard';\n","export interface CouponInputStrings {\n\ttitle: string;\n\tplaceholder: string;\n\tapply: string;\n\tremove: string;\n\tapplied: string;\n\tinvalid: string;\n}\n\nexport const defaultCouponInputStrings: CouponInputStrings = {\n\ttitle: 'Have a code?',\n\tplaceholder: 'Enter coupon code',\n\tapply: 'Apply',\n\tremove: 'Remove',\n\tapplied: 'Applied',\n\tinvalid: 'That code is not valid',\n};\n\nexport interface CouponInputCardProps {\n\tappliedCode?: string;\n\tappliedDiscount?: string;\n\terror?: string;\n\tonApply?: (code: string) => void;\n\tonRemove?: () => void;\n\tloading?: boolean;\n\tclassName?: string;\n\tstrings?: Partial<CouponInputStrings>;\n}\n","/**\n * CouponInputCard — promo / coupon code entry with an applied state and\n * inline error messaging.\n *\n * Empty state — leading-icon input + apply button, helper line for\n * placeholders or errors. Applied state — success-tinted row with a check\n * medallion, monospaced code, discount delta, and a destructive remove icon.\n */\nimport { useState } from 'react';\nimport { Check, Sparkles, TicketPercent, X } from 'lucide-react';\nimport { SmartCard } from '@/components/base/cards';\nimport { Button } from '@/components/base/buttons';\nimport { IconBadge } from '@/components/base/display';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemDescription,\n\tItemFooter,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { Text } from '@/components/typography';\nimport { Input } from '@/components/base/forms/fields';\nimport { useStrings } from '@/lib/strings';\n\nimport { defaultCouponInputStrings, type CouponInputCardProps } from './types';\n\nimport { cn } from '@/lib/utils';\nconst stripLeadingMinus = (value: string): string => value.replace(/^[\\s−-]+/, '');\nconst normalizeCode = (value: string): string => value.toUpperCase();\n\nexport function CouponInputCard({\n\tappliedCode,\n\tappliedDiscount,\n\terror,\n\tonApply,\n\tonRemove,\n\tloading,\n\tclassName,\n\tstrings: stringsProp,\n}: CouponInputCardProps) {\n\tconst strings = useStrings(defaultCouponInputStrings, stringsProp);\n\tconst [code, setCode] = useState('');\n\tconst trimmedCode = code.trim();\n\n\tif (appliedCode) {\n\t\treturn (\n\t\t\t<SmartCard icon={<TicketPercent className=\"size-4\" />} title={strings.title} className={cn('coupon-input--component w-full', className)}>\n\t\t\t\t<Item size=\"xs\" variant=\"muted\" className=\"items-center gap-x-2.5 gap-y-1.5 border border-success/30 bg-success/8 px-2.5 py-2\">\n\t\t\t\t\t<ItemMedia>\n\t\t\t\t\t\t<IconBadge icon={Check} tone=\"success\" size=\"sm\" className=\"ring-1 ring-success/20\" />\n\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t<ItemContent className=\"min-w-0\">\n\t\t\t\t\t\t<ItemTitle className=\"max-w-full font-mono tracking-wider\">{appliedCode}</ItemTitle>\n\t\t\t\t\t\t<ItemDescription className=\"uppercase tracking-wide\" clamp={1}>\n\t\t\t\t\t\t\t{strings.applied}\n\t\t\t\t\t\t</ItemDescription>\n\t\t\t\t\t</ItemContent>\n\t\t\t\t\t<ItemFooter className=\"border-t border-success/15 pt-1\">\n\t\t\t\t\t\t<span />\n\t\t\t\t\t\t<ItemActions className=\"shrink-0 gap-1.5\">\n\t\t\t\t\t\t\t{!!appliedDiscount && (\n\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\t\t\t\ttype=\"success\"\n\t\t\t\t\t\t\t\t\tclassName=\"tabular-nums shrink-0\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t−{stripLeadingMinus(appliedDiscount)}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{!!onRemove && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tvariant=\"error\"\n\t\t\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\t\t\tsize=\"icon-xs\"\n\t\t\t\t\t\t\t\t\tonClick={onRemove}\n\t\t\t\t\t\t\t\t\taria-label={strings.remove}\n\t\t\t\t\t\t\t\t\tclassName=\"size-7 shrink-0 text-muted-foreground hover:text-destructive\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<X className=\"size-3.5\" />\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</ItemActions>\n\t\t\t\t\t</ItemFooter>\n\t\t\t\t</Item>\n\t\t\t</SmartCard>\n\t\t);\n\t}\n\n\treturn (\n\t\t<SmartCard icon={<TicketPercent className=\"size-4\" />} title={strings.title} className={cn('coupon-input--component w-full', className)}>\n\t\t\t<div className=\"flex flex-col gap-2\">\n\t\t\t\t<div className=\"flex flex-wrap gap-2\">\n\t\t\t\t\t<div className=\"min-w-[11rem] flex-1\">\n\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\tvalue={code}\n\t\t\t\t\t\t\tonChange={(e) => setCode(normalizeCode((e.target as HTMLInputElement).value))}\n\t\t\t\t\t\t\tplaceholder={strings.placeholder}\n\t\t\t\t\t\t\tstartIcon={Sparkles}\n\t\t\t\t\t\t\tautoCapitalize=\"characters\"\n\t\t\t\t\t\t\tspellCheck={false}\n\t\t\t\t\t\t\tclassName=\"font-mono\"\n\t\t\t\t\t\t\tinvalid={Boolean(error)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"default\"\n\t\t\t\t\t\tonClick={() => onApply?.(trimmedCode)}\n\t\t\t\t\t\tloading={loading}\n\t\t\t\t\t\tdisabled={!trimmedCode}\n\t\t\t\t\t\tclassName=\"shrink-0\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{strings.apply}\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t\t{!!error && (\n\t\t\t\t\t<Text size=\"xs\" type=\"error\">{error || strings.invalid}</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</SmartCard>\n\t);\n}\n\nCouponInputCard.displayName = 'CouponInputCard';\n","import type { ComposedBadgeVariant } from '@/components/base/badge/badge';\n\nexport type OrderStatusKind = 'pending' | 'paid' | 'fulfilled' | 'shipped' | 'delivered' | 'cancelled';\n\nexport interface OrderStatusEvent {\n\tlabel: string;\n\ttimestamp?: string;\n\tcomplete: boolean;\n}\n\nexport interface OrderStatusStrings {\n\ttitle: string;\n\tstatusLabel: string;\n\teta: string;\n\tlatestEvent: string;\n\tcurrentStep: string;\n}\n\nexport const defaultOrderStatusStrings: OrderStatusStrings = {\n\ttitle: 'Order status',\n\tstatusLabel: 'Current status',\n\teta: 'ETA',\n\tlatestEvent: 'Latest event',\n\tcurrentStep: 'Current step',\n};\n\nexport interface OrderStatusCardProps {\n\torderNumber: string;\n\tstatus: OrderStatusKind;\n\tstatusVariant?: ComposedBadgeVariant;\n\tevents: OrderStatusEvent[];\n\tcurrentEta?: string;\n\tclassName?: string;\n\tstrings?: Partial<OrderStatusStrings>;\n}\n","/**\n * OrderStatusCard — order number + status badge + readable event timeline.\n * Ideal for dashboards / receipt summaries. Strings overridable for i18n.\n */\nimport { CalendarClock, Check, Circle, Package } from 'lucide-react';\nimport { SmartCard } from '@/components/base/cards';\nimport { Text } from '@/components/typography';\nimport { Badge } from '@/components/base/badge';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport {\n\tdefaultOrderStatusStrings,\n\ttype OrderStatusCardProps,\n\ttype OrderStatusKind,\n} from './types';\n\nconst VARIANT_BY_STATUS: Record<OrderStatusKind, 'primary' | 'success' | 'warning' | 'error' | 'info' | 'secondary'> = {\n\tpending: 'warning',\n\tpaid: 'info',\n\tfulfilled: 'info',\n\tshipped: 'primary',\n\tdelivered: 'success',\n\tcancelled: 'error',\n};\n\nexport function OrderStatusCard({\n\torderNumber,\n\tstatus,\n\tstatusVariant,\n\tevents,\n\tcurrentEta,\n\tclassName,\n\tstrings: stringsProp,\n}: OrderStatusCardProps) {\n\tconst strings = useStrings(defaultOrderStatusStrings, stringsProp);\n\tconst variant = statusVariant ?? VARIANT_BY_STATUS[status];\n\tconst lastCompleteIdx = events.reduce((acc, e, i) => (e.complete ? i : acc), -1);\n\tconst latestEvent = events[lastCompleteIdx] ?? events[0];\n\tconst nextEvent = events.find((event) => !event.complete);\n\n\treturn (\n\t\t<SmartCard\n\t\t\ticon={<Package className=\"size-4\" />}\n\t\t\ttitle={strings.title}\n\t\t\ttitleSuffix={<Badge variant={variant} className=\"capitalize\">{status}</Badge>}\n\t\t\tdescription={`#${orderNumber}`}\n\t\t\tclassName={cn('order-status--component w-full', className)}\n\t\t>\n\t\t\t<div className=\"rounded-lg border border-border bg-muted/20 p-3\">\n\t\t\t\t<div className=\"grid gap-3 sm:grid-cols-3\">\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<Text size=\"xxs\" type=\"secondary\" className=\"uppercase tracking-wide\">\n\t\t\t\t\t\t\t{strings.statusLabel}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t<Text weight=\"semibold\" className=\"mt-0.5 capitalize\">\n\t\t\t\t\t\t\t{status}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</div>\n\t\t\t\t\t{!!latestEvent && (\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<Text size=\"xxs\" type=\"secondary\" className=\"uppercase tracking-wide\">\n\t\t\t\t\t\t\t\t{latestEvent.complete ? strings.latestEvent : strings.currentStep}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Text weight=\"semibold\" className=\"mt-0.5\">\n\t\t\t\t\t\t\t\t{latestEvent.label}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!currentEta && (\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<Text size=\"xxs\" type=\"secondary\" className=\"uppercase tracking-wide\">\n\t\t\t\t\t\t\t\t{strings.eta}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Text weight=\"semibold\" className=\"mt-0.5 tabular-nums\">\n\t\t\t\t\t\t\t\t{currentEta}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{events.length > 0 && (\n\t\t\t\t<ol className=\"mt-4\">\n\t\t\t\t\t{events.map((event, index) => {\n\t\t\t\t\t\tconst isLast = index === events.length - 1;\n\t\t\t\t\t\tconst isCurrent = nextEvent ? event === nextEvent : index === lastCompleteIdx;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<li key={`${event.label}-${index}`} className=\"relative flex gap-3\">\n\t\t\t\t\t\t\t\t<div className=\"flex flex-col items-center\">\n\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t'flex size-6 shrink-0 items-center justify-center rounded-full border',\n\t\t\t\t\t\t\t\t\t\t\tevent.complete\n\t\t\t\t\t\t\t\t\t\t\t\t? 'border-success bg-success text-success-foreground'\n\t\t\t\t\t\t\t\t\t\t\t\t: 'border-border bg-card text-muted-foreground',\n\t\t\t\t\t\t\t\t\t\t\tisCurrent && !event.complete && 'border-primary text-primary ring-4 ring-primary/10',\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{event.complete ? (\n\t\t\t\t\t\t\t\t\t\t\t<Check className=\"size-3.5\" strokeWidth={2.5} />\n\t\t\t\t\t\t\t\t\t\t) : isCurrent ? (\n\t\t\t\t\t\t\t\t\t\t\t<CalendarClock className=\"size-3.5\" />\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t<Circle className=\"size-3\" />\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t{!isLast && (\n\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t'min-h-6 w-px flex-1',\n\t\t\t\t\t\t\t\t\t\t\t\tindex < lastCompleteIdx ? 'bg-success' : 'bg-border',\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div className={cn('min-w-0 flex-1 pb-4', isLast && 'pb-0')}>\n\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\tweight={event.complete || isCurrent ? 'semibold' : 'medium'}\n\t\t\t\t\t\t\t\t\t\tclassName={cn(!event.complete && !isCurrent && 'text-muted-foreground')}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{event.label}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t{!!event.timestamp && (\n\t\t\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"mt-0.5 tabular-nums\">\n\t\t\t\t\t\t\t\t\t\t\t{event.timestamp}\n\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</ol>\n\t\t\t)}\n\t\t</SmartCard>\n\t);\n}\n\nOrderStatusCard.displayName = 'OrderStatusCard';\n","export type PaymentBrand = 'visa' | 'mastercard' | 'amex' | 'paypal' | 'applepay' | 'googlepay' | 'unknown';\n\nexport interface PaymentMethodStrings {\n\ttitle: string;\n\tdefault: string;\n\tcardHolder: string;\n\texpires: string;\n\tchange: string;\n}\n\nexport const defaultPaymentMethodStrings: PaymentMethodStrings = {\n\ttitle: 'Payment method',\n\tdefault: 'Default',\n\tcardHolder: 'Card holder',\n\texpires: 'Expires',\n\tchange: 'Change',\n};\n\nexport interface PaymentMethodCardProps {\n\tbrand: PaymentBrand;\n\tlast4: string;\n\texpiry?: string; // MM/YY\n\tholderName?: string;\n\tisDefault?: boolean;\n\tonChange?: () => void;\n\tclassName?: string;\n\tstrings?: Partial<PaymentMethodStrings>;\n}\n","/**\n * PaymentMethodCard — saved-card surface. The hero block is rendered as a\n * mini credit-card mock with real card proportions, brand chip top-right, masked\n * PAN center, and holder + expiry on the bottom row. Trailing actions sit\n * in a footer below the mock so the hierarchy is \"card → details → CTA\".\n */\nimport { CreditCard } from 'lucide-react';\nimport { SmartCard } from '@/components/base/cards';\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography';\nimport { Badge } from '@/components/base/badge';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport { defaultPaymentMethodStrings, type PaymentBrand, type PaymentMethodCardProps } from './types';\n\nconst BRAND_LABEL: Record<PaymentBrand, string> = {\n\tvisa: 'VISA',\n\tmastercard: 'MasterCard',\n\tamex: 'AMEX',\n\tpaypal: 'PayPal',\n\tapplepay: 'Apple Pay',\n\tgooglepay: 'Google Pay',\n\tunknown: 'Card',\n};\n\nconst BRAND_GRADIENT: Record<PaymentBrand, string> = {\n\tvisa: 'from-info via-primary to-info',\n\tmastercard: 'from-warning via-destructive to-destructive',\n\tamex: 'from-info via-primary to-info',\n\tpaypal: 'from-info via-primary to-info',\n\tapplepay: 'from-foreground via-muted-foreground to-foreground',\n\tgooglepay: 'from-success via-primary to-success',\n\tunknown: 'from-foreground via-muted-foreground to-foreground',\n};\n\nexport function PaymentMethodCard({\n\tbrand,\n\tlast4,\n\texpiry,\n\tholderName,\n\tisDefault,\n\tonChange,\n\tclassName,\n\tstrings: stringsProp,\n}: PaymentMethodCardProps) {\n\tconst strings = useStrings(defaultPaymentMethodStrings, stringsProp);\n\tconst brandLabel = BRAND_LABEL[brand];\n\tconst gradient = BRAND_GRADIENT[brand];\n\n\treturn (\n\t\t<SmartCard\n\t\t\ticon={<CreditCard className=\"size-4\" />}\n\t\t\ttitle={strings.title}\n\t\t\ttitleSuffix={isDefault ? <Badge variant=\"primary\">{strings.default}</Badge> : null}\n\t\t\theaderAction={onChange ? (\n\t\t\t\t<Button buttonStyle=\"ghost\" variant=\"secondary\" onClick={onChange}>\n\t\t\t\t\t{strings.change}\n\t\t\t\t</Button>\n\t\t\t) : undefined}\n\t\t\tclassName={cn('payment-method--component w-full', className)}\n\t\t>\n\t\t\t{/* Mini card mock */}\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'relative mx-auto flex aspect-[85.6/53.98] w-full max-w-[22rem] flex-col justify-between overflow-hidden rounded-lg bg-gradient-to-br p-3.5 text-inverse-foreground shadow-sm ring-1 ring-inverse-border',\n\t\t\t\t\tgradient,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<div className=\"relative flex items-start justify-between\">\n\t\t\t\t\t<div className=\"flex size-7 items-center justify-center rounded-md bg-gradient-to-br from-warning/80 to-warning shadow-sm\">\n\t\t\t\t\t\t<div className=\"size-4 rounded-sm border border-warning-foreground/25 bg-warning-foreground/15\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<Text\n\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\tweight=\"bold\"\n\t\t\t\t\t\tclassName=\"rounded bg-inverse-surface px-2 py-0.5 tracking-[0.15em] text-inverse-foreground backdrop-blur-sm\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{brandLabel}\n\t\t\t\t\t</Text>\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"relative\">\n\t\t\t\t\t<Text\n\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\tsize=\"base\"\n\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\tclassName=\"block font-mono tracking-[0.25em] text-inverse-foreground\"\n\t\t\t\t\t>\n\t\t\t\t\t\t•••• •••• •••• {last4}\n\t\t\t\t\t</Text>\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"relative flex items-end justify-between gap-3\">\n\t\t\t\t\t<div className=\"min-w-0\">\n\t\t\t\t\t\t{!!holderName && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Text size=\"xxs\" className=\"block uppercase tracking-wider text-inverse-subtle\">{strings.cardHolder}</Text>\n\t\t\t\t\t\t\t\t<Text weight=\"semibold\" className=\"truncate text-inverse-foreground\">{holderName}</Text>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t\t{!!expiry && (\n\t\t\t\t\t\t<div className=\"text-right shrink-0\">\n\t\t\t\t\t\t\t<Text size=\"xxs\" className=\"block uppercase tracking-wider text-inverse-subtle\">{strings.expires}</Text>\n\t\t\t\t\t\t\t<Text tag=\"span\" weight=\"semibold\" className=\"tabular-nums text-inverse-foreground\">{expiry}</Text>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t</SmartCard>\n\t);\n}\n\nPaymentMethodCard.displayName = 'PaymentMethodCard';\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.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 = 'inverse',\n\ttimePlacement = 'below',\n}: UpcomingBookingRowProps) {\n\treturn (\n\t\t<ItemGroup className={cn('upcoming-booking--component w-full gap-2', className)}>\n\t\t\t{bookings.map((b, idx) => {\n\t\t\t\tconst dateInput = resolveDate(b);\n\t\t\t\treturn (\n\t\t\t\t\t<Item key={b.id ?? `${b.service}-${b.time}-${idx}`} className=\"items-center px-0 py-1.5\">\n\t\t\t\t\t\t{!!dateInput && (\n\t\t\t\t\t\t\t<ItemMedia>\n\t\t\t\t\t\t\t\t<DateBlock\n\t\t\t\t\t\t\t\t\tdate={dateInput}\n\t\t\t\t\t\t\t\t\ttime={timePlacement === 'below' ? b.time : undefined}\n\t\t\t\t\t\t\t\t\ttone={dateTone}\n\t\t\t\t\t\t\t\t\tlocale={locale}\n\t\t\t\t\t\t\t\t\ttimePlacement=\"below\"\n\t\t\t\t\t\t\t\t\tlayout=\"stacked\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<ItemContent className=\"min-w-[min(12rem,100%)]\">\n\t\t\t\t\t\t\t<ItemTitle>{b.service}</ItemTitle>\n\t\t\t\t\t\t\t<ItemDescription clamp={1}>{b.customer}</ItemDescription>\n\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t<ItemActions className=\"ml-auto shrink-0 flex-wrap justify-end\">\n\t\t\t\t\t\t\t{timePlacement === 'inline-trailing' && (\n\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"shrink-0 tabular-nums\">\n\t\t\t\t\t\t\t\t\t{b.time}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t<Text weight=\"semibold\" className=\"shrink-0 tabular-nums\">\n\t\t\t\t\t\t\t\t{b.amount}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</ItemActions>\n\t\t\t\t\t</Item>\n\t\t\t\t);\n\t\t\t})}\n\t\t</ItemGroup>\n\t);\n}\n\nUpcomingBookingRow.displayName = 'UpcomingBookingRow';\n","export interface LoyaltyHistoryEntry {\n label: string;\n points: string;\n date: string;\n positive: boolean;\n}\n\nexport interface LoyaltyPointsStrings {\n balanceLabel: string;\n pointsAvailable: string;\n redeem: string;\n}\n\nexport const defaultLoyaltyPointsStrings: LoyaltyPointsStrings = {\n balanceLabel: 'Loyalty Balance',\n pointsAvailable: 'points available',\n redeem: 'Redeem Points',\n};\n\nexport interface LoyaltyPointsCardProps {\n balance: number | string;\n tier?: string;\n tierVariant?: string;\n history?: LoyaltyHistoryEntry[];\n /** @deprecated Use `strings.redeem`. */\n redeemLabel?: string;\n onRedeem?: () => void;\n className?: string;\n strings?: Partial<LoyaltyPointsStrings>;\n}\n","/**\n * LoyaltyPointsCard — current balance, tier badge, recent history rows\n * (label / date / signed-points), and a redemption CTA. Strings overridable\n * for i18n.\n */\nimport { Badge } from '@/components/base/badge/badge';\nimport { Button } from '@/components/base/buttons';\nimport { SmartCard } from '@/components/base/cards/smart-card';\nimport Heading from '@/components/typography/heading';\nimport { Text } from '@/components/typography/text';\nimport { InlineStat } from '@/components/base/display';\nimport { Separator } from '@/components/base/display/separator';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemDescription,\n\tItemGroup,\n\tItemTitle,\n} from '@/components/base/item';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\nimport { Gift, Trophy } from 'lucide-react';\n\nimport { defaultLoyaltyPointsStrings, type LoyaltyPointsCardProps } from './types';\n\nexport function LoyaltyPointsCard({\n\tbalance,\n\ttier = 'Gold Tier',\n\ttierVariant: _tierVariant,\n\thistory = [],\n\tredeemLabel,\n\tonRedeem,\n\tclassName,\n\tstrings: stringsProp,\n}: LoyaltyPointsCardProps) {\n\tconst strings = useStrings(defaultLoyaltyPointsStrings, {\n\t\t...(redeemLabel !== undefined ? { redeem: redeemLabel } : {}),\n\t\t...stringsProp,\n\t});\n\treturn (\n\t\t<SmartCard className={cn('loyalty-points--component w-full', className)}>\n\t\t\t<InlineStat\n\t\t\t\tlabel={strings.balanceLabel}\n\t\t\t\tvalue={\n\t\t\t\t\t<Badge variant=\"warning\">\n\t\t\t\t\t\t<Trophy className=\"mr-1 inline size-3\" />\n\t\t\t\t\t\t{tier}\n\t\t\t\t\t</Badge>\n\t\t\t\t}\n\t\t\t\tlabelClassName=\"text-xs font-medium uppercase tracking-wider text-muted-foreground\"\n\t\t\t/>\n\n\t\t\t<Heading tag=\"h3\" className=\"text-4xl tabular-nums tracking-tight\">\n\t\t\t\t{typeof balance === 'number' ? balance.toLocaleString() : balance}\n\t\t\t</Heading>\n\t\t\t<Text size=\"xs\" type=\"secondary\">\n\t\t\t\t{strings.pointsAvailable}\n\t\t\t</Text>\n\n\t\t\t<Separator className=\"my-4\" />\n\n\t\t\t<ItemGroup>\n\t\t\t\t{history.map((entry) => (\n\t\t\t\t\t<Item key={entry.date + entry.label} size=\"xs\" className=\"px-0 py-1\">\n\t\t\t\t\t\t<ItemContent>\n\t\t\t\t\t\t\t<ItemTitle bold={false}>{entry.label}</ItemTitle>\n\t\t\t\t\t\t\t<ItemDescription clamp={1}>{entry.date}</ItemDescription>\n\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t<ItemActions>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t'tabular-nums',\n\t\t\t\t\t\t\t\t\tentry.positive ? 'text-success' : 'text-destructive',\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{entry.points}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</ItemActions>\n\t\t\t\t\t</Item>\n\t\t\t\t))}\n\t\t\t</ItemGroup>\n\n\t\t\t<Button\n\t\t\t\tvariant=\"dark\"\n\t\t\t\tclassName=\"mt-5 w-full rounded-full\"\n\t\t\t\tonClick={onRedeem}\n\t\t\t>\n\t\t\t\t<Gift className=\"mr-1.5 size-3.5\" />\n\t\t\t\t{strings.redeem}\n\t\t\t</Button>\n\t\t</SmartCard>\n\t);\n}\n\nLoyaltyPointsCard.displayName = 'LoyaltyPointsCard';\n","import type { ComposedBadgeVariant as BadgeVariant } from '@/components/base/badge/badge';\n\nexport interface Discount {\n type: string;\n label: string;\n amount: string;\n badge: BadgeVariant;\n}\n\nexport interface DiscountStackStrings {\n title: string;\n totalSavings: string;\n}\n\nexport const defaultDiscountStackStrings: DiscountStackStrings = {\n title: 'Applied Discounts',\n totalSavings: 'Total Savings',\n};\n\nexport interface DiscountStackPreviewProps {\n discounts: Discount[];\n totalSavings: string;\n className?: string;\n strings?: Partial<DiscountStackStrings>;\n}\n","/**\n * DiscountStackPreview — list of applied discounts (type chip + label +\n * amount) with a total-savings summary line. Strings overridable for i18n.\n */\nimport { Badge } from '@/components/base/badge/badge';\nimport { SmartCard } from '@/components/base/cards/smart-card';\nimport Heading from '@/components/typography/heading';\nimport { Text } from '@/components/typography/text';\nimport { InlineStat } from '@/components/base/display';\nimport { Separator } from '@/components/base/display/separator';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemGroup,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { useStrings } from '@/lib/strings';\n\nimport { defaultDiscountStackStrings, type DiscountStackPreviewProps } from './types';\n\nimport { cn } from '@/lib/utils';\nexport function DiscountStackPreview({\n\tdiscounts,\n\ttotalSavings,\n\tclassName,\n\tstrings: stringsProp,\n}: DiscountStackPreviewProps) {\n\tconst strings = useStrings(defaultDiscountStackStrings, stringsProp);\n\treturn (\n\t\t<SmartCard title={strings.title} className={cn('discount-stack--component w-full', className)}>\n\t\t\t<ItemGroup className=\"mt-4\">\n\t\t\t\t{discounts.map((d) => (\n\t\t\t\t\t<Item key={d.type} size=\"xs\" className=\"px-0 py-1\">\n\t\t\t\t\t\t<ItemMedia>\n\t\t\t\t\t\t\t<Badge variant={d.badge} className=\"w-16 justify-center text-xxs\">\n\t\t\t\t\t\t\t\t{d.type}\n\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t\t<ItemContent>\n\t\t\t\t\t\t\t<ItemTitle bold={false}>{d.label}</ItemTitle>\n\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t<ItemActions>\n\t\t\t\t\t\t\t<Text weight=\"semibold\" className=\"tabular-nums text-success\">\n\t\t\t\t\t\t\t\t{d.amount}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</ItemActions>\n\t\t\t\t\t</Item>\n\t\t\t\t))}\n\t\t\t</ItemGroup>\n\n\t\t\t<Separator className=\"my-4\" />\n\n\t\t\t<InlineStat\n\t\t\t\tlabel={strings.totalSavings}\n\t\t\t\tvalue={\n\t\t\t\t\t<Heading tag=\"h4\" className=\"text-xl tabular-nums tracking-tight text-success border-none pb-0\">\n\t\t\t\t\t\t{totalSavings}\n\t\t\t\t\t</Heading>\n\t\t\t\t}\n\t\t\t\tlabelClassName=\"text-sm font-semibold\"\n\t\t\t/>\n\t\t</SmartCard>\n\t);\n}\n\nDiscountStackPreview.displayName = 'DiscountStackPreview';\n","/**\n * ShipmentTrackingCard — tracking number + carrier header, current status\n * with pulse dot, horizontal step progress bar, and an optional details row\n * grid (e.g. weight, ETA, recipient). All copy is consumer-supplied via\n * `steps[].label` / `details[].label`.\n */\nimport { Badge } from '@/components/base/badge/badge';\nimport { SmartCard } from '@/components/base/cards/smart-card';\nimport { Text } from '@/components/typography/text';\nimport { InlineStat } from '@/components/base/display';\nimport { Separator } from '@/components/base/display/separator';\nimport { cn } from '@/lib/utils';\n\nimport type { ShipmentTrackingCardProps } from './types';\n\nexport function ShipmentTrackingCard({\n trackingNumber,\n carrier,\n status,\n steps,\n details = [],\n className,\n}: ShipmentTrackingCardProps) {\n return (\n <SmartCard className={cn('shipment-tracking--component w-full', className)}>\n <div className=\"flex items-center justify-between\">\n <Text size=\"xs\" weight=\"medium\" className=\"font-mono text-muted-foreground tracking-wide\">\n {trackingNumber}\n </Text>\n {!!carrier && <Badge variant=\"info\">{carrier}</Badge>}\n </div>\n\n <div className=\"mt-4 flex items-center gap-1.5\">\n <span className=\"h-2 w-2 rounded-full bg-success\" />\n <Text weight=\"semibold\">\n {status}\n </Text>\n </div>\n\n <div className=\"mt-5 flex items-center justify-between\">\n {steps.map((step, i) => (\n <div key={step.label} className=\"flex flex-1 flex-col items-center gap-2\">\n <div className=\"flex w-full items-center\">\n <div className={cn('size-3 shrink-0 rounded-full', step.done ? 'bg-success' : 'bg-muted')} />\n {i < steps.length - 1 && (\n <div className={cn('h-0.5 flex-1', step.done ? 'bg-success' : 'bg-muted')} />\n )}\n </div>\n <Text size=\"xs\" type=\"secondary\" className=\"text-center leading-tight\">\n {step.label}\n </Text>\n </div>\n ))}\n </div>\n\n {details.length > 0 && (\n <>\n <Separator className=\"my-4\" />\n <div className=\"space-y-2\">\n {details.map((detail) => (\n <InlineStat\n key={detail.label}\n label={detail.label}\n value={detail.value}\n labelClassName=\"text-xs\"\n valueClassName=\"text-sm font-medium truncate max-w-[180px]\"\n />\n ))}\n </div>\n </>\n )}\n </SmartCard>\n );\n}\n\nShipmentTrackingCard.displayName = 'ShipmentTrackingCard';\n","export interface TaxLineItem {\n\tid?: string;\n\tlabel: string;\n\trate?: string;\n\tamount: string;\n}\n\nexport interface TaxBreakdownStrings {\n\ttitle: string;\n\tsubtotal: string;\n\ttotalTax: string;\n\ttotal: string;\n}\n\nexport const defaultTaxBreakdownStrings: TaxBreakdownStrings = {\n\ttitle: 'Tax Breakdown',\n\tsubtotal: 'Subtotal',\n\ttotalTax: 'Total Tax',\n\ttotal: 'Total',\n};\n\nexport interface TaxBreakdownCardProps {\n\tsubtotal: string;\n\ttaxes: TaxLineItem[];\n\ttotalTax?: string;\n\ttotal: string;\n\tclassName?: string;\n\tstrings?: Partial<TaxBreakdownStrings>;\n}\n","/**\n * TaxBreakdownCard — itemised tax breakdown for an order or invoice. Shows a\n * subtotal, one row per tax line (with optional rate suffix), an optional\n * \"Total tax\" rollup, and a final total. Pairs with `CartSummaryCard` when\n * consumers need to expose VAT / regional tax detail. Strings overridable\n * for i18n.\n */\nimport { Receipt } from 'lucide-react';\nimport { SmartCard } from '@/components/base/cards';\nimport { Text } from '@/components/typography';\nimport { InlineStat } from '@/components/base/display';\nimport { Separator } from '@/components/base/display/separator';\nimport { useStrings } from '@/lib/strings';\n\nimport { defaultTaxBreakdownStrings, type TaxBreakdownCardProps } from './types';\n\nimport { cn } from '@/lib/utils';\nexport function TaxBreakdownCard({\n\tsubtotal,\n\ttaxes,\n\ttotalTax,\n\ttotal,\n\tclassName,\n\tstrings: stringsProp,\n}: TaxBreakdownCardProps) {\n\tconst strings = useStrings(defaultTaxBreakdownStrings, stringsProp);\n\n\treturn (\n\t\t<SmartCard\n\t\t\ticon={<Receipt className=\"size-4\" />}\n\t\t\ttitle={strings.title}\n\t\t\tclassName={cn('tax-breakdown--component w-full', className)}\n\t\t>\n\t\t\t<InlineStat\n\t\t\t\tlabel={strings.subtotal}\n\t\t\t\tvalue={subtotal}\n\t\t\t\tmono\n\t\t\t\tlabelClassName=\"text-sm\"\n\t\t\t\tvalueClassName=\"text-sm font-medium\"\n\t\t\t/>\n\n\t\t\t<div className=\"mt-3 space-y-1.5 rounded-lg border border-border/50 bg-muted/30 px-3 py-2.5\">\n\t\t\t\t{taxes.map((tax, i) => (\n\t\t\t\t\t<div\n\t\t\t\t\t\tkey={tax.id ?? `${tax.label}-${i}`}\n\t\t\t\t\t\tclassName=\"flex items-baseline justify-between gap-3\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"flex items-baseline gap-1.5 min-w-0\">\n\t\t\t\t\t\t\t<Text size=\"xs\" className=\"truncate\">{tax.label}</Text>\n\t\t\t\t\t\t\t{!!tax.rate && (\n\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xxs\" type=\"discrete\" className=\"shrink-0\">\n\t\t\t\t\t\t\t\t\t{tax.rate}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" weight=\"medium\" className=\"tabular-nums shrink-0\">\n\t\t\t\t\t\t\t{tax.amount}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</div>\n\t\t\t\t))}\n\t\t\t\t{!!totalTax && taxes.length > 1 && (\n\t\t\t\t\t<InlineStat\n\t\t\t\t\t\tlabel={strings.totalTax}\n\t\t\t\t\t\tvalue={totalTax}\n\t\t\t\t\t\tmono\n\t\t\t\t\t\tclassName=\"border-t border-border/50 pt-1.5 mt-0.5\"\n\t\t\t\t\t\tlabelClassName=\"text-xs font-medium\"\n\t\t\t\t\t\tvalueClassName=\"text-xs font-semibold\"\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t<Separator className=\"my-3\" />\n\n\t\t\t<InlineStat\n\t\t\t\tlabel={strings.total}\n\t\t\t\tvalue={total}\n\t\t\t\tmono\n\t\t\t\tlabelClassName=\"text-sm font-semibold\"\n\t\t\t\tvalueClassName=\"text-lg font-bold\"\n\t\t\t/>\n\t\t</SmartCard>\n\t);\n}\n\nTaxBreakdownCard.displayName = 'TaxBreakdownCard';\n","import type { LucideIcon } from 'lucide-react';\n\nexport interface SubscriptionPerk {\n\ticon?: LucideIcon;\n\tlabel: string;\n}\n\nexport interface SubscriptionSummaryStrings {\n\ttitle: string;\n\tplan: string;\n\tnextBilling: string;\n\tperks: string;\n\tmanage: string;\n\tupgrade: string;\n}\n\nexport const defaultSubscriptionSummaryStrings: SubscriptionSummaryStrings = {\n\ttitle: 'Subscription',\n\tplan: 'Plan',\n\tnextBilling: 'Next billing',\n\tperks: 'Included',\n\tmanage: 'Manage',\n\tupgrade: 'Upgrade',\n};\n\nexport interface SubscriptionSummaryCardProps {\n\tplanName: string;\n\tpriceLabel: string;\n\tcycleLabel: string;\n\tnextBillingDate: string;\n\tstatusLabel?: string;\n\tperks?: SubscriptionPerk[];\n\tonManage?: () => void;\n\tonUpgrade?: () => void;\n\tclassName?: string;\n\tstrings?: Partial<SubscriptionSummaryStrings>;\n}\n","/**\n * SubscriptionSummaryCard — at-a-glance subscription card with the active\n * plan name as the hero heading, an inline price + cycle, the next billing\n * date in a meta row, an optional perks list, and trailing\n * Manage / Upgrade actions. Strings overridable for i18n.\n */\nimport { Calendar, Check, ChevronRight, Repeat } from 'lucide-react';\nimport { Badge } from '@/components/base/badge';\nimport { Button } from '@/components/base/buttons';\nimport { SmartCard } from '@/components/base/cards';\nimport { IconBadge } from '@/components/base/display';\nimport {\n\tItem,\n\tItemContent,\n\tItemGroup,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport Heading from '@/components/typography/heading';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\n\nimport {\n\tdefaultSubscriptionSummaryStrings,\n\ttype SubscriptionSummaryCardProps,\n} from './types';\n\nimport { cn } from '@/lib/utils';\nexport function SubscriptionSummaryCard({\n\tplanName,\n\tpriceLabel,\n\tcycleLabel,\n\tnextBillingDate,\n\tstatusLabel,\n\tperks = [],\n\tonManage,\n\tonUpgrade,\n\tclassName,\n\tstrings: stringsProp,\n}: SubscriptionSummaryCardProps) {\n\tconst strings = useStrings(defaultSubscriptionSummaryStrings, stringsProp);\n\n\treturn (\n\t\t<SmartCard\n\t\t\ticon={<Repeat className=\"size-4\" />}\n\t\t\ttitle={strings.title}\n\t\t\theaderEnd={statusLabel ? <Badge variant=\"success\">{statusLabel}</Badge> : null}\n\t\t\tclassName={cn('subscription-summary--component w-full', className)}\n\t\t>\n\t\t\t<div className=\"rounded-lg border border-border/60 bg-muted/30 p-4\">\n\t\t\t\t<Text size=\"xxs\" type=\"secondary\" weight=\"medium\" className=\"uppercase tracking-wider\">\n\t\t\t\t\t{strings.plan}\n\t\t\t\t</Text>\n\t\t\t\t<Heading tag=\"h3\" className=\"mt-1 text-xl font-semibold tracking-tight border-none pb-0\">\n\t\t\t\t\t{planName}\n\t\t\t\t</Heading>\n\t\t\t\t<div className=\"mt-1 flex items-baseline gap-1\">\n\t\t\t\t\t<Text tag=\"span\" size=\"xl\" weight=\"bold\" className=\"tabular-nums\">\n\t\t\t\t\t\t{priceLabel}\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Text type=\"secondary\">\n\t\t\t\t\t\t{cycleLabel}\n\t\t\t\t\t</Text>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div className=\"mt-3 flex items-center justify-between rounded-md bg-card px-1\">\n\t\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t\t<Calendar className=\"size-3.5 text-muted-foreground\" />\n\t\t\t\t\t<Text size=\"xs\" type=\"secondary\">{strings.nextBilling}</Text>\n\t\t\t\t</div>\n\t\t\t\t<Text size=\"xs\" weight=\"semibold\" className=\"tabular-nums\">{nextBillingDate}</Text>\n\t\t\t</div>\n\n\t\t\t{perks.length > 0 && (\n\t\t\t\t<div className=\"mt-4 space-y-2\">\n\t\t\t\t\t<Text size=\"xxs\" type=\"secondary\" weight=\"medium\" className=\"uppercase tracking-wider\">\n\t\t\t\t\t\t{strings.perks}\n\t\t\t\t\t</Text>\n\t\t\t\t\t<ItemGroup>\n\t\t\t\t\t\t{perks.map((perk, i) => {\n\t\t\t\t\t\t\tconst Icon = perk.icon ?? Check;\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<Item key={`${perk.label}-${i}`} size=\"xs\" className=\"px-0\">\n\t\t\t\t\t\t\t\t\t<ItemMedia>\n\t\t\t\t\t\t\t\t\t\t<IconBadge icon={Icon} tone=\"success\" size=\"xs\" />\n\t\t\t\t\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t\t\t\t\t<ItemContent>\n\t\t\t\t\t\t\t\t\t\t<ItemTitle bold={false}>{perk.label}</ItemTitle>\n\t\t\t\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t\t\t</Item>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t</ItemGroup>\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{(onManage || onUpgrade) && (\n\t\t\t\t<div className=\"mt-4 flex items-center gap-2\">\n\t\t\t\t\t{!!onManage && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\t\t\tonClick={onManage}\n\t\t\t\t\t\t\tclassName=\"flex-1\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{strings.manage}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!onUpgrade && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tonClick={onUpgrade}\n\t\t\t\t\t\t\tclassName=\"flex-1\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{strings.upgrade}\n\t\t\t\t\t\t\t<ChevronRight className=\"ml-1 size-3.5\" />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</SmartCard>\n\t);\n}\n\nSubscriptionSummaryCard.displayName = 'SubscriptionSummaryCard';\n","export type RefundStage = 'requested' | 'approved' | 'processing' | 'completed';\n\nexport interface RefundStatusStrings {\n\ttitle: string;\n\trequested: string;\n\tapproved: string;\n\tprocessing: string;\n\tcompleted: string;\n\tamount: string;\n\treason: string;\n\teta: string;\n\tmethod: string;\n}\n\nexport const defaultRefundStatusStrings: RefundStatusStrings = {\n\ttitle: 'Refund Status',\n\trequested: 'Requested',\n\tapproved: 'Approved',\n\tprocessing: 'Processing',\n\tcompleted: 'Completed',\n\tamount: 'Refund amount',\n\treason: 'Reason',\n\teta: 'Expected by',\n\tmethod: 'Refund to',\n};\n\nexport interface RefundStatusCardProps {\n\tstage: RefundStage;\n\tamount: string;\n\treason?: string;\n\tmethod?: string;\n\teta?: string;\n\trequestedAt?: string;\n\tclassName?: string;\n\tstrings?: Partial<RefundStatusStrings>;\n}\n","/**\n * RefundStatusCard — refund-flow tracker. Shows the four canonical refund\n * stages (Requested → Approved → Processing → Completed) as a horizontal\n * progress bar, with refund amount as the lead figure and an optional reason\n * / method / ETA detail block. Strings overridable for i18n.\n */\nimport { Check, RotateCcw } from 'lucide-react';\nimport { SmartCard } from '@/components/base/cards';\nimport { Text } from '@/components/typography';\nimport Heading from '@/components/typography/heading';\nimport { InlineStat } from '@/components/base/display';\nimport { Separator } from '@/components/base/display/separator';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport {\n\tdefaultRefundStatusStrings,\n\ttype RefundStage,\n\ttype RefundStatusCardProps,\n} from './types';\n\nconst STAGE_ORDER: RefundStage[] = ['requested', 'approved', 'processing', 'completed'];\n\nexport function RefundStatusCard({\n\tstage,\n\tamount,\n\treason,\n\tmethod,\n\teta,\n\trequestedAt,\n\tclassName,\n\tstrings: stringsProp,\n}: RefundStatusCardProps) {\n\tconst strings = useStrings(defaultRefundStatusStrings, stringsProp);\n\tconst currentIdx = STAGE_ORDER.indexOf(stage);\n\n\treturn (\n\t\t<SmartCard\n\t\t\ticon={<RotateCcw className=\"size-4\" />}\n\t\t\ttitle={strings.title}\n\t\t\tclassName={cn('refund-status--component w-full', className)}\n\t\t>\n\t\t\t<div className=\"rounded-lg bg-muted/40 px-4 py-3\">\n\t\t\t\t<Text size=\"xxs\" type=\"secondary\" weight=\"medium\" className=\"uppercase tracking-wider\">\n\t\t\t\t\t{strings.amount}\n\t\t\t\t</Text>\n\t\t\t\t<Heading tag=\"h3\" className=\"text-3xl tabular-nums tracking-tight\">\n\t\t\t\t\t{amount}\n\t\t\t\t</Heading>\n\t\t\t\t{!!requestedAt && (\n\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"mt-0.5\">\n\t\t\t\t\t\t{strings.requested}: {requestedAt}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t{/* Stages */}\n\t\t\t<div className=\"mt-4 flex items-center justify-between\">\n\t\t\t\t{STAGE_ORDER.map((s, i) => {\n\t\t\t\t\tconst done = i <= currentIdx;\n\t\t\t\t\tconst current = i === currentIdx;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div key={s} className=\"flex flex-1 flex-col items-center gap-1.5\">\n\t\t\t\t\t\t\t<div className=\"flex w-full items-center\">\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t'relative flex size-5 shrink-0 items-center justify-center rounded-full',\n\t\t\t\t\t\t\t\t\t\tdone\n\t\t\t\t\t\t\t\t\t\t\t? 'bg-success text-success-foreground'\n\t\t\t\t\t\t\t\t\t\t\t: 'border border-border bg-card text-muted-foreground',\n\t\t\t\t\t\t\t\t\t\tcurrent && 'ring-2 ring-success/30 ring-offset-2 ring-offset-background',\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{done ? (\n\t\t\t\t\t\t\t\t\t\t<Check className=\"size-3\" />\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xxs\" weight=\"medium\" className=\"tabular-nums\">{i + 1}</Text>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{i < STAGE_ORDER.length - 1 && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t'h-0.5 flex-1',\n\t\t\t\t\t\t\t\t\t\t\ti < currentIdx ? 'bg-success' : 'bg-border',\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tsize=\"xxs\"\n\t\t\t\t\t\t\t\tweight={current ? 'semibold' : 'medium'}\n\t\t\t\t\t\t\t\ttype={done ? 'main' : 'secondary'}\n\t\t\t\t\t\t\t\tclassName=\"text-center leading-tight\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{strings[s]}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\n\t\t\t{(reason || method || eta) && (\n\t\t\t\t<>\n\t\t\t\t\t<Separator className=\"my-4\" />\n\t\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t\t{!!reason && (\n\t\t\t\t\t\t\t<InlineStat label={strings.reason} value={reason} className=\"items-start\" valueClassName=\"text-sm font-medium text-right\" />\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{!!method && (\n\t\t\t\t\t\t\t<InlineStat label={strings.method} value={method} valueClassName=\"text-sm font-medium\" />\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{!!eta && (\n\t\t\t\t\t\t\t<InlineStat label={strings.eta} value={eta} mono valueClassName=\"text-sm font-medium\" />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</>\n\t\t\t)}\n\t\t</SmartCard>\n\t);\n}\n\nRefundStatusCard.displayName = 'RefundStatusCard';\n","export type AddressKind = 'shipping' | 'billing' | 'pickup';\n\nexport interface AddressCardStrings {\n\tdefaultBadge: string;\n\tedit: string;\n\tremove: string;\n\tmakeDefault: string;\n\tshipping: string;\n\tbilling: string;\n\tpickup: string;\n}\n\nexport const defaultAddressCardStrings: AddressCardStrings = {\n\tdefaultBadge: 'Default',\n\tedit: 'Edit',\n\tremove: 'Remove',\n\tmakeDefault: 'Make default',\n\tshipping: 'Shipping address',\n\tbilling: 'Billing address',\n\tpickup: 'Pickup address',\n};\n\nexport interface AddressCardProps {\n\tkind?: AddressKind;\n\tname: string;\n\tline1: string;\n\tline2?: string;\n\tcity: string;\n\tregion?: string;\n\tpostalCode?: string;\n\tcountry: string;\n\tphone?: string;\n\tisDefault?: boolean;\n\tonEdit?: () => void;\n\tonRemove?: () => void;\n\tonMakeDefault?: () => void;\n\tclassName?: string;\n\tstrings?: Partial<AddressCardStrings>;\n}\n","/**\n * AddressCard — saved postal address surface. Title varies by `kind`\n * (shipping / billing / pickup); shows recipient name, address lines, phone,\n * and a \"Default\" badge when applicable.\n *\n * Edit / remove / make-default actions ride through SmartCard's actions menu\n * (the canonical card-actions affordance) instead of inline footer buttons —\n * keeps the surface consistent with every other card in the library.\n */\nimport { Edit2, MapPin, Star, Trash2 } from 'lucide-react';\nimport { Badge } from '@/components/base/badge';\nimport { SmartCard, type SmartCardAction } from '@/components/base/cards';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\n\nimport {\n\tdefaultAddressCardStrings,\n\ttype AddressCardProps,\n\ttype AddressKind,\n} from './types';\n\nimport { cn } from '@/lib/utils';\nexport function AddressCard({\n\tkind = 'shipping',\n\tname,\n\tline1,\n\tline2,\n\tcity,\n\tregion,\n\tpostalCode,\n\tcountry,\n\tphone,\n\tisDefault = false,\n\tonEdit,\n\tonRemove,\n\tonMakeDefault,\n\tclassName,\n\tstrings: stringsProp,\n}: AddressCardProps) {\n\tconst strings = useStrings(defaultAddressCardStrings, stringsProp);\n\tconst titleByKind: Record<AddressKind, string> = {\n\t\tshipping: strings.shipping,\n\t\tbilling: strings.billing,\n\t\tpickup: strings.pickup,\n\t};\n\n\tconst cityLine = [city, region, postalCode].filter(Boolean).join(', ');\n\n\tconst actions: SmartCardAction[] = [];\n\tif (onEdit) {\n\t\tactions.push({\n\t\t\tid: 'edit',\n\t\t\tlabel: strings.edit,\n\t\t\ticon: <Edit2 className=\"size-3.5\" />,\n\t\t\tonClick: onEdit,\n\t\t});\n\t}\n\tif (onMakeDefault && !isDefault) {\n\t\tactions.push({\n\t\t\tid: 'make-default',\n\t\t\tlabel: strings.makeDefault,\n\t\t\ticon: <Star className=\"size-3.5\" />,\n\t\t\tonClick: onMakeDefault,\n\t\t});\n\t}\n\tif (onRemove) {\n\t\tactions.push({\n\t\t\tid: 'remove',\n\t\t\tlabel: strings.remove,\n\t\t\ticon: <Trash2 className=\"size-3.5\" />,\n\t\t\tonClick: onRemove,\n\t\t});\n\t}\n\n\treturn (\n\t\t<SmartCard\n\t\t\ticon={<MapPin className=\"size-4\" />}\n\t\t\ttitle={titleByKind[kind]}\n\t\t\ttitleSuffix={\n\t\t\t\tisDefault ? <Badge variant=\"primary\">{strings.defaultBadge}</Badge> : null\n\t\t\t}\n\t\t\tactions={actions.length > 0 ? actions : undefined}\n\t\t\tclassName={cn('address-card--component w-full', className)}\n\t\t>\n\t\t\t<div className=\"space-y-0.5\">\n\t\t\t\t<Text weight=\"semibold\">{name}</Text>\n\t\t\t\t<Text>{line1}</Text>\n\t\t\t\t{!!line2 && <Text>{line2}</Text>}\n\t\t\t\t{!!cityLine && <Text>{cityLine}</Text>}\n\t\t\t\t<Text type=\"secondary\">{country}</Text>\n\t\t\t\t{!!phone && (\n\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"mt-1.5 tabular-nums\">\n\t\t\t\t\t\t{phone}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</SmartCard>\n\t);\n}\n\nAddressCard.displayName = 'AddressCard';\n","export interface VoucherEntryStrings {\n\ttitle: string;\n\tinputLabel: string;\n\tplaceholder: string;\n\thelperText: string;\n\tcheck: string;\n\tremove: string;\n\tbalance: string;\n\tapplied: string;\n\tnotFound: string;\n}\n\nexport const defaultVoucherEntryStrings: VoucherEntryStrings = {\n\ttitle: 'Redeem a gift card',\n\tinputLabel: 'Gift card code',\n\tplaceholder: 'Enter gift card code',\n\thelperText: 'Apply one gift card or voucher to this order.',\n\tcheck: 'Check balance',\n\tremove: 'Remove',\n\tbalance: 'Available balance',\n\tapplied: 'Applied',\n\tnotFound: 'That gift card code is not valid.',\n};\n\nexport interface VoucherEntryCardProps {\n\tappliedCode?: string;\n\tbalance?: string;\n\terror?: string;\n\tloading?: boolean;\n\tonCheck?: (code: string) => void;\n\tonRemove?: () => void;\n\tclassName?: string;\n\tstrings?: Partial<VoucherEntryStrings>;\n}\n","/**\n * VoucherEntryCard — gift-card / voucher redemption entry.\n *\n * Empty state — leading gift icon input + check button, helper line surfacing\n * errors. Applied state — success-tinted row with check medallion, code,\n * balance amount, and a destructive remove icon.\n */\nimport { type FormEvent, useId, useState } from 'react';\nimport { Check, Gift, X } from 'lucide-react';\nimport { Badge } from '@/components/base/badge';\nimport { Button } from '@/components/base/buttons';\nimport { SmartCard } from '@/components/base/cards';\nimport { IconBadge } from '@/components/base/display';\nimport { FormField } from '@/components/base/forms';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemDescription,\n\tItemFooter,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { Input } from '@/components/base/forms/fields';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\n\nimport { defaultVoucherEntryStrings, type VoucherEntryCardProps } from './types';\n\nimport { cn } from '@/lib/utils';\nconst normalizeCode = (value: string): string => value.toUpperCase();\n\nexport function VoucherEntryCard({\n\tappliedCode,\n\tbalance,\n\terror,\n\tloading,\n\tonCheck,\n\tonRemove,\n\tclassName,\n\tstrings: stringsProp,\n}: VoucherEntryCardProps) {\n\tconst strings = useStrings(defaultVoucherEntryStrings, stringsProp);\n\tconst inputId = useId();\n\tconst [code, setCode] = useState('');\n\tconst trimmedCode = code.trim();\n\tconst handleSubmit = (event: FormEvent<HTMLFormElement>) => {\n\t\tevent.preventDefault();\n\t\tif (!trimmedCode) return;\n\t\tonCheck?.(trimmedCode);\n\t};\n\n\tif (appliedCode) {\n\t\treturn (\n\t\t\t<SmartCard\n\t\t\t\ticon={<Gift className=\"size-4\" />}\n\t\t\t\ttitle={strings.title}\n\t\t\t\tclassName={cn('voucher-entry--component w-full', className)}\n\t\t\t>\n\t\t\t\t<Item size=\"xs\" variant=\"outline\" className=\"items-center gap-x-2.5 gap-y-1.5 border-success/30 bg-success/5 px-2.5 py-2\">\n\t\t\t\t\t<ItemMedia>\n\t\t\t\t\t\t<IconBadge icon={Check} tone=\"success\" size=\"sm\" className=\"ring-1 ring-success/20\" />\n\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t<ItemContent className=\"min-w-0\">\n\t\t\t\t\t\t<div className=\"flex flex-wrap items-center gap-1.5\">\n\t\t\t\t\t\t\t<ItemTitle className=\"max-w-full font-mono tracking-wider\">{appliedCode}</ItemTitle>\n\t\t\t\t\t\t\t<Badge variant=\"success\" size=\"xs\">{strings.applied}</Badge>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<ItemDescription clamp={1}>{strings.balance}</ItemDescription>\n\t\t\t\t\t</ItemContent>\n\t\t\t\t\t<ItemFooter className=\"border-t border-success/15 pt-1\">\n\t\t\t\t\t\t<span />\n\t\t\t\t\t\t<ItemActions className=\"shrink-0 gap-1.5\">\n\t\t\t\t\t\t\t{!!balance && (\n\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" weight=\"semibold\" type=\"success\" className=\"tabular-nums shrink-0\">\n\t\t\t\t\t\t\t\t\t{balance}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{!!onRemove && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tvariant=\"error\"\n\t\t\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\t\t\tsize=\"icon-xs\"\n\t\t\t\t\t\t\t\t\tonClick={onRemove}\n\t\t\t\t\t\t\t\t\taria-label={strings.remove}\n\t\t\t\t\t\t\t\t\tclassName=\"size-7 shrink-0 text-muted-foreground hover:text-destructive\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<X className=\"size-3.5\" />\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</ItemActions>\n\t\t\t\t\t</ItemFooter>\n\t\t\t\t</Item>\n\t\t\t</SmartCard>\n\t\t);\n\t}\n\n\treturn (\n\t\t<SmartCard\n\t\t\ticon={<Gift className=\"size-4\" />}\n\t\t\ttitle={strings.title}\n\t\t\tclassName={cn('voucher-entry--component w-full', className)}\n\t\t>\n\t\t\t<form onSubmit={handleSubmit}>\n\t\t\t\t<FormField\n\t\t\t\t\tlabel={strings.inputLabel}\n\t\t\t\t\thtmlFor={inputId}\n\t\t\t\t\terror={error}\n\t\t\t\t\thint={error ? undefined : strings.helperText}\n\t\t\t\t>\n\t\t\t\t\t<div className=\"flex flex-wrap gap-2\">\n\t\t\t\t\t\t<div className=\"min-w-[12rem] flex-1\">\n\t\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\t\tid={inputId}\n\t\t\t\t\t\t\t\tvalue={code}\n\t\t\t\t\t\t\t\tonChange={(e) => setCode(normalizeCode((e.target as HTMLInputElement).value))}\n\t\t\t\t\t\t\t\tplaceholder={strings.placeholder}\n\t\t\t\t\t\t\t\tstartIcon={Gift}\n\t\t\t\t\t\t\t\tautoCapitalize=\"characters\"\n\t\t\t\t\t\t\t\tspellCheck={false}\n\t\t\t\t\t\t\t\tclassName=\"font-mono\"\n\t\t\t\t\t\t\t\tinvalid={Boolean(error)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\tloading={loading}\n\t\t\t\t\t\t\tdisabled={!trimmedCode}\n\t\t\t\t\t\t\tclassName=\"shrink-0\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{strings.check}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\t\t\t\t</FormField>\n\t\t\t</form>\n\t\t</SmartCard>\n\t);\n}\n\nVoucherEntryCard.displayName = 'VoucherEntryCard';\n","export interface CartLineItem {\n\tid: string;\n\tname?: string;\n\tproductTitle?: string;\n\ttitle?: string;\n\tvariantTitle?: string;\n\tqty: number;\n\tprice: string;\n\timageUrl?: string;\n\timageSrc?: string;\n\tsrc?: string;\n\turl?: string;\n\timageAlt?: string;\n}\n\nexport interface CartSummaryStrings {\n\ttitle: string;\n\tsubtotal: string;\n\ttax: string;\n\tshipping: string;\n\tdiscount: string;\n\ttotal: string;\n\tcheckout: string;\n}\n\nexport const defaultCartSummaryStrings: CartSummaryStrings = {\n\ttitle: 'Cart',\n\tsubtotal: 'Subtotal',\n\ttax: 'Tax',\n\tshipping: 'Shipping',\n\tdiscount: 'Discount',\n\ttotal: 'Total',\n\tcheckout: 'Checkout',\n};\n\nexport interface CartSummaryCardProps {\n\titems: CartLineItem[];\n\tsubtotal?: string;\n\ttax?: string;\n\tshipping?: string;\n\tdiscount?: string;\n\ttotal: string;\n\tonCheckout?: () => void;\n\tclassName?: string;\n\tstrings?: Partial<CartSummaryStrings>;\n}\n","/**\n * CartSummaryCard — line-item list with optional subtotal / tax / shipping /\n * discount breakdown and a primary \"Checkout\" action. Items render through\n * `<ItemGroup>` for density consistency; the breakdown rows sit in a tight\n * summary block above the total. The discount value is shown as a signed\n * delta in success colour.\n */\nimport { ShoppingBag } from 'lucide-react';\nimport { SmartCard } from '@/components/base/cards';\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography';\nimport { InlineStat } from '@/components/base/display';\nimport { Separator } from '@/components/base/display/separator';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemDescription,\n\tItemGroup,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { useStrings } from '@/lib/strings';\n\nimport { defaultCartSummaryStrings, type CartLineItem, type CartSummaryCardProps } from './types';\n\nimport { cn } from '@/lib/utils';\nconst stripLeadingMinus = (value: string): string => value.replace(/^[\\s−-]+/, '');\n\nconst resolveCartLineTitle = (item: CartLineItem): string => {\n\treturn [item.productTitle, item.title, item.name].find((value) => !!value?.trim()) ?? item.id;\n};\n\nconst resolveCartLineImageSrc = (item: CartLineItem): string | undefined => {\n\treturn [item.imageUrl, item.imageSrc, item.src, item.url].find((value) => !!value?.trim());\n};\n\nconst getCartLinePlaceholderLabel = (title: string): string => {\n\tconst initials = title\n\t\t.trim()\n\t\t.split(/\\s+/)\n\t\t.map((part) => part[0])\n\t\t.join('')\n\t\t.slice(0, 2)\n\t\t.toUpperCase();\n\n\treturn initials || title.trim().slice(0, 2).toUpperCase();\n};\n\nfunction CartLineImagePlaceholder({ title }: { title: string }) {\n\treturn (\n\t\t<div\n\t\t\taria-hidden=\"true\"\n\t\t\tclassName=\"flex size-full items-center justify-center rounded-[inherit] bg-muted text-[length:var(--text-xxs)] font-semibold text-muted-foreground ring-1 ring-border/60\"\n\t\t>\n\t\t\t{getCartLinePlaceholderLabel(title)}\n\t\t</div>\n\t);\n}\n\nexport function CartSummaryCard({\n\titems,\n\tsubtotal,\n\ttax,\n\tshipping,\n\tdiscount,\n\ttotal,\n\tonCheckout,\n\tclassName,\n\tstrings: stringsProp,\n}: CartSummaryCardProps) {\n\tconst strings = useStrings(defaultCartSummaryStrings, stringsProp);\n\tconst hasBreakdown = !!(subtotal || tax || shipping || discount);\n\n\treturn (\n\t\t<SmartCard icon={<ShoppingBag className=\"size-4\" />} title={strings.title} className={cn('cart-summary--component w-full', className)}>\n\t\t\t<ItemGroup>\n\t\t\t\t{items.map((it) => {\n\t\t\t\t\tconst title = resolveCartLineTitle(it);\n\t\t\t\t\tconst imageSrc = resolveCartLineImageSrc(it);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Item key={it.id} className=\"cart-summary--item px-0\">\n\t\t\t\t\t\t\t<ItemMedia variant=\"image\" className=\"cart-summary--item-media\">\n\t\t\t\t\t\t\t\t{imageSrc ? (\n\t\t\t\t\t\t\t\t\t<img src={imageSrc} alt={it.imageAlt ?? title} />\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<CartLineImagePlaceholder title={title} />\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t\t\t<ItemContent className=\"cart-summary--item-content\">\n\t\t\t\t\t\t\t\t<ItemTitle>{title}</ItemTitle>\n\t\t\t\t\t\t\t\t{!!it.variantTitle && (\n\t\t\t\t\t\t\t\t\t<ItemDescription clamp={1}>{it.variantTitle}</ItemDescription>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t\t<ItemActions className=\"cart-summary--item-actions\">\n\t\t\t\t\t\t\t\t<div className=\"flex shrink-0 flex-col items-end gap-0.5\">\n\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" className=\"tabular-nums\">x{it.qty}</Text>\n\t\t\t\t\t\t\t\t\t<Text tag=\"span\" weight=\"semibold\" className=\"tabular-nums\">{it.price}</Text>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</ItemActions>\n\t\t\t\t\t\t</Item>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</ItemGroup>\n\n\t\t\t{!!hasBreakdown && (\n\t\t\t\t<div className=\"mt-3 space-y-1.5 rounded-lg bg-muted/30 px-3 py-2.5\">\n\t\t\t\t\t{!!subtotal && (\n\t\t\t\t\t\t<InlineStat label={strings.subtotal} value={subtotal} mono valueClassName=\"text-xs font-medium\" labelClassName=\"text-xs\" />\n\t\t\t\t\t)}\n\t\t\t\t\t{!!tax && (\n\t\t\t\t\t\t<InlineStat label={strings.tax} value={tax} mono valueClassName=\"text-xs font-medium\" labelClassName=\"text-xs\" />\n\t\t\t\t\t)}\n\t\t\t\t\t{!!shipping && (\n\t\t\t\t\t\t<InlineStat label={strings.shipping} value={shipping} mono valueClassName=\"text-xs font-medium\" labelClassName=\"text-xs\" />\n\t\t\t\t\t)}\n\t\t\t\t\t{!!discount && (\n\t\t\t\t\t\t<InlineStat\n\t\t\t\t\t\t\tlabel={strings.discount}\n\t\t\t\t\t\t\tvalue={`−${stripLeadingMinus(discount)}`}\n\t\t\t\t\t\t\tmono\n\t\t\t\t\t\t\tlabelClassName=\"text-xs\"\n\t\t\t\t\t\t\tvalueClassName=\"text-xs font-semibold text-success\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t<Separator className=\"my-3\" />\n\n\t\t\t<InlineStat\n\t\t\t\tlabel={strings.total}\n\t\t\t\tvalue={total}\n\t\t\t\tmono\n\t\t\t\tlabelClassName=\"text-sm font-semibold\"\n\t\t\t\tvalueClassName=\"text-lg font-bold\"\n\t\t\t/>\n\n\t\t\t{!!onCheckout && (\n\t\t\t\t<Button onClick={onCheckout} fullWidth className=\"mt-4\">{strings.checkout}</Button>\n\t\t\t)}\n\t\t</SmartCard>\n\t);\n}\n\nCartSummaryCard.displayName = 'CartSummaryCard';\n","export interface CouponInputStrings {\n\ttitle: string;\n\tplaceholder: string;\n\tapply: string;\n\tremove: string;\n\tapplied: string;\n\tinvalid: string;\n}\n\nexport const defaultCouponInputStrings: CouponInputStrings = {\n\ttitle: 'Have a code?',\n\tplaceholder: 'Enter coupon code',\n\tapply: 'Apply',\n\tremove: 'Remove',\n\tapplied: 'Applied',\n\tinvalid: 'That code is not valid',\n};\n\nexport interface CouponInputCardProps {\n\tappliedCode?: string;\n\tappliedDiscount?: string;\n\terror?: string;\n\tonApply?: (code: string) => void;\n\tonRemove?: () => void;\n\tloading?: boolean;\n\tclassName?: string;\n\tstrings?: Partial<CouponInputStrings>;\n}\n","/**\n * CouponInputCard — promo / coupon code entry with an applied state and\n * inline error messaging.\n *\n * Empty state — leading-icon input + apply button, helper line for\n * placeholders or errors. Applied state — success-tinted row with a check\n * medallion, monospaced code, discount delta, and a destructive remove icon.\n */\nimport { useState } from 'react';\nimport { Check, Sparkles, TicketPercent, X } from 'lucide-react';\nimport { SmartCard } from '@/components/base/cards';\nimport { Button } from '@/components/base/buttons';\nimport { IconBadge } from '@/components/base/display';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemDescription,\n\tItemFooter,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { Text } from '@/components/typography';\nimport { Input } from '@/components/base/forms/fields';\nimport { useStrings } from '@/lib/strings';\n\nimport { defaultCouponInputStrings, type CouponInputCardProps } from './types';\n\nimport { cn } from '@/lib/utils';\nconst stripLeadingMinus = (value: string): string => value.replace(/^[\\s−-]+/, '');\nconst normalizeCode = (value: string): string => value.toUpperCase();\n\nexport function CouponInputCard({\n\tappliedCode,\n\tappliedDiscount,\n\terror,\n\tonApply,\n\tonRemove,\n\tloading,\n\tclassName,\n\tstrings: stringsProp,\n}: CouponInputCardProps) {\n\tconst strings = useStrings(defaultCouponInputStrings, stringsProp);\n\tconst [code, setCode] = useState('');\n\tconst trimmedCode = code.trim();\n\n\tif (appliedCode) {\n\t\treturn (\n\t\t\t<SmartCard icon={<TicketPercent className=\"size-4\" />} title={strings.title} className={cn('coupon-input--component w-full', className)}>\n\t\t\t\t<Item size=\"xs\" variant=\"muted\" className=\"items-center gap-x-2.5 gap-y-1.5 border border-success/30 bg-success/8 px-2.5 py-2\">\n\t\t\t\t\t<ItemMedia>\n\t\t\t\t\t\t<IconBadge icon={Check} tone=\"success\" size=\"sm\" className=\"ring-1 ring-success/20\" />\n\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t<ItemContent className=\"min-w-0\">\n\t\t\t\t\t\t<ItemTitle className=\"max-w-full font-mono tracking-wider\">{appliedCode}</ItemTitle>\n\t\t\t\t\t\t<ItemDescription className=\"uppercase tracking-wide\" clamp={1}>\n\t\t\t\t\t\t\t{strings.applied}\n\t\t\t\t\t\t</ItemDescription>\n\t\t\t\t\t</ItemContent>\n\t\t\t\t\t<ItemFooter className=\"border-t border-success/15 pt-1\">\n\t\t\t\t\t\t<span />\n\t\t\t\t\t\t<ItemActions className=\"shrink-0 gap-1.5\">\n\t\t\t\t\t\t\t{!!appliedDiscount && (\n\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\t\t\t\ttype=\"success\"\n\t\t\t\t\t\t\t\t\tclassName=\"tabular-nums shrink-0\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t−{stripLeadingMinus(appliedDiscount)}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{!!onRemove && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tvariant=\"error\"\n\t\t\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\t\t\tsize=\"icon-xs\"\n\t\t\t\t\t\t\t\t\tonClick={onRemove}\n\t\t\t\t\t\t\t\t\taria-label={strings.remove}\n\t\t\t\t\t\t\t\t\tclassName=\"size-7 shrink-0 text-muted-foreground hover:text-destructive\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<X className=\"size-3.5\" />\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</ItemActions>\n\t\t\t\t\t</ItemFooter>\n\t\t\t\t</Item>\n\t\t\t</SmartCard>\n\t\t);\n\t}\n\n\treturn (\n\t\t<SmartCard icon={<TicketPercent className=\"size-4\" />} title={strings.title} className={cn('coupon-input--component w-full', className)}>\n\t\t\t<div className=\"flex flex-col gap-2\">\n\t\t\t\t<div className=\"flex flex-wrap gap-2\">\n\t\t\t\t\t<div className=\"min-w-[11rem] flex-1\">\n\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\tvalue={code}\n\t\t\t\t\t\t\tonChange={(e) => setCode(normalizeCode((e.target as HTMLInputElement).value))}\n\t\t\t\t\t\t\tplaceholder={strings.placeholder}\n\t\t\t\t\t\t\tstartIcon={Sparkles}\n\t\t\t\t\t\t\tautoCapitalize=\"characters\"\n\t\t\t\t\t\t\tspellCheck={false}\n\t\t\t\t\t\t\tclassName=\"font-mono\"\n\t\t\t\t\t\t\tinvalid={Boolean(error)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"default\"\n\t\t\t\t\t\tonClick={() => onApply?.(trimmedCode)}\n\t\t\t\t\t\tloading={loading}\n\t\t\t\t\t\tdisabled={!trimmedCode}\n\t\t\t\t\t\tclassName=\"shrink-0\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{strings.apply}\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t\t{!!error && (\n\t\t\t\t\t<Text size=\"xs\" type=\"error\">{error || strings.invalid}</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</SmartCard>\n\t);\n}\n\nCouponInputCard.displayName = 'CouponInputCard';\n","import type { ComposedBadgeVariant } from '@/components/base/badge/badge';\n\nexport type OrderStatusKind = 'pending' | 'paid' | 'fulfilled' | 'shipped' | 'delivered' | 'cancelled';\n\nexport interface OrderStatusEvent {\n\tlabel: string;\n\ttimestamp?: string;\n\tcomplete: boolean;\n}\n\nexport interface OrderStatusStrings {\n\ttitle: string;\n\tstatusLabel: string;\n\teta: string;\n\tlatestEvent: string;\n\tcurrentStep: string;\n}\n\nexport const defaultOrderStatusStrings: OrderStatusStrings = {\n\ttitle: 'Order status',\n\tstatusLabel: 'Current status',\n\teta: 'ETA',\n\tlatestEvent: 'Latest event',\n\tcurrentStep: 'Current step',\n};\n\nexport interface OrderStatusCardProps {\n\torderNumber: string;\n\tstatus: OrderStatusKind;\n\tstatusVariant?: ComposedBadgeVariant;\n\tevents: OrderStatusEvent[];\n\tcurrentEta?: string;\n\tclassName?: string;\n\tstrings?: Partial<OrderStatusStrings>;\n}\n","/**\n * OrderStatusCard — order number + status badge + readable event timeline.\n * Ideal for dashboards / receipt summaries. Strings overridable for i18n.\n */\nimport { CalendarClock, Check, Circle, Package } from 'lucide-react';\nimport { SmartCard } from '@/components/base/cards';\nimport { Text } from '@/components/typography';\nimport { Badge } from '@/components/base/badge';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport {\n\tdefaultOrderStatusStrings,\n\ttype OrderStatusCardProps,\n\ttype OrderStatusKind,\n} from './types';\n\nconst VARIANT_BY_STATUS: Record<OrderStatusKind, 'primary' | 'success' | 'warning' | 'error' | 'info' | 'secondary'> = {\n\tpending: 'warning',\n\tpaid: 'info',\n\tfulfilled: 'info',\n\tshipped: 'primary',\n\tdelivered: 'success',\n\tcancelled: 'error',\n};\n\nexport function OrderStatusCard({\n\torderNumber,\n\tstatus,\n\tstatusVariant,\n\tevents,\n\tcurrentEta,\n\tclassName,\n\tstrings: stringsProp,\n}: OrderStatusCardProps) {\n\tconst strings = useStrings(defaultOrderStatusStrings, stringsProp);\n\tconst variant = statusVariant ?? VARIANT_BY_STATUS[status];\n\tconst lastCompleteIdx = events.reduce((acc, e, i) => (e.complete ? i : acc), -1);\n\tconst latestEvent = events[lastCompleteIdx] ?? events[0];\n\tconst nextEvent = events.find((event) => !event.complete);\n\n\treturn (\n\t\t<SmartCard\n\t\t\ticon={<Package className=\"size-4\" />}\n\t\t\ttitle={strings.title}\n\t\t\ttitleSuffix={<Badge variant={variant} className=\"capitalize\">{status}</Badge>}\n\t\t\tdescription={`#${orderNumber}`}\n\t\t\tclassName={cn('order-status--component w-full', className)}\n\t\t>\n\t\t\t<div className=\"rounded-lg border border-border bg-muted/20 p-3\">\n\t\t\t\t<div className=\"grid gap-3 sm:grid-cols-3\">\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<Text size=\"xxs\" type=\"secondary\" className=\"uppercase tracking-wide\">\n\t\t\t\t\t\t\t{strings.statusLabel}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t<Text weight=\"semibold\" className=\"mt-0.5 capitalize\">\n\t\t\t\t\t\t\t{status}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</div>\n\t\t\t\t\t{!!latestEvent && (\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<Text size=\"xxs\" type=\"secondary\" className=\"uppercase tracking-wide\">\n\t\t\t\t\t\t\t\t{latestEvent.complete ? strings.latestEvent : strings.currentStep}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Text weight=\"semibold\" className=\"mt-0.5\">\n\t\t\t\t\t\t\t\t{latestEvent.label}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!currentEta && (\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<Text size=\"xxs\" type=\"secondary\" className=\"uppercase tracking-wide\">\n\t\t\t\t\t\t\t\t{strings.eta}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Text weight=\"semibold\" className=\"mt-0.5 tabular-nums\">\n\t\t\t\t\t\t\t\t{currentEta}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{events.length > 0 && (\n\t\t\t\t<ol className=\"mt-4\">\n\t\t\t\t\t{events.map((event, index) => {\n\t\t\t\t\t\tconst isLast = index === events.length - 1;\n\t\t\t\t\t\tconst isCurrent = nextEvent ? event === nextEvent : index === lastCompleteIdx;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<li key={`${event.label}-${index}`} className=\"relative flex gap-3\">\n\t\t\t\t\t\t\t\t<div className=\"flex flex-col items-center\">\n\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t'flex size-6 shrink-0 items-center justify-center rounded-full border',\n\t\t\t\t\t\t\t\t\t\t\tevent.complete\n\t\t\t\t\t\t\t\t\t\t\t\t? 'border-success bg-success text-success-foreground'\n\t\t\t\t\t\t\t\t\t\t\t\t: 'border-border bg-card text-muted-foreground',\n\t\t\t\t\t\t\t\t\t\t\tisCurrent && !event.complete && 'border-primary text-primary ring-4 ring-primary/10',\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{event.complete ? (\n\t\t\t\t\t\t\t\t\t\t\t<Check className=\"size-3.5\" strokeWidth={2.5} />\n\t\t\t\t\t\t\t\t\t\t) : isCurrent ? (\n\t\t\t\t\t\t\t\t\t\t\t<CalendarClock className=\"size-3.5\" />\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t<Circle className=\"size-3\" />\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t{!isLast && (\n\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t'min-h-6 w-px flex-1',\n\t\t\t\t\t\t\t\t\t\t\t\tindex < lastCompleteIdx ? 'bg-success' : 'bg-border',\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div className={cn('min-w-0 flex-1 pb-4', isLast && 'pb-0')}>\n\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\tweight={event.complete || isCurrent ? 'semibold' : 'medium'}\n\t\t\t\t\t\t\t\t\t\tclassName={cn(!event.complete && !isCurrent && 'text-muted-foreground')}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{event.label}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t{!!event.timestamp && (\n\t\t\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"mt-0.5 tabular-nums\">\n\t\t\t\t\t\t\t\t\t\t\t{event.timestamp}\n\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</ol>\n\t\t\t)}\n\t\t</SmartCard>\n\t);\n}\n\nOrderStatusCard.displayName = 'OrderStatusCard';\n","export type PaymentBrand = 'visa' | 'mastercard' | 'amex' | 'paypal' | 'applepay' | 'googlepay' | 'unknown';\n\nexport interface PaymentMethodStrings {\n\ttitle: string;\n\tdefault: string;\n\tcardHolder: string;\n\texpires: string;\n\tchange: string;\n}\n\nexport const defaultPaymentMethodStrings: PaymentMethodStrings = {\n\ttitle: 'Payment method',\n\tdefault: 'Default',\n\tcardHolder: 'Card holder',\n\texpires: 'Expires',\n\tchange: 'Change',\n};\n\nexport interface PaymentMethodCardProps {\n\tbrand: PaymentBrand;\n\tlast4: string;\n\texpiry?: string; // MM/YY\n\tholderName?: string;\n\tisDefault?: boolean;\n\tonChange?: () => void;\n\tclassName?: string;\n\tstrings?: Partial<PaymentMethodStrings>;\n}\n","/**\n * PaymentMethodCard — saved-card surface. The hero block is rendered as a\n * mini credit-card mock with real card proportions, brand chip top-right, masked\n * PAN center, and holder + expiry on the bottom row. Trailing actions sit\n * in a footer below the mock so the hierarchy is \"card → details → CTA\".\n */\nimport { CreditCard } from 'lucide-react';\nimport { SmartCard } from '@/components/base/cards';\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography';\nimport { Badge } from '@/components/base/badge';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport { defaultPaymentMethodStrings, type PaymentBrand, type PaymentMethodCardProps } from './types';\n\nconst BRAND_LABEL: Record<PaymentBrand, string> = {\n\tvisa: 'VISA',\n\tmastercard: 'MasterCard',\n\tamex: 'AMEX',\n\tpaypal: 'PayPal',\n\tapplepay: 'Apple Pay',\n\tgooglepay: 'Google Pay',\n\tunknown: 'Card',\n};\n\nconst BRAND_GRADIENT: Record<PaymentBrand, string> = {\n\tvisa: 'from-info via-primary to-info',\n\tmastercard: 'from-warning via-destructive to-destructive',\n\tamex: 'from-info via-primary to-info',\n\tpaypal: 'from-info via-primary to-info',\n\tapplepay: 'from-foreground via-muted-foreground to-foreground',\n\tgooglepay: 'from-success via-primary to-success',\n\tunknown: 'from-foreground via-muted-foreground to-foreground',\n};\n\nexport function PaymentMethodCard({\n\tbrand,\n\tlast4,\n\texpiry,\n\tholderName,\n\tisDefault,\n\tonChange,\n\tclassName,\n\tstrings: stringsProp,\n}: PaymentMethodCardProps) {\n\tconst strings = useStrings(defaultPaymentMethodStrings, stringsProp);\n\tconst brandLabel = BRAND_LABEL[brand];\n\tconst gradient = BRAND_GRADIENT[brand];\n\n\treturn (\n\t\t<SmartCard\n\t\t\ticon={<CreditCard className=\"size-4\" />}\n\t\t\ttitle={strings.title}\n\t\t\ttitleSuffix={isDefault ? <Badge variant=\"primary\">{strings.default}</Badge> : null}\n\t\t\theaderAction={onChange ? (\n\t\t\t\t<Button buttonStyle=\"ghost\" variant=\"secondary\" onClick={onChange}>\n\t\t\t\t\t{strings.change}\n\t\t\t\t</Button>\n\t\t\t) : undefined}\n\t\t\tclassName={cn('payment-method--component w-full', className)}\n\t\t>\n\t\t\t{/* Mini card mock */}\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'relative mx-auto flex aspect-[85.6/53.98] w-full max-w-[22rem] flex-col justify-between overflow-hidden rounded-lg bg-gradient-to-br p-3.5 text-inverse-foreground shadow-sm ring-1 ring-inverse-border',\n\t\t\t\t\tgradient,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<div className=\"relative flex items-start justify-between\">\n\t\t\t\t\t<div className=\"flex size-7 items-center justify-center rounded-md bg-gradient-to-br from-warning/80 to-warning shadow-sm\">\n\t\t\t\t\t\t<div className=\"size-4 rounded-sm border border-warning-foreground/25 bg-warning-foreground/15\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<Text\n\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\tweight=\"bold\"\n\t\t\t\t\t\tclassName=\"rounded bg-inverse-surface px-2 py-0.5 tracking-[0.15em] text-inverse-foreground backdrop-blur-sm\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{brandLabel}\n\t\t\t\t\t</Text>\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"relative\">\n\t\t\t\t\t<Text\n\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\tsize=\"base\"\n\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\tclassName=\"block font-mono tracking-[0.25em] text-inverse-foreground\"\n\t\t\t\t\t>\n\t\t\t\t\t\t•••• •••• •••• {last4}\n\t\t\t\t\t</Text>\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"relative flex items-end justify-between gap-3\">\n\t\t\t\t\t<div className=\"min-w-0\">\n\t\t\t\t\t\t{!!holderName && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Text size=\"xxs\" className=\"block uppercase tracking-wider text-inverse-subtle\">{strings.cardHolder}</Text>\n\t\t\t\t\t\t\t\t<Text weight=\"semibold\" className=\"truncate text-inverse-foreground\">{holderName}</Text>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t\t{!!expiry && (\n\t\t\t\t\t\t<div className=\"text-right shrink-0\">\n\t\t\t\t\t\t\t<Text size=\"xxs\" className=\"block uppercase tracking-wider text-inverse-subtle\">{strings.expires}</Text>\n\t\t\t\t\t\t\t<Text tag=\"span\" weight=\"semibold\" className=\"tabular-nums text-inverse-foreground\">{expiry}</Text>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t</SmartCard>\n\t);\n}\n\nPaymentMethodCard.displayName = 'PaymentMethodCard';\n"],"mappings":"8qBAwBA,SAAS,EAAY,EAAoD,CACxE,GAAI,EAAM,MAAQ,KAAM,OAAO,EAAM,KACrC,GAAI,EAAM,KAAO,EAAM,MAAO,CAC7B,IAAM,EAAO,IAAI,KAAK,EAAE,YAAY,EAC9B,EAAQ,IAAI,KAAK,GAAG,EAAM,MAAM,GAAG,EAAM,IAAI,IAAI,GAAM,EAC7D,GAAI,CAAC,OAAO,MAAM,EAAM,QAAQ,CAAC,EAAG,OAAO,CAC5C,CACA,OAAO,IACR,CAEA,SAAgB,EAAmB,CAClC,WACA,YACA,SACA,WAAW,UACX,gBAAgB,SACW,CAC3B,OACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAW,UAAW,EAAA,GAAG,2CAA4C,CAAS,WAC5E,EAAS,KAAK,EAAG,IAAQ,CACzB,IAAM,EAAY,EAAY,CAAC,EAC/B,OACC,EAAA,EAAA,MAAC,EAAA,EAAD,CAAoD,UAAU,oCAA9D,CACE,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,EAAA,EAAD,CAAA,UACC,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,KAAM,EACN,KAAM,IAAkB,QAAU,EAAE,KAAO,IAAA,GAC3C,KAAM,EACE,SACR,cAAc,QACd,OAAO,SACP,CAAA,CACS,CAAA,GAEZ,EAAA,EAAA,MAAC,EAAA,EAAD,CAAa,UAAU,mCAAvB,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAA,SAAY,EAAE,OAAmB,CAAA,GACjC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAiB,MAAO,WAAI,EAAE,QAA0B,CAAA,CAC5C,KACb,EAAA,EAAA,MAAC,EAAA,EAAD,CAAa,UAAU,kDAAvB,CACE,IAAkB,oBAClB,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,KAAK,KAAK,YAAY,UAAU,iCACzC,EAAE,IACE,CAAA,GAEP,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,OAAO,WAAW,UAAU,iCAChC,EAAE,MACE,CAAA,CACM,GACR,GA3BK,EAAE,IAAM,GAAG,EAAE,QAAQ,GAAG,EAAE,KAAK,GAAG,GA2BvC,CAER,CAAC,CACS,CAAA,CAEb,CAEA,EAAmB,YAAc,qBCnEjC,IAAa,EAAoD,CAC7D,aAAc,kBACd,gBAAiB,mBACjB,OAAQ,eACZ,ECSA,SAAgB,EAAkB,CACjC,UACA,OAAO,YACP,YAAa,EACb,UAAU,CAAC,EACX,cACA,WACA,YACA,QAAS,GACiB,CAC1B,IAAM,EAAU,EAAA,WAAW,EAA6B,CACvD,GAAI,IAAgB,IAAA,GAAsC,CAAC,EAA3B,CAAE,OAAQ,CAAY,EACtD,GAAG,CACJ,CAAC,EACD,OACC,EAAA,EAAA,MAAC,EAAA,EAAD,CAAW,UAAW,EAAA,GAAG,mCAAoC,CAAS,WAAtE,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,MAAO,EAAQ,aACf,OACC,EAAA,EAAA,MAAC,EAAA,EAAD,CAAO,QAAQ,mBAAf,EACC,EAAA,EAAA,KAAC,EAAA,OAAD,CAAQ,UAAU,oBAAsB,CAAA,EACvC,CACK,IAER,eAAe,oEACf,CAAA,GAED,EAAA,EAAA,KAAC,EAAA,EAAD,CAAS,IAAI,KAAK,UAAU,gDAC1B,OAAO,GAAY,SAAW,EAAQ,eAAe,EAAI,CAClD,CAAA,GACT,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,KAAK,KAAK,qBACnB,EAAQ,eACJ,CAAA,GAEN,EAAA,EAAA,KAAC,EAAA,EAAD,CAAW,UAAU,MAAQ,CAAA,GAE7B,EAAA,EAAA,KAAC,EAAA,EAAD,CAAA,SACE,EAAQ,IAAK,IACb,EAAA,EAAA,MAAC,EAAA,EAAD,CAAqC,KAAK,KAAK,UAAU,qBAAzD,EACC,EAAA,EAAA,MAAC,EAAA,EAAD,CAAA,SAAA,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAW,KAAM,YAAQ,EAAM,KAAiB,CAAA,GAChD,EAAA,EAAA,KAAC,EAAA,EAAD,CAAiB,MAAO,WAAI,EAAM,IAAsB,CAAA,CAC5C,CAAA,CAAA,GACb,EAAA,EAAA,KAAC,EAAA,EAAD,CAAA,UACC,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,OAAO,WACP,UAAW,EAAA,GACV,eACA,EAAM,SAAW,eAAiB,kBACnC,WAEC,EAAM,MACF,CAAA,CACM,CAAA,CACR,GAhBK,EAAM,KAAO,EAAM,KAgBxB,CACN,CACS,CAAA,GAEX,EAAA,EAAA,MAAC,EAAA,EAAD,CACC,QAAQ,OACR,UAAU,2BACV,QAAS,WAHV,EAKC,EAAA,EAAA,KAAC,EAAA,KAAD,CAAM,UAAU,iBAAmB,CAAA,EAClC,EAAQ,MACF,GACE,GAEb,CAEA,EAAkB,YAAc,oBClFhC,IAAa,EAAoD,CAC7D,MAAO,oBACP,aAAc,eAClB,ECMA,SAAgB,EAAqB,CACpC,YACA,eACA,YACA,QAAS,GACoB,CAC7B,IAAM,EAAU,EAAA,WAAW,EAA6B,CAAW,EACnE,OACC,EAAA,EAAA,MAAC,EAAA,EAAD,CAAW,MAAO,EAAQ,MAAO,UAAW,EAAA,GAAG,mCAAoC,CAAS,WAA5F,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAW,UAAU,gBACnB,EAAU,IAAK,IACf,EAAA,EAAA,MAAC,EAAA,EAAD,CAAmB,KAAK,KAAK,UAAU,qBAAvC,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAA,UACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAO,QAAS,EAAE,MAAO,UAAU,wCACjC,EAAE,IACG,CAAA,CACG,CAAA,GACX,EAAA,EAAA,KAAC,EAAA,EAAD,CAAA,UACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAW,KAAM,YAAQ,EAAE,KAAiB,CAAA,CAChC,CAAA,GACb,EAAA,EAAA,KAAC,EAAA,EAAD,CAAA,UACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,OAAO,WAAW,UAAU,qCAChC,EAAE,MACE,CAAA,CACM,CAAA,CACR,GAdK,EAAE,IAcP,CACN,CACS,CAAA,GAEX,EAAA,EAAA,KAAC,EAAA,EAAD,CAAW,UAAU,MAAQ,CAAA,GAE7B,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,MAAO,EAAQ,aACf,OACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAS,IAAI,KAAK,UAAU,6EAC1B,CACO,CAAA,EAEV,eAAe,uBACf,CAAA,CACS,GAEb,CAEA,EAAqB,YAAc,uBCpDnC,SAAgB,EAAqB,CACjC,iBACA,UACA,SACA,QACA,UAAU,CAAC,EACX,aAC0B,CAC1B,OACI,EAAA,EAAA,MAAC,EAAA,EAAD,CAAW,UAAW,EAAA,GAAG,sCAAuC,CAAS,WAAzE,EACI,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,6CAAf,EACI,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,KAAK,OAAO,SAAS,UAAU,yDACrC,CACC,CAAA,EACL,CAAC,CAAC,IAAW,EAAA,EAAA,KAAC,EAAA,EAAD,CAAO,QAAQ,gBAAQ,CAAe,CAAA,CACnD,KAEL,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,0CAAf,EACI,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,iCAAmC,CAAA,GACnD,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,OAAO,oBACR,CACC,CAAA,CACL,KAEL,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,kDACV,EAAM,KAAK,EAAM,KACd,EAAA,EAAA,MAAC,MAAD,CAAsB,UAAU,mDAAhC,EACI,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,oCAAf,EACI,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAA,GAAG,+BAAgC,EAAK,KAAO,aAAe,UAAU,CAAI,CAAA,EAC3F,EAAI,EAAM,OAAS,IAChB,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAA,GAAG,eAAgB,EAAK,KAAO,aAAe,UAAU,CAAI,CAAA,CAE/E,KACL,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,KAAK,KAAK,YAAY,UAAU,qCACtC,EAAK,KACJ,CAAA,CACL,GAVK,EAAK,KAUV,CACR,CACA,CAAA,EAEJ,EAAQ,OAAS,IACd,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,EACI,EAAA,EAAA,KAAC,EAAA,EAAD,CAAW,UAAU,MAAQ,CAAA,GAC7B,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,qBACV,EAAQ,IAAK,IACV,EAAA,EAAA,KAAC,EAAA,EAAD,CAEI,MAAO,EAAO,MACd,MAAO,EAAO,MACd,eAAe,UACf,eAAe,4CAClB,EALQ,EAAO,KAKf,CACJ,CACA,CAAA,CACP,CAAA,CAAA,CAEC,GAEnB,CAEA,EAAqB,YAAc,uBC7DnC,IAAa,EAAkD,CAC9D,MAAO,gBACP,SAAU,WACV,SAAU,YACV,MAAO,OACR,ECFA,SAAgB,EAAiB,CAChC,WACA,QACA,WACA,QACA,YACA,QAAS,GACgB,CACzB,IAAM,EAAU,EAAA,WAAW,EAA4B,CAAW,EAElE,OACC,EAAA,EAAA,MAAC,EAAA,EAAD,CACC,MAAM,EAAA,EAAA,KAAC,EAAA,QAAD,CAAS,UAAU,QAAU,CAAA,EACnC,MAAO,EAAQ,MACf,UAAW,EAAA,GAAG,kCAAmC,CAAS,WAH3D,EAKC,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,MAAO,EAAQ,SACf,MAAO,EACP,KAAA,GACA,eAAe,UACf,eAAe,qBACf,CAAA,GAED,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,uFAAf,CACE,EAAM,KAAK,EAAK,KAChB,EAAA,EAAA,MAAC,MAAD,CAEC,UAAU,qDAFX,EAIC,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,+CAAf,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,KAAK,UAAU,oBAAY,EAAI,KAAY,CAAA,EACrD,CAAC,CAAC,EAAI,OACN,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,IAAI,OAAO,KAAK,MAAM,KAAK,WAAW,UAAU,oBACpD,EAAI,IACA,CAAA,CAEH,KACL,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,IAAI,OAAO,KAAK,KAAK,OAAO,SAAS,UAAU,iCACnD,EAAI,MACA,CAAA,CACF,GAdC,EAAI,IAAM,GAAG,EAAI,MAAM,GAAG,GAc3B,CACL,EACA,CAAC,CAAC,GAAY,EAAM,OAAS,IAC7B,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,MAAO,EAAQ,SACf,MAAO,EACP,KAAA,GACA,UAAU,0CACV,eAAe,sBACf,eAAe,uBACf,CAAA,CAEE,KAEL,EAAA,EAAA,KAAC,EAAA,EAAD,CAAW,UAAU,MAAQ,CAAA,GAE7B,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,MAAO,EAAQ,MACf,MAAO,EACP,KAAA,GACA,eAAe,wBACf,eAAe,mBACf,CAAA,CACS,GAEb,CAEA,EAAiB,YAAc,mBCrE/B,IAAa,EAAgE,CAC5E,MAAO,eACP,KAAM,OACN,YAAa,eACb,MAAO,WACP,OAAQ,SACR,QAAS,SACV,ECKA,SAAgB,EAAwB,CACvC,WACA,aACA,aACA,kBACA,cACA,QAAQ,CAAC,EACT,WACA,YACA,YACA,QAAS,GACuB,CAChC,IAAM,EAAU,EAAA,WAAW,EAAmC,CAAW,EAEzE,OACC,EAAA,EAAA,MAAC,EAAA,EAAD,CACC,MAAM,EAAA,EAAA,KAAC,EAAA,OAAD,CAAQ,UAAU,QAAU,CAAA,EAClC,MAAO,EAAQ,MACf,UAAW,GAAc,EAAA,EAAA,KAAC,EAAA,EAAD,CAAO,QAAQ,mBAAW,CAAmB,CAAA,EAAI,KAC1E,UAAW,EAAA,GAAG,yCAA0C,CAAS,WAJlE,EAMC,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,8DAAf,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,MAAM,KAAK,YAAY,OAAO,SAAS,UAAU,oCAC1D,EAAQ,IACJ,CAAA,GACN,EAAA,EAAA,KAAC,EAAA,EAAD,CAAS,IAAI,KAAK,UAAU,sEAC1B,CACO,CAAA,GACT,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,0CAAf,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,IAAI,OAAO,KAAK,KAAK,OAAO,OAAO,UAAU,wBACjD,CACI,CAAA,GACN,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,qBACT,CACI,CAAA,CACF,GACD,KAEL,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,0EAAf,EACC,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,mCAAf,EACC,EAAA,EAAA,KAAC,EAAA,SAAD,CAAU,UAAU,gCAAkC,CAAA,GACtD,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,KAAK,KAAK,qBAAa,EAAQ,WAAkB,CAAA,CACxD,KACL,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,KAAK,OAAO,WAAW,UAAU,wBAAgB,CAAsB,CAAA,CAC9E,IAEJ,EAAM,OAAS,IACf,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,0BAAf,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,MAAM,KAAK,YAAY,OAAO,SAAS,UAAU,oCAC1D,EAAQ,KACJ,CAAA,GACN,EAAA,EAAA,KAAC,EAAA,EAAD,CAAA,SACE,EAAM,KAAK,EAAM,KAGhB,EAAA,EAAA,MAAC,EAAA,EAAD,CAAiC,KAAK,KAAK,UAAU,gBAArD,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAA,UACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAW,KAJD,EAAK,MAAQ,EAAA,MAIA,KAAK,UAAU,KAAK,IAAM,CAAA,CACvC,CAAA,GACX,EAAA,EAAA,KAAC,EAAA,EAAD,CAAA,UACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAW,KAAM,YAAQ,EAAK,KAAiB,CAAA,CACnC,CAAA,CACR,GAPK,GAAG,EAAK,MAAM,GAAG,GAOtB,CAEP,CACS,CAAA,CACP,KAGJ,GAAY,KACb,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,wCAAf,CACE,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,QAAQ,YACR,YAAY,UACZ,QAAS,EACT,UAAU,kBAET,EAAQ,MACF,CAAA,EAER,CAAC,CAAC,IACF,EAAA,EAAA,MAAC,EAAA,EAAD,CACC,QAAQ,UACR,QAAS,EACT,UAAU,kBAHX,CAKE,EAAQ,SACT,EAAA,EAAA,KAAC,EAAA,aAAD,CAAc,UAAU,eAAiB,CAAA,CAClC,GAEL,GAEI,GAEb,CAEA,EAAwB,YAAc,0BC/GtC,IAAa,EAAkD,CAC9D,MAAO,gBACP,UAAW,YACX,SAAU,WACV,WAAY,aACZ,UAAW,YACX,OAAQ,gBACR,OAAQ,SACR,IAAK,cACL,OAAQ,WACT,ECHM,EAA6B,CAAC,YAAa,WAAY,aAAc,WAAW,EAEtF,SAAgB,EAAiB,CAChC,QACA,SACA,SACA,SACA,MACA,cACA,YACA,QAAS,GACgB,CACzB,IAAM,EAAU,EAAA,WAAW,EAA4B,CAAW,EAC5D,EAAa,EAAY,QAAQ,CAAK,EAE5C,OACC,EAAA,EAAA,MAAC,EAAA,EAAD,CACC,MAAM,EAAA,EAAA,KAAC,EAAA,UAAD,CAAW,UAAU,QAAU,CAAA,EACrC,MAAO,EAAQ,MACf,UAAW,EAAA,GAAG,kCAAmC,CAAS,WAH3D,EAKC,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,4CAAf,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,MAAM,KAAK,YAAY,OAAO,SAAS,UAAU,oCAC1D,EAAQ,MACJ,CAAA,GACN,EAAA,EAAA,KAAC,EAAA,EAAD,CAAS,IAAI,KAAK,UAAU,gDAC1B,CACO,CAAA,EACR,CAAC,CAAC,IACF,EAAA,EAAA,MAAC,EAAA,EAAD,CAAM,KAAK,KAAK,KAAK,YAAY,UAAU,kBAA3C,CACE,EAAQ,UAAU,KAAG,CACjB,GAEH,KAGL,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,kDACb,EAAY,KAAK,EAAG,IAAM,CAC1B,IAAM,EAAO,GAAK,EACZ,EAAU,IAAM,EACtB,OACC,EAAA,EAAA,MAAC,MAAD,CAAa,UAAU,qDAAvB,EACC,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,oCAAf,EACC,EAAA,EAAA,KAAC,MAAD,CACC,UAAW,EAAA,GACV,yEACA,EACG,qCACA,qDACH,GAAW,6DACZ,WAEC,GACA,EAAA,EAAA,KAAC,EAAA,MAAD,CAAO,UAAU,QAAU,CAAA,GAE3B,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,IAAI,OAAO,KAAK,MAAM,OAAO,SAAS,UAAU,wBAAgB,EAAI,CAAQ,CAAA,CAE/E,CAAA,EACJ,EAAI,EAAY,OAAS,IACzB,EAAA,EAAA,KAAC,MAAD,CACC,UAAW,EAAA,GACV,eACA,EAAI,EAAa,aAAe,WACjC,CACA,CAAA,CAEE,KACL,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,KAAK,MACL,OAAQ,EAAU,WAAa,SAC/B,KAAM,EAAO,OAAS,YACtB,UAAU,qCAET,EAAQ,EACJ,CAAA,CACF,GAlCK,CAkCL,CAEP,CAAC,CACG,CAAA,GAEH,GAAU,GAAU,KACrB,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAW,UAAU,MAAQ,CAAA,GAC7B,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,qBAAf,CACE,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,EAAA,EAAD,CAAY,MAAO,EAAQ,OAAQ,MAAO,EAAQ,UAAU,cAAc,eAAe,gCAAkC,CAAA,EAE3H,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,EAAA,EAAD,CAAY,MAAO,EAAQ,OAAQ,MAAO,EAAQ,eAAe,qBAAuB,CAAA,EAExF,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,EAAA,EAAD,CAAY,MAAO,EAAQ,IAAK,MAAO,EAAK,KAAA,GAAK,eAAe,qBAAuB,CAAA,CAEpF,GACJ,CAAA,CAAA,CAEO,GAEb,CAEA,EAAiB,YAAc,mBC7G/B,IAAa,EAAgD,CAC5D,aAAc,UACd,KAAM,OACN,OAAQ,SACR,YAAa,eACb,SAAU,mBACV,QAAS,kBACT,OAAQ,gBACT,ECEA,SAAgB,EAAY,CAC3B,OAAO,WACP,OACA,QACA,QACA,OACA,SACA,aACA,UACA,QACA,YAAY,GACZ,SACA,WACA,gBACA,YACA,QAAS,GACW,CACpB,IAAM,EAAU,EAAA,WAAW,EAA2B,CAAW,EAC3D,EAA2C,CAChD,SAAU,EAAQ,SAClB,QAAS,EAAQ,QACjB,OAAQ,EAAQ,MACjB,EAEM,EAAW,CAAC,EAAM,EAAQ,CAAU,EAAE,OAAO,OAAO,EAAE,KAAK,IAAI,EAE/D,EAA6B,CAAC,EA0BpC,OAzBI,GACH,EAAQ,KAAK,CACZ,GAAI,OACJ,MAAO,EAAQ,KACf,MAAM,EAAA,EAAA,KAAC,EAAA,MAAD,CAAO,UAAU,UAAY,CAAA,EACnC,QAAS,CACV,CAAC,EAEE,GAAiB,CAAC,GACrB,EAAQ,KAAK,CACZ,GAAI,eACJ,MAAO,EAAQ,YACf,MAAM,EAAA,EAAA,KAAC,EAAA,KAAD,CAAM,UAAU,UAAY,CAAA,EAClC,QAAS,CACV,CAAC,EAEE,GACH,EAAQ,KAAK,CACZ,GAAI,SACJ,MAAO,EAAQ,OACf,MAAM,EAAA,EAAA,KAAC,EAAA,OAAD,CAAQ,UAAU,UAAY,CAAA,EACpC,QAAS,CACV,CAAC,GAID,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,MAAM,EAAA,EAAA,KAAC,EAAA,OAAD,CAAQ,UAAU,QAAU,CAAA,EAClC,MAAO,EAAY,GACnB,YACC,GAAY,EAAA,EAAA,KAAC,EAAA,EAAD,CAAO,QAAQ,mBAAW,EAAQ,YAAoB,CAAA,EAAI,KAEvE,QAAS,EAAQ,OAAS,EAAI,EAAU,IAAA,GACxC,UAAW,EAAA,GAAG,iCAAkC,CAAS,YAEzD,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,uBAAf,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,OAAO,oBAAY,CAAW,CAAA,GACpC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAA,SAAO,CAAY,CAAA,EAClB,CAAC,CAAC,IAAS,EAAA,EAAA,KAAC,EAAA,EAAD,CAAA,SAAO,CAAY,CAAA,EAC9B,CAAC,CAAC,IAAY,EAAA,EAAA,KAAC,EAAA,EAAD,CAAA,SAAO,CAAe,CAAA,GACrC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,qBAAa,CAAc,CAAA,EACrC,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,KAAK,KAAK,YAAY,UAAU,+BACzC,CACI,CAAA,CAEH,GACK,CAAA,CAEb,CAEA,EAAY,YAAc,cCxF1B,IAAa,EAAkD,CAC9D,MAAO,qBACP,WAAY,iBACZ,YAAa,uBACb,WAAY,gDACZ,MAAO,gBACP,OAAQ,SACR,QAAS,oBACT,QAAS,UACT,SAAU,mCACX,ECQM,EAAiB,GAA0B,EAAM,YAAY,EAEnE,SAAgB,EAAiB,CAChC,cACA,UACA,QACA,UACA,UACA,WACA,YACA,QAAS,GACgB,CACzB,IAAM,EAAU,EAAA,WAAW,EAA4B,CAAW,EAC5D,GAAA,EAAA,EAAA,OAAgB,EAChB,CAAC,EAAM,IAAA,EAAA,EAAA,UAAoB,EAAE,EAC7B,EAAc,EAAK,KAAK,EAqD9B,OA9CI,GAEF,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,MAAM,EAAA,EAAA,KAAC,EAAA,KAAD,CAAM,UAAU,QAAU,CAAA,EAChC,MAAO,EAAQ,MACf,UAAW,EAAA,GAAG,kCAAmC,CAAS,YAE1D,EAAA,EAAA,MAAC,EAAA,EAAD,CAAM,KAAK,KAAK,QAAQ,UAAU,UAAU,uFAA5C,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAA,UACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAW,KAAM,EAAA,MAAO,KAAK,UAAU,KAAK,KAAK,UAAU,wBAA0B,CAAA,CAC3E,CAAA,GACX,EAAA,EAAA,MAAC,EAAA,EAAD,CAAa,UAAU,mBAAvB,EACC,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,+CAAf,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAW,UAAU,+CAAuC,CAAuB,CAAA,GACnF,EAAA,EAAA,KAAC,EAAA,EAAD,CAAO,QAAQ,UAAU,KAAK,cAAM,EAAQ,OAAe,CAAA,CACvD,KACL,EAAA,EAAA,KAAC,EAAA,EAAD,CAAiB,MAAO,WAAI,EAAQ,OAAyB,CAAA,CACjD,KACb,EAAA,EAAA,MAAC,EAAA,EAAD,CAAY,UAAU,2CAAtB,EACC,EAAA,EAAA,KAAC,OAAD,CAAO,CAAA,GACP,EAAA,EAAA,MAAC,EAAA,EAAD,CAAa,UAAU,4BAAvB,CACE,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,IAAI,OAAO,KAAK,KAAK,OAAO,WAAW,KAAK,UAAU,UAAU,iCACpE,CACI,CAAA,EAEN,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,KAAK,SACL,QAAQ,QACR,YAAY,QACZ,KAAK,UACL,QAAS,EACT,aAAY,EAAQ,OACpB,UAAU,yEAEV,EAAA,EAAA,KAAC,EAAA,EAAD,CAAG,UAAU,UAAY,CAAA,CAClB,CAAA,CAEG,GACF,GACP,GACI,CAAA,GAKZ,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,MAAM,EAAA,EAAA,KAAC,EAAA,KAAD,CAAM,UAAU,QAAU,CAAA,EAChC,MAAO,EAAQ,MACf,UAAW,EAAA,GAAG,kCAAmC,CAAS,YAE1D,EAAA,EAAA,KAAC,OAAD,CAAM,SA1Dc,GAAsC,CAC3D,EAAM,eAAe,EAChB,GACL,IAAU,CAAW,CACtB,YAuDG,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,MAAO,EAAQ,WACf,QAAS,EACF,QACP,KAAM,EAAQ,IAAA,GAAY,EAAQ,qBAElC,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,gCAAf,EACC,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,iCACd,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,GAAI,EACJ,MAAO,EACP,SAAW,GAAM,EAAQ,EAAe,EAAE,OAA4B,KAAK,CAAC,EAC5E,YAAa,EAAQ,YACrB,UAAW,EAAA,KACX,eAAe,aACf,WAAY,GACZ,UAAU,YACV,QAAS,EAAQ,CACjB,CAAA,CACG,CAAA,GACL,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,KAAK,SACI,UACT,SAAU,CAAC,EACX,UAAU,oBAET,EAAQ,KACF,CAAA,CACJ,GACK,CAAA,CACN,CAAA,CACI,CAAA,CAEb,CAEA,EAAiB,YAAc,mBCnH/B,IAAa,EAAgD,CAC5D,MAAO,OACP,SAAU,WACV,IAAK,MACL,SAAU,WACV,SAAU,WACV,MAAO,QACP,SAAU,UACX,ECNM,EAAqB,GAA0B,EAAM,QAAQ,WAAY,EAAE,EAE3E,EAAwB,GACtB,CAAC,EAAK,aAAc,EAAK,MAAO,EAAK,IAAI,EAAE,KAAM,GAAU,CAAC,CAAC,GAAO,KAAK,CAAC,GAAK,EAAK,GAGtF,EAA2B,GACzB,CAAC,EAAK,SAAU,EAAK,SAAU,EAAK,IAAK,EAAK,GAAG,EAAE,KAAM,GAAU,CAAC,CAAC,GAAO,KAAK,CAAC,EAGpF,EAA+B,GACnB,EACf,KAAK,EACL,MAAM,KAAK,EACX,IAAK,GAAS,EAAK,EAAE,EACrB,KAAK,EAAE,EACP,MAAM,EAAG,CAAC,EACV,YAEK,GAAY,EAAM,KAAK,EAAE,MAAM,EAAG,CAAC,EAAE,YAAY,EAGzD,SAAS,EAAyB,CAAE,SAA4B,CAC/D,OACC,EAAA,EAAA,KAAC,MAAD,CACC,cAAY,OACZ,UAAU,yKAET,EAA4B,CAAK,CAC9B,CAAA,CAEP,CAEA,SAAgB,EAAgB,CAC/B,QACA,WACA,MACA,WACA,WACA,QACA,aACA,YACA,QAAS,GACe,CACxB,IAAM,EAAU,EAAA,WAAW,EAA2B,CAAW,EAC3D,EAAe,CAAC,EAAE,GAAY,GAAO,GAAY,GAEvD,OACC,EAAA,EAAA,MAAC,EAAA,EAAD,CAAW,MAAM,EAAA,EAAA,KAAC,EAAA,YAAD,CAAa,UAAU,QAAU,CAAA,EAAG,MAAO,EAAQ,MAAO,UAAW,EAAA,GAAG,iCAAkC,CAAS,WAApI,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAA,SACE,EAAM,IAAK,GAAO,CAClB,IAAM,EAAQ,EAAqB,CAAE,EAC/B,EAAW,EAAwB,CAAE,EAE3C,OACC,EAAA,EAAA,MAAC,EAAA,EAAD,CAAkB,UAAU,mCAA5B,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAW,QAAQ,QAAQ,UAAU,oCACnC,GACA,EAAA,EAAA,KAAC,MAAD,CAAK,IAAK,EAAU,IAAK,EAAG,UAAY,CAAQ,CAAA,GAEhD,EAAA,EAAA,KAAC,EAAD,CAAiC,OAAQ,CAAA,CAEhC,CAAA,GACX,EAAA,EAAA,MAAC,EAAA,EAAD,CAAa,UAAU,sCAAvB,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAA,SAAY,CAAiB,CAAA,EAC5B,CAAC,CAAC,EAAG,eACL,EAAA,EAAA,KAAC,EAAA,EAAD,CAAiB,MAAO,WAAI,EAAG,YAA8B,CAAA,CAElD,KACb,EAAA,EAAA,KAAC,EAAA,EAAD,CAAa,UAAU,uCACtB,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,oDAAf,EACC,EAAA,EAAA,MAAC,EAAA,EAAD,CAAM,IAAI,OAAO,KAAK,KAAK,KAAK,YAAY,UAAU,wBAAtD,CAAqE,IAAE,EAAG,GAAU,KACpF,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,IAAI,OAAO,OAAO,WAAW,UAAU,wBAAgB,EAAG,KAAY,CAAA,CACxE,GACO,CAAA,CACR,GApBK,EAAG,EAoBR,CAER,CAAC,CACS,CAAA,EAEV,CAAC,CAAC,IACF,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,+DAAf,CACE,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,EAAA,EAAD,CAAY,MAAO,EAAQ,SAAU,MAAO,EAAU,KAAA,GAAK,eAAe,sBAAsB,eAAe,SAAW,CAAA,EAE1H,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,EAAA,EAAD,CAAY,MAAO,EAAQ,IAAK,MAAO,EAAK,KAAA,GAAK,eAAe,sBAAsB,eAAe,SAAW,CAAA,EAEhH,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,EAAA,EAAD,CAAY,MAAO,EAAQ,SAAU,MAAO,EAAU,KAAA,GAAK,eAAe,sBAAsB,eAAe,SAAW,CAAA,EAE1H,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,MAAO,EAAQ,SACf,MAAO,IAAI,EAAkB,CAAQ,IACrC,KAAA,GACA,eAAe,UACf,eAAe,oCACf,CAAA,CAEE,KAGN,EAAA,EAAA,KAAC,EAAA,EAAD,CAAW,UAAU,MAAQ,CAAA,GAE7B,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,MAAO,EAAQ,MACf,MAAO,EACP,KAAA,GACA,eAAe,wBACf,eAAe,mBACf,CAAA,EAEA,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,EAAA,EAAD,CAAQ,QAAS,EAAY,UAAA,GAAU,UAAU,gBAAQ,EAAQ,QAAiB,CAAA,CAEzE,GAEb,CAEA,EAAgB,YAAc,kBC1I9B,IAAa,EAAgD,CAC5D,MAAO,eACP,YAAa,oBACb,MAAO,QACP,OAAQ,SACR,QAAS,UACT,QAAS,wBACV,ECaM,EAAqB,GAA0B,EAAM,QAAQ,WAAY,EAAE,EAC3E,EAAiB,GAA0B,EAAM,YAAY,EAEnE,SAAgB,EAAgB,CAC/B,cACA,kBACA,QACA,UACA,WACA,UACA,YACA,QAAS,GACe,CACxB,IAAM,EAAU,EAAA,WAAW,EAA2B,CAAW,EAC3D,CAAC,EAAM,IAAA,EAAA,EAAA,UAAoB,EAAE,EAC7B,EAAc,EAAK,KAAK,EAiD9B,OA/CI,GAEF,EAAA,EAAA,KAAC,EAAA,EAAD,CAAW,MAAM,EAAA,EAAA,KAAC,EAAA,cAAD,CAAe,UAAU,QAAU,CAAA,EAAG,MAAO,EAAQ,MAAO,UAAW,EAAA,GAAG,iCAAkC,CAAS,YACrI,EAAA,EAAA,MAAC,EAAA,EAAD,CAAM,KAAK,KAAK,QAAQ,QAAQ,UAAU,8FAA1C,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAA,UACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAW,KAAM,EAAA,MAAO,KAAK,UAAU,KAAK,KAAK,UAAU,wBAA0B,CAAA,CAC3E,CAAA,GACX,EAAA,EAAA,MAAC,EAAA,EAAD,CAAa,UAAU,mBAAvB,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAW,UAAU,+CAAuC,CAAuB,CAAA,GACnF,EAAA,EAAA,KAAC,EAAA,EAAD,CAAiB,UAAU,0BAA0B,MAAO,WAC1D,EAAQ,OACO,CAAA,CACL,KACb,EAAA,EAAA,MAAC,EAAA,EAAD,CAAY,UAAU,2CAAtB,EACC,EAAA,EAAA,KAAC,OAAD,CAAO,CAAA,GACP,EAAA,EAAA,MAAC,EAAA,EAAD,CAAa,UAAU,4BAAvB,CACE,CAAC,CAAC,IACF,EAAA,EAAA,MAAC,EAAA,EAAD,CACC,IAAI,OACJ,KAAK,KACL,OAAO,WACP,KAAK,UACL,UAAU,iCALX,CAMC,IACE,EAAkB,CAAe,CAC9B,IAEN,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,KAAK,SACL,QAAQ,QACR,YAAY,QACZ,KAAK,UACL,QAAS,EACT,aAAY,EAAQ,OACpB,UAAU,yEAEV,EAAA,EAAA,KAAC,EAAA,EAAD,CAAG,UAAU,UAAY,CAAA,CAClB,CAAA,CAEG,GACF,GACP,GACI,CAAA,GAKZ,EAAA,EAAA,KAAC,EAAA,EAAD,CAAW,MAAM,EAAA,EAAA,KAAC,EAAA,cAAD,CAAe,UAAU,QAAU,CAAA,EAAG,MAAO,EAAQ,MAAO,UAAW,EAAA,GAAG,iCAAkC,CAAS,YACrI,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,+BAAf,EACC,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,gCAAf,EACC,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,iCACd,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,MAAO,EACP,SAAW,GAAM,EAAQ,EAAe,EAAE,OAA4B,KAAK,CAAC,EAC5E,YAAa,EAAQ,YACrB,UAAW,EAAA,SACX,eAAe,aACf,WAAY,GACZ,UAAU,YACV,QAAS,EAAQ,CACjB,CAAA,CACG,CAAA,GACL,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,KAAK,UACL,YAAe,IAAU,CAAW,EAC3B,UACT,SAAU,CAAC,EACX,UAAU,oBAET,EAAQ,KACF,CAAA,CACJ,IACJ,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,KAAK,KAAK,iBAAS,GAAS,EAAQ,OAAc,CAAA,CAE1D,GACK,CAAA,CAEb,CAEA,EAAgB,YAAc,kBC7G9B,IAAa,EAAgD,CAC5D,MAAO,eACP,YAAa,iBACb,IAAK,MACL,YAAa,eACb,YAAa,cACd,ECPM,EAAiH,CACtH,QAAS,UACT,KAAM,OACN,UAAW,OACX,QAAS,UACT,UAAW,UACX,UAAW,OACZ,EAEA,SAAgB,EAAgB,CAC/B,cACA,SACA,gBACA,SACA,aACA,YACA,QAAS,GACe,CACxB,IAAM,EAAU,EAAA,WAAW,EAA2B,CAAW,EAC3D,EAAU,GAAiB,EAAkB,GAC7C,EAAkB,EAAO,QAAQ,EAAK,EAAG,IAAO,EAAE,SAAW,EAAI,EAAM,EAAE,EACzE,EAAc,EAAO,IAAoB,EAAO,GAChD,EAAY,EAAO,KAAM,GAAU,CAAC,EAAM,QAAQ,EAExD,OACC,EAAA,EAAA,MAAC,EAAA,EAAD,CACC,MAAM,EAAA,EAAA,KAAC,EAAA,QAAD,CAAS,UAAU,QAAU,CAAA,EACnC,MAAO,EAAQ,MACf,aAAa,EAAA,EAAA,KAAC,EAAA,EAAD,CAAgB,UAAS,UAAU,sBAAc,CAAc,CAAA,EAC5E,YAAa,IAAI,IACjB,UAAW,EAAA,GAAG,iCAAkC,CAAS,WAL1D,EAOC,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,4DACd,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,qCAAf,EACC,EAAA,EAAA,MAAC,MAAD,CAAA,SAAA,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,MAAM,KAAK,YAAY,UAAU,mCAC1C,EAAQ,WACJ,CAAA,GACN,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,OAAO,WAAW,UAAU,6BAChC,CACI,CAAA,CACF,CAAA,CAAA,EACJ,CAAC,CAAC,IACF,EAAA,EAAA,MAAC,MAAD,CAAA,SAAA,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,MAAM,KAAK,YAAY,UAAU,mCAC1C,EAAY,SAAW,EAAQ,YAAc,EAAQ,WACjD,CAAA,GACN,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,OAAO,WAAW,UAAU,kBAChC,EAAY,KACR,CAAA,CACF,CAAA,CAAA,EAEL,CAAC,CAAC,IACF,EAAA,EAAA,MAAC,MAAD,CAAA,SAAA,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,MAAM,KAAK,YAAY,UAAU,mCAC1C,EAAQ,GACJ,CAAA,GACN,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,OAAO,WAAW,UAAU,+BAChC,CACI,CAAA,CACF,CAAA,CAAA,CAEF,GACD,CAAA,EAEJ,EAAO,OAAS,IAChB,EAAA,EAAA,KAAC,KAAD,CAAI,UAAU,gBACZ,EAAO,KAAK,EAAO,IAAU,CAC7B,IAAM,EAAS,IAAU,EAAO,OAAS,EACnC,EAAY,EAAY,IAAU,EAAY,IAAU,EAC9D,OACC,EAAA,EAAA,MAAC,KAAD,CAAoC,UAAU,+BAA9C,EACC,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,sCAAf,EACC,EAAA,EAAA,KAAC,OAAD,CACC,UAAW,EAAA,GACV,uEACA,EAAM,SACH,oDACA,8CACH,GAAa,CAAC,EAAM,UAAY,oDACjC,WAEC,EAAM,UACN,EAAA,EAAA,KAAC,EAAA,MAAD,CAAO,UAAU,WAAW,YAAa,GAAM,CAAA,EAC5C,GACH,EAAA,EAAA,KAAC,EAAA,cAAD,CAAe,UAAU,UAAY,CAAA,GAErC,EAAA,EAAA,KAAC,EAAA,OAAD,CAAQ,UAAU,QAAU,CAAA,CAExB,CAAA,EACL,CAAC,IACD,EAAA,EAAA,KAAC,OAAD,CACC,cAAY,OACZ,UAAW,EAAA,GACV,sBACA,EAAQ,EAAkB,aAAe,WAC1C,CACA,CAAA,CAEE,KACL,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAA,GAAG,sBAAuB,GAAU,MAAM,WAA1D,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,OAAQ,EAAM,UAAY,EAAY,WAAa,SACnD,UAAW,EAAA,GAAG,CAAC,EAAM,UAAY,CAAC,GAAa,uBAAuB,WAErE,EAAM,KACF,CAAA,EACL,CAAC,CAAC,EAAM,YACR,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,KAAK,KAAK,YAAY,UAAU,+BACzC,EAAM,SACF,CAAA,CAEH,GACF,GA1CK,GAAG,EAAM,MAAM,GAAG,GA0CvB,CAEN,CAAC,CACE,CAAA,CAEK,GAEb,CAEA,EAAgB,YAAc,kBCjI9B,IAAa,EAAoD,CAChE,MAAO,iBACP,QAAS,UACT,WAAY,cACZ,QAAS,UACT,OAAQ,QACT,ECAM,EAA4C,CACjD,KAAM,OACN,WAAY,aACZ,KAAM,OACN,OAAQ,SACR,SAAU,YACV,UAAW,aACX,QAAS,MACV,EAEM,EAA+C,CACpD,KAAM,gCACN,WAAY,8CACZ,KAAM,gCACN,OAAQ,gCACR,SAAU,qDACV,UAAW,sCACX,QAAS,oDACV,EAEA,SAAgB,EAAkB,CACjC,QACA,QACA,SACA,aACA,YACA,WACA,YACA,QAAS,GACiB,CAC1B,IAAM,EAAU,EAAA,WAAW,EAA6B,CAAW,EAC7D,EAAa,EAAY,GACzB,EAAW,EAAe,GAEhC,OACC,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,MAAM,EAAA,EAAA,KAAC,EAAA,WAAD,CAAY,UAAU,QAAU,CAAA,EACtC,MAAO,EAAQ,MACf,YAAa,GAAY,EAAA,EAAA,KAAC,EAAA,EAAD,CAAO,QAAQ,mBAAW,EAAQ,OAAe,CAAA,EAAI,KAC9E,aAAc,GACb,EAAA,EAAA,KAAC,EAAA,EAAD,CAAQ,YAAY,QAAQ,QAAQ,YAAY,QAAS,WACvD,EAAQ,MACF,CAAA,EACL,IAAA,GACJ,UAAW,EAAA,GAAG,mCAAoC,CAAS,YAG3D,EAAA,EAAA,MAAC,MAAD,CACC,UAAW,EAAA,GACV,0MACA,CACD,WAJD,EAMC,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,qDAAf,EACC,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,sHACd,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,gFAAkF,CAAA,CAC7F,CAAA,GACL,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,IAAI,OACJ,OAAO,OACP,UAAU,6GAET,CACI,CAAA,CACF,KAEL,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,qBACd,EAAA,EAAA,MAAC,EAAA,EAAD,CACC,IAAI,OACJ,KAAK,OACL,OAAO,WACP,UAAU,qEAJX,CAKC,kBACgB,CACX,GACF,CAAA,GAEL,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,yDAAf,EACC,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,mBACb,CAAC,CAAC,IACF,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,MAAM,UAAU,8DAAsD,EAAQ,UAAiB,CAAA,GAC1G,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,OAAO,WAAW,UAAU,4CAAoC,CAAiB,CAAA,CACtF,CAAA,CAAA,CAEC,CAAA,EACJ,CAAC,CAAC,IACF,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,+BAAf,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,MAAM,UAAU,8DAAsD,EAAQ,OAAc,CAAA,GACvG,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,IAAI,OAAO,OAAO,WAAW,UAAU,gDAAwC,CAAa,CAAA,CAC9F,GAEF,GACD,GAEK,CAAA,CAEb,CAEA,EAAkB,YAAc"}