@thorprovider/blocks 2.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 (842) hide show
  1. package/README.md +120 -8
  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 -155
  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.test.tsx +0 -190
  697. package/src/blocks/application/login-forms/login-page.tsx +0 -240
  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 -318
  700. package/src/blocks/application/signup-forms/signup-page-1.tsx +0 -229
  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/application/viewport-ownership.test.tsx +0 -41
  704. package/src/blocks/e-commerce/category-filters/category-listing-filter-fields.tsx +0 -218
  705. package/src/blocks/e-commerce/category-filters/category-listing.test.tsx +0 -601
  706. package/src/blocks/e-commerce/category-filters/category-listing.tsx +0 -934
  707. package/src/blocks/e-commerce/checkout-forms/checkbox-check.tsx +0 -74
  708. package/src/blocks/e-commerce/checkout-forms/checkout-confirmation-fulfilment-progress.tsx +0 -195
  709. package/src/blocks/e-commerce/checkout-forms/checkout-confirmation.test.tsx +0 -136
  710. package/src/blocks/e-commerce/checkout-forms/checkout-confirmation.tsx +0 -329
  711. package/src/blocks/e-commerce/checkout-forms/checkout-contact-step.tsx +0 -149
  712. package/src/blocks/e-commerce/checkout-forms/checkout-country-field.tsx +0 -53
  713. package/src/blocks/e-commerce/checkout-forms/checkout-field-feedback.tsx +0 -29
  714. package/src/blocks/e-commerce/checkout-forms/checkout-form-types.ts +0 -7
  715. package/src/blocks/e-commerce/checkout-forms/checkout-order-summary.tsx +0 -230
  716. package/src/blocks/e-commerce/checkout-forms/checkout-payment-step.tsx +0 -100
  717. package/src/blocks/e-commerce/checkout-forms/checkout-progress.tsx +0 -62
  718. package/src/blocks/e-commerce/checkout-forms/checkout-review-step.tsx +0 -59
  719. package/src/blocks/e-commerce/checkout-forms/checkout-shipping-step.tsx +0 -180
  720. package/src/blocks/e-commerce/checkout-forms/checkout.test.tsx +0 -478
  721. package/src/blocks/e-commerce/checkout-forms/checkout.tsx +0 -550
  722. package/src/blocks/e-commerce/navigation/back-to-top.test.tsx +0 -27
  723. package/src/blocks/e-commerce/navigation/back-to-top.tsx +0 -71
  724. package/src/blocks/e-commerce/navigation/breadcrumb.test.tsx +0 -174
  725. package/src/blocks/e-commerce/navigation/breadcrumb.tsx +0 -130
  726. package/src/blocks/e-commerce/navigation/category-icon.test.tsx +0 -54
  727. package/src/blocks/e-commerce/navigation/category-icon.tsx +0 -94
  728. package/src/blocks/e-commerce/navigation/mega-menu.test.tsx +0 -139
  729. package/src/blocks/e-commerce/navigation/mega-menu.tsx +0 -271
  730. package/src/blocks/e-commerce/navigation/mobile-bottom-nav.test.tsx +0 -74
  731. package/src/blocks/e-commerce/navigation/mobile-bottom-nav.tsx +0 -78
  732. package/src/blocks/e-commerce/navigation/mobile-category-drawer.test.tsx +0 -192
  733. package/src/blocks/e-commerce/navigation/mobile-category-drawer.tsx +0 -278
  734. package/src/blocks/e-commerce/navigation/skip-to-content.test.tsx +0 -35
  735. package/src/blocks/e-commerce/navigation/skip-to-content.tsx +0 -37
  736. package/src/blocks/e-commerce/navigation/storefront-navbar-account-menu.test.tsx +0 -56
  737. package/src/blocks/e-commerce/navigation/storefront-navbar-account-menu.tsx +0 -134
  738. package/src/blocks/e-commerce/navigation/storefront-navbar-cart-sheet.test.tsx +0 -204
  739. package/src/blocks/e-commerce/navigation/storefront-navbar-cart-sheet.tsx +0 -371
  740. package/src/blocks/e-commerce/navigation/storefront-navbar-mobile-nav.tsx +0 -96
  741. package/src/blocks/e-commerce/navigation/storefront-navbar-search-bar.tsx +0 -52
  742. package/src/blocks/e-commerce/navigation/storefront-navbar.test.tsx +0 -264
  743. package/src/blocks/e-commerce/navigation/storefront-navbar.tsx +0 -604
  744. package/src/blocks/e-commerce/order-history/order-history-1.tsx +0 -159
  745. package/src/blocks/e-commerce/order-history/order-history-2.tsx +0 -222
  746. package/src/blocks/e-commerce/product-categories/category-card-grid.test.tsx +0 -122
  747. package/src/blocks/e-commerce/product-categories/category-card.test.tsx +0 -68
  748. package/src/blocks/e-commerce/product-categories/category-card.tsx +0 -172
  749. package/src/blocks/e-commerce/product-categories/category-grid.test.tsx +0 -67
  750. package/src/blocks/e-commerce/product-categories/category-shared.tsx +0 -109
  751. package/src/blocks/e-commerce/product-categories/product-category-grid.tsx +0 -170
  752. package/src/blocks/e-commerce/product-categories/product-category.test.tsx +0 -266
  753. package/src/blocks/e-commerce/product-categories/product-category.tsx +0 -462
  754. package/src/blocks/e-commerce/product-list/product-card.test.tsx +0 -263
  755. package/src/blocks/e-commerce/product-list/product-card.tsx +0 -447
  756. package/src/blocks/e-commerce/product-list/product-grid.test.tsx +0 -162
  757. package/src/blocks/e-commerce/product-list/product-grid.tsx +0 -114
  758. package/src/blocks/e-commerce/product-list/product-showcase-1.test.tsx +0 -78
  759. package/src/blocks/e-commerce/product-list/product-showcase-1.tsx +0 -277
  760. package/src/blocks/e-commerce/product-overview/product-overview-gallery.tsx +0 -71
  761. package/src/blocks/e-commerce/product-overview/product-overview-lightbox-tab.tsx +0 -116
  762. package/src/blocks/e-commerce/product-overview/product-overview-reviews-tab.tsx +0 -105
  763. package/src/blocks/e-commerce/product-overview/product-overview-tabs.tsx +0 -70
  764. package/src/blocks/e-commerce/product-overview/product-overview.test.tsx +0 -283
  765. package/src/blocks/e-commerce/product-overview/product-overview.tsx +0 -1186
  766. package/src/blocks/e-commerce/product-overview/product-quick-view-card.tsx +0 -135
  767. package/src/blocks/e-commerce/product-overview/product-quick-view-dialog.tsx +0 -393
  768. package/src/blocks/e-commerce/product-overview/product-quick-view.tsx +0 -136
  769. package/src/blocks/e-commerce/reviews/review-rating-1-review-form.tsx +0 -133
  770. package/src/blocks/e-commerce/reviews/review-rating-1.tsx +0 -178
  771. package/src/blocks/e-commerce/reviews/review-rating-2.tsx +0 -245
  772. package/src/blocks/e-commerce/shopping-carts/shopping-cart.test.tsx +0 -399
  773. package/src/blocks/e-commerce/shopping-carts/shopping-cart.tsx +0 -628
  774. package/src/blocks/e-commerce/store-containers/store-container-1.tsx +0 -29
  775. package/src/blocks/e-commerce/storefront-hero/storefront-hero.test.tsx +0 -412
  776. package/src/blocks/e-commerce/storefront-hero/storefront-hero.tsx +0 -1283
  777. package/src/blocks/marketing/banners/avatar-group.tsx +0 -69
  778. package/src/blocks/marketing/banners/banner-1.tsx +0 -188
  779. package/src/blocks/marketing/cta/cta-section-1.tsx +0 -112
  780. package/src/blocks/marketing/faq/faq-block-1.tsx +0 -45
  781. package/src/blocks/marketing/features/feature.test.tsx +0 -153
  782. package/src/blocks/marketing/features/feature.tsx +0 -195
  783. package/src/blocks/marketing/footers/footer-section-accessibility.test.tsx +0 -118
  784. package/src/blocks/marketing/footers/footer-section-actions.test.tsx +0 -131
  785. package/src/blocks/marketing/footers/footer-section-data.test.tsx +0 -127
  786. package/src/blocks/marketing/footers/footer-section-native-links.test.tsx +0 -100
  787. package/src/blocks/marketing/footers/footer-section-public-api.test.tsx +0 -11
  788. package/src/blocks/marketing/footers/footer-section.test.tsx +0 -46
  789. package/src/blocks/marketing/footers/footer-section.tsx +0 -532
  790. package/src/blocks/marketing/hero-sections/avatar-group.tsx +0 -86
  791. package/src/blocks/marketing/hero-sections/hero-section-1.tsx +0 -135
  792. package/src/blocks/marketing/logo-clouds/logo-cloud-1-logo-icon.tsx +0 -52
  793. package/src/blocks/marketing/logo-clouds/logo-cloud-1.tsx +0 -56
  794. package/src/blocks/marketing/navbars/navbar-public-api.test.tsx +0 -57
  795. package/src/blocks/marketing/navbars/navbar.mega.test.tsx +0 -149
  796. package/src/blocks/marketing/navbars/navbar.test.tsx +0 -155
  797. package/src/blocks/marketing/navbars/navbar.tsx +0 -735
  798. package/src/blocks/marketing/pricing/pricing-section-1.tsx +0 -94
  799. package/src/blocks/marketing/statistics/statistic-1.tsx +0 -93
  800. package/src/blocks/marketing/testimonials/testimonial-section.test.tsx +0 -171
  801. package/src/blocks/marketing/testimonials/testimonial-section.tsx +0 -237
  802. package/src/blocks/shared/reaction-toggle.tsx +0 -145
  803. package/src/hooks/use-mobile.ts +0 -19
  804. package/src/index.ts +0 -284
  805. package/src/lib/cart.test.ts +0 -15
  806. package/src/lib/contracts-curated.test.ts +0 -225
  807. package/src/lib/contracts-server-boundary.test.ts +0 -52
  808. package/src/lib/contracts.test.ts +0 -228
  809. package/src/lib/contracts.ts +0 -857
  810. package/src/lib/money.test.ts +0 -64
  811. package/src/lib/money.ts +0 -65
  812. package/src/lib/types/menu.ts +0 -43
  813. package/src/lib/types.ts +0 -4
  814. package/src/lib/utils.ts +0 -10
  815. package/src/ui/accordion.tsx +0 -65
  816. package/src/ui/badge.tsx +0 -47
  817. package/src/ui/breadcrumb.tsx +0 -108
  818. package/src/ui/button-group.tsx +0 -83
  819. package/src/ui/button.tsx +0 -63
  820. package/src/ui/card.tsx +0 -91
  821. package/src/ui/carousel.tsx +0 -241
  822. package/src/ui/dialog.tsx +0 -158
  823. package/src/ui/drawer.tsx +0 -134
  824. package/src/ui/dropdown-menu.tsx +0 -256
  825. package/src/ui/empty.tsx +0 -103
  826. package/src/ui/input-otp.tsx +0 -76
  827. package/src/ui/label.tsx +0 -23
  828. package/src/ui/pagination.tsx +0 -127
  829. package/src/ui/progress.tsx +0 -30
  830. package/src/ui/radio-group.tsx +0 -44
  831. package/src/ui/select.tsx +0 -189
  832. package/src/ui/separator.tsx +0 -27
  833. package/src/ui/sheet.tsx +0 -142
  834. package/src/ui/sidebar.tsx +0 -726
  835. package/src/ui/skeleton.tsx +0 -13
  836. package/src/ui/table.tsx +0 -115
  837. package/src/ui/toggle-group.tsx +0 -83
  838. package/src/ui/tooltip.tsx +0 -56
  839. package/tsconfig.build.json +0 -12
  840. package/tsconfig.json +0 -20
  841. package/tsup.config.ts +0 -19
  842. 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"}