@thorprovider/blocks 1.0.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (859) hide show
  1. package/README.md +274 -46
  2. package/dist/.tsbuildinfo +1 -0
  3. package/dist/blocks/application/app-shells/app-shell-1-sidebar.d.ts +21 -0
  4. package/dist/blocks/application/app-shells/app-shell-1-sidebar.d.ts.map +1 -0
  5. package/dist/blocks/application/app-shells/app-shell-1-sidebar.js +147 -0
  6. package/dist/blocks/application/app-shells/app-shell-1-sidebar.js.map +1 -0
  7. package/dist/blocks/application/app-shells/app-shell-1-sidebar.mjs +153 -0
  8. package/dist/blocks/application/app-shells/app-shell-1-sidebar.mjs.map +1 -0
  9. package/dist/blocks/application/app-shells/app-shell-1.d.ts +27 -0
  10. package/dist/blocks/application/app-shells/app-shell-1.d.ts.map +1 -0
  11. package/dist/blocks/application/app-shells/app-shell-1.js +150 -0
  12. package/dist/blocks/application/app-shells/app-shell-1.js.map +1 -0
  13. package/dist/blocks/application/app-shells/app-shell-1.mjs +123 -0
  14. package/dist/blocks/application/app-shells/app-shell-1.mjs.map +1 -0
  15. package/dist/blocks/application/login-forms/login-page.d.ts +42 -0
  16. package/dist/blocks/application/login-forms/login-page.d.ts.map +1 -0
  17. package/dist/blocks/application/login-forms/login-page.js +209 -0
  18. package/dist/blocks/application/login-forms/login-page.js.map +1 -0
  19. package/dist/blocks/application/login-forms/login-page.mjs +185 -0
  20. package/dist/blocks/application/login-forms/login-page.mjs.map +1 -0
  21. package/dist/blocks/application/password-recovery/forgot-password-page-1-brand-mark.d.ts +3 -0
  22. package/dist/blocks/application/password-recovery/forgot-password-page-1-brand-mark.d.ts.map +1 -0
  23. package/dist/blocks/application/password-recovery/forgot-password-page-1-brand-mark.js +74 -0
  24. package/dist/blocks/application/password-recovery/forgot-password-page-1-brand-mark.js.map +1 -0
  25. package/dist/blocks/application/password-recovery/forgot-password-page-1-brand-mark.mjs +50 -0
  26. package/dist/blocks/application/password-recovery/forgot-password-page-1-brand-mark.mjs.map +1 -0
  27. package/dist/blocks/application/password-recovery/forgot-password-page-1.d.ts +42 -0
  28. package/dist/blocks/application/password-recovery/forgot-password-page-1.d.ts.map +1 -0
  29. package/dist/blocks/application/password-recovery/forgot-password-page-1.js +293 -0
  30. package/dist/blocks/application/password-recovery/forgot-password-page-1.js.map +1 -0
  31. package/dist/blocks/application/password-recovery/forgot-password-page-1.mjs +259 -0
  32. package/dist/blocks/application/password-recovery/forgot-password-page-1.mjs.map +1 -0
  33. package/dist/blocks/application/signup-forms/signup-page-1.d.ts +41 -0
  34. package/dist/blocks/application/signup-forms/signup-page-1.d.ts.map +1 -0
  35. package/dist/blocks/application/signup-forms/signup-page-1.js +195 -0
  36. package/dist/blocks/application/signup-forms/signup-page-1.js.map +1 -0
  37. package/dist/blocks/application/signup-forms/signup-page-1.mjs +171 -0
  38. package/dist/blocks/application/signup-forms/signup-page-1.mjs.map +1 -0
  39. package/dist/blocks/application/verification/verify-1.d.ts +35 -0
  40. package/dist/blocks/application/verification/verify-1.d.ts.map +1 -0
  41. package/dist/blocks/application/verification/verify-1.js +243 -0
  42. package/dist/blocks/application/verification/verify-1.js.map +1 -0
  43. package/dist/blocks/application/verification/verify-1.mjs +219 -0
  44. package/dist/blocks/application/verification/verify-1.mjs.map +1 -0
  45. package/dist/blocks/application/verification/verify-confetti.d.ts +22 -0
  46. package/dist/blocks/application/verification/verify-confetti.d.ts.map +1 -0
  47. package/dist/blocks/application/verification/verify-confetti.js +145 -0
  48. package/dist/blocks/application/verification/verify-confetti.js.map +1 -0
  49. package/dist/blocks/application/verification/verify-confetti.mjs +121 -0
  50. package/dist/blocks/application/verification/verify-confetti.mjs.map +1 -0
  51. package/dist/blocks/e-commerce/category-filters/category-listing-filter-fields.d.ts +39 -0
  52. package/dist/blocks/e-commerce/category-filters/category-listing-filter-fields.d.ts.map +1 -0
  53. package/dist/blocks/e-commerce/category-filters/category-listing-filter-fields.js +180 -0
  54. package/dist/blocks/e-commerce/category-filters/category-listing-filter-fields.js.map +1 -0
  55. package/dist/blocks/e-commerce/category-filters/category-listing-filter-fields.mjs +156 -0
  56. package/dist/blocks/e-commerce/category-filters/category-listing-filter-fields.mjs.map +1 -0
  57. package/dist/blocks/e-commerce/category-filters/category-listing.d.ts +236 -0
  58. package/dist/blocks/e-commerce/category-filters/category-listing.d.ts.map +1 -0
  59. package/dist/blocks/e-commerce/category-filters/category-listing.js +562 -0
  60. package/dist/blocks/e-commerce/category-filters/category-listing.js.map +1 -0
  61. package/dist/blocks/e-commerce/category-filters/category-listing.mjs +539 -0
  62. package/dist/blocks/e-commerce/category-filters/category-listing.mjs.map +1 -0
  63. package/dist/blocks/e-commerce/checkout-forms/checkbox-check.d.ts +4 -0
  64. package/dist/blocks/e-commerce/checkout-forms/checkbox-check.d.ts.map +1 -0
  65. package/dist/blocks/e-commerce/checkout-forms/checkbox-check.js +97 -0
  66. package/dist/blocks/e-commerce/checkout-forms/checkbox-check.js.map +1 -0
  67. package/dist/blocks/e-commerce/checkout-forms/checkbox-check.mjs +73 -0
  68. package/dist/blocks/e-commerce/checkout-forms/checkbox-check.mjs.map +1 -0
  69. package/dist/blocks/e-commerce/checkout-forms/checkout-confirmation-fulfilment-progress.d.ts +41 -0
  70. package/dist/blocks/e-commerce/checkout-forms/checkout-confirmation-fulfilment-progress.d.ts.map +1 -0
  71. package/dist/blocks/e-commerce/checkout-forms/checkout-confirmation-fulfilment-progress.js +115 -0
  72. package/dist/blocks/e-commerce/checkout-forms/checkout-confirmation-fulfilment-progress.js.map +1 -0
  73. package/dist/blocks/e-commerce/checkout-forms/checkout-confirmation-fulfilment-progress.mjs +91 -0
  74. package/dist/blocks/e-commerce/checkout-forms/checkout-confirmation-fulfilment-progress.mjs.map +1 -0
  75. package/dist/blocks/e-commerce/checkout-forms/checkout-confirmation.d.ts +107 -0
  76. package/dist/blocks/e-commerce/checkout-forms/checkout-confirmation.d.ts.map +1 -0
  77. package/dist/blocks/e-commerce/checkout-forms/checkout-confirmation.js +180 -0
  78. package/dist/blocks/e-commerce/checkout-forms/checkout-confirmation.js.map +1 -0
  79. package/dist/blocks/e-commerce/checkout-forms/checkout-confirmation.mjs +156 -0
  80. package/dist/blocks/e-commerce/checkout-forms/checkout-confirmation.mjs.map +1 -0
  81. package/dist/blocks/e-commerce/checkout-forms/checkout-contact-step.d.ts +13 -0
  82. package/dist/blocks/e-commerce/checkout-forms/checkout-contact-step.d.ts.map +1 -0
  83. package/dist/blocks/e-commerce/checkout-forms/checkout-contact-step.js +180 -0
  84. package/dist/blocks/e-commerce/checkout-forms/checkout-contact-step.js.map +1 -0
  85. package/dist/blocks/e-commerce/checkout-forms/checkout-contact-step.mjs +156 -0
  86. package/dist/blocks/e-commerce/checkout-forms/checkout-contact-step.mjs.map +1 -0
  87. package/dist/blocks/e-commerce/checkout-forms/checkout-country-field.d.ts +12 -0
  88. package/dist/blocks/e-commerce/checkout-forms/checkout-country-field.d.ts.map +1 -0
  89. package/dist/blocks/e-commerce/checkout-forms/checkout-country-field.js +50 -0
  90. package/dist/blocks/e-commerce/checkout-forms/checkout-country-field.js.map +1 -0
  91. package/dist/blocks/e-commerce/checkout-forms/checkout-country-field.mjs +33 -0
  92. package/dist/blocks/e-commerce/checkout-forms/checkout-country-field.mjs.map +1 -0
  93. package/dist/blocks/e-commerce/checkout-forms/checkout-field-feedback.d.ts +11 -0
  94. package/dist/blocks/e-commerce/checkout-forms/checkout-field-feedback.d.ts.map +1 -0
  95. package/dist/blocks/e-commerce/checkout-forms/checkout-field-feedback.js +50 -0
  96. package/dist/blocks/e-commerce/checkout-forms/checkout-field-feedback.js.map +1 -0
  97. package/dist/blocks/e-commerce/checkout-forms/checkout-field-feedback.mjs +25 -0
  98. package/dist/blocks/e-commerce/checkout-forms/checkout-field-feedback.mjs.map +1 -0
  99. package/dist/blocks/e-commerce/checkout-forms/checkout-form-types.d.ts +5 -0
  100. package/dist/blocks/e-commerce/checkout-forms/checkout-form-types.d.ts.map +1 -0
  101. package/dist/blocks/e-commerce/checkout-forms/checkout-form-types.js +17 -0
  102. package/dist/blocks/e-commerce/checkout-forms/checkout-form-types.js.map +1 -0
  103. package/dist/blocks/e-commerce/checkout-forms/checkout-form-types.mjs +1 -0
  104. package/dist/blocks/e-commerce/checkout-forms/checkout-form-types.mjs.map +1 -0
  105. package/dist/blocks/e-commerce/checkout-forms/checkout-order-summary.d.ts +20 -0
  106. package/dist/blocks/e-commerce/checkout-forms/checkout-order-summary.d.ts.map +1 -0
  107. package/dist/blocks/e-commerce/checkout-forms/checkout-order-summary.js +176 -0
  108. package/dist/blocks/e-commerce/checkout-forms/checkout-order-summary.js.map +1 -0
  109. package/dist/blocks/e-commerce/checkout-forms/checkout-order-summary.mjs +152 -0
  110. package/dist/blocks/e-commerce/checkout-forms/checkout-order-summary.mjs.map +1 -0
  111. package/dist/blocks/e-commerce/checkout-forms/checkout-payment-step.d.ts +12 -0
  112. package/dist/blocks/e-commerce/checkout-forms/checkout-payment-step.d.ts.map +1 -0
  113. package/dist/blocks/e-commerce/checkout-forms/checkout-payment-step.js +93 -0
  114. package/dist/blocks/e-commerce/checkout-forms/checkout-payment-step.js.map +1 -0
  115. package/dist/blocks/e-commerce/checkout-forms/checkout-payment-step.mjs +69 -0
  116. package/dist/blocks/e-commerce/checkout-forms/checkout-payment-step.mjs.map +1 -0
  117. package/dist/blocks/e-commerce/checkout-forms/checkout-progress.d.ts +11 -0
  118. package/dist/blocks/e-commerce/checkout-forms/checkout-progress.d.ts.map +1 -0
  119. package/dist/blocks/e-commerce/checkout-forms/checkout-progress.js +76 -0
  120. package/dist/blocks/e-commerce/checkout-forms/checkout-progress.js.map +1 -0
  121. package/dist/blocks/e-commerce/checkout-forms/checkout-progress.mjs +52 -0
  122. package/dist/blocks/e-commerce/checkout-forms/checkout-progress.mjs.map +1 -0
  123. package/dist/blocks/e-commerce/checkout-forms/checkout-review-step.d.ts +11 -0
  124. package/dist/blocks/e-commerce/checkout-forms/checkout-review-step.d.ts.map +1 -0
  125. package/dist/blocks/e-commerce/checkout-forms/checkout-review-step.js +64 -0
  126. package/dist/blocks/e-commerce/checkout-forms/checkout-review-step.js.map +1 -0
  127. package/dist/blocks/e-commerce/checkout-forms/checkout-review-step.mjs +40 -0
  128. package/dist/blocks/e-commerce/checkout-forms/checkout-review-step.mjs.map +1 -0
  129. package/dist/blocks/e-commerce/checkout-forms/checkout-shipping-step.d.ts +17 -0
  130. package/dist/blocks/e-commerce/checkout-forms/checkout-shipping-step.d.ts.map +1 -0
  131. package/dist/blocks/e-commerce/checkout-forms/checkout-shipping-step.js +199 -0
  132. package/dist/blocks/e-commerce/checkout-forms/checkout-shipping-step.js.map +1 -0
  133. package/dist/blocks/e-commerce/checkout-forms/checkout-shipping-step.mjs +175 -0
  134. package/dist/blocks/e-commerce/checkout-forms/checkout-shipping-step.mjs.map +1 -0
  135. package/dist/blocks/e-commerce/checkout-forms/checkout.d.ts +164 -0
  136. package/dist/blocks/e-commerce/checkout-forms/checkout.d.ts.map +1 -0
  137. package/dist/blocks/e-commerce/checkout-forms/checkout.js +351 -0
  138. package/dist/blocks/e-commerce/checkout-forms/checkout.js.map +1 -0
  139. package/dist/blocks/e-commerce/checkout-forms/checkout.mjs +327 -0
  140. package/dist/blocks/e-commerce/checkout-forms/checkout.mjs.map +1 -0
  141. package/dist/blocks/e-commerce/navigation/back-to-top.d.ts +28 -0
  142. package/dist/blocks/e-commerce/navigation/back-to-top.d.ts.map +1 -0
  143. package/dist/blocks/e-commerce/navigation/back-to-top.js +78 -0
  144. package/dist/blocks/e-commerce/navigation/back-to-top.js.map +1 -0
  145. package/dist/blocks/e-commerce/navigation/back-to-top.mjs +52 -0
  146. package/dist/blocks/e-commerce/navigation/back-to-top.mjs.map +1 -0
  147. package/dist/blocks/e-commerce/navigation/breadcrumb.d.ts +61 -0
  148. package/dist/blocks/e-commerce/navigation/breadcrumb.d.ts.map +1 -0
  149. package/dist/blocks/e-commerce/navigation/breadcrumb.js +111 -0
  150. package/dist/blocks/e-commerce/navigation/breadcrumb.js.map +1 -0
  151. package/dist/blocks/e-commerce/navigation/breadcrumb.mjs +93 -0
  152. package/dist/blocks/e-commerce/navigation/breadcrumb.mjs.map +1 -0
  153. package/dist/blocks/e-commerce/navigation/category-icon.d.ts +28 -0
  154. package/dist/blocks/e-commerce/navigation/category-icon.d.ts.map +1 -0
  155. package/dist/blocks/e-commerce/navigation/category-icon.js +86 -0
  156. package/dist/blocks/e-commerce/navigation/category-icon.js.map +1 -0
  157. package/dist/blocks/e-commerce/navigation/category-icon.mjs +79 -0
  158. package/dist/blocks/e-commerce/navigation/category-icon.mjs.map +1 -0
  159. package/dist/blocks/e-commerce/navigation/mega-menu.d.ts +112 -0
  160. package/dist/blocks/e-commerce/navigation/mega-menu.d.ts.map +1 -0
  161. package/dist/blocks/e-commerce/navigation/mega-menu.js +250 -0
  162. package/dist/blocks/e-commerce/navigation/mega-menu.js.map +1 -0
  163. package/dist/blocks/e-commerce/navigation/mega-menu.mjs +228 -0
  164. package/dist/blocks/e-commerce/navigation/mega-menu.mjs.map +1 -0
  165. package/dist/blocks/e-commerce/navigation/mobile-bottom-nav.d.ts +71 -0
  166. package/dist/blocks/e-commerce/navigation/mobile-bottom-nav.d.ts.map +1 -0
  167. package/dist/blocks/e-commerce/navigation/mobile-bottom-nav.js +94 -0
  168. package/dist/blocks/e-commerce/navigation/mobile-bottom-nav.js.map +1 -0
  169. package/dist/blocks/e-commerce/navigation/mobile-bottom-nav.mjs +68 -0
  170. package/dist/blocks/e-commerce/navigation/mobile-bottom-nav.mjs.map +1 -0
  171. package/dist/blocks/e-commerce/navigation/mobile-category-drawer.d.ts +121 -0
  172. package/dist/blocks/e-commerce/navigation/mobile-category-drawer.d.ts.map +1 -0
  173. package/dist/blocks/e-commerce/navigation/mobile-category-drawer.js +257 -0
  174. package/dist/blocks/e-commerce/navigation/mobile-category-drawer.js.map +1 -0
  175. package/dist/blocks/e-commerce/navigation/mobile-category-drawer.mjs +235 -0
  176. package/dist/blocks/e-commerce/navigation/mobile-category-drawer.mjs.map +1 -0
  177. package/dist/blocks/e-commerce/navigation/skip-to-content.d.ts +25 -0
  178. package/dist/blocks/e-commerce/navigation/skip-to-content.d.ts.map +1 -0
  179. package/dist/blocks/e-commerce/navigation/skip-to-content.js +55 -0
  180. package/dist/blocks/e-commerce/navigation/skip-to-content.js.map +1 -0
  181. package/dist/blocks/e-commerce/navigation/skip-to-content.mjs +30 -0
  182. package/dist/blocks/e-commerce/navigation/skip-to-content.mjs.map +1 -0
  183. package/dist/blocks/e-commerce/navigation/storefront-navbar-account-menu.d.ts +23 -0
  184. package/dist/blocks/e-commerce/navigation/storefront-navbar-account-menu.d.ts.map +1 -0
  185. package/dist/blocks/e-commerce/navigation/storefront-navbar-account-menu.js +127 -0
  186. package/dist/blocks/e-commerce/navigation/storefront-navbar-account-menu.js.map +1 -0
  187. package/dist/blocks/e-commerce/navigation/storefront-navbar-account-menu.mjs +111 -0
  188. package/dist/blocks/e-commerce/navigation/storefront-navbar-account-menu.mjs.map +1 -0
  189. package/dist/blocks/e-commerce/navigation/storefront-navbar-cart-sheet.d.ts +66 -0
  190. package/dist/blocks/e-commerce/navigation/storefront-navbar-cart-sheet.d.ts.map +1 -0
  191. package/dist/blocks/e-commerce/navigation/storefront-navbar-cart-sheet.js +280 -0
  192. package/dist/blocks/e-commerce/navigation/storefront-navbar-cart-sheet.js.map +1 -0
  193. package/dist/blocks/e-commerce/navigation/storefront-navbar-cart-sheet.mjs +263 -0
  194. package/dist/blocks/e-commerce/navigation/storefront-navbar-cart-sheet.mjs.map +1 -0
  195. package/dist/blocks/e-commerce/navigation/storefront-navbar-mobile-nav.d.ts +13 -0
  196. package/dist/blocks/e-commerce/navigation/storefront-navbar-mobile-nav.d.ts.map +1 -0
  197. package/dist/blocks/e-commerce/navigation/storefront-navbar-mobile-nav.js +83 -0
  198. package/dist/blocks/e-commerce/navigation/storefront-navbar-mobile-nav.js.map +1 -0
  199. package/dist/blocks/e-commerce/navigation/storefront-navbar-mobile-nav.mjs +59 -0
  200. package/dist/blocks/e-commerce/navigation/storefront-navbar-mobile-nav.mjs.map +1 -0
  201. package/dist/blocks/e-commerce/navigation/storefront-navbar-search-bar.d.ts +8 -0
  202. package/dist/blocks/e-commerce/navigation/storefront-navbar-search-bar.d.ts.map +1 -0
  203. package/dist/blocks/e-commerce/navigation/storefront-navbar-search-bar.js +73 -0
  204. package/dist/blocks/e-commerce/navigation/storefront-navbar-search-bar.js.map +1 -0
  205. package/dist/blocks/e-commerce/navigation/storefront-navbar-search-bar.mjs +49 -0
  206. package/dist/blocks/e-commerce/navigation/storefront-navbar-search-bar.mjs.map +1 -0
  207. package/dist/blocks/e-commerce/navigation/storefront-navbar.d.ts +121 -0
  208. package/dist/blocks/e-commerce/navigation/storefront-navbar.d.ts.map +1 -0
  209. package/dist/blocks/e-commerce/navigation/storefront-navbar.js +424 -0
  210. package/dist/blocks/e-commerce/navigation/storefront-navbar.js.map +1 -0
  211. package/dist/blocks/e-commerce/navigation/storefront-navbar.mjs +399 -0
  212. package/dist/blocks/e-commerce/navigation/storefront-navbar.mjs.map +1 -0
  213. package/dist/blocks/e-commerce/order-history/order-history.d.ts +74 -0
  214. package/dist/blocks/e-commerce/order-history/order-history.d.ts.map +1 -0
  215. package/dist/blocks/e-commerce/order-history/order-history.js +161 -0
  216. package/dist/blocks/e-commerce/order-history/order-history.js.map +1 -0
  217. package/dist/blocks/e-commerce/order-history/order-history.mjs +141 -0
  218. package/dist/blocks/e-commerce/order-history/order-history.mjs.map +1 -0
  219. package/dist/blocks/e-commerce/order-history/order-line.d.ts +50 -0
  220. package/dist/blocks/e-commerce/order-history/order-line.d.ts.map +1 -0
  221. package/dist/blocks/e-commerce/order-history/order-line.js +75 -0
  222. package/dist/blocks/e-commerce/order-history/order-line.js.map +1 -0
  223. package/dist/blocks/e-commerce/order-history/order-line.mjs +49 -0
  224. package/dist/blocks/e-commerce/order-history/order-line.mjs.map +1 -0
  225. package/dist/blocks/e-commerce/product-categories/category-card.d.ts +9 -0
  226. package/dist/blocks/e-commerce/product-categories/category-card.d.ts.map +1 -0
  227. package/dist/blocks/e-commerce/product-categories/category-card.js +154 -0
  228. package/dist/blocks/e-commerce/product-categories/category-card.js.map +1 -0
  229. package/dist/blocks/e-commerce/product-categories/category-card.mjs +134 -0
  230. package/dist/blocks/e-commerce/product-categories/category-card.mjs.map +1 -0
  231. package/dist/blocks/e-commerce/product-categories/category-shared.d.ts +15 -0
  232. package/dist/blocks/e-commerce/product-categories/category-shared.d.ts.map +1 -0
  233. package/dist/blocks/e-commerce/product-categories/category-shared.js +101 -0
  234. package/dist/blocks/e-commerce/product-categories/category-shared.js.map +1 -0
  235. package/dist/blocks/e-commerce/product-categories/category-shared.mjs +97 -0
  236. package/dist/blocks/e-commerce/product-categories/category-shared.mjs.map +1 -0
  237. package/dist/blocks/e-commerce/product-categories/product-category-grid.d.ts +10 -0
  238. package/dist/blocks/e-commerce/product-categories/product-category-grid.d.ts.map +1 -0
  239. package/dist/blocks/e-commerce/product-categories/product-category-grid.js +138 -0
  240. package/dist/blocks/e-commerce/product-categories/product-category-grid.js.map +1 -0
  241. package/dist/blocks/e-commerce/product-categories/product-category-grid.mjs +114 -0
  242. package/dist/blocks/e-commerce/product-categories/product-category-grid.mjs.map +1 -0
  243. package/dist/blocks/e-commerce/product-categories/product-category.d.ts +41 -0
  244. package/dist/blocks/e-commerce/product-categories/product-category.d.ts.map +1 -0
  245. package/dist/blocks/e-commerce/product-categories/product-category.js +319 -0
  246. package/dist/blocks/e-commerce/product-categories/product-category.js.map +1 -0
  247. package/dist/blocks/e-commerce/product-categories/product-category.mjs +322 -0
  248. package/dist/blocks/e-commerce/product-categories/product-category.mjs.map +1 -0
  249. package/dist/blocks/e-commerce/product-list/product-card.d.ts +47 -0
  250. package/dist/blocks/e-commerce/product-list/product-card.d.ts.map +1 -0
  251. package/dist/blocks/e-commerce/product-list/product-card.js +361 -0
  252. package/dist/blocks/e-commerce/product-list/product-card.js.map +1 -0
  253. package/dist/blocks/e-commerce/product-list/product-card.mjs +337 -0
  254. package/dist/blocks/e-commerce/product-list/product-card.mjs.map +1 -0
  255. package/dist/blocks/e-commerce/product-list/product-grid.d.ts +28 -0
  256. package/dist/blocks/e-commerce/product-list/product-grid.d.ts.map +1 -0
  257. package/dist/blocks/e-commerce/product-list/product-grid.js +92 -0
  258. package/dist/blocks/e-commerce/product-list/product-grid.js.map +1 -0
  259. package/dist/blocks/e-commerce/product-list/product-grid.mjs +68 -0
  260. package/dist/blocks/e-commerce/product-list/product-grid.mjs.map +1 -0
  261. package/dist/blocks/e-commerce/product-list/product-showcase-1.d.ts +30 -0
  262. package/dist/blocks/e-commerce/product-list/product-showcase-1.d.ts.map +1 -0
  263. package/dist/blocks/e-commerce/product-list/product-showcase-1.js +245 -0
  264. package/dist/blocks/e-commerce/product-list/product-showcase-1.js.map +1 -0
  265. package/dist/blocks/e-commerce/product-list/product-showcase-1.mjs +221 -0
  266. package/dist/blocks/e-commerce/product-list/product-showcase-1.mjs.map +1 -0
  267. package/dist/blocks/e-commerce/product-overview/product-overview-gallery.d.ts +20 -0
  268. package/dist/blocks/e-commerce/product-overview/product-overview-gallery.d.ts.map +1 -0
  269. package/dist/blocks/e-commerce/product-overview/product-overview-gallery.js +71 -0
  270. package/dist/blocks/e-commerce/product-overview/product-overview-gallery.js.map +1 -0
  271. package/dist/blocks/e-commerce/product-overview/product-overview-gallery.mjs +47 -0
  272. package/dist/blocks/e-commerce/product-overview/product-overview-gallery.mjs.map +1 -0
  273. package/dist/blocks/e-commerce/product-overview/product-overview-lightbox-tab.d.ts +15 -0
  274. package/dist/blocks/e-commerce/product-overview/product-overview-lightbox-tab.d.ts.map +1 -0
  275. package/dist/blocks/e-commerce/product-overview/product-overview-lightbox-tab.js +118 -0
  276. package/dist/blocks/e-commerce/product-overview/product-overview-lightbox-tab.js.map +1 -0
  277. package/dist/blocks/e-commerce/product-overview/product-overview-lightbox-tab.mjs +94 -0
  278. package/dist/blocks/e-commerce/product-overview/product-overview-lightbox-tab.mjs.map +1 -0
  279. package/dist/blocks/e-commerce/product-overview/product-overview-reviews-tab.d.ts +26 -0
  280. package/dist/blocks/e-commerce/product-overview/product-overview-reviews-tab.d.ts.map +1 -0
  281. package/dist/blocks/e-commerce/product-overview/product-overview-reviews-tab.js +85 -0
  282. package/dist/blocks/e-commerce/product-overview/product-overview-reviews-tab.js.map +1 -0
  283. package/dist/blocks/e-commerce/product-overview/product-overview-reviews-tab.mjs +61 -0
  284. package/dist/blocks/e-commerce/product-overview/product-overview-reviews-tab.mjs.map +1 -0
  285. package/dist/blocks/e-commerce/product-overview/product-overview-tabs.d.ts +32 -0
  286. package/dist/blocks/e-commerce/product-overview/product-overview-tabs.d.ts.map +1 -0
  287. package/dist/blocks/e-commerce/product-overview/product-overview-tabs.js +79 -0
  288. package/dist/blocks/e-commerce/product-overview/product-overview-tabs.js.map +1 -0
  289. package/dist/blocks/e-commerce/product-overview/product-overview-tabs.mjs +51 -0
  290. package/dist/blocks/e-commerce/product-overview/product-overview-tabs.mjs.map +1 -0
  291. package/dist/blocks/e-commerce/product-overview/product-overview.d.ts +121 -0
  292. package/dist/blocks/e-commerce/product-overview/product-overview.d.ts.map +1 -0
  293. package/dist/blocks/e-commerce/product-overview/product-overview.js +844 -0
  294. package/dist/blocks/e-commerce/product-overview/product-overview.js.map +1 -0
  295. package/dist/blocks/e-commerce/product-overview/product-overview.mjs +821 -0
  296. package/dist/blocks/e-commerce/product-overview/product-overview.mjs.map +1 -0
  297. package/dist/blocks/e-commerce/product-overview/product-quick-view-card.d.ts +17 -0
  298. package/dist/blocks/e-commerce/product-overview/product-quick-view-card.d.ts.map +1 -0
  299. package/dist/blocks/e-commerce/product-overview/product-quick-view-card.js +123 -0
  300. package/dist/blocks/e-commerce/product-overview/product-quick-view-card.js.map +1 -0
  301. package/dist/blocks/e-commerce/product-overview/product-quick-view-card.mjs +99 -0
  302. package/dist/blocks/e-commerce/product-overview/product-quick-view-card.mjs.map +1 -0
  303. package/dist/blocks/e-commerce/product-overview/product-quick-view-dialog.d.ts +20 -0
  304. package/dist/blocks/e-commerce/product-overview/product-quick-view-dialog.d.ts.map +1 -0
  305. package/dist/blocks/e-commerce/product-overview/product-quick-view-dialog.js +271 -0
  306. package/dist/blocks/e-commerce/product-overview/product-quick-view-dialog.js.map +1 -0
  307. package/dist/blocks/e-commerce/product-overview/product-quick-view-dialog.mjs +253 -0
  308. package/dist/blocks/e-commerce/product-overview/product-quick-view-dialog.mjs.map +1 -0
  309. package/dist/blocks/e-commerce/product-overview/product-quick-view.d.ts +68 -0
  310. package/dist/blocks/e-commerce/product-overview/product-quick-view.d.ts.map +1 -0
  311. package/dist/blocks/e-commerce/product-overview/product-quick-view.js +84 -0
  312. package/dist/blocks/e-commerce/product-overview/product-quick-view.js.map +1 -0
  313. package/dist/blocks/e-commerce/product-overview/product-quick-view.mjs +60 -0
  314. package/dist/blocks/e-commerce/product-overview/product-quick-view.mjs.map +1 -0
  315. package/dist/blocks/e-commerce/reviews/review-card.d.ts +60 -0
  316. package/dist/blocks/e-commerce/reviews/review-card.d.ts.map +1 -0
  317. package/dist/blocks/e-commerce/reviews/review-card.js +166 -0
  318. package/dist/blocks/e-commerce/reviews/review-card.js.map +1 -0
  319. package/dist/blocks/e-commerce/reviews/review-card.mjs +139 -0
  320. package/dist/blocks/e-commerce/reviews/review-card.mjs.map +1 -0
  321. package/dist/blocks/e-commerce/reviews/review-composer.d.ts +50 -0
  322. package/dist/blocks/e-commerce/reviews/review-composer.d.ts.map +1 -0
  323. package/dist/blocks/e-commerce/reviews/review-composer.js +180 -0
  324. package/dist/blocks/e-commerce/reviews/review-composer.js.map +1 -0
  325. package/dist/blocks/e-commerce/reviews/review-composer.mjs +155 -0
  326. package/dist/blocks/e-commerce/reviews/review-composer.mjs.map +1 -0
  327. package/dist/blocks/e-commerce/reviews/review-list.d.ts +40 -0
  328. package/dist/blocks/e-commerce/reviews/review-list.d.ts.map +1 -0
  329. package/dist/blocks/e-commerce/reviews/review-list.js +138 -0
  330. package/dist/blocks/e-commerce/reviews/review-list.js.map +1 -0
  331. package/dist/blocks/e-commerce/reviews/review-list.mjs +119 -0
  332. package/dist/blocks/e-commerce/reviews/review-list.mjs.map +1 -0
  333. package/dist/blocks/e-commerce/reviews/review-summary.d.ts +49 -0
  334. package/dist/blocks/e-commerce/reviews/review-summary.d.ts.map +1 -0
  335. package/dist/blocks/e-commerce/reviews/review-summary.js +150 -0
  336. package/dist/blocks/e-commerce/reviews/review-summary.js.map +1 -0
  337. package/dist/blocks/e-commerce/reviews/review-summary.mjs +124 -0
  338. package/dist/blocks/e-commerce/reviews/review-summary.mjs.map +1 -0
  339. package/dist/blocks/e-commerce/shopping-carts/shopping-cart.d.ts +98 -0
  340. package/dist/blocks/e-commerce/shopping-carts/shopping-cart.d.ts.map +1 -0
  341. package/dist/blocks/e-commerce/shopping-carts/shopping-cart.js +417 -0
  342. package/dist/blocks/e-commerce/shopping-carts/shopping-cart.js.map +1 -0
  343. package/dist/blocks/e-commerce/shopping-carts/shopping-cart.mjs +393 -0
  344. package/dist/blocks/e-commerce/shopping-carts/shopping-cart.mjs.map +1 -0
  345. package/dist/blocks/e-commerce/store-containers/store-container-1.d.ts +13 -0
  346. package/dist/blocks/e-commerce/store-containers/store-container-1.d.ts.map +1 -0
  347. package/dist/blocks/e-commerce/store-containers/store-container-1.js +45 -0
  348. package/dist/blocks/e-commerce/store-containers/store-container-1.js.map +1 -0
  349. package/dist/blocks/e-commerce/store-containers/store-container-1.mjs +21 -0
  350. package/dist/blocks/e-commerce/store-containers/store-container-1.mjs.map +1 -0
  351. package/dist/blocks/e-commerce/storefront-hero/storefront-hero.d.ts +163 -0
  352. package/dist/blocks/e-commerce/storefront-hero/storefront-hero.d.ts.map +1 -0
  353. package/dist/blocks/e-commerce/storefront-hero/storefront-hero.js +810 -0
  354. package/dist/blocks/e-commerce/storefront-hero/storefront-hero.js.map +1 -0
  355. package/dist/blocks/e-commerce/storefront-hero/storefront-hero.mjs +786 -0
  356. package/dist/blocks/e-commerce/storefront-hero/storefront-hero.mjs.map +1 -0
  357. package/dist/blocks/marketing/banners/avatar-group.d.ts +8 -0
  358. package/dist/blocks/marketing/banners/avatar-group.d.ts.map +1 -0
  359. package/dist/blocks/marketing/banners/avatar-group.js +90 -0
  360. package/dist/blocks/marketing/banners/avatar-group.js.map +1 -0
  361. package/dist/blocks/marketing/banners/avatar-group.mjs +56 -0
  362. package/dist/blocks/marketing/banners/avatar-group.mjs.map +1 -0
  363. package/dist/blocks/marketing/banners/banner-1.d.ts +26 -0
  364. package/dist/blocks/marketing/banners/banner-1.d.ts.map +1 -0
  365. package/dist/blocks/marketing/banners/banner-1.js +177 -0
  366. package/dist/blocks/marketing/banners/banner-1.js.map +1 -0
  367. package/dist/blocks/marketing/banners/banner-1.mjs +153 -0
  368. package/dist/blocks/marketing/banners/banner-1.mjs.map +1 -0
  369. package/dist/blocks/marketing/cta/cta-section-1.d.ts +13 -0
  370. package/dist/blocks/marketing/cta/cta-section-1.d.ts.map +1 -0
  371. package/dist/blocks/marketing/cta/cta-section-1.js +116 -0
  372. package/dist/blocks/marketing/cta/cta-section-1.js.map +1 -0
  373. package/dist/blocks/marketing/cta/cta-section-1.mjs +92 -0
  374. package/dist/blocks/marketing/cta/cta-section-1.mjs.map +1 -0
  375. package/dist/blocks/marketing/faq/faq-block-1.d.ts +16 -0
  376. package/dist/blocks/marketing/faq/faq-block-1.d.ts.map +1 -0
  377. package/dist/blocks/marketing/faq/faq-block-1.js +49 -0
  378. package/dist/blocks/marketing/faq/faq-block-1.js.map +1 -0
  379. package/dist/blocks/marketing/faq/faq-block-1.mjs +25 -0
  380. package/dist/blocks/marketing/faq/faq-block-1.mjs.map +1 -0
  381. package/dist/blocks/marketing/features/feature.d.ts +45 -0
  382. package/dist/blocks/marketing/features/feature.d.ts.map +1 -0
  383. package/dist/blocks/marketing/features/feature.js +135 -0
  384. package/dist/blocks/marketing/features/feature.js.map +1 -0
  385. package/dist/blocks/marketing/features/feature.mjs +111 -0
  386. package/dist/blocks/marketing/features/feature.mjs.map +1 -0
  387. package/dist/blocks/marketing/footers/footer-section.d.ts +59 -0
  388. package/dist/blocks/marketing/footers/footer-section.d.ts.map +1 -0
  389. package/dist/blocks/marketing/footers/footer-section.js +356 -0
  390. package/dist/blocks/marketing/footers/footer-section.js.map +1 -0
  391. package/dist/blocks/marketing/footers/footer-section.mjs +332 -0
  392. package/dist/blocks/marketing/footers/footer-section.mjs.map +1 -0
  393. package/dist/blocks/marketing/hero-sections/avatar-group.d.ts +9 -0
  394. package/dist/blocks/marketing/hero-sections/avatar-group.d.ts.map +1 -0
  395. package/dist/blocks/marketing/hero-sections/avatar-group.js +92 -0
  396. package/dist/blocks/marketing/hero-sections/avatar-group.js.map +1 -0
  397. package/dist/blocks/marketing/hero-sections/avatar-group.mjs +58 -0
  398. package/dist/blocks/marketing/hero-sections/avatar-group.mjs.map +1 -0
  399. package/dist/blocks/marketing/hero-sections/hero-section-1.d.ts +27 -0
  400. package/dist/blocks/marketing/hero-sections/hero-section-1.d.ts.map +1 -0
  401. package/dist/blocks/marketing/hero-sections/hero-section-1.js +124 -0
  402. package/dist/blocks/marketing/hero-sections/hero-section-1.js.map +1 -0
  403. package/dist/blocks/marketing/hero-sections/hero-section-1.mjs +100 -0
  404. package/dist/blocks/marketing/hero-sections/hero-section-1.mjs.map +1 -0
  405. package/dist/blocks/marketing/logo-clouds/logo-cloud-1-logo-icon.d.ts +19 -0
  406. package/dist/blocks/marketing/logo-clouds/logo-cloud-1-logo-icon.d.ts.map +1 -0
  407. package/dist/blocks/marketing/logo-clouds/logo-cloud-1-logo-icon.js +63 -0
  408. package/dist/blocks/marketing/logo-clouds/logo-cloud-1-logo-icon.js.map +1 -0
  409. package/dist/blocks/marketing/logo-clouds/logo-cloud-1-logo-icon.mjs +39 -0
  410. package/dist/blocks/marketing/logo-clouds/logo-cloud-1-logo-icon.mjs.map +1 -0
  411. package/dist/blocks/marketing/logo-clouds/logo-cloud-1.d.ts +13 -0
  412. package/dist/blocks/marketing/logo-clouds/logo-cloud-1.d.ts.map +1 -0
  413. package/dist/blocks/marketing/logo-clouds/logo-cloud-1.js +49 -0
  414. package/dist/blocks/marketing/logo-clouds/logo-cloud-1.js.map +1 -0
  415. package/dist/blocks/marketing/logo-clouds/logo-cloud-1.mjs +25 -0
  416. package/dist/blocks/marketing/logo-clouds/logo-cloud-1.mjs.map +1 -0
  417. package/dist/blocks/marketing/navbars/navbar.d.ts +80 -0
  418. package/dist/blocks/marketing/navbars/navbar.d.ts.map +1 -0
  419. package/dist/blocks/marketing/navbars/navbar.js +484 -0
  420. package/dist/blocks/marketing/navbars/navbar.js.map +1 -0
  421. package/dist/blocks/marketing/navbars/navbar.mjs +475 -0
  422. package/dist/blocks/marketing/navbars/navbar.mjs.map +1 -0
  423. package/dist/blocks/marketing/pricing/pricing-section-1.d.ts +23 -0
  424. package/dist/blocks/marketing/pricing/pricing-section-1.d.ts.map +1 -0
  425. package/dist/blocks/marketing/pricing/pricing-section-1.js +89 -0
  426. package/dist/blocks/marketing/pricing/pricing-section-1.js.map +1 -0
  427. package/dist/blocks/marketing/pricing/pricing-section-1.mjs +65 -0
  428. package/dist/blocks/marketing/pricing/pricing-section-1.mjs.map +1 -0
  429. package/dist/blocks/marketing/statistics/statistic-1.d.ts +19 -0
  430. package/dist/blocks/marketing/statistics/statistic-1.d.ts.map +1 -0
  431. package/dist/blocks/marketing/statistics/statistic-1.js +83 -0
  432. package/dist/blocks/marketing/statistics/statistic-1.js.map +1 -0
  433. package/dist/blocks/marketing/statistics/statistic-1.mjs +59 -0
  434. package/dist/blocks/marketing/statistics/statistic-1.mjs.map +1 -0
  435. package/dist/blocks/marketing/testimonials/testimonial-section.d.ts +29 -0
  436. package/dist/blocks/marketing/testimonials/testimonial-section.d.ts.map +1 -0
  437. package/dist/blocks/marketing/testimonials/testimonial-section.js +173 -0
  438. package/dist/blocks/marketing/testimonials/testimonial-section.js.map +1 -0
  439. package/dist/blocks/marketing/testimonials/testimonial-section.mjs +155 -0
  440. package/dist/blocks/marketing/testimonials/testimonial-section.mjs.map +1 -0
  441. package/dist/blocks/shared/reaction-toggle.d.ts +14 -0
  442. package/dist/blocks/shared/reaction-toggle.d.ts.map +1 -0
  443. package/dist/blocks/shared/reaction-toggle.js +138 -0
  444. package/dist/blocks/shared/reaction-toggle.js.map +1 -0
  445. package/dist/blocks/shared/reaction-toggle.mjs +114 -0
  446. package/dist/blocks/shared/reaction-toggle.mjs.map +1 -0
  447. package/dist/hooks/use-mobile.d.ts +2 -0
  448. package/dist/hooks/use-mobile.d.ts.map +1 -0
  449. package/dist/hooks/use-mobile.js +53 -0
  450. package/dist/hooks/use-mobile.js.map +1 -0
  451. package/dist/hooks/use-mobile.mjs +19 -0
  452. package/dist/hooks/use-mobile.mjs.map +1 -0
  453. package/dist/index.d.ts +100 -0
  454. package/dist/index.d.ts.map +1 -0
  455. package/dist/index.js +339 -0
  456. package/dist/index.js.map +1 -0
  457. package/dist/index.mjs +238 -0
  458. package/dist/index.mjs.map +1 -0
  459. package/{src/lib/cart.ts → dist/lib/cart.d.ts} +2 -3
  460. package/dist/lib/cart.d.ts.map +1 -0
  461. package/dist/lib/cart.js +31 -0
  462. package/dist/lib/cart.js.map +1 -0
  463. package/dist/lib/cart.mjs +7 -0
  464. package/dist/lib/cart.mjs.map +1 -0
  465. package/dist/lib/contracts.d.ts +4008 -0
  466. package/dist/lib/contracts.d.ts.map +1 -0
  467. package/dist/lib/contracts.js +828 -0
  468. package/dist/lib/contracts.js.map +1 -0
  469. package/dist/lib/contracts.mjs +737 -0
  470. package/dist/lib/contracts.mjs.map +1 -0
  471. package/dist/lib/money.d.ts +28 -0
  472. package/dist/lib/money.d.ts.map +1 -0
  473. package/dist/lib/money.js +50 -0
  474. package/dist/lib/money.js.map +1 -0
  475. package/dist/lib/money.mjs +24 -0
  476. package/dist/lib/money.mjs.map +1 -0
  477. package/dist/lib/types/menu.d.ts +40 -0
  478. package/dist/lib/types/menu.d.ts.map +1 -0
  479. package/dist/lib/types/menu.js +50 -0
  480. package/dist/lib/types/menu.js.map +1 -0
  481. package/dist/lib/types/menu.mjs +25 -0
  482. package/dist/lib/types/menu.mjs.map +1 -0
  483. package/dist/lib/types.d.ts +5 -0
  484. package/dist/lib/types.d.ts.map +1 -0
  485. package/dist/lib/types.js +17 -0
  486. package/dist/lib/types.js.map +1 -0
  487. package/dist/lib/types.mjs +1 -0
  488. package/dist/lib/types.mjs.map +1 -0
  489. package/dist/lib/utils.d.ts +7 -0
  490. package/dist/lib/utils.d.ts.map +1 -0
  491. package/dist/lib/utils.js +33 -0
  492. package/dist/lib/utils.js.map +1 -0
  493. package/dist/lib/utils.mjs +9 -0
  494. package/dist/lib/utils.mjs.map +1 -0
  495. package/dist/ui/accordion.d.ts +8 -0
  496. package/dist/ui/accordion.d.ts.map +1 -0
  497. package/dist/ui/accordion.js +93 -0
  498. package/dist/ui/accordion.js.map +1 -0
  499. package/dist/ui/accordion.mjs +66 -0
  500. package/dist/ui/accordion.mjs.map +1 -0
  501. package/dist/ui/avatar.d.ts +12 -0
  502. package/dist/ui/avatar.d.ts.map +1 -0
  503. package/dist/ui/avatar.js +134 -0
  504. package/dist/ui/avatar.js.map +1 -0
  505. package/{src/ui/avatar.tsx → dist/ui/avatar.mjs} +67 -70
  506. package/dist/ui/avatar.mjs.map +1 -0
  507. package/dist/ui/badge.d.ts +10 -0
  508. package/dist/ui/badge.d.ts.map +1 -0
  509. package/dist/ui/badge.js +69 -0
  510. package/dist/ui/badge.js.map +1 -0
  511. package/dist/ui/badge.mjs +44 -0
  512. package/dist/ui/badge.mjs.map +1 -0
  513. package/dist/ui/breadcrumb.d.ts +12 -0
  514. package/dist/ui/breadcrumb.d.ts.map +1 -0
  515. package/dist/ui/breadcrumb.js +134 -0
  516. package/dist/ui/breadcrumb.js.map +1 -0
  517. package/dist/ui/breadcrumb.mjs +104 -0
  518. package/dist/ui/breadcrumb.mjs.map +1 -0
  519. package/dist/ui/button-group.d.ts +12 -0
  520. package/dist/ui/button-group.d.ts.map +1 -0
  521. package/dist/ui/button-group.js +104 -0
  522. package/dist/ui/button-group.js.map +1 -0
  523. package/dist/ui/button-group.mjs +77 -0
  524. package/dist/ui/button-group.mjs.map +1 -0
  525. package/dist/ui/button.d.ts +11 -0
  526. package/dist/ui/button.d.ts.map +1 -0
  527. package/dist/ui/button.js +82 -0
  528. package/dist/ui/button.js.map +1 -0
  529. package/dist/ui/button.mjs +57 -0
  530. package/dist/ui/button.mjs.map +1 -0
  531. package/dist/ui/card.d.ts +10 -0
  532. package/dist/ui/card.d.ts.map +1 -0
  533. package/dist/ui/card.js +121 -0
  534. package/dist/ui/card.js.map +1 -0
  535. package/dist/ui/card.mjs +91 -0
  536. package/dist/ui/card.mjs.map +1 -0
  537. package/dist/ui/carousel.d.ts +20 -0
  538. package/dist/ui/carousel.d.ts.map +1 -0
  539. package/dist/ui/carousel.js +238 -0
  540. package/dist/ui/carousel.js.map +1 -0
  541. package/dist/ui/carousel.mjs +200 -0
  542. package/dist/ui/carousel.mjs.map +1 -0
  543. package/dist/ui/dialog.d.ts +18 -0
  544. package/dist/ui/dialog.d.ts.map +1 -0
  545. package/dist/ui/dialog.js +181 -0
  546. package/dist/ui/dialog.js.map +1 -0
  547. package/dist/ui/dialog.mjs +148 -0
  548. package/dist/ui/dialog.mjs.map +1 -0
  549. package/dist/ui/drawer.d.ts +14 -0
  550. package/dist/ui/drawer.d.ts.map +1 -0
  551. package/dist/ui/drawer.js +163 -0
  552. package/dist/ui/drawer.js.map +1 -0
  553. package/dist/ui/drawer.mjs +130 -0
  554. package/dist/ui/drawer.mjs.map +1 -0
  555. package/dist/ui/dropdown-menu.d.ts +26 -0
  556. package/dist/ui/dropdown-menu.d.ts.map +1 -0
  557. package/dist/ui/dropdown-menu.js +271 -0
  558. package/dist/ui/dropdown-menu.js.map +1 -0
  559. package/dist/ui/dropdown-menu.mjs +233 -0
  560. package/dist/ui/dropdown-menu.mjs.map +1 -0
  561. package/dist/ui/empty.d.ts +12 -0
  562. package/dist/ui/empty.d.ts.map +1 -0
  563. package/dist/ui/empty.js +132 -0
  564. package/dist/ui/empty.js.map +1 -0
  565. package/dist/ui/empty.mjs +103 -0
  566. package/dist/ui/empty.mjs.map +1 -0
  567. package/dist/ui/field.d.ts +25 -0
  568. package/dist/ui/field.d.ts.map +1 -0
  569. package/dist/ui/field.js +264 -0
  570. package/dist/ui/field.js.map +1 -0
  571. package/{src/ui/field.tsx → dist/ui/field.mjs} +142 -159
  572. package/dist/ui/field.mjs.map +1 -0
  573. package/dist/ui/input-group.d.ts +17 -0
  574. package/dist/ui/input-group.d.ts.map +1 -0
  575. package/dist/ui/input-group.js +185 -0
  576. package/dist/ui/input-group.js.map +1 -0
  577. package/{src/ui/input-group.tsx → dist/ui/input-group.mjs} +92 -106
  578. package/dist/ui/input-group.mjs.map +1 -0
  579. package/dist/ui/input-otp.d.ts +12 -0
  580. package/dist/ui/input-otp.d.ts.map +1 -0
  581. package/dist/ui/input-otp.js +105 -0
  582. package/dist/ui/input-otp.js.map +1 -0
  583. package/dist/ui/input-otp.mjs +68 -0
  584. package/dist/ui/input-otp.mjs.map +1 -0
  585. package/dist/ui/input.d.ts +4 -0
  586. package/dist/ui/input.d.ts.map +1 -0
  587. package/dist/ui/input.js +46 -0
  588. package/dist/ui/input.js.map +1 -0
  589. package/{src/ui/input.tsx → dist/ui/input.mjs} +17 -15
  590. package/dist/ui/input.mjs.map +1 -0
  591. package/dist/ui/label.d.ts +5 -0
  592. package/dist/ui/label.d.ts.map +1 -0
  593. package/dist/ui/label.js +48 -0
  594. package/dist/ui/label.js.map +1 -0
  595. package/dist/ui/label.mjs +24 -0
  596. package/dist/ui/label.mjs.map +1 -0
  597. package/dist/ui/navigation-menu.d.ts +15 -0
  598. package/dist/ui/navigation-menu.d.ts.map +1 -0
  599. package/dist/ui/navigation-menu.js +203 -0
  600. package/dist/ui/navigation-menu.js.map +1 -0
  601. package/{src/ui/navigation-menu.tsx → dist/ui/navigation-menu.mjs} +116 -112
  602. package/dist/ui/navigation-menu.mjs.map +1 -0
  603. package/dist/ui/pagination.d.ts +14 -0
  604. package/dist/ui/pagination.d.ts.map +1 -0
  605. package/dist/ui/pagination.js +149 -0
  606. package/dist/ui/pagination.js.map +1 -0
  607. package/dist/ui/pagination.mjs +123 -0
  608. package/dist/ui/pagination.mjs.map +1 -0
  609. package/dist/ui/progress.d.ts +5 -0
  610. package/dist/ui/progress.d.ts.map +1 -0
  611. package/dist/ui/progress.js +57 -0
  612. package/dist/ui/progress.js.map +1 -0
  613. package/dist/ui/progress.mjs +33 -0
  614. package/dist/ui/progress.mjs.map +1 -0
  615. package/dist/ui/radio-group.d.ts +6 -0
  616. package/dist/ui/radio-group.d.ts.map +1 -0
  617. package/dist/ui/radio-group.js +72 -0
  618. package/dist/ui/radio-group.js.map +1 -0
  619. package/dist/ui/radio-group.mjs +47 -0
  620. package/dist/ui/radio-group.mjs.map +1 -0
  621. package/dist/ui/select.d.ts +16 -0
  622. package/dist/ui/select.d.ts.map +1 -0
  623. package/dist/ui/select.js +213 -0
  624. package/dist/ui/select.js.map +1 -0
  625. package/dist/ui/select.mjs +180 -0
  626. package/dist/ui/select.mjs.map +1 -0
  627. package/dist/ui/separator.d.ts +5 -0
  628. package/dist/ui/separator.d.ts.map +1 -0
  629. package/dist/ui/separator.js +52 -0
  630. package/dist/ui/separator.js.map +1 -0
  631. package/dist/ui/separator.mjs +28 -0
  632. package/dist/ui/separator.mjs.map +1 -0
  633. package/dist/ui/sheet.d.ts +15 -0
  634. package/dist/ui/sheet.d.ts.map +1 -0
  635. package/dist/ui/sheet.js +160 -0
  636. package/dist/ui/sheet.js.map +1 -0
  637. package/dist/ui/sheet.mjs +129 -0
  638. package/dist/ui/sheet.mjs.map +1 -0
  639. package/dist/ui/sidebar.d.ts +70 -0
  640. package/dist/ui/sidebar.d.ts.map +1 -0
  641. package/dist/ui/sidebar.js +697 -0
  642. package/dist/ui/sidebar.js.map +1 -0
  643. package/dist/ui/sidebar.mjs +651 -0
  644. package/dist/ui/sidebar.mjs.map +1 -0
  645. package/dist/ui/skeleton.d.ts +3 -0
  646. package/dist/ui/skeleton.d.ts.map +1 -0
  647. package/dist/ui/skeleton.js +40 -0
  648. package/dist/ui/skeleton.js.map +1 -0
  649. package/dist/ui/skeleton.mjs +16 -0
  650. package/dist/ui/skeleton.mjs.map +1 -0
  651. package/dist/ui/table.d.ts +11 -0
  652. package/dist/ui/table.d.ts.map +1 -0
  653. package/dist/ui/table.js +147 -0
  654. package/dist/ui/table.js.map +1 -0
  655. package/dist/ui/table.mjs +116 -0
  656. package/dist/ui/table.mjs.map +1 -0
  657. package/dist/ui/tabs.d.ts +12 -0
  658. package/dist/ui/tabs.d.ts.map +1 -0
  659. package/dist/ui/tabs.js +121 -0
  660. package/dist/ui/tabs.js.map +1 -0
  661. package/{src/ui/tabs.tsx → dist/ui/tabs.mjs} +59 -56
  662. package/dist/ui/tabs.mjs.map +1 -0
  663. package/dist/ui/textarea.d.ts +4 -0
  664. package/dist/ui/textarea.d.ts.map +1 -0
  665. package/dist/ui/textarea.js +43 -0
  666. package/dist/ui/textarea.js.map +1 -0
  667. package/{src/ui/textarea.tsx → dist/ui/textarea.mjs} +16 -14
  668. package/dist/ui/textarea.mjs.map +1 -0
  669. package/dist/ui/toggle-group.d.ts +10 -0
  670. package/dist/ui/toggle-group.d.ts.map +1 -0
  671. package/dist/ui/toggle-group.js +105 -0
  672. package/dist/ui/toggle-group.js.map +1 -0
  673. package/dist/ui/toggle-group.mjs +70 -0
  674. package/dist/ui/toggle-group.mjs.map +1 -0
  675. package/dist/ui/toggle.d.ts +10 -0
  676. package/dist/ui/toggle.d.ts.map +1 -0
  677. package/dist/ui/toggle.js +70 -0
  678. package/dist/ui/toggle.js.map +1 -0
  679. package/{src/ui/toggle.tsx → dist/ui/toggle.mjs} +25 -26
  680. package/dist/ui/toggle.mjs.map +1 -0
  681. package/dist/ui/tooltip.d.ts +8 -0
  682. package/dist/ui/tooltip.d.ts.map +1 -0
  683. package/dist/ui/tooltip.js +84 -0
  684. package/dist/ui/tooltip.js.map +1 -0
  685. package/dist/ui/tooltip.mjs +57 -0
  686. package/dist/ui/tooltip.mjs.map +1 -0
  687. package/package.json +8 -1
  688. package/AGENTS.md +0 -1
  689. package/CHANGELOG.md +0 -107
  690. package/components.json +0 -33
  691. package/docs/standards/data-contracts.md +0 -81
  692. package/docs/standards/theming.md +0 -112
  693. package/scripts/fix-esm-extensions.mjs +0 -40
  694. package/src/blocks/application/app-shells/app-shell-1-sidebar.tsx +0 -198
  695. package/src/blocks/application/app-shells/app-shell-1.tsx +0 -196
  696. package/src/blocks/application/login-forms/login-page-1.tsx +0 -246
  697. package/src/blocks/application/login-forms/login-page-2.tsx +0 -207
  698. package/src/blocks/application/password-recovery/forgot-password-page-1-brand-mark.tsx +0 -38
  699. package/src/blocks/application/password-recovery/forgot-password-page-1.tsx +0 -320
  700. package/src/blocks/application/signup-forms/signup-page-1.tsx +0 -231
  701. package/src/blocks/application/verification/verify-1.tsx +0 -307
  702. package/src/blocks/application/verification/verify-confetti.tsx +0 -192
  703. package/src/blocks/e-commerce/category-filters/category-filter-1.tsx +0 -260
  704. package/src/blocks/e-commerce/category-filters/category-filter-2-filter-panel.tsx +0 -222
  705. package/src/blocks/e-commerce/category-filters/category-filter-2.test.tsx +0 -513
  706. package/src/blocks/e-commerce/category-filters/category-filter-2.tsx +0 -921
  707. package/src/blocks/e-commerce/category-filters/category-filter-4-chip-rail.tsx +0 -57
  708. package/src/blocks/e-commerce/category-filters/category-filter-4-drawer.tsx +0 -124
  709. package/src/blocks/e-commerce/category-filters/category-filter-4-fields.tsx +0 -170
  710. package/src/blocks/e-commerce/category-filters/category-filter-4-sidebar.tsx +0 -52
  711. package/src/blocks/e-commerce/category-filters/category-filter-4-sort-sheet.tsx +0 -57
  712. package/src/blocks/e-commerce/category-filters/category-filter-4-state.ts +0 -68
  713. package/src/blocks/e-commerce/category-filters/category-filter-4.tsx +0 -298
  714. package/src/blocks/e-commerce/checkout-forms/card-formatting.test.ts +0 -47
  715. package/src/blocks/e-commerce/checkout-forms/card-formatting.ts +0 -9
  716. package/src/blocks/e-commerce/checkout-forms/checkbox-check.tsx +0 -74
  717. package/src/blocks/e-commerce/checkout-forms/checkout-confirmation-fulfilment-progress.tsx +0 -195
  718. package/src/blocks/e-commerce/checkout-forms/checkout-confirmation.test.tsx +0 -136
  719. package/src/blocks/e-commerce/checkout-forms/checkout-confirmation.tsx +0 -329
  720. package/src/blocks/e-commerce/checkout-forms/checkout-field-feedback.tsx +0 -29
  721. package/src/blocks/e-commerce/checkout-forms/checkout-form-1-contact-step.tsx +0 -96
  722. package/src/blocks/e-commerce/checkout-forms/checkout-form-1-country-field.tsx +0 -51
  723. package/src/blocks/e-commerce/checkout-forms/checkout-form-1-order-summary.tsx +0 -252
  724. package/src/blocks/e-commerce/checkout-forms/checkout-form-1-payment-step.tsx +0 -188
  725. package/src/blocks/e-commerce/checkout-forms/checkout-form-1-progress.tsx +0 -36
  726. package/src/blocks/e-commerce/checkout-forms/checkout-form-1-shipping-step.tsx +0 -156
  727. package/src/blocks/e-commerce/checkout-forms/checkout-form-1.test.tsx +0 -216
  728. package/src/blocks/e-commerce/checkout-forms/checkout-form-1.tsx +0 -338
  729. package/src/blocks/e-commerce/checkout-forms/checkout-form-2-order-summary.tsx +0 -130
  730. package/src/blocks/e-commerce/checkout-forms/checkout-form-2-payment-card.tsx +0 -175
  731. package/src/blocks/e-commerce/checkout-forms/checkout-form-2-shipping-card.tsx +0 -190
  732. package/src/blocks/e-commerce/checkout-forms/checkout-form-2.tsx +0 -312
  733. package/src/blocks/e-commerce/checkout-forms/checkout-form-3-information-step.tsx +0 -91
  734. package/src/blocks/e-commerce/checkout-forms/checkout-form-3-order-summary.tsx +0 -110
  735. package/src/blocks/e-commerce/checkout-forms/checkout-form-3-payment-step.tsx +0 -137
  736. package/src/blocks/e-commerce/checkout-forms/checkout-form-3-progress.tsx +0 -68
  737. package/src/blocks/e-commerce/checkout-forms/checkout-form-3-review-step.tsx +0 -79
  738. package/src/blocks/e-commerce/checkout-forms/checkout-form-3-shipping-step.tsx +0 -172
  739. package/src/blocks/e-commerce/checkout-forms/checkout-form-3.tsx +0 -392
  740. package/src/blocks/e-commerce/checkout-forms/checkout-form-types.ts +0 -7
  741. package/src/blocks/e-commerce/navigation/back-to-top.test.tsx +0 -27
  742. package/src/blocks/e-commerce/navigation/back-to-top.tsx +0 -71
  743. package/src/blocks/e-commerce/navigation/breadcrumb.test.tsx +0 -174
  744. package/src/blocks/e-commerce/navigation/breadcrumb.tsx +0 -130
  745. package/src/blocks/e-commerce/navigation/category-icon.test.tsx +0 -54
  746. package/src/blocks/e-commerce/navigation/category-icon.tsx +0 -94
  747. package/src/blocks/e-commerce/navigation/mega-menu.test.tsx +0 -139
  748. package/src/blocks/e-commerce/navigation/mega-menu.tsx +0 -271
  749. package/src/blocks/e-commerce/navigation/mobile-bottom-nav.test.tsx +0 -74
  750. package/src/blocks/e-commerce/navigation/mobile-bottom-nav.tsx +0 -78
  751. package/src/blocks/e-commerce/navigation/mobile-category-drawer.test.tsx +0 -192
  752. package/src/blocks/e-commerce/navigation/mobile-category-drawer.tsx +0 -278
  753. package/src/blocks/e-commerce/navigation/skip-to-content.test.tsx +0 -35
  754. package/src/blocks/e-commerce/navigation/skip-to-content.tsx +0 -37
  755. package/src/blocks/e-commerce/order-history/order-history-1.tsx +0 -159
  756. package/src/blocks/e-commerce/order-history/order-history-2.tsx +0 -222
  757. package/src/blocks/e-commerce/product-categories/category-card-grid.test.tsx +0 -122
  758. package/src/blocks/e-commerce/product-categories/category-card.test.tsx +0 -68
  759. package/src/blocks/e-commerce/product-categories/category-card.tsx +0 -172
  760. package/src/blocks/e-commerce/product-categories/category-grid.test.tsx +0 -67
  761. package/src/blocks/e-commerce/product-categories/category-shared.tsx +0 -109
  762. package/src/blocks/e-commerce/product-categories/product-category-grid.tsx +0 -170
  763. package/src/blocks/e-commerce/product-categories/product-category.test.tsx +0 -266
  764. package/src/blocks/e-commerce/product-categories/product-category.tsx +0 -462
  765. package/src/blocks/e-commerce/product-list/product-card.test.tsx +0 -263
  766. package/src/blocks/e-commerce/product-list/product-card.tsx +0 -424
  767. package/src/blocks/e-commerce/product-list/product-grid.test.tsx +0 -162
  768. package/src/blocks/e-commerce/product-list/product-grid.tsx +0 -114
  769. package/src/blocks/e-commerce/product-list/product-showcase-1.test.tsx +0 -78
  770. package/src/blocks/e-commerce/product-list/product-showcase-1.tsx +0 -277
  771. package/src/blocks/e-commerce/product-overview/product-overview-gallery.tsx +0 -71
  772. package/src/blocks/e-commerce/product-overview/product-overview-lightbox-tab.tsx +0 -116
  773. package/src/blocks/e-commerce/product-overview/product-overview-reviews-tab.tsx +0 -105
  774. package/src/blocks/e-commerce/product-overview/product-overview-tabs.tsx +0 -70
  775. package/src/blocks/e-commerce/product-overview/product-overview.test.tsx +0 -283
  776. package/src/blocks/e-commerce/product-overview/product-overview.tsx +0 -1186
  777. package/src/blocks/e-commerce/product-overview/product-quick-view-card.tsx +0 -135
  778. package/src/blocks/e-commerce/product-overview/product-quick-view-dialog.tsx +0 -393
  779. package/src/blocks/e-commerce/product-overview/product-quick-view.tsx +0 -136
  780. package/src/blocks/e-commerce/reviews/review-rating-1-review-form.tsx +0 -133
  781. package/src/blocks/e-commerce/reviews/review-rating-1.tsx +0 -178
  782. package/src/blocks/e-commerce/reviews/review-rating-2.tsx +0 -245
  783. package/src/blocks/e-commerce/shopping-carts/shopping-cart.test.tsx +0 -399
  784. package/src/blocks/e-commerce/shopping-carts/shopping-cart.tsx +0 -628
  785. package/src/blocks/e-commerce/store-containers/store-container-1.tsx +0 -29
  786. package/src/blocks/e-commerce/storefront-hero/storefront-hero.test.tsx +0 -412
  787. package/src/blocks/e-commerce/storefront-hero/storefront-hero.tsx +0 -1283
  788. package/src/blocks/marketing/banners/avatar-group.tsx +0 -69
  789. package/src/blocks/marketing/banners/banner-1.tsx +0 -188
  790. package/src/blocks/marketing/cta/cta-section-1.tsx +0 -112
  791. package/src/blocks/marketing/faq/faq-block-1.tsx +0 -45
  792. package/src/blocks/marketing/features/feature.test.tsx +0 -153
  793. package/src/blocks/marketing/features/feature.tsx +0 -195
  794. package/src/blocks/marketing/footers/footer-section-1.test.tsx +0 -117
  795. package/src/blocks/marketing/footers/footer-section-1.tsx +0 -178
  796. package/src/blocks/marketing/footers/footer-section-3.tsx +0 -192
  797. package/src/blocks/marketing/footers/footer-section-4.tsx +0 -355
  798. package/src/blocks/marketing/hero-sections/avatar-group.tsx +0 -86
  799. package/src/blocks/marketing/hero-sections/hero-section-1.tsx +0 -135
  800. package/src/blocks/marketing/logo-clouds/logo-cloud-1-logo-icon.tsx +0 -52
  801. package/src/blocks/marketing/logo-clouds/logo-cloud-1.tsx +0 -56
  802. package/src/blocks/marketing/navbars/navbar-1.tsx +0 -267
  803. package/src/blocks/marketing/navbars/navbar-2.tsx +0 -351
  804. package/src/blocks/marketing/navbars/navbar-3.tsx +0 -303
  805. package/src/blocks/marketing/navbars/navbar-4-account-menu.test.tsx +0 -56
  806. package/src/blocks/marketing/navbars/navbar-4-account-menu.tsx +0 -134
  807. package/src/blocks/marketing/navbars/navbar-4-cart-sheet.test.tsx +0 -204
  808. package/src/blocks/marketing/navbars/navbar-4-cart-sheet.tsx +0 -371
  809. package/src/blocks/marketing/navbars/navbar-4-like-button.tsx +0 -177
  810. package/src/blocks/marketing/navbars/navbar-4-mobile-nav.tsx +0 -104
  811. package/src/blocks/marketing/navbars/navbar-4-product-grid.tsx +0 -219
  812. package/src/blocks/marketing/navbars/navbar-4-search-bar.tsx +0 -52
  813. package/src/blocks/marketing/navbars/navbar-4.test.tsx +0 -264
  814. package/src/blocks/marketing/navbars/navbar-4.tsx +0 -604
  815. package/src/blocks/marketing/pricing/pricing-section-1.tsx +0 -94
  816. package/src/blocks/marketing/statistics/statistic-1.tsx +0 -93
  817. package/src/blocks/marketing/testimonials/testimonial-1.tsx +0 -141
  818. package/src/blocks/marketing/testimonials/testimonial-2.tsx +0 -108
  819. package/src/blocks/shared/reaction-toggle.tsx +0 -145
  820. package/src/hooks/use-mobile.ts +0 -19
  821. package/src/index.ts +0 -285
  822. package/src/lib/cart.test.ts +0 -15
  823. package/src/lib/contracts-curated.test.ts +0 -225
  824. package/src/lib/contracts-server-boundary.test.ts +0 -52
  825. package/src/lib/contracts.test.ts +0 -173
  826. package/src/lib/contracts.ts +0 -795
  827. package/src/lib/money.test.ts +0 -64
  828. package/src/lib/money.ts +0 -65
  829. package/src/lib/types/menu.ts +0 -43
  830. package/src/lib/types.ts +0 -4
  831. package/src/lib/utils.ts +0 -10
  832. package/src/ui/accordion.tsx +0 -65
  833. package/src/ui/badge.tsx +0 -47
  834. package/src/ui/breadcrumb.tsx +0 -108
  835. package/src/ui/button-group.tsx +0 -83
  836. package/src/ui/button.tsx +0 -63
  837. package/src/ui/card.tsx +0 -91
  838. package/src/ui/carousel.tsx +0 -241
  839. package/src/ui/dialog.tsx +0 -158
  840. package/src/ui/drawer.tsx +0 -134
  841. package/src/ui/dropdown-menu.tsx +0 -256
  842. package/src/ui/empty.tsx +0 -103
  843. package/src/ui/input-otp.tsx +0 -76
  844. package/src/ui/label.tsx +0 -23
  845. package/src/ui/pagination.tsx +0 -127
  846. package/src/ui/progress.tsx +0 -30
  847. package/src/ui/radio-group.tsx +0 -44
  848. package/src/ui/select.tsx +0 -189
  849. package/src/ui/separator.tsx +0 -27
  850. package/src/ui/sheet.tsx +0 -142
  851. package/src/ui/sidebar.tsx +0 -726
  852. package/src/ui/skeleton.tsx +0 -13
  853. package/src/ui/table.tsx +0 -115
  854. package/src/ui/toggle-group.tsx +0 -83
  855. package/src/ui/tooltip.tsx +0 -56
  856. package/tsconfig.build.json +0 -12
  857. package/tsconfig.json +0 -20
  858. package/tsup.config.ts +0 -19
  859. package/vitest.config.ts +0 -17
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var order_history_exports = {};
20
+ __export(order_history_exports, {
21
+ OrderHistory: () => OrderHistory,
22
+ default: () => order_history_default
23
+ });
24
+ module.exports = __toCommonJS(order_history_exports);
25
+ var import_jsx_runtime = require("react/jsx-runtime");
26
+ var import_utils = require("../../../lib/utils.js");
27
+ var import_badge = require("../../../ui/badge.js");
28
+ var import_button = require("../../../ui/button.js");
29
+ var import_card = require("../../../ui/card.js");
30
+ var import_order_line = require("./order-line.js");
31
+ const defaultLabels = {
32
+ title: "Historial de pedidos",
33
+ description: "Consulta tus pedidos anteriores y su estado",
34
+ orderLabel: "Pedido {number}",
35
+ placedOnLabel: "Realizado el {date}",
36
+ quantityLabel: "Cantidad: {n}",
37
+ totalLabel: "Total del pedido",
38
+ viewOrderLabel: "Ver pedido",
39
+ trackOrderLabel: "Seguir pedido",
40
+ amountUnavailableLabel: "\u2014",
41
+ emptyLabel: "A\xFAn no tienes pedidos."
42
+ };
43
+ const interpolate = (template, values) => template.replace(
44
+ /\{(\w+)\}/g,
45
+ (match, key) => key in values ? String(values[key]) : match
46
+ );
47
+ function OrderHistory({
48
+ orders,
49
+ presentation = "cards",
50
+ labels,
51
+ locale,
52
+ formatMoney: formatMoneyProp,
53
+ onViewOrder,
54
+ onTrackOrder,
55
+ className
56
+ }) {
57
+ const copy = { ...defaultLabels, ...labels };
58
+ const format = (0, import_order_line.resolveOrderAmountFormatter)(locale, formatMoneyProp);
59
+ const amount = (money) => (0, import_order_line.formatOrderAmount)(money, format, copy.amountUnavailableLabel);
60
+ const renderStatus = (order) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_badge.Badge, { variant: order.status.tone ?? "secondary", "data-slot": "order-history-status", children: order.status.label });
61
+ const renderActions = (order) => {
62
+ const trackable = order.trackable === true && Boolean(onTrackOrder);
63
+ const viewable = Boolean(onViewOrder);
64
+ if (!trackable && !viewable) return null;
65
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex flex-wrap items-center gap-2", children: [
66
+ trackable ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
67
+ import_button.Button,
68
+ {
69
+ type: "button",
70
+ size: "sm",
71
+ className: "h-8 cursor-pointer px-3 text-xs",
72
+ "aria-label": `${copy.trackOrderLabel}: ${order.number}`,
73
+ onClick: () => onTrackOrder?.(order.id),
74
+ children: copy.trackOrderLabel
75
+ }
76
+ ) : null,
77
+ viewable ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
78
+ import_button.Button,
79
+ {
80
+ type: "button",
81
+ variant: "outline",
82
+ size: "sm",
83
+ className: "h-8 cursor-pointer px-3 text-xs",
84
+ "aria-label": `${copy.viewOrderLabel}: ${order.number}`,
85
+ onClick: () => onViewOrder?.(order.id),
86
+ children: copy.viewOrderLabel
87
+ }
88
+ ) : null
89
+ ] });
90
+ };
91
+ const renderLines = (order) => order.items.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("ul", { className: "grid gap-4 sm:grid-cols-2", "data-slot": "order-history-lines", children: order.items.map((line) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
92
+ import_order_line.OrderLine,
93
+ {
94
+ name: line.name,
95
+ ...line.image === void 0 ? {} : { image: line.image },
96
+ ...line.details === void 0 ? {} : { details: line.details },
97
+ quantity: line.quantity,
98
+ lineTotal: line.lineTotal,
99
+ quantityLabel: copy.quantityLabel,
100
+ amountUnavailableLabel: copy.amountUnavailableLabel,
101
+ ...format === void 0 ? {} : { formatMoney: format }
102
+ }
103
+ ) }, line.id)) }) : null;
104
+ const renderTotal = (order) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex w-full items-center justify-between gap-3", children: [
105
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "text-muted-foreground text-sm", children: copy.totalLabel }),
106
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "text-base font-semibold tabular-nums", "data-slot": "order-history-total", children: amount(order.total) })
107
+ ] });
108
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
109
+ "section",
110
+ {
111
+ "aria-label": copy.title,
112
+ className: (0, import_utils.cn)("mx-auto w-full max-w-7xl px-4 py-8 sm:px-6 lg:px-8", className),
113
+ "data-slot": "order-history",
114
+ children: [
115
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("header", { className: "flex flex-col gap-1", children: [
116
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h2", { className: "text-2xl font-semibold tracking-tight", children: copy.title }),
117
+ copy.description ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "text-muted-foreground text-sm", children: copy.description }) : null
118
+ ] }),
119
+ orders.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
120
+ "p",
121
+ {
122
+ role: "status",
123
+ className: "text-muted-foreground mt-6 text-sm",
124
+ "data-slot": "order-history-empty",
125
+ children: copy.emptyLabel
126
+ }
127
+ ) : presentation === "rows" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("ul", { className: "mt-6 flex flex-col divide-y rounded-lg border", children: orders.map((order) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("li", { className: "flex flex-col gap-3 p-4", "data-slot": "order-history-order", children: [
128
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex flex-wrap items-center justify-between gap-3", children: [
129
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex flex-wrap items-center gap-2", children: [
130
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h3", { className: "text-base font-semibold", children: interpolate(copy.orderLabel, { number: order.number }) }),
131
+ renderStatus(order),
132
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "text-muted-foreground text-sm", children: interpolate(copy.placedOnLabel, { date: order.date }) })
133
+ ] }),
134
+ renderActions(order)
135
+ ] }),
136
+ renderLines(order),
137
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "border-t pt-3", children: renderTotal(order) })
138
+ ] }, order.id)) }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "mt-6 grid gap-6", children: orders.map((order) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("article", { "data-slot": "order-history-order", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_card.Card, { children: [
139
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_card.CardHeader, { className: "flex flex-col gap-3 border-b bg-muted/40 md:flex-row md:items-center md:justify-between", children: [
140
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex flex-col gap-1.5", children: [
141
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex flex-wrap items-center gap-2", children: [
142
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h3", { className: "text-base font-semibold", children: interpolate(copy.orderLabel, { number: order.number }) }),
143
+ renderStatus(order)
144
+ ] }),
145
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "text-muted-foreground text-sm", children: interpolate(copy.placedOnLabel, { date: order.date }) })
146
+ ] }),
147
+ renderActions(order)
148
+ ] }),
149
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_card.CardContent, { className: "flex flex-col gap-4 pt-4", children: renderLines(order) }),
150
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_card.CardFooter, { className: "border-t", children: renderTotal(order) })
151
+ ] }) }, order.id)) })
152
+ ]
153
+ }
154
+ );
155
+ }
156
+ var order_history_default = OrderHistory;
157
+ // Annotate the CommonJS export names for ESM import in node:
158
+ 0 && (module.exports = {
159
+ OrderHistory
160
+ });
161
+ //# sourceMappingURL=order-history.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/blocks/e-commerce/order-history/order-history.tsx"],"sourcesContent":["import type { Money } from '@thorprovider/types'\nimport { cn } from '../../../lib/utils'\nimport { Badge } from '../../../ui/badge'\nimport { Button } from '../../../ui/button'\nimport { Card, CardContent, CardFooter, CardHeader } from '../../../ui/card'\nimport {\n OrderLine,\n formatOrderAmount,\n resolveOrderAmountFormatter,\n type OrderLineData,\n} from './order-line'\n\nexport type OrderHistoryPresentation = 'cards' | 'rows'\n\n/** Semantic badge tone. The host owns the mapping from its status model. */\nexport type OrderHistoryStatusTone = 'default' | 'secondary' | 'destructive' | 'outline'\n\n/** Order status as data: the label is rendered and the tone styles it. */\nexport interface OrderHistoryStatus {\n label: string\n tone?: OrderHistoryStatusTone\n}\n\n/**\n * Canonical order-history row: one order of the collection.\n *\n * `id` is the backend order identity — the React key and the value reported to\n * `onViewOrder`/`onTrackOrder`. `total` is the backend order total and is\n * rendered verbatim: the collection never sums its lines.\n */\nexport interface OrderHistoryOrder {\n /** Backend order identity. Used as the React key; never rendered. */\n id: string\n /** Human-readable order number, rendered through `orderLabel`. */\n number: string\n /** Placement date, already formatted by the host. */\n date: string\n status: OrderHistoryStatus\n /** Backend order total. Rendered verbatim; a malformed amount is unavailable. */\n total: Money\n items: OrderLineData[]\n /** When true (and `onTrackOrder` is supplied) the tracking action renders. */\n trackable?: boolean\n}\n\n/** Every user-facing string the collection renders. All are overridable. */\nexport interface OrderHistoryLabels {\n title: string\n description: string\n orderLabel: string\n placedOnLabel: string\n quantityLabel: string\n totalLabel: string\n viewOrderLabel: string\n trackOrderLabel: string\n amountUnavailableLabel: string\n emptyLabel: string\n}\n\nexport interface OrderHistoryProps {\n orders: OrderHistoryOrder[]\n /**\n * Bounded structure switch. `cards` (default) renders one card per order;\n * `rows` renders one bordered row per order. Both accept the same data and\n * report the same actions. Responsiveness is CSS only.\n */\n presentation?: OrderHistoryPresentation\n labels?: Partial<OrderHistoryLabels>\n /** Locale used to format amounts from their own currency code. */\n locale?: string\n /** Host amount formatter; wins over `locale`. */\n formatMoney?: (money: Money) => string\n /** Report the backend order id of the order whose detail should open. */\n onViewOrder?: (id: string) => void\n /** Report the backend order id of the order to track. */\n onTrackOrder?: (id: string) => void\n className?: string\n}\n\nconst defaultLabels: OrderHistoryLabels = {\n title: 'Historial de pedidos',\n description: 'Consulta tus pedidos anteriores y su estado',\n orderLabel: 'Pedido {number}',\n placedOnLabel: 'Realizado el {date}',\n quantityLabel: 'Cantidad: {n}',\n totalLabel: 'Total del pedido',\n viewOrderLabel: 'Ver pedido',\n trackOrderLabel: 'Seguir pedido',\n amountUnavailableLabel: '—',\n emptyLabel: 'Aún no tienes pedidos.',\n}\n\nconst interpolate = (template: string, values: Record<string, string | number>) =>\n template.replace(/\\{(\\w+)\\}/g, (match, key: string) =>\n key in values ? String(values[key]) : match,\n )\n\n/**\n * The canonical order-history collection section.\n *\n * It renders exactly the orders it is given: pagination, ordering, detail,\n * loading/error states, and the money values all belong to the host. The block\n * holds no selection state, never counts the collection, never compares a\n * status label to a literal, and never measures the viewport.\n */\nexport function OrderHistory({\n orders,\n presentation = 'cards',\n labels,\n locale,\n formatMoney: formatMoneyProp,\n onViewOrder,\n onTrackOrder,\n className,\n}: OrderHistoryProps) {\n const copy: OrderHistoryLabels = { ...defaultLabels, ...labels }\n const format = resolveOrderAmountFormatter(locale, formatMoneyProp)\n const amount = (money: Money | null | undefined) =>\n formatOrderAmount(money, format, copy.amountUnavailableLabel)\n\n const renderStatus = (order: OrderHistoryOrder) => (\n <Badge variant={order.status.tone ?? 'secondary'} data-slot='order-history-status'>\n {order.status.label}\n </Badge>\n )\n\n const renderActions = (order: OrderHistoryOrder) => {\n const trackable = order.trackable === true && Boolean(onTrackOrder)\n const viewable = Boolean(onViewOrder)\n if (!trackable && !viewable) return null\n return (\n <div className='flex flex-wrap items-center gap-2'>\n {trackable ? (\n <Button\n type='button'\n size='sm'\n className='h-8 cursor-pointer px-3 text-xs'\n aria-label={`${copy.trackOrderLabel}: ${order.number}`}\n onClick={() => onTrackOrder?.(order.id)}\n >\n {copy.trackOrderLabel}\n </Button>\n ) : null}\n {viewable ? (\n <Button\n type='button'\n variant='outline'\n size='sm'\n className='h-8 cursor-pointer px-3 text-xs'\n aria-label={`${copy.viewOrderLabel}: ${order.number}`}\n onClick={() => onViewOrder?.(order.id)}\n >\n {copy.viewOrderLabel}\n </Button>\n ) : null}\n </div>\n )\n }\n\n const renderLines = (order: OrderHistoryOrder) =>\n order.items.length > 0 ? (\n <ul className='grid gap-4 sm:grid-cols-2' data-slot='order-history-lines'>\n {order.items.map((line) => (\n <li key={line.id}>\n <OrderLine\n name={line.name}\n {...(line.image === undefined ? {} : { image: line.image })}\n {...(line.details === undefined ? {} : { details: line.details })}\n quantity={line.quantity}\n lineTotal={line.lineTotal}\n quantityLabel={copy.quantityLabel}\n amountUnavailableLabel={copy.amountUnavailableLabel}\n {...(format === undefined ? {} : { formatMoney: format })}\n />\n </li>\n ))}\n </ul>\n ) : null\n\n const renderTotal = (order: OrderHistoryOrder) => (\n <div className='flex w-full items-center justify-between gap-3'>\n <span className='text-muted-foreground text-sm'>{copy.totalLabel}</span>\n <span className='text-base font-semibold tabular-nums' data-slot='order-history-total'>\n {amount(order.total)}\n </span>\n </div>\n )\n\n return (\n <section\n aria-label={copy.title}\n className={cn('mx-auto w-full max-w-7xl px-4 py-8 sm:px-6 lg:px-8', className)}\n data-slot='order-history'\n >\n <header className='flex flex-col gap-1'>\n <h2 className='text-2xl font-semibold tracking-tight'>{copy.title}</h2>\n {copy.description ? (\n <p className='text-muted-foreground text-sm'>{copy.description}</p>\n ) : null}\n </header>\n\n {orders.length === 0 ? (\n <p\n role='status'\n className='text-muted-foreground mt-6 text-sm'\n data-slot='order-history-empty'\n >\n {copy.emptyLabel}\n </p>\n ) : presentation === 'rows' ? (\n <ul className='mt-6 flex flex-col divide-y rounded-lg border'>\n {orders.map((order) => (\n <li key={order.id} className='flex flex-col gap-3 p-4' data-slot='order-history-order'>\n <div className='flex flex-wrap items-center justify-between gap-3'>\n <div className='flex flex-wrap items-center gap-2'>\n <h3 className='text-base font-semibold'>\n {interpolate(copy.orderLabel, { number: order.number })}\n </h3>\n {renderStatus(order)}\n <span className='text-muted-foreground text-sm'>\n {interpolate(copy.placedOnLabel, { date: order.date })}\n </span>\n </div>\n {renderActions(order)}\n </div>\n {renderLines(order)}\n <div className='border-t pt-3'>{renderTotal(order)}</div>\n </li>\n ))}\n </ul>\n ) : (\n <div className='mt-6 grid gap-6'>\n {orders.map((order) => (\n <article key={order.id} data-slot='order-history-order'>\n <Card>\n <CardHeader className='flex flex-col gap-3 border-b bg-muted/40 md:flex-row md:items-center md:justify-between'>\n <div className='flex flex-col gap-1.5'>\n <div className='flex flex-wrap items-center gap-2'>\n <h3 className='text-base font-semibold'>\n {interpolate(copy.orderLabel, { number: order.number })}\n </h3>\n {renderStatus(order)}\n </div>\n <p className='text-muted-foreground text-sm'>\n {interpolate(copy.placedOnLabel, { date: order.date })}\n </p>\n </div>\n {renderActions(order)}\n </CardHeader>\n <CardContent className='flex flex-col gap-4 pt-4'>{renderLines(order)}</CardContent>\n <CardFooter className='border-t'>{renderTotal(order)}</CardFooter>\n </Card>\n </article>\n ))}\n </div>\n )}\n </section>\n )\n}\n\nexport default OrderHistory\n"],"mappings":"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","names":[]}
@@ -0,0 +1,141 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { cn } from "../../../lib/utils.mjs";
3
+ import { Badge } from "../../../ui/badge.mjs";
4
+ import { Button } from "../../../ui/button.mjs";
5
+ import { Card, CardContent, CardFooter, CardHeader } from "../../../ui/card.mjs";
6
+ import {
7
+ OrderLine,
8
+ formatOrderAmount,
9
+ resolveOrderAmountFormatter
10
+ } from "./order-line.mjs";
11
+ const defaultLabels = {
12
+ title: "Historial de pedidos",
13
+ description: "Consulta tus pedidos anteriores y su estado",
14
+ orderLabel: "Pedido {number}",
15
+ placedOnLabel: "Realizado el {date}",
16
+ quantityLabel: "Cantidad: {n}",
17
+ totalLabel: "Total del pedido",
18
+ viewOrderLabel: "Ver pedido",
19
+ trackOrderLabel: "Seguir pedido",
20
+ amountUnavailableLabel: "\u2014",
21
+ emptyLabel: "A\xFAn no tienes pedidos."
22
+ };
23
+ const interpolate = (template, values) => template.replace(
24
+ /\{(\w+)\}/g,
25
+ (match, key) => key in values ? String(values[key]) : match
26
+ );
27
+ function OrderHistory({
28
+ orders,
29
+ presentation = "cards",
30
+ labels,
31
+ locale,
32
+ formatMoney: formatMoneyProp,
33
+ onViewOrder,
34
+ onTrackOrder,
35
+ className
36
+ }) {
37
+ const copy = { ...defaultLabels, ...labels };
38
+ const format = resolveOrderAmountFormatter(locale, formatMoneyProp);
39
+ const amount = (money) => formatOrderAmount(money, format, copy.amountUnavailableLabel);
40
+ const renderStatus = (order) => /* @__PURE__ */ jsx(Badge, { variant: order.status.tone ?? "secondary", "data-slot": "order-history-status", children: order.status.label });
41
+ const renderActions = (order) => {
42
+ const trackable = order.trackable === true && Boolean(onTrackOrder);
43
+ const viewable = Boolean(onViewOrder);
44
+ if (!trackable && !viewable) return null;
45
+ return /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [
46
+ trackable ? /* @__PURE__ */ jsx(
47
+ Button,
48
+ {
49
+ type: "button",
50
+ size: "sm",
51
+ className: "h-8 cursor-pointer px-3 text-xs",
52
+ "aria-label": `${copy.trackOrderLabel}: ${order.number}`,
53
+ onClick: () => onTrackOrder?.(order.id),
54
+ children: copy.trackOrderLabel
55
+ }
56
+ ) : null,
57
+ viewable ? /* @__PURE__ */ jsx(
58
+ Button,
59
+ {
60
+ type: "button",
61
+ variant: "outline",
62
+ size: "sm",
63
+ className: "h-8 cursor-pointer px-3 text-xs",
64
+ "aria-label": `${copy.viewOrderLabel}: ${order.number}`,
65
+ onClick: () => onViewOrder?.(order.id),
66
+ children: copy.viewOrderLabel
67
+ }
68
+ ) : null
69
+ ] });
70
+ };
71
+ const renderLines = (order) => order.items.length > 0 ? /* @__PURE__ */ jsx("ul", { className: "grid gap-4 sm:grid-cols-2", "data-slot": "order-history-lines", children: order.items.map((line) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
72
+ OrderLine,
73
+ {
74
+ name: line.name,
75
+ ...line.image === void 0 ? {} : { image: line.image },
76
+ ...line.details === void 0 ? {} : { details: line.details },
77
+ quantity: line.quantity,
78
+ lineTotal: line.lineTotal,
79
+ quantityLabel: copy.quantityLabel,
80
+ amountUnavailableLabel: copy.amountUnavailableLabel,
81
+ ...format === void 0 ? {} : { formatMoney: format }
82
+ }
83
+ ) }, line.id)) }) : null;
84
+ const renderTotal = (order) => /* @__PURE__ */ jsxs("div", { className: "flex w-full items-center justify-between gap-3", children: [
85
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground text-sm", children: copy.totalLabel }),
86
+ /* @__PURE__ */ jsx("span", { className: "text-base font-semibold tabular-nums", "data-slot": "order-history-total", children: amount(order.total) })
87
+ ] });
88
+ return /* @__PURE__ */ jsxs(
89
+ "section",
90
+ {
91
+ "aria-label": copy.title,
92
+ className: cn("mx-auto w-full max-w-7xl px-4 py-8 sm:px-6 lg:px-8", className),
93
+ "data-slot": "order-history",
94
+ children: [
95
+ /* @__PURE__ */ jsxs("header", { className: "flex flex-col gap-1", children: [
96
+ /* @__PURE__ */ jsx("h2", { className: "text-2xl font-semibold tracking-tight", children: copy.title }),
97
+ copy.description ? /* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-sm", children: copy.description }) : null
98
+ ] }),
99
+ orders.length === 0 ? /* @__PURE__ */ jsx(
100
+ "p",
101
+ {
102
+ role: "status",
103
+ className: "text-muted-foreground mt-6 text-sm",
104
+ "data-slot": "order-history-empty",
105
+ children: copy.emptyLabel
106
+ }
107
+ ) : presentation === "rows" ? /* @__PURE__ */ jsx("ul", { className: "mt-6 flex flex-col divide-y rounded-lg border", children: orders.map((order) => /* @__PURE__ */ jsxs("li", { className: "flex flex-col gap-3 p-4", "data-slot": "order-history-order", children: [
108
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center justify-between gap-3", children: [
109
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [
110
+ /* @__PURE__ */ jsx("h3", { className: "text-base font-semibold", children: interpolate(copy.orderLabel, { number: order.number }) }),
111
+ renderStatus(order),
112
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground text-sm", children: interpolate(copy.placedOnLabel, { date: order.date }) })
113
+ ] }),
114
+ renderActions(order)
115
+ ] }),
116
+ renderLines(order),
117
+ /* @__PURE__ */ jsx("div", { className: "border-t pt-3", children: renderTotal(order) })
118
+ ] }, order.id)) }) : /* @__PURE__ */ jsx("div", { className: "mt-6 grid gap-6", children: orders.map((order) => /* @__PURE__ */ jsx("article", { "data-slot": "order-history-order", children: /* @__PURE__ */ jsxs(Card, { children: [
119
+ /* @__PURE__ */ jsxs(CardHeader, { className: "flex flex-col gap-3 border-b bg-muted/40 md:flex-row md:items-center md:justify-between", children: [
120
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1.5", children: [
121
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [
122
+ /* @__PURE__ */ jsx("h3", { className: "text-base font-semibold", children: interpolate(copy.orderLabel, { number: order.number }) }),
123
+ renderStatus(order)
124
+ ] }),
125
+ /* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-sm", children: interpolate(copy.placedOnLabel, { date: order.date }) })
126
+ ] }),
127
+ renderActions(order)
128
+ ] }),
129
+ /* @__PURE__ */ jsx(CardContent, { className: "flex flex-col gap-4 pt-4", children: renderLines(order) }),
130
+ /* @__PURE__ */ jsx(CardFooter, { className: "border-t", children: renderTotal(order) })
131
+ ] }) }, order.id)) })
132
+ ]
133
+ }
134
+ );
135
+ }
136
+ var order_history_default = OrderHistory;
137
+ export {
138
+ OrderHistory,
139
+ order_history_default as default
140
+ };
141
+ //# sourceMappingURL=order-history.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/blocks/e-commerce/order-history/order-history.tsx"],"sourcesContent":["import type { Money } from '@thorprovider/types'\nimport { cn } from '../../../lib/utils'\nimport { Badge } from '../../../ui/badge'\nimport { Button } from '../../../ui/button'\nimport { Card, CardContent, CardFooter, CardHeader } from '../../../ui/card'\nimport {\n OrderLine,\n formatOrderAmount,\n resolveOrderAmountFormatter,\n type OrderLineData,\n} from './order-line'\n\nexport type OrderHistoryPresentation = 'cards' | 'rows'\n\n/** Semantic badge tone. The host owns the mapping from its status model. */\nexport type OrderHistoryStatusTone = 'default' | 'secondary' | 'destructive' | 'outline'\n\n/** Order status as data: the label is rendered and the tone styles it. */\nexport interface OrderHistoryStatus {\n label: string\n tone?: OrderHistoryStatusTone\n}\n\n/**\n * Canonical order-history row: one order of the collection.\n *\n * `id` is the backend order identity — the React key and the value reported to\n * `onViewOrder`/`onTrackOrder`. `total` is the backend order total and is\n * rendered verbatim: the collection never sums its lines.\n */\nexport interface OrderHistoryOrder {\n /** Backend order identity. Used as the React key; never rendered. */\n id: string\n /** Human-readable order number, rendered through `orderLabel`. */\n number: string\n /** Placement date, already formatted by the host. */\n date: string\n status: OrderHistoryStatus\n /** Backend order total. Rendered verbatim; a malformed amount is unavailable. */\n total: Money\n items: OrderLineData[]\n /** When true (and `onTrackOrder` is supplied) the tracking action renders. */\n trackable?: boolean\n}\n\n/** Every user-facing string the collection renders. All are overridable. */\nexport interface OrderHistoryLabels {\n title: string\n description: string\n orderLabel: string\n placedOnLabel: string\n quantityLabel: string\n totalLabel: string\n viewOrderLabel: string\n trackOrderLabel: string\n amountUnavailableLabel: string\n emptyLabel: string\n}\n\nexport interface OrderHistoryProps {\n orders: OrderHistoryOrder[]\n /**\n * Bounded structure switch. `cards` (default) renders one card per order;\n * `rows` renders one bordered row per order. Both accept the same data and\n * report the same actions. Responsiveness is CSS only.\n */\n presentation?: OrderHistoryPresentation\n labels?: Partial<OrderHistoryLabels>\n /** Locale used to format amounts from their own currency code. */\n locale?: string\n /** Host amount formatter; wins over `locale`. */\n formatMoney?: (money: Money) => string\n /** Report the backend order id of the order whose detail should open. */\n onViewOrder?: (id: string) => void\n /** Report the backend order id of the order to track. */\n onTrackOrder?: (id: string) => void\n className?: string\n}\n\nconst defaultLabels: OrderHistoryLabels = {\n title: 'Historial de pedidos',\n description: 'Consulta tus pedidos anteriores y su estado',\n orderLabel: 'Pedido {number}',\n placedOnLabel: 'Realizado el {date}',\n quantityLabel: 'Cantidad: {n}',\n totalLabel: 'Total del pedido',\n viewOrderLabel: 'Ver pedido',\n trackOrderLabel: 'Seguir pedido',\n amountUnavailableLabel: '—',\n emptyLabel: 'Aún no tienes pedidos.',\n}\n\nconst interpolate = (template: string, values: Record<string, string | number>) =>\n template.replace(/\\{(\\w+)\\}/g, (match, key: string) =>\n key in values ? String(values[key]) : match,\n )\n\n/**\n * The canonical order-history collection section.\n *\n * It renders exactly the orders it is given: pagination, ordering, detail,\n * loading/error states, and the money values all belong to the host. The block\n * holds no selection state, never counts the collection, never compares a\n * status label to a literal, and never measures the viewport.\n */\nexport function OrderHistory({\n orders,\n presentation = 'cards',\n labels,\n locale,\n formatMoney: formatMoneyProp,\n onViewOrder,\n onTrackOrder,\n className,\n}: OrderHistoryProps) {\n const copy: OrderHistoryLabels = { ...defaultLabels, ...labels }\n const format = resolveOrderAmountFormatter(locale, formatMoneyProp)\n const amount = (money: Money | null | undefined) =>\n formatOrderAmount(money, format, copy.amountUnavailableLabel)\n\n const renderStatus = (order: OrderHistoryOrder) => (\n <Badge variant={order.status.tone ?? 'secondary'} data-slot='order-history-status'>\n {order.status.label}\n </Badge>\n )\n\n const renderActions = (order: OrderHistoryOrder) => {\n const trackable = order.trackable === true && Boolean(onTrackOrder)\n const viewable = Boolean(onViewOrder)\n if (!trackable && !viewable) return null\n return (\n <div className='flex flex-wrap items-center gap-2'>\n {trackable ? (\n <Button\n type='button'\n size='sm'\n className='h-8 cursor-pointer px-3 text-xs'\n aria-label={`${copy.trackOrderLabel}: ${order.number}`}\n onClick={() => onTrackOrder?.(order.id)}\n >\n {copy.trackOrderLabel}\n </Button>\n ) : null}\n {viewable ? (\n <Button\n type='button'\n variant='outline'\n size='sm'\n className='h-8 cursor-pointer px-3 text-xs'\n aria-label={`${copy.viewOrderLabel}: ${order.number}`}\n onClick={() => onViewOrder?.(order.id)}\n >\n {copy.viewOrderLabel}\n </Button>\n ) : null}\n </div>\n )\n }\n\n const renderLines = (order: OrderHistoryOrder) =>\n order.items.length > 0 ? (\n <ul className='grid gap-4 sm:grid-cols-2' data-slot='order-history-lines'>\n {order.items.map((line) => (\n <li key={line.id}>\n <OrderLine\n name={line.name}\n {...(line.image === undefined ? {} : { image: line.image })}\n {...(line.details === undefined ? {} : { details: line.details })}\n quantity={line.quantity}\n lineTotal={line.lineTotal}\n quantityLabel={copy.quantityLabel}\n amountUnavailableLabel={copy.amountUnavailableLabel}\n {...(format === undefined ? {} : { formatMoney: format })}\n />\n </li>\n ))}\n </ul>\n ) : null\n\n const renderTotal = (order: OrderHistoryOrder) => (\n <div className='flex w-full items-center justify-between gap-3'>\n <span className='text-muted-foreground text-sm'>{copy.totalLabel}</span>\n <span className='text-base font-semibold tabular-nums' data-slot='order-history-total'>\n {amount(order.total)}\n </span>\n </div>\n )\n\n return (\n <section\n aria-label={copy.title}\n className={cn('mx-auto w-full max-w-7xl px-4 py-8 sm:px-6 lg:px-8', className)}\n data-slot='order-history'\n >\n <header className='flex flex-col gap-1'>\n <h2 className='text-2xl font-semibold tracking-tight'>{copy.title}</h2>\n {copy.description ? (\n <p className='text-muted-foreground text-sm'>{copy.description}</p>\n ) : null}\n </header>\n\n {orders.length === 0 ? (\n <p\n role='status'\n className='text-muted-foreground mt-6 text-sm'\n data-slot='order-history-empty'\n >\n {copy.emptyLabel}\n </p>\n ) : presentation === 'rows' ? (\n <ul className='mt-6 flex flex-col divide-y rounded-lg border'>\n {orders.map((order) => (\n <li key={order.id} className='flex flex-col gap-3 p-4' data-slot='order-history-order'>\n <div className='flex flex-wrap items-center justify-between gap-3'>\n <div className='flex flex-wrap items-center gap-2'>\n <h3 className='text-base font-semibold'>\n {interpolate(copy.orderLabel, { number: order.number })}\n </h3>\n {renderStatus(order)}\n <span className='text-muted-foreground text-sm'>\n {interpolate(copy.placedOnLabel, { date: order.date })}\n </span>\n </div>\n {renderActions(order)}\n </div>\n {renderLines(order)}\n <div className='border-t pt-3'>{renderTotal(order)}</div>\n </li>\n ))}\n </ul>\n ) : (\n <div className='mt-6 grid gap-6'>\n {orders.map((order) => (\n <article key={order.id} data-slot='order-history-order'>\n <Card>\n <CardHeader className='flex flex-col gap-3 border-b bg-muted/40 md:flex-row md:items-center md:justify-between'>\n <div className='flex flex-col gap-1.5'>\n <div className='flex flex-wrap items-center gap-2'>\n <h3 className='text-base font-semibold'>\n {interpolate(copy.orderLabel, { number: order.number })}\n </h3>\n {renderStatus(order)}\n </div>\n <p className='text-muted-foreground text-sm'>\n {interpolate(copy.placedOnLabel, { date: order.date })}\n </p>\n </div>\n {renderActions(order)}\n </CardHeader>\n <CardContent className='flex flex-col gap-4 pt-4'>{renderLines(order)}</CardContent>\n <CardFooter className='border-t'>{renderTotal(order)}</CardFooter>\n </Card>\n </article>\n ))}\n </div>\n )}\n </section>\n )\n}\n\nexport default OrderHistory\n"],"mappings":"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","names":[]}
@@ -0,0 +1,50 @@
1
+ import type { Money } from '@thorprovider/types';
2
+ /**
3
+ * Canonical order-line item cell data.
4
+ *
5
+ * One purchased line of one order. `id` is the backend line identity: it is the
6
+ * React key and is never rendered. `lineTotal` is the backend-authoritative
7
+ * amount and is rendered verbatim — the cell never multiplies a unit price by
8
+ * the quantity, sums lines, or formats with a hardcoded currency.
9
+ */
10
+ export interface OrderLineData {
11
+ /** Backend line identity. Used as the React key; never rendered. */
12
+ id: string;
13
+ name: string;
14
+ /** Optional; an absent or empty image renders a neutral placeholder, never `src=""`. */
15
+ image?: string;
16
+ /** Optional secondary line (for example the variant description). */
17
+ details?: string;
18
+ quantity: number;
19
+ /** Backend line total. Rendered verbatim; a malformed amount is unavailable. */
20
+ lineTotal: Money;
21
+ }
22
+ export interface OrderLineProps extends Omit<OrderLineData, 'id'> {
23
+ /** Quantity template with a `{n}` placeholder. */
24
+ quantityLabel?: string;
25
+ /** Shown when `lineTotal` is absent or malformed (never a zero amount). */
26
+ amountUnavailableLabel?: string;
27
+ /** Host amount formatter (locale, currency). Defaults to `lineTotal.currencyCode`. */
28
+ formatMoney?: (money: Money) => string;
29
+ className?: string;
30
+ }
31
+ /**
32
+ * Render one `Money` through the canonical helper, or the unavailable label.
33
+ * `isAvailableMoney` keeps a malformed amount away from `Intl.NumberFormat`.
34
+ */
35
+ export declare function formatOrderAmount(money: Money | null | undefined, format: ((money: Money) => string) | undefined, unavailableLabel: string): string;
36
+ /**
37
+ * Resolve the amount formatter: a host formatter wins, then the supplied
38
+ * locale, then the canonical default. Every path goes through
39
+ * `formatMoney`, so no currency symbol is ever hardcoded here.
40
+ */
41
+ export declare function resolveOrderAmountFormatter(locale: string | undefined, formatter: ((money: Money) => string) | undefined): ((money: Money) => string) | undefined;
42
+ /**
43
+ * The canonical order-line item cell: one purchased line of an order.
44
+ *
45
+ * It is an item cell, not a listing — it takes one line, renders one cell, and
46
+ * owns no collection state.
47
+ */
48
+ export declare function OrderLine({ name, image, details, quantity, lineTotal, quantityLabel, amountUnavailableLabel, formatMoney: formatMoneyProp, className, }: OrderLineProps): import("react").JSX.Element;
49
+ export default OrderLine;
50
+ //# sourceMappingURL=order-line.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-line.d.ts","sourceRoot":"","sources":["../../../../src/blocks/e-commerce/order-history/order-line.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAIhD;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,oEAAoE;IACpE,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,wFAAwF;IACxF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,gFAAgF;IAChF,SAAS,EAAE,KAAK,CAAA;CACjB;AAED,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC;IAC/D,kDAAkD;IAClD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,2EAA2E;IAC3E,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,sFAAsF;IACtF,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAA;IACtC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAOD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,EAC/B,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC,GAAG,SAAS,EAC9C,gBAAgB,EAAE,MAAM,GACvB,MAAM,CAGR;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC,GAAG,SAAS,GAChD,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC,GAAG,SAAS,CAQxC;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,KAAK,EACL,OAAO,EACP,QAAQ,EACR,SAAS,EACT,aAA+B,EAC/B,sBAA4B,EAC5B,WAAW,EAAE,eAAe,EAC5B,SAAS,GACV,EAAE,cAAc,+BA8BhB;AAED,eAAe,SAAS,CAAA"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var order_line_exports = {};
20
+ __export(order_line_exports, {
21
+ OrderLine: () => OrderLine,
22
+ default: () => order_line_default,
23
+ formatOrderAmount: () => formatOrderAmount,
24
+ resolveOrderAmountFormatter: () => resolveOrderAmountFormatter
25
+ });
26
+ module.exports = __toCommonJS(order_line_exports);
27
+ var import_jsx_runtime = require("react/jsx-runtime");
28
+ var import_utils = require("../../../lib/utils.js");
29
+ var import_money = require("../../../lib/money.js");
30
+ const interpolate = (template, values) => template.replace(
31
+ /\{(\w+)\}/g,
32
+ (match, key) => key in values ? String(values[key]) : match
33
+ );
34
+ function formatOrderAmount(money, format, unavailableLabel) {
35
+ if (!(0, import_money.isAvailableMoney)(money)) return unavailableLabel;
36
+ return (0, import_money.formatMoney)(money, format) ?? unavailableLabel;
37
+ }
38
+ function resolveOrderAmountFormatter(locale, formatter) {
39
+ if (formatter) return formatter;
40
+ if (!locale) return void 0;
41
+ return (money) => new Intl.NumberFormat(locale, {
42
+ style: "currency",
43
+ currency: money.currencyCode
44
+ }).format(Number(money.amount));
45
+ }
46
+ function OrderLine({
47
+ name,
48
+ image,
49
+ details,
50
+ quantity,
51
+ lineTotal,
52
+ quantityLabel = "Cantidad: {n}",
53
+ amountUnavailableLabel = "\u2014",
54
+ formatMoney: formatMoneyProp,
55
+ className
56
+ }) {
57
+ const imageSrc = typeof image === "string" && image.trim() !== "" ? image : void 0;
58
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: (0, import_utils.cn)("flex items-start gap-3", className), "data-slot": "order-line", children: [
59
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "bg-muted size-14 shrink-0 overflow-hidden rounded-md", children: imageSrc ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("img", { src: imageSrc, alt: "", className: "size-full object-contain" }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { "aria-hidden": "true", className: "size-full", "data-slot": "order-line-image-placeholder" }) }),
60
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [
61
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "truncate text-sm font-medium", "data-slot": "order-line-name", children: name }),
62
+ details ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "text-muted-foreground truncate text-xs", "data-slot": "order-line-details", children: details }) : null,
63
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "text-muted-foreground text-xs", "data-slot": "order-line-quantity", children: interpolate(quantityLabel, { n: quantity }) })
64
+ ] }),
65
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "shrink-0 text-sm font-medium tabular-nums", "data-slot": "order-line-amount", children: formatOrderAmount(lineTotal, formatMoneyProp, amountUnavailableLabel) })
66
+ ] });
67
+ }
68
+ var order_line_default = OrderLine;
69
+ // Annotate the CommonJS export names for ESM import in node:
70
+ 0 && (module.exports = {
71
+ OrderLine,
72
+ formatOrderAmount,
73
+ resolveOrderAmountFormatter
74
+ });
75
+ //# sourceMappingURL=order-line.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/blocks/e-commerce/order-history/order-line.tsx"],"sourcesContent":["import type { Money } from '@thorprovider/types'\nimport { cn } from '../../../lib/utils'\nimport { formatMoney, isAvailableMoney } from '../../../lib/money'\n\n/**\n * Canonical order-line item cell data.\n *\n * One purchased line of one order. `id` is the backend line identity: it is the\n * React key and is never rendered. `lineTotal` is the backend-authoritative\n * amount and is rendered verbatim — the cell never multiplies a unit price by\n * the quantity, sums lines, or formats with a hardcoded currency.\n */\nexport interface OrderLineData {\n /** Backend line identity. Used as the React key; never rendered. */\n id: string\n name: string\n /** Optional; an absent or empty image renders a neutral placeholder, never `src=\"\"`. */\n image?: string\n /** Optional secondary line (for example the variant description). */\n details?: string\n quantity: number\n /** Backend line total. Rendered verbatim; a malformed amount is unavailable. */\n lineTotal: Money\n}\n\nexport interface OrderLineProps extends Omit<OrderLineData, 'id'> {\n /** Quantity template with a `{n}` placeholder. */\n quantityLabel?: string\n /** Shown when `lineTotal` is absent or malformed (never a zero amount). */\n amountUnavailableLabel?: string\n /** Host amount formatter (locale, currency). Defaults to `lineTotal.currencyCode`. */\n formatMoney?: (money: Money) => string\n className?: string\n}\n\nconst interpolate = (template: string, values: Record<string, string | number>) =>\n template.replace(/\\{(\\w+)\\}/g, (match, key: string) =>\n key in values ? String(values[key]) : match,\n )\n\n/**\n * Render one `Money` through the canonical helper, or the unavailable label.\n * `isAvailableMoney` keeps a malformed amount away from `Intl.NumberFormat`.\n */\nexport function formatOrderAmount(\n money: Money | null | undefined,\n format: ((money: Money) => string) | undefined,\n unavailableLabel: string,\n): string {\n if (!isAvailableMoney(money)) return unavailableLabel\n return formatMoney(money, format) ?? unavailableLabel\n}\n\n/**\n * Resolve the amount formatter: a host formatter wins, then the supplied\n * locale, then the canonical default. Every path goes through\n * `formatMoney`, so no currency symbol is ever hardcoded here.\n */\nexport function resolveOrderAmountFormatter(\n locale: string | undefined,\n formatter: ((money: Money) => string) | undefined,\n): ((money: Money) => string) | undefined {\n if (formatter) return formatter\n if (!locale) return undefined\n return (money) =>\n new Intl.NumberFormat(locale, {\n style: 'currency',\n currency: money.currencyCode,\n }).format(Number(money.amount))\n}\n\n/**\n * The canonical order-line item cell: one purchased line of an order.\n *\n * It is an item cell, not a listing — it takes one line, renders one cell, and\n * owns no collection state.\n */\nexport function OrderLine({\n name,\n image,\n details,\n quantity,\n lineTotal,\n quantityLabel = 'Cantidad: {n}',\n amountUnavailableLabel = '—',\n formatMoney: formatMoneyProp,\n className,\n}: OrderLineProps) {\n const imageSrc = typeof image === 'string' && image.trim() !== '' ? image : undefined\n\n return (\n <div className={cn('flex items-start gap-3', className)} data-slot='order-line'>\n <div className='bg-muted size-14 shrink-0 overflow-hidden rounded-md'>\n {imageSrc ? (\n <img src={imageSrc} alt='' className='size-full object-contain' />\n ) : (\n <div aria-hidden='true' className='size-full' data-slot='order-line-image-placeholder' />\n )}\n </div>\n <div className='flex min-w-0 flex-1 flex-col gap-1'>\n <p className='truncate text-sm font-medium' data-slot='order-line-name'>\n {name}\n </p>\n {details ? (\n <p className='text-muted-foreground truncate text-xs' data-slot='order-line-details'>\n {details}\n </p>\n ) : null}\n <p className='text-muted-foreground text-xs' data-slot='order-line-quantity'>\n {interpolate(quantityLabel, { n: quantity })}\n </p>\n </div>\n <p className='shrink-0 text-sm font-medium tabular-nums' data-slot='order-line-amount'>\n {formatOrderAmount(lineTotal, formatMoneyProp, amountUnavailableLabel)}\n </p>\n </div>\n )\n}\n\nexport default OrderLine\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA8FU;AA7FV,mBAAmB;AACnB,mBAA8C;AAiC9C,MAAM,cAAc,CAAC,UAAkB,WACrC,SAAS;AAAA,EAAQ;AAAA,EAAc,CAAC,OAAO,QACrC,OAAO,SAAS,OAAO,OAAO,GAAG,CAAC,IAAI;AACxC;AAMK,SAAS,kBACd,OACA,QACA,kBACQ;AACR,MAAI,KAAC,+BAAiB,KAAK,EAAG,QAAO;AACrC,aAAO,0BAAY,OAAO,MAAM,KAAK;AACvC;AAOO,SAAS,4BACd,QACA,WACwC;AACxC,MAAI,UAAW,QAAO;AACtB,MAAI,CAAC,OAAQ,QAAO;AACpB,SAAO,CAAC,UACN,IAAI,KAAK,aAAa,QAAQ;AAAA,IAC5B,OAAO;AAAA,IACP,UAAU,MAAM;AAAA,EAClB,CAAC,EAAE,OAAO,OAAO,MAAM,MAAM,CAAC;AAClC;AAQO,SAAS,UAAU;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,gBAAgB;AAAA,EAChB,yBAAyB;AAAA,EACzB,aAAa;AAAA,EACb;AACF,GAAmB;AACjB,QAAM,WAAW,OAAO,UAAU,YAAY,MAAM,KAAK,MAAM,KAAK,QAAQ;AAE5E,SACE,6CAAC,SAAI,eAAW,iBAAG,0BAA0B,SAAS,GAAG,aAAU,cACjE;AAAA,gDAAC,SAAI,WAAU,wDACZ,qBACC,4CAAC,SAAI,KAAK,UAAU,KAAI,IAAG,WAAU,4BAA2B,IAEhE,4CAAC,SAAI,eAAY,QAAO,WAAU,aAAY,aAAU,gCAA+B,GAE3F;AAAA,IACA,6CAAC,SAAI,WAAU,sCACb;AAAA,kDAAC,OAAE,WAAU,gCAA+B,aAAU,mBACnD,gBACH;AAAA,MACC,UACC,4CAAC,OAAE,WAAU,0CAAyC,aAAU,sBAC7D,mBACH,IACE;AAAA,MACJ,4CAAC,OAAE,WAAU,iCAAgC,aAAU,uBACpD,sBAAY,eAAe,EAAE,GAAG,SAAS,CAAC,GAC7C;AAAA,OACF;AAAA,IACA,4CAAC,OAAE,WAAU,6CAA4C,aAAU,qBAChE,4BAAkB,WAAW,iBAAiB,sBAAsB,GACvE;AAAA,KACF;AAEJ;AAEA,IAAO,qBAAQ;","names":[]}
@@ -0,0 +1,49 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { cn } from "../../../lib/utils.mjs";
3
+ import { formatMoney, isAvailableMoney } from "../../../lib/money.mjs";
4
+ const interpolate = (template, values) => template.replace(
5
+ /\{(\w+)\}/g,
6
+ (match, key) => key in values ? String(values[key]) : match
7
+ );
8
+ function formatOrderAmount(money, format, unavailableLabel) {
9
+ if (!isAvailableMoney(money)) return unavailableLabel;
10
+ return formatMoney(money, format) ?? unavailableLabel;
11
+ }
12
+ function resolveOrderAmountFormatter(locale, formatter) {
13
+ if (formatter) return formatter;
14
+ if (!locale) return void 0;
15
+ return (money) => new Intl.NumberFormat(locale, {
16
+ style: "currency",
17
+ currency: money.currencyCode
18
+ }).format(Number(money.amount));
19
+ }
20
+ function OrderLine({
21
+ name,
22
+ image,
23
+ details,
24
+ quantity,
25
+ lineTotal,
26
+ quantityLabel = "Cantidad: {n}",
27
+ amountUnavailableLabel = "\u2014",
28
+ formatMoney: formatMoneyProp,
29
+ className
30
+ }) {
31
+ const imageSrc = typeof image === "string" && image.trim() !== "" ? image : void 0;
32
+ return /* @__PURE__ */ jsxs("div", { className: cn("flex items-start gap-3", className), "data-slot": "order-line", children: [
33
+ /* @__PURE__ */ jsx("div", { className: "bg-muted size-14 shrink-0 overflow-hidden rounded-md", children: imageSrc ? /* @__PURE__ */ jsx("img", { src: imageSrc, alt: "", className: "size-full object-contain" }) : /* @__PURE__ */ jsx("div", { "aria-hidden": "true", className: "size-full", "data-slot": "order-line-image-placeholder" }) }),
34
+ /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [
35
+ /* @__PURE__ */ jsx("p", { className: "truncate text-sm font-medium", "data-slot": "order-line-name", children: name }),
36
+ details ? /* @__PURE__ */ jsx("p", { className: "text-muted-foreground truncate text-xs", "data-slot": "order-line-details", children: details }) : null,
37
+ /* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-xs", "data-slot": "order-line-quantity", children: interpolate(quantityLabel, { n: quantity }) })
38
+ ] }),
39
+ /* @__PURE__ */ jsx("p", { className: "shrink-0 text-sm font-medium tabular-nums", "data-slot": "order-line-amount", children: formatOrderAmount(lineTotal, formatMoneyProp, amountUnavailableLabel) })
40
+ ] });
41
+ }
42
+ var order_line_default = OrderLine;
43
+ export {
44
+ OrderLine,
45
+ order_line_default as default,
46
+ formatOrderAmount,
47
+ resolveOrderAmountFormatter
48
+ };
49
+ //# sourceMappingURL=order-line.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/blocks/e-commerce/order-history/order-line.tsx"],"sourcesContent":["import type { Money } from '@thorprovider/types'\nimport { cn } from '../../../lib/utils'\nimport { formatMoney, isAvailableMoney } from '../../../lib/money'\n\n/**\n * Canonical order-line item cell data.\n *\n * One purchased line of one order. `id` is the backend line identity: it is the\n * React key and is never rendered. `lineTotal` is the backend-authoritative\n * amount and is rendered verbatim — the cell never multiplies a unit price by\n * the quantity, sums lines, or formats with a hardcoded currency.\n */\nexport interface OrderLineData {\n /** Backend line identity. Used as the React key; never rendered. */\n id: string\n name: string\n /** Optional; an absent or empty image renders a neutral placeholder, never `src=\"\"`. */\n image?: string\n /** Optional secondary line (for example the variant description). */\n details?: string\n quantity: number\n /** Backend line total. Rendered verbatim; a malformed amount is unavailable. */\n lineTotal: Money\n}\n\nexport interface OrderLineProps extends Omit<OrderLineData, 'id'> {\n /** Quantity template with a `{n}` placeholder. */\n quantityLabel?: string\n /** Shown when `lineTotal` is absent or malformed (never a zero amount). */\n amountUnavailableLabel?: string\n /** Host amount formatter (locale, currency). Defaults to `lineTotal.currencyCode`. */\n formatMoney?: (money: Money) => string\n className?: string\n}\n\nconst interpolate = (template: string, values: Record<string, string | number>) =>\n template.replace(/\\{(\\w+)\\}/g, (match, key: string) =>\n key in values ? String(values[key]) : match,\n )\n\n/**\n * Render one `Money` through the canonical helper, or the unavailable label.\n * `isAvailableMoney` keeps a malformed amount away from `Intl.NumberFormat`.\n */\nexport function formatOrderAmount(\n money: Money | null | undefined,\n format: ((money: Money) => string) | undefined,\n unavailableLabel: string,\n): string {\n if (!isAvailableMoney(money)) return unavailableLabel\n return formatMoney(money, format) ?? unavailableLabel\n}\n\n/**\n * Resolve the amount formatter: a host formatter wins, then the supplied\n * locale, then the canonical default. Every path goes through\n * `formatMoney`, so no currency symbol is ever hardcoded here.\n */\nexport function resolveOrderAmountFormatter(\n locale: string | undefined,\n formatter: ((money: Money) => string) | undefined,\n): ((money: Money) => string) | undefined {\n if (formatter) return formatter\n if (!locale) return undefined\n return (money) =>\n new Intl.NumberFormat(locale, {\n style: 'currency',\n currency: money.currencyCode,\n }).format(Number(money.amount))\n}\n\n/**\n * The canonical order-line item cell: one purchased line of an order.\n *\n * It is an item cell, not a listing — it takes one line, renders one cell, and\n * owns no collection state.\n */\nexport function OrderLine({\n name,\n image,\n details,\n quantity,\n lineTotal,\n quantityLabel = 'Cantidad: {n}',\n amountUnavailableLabel = '—',\n formatMoney: formatMoneyProp,\n className,\n}: OrderLineProps) {\n const imageSrc = typeof image === 'string' && image.trim() !== '' ? image : undefined\n\n return (\n <div className={cn('flex items-start gap-3', className)} data-slot='order-line'>\n <div className='bg-muted size-14 shrink-0 overflow-hidden rounded-md'>\n {imageSrc ? (\n <img src={imageSrc} alt='' className='size-full object-contain' />\n ) : (\n <div aria-hidden='true' className='size-full' data-slot='order-line-image-placeholder' />\n )}\n </div>\n <div className='flex min-w-0 flex-1 flex-col gap-1'>\n <p className='truncate text-sm font-medium' data-slot='order-line-name'>\n {name}\n </p>\n {details ? (\n <p className='text-muted-foreground truncate text-xs' data-slot='order-line-details'>\n {details}\n </p>\n ) : null}\n <p className='text-muted-foreground text-xs' data-slot='order-line-quantity'>\n {interpolate(quantityLabel, { n: quantity })}\n </p>\n </div>\n <p className='shrink-0 text-sm font-medium tabular-nums' data-slot='order-line-amount'>\n {formatOrderAmount(lineTotal, formatMoneyProp, amountUnavailableLabel)}\n </p>\n </div>\n )\n}\n\nexport default OrderLine\n"],"mappings":"AA8FU,cAKJ,YALI;AA7FV,SAAS,UAAU;AACnB,SAAS,aAAa,wBAAwB;AAiC9C,MAAM,cAAc,CAAC,UAAkB,WACrC,SAAS;AAAA,EAAQ;AAAA,EAAc,CAAC,OAAO,QACrC,OAAO,SAAS,OAAO,OAAO,GAAG,CAAC,IAAI;AACxC;AAMK,SAAS,kBACd,OACA,QACA,kBACQ;AACR,MAAI,CAAC,iBAAiB,KAAK,EAAG,QAAO;AACrC,SAAO,YAAY,OAAO,MAAM,KAAK;AACvC;AAOO,SAAS,4BACd,QACA,WACwC;AACxC,MAAI,UAAW,QAAO;AACtB,MAAI,CAAC,OAAQ,QAAO;AACpB,SAAO,CAAC,UACN,IAAI,KAAK,aAAa,QAAQ;AAAA,IAC5B,OAAO;AAAA,IACP,UAAU,MAAM;AAAA,EAClB,CAAC,EAAE,OAAO,OAAO,MAAM,MAAM,CAAC;AAClC;AAQO,SAAS,UAAU;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,gBAAgB;AAAA,EAChB,yBAAyB;AAAA,EACzB,aAAa;AAAA,EACb;AACF,GAAmB;AACjB,QAAM,WAAW,OAAO,UAAU,YAAY,MAAM,KAAK,MAAM,KAAK,QAAQ;AAE5E,SACE,qBAAC,SAAI,WAAW,GAAG,0BAA0B,SAAS,GAAG,aAAU,cACjE;AAAA,wBAAC,SAAI,WAAU,wDACZ,qBACC,oBAAC,SAAI,KAAK,UAAU,KAAI,IAAG,WAAU,4BAA2B,IAEhE,oBAAC,SAAI,eAAY,QAAO,WAAU,aAAY,aAAU,gCAA+B,GAE3F;AAAA,IACA,qBAAC,SAAI,WAAU,sCACb;AAAA,0BAAC,OAAE,WAAU,gCAA+B,aAAU,mBACnD,gBACH;AAAA,MACC,UACC,oBAAC,OAAE,WAAU,0CAAyC,aAAU,sBAC7D,mBACH,IACE;AAAA,MACJ,oBAAC,OAAE,WAAU,iCAAgC,aAAU,uBACpD,sBAAY,eAAe,EAAE,GAAG,SAAS,CAAC,GAC7C;AAAA,OACF;AAAA,IACA,oBAAC,OAAE,WAAU,6CAA4C,aAAU,qBAChE,4BAAkB,WAAW,iBAAiB,sBAAsB,GACvE;AAAA,KACF;AAEJ;AAEA,IAAO,qBAAQ;","names":[]}
@@ -0,0 +1,9 @@
1
+ import type { CategoryCardSpecProps } from '../../../lib/contracts';
2
+ import type { ProductCategoryItem } from '../../../lib/contracts';
3
+ export type CategoryCardPresentation = NonNullable<CategoryCardSpecProps['presentation']>;
4
+ export interface CategoryCardProps extends CategoryCardSpecProps {
5
+ onBrowse?: (category: ProductCategoryItem) => void;
6
+ }
7
+ export declare function CategoryCard(props: CategoryCardProps): import("react").JSX.Element;
8
+ export default CategoryCard;
9
+ //# sourceMappingURL=category-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"category-card.d.ts","sourceRoot":"","sources":["../../../../src/blocks/e-commerce/product-categories/category-card.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAOjE,MAAM,MAAM,wBAAwB,GAAG,WAAW,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAA;AAEzF,MAAM,WAAW,iBAAkB,SAAQ,qBAAqB;IAC9D,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAA;CACnD;AAkJD,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,+BAKpD;AAED,eAAe,YAAY,CAAA"}