@thorprovider/blocks 2.0.0 → 3.0.1

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 +10 -2
  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 @@
1
+ {"version":3,"sources":["../../../../src/blocks/e-commerce/product-overview/product-overview-gallery.tsx"],"sourcesContent":["import { Camera } from 'lucide-react'\nimport { Badge } from '../../../ui/badge'\nimport { cn } from '../../../lib/utils'\n\nexport interface ProductOverviewGalleryProps {\n /** Resolved image URLs for the product (never empty strings; a fallback is allowed). */\n images: string[]\n /** Product title, used for alt text. */\n title: string\n /** Optional badge label; omitted when absent. */\n badgeLabel?: string\n selectedImage: number\n onSelectImage: (index: number) => void\n photosLabel?: string\n}\n\n/**\n * Image-forward gallery used by the canonical ProductOverview `rich` presentation: a large\n * primary image with an optional badge and a photo count, plus a thumbnail strip. Operates on\n * already-resolved URLs so it carries no product-shape assumption (no `mainImages`/`galleryImages`\n * split, no sector fields).\n */\nexport function ProductOverviewGallery({\n images,\n title,\n badgeLabel,\n selectedImage,\n onSelectImage,\n photosLabel = 'fotos',\n}: ProductOverviewGalleryProps) {\n const activeImage = images[Math.min(selectedImage, images.length - 1)]\n\n return (\n <div>\n <div className='bg-muted relative aspect-square overflow-hidden rounded-xl'>\n <img src={activeImage || undefined} alt={title} className='size-full object-cover' />\n {badgeLabel ? (\n <Badge className='absolute top-4 left-4 px-2.5 py-0.5 font-semibold'>{badgeLabel}</Badge>\n ) : null}\n <div className='absolute right-4 bottom-4 rounded-full bg-black/60 px-3 py-1.5 text-sm text-white backdrop-blur-sm'>\n <Camera className='mr-1 inline size-4' />\n {images.length} {photosLabel}\n </div>\n </div>\n\n {images.length > 1 ? (\n <div className='mt-4 flex gap-3 overflow-x-auto pb-2'>\n {images.map((image, index) => (\n <button\n type='button'\n key={`${title}:gallery:${index}`}\n onClick={() => onSelectImage(index)}\n className={cn(\n 'relative aspect-square size-20 flex-shrink-0 cursor-pointer overflow-hidden rounded-lg border-2 transition-all',\n selectedImage === index\n ? 'border-primary ring-primary/20 shadow-md ring-2'\n : 'border-muted hover:border-muted-foreground/50',\n )}\n aria-label={`Mostrar imagen ${index + 1} de ${title}`}\n aria-pressed={selectedImage === index}\n >\n <img src={image || undefined} alt={`${title} ${index + 1}`} className='size-full object-cover' />\n </button>\n ))}\n </div>\n ) : null}\n </div>\n )\n}\n\nexport default ProductOverviewGallery\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAmCQ;AAnCR,0BAAuB;AACvB,mBAAsB;AACtB,mBAAmB;AAoBZ,SAAS,uBAAuB;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AAChB,GAAgC;AAC9B,QAAM,cAAc,OAAO,KAAK,IAAI,eAAe,OAAO,SAAS,CAAC,CAAC;AAErE,SACE,6CAAC,SACC;AAAA,iDAAC,SAAI,WAAU,8DACb;AAAA,kDAAC,SAAI,KAAK,eAAe,QAAW,KAAK,OAAO,WAAU,0BAAyB;AAAA,MAClF,aACC,4CAAC,sBAAM,WAAU,qDAAqD,sBAAW,IAC/E;AAAA,MACJ,6CAAC,SAAI,WAAU,sGACb;AAAA,oDAAC,8BAAO,WAAU,sBAAqB;AAAA,QACtC,OAAO;AAAA,QAAO;AAAA,QAAE;AAAA,SACnB;AAAA,OACF;AAAA,IAEC,OAAO,SAAS,IACf,4CAAC,SAAI,WAAU,wCACZ,iBAAO,IAAI,CAAC,OAAO,UAClB;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QAEL,SAAS,MAAM,cAAc,KAAK;AAAA,QAClC,eAAW;AAAA,UACT;AAAA,UACA,kBAAkB,QACd,oDACA;AAAA,QACN;AAAA,QACA,cAAY,kBAAkB,QAAQ,CAAC,OAAO,KAAK;AAAA,QACnD,gBAAc,kBAAkB;AAAA,QAEhC,sDAAC,SAAI,KAAK,SAAS,QAAW,KAAK,GAAG,KAAK,IAAI,QAAQ,CAAC,IAAI,WAAU,0BAAyB;AAAA;AAAA,MAX1F,GAAG,KAAK,YAAY,KAAK;AAAA,IAYhC,CACD,GACH,IACE;AAAA,KACN;AAEJ;AAEA,IAAO,mCAAQ;","names":[]}
@@ -0,0 +1,47 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { Camera } from "lucide-react";
3
+ import { Badge } from "../../../ui/badge.mjs";
4
+ import { cn } from "../../../lib/utils.mjs";
5
+ function ProductOverviewGallery({
6
+ images,
7
+ title,
8
+ badgeLabel,
9
+ selectedImage,
10
+ onSelectImage,
11
+ photosLabel = "fotos"
12
+ }) {
13
+ const activeImage = images[Math.min(selectedImage, images.length - 1)];
14
+ return /* @__PURE__ */ jsxs("div", { children: [
15
+ /* @__PURE__ */ jsxs("div", { className: "bg-muted relative aspect-square overflow-hidden rounded-xl", children: [
16
+ /* @__PURE__ */ jsx("img", { src: activeImage || void 0, alt: title, className: "size-full object-cover" }),
17
+ badgeLabel ? /* @__PURE__ */ jsx(Badge, { className: "absolute top-4 left-4 px-2.5 py-0.5 font-semibold", children: badgeLabel }) : null,
18
+ /* @__PURE__ */ jsxs("div", { className: "absolute right-4 bottom-4 rounded-full bg-black/60 px-3 py-1.5 text-sm text-white backdrop-blur-sm", children: [
19
+ /* @__PURE__ */ jsx(Camera, { className: "mr-1 inline size-4" }),
20
+ images.length,
21
+ " ",
22
+ photosLabel
23
+ ] })
24
+ ] }),
25
+ images.length > 1 ? /* @__PURE__ */ jsx("div", { className: "mt-4 flex gap-3 overflow-x-auto pb-2", children: images.map((image, index) => /* @__PURE__ */ jsx(
26
+ "button",
27
+ {
28
+ type: "button",
29
+ onClick: () => onSelectImage(index),
30
+ className: cn(
31
+ "relative aspect-square size-20 flex-shrink-0 cursor-pointer overflow-hidden rounded-lg border-2 transition-all",
32
+ selectedImage === index ? "border-primary ring-primary/20 shadow-md ring-2" : "border-muted hover:border-muted-foreground/50"
33
+ ),
34
+ "aria-label": `Mostrar imagen ${index + 1} de ${title}`,
35
+ "aria-pressed": selectedImage === index,
36
+ children: /* @__PURE__ */ jsx("img", { src: image || void 0, alt: `${title} ${index + 1}`, className: "size-full object-cover" })
37
+ },
38
+ `${title}:gallery:${index}`
39
+ )) }) : null
40
+ ] });
41
+ }
42
+ var product_overview_gallery_default = ProductOverviewGallery;
43
+ export {
44
+ ProductOverviewGallery,
45
+ product_overview_gallery_default as default
46
+ };
47
+ //# sourceMappingURL=product-overview-gallery.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/blocks/e-commerce/product-overview/product-overview-gallery.tsx"],"sourcesContent":["import { Camera } from 'lucide-react'\nimport { Badge } from '../../../ui/badge'\nimport { cn } from '../../../lib/utils'\n\nexport interface ProductOverviewGalleryProps {\n /** Resolved image URLs for the product (never empty strings; a fallback is allowed). */\n images: string[]\n /** Product title, used for alt text. */\n title: string\n /** Optional badge label; omitted when absent. */\n badgeLabel?: string\n selectedImage: number\n onSelectImage: (index: number) => void\n photosLabel?: string\n}\n\n/**\n * Image-forward gallery used by the canonical ProductOverview `rich` presentation: a large\n * primary image with an optional badge and a photo count, plus a thumbnail strip. Operates on\n * already-resolved URLs so it carries no product-shape assumption (no `mainImages`/`galleryImages`\n * split, no sector fields).\n */\nexport function ProductOverviewGallery({\n images,\n title,\n badgeLabel,\n selectedImage,\n onSelectImage,\n photosLabel = 'fotos',\n}: ProductOverviewGalleryProps) {\n const activeImage = images[Math.min(selectedImage, images.length - 1)]\n\n return (\n <div>\n <div className='bg-muted relative aspect-square overflow-hidden rounded-xl'>\n <img src={activeImage || undefined} alt={title} className='size-full object-cover' />\n {badgeLabel ? (\n <Badge className='absolute top-4 left-4 px-2.5 py-0.5 font-semibold'>{badgeLabel}</Badge>\n ) : null}\n <div className='absolute right-4 bottom-4 rounded-full bg-black/60 px-3 py-1.5 text-sm text-white backdrop-blur-sm'>\n <Camera className='mr-1 inline size-4' />\n {images.length} {photosLabel}\n </div>\n </div>\n\n {images.length > 1 ? (\n <div className='mt-4 flex gap-3 overflow-x-auto pb-2'>\n {images.map((image, index) => (\n <button\n type='button'\n key={`${title}:gallery:${index}`}\n onClick={() => onSelectImage(index)}\n className={cn(\n 'relative aspect-square size-20 flex-shrink-0 cursor-pointer overflow-hidden rounded-lg border-2 transition-all',\n selectedImage === index\n ? 'border-primary ring-primary/20 shadow-md ring-2'\n : 'border-muted hover:border-muted-foreground/50',\n )}\n aria-label={`Mostrar imagen ${index + 1} de ${title}`}\n aria-pressed={selectedImage === index}\n >\n <img src={image || undefined} alt={`${title} ${index + 1}`} className='size-full object-cover' />\n </button>\n ))}\n </div>\n ) : null}\n </div>\n )\n}\n\nexport default ProductOverviewGallery\n"],"mappings":"AAmCQ,cAIA,YAJA;AAnCR,SAAS,cAAc;AACvB,SAAS,aAAa;AACtB,SAAS,UAAU;AAoBZ,SAAS,uBAAuB;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AAChB,GAAgC;AAC9B,QAAM,cAAc,OAAO,KAAK,IAAI,eAAe,OAAO,SAAS,CAAC,CAAC;AAErE,SACE,qBAAC,SACC;AAAA,yBAAC,SAAI,WAAU,8DACb;AAAA,0BAAC,SAAI,KAAK,eAAe,QAAW,KAAK,OAAO,WAAU,0BAAyB;AAAA,MAClF,aACC,oBAAC,SAAM,WAAU,qDAAqD,sBAAW,IAC/E;AAAA,MACJ,qBAAC,SAAI,WAAU,sGACb;AAAA,4BAAC,UAAO,WAAU,sBAAqB;AAAA,QACtC,OAAO;AAAA,QAAO;AAAA,QAAE;AAAA,SACnB;AAAA,OACF;AAAA,IAEC,OAAO,SAAS,IACf,oBAAC,SAAI,WAAU,wCACZ,iBAAO,IAAI,CAAC,OAAO,UAClB;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QAEL,SAAS,MAAM,cAAc,KAAK;AAAA,QAClC,WAAW;AAAA,UACT;AAAA,UACA,kBAAkB,QACd,oDACA;AAAA,QACN;AAAA,QACA,cAAY,kBAAkB,QAAQ,CAAC,OAAO,KAAK;AAAA,QACnD,gBAAc,kBAAkB;AAAA,QAEhC,8BAAC,SAAI,KAAK,SAAS,QAAW,KAAK,GAAG,KAAK,IAAI,QAAQ,CAAC,IAAI,WAAU,0BAAyB;AAAA;AAAA,MAX1F,GAAG,KAAK,YAAY,KAAK;AAAA,IAYhC,CACD,GACH,IACE;AAAA,KACN;AAEJ;AAEA,IAAO,mCAAQ;","names":[]}
@@ -0,0 +1,15 @@
1
+ export interface ProductOverviewLightboxTabProps {
2
+ /** Resolved image URLs for the product. */
3
+ images: string[];
4
+ /** Product title, used for alt text. */
5
+ title: string;
6
+ galleryLabel?: string;
7
+ ofCounterLabel?: string;
8
+ }
9
+ /**
10
+ * Gallery panel for the `rich` presentation: a thumbnail grid that opens a lightbox with
11
+ * prev/next navigation. Operates on already-resolved URLs so it carries no sector assumption.
12
+ */
13
+ export declare function ProductOverviewLightboxTab({ images, title, galleryLabel, ofCounterLabel, }: ProductOverviewLightboxTabProps): import("react").JSX.Element;
14
+ export default ProductOverviewLightboxTab;
15
+ //# sourceMappingURL=product-overview-lightbox-tab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product-overview-lightbox-tab.d.ts","sourceRoot":"","sources":["../../../../src/blocks/e-commerce/product-overview/product-overview-lightbox-tab.tsx"],"names":[],"mappings":"AASA,MAAM,WAAW,+BAA+B;IAC9C,2CAA2C;IAC3C,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,EACzC,MAAM,EACN,KAAK,EACL,YAAwB,EACxB,cAAuC,GACxC,EAAE,+BAA+B,+BAsFjC;AAED,eAAe,0BAA0B,CAAA"}
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ "use client";
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+ var product_overview_lightbox_tab_exports = {};
21
+ __export(product_overview_lightbox_tab_exports, {
22
+ ProductOverviewLightboxTab: () => ProductOverviewLightboxTab,
23
+ default: () => product_overview_lightbox_tab_default
24
+ });
25
+ module.exports = __toCommonJS(product_overview_lightbox_tab_exports);
26
+ var import_jsx_runtime = require("react/jsx-runtime");
27
+ var import_react = require("react");
28
+ var import_lucide_react = require("lucide-react");
29
+ var import_button = require("../../../ui/button.js");
30
+ var import_card = require("../../../ui/card.js");
31
+ var import_dialog = require("../../../ui/dialog.js");
32
+ var import_utils = require("../../../lib/utils.js");
33
+ function ProductOverviewLightboxTab({
34
+ images,
35
+ title,
36
+ galleryLabel = "Galer\xEDa",
37
+ ofCounterLabel = "{current} de {total}"
38
+ }) {
39
+ const [modalImageIndex, setModalImageIndex] = (0, import_react.useState)(0);
40
+ const nextImage = () => setModalImageIndex((prev) => (prev + 1) % images.length);
41
+ const prevImage = () => setModalImageIndex((prev) => (prev - 1 + images.length) % images.length);
42
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_card.Card, { className: "border shadow-none", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_card.CardContent, { className: "p-8 py-0", children: [
43
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h3", { className: "mb-6 text-xl font-semibold text-balance", children: galleryLabel }),
44
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "grid gap-4 sm:grid-cols-2 lg:grid-cols-3", children: images.map((image, index) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_dialog.Dialog, { children: [
45
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_dialog.DialogTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
46
+ "button",
47
+ {
48
+ type: "button",
49
+ className: "block aspect-square cursor-pointer overflow-hidden rounded-xl",
50
+ onClick: () => setModalImageIndex(index),
51
+ "aria-label": `Abrir imagen ${index + 1} de ${title}`,
52
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("img", { src: image || void 0, alt: `${title} ${index + 1}`, className: "size-full object-cover" })
53
+ }
54
+ ) }),
55
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_dialog.DialogContent, { className: "max-w-4xl border-0 bg-transparent p-0", showCloseButton: false, children: [
56
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_dialog.DialogTitle, { className: "sr-only", children: [
57
+ "Imagen de galer\xEDa ",
58
+ modalImageIndex + 1
59
+ ] }),
60
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "relative", children: [
61
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
62
+ "img",
63
+ {
64
+ src: images[modalImageIndex] || void 0,
65
+ alt: `${title} ${modalImageIndex + 1}`,
66
+ className: "max-h-[80vh] w-full object-contain"
67
+ }
68
+ ),
69
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_dialog.DialogClose, { className: "absolute top-4 right-4 rounded-full bg-black/20 p-2 text-white transition-colors hover:bg-black/30", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.X, { className: "size-4" }) }),
70
+ images.length > 1 ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
71
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
72
+ import_button.Button,
73
+ {
74
+ variant: "ghost",
75
+ size: "icon",
76
+ className: "absolute top-1/2 left-4 size-9 -translate-y-1/2 cursor-pointer rounded-full bg-black/20 text-white hover:bg-black/30",
77
+ onClick: prevImage,
78
+ "aria-label": "Imagen anterior",
79
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.ChevronLeft, { className: "size-4" })
80
+ }
81
+ ),
82
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
83
+ import_button.Button,
84
+ {
85
+ variant: "ghost",
86
+ size: "icon",
87
+ className: "absolute top-1/2 right-4 size-9 -translate-y-1/2 cursor-pointer rounded-full bg-black/20 text-white hover:bg-black/30",
88
+ onClick: nextImage,
89
+ "aria-label": "Imagen siguiente",
90
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.ChevronRight, { className: "size-4" })
91
+ }
92
+ )
93
+ ] }) : null,
94
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "absolute bottom-4 left-1/2 flex -translate-x-1/2 gap-2", children: images.map((_, idx) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
95
+ "button",
96
+ {
97
+ type: "button",
98
+ "aria-label": `Mostrar imagen ${idx + 1}`,
99
+ className: (0, import_utils.cn)(
100
+ "size-2 rounded-full transition-colors",
101
+ idx === modalImageIndex ? "bg-white" : "bg-white/50"
102
+ ),
103
+ onClick: () => setModalImageIndex(idx)
104
+ },
105
+ `${title}:dot:${idx}`
106
+ )) }),
107
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "absolute right-4 bottom-4 rounded-full bg-black/20 px-3 py-1 text-sm text-white", children: ofCounterLabel.replace("{current}", String(modalImageIndex + 1)).replace("{total}", String(images.length)) })
108
+ ] })
109
+ ] })
110
+ ] }, `${title}:lightbox:${index}`)) })
111
+ ] }) });
112
+ }
113
+ var product_overview_lightbox_tab_default = ProductOverviewLightboxTab;
114
+ // Annotate the CommonJS export names for ESM import in node:
115
+ 0 && (module.exports = {
116
+ ProductOverviewLightboxTab
117
+ });
118
+ //# sourceMappingURL=product-overview-lightbox-tab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/blocks/e-commerce/product-overview/product-overview-lightbox-tab.tsx"],"sourcesContent":["'use client'\n\nimport { useState } from 'react'\nimport { ChevronLeft, ChevronRight, X } from 'lucide-react'\nimport { Button } from '../../../ui/button'\nimport { Card, CardContent } from '../../../ui/card'\nimport { Dialog, DialogClose, DialogContent, DialogTitle, DialogTrigger } from '../../../ui/dialog'\nimport { cn } from '../../../lib/utils'\n\nexport interface ProductOverviewLightboxTabProps {\n /** Resolved image URLs for the product. */\n images: string[]\n /** Product title, used for alt text. */\n title: string\n galleryLabel?: string\n ofCounterLabel?: string\n}\n\n/**\n * Gallery panel for the `rich` presentation: a thumbnail grid that opens a lightbox with\n * prev/next navigation. Operates on already-resolved URLs so it carries no sector assumption.\n */\nexport function ProductOverviewLightboxTab({\n images,\n title,\n galleryLabel = 'Galería',\n ofCounterLabel = '{current} de {total}',\n}: ProductOverviewLightboxTabProps) {\n const [modalImageIndex, setModalImageIndex] = useState(0)\n\n const nextImage = () => setModalImageIndex(prev => (prev + 1) % images.length)\n const prevImage = () => setModalImageIndex(prev => (prev - 1 + images.length) % images.length)\n\n return (\n <Card className='border shadow-none'>\n <CardContent className='p-8 py-0'>\n <h3 className='mb-6 text-xl font-semibold text-balance'>{galleryLabel}</h3>\n <div className='grid gap-4 sm:grid-cols-2 lg:grid-cols-3'>\n {images.map((image, index) => (\n <Dialog key={`${title}:lightbox:${index}`}>\n <DialogTrigger asChild>\n <button\n type='button'\n className='block aspect-square cursor-pointer overflow-hidden rounded-xl'\n onClick={() => setModalImageIndex(index)}\n aria-label={`Abrir imagen ${index + 1} de ${title}`}\n >\n <img src={image || undefined} alt={`${title} ${index + 1}`} className='size-full object-cover' />\n </button>\n </DialogTrigger>\n <DialogContent className='max-w-4xl border-0 bg-transparent p-0' showCloseButton={false}>\n <DialogTitle className='sr-only'>Imagen de galería {modalImageIndex + 1}</DialogTitle>\n <div className='relative'>\n <img\n src={images[modalImageIndex] || undefined}\n alt={`${title} ${modalImageIndex + 1}`}\n className='max-h-[80vh] w-full object-contain'\n />\n <DialogClose className='absolute top-4 right-4 rounded-full bg-black/20 p-2 text-white transition-colors hover:bg-black/30'>\n <X className='size-4' />\n </DialogClose>\n\n {images.length > 1 ? (\n <>\n <Button\n variant='ghost'\n size='icon'\n className='absolute top-1/2 left-4 size-9 -translate-y-1/2 cursor-pointer rounded-full bg-black/20 text-white hover:bg-black/30'\n onClick={prevImage}\n aria-label='Imagen anterior'\n >\n <ChevronLeft className='size-4' />\n </Button>\n <Button\n variant='ghost'\n size='icon'\n className='absolute top-1/2 right-4 size-9 -translate-y-1/2 cursor-pointer rounded-full bg-black/20 text-white hover:bg-black/30'\n onClick={nextImage}\n aria-label='Imagen siguiente'\n >\n <ChevronRight className='size-4' />\n </Button>\n </>\n ) : null}\n\n <div className='absolute bottom-4 left-1/2 flex -translate-x-1/2 gap-2'>\n {images.map((_, idx) => (\n <button\n type='button'\n key={`${title}:dot:${idx}`}\n aria-label={`Mostrar imagen ${idx + 1}`}\n className={cn(\n 'size-2 rounded-full transition-colors',\n idx === modalImageIndex ? 'bg-white' : 'bg-white/50',\n )}\n onClick={() => setModalImageIndex(idx)}\n />\n ))}\n </div>\n\n <div className='absolute right-4 bottom-4 rounded-full bg-black/20 px-3 py-1 text-sm text-white'>\n {ofCounterLabel\n .replace('{current}', String(modalImageIndex + 1))\n .replace('{total}', String(images.length))}\n </div>\n </div>\n </DialogContent>\n </Dialog>\n ))}\n </div>\n </CardContent>\n </Card>\n )\n}\n\nexport default ProductOverviewLightboxTab\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoCQ;AAlCR,mBAAyB;AACzB,0BAA6C;AAC7C,oBAAuB;AACvB,kBAAkC;AAClC,oBAA+E;AAC/E,mBAAmB;AAeZ,SAAS,2BAA2B;AAAA,EACzC;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf,iBAAiB;AACnB,GAAoC;AAClC,QAAM,CAAC,iBAAiB,kBAAkB,QAAI,uBAAS,CAAC;AAExD,QAAM,YAAY,MAAM,mBAAmB,WAAS,OAAO,KAAK,OAAO,MAAM;AAC7E,QAAM,YAAY,MAAM,mBAAmB,WAAS,OAAO,IAAI,OAAO,UAAU,OAAO,MAAM;AAE7F,SACE,4CAAC,oBAAK,WAAU,sBACd,uDAAC,2BAAY,WAAU,YACrB;AAAA,gDAAC,QAAG,WAAU,2CAA2C,wBAAa;AAAA,IACtE,4CAAC,SAAI,WAAU,4CACZ,iBAAO,IAAI,CAAC,OAAO,UAClB,6CAAC,wBACC;AAAA,kDAAC,+BAAc,SAAO,MACpB;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,WAAU;AAAA,UACV,SAAS,MAAM,mBAAmB,KAAK;AAAA,UACvC,cAAY,gBAAgB,QAAQ,CAAC,OAAO,KAAK;AAAA,UAEjD,sDAAC,SAAI,KAAK,SAAS,QAAW,KAAK,GAAG,KAAK,IAAI,QAAQ,CAAC,IAAI,WAAU,0BAAyB;AAAA;AAAA,MACjG,GACF;AAAA,MACA,6CAAC,+BAAc,WAAU,yCAAwC,iBAAiB,OAChF;AAAA,qDAAC,6BAAY,WAAU,WAAU;AAAA;AAAA,UAAmB,kBAAkB;AAAA,WAAE;AAAA,QACxE,6CAAC,SAAI,WAAU,YACb;AAAA;AAAA,YAAC;AAAA;AAAA,cACC,KAAK,OAAO,eAAe,KAAK;AAAA,cAChC,KAAK,GAAG,KAAK,IAAI,kBAAkB,CAAC;AAAA,cACpC,WAAU;AAAA;AAAA,UACZ;AAAA,UACA,4CAAC,6BAAY,WAAU,sGACrB,sDAAC,yBAAE,WAAU,UAAS,GACxB;AAAA,UAEC,OAAO,SAAS,IACf,4EACE;AAAA;AAAA,cAAC;AAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,MAAK;AAAA,gBACL,WAAU;AAAA,gBACV,SAAS;AAAA,gBACT,cAAW;AAAA,gBAEX,sDAAC,mCAAY,WAAU,UAAS;AAAA;AAAA,YAClC;AAAA,YACA;AAAA,cAAC;AAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,MAAK;AAAA,gBACL,WAAU;AAAA,gBACV,SAAS;AAAA,gBACT,cAAW;AAAA,gBAEX,sDAAC,oCAAa,WAAU,UAAS;AAAA;AAAA,YACnC;AAAA,aACF,IACE;AAAA,UAEJ,4CAAC,SAAI,WAAU,0DACZ,iBAAO,IAAI,CAAC,GAAG,QACd;AAAA,YAAC;AAAA;AAAA,cACC,MAAK;AAAA,cAEL,cAAY,kBAAkB,MAAM,CAAC;AAAA,cACrC,eAAW;AAAA,gBACT;AAAA,gBACA,QAAQ,kBAAkB,aAAa;AAAA,cACzC;AAAA,cACA,SAAS,MAAM,mBAAmB,GAAG;AAAA;AAAA,YANhC,GAAG,KAAK,QAAQ,GAAG;AAAA,UAO1B,CACD,GACH;AAAA,UAEA,4CAAC,SAAI,WAAU,mFACZ,yBACE,QAAQ,aAAa,OAAO,kBAAkB,CAAC,CAAC,EAChD,QAAQ,WAAW,OAAO,OAAO,MAAM,CAAC,GAC7C;AAAA,WACF;AAAA,SACF;AAAA,SAnEW,GAAG,KAAK,aAAa,KAAK,EAoEvC,CACD,GACH;AAAA,KACF,GACF;AAEJ;AAEA,IAAO,wCAAQ;","names":[]}
@@ -0,0 +1,94 @@
1
+ "use client";
2
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
+ import { useState } from "react";
4
+ import { ChevronLeft, ChevronRight, X } from "lucide-react";
5
+ import { Button } from "../../../ui/button.mjs";
6
+ import { Card, CardContent } from "../../../ui/card.mjs";
7
+ import { Dialog, DialogClose, DialogContent, DialogTitle, DialogTrigger } from "../../../ui/dialog.mjs";
8
+ import { cn } from "../../../lib/utils.mjs";
9
+ function ProductOverviewLightboxTab({
10
+ images,
11
+ title,
12
+ galleryLabel = "Galer\xEDa",
13
+ ofCounterLabel = "{current} de {total}"
14
+ }) {
15
+ const [modalImageIndex, setModalImageIndex] = useState(0);
16
+ const nextImage = () => setModalImageIndex((prev) => (prev + 1) % images.length);
17
+ const prevImage = () => setModalImageIndex((prev) => (prev - 1 + images.length) % images.length);
18
+ return /* @__PURE__ */ jsx(Card, { className: "border shadow-none", children: /* @__PURE__ */ jsxs(CardContent, { className: "p-8 py-0", children: [
19
+ /* @__PURE__ */ jsx("h3", { className: "mb-6 text-xl font-semibold text-balance", children: galleryLabel }),
20
+ /* @__PURE__ */ jsx("div", { className: "grid gap-4 sm:grid-cols-2 lg:grid-cols-3", children: images.map((image, index) => /* @__PURE__ */ jsxs(Dialog, { children: [
21
+ /* @__PURE__ */ jsx(DialogTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
22
+ "button",
23
+ {
24
+ type: "button",
25
+ className: "block aspect-square cursor-pointer overflow-hidden rounded-xl",
26
+ onClick: () => setModalImageIndex(index),
27
+ "aria-label": `Abrir imagen ${index + 1} de ${title}`,
28
+ children: /* @__PURE__ */ jsx("img", { src: image || void 0, alt: `${title} ${index + 1}`, className: "size-full object-cover" })
29
+ }
30
+ ) }),
31
+ /* @__PURE__ */ jsxs(DialogContent, { className: "max-w-4xl border-0 bg-transparent p-0", showCloseButton: false, children: [
32
+ /* @__PURE__ */ jsxs(DialogTitle, { className: "sr-only", children: [
33
+ "Imagen de galer\xEDa ",
34
+ modalImageIndex + 1
35
+ ] }),
36
+ /* @__PURE__ */ jsxs("div", { className: "relative", children: [
37
+ /* @__PURE__ */ jsx(
38
+ "img",
39
+ {
40
+ src: images[modalImageIndex] || void 0,
41
+ alt: `${title} ${modalImageIndex + 1}`,
42
+ className: "max-h-[80vh] w-full object-contain"
43
+ }
44
+ ),
45
+ /* @__PURE__ */ jsx(DialogClose, { className: "absolute top-4 right-4 rounded-full bg-black/20 p-2 text-white transition-colors hover:bg-black/30", children: /* @__PURE__ */ jsx(X, { className: "size-4" }) }),
46
+ images.length > 1 ? /* @__PURE__ */ jsxs(Fragment, { children: [
47
+ /* @__PURE__ */ jsx(
48
+ Button,
49
+ {
50
+ variant: "ghost",
51
+ size: "icon",
52
+ className: "absolute top-1/2 left-4 size-9 -translate-y-1/2 cursor-pointer rounded-full bg-black/20 text-white hover:bg-black/30",
53
+ onClick: prevImage,
54
+ "aria-label": "Imagen anterior",
55
+ children: /* @__PURE__ */ jsx(ChevronLeft, { className: "size-4" })
56
+ }
57
+ ),
58
+ /* @__PURE__ */ jsx(
59
+ Button,
60
+ {
61
+ variant: "ghost",
62
+ size: "icon",
63
+ className: "absolute top-1/2 right-4 size-9 -translate-y-1/2 cursor-pointer rounded-full bg-black/20 text-white hover:bg-black/30",
64
+ onClick: nextImage,
65
+ "aria-label": "Imagen siguiente",
66
+ children: /* @__PURE__ */ jsx(ChevronRight, { className: "size-4" })
67
+ }
68
+ )
69
+ ] }) : null,
70
+ /* @__PURE__ */ jsx("div", { className: "absolute bottom-4 left-1/2 flex -translate-x-1/2 gap-2", children: images.map((_, idx) => /* @__PURE__ */ jsx(
71
+ "button",
72
+ {
73
+ type: "button",
74
+ "aria-label": `Mostrar imagen ${idx + 1}`,
75
+ className: cn(
76
+ "size-2 rounded-full transition-colors",
77
+ idx === modalImageIndex ? "bg-white" : "bg-white/50"
78
+ ),
79
+ onClick: () => setModalImageIndex(idx)
80
+ },
81
+ `${title}:dot:${idx}`
82
+ )) }),
83
+ /* @__PURE__ */ jsx("div", { className: "absolute right-4 bottom-4 rounded-full bg-black/20 px-3 py-1 text-sm text-white", children: ofCounterLabel.replace("{current}", String(modalImageIndex + 1)).replace("{total}", String(images.length)) })
84
+ ] })
85
+ ] })
86
+ ] }, `${title}:lightbox:${index}`)) })
87
+ ] }) });
88
+ }
89
+ var product_overview_lightbox_tab_default = ProductOverviewLightboxTab;
90
+ export {
91
+ ProductOverviewLightboxTab,
92
+ product_overview_lightbox_tab_default as default
93
+ };
94
+ //# sourceMappingURL=product-overview-lightbox-tab.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/blocks/e-commerce/product-overview/product-overview-lightbox-tab.tsx"],"sourcesContent":["'use client'\n\nimport { useState } from 'react'\nimport { ChevronLeft, ChevronRight, X } from 'lucide-react'\nimport { Button } from '../../../ui/button'\nimport { Card, CardContent } from '../../../ui/card'\nimport { Dialog, DialogClose, DialogContent, DialogTitle, DialogTrigger } from '../../../ui/dialog'\nimport { cn } from '../../../lib/utils'\n\nexport interface ProductOverviewLightboxTabProps {\n /** Resolved image URLs for the product. */\n images: string[]\n /** Product title, used for alt text. */\n title: string\n galleryLabel?: string\n ofCounterLabel?: string\n}\n\n/**\n * Gallery panel for the `rich` presentation: a thumbnail grid that opens a lightbox with\n * prev/next navigation. Operates on already-resolved URLs so it carries no sector assumption.\n */\nexport function ProductOverviewLightboxTab({\n images,\n title,\n galleryLabel = 'Galería',\n ofCounterLabel = '{current} de {total}',\n}: ProductOverviewLightboxTabProps) {\n const [modalImageIndex, setModalImageIndex] = useState(0)\n\n const nextImage = () => setModalImageIndex(prev => (prev + 1) % images.length)\n const prevImage = () => setModalImageIndex(prev => (prev - 1 + images.length) % images.length)\n\n return (\n <Card className='border shadow-none'>\n <CardContent className='p-8 py-0'>\n <h3 className='mb-6 text-xl font-semibold text-balance'>{galleryLabel}</h3>\n <div className='grid gap-4 sm:grid-cols-2 lg:grid-cols-3'>\n {images.map((image, index) => (\n <Dialog key={`${title}:lightbox:${index}`}>\n <DialogTrigger asChild>\n <button\n type='button'\n className='block aspect-square cursor-pointer overflow-hidden rounded-xl'\n onClick={() => setModalImageIndex(index)}\n aria-label={`Abrir imagen ${index + 1} de ${title}`}\n >\n <img src={image || undefined} alt={`${title} ${index + 1}`} className='size-full object-cover' />\n </button>\n </DialogTrigger>\n <DialogContent className='max-w-4xl border-0 bg-transparent p-0' showCloseButton={false}>\n <DialogTitle className='sr-only'>Imagen de galería {modalImageIndex + 1}</DialogTitle>\n <div className='relative'>\n <img\n src={images[modalImageIndex] || undefined}\n alt={`${title} ${modalImageIndex + 1}`}\n className='max-h-[80vh] w-full object-contain'\n />\n <DialogClose className='absolute top-4 right-4 rounded-full bg-black/20 p-2 text-white transition-colors hover:bg-black/30'>\n <X className='size-4' />\n </DialogClose>\n\n {images.length > 1 ? (\n <>\n <Button\n variant='ghost'\n size='icon'\n className='absolute top-1/2 left-4 size-9 -translate-y-1/2 cursor-pointer rounded-full bg-black/20 text-white hover:bg-black/30'\n onClick={prevImage}\n aria-label='Imagen anterior'\n >\n <ChevronLeft className='size-4' />\n </Button>\n <Button\n variant='ghost'\n size='icon'\n className='absolute top-1/2 right-4 size-9 -translate-y-1/2 cursor-pointer rounded-full bg-black/20 text-white hover:bg-black/30'\n onClick={nextImage}\n aria-label='Imagen siguiente'\n >\n <ChevronRight className='size-4' />\n </Button>\n </>\n ) : null}\n\n <div className='absolute bottom-4 left-1/2 flex -translate-x-1/2 gap-2'>\n {images.map((_, idx) => (\n <button\n type='button'\n key={`${title}:dot:${idx}`}\n aria-label={`Mostrar imagen ${idx + 1}`}\n className={cn(\n 'size-2 rounded-full transition-colors',\n idx === modalImageIndex ? 'bg-white' : 'bg-white/50',\n )}\n onClick={() => setModalImageIndex(idx)}\n />\n ))}\n </div>\n\n <div className='absolute right-4 bottom-4 rounded-full bg-black/20 px-3 py-1 text-sm text-white'>\n {ofCounterLabel\n .replace('{current}', String(modalImageIndex + 1))\n .replace('{total}', String(images.length))}\n </div>\n </div>\n </DialogContent>\n </Dialog>\n ))}\n </div>\n </CardContent>\n </Card>\n )\n}\n\nexport default ProductOverviewLightboxTab\n"],"mappings":";AAoCQ,SA2BY,UA3BZ,KAeQ,YAfR;AAlCR,SAAS,gBAAgB;AACzB,SAAS,aAAa,cAAc,SAAS;AAC7C,SAAS,cAAc;AACvB,SAAS,MAAM,mBAAmB;AAClC,SAAS,QAAQ,aAAa,eAAe,aAAa,qBAAqB;AAC/E,SAAS,UAAU;AAeZ,SAAS,2BAA2B;AAAA,EACzC;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf,iBAAiB;AACnB,GAAoC;AAClC,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,SAAS,CAAC;AAExD,QAAM,YAAY,MAAM,mBAAmB,WAAS,OAAO,KAAK,OAAO,MAAM;AAC7E,QAAM,YAAY,MAAM,mBAAmB,WAAS,OAAO,IAAI,OAAO,UAAU,OAAO,MAAM;AAE7F,SACE,oBAAC,QAAK,WAAU,sBACd,+BAAC,eAAY,WAAU,YACrB;AAAA,wBAAC,QAAG,WAAU,2CAA2C,wBAAa;AAAA,IACtE,oBAAC,SAAI,WAAU,4CACZ,iBAAO,IAAI,CAAC,OAAO,UAClB,qBAAC,UACC;AAAA,0BAAC,iBAAc,SAAO,MACpB;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,WAAU;AAAA,UACV,SAAS,MAAM,mBAAmB,KAAK;AAAA,UACvC,cAAY,gBAAgB,QAAQ,CAAC,OAAO,KAAK;AAAA,UAEjD,8BAAC,SAAI,KAAK,SAAS,QAAW,KAAK,GAAG,KAAK,IAAI,QAAQ,CAAC,IAAI,WAAU,0BAAyB;AAAA;AAAA,MACjG,GACF;AAAA,MACA,qBAAC,iBAAc,WAAU,yCAAwC,iBAAiB,OAChF;AAAA,6BAAC,eAAY,WAAU,WAAU;AAAA;AAAA,UAAmB,kBAAkB;AAAA,WAAE;AAAA,QACxE,qBAAC,SAAI,WAAU,YACb;AAAA;AAAA,YAAC;AAAA;AAAA,cACC,KAAK,OAAO,eAAe,KAAK;AAAA,cAChC,KAAK,GAAG,KAAK,IAAI,kBAAkB,CAAC;AAAA,cACpC,WAAU;AAAA;AAAA,UACZ;AAAA,UACA,oBAAC,eAAY,WAAU,sGACrB,8BAAC,KAAE,WAAU,UAAS,GACxB;AAAA,UAEC,OAAO,SAAS,IACf,iCACE;AAAA;AAAA,cAAC;AAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,MAAK;AAAA,gBACL,WAAU;AAAA,gBACV,SAAS;AAAA,gBACT,cAAW;AAAA,gBAEX,8BAAC,eAAY,WAAU,UAAS;AAAA;AAAA,YAClC;AAAA,YACA;AAAA,cAAC;AAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,MAAK;AAAA,gBACL,WAAU;AAAA,gBACV,SAAS;AAAA,gBACT,cAAW;AAAA,gBAEX,8BAAC,gBAAa,WAAU,UAAS;AAAA;AAAA,YACnC;AAAA,aACF,IACE;AAAA,UAEJ,oBAAC,SAAI,WAAU,0DACZ,iBAAO,IAAI,CAAC,GAAG,QACd;AAAA,YAAC;AAAA;AAAA,cACC,MAAK;AAAA,cAEL,cAAY,kBAAkB,MAAM,CAAC;AAAA,cACrC,WAAW;AAAA,gBACT;AAAA,gBACA,QAAQ,kBAAkB,aAAa;AAAA,cACzC;AAAA,cACA,SAAS,MAAM,mBAAmB,GAAG;AAAA;AAAA,YANhC,GAAG,KAAK,QAAQ,GAAG;AAAA,UAO1B,CACD,GACH;AAAA,UAEA,oBAAC,SAAI,WAAU,mFACZ,yBACE,QAAQ,aAAa,OAAO,kBAAkB,CAAC,CAAC,EAChD,QAAQ,WAAW,OAAO,OAAO,MAAM,CAAC,GAC7C;AAAA,WACF;AAAA,SACF;AAAA,SAnEW,GAAG,KAAK,aAAa,KAAK,EAoEvC,CACD,GACH;AAAA,KACF,GACF;AAEJ;AAEA,IAAO,wCAAQ;","names":[]}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Canonical review entry for the ProductOverview `rich` presentation. Reviews are supplied by the
3
+ * host (optional block data), never seeded by the block.
4
+ */
5
+ export interface ProductOverviewReview {
6
+ id: number;
7
+ author: string;
8
+ rating: number;
9
+ comment: string;
10
+ date: string;
11
+ helpful?: number;
12
+ }
13
+ export interface ProductOverviewReviewsTabProps {
14
+ /** Aggregate rating (0–5); rendered only when the host supplies reviews. */
15
+ rating: number;
16
+ reviews: ProductOverviewReview[];
17
+ basedOnReviewsLabel?: string;
18
+ foundHelpfulLabel?: string;
19
+ }
20
+ /**
21
+ * Reviews panel for the `rich` presentation: an aggregate summary plus the review list. Rendered
22
+ * only when the host supplies reviews, so it never fabricates an empty review surface.
23
+ */
24
+ export declare function ProductOverviewReviewsTab({ rating, reviews, basedOnReviewsLabel, foundHelpfulLabel, }: ProductOverviewReviewsTabProps): import("react").JSX.Element;
25
+ export default ProductOverviewReviewsTab;
26
+ //# sourceMappingURL=product-overview-reviews-tab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product-overview-reviews-tab.d.ts","sourceRoot":"","sources":["../../../../src/blocks/e-commerce/product-overview/product-overview-reviews-tab.tsx"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,8BAA8B;IAC7C,4EAA4E;IAC5E,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,qBAAqB,EAAE,CAAA;IAChC,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAeD;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,EACxC,MAAM,EACN,OAAO,EACP,mBAAiD,EACjD,iBAA4D,GAC7D,EAAE,8BAA8B,+BAuDhC;AAED,eAAe,yBAAyB,CAAA"}
@@ -0,0 +1,85 @@
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 product_overview_reviews_tab_exports = {};
20
+ __export(product_overview_reviews_tab_exports, {
21
+ ProductOverviewReviewsTab: () => ProductOverviewReviewsTab,
22
+ default: () => product_overview_reviews_tab_default
23
+ });
24
+ module.exports = __toCommonJS(product_overview_reviews_tab_exports);
25
+ var import_jsx_runtime = require("react/jsx-runtime");
26
+ var import_lucide_react = require("lucide-react");
27
+ var import_card = require("../../../ui/card.js");
28
+ var import_progress = require("../../../ui/progress.js");
29
+ function renderStars(rating) {
30
+ return Array.from({ length: 5 }, (_, i) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
31
+ import_lucide_react.Star,
32
+ {
33
+ className: `size-4 ${i < Math.floor(rating) ? "fill-foreground text-foreground" : i < rating ? "text-foreground" : ""}`
34
+ },
35
+ i
36
+ ));
37
+ }
38
+ function formatDate(dateString) {
39
+ return new Date(dateString).toLocaleDateString("es-ES", { year: "numeric", month: "short", day: "numeric" });
40
+ }
41
+ function ProductOverviewReviewsTab({
42
+ rating,
43
+ reviews,
44
+ basedOnReviewsLabel = "Basado en {count} rese\xF1as",
45
+ foundHelpfulLabel = "{count} personas encontraron esto \xFAtil"
46
+ }) {
47
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex flex-col gap-6", children: [
48
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_card.Card, { className: "border shadow-none", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_card.CardContent, { className: "p-8 py-0", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex flex-col items-start gap-8 md:flex-row md:items-center", children: [
49
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "text-center", children: [
50
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "text-4xl font-bold", children: rating }),
51
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "mt-2 flex justify-center", children: renderStars(rating) }),
52
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "text-muted-foreground mt-2 text-sm", children: basedOnReviewsLabel.replace("{count}", String(reviews.length)) })
53
+ ] }),
54
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "flex-1", children: [5, 4, 3, 2, 1].map((stars) => {
55
+ const count = reviews.filter((review) => Math.floor(review.rating) === stars).length;
56
+ const percentage = reviews.length > 0 ? count / reviews.length * 100 : 0;
57
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "mb-3 flex items-center gap-3", children: [
58
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { className: "w-8 text-sm font-medium", children: [
59
+ stars,
60
+ "\u2605"
61
+ ] }),
62
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_progress.Progress, { value: percentage, className: "h-2 flex-1 rounded-full" }),
63
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "text-muted-foreground w-8 text-sm", children: count })
64
+ ] }, stars);
65
+ }) })
66
+ ] }) }) }),
67
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "flex flex-col gap-4", children: reviews.map((review) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_card.Card, { className: "border shadow-none", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_card.CardContent, { className: "p-6 py-0", children: [
68
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "mb-4 flex items-start justify-between", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [
69
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "text-sm font-medium", children: review.author }),
70
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "mt-2 flex items-center gap-2", children: [
71
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "flex", children: renderStars(review.rating) }),
72
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "text-muted-foreground text-sm", children: formatDate(review.date) })
73
+ ] })
74
+ ] }) }),
75
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "text-muted-foreground mb-3 text-sm leading-relaxed", children: review.comment }),
76
+ typeof review.helpful === "number" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "text-muted-foreground text-xs", children: foundHelpfulLabel.replace("{count}", String(review.helpful)) }) : null
77
+ ] }) }, review.id)) })
78
+ ] });
79
+ }
80
+ var product_overview_reviews_tab_default = ProductOverviewReviewsTab;
81
+ // Annotate the CommonJS export names for ESM import in node:
82
+ 0 && (module.exports = {
83
+ ProductOverviewReviewsTab
84
+ });
85
+ //# sourceMappingURL=product-overview-reviews-tab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/blocks/e-commerce/product-overview/product-overview-reviews-tab.tsx"],"sourcesContent":["import { Star } from 'lucide-react'\nimport { Card, CardContent } from '../../../ui/card'\nimport { Progress } from '../../../ui/progress'\n\n/**\n * Canonical review entry for the ProductOverview `rich` presentation. Reviews are supplied by the\n * host (optional block data), never seeded by the block.\n */\nexport interface ProductOverviewReview {\n id: number\n author: string\n rating: number\n comment: string\n date: string\n helpful?: number\n}\n\nexport interface ProductOverviewReviewsTabProps {\n /** Aggregate rating (0–5); rendered only when the host supplies reviews. */\n rating: number\n reviews: ProductOverviewReview[]\n basedOnReviewsLabel?: string\n foundHelpfulLabel?: string\n}\n\nfunction renderStars(rating: number) {\n return Array.from({ length: 5 }, (_, i) => (\n <Star\n key={i}\n className={`size-4 ${i < Math.floor(rating) ? 'fill-foreground text-foreground' : i < rating ? 'text-foreground' : ''}`}\n />\n ))\n}\n\nfunction formatDate(dateString: string) {\n return new Date(dateString).toLocaleDateString('es-ES', { year: 'numeric', month: 'short', day: 'numeric' })\n}\n\n/**\n * Reviews panel for the `rich` presentation: an aggregate summary plus the review list. Rendered\n * only when the host supplies reviews, so it never fabricates an empty review surface.\n */\nexport function ProductOverviewReviewsTab({\n rating,\n reviews,\n basedOnReviewsLabel = 'Basado en {count} reseñas',\n foundHelpfulLabel = '{count} personas encontraron esto útil',\n}: ProductOverviewReviewsTabProps) {\n return (\n <div className='flex flex-col gap-6'>\n <Card className='border shadow-none'>\n <CardContent className='p-8 py-0'>\n <div className='flex flex-col items-start gap-8 md:flex-row md:items-center'>\n <div className='text-center'>\n <div className='text-4xl font-bold'>{rating}</div>\n <div className='mt-2 flex justify-center'>{renderStars(rating)}</div>\n <div className='text-muted-foreground mt-2 text-sm'>\n {basedOnReviewsLabel.replace('{count}', String(reviews.length))}\n </div>\n </div>\n <div className='flex-1'>\n {[5, 4, 3, 2, 1].map(stars => {\n const count = reviews.filter(review => Math.floor(review.rating) === stars).length\n const percentage = reviews.length > 0 ? (count / reviews.length) * 100 : 0\n return (\n <div key={stars} className='mb-3 flex items-center gap-3'>\n <span className='w-8 text-sm font-medium'>{stars}★</span>\n <Progress value={percentage} className='h-2 flex-1 rounded-full' />\n <span className='text-muted-foreground w-8 text-sm'>{count}</span>\n </div>\n )\n })}\n </div>\n </div>\n </CardContent>\n </Card>\n\n <div className='flex flex-col gap-4'>\n {reviews.map(review => (\n <Card key={review.id} className='border shadow-none'>\n <CardContent className='p-6 py-0'>\n <div className='mb-4 flex items-start justify-between'>\n <div>\n <div className='text-sm font-medium'>{review.author}</div>\n <div className='mt-2 flex items-center gap-2'>\n <div className='flex'>{renderStars(review.rating)}</div>\n <span className='text-muted-foreground text-sm'>{formatDate(review.date)}</span>\n </div>\n </div>\n </div>\n <p className='text-muted-foreground mb-3 text-sm leading-relaxed'>{review.comment}</p>\n {typeof review.helpful === 'number' ? (\n <div className='text-muted-foreground text-xs'>\n {foundHelpfulLabel.replace('{count}', String(review.helpful))}\n </div>\n ) : null}\n </CardContent>\n </Card>\n ))}\n </div>\n </div>\n )\n}\n\nexport default ProductOverviewReviewsTab\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2BI;AA3BJ,0BAAqB;AACrB,kBAAkC;AAClC,sBAAyB;AAuBzB,SAAS,YAAY,QAAgB;AACnC,SAAO,MAAM,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,GAAG,MACnC;AAAA,IAAC;AAAA;AAAA,MAEC,WAAW,UAAU,IAAI,KAAK,MAAM,MAAM,IAAI,oCAAoC,IAAI,SAAS,oBAAoB,EAAE;AAAA;AAAA,IADhH;AAAA,EAEP,CACD;AACH;AAEA,SAAS,WAAW,YAAoB;AACtC,SAAO,IAAI,KAAK,UAAU,EAAE,mBAAmB,SAAS,EAAE,MAAM,WAAW,OAAO,SAAS,KAAK,UAAU,CAAC;AAC7G;AAMO,SAAS,0BAA0B;AAAA,EACxC;AAAA,EACA;AAAA,EACA,sBAAsB;AAAA,EACtB,oBAAoB;AACtB,GAAmC;AACjC,SACE,6CAAC,SAAI,WAAU,uBACb;AAAA,gDAAC,oBAAK,WAAU,sBACd,sDAAC,2BAAY,WAAU,YACrB,uDAAC,SAAI,WAAU,+DACb;AAAA,mDAAC,SAAI,WAAU,eACb;AAAA,oDAAC,SAAI,WAAU,sBAAsB,kBAAO;AAAA,QAC5C,4CAAC,SAAI,WAAU,4BAA4B,sBAAY,MAAM,GAAE;AAAA,QAC/D,4CAAC,SAAI,WAAU,sCACZ,8BAAoB,QAAQ,WAAW,OAAO,QAAQ,MAAM,CAAC,GAChE;AAAA,SACF;AAAA,MACA,4CAAC,SAAI,WAAU,UACZ,WAAC,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,IAAI,WAAS;AAC5B,cAAM,QAAQ,QAAQ,OAAO,YAAU,KAAK,MAAM,OAAO,MAAM,MAAM,KAAK,EAAE;AAC5E,cAAM,aAAa,QAAQ,SAAS,IAAK,QAAQ,QAAQ,SAAU,MAAM;AACzE,eACE,6CAAC,SAAgB,WAAU,gCACzB;AAAA,uDAAC,UAAK,WAAU,2BAA2B;AAAA;AAAA,YAAM;AAAA,aAAC;AAAA,UAClD,4CAAC,4BAAS,OAAO,YAAY,WAAU,2BAA0B;AAAA,UACjE,4CAAC,UAAK,WAAU,qCAAqC,iBAAM;AAAA,aAHnD,KAIV;AAAA,MAEJ,CAAC,GACH;AAAA,OACF,GACF,GACF;AAAA,IAEA,4CAAC,SAAI,WAAU,uBACZ,kBAAQ,IAAI,YACX,4CAAC,oBAAqB,WAAU,sBAC9B,uDAAC,2BAAY,WAAU,YACrB;AAAA,kDAAC,SAAI,WAAU,yCACb,uDAAC,SACC;AAAA,oDAAC,SAAI,WAAU,uBAAuB,iBAAO,QAAO;AAAA,QACpD,6CAAC,SAAI,WAAU,gCACb;AAAA,sDAAC,SAAI,WAAU,QAAQ,sBAAY,OAAO,MAAM,GAAE;AAAA,UAClD,4CAAC,UAAK,WAAU,iCAAiC,qBAAW,OAAO,IAAI,GAAE;AAAA,WAC3E;AAAA,SACF,GACF;AAAA,MACA,4CAAC,OAAE,WAAU,sDAAsD,iBAAO,SAAQ;AAAA,MACjF,OAAO,OAAO,YAAY,WACzB,4CAAC,SAAI,WAAU,iCACZ,4BAAkB,QAAQ,WAAW,OAAO,OAAO,OAAO,CAAC,GAC9D,IACE;AAAA,OACN,KAjBS,OAAO,EAkBlB,CACD,GACH;AAAA,KACF;AAEJ;AAEA,IAAO,uCAAQ;","names":[]}
@@ -0,0 +1,61 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { Star } from "lucide-react";
3
+ import { Card, CardContent } from "../../../ui/card.mjs";
4
+ import { Progress } from "../../../ui/progress.mjs";
5
+ function renderStars(rating) {
6
+ return Array.from({ length: 5 }, (_, i) => /* @__PURE__ */ jsx(
7
+ Star,
8
+ {
9
+ className: `size-4 ${i < Math.floor(rating) ? "fill-foreground text-foreground" : i < rating ? "text-foreground" : ""}`
10
+ },
11
+ i
12
+ ));
13
+ }
14
+ function formatDate(dateString) {
15
+ return new Date(dateString).toLocaleDateString("es-ES", { year: "numeric", month: "short", day: "numeric" });
16
+ }
17
+ function ProductOverviewReviewsTab({
18
+ rating,
19
+ reviews,
20
+ basedOnReviewsLabel = "Basado en {count} rese\xF1as",
21
+ foundHelpfulLabel = "{count} personas encontraron esto \xFAtil"
22
+ }) {
23
+ return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-6", children: [
24
+ /* @__PURE__ */ jsx(Card, { className: "border shadow-none", children: /* @__PURE__ */ jsx(CardContent, { className: "p-8 py-0", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-start gap-8 md:flex-row md:items-center", children: [
25
+ /* @__PURE__ */ jsxs("div", { className: "text-center", children: [
26
+ /* @__PURE__ */ jsx("div", { className: "text-4xl font-bold", children: rating }),
27
+ /* @__PURE__ */ jsx("div", { className: "mt-2 flex justify-center", children: renderStars(rating) }),
28
+ /* @__PURE__ */ jsx("div", { className: "text-muted-foreground mt-2 text-sm", children: basedOnReviewsLabel.replace("{count}", String(reviews.length)) })
29
+ ] }),
30
+ /* @__PURE__ */ jsx("div", { className: "flex-1", children: [5, 4, 3, 2, 1].map((stars) => {
31
+ const count = reviews.filter((review) => Math.floor(review.rating) === stars).length;
32
+ const percentage = reviews.length > 0 ? count / reviews.length * 100 : 0;
33
+ return /* @__PURE__ */ jsxs("div", { className: "mb-3 flex items-center gap-3", children: [
34
+ /* @__PURE__ */ jsxs("span", { className: "w-8 text-sm font-medium", children: [
35
+ stars,
36
+ "\u2605"
37
+ ] }),
38
+ /* @__PURE__ */ jsx(Progress, { value: percentage, className: "h-2 flex-1 rounded-full" }),
39
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground w-8 text-sm", children: count })
40
+ ] }, stars);
41
+ }) })
42
+ ] }) }) }),
43
+ /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-4", children: reviews.map((review) => /* @__PURE__ */ jsx(Card, { className: "border shadow-none", children: /* @__PURE__ */ jsxs(CardContent, { className: "p-6 py-0", children: [
44
+ /* @__PURE__ */ jsx("div", { className: "mb-4 flex items-start justify-between", children: /* @__PURE__ */ jsxs("div", { children: [
45
+ /* @__PURE__ */ jsx("div", { className: "text-sm font-medium", children: review.author }),
46
+ /* @__PURE__ */ jsxs("div", { className: "mt-2 flex items-center gap-2", children: [
47
+ /* @__PURE__ */ jsx("div", { className: "flex", children: renderStars(review.rating) }),
48
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground text-sm", children: formatDate(review.date) })
49
+ ] })
50
+ ] }) }),
51
+ /* @__PURE__ */ jsx("p", { className: "text-muted-foreground mb-3 text-sm leading-relaxed", children: review.comment }),
52
+ typeof review.helpful === "number" ? /* @__PURE__ */ jsx("div", { className: "text-muted-foreground text-xs", children: foundHelpfulLabel.replace("{count}", String(review.helpful)) }) : null
53
+ ] }) }, review.id)) })
54
+ ] });
55
+ }
56
+ var product_overview_reviews_tab_default = ProductOverviewReviewsTab;
57
+ export {
58
+ ProductOverviewReviewsTab,
59
+ product_overview_reviews_tab_default as default
60
+ };
61
+ //# sourceMappingURL=product-overview-reviews-tab.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/blocks/e-commerce/product-overview/product-overview-reviews-tab.tsx"],"sourcesContent":["import { Star } from 'lucide-react'\nimport { Card, CardContent } from '../../../ui/card'\nimport { Progress } from '../../../ui/progress'\n\n/**\n * Canonical review entry for the ProductOverview `rich` presentation. Reviews are supplied by the\n * host (optional block data), never seeded by the block.\n */\nexport interface ProductOverviewReview {\n id: number\n author: string\n rating: number\n comment: string\n date: string\n helpful?: number\n}\n\nexport interface ProductOverviewReviewsTabProps {\n /** Aggregate rating (0–5); rendered only when the host supplies reviews. */\n rating: number\n reviews: ProductOverviewReview[]\n basedOnReviewsLabel?: string\n foundHelpfulLabel?: string\n}\n\nfunction renderStars(rating: number) {\n return Array.from({ length: 5 }, (_, i) => (\n <Star\n key={i}\n className={`size-4 ${i < Math.floor(rating) ? 'fill-foreground text-foreground' : i < rating ? 'text-foreground' : ''}`}\n />\n ))\n}\n\nfunction formatDate(dateString: string) {\n return new Date(dateString).toLocaleDateString('es-ES', { year: 'numeric', month: 'short', day: 'numeric' })\n}\n\n/**\n * Reviews panel for the `rich` presentation: an aggregate summary plus the review list. Rendered\n * only when the host supplies reviews, so it never fabricates an empty review surface.\n */\nexport function ProductOverviewReviewsTab({\n rating,\n reviews,\n basedOnReviewsLabel = 'Basado en {count} reseñas',\n foundHelpfulLabel = '{count} personas encontraron esto útil',\n}: ProductOverviewReviewsTabProps) {\n return (\n <div className='flex flex-col gap-6'>\n <Card className='border shadow-none'>\n <CardContent className='p-8 py-0'>\n <div className='flex flex-col items-start gap-8 md:flex-row md:items-center'>\n <div className='text-center'>\n <div className='text-4xl font-bold'>{rating}</div>\n <div className='mt-2 flex justify-center'>{renderStars(rating)}</div>\n <div className='text-muted-foreground mt-2 text-sm'>\n {basedOnReviewsLabel.replace('{count}', String(reviews.length))}\n </div>\n </div>\n <div className='flex-1'>\n {[5, 4, 3, 2, 1].map(stars => {\n const count = reviews.filter(review => Math.floor(review.rating) === stars).length\n const percentage = reviews.length > 0 ? (count / reviews.length) * 100 : 0\n return (\n <div key={stars} className='mb-3 flex items-center gap-3'>\n <span className='w-8 text-sm font-medium'>{stars}★</span>\n <Progress value={percentage} className='h-2 flex-1 rounded-full' />\n <span className='text-muted-foreground w-8 text-sm'>{count}</span>\n </div>\n )\n })}\n </div>\n </div>\n </CardContent>\n </Card>\n\n <div className='flex flex-col gap-4'>\n {reviews.map(review => (\n <Card key={review.id} className='border shadow-none'>\n <CardContent className='p-6 py-0'>\n <div className='mb-4 flex items-start justify-between'>\n <div>\n <div className='text-sm font-medium'>{review.author}</div>\n <div className='mt-2 flex items-center gap-2'>\n <div className='flex'>{renderStars(review.rating)}</div>\n <span className='text-muted-foreground text-sm'>{formatDate(review.date)}</span>\n </div>\n </div>\n </div>\n <p className='text-muted-foreground mb-3 text-sm leading-relaxed'>{review.comment}</p>\n {typeof review.helpful === 'number' ? (\n <div className='text-muted-foreground text-xs'>\n {foundHelpfulLabel.replace('{count}', String(review.helpful))}\n </div>\n ) : null}\n </CardContent>\n </Card>\n ))}\n </div>\n </div>\n )\n}\n\nexport default ProductOverviewReviewsTab\n"],"mappings":"AA2BI,cA0BQ,YA1BR;AA3BJ,SAAS,YAAY;AACrB,SAAS,MAAM,mBAAmB;AAClC,SAAS,gBAAgB;AAuBzB,SAAS,YAAY,QAAgB;AACnC,SAAO,MAAM,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,GAAG,MACnC;AAAA,IAAC;AAAA;AAAA,MAEC,WAAW,UAAU,IAAI,KAAK,MAAM,MAAM,IAAI,oCAAoC,IAAI,SAAS,oBAAoB,EAAE;AAAA;AAAA,IADhH;AAAA,EAEP,CACD;AACH;AAEA,SAAS,WAAW,YAAoB;AACtC,SAAO,IAAI,KAAK,UAAU,EAAE,mBAAmB,SAAS,EAAE,MAAM,WAAW,OAAO,SAAS,KAAK,UAAU,CAAC;AAC7G;AAMO,SAAS,0BAA0B;AAAA,EACxC;AAAA,EACA;AAAA,EACA,sBAAsB;AAAA,EACtB,oBAAoB;AACtB,GAAmC;AACjC,SACE,qBAAC,SAAI,WAAU,uBACb;AAAA,wBAAC,QAAK,WAAU,sBACd,8BAAC,eAAY,WAAU,YACrB,+BAAC,SAAI,WAAU,+DACb;AAAA,2BAAC,SAAI,WAAU,eACb;AAAA,4BAAC,SAAI,WAAU,sBAAsB,kBAAO;AAAA,QAC5C,oBAAC,SAAI,WAAU,4BAA4B,sBAAY,MAAM,GAAE;AAAA,QAC/D,oBAAC,SAAI,WAAU,sCACZ,8BAAoB,QAAQ,WAAW,OAAO,QAAQ,MAAM,CAAC,GAChE;AAAA,SACF;AAAA,MACA,oBAAC,SAAI,WAAU,UACZ,WAAC,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,IAAI,WAAS;AAC5B,cAAM,QAAQ,QAAQ,OAAO,YAAU,KAAK,MAAM,OAAO,MAAM,MAAM,KAAK,EAAE;AAC5E,cAAM,aAAa,QAAQ,SAAS,IAAK,QAAQ,QAAQ,SAAU,MAAM;AACzE,eACE,qBAAC,SAAgB,WAAU,gCACzB;AAAA,+BAAC,UAAK,WAAU,2BAA2B;AAAA;AAAA,YAAM;AAAA,aAAC;AAAA,UAClD,oBAAC,YAAS,OAAO,YAAY,WAAU,2BAA0B;AAAA,UACjE,oBAAC,UAAK,WAAU,qCAAqC,iBAAM;AAAA,aAHnD,KAIV;AAAA,MAEJ,CAAC,GACH;AAAA,OACF,GACF,GACF;AAAA,IAEA,oBAAC,SAAI,WAAU,uBACZ,kBAAQ,IAAI,YACX,oBAAC,QAAqB,WAAU,sBAC9B,+BAAC,eAAY,WAAU,YACrB;AAAA,0BAAC,SAAI,WAAU,yCACb,+BAAC,SACC;AAAA,4BAAC,SAAI,WAAU,uBAAuB,iBAAO,QAAO;AAAA,QACpD,qBAAC,SAAI,WAAU,gCACb;AAAA,8BAAC,SAAI,WAAU,QAAQ,sBAAY,OAAO,MAAM,GAAE;AAAA,UAClD,oBAAC,UAAK,WAAU,iCAAiC,qBAAW,OAAO,IAAI,GAAE;AAAA,WAC3E;AAAA,SACF,GACF;AAAA,MACA,oBAAC,OAAE,WAAU,sDAAsD,iBAAO,SAAQ;AAAA,MACjF,OAAO,OAAO,YAAY,WACzB,oBAAC,SAAI,WAAU,iCACZ,4BAAkB,QAAQ,WAAW,OAAO,OAAO,OAAO,CAAC,GAC9D,IACE;AAAA,OACN,KAjBS,OAAO,EAkBlB,CACD,GACH;AAAA,KACF;AAEJ;AAEA,IAAO,uCAAQ;","names":[]}
@@ -0,0 +1,32 @@
1
+ import { Tabs as TabsPrimitive } from '@base-ui/react/tabs';
2
+ /**
3
+ * The full tab set the canonical ProductOverview renders on for its `rich`
4
+ * presentation.
5
+ *
6
+ * The block's classes target Base UI state attributes (`data-active:bg-transparent` on the
7
+ * triggers), the indicator reads Base UI positioning CSS variables (`--active-tab-*`), and the
8
+ * content fade relies on Base UI unmounting the inactive panel - so the whole tabs area runs on
9
+ * Base UI rather than the Radix-backed shadcn `tabs`. It lives here rather than in the shared ui
10
+ * `tabs` so the block installs standalone: the shadcn `tabs` component you get from the registry
11
+ * has no indicator or fading panel.
12
+ */
13
+ export declare function ProductOverviewTabs(props: TabsPrimitive.Root.Props): import("react").JSX.Element;
14
+ export declare function ProductOverviewTabsList({ className, ...props }: TabsPrimitive.List.Props): import("react").JSX.Element;
15
+ /**
16
+ * Base UI's tab button carries no layout of its own, so the inline-flex centring that the
17
+ * Radix-backed shadcn trigger used to supply is re-stated here.
18
+ */
19
+ export declare function ProductOverviewTabsTrigger({ className, ...props }: TabsPrimitive.Tab.Props): import("react").JSX.Element;
20
+ /**
21
+ * Panel with a fade-in on every switch. Base UI unmounts the inactive panel by default, so each
22
+ * activation is a fresh mount - `animate-in` plays automatically without needing a transition-state
23
+ * data attribute to gate it.
24
+ */
25
+ export declare function ProductOverviewTabsContentFade({ className, ...props }: TabsPrimitive.Panel.Props): import("react").JSX.Element;
26
+ /**
27
+ * Sliding pill that tracks the active trigger. Render as the first child of TabsList, and pair
28
+ * with `data-active:bg-transparent` on the triggers so their own active background doesn't double
29
+ * up with the pill.
30
+ */
31
+ export declare function ProductOverviewTabsIndicator({ className, ...props }: TabsPrimitive.Indicator.Props): import("react").JSX.Element;
32
+ //# sourceMappingURL=product-overview-tabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product-overview-tabs.d.ts","sourceRoot":"","sources":["../../../../src/blocks/e-commerce/product-overview/product-overview-tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAI3D;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,+BAElE;AAED,wBAAgB,uBAAuB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,+BAExF;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,CAAC,GAAG,CAAC,KAAK,+BAQ1F;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,+BAOhG;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,CAAC,SAAS,CAAC,KAAK,+BAalG"}