admin-ui-starter-kit 0.6.5 → 0.6.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1204) hide show
  1. package/.agents/skills/component-library-rules/references/components/base__cards.md +7 -8
  2. package/.agents/skills/component-library-rules/references/components/base__carousel.md +4 -4
  3. package/.agents/skills/component-library-rules/references/components/base__combobox.md +1 -1
  4. package/.agents/skills/component-library-rules/references/components/base__css-variables.md +2 -1
  5. package/.agents/skills/component-library-rules/references/components/base__event-calendar.md +1 -1
  6. package/.agents/skills/component-library-rules/references/components/base__table.md +32 -11
  7. package/.agents/skills/component-library-rules/references/components/base__typography.md +1 -1
  8. package/.agents/skills/component-library-rules/references/components/composed__metadata-list.md +3 -3
  9. package/.agents/skills/component-library-rules/references/components/features__activities.md +1 -1
  10. package/.agents/skills/component-library-rules/references/components/features__enhanced-activities.md +6 -6
  11. package/.agents/skills/component-library-rules/references/components/features__metrics-overview.md +3 -3
  12. package/.agents/skills/component-library-rules/references/components/features__overlays.md +2 -2
  13. package/.agents/skills/component-library-rules/references/components/features__products.md +1 -1
  14. package/.agents/skills/component-library-rules/references/components/layout__layout-app-shell.md +1 -1
  15. package/.agents/skills/component-library-rules/references/components/layout__layout-containers.md +3 -3
  16. package/.agents/skills/component-library-rules/references/components/layout__layout-sidebar.md +2 -2
  17. package/dist/_shared/accordion-CxjH2WZG.js +135 -0
  18. package/dist/_shared/accordion-CxjH2WZG.js.map +1 -0
  19. package/dist/_shared/accordion-mTdJmy23.cjs +2 -0
  20. package/dist/_shared/accordion-mTdJmy23.cjs.map +1 -0
  21. package/dist/_shared/action-menu-BrHF4nss.cjs +2 -0
  22. package/dist/_shared/action-menu-BrHF4nss.cjs.map +1 -0
  23. package/dist/_shared/action-menu-Crn22LKo.js +96 -0
  24. package/dist/_shared/action-menu-Crn22LKo.js.map +1 -0
  25. package/dist/_shared/ai-artifact-CS2Pv-bu.js +1099 -0
  26. package/dist/_shared/ai-artifact-CS2Pv-bu.js.map +1 -0
  27. package/dist/_shared/ai-artifact-R4bxz5Iq.cjs +3 -0
  28. package/dist/_shared/ai-artifact-R4bxz5Iq.cjs.map +1 -0
  29. package/dist/_shared/alert-BisCSsOE.cjs +2 -0
  30. package/dist/_shared/alert-BisCSsOE.cjs.map +1 -0
  31. package/dist/_shared/alert-D23Q7I0W.js +81 -0
  32. package/dist/_shared/alert-D23Q7I0W.js.map +1 -0
  33. package/dist/_shared/app-shell-BZQJfTkf.cjs +2 -0
  34. package/dist/_shared/app-shell-BZQJfTkf.cjs.map +1 -0
  35. package/dist/_shared/app-shell-Da6GHxTZ.js +69 -0
  36. package/dist/_shared/app-shell-Da6GHxTZ.js.map +1 -0
  37. package/dist/_shared/auth-BV9Daibu.cjs +2 -0
  38. package/dist/_shared/auth-BV9Daibu.cjs.map +1 -0
  39. package/dist/_shared/auth-DACpcTnL.js +643 -0
  40. package/dist/_shared/auth-DACpcTnL.js.map +1 -0
  41. package/dist/_shared/badge-B4oBB5BJ.js +110 -0
  42. package/dist/_shared/badge-B4oBB5BJ.js.map +1 -0
  43. package/dist/_shared/badge-DvUA9Pr2.cjs +2 -0
  44. package/dist/_shared/badge-DvUA9Pr2.cjs.map +1 -0
  45. package/dist/_shared/breadcrumbs-CuT0YIfo.js +105 -0
  46. package/dist/_shared/breadcrumbs-CuT0YIfo.js.map +1 -0
  47. package/dist/_shared/breadcrumbs-jNzlYqS9.cjs +2 -0
  48. package/dist/_shared/breadcrumbs-jNzlYqS9.cjs.map +1 -0
  49. package/dist/_shared/button-BMiPFJIb.cjs +2 -0
  50. package/dist/_shared/button-BMiPFJIb.cjs.map +1 -0
  51. package/dist/_shared/button-vv59_uS_.js +189 -0
  52. package/dist/_shared/button-vv59_uS_.js.map +1 -0
  53. package/dist/_shared/buttons-CvqIMv3I.js +137 -0
  54. package/dist/_shared/buttons-CvqIMv3I.js.map +1 -0
  55. package/dist/_shared/buttons-tCkWktN3.cjs +2 -0
  56. package/dist/_shared/buttons-tCkWktN3.cjs.map +1 -0
  57. package/dist/_shared/card-radio-group-BL--IyPB.js +150 -0
  58. package/dist/_shared/card-radio-group-BL--IyPB.js.map +1 -0
  59. package/dist/_shared/card-radio-group-Cl5ptR1d.cjs +2 -0
  60. package/dist/_shared/card-radio-group-Cl5ptR1d.cjs.map +1 -0
  61. package/dist/_shared/cards-CMNXFo3Y.js +354 -0
  62. package/dist/_shared/cards-CMNXFo3Y.js.map +1 -0
  63. package/dist/_shared/cards-DQN9fcwo.cjs +2 -0
  64. package/dist/_shared/cards-DQN9fcwo.cjs.map +1 -0
  65. package/dist/_shared/combobox-D0avSXIB.cjs +2 -0
  66. package/dist/_shared/combobox-D0avSXIB.cjs.map +1 -0
  67. package/dist/_shared/combobox-Df0srISK.js +954 -0
  68. package/dist/_shared/combobox-Df0srISK.js.map +1 -0
  69. package/dist/_shared/command-B5BpMgBT.js +39 -0
  70. package/dist/_shared/command-B5BpMgBT.js.map +1 -0
  71. package/dist/_shared/command-en62SpQ7.cjs +2 -0
  72. package/dist/_shared/command-en62SpQ7.cjs.map +1 -0
  73. package/dist/_shared/comments-CfkortDW.js +952 -0
  74. package/dist/_shared/comments-CfkortDW.js.map +1 -0
  75. package/dist/_shared/comments-yVd7QMOu.cjs +2 -0
  76. package/dist/_shared/comments-yVd7QMOu.cjs.map +1 -0
  77. package/dist/_shared/copyable-Cn7tRGL5.js +38 -0
  78. package/dist/_shared/copyable-Cn7tRGL5.js.map +1 -0
  79. package/dist/_shared/copyable-CoKTxMSP.cjs +2 -0
  80. package/dist/_shared/copyable-CoKTxMSP.cjs.map +1 -0
  81. package/dist/_shared/data-display-BG7CD164.js +1873 -0
  82. package/dist/_shared/data-display-BG7CD164.js.map +1 -0
  83. package/dist/_shared/data-display-CXVoX3la.cjs +2 -0
  84. package/dist/_shared/data-display-CXVoX3la.cjs.map +1 -0
  85. package/dist/_shared/date-picker-Bf-nnyi-.js +1361 -0
  86. package/dist/_shared/date-picker-Bf-nnyi-.js.map +1 -0
  87. package/dist/_shared/date-picker-Cox4PAUt.cjs +2 -0
  88. package/dist/_shared/date-picker-Cox4PAUt.cjs.map +1 -0
  89. package/dist/_shared/date-pickers-DbN4q0dn.cjs +2 -0
  90. package/dist/_shared/date-pickers-DbN4q0dn.cjs.map +1 -0
  91. package/dist/_shared/date-pickers-DvrOCP-s.js +329 -0
  92. package/dist/_shared/date-pickers-DvrOCP-s.js.map +1 -0
  93. package/dist/_shared/display-BQijMo37.js +986 -0
  94. package/dist/_shared/display-BQijMo37.js.map +1 -0
  95. package/dist/_shared/display-C0ut-Lew.cjs +2 -0
  96. package/dist/_shared/display-C0ut-Lew.cjs.map +1 -0
  97. package/dist/_shared/form-sizing-DJus3nK3.cjs +2 -0
  98. package/dist/_shared/form-sizing-DJus3nK3.cjs.map +1 -0
  99. package/dist/_shared/form-sizing-DWjJsQSR.js +42 -0
  100. package/dist/_shared/form-sizing-DWjJsQSR.js.map +1 -0
  101. package/dist/_shared/forms-BjG7QIb1.cjs +2 -0
  102. package/dist/_shared/forms-BjG7QIb1.cjs.map +1 -0
  103. package/dist/_shared/forms-DljDdyXR.js +3533 -0
  104. package/dist/_shared/forms-DljDdyXR.js.map +1 -0
  105. package/dist/_shared/header-BpFJRINR.cjs +2 -0
  106. package/dist/_shared/header-BpFJRINR.cjs.map +1 -0
  107. package/dist/_shared/header-CKqQF4_r.js +447 -0
  108. package/dist/_shared/header-CKqQF4_r.js.map +1 -0
  109. package/dist/_shared/hooks-DcCkbP1F.js +95 -0
  110. package/dist/_shared/hooks-DcCkbP1F.js.map +1 -0
  111. package/dist/_shared/hooks-RkLytuGj.cjs +2 -0
  112. package/dist/_shared/hooks-RkLytuGj.cjs.map +1 -0
  113. package/dist/_shared/input-Cin0qpjj.js +182 -0
  114. package/dist/_shared/input-Cin0qpjj.js.map +1 -0
  115. package/dist/_shared/input-uuWeiagN.cjs +2 -0
  116. package/dist/_shared/input-uuWeiagN.cjs.map +1 -0
  117. package/dist/_shared/item-CIlSaQg8.js +226 -0
  118. package/dist/_shared/item-CIlSaQg8.js.map +1 -0
  119. package/dist/_shared/item-CSk9Y2qB.cjs +2 -0
  120. package/dist/_shared/item-CSk9Y2qB.cjs.map +1 -0
  121. package/dist/_shared/layout-Cun0HPL4.cjs +2 -0
  122. package/dist/_shared/layout-Cun0HPL4.cjs.map +1 -0
  123. package/dist/_shared/layout-HrU5gwH3.js +261 -0
  124. package/dist/_shared/layout-HrU5gwH3.js.map +1 -0
  125. package/dist/_shared/mentions-BqN82Fon.cjs +2 -0
  126. package/dist/_shared/mentions-BqN82Fon.cjs.map +1 -0
  127. package/dist/_shared/mentions-DV0FT1Th.js +506 -0
  128. package/dist/_shared/mentions-DV0FT1Th.js.map +1 -0
  129. package/dist/_shared/money-display-D5FCRhzB.cjs +2 -0
  130. package/dist/_shared/money-display-D5FCRhzB.cjs.map +1 -0
  131. package/dist/_shared/money-display-FcCAQDCz.js +198 -0
  132. package/dist/_shared/money-display-FcCAQDCz.js.map +1 -0
  133. package/dist/_shared/navigation-CI_Dd8jM.js +436 -0
  134. package/dist/_shared/navigation-CI_Dd8jM.js.map +1 -0
  135. package/dist/_shared/navigation-DUGhCPzJ.cjs +2 -0
  136. package/dist/_shared/navigation-DUGhCPzJ.cjs.map +1 -0
  137. package/dist/_shared/overlays-BRLemLSn.cjs +2 -0
  138. package/dist/_shared/overlays-BRLemLSn.cjs.map +1 -0
  139. package/dist/_shared/overlays-Bef7VNYY.js +735 -0
  140. package/dist/_shared/overlays-Bef7VNYY.js.map +1 -0
  141. package/dist/_shared/popover-menu-CAjhhTfX.js +93 -0
  142. package/dist/_shared/popover-menu-CAjhhTfX.js.map +1 -0
  143. package/dist/_shared/popover-menu-DlkRgOkR.cjs +2 -0
  144. package/dist/_shared/popover-menu-DlkRgOkR.cjs.map +1 -0
  145. package/dist/_shared/rich-text-editor-Bpt3r3J3.js +620 -0
  146. package/dist/_shared/rich-text-editor-Bpt3r3J3.js.map +1 -0
  147. package/dist/_shared/rich-text-editor-DUTX7kBa.cjs +2 -0
  148. package/dist/_shared/rich-text-editor-DUTX7kBa.cjs.map +1 -0
  149. package/dist/_shared/settings-CNT4-6u8.cjs +2 -0
  150. package/dist/_shared/settings-CNT4-6u8.cjs.map +1 -0
  151. package/dist/_shared/settings-CRP6409J.js +143 -0
  152. package/dist/_shared/settings-CRP6409J.js.map +1 -0
  153. package/dist/_shared/sidebar-B0LcBrfI.cjs +2 -0
  154. package/dist/_shared/sidebar-B0LcBrfI.cjs.map +1 -0
  155. package/dist/_shared/sidebar-Bc6JsOTD.js +548 -0
  156. package/dist/_shared/sidebar-Bc6JsOTD.js.map +1 -0
  157. package/dist/_shared/spinner-CVG62sGs.js +67 -0
  158. package/dist/_shared/spinner-CVG62sGs.js.map +1 -0
  159. package/dist/_shared/spinner-VjdonFU2.cjs +2 -0
  160. package/dist/_shared/spinner-VjdonFU2.cjs.map +1 -0
  161. package/dist/_shared/table-_yujELN3.js +1377 -0
  162. package/dist/_shared/table-_yujELN3.js.map +1 -0
  163. package/dist/_shared/table-iV8H1AE0.cjs +2 -0
  164. package/dist/_shared/table-iV8H1AE0.cjs.map +1 -0
  165. package/dist/_shared/textarea-B4zbbqff.cjs +2 -0
  166. package/dist/_shared/textarea-B4zbbqff.cjs.map +1 -0
  167. package/dist/_shared/textarea-Dp0RU-rc.js +118 -0
  168. package/dist/_shared/textarea-Dp0RU-rc.js.map +1 -0
  169. package/dist/_shared/typography-DXvCmE8w.js +201 -0
  170. package/dist/_shared/typography-DXvCmE8w.js.map +1 -0
  171. package/dist/_shared/typography-pzCKaFOc.cjs +2 -0
  172. package/dist/_shared/typography-pzCKaFOc.cjs.map +1 -0
  173. package/dist/_shared/workspace-C3U57t2a.cjs +2 -0
  174. package/dist/_shared/workspace-C3U57t2a.cjs.map +1 -0
  175. package/dist/_shared/workspace-Db--ow3r.js +357 -0
  176. package/dist/_shared/workspace-Db--ow3r.js.map +1 -0
  177. package/dist/components/base/accordion/index.cjs +1 -1
  178. package/dist/components/base/accordion/index.js +1 -1
  179. package/dist/components/base/badge/badge.d.ts.map +1 -1
  180. package/dist/components/base/badge/index.cjs +1 -1
  181. package/dist/components/base/badge/index.js +1 -1
  182. package/dist/components/base/buttons/index.cjs +1 -1
  183. package/dist/components/base/buttons/index.js +2 -2
  184. package/dist/components/base/cards/index.cjs +1 -1
  185. package/dist/components/base/cards/index.js +1 -1
  186. package/dist/components/base/cards/smart-card.types.d.ts +3 -3
  187. package/dist/components/base/carousel/index.cjs +1 -1
  188. package/dist/components/base/carousel/index.js +1 -1
  189. package/dist/components/base/combobox/index.cjs +1 -1
  190. package/dist/components/base/combobox/index.js +1 -1
  191. package/dist/components/base/command/index.cjs +1 -1
  192. package/dist/components/base/command/index.js +1 -1
  193. package/dist/components/base/copyable/index.cjs +1 -1
  194. package/dist/components/base/copyable/index.js +1 -1
  195. package/dist/components/base/currency/index.cjs +1 -1
  196. package/dist/components/base/currency/index.js +1 -1
  197. package/dist/components/base/date-pickers/index.cjs +1 -1
  198. package/dist/components/base/date-pickers/index.js +2 -2
  199. package/dist/components/base/display/chart.cjs +1 -1
  200. package/dist/components/base/display/chart.js +1 -1
  201. package/dist/components/base/display/index.cjs +1 -1
  202. package/dist/components/base/display/index.js +3 -3
  203. package/dist/components/base/event-calendar/index.cjs +1 -1
  204. package/dist/components/base/event-calendar/index.cjs.map +1 -1
  205. package/dist/components/base/event-calendar/index.js +6 -6
  206. package/dist/components/base/event-calendar/index.js.map +1 -1
  207. package/dist/components/base/forms/index.cjs +1 -1
  208. package/dist/components/base/forms/index.js +5 -5
  209. package/dist/components/base/item/index.cjs +1 -1
  210. package/dist/components/base/item/index.js +1 -1
  211. package/dist/components/base/map/index.cjs +1 -1
  212. package/dist/components/base/map/index.js +2 -2
  213. package/dist/components/base/navigation/index.cjs +1 -1
  214. package/dist/components/base/navigation/index.js +3 -3
  215. package/dist/components/base/popover-menu/index.cjs +1 -1
  216. package/dist/components/base/popover-menu/index.js +1 -1
  217. package/dist/components/base/spinner/index.cjs +1 -1
  218. package/dist/components/base/spinner/index.js +1 -1
  219. package/dist/components/base/table/data-table.d.ts.map +1 -1
  220. package/dist/components/base/table/index.cjs +1 -1
  221. package/dist/components/base/table/index.js +1 -1
  222. package/dist/components/base/table/table-header.d.ts.map +1 -1
  223. package/dist/components/composed/admin/index.cjs +1 -1
  224. package/dist/components/composed/admin/index.cjs.map +1 -1
  225. package/dist/components/composed/admin/index.js +13 -13
  226. package/dist/components/composed/admin/index.js.map +1 -1
  227. package/dist/components/composed/ai/index.cjs +1 -1
  228. package/dist/components/composed/ai/index.cjs.map +1 -1
  229. package/dist/components/composed/ai/index.js +25 -25
  230. package/dist/components/composed/ai/index.js.map +1 -1
  231. package/dist/components/composed/analytics/index.cjs +1 -1
  232. package/dist/components/composed/analytics/index.cjs.map +1 -1
  233. package/dist/components/composed/analytics/index.js +26 -26
  234. package/dist/components/composed/analytics/index.js.map +1 -1
  235. package/dist/components/composed/cards/index.cjs +1 -1
  236. package/dist/components/composed/cards/index.cjs.map +1 -1
  237. package/dist/components/composed/cards/index.js +15 -15
  238. package/dist/components/composed/cards/index.js.map +1 -1
  239. package/dist/components/composed/commerce/index.cjs +1 -1
  240. package/dist/components/composed/commerce/index.cjs.map +1 -1
  241. package/dist/components/composed/commerce/index.js +28 -28
  242. package/dist/components/composed/commerce/index.js.map +1 -1
  243. package/dist/components/composed/dark-surfaces/index.cjs +1 -1
  244. package/dist/components/composed/dark-surfaces/index.js +4 -4
  245. package/dist/components/composed/data-display/index.cjs +1 -1
  246. package/dist/components/composed/data-display/index.js +1 -1
  247. package/dist/components/composed/data-display/metadata/metadata-list.d.ts.map +1 -1
  248. package/dist/components/composed/navigation/index.cjs +1 -1
  249. package/dist/components/composed/navigation/index.cjs.map +1 -1
  250. package/dist/components/composed/navigation/index.js +15 -15
  251. package/dist/components/composed/navigation/index.js.map +1 -1
  252. package/dist/components/composed/onboarding/index.cjs +1 -1
  253. package/dist/components/composed/onboarding/index.js +3 -3
  254. package/dist/components/composed/timelines/index.cjs +1 -1
  255. package/dist/components/composed/timelines/index.cjs.map +1 -1
  256. package/dist/components/composed/timelines/index.js +10 -10
  257. package/dist/components/composed/timelines/index.js.map +1 -1
  258. package/dist/components/features/activities/index.cjs +1 -1
  259. package/dist/components/features/activities/index.cjs.map +1 -1
  260. package/dist/components/features/activities/index.js +9 -9
  261. package/dist/components/features/activities/index.js.map +1 -1
  262. package/dist/components/features/ai-chat/index.cjs +2 -2
  263. package/dist/components/features/ai-chat/index.cjs.map +1 -1
  264. package/dist/components/features/ai-chat/index.js +8 -8
  265. package/dist/components/features/ai-chat/index.js.map +1 -1
  266. package/dist/components/features/card/index.cjs +1 -1
  267. package/dist/components/features/card/index.js +4 -4
  268. package/dist/components/features/comments/index.cjs +1 -1
  269. package/dist/components/features/comments/index.js +2 -2
  270. package/dist/components/features/data-view/index.cjs +1 -1
  271. package/dist/components/features/data-view/index.cjs.map +1 -1
  272. package/dist/components/features/data-view/index.js +3 -3
  273. package/dist/components/features/data-view/index.js.map +1 -1
  274. package/dist/components/features/event-log/index.cjs +1 -1
  275. package/dist/components/features/event-log/index.js +4 -4
  276. package/dist/components/features/filters/index.cjs +1 -1
  277. package/dist/components/features/filters/index.cjs.map +1 -1
  278. package/dist/components/features/filters/index.js +11 -11
  279. package/dist/components/features/filters/index.js.map +1 -1
  280. package/dist/components/features/global-search/index.cjs +1 -1
  281. package/dist/components/features/global-search/index.cjs.map +1 -1
  282. package/dist/components/features/global-search/index.js +14 -14
  283. package/dist/components/features/global-search/index.js.map +1 -1
  284. package/dist/components/features/kanban/index.cjs +1 -1
  285. package/dist/components/features/kanban/index.js +3 -3
  286. package/dist/components/features/media-library/index.cjs +1 -1
  287. package/dist/components/features/media-library/index.cjs.map +1 -1
  288. package/dist/components/features/media-library/index.js +23 -23
  289. package/dist/components/features/media-library/index.js.map +1 -1
  290. package/dist/components/features/mentions/index.cjs +1 -1
  291. package/dist/components/features/mentions/index.js +1 -1
  292. package/dist/components/features/overlays/index.cjs +1 -1
  293. package/dist/components/features/overlays/index.js +1 -1
  294. package/dist/components/features/products/index.cjs +1 -1
  295. package/dist/components/features/products/index.cjs.map +1 -1
  296. package/dist/components/features/products/index.js +14 -14
  297. package/dist/components/features/products/index.js.map +1 -1
  298. package/dist/components/features/resource/index.cjs +1 -1
  299. package/dist/components/features/resource/index.cjs.map +1 -1
  300. package/dist/components/features/resource/index.js +5 -5
  301. package/dist/components/features/resource/index.js.map +1 -1
  302. package/dist/components/features/rich-text-editor/index.cjs +1 -1
  303. package/dist/components/features/rich-text-editor/index.js +1 -1
  304. package/dist/components/features/schema-form/index.cjs +1 -1
  305. package/dist/components/features/schema-form/index.js +8 -8
  306. package/dist/components/features/suggestions/index.cjs +1 -1
  307. package/dist/components/features/suggestions/index.js +1 -1
  308. package/dist/components/features/sync/index.cjs +1 -1
  309. package/dist/components/features/sync/index.js +2 -2
  310. package/dist/components/layout/app-shell/index.cjs +1 -1
  311. package/dist/components/layout/app-shell/index.js +1 -1
  312. package/dist/components/layout/auth/index.cjs +1 -1
  313. package/dist/components/layout/auth/index.js +1 -1
  314. package/dist/components/layout/header/index.cjs +1 -1
  315. package/dist/components/layout/header/index.js +1 -1
  316. package/dist/components/layout/hooks/index.cjs +1 -1
  317. package/dist/components/layout/hooks/index.js +1 -1
  318. package/dist/components/layout/index.cjs +1 -1
  319. package/dist/components/layout/index.js +8 -8
  320. package/dist/components/layout/page/index.cjs +1 -1
  321. package/dist/components/layout/page/index.js +1 -1
  322. package/dist/components/layout/settings/index.cjs +1 -1
  323. package/dist/components/layout/settings/index.js +1 -1
  324. package/dist/components/layout/sidebar/index.cjs +1 -1
  325. package/dist/components/layout/sidebar/index.js +2 -2
  326. package/dist/components/layout/workspace/index.cjs +1 -1
  327. package/dist/components/layout/workspace/index.js +1 -1
  328. package/dist/components/typography/index.cjs +1 -1
  329. package/dist/components/typography/index.js +1 -1
  330. package/dist/services/actions/index.cjs +1 -1
  331. package/dist/services/actions/index.js +1 -1
  332. package/dist/showcase/assets/AreaChart-DtVzijR8.js +6 -0
  333. package/dist/showcase/assets/CompositeItem-SL6R0H3r.js +1 -0
  334. package/dist/showcase/assets/CompositeRoot-CTygKc2d.js +1 -0
  335. package/dist/showcase/assets/DialogTrigger-m2m9VdXk.js +1 -0
  336. package/dist/showcase/assets/LabelableContext-D6DcOg5I.js +1 -0
  337. package/dist/showcase/assets/PreviewLayout-CHW8F5uE.js +1 -0
  338. package/dist/showcase/assets/RadioGroup-BAOoU1eO.js +1 -0
  339. package/dist/showcase/assets/ScrollAreaCorner-CrCCP65t.js +1 -0
  340. package/dist/showcase/assets/Separator-DMs71Vib.js +1 -0
  341. package/dist/showcase/assets/ToolbarRootContext-DWKxsCxT.js +1 -0
  342. package/dist/showcase/assets/accordion-Clw5XNXP.js +171 -0
  343. package/dist/showcase/assets/accordion-variants-jiwKaPjE.js +1 -0
  344. package/dist/showcase/assets/action-menu-CW8zR6Ne.js +1 -0
  345. package/dist/showcase/assets/actions-Cf7vl3u0.js +310 -0
  346. package/dist/showcase/assets/activities-CyI5sJuS.js +500 -0
  347. package/dist/showcase/assets/activities-feed-card-Gv-Y4BBq.js +1 -0
  348. package/dist/showcase/assets/admin-CQVbTxGD.js +140 -0
  349. package/dist/showcase/assets/ai-Bkp2BY_z.js +207 -0
  350. package/dist/showcase/assets/ai-artifact-Cf1vEdVD.js +2 -0
  351. package/dist/showcase/assets/ai-chat-Bs3x6cK3.js +568 -0
  352. package/dist/showcase/assets/ai-elements-VbMUV2-i.js +387 -0
  353. package/dist/showcase/assets/ai-tool-call-BQYg4QB_.js +1 -0
  354. package/dist/showcase/assets/alert-BUmpNcXV.js +1 -0
  355. package/dist/showcase/assets/alert-CWPNW7eb.js +93 -0
  356. package/dist/showcase/assets/alert-nUwhk3AB.js +62 -0
  357. package/dist/showcase/assets/api-key-list-B1qVywOP.js +73 -0
  358. package/dist/showcase/assets/api-key-list-BI2FGbzV.js +1 -0
  359. package/dist/showcase/assets/app-sidebar-B35a8HWK.js +1 -0
  360. package/dist/showcase/assets/arrow-down-C1w0M8tE.js +1 -0
  361. package/dist/showcase/assets/arrow-left-DtILDtAv.js +1 -0
  362. package/dist/showcase/assets/arrow-right-TnZMfDbP.js +1 -0
  363. package/dist/showcase/assets/arrow-up-BX-KDIDB.js +1 -0
  364. package/dist/showcase/assets/arrow-up-right-CrnWqXwJ.js +1 -0
  365. package/dist/showcase/assets/avatar-C5YI0roK.js +67 -0
  366. package/dist/showcase/assets/avatar-DsnH-Xmz.js +1 -0
  367. package/dist/showcase/assets/avatar-S4vMi7Be.js +57 -0
  368. package/dist/showcase/assets/avatar-q4wqX6yD.js +1 -0
  369. package/dist/showcase/assets/badge-DJacF8-J.js +31 -0
  370. package/dist/showcase/assets/badge-check-DDJtQHcD.js +1 -0
  371. package/dist/showcase/assets/bell-DiXXE8YI.js +1 -0
  372. package/dist/showcase/assets/bot-bONqc_7j.js +1 -0
  373. package/dist/showcase/assets/box-lhUq3Chj.js +1 -0
  374. package/dist/showcase/assets/braces-IKXiJgb3.js +1 -0
  375. package/dist/showcase/assets/brain-DcXlhbJZ.js +1 -0
  376. package/dist/showcase/assets/brand-CramZg2-.js +36 -0
  377. package/dist/showcase/assets/breadcrumb-BL7UjlLh.js +1 -0
  378. package/dist/showcase/assets/breadcrumb-CZRbcf09.js +52 -0
  379. package/dist/showcase/assets/breadcrumbs-DJzvSt_Z.js +1 -0
  380. package/dist/showcase/assets/briefcase-CQQ0m97G.js +1 -0
  381. package/dist/showcase/assets/building-2-BkQcv8WR.js +1 -0
  382. package/dist/showcase/assets/button-K7M0irWq.js +44 -0
  383. package/dist/showcase/assets/button-group-KCGa38c8.js +1 -0
  384. package/dist/showcase/assets/buttons-CvyBMRD6.js +272 -0
  385. package/dist/showcase/assets/calendar-BJHjhWQX.js +1 -0
  386. package/dist/showcase/assets/calendar-ChMVRsNC.js +16 -0
  387. package/dist/showcase/assets/calendar-days-BgkRJVxQ.js +1 -0
  388. package/dist/showcase/assets/calendar-xpHhfGnq.js +1 -0
  389. package/dist/showcase/assets/camera-C67freYi.js +1 -0
  390. package/dist/showcase/assets/card-CfOqXMVz.js +188 -0
  391. package/dist/showcase/assets/card-bLjedjT5.js +1 -0
  392. package/dist/showcase/assets/card-primitives-FUPmQCsu.js +1 -0
  393. package/dist/showcase/assets/card-radio-group-D_QNJ2Hm.js +1 -0
  394. package/dist/showcase/assets/cards-yHZa0kEf.js +353 -0
  395. package/dist/showcase/assets/carousel-DG1cKry4.js +449 -0
  396. package/dist/showcase/assets/cell-renderers-qfJ-7alN.js +1 -0
  397. package/dist/showcase/assets/chart-B_yVfbWJ.js +358 -0
  398. package/dist/showcase/assets/chart-column-CYrVWmMk.js +1 -0
  399. package/dist/showcase/assets/checkbox-NW6EcvtD.js +1 -0
  400. package/dist/showcase/assets/checkbox-pA_L1P-f.js +1 -0
  401. package/dist/showcase/assets/chevron-down-DLrHjdQ6.js +1 -0
  402. package/dist/showcase/assets/chevron-left-B_NQOEWI.js +1 -0
  403. package/dist/showcase/assets/chevron-up-6hst2jwR.js +1 -0
  404. package/dist/showcase/assets/chevrons-up-down-C_pj9oOa.js +1 -0
  405. package/dist/showcase/assets/circle-Cw9qV72m.js +1 -0
  406. package/dist/showcase/assets/circle-alert-D3Vcma6L.js +1 -0
  407. package/dist/showcase/assets/circle-check-DdjJpGc9.js +1 -0
  408. package/dist/showcase/assets/circle-check-big-Dnq-jwtv.js +1 -0
  409. package/dist/showcase/assets/circle-dot-DN8DFgIP.js +1 -0
  410. package/dist/showcase/assets/circle-question-mark-Dzgiv4oS.js +1 -0
  411. package/dist/showcase/assets/circle-x-BzTSkndC.js +1 -0
  412. package/dist/showcase/assets/clock-3-CVwHXCmo.js +1 -0
  413. package/dist/showcase/assets/clock-BIJ9p953.js +1 -0
  414. package/dist/showcase/assets/code-xml-DrU5ziCA.js +1 -0
  415. package/dist/showcase/assets/collapsible-7rdCo71k.js +27 -0
  416. package/dist/showcase/assets/collapsible-DCcTSlEH.js +1 -0
  417. package/dist/showcase/assets/combobox-mx8o5sV1.js +685 -0
  418. package/dist/showcase/assets/command-CKJDGdA9.js +1 -0
  419. package/dist/showcase/assets/command-CzGLPzoO.js +1 -0
  420. package/dist/showcase/assets/comment-composer-CSoEIapl.js +1 -0
  421. package/dist/showcase/assets/comment-item-pjaH53iB.js +1 -0
  422. package/dist/showcase/assets/comments-_ccotzWA.js +357 -0
  423. package/dist/showcase/assets/commerce-BuiQiRsf.js +267 -0
  424. package/dist/showcase/assets/composite-Bghohd0p.js +1 -0
  425. package/dist/showcase/assets/contact-card-CqM2uz_w.js +65 -0
  426. package/dist/showcase/assets/content-container-fC4z98GI.js +1 -0
  427. package/dist/showcase/assets/copyable-BMQK8sID.js +1 -0
  428. package/dist/showcase/assets/copyable-DVR2FAa0.js +96 -0
  429. package/dist/showcase/assets/course-card-Cku2z18g.js +77 -0
  430. package/dist/showcase/assets/cpu-A072t3kq.js +1 -0
  431. package/dist/showcase/assets/credit-card-BGwhx9Zo.js +1 -0
  432. package/dist/showcase/assets/css-variables-BAW_VrGk.js +1205 -0
  433. package/dist/showcase/assets/currency-Da3C0Uzb.js +149 -0
  434. package/dist/showcase/assets/dark-surfaces-BHYLEj80.js +90 -0
  435. package/dist/showcase/assets/data-view--EAYihh0.js +124 -0
  436. package/dist/showcase/assets/data-view-BAMwKzZO.js +4 -0
  437. package/dist/showcase/assets/database-C489WIbr.js +1 -0
  438. package/dist/showcase/assets/date-block-DuNaPSBU.js +1 -0
  439. package/dist/showcase/assets/date-picker-Dq-9L64y.js +1 -0
  440. package/dist/showcase/assets/date-pickers-D0ReMKc9.js +73 -0
  441. package/dist/showcase/assets/dense-info-CXwjqQB1.js +106 -0
  442. package/dist/showcase/assets/design-system-consistency-CGoKv0Vf.js +264 -0
  443. package/dist/showcase/assets/dialog-DIrJcAzq.js +1 -0
  444. package/dist/showcase/assets/dialog-O45UwQJs.js +1 -0
  445. package/dist/showcase/assets/display-utilities-VKOARJyC.js +267 -0
  446. package/dist/showcase/assets/dist-BavkTE-I.js +1 -0
  447. package/dist/showcase/assets/dist-DPxPKIgU.js +45 -0
  448. package/dist/showcase/assets/dollar-sign-CH2fcyek.js +1 -0
  449. package/dist/showcase/assets/download-whAw79X4.js +1 -0
  450. package/dist/showcase/assets/dropdown-menu-PVKwhWds.js +1 -0
  451. package/dist/showcase/assets/dropzone-B9sc8Mwa.js +1 -0
  452. package/dist/showcase/assets/earth-BpkE9LMh.js +1 -0
  453. package/dist/showcase/assets/ellipsis-CEVdIbhD.js +1 -0
  454. package/dist/showcase/assets/ellipsis-vertical-CBIvtUVz.js +1 -0
  455. package/dist/showcase/assets/empty-Dp1eCMIl.js +1 -0
  456. package/dist/showcase/assets/empty-item--dZz4VlJ.js +49 -0
  457. package/dist/showcase/assets/empty-state-ZOiE-hWY.js +190 -0
  458. package/dist/showcase/assets/empty-state-dsivN4CA.js +1 -0
  459. package/dist/showcase/assets/enhanced-activities-BpzUxaof.js +357 -0
  460. package/dist/showcase/assets/enhanced-combobox-D71BOuiX.js +1 -0
  461. package/dist/showcase/assets/esm-DT-TXPCJ.js +2 -0
  462. package/dist/showcase/assets/event-calendar-aVpAFZFq.js +138 -0
  463. package/dist/showcase/assets/event-log-DVcvyQ-P.js +330 -0
  464. package/dist/showcase/assets/example-CzbL5xoH.js +1 -0
  465. package/dist/showcase/assets/external-link-BaLE1QE5.js +1 -0
  466. package/dist/showcase/assets/eye-Dq0mLKrs.js +1 -0
  467. package/dist/showcase/assets/feature-announcement-sWKBC2fs.js +34 -0
  468. package/dist/showcase/assets/file-CgW3NvCL.js +1 -0
  469. package/dist/showcase/assets/file-text-JGaJQ8Wd.js +1 -0
  470. package/dist/showcase/assets/filter-layout-jfahl8aJ.js +1 -0
  471. package/dist/showcase/assets/filters-D7zegZVD.js +139 -0
  472. package/dist/showcase/assets/flag-H6U1f4wd.js +1 -0
  473. package/dist/showcase/assets/folder-open-sT96wRxJ.js +1 -0
  474. package/dist/showcase/assets/form-field-CQuSWnj8.js +1 -0
  475. package/dist/showcase/assets/form-sizing-Dltt6Fj-.js +1 -0
  476. package/dist/showcase/assets/format-DGPJ5dDq.js +1 -0
  477. package/dist/showcase/assets/forms-CdDJkAFt.js +915 -0
  478. package/dist/showcase/assets/funnel-Bh56GDO0.js +1 -0
  479. package/dist/showcase/assets/generic-CqSABKHr.js +1 -0
  480. package/dist/showcase/assets/getPseudoElementBounds-Cgw3-xUB.js +1 -0
  481. package/dist/showcase/assets/gift-ChVS2ovQ.js +1 -0
  482. package/dist/showcase/assets/giftcard-cards-CuaGn8-J.js +85 -0
  483. package/dist/showcase/assets/git-branch-86jQZnz4.js +1 -0
  484. package/dist/showcase/assets/global-search-C92CjOf8.js +215 -0
  485. package/dist/showcase/assets/global-search-DpVIWyO9.js +1 -0
  486. package/dist/showcase/assets/globe-DmGzYOlq.js +1 -0
  487. package/dist/showcase/assets/gradient-card-BUZzXFdZ.js +58 -0
  488. package/dist/showcase/assets/hash-pc6IIDge.js +1 -0
  489. package/dist/showcase/assets/header-DbM4l1Z6.js +1 -0
  490. package/dist/showcase/assets/header-notifications-CaymUd4n.js +1 -0
  491. package/dist/showcase/assets/heart-DtfPBlXq.js +1 -0
  492. package/dist/showcase/assets/hooks-JiLlGOJ-.js +220 -0
  493. package/dist/showcase/assets/house-CzNWewi5.js +1 -0
  494. package/dist/showcase/assets/icon-badge-G9Fp891n.js +1 -0
  495. package/dist/showcase/assets/icon-badge-e8N5BSYf.js +37 -0
  496. package/dist/showcase/assets/image-9IQW7agU.js +1 -0
  497. package/dist/showcase/assets/inbox-DU4YaGtc.js +1 -0
  498. package/dist/showcase/assets/index-CuXjv2p6.css +2 -0
  499. package/dist/showcase/assets/index-DN09-Vts.js +10 -0
  500. package/dist/showcase/assets/inertValue-kRQb7jwi.js +1 -0
  501. package/dist/showcase/assets/info-B9AXwUDF.js +1 -0
  502. package/dist/showcase/assets/inline-stat-BkLIKCvD.js +1 -0
  503. package/dist/showcase/assets/inline-stat-XqGHDQrK.js +15 -0
  504. package/dist/showcase/assets/input-BXHv6p9P.js +1 -0
  505. package/dist/showcase/assets/input-D_T9s_tn.js +1 -0
  506. package/dist/showcase/assets/input-group-Bs8dmhR6.js +47 -0
  507. package/dist/showcase/assets/input-group-CqkASeoV.js +1 -0
  508. package/dist/showcase/assets/inputs-DY7w_ssI.js +155 -0
  509. package/dist/showcase/assets/installation-Dg3FdGJ1.js +134 -0
  510. package/dist/showcase/assets/invoice-header-Ba-Y55Ag.js +36 -0
  511. package/dist/showcase/assets/invoice-items-CIJ8EfPg.js +36 -0
  512. package/dist/showcase/assets/invoice-mini-BISFvM7J.js +14 -0
  513. package/dist/showcase/assets/invoice-table-DcyVZTvl.js +30 -0
  514. package/dist/showcase/assets/isSameDay-av07hGac.js +1 -0
  515. package/dist/showcase/assets/isToday-GY5FlPL9.js +1 -0
  516. package/dist/showcase/assets/italic-Du0n76Xk.js +1 -0
  517. package/dist/showcase/assets/item-D8Lp4R-T.js +139 -0
  518. package/dist/showcase/assets/item-DTsZnSJG.js +1 -0
  519. package/dist/showcase/assets/item-Di7HZF5G.js +1 -0
  520. package/dist/showcase/assets/kanban-Dcminjsa.js +188 -0
  521. package/dist/showcase/assets/key-round-BBue3xKx.js +1 -0
  522. package/dist/showcase/assets/label-dkUEHYaz.js +1 -0
  523. package/dist/showcase/assets/languages-XxP8Uu82.js +1 -0
  524. package/dist/showcase/assets/layers-Bi_-RuHS.js +1 -0
  525. package/dist/showcase/assets/layout-app-shell-Cr6Ep0Zz.js +608 -0
  526. package/dist/showcase/assets/layout-auth-DffIslnp.js +790 -0
  527. package/dist/showcase/assets/layout-containers-BuSg6L6o.js +101 -0
  528. package/dist/showcase/assets/layout-header-DAxSUI18.js +203 -0
  529. package/dist/showcase/assets/layout-page-CVgVJHf1.js +314 -0
  530. package/dist/showcase/assets/layout-primitives-q8NXbEld.js +34 -0
  531. package/dist/showcase/assets/layout-sidebar-bB6AJaGs.js +224 -0
  532. package/dist/showcase/assets/layout-users-DG5u517t.js +117 -0
  533. package/dist/showcase/assets/layout-workspace-CKMDUM2b.js +191 -0
  534. package/dist/showcase/assets/lib-CaQvPpSJ.js +1 -0
  535. package/dist/showcase/assets/list-checks-Dhr60VvL.js +1 -0
  536. package/dist/showcase/assets/lock-CYVbyBpM.js +1 -0
  537. package/dist/showcase/assets/lock-keyhole-TUVID45I.js +1 -0
  538. package/dist/showcase/assets/mail-DfkwmVKE.js +1 -0
  539. package/dist/showcase/assets/mail-check-CnBhgH_h.js +1 -0
  540. package/dist/showcase/assets/map-Ck14_o-F.js +124 -0
  541. package/dist/showcase/assets/map-pin-Di7TUhai.js +1 -0
  542. package/dist/showcase/assets/media-library-CzM_to29.js +699 -0
  543. package/dist/showcase/assets/mention-inline-suggestions-B1RHUfnH.js +1 -0
  544. package/dist/showcase/assets/mentions-CdaPXOLl.js +138 -0
  545. package/dist/showcase/assets/menus-DuqcLdg1.js +171 -0
  546. package/dist/showcase/assets/message-square-DuW3PrFI.js +1 -0
  547. package/dist/showcase/assets/metadata-list-CCRGSPaS.js +286 -0
  548. package/dist/showcase/assets/metadata-list-Drvz5mwy.js +1 -0
  549. package/dist/showcase/assets/metric-BSaXa3Z_.js +1 -0
  550. package/dist/showcase/assets/metric-bar-CM1Rmk8y.js +1 -0
  551. package/dist/showcase/assets/metric-grid-BBGxdYNJ.js +1 -0
  552. package/dist/showcase/assets/metric-trend-chip-C_LrbPyT.js +1 -0
  553. package/dist/showcase/assets/metrics-analytics-bar-ByvVltQV.js +44 -0
  554. package/dist/showcase/assets/metrics-analytics-cards-CNGiVG1A.js +50 -0
  555. package/dist/showcase/assets/metrics-comparison-BLUvtt5N.js +76 -0
  556. package/dist/showcase/assets/metrics-heatmap-CZWhn4_i.js +27 -0
  557. package/dist/showcase/assets/metrics-inline-badge-CcPm2_ON.js +17 -0
  558. package/dist/showcase/assets/metrics-kpi-row-CitG5Aea.js +31 -0
  559. package/dist/showcase/assets/metrics-micro-grid-CAsplRVI.js +42 -0
  560. package/dist/showcase/assets/metrics-overview-DSRwW-3j.js +192 -0
  561. package/dist/showcase/assets/metrics-stat-cards-BTdSpUV_.js +54 -0
  562. package/dist/showcase/assets/minus-BaXg6nPb.js +1 -0
  563. package/dist/showcase/assets/money-display-HegN6NVU.js +1 -0
  564. package/dist/showcase/assets/month-year-picker-DGSalGea.js +1 -0
  565. package/dist/showcase/assets/navigation-B9kcgNmJ.js +90 -0
  566. package/dist/showcase/assets/navigation-D4OJbw4T.js +231 -0
  567. package/dist/showcase/assets/navigation-extras-xm_wzPZr.js +43 -0
  568. package/dist/showcase/assets/onboarding-checklist-CWuCJKDd.js +119 -0
  569. package/dist/showcase/assets/overflow-tab-bar-Dq-I4MUu.js +1 -0
  570. package/dist/showcase/assets/overlays-BHf9SZOh.js +159 -0
  571. package/dist/showcase/assets/overlays-DziL3nVU.js +408 -0
  572. package/dist/showcase/assets/overview-Cc69up8i.js +184 -0
  573. package/dist/showcase/assets/package-Bc-NuFnd.js +1 -0
  574. package/dist/showcase/assets/package-check-5LQwCfGh.js +1 -0
  575. package/dist/showcase/assets/page-B2o5HSfY.js +1 -0
  576. package/dist/showcase/assets/page-action-button-CfS6vsyC.js +1 -0
  577. package/dist/showcase/assets/page-header-W6quU5pO.js +1 -0
  578. package/dist/showcase/assets/pagination-Bfs7Zszm.js +1 -0
  579. package/dist/showcase/assets/pagination-DHs104ji.js +42 -0
  580. package/dist/showcase/assets/paperclip-CXeiMywc.js +1 -0
  581. package/dist/showcase/assets/password-input-C61t743N.js +1 -0
  582. package/dist/showcase/assets/pencil-C1TXsTfP.js +1 -0
  583. package/dist/showcase/assets/phone-Bh-68R_E.js +1 -0
  584. package/dist/showcase/assets/plus-CKBaO4jG.js +1 -0
  585. package/dist/showcase/assets/popover-C_7qLizt.js +1 -0
  586. package/dist/showcase/assets/popover-hgtHqd0h.js +1 -0
  587. package/dist/showcase/assets/popover-menu-DmYSBsji.js +1 -0
  588. package/dist/showcase/assets/products-DSvcQz-Q.js +423 -0
  589. package/dist/showcase/assets/progress-Chxeo8g4.js +18 -0
  590. package/dist/showcase/assets/progress-fYPoCyf-.js +1 -0
  591. package/dist/showcase/assets/props-table-izArO1Pv.js +1 -0
  592. package/dist/showcase/assets/quote-wvfNu9t7.js +1 -0
  593. package/dist/showcase/assets/receipt-BlXBX4ZJ.js +1 -0
  594. package/dist/showcase/assets/receipt-text-stSsUTV5.js +1 -0
  595. package/dist/showcase/assets/refinement-guide-Bri81J9N.js +189 -0
  596. package/dist/showcase/assets/refresh-cw-tZzNDEGO.js +1 -0
  597. package/dist/showcase/assets/resolveValueLabel-Cti97iX8.js +1 -0
  598. package/dist/showcase/assets/resource-B727CTVi.js +139 -0
  599. package/dist/showcase/assets/resource-DytT_quB.js +1 -0
  600. package/dist/showcase/assets/resource-selector-card-wNuW382N.js +43 -0
  601. package/dist/showcase/assets/rich-text-editor-DdK5YD0y.js +143 -0
  602. package/dist/showcase/assets/rich-text-editor-DqY2H6e0.js +124 -0
  603. package/dist/showcase/assets/rotate-ccw-Bp4aMDrI.js +1 -0
  604. package/dist/showcase/assets/route-D2owHMka.js +1 -0
  605. package/dist/showcase/assets/save-DjC_iy0t.js +1 -0
  606. package/dist/showcase/assets/schema-form-CQtLwGC1.js +327 -0
  607. package/dist/showcase/assets/scroll-area-BQlHFfkG.js +32 -0
  608. package/dist/showcase/assets/scroll-area-D3Rrt85s.js +1 -0
  609. package/dist/showcase/assets/section-DYfGx1Q5.js +1 -0
  610. package/dist/showcase/assets/select-BCJGhRpc.js +1 -0
  611. package/dist/showcase/assets/select-Cf5EigqA.js +1 -0
  612. package/dist/showcase/assets/send-86Vr11Ys.js +1 -0
  613. package/dist/showcase/assets/separator-BHjNVb5O.js +1 -0
  614. package/dist/showcase/assets/separator-BejjbTbO.js +28 -0
  615. package/dist/showcase/assets/settings-2-DNNVOsjP.js +1 -0
  616. package/dist/showcase/assets/settings-Bsi5BLx5.js +1 -0
  617. package/dist/showcase/assets/sheet-BazhMvfb.js +1 -0
  618. package/dist/showcase/assets/shield-alert-D-Jbocfj.js +1 -0
  619. package/dist/showcase/assets/shield-check-D9eDVcJ1.js +1 -0
  620. package/dist/showcase/assets/shield-xI2P9G5d.js +1 -0
  621. package/dist/showcase/assets/shopping-bag-DOGs3sez.js +1 -0
  622. package/dist/showcase/assets/showcase-s-5CuLAJ.js +132 -0
  623. package/dist/showcase/assets/sidebar-Rz44gw_a.js +1 -0
  624. package/dist/showcase/assets/sidebar.context-Bbcdo3o8.js +1 -0
  625. package/dist/showcase/assets/skeleton-CY8ieqD-.js +1 -0
  626. package/dist/showcase/assets/skeleton-CgoH6CPT.js +29 -0
  627. package/dist/showcase/assets/slider-okW2bgkG.js +1 -0
  628. package/dist/showcase/assets/smart-card-CVwEPwfI.js +1 -0
  629. package/dist/showcase/assets/sonner-CixCpxj2.js +22 -0
  630. package/dist/showcase/assets/sortable.esm-DKcVtGTb.js +5 -0
  631. package/dist/showcase/assets/sparkles-DDEVdtmy.js +1 -0
  632. package/dist/showcase/assets/spinner-BVGPoAEv.js +49 -0
  633. package/dist/showcase/assets/spinner-FURXSp1Q.js +1 -0
  634. package/dist/showcase/assets/spinner-u6TwJ3Ii.js +30 -0
  635. package/dist/showcase/assets/square-pen-DVXVT0cQ.js +1 -0
  636. package/dist/showcase/assets/stacked-avatars-CKOQhAx4.js +1 -0
  637. package/dist/showcase/assets/star-B3ZPfxuz.js +1 -0
  638. package/dist/showcase/assets/startOfDay-LwMBRUSU.js +1 -0
  639. package/dist/showcase/assets/styles-UIKkojWJ.js +1 -0
  640. package/dist/showcase/assets/suggestions-DbrzKjbi.js +126 -0
  641. package/dist/showcase/assets/switch-CAw84QpS.js +1 -0
  642. package/dist/showcase/assets/switch-Cjt2MCgr.js +1 -0
  643. package/dist/showcase/assets/sync-DWbqfpBH.js +124 -0
  644. package/dist/showcase/assets/table-Bx5lo5FP.js +686 -0
  645. package/dist/showcase/assets/table-C2RQulDb.js +1 -0
  646. package/dist/showcase/assets/table-actions-Clo3WEfM.js +1 -0
  647. package/dist/showcase/assets/tabs-DRtlcg6b.js +19 -0
  648. package/dist/showcase/assets/tabs-wMPtvuT5.js +1 -0
  649. package/dist/showcase/assets/tags-input-D5FpWOWF.js +1 -0
  650. package/dist/showcase/assets/text-button-Cwh6D6qG.js +1 -0
  651. package/dist/showcase/assets/text-link-DI1uXdGl.js +1 -0
  652. package/dist/showcase/assets/textarea-CGbt4gBZ.js +1 -0
  653. package/dist/showcase/assets/textarea-JPgPLhyk.js +1 -0
  654. package/dist/showcase/assets/timelines-CkHN08n6.js +200 -0
  655. package/dist/showcase/assets/toggle-group-BpXkR9uD.js +1 -0
  656. package/dist/showcase/assets/toggles-DK9iCbki.js +71 -0
  657. package/dist/showcase/assets/toggles-group-DwzRj0f7.js +32 -0
  658. package/dist/showcase/assets/tooltip-PtP1suag.js +31 -0
  659. package/dist/showcase/assets/trash-2-BE4XUI2g.js +1 -0
  660. package/dist/showcase/assets/trending-up-ByxOf-nR.js +1 -0
  661. package/dist/showcase/assets/truck-RTOdcRV0.js +1 -0
  662. package/dist/showcase/assets/typography-BKLgHDxU.js +223 -0
  663. package/dist/showcase/assets/ui-badge-DIh_3Wmo.js +28 -0
  664. package/dist/showcase/assets/ui-card-BOdHnZwv.js +30 -0
  665. package/dist/showcase/assets/ui-table-BW4FCClv.js +42 -0
  666. package/dist/showcase/assets/upload-tray-CV9_5Lpa.js +138 -0
  667. package/dist/showcase/assets/use-layout-link-MyeE-CDj.js +1 -0
  668. package/dist/showcase/assets/useAnchoredPopupScrollLock-DSaog2w5.js +1 -0
  669. package/dist/showcase/assets/useAriaLabelledBy-DSpPzrxG.js +1 -0
  670. package/dist/showcase/assets/useCollapsiblePanel-DsuJtES0.js +1 -0
  671. package/dist/showcase/assets/useCompositeItem-lbAimLrR.js +1 -0
  672. package/dist/showcase/assets/useCompositeListItem-pRXWGj4x.js +1 -0
  673. package/dist/showcase/assets/useLabelableId-IRM1zB5m.js +1 -0
  674. package/dist/showcase/assets/useOpenInteractionType-CHDcTj9f.js +1 -0
  675. package/dist/showcase/assets/useRender-Ogz5zjeJ.js +1 -0
  676. package/dist/showcase/assets/useTriggerFocusGuards-Du6btFNB.js +1 -0
  677. package/dist/showcase/assets/useValueChanged-CXpsR4fl.js +1 -0
  678. package/dist/showcase/assets/user-plus-CLj8AZe1.js +1 -0
  679. package/dist/showcase/assets/user-ymdT26JK.js +1 -0
  680. package/dist/showcase/assets/users-BGba2Xwv.js +1 -0
  681. package/dist/showcase/assets/vendor-profile-Ci6c9mFC.js +37 -0
  682. package/dist/showcase/assets/video-BcKa36-p.js +1 -0
  683. package/dist/showcase/assets/wrench-Cj2hRrih.js +1 -0
  684. package/dist/showcase/assets/x-iCqjAC2D.js +1 -0
  685. package/dist/showcase/assets/zap-H4bc_OhS.js +1 -0
  686. package/dist/showcase/index.html +2 -2
  687. package/dist/style.css +1 -1
  688. package/package.json +1 -1
  689. package/src/css/themes/shadcn.default.css +6 -6
  690. package/src/css/tokens/foundation.css +23 -9
  691. package/dist/_shared/accordion-B9EjlZLY.js +0 -135
  692. package/dist/_shared/accordion-B9EjlZLY.js.map +0 -1
  693. package/dist/_shared/accordion-IFDIc0E7.cjs +0 -2
  694. package/dist/_shared/accordion-IFDIc0E7.cjs.map +0 -1
  695. package/dist/_shared/action-menu-B6yFRDz1.cjs +0 -2
  696. package/dist/_shared/action-menu-B6yFRDz1.cjs.map +0 -1
  697. package/dist/_shared/action-menu-CNS-fwQr.js +0 -96
  698. package/dist/_shared/action-menu-CNS-fwQr.js.map +0 -1
  699. package/dist/_shared/ai-artifact-B3qhuiKC.js +0 -1099
  700. package/dist/_shared/ai-artifact-B3qhuiKC.js.map +0 -1
  701. package/dist/_shared/ai-artifact-Dtr0bnVq.cjs +0 -3
  702. package/dist/_shared/ai-artifact-Dtr0bnVq.cjs.map +0 -1
  703. package/dist/_shared/alert-V0V36Sny.cjs +0 -2
  704. package/dist/_shared/alert-V0V36Sny.cjs.map +0 -1
  705. package/dist/_shared/alert-m-4s0Hqq.js +0 -81
  706. package/dist/_shared/alert-m-4s0Hqq.js.map +0 -1
  707. package/dist/_shared/app-shell-D3eGUtL-.js +0 -69
  708. package/dist/_shared/app-shell-D3eGUtL-.js.map +0 -1
  709. package/dist/_shared/app-shell-QJHARDMB.cjs +0 -2
  710. package/dist/_shared/app-shell-QJHARDMB.cjs.map +0 -1
  711. package/dist/_shared/auth-BZY91F5_.cjs +0 -2
  712. package/dist/_shared/auth-BZY91F5_.cjs.map +0 -1
  713. package/dist/_shared/auth-DcotjEbY.js +0 -643
  714. package/dist/_shared/auth-DcotjEbY.js.map +0 -1
  715. package/dist/_shared/badge-BeSKxX1u.cjs +0 -2
  716. package/dist/_shared/badge-BeSKxX1u.cjs.map +0 -1
  717. package/dist/_shared/badge-a2Z3K5aQ.js +0 -110
  718. package/dist/_shared/badge-a2Z3K5aQ.js.map +0 -1
  719. package/dist/_shared/breadcrumbs-AyLzxCJZ.cjs +0 -2
  720. package/dist/_shared/breadcrumbs-AyLzxCJZ.cjs.map +0 -1
  721. package/dist/_shared/breadcrumbs-B57Unsoe.js +0 -105
  722. package/dist/_shared/breadcrumbs-B57Unsoe.js.map +0 -1
  723. package/dist/_shared/button-Bd5bEIiB.cjs +0 -2
  724. package/dist/_shared/button-Bd5bEIiB.cjs.map +0 -1
  725. package/dist/_shared/button-DHksjMvc.js +0 -189
  726. package/dist/_shared/button-DHksjMvc.js.map +0 -1
  727. package/dist/_shared/buttons-Bek9F7qK.cjs +0 -2
  728. package/dist/_shared/buttons-Bek9F7qK.cjs.map +0 -1
  729. package/dist/_shared/buttons-DcynMPnE.js +0 -137
  730. package/dist/_shared/buttons-DcynMPnE.js.map +0 -1
  731. package/dist/_shared/card-radio-group-C2p_iBal.cjs +0 -2
  732. package/dist/_shared/card-radio-group-C2p_iBal.cjs.map +0 -1
  733. package/dist/_shared/card-radio-group-Fdi1Cz1j.js +0 -150
  734. package/dist/_shared/card-radio-group-Fdi1Cz1j.js.map +0 -1
  735. package/dist/_shared/cards-C1ythc0Q.js +0 -354
  736. package/dist/_shared/cards-C1ythc0Q.js.map +0 -1
  737. package/dist/_shared/cards-GSYfJ-oX.cjs +0 -2
  738. package/dist/_shared/cards-GSYfJ-oX.cjs.map +0 -1
  739. package/dist/_shared/combobox-BIe72dV3.js +0 -954
  740. package/dist/_shared/combobox-BIe72dV3.js.map +0 -1
  741. package/dist/_shared/combobox-CJiFDoTi.cjs +0 -2
  742. package/dist/_shared/combobox-CJiFDoTi.cjs.map +0 -1
  743. package/dist/_shared/command-ByedBajF.js +0 -39
  744. package/dist/_shared/command-ByedBajF.js.map +0 -1
  745. package/dist/_shared/command-EGR0nhGc.cjs +0 -2
  746. package/dist/_shared/command-EGR0nhGc.cjs.map +0 -1
  747. package/dist/_shared/comments-CmljtbAW.js +0 -952
  748. package/dist/_shared/comments-CmljtbAW.js.map +0 -1
  749. package/dist/_shared/comments-ColUq7eh.cjs +0 -2
  750. package/dist/_shared/comments-ColUq7eh.cjs.map +0 -1
  751. package/dist/_shared/copyable-Dopk9pEJ.js +0 -38
  752. package/dist/_shared/copyable-Dopk9pEJ.js.map +0 -1
  753. package/dist/_shared/copyable-rQwxsTJ3.cjs +0 -2
  754. package/dist/_shared/copyable-rQwxsTJ3.cjs.map +0 -1
  755. package/dist/_shared/data-display-BTsCY7A5.js +0 -1873
  756. package/dist/_shared/data-display-BTsCY7A5.js.map +0 -1
  757. package/dist/_shared/data-display-BdGQMXit.cjs +0 -2
  758. package/dist/_shared/data-display-BdGQMXit.cjs.map +0 -1
  759. package/dist/_shared/date-picker-BiUgIkjP.cjs +0 -2
  760. package/dist/_shared/date-picker-BiUgIkjP.cjs.map +0 -1
  761. package/dist/_shared/date-picker-DFkLiveH.js +0 -1361
  762. package/dist/_shared/date-picker-DFkLiveH.js.map +0 -1
  763. package/dist/_shared/date-pickers-C86tVD8e.cjs +0 -2
  764. package/dist/_shared/date-pickers-C86tVD8e.cjs.map +0 -1
  765. package/dist/_shared/date-pickers-D4oxOOHE.js +0 -329
  766. package/dist/_shared/date-pickers-D4oxOOHE.js.map +0 -1
  767. package/dist/_shared/display-B0wLVN8t.js +0 -986
  768. package/dist/_shared/display-B0wLVN8t.js.map +0 -1
  769. package/dist/_shared/display-Bin2vVex.cjs +0 -2
  770. package/dist/_shared/display-Bin2vVex.cjs.map +0 -1
  771. package/dist/_shared/form-sizing-C51oI3Di.js +0 -42
  772. package/dist/_shared/form-sizing-C51oI3Di.js.map +0 -1
  773. package/dist/_shared/form-sizing-Co53Drri.cjs +0 -2
  774. package/dist/_shared/form-sizing-Co53Drri.cjs.map +0 -1
  775. package/dist/_shared/forms-CEE1te78.cjs +0 -2
  776. package/dist/_shared/forms-CEE1te78.cjs.map +0 -1
  777. package/dist/_shared/forms-CQoGvG7q.js +0 -3533
  778. package/dist/_shared/forms-CQoGvG7q.js.map +0 -1
  779. package/dist/_shared/header-B9IPDQRW.js +0 -447
  780. package/dist/_shared/header-B9IPDQRW.js.map +0 -1
  781. package/dist/_shared/header-C_1x4-rd.cjs +0 -2
  782. package/dist/_shared/header-C_1x4-rd.cjs.map +0 -1
  783. package/dist/_shared/hooks---vunGQ6.js +0 -95
  784. package/dist/_shared/hooks---vunGQ6.js.map +0 -1
  785. package/dist/_shared/hooks-CjVzmgvY.cjs +0 -2
  786. package/dist/_shared/hooks-CjVzmgvY.cjs.map +0 -1
  787. package/dist/_shared/input-CB6hxh-5.cjs +0 -2
  788. package/dist/_shared/input-CB6hxh-5.cjs.map +0 -1
  789. package/dist/_shared/input-CfnHBT--.js +0 -182
  790. package/dist/_shared/input-CfnHBT--.js.map +0 -1
  791. package/dist/_shared/item-Xs-fgzaT.js +0 -226
  792. package/dist/_shared/item-Xs-fgzaT.js.map +0 -1
  793. package/dist/_shared/item-eUP9Rtmg.cjs +0 -2
  794. package/dist/_shared/item-eUP9Rtmg.cjs.map +0 -1
  795. package/dist/_shared/layout-BXrQqUKq.js +0 -262
  796. package/dist/_shared/layout-BXrQqUKq.js.map +0 -1
  797. package/dist/_shared/layout-DWicdsPI.cjs +0 -2
  798. package/dist/_shared/layout-DWicdsPI.cjs.map +0 -1
  799. package/dist/_shared/mentions-BahbwDwU.js +0 -506
  800. package/dist/_shared/mentions-BahbwDwU.js.map +0 -1
  801. package/dist/_shared/mentions-aHalksbt.cjs +0 -2
  802. package/dist/_shared/mentions-aHalksbt.cjs.map +0 -1
  803. package/dist/_shared/money-display-BLPNMmiT.cjs +0 -2
  804. package/dist/_shared/money-display-BLPNMmiT.cjs.map +0 -1
  805. package/dist/_shared/money-display-D_-Cb8-9.js +0 -198
  806. package/dist/_shared/money-display-D_-Cb8-9.js.map +0 -1
  807. package/dist/_shared/navigation-BcYAwgzo.js +0 -436
  808. package/dist/_shared/navigation-BcYAwgzo.js.map +0 -1
  809. package/dist/_shared/navigation-DAB7uuBj.cjs +0 -2
  810. package/dist/_shared/navigation-DAB7uuBj.cjs.map +0 -1
  811. package/dist/_shared/overlays-DW8OIK5R.js +0 -735
  812. package/dist/_shared/overlays-DW8OIK5R.js.map +0 -1
  813. package/dist/_shared/overlays-Du65iCkx.cjs +0 -2
  814. package/dist/_shared/overlays-Du65iCkx.cjs.map +0 -1
  815. package/dist/_shared/popover-menu-qxBZlTck.js +0 -93
  816. package/dist/_shared/popover-menu-qxBZlTck.js.map +0 -1
  817. package/dist/_shared/popover-menu-z9QTjl4o.cjs +0 -2
  818. package/dist/_shared/popover-menu-z9QTjl4o.cjs.map +0 -1
  819. package/dist/_shared/rich-text-editor-DeIiIDn7.cjs +0 -2
  820. package/dist/_shared/rich-text-editor-DeIiIDn7.cjs.map +0 -1
  821. package/dist/_shared/rich-text-editor-VIBlL0x3.js +0 -620
  822. package/dist/_shared/rich-text-editor-VIBlL0x3.js.map +0 -1
  823. package/dist/_shared/settings-Bfr6PgSi.cjs +0 -2
  824. package/dist/_shared/settings-Bfr6PgSi.cjs.map +0 -1
  825. package/dist/_shared/settings-CrPaYr4A.js +0 -143
  826. package/dist/_shared/settings-CrPaYr4A.js.map +0 -1
  827. package/dist/_shared/sidebar-CDOLD8fN.js +0 -548
  828. package/dist/_shared/sidebar-CDOLD8fN.js.map +0 -1
  829. package/dist/_shared/sidebar-DcsxeNml.cjs +0 -2
  830. package/dist/_shared/sidebar-DcsxeNml.cjs.map +0 -1
  831. package/dist/_shared/spinner-D35zNriU.cjs +0 -2
  832. package/dist/_shared/spinner-D35zNriU.cjs.map +0 -1
  833. package/dist/_shared/spinner-DMC2IIml.js +0 -67
  834. package/dist/_shared/spinner-DMC2IIml.js.map +0 -1
  835. package/dist/_shared/table-B_pqCQxC.js +0 -1377
  836. package/dist/_shared/table-B_pqCQxC.js.map +0 -1
  837. package/dist/_shared/table-CGVOXtdv.cjs +0 -2
  838. package/dist/_shared/table-CGVOXtdv.cjs.map +0 -1
  839. package/dist/_shared/textarea-B24qgdmd.cjs +0 -2
  840. package/dist/_shared/textarea-B24qgdmd.cjs.map +0 -1
  841. package/dist/_shared/textarea-ChLRmmVU.js +0 -118
  842. package/dist/_shared/textarea-ChLRmmVU.js.map +0 -1
  843. package/dist/_shared/typography-CO9uwZhF.cjs +0 -2
  844. package/dist/_shared/typography-CO9uwZhF.cjs.map +0 -1
  845. package/dist/_shared/typography-DE0NGEIE.js +0 -201
  846. package/dist/_shared/typography-DE0NGEIE.js.map +0 -1
  847. package/dist/_shared/workspace-C1twu23r.cjs +0 -2
  848. package/dist/_shared/workspace-C1twu23r.cjs.map +0 -1
  849. package/dist/_shared/workspace-CkOZLdcN.js +0 -357
  850. package/dist/_shared/workspace-CkOZLdcN.js.map +0 -1
  851. package/dist/showcase/assets/AreaChart-WJREayr9.js +0 -6
  852. package/dist/showcase/assets/CompositeItem-CY3XmFuI.js +0 -1
  853. package/dist/showcase/assets/CompositeRoot-BPMF0t1F.js +0 -1
  854. package/dist/showcase/assets/DialogTrigger-BzaF3YN8.js +0 -1
  855. package/dist/showcase/assets/LabelableContext-LKvvFFnV.js +0 -1
  856. package/dist/showcase/assets/PreviewLayout-B0n7l00P.js +0 -1
  857. package/dist/showcase/assets/RadioGroup-VBtGFETg.js +0 -1
  858. package/dist/showcase/assets/ScrollAreaCorner-BimGwdGs.js +0 -1
  859. package/dist/showcase/assets/Separator-BfKe0YiY.js +0 -1
  860. package/dist/showcase/assets/ToolbarRootContext-Cscyv1PN.js +0 -1
  861. package/dist/showcase/assets/accordion-BEN0VkL4.js +0 -171
  862. package/dist/showcase/assets/accordion-variants-QFG3H38z.js +0 -1
  863. package/dist/showcase/assets/action-menu-Bfw1tFqM.js +0 -1
  864. package/dist/showcase/assets/actions-CFpHs5IC.js +0 -310
  865. package/dist/showcase/assets/activities-CDxlaghU.js +0 -500
  866. package/dist/showcase/assets/activities-feed-card-BO1kcjRK.js +0 -1
  867. package/dist/showcase/assets/admin-DFpHXeuv.js +0 -140
  868. package/dist/showcase/assets/ai-DyO6VqQP.js +0 -207
  869. package/dist/showcase/assets/ai-artifact-MVA3ikv6.js +0 -2
  870. package/dist/showcase/assets/ai-chat-D-xcp6Jf.js +0 -568
  871. package/dist/showcase/assets/ai-elements-DlFqIOYp.js +0 -387
  872. package/dist/showcase/assets/ai-tool-call-DedG9TdK.js +0 -1
  873. package/dist/showcase/assets/alert-CmRK2lOe.js +0 -1
  874. package/dist/showcase/assets/alert-DCIVryEp.js +0 -62
  875. package/dist/showcase/assets/alert-DDP3Ktic.js +0 -93
  876. package/dist/showcase/assets/api-key-list-CWa997YX.js +0 -1
  877. package/dist/showcase/assets/api-key-list-mTPebHF3.js +0 -73
  878. package/dist/showcase/assets/app-sidebar-Cnfk9z5K.js +0 -1
  879. package/dist/showcase/assets/arrow-down-CCYWFimd.js +0 -1
  880. package/dist/showcase/assets/arrow-left-CrYjfZJ0.js +0 -1
  881. package/dist/showcase/assets/arrow-right-eLxbBrdm.js +0 -1
  882. package/dist/showcase/assets/arrow-up-kA33fcPv.js +0 -1
  883. package/dist/showcase/assets/arrow-up-right-BSWGQVDB.js +0 -1
  884. package/dist/showcase/assets/avatar-BDGhB3aA.js +0 -57
  885. package/dist/showcase/assets/avatar-CLBQvnYG.js +0 -1
  886. package/dist/showcase/assets/avatar-WUMW3Qjo.js +0 -1
  887. package/dist/showcase/assets/avatar-cKSNuTzf.js +0 -67
  888. package/dist/showcase/assets/badge--mqVg8Ry.js +0 -31
  889. package/dist/showcase/assets/badge-check-D7YjWqnm.js +0 -1
  890. package/dist/showcase/assets/bell-6YyocFK6.js +0 -1
  891. package/dist/showcase/assets/bot-BC4pGAB3.js +0 -1
  892. package/dist/showcase/assets/box-CPGIu4Nv.js +0 -1
  893. package/dist/showcase/assets/braces-9jywZtTA.js +0 -1
  894. package/dist/showcase/assets/brain-wf_S427C.js +0 -1
  895. package/dist/showcase/assets/brand-78lhbKSW.js +0 -36
  896. package/dist/showcase/assets/breadcrumb-6XHObtqO.js +0 -1
  897. package/dist/showcase/assets/breadcrumb-BVrrS53_.js +0 -52
  898. package/dist/showcase/assets/breadcrumbs-BwC3Iaae.js +0 -1
  899. package/dist/showcase/assets/briefcase-BViWYew9.js +0 -1
  900. package/dist/showcase/assets/building-2-CwR3gV1I.js +0 -1
  901. package/dist/showcase/assets/button-BWwsy37B.js +0 -44
  902. package/dist/showcase/assets/button-group-BTiMRQIO.js +0 -1
  903. package/dist/showcase/assets/buttons-D9pH8hPs.js +0 -272
  904. package/dist/showcase/assets/calendar-Bzl2i1lu.js +0 -1
  905. package/dist/showcase/assets/calendar-CNMlC7Fn.js +0 -16
  906. package/dist/showcase/assets/calendar-D5NdEmaD.js +0 -1
  907. package/dist/showcase/assets/calendar-days-j8QDBUc5.js +0 -1
  908. package/dist/showcase/assets/camera-Cwb84N8a.js +0 -1
  909. package/dist/showcase/assets/card-CX3vQ2Te.js +0 -1
  910. package/dist/showcase/assets/card-FLJkfdKP.js +0 -188
  911. package/dist/showcase/assets/card-primitives-C2s13Uvp.js +0 -1
  912. package/dist/showcase/assets/card-radio-group-BP27dErL.js +0 -1
  913. package/dist/showcase/assets/cards-DcdxRM9W.js +0 -354
  914. package/dist/showcase/assets/carousel-CTKyiHD2.js +0 -449
  915. package/dist/showcase/assets/cell-renderers-ouSypXTE.js +0 -1
  916. package/dist/showcase/assets/chart-CMsMyCah.js +0 -358
  917. package/dist/showcase/assets/chart-column-BrwpEFzy.js +0 -1
  918. package/dist/showcase/assets/checkbox-4qgEfnjv.js +0 -1
  919. package/dist/showcase/assets/checkbox-ratLYBAF.js +0 -1
  920. package/dist/showcase/assets/chevron-down-BInaIfd1.js +0 -1
  921. package/dist/showcase/assets/chevron-left-Bjy3FJ_M.js +0 -1
  922. package/dist/showcase/assets/chevron-up-Ufl6UEyV.js +0 -1
  923. package/dist/showcase/assets/chevrons-up-down-CrOH-P5z.js +0 -1
  924. package/dist/showcase/assets/circle-G0dEx2Ay.js +0 -1
  925. package/dist/showcase/assets/circle-alert-CiibDCe8.js +0 -1
  926. package/dist/showcase/assets/circle-check-Bqm54c03.js +0 -1
  927. package/dist/showcase/assets/circle-check-big-BfiY_qy_.js +0 -1
  928. package/dist/showcase/assets/circle-dot-VNm7CEgH.js +0 -1
  929. package/dist/showcase/assets/circle-question-mark-mM7PKy4G.js +0 -1
  930. package/dist/showcase/assets/circle-x-2tzzp_vB.js +0 -1
  931. package/dist/showcase/assets/clock-3-CfdZnMP2.js +0 -1
  932. package/dist/showcase/assets/clock-ByB7C11p.js +0 -1
  933. package/dist/showcase/assets/code-xml-D2fN-BaU.js +0 -1
  934. package/dist/showcase/assets/collapsible-B2lI_uVI.js +0 -1
  935. package/dist/showcase/assets/collapsible-Bs5YFx-M.js +0 -27
  936. package/dist/showcase/assets/combobox-BqNSwFaM.js +0 -685
  937. package/dist/showcase/assets/command-Dcbh_YP-.js +0 -1
  938. package/dist/showcase/assets/command-Mb30xkwq.js +0 -1
  939. package/dist/showcase/assets/comment-composer-DqTw0zIM.js +0 -1
  940. package/dist/showcase/assets/comment-item-DbQAZ3yP.js +0 -1
  941. package/dist/showcase/assets/comments-CGMOOi7k.js +0 -357
  942. package/dist/showcase/assets/commerce-bVpLHwpS.js +0 -267
  943. package/dist/showcase/assets/composite-CTpmYme_.js +0 -1
  944. package/dist/showcase/assets/contact-card-nuS10UKK.js +0 -65
  945. package/dist/showcase/assets/content-container-NexBp0FV.js +0 -1
  946. package/dist/showcase/assets/copyable-CNltkC2A.js +0 -1
  947. package/dist/showcase/assets/copyable-qr6--oJx.js +0 -96
  948. package/dist/showcase/assets/course-card-0kkl37FX.js +0 -77
  949. package/dist/showcase/assets/cpu-DSD9h0l5.js +0 -1
  950. package/dist/showcase/assets/credit-card-CN0E6FU8.js +0 -1
  951. package/dist/showcase/assets/css-variables-CzmmLWxt.js +0 -1190
  952. package/dist/showcase/assets/currency-BtofP745.js +0 -149
  953. package/dist/showcase/assets/dark-surfaces-BU7kfTIi.js +0 -90
  954. package/dist/showcase/assets/data-view-3W7_KBli.js +0 -124
  955. package/dist/showcase/assets/data-view-snL5QtHe.js +0 -4
  956. package/dist/showcase/assets/database-BarEYzaF.js +0 -1
  957. package/dist/showcase/assets/date-block-dTt9Rcfd.js +0 -1
  958. package/dist/showcase/assets/date-picker-BKzZeQGc.js +0 -1
  959. package/dist/showcase/assets/date-pickers-CYERVYRo.js +0 -73
  960. package/dist/showcase/assets/dense-info-hnKZfRnQ.js +0 -106
  961. package/dist/showcase/assets/design-system-consistency-D6qngflS.js +0 -264
  962. package/dist/showcase/assets/dialog-mO0FpHmT.js +0 -1
  963. package/dist/showcase/assets/dialog-xbuhPXmf.js +0 -1
  964. package/dist/showcase/assets/display-utilities-C4IflxoK.js +0 -267
  965. package/dist/showcase/assets/dist-BFChHTWK.js +0 -45
  966. package/dist/showcase/assets/dist-BkVfs5PY.js +0 -1
  967. package/dist/showcase/assets/dollar-sign-BES-Y4q8.js +0 -1
  968. package/dist/showcase/assets/download-CuEg-4DT.js +0 -1
  969. package/dist/showcase/assets/dropdown-menu-C4Fcfk9z.js +0 -1
  970. package/dist/showcase/assets/dropzone-CrJ_k9fJ.js +0 -1
  971. package/dist/showcase/assets/earth-Cmx-Axig.js +0 -1
  972. package/dist/showcase/assets/ellipsis-Co7iTzp_.js +0 -1
  973. package/dist/showcase/assets/ellipsis-vertical-DMYJFiqQ.js +0 -1
  974. package/dist/showcase/assets/empty-Dw4ozyll.js +0 -1
  975. package/dist/showcase/assets/empty-item-DQwAsl0J.js +0 -49
  976. package/dist/showcase/assets/empty-state-BKvbnAy1.js +0 -1
  977. package/dist/showcase/assets/empty-state-Dv6f2fmP.js +0 -190
  978. package/dist/showcase/assets/enhanced-activities-Ctmivg46.js +0 -357
  979. package/dist/showcase/assets/enhanced-combobox-D0AsPZ-b.js +0 -1
  980. package/dist/showcase/assets/esm-oZ6qcNoa.js +0 -2
  981. package/dist/showcase/assets/event-calendar-ChXdeehr.js +0 -138
  982. package/dist/showcase/assets/event-log-DeOCb2tT.js +0 -330
  983. package/dist/showcase/assets/example-CDvNeHNP.js +0 -1
  984. package/dist/showcase/assets/external-link-BaiCqIx3.js +0 -1
  985. package/dist/showcase/assets/eye-zG-fqYfd.js +0 -1
  986. package/dist/showcase/assets/feature-announcement-C2XGWNgI.js +0 -34
  987. package/dist/showcase/assets/file-sAbDfDuO.js +0 -1
  988. package/dist/showcase/assets/file-text-Boa9IOND.js +0 -1
  989. package/dist/showcase/assets/filter-layout-tZmZz-2B.js +0 -1
  990. package/dist/showcase/assets/filters-D8gEkDAE.js +0 -139
  991. package/dist/showcase/assets/flag-Cu20rcE4.js +0 -1
  992. package/dist/showcase/assets/folder-open-Cuk6KKLi.js +0 -1
  993. package/dist/showcase/assets/form-field-D8sL8tat.js +0 -1
  994. package/dist/showcase/assets/form-sizing-C3UG5WKC.js +0 -1
  995. package/dist/showcase/assets/format-CaRklI--.js +0 -1
  996. package/dist/showcase/assets/forms-CNk2oX65.js +0 -915
  997. package/dist/showcase/assets/funnel-B2kBprKZ.js +0 -1
  998. package/dist/showcase/assets/generic-oWYKMvId.js +0 -1
  999. package/dist/showcase/assets/getPseudoElementBounds-GjucWEcD.js +0 -1
  1000. package/dist/showcase/assets/gift-C_D_-5GL.js +0 -1
  1001. package/dist/showcase/assets/giftcard-cards-B4DDGzdi.js +0 -85
  1002. package/dist/showcase/assets/git-branch-DlTTLnjW.js +0 -1
  1003. package/dist/showcase/assets/global-search-BjHAfaqS.js +0 -215
  1004. package/dist/showcase/assets/global-search-hKQWHfrf.js +0 -1
  1005. package/dist/showcase/assets/globe-D-gH7XQ2.js +0 -1
  1006. package/dist/showcase/assets/gradient-card-jVxEisUP.js +0 -58
  1007. package/dist/showcase/assets/hash-DySqEhph.js +0 -1
  1008. package/dist/showcase/assets/header-B8hHkAVl.js +0 -1
  1009. package/dist/showcase/assets/header-notifications-s180jNb1.js +0 -1
  1010. package/dist/showcase/assets/heart-DDFCk8Tb.js +0 -1
  1011. package/dist/showcase/assets/hooks-0A_FzYrt.js +0 -220
  1012. package/dist/showcase/assets/house-BqE1X-Wf.js +0 -1
  1013. package/dist/showcase/assets/icon-badge-CyiMjD7j.js +0 -37
  1014. package/dist/showcase/assets/icon-badge-fJVhEHym.js +0 -1
  1015. package/dist/showcase/assets/image-DCtwKHqe.js +0 -1
  1016. package/dist/showcase/assets/inbox-DZA-pAGB.js +0 -1
  1017. package/dist/showcase/assets/index-B37z19z3.js +0 -10
  1018. package/dist/showcase/assets/index-CIsKgiSF.css +0 -2
  1019. package/dist/showcase/assets/inertValue-SPYMBsOM.js +0 -1
  1020. package/dist/showcase/assets/info-DrfDr3GT.js +0 -1
  1021. package/dist/showcase/assets/inline-stat-BVJNx4xR.js +0 -1
  1022. package/dist/showcase/assets/inline-stat-C3cWbSUK.js +0 -15
  1023. package/dist/showcase/assets/input-CKTTGrnR.js +0 -1
  1024. package/dist/showcase/assets/input-UHuWYPMF.js +0 -1
  1025. package/dist/showcase/assets/input-group-BR_lU__a.js +0 -1
  1026. package/dist/showcase/assets/input-group-iZaLbsTP.js +0 -47
  1027. package/dist/showcase/assets/inputs-C7j8Xivm.js +0 -155
  1028. package/dist/showcase/assets/installation-DYnTwaPR.js +0 -134
  1029. package/dist/showcase/assets/invoice-header-D_0KvXQe.js +0 -36
  1030. package/dist/showcase/assets/invoice-items-jcNb-sST.js +0 -36
  1031. package/dist/showcase/assets/invoice-mini-DrZAbjPq.js +0 -14
  1032. package/dist/showcase/assets/invoice-table-DlAw0U4U.js +0 -30
  1033. package/dist/showcase/assets/isSameDay-Cl6v_syG.js +0 -1
  1034. package/dist/showcase/assets/isToday-BBoFjSnJ.js +0 -1
  1035. package/dist/showcase/assets/italic-j2U8krYa.js +0 -1
  1036. package/dist/showcase/assets/item-B2WoC1SD.js +0 -139
  1037. package/dist/showcase/assets/item-BMJ5hfT5.js +0 -1
  1038. package/dist/showcase/assets/item-C_5-EHNK.js +0 -1
  1039. package/dist/showcase/assets/kanban-Cv64Szxq.js +0 -188
  1040. package/dist/showcase/assets/key-round-CORDYqE2.js +0 -1
  1041. package/dist/showcase/assets/label-B0UjYqfw.js +0 -1
  1042. package/dist/showcase/assets/languages-Njdo5y8i.js +0 -1
  1043. package/dist/showcase/assets/layers-Dyew-8IP.js +0 -1
  1044. package/dist/showcase/assets/layout-app-shell-DEZt0d84.js +0 -608
  1045. package/dist/showcase/assets/layout-auth-BT84haSd.js +0 -790
  1046. package/dist/showcase/assets/layout-containers-D6SP4vRB.js +0 -101
  1047. package/dist/showcase/assets/layout-header-kLYjJnHz.js +0 -203
  1048. package/dist/showcase/assets/layout-page-CmS4d8jw.js +0 -314
  1049. package/dist/showcase/assets/layout-primitives-BW858Ymj.js +0 -34
  1050. package/dist/showcase/assets/layout-sidebar-eIDEoyzV.js +0 -224
  1051. package/dist/showcase/assets/layout-users-HyZHQIov.js +0 -117
  1052. package/dist/showcase/assets/layout-workspace-BrDwVUvn.js +0 -191
  1053. package/dist/showcase/assets/lib-Dhty05ZR.js +0 -1
  1054. package/dist/showcase/assets/list-checks-CcWjdDq8.js +0 -1
  1055. package/dist/showcase/assets/lock-CwH3bXx5.js +0 -1
  1056. package/dist/showcase/assets/lock-keyhole-BdBxeIkW.js +0 -1
  1057. package/dist/showcase/assets/mail-Cn94c8yp.js +0 -1
  1058. package/dist/showcase/assets/mail-check-D-q_vPxD.js +0 -1
  1059. package/dist/showcase/assets/map-BfUZMScw.js +0 -124
  1060. package/dist/showcase/assets/map-pin-BZB9GUXP.js +0 -1
  1061. package/dist/showcase/assets/media-library-DguE2q94.js +0 -699
  1062. package/dist/showcase/assets/mention-inline-suggestions-CyGplHOl.js +0 -1
  1063. package/dist/showcase/assets/mentions-lmr_XmfN.js +0 -138
  1064. package/dist/showcase/assets/menus-D0qYbzKk.js +0 -171
  1065. package/dist/showcase/assets/message-square-7VpiUwcS.js +0 -1
  1066. package/dist/showcase/assets/metadata-list-B8O2ljIS.js +0 -1
  1067. package/dist/showcase/assets/metadata-list-BcYg9Ru3.js +0 -286
  1068. package/dist/showcase/assets/metric-HzQnjCpO.js +0 -1
  1069. package/dist/showcase/assets/metric-bar-Fr1TDnSu.js +0 -1
  1070. package/dist/showcase/assets/metric-grid-CM-P894v.js +0 -1
  1071. package/dist/showcase/assets/metric-trend-chip-DqYH_U8e.js +0 -1
  1072. package/dist/showcase/assets/metrics-analytics-bar-DKRLzyXq.js +0 -44
  1073. package/dist/showcase/assets/metrics-analytics-cards-qMbAYBbk.js +0 -50
  1074. package/dist/showcase/assets/metrics-comparison-GSWVebL_.js +0 -76
  1075. package/dist/showcase/assets/metrics-heatmap-Fj5QZoO3.js +0 -27
  1076. package/dist/showcase/assets/metrics-inline-badge-BuyhiYDl.js +0 -17
  1077. package/dist/showcase/assets/metrics-kpi-row-xNn4bjZc.js +0 -31
  1078. package/dist/showcase/assets/metrics-micro-grid-W_ZYCffp.js +0 -42
  1079. package/dist/showcase/assets/metrics-overview-D-km110k.js +0 -192
  1080. package/dist/showcase/assets/metrics-stat-cards-odVtufFY.js +0 -54
  1081. package/dist/showcase/assets/minus-DZsXg5PW.js +0 -1
  1082. package/dist/showcase/assets/money-display-C7Hp2pT3.js +0 -1
  1083. package/dist/showcase/assets/month-year-picker-Dnr4J0mO.js +0 -1
  1084. package/dist/showcase/assets/navigation-0nrtBP5O.js +0 -90
  1085. package/dist/showcase/assets/navigation-BaWNq9oa.js +0 -231
  1086. package/dist/showcase/assets/navigation-extras-B22W1Vkk.js +0 -43
  1087. package/dist/showcase/assets/onboarding-checklist-BFj7rmdZ.js +0 -119
  1088. package/dist/showcase/assets/overflow-tab-bar-D_rltswa.js +0 -1
  1089. package/dist/showcase/assets/overlays-CNfiB-zF.js +0 -408
  1090. package/dist/showcase/assets/overlays-CuxuFGC8.js +0 -159
  1091. package/dist/showcase/assets/overview-CBmdAWO6.js +0 -184
  1092. package/dist/showcase/assets/package-BwwfLMWb.js +0 -1
  1093. package/dist/showcase/assets/package-check-BepTKJLy.js +0 -1
  1094. package/dist/showcase/assets/page-_JDFUWqe.js +0 -1
  1095. package/dist/showcase/assets/page-action-button-Cf34I-B2.js +0 -1
  1096. package/dist/showcase/assets/page-header-pdHFvyTo.js +0 -1
  1097. package/dist/showcase/assets/pagination-Db1WJvjK.js +0 -42
  1098. package/dist/showcase/assets/pagination-s8_MGk9D.js +0 -1
  1099. package/dist/showcase/assets/paperclip-B9HQ47_2.js +0 -1
  1100. package/dist/showcase/assets/password-input-D-eZWMGX.js +0 -1
  1101. package/dist/showcase/assets/pencil-Dm53P6Db.js +0 -1
  1102. package/dist/showcase/assets/phone-a4Ja9xAp.js +0 -1
  1103. package/dist/showcase/assets/plus-DbOlx2x0.js +0 -1
  1104. package/dist/showcase/assets/popover-B8qrRgt3.js +0 -1
  1105. package/dist/showcase/assets/popover-Bm5wETUP.js +0 -1
  1106. package/dist/showcase/assets/popover-menu-EH4P-BuI.js +0 -1
  1107. package/dist/showcase/assets/products-n6VBSMDh.js +0 -423
  1108. package/dist/showcase/assets/progress-D9r6PSCF.js +0 -1
  1109. package/dist/showcase/assets/progress-DVnMcpeq.js +0 -18
  1110. package/dist/showcase/assets/props-table-udnF7Z46.js +0 -1
  1111. package/dist/showcase/assets/quote-qVQF4JC7.js +0 -1
  1112. package/dist/showcase/assets/receipt-DaC4l-Mr.js +0 -1
  1113. package/dist/showcase/assets/receipt-text-BnwhWHdU.js +0 -1
  1114. package/dist/showcase/assets/refinement-guide-zBbAE-vw.js +0 -189
  1115. package/dist/showcase/assets/refresh-cw-CX6ghqEe.js +0 -1
  1116. package/dist/showcase/assets/resolveValueLabel-Cjbd_80A.js +0 -1
  1117. package/dist/showcase/assets/resource-D1fXD_Pt.js +0 -139
  1118. package/dist/showcase/assets/resource-i2YV9aHL.js +0 -1
  1119. package/dist/showcase/assets/resource-selector-card-CdQEPr9U.js +0 -43
  1120. package/dist/showcase/assets/rich-text-editor-DJ2i03XV.js +0 -143
  1121. package/dist/showcase/assets/rich-text-editor-Wh8r117d.js +0 -124
  1122. package/dist/showcase/assets/rotate-ccw-2_FhUcdG.js +0 -1
  1123. package/dist/showcase/assets/route-EGSdKgEp.js +0 -1
  1124. package/dist/showcase/assets/save-nXKvyYEx.js +0 -1
  1125. package/dist/showcase/assets/schema-form-D_9UkVBe.js +0 -327
  1126. package/dist/showcase/assets/scroll-area-CB7X4JqZ.js +0 -1
  1127. package/dist/showcase/assets/scroll-area-DCHN9iYj.js +0 -32
  1128. package/dist/showcase/assets/section-C2ovQgbv.js +0 -1
  1129. package/dist/showcase/assets/select-BTOraQSw.js +0 -1
  1130. package/dist/showcase/assets/select-CE0BbUs7.js +0 -1
  1131. package/dist/showcase/assets/send-CI0r12bX.js +0 -1
  1132. package/dist/showcase/assets/separator-CmGfh7lI.js +0 -1
  1133. package/dist/showcase/assets/separator-PhQTNRIB.js +0 -28
  1134. package/dist/showcase/assets/settings-2-qkVb0lyz.js +0 -1
  1135. package/dist/showcase/assets/settings-YXjlZ9zs.js +0 -1
  1136. package/dist/showcase/assets/sheet-CFDUB2H1.js +0 -1
  1137. package/dist/showcase/assets/shield-Dr_UeG6H.js +0 -1
  1138. package/dist/showcase/assets/shield-alert-7rAVXg-K.js +0 -1
  1139. package/dist/showcase/assets/shield-check-BbzHL-nM.js +0 -1
  1140. package/dist/showcase/assets/shopping-bag-DeprN0fB.js +0 -1
  1141. package/dist/showcase/assets/showcase-BU6Fvpg_.js +0 -132
  1142. package/dist/showcase/assets/sidebar-CudnhnWN.js +0 -1
  1143. package/dist/showcase/assets/sidebar.context-CZaDhRhh.js +0 -1
  1144. package/dist/showcase/assets/skeleton-DD6VPVrv.js +0 -1
  1145. package/dist/showcase/assets/skeleton-Dc5LvW7E.js +0 -29
  1146. package/dist/showcase/assets/slider-BxvP9nxk.js +0 -1
  1147. package/dist/showcase/assets/smart-card-B0Llbpiy.js +0 -1
  1148. package/dist/showcase/assets/sonner-mszFoDWT.js +0 -22
  1149. package/dist/showcase/assets/sortable.esm-J5bJPtH9.js +0 -5
  1150. package/dist/showcase/assets/sparkles-CQSdl3Gw.js +0 -1
  1151. package/dist/showcase/assets/spinner-BSxBn2qs.js +0 -49
  1152. package/dist/showcase/assets/spinner-DJxoGJtq.js +0 -30
  1153. package/dist/showcase/assets/spinner-DihTCcve.js +0 -1
  1154. package/dist/showcase/assets/square-pen-CGMSA_p6.js +0 -1
  1155. package/dist/showcase/assets/stacked-avatars-Ct8B4doW.js +0 -1
  1156. package/dist/showcase/assets/star-DFlmmJdh.js +0 -1
  1157. package/dist/showcase/assets/startOfDay-BedffeNt.js +0 -1
  1158. package/dist/showcase/assets/styles-jR6uS97D.js +0 -1
  1159. package/dist/showcase/assets/suggestions-DnjJ-U9n.js +0 -126
  1160. package/dist/showcase/assets/switch-Dkojf4Yd.js +0 -1
  1161. package/dist/showcase/assets/switch-bTb6CSLr.js +0 -1
  1162. package/dist/showcase/assets/sync-rk8eFwoJ.js +0 -124
  1163. package/dist/showcase/assets/table-4qIerTVI.js +0 -686
  1164. package/dist/showcase/assets/table-BjMmmYd7.js +0 -1
  1165. package/dist/showcase/assets/table-actions-DqofOI1V.js +0 -1
  1166. package/dist/showcase/assets/tabs-BV6mMsfk.js +0 -19
  1167. package/dist/showcase/assets/tabs-u2fkHRw8.js +0 -1
  1168. package/dist/showcase/assets/tags-input-Cu_UwlwT.js +0 -1
  1169. package/dist/showcase/assets/text-button-Fyy21evq.js +0 -1
  1170. package/dist/showcase/assets/text-link-WRyY3ZZo.js +0 -1
  1171. package/dist/showcase/assets/textarea-BbCxWNzV.js +0 -1
  1172. package/dist/showcase/assets/textarea-CtD7JQsv.js +0 -1
  1173. package/dist/showcase/assets/timelines-BBPQpCFX.js +0 -200
  1174. package/dist/showcase/assets/toggle-group-B8mQ6wer.js +0 -1
  1175. package/dist/showcase/assets/toggles-CCClWVXZ.js +0 -71
  1176. package/dist/showcase/assets/toggles-group-DgCilPMo.js +0 -32
  1177. package/dist/showcase/assets/tooltip-ClJCWWTI.js +0 -31
  1178. package/dist/showcase/assets/trash-2-Cs7y4-K-.js +0 -1
  1179. package/dist/showcase/assets/trending-up-spYhMxs6.js +0 -1
  1180. package/dist/showcase/assets/truck-DENWgqxK.js +0 -1
  1181. package/dist/showcase/assets/typography-DMmYNFQj.js +0 -223
  1182. package/dist/showcase/assets/ui-badge-BJEtsa7X.js +0 -28
  1183. package/dist/showcase/assets/ui-card-CrPKoi3P.js +0 -30
  1184. package/dist/showcase/assets/ui-table-2HhDwPcu.js +0 -42
  1185. package/dist/showcase/assets/upload-tray-CUZAErkI.js +0 -138
  1186. package/dist/showcase/assets/use-layout-link-Co3GiFmb.js +0 -1
  1187. package/dist/showcase/assets/useAnchoredPopupScrollLock-DgIA0IXg.js +0 -1
  1188. package/dist/showcase/assets/useAriaLabelledBy-CDdoyQgg.js +0 -1
  1189. package/dist/showcase/assets/useCollapsiblePanel-BT0RSjGM.js +0 -1
  1190. package/dist/showcase/assets/useCompositeItem-DFghnuRZ.js +0 -1
  1191. package/dist/showcase/assets/useCompositeListItem-vXyRoJ2x.js +0 -1
  1192. package/dist/showcase/assets/useLabelableId-D__l5sQX.js +0 -1
  1193. package/dist/showcase/assets/useOpenInteractionType-bZIaLWfE.js +0 -1
  1194. package/dist/showcase/assets/useRender-BV0akLbc.js +0 -1
  1195. package/dist/showcase/assets/useTriggerFocusGuards-dYriJrQP.js +0 -1
  1196. package/dist/showcase/assets/useValueChanged-Dg0AWST0.js +0 -1
  1197. package/dist/showcase/assets/user-B9eCi5Vl.js +0 -1
  1198. package/dist/showcase/assets/user-plus-Uo4IAY7e.js +0 -1
  1199. package/dist/showcase/assets/users-DLep-WjV.js +0 -1
  1200. package/dist/showcase/assets/vendor-profile-BbcE51Pa.js +0 -37
  1201. package/dist/showcase/assets/video-BasdlaQE.js +0 -1
  1202. package/dist/showcase/assets/wrench-BYUVe1-z.js +0 -1
  1203. package/dist/showcase/assets/x-Bx9ayVXr.js +0 -1
  1204. package/dist/showcase/assets/zap-Mgu5HEtF.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../src/components/composed/cards/contact-card/types.ts","../../../../src/components/composed/cards/contact-card/contact-card.tsx","../../../../src/components/composed/cards/gradient-card/gradient-card.tsx","../../../../src/components/composed/cards/giftcard-card/types.ts","../../../../src/components/composed/cards/giftcard-card/partials/giftcard-full.tsx","../../../../src/components/composed/cards/giftcard-card/partials/giftcard-compact.tsx","../../../../src/components/composed/cards/giftcard-card/partials/giftcard-minimal.tsx","../../../../src/components/composed/cards/giftcard-card/partials/giftcard-dark.tsx","../../../../src/components/composed/cards/giftcard-card/partials/giftcard-illustrated.tsx","../../../../src/components/composed/cards/course-card/types.ts","../../../../src/components/composed/cards/course-card/course-card.tsx","../../../../src/components/composed/cards/feature-announcement/feature-announcement.tsx","../../../../src/components/composed/cards/vendor-profile/types.ts","../../../../src/components/composed/cards/vendor-profile/vendor-profile.tsx"],"sourcesContent":["import type { ComposedBadgeVariant as BadgeVariant } from '@/components/base/badge/badge';\nimport type { StringsProp } from '@/lib/strings';\n\nexport interface ContactCardStrings {\n contact: string;\n profile: string;\n}\n\nexport const defaultContactCardStrings: ContactCardStrings = {\n contact: 'Contact',\n profile: 'Profile',\n};\n\nexport interface ContactCardProps {\n name: string;\n role?: string;\n email?: string;\n phone?: string;\n location?: string;\n avatarUrl?: string;\n initials?: string;\n badge?: string;\n badgeVariant?: BadgeVariant;\n onContact?: () => void;\n onViewProfile?: () => void;\n className?: string;\n /** Override default action button labels. */\n strings?: StringsProp<ContactCardStrings>;\n}\n","import { Text } from '@/components/typography/text';\nimport { Button } from '@/components/base/buttons';\nimport { Badge } from '@/components/base/badge/badge';\nimport { Avatar, AvatarFallback, AvatarImage } from '@/components/base/display/avatar';\nimport {\n Item,\n ItemContent,\n ItemGroup,\n ItemMedia,\n ItemTitle,\n} from '@/components/base/item';\nimport { cn } from '@/lib/utils';\nimport { useStrings } from '@/lib/strings';\nimport { Mail, Phone, MapPin, ExternalLink } from 'lucide-react';\nimport { defaultContactCardStrings, type ContactCardProps } from './types';\n\nfunction deriveInitials(name: string, initials?: string): string {\n\tif (initials) return initials;\n\treturn name\n\t\t.split(' ')\n\t\t.map((part) => part[0])\n\t\t.slice(0, 2)\n\t\t.join('')\n\t\t.toUpperCase();\n}\n\n/**\n * ContactCard — Avatar + name + role + contact details (email, phone, location)\n * with optional Contact / Profile actions and a status badge.\n *\n * Contact details render through `<ItemGroup>` + `<Item>` so density and\n * media slots stay aligned with the rest of the library; the header and CTA\n * row remain bespoke because they are not Item-shaped.\n */\nexport function ContactCard({\n\tname,\n\trole,\n\temail,\n\tphone,\n\tlocation,\n\tavatarUrl,\n\tinitials,\n\tbadge,\n\tbadgeVariant = 'success',\n\tonContact,\n\tonViewProfile,\n\tclassName,\n\tstrings: stringsProp,\n}: ContactCardProps) {\n\tconst strings = useStrings(defaultContactCardStrings, stringsProp);\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('contact-card--component', \n\t\t\t\t'overflow-hidden rounded-lg border border-border bg-card p-4 text-card-foreground shadow-sm sm:p-5',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<div className=\"flex items-start gap-3\">\n\t\t\t\t<Avatar className=\"size-avatar-lg shrink-0 border border-border\">\n\t\t\t\t\t{!!avatarUrl && <AvatarImage src={avatarUrl} alt={name} />}\n\t\t\t\t\t<AvatarFallback className=\"text-sm font-semibold\">\n\t\t\t\t\t\t{deriveInitials(name, initials)}\n\t\t\t\t\t</AvatarFallback>\n\t\t\t\t</Avatar>\n\t\t\t\t<div className=\"min-w-0 flex-1\">\n\t\t\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t\t\t<Text weight=\"semibold\" className=\"truncate\">\n\t\t\t\t\t\t\t{name}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t{!!badge && <Badge variant={badgeVariant}>{badge}</Badge>}\n\t\t\t\t\t</div>\n\t\t\t\t\t{!!role && (\n\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"mt-0.5\">\n\t\t\t\t\t\t\t{role}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{!!(email || phone || location) && (\n\t\t\t\t<ItemGroup className=\"mt-4 gap-0\">\n\t\t\t\t\t{!!email && (\n\t\t\t\t\t\t<Item size=\"small\">\n\t\t\t\t\t\t\t<ItemMedia variant=\"icon\" className=\"text-muted-foreground\">\n\t\t\t\t\t\t\t\t<Mail />\n\t\t\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t\t\t<ItemContent>\n\t\t\t\t\t\t\t\t<ItemTitle bold={false}>{email}</ItemTitle>\n\t\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t</Item>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!phone && (\n\t\t\t\t\t\t<Item size=\"small\">\n\t\t\t\t\t\t\t<ItemMedia variant=\"icon\" className=\"text-muted-foreground\">\n\t\t\t\t\t\t\t\t<Phone />\n\t\t\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t\t\t<ItemContent>\n\t\t\t\t\t\t\t\t<ItemTitle bold={false}>{phone}</ItemTitle>\n\t\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t</Item>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!location && (\n\t\t\t\t\t\t<Item size=\"small\">\n\t\t\t\t\t\t\t<ItemMedia variant=\"icon\" className=\"text-muted-foreground\">\n\t\t\t\t\t\t\t\t<MapPin />\n\t\t\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t\t\t<ItemContent>\n\t\t\t\t\t\t\t\t<ItemTitle bold={false}>{location}</ItemTitle>\n\t\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t</Item>\n\t\t\t\t\t)}\n\t\t\t\t</ItemGroup>\n\t\t\t)}\n\n\t\t\t{!!(onContact || onViewProfile) && (\n\t\t\t\t<div className=\"mt-4 flex items-center gap-2\">\n\t\t\t\t\t{!!onContact && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tbuttonStyle=\"solid\"\n\t\t\t\t\t\t\ticon={Mail}\n\t\t\t\t\t\t\tonClick={onContact}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{strings.contact}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!onViewProfile && (\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=\"ghost\"\n\t\t\t\t\t\t\ticon={ExternalLink}\n\t\t\t\t\t\t\tonClick={onViewProfile}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{strings.profile}\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</div>\n\t);\n}\n\nContactCard.displayName = 'ContactCard';\n","/**\n * GradientCard — vivid gradient surface with a clear single-axis layout.\n *\n * Structure (all sections optional, all left-aligned):\n *\n * ┌──────────────────────────────────────────┐\n * │ Title [icon] [×] │ ← header: title|subtitle / icon / badge\n * │ Subtitle │\n * │ │\n * │ 24 │ ← hero value (large, eyebrow above)\n * │ orders awaiting fulfillment URGENT │\n * │ │\n * │ ⚠ 3 orders older than 48h 3 │ ← inline alert (subordinate to value)\n * │ │\n * │ ──────────────────────────────────────── │\n * │ [Review Orders] footer │ ← action / footer\n * └──────────────────────────────────────────┘\n *\n * Earlier centered-hero mode pushed every element to the centerline which made\n * the alert dominate over the value and produced a fragmented vertical rhythm.\n * The new layout keeps everything on the leading edge so the eye walks\n * top-down: identity → value → context → action.\n *\n * For the compact \"metric tile\" use-case (single value + change), see\n * `GradientCardCompact` below.\n */\nimport { type ReactNode, useId } from 'react';\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography/text';\nimport Heading from '@/components/typography/heading';\nimport { cn } from '@/lib/utils';\nimport {\n\ttype GradientPreset,\n\ttype PatternType,\n\ttype GradientCardProps,\n\ttype GradientCardCompactProps,\n} from './types';\n\n// ──────────────────────────────────────────────────────────────────────────\n// Gradient + pattern presets\n// ──────────────────────────────────────────────────────────────────────────\n\nconst GRADIENT_MAP: Record<GradientPreset, string> = {\n\tcoral: 'bg-gradient-to-br from-destructive to-warning',\n\tocean: 'bg-gradient-to-br from-info to-primary',\n\tforest: 'bg-gradient-to-br from-success to-info',\n\ttwilight: 'bg-gradient-to-br from-foreground to-info',\n\tember: 'bg-gradient-to-br from-destructive via-warning to-destructive',\n};\n\nfunction PatternCircles() {\n\treturn (\n\t\t<>\n\t\t\t<div className=\"absolute -right-12 -top-12 h-44 w-44 rounded-full bg-inverse-decoration\" aria-hidden=\"true\" />\n\t\t\t<div className=\"absolute -bottom-8 -left-8 h-28 w-28 rounded-full bg-inverse-decoration\" aria-hidden=\"true\" />\n\t\t</>\n\t);\n}\n\nfunction PatternDiagonal() {\n\tconst rawId = useId();\n\tconst patternId = `gradient-card-diag-stripes-${rawId.replace(/:/g, '')}`;\n\n\treturn (\n\t\t<svg\n\t\t\tclassName=\"absolute inset-0 h-full w-full opacity-[0.04]\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\taria-hidden=\"true\"\n\t\t>\n\t\t\t<defs>\n\t\t\t\t<pattern\n\t\t\t\t\tid={patternId}\n\t\t\t\t\twidth=\"8\"\n\t\t\t\t\theight=\"8\"\n\t\t\t\t\tpatternUnits=\"userSpaceOnUse\"\n\t\t\t\t\tpatternTransform=\"rotate(45)\"\n\t\t\t\t>\n\t\t\t\t\t<rect width=\"2\" height=\"8\" className=\"fill-inverse-foreground\" />\n\t\t\t\t</pattern>\n\t\t\t</defs>\n\t\t\t<rect width=\"100%\" height=\"100%\" fill={`url(#${patternId})`} />\n\t\t</svg>\n\t);\n}\n\nconst PATTERN_MAP: Record<PatternType, (() => ReactNode) | null> = {\n\tnone: null,\n\tcircles: () => <PatternCircles />,\n\tdiagonal: () => <PatternDiagonal />,\n};\n\n// ──────────────────────────────────────────────────────────────────────────\n// GradientCard\n// ──────────────────────────────────────────────────────────────────────────\n\nexport function GradientCard({\n\tgradient = 'coral',\n\tpattern = 'none',\n\ttitle,\n\tsubtitle,\n\tvalue,\n\tvalueLabel,\n\tbadge,\n\ticon: Icon,\n\talertText,\n\talertCount,\n\taction,\n\tfooter,\n\tchildren,\n\tclassName,\n}: GradientCardProps) {\n\tconst PatternRenderer = PATTERN_MAP[pattern];\n\tconst hasHeader = !!(title || subtitle || Icon);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'gradient-card--component relative overflow-hidden rounded-lg',\n\t\t\t\tGRADIENT_MAP[gradient],\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{!!PatternRenderer && PatternRenderer()}\n\n\t\t\t<div className=\"relative flex flex-col gap-5 p-6\">\n\t\t\t\t{/* Header — title + subtitle on the leading edge, icon as a\n\t\t\t\t rounded square on the trailing edge so it acts as a brand\n\t\t\t\t mark rather than competing for the centerline. */}\n\t\t\t\t{!!hasHeader && (\n\t\t\t\t\t<div className=\"flex items-start justify-between gap-4\">\n\t\t\t\t\t\t<div className=\"min-w-0 flex-1\">\n\t\t\t\t\t\t\t{!!title && (\n\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\t\t\t\tclassName=\"tracking-tight leading-snug text-inverse-foreground\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{title}\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{!!subtitle && (\n\t\t\t\t\t\t\t\t<Text size=\"xs\" className=\"mt-0.5 leading-snug text-inverse-muted\">\n\t\t\t\t\t\t\t\t\t{subtitle}\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{!!Icon && (\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\tclassName=\"inline-flex size-10 shrink-0 items-center justify-center rounded-xl bg-inverse-surface text-inverse-foreground ring-1 ring-inverse-border backdrop-blur-sm\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Icon className=\"size-5\" />\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{/* Hero value block — eyebrow above the figure, optional badge\n\t\t\t\t on the trailing edge of the label row. The figure is the\n\t\t\t\t visual anchor of the card. */}\n\t\t\t\t{!!value && (\n\t\t\t\t\t<div className=\"flex flex-col gap-1\">\n\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\ttag=\"h3\"\n\t\t\t\t\t\t\talign=\"left\"\n\t\t\t\t\t\t\tclassName=\"text-4xl font-bold tabular-nums tracking-tight border-none pb-0 leading-none text-inverse-foreground\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{value}\n\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t{(valueLabel || badge) && (\n\t\t\t\t\t\t\t<div className=\"flex flex-wrap items-center justify-between gap-2\">\n\t\t\t\t\t\t\t\t{!!valueLabel && (\n\t\t\t\t\t\t\t\t\t<Text size=\"xs\" className=\"leading-snug text-inverse-muted\">\n\t\t\t\t\t\t\t\t\t\t{valueLabel}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{!!badge && (\n\t\t\t\t\t\t\t\t\t<span className=\"inline-flex items-center rounded-full bg-inverse-surface-strong px-2.5 py-0.5 text-xxs font-semibold uppercase tracking-wider text-inverse-foreground backdrop-blur-sm\">\n\t\t\t\t\t\t\t\t\t\t{badge}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{/* Inline alert — subordinate to the value, sits below it. */}\n\t\t\t\t{!!alertText && (\n\t\t\t\t\t<div className=\"flex items-center gap-3 rounded-xl bg-inverse-surface px-3.5 py-2.5 ring-1 ring-inverse-border backdrop-blur-sm\">\n\t\t\t\t\t\t<Text className=\"min-w-0 flex-1 leading-snug text-inverse-foreground\">\n\t\t\t\t\t\t\t{alertText}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t{!!alertCount && (\n\t\t\t\t\t\t\t<span className=\"inline-flex h-5 min-w-5 items-center justify-center rounded-full bg-inverse-surface-strong px-1.5 text-xs font-bold tabular-nums text-inverse-foreground\">\n\t\t\t\t\t\t\t\t{alertCount}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{!!children && <div>{children}</div>}\n\n\t\t\t\t{(!!action || !!footer) && (\n\t\t\t\t\t<div className=\"flex items-center justify-between gap-3 pt-1\">\n\t\t\t\t\t\t\t{action ? (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"dark\"\n\t\t\t\t\t\t\t\tonClick={action.onClick}\n\t\t\t\t\t\t\t\tclassName=\"rounded-xl px-4\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{action.label}\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<span />\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{!!footer && (\n\t\t\t\t\t\t\t<Text size=\"xs\" className=\"text-inverse-muted\">{footer}</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nGradientCard.displayName = 'GradientCard';\n\n// ──────────────────────────────────────────────────────────────────────────\n// GradientCardCompact — single-metric tile\n// ──────────────────────────────────────────────────────────────────────────\n\nexport function GradientCardCompact({\n\tgradient = 'coral',\n\tpattern = 'none',\n\ttitle,\n\tvalue,\n\tchange,\n\tsubtitle,\n\tclassName,\n}: GradientCardCompactProps) {\n\tconst PatternRenderer = PATTERN_MAP[pattern];\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'gradient-card-compact--component relative overflow-hidden rounded-lg',\n\t\t\t\tGRADIENT_MAP[gradient],\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{!!PatternRenderer && PatternRenderer()}\n\n\t\t\t<div className=\"relative flex flex-col gap-1 p-5\">\n\t\t\t\t{!!title && (\n\t\t\t\t\t<Text size=\"xs\" weight=\"medium\" className=\"uppercase tracking-wider text-inverse-muted\">\n\t\t\t\t\t\t{title}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t\t<div className=\"flex items-baseline gap-2\">\n\t\t\t\t\t{!!value && (\n\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\ttag=\"h4\"\n\t\t\t\t\t\t\talign=\"left\"\n\t\t\t\t\t\t\tclassName=\"text-2xl font-bold tabular-nums tracking-tight border-none pb-0 leading-none text-inverse-foreground\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{value}\n\t\t\t\t\t\t</Heading>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!change && (\n\t\t\t\t\t\t<span className=\"inline-flex items-center rounded-full bg-inverse-surface px-2 py-0.5 text-xs font-semibold tabular-nums text-inverse-foreground backdrop-blur-sm\">\n\t\t\t\t\t\t\t{change}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t\t{!!subtitle && (\n\t\t\t\t\t<Text size=\"xs\" className=\"leading-snug text-inverse-subtle\">\n\t\t\t\t\t\t{subtitle}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nGradientCardCompact.displayName = 'GradientCardCompact';\n","import type { StringsProp } from '@/lib/strings';\n\nexport interface GiftcardData {\n\tcode: string;\n\tamount: string;\n\tremainingAmount?: string;\n\tcurrency?: string;\n\tstatus: 'active' | 'redeemed' | 'expired' | 'disabled';\n\trecipientName?: string;\n\tsenderName?: string;\n\tmessage?: string;\n\texpiresAt?: string;\n\tcreatedAt?: string;\n\ttemplate?: string;\n\tonView?: () => void;\n}\n\nexport type GradientVariant = 'purple' | 'green' | 'warm';\nexport type PatternVariant = 'none' | 'circles' | 'waves';\nexport type AccentColor = 'green' | 'purple' | 'warm';\nexport type HeaderColor = 'green' | 'blue' | 'amber';\n\nexport type GiftcardStatus = GiftcardData['status'];\n\n/**\n * Localised labels for giftcard cards. Covers status chips, the recurring\n * field labels rendered by all five partials (full / dark / illustrated /\n * minimal / compact), and the inline button labels.\n *\n * Override per-instance via `strings`.\n */\nexport interface GiftcardStrings {\n\tstatus: Record<GiftcardStatus, string>;\n\tgiftCard: string;\n\tbalance: string;\n\tpersonalMessage: string;\n\tto: string;\n\tfrom: string;\n\texpires: string;\n\trecipient: string;\n\tviewDetails: string;\n\tcopyCode: string;\n}\n\nexport const defaultGiftcardStrings: GiftcardStrings = {\n\tstatus: {\n\t\tactive: 'Active',\n\t\tredeemed: 'Redeemed',\n\t\texpired: 'Expired',\n\t\tdisabled: 'Disabled',\n\t},\n\tgiftCard: 'Gift Card',\n\tbalance: 'Balance',\n\tpersonalMessage: 'Personal Message',\n\tto: 'To',\n\tfrom: 'From',\n\texpires: 'Expires',\n\trecipient: 'Recipient',\n\tviewDetails: 'View Details',\n\tcopyCode: 'Copy code',\n};\n\nexport interface GiftcardCommonProps {\n\t/** Override default English giftcard strings. */\n\tstrings?: StringsProp<GiftcardStrings>;\n}\n\nexport const giftcardStatusVariant: Record<\n\tGiftcardStatus,\n\t'success' | 'secondary' | 'error' | 'warning'\n> = {\n\tactive: 'success',\n\tredeemed: 'secondary',\n\texpired: 'error',\n\tdisabled: 'warning',\n};\n\n/**\n * @deprecated Use `defaultGiftcardStrings.status` for labels and\n * `giftcardStatusVariant` for badge variants. Kept for backwards compatibility.\n */\nexport const giftcardStatusMap = {\n\tactive: { label: defaultGiftcardStrings.status.active, variant: 'success' as const },\n\tredeemed: { label: defaultGiftcardStrings.status.redeemed, variant: 'secondary' as const },\n\texpired: { label: defaultGiftcardStrings.status.expired, variant: 'error' as const },\n\tdisabled: { label: defaultGiftcardStrings.status.disabled, variant: 'warning' as const },\n};\n\nexport const gradientMap: Record<GradientVariant, { card: string; strip: string }> = {\n\tpurple: {\n\t\tcard: 'from-primary via-primary/90 to-info',\n\t\tstrip: 'from-primary via-primary/90 to-info',\n\t},\n\tgreen: {\n\t\tcard: 'from-success via-info to-success',\n\t\tstrip: 'from-success via-info to-success',\n\t},\n\twarm: {\n\t\tcard: 'from-warning via-warning/90 to-destructive',\n\t\tstrip: 'from-warning via-warning/90 to-destructive',\n\t},\n};\n\nexport const compactGradientMap: Record<GradientVariant, string> = {\n\tpurple: 'from-primary to-info',\n\tgreen: 'from-success to-info',\n\twarm: 'from-warning to-destructive',\n};\n\nexport const accentColorMap: Record<AccentColor, { line: string; iconBg: string }> = {\n\tgreen: { line: 'bg-success', iconBg: 'bg-success/15 text-success' },\n\tpurple: { line: 'bg-primary', iconBg: 'bg-primary/15 text-primary' },\n\twarm: { line: 'bg-warning', iconBg: 'bg-warning/15 text-warning-foreground' },\n};\n\nexport const headerGradientMap: Record<HeaderColor, string> = {\n\tgreen: 'from-success to-info',\n\tblue: 'from-info to-primary',\n\tamber: 'from-warning to-destructive',\n};\n\nexport const headerIconBgMap: Record<HeaderColor, string> = {\n\tgreen: 'bg-success ring-4 ring-background shadow-lg',\n\tblue: 'bg-info ring-4 ring-background shadow-lg',\n\tamber: 'bg-warning ring-4 ring-background shadow-lg',\n};\n","/**\n * GiftcardCard (full) — premium gradient layout with optional\n * pattern overlay (circles / waves), header status chip, balance / strike-\n * through line, copyable code strip, personal message block, and metadata\n * grid (To / From / Expires). Strings overridable for i18n.\n */\nimport { Text } from '@/components/typography/text';\nimport Heading from '@/components/typography/heading';\nimport { Button } from '@/components/base/buttons';\nimport { MetadataList, type MetadataListItem } from '@/components/composed/data-display/metadata';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\nimport {\n\tGift,\n\tCopy,\n\tEye,\n} from 'lucide-react';\nimport {\n\ttype GiftcardCommonProps,\n\ttype GiftcardData,\n\ttype GradientVariant,\n\ttype PatternVariant,\n\tdefaultGiftcardStrings,\n\tgiftcardStatusVariant,\n\tgradientMap,\n} from '../types';\n\nexport function GiftcardCard({\n\tcode,\n\tamount,\n\tremainingAmount,\n\tstatus,\n\trecipientName,\n\tsenderName,\n\tmessage,\n\texpiresAt,\n\tcreatedAt: _createdAt,\n\ttemplate: _template,\n\tonView,\n\tgradient = 'purple',\n\tpattern = 'none',\n\tclassName,\n\tstrings: stringsProp,\n}: GiftcardData &\n\tGiftcardCommonProps & {\n\t\tgradient?: GradientVariant;\n\t\tpattern?: PatternVariant;\n\t\tclassName?: string;\n\t}) {\n\tconst strings = useStrings(defaultGiftcardStrings, stringsProp);\n\tconst statusLabel = strings.status[status];\n\tconst statusVariant = giftcardStatusVariant[status];\n\tconst isPartiallyUsed = !!remainingAmount && remainingAmount !== amount;\n\tconst displayAmount = isPartiallyUsed ? remainingAmount : amount;\n\tconst metadataItems: MetadataListItem[] = [\n\t\t...(recipientName ? [{ label: strings.to, value: recipientName }] : []),\n\t\t...(senderName ? [{ label: strings.from, value: senderName }] : []),\n\t\t...(expiresAt ? [{ label: strings.expires, value: expiresAt }] : []),\n\t];\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'giftcard-card--component w-full max-w-sm transition-shadow duration-300 ease-out',\n\t\t\t\t'hover:shadow-md hover:shadow-foreground/10',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{/* Gift card header */}\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'relative overflow-hidden rounded-t-lg bg-gradient-to-br p-6',\n\t\t\t\t\tgradientMap[gradient].card,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{/* Pattern: circles */}\n\t\t\t\t{pattern === 'circles' && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<div className=\"absolute -top-8 -right-8 h-32 w-32 rounded-full bg-inverse-decoration\" aria-hidden=\"true\" />\n\t\t\t\t\t\t<div className=\"absolute -bottom-4 -left-4 h-20 w-20 rounded-full bg-inverse-decoration\" aria-hidden=\"true\" />\n\t\t\t\t\t</>\n\t\t\t\t)}\n\n\t\t\t\t{/* Pattern: waves */}\n\t\t\t\t{pattern === 'waves' && (\n\t\t\t\t\t<svg\n\t\t\t\t\t\tclassName=\"absolute inset-0 h-full w-full opacity-5\"\n\t\t\t\t\t\tviewBox=\"0 0 400 200\"\n\t\t\t\t\t\tpreserveAspectRatio=\"none\"\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<path d=\"M0 80 C100 20, 200 140, 400 60 L400 200 L0 200 Z\" className=\"fill-inverse-foreground\" />\n\t\t\t\t\t\t<path d=\"M0 120 C120 60, 280 180, 400 100 L400 200 L0 200 Z\" className=\"fill-inverse-foreground\" />\n\t\t\t\t\t</svg>\n\t\t\t\t)}\n\n\t\t\t\t{/* Status badge — top-right overlay with glass effect.\n\t\t\t\t Custom inline pill uses inverse-surface tokens so the label\n\t\t\t\t reads cleanly against any gradient. */}\n\t\t\t\t<div className=\"absolute top-4 right-4 z-20\">\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'inline-flex items-center gap-1.5 rounded-full px-2.5 py-0.5 text-xxs font-semibold uppercase tracking-wide',\n\t\t\t\t\t\t\t'bg-inverse-surface-strong text-inverse-foreground border border-inverse-border shadow-sm backdrop-blur-md',\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tdata-status={statusVariant}\n\t\t\t\t\t>\n\t\t\t\t\t\t<span className=\"size-1.5 rounded-full bg-inverse-foreground/85\" aria-hidden=\"true\" />\n\t\t\t\t\t\t{statusLabel}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"relative z-10\">\n\t\t\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t\t\t<Gift className=\"h-5 w-5 text-inverse-foreground opacity-80\" />\n\t\t\t\t\t\t<Text weight=\"medium\" className=\"text-inverse-muted\">{strings.giftCard}</Text>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"mt-8 mb-5\">\n\t\t\t\t\t\t<Text size=\"xs\" className=\"uppercase tracking-wider text-inverse-subtle\">{strings.balance}</Text>\n\t\t\t\t\t\t<div className=\"flex items-baseline gap-2.5 mt-1\">\n\t\t\t\t\t\t\t<Heading tag=\"h2\" className=\"text-4xl border-none pb-0 text-inverse-foreground tabular-nums drop-shadow-sm\">\n\t\t\t\t\t\t\t\t{displayAmount}\n\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t{!!isPartiallyUsed && (\n\t\t\t\t\t\t\t\t<Text className=\"line-through tabular-nums text-inverse-disabled\">{amount}</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{/* Code strip — premium feel */}\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'flex items-center gap-2 rounded-lg px-4 py-2.5',\n\t\t\t\t\t\t\t'bg-inverse-surface backdrop-blur-sm',\n\t\t\t\t\t\t\t'border border-inverse-border',\n\t\t\t\t\t\t\t'shadow-sm',\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Text weight=\"semibold\" className=\"flex-1 font-mono tracking-[0.2em] text-inverse-foreground\">\n\t\t\t\t\t\t\t{code}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"light\"\n\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\tclassName=\"p-1 h-auto text-inverse-foreground opacity-60 hover:bg-inverse-surface hover:opacity-100\"\n\t\t\t\t\t\t\taria-label={strings.copyCode}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Copy className=\"h-4 w-4\" />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{/* Details section — structured metadata grid */}\n\t\t\t<div className=\"rounded-b-lg bg-card p-5 shadow-sm border border-t-0 border-border/50 space-y-4\">\n\t\t\t\t{!!message && (\n\t\t\t\t\t<div className=\"rounded-lg bg-muted/50 p-3 border border-border/30\">\n\t\t\t\t\t\t<Text size=\"xxs\" type=\"secondary\" weight=\"medium\" className=\"mb-1 uppercase tracking-wide\">\n\t\t\t\t\t\t\t{strings.personalMessage}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t<Text type=\"secondary\" className=\"italic leading-relaxed\">\n\t\t\t\t\t\t\t&ldquo;{message}&rdquo;\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t<MetadataList items={metadataItems} columns={2} />\n\n\t\t\t\t{!!onView && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\t\ticon={Eye}\n\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\tonClick={onView}\n\t\t\t\t\t>\n\t\t\t\t\t\t{strings.viewDetails}\n\t\t\t\t\t</Button>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nGiftcardCard.displayName = 'GiftcardCard';\n","/**\n * GiftcardCompact — single-row compact layout. Square gradient gift icon on\n * the left, code + recipient in the middle, amount + status badge on the\n * right. Use for inline lists / tables of giftcards. Strings overridable.\n */\nimport { Text } from '@/components/typography/text';\nimport { Badge } from '@/components/base/badge/badge';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemDescription,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\nimport { Gift } from 'lucide-react';\nimport {\n\ttype GiftcardCommonProps,\n\ttype GiftcardData,\n\ttype GradientVariant,\n\tcompactGradientMap,\n\tdefaultGiftcardStrings,\n\tgiftcardStatusVariant,\n} from '../types';\n\nexport function GiftcardCompact({\n\tcode,\n\tamount,\n\tremainingAmount,\n\tstatus,\n\trecipientName,\n\tgradient = 'purple',\n\tclassName,\n\tstrings: stringsProp,\n}: GiftcardData & GiftcardCommonProps & { gradient?: GradientVariant; className?: string }) {\n\tconst strings = useStrings(defaultGiftcardStrings, stringsProp);\n\tconst statusLabel = strings.status[status];\n\tconst statusVariant = giftcardStatusVariant[status];\n\tconst isPartiallyUsed = !!remainingAmount && remainingAmount !== amount;\n\tconst displayAmount = isPartiallyUsed ? remainingAmount : amount;\n\n\treturn (\n\t\t<Item\n\t\t\tsize=\"small\"\n\t\t\tvariant=\"outline\"\n\t\t\tclassName={cn(\n\t\t\t\t'giftcard-compact--component flex-nowrap gap-x-2.5 px-3 py-2 shadow-sm transition-colors duration-150 hover:border-border',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<ItemMedia variant=\"image\">\n\t\t\t\t<div\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'flex size-full items-center justify-center bg-gradient-to-br',\n\t\t\t\t\t\tcompactGradientMap[gradient],\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t<Gift className=\"h-4 w-4 text-inverse-foreground\" />\n\t\t\t\t</div>\n\t\t\t</ItemMedia>\n\n\t\t\t<ItemContent className=\"min-w-0\">\n\t\t\t\t<ItemTitle className=\"w-full max-w-full truncate whitespace-nowrap font-mono text-xs\">{code}</ItemTitle>\n\t\t\t\t{!!recipientName && <ItemDescription clamp={1}>{recipientName}</ItemDescription>}\n\t\t\t</ItemContent>\n\n\t\t\t<ItemActions className=\"shrink-0\">\n\t\t\t\t<div className=\"flex shrink-0 flex-col items-end gap-0.5\">\n\t\t\t\t\t<div className=\"flex items-baseline gap-1\">\n\t\t\t\t\t\t<Text size=\"sm\" weight=\"bold\" className=\"tabular-nums\">\n\t\t\t\t\t\t\t{displayAmount}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t{!!isPartiallyUsed && (\n\t\t\t\t\t\t\t<Text size=\"xxs\" type=\"discrete\" className=\"line-through tabular-nums\">\n\t\t\t\t\t\t\t\t{amount}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t\t<Badge variant={statusVariant} size=\"small\">{statusLabel}</Badge>\n\t\t\t\t</div>\n\t\t\t</ItemActions>\n\t\t</Item>\n\t);\n}\n\nGiftcardCompact.displayName = 'GiftcardCompact';\n","/**\n * GiftcardCardMinimal — clean minimal layout. A small accent line (driven by\n * `color`) sits above the header icon + label, balance, code strip, and\n * metadata rows. Footer \"View details\" link uses an arrow affordance.\n * Strings overridable for i18n.\n */\nimport { Text } from '@/components/typography/text';\nimport Heading from '@/components/typography/heading';\nimport { Badge } from '@/components/base/badge/badge';\nimport { Button } from '@/components/base/buttons';\nimport { MetadataList, type MetadataListItem } from '@/components/composed/data-display/metadata';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\nimport { Gift, Copy, ArrowRight } from 'lucide-react';\nimport {\n\ttype AccentColor,\n\ttype GiftcardCommonProps,\n\ttype GiftcardData,\n\taccentColorMap,\n\tdefaultGiftcardStrings,\n\tgiftcardStatusVariant,\n} from '../types';\n\nexport function GiftcardCardMinimal({\n\tcode,\n\tamount,\n\tremainingAmount,\n\tstatus,\n\trecipientName,\n\texpiresAt,\n\tonView,\n\tcolor = 'green',\n\tclassName,\n\tstrings: stringsProp,\n}: GiftcardData & GiftcardCommonProps & { color?: AccentColor; className?: string }) {\n\tconst strings = useStrings(defaultGiftcardStrings, stringsProp);\n\tconst statusLabel = strings.status[status];\n\tconst statusVariant = giftcardStatusVariant[status];\n\tconst isPartiallyUsed = !!remainingAmount && remainingAmount !== amount;\n\tconst displayAmount = isPartiallyUsed ? remainingAmount : amount;\n\tconst accent = accentColorMap[color];\n\tconst metadataItems: MetadataListItem[] = [\n\t\t...(recipientName ? [{ label: strings.recipient, value: recipientName }] : []),\n\t\t...(expiresAt ? [{ label: strings.expires, value: expiresAt }] : []),\n\t];\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'giftcard-minimal--component w-full max-w-sm overflow-hidden rounded-lg border border-border bg-card shadow-sm',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<div className={cn('mx-4 mt-3 h-1 w-12 rounded-sm', accent.line)} />\n\n\t\t\t<Item size=\"small\" className=\"flex-nowrap items-center\">\n\t\t\t\t<ItemMedia>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'flex h-7 w-7 items-center justify-center rounded-full',\n\t\t\t\t\t\t\taccent.iconBg,\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Gift className=\"h-3.5 w-3.5\" />\n\t\t\t\t\t</div>\n\t\t\t\t</ItemMedia>\n\t\t\t\t<ItemContent>\n\t\t\t\t\t<ItemTitle bold={false} className=\"text-muted-foreground\">{strings.giftCard}</ItemTitle>\n\t\t\t\t</ItemContent>\n\t\t\t\t<ItemActions className=\"shrink-0\">\n\t\t\t\t\t<Badge variant={statusVariant} size=\"small\">{statusLabel}</Badge>\n\t\t\t\t</ItemActions>\n\t\t\t</Item>\n\n\t\t\t<div className=\"px-4 pb-2 pt-0\">\n\t\t\t\t<div className=\"flex items-baseline gap-2\">\n\t\t\t\t\t<Heading tag=\"h2\" className=\"border-none pb-0 text-2xl tabular-nums\">\n\t\t\t\t\t\t{displayAmount}\n\t\t\t\t\t</Heading>\n\t\t\t\t\t{!!isPartiallyUsed && (\n\t\t\t\t\t\t<Text type=\"discrete\" className=\"line-through tabular-nums\">\n\t\t\t\t\t\t\t{amount}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div className=\"mx-4 flex items-center gap-1.5 rounded-md border border-border/30 bg-muted/50 px-2.5 py-1.5\">\n\t\t\t\t<Text weight=\"medium\" className=\"flex-1 font-mono tracking-[0.15em]\">\n\t\t\t\t\t{code}\n\t\t\t\t</Text>\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\tsize=\"icon-small\"\n\t\t\t\t\tclassName=\"shrink-0\"\n\t\t\t\t\taria-label={strings.copyCode}\n\t\t\t\t>\n\t\t\t\t\t<Copy className=\"h-3.5 w-3.5\" />\n\t\t\t\t</Button>\n\t\t\t</div>\n\n\t\t\t<MetadataList\n\t\t\t\titems={metadataItems}\n\t\t\t\tcolumns={1}\n\t\t\t\tdense\n\t\t\t\tgapClassName=\"gap-1.5\"\n\t\t\t\tclassName=\"px-4 pb-1.5 pt-2\"\n\t\t\t/>\n\n\t\t\t{!!onView && (\n\t\t\t\t<div className=\"mt-1 border-t border-border/30 px-3 py-1.5\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\tonClick={onView}\n\t\t\t\t\t\tclassName=\"group/link\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{strings.viewDetails}\n\t\t\t\t\t\t<ArrowRight className=\"ml-1 h-3.5 w-3.5 transition-transform group-hover/link:translate-x-0.5\" />\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nGiftcardCardMinimal.displayName = 'GiftcardCardMinimal';\n","/**\n * GiftcardCardDark — premium dark variant. Header with chart-2 gift icon,\n * status chip, balance + strike-through line, code strip, metadata rows\n * (recipient / expires), and an outline call-to-action footer. Strings\n * overridable for i18n.\n */\nimport { Text } from '@/components/typography/text';\nimport Heading from '@/components/typography/heading';\nimport { Badge } from '@/components/base/badge/badge';\nimport { Button } from '@/components/base/buttons';\nimport { MetadataList, type MetadataListItem } from '@/components/composed/data-display/metadata';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\nimport { Gift, Copy, Eye } from 'lucide-react';\nimport {\n\ttype GiftcardCommonProps,\n\ttype GiftcardData,\n\tdefaultGiftcardStrings,\n\tgiftcardStatusVariant,\n} from '../types';\n\nexport function GiftcardCardDark({\n\tcode,\n\tamount,\n\tremainingAmount,\n\tstatus,\n\trecipientName,\n\texpiresAt,\n\tonView,\n\tclassName,\n\tstrings: stringsProp,\n}: GiftcardData & GiftcardCommonProps & { className?: string }) {\n\tconst strings = useStrings(defaultGiftcardStrings, stringsProp);\n\tconst statusLabel = strings.status[status];\n\tconst statusVariant = giftcardStatusVariant[status];\n\tconst isPartiallyUsed = !!remainingAmount && remainingAmount !== amount;\n\tconst displayAmount = isPartiallyUsed ? remainingAmount : amount;\n\tconst metadataItems: MetadataListItem[] = [\n\t\t...(recipientName ? [{ label: strings.recipient, value: recipientName }] : []),\n\t\t...(expiresAt ? [{ label: strings.expires, value: expiresAt }] : []),\n\t];\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'giftcard-dark--component dark w-full max-w-sm overflow-hidden rounded-lg bg-card text-card-foreground shadow-sm ring-1 ring-border',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<Item size=\"small\">\n\t\t\t\t<ItemMedia>\n\t\t\t\t\t<div className=\"flex h-8 w-8 items-center justify-center rounded-full bg-warning/15\">\n\t\t\t\t\t\t<Gift className=\"h-4 w-4 text-warning\" />\n\t\t\t\t\t</div>\n\t\t\t\t</ItemMedia>\n\t\t\t\t<ItemContent>\n\t\t\t\t\t<ItemTitle bold={false} className=\"text-muted-foreground\">{strings.giftCard}</ItemTitle>\n\t\t\t\t</ItemContent>\n\t\t\t\t<ItemActions>\n\t\t\t\t\t<Badge variant={statusVariant}>{statusLabel}</Badge>\n\t\t\t\t</ItemActions>\n\t\t\t</Item>\n\n\t\t\t{/* Amount */}\n\t\t\t<div className=\"px-4 pb-3 pt-2\">\n\t\t\t\t<div className=\"flex items-baseline gap-2\">\n\t\t\t\t\t<Heading tag=\"h2\" className=\"border-none pb-0 text-3xl tabular-nums\">\n\t\t\t\t\t\t{displayAmount}\n\t\t\t\t\t</Heading>\n\t\t\t\t\t{!!isPartiallyUsed && (\n\t\t\t\t\t\t<Text type=\"discrete\" className=\"line-through tabular-nums\">\n\t\t\t\t\t\t\t{amount}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{/* Code strip */}\n\t\t\t<div className=\"mx-4 flex items-center gap-2 rounded-md border border-border bg-muted px-3 py-2\">\n\t\t\t\t<Text weight=\"medium\" className=\"font-mono tracking-[0.15em] flex-1\">\n\t\t\t\t\t{code}\n\t\t\t\t</Text>\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\tclassName=\"p-1 h-auto\"\n\t\t\t\t\taria-label={strings.copyCode}\n\t\t\t\t>\n\t\t\t\t\t<Copy className=\"h-3.5 w-3.5\" />\n\t\t\t\t</Button>\n\t\t\t</div>\n\n\t\t\t<MetadataList\n\t\t\t\titems={metadataItems}\n\t\t\t\tcolumns={1}\n\t\t\t\tclassName=\"px-4 pb-2 pt-3\"\n\t\t\t/>\n\n\t\t\t{/* Footer — inverse button on the dark surface so the label\n\t\t\t always reads without raw palette overrides. */}\n\t\t\t{!!onView && (\n\t\t\t\t<div className=\"px-4 pb-4 pt-2\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"dark\"\n\t\t\t\t\t\tbuttonStyle=\"solid\"\n\t\t\t\t\t\ticon={Eye}\n\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\tonClick={onView}\n\t\t\t\t\t>\n\t\t\t\t\t\t{strings.viewDetails}\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nGiftcardCardDark.displayName = 'GiftcardCardDark';\n","/**\n * GiftcardCardIllustrated — gift-card surface with a compact illustrated\n * header, balance + status row, code strip, details, and a footer action.\n * Strings are overridable for i18n.\n */\nimport { Text } from '@/components/typography/text';\nimport Heading from '@/components/typography/heading';\nimport { Badge } from '@/components/base/badge/badge';\nimport { Button } from '@/components/base/buttons';\nimport { IconBadge } from '@/components/base/display';\nimport { MetadataList, type MetadataListItem } from '@/components/composed/data-display/metadata';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\nimport { Gift, Copy, Eye } from 'lucide-react';\nimport {\n\ttype GiftcardCommonProps,\n\ttype GiftcardData,\n\ttype HeaderColor,\n\tdefaultGiftcardStrings,\n\tgiftcardStatusVariant,\n\theaderGradientMap,\n\theaderIconBgMap,\n} from '../types';\n\nexport function GiftcardCardIllustrated({\n\tcode,\n\tamount,\n\tremainingAmount,\n\tstatus,\n\trecipientName,\n\texpiresAt,\n\tonView,\n\theaderColor = 'green',\n\tclassName,\n\tstrings: stringsProp,\n}: GiftcardData & GiftcardCommonProps & { headerColor?: HeaderColor; className?: string }) {\n\tconst strings = useStrings(defaultGiftcardStrings, stringsProp);\n\tconst statusLabel = strings.status[status];\n\tconst statusVariant = giftcardStatusVariant[status];\n\tconst isPartiallyUsed = !!remainingAmount && remainingAmount !== amount;\n\tconst displayAmount = isPartiallyUsed ? remainingAmount : amount;\n\tconst metadataItems: MetadataListItem[] = [\n\t\t...(recipientName ? [{ label: strings.recipient, value: recipientName }] : []),\n\t\t...(expiresAt ? [{ label: strings.expires, value: expiresAt }] : []),\n\t];\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'giftcard-illustrated--component w-full max-w-sm overflow-hidden rounded-lg border border-border bg-card shadow-sm',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<div className={cn('relative flex h-16 items-center justify-between overflow-hidden bg-gradient-to-br px-4', headerGradientMap[headerColor])}>\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"absolute inset-0 opacity-80\"\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tbackgroundImage:\n\t\t\t\t\t\t\t'repeating-linear-gradient(45deg, transparent 0 10px, color-mix(in oklch, var(--inverse-foreground) 3%, transparent) 10px 20px)',\n\t\t\t\t\t}}\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t/>\n\t\t\t\t<IconBadge\n\t\t\t\t\ticon={Gift}\n\t\t\t\t\tsize=\"default\"\n\t\t\t\t\tshape=\"square\"\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'relative rounded-md text-inverse-foreground ring-1 ring-inverse-border',\n\t\t\t\t\t\theaderIconBgMap[headerColor],\n\t\t\t\t\t)}\n\t\t\t\t/>\n\t\t\t\t<Text tag=\"span\" size=\"xs\" weight=\"semibold\" className=\"relative uppercase tracking-wider text-inverse-foreground opacity-80\">\n\t\t\t\t\t{strings.giftCard}\n\t\t\t\t</Text>\n\t\t\t</div>\n\n\t\t\t<div className=\"space-y-3 px-4 py-4\">\n\t\t\t\t<div className=\"flex items-start justify-between\">\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<div className=\"flex items-baseline gap-2\">\n\t\t\t\t\t\t\t<Heading tag=\"h2\" className=\"border-none pb-0 text-2xl tabular-nums\">\n\t\t\t\t\t\t\t\t{displayAmount}\n\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t{!!isPartiallyUsed && (\n\t\t\t\t\t\t\t\t<Text type=\"discrete\" className=\"line-through tabular-nums\">\n\t\t\t\t\t\t\t\t\t{amount}\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 size=\"xs\" type=\"secondary\" className=\"mt-0.5\">\n\t\t\t\t\t\t\t{strings.balance}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</div>\n\t\t\t\t\t<Badge variant={statusVariant}>{statusLabel}</Badge>\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"flex items-center gap-2 rounded-md border border-border/50 bg-muted/40 px-3 py-2\">\n\t\t\t\t\t<Text weight=\"medium\" className=\"font-mono tracking-[0.15em] flex-1\">\n\t\t\t\t\t\t{code}\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\tclassName=\"p-1 h-auto\"\n\t\t\t\t\t\taria-label={strings.copyCode}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Copy className=\"h-3.5 w-3.5\" />\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\n\t\t\t\t<MetadataList items={metadataItems} columns={2} />\n\n\t\t\t\t{!!onView && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\t\ticon={Eye}\n\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\tonClick={onView}\n\t\t\t\t\t>\n\t\t\t\t\t\t{strings.viewDetails}\n\t\t\t\t\t</Button>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nGiftcardCardIllustrated.displayName = 'GiftcardCardIllustrated';\n","import type { ComposedBadgeVariant } from '@/components/base/badge/badge';\nimport type { StringsProp } from '@/lib/strings';\n\nexport interface CourseParticipant {\n\t/** Display name (used for tooltip + initials extraction). */\n\tname?: string;\n\t/** Pre-computed initials override. */\n\tinitials?: string;\n\t/** Optional photo. */\n\timageUrl?: string;\n}\n\nexport interface CourseBadge {\n\tlabel: string;\n\tvariant: ComposedBadgeVariant;\n}\n\nexport type CourseCardVariant = 'default' | 'minimal' | 'gradient';\n\nexport interface CourseCardStrings {\n\tparticipants: string;\n\tprogress: string;\n}\n\nexport const defaultCourseCardStrings: CourseCardStrings = {\n\tparticipants: 'Participants',\n\tprogress: 'Progress',\n};\n\nexport interface CourseCardProps {\n\ttitle: string;\n\tdescription?: string;\n\tbadges?: CourseBadge[];\n\tparticipants?: CourseParticipant[];\n\textraParticipants?: number;\n\tprogressPercent?: number;\n\tactionLabel?: string;\n\tonAction?: () => void;\n\tclassName?: string;\n\tstrings?: StringsProp<CourseCardStrings>;\n\t/** Visual variant. Default `default`. */\n\tvariant?: CourseCardVariant;\n\t/** Optional gradient (`from-... via-... to-...` Tailwind tokens) for `gradient` variant. */\n\tgradient?: string;\n}\n","/**\n * CourseCard — course summary tile with title, description, badges row,\n * stacked-avatar participants block, progress bar, and primary action.\n *\n * Three variants:\n * - `default` — soft gradient surface (current behaviour)\n * - `gradient` — subtle featured gradient using the same SmartCard chrome\n * - `minimal` — borderless inline row (icon-free, single line of meta)\n *\n * Strings overridable 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 {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemDescription,\n\tItemTitle,\n} from '@/components/base/item';\nimport { Text } from '@/components/typography/text';\nimport { StackedAvatars, type StackedAvatarUser } from '@/components/base/display/stacked-avatars';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport { defaultCourseCardStrings, type CourseCardProps, type CourseParticipant } from './types';\n\nconst innerSurface = 'rounded-xl bg-background/80 ring-1 ring-border/60 p-3';\n\nconst DEFAULT_GRADIENT = 'from-primary/8 via-card to-info/10';\n\nfunction toAvatarUsers(participants: CourseParticipant[]): StackedAvatarUser[] {\n\treturn participants.map((p, idx) => ({\n\t\tid: `${idx}-${p.name ?? p.initials ?? ''}`,\n\t\tname: p.name ?? p.initials ?? `P${idx + 1}`,\n\t\timageUrl: p.imageUrl,\n\t}));\n}\n\nexport function CourseCard({\n\ttitle,\n\tdescription,\n\tbadges = [],\n\tparticipants = [],\n\textraParticipants = 0,\n\tprogressPercent,\n\tactionLabel,\n\tonAction,\n\tclassName,\n\tstrings: stringsProp,\n\tvariant = 'default',\n\tgradient = DEFAULT_GRADIENT,\n}: CourseCardProps) {\n\tconst strings = useStrings(defaultCourseCardStrings, stringsProp);\n\tconst totalUsers = participants.length + extraParticipants;\n\tconst avatarUsers = toAvatarUsers(participants);\n\n\tif (variant === 'minimal') {\n\t\treturn (\n\t\t\t<Item variant=\"outline\" className={cn('course-card--component', 'hover:bg-muted/30 transition-colors', className)}>\n\t\t\t\t<ItemContent className=\"min-w-0 sm:min-w-48\">\n\t\t\t\t\t<ItemTitle>{title}</ItemTitle>\n\t\t\t\t\t{!!description && <ItemDescription clamp={1}>{description}</ItemDescription>}\n\t\t\t\t</ItemContent>\n\t\t\t\t<ItemActions className=\"ml-auto shrink-0 flex-wrap justify-end\">\n\t\t\t\t\t{participants.length > 0 && (\n\t\t\t\t\t\t<StackedAvatars\n\t\t\t\t\t\t\tusers={avatarUsers}\n\t\t\t\t\t\t\tmax={3}\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\toverflowFormatter={() => `+${extraParticipants || 0}`}\n\t\t\t\t\t\t\tshowOverflow={extraParticipants > 0}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{progressPercent !== undefined && (\n\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"shrink-0 tabular-nums\">\n\t\t\t\t\t\t\t{progressPercent}%\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!actionLabel && (\n\t\t\t\t\t\t<Button variant=\"secondary\" buttonStyle=\"outline\" onClick={onAction}>\n\t\t\t\t\t\t\t{actionLabel}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t</ItemActions>\n\t\t\t</Item>\n\t\t);\n\t}\n\n\tif (variant === 'gradient') {\n\t\treturn (\n\t\t\t<SmartCard\n\t\t\t\ttitle={title}\n\t\t\t\tdescription={description}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'course-card--component border-primary/20 bg-gradient-to-br',\n\t\t\t\t\tgradient,\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{badges.length > 0 && (\n\t\t\t\t\t<div className=\"flex flex-wrap gap-1.5\">\n\t\t\t\t\t\t{badges.map((badge) => (\n\t\t\t\t\t\t\t<Badge key={badge.label} variant={badge.variant}>\n\t\t\t\t\t\t\t\t{badge.label}\n\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{(participants.length > 0 || progressPercent !== undefined) && (\n\t\t\t\t\t<div className=\"mt-4 rounded-lg border border-border/70 bg-background/80 p-3\">\n\t\t\t\t\t\t<div className=\"flex flex-wrap items-center gap-3\">\n\t\t\t\t\t\t\t{participants.length > 0 && (\n\t\t\t\t\t\t\t\t<div className=\"flex min-w-0 items-center gap-2\">\n\t\t\t\t\t\t\t\t\t<StackedAvatars users={avatarUsers} max={3} size=\"small\" showOverflow={false} />\n\t\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"truncate\">\n\t\t\t\t\t\t\t\t\t\t{totalUsers} {strings.participants.toLowerCase()}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{progressPercent !== undefined && (\n\t\t\t\t\t\t\t\t<div className=\"ml-auto flex min-w-36 items-center gap-2\">\n\t\t\t\t\t\t\t\t\t<div className=\"h-1.5 min-w-20 flex-1 overflow-hidden rounded-full bg-success/15\">\n\t\t\t\t\t\t\t\t\t\t<div className=\"h-full rounded-full bg-success\" style={{ width: `${progressPercent}%` }} />\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"shrink-0 tabular-nums\">\n\t\t\t\t\t\t\t\t\t\t{progressPercent}%\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{!!actionLabel && (\n\t\t\t\t\t<Button variant=\"primary\" className=\"mt-4 w-full rounded-xl\" onClick={onAction}>\n\t\t\t\t\t\t{actionLabel}\n\t\t\t\t\t</Button>\n\t\t\t\t)}\n\t\t\t</SmartCard>\n\t\t);\n\t}\n\n\treturn (\n\t\t<SmartCard\n\t\t\ttitle={title}\n\t\t\tdescription={description}\n\t\t\tclassName={cn('course-card--component', className)}\n\t\t>\n\t\t\t{badges.length > 0 && (\n\t\t\t\t<div className=\"flex flex-wrap gap-1.5\">\n\t\t\t\t\t{badges.map((badge) => (\n\t\t\t\t\t\t<Badge key={badge.label} variant={badge.variant}>\n\t\t\t\t\t\t\t{badge.label}\n\t\t\t\t\t\t</Badge>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{(participants.length > 0 || progressPercent !== undefined) && (\n\t\t\t\t<div className=\"mt-4 grid gap-2.5 sm:grid-cols-2\">\n\t\t\t\t\t{participants.length > 0 && (\n\t\t\t\t\t\t<div className={innerSurface}>\n\t\t\t\t\t\t\t<div className=\"flex items-center justify-between gap-2\">\n\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\">{strings.participants}</Text>\n\t\t\t\t\t\t\t\t<Text size=\"xs\" weight=\"semibold\" className=\"tabular-nums\">\n\t\t\t\t\t\t\t\t\t{totalUsers}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"mt-2 flex items-center gap-2\">\n\t\t\t\t\t\t\t\t<StackedAvatars\n\t\t\t\t\t\t\t\t\tusers={avatarUsers}\n\t\t\t\t\t\t\t\t\tmax={4}\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\tshowOverflow={extraParticipants > 0}\n\t\t\t\t\t\t\t\t\toverflowFormatter={() => `+${extraParticipants}`}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"truncate\">\n\t\t\t\t\t\t\t\t\t{totalUsers} {strings.participants.toLowerCase()}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t{progressPercent !== undefined && (\n\t\t\t\t\t\t<div className={innerSurface}>\n\t\t\t\t\t\t\t<div className=\"flex items-center justify-between gap-2\">\n\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\">{strings.progress}</Text>\n\t\t\t\t\t\t\t\t<Text size=\"xs\" weight=\"semibold\" className=\"tabular-nums\">\n\t\t\t\t\t\t\t\t\t{progressPercent}%\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"mt-2.5\">\n\t\t\t\t\t\t\t\t<div className=\"h-1.5 w-full overflow-hidden rounded-full bg-success/15\">\n\t\t\t\t\t\t\t\t\t<div className=\"h-full rounded-full bg-success\" style={{ width: `${progressPercent}%` }} />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{!!actionLabel && (\n\t\t\t\t<Button variant=\"primary\" className=\"mt-4 w-full rounded-xl\" onClick={onAction}>\n\t\t\t\t\t{actionLabel}\n\t\t\t\t</Button>\n\t\t\t)}\n\t\t</SmartCard>\n\t);\n}\n\nCourseCard.displayName = 'CourseCard';\n","/**\n * FeatureAnnouncementCard — promotional surface for new-feature callouts.\n * Sparkles-style icon (configurable via `icon`) sits on the leading edge of\n * the header so the title / description block has a clear typographic anchor;\n * tag chips wrap below; the action is rendered as an inline ghost link with\n * a trailing chevron. All copy is consumer-supplied so no `strings` prop is\n * needed.\n */\nimport {\n\tChevronRight,\n\tSparkles } from 'lucide-react';\n\nimport { Badge } from '@/components/base/badge/badge';\nimport { Button } from '@/components/base/buttons';\nimport { SmartCard } from '@/components/base/cards/smart-card';\nimport { IconBadge,\n} from '@/components/base/display';\nimport {\n\tItem,\n\tItemContent,\n\tItemDescription,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { cn } from '@/lib/utils';\n\nimport type { FeatureAnnouncementCardProps } from './types';\n\nexport function FeatureAnnouncementCard({\n\ticon: Icon = Sparkles,\n\ttitle,\n\tdescription,\n\ttags = [],\n\tactionLabel,\n\tonAction,\n\tclassName,\n}: FeatureAnnouncementCardProps) {\n\treturn (\n\t\t<SmartCard className={cn('feature-announcement--component', className)}>\n\t\t\t<Item className=\"items-start\">\n\t\t\t\t<ItemMedia>\n\t\t\t\t\t<IconBadge icon={Icon} tone=\"primary\" size=\"default\" shape=\"square\" className=\"rounded-md ring-1 ring-primary/15\" />\n\t\t\t\t</ItemMedia>\n\t\t\t\t<ItemContent>\n\t\t\t\t\t<ItemTitle>{title}</ItemTitle>\n\t\t\t\t\t<ItemDescription clamp=\"none\">{description}</ItemDescription>\n\t\t\t\t</ItemContent>\n\t\t\t</Item>\n\n\t\t\t{tags.length > 0 && (\n\t\t\t\t<div className=\"mt-3 flex flex-wrap gap-1.5\">\n\t\t\t\t\t{tags.map((tag) => (\n\t\t\t\t\t\t<Badge key={tag} variant=\"info\">\n\t\t\t\t\t\t\t{tag}\n\t\t\t\t\t\t</Badge>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{!!actionLabel && (\n\t\t\t\t<div className=\"mt-3\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"light\"\n\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\tonClick={onAction}\n\t\t\t\t\t\tclassName=\"-ml-2\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{actionLabel}\n\t\t\t\t\t\t<ChevronRight className=\"ml-1 size-3.5\" />\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</SmartCard>\n\t);\n}\n\nFeatureAnnouncementCard.displayName = 'FeatureAnnouncementCard';\n","import type { StringsProp } from '@/lib/strings';\n\nexport interface VendorProfileStat {\n\tlabel: string;\n\tvalue: string;\n\tchange?: string;\n}\n\nexport interface VendorProfileMetric {\n\tlabel: string;\n\tvalue: string;\n}\n\n/**\n * Localised labels for VendorProfileCard. Override per-instance via `strings`.\n */\nexport interface VendorProfileStrings {\n\ttabOverview: string;\n\ttabStats: string;\n\ttotalEarnings: string;\n\tmessage: string;\n\thire: string;\n\tverifiedAriaLabel: string;\n}\n\nexport const defaultVendorProfileStrings: VendorProfileStrings = {\n\ttabOverview: 'Overview',\n\ttabStats: 'Stats',\n\ttotalEarnings: 'Total Earnings',\n\tmessage: 'Message',\n\thire: 'Hire Me',\n\tverifiedAriaLabel: 'Verified',\n};\n\nexport interface VendorProfileCardProps {\n\tname: string;\n\tinitials?: string;\n\tavatarUrl?: string;\n\trole?: string;\n\tverified?: boolean;\n\tearnings?: string;\n\tearningsChange?: string;\n\tmetrics?: VendorProfileMetric[];\n\tstats?: VendorProfileStat[];\n\tonMessage?: () => void;\n\tonHire?: () => void;\n\tclassName?: string;\n\tstrings?: StringsProp<VendorProfileStrings>;\n}\n","/**\n * VendorProfileCard — vendor avatar, name, role, verified badge, earnings,\n * and a pill-tab switcher between Overview (metrics list) and Stats (small\n * KPI grid). Trailing Message / Hire actions. Strings are overridable for\n * i18n via the `strings` prop.\n *\n * Avatar sits BESIDE the name (not above) so the header row reads as a\n * cohesive identity block rather than a floating icon over a separate text\n * block. The card uses a custom layout instead of SmartCard's slot system to\n * keep the tab switcher / earnings hero / metrics grid / actions footer\n * arranged in a tighter visual rhythm.\n */\nimport {\n\tuseState } from 'react';\nimport { Check,\n\tChevronRight,\n\tMessageSquare } from 'lucide-react';\n\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography/text';\nimport { IconBadge,\n} from '@/components/base/display';\nimport { InlineStat } from '@/components/composed/data-display';\nimport {\n\tItem,\n\tItemContent,\n\tItemDescription,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport { defaultVendorProfileStrings, type VendorProfileCardProps } from './types';\n\nexport function VendorProfileCard({\n\tname,\n\tinitials,\n\tavatarUrl,\n\trole,\n\tverified = false,\n\tearnings,\n\tearningsChange,\n\tmetrics = [],\n\tstats = [],\n\tonMessage,\n\tonHire,\n\tclassName,\n\tstrings: stringsProp,\n}: VendorProfileCardProps) {\n\tconst strings = useStrings(defaultVendorProfileStrings, stringsProp);\n\tconst [tab, setTab] = useState<'overview' | 'stats'>('overview');\n\n\tconst displayInitials =\n\t\tinitials ?? name.split(' ').map((w) => w[0]).join('').slice(0, 2).toUpperCase();\n\n\tconst tabLabel: Record<'overview' | 'stats', string> = {\n\t\toverview: strings.tabOverview,\n\t\tstats: strings.tabStats,\n\t};\n\tconst hasOverviewContent = Boolean(earnings) || metrics.length > 0;\n\tconst hasStatsContent = stats.length > 0;\n\tconst availableTabs = ([\n\t\t['overview', hasOverviewContent],\n\t\t['stats', hasStatsContent],\n\t] as const)\n\t\t.filter(([, isAvailable]) => isAvailable)\n\t\t.map(([value]) => value);\n\tconst activeTab = tab === 'overview' && !hasOverviewContent && hasStatsContent ? 'stats' : tab;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('vendor-profile--component', \n\t\t\t\t'flex flex-col gap-3 rounded-lg border border-border bg-card p-4 shadow-sm',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<Item className=\"items-start\">\n\t\t\t\t<ItemMedia variant={avatarUrl ? 'avatar' : 'default'}>\n\t\t\t\t\t{avatarUrl ? (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tsrc={avatarUrl}\n\t\t\t\t\t\t\talt={name}\n\t\t\t\t\t\t\tclassName=\"size-10 rounded-full object-cover ring-1 ring-border\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<IconBadge tone=\"primary\" size=\"default\" className=\"font-semibold ring-1 ring-primary/15\">\n\t\t\t\t\t\t\t{displayInitials}\n\t\t\t\t\t\t</IconBadge>\n\t\t\t\t\t)}\n\t\t\t\t</ItemMedia>\n\t\t\t\t<ItemContent>\n\t\t\t\t\t<ItemTitle>\n\t\t\t\t\t\t<span className=\"inline-flex items-center gap-1.5\">\n\t\t\t\t\t\t\t{name}\n\t\t\t\t\t\t\t{!!verified && (\n\t\t\t\t\t\t\t\t<IconBadge tone=\"success\" solid size=\"small\" aria-label={strings.verifiedAriaLabel} className=\"size-4 shrink-0\">\n\t\t\t\t\t\t\t\t\t<Check className=\"size-2.5\" strokeWidth={3} />\n\t\t\t\t\t\t\t\t</IconBadge>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</ItemTitle>\n\t\t\t\t\t{!!role && <ItemDescription clamp={2}>{role}</ItemDescription>}\n\t\t\t\t</ItemContent>\n\t\t\t</Item>\n\n\t\t\t{availableTabs.length > 1 && (\n\t\t\t\t<div className=\"flex gap-1 rounded-md bg-muted/60 p-0.5\">\n\t\t\t\t\t{availableTabs.map((t) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tkey={t}\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\taria-pressed={activeTab === t}\n\t\t\t\t\t\t\tonClick={() => setTab(t)}\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'h-auto flex-1 rounded-sm px-3 py-1.5 text-xs font-medium transition-colors',\n\t\t\t\t\t\t\t\tactiveTab === t\n\t\t\t\t\t\t\t\t\t? 'bg-card text-foreground shadow-sm'\n\t\t\t\t\t\t\t\t\t: 'text-muted-foreground hover:text-foreground',\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{tabLabel[t]}\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\n\t\t\t{activeTab === 'overview' && hasOverviewContent && (\n\t\t\t\t<div className=\"space-y-3\">\n\t\t\t\t\t{!!earnings && (\n\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\ttype=\"secondary\"\n\t\t\t\t\t\t\t\tweight=\"medium\"\n\t\t\t\t\t\t\t\tclassName=\"uppercase tracking-wider\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{strings.totalEarnings}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<div className=\"mt-0.5 flex items-baseline gap-2\">\n\t\t\t\t\t\t\t\t<Text size=\"xl\" weight=\"semibold\" className=\"tabular-nums tracking-tight\">\n\t\t\t\t\t\t\t\t\t{earnings}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t{!!earningsChange && (\n\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"rounded-full bg-success/15 px-1.5 py-0.5 text-success tabular-nums\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{earningsChange}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{metrics.length > 0 && (\n\t\t\t\t\t\t<div className=\"space-y-1.5\">\n\t\t\t\t\t\t\t{metrics.map((metric) => (\n\t\t\t\t\t\t\t\t<InlineStat\n\t\t\t\t\t\t\t\t\tkey={metric.label}\n\t\t\t\t\t\t\t\t\tclassName=\"border-b border-border/50 pb-1.5 last:border-0\"\n\t\t\t\t\t\t\t\t\tlabel={metric.label}\n\t\t\t\t\t\t\t\t\tvalue={metric.value}\n\t\t\t\t\t\t\t\t\tmono\n\t\t\t\t\t\t\t\t\tlabelClassName=\"text-sm\"\n\t\t\t\t\t\t\t\t\tvalueClassName=\"text-sm font-semibold\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{activeTab === 'stats' && hasStatsContent && (\n\t\t\t\t<div className=\"grid grid-cols-2 gap-1.5\">\n\t\t\t\t\t{stats.map((stat) => (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={stat.label}\n\t\t\t\t\t\t\tclassName=\"rounded-lg border border-border/60 bg-muted/20 px-3 py-2\"\n\t\t\t\t\t\t>\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\ttype=\"secondary\"\n\t\t\t\t\t\t\t\tweight=\"medium\"\n\t\t\t\t\t\t\t\tclassName=\"uppercase tracking-wider\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{stat.label}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<div className=\"mt-1 flex items-baseline gap-1.5\">\n\t\t\t\t\t\t\t\t<Text size=\"base\" weight=\"semibold\" className=\"tabular-nums\">\n\t\t\t\t\t\t\t\t\t{stat.value}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t{!!stat.change && (\n\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\t\t\tsize=\"xxs\"\n\t\t\t\t\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t'rounded-full px-1.5 py-0.5 tabular-nums',\n\t\t\t\t\t\t\t\t\t\t\tstat.change.startsWith('+')\n\t\t\t\t\t\t\t\t\t\t\t\t? 'bg-success/15 text-success'\n\t\t\t\t\t\t\t\t\t\t\t\t: 'bg-destructive/15 text-destructive',\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{stat.change}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t<div className=\"flex gap-1.5\">\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"light\"\n\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\tclassName=\"flex-1 rounded-md\"\n\t\t\t\t\tonClick={onMessage}\n\t\t\t\t>\n\t\t\t\t\t<MessageSquare className=\"mr-1.5 size-3.5\" />\n\t\t\t\t\t{strings.message}\n\t\t\t\t</Button>\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"dark\"\n\t\t\t\t\tclassName=\"flex-1 rounded-md\"\n\t\t\t\t\tonClick={onHire}\n\t\t\t\t>\n\t\t\t\t\t{strings.hire}\n\t\t\t\t\t<ChevronRight className=\"ml-1 size-3.5\" />\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nVendorProfileCard.displayName = 'VendorProfileCard';\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../src/components/composed/cards/contact-card/types.ts","../../../../src/components/composed/cards/contact-card/contact-card.tsx","../../../../src/components/composed/cards/gradient-card/gradient-card.tsx","../../../../src/components/composed/cards/giftcard-card/types.ts","../../../../src/components/composed/cards/giftcard-card/partials/giftcard-full.tsx","../../../../src/components/composed/cards/giftcard-card/partials/giftcard-compact.tsx","../../../../src/components/composed/cards/giftcard-card/partials/giftcard-minimal.tsx","../../../../src/components/composed/cards/giftcard-card/partials/giftcard-dark.tsx","../../../../src/components/composed/cards/giftcard-card/partials/giftcard-illustrated.tsx","../../../../src/components/composed/cards/course-card/types.ts","../../../../src/components/composed/cards/course-card/course-card.tsx","../../../../src/components/composed/cards/feature-announcement/feature-announcement.tsx","../../../../src/components/composed/cards/vendor-profile/types.ts","../../../../src/components/composed/cards/vendor-profile/vendor-profile.tsx"],"sourcesContent":["import type { ComposedBadgeVariant as BadgeVariant } from '@/components/base/badge/badge';\nimport type { StringsProp } from '@/lib/strings';\n\nexport interface ContactCardStrings {\n contact: string;\n profile: string;\n}\n\nexport const defaultContactCardStrings: ContactCardStrings = {\n contact: 'Contact',\n profile: 'Profile',\n};\n\nexport interface ContactCardProps {\n name: string;\n role?: string;\n email?: string;\n phone?: string;\n location?: string;\n avatarUrl?: string;\n initials?: string;\n badge?: string;\n badgeVariant?: BadgeVariant;\n onContact?: () => void;\n onViewProfile?: () => void;\n className?: string;\n /** Override default action button labels. */\n strings?: StringsProp<ContactCardStrings>;\n}\n","import { Text } from '@/components/typography/text';\nimport { Button } from '@/components/base/buttons';\nimport { Badge } from '@/components/base/badge/badge';\nimport { Avatar, AvatarFallback, AvatarImage } from '@/components/base/display/avatar';\nimport {\n Item,\n ItemContent,\n ItemGroup,\n ItemMedia,\n ItemTitle,\n} from '@/components/base/item';\nimport { cn } from '@/lib/utils';\nimport { useStrings } from '@/lib/strings';\nimport { Mail, Phone, MapPin, ExternalLink } from 'lucide-react';\nimport { defaultContactCardStrings, type ContactCardProps } from './types';\n\nfunction deriveInitials(name: string, initials?: string): string {\n\tif (initials) return initials;\n\treturn name\n\t\t.split(' ')\n\t\t.map((part) => part[0])\n\t\t.slice(0, 2)\n\t\t.join('')\n\t\t.toUpperCase();\n}\n\n/**\n * ContactCard — Avatar + name + role + contact details (email, phone, location)\n * with optional Contact / Profile actions and a status badge.\n *\n * Contact details render through `<ItemGroup>` + `<Item>` so density and\n * media slots stay aligned with the rest of the library; the header and CTA\n * row remain bespoke because they are not Item-shaped.\n */\nexport function ContactCard({\n\tname,\n\trole,\n\temail,\n\tphone,\n\tlocation,\n\tavatarUrl,\n\tinitials,\n\tbadge,\n\tbadgeVariant = 'success',\n\tonContact,\n\tonViewProfile,\n\tclassName,\n\tstrings: stringsProp,\n}: ContactCardProps) {\n\tconst strings = useStrings(defaultContactCardStrings, stringsProp);\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('contact-card--component', \n\t\t\t\t'overflow-hidden rounded-lg border border-border bg-card p-4 text-card-foreground shadow-sm sm:p-5',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<div className=\"flex items-start gap-3\">\n\t\t\t\t<Avatar className=\"size-avatar-lg shrink-0 border border-border\">\n\t\t\t\t\t{!!avatarUrl && <AvatarImage src={avatarUrl} alt={name} />}\n\t\t\t\t\t<AvatarFallback className=\"text-sm font-semibold\">\n\t\t\t\t\t\t{deriveInitials(name, initials)}\n\t\t\t\t\t</AvatarFallback>\n\t\t\t\t</Avatar>\n\t\t\t\t<div className=\"min-w-0 flex-1\">\n\t\t\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t\t\t<Text weight=\"semibold\" className=\"truncate\">\n\t\t\t\t\t\t\t{name}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t{!!badge && <Badge variant={badgeVariant}>{badge}</Badge>}\n\t\t\t\t\t</div>\n\t\t\t\t\t{!!role && (\n\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"mt-0.5\">\n\t\t\t\t\t\t\t{role}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{!!(email || phone || location) && (\n\t\t\t\t<ItemGroup className=\"mt-4 gap-0\">\n\t\t\t\t\t{!!email && (\n\t\t\t\t\t\t<Item size=\"small\">\n\t\t\t\t\t\t\t<ItemMedia variant=\"icon\" className=\"text-muted-foreground\">\n\t\t\t\t\t\t\t\t<Mail />\n\t\t\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t\t\t<ItemContent>\n\t\t\t\t\t\t\t\t<ItemTitle bold={false}>{email}</ItemTitle>\n\t\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t</Item>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!phone && (\n\t\t\t\t\t\t<Item size=\"small\">\n\t\t\t\t\t\t\t<ItemMedia variant=\"icon\" className=\"text-muted-foreground\">\n\t\t\t\t\t\t\t\t<Phone />\n\t\t\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t\t\t<ItemContent>\n\t\t\t\t\t\t\t\t<ItemTitle bold={false}>{phone}</ItemTitle>\n\t\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t</Item>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!location && (\n\t\t\t\t\t\t<Item size=\"small\">\n\t\t\t\t\t\t\t<ItemMedia variant=\"icon\" className=\"text-muted-foreground\">\n\t\t\t\t\t\t\t\t<MapPin />\n\t\t\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t\t\t<ItemContent>\n\t\t\t\t\t\t\t\t<ItemTitle bold={false}>{location}</ItemTitle>\n\t\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t</Item>\n\t\t\t\t\t)}\n\t\t\t\t</ItemGroup>\n\t\t\t)}\n\n\t\t\t{!!(onContact || onViewProfile) && (\n\t\t\t\t<div className=\"mt-4 flex items-center gap-2\">\n\t\t\t\t\t{!!onContact && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tbuttonStyle=\"solid\"\n\t\t\t\t\t\t\ticon={Mail}\n\t\t\t\t\t\t\tonClick={onContact}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{strings.contact}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!onViewProfile && (\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=\"ghost\"\n\t\t\t\t\t\t\ticon={ExternalLink}\n\t\t\t\t\t\t\tonClick={onViewProfile}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{strings.profile}\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</div>\n\t);\n}\n\nContactCard.displayName = 'ContactCard';\n","/**\n * GradientCard — vivid gradient surface with a clear single-axis layout.\n *\n * Structure (all sections optional, all left-aligned):\n *\n * ┌──────────────────────────────────────────┐\n * │ Title [icon] [×] │ ← header: title|subtitle / icon / badge\n * │ Subtitle │\n * │ │\n * │ 24 │ ← hero value (large, eyebrow above)\n * │ orders awaiting fulfillment URGENT │\n * │ │\n * │ ⚠ 3 orders older than 48h 3 │ ← inline alert (subordinate to value)\n * │ │\n * │ ──────────────────────────────────────── │\n * │ [Review Orders] footer │ ← action / footer\n * └──────────────────────────────────────────┘\n *\n * Earlier centered-hero mode pushed every element to the centerline which made\n * the alert dominate over the value and produced a fragmented vertical rhythm.\n * The new layout keeps everything on the leading edge so the eye walks\n * top-down: identity → value → context → action.\n *\n * For the compact \"metric tile\" use-case (single value + change), see\n * `GradientCardCompact` below.\n */\nimport { type ReactNode, useId } from 'react';\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography/text';\nimport Heading from '@/components/typography/heading';\nimport { cn } from '@/lib/utils';\nimport {\n\ttype GradientPreset,\n\ttype PatternType,\n\ttype GradientCardProps,\n\ttype GradientCardCompactProps,\n} from './types';\n\n// ──────────────────────────────────────────────────────────────────────────\n// Gradient + pattern presets\n// ──────────────────────────────────────────────────────────────────────────\n\nconst GRADIENT_MAP: Record<GradientPreset, string> = {\n\tcoral: 'bg-gradient-to-br from-destructive to-warning',\n\tocean: 'bg-gradient-to-br from-info to-primary',\n\tforest: 'bg-gradient-to-br from-success to-info',\n\ttwilight: 'bg-gradient-to-br from-foreground to-info',\n\tember: 'bg-gradient-to-br from-destructive via-warning to-destructive',\n};\n\nfunction PatternCircles() {\n\treturn (\n\t\t<>\n\t\t\t<div className=\"absolute -right-12 -top-12 h-44 w-44 rounded-full bg-inverse-decoration\" aria-hidden=\"true\" />\n\t\t\t<div className=\"absolute -bottom-8 -left-8 h-28 w-28 rounded-full bg-inverse-decoration\" aria-hidden=\"true\" />\n\t\t</>\n\t);\n}\n\nfunction PatternDiagonal() {\n\tconst rawId = useId();\n\tconst patternId = `gradient-card-diag-stripes-${rawId.replace(/:/g, '')}`;\n\n\treturn (\n\t\t<svg\n\t\t\tclassName=\"absolute inset-0 h-full w-full opacity-[0.04]\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\taria-hidden=\"true\"\n\t\t>\n\t\t\t<defs>\n\t\t\t\t<pattern\n\t\t\t\t\tid={patternId}\n\t\t\t\t\twidth=\"8\"\n\t\t\t\t\theight=\"8\"\n\t\t\t\t\tpatternUnits=\"userSpaceOnUse\"\n\t\t\t\t\tpatternTransform=\"rotate(45)\"\n\t\t\t\t>\n\t\t\t\t\t<rect width=\"2\" height=\"8\" className=\"fill-inverse-foreground\" />\n\t\t\t\t</pattern>\n\t\t\t</defs>\n\t\t\t<rect width=\"100%\" height=\"100%\" fill={`url(#${patternId})`} />\n\t\t</svg>\n\t);\n}\n\nconst PATTERN_MAP: Record<PatternType, (() => ReactNode) | null> = {\n\tnone: null,\n\tcircles: () => <PatternCircles />,\n\tdiagonal: () => <PatternDiagonal />,\n};\n\n// ──────────────────────────────────────────────────────────────────────────\n// GradientCard\n// ──────────────────────────────────────────────────────────────────────────\n\nexport function GradientCard({\n\tgradient = 'coral',\n\tpattern = 'none',\n\ttitle,\n\tsubtitle,\n\tvalue,\n\tvalueLabel,\n\tbadge,\n\ticon: Icon,\n\talertText,\n\talertCount,\n\taction,\n\tfooter,\n\tchildren,\n\tclassName,\n}: GradientCardProps) {\n\tconst PatternRenderer = PATTERN_MAP[pattern];\n\tconst hasHeader = !!(title || subtitle || Icon);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'gradient-card--component relative overflow-hidden rounded-lg',\n\t\t\t\tGRADIENT_MAP[gradient],\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{!!PatternRenderer && PatternRenderer()}\n\n\t\t\t<div className=\"relative flex flex-col gap-5 p-6\">\n\t\t\t\t{/* Header — title + subtitle on the leading edge, icon as a\n\t\t\t\t rounded square on the trailing edge so it acts as a brand\n\t\t\t\t mark rather than competing for the centerline. */}\n\t\t\t\t{!!hasHeader && (\n\t\t\t\t\t<div className=\"flex items-start justify-between gap-4\">\n\t\t\t\t\t\t<div className=\"min-w-0 flex-1\">\n\t\t\t\t\t\t\t{!!title && (\n\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\t\t\t\tclassName=\"tracking-tight leading-snug text-inverse-foreground\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{title}\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{!!subtitle && (\n\t\t\t\t\t\t\t\t<Text size=\"xs\" className=\"mt-0.5 leading-snug text-inverse-muted\">\n\t\t\t\t\t\t\t\t\t{subtitle}\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{!!Icon && (\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\tclassName=\"inline-flex size-10 shrink-0 items-center justify-center rounded-xl bg-inverse-surface text-inverse-foreground ring-1 ring-inverse-border backdrop-blur-sm\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Icon className=\"size-5\" />\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{/* Hero value block — eyebrow above the figure, optional badge\n\t\t\t\t on the trailing edge of the label row. The figure is the\n\t\t\t\t visual anchor of the card. */}\n\t\t\t\t{!!value && (\n\t\t\t\t\t<div className=\"flex flex-col gap-1\">\n\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\ttag=\"h3\"\n\t\t\t\t\t\t\talign=\"left\"\n\t\t\t\t\t\t\tclassName=\"text-4xl font-bold tabular-nums tracking-tight border-none pb-0 leading-none text-inverse-foreground\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{value}\n\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t{(valueLabel || badge) && (\n\t\t\t\t\t\t\t<div className=\"flex flex-wrap items-center justify-between gap-2\">\n\t\t\t\t\t\t\t\t{!!valueLabel && (\n\t\t\t\t\t\t\t\t\t<Text size=\"xs\" className=\"leading-snug text-inverse-muted\">\n\t\t\t\t\t\t\t\t\t\t{valueLabel}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{!!badge && (\n\t\t\t\t\t\t\t\t\t<span className=\"inline-flex items-center rounded-full bg-inverse-surface-strong px-2.5 py-0.5 text-xs font-semibold uppercase tracking-wider text-inverse-foreground backdrop-blur-sm\">\n\t\t\t\t\t\t\t\t\t\t{badge}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{/* Inline alert — subordinate to the value, sits below it. */}\n\t\t\t\t{!!alertText && (\n\t\t\t\t\t<div className=\"flex items-center gap-3 rounded-xl bg-inverse-surface px-3.5 py-2.5 ring-1 ring-inverse-border backdrop-blur-sm\">\n\t\t\t\t\t\t<Text className=\"min-w-0 flex-1 leading-snug text-inverse-foreground\">\n\t\t\t\t\t\t\t{alertText}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t{!!alertCount && (\n\t\t\t\t\t\t\t<span className=\"inline-flex h-5 min-w-5 items-center justify-center rounded-full bg-inverse-surface-strong px-1.5 text-xs font-bold tabular-nums text-inverse-foreground\">\n\t\t\t\t\t\t\t\t{alertCount}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{!!children && <div>{children}</div>}\n\n\t\t\t\t{(!!action || !!footer) && (\n\t\t\t\t\t<div className=\"flex items-center justify-between gap-3 pt-1\">\n\t\t\t\t\t\t\t{action ? (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"dark\"\n\t\t\t\t\t\t\t\tonClick={action.onClick}\n\t\t\t\t\t\t\t\tclassName=\"rounded-xl px-4\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{action.label}\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<span />\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{!!footer && (\n\t\t\t\t\t\t\t<Text size=\"xs\" className=\"text-inverse-muted\">{footer}</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nGradientCard.displayName = 'GradientCard';\n\n// ──────────────────────────────────────────────────────────────────────────\n// GradientCardCompact — single-metric tile\n// ──────────────────────────────────────────────────────────────────────────\n\nexport function GradientCardCompact({\n\tgradient = 'coral',\n\tpattern = 'none',\n\ttitle,\n\tvalue,\n\tchange,\n\tsubtitle,\n\tclassName,\n}: GradientCardCompactProps) {\n\tconst PatternRenderer = PATTERN_MAP[pattern];\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'gradient-card-compact--component relative overflow-hidden rounded-lg',\n\t\t\t\tGRADIENT_MAP[gradient],\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{!!PatternRenderer && PatternRenderer()}\n\n\t\t\t<div className=\"relative flex flex-col gap-1 p-5\">\n\t\t\t\t{!!title && (\n\t\t\t\t\t<Text size=\"xs\" weight=\"medium\" className=\"uppercase tracking-wider text-inverse-muted\">\n\t\t\t\t\t\t{title}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t\t<div className=\"flex items-baseline gap-2\">\n\t\t\t\t\t{!!value && (\n\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\ttag=\"h4\"\n\t\t\t\t\t\t\talign=\"left\"\n\t\t\t\t\t\t\tclassName=\"text-2xl font-bold tabular-nums tracking-tight border-none pb-0 leading-none text-inverse-foreground\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{value}\n\t\t\t\t\t\t</Heading>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!change && (\n\t\t\t\t\t\t<span className=\"inline-flex items-center rounded-full bg-inverse-surface px-2 py-0.5 text-xs font-semibold tabular-nums text-inverse-foreground backdrop-blur-sm\">\n\t\t\t\t\t\t\t{change}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t\t{!!subtitle && (\n\t\t\t\t\t<Text size=\"xs\" className=\"leading-snug text-inverse-subtle\">\n\t\t\t\t\t\t{subtitle}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nGradientCardCompact.displayName = 'GradientCardCompact';\n","import type { StringsProp } from '@/lib/strings';\n\nexport interface GiftcardData {\n\tcode: string;\n\tamount: string;\n\tremainingAmount?: string;\n\tcurrency?: string;\n\tstatus: 'active' | 'redeemed' | 'expired' | 'disabled';\n\trecipientName?: string;\n\tsenderName?: string;\n\tmessage?: string;\n\texpiresAt?: string;\n\tcreatedAt?: string;\n\ttemplate?: string;\n\tonView?: () => void;\n}\n\nexport type GradientVariant = 'purple' | 'green' | 'warm';\nexport type PatternVariant = 'none' | 'circles' | 'waves';\nexport type AccentColor = 'green' | 'purple' | 'warm';\nexport type HeaderColor = 'green' | 'blue' | 'amber';\n\nexport type GiftcardStatus = GiftcardData['status'];\n\n/**\n * Localised labels for giftcard cards. Covers status chips, the recurring\n * field labels rendered by all five partials (full / dark / illustrated /\n * minimal / compact), and the inline button labels.\n *\n * Override per-instance via `strings`.\n */\nexport interface GiftcardStrings {\n\tstatus: Record<GiftcardStatus, string>;\n\tgiftCard: string;\n\tbalance: string;\n\tpersonalMessage: string;\n\tto: string;\n\tfrom: string;\n\texpires: string;\n\trecipient: string;\n\tviewDetails: string;\n\tcopyCode: string;\n}\n\nexport const defaultGiftcardStrings: GiftcardStrings = {\n\tstatus: {\n\t\tactive: 'Active',\n\t\tredeemed: 'Redeemed',\n\t\texpired: 'Expired',\n\t\tdisabled: 'Disabled',\n\t},\n\tgiftCard: 'Gift Card',\n\tbalance: 'Balance',\n\tpersonalMessage: 'Personal Message',\n\tto: 'To',\n\tfrom: 'From',\n\texpires: 'Expires',\n\trecipient: 'Recipient',\n\tviewDetails: 'View Details',\n\tcopyCode: 'Copy code',\n};\n\nexport interface GiftcardCommonProps {\n\t/** Override default English giftcard strings. */\n\tstrings?: StringsProp<GiftcardStrings>;\n}\n\nexport const giftcardStatusVariant: Record<\n\tGiftcardStatus,\n\t'success' | 'secondary' | 'error' | 'warning'\n> = {\n\tactive: 'success',\n\tredeemed: 'secondary',\n\texpired: 'error',\n\tdisabled: 'warning',\n};\n\n/**\n * @deprecated Use `defaultGiftcardStrings.status` for labels and\n * `giftcardStatusVariant` for badge variants. Kept for backwards compatibility.\n */\nexport const giftcardStatusMap = {\n\tactive: { label: defaultGiftcardStrings.status.active, variant: 'success' as const },\n\tredeemed: { label: defaultGiftcardStrings.status.redeemed, variant: 'secondary' as const },\n\texpired: { label: defaultGiftcardStrings.status.expired, variant: 'error' as const },\n\tdisabled: { label: defaultGiftcardStrings.status.disabled, variant: 'warning' as const },\n};\n\nexport const gradientMap: Record<GradientVariant, { card: string; strip: string }> = {\n\tpurple: {\n\t\tcard: 'from-primary via-primary/90 to-info',\n\t\tstrip: 'from-primary via-primary/90 to-info',\n\t},\n\tgreen: {\n\t\tcard: 'from-success via-info to-success',\n\t\tstrip: 'from-success via-info to-success',\n\t},\n\twarm: {\n\t\tcard: 'from-warning via-warning/90 to-destructive',\n\t\tstrip: 'from-warning via-warning/90 to-destructive',\n\t},\n};\n\nexport const compactGradientMap: Record<GradientVariant, string> = {\n\tpurple: 'from-primary to-info',\n\tgreen: 'from-success to-info',\n\twarm: 'from-warning to-destructive',\n};\n\nexport const accentColorMap: Record<AccentColor, { line: string; iconBg: string }> = {\n\tgreen: { line: 'bg-success', iconBg: 'bg-success/15 text-success' },\n\tpurple: { line: 'bg-primary', iconBg: 'bg-primary/15 text-primary' },\n\twarm: { line: 'bg-warning', iconBg: 'bg-warning/15 text-warning-foreground' },\n};\n\nexport const headerGradientMap: Record<HeaderColor, string> = {\n\tgreen: 'from-success to-info',\n\tblue: 'from-info to-primary',\n\tamber: 'from-warning to-destructive',\n};\n\nexport const headerIconBgMap: Record<HeaderColor, string> = {\n\tgreen: 'bg-success ring-4 ring-background shadow-lg',\n\tblue: 'bg-info ring-4 ring-background shadow-lg',\n\tamber: 'bg-warning ring-4 ring-background shadow-lg',\n};\n","/**\n * GiftcardCard (full) — premium gradient layout with optional\n * pattern overlay (circles / waves), header status chip, balance / strike-\n * through line, copyable code strip, personal message block, and metadata\n * grid (To / From / Expires). Strings overridable for i18n.\n */\nimport { Text } from '@/components/typography/text';\nimport Heading from '@/components/typography/heading';\nimport { Button } from '@/components/base/buttons';\nimport { MetadataList, type MetadataListItem } from '@/components/composed/data-display/metadata';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\nimport {\n\tGift,\n\tCopy,\n\tEye,\n} from 'lucide-react';\nimport {\n\ttype GiftcardCommonProps,\n\ttype GiftcardData,\n\ttype GradientVariant,\n\ttype PatternVariant,\n\tdefaultGiftcardStrings,\n\tgiftcardStatusVariant,\n\tgradientMap,\n} from '../types';\n\nexport function GiftcardCard({\n\tcode,\n\tamount,\n\tremainingAmount,\n\tstatus,\n\trecipientName,\n\tsenderName,\n\tmessage,\n\texpiresAt,\n\tcreatedAt: _createdAt,\n\ttemplate: _template,\n\tonView,\n\tgradient = 'purple',\n\tpattern = 'none',\n\tclassName,\n\tstrings: stringsProp,\n}: GiftcardData &\n\tGiftcardCommonProps & {\n\t\tgradient?: GradientVariant;\n\t\tpattern?: PatternVariant;\n\t\tclassName?: string;\n\t}) {\n\tconst strings = useStrings(defaultGiftcardStrings, stringsProp);\n\tconst statusLabel = strings.status[status];\n\tconst statusVariant = giftcardStatusVariant[status];\n\tconst isPartiallyUsed = !!remainingAmount && remainingAmount !== amount;\n\tconst displayAmount = isPartiallyUsed ? remainingAmount : amount;\n\tconst metadataItems: MetadataListItem[] = [\n\t\t...(recipientName ? [{ label: strings.to, value: recipientName }] : []),\n\t\t...(senderName ? [{ label: strings.from, value: senderName }] : []),\n\t\t...(expiresAt ? [{ label: strings.expires, value: expiresAt }] : []),\n\t];\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'giftcard-card--component w-full max-w-sm transition-shadow duration-300 ease-out',\n\t\t\t\t'hover:shadow-md hover:shadow-foreground/10',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{/* Gift card header */}\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'relative overflow-hidden rounded-t-lg bg-gradient-to-br p-6',\n\t\t\t\t\tgradientMap[gradient].card,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{/* Pattern: circles */}\n\t\t\t\t{pattern === 'circles' && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<div className=\"absolute -top-8 -right-8 h-32 w-32 rounded-full bg-inverse-decoration\" aria-hidden=\"true\" />\n\t\t\t\t\t\t<div className=\"absolute -bottom-4 -left-4 h-20 w-20 rounded-full bg-inverse-decoration\" aria-hidden=\"true\" />\n\t\t\t\t\t</>\n\t\t\t\t)}\n\n\t\t\t\t{/* Pattern: waves */}\n\t\t\t\t{pattern === 'waves' && (\n\t\t\t\t\t<svg\n\t\t\t\t\t\tclassName=\"absolute inset-0 h-full w-full opacity-5\"\n\t\t\t\t\t\tviewBox=\"0 0 400 200\"\n\t\t\t\t\t\tpreserveAspectRatio=\"none\"\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<path d=\"M0 80 C100 20, 200 140, 400 60 L400 200 L0 200 Z\" className=\"fill-inverse-foreground\" />\n\t\t\t\t\t\t<path d=\"M0 120 C120 60, 280 180, 400 100 L400 200 L0 200 Z\" className=\"fill-inverse-foreground\" />\n\t\t\t\t\t</svg>\n\t\t\t\t)}\n\n\t\t\t\t{/* Status badge — top-right overlay with glass effect.\n\t\t\t\t Custom inline pill uses inverse-surface tokens so the label\n\t\t\t\t reads cleanly against any gradient. */}\n\t\t\t\t<div className=\"absolute top-4 right-4 z-20\">\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'inline-flex items-center gap-1.5 rounded-full px-2.5 py-0.5 text-xs font-semibold uppercase tracking-wide',\n\t\t\t\t\t\t\t'bg-inverse-surface-strong text-inverse-foreground border border-inverse-border shadow-sm backdrop-blur-md',\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tdata-status={statusVariant}\n\t\t\t\t\t>\n\t\t\t\t\t\t<span className=\"size-1.5 rounded-full bg-inverse-foreground/85\" aria-hidden=\"true\" />\n\t\t\t\t\t\t{statusLabel}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"relative z-10\">\n\t\t\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t\t\t<Gift className=\"h-5 w-5 text-inverse-foreground opacity-80\" />\n\t\t\t\t\t\t<Text weight=\"medium\" className=\"text-inverse-muted\">{strings.giftCard}</Text>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"mt-8 mb-5\">\n\t\t\t\t\t\t<Text size=\"xs\" className=\"uppercase tracking-wider text-inverse-subtle\">{strings.balance}</Text>\n\t\t\t\t\t\t<div className=\"flex items-baseline gap-2.5 mt-1\">\n\t\t\t\t\t\t\t<Heading tag=\"h2\" className=\"text-4xl border-none pb-0 text-inverse-foreground tabular-nums drop-shadow-sm\">\n\t\t\t\t\t\t\t\t{displayAmount}\n\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t{!!isPartiallyUsed && (\n\t\t\t\t\t\t\t\t<Text className=\"line-through tabular-nums text-inverse-disabled\">{amount}</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{/* Code strip — premium feel */}\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'flex items-center gap-2 rounded-lg px-4 py-2.5',\n\t\t\t\t\t\t\t'bg-inverse-surface backdrop-blur-sm',\n\t\t\t\t\t\t\t'border border-inverse-border',\n\t\t\t\t\t\t\t'shadow-sm',\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Text weight=\"semibold\" className=\"flex-1 font-mono tracking-[0.2em] text-inverse-foreground\">\n\t\t\t\t\t\t\t{code}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"light\"\n\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\tclassName=\"p-1 h-auto text-inverse-foreground opacity-60 hover:bg-inverse-surface hover:opacity-100\"\n\t\t\t\t\t\t\taria-label={strings.copyCode}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Copy className=\"h-4 w-4\" />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{/* Details section — structured metadata grid */}\n\t\t\t<div className=\"rounded-b-lg bg-card p-5 shadow-sm border border-t-0 border-border/50 space-y-4\">\n\t\t\t\t{!!message && (\n\t\t\t\t\t<div className=\"rounded-lg bg-muted/50 p-3 border border-border/30\">\n\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" weight=\"medium\" className=\"mb-1 uppercase tracking-wide\">\n\t\t\t\t\t\t\t{strings.personalMessage}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t<Text type=\"secondary\" className=\"italic leading-relaxed\">\n\t\t\t\t\t\t\t&ldquo;{message}&rdquo;\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t<MetadataList items={metadataItems} columns={2} />\n\n\t\t\t\t{!!onView && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\t\ticon={Eye}\n\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\tonClick={onView}\n\t\t\t\t\t>\n\t\t\t\t\t\t{strings.viewDetails}\n\t\t\t\t\t</Button>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nGiftcardCard.displayName = 'GiftcardCard';\n","/**\n * GiftcardCompact — single-row compact layout. Square gradient gift icon on\n * the left, code + recipient in the middle, amount + status badge on the\n * right. Use for inline lists / tables of giftcards. Strings overridable.\n */\nimport { Text } from '@/components/typography/text';\nimport { Badge } from '@/components/base/badge/badge';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemDescription,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\nimport { Gift } from 'lucide-react';\nimport {\n\ttype GiftcardCommonProps,\n\ttype GiftcardData,\n\ttype GradientVariant,\n\tcompactGradientMap,\n\tdefaultGiftcardStrings,\n\tgiftcardStatusVariant,\n} from '../types';\n\nexport function GiftcardCompact({\n\tcode,\n\tamount,\n\tremainingAmount,\n\tstatus,\n\trecipientName,\n\tgradient = 'purple',\n\tclassName,\n\tstrings: stringsProp,\n}: GiftcardData & GiftcardCommonProps & { gradient?: GradientVariant; className?: string }) {\n\tconst strings = useStrings(defaultGiftcardStrings, stringsProp);\n\tconst statusLabel = strings.status[status];\n\tconst statusVariant = giftcardStatusVariant[status];\n\tconst isPartiallyUsed = !!remainingAmount && remainingAmount !== amount;\n\tconst displayAmount = isPartiallyUsed ? remainingAmount : amount;\n\n\treturn (\n\t\t<Item\n\t\t\tsize=\"small\"\n\t\t\tvariant=\"outline\"\n\t\t\tclassName={cn(\n\t\t\t\t'giftcard-compact--component flex-nowrap gap-x-2.5 px-3 py-2 shadow-sm transition-colors duration-150 hover:border-border',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<ItemMedia variant=\"image\">\n\t\t\t\t<div\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'flex size-full items-center justify-center bg-gradient-to-br',\n\t\t\t\t\t\tcompactGradientMap[gradient],\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t<Gift className=\"h-4 w-4 text-inverse-foreground\" />\n\t\t\t\t</div>\n\t\t\t</ItemMedia>\n\n\t\t\t<ItemContent className=\"min-w-0\">\n\t\t\t\t<ItemTitle className=\"w-full max-w-full truncate whitespace-nowrap font-mono text-xs\">{code}</ItemTitle>\n\t\t\t\t{!!recipientName && <ItemDescription clamp={1}>{recipientName}</ItemDescription>}\n\t\t\t</ItemContent>\n\n\t\t\t<ItemActions className=\"shrink-0\">\n\t\t\t\t<div className=\"flex shrink-0 flex-col items-end gap-0.5\">\n\t\t\t\t\t<div className=\"flex items-baseline gap-1\">\n\t\t\t\t\t\t<Text size=\"sm\" weight=\"bold\" className=\"tabular-nums\">\n\t\t\t\t\t\t\t{displayAmount}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t{!!isPartiallyUsed && (\n\t\t\t\t\t\t\t<Text size=\"xs\" type=\"discrete\" className=\"line-through tabular-nums\">\n\t\t\t\t\t\t\t\t{amount}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t\t<Badge variant={statusVariant} size=\"small\">{statusLabel}</Badge>\n\t\t\t\t</div>\n\t\t\t</ItemActions>\n\t\t</Item>\n\t);\n}\n\nGiftcardCompact.displayName = 'GiftcardCompact';\n","/**\n * GiftcardCardMinimal — clean minimal layout. A small accent line (driven by\n * `color`) sits above the header icon + label, balance, code strip, and\n * metadata rows. Footer \"View details\" link uses an arrow affordance.\n * Strings overridable for i18n.\n */\nimport { Text } from '@/components/typography/text';\nimport Heading from '@/components/typography/heading';\nimport { Badge } from '@/components/base/badge/badge';\nimport { Button } from '@/components/base/buttons';\nimport { MetadataList, type MetadataListItem } from '@/components/composed/data-display/metadata';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\nimport { Gift, Copy, ArrowRight } from 'lucide-react';\nimport {\n\ttype AccentColor,\n\ttype GiftcardCommonProps,\n\ttype GiftcardData,\n\taccentColorMap,\n\tdefaultGiftcardStrings,\n\tgiftcardStatusVariant,\n} from '../types';\n\nexport function GiftcardCardMinimal({\n\tcode,\n\tamount,\n\tremainingAmount,\n\tstatus,\n\trecipientName,\n\texpiresAt,\n\tonView,\n\tcolor = 'green',\n\tclassName,\n\tstrings: stringsProp,\n}: GiftcardData & GiftcardCommonProps & { color?: AccentColor; className?: string }) {\n\tconst strings = useStrings(defaultGiftcardStrings, stringsProp);\n\tconst statusLabel = strings.status[status];\n\tconst statusVariant = giftcardStatusVariant[status];\n\tconst isPartiallyUsed = !!remainingAmount && remainingAmount !== amount;\n\tconst displayAmount = isPartiallyUsed ? remainingAmount : amount;\n\tconst accent = accentColorMap[color];\n\tconst metadataItems: MetadataListItem[] = [\n\t\t...(recipientName ? [{ label: strings.recipient, value: recipientName }] : []),\n\t\t...(expiresAt ? [{ label: strings.expires, value: expiresAt }] : []),\n\t];\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'giftcard-minimal--component w-full max-w-sm overflow-hidden rounded-lg border border-border bg-card shadow-sm',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<div className={cn('mx-4 mt-3 h-1 w-12 rounded-sm', accent.line)} />\n\n\t\t\t<Item size=\"small\" className=\"flex-nowrap items-center\">\n\t\t\t\t<ItemMedia>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'flex h-7 w-7 items-center justify-center rounded-full',\n\t\t\t\t\t\t\taccent.iconBg,\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Gift className=\"h-3.5 w-3.5\" />\n\t\t\t\t\t</div>\n\t\t\t\t</ItemMedia>\n\t\t\t\t<ItemContent>\n\t\t\t\t\t<ItemTitle bold={false} className=\"text-muted-foreground\">{strings.giftCard}</ItemTitle>\n\t\t\t\t</ItemContent>\n\t\t\t\t<ItemActions className=\"shrink-0\">\n\t\t\t\t\t<Badge variant={statusVariant} size=\"small\">{statusLabel}</Badge>\n\t\t\t\t</ItemActions>\n\t\t\t</Item>\n\n\t\t\t<div className=\"px-4 pb-2 pt-0\">\n\t\t\t\t<div className=\"flex items-baseline gap-2\">\n\t\t\t\t\t<Heading tag=\"h2\" className=\"border-none pb-0 text-2xl tabular-nums\">\n\t\t\t\t\t\t{displayAmount}\n\t\t\t\t\t</Heading>\n\t\t\t\t\t{!!isPartiallyUsed && (\n\t\t\t\t\t\t<Text type=\"discrete\" className=\"line-through tabular-nums\">\n\t\t\t\t\t\t\t{amount}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div className=\"mx-4 flex items-center gap-1.5 rounded-md border border-border/30 bg-muted/50 px-2.5 py-1.5\">\n\t\t\t\t<Text weight=\"medium\" className=\"flex-1 font-mono tracking-[0.15em]\">\n\t\t\t\t\t{code}\n\t\t\t\t</Text>\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\tsize=\"icon-small\"\n\t\t\t\t\tclassName=\"shrink-0\"\n\t\t\t\t\taria-label={strings.copyCode}\n\t\t\t\t>\n\t\t\t\t\t<Copy className=\"h-3.5 w-3.5\" />\n\t\t\t\t</Button>\n\t\t\t</div>\n\n\t\t\t<MetadataList\n\t\t\t\titems={metadataItems}\n\t\t\t\tcolumns={1}\n\t\t\t\tdense\n\t\t\t\tgapClassName=\"gap-1.5\"\n\t\t\t\tclassName=\"px-4 pb-1.5 pt-2\"\n\t\t\t/>\n\n\t\t\t{!!onView && (\n\t\t\t\t<div className=\"mt-1 border-t border-border/30 px-3 py-1.5\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\tonClick={onView}\n\t\t\t\t\t\tclassName=\"group/link\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{strings.viewDetails}\n\t\t\t\t\t\t<ArrowRight className=\"ml-1 h-3.5 w-3.5 transition-transform group-hover/link:translate-x-0.5\" />\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nGiftcardCardMinimal.displayName = 'GiftcardCardMinimal';\n","/**\n * GiftcardCardDark — premium dark variant. Header with chart-2 gift icon,\n * status chip, balance + strike-through line, code strip, metadata rows\n * (recipient / expires), and an outline call-to-action footer. Strings\n * overridable for i18n.\n */\nimport { Text } from '@/components/typography/text';\nimport Heading from '@/components/typography/heading';\nimport { Badge } from '@/components/base/badge/badge';\nimport { Button } from '@/components/base/buttons';\nimport { MetadataList, type MetadataListItem } from '@/components/composed/data-display/metadata';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\nimport { Gift, Copy, Eye } from 'lucide-react';\nimport {\n\ttype GiftcardCommonProps,\n\ttype GiftcardData,\n\tdefaultGiftcardStrings,\n\tgiftcardStatusVariant,\n} from '../types';\n\nexport function GiftcardCardDark({\n\tcode,\n\tamount,\n\tremainingAmount,\n\tstatus,\n\trecipientName,\n\texpiresAt,\n\tonView,\n\tclassName,\n\tstrings: stringsProp,\n}: GiftcardData & GiftcardCommonProps & { className?: string }) {\n\tconst strings = useStrings(defaultGiftcardStrings, stringsProp);\n\tconst statusLabel = strings.status[status];\n\tconst statusVariant = giftcardStatusVariant[status];\n\tconst isPartiallyUsed = !!remainingAmount && remainingAmount !== amount;\n\tconst displayAmount = isPartiallyUsed ? remainingAmount : amount;\n\tconst metadataItems: MetadataListItem[] = [\n\t\t...(recipientName ? [{ label: strings.recipient, value: recipientName }] : []),\n\t\t...(expiresAt ? [{ label: strings.expires, value: expiresAt }] : []),\n\t];\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'giftcard-dark--component dark w-full max-w-sm overflow-hidden rounded-lg bg-card text-card-foreground shadow-sm ring-1 ring-border',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<Item size=\"small\">\n\t\t\t\t<ItemMedia>\n\t\t\t\t\t<div className=\"flex h-8 w-8 items-center justify-center rounded-full bg-warning/15\">\n\t\t\t\t\t\t<Gift className=\"h-4 w-4 text-warning\" />\n\t\t\t\t\t</div>\n\t\t\t\t</ItemMedia>\n\t\t\t\t<ItemContent>\n\t\t\t\t\t<ItemTitle bold={false} className=\"text-muted-foreground\">{strings.giftCard}</ItemTitle>\n\t\t\t\t</ItemContent>\n\t\t\t\t<ItemActions>\n\t\t\t\t\t<Badge variant={statusVariant}>{statusLabel}</Badge>\n\t\t\t\t</ItemActions>\n\t\t\t</Item>\n\n\t\t\t{/* Amount */}\n\t\t\t<div className=\"px-4 pb-3 pt-2\">\n\t\t\t\t<div className=\"flex items-baseline gap-2\">\n\t\t\t\t\t<Heading tag=\"h2\" className=\"border-none pb-0 text-3xl tabular-nums\">\n\t\t\t\t\t\t{displayAmount}\n\t\t\t\t\t</Heading>\n\t\t\t\t\t{!!isPartiallyUsed && (\n\t\t\t\t\t\t<Text type=\"discrete\" className=\"line-through tabular-nums\">\n\t\t\t\t\t\t\t{amount}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{/* Code strip */}\n\t\t\t<div className=\"mx-4 flex items-center gap-2 rounded-md border border-border bg-muted px-3 py-2\">\n\t\t\t\t<Text weight=\"medium\" className=\"font-mono tracking-[0.15em] flex-1\">\n\t\t\t\t\t{code}\n\t\t\t\t</Text>\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\tclassName=\"p-1 h-auto\"\n\t\t\t\t\taria-label={strings.copyCode}\n\t\t\t\t>\n\t\t\t\t\t<Copy className=\"h-3.5 w-3.5\" />\n\t\t\t\t</Button>\n\t\t\t</div>\n\n\t\t\t<MetadataList\n\t\t\t\titems={metadataItems}\n\t\t\t\tcolumns={1}\n\t\t\t\tclassName=\"px-4 pb-2 pt-3\"\n\t\t\t/>\n\n\t\t\t{/* Footer — inverse button on the dark surface so the label\n\t\t\t always reads without raw palette overrides. */}\n\t\t\t{!!onView && (\n\t\t\t\t<div className=\"px-4 pb-4 pt-2\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"dark\"\n\t\t\t\t\t\tbuttonStyle=\"solid\"\n\t\t\t\t\t\ticon={Eye}\n\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\tonClick={onView}\n\t\t\t\t\t>\n\t\t\t\t\t\t{strings.viewDetails}\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nGiftcardCardDark.displayName = 'GiftcardCardDark';\n","/**\n * GiftcardCardIllustrated — gift-card surface with a compact illustrated\n * header, balance + status row, code strip, details, and a footer action.\n * Strings are overridable for i18n.\n */\nimport { Text } from '@/components/typography/text';\nimport Heading from '@/components/typography/heading';\nimport { Badge } from '@/components/base/badge/badge';\nimport { Button } from '@/components/base/buttons';\nimport { IconBadge } from '@/components/base/display';\nimport { MetadataList, type MetadataListItem } from '@/components/composed/data-display/metadata';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\nimport { Gift, Copy, Eye } from 'lucide-react';\nimport {\n\ttype GiftcardCommonProps,\n\ttype GiftcardData,\n\ttype HeaderColor,\n\tdefaultGiftcardStrings,\n\tgiftcardStatusVariant,\n\theaderGradientMap,\n\theaderIconBgMap,\n} from '../types';\n\nexport function GiftcardCardIllustrated({\n\tcode,\n\tamount,\n\tremainingAmount,\n\tstatus,\n\trecipientName,\n\texpiresAt,\n\tonView,\n\theaderColor = 'green',\n\tclassName,\n\tstrings: stringsProp,\n}: GiftcardData & GiftcardCommonProps & { headerColor?: HeaderColor; className?: string }) {\n\tconst strings = useStrings(defaultGiftcardStrings, stringsProp);\n\tconst statusLabel = strings.status[status];\n\tconst statusVariant = giftcardStatusVariant[status];\n\tconst isPartiallyUsed = !!remainingAmount && remainingAmount !== amount;\n\tconst displayAmount = isPartiallyUsed ? remainingAmount : amount;\n\tconst metadataItems: MetadataListItem[] = [\n\t\t...(recipientName ? [{ label: strings.recipient, value: recipientName }] : []),\n\t\t...(expiresAt ? [{ label: strings.expires, value: expiresAt }] : []),\n\t];\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'giftcard-illustrated--component w-full max-w-sm overflow-hidden rounded-lg border border-border bg-card shadow-sm',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<div className={cn('relative flex h-16 items-center justify-between overflow-hidden bg-gradient-to-br px-4', headerGradientMap[headerColor])}>\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"absolute inset-0 opacity-80\"\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tbackgroundImage:\n\t\t\t\t\t\t\t'repeating-linear-gradient(45deg, transparent 0 10px, color-mix(in oklch, var(--inverse-foreground) 3%, transparent) 10px 20px)',\n\t\t\t\t\t}}\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t/>\n\t\t\t\t<IconBadge\n\t\t\t\t\ticon={Gift}\n\t\t\t\t\tsize=\"default\"\n\t\t\t\t\tshape=\"square\"\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'relative rounded-md text-inverse-foreground ring-1 ring-inverse-border',\n\t\t\t\t\t\theaderIconBgMap[headerColor],\n\t\t\t\t\t)}\n\t\t\t\t/>\n\t\t\t\t<Text tag=\"span\" size=\"xs\" weight=\"semibold\" className=\"relative uppercase tracking-wider text-inverse-foreground opacity-80\">\n\t\t\t\t\t{strings.giftCard}\n\t\t\t\t</Text>\n\t\t\t</div>\n\n\t\t\t<div className=\"space-y-3 px-4 py-4\">\n\t\t\t\t<div className=\"flex items-start justify-between\">\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<div className=\"flex items-baseline gap-2\">\n\t\t\t\t\t\t\t<Heading tag=\"h2\" className=\"border-none pb-0 text-2xl tabular-nums\">\n\t\t\t\t\t\t\t\t{displayAmount}\n\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t{!!isPartiallyUsed && (\n\t\t\t\t\t\t\t\t<Text type=\"discrete\" className=\"line-through tabular-nums\">\n\t\t\t\t\t\t\t\t\t{amount}\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 size=\"xs\" type=\"secondary\" className=\"mt-0.5\">\n\t\t\t\t\t\t\t{strings.balance}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</div>\n\t\t\t\t\t<Badge variant={statusVariant}>{statusLabel}</Badge>\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"flex items-center gap-2 rounded-md border border-border/50 bg-muted/40 px-3 py-2\">\n\t\t\t\t\t<Text weight=\"medium\" className=\"font-mono tracking-[0.15em] flex-1\">\n\t\t\t\t\t\t{code}\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\tclassName=\"p-1 h-auto\"\n\t\t\t\t\t\taria-label={strings.copyCode}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Copy className=\"h-3.5 w-3.5\" />\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\n\t\t\t\t<MetadataList items={metadataItems} columns={2} />\n\n\t\t\t\t{!!onView && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\t\ticon={Eye}\n\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\tonClick={onView}\n\t\t\t\t\t>\n\t\t\t\t\t\t{strings.viewDetails}\n\t\t\t\t\t</Button>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nGiftcardCardIllustrated.displayName = 'GiftcardCardIllustrated';\n","import type { ComposedBadgeVariant } from '@/components/base/badge/badge';\nimport type { StringsProp } from '@/lib/strings';\n\nexport interface CourseParticipant {\n\t/** Display name (used for tooltip + initials extraction). */\n\tname?: string;\n\t/** Pre-computed initials override. */\n\tinitials?: string;\n\t/** Optional photo. */\n\timageUrl?: string;\n}\n\nexport interface CourseBadge {\n\tlabel: string;\n\tvariant: ComposedBadgeVariant;\n}\n\nexport type CourseCardVariant = 'default' | 'minimal' | 'gradient';\n\nexport interface CourseCardStrings {\n\tparticipants: string;\n\tprogress: string;\n}\n\nexport const defaultCourseCardStrings: CourseCardStrings = {\n\tparticipants: 'Participants',\n\tprogress: 'Progress',\n};\n\nexport interface CourseCardProps {\n\ttitle: string;\n\tdescription?: string;\n\tbadges?: CourseBadge[];\n\tparticipants?: CourseParticipant[];\n\textraParticipants?: number;\n\tprogressPercent?: number;\n\tactionLabel?: string;\n\tonAction?: () => void;\n\tclassName?: string;\n\tstrings?: StringsProp<CourseCardStrings>;\n\t/** Visual variant. Default `default`. */\n\tvariant?: CourseCardVariant;\n\t/** Optional gradient (`from-... via-... to-...` Tailwind tokens) for `gradient` variant. */\n\tgradient?: string;\n}\n","/**\n * CourseCard — course summary tile with title, description, badges row,\n * stacked-avatar participants block, progress bar, and primary action.\n *\n * Three variants:\n * - `default` — soft gradient surface (current behaviour)\n * - `gradient` — subtle featured gradient using the same SmartCard chrome\n * - `minimal` — borderless inline row (icon-free, single line of meta)\n *\n * Strings overridable 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 {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemDescription,\n\tItemTitle,\n} from '@/components/base/item';\nimport { Text } from '@/components/typography/text';\nimport { StackedAvatars, type StackedAvatarUser } from '@/components/base/display/stacked-avatars';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport { defaultCourseCardStrings, type CourseCardProps, type CourseParticipant } from './types';\n\nconst innerSurface = 'rounded-xl bg-background/80 ring-1 ring-border/60 p-3';\n\nconst DEFAULT_GRADIENT = 'from-primary/8 via-card to-info/10';\n\nfunction toAvatarUsers(participants: CourseParticipant[]): StackedAvatarUser[] {\n\treturn participants.map((p, idx) => ({\n\t\tid: `${idx}-${p.name ?? p.initials ?? ''}`,\n\t\tname: p.name ?? p.initials ?? `P${idx + 1}`,\n\t\timageUrl: p.imageUrl,\n\t}));\n}\n\nexport function CourseCard({\n\ttitle,\n\tdescription,\n\tbadges = [],\n\tparticipants = [],\n\textraParticipants = 0,\n\tprogressPercent,\n\tactionLabel,\n\tonAction,\n\tclassName,\n\tstrings: stringsProp,\n\tvariant = 'default',\n\tgradient = DEFAULT_GRADIENT,\n}: CourseCardProps) {\n\tconst strings = useStrings(defaultCourseCardStrings, stringsProp);\n\tconst totalUsers = participants.length + extraParticipants;\n\tconst avatarUsers = toAvatarUsers(participants);\n\n\tif (variant === 'minimal') {\n\t\treturn (\n\t\t\t<Item variant=\"outline\" className={cn('course-card--component', 'hover:bg-muted/30 transition-colors', className)}>\n\t\t\t\t<ItemContent className=\"min-w-0 sm:min-w-48\">\n\t\t\t\t\t<ItemTitle>{title}</ItemTitle>\n\t\t\t\t\t{!!description && <ItemDescription clamp={1}>{description}</ItemDescription>}\n\t\t\t\t</ItemContent>\n\t\t\t\t<ItemActions className=\"ml-auto shrink-0 flex-wrap justify-end\">\n\t\t\t\t\t{participants.length > 0 && (\n\t\t\t\t\t\t<StackedAvatars\n\t\t\t\t\t\t\tusers={avatarUsers}\n\t\t\t\t\t\t\tmax={3}\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\toverflowFormatter={() => `+${extraParticipants || 0}`}\n\t\t\t\t\t\t\tshowOverflow={extraParticipants > 0}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{progressPercent !== undefined && (\n\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"shrink-0 tabular-nums\">\n\t\t\t\t\t\t\t{progressPercent}%\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!actionLabel && (\n\t\t\t\t\t\t<Button variant=\"secondary\" buttonStyle=\"outline\" onClick={onAction}>\n\t\t\t\t\t\t\t{actionLabel}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t</ItemActions>\n\t\t\t</Item>\n\t\t);\n\t}\n\n\tif (variant === 'gradient') {\n\t\treturn (\n\t\t\t<SmartCard\n\t\t\t\ttitle={title}\n\t\t\t\tdescription={description}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'course-card--component border-primary/20 bg-gradient-to-br',\n\t\t\t\t\tgradient,\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{badges.length > 0 && (\n\t\t\t\t\t<div className=\"flex flex-wrap gap-1.5\">\n\t\t\t\t\t\t{badges.map((badge) => (\n\t\t\t\t\t\t\t<Badge key={badge.label} variant={badge.variant}>\n\t\t\t\t\t\t\t\t{badge.label}\n\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{(participants.length > 0 || progressPercent !== undefined) && (\n\t\t\t\t\t<div className=\"mt-4 rounded-lg border border-border/70 bg-background/80 p-3\">\n\t\t\t\t\t\t<div className=\"flex flex-wrap items-center gap-3\">\n\t\t\t\t\t\t\t{participants.length > 0 && (\n\t\t\t\t\t\t\t\t<div className=\"flex min-w-0 items-center gap-2\">\n\t\t\t\t\t\t\t\t\t<StackedAvatars users={avatarUsers} max={3} size=\"small\" showOverflow={false} />\n\t\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"truncate\">\n\t\t\t\t\t\t\t\t\t\t{totalUsers} {strings.participants.toLowerCase()}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{progressPercent !== undefined && (\n\t\t\t\t\t\t\t\t<div className=\"ml-auto flex min-w-36 items-center gap-2\">\n\t\t\t\t\t\t\t\t\t<div className=\"h-1.5 min-w-20 flex-1 overflow-hidden rounded-full bg-success/15\">\n\t\t\t\t\t\t\t\t\t\t<div className=\"h-full rounded-full bg-success\" style={{ width: `${progressPercent}%` }} />\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"shrink-0 tabular-nums\">\n\t\t\t\t\t\t\t\t\t\t{progressPercent}%\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{!!actionLabel && (\n\t\t\t\t\t<Button variant=\"primary\" className=\"mt-4 w-full rounded-xl\" onClick={onAction}>\n\t\t\t\t\t\t{actionLabel}\n\t\t\t\t\t</Button>\n\t\t\t\t)}\n\t\t\t</SmartCard>\n\t\t);\n\t}\n\n\treturn (\n\t\t<SmartCard\n\t\t\ttitle={title}\n\t\t\tdescription={description}\n\t\t\tclassName={cn('course-card--component', className)}\n\t\t>\n\t\t\t{badges.length > 0 && (\n\t\t\t\t<div className=\"flex flex-wrap gap-1.5\">\n\t\t\t\t\t{badges.map((badge) => (\n\t\t\t\t\t\t<Badge key={badge.label} variant={badge.variant}>\n\t\t\t\t\t\t\t{badge.label}\n\t\t\t\t\t\t</Badge>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{(participants.length > 0 || progressPercent !== undefined) && (\n\t\t\t\t<div className=\"mt-4 grid gap-2.5 sm:grid-cols-2\">\n\t\t\t\t\t{participants.length > 0 && (\n\t\t\t\t\t\t<div className={innerSurface}>\n\t\t\t\t\t\t\t<div className=\"flex items-center justify-between gap-2\">\n\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\">{strings.participants}</Text>\n\t\t\t\t\t\t\t\t<Text size=\"xs\" weight=\"semibold\" className=\"tabular-nums\">\n\t\t\t\t\t\t\t\t\t{totalUsers}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"mt-2 flex items-center gap-2\">\n\t\t\t\t\t\t\t\t<StackedAvatars\n\t\t\t\t\t\t\t\t\tusers={avatarUsers}\n\t\t\t\t\t\t\t\t\tmax={4}\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\tshowOverflow={extraParticipants > 0}\n\t\t\t\t\t\t\t\t\toverflowFormatter={() => `+${extraParticipants}`}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"truncate\">\n\t\t\t\t\t\t\t\t\t{totalUsers} {strings.participants.toLowerCase()}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t{progressPercent !== undefined && (\n\t\t\t\t\t\t<div className={innerSurface}>\n\t\t\t\t\t\t\t<div className=\"flex items-center justify-between gap-2\">\n\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\">{strings.progress}</Text>\n\t\t\t\t\t\t\t\t<Text size=\"xs\" weight=\"semibold\" className=\"tabular-nums\">\n\t\t\t\t\t\t\t\t\t{progressPercent}%\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"mt-2.5\">\n\t\t\t\t\t\t\t\t<div className=\"h-1.5 w-full overflow-hidden rounded-full bg-success/15\">\n\t\t\t\t\t\t\t\t\t<div className=\"h-full rounded-full bg-success\" style={{ width: `${progressPercent}%` }} />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{!!actionLabel && (\n\t\t\t\t<Button variant=\"primary\" className=\"mt-4 w-full rounded-xl\" onClick={onAction}>\n\t\t\t\t\t{actionLabel}\n\t\t\t\t</Button>\n\t\t\t)}\n\t\t</SmartCard>\n\t);\n}\n\nCourseCard.displayName = 'CourseCard';\n","/**\n * FeatureAnnouncementCard — promotional surface for new-feature callouts.\n * Sparkles-style icon (configurable via `icon`) sits on the leading edge of\n * the header so the title / description block has a clear typographic anchor;\n * tag chips wrap below; the action is rendered as an inline ghost link with\n * a trailing chevron. All copy is consumer-supplied so no `strings` prop is\n * needed.\n */\nimport {\n\tChevronRight,\n\tSparkles } from 'lucide-react';\n\nimport { Badge } from '@/components/base/badge/badge';\nimport { Button } from '@/components/base/buttons';\nimport { SmartCard } from '@/components/base/cards/smart-card';\nimport { IconBadge,\n} from '@/components/base/display';\nimport {\n\tItem,\n\tItemContent,\n\tItemDescription,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { cn } from '@/lib/utils';\n\nimport type { FeatureAnnouncementCardProps } from './types';\n\nexport function FeatureAnnouncementCard({\n\ticon: Icon = Sparkles,\n\ttitle,\n\tdescription,\n\ttags = [],\n\tactionLabel,\n\tonAction,\n\tclassName,\n}: FeatureAnnouncementCardProps) {\n\treturn (\n\t\t<SmartCard className={cn('feature-announcement--component', className)}>\n\t\t\t<Item className=\"items-start\">\n\t\t\t\t<ItemMedia>\n\t\t\t\t\t<IconBadge icon={Icon} tone=\"primary\" size=\"default\" shape=\"square\" className=\"rounded-md ring-1 ring-primary/15\" />\n\t\t\t\t</ItemMedia>\n\t\t\t\t<ItemContent>\n\t\t\t\t\t<ItemTitle>{title}</ItemTitle>\n\t\t\t\t\t<ItemDescription clamp=\"none\">{description}</ItemDescription>\n\t\t\t\t</ItemContent>\n\t\t\t</Item>\n\n\t\t\t{tags.length > 0 && (\n\t\t\t\t<div className=\"mt-3 flex flex-wrap gap-1.5\">\n\t\t\t\t\t{tags.map((tag) => (\n\t\t\t\t\t\t<Badge key={tag} variant=\"info\">\n\t\t\t\t\t\t\t{tag}\n\t\t\t\t\t\t</Badge>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{!!actionLabel && (\n\t\t\t\t<div className=\"mt-3\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"light\"\n\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\tonClick={onAction}\n\t\t\t\t\t\tclassName=\"-ml-2\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{actionLabel}\n\t\t\t\t\t\t<ChevronRight className=\"ml-1 size-3.5\" />\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</SmartCard>\n\t);\n}\n\nFeatureAnnouncementCard.displayName = 'FeatureAnnouncementCard';\n","import type { StringsProp } from '@/lib/strings';\n\nexport interface VendorProfileStat {\n\tlabel: string;\n\tvalue: string;\n\tchange?: string;\n}\n\nexport interface VendorProfileMetric {\n\tlabel: string;\n\tvalue: string;\n}\n\n/**\n * Localised labels for VendorProfileCard. Override per-instance via `strings`.\n */\nexport interface VendorProfileStrings {\n\ttabOverview: string;\n\ttabStats: string;\n\ttotalEarnings: string;\n\tmessage: string;\n\thire: string;\n\tverifiedAriaLabel: string;\n}\n\nexport const defaultVendorProfileStrings: VendorProfileStrings = {\n\ttabOverview: 'Overview',\n\ttabStats: 'Stats',\n\ttotalEarnings: 'Total Earnings',\n\tmessage: 'Message',\n\thire: 'Hire Me',\n\tverifiedAriaLabel: 'Verified',\n};\n\nexport interface VendorProfileCardProps {\n\tname: string;\n\tinitials?: string;\n\tavatarUrl?: string;\n\trole?: string;\n\tverified?: boolean;\n\tearnings?: string;\n\tearningsChange?: string;\n\tmetrics?: VendorProfileMetric[];\n\tstats?: VendorProfileStat[];\n\tonMessage?: () => void;\n\tonHire?: () => void;\n\tclassName?: string;\n\tstrings?: StringsProp<VendorProfileStrings>;\n}\n","/**\n * VendorProfileCard — vendor avatar, name, role, verified badge, earnings,\n * and a pill-tab switcher between Overview (metrics list) and Stats (small\n * KPI grid). Trailing Message / Hire actions. Strings are overridable for\n * i18n via the `strings` prop.\n *\n * Avatar sits BESIDE the name (not above) so the header row reads as a\n * cohesive identity block rather than a floating icon over a separate text\n * block. The card uses a custom layout instead of SmartCard's slot system to\n * keep the tab switcher / earnings hero / metrics grid / actions footer\n * arranged in a tighter visual rhythm.\n */\nimport {\n\tuseState } from 'react';\nimport { Check,\n\tChevronRight,\n\tMessageSquare } from 'lucide-react';\n\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography/text';\nimport { IconBadge,\n} from '@/components/base/display';\nimport { InlineStat } from '@/components/composed/data-display';\nimport {\n\tItem,\n\tItemContent,\n\tItemDescription,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport { defaultVendorProfileStrings, type VendorProfileCardProps } from './types';\n\nexport function VendorProfileCard({\n\tname,\n\tinitials,\n\tavatarUrl,\n\trole,\n\tverified = false,\n\tearnings,\n\tearningsChange,\n\tmetrics = [],\n\tstats = [],\n\tonMessage,\n\tonHire,\n\tclassName,\n\tstrings: stringsProp,\n}: VendorProfileCardProps) {\n\tconst strings = useStrings(defaultVendorProfileStrings, stringsProp);\n\tconst [tab, setTab] = useState<'overview' | 'stats'>('overview');\n\n\tconst displayInitials =\n\t\tinitials ?? name.split(' ').map((w) => w[0]).join('').slice(0, 2).toUpperCase();\n\n\tconst tabLabel: Record<'overview' | 'stats', string> = {\n\t\toverview: strings.tabOverview,\n\t\tstats: strings.tabStats,\n\t};\n\tconst hasOverviewContent = Boolean(earnings) || metrics.length > 0;\n\tconst hasStatsContent = stats.length > 0;\n\tconst availableTabs = ([\n\t\t['overview', hasOverviewContent],\n\t\t['stats', hasStatsContent],\n\t] as const)\n\t\t.filter(([, isAvailable]) => isAvailable)\n\t\t.map(([value]) => value);\n\tconst activeTab = tab === 'overview' && !hasOverviewContent && hasStatsContent ? 'stats' : tab;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('vendor-profile--component', \n\t\t\t\t'flex flex-col gap-3 rounded-lg border border-border bg-card p-4 shadow-sm',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<Item className=\"items-start\">\n\t\t\t\t<ItemMedia variant={avatarUrl ? 'avatar' : 'default'}>\n\t\t\t\t\t{avatarUrl ? (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tsrc={avatarUrl}\n\t\t\t\t\t\t\talt={name}\n\t\t\t\t\t\t\tclassName=\"size-10 rounded-full object-cover ring-1 ring-border\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<IconBadge tone=\"primary\" size=\"default\" className=\"font-semibold ring-1 ring-primary/15\">\n\t\t\t\t\t\t\t{displayInitials}\n\t\t\t\t\t\t</IconBadge>\n\t\t\t\t\t)}\n\t\t\t\t</ItemMedia>\n\t\t\t\t<ItemContent>\n\t\t\t\t\t<ItemTitle>\n\t\t\t\t\t\t<span className=\"inline-flex items-center gap-1.5\">\n\t\t\t\t\t\t\t{name}\n\t\t\t\t\t\t\t{!!verified && (\n\t\t\t\t\t\t\t\t<IconBadge tone=\"success\" solid size=\"small\" aria-label={strings.verifiedAriaLabel} className=\"size-4 shrink-0\">\n\t\t\t\t\t\t\t\t\t<Check className=\"size-2.5\" strokeWidth={3} />\n\t\t\t\t\t\t\t\t</IconBadge>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</ItemTitle>\n\t\t\t\t\t{!!role && <ItemDescription clamp={2}>{role}</ItemDescription>}\n\t\t\t\t</ItemContent>\n\t\t\t</Item>\n\n\t\t\t{availableTabs.length > 1 && (\n\t\t\t\t<div className=\"flex gap-1 rounded-md bg-muted/60 p-0.5\">\n\t\t\t\t\t{availableTabs.map((t) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tkey={t}\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\taria-pressed={activeTab === t}\n\t\t\t\t\t\t\tonClick={() => setTab(t)}\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'h-auto flex-1 rounded-sm px-3 py-1.5 text-xs font-medium transition-colors',\n\t\t\t\t\t\t\t\tactiveTab === t\n\t\t\t\t\t\t\t\t\t? 'bg-card text-foreground shadow-sm'\n\t\t\t\t\t\t\t\t\t: 'text-muted-foreground hover:text-foreground',\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{tabLabel[t]}\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\n\t\t\t{activeTab === 'overview' && hasOverviewContent && (\n\t\t\t\t<div className=\"space-y-3\">\n\t\t\t\t\t{!!earnings && (\n\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=\"xs\"\n\t\t\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\t\t\tweight=\"medium\"\n\t\t\t\t\t\t\t\tclassName=\"uppercase tracking-wider\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{strings.totalEarnings}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<div className=\"mt-0.5 flex items-baseline gap-2\">\n\t\t\t\t\t\t\t\t<Text size=\"base\" weight=\"semibold\" className=\"tabular-nums tracking-tight\">\n\t\t\t\t\t\t\t\t\t{earnings}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t{!!earningsChange && (\n\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"rounded-full bg-success/15 px-1.5 py-0.5 text-success tabular-nums\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{earningsChange}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{metrics.length > 0 && (\n\t\t\t\t\t\t<div className=\"space-y-1.5\">\n\t\t\t\t\t\t\t{metrics.map((metric) => (\n\t\t\t\t\t\t\t\t<InlineStat\n\t\t\t\t\t\t\t\t\tkey={metric.label}\n\t\t\t\t\t\t\t\t\tclassName=\"border-b border-border/50 pb-1.5 last:border-0\"\n\t\t\t\t\t\t\t\t\tlabel={metric.label}\n\t\t\t\t\t\t\t\t\tvalue={metric.value}\n\t\t\t\t\t\t\t\t\tmono\n\t\t\t\t\t\t\t\t\tlabelClassName=\"text-sm\"\n\t\t\t\t\t\t\t\t\tvalueClassName=\"text-sm font-semibold\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{activeTab === 'stats' && hasStatsContent && (\n\t\t\t\t<div className=\"grid grid-cols-2 gap-1.5\">\n\t\t\t\t\t{stats.map((stat) => (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={stat.label}\n\t\t\t\t\t\t\tclassName=\"rounded-lg border border-border/60 bg-muted/20 px-3 py-2\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\t\t\tweight=\"medium\"\n\t\t\t\t\t\t\t\tclassName=\"uppercase tracking-wider\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{stat.label}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<div className=\"mt-1 flex items-baseline gap-1.5\">\n\t\t\t\t\t\t\t\t<Text size=\"base\" weight=\"semibold\" className=\"tabular-nums\">\n\t\t\t\t\t\t\t\t\t{stat.value}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t{!!stat.change && (\n\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t'rounded-full px-1.5 py-0.5 tabular-nums',\n\t\t\t\t\t\t\t\t\t\t\tstat.change.startsWith('+')\n\t\t\t\t\t\t\t\t\t\t\t\t? 'bg-success/15 text-success'\n\t\t\t\t\t\t\t\t\t\t\t\t: 'bg-destructive/15 text-destructive',\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{stat.change}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t<div className=\"flex gap-1.5\">\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"light\"\n\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\tclassName=\"flex-1 rounded-md\"\n\t\t\t\t\tonClick={onMessage}\n\t\t\t\t>\n\t\t\t\t\t<MessageSquare className=\"mr-1.5 size-3.5\" />\n\t\t\t\t\t{strings.message}\n\t\t\t\t</Button>\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"dark\"\n\t\t\t\t\tclassName=\"flex-1 rounded-md\"\n\t\t\t\t\tonClick={onHire}\n\t\t\t\t>\n\t\t\t\t\t{strings.hire}\n\t\t\t\t\t<ChevronRight className=\"ml-1 size-3.5\" />\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nVendorProfileCard.displayName = 'VendorProfileCard';\n"],"mappings":";;;;;;;;;;;;;;;AAQA,IAAa,IAAgD;CACzD,SAAS;CACT,SAAS;AACb;;;ACKA,SAAS,GAAe,GAAc,GAA2B;CAEhE,OADI,KACG,EACL,MAAM,GAAG,EACT,KAAK,MAAS,EAAK,EAAE,EACrB,MAAM,GAAG,CAAC,EACV,KAAK,EAAE,EACP,YAAY;AACf;AAUA,SAAgB,EAAY,EAC3B,SACA,SACA,UACA,UACA,aACA,cACA,aACA,UACA,kBAAe,WACf,cACA,kBACA,cACA,SAAS,KACW;CACpB,IAAM,IAAU,EAAW,GAA2B,CAAW;CACjE,OACC,kBAAC,OAAD;EACC,WAAW,EAAG,2BACb,qGACA,CACD;YAJD;GAMC,kBAAC,OAAD;IAAK,WAAU;cAAf,CACC,kBAAC,GAAD;KAAQ,WAAU;eAAlB,CACE,CAAC,CAAC,KAAa,kBAAC,GAAD;MAAa,KAAK;MAAW,KAAK;KAAO,CAAA,GACzD,kBAAC,GAAD;MAAgB,WAAU;gBACxB,GAAe,GAAM,CAAQ;KACf,CAAA,CACT;QACR,kBAAC,OAAD;KAAK,WAAU;eAAf,CACC,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACC,kBAAC,GAAD;OAAM,QAAO;OAAW,WAAU;iBAChC;MACI,CAAA,GACL,CAAC,CAAC,KAAS,kBAAC,GAAD;OAAO,SAAS;iBAAe;MAAa,CAAA,CACpD;SACJ,CAAC,CAAC,KACF,kBAAC,GAAD;MAAM,MAAK;MAAK,MAAK;MAAY,WAAU;gBACzC;KACI,CAAA,CAEH;MACD;;GAEJ,CAAC,EAAE,KAAS,KAAS,MACrB,kBAAC,GAAD;IAAW,WAAU;cAArB;KACE,CAAC,CAAC,KACF,kBAAC,GAAD;MAAM,MAAK;gBAAX,CACC,kBAAC,GAAD;OAAW,SAAQ;OAAO,WAAU;iBACnC,kBAAC,GAAD,CAAO,CAAA;MACG,CAAA,GACX,kBAAC,GAAD,EAAA,UACC,kBAAC,GAAD;OAAW,MAAM;iBAAQ;MAAiB,CAAA,EAC9B,CAAA,CACR;;KAEN,CAAC,CAAC,KACF,kBAAC,GAAD;MAAM,MAAK;gBAAX,CACC,kBAAC,GAAD;OAAW,SAAQ;OAAO,WAAU;iBACnC,kBAAC,GAAD,CAAQ,CAAA;MACE,CAAA,GACX,kBAAC,GAAD,EAAA,UACC,kBAAC,GAAD;OAAW,MAAM;iBAAQ;MAAiB,CAAA,EAC9B,CAAA,CACR;;KAEN,CAAC,CAAC,KACF,kBAAC,GAAD;MAAM,MAAK;gBAAX,CACC,kBAAC,GAAD;OAAW,SAAQ;OAAO,WAAU;iBACnC,kBAAC,GAAD,CAAS,CAAA;MACC,CAAA,GACX,kBAAC,GAAD,EAAA,UACC,kBAAC,GAAD;OAAW,MAAM;iBAAQ;MAAoB,CAAA,EACjC,CAAA,CACR;;IAEG;;GAGX,CAAC,EAAE,KAAa,MAChB,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,CAAC,CAAC,KACF,kBAAC,GAAD;KACC,SAAQ;KACR,aAAY;KACZ,MAAM;KACN,SAAS;eAER,EAAQ;IACF,CAAA,GAER,CAAC,CAAC,KACF,kBAAC,GAAD;KACC,SAAQ;KACR,aAAY;KACZ,MAAM;KACN,SAAS;eAER,EAAQ;IACF,CAAA,CAEL;;EAEF;;AAEP;AAEA,EAAY,cAAc;;;ACpG1B,IAAM,IAA+C;CACpD,OAAO;CACP,OAAO;CACP,QAAQ;CACR,UAAU;CACV,OAAO;AACR;AAEA,SAAS,KAAiB;CACzB,OACC,kBAAA,GAAA,EAAA,UAAA,CACC,kBAAC,OAAD;EAAK,WAAU;EAA0E,eAAY;CAAQ,CAAA,GAC7G,kBAAC,OAAD;EAAK,WAAU;EAA0E,eAAY;CAAQ,CAAA,CAC5G,EAAA,CAAA;AAEJ;AAEA,SAAS,KAAkB;CAE1B,IAAM,IAAY,8BADJ,EACkC,EAAM,QAAQ,MAAM,EAAE;CAEtE,OACC,kBAAC,OAAD;EACC,WAAU;EACV,OAAM;EACN,eAAY;YAHb,CAKC,kBAAC,QAAD,EAAA,UACC,kBAAC,WAAD;GACC,IAAI;GACJ,OAAM;GACN,QAAO;GACP,cAAa;GACb,kBAAiB;aAEjB,kBAAC,QAAD;IAAM,OAAM;IAAI,QAAO;IAAI,WAAU;GAA2B,CAAA;EACxD,CAAA,EACJ,CAAA,GACN,kBAAC,QAAD;GAAM,OAAM;GAAO,QAAO;GAAO,MAAM,QAAQ,EAAU;EAAK,CAAA,CAC1D;;AAEP;AAEA,IAAM,IAA6D;CAClE,MAAM;CACN,eAAe,kBAAC,IAAD,CAAiB,CAAA;CAChC,gBAAgB,kBAAC,IAAD,CAAkB,CAAA;AACnC;AAMA,SAAgB,EAAa,EAC5B,cAAW,SACX,aAAU,QACV,UACA,aACA,UACA,eACA,UACA,MAAM,GACN,cACA,eACA,WACA,WACA,aACA,gBACqB;CACrB,IAAM,IAAkB,EAAY,IAC9B,IAAY,CAAC,EAAE,KAAS,KAAY;CAE1C,OACC,kBAAC,OAAD;EACC,WAAW,EACV,gEACA,EAAa,IACb,CACD;YALD,CAOE,CAAC,CAAC,KAAmB,EAAgB,GAEtC,kBAAC,OAAD;GAAK,WAAU;aAAf;IAIE,CAAC,CAAC,KACF,kBAAC,OAAD;KAAK,WAAU;eAAf,CACC,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,CAAC,CAAC,KACF,kBAAC,GAAD;OACC,QAAO;OACP,WAAU;iBAET;MACI,CAAA,GAEN,CAAC,CAAC,KACF,kBAAC,GAAD;OAAM,MAAK;OAAK,WAAU;iBACxB;MACI,CAAA,CAEH;SACJ,CAAC,CAAC,KACF,kBAAC,QAAD;MACC,eAAY;MACZ,WAAU;gBAEV,kBAAC,GAAD,EAAM,WAAU,SAAU,CAAA;KACrB,CAAA,CAEH;;IAML,CAAC,CAAC,KACF,kBAAC,OAAD;KAAK,WAAU;eAAf,CACC,kBAAC,GAAD;MACC,KAAI;MACJ,OAAM;MACN,WAAU;gBAET;KACO,CAAA,IACP,KAAc,MACf,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,CAAC,CAAC,KACF,kBAAC,GAAD;OAAM,MAAK;OAAK,WAAU;iBACxB;MACI,CAAA,GAEN,CAAC,CAAC,KACF,kBAAC,QAAD;OAAM,WAAU;iBACd;MACI,CAAA,CAEH;OAEF;;IAIL,CAAC,CAAC,KACF,kBAAC,OAAD;KAAK,WAAU;eAAf,CACC,kBAAC,GAAD;MAAM,WAAU;gBACd;KACI,CAAA,GACL,CAAC,CAAC,KACF,kBAAC,QAAD;MAAM,WAAU;gBACd;KACI,CAAA,CAEH;;IAGL,CAAC,CAAC,KAAY,kBAAC,OAAD,EAAM,YAAc,CAAA;KAEjC,CAAC,CAAC,KAAU,CAAC,CAAC,MACf,kBAAC,OAAD;KAAK,WAAU;eAAf,CACG,IACD,kBAAC,GAAD;MACC,SAAQ;MACR,SAAS,EAAO;MAChB,WAAU;gBAET,EAAO;KACD,CAAA,IAER,kBAAC,QAAD,CAAO,CAAA,GAEP,CAAC,CAAC,KACF,kBAAC,GAAD;MAAM,MAAK;MAAK,WAAU;gBAAsB;KAAa,CAAA,CAE1D;;GAEF;IACD;;AAEP;AAEA,EAAa,cAAc;AAM3B,SAAgB,EAAoB,EACnC,cAAW,SACX,aAAU,QACV,UACA,UACA,WACA,aACA,gBAC4B;CAC5B,IAAM,IAAkB,EAAY;CAEpC,OACC,kBAAC,OAAD;EACC,WAAW,EACV,wEACA,EAAa,IACb,CACD;YALD,CAOE,CAAC,CAAC,KAAmB,EAAgB,GAEtC,kBAAC,OAAD;GAAK,WAAU;aAAf;IACE,CAAC,CAAC,KACF,kBAAC,GAAD;KAAM,MAAK;KAAK,QAAO;KAAS,WAAU;eACxC;IACI,CAAA;IAEP,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,CAAC,CAAC,KACF,kBAAC,GAAD;MACC,KAAI;MACJ,OAAM;MACN,WAAU;gBAET;KACO,CAAA,GAET,CAAC,CAAC,KACF,kBAAC,QAAD;MAAM,WAAU;gBACd;KACI,CAAA,CAEH;;IACJ,CAAC,CAAC,KACF,kBAAC,GAAD;KAAM,MAAK;KAAK,WAAU;eACxB;IACI,CAAA;GAEH;IACD;;AAEP;AAEA,EAAoB,cAAc;;;AC/OlC,IAAa,IAA0C;CACtD,QAAQ;EACP,QAAQ;EACR,UAAU;EACV,SAAS;EACT,UAAU;CACX;CACA,UAAU;CACV,SAAS;CACT,iBAAiB;CACjB,IAAI;CACJ,MAAM;CACN,SAAS;CACT,WAAW;CACX,aAAa;CACb,UAAU;AACX,GAOa,IAGT;CACH,QAAQ;CACR,UAAU;CACV,SAAS;CACT,UAAU;AACX;AAOkB,EAAuB,OAAO,QAC5B,EAAuB,OAAO,UAC/B,EAAuB,OAAO,SAC7B,EAAuB,OAAO;AAGlD,IAAa,KAAwE;CACpF,QAAQ;EACP,MAAM;EACN,OAAO;CACR;CACA,OAAO;EACN,MAAM;EACN,OAAO;CACR;CACA,MAAM;EACL,MAAM;EACN,OAAO;CACR;AACD,GAEa,KAAsD;CAClE,QAAQ;CACR,OAAO;CACP,MAAM;AACP,GAEa,KAAwE;CACpF,OAAO;EAAE,MAAM;EAAc,QAAQ;CAA6B;CAClE,QAAQ;EAAE,MAAM;EAAc,QAAQ;CAA6B;CACnE,MAAM;EAAE,MAAM;EAAc,QAAQ;CAAwC;AAC7E,GAEa,KAAiD;CAC7D,OAAO;CACP,MAAM;CACN,OAAO;AACR,GAEa,KAA+C;CAC3D,OAAO;CACP,MAAM;CACN,OAAO;AACR;;;AClGA,SAAgB,EAAa,EAC5B,SACA,WACA,oBACA,WACA,kBACA,eACA,YACA,cACA,WAAW,GACX,UAAU,GACV,WACA,cAAW,UACX,aAAU,QACV,cACA,SAAS,KAMN;CACH,IAAM,IAAU,EAAW,GAAwB,CAAW,GACxD,IAAc,EAAQ,OAAO,IAC7B,IAAgB,EAAsB,IACtC,IAAkB,CAAC,CAAC,KAAmB,MAAoB,GAC3D,IAAgB,IAAkB,IAAkB,GACpD,IAAoC;EACzC,GAAI,IAAgB,CAAC;GAAE,OAAO,EAAQ;GAAI,OAAO;EAAc,CAAC,IAAI,CAAC;EACrE,GAAI,IAAa,CAAC;GAAE,OAAO,EAAQ;GAAM,OAAO;EAAW,CAAC,IAAI,CAAC;EACjE,GAAI,IAAY,CAAC;GAAE,OAAO,EAAQ;GAAS,OAAO;EAAU,CAAC,IAAI,CAAC;CACnE;CAEA,OACC,kBAAC,OAAD;EACC,WAAW,EACV,oFACA,8CACA,CACD;YALD,CAQC,kBAAC,OAAD;GACC,WAAW,EACV,+DACA,GAAY,GAAU,IACvB;aAJD;IAOE,MAAY,aACZ,kBAAA,GAAA,EAAA,UAAA,CACC,kBAAC,OAAD;KAAK,WAAU;KAAwE,eAAY;IAAQ,CAAA,GAC3G,kBAAC,OAAD;KAAK,WAAU;KAA0E,eAAY;IAAQ,CAAA,CAC5G,EAAA,CAAA;IAIF,MAAY,WACZ,kBAAC,OAAD;KACC,WAAU;KACV,SAAQ;KACR,qBAAoB;KACpB,eAAY;eAJb,CAMC,kBAAC,QAAD;MAAM,GAAE;MAAmD,WAAU;KAA2B,CAAA,GAChG,kBAAC,QAAD;MAAM,GAAE;MAAqD,WAAU;KAA2B,CAAA,CAC9F;;IAMN,kBAAC,OAAD;KAAK,WAAU;eACd,kBAAC,QAAD;MACC,WAAW,EACV,6GACA,2GACD;MACA,eAAa;gBALd,CAOC,kBAAC,QAAD;OAAM,WAAU;OAAiD,eAAY;MAAQ,CAAA,GACpF,CACI;;IACF,CAAA;IAEL,kBAAC,OAAD;KAAK,WAAU;eAAf;MACC,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACC,kBAAC,GAAD,EAAM,WAAU,6CAA8C,CAAA,GAC9D,kBAAC,GAAD;QAAM,QAAO;QAAS,WAAU;kBAAsB,EAAQ;OAAe,CAAA,CACzE;;MAEL,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACC,kBAAC,GAAD;QAAM,MAAK;QAAK,WAAU;kBAAgD,EAAQ;OAAc,CAAA,GAChG,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACC,kBAAC,GAAD;SAAS,KAAI;SAAK,WAAU;mBAC1B;QACO,CAAA,GACR,CAAC,CAAC,KACF,kBAAC,GAAD;SAAM,WAAU;mBAAmD;QAAa,CAAA,CAE7E;SACD;;MAGL,kBAAC,OAAD;OACC,WAAW,EACV,kDACA,uCACA,gCACA,WACD;iBAND,CAQC,kBAAC,GAAD;QAAM,QAAO;QAAW,WAAU;kBAChC;OACI,CAAA,GACN,kBAAC,GAAD;QACC,SAAQ;QACR,aAAY;QACZ,WAAU;QACV,cAAY,EAAQ;kBAEpB,kBAAC,GAAD,EAAM,WAAU,UAAW,CAAA;OACpB,CAAA,CACJ;;KACD;;GACD;MAGL,kBAAC,OAAD;GAAK,WAAU;aAAf;IACE,CAAC,CAAC,KACF,kBAAC,OAAD;KAAK,WAAU;eAAf,CACC,kBAAC,GAAD;MAAM,MAAK;MAAK,MAAK;MAAY,QAAO;MAAS,WAAU;gBACzD,EAAQ;KACJ,CAAA,GACN,kBAAC,GAAD;MAAM,MAAK;MAAY,WAAU;gBAAjC;OAA0D;OACjD;OAAQ;MACX;OACF;;IAGN,kBAAC,GAAD;KAAc,OAAO;KAAe,SAAS;IAAI,CAAA;IAEhD,CAAC,CAAC,KACF,kBAAC,GAAD;KACC,SAAQ;KACR,aAAY;KACZ,MAAM;KACN,WAAA;KACA,SAAS;eAER,EAAQ;IACF,CAAA;GAEL;IACD;;AAEP;AAEA,EAAa,cAAc;;;AC9J3B,SAAgB,EAAgB,EAC/B,SACA,WACA,oBACA,WACA,kBACA,cAAW,UACX,cACA,SAAS,KACkF;CAE3F,IAAM,IADU,EAAW,GAAwB,CAC/B,EAAQ,OAAO,IAC7B,IAAgB,EAAsB,IACtC,IAAkB,CAAC,CAAC,KAAmB,MAAoB,GAC3D,IAAgB,IAAkB,IAAkB;CAE1D,OACC,kBAAC,GAAD;EACC,MAAK;EACL,SAAQ;EACR,WAAW,EACV,4HACA,CACD;YAND;GAQC,kBAAC,GAAD;IAAW,SAAQ;cAClB,kBAAC,OAAD;KACC,WAAW,EACV,gEACA,GAAmB,EACpB;eAEA,kBAAC,GAAD,EAAM,WAAU,kCAAmC,CAAA;IAC/C,CAAA;GACK,CAAA;GAEX,kBAAC,GAAD;IAAa,WAAU;cAAvB,CACC,kBAAC,GAAD;KAAW,WAAU;eAAkE;IAAgB,CAAA,GACtG,CAAC,CAAC,KAAiB,kBAAC,GAAD;KAAiB,OAAO;eAAI;IAA+B,CAAA,CACnE;;GAEb,kBAAC,GAAD;IAAa,WAAU;cACtB,kBAAC,OAAD;KAAK,WAAU;eAAf,CACC,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACC,kBAAC,GAAD;OAAM,MAAK;OAAK,QAAO;OAAO,WAAU;iBACtC;MACI,CAAA,GACL,CAAC,CAAC,KACF,kBAAC,GAAD;OAAM,MAAK;OAAK,MAAK;OAAW,WAAU;iBACxC;MACI,CAAA,CAEH;SACL,kBAAC,GAAD;MAAO,SAAS;MAAe,MAAK;gBAAS;KAAmB,CAAA,CAC5D;;GACO,CAAA;EACR;;AAER;AAEA,EAAgB,cAAc;;;ACzD9B,SAAgB,EAAoB,EACnC,SACA,WACA,oBACA,WACA,kBACA,cACA,WACA,WAAQ,SACR,cACA,SAAS,KAC2E;CACpF,IAAM,IAAU,EAAW,GAAwB,CAAW,GACxD,IAAc,EAAQ,OAAO,IAC7B,IAAgB,EAAsB,IACtC,IAAkB,CAAC,CAAC,KAAmB,MAAoB,GAC3D,IAAgB,IAAkB,IAAkB,GACpD,IAAS,GAAe,IACxB,IAAoC,CACzC,GAAI,IAAgB,CAAC;EAAE,OAAO,EAAQ;EAAW,OAAO;CAAc,CAAC,IAAI,CAAC,GAC5E,GAAI,IAAY,CAAC;EAAE,OAAO,EAAQ;EAAS,OAAO;CAAU,CAAC,IAAI,CAAC,CACnE;CAEA,OACC,kBAAC,OAAD;EACC,WAAW,EACV,iHACA,CACD;YAJD;GAMC,kBAAC,OAAD,EAAK,WAAW,EAAG,iCAAiC,EAAO,IAAI,EAAI,CAAA;GAEnE,kBAAC,GAAD;IAAM,MAAK;IAAQ,WAAU;cAA7B;KACC,kBAAC,GAAD,EAAA,UACC,kBAAC,OAAD;MACC,WAAW,EACV,yDACA,EAAO,MACR;gBAEA,kBAAC,GAAD,EAAM,WAAU,cAAe,CAAA;KAC3B,CAAA,EACK,CAAA;KACX,kBAAC,GAAD,EAAA,UACC,kBAAC,GAAD;MAAW,MAAM;MAAO,WAAU;gBAAyB,EAAQ;KAAoB,CAAA,EAC3E,CAAA;KACb,kBAAC,GAAD;MAAa,WAAU;gBACtB,kBAAC,GAAD;OAAO,SAAS;OAAe,MAAK;iBAAS;MAAmB,CAAA;KACpD,CAAA;IACR;;GAEN,kBAAC,OAAD;IAAK,WAAU;cACd,kBAAC,OAAD;KAAK,WAAU;eAAf,CACC,kBAAC,GAAD;MAAS,KAAI;MAAK,WAAU;gBAC1B;KACO,CAAA,GACR,CAAC,CAAC,KACF,kBAAC,GAAD;MAAM,MAAK;MAAW,WAAU;gBAC9B;KACI,CAAA,CAEH;;GACD,CAAA;GAEL,kBAAC,OAAD;IAAK,WAAU;cAAf,CACC,kBAAC,GAAD;KAAM,QAAO;KAAS,WAAU;eAC9B;IACI,CAAA,GACN,kBAAC,GAAD;KACC,SAAQ;KACR,aAAY;KACZ,MAAK;KACL,WAAU;KACV,cAAY,EAAQ;eAEpB,kBAAC,GAAD,EAAM,WAAU,cAAe,CAAA;IACxB,CAAA,CACJ;;GAEL,kBAAC,GAAD;IACC,OAAO;IACP,SAAS;IACT,OAAA;IACA,cAAa;IACb,WAAU;GACV,CAAA;GAEA,CAAC,CAAC,KACF,kBAAC,OAAD;IAAK,WAAU;cACd,kBAAC,GAAD;KACC,SAAQ;KACR,aAAY;KACZ,SAAS;KACT,WAAU;eAJX,CAME,EAAQ,aACT,kBAAC,GAAD,EAAY,WAAU,yEAA0E,CAAA,CACzF;;GACJ,CAAA;EAEF;;AAEP;AAEA,EAAoB,cAAc;;;AC1GlC,SAAgB,EAAiB,EAChC,SACA,WACA,oBACA,WACA,kBACA,cACA,WACA,cACA,SAAS,KACsD;CAC/D,IAAM,IAAU,EAAW,GAAwB,CAAW,GACxD,IAAc,EAAQ,OAAO,IAC7B,IAAgB,EAAsB,IACtC,IAAkB,CAAC,CAAC,KAAmB,MAAoB,GAC3D,IAAgB,IAAkB,IAAkB,GACpD,IAAoC,CACzC,GAAI,IAAgB,CAAC;EAAE,OAAO,EAAQ;EAAW,OAAO;CAAc,CAAC,IAAI,CAAC,GAC5E,GAAI,IAAY,CAAC;EAAE,OAAO,EAAQ;EAAS,OAAO;CAAU,CAAC,IAAI,CAAC,CACnE;CAEA,OACC,kBAAC,OAAD;EACC,WAAW,EACV,sIACA,CACD;YAJD;GAMC,kBAAC,GAAD;IAAM,MAAK;cAAX;KACC,kBAAC,GAAD,EAAA,UACC,kBAAC,OAAD;MAAK,WAAU;gBACd,kBAAC,GAAD,EAAM,WAAU,uBAAwB,CAAA;KACpC,CAAA,EACK,CAAA;KACX,kBAAC,GAAD,EAAA,UACC,kBAAC,GAAD;MAAW,MAAM;MAAO,WAAU;gBAAyB,EAAQ;KAAoB,CAAA,EAC3E,CAAA;KACb,kBAAC,GAAD,EAAA,UACC,kBAAC,GAAD;MAAO,SAAS;gBAAgB;KAAmB,CAAA,EACvC,CAAA;IACR;;GAGN,kBAAC,OAAD;IAAK,WAAU;cACd,kBAAC,OAAD;KAAK,WAAU;eAAf,CACC,kBAAC,GAAD;MAAS,KAAI;MAAK,WAAU;gBAC1B;KACO,CAAA,GACR,CAAC,CAAC,KACF,kBAAC,GAAD;MAAM,MAAK;MAAW,WAAU;gBAC9B;KACI,CAAA,CAEH;;GACD,CAAA;GAGL,kBAAC,OAAD;IAAK,WAAU;cAAf,CACC,kBAAC,GAAD;KAAM,QAAO;KAAS,WAAU;eAC9B;IACI,CAAA,GACN,kBAAC,GAAD;KACC,SAAQ;KACR,aAAY;KACZ,WAAU;KACV,cAAY,EAAQ;eAEpB,kBAAC,GAAD,EAAM,WAAU,cAAe,CAAA;IACxB,CAAA,CACJ;;GAEL,kBAAC,GAAD;IACC,OAAO;IACP,SAAS;IACT,WAAU;GACV,CAAA;GAIA,CAAC,CAAC,KACF,kBAAC,OAAD;IAAK,WAAU;cACd,kBAAC,GAAD;KACC,SAAQ;KACR,aAAY;KACZ,MAAM;KACN,WAAA;KACA,SAAS;eAER,EAAQ;IACF,CAAA;GACJ,CAAA;EAEF;;AAEP;AAEA,EAAiB,cAAc;;;ACpG/B,SAAgB,EAAwB,EACvC,SACA,WACA,oBACA,WACA,kBACA,cACA,WACA,iBAAc,SACd,cACA,SAAS,KACiF;CAC1F,IAAM,IAAU,EAAW,GAAwB,CAAW,GACxD,IAAc,EAAQ,OAAO,IAC7B,IAAgB,EAAsB,IACtC,IAAkB,CAAC,CAAC,KAAmB,MAAoB,GAC3D,IAAgB,IAAkB,IAAkB,GACpD,IAAoC,CACzC,GAAI,IAAgB,CAAC;EAAE,OAAO,EAAQ;EAAW,OAAO;CAAc,CAAC,IAAI,CAAC,GAC5E,GAAI,IAAY,CAAC;EAAE,OAAO,EAAQ;EAAS,OAAO;CAAU,CAAC,IAAI,CAAC,CACnE;CAEA,OACC,kBAAC,OAAD;EACC,WAAW,EACV,qHACA,CACD;YAJD,CAMC,kBAAC,OAAD;GAAK,WAAW,EAAG,0FAA0F,GAAkB,EAAY;aAA3I;IACC,kBAAC,OAAD;KACC,WAAU;KACV,OAAO,EACN,iBACC,iIACF;KACA,eAAY;IACZ,CAAA;IACD,kBAAC,GAAD;KACC,MAAM;KACN,MAAK;KACL,OAAM;KACN,WAAW,EACV,0EACA,GAAgB,EACjB;IACA,CAAA;IACD,kBAAC,GAAD;KAAM,KAAI;KAAO,MAAK;KAAK,QAAO;KAAW,WAAU;eACrD,EAAQ;IACJ,CAAA;GACF;MAEL,kBAAC,OAAD;GAAK,WAAU;aAAf;IACC,kBAAC,OAAD;KAAK,WAAU;eAAf,CACC,kBAAC,OAAD,EAAA,UAAA,CACC,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACC,kBAAC,GAAD;OAAS,KAAI;OAAK,WAAU;iBAC1B;MACO,CAAA,GACR,CAAC,CAAC,KACF,kBAAC,GAAD;OAAM,MAAK;OAAW,WAAU;iBAC9B;MACI,CAAA,CAEH;SACL,kBAAC,GAAD;MAAM,MAAK;MAAK,MAAK;MAAY,WAAU;gBACzC,EAAQ;KACJ,CAAA,CACF,EAAA,CAAA,GACL,kBAAC,GAAD;MAAO,SAAS;gBAAgB;KAAmB,CAAA,CAC/C;;IAEL,kBAAC,OAAD;KAAK,WAAU;eAAf,CACC,kBAAC,GAAD;MAAM,QAAO;MAAS,WAAU;gBAC9B;KACI,CAAA,GACN,kBAAC,GAAD;MACC,SAAQ;MACR,aAAY;MACZ,WAAU;MACV,cAAY,EAAQ;gBAEpB,kBAAC,GAAD,EAAM,WAAU,cAAe,CAAA;KACxB,CAAA,CACJ;;IAEL,kBAAC,GAAD;KAAc,OAAO;KAAe,SAAS;IAAI,CAAA;IAEhD,CAAC,CAAC,KACF,kBAAC,GAAD;KACC,SAAQ;KACR,aAAY;KACZ,MAAM;KACN,WAAA;KACA,SAAS;eAER,EAAQ;IACF,CAAA;GAEL;IACD;;AAEP;AAEA,EAAwB,cAAc;;;ACxGtC,IAAa,KAA8C;CAC1D,cAAc;CACd,UAAU;AACX,GCCM,IAAe,yDAEf,KAAmB;AAEzB,SAAS,GAAc,GAAwD;CAC9E,OAAO,EAAa,KAAK,GAAG,OAAS;EACpC,IAAI,GAAG,EAAI,GAAG,EAAE,QAAQ,EAAE,YAAY;EACtC,MAAM,EAAE,QAAQ,EAAE,YAAY,IAAI,IAAM;EACxC,UAAU,EAAE;CACb,EAAE;AACH;AAEA,SAAgB,EAAW,EAC1B,UACA,gBACA,YAAS,CAAC,GACV,kBAAe,CAAC,GAChB,uBAAoB,GACpB,oBACA,gBACA,aACA,cACA,SAAS,GACT,aAAU,WACV,cAAW,MACQ;CACnB,IAAM,IAAU,EAAW,IAA0B,CAAW,GAC1D,IAAa,EAAa,SAAS,GACnC,IAAc,GAAc,CAAY;CAyF9C,OAvFI,MAAY,YAEd,kBAAC,GAAD;EAAM,SAAQ;EAAU,WAAW,EAAG,0BAA0B,uCAAuC,CAAS;YAAhH,CACC,kBAAC,GAAD;GAAa,WAAU;aAAvB,CACC,kBAAC,GAAD,EAAA,UAAY,EAAiB,CAAA,GAC5B,CAAC,CAAC,KAAe,kBAAC,GAAD;IAAiB,OAAO;cAAI;GAA6B,CAAA,CAC/D;MACb,kBAAC,GAAD;GAAa,WAAU;aAAvB;IACE,EAAa,SAAS,KACtB,kBAAC,GAAD;KACC,OAAO;KACP,KAAK;KACL,MAAK;KACL,yBAAyB,IAAI,KAAqB;KAClD,cAAc,IAAoB;IAClC,CAAA;IAED,MAAoB,KAAA,KACpB,kBAAC,GAAD;KAAM,MAAK;KAAK,MAAK;KAAY,WAAU;eAA3C,CACE,GAAgB,GACZ;;IAEN,CAAC,CAAC,KACF,kBAAC,GAAD;KAAQ,SAAQ;KAAY,aAAY;KAAU,SAAS;eACzD;IACM,CAAA;GAEG;IACR;MAIJ,MAAY,aAEd,kBAAC,GAAD;EACQ;EACM;EACb,WAAW,EACV,8DACA,GACA,CACD;YAPD;GASE,EAAO,SAAS,KAChB,kBAAC,OAAD;IAAK,WAAU;cACb,EAAO,KAAK,MACZ,kBAAC,GAAD;KAAyB,SAAS,EAAM;eACtC,EAAM;IACD,GAFK,EAAM,KAEX,CACP;GACG,CAAA;IAGJ,EAAa,SAAS,KAAK,MAAoB,KAAA,MAChD,kBAAC,OAAD;IAAK,WAAU;cACd,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,EAAa,SAAS,KACtB,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACC,kBAAC,GAAD;OAAgB,OAAO;OAAa,KAAK;OAAG,MAAK;OAAQ,cAAc;MAAQ,CAAA,GAC/E,kBAAC,GAAD;OAAM,MAAK;OAAK,MAAK;OAAY,WAAU;iBAA3C;QACE;QAAW;QAAE,EAAQ,aAAa,YAAY;OAC1C;QACF;SAEL,MAAoB,KAAA,KACpB,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACC,kBAAC,OAAD;OAAK,WAAU;iBACd,kBAAC,OAAD;QAAK,WAAU;QAAiC,OAAO,EAAE,OAAO,GAAG,EAAgB,GAAG;OAAI,CAAA;MACtF,CAAA,GACL,kBAAC,GAAD;OAAM,MAAK;OAAK,MAAK;OAAY,WAAU;iBAA3C,CACE,GAAgB,GACZ;QACF;OAEF;;GACD,CAAA;GAGL,CAAC,CAAC,KACF,kBAAC,GAAD;IAAQ,SAAQ;IAAU,WAAU;IAAyB,SAAS;cACpE;GACM,CAAA;EAEC;MAKZ,kBAAC,GAAD;EACQ;EACM;EACb,WAAW,EAAG,0BAA0B,CAAS;YAHlD;GAKE,EAAO,SAAS,KAChB,kBAAC,OAAD;IAAK,WAAU;cACb,EAAO,KAAK,MACZ,kBAAC,GAAD;KAAyB,SAAS,EAAM;eACtC,EAAM;IACD,GAFK,EAAM,KAEX,CACP;GACG,CAAA;IAGJ,EAAa,SAAS,KAAK,MAAoB,KAAA,MAChD,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,EAAa,SAAS,KACtB,kBAAC,OAAD;KAAK,WAAW;eAAhB,CACC,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACC,kBAAC,GAAD;OAAM,MAAK;OAAK,MAAK;iBAAa,EAAQ;MAAmB,CAAA,GAC7D,kBAAC,GAAD;OAAM,MAAK;OAAK,QAAO;OAAW,WAAU;iBAC1C;MACI,CAAA,CACF;SACL,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACC,kBAAC,GAAD;OACC,OAAO;OACP,KAAK;OACL,MAAK;OACL,cAAc,IAAoB;OAClC,yBAAyB,IAAI;MAC7B,CAAA,GACD,kBAAC,GAAD;OAAM,MAAK;OAAK,MAAK;OAAY,WAAU;iBAA3C;QACE;QAAW;QAAE,EAAQ,aAAa,YAAY;OAC1C;QACF;OACD;QAEL,MAAoB,KAAA,KACpB,kBAAC,OAAD;KAAK,WAAW;eAAhB,CACC,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACC,kBAAC,GAAD;OAAM,MAAK;OAAK,MAAK;iBAAa,EAAQ;MAAe,CAAA,GACzD,kBAAC,GAAD;OAAM,MAAK;OAAK,QAAO;OAAW,WAAU;iBAA5C,CACE,GAAgB,GACZ;QACF;SACL,kBAAC,OAAD;MAAK,WAAU;gBACd,kBAAC,OAAD;OAAK,WAAU;iBACd,kBAAC,OAAD;QAAK,WAAU;QAAiC,OAAO,EAAE,OAAO,GAAG,EAAgB,GAAG;OAAI,CAAA;MACtF,CAAA;KACD,CAAA,CACD;MAEF;;GAGL,CAAC,CAAC,KACF,kBAAC,GAAD;IAAQ,SAAQ;IAAU,WAAU;IAAyB,SAAS;cACpE;GACM,CAAA;EAEC;;AAEb;AAEA,EAAW,cAAc;;;ACxLzB,SAAgB,EAAwB,EACvC,MAAM,IAAO,GACb,UACA,gBACA,UAAO,CAAC,GACR,gBACA,aACA,gBACgC;CAChC,OACC,kBAAC,GAAD;EAAW,WAAW,EAAG,mCAAmC,CAAS;YAArE;GACC,kBAAC,GAAD;IAAM,WAAU;cAAhB,CACC,kBAAC,GAAD,EAAA,UACC,kBAAC,GAAD;KAAW,MAAM;KAAM,MAAK;KAAU,MAAK;KAAU,OAAM;KAAS,WAAU;IAAqC,CAAA,EACzG,CAAA,GACX,kBAAC,GAAD,EAAA,UAAA,CACC,kBAAC,GAAD,EAAA,UAAY,EAAiB,CAAA,GAC7B,kBAAC,GAAD;KAAiB,OAAM;eAAQ;IAA6B,CAAA,CAChD,EAAA,CAAA,CACR;;GAEL,EAAK,SAAS,KACd,kBAAC,OAAD;IAAK,WAAU;cACb,EAAK,KAAK,MACV,kBAAC,GAAD;KAAiB,SAAQ;eACvB;IACK,GAFK,CAEL,CACP;GACG,CAAA;GAGL,CAAC,CAAC,KACF,kBAAC,OAAD;IAAK,WAAU;cACd,kBAAC,GAAD;KACC,SAAQ;KACR,aAAY;KACZ,SAAS;KACT,WAAU;eAJX,CAME,GACD,kBAAC,GAAD,EAAc,WAAU,gBAAiB,CAAA,CAClC;;GACJ,CAAA;EAEI;;AAEb;AAEA,EAAwB,cAAc;;;ACnDtC,IAAa,KAAoD;CAChE,aAAa;CACb,UAAU;CACV,eAAe;CACf,SAAS;CACT,MAAM;CACN,mBAAmB;AACpB;;;ACGA,SAAgB,EAAkB,EACjC,SACA,aACA,cACA,SACA,cAAW,IACX,aACA,mBACA,aAAU,CAAC,GACX,WAAQ,CAAC,GACT,cACA,WACA,cACA,SAAS,KACiB;CAC1B,IAAM,IAAU,EAAW,IAA6B,CAAW,GAC7D,CAAC,GAAK,KAAU,EAA+B,UAAU,GAEzD,IACL,KAAY,EAAK,MAAM,GAAG,EAAE,KAAK,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,GAAG,CAAC,EAAE,YAAY,GAEzE,IAAiD;EACtD,UAAU,EAAQ;EAClB,OAAO,EAAQ;CAChB,GACM,IAAqB,EAAQ,KAAa,EAAQ,SAAS,GAC3D,IAAkB,EAAM,SAAS,GACjC,IAAiB,CACtB,CAAC,YAAY,CAAkB,GAC/B,CAAC,SAAS,CAAe,CAC1B,EACE,QAAQ,GAAG,OAAiB,CAAW,EACvC,KAAK,CAAC,OAAW,CAAK,GAClB,IAAY,MAAQ,cAAc,CAAC,KAAsB,IAAkB,UAAU;CAE3F,OACC,kBAAC,OAAD;EACC,WAAW,EAAG,6BACb,6EACA,CACD;YAJD;GAMC,kBAAC,GAAD;IAAM,WAAU;cAAhB,CACC,kBAAC,GAAD;KAAW,SAAS,IAAY,WAAW;eACzC,IACA,kBAAC,OAAD;MACC,KAAK;MACL,KAAK;MACL,WAAU;KACV,CAAA,IAED,kBAAC,GAAD;MAAW,MAAK;MAAU,MAAK;MAAU,WAAU;gBACjD;KACS,CAAA;IAEF,CAAA,GACX,kBAAC,GAAD,EAAA,UAAA,CACC,kBAAC,GAAD,EAAA,UACC,kBAAC,QAAD;KAAM,WAAU;eAAhB,CACE,GACA,CAAC,CAAC,KACF,kBAAC,GAAD;MAAW,MAAK;MAAU,OAAA;MAAM,MAAK;MAAQ,cAAY,EAAQ;MAAmB,WAAU;gBAC7F,kBAAC,GAAD;OAAO,WAAU;OAAW,aAAa;MAAI,CAAA;KACnC,CAAA,CAEP;OACI,CAAA,GACV,CAAC,CAAC,KAAQ,kBAAC,GAAD;KAAiB,OAAO;eAAI;IAAsB,CAAA,CACjD,EAAA,CAAA,CACR;;GAEL,EAAc,SAAS,KACvB,kBAAC,OAAD;IAAK,WAAU;cACb,EAAc,KAAK,MACnB,kBAAC,GAAD;KAEC,MAAK;KACL,gBAAc,MAAc;KAC5B,eAAe,EAAO,CAAC;KACvB,SAAQ;KACR,aAAY;KACZ,MAAK;KACL,WAAW,EACV,8EACA,MAAc,IACX,sCACA,6CACJ;eAEC,EAAS;IACH,GAfF,CAeE,CACR;GACG,CAAA;GAGL,MAAc,cAAc,KAC5B,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,CAAC,CAAC,KACF,kBAAC,OAAD,EAAA,UAAA,CACC,kBAAC,GAAD;KACC,MAAK;KACL,MAAK;KACL,QAAO;KACP,WAAU;eAET,EAAQ;IACJ,CAAA,GACN,kBAAC,OAAD;KAAK,WAAU;eAAf,CACC,kBAAC,GAAD;MAAM,MAAK;MAAO,QAAO;MAAW,WAAU;gBAC5C;KACI,CAAA,GACL,CAAC,CAAC,KACF,kBAAC,GAAD;MACC,KAAI;MACJ,MAAK;MACL,QAAO;MACP,WAAU;gBAET;KACI,CAAA,CAEH;MACD,EAAA,CAAA,GAGL,EAAQ,SAAS,KACjB,kBAAC,OAAD;KAAK,WAAU;eACb,EAAQ,KAAK,MACb,kBAAC,GAAD;MAEC,WAAU;MACV,OAAO,EAAO;MACd,OAAO,EAAO;MACd,MAAA;MACA,gBAAe;MACf,gBAAe;KACf,GAPK,EAAO,KAOZ,CACD;IACG,CAAA,CAEF;;GAGL,MAAc,WAAW,KACzB,kBAAC,OAAD;IAAK,WAAU;cACb,EAAM,KAAK,MACX,kBAAC,OAAD;KAEC,WAAU;eAFX,CAIC,kBAAC,GAAD;MACC,MAAK;MACL,MAAK;MACL,QAAO;MACP,WAAU;gBAET,EAAK;KACD,CAAA,GACN,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACC,kBAAC,GAAD;OAAM,MAAK;OAAO,QAAO;OAAW,WAAU;iBAC5C,EAAK;MACD,CAAA,GACL,CAAC,CAAC,EAAK,UACP,kBAAC,GAAD;OACC,KAAI;OACJ,MAAK;OACL,QAAO;OACP,WAAW,EACV,2CACA,EAAK,OAAO,WAAW,GAAG,IACvB,+BACA,oCACJ;iBAEC,EAAK;MACD,CAAA,CAEH;OACD;OA/BC,EAAK,KA+BN,CACL;GACG,CAAA;GAGN,kBAAC,OAAD;IAAK,WAAU;cAAf,CACC,kBAAC,GAAD;KACC,SAAQ;KACR,aAAY;KACZ,WAAU;KACV,SAAS;eAJV,CAMC,kBAAC,IAAD,EAAe,WAAU,kBAAmB,CAAA,GAC3C,EAAQ,OACF;QACR,kBAAC,GAAD;KACC,SAAQ;KACR,WAAU;KACV,SAAS;eAHV,CAKE,EAAQ,MACT,kBAAC,GAAD,EAAc,WAAU,gBAAiB,CAAA,CAClC;MACJ;;EACD;;AAEP;AAEA,EAAkB,cAAc"}
@@ -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-Bd5bEIiB.cjs"),r=require("../../../_shared/typography-CO9uwZhF.cjs"),i=require("../../../_shared/icon-badge-CU6ZkcER.cjs"),a=require("../../../_shared/badge-BeSKxX1u.cjs"),o=require("../../../_shared/cards-GSYfJ-oX.cjs"),s=require("../../../_shared/input-CB6hxh-5.cjs"),c=require("../../../_shared/display-Bin2vVex.cjs"),l=require("../../../_shared/separator-q42IlFFA.cjs"),u=require("../../../_shared/item-eUP9Rtmg.cjs"),d=require("../../../_shared/data-display-BdGQMXit.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)(u.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)(u.t,{className:`items-center`,children:[!!n&&(0,p.jsx)(u.c,{children:(0,p.jsx)(c.v,{date:n,time:o===`below`?e.time:void 0,tone:a,locale:i,timePlacement:`below`,layout:`stacked`})}),(0,p.jsxs)(u.r,{className:`min-w-0 sm:min-w-48`,children:[(0,p.jsx)(u.u,{children:e.service}),(0,p.jsx)(u.i,{clamp:1,children:e.customer})]}),(0,p.jsxs)(u.n,{className:`ml-auto shrink-0 flex-wrap justify-end`,children:[o===`inline-trailing`&&(0,p.jsx)(r.s,{size:`xs`,type:`secondary`,className:`shrink-0 tabular-nums`,children:e.time}),(0,p.jsx)(r.s,{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(e.useStrings(_,h===void 0?void 0:{redeem:h}),y);return(0,p.jsxs)(o.t,{className:t.cn(`loyalty-points--component w-full`,v),children:[(0,p.jsx)(d.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.o,{tag:`h3`,className:`text-4xl tabular-nums tracking-tight`,children:typeof i==`number`?i.toLocaleString():i}),(0,p.jsx)(r.s,{size:`xs`,type:`secondary`,children:b.pointsAvailable}),(0,p.jsx)(l.t,{className:`my-4`}),(0,p.jsx)(u.o,{children:f.map(e=>(0,p.jsxs)(u.t,{size:`small`,children:[(0,p.jsxs)(u.r,{children:[(0,p.jsx)(u.u,{bold:!1,children:e.label}),(0,p.jsx)(u.i,{clamp:1,children:e.date})]}),(0,p.jsx)(u.n,{children:(0,p.jsx)(r.s,{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)(u.o,{className:`mt-4`,children:n.map(e=>(0,p.jsxs)(u.t,{size:`small`,children:[(0,p.jsx)(u.c,{children:(0,p.jsx)(a.t,{variant:e.badge,className:`w-16 justify-center text-xxs`,children:e.type})}),(0,p.jsx)(u.r,{children:(0,p.jsx)(u.u,{bold:!1,children:e.label})}),(0,p.jsx)(u.n,{children:(0,p.jsx)(r.s,{weight:`semibold`,className:`tabular-nums text-success`,children:e.amount})})]},e.type))}),(0,p.jsx)(l.t,{className:`my-4`}),(0,p.jsx)(d.i,{label:f.totalSavings,value:(0,p.jsx)(r.o,{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:u}){return(0,p.jsxs)(o.t,{className:t.cn(`shipment-tracking--component w-full`,u),children:[(0,p.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,p.jsx)(r.s,{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.s,{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.s,{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)(d.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:u}){let f=e.useStrings(S,u);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)(d.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.s,{size:`xs`,className:`truncate`,children:e.label}),!!e.rate&&(0,p.jsx)(r.s,{tag:`span`,size:`xxs`,type:`discrete`,className:`shrink-0`,children:e.rate})]}),(0,p.jsx)(r.s,{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)(d.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)(d.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:d,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.s,{size:`xxs`,type:`secondary`,weight:`medium`,className:`uppercase tracking-wider`,children:b.plan}),(0,p.jsx)(r.o,{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.s,{tag:`span`,size:`xl`,weight:`bold`,className:`tabular-nums`,children:c}),(0,p.jsx)(r.s,{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.s,{size:`xs`,type:`secondary`,children:b.nextBilling})]}),(0,p.jsx)(r.s,{size:`xs`,weight:`semibold`,className:`tabular-nums`,children:d})]}),h.length>0&&(0,p.jsxs)(`div`,{className:`mt-4 space-y-2`,children:[(0,p.jsx)(r.s,{size:`xxs`,type:`secondary`,weight:`medium`,className:`uppercase tracking-wider`,children:b.perks}),(0,p.jsx)(u.o,{children:h.map((e,t)=>(0,p.jsxs)(u.t,{size:`small`,children:[(0,p.jsx)(u.c,{children:(0,p.jsx)(i.t,{icon:e.icon??m.Check,tone:`success`,size:`small`})}),(0,p.jsx)(u.r,{children:(0,p.jsx)(u.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:u,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.s,{size:`xxs`,type:`secondary`,weight:`medium`,className:`uppercase tracking-wider`,children:g.amount}),(0,p.jsx)(r.o,{tag:`h3`,className:`text-3xl tabular-nums tracking-tight`,children:i}),!!u&&(0,p.jsxs)(r.s,{size:`xs`,type:`secondary`,className:`mt-0.5`,children:[g.requested,`: `,u]})]}),(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.s,{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.s,{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)(d.i,{label:g.reason,value:a,className:`items-start`,valueClassName:`text-sm font-medium text-right`}),!!s&&(0,p.jsx)(d.i,{label:g.method,value:s,valueClassName:`text-sm font-medium`}),!!c&&(0,p.jsx)(d.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.s,{weight:`semibold`,children:i}),(0,p.jsx)(r.s,{children:s}),!!c&&(0,p.jsx)(r.s,{children:c}),!!w&&(0,p.jsx)(r.s,{children:w}),(0,p.jsx)(r.s,{type:`secondary`,children:f}),!!h&&(0,p.jsx)(r.s,{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:d,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)(u.t,{size:`small`,variant:`outline`,className:`items-center gap-x-2.5 gap-y-1.5 border-success/30 bg-success/5`,children:[(0,p.jsx)(u.c,{children:(0,p.jsx)(i.t,{icon:m.Check,tone:`success`,size:`default`,className:`ring-1 ring-success/20`})}),(0,p.jsxs)(u.r,{className:`min-w-0`,children:[(0,p.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,p.jsx)(u.u,{className:`max-w-full font-mono tracking-wider`,children:l}),(0,p.jsx)(a.t,{variant:`success`,size:`small`,children:x.applied})]}),(0,p.jsx)(u.i,{clamp:1,children:x.balance})]}),(0,p.jsxs)(u.a,{className:`border-t border-success/15 pt-1`,children:[(0,p.jsx)(`span`,{}),(0,p.jsxs)(u.n,{className:`shrink-0 gap-1.5`,children:[!!d&&(0,p.jsx)(r.s,{tag:`span`,size:`xs`,weight:`semibold`,type:`success`,className:`tabular-nums shrink-0`,children:d}),!!v&&(0,p.jsx)(n.t,{type:`button`,variant:`error`,buttonStyle:`ghost`,size:`icon-small`,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.D,{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-48 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-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)(u.o,{children:i.map(e=>{let t=I(e),n=L(e);return(0,p.jsxs)(u.t,{className:`cart-summary--item`,children:[(0,p.jsx)(u.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)(u.r,{className:`cart-summary--item-content`,children:[(0,p.jsx)(u.u,{children:t}),!!e.variantTitle&&(0,p.jsx)(u.i,{clamp:1,children:e.variantTitle})]}),(0,p.jsx)(u.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.s,{tag:`span`,size:`xs`,type:`secondary`,className:`tabular-nums`,children:[`x`,e.qty]}),(0,p.jsx)(r.s,{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)(d.i,{label:y.subtotal,value:a,mono:!0,valueClassName:`text-xs font-medium`,labelClassName:`text-xs`}),!!s&&(0,p.jsx)(d.i,{label:y.tax,value:s,mono:!0,valueClassName:`text-xs font-medium`,labelClassName:`text-xs`}),!!c&&(0,p.jsx)(d.i,{label:y.shipping,value:c,mono:!0,valueClassName:`text-xs font-medium`,labelClassName:`text-xs`}),!!f&&(0,p.jsx)(d.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)(d.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:d,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)(u.t,{size:`small`,variant:`muted`,className:`items-center gap-x-2.5 gap-y-1.5 border border-success/30 bg-success/8`,children:[(0,p.jsx)(u.c,{children:(0,p.jsx)(i.t,{icon:m.Check,tone:`success`,size:`default`,className:`ring-1 ring-success/20`})}),(0,p.jsxs)(u.r,{className:`min-w-0`,children:[(0,p.jsx)(u.u,{className:`max-w-full font-mono tracking-wider`,children:a}),(0,p.jsx)(u.i,{className:`uppercase tracking-wide`,clamp:1,children:y.applied})]}),(0,p.jsxs)(u.a,{className:`border-t border-success/15 pt-1`,children:[(0,p.jsx)(`span`,{}),(0,p.jsxs)(u.n,{className:`shrink-0 gap-1.5`,children:[!!c&&(0,p.jsxs)(r.s,{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-small`,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-44 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:()=>d?.(S),loading:g,disabled:!S,className:`shrink-0`,children:y.apply})]}),!!l&&(0,p.jsx)(r.s,{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.s,{size:`xxs`,type:`secondary`,className:`uppercase tracking-wide`,children:f.statusLabel}),(0,p.jsx)(r.s,{weight:`semibold`,className:`mt-0.5 capitalize`,children:i})]}),!!_&&(0,p.jsxs)(`div`,{children:[(0,p.jsx)(r.s,{size:`xxs`,type:`secondary`,className:`uppercase tracking-wide`,children:_.complete?f.latestEvent:f.currentStep}),(0,p.jsx)(r.s,{weight:`semibold`,className:`mt-0.5`,children:_.label})]}),!!l&&(0,p.jsxs)(`div`,{children:[(0,p.jsx)(r.s,{size:`xxs`,type:`secondary`,className:`uppercase tracking-wide`,children:f.eta}),(0,p.jsx)(r.s,{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.s,{weight:e.complete||a?`semibold`:`medium`,className:t.cn(!e.complete&&!a&&`text-muted-foreground`),children:e.label}),!!e.timestamp&&(0,p.jsx)(r.s,{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.s,{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.s,{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.s,{size:`xxs`,className:`block uppercase tracking-wider text-inverse-subtle`,children:g.cardHolder}),(0,p.jsx)(r.s,{weight:`semibold`,className:`truncate text-inverse-foreground`,children:l})]})}),!!c&&(0,p.jsxs)(`div`,{className:`text-right shrink-0`,children:[(0,p.jsx)(r.s,{size:`xxs`,className:`block uppercase tracking-wider text-inverse-subtle`,children:g.expires}),(0,p.jsx)(r.s,{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-BMiPFJIb.cjs"),r=require("../../../_shared/typography-pzCKaFOc.cjs"),i=require("../../../_shared/icon-badge-CU6ZkcER.cjs"),a=require("../../../_shared/badge-DvUA9Pr2.cjs"),o=require("../../../_shared/cards-DQN9fcwo.cjs"),s=require("../../../_shared/input-uuWeiagN.cjs"),c=require("../../../_shared/display-C0ut-Lew.cjs"),l=require("../../../_shared/separator-q42IlFFA.cjs"),u=require("../../../_shared/item-CSk9Y2qB.cjs"),d=require("../../../_shared/data-display-CXVoX3la.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)(u.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)(u.t,{className:`items-center`,children:[!!n&&(0,p.jsx)(u.c,{children:(0,p.jsx)(c.v,{date:n,time:o===`below`?e.time:void 0,tone:a,locale:i,timePlacement:`below`,layout:`stacked`})}),(0,p.jsxs)(u.r,{className:`min-w-0 sm:min-w-48`,children:[(0,p.jsx)(u.u,{children:e.service}),(0,p.jsx)(u.i,{clamp:1,children:e.customer})]}),(0,p.jsxs)(u.n,{className:`ml-auto shrink-0 flex-wrap justify-end`,children:[o===`inline-trailing`&&(0,p.jsx)(r.s,{size:`xs`,type:`secondary`,className:`shrink-0 tabular-nums`,children:e.time}),(0,p.jsx)(r.s,{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(e.useStrings(_,h===void 0?void 0:{redeem:h}),y);return(0,p.jsxs)(o.t,{className:t.cn(`loyalty-points--component w-full`,v),children:[(0,p.jsx)(d.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.o,{tag:`h3`,className:`text-lg tabular-nums tracking-tight`,children:typeof i==`number`?i.toLocaleString():i}),(0,p.jsx)(r.s,{size:`xs`,type:`secondary`,children:b.pointsAvailable}),(0,p.jsx)(l.t,{className:`my-4`}),(0,p.jsx)(u.o,{children:f.map(e=>(0,p.jsxs)(u.t,{size:`small`,children:[(0,p.jsxs)(u.r,{children:[(0,p.jsx)(u.u,{bold:!1,children:e.label}),(0,p.jsx)(u.i,{clamp:1,children:e.date})]}),(0,p.jsx)(u.n,{children:(0,p.jsx)(r.s,{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)(u.o,{className:`mt-4`,children:n.map(e=>(0,p.jsxs)(u.t,{size:`small`,children:[(0,p.jsx)(u.c,{children:(0,p.jsx)(a.t,{variant:e.badge,className:`w-16 justify-center text-xs`,children:e.type})}),(0,p.jsx)(u.r,{children:(0,p.jsx)(u.u,{bold:!1,children:e.label})}),(0,p.jsx)(u.n,{children:(0,p.jsx)(r.s,{weight:`semibold`,className:`tabular-nums text-success`,children:e.amount})})]},e.type))}),(0,p.jsx)(l.t,{className:`my-4`}),(0,p.jsx)(d.i,{label:f.totalSavings,value:(0,p.jsx)(r.o,{tag:`h4`,className:`text-base 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:u}){return(0,p.jsxs)(o.t,{className:t.cn(`shipment-tracking--component w-full`,u),children:[(0,p.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,p.jsx)(r.s,{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.s,{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.s,{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)(d.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:u}){let f=e.useStrings(S,u);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)(d.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.s,{size:`xs`,className:`truncate`,children:e.label}),!!e.rate&&(0,p.jsx)(r.s,{tag:`span`,size:`xs`,type:`discrete`,className:`shrink-0`,children:e.rate})]}),(0,p.jsx)(r.s,{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)(d.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)(d.i,{label:f.total,value:s,mono:!0,labelClassName:`text-sm font-semibold`,valueClassName:`text-base 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:d,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.s,{size:`xs`,type:`secondary`,weight:`medium`,className:`uppercase tracking-wider`,children:b.plan}),(0,p.jsx)(r.o,{tag:`h3`,className:`mt-1 text-base 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.s,{tag:`span`,size:`base`,weight:`bold`,className:`tabular-nums`,children:c}),(0,p.jsx)(r.s,{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.s,{size:`xs`,type:`secondary`,children:b.nextBilling})]}),(0,p.jsx)(r.s,{size:`xs`,weight:`semibold`,className:`tabular-nums`,children:d})]}),h.length>0&&(0,p.jsxs)(`div`,{className:`mt-4 space-y-2`,children:[(0,p.jsx)(r.s,{size:`xs`,type:`secondary`,weight:`medium`,className:`uppercase tracking-wider`,children:b.perks}),(0,p.jsx)(u.o,{children:h.map((e,t)=>(0,p.jsxs)(u.t,{size:`small`,children:[(0,p.jsx)(u.c,{children:(0,p.jsx)(i.t,{icon:e.icon??m.Check,tone:`success`,size:`small`})}),(0,p.jsx)(u.r,{children:(0,p.jsx)(u.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:u,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.s,{size:`xs`,type:`secondary`,weight:`medium`,className:`uppercase tracking-wider`,children:g.amount}),(0,p.jsx)(r.o,{tag:`h3`,className:`text-lg tabular-nums tracking-tight`,children:i}),!!u&&(0,p.jsxs)(r.s,{size:`xs`,type:`secondary`,className:`mt-0.5`,children:[g.requested,`: `,u]})]}),(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.s,{tag:`span`,size:`xs`,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.s,{size:`xs`,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)(d.i,{label:g.reason,value:a,className:`items-start`,valueClassName:`text-sm font-medium text-right`}),!!s&&(0,p.jsx)(d.i,{label:g.method,value:s,valueClassName:`text-sm font-medium`}),!!c&&(0,p.jsx)(d.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.s,{weight:`semibold`,children:i}),(0,p.jsx)(r.s,{children:s}),!!c&&(0,p.jsx)(r.s,{children:c}),!!w&&(0,p.jsx)(r.s,{children:w}),(0,p.jsx)(r.s,{type:`secondary`,children:f}),!!h&&(0,p.jsx)(r.s,{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:d,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)(u.t,{size:`small`,variant:`outline`,className:`items-center gap-x-2.5 gap-y-1.5 border-success/30 bg-success/5`,children:[(0,p.jsx)(u.c,{children:(0,p.jsx)(i.t,{icon:m.Check,tone:`success`,size:`default`,className:`ring-1 ring-success/20`})}),(0,p.jsxs)(u.r,{className:`min-w-0`,children:[(0,p.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,p.jsx)(u.u,{className:`max-w-full font-mono tracking-wider`,children:l}),(0,p.jsx)(a.t,{variant:`success`,size:`small`,children:x.applied})]}),(0,p.jsx)(u.i,{clamp:1,children:x.balance})]}),(0,p.jsxs)(u.a,{className:`border-t border-success/15 pt-1`,children:[(0,p.jsx)(`span`,{}),(0,p.jsxs)(u.n,{className:`shrink-0 gap-1.5`,children:[!!d&&(0,p.jsx)(r.s,{tag:`span`,size:`xs`,weight:`semibold`,type:`success`,className:`tabular-nums shrink-0`,children:d}),!!v&&(0,p.jsx)(n.t,{type:`button`,variant:`error`,buttonStyle:`ghost`,size:`icon-small`,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.D,{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-48 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-xs 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)(u.o,{children:i.map(e=>{let t=I(e),n=L(e);return(0,p.jsxs)(u.t,{className:`cart-summary--item`,children:[(0,p.jsx)(u.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)(u.r,{className:`cart-summary--item-content`,children:[(0,p.jsx)(u.u,{children:t}),!!e.variantTitle&&(0,p.jsx)(u.i,{clamp:1,children:e.variantTitle})]}),(0,p.jsx)(u.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.s,{tag:`span`,size:`xs`,type:`secondary`,className:`tabular-nums`,children:[`x`,e.qty]}),(0,p.jsx)(r.s,{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)(d.i,{label:y.subtotal,value:a,mono:!0,valueClassName:`text-xs font-medium`,labelClassName:`text-xs`}),!!s&&(0,p.jsx)(d.i,{label:y.tax,value:s,mono:!0,valueClassName:`text-xs font-medium`,labelClassName:`text-xs`}),!!c&&(0,p.jsx)(d.i,{label:y.shipping,value:c,mono:!0,valueClassName:`text-xs font-medium`,labelClassName:`text-xs`}),!!f&&(0,p.jsx)(d.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)(d.i,{label:y.total,value:h,mono:!0,labelClassName:`text-sm font-semibold`,valueClassName:`text-base 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:d,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)(u.t,{size:`small`,variant:`muted`,className:`items-center gap-x-2.5 gap-y-1.5 border border-success/30 bg-success/8`,children:[(0,p.jsx)(u.c,{children:(0,p.jsx)(i.t,{icon:m.Check,tone:`success`,size:`default`,className:`ring-1 ring-success/20`})}),(0,p.jsxs)(u.r,{className:`min-w-0`,children:[(0,p.jsx)(u.u,{className:`max-w-full font-mono tracking-wider`,children:a}),(0,p.jsx)(u.i,{className:`uppercase tracking-wide`,clamp:1,children:y.applied})]}),(0,p.jsxs)(u.a,{className:`border-t border-success/15 pt-1`,children:[(0,p.jsx)(`span`,{}),(0,p.jsxs)(u.n,{className:`shrink-0 gap-1.5`,children:[!!c&&(0,p.jsxs)(r.s,{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-small`,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-44 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:()=>d?.(S),loading:g,disabled:!S,className:`shrink-0`,children:y.apply})]}),!!l&&(0,p.jsx)(r.s,{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.s,{size:`xs`,type:`secondary`,className:`uppercase tracking-wide`,children:f.statusLabel}),(0,p.jsx)(r.s,{weight:`semibold`,className:`mt-0.5 capitalize`,children:i})]}),!!_&&(0,p.jsxs)(`div`,{children:[(0,p.jsx)(r.s,{size:`xs`,type:`secondary`,className:`uppercase tracking-wide`,children:_.complete?f.latestEvent:f.currentStep}),(0,p.jsx)(r.s,{weight:`semibold`,className:`mt-0.5`,children:_.label})]}),!!l&&(0,p.jsxs)(`div`,{children:[(0,p.jsx)(r.s,{size:`xs`,type:`secondary`,className:`uppercase tracking-wide`,children:f.eta}),(0,p.jsx)(r.s,{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.s,{weight:e.complete||a?`semibold`:`medium`,className:t.cn(!e.complete&&!a&&`text-muted-foreground`),children:e.label}),!!e.timestamp&&(0,p.jsx)(r.s,{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.s,{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.s,{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.s,{size:`xs`,className:`block uppercase tracking-wider text-inverse-subtle`,children:g.cardHolder}),(0,p.jsx)(r.s,{weight:`semibold`,className:`truncate text-inverse-foreground`,children:l})]})}),!!c&&(0,p.jsxs)(`div`,{className:`text-right shrink-0`,children:[(0,p.jsx)(r.s,{size:`xs`,className:`block uppercase tracking-wider text-inverse-subtle`,children:g.expires}),(0,p.jsx)(r.s,{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;
2
2
  //# sourceMappingURL=index.cjs.map