cloudcommerce 2.0.8 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/.husky/pre-commit +4 -0
  2. package/.vscode/settings.json +7 -2
  3. package/CHANGELOG.md +24 -0
  4. package/LICENSE +21 -0
  5. package/action.yml +43 -3
  6. package/ecomplus-stores/barra-doce/.github/workflows/build-and-deploy.yml +1 -0
  7. package/ecomplus-stores/barra-doce/.husky/pre-commit +4 -0
  8. package/ecomplus-stores/barra-doce/.vscode/settings.json +7 -1
  9. package/ecomplus-stores/barra-doce/functions/many/package.json +3 -3
  10. package/ecomplus-stores/barra-doce/functions/ssr/.staged.eslintrc.cjs +6 -0
  11. package/ecomplus-stores/barra-doce/functions/ssr/package.json +8 -7
  12. package/ecomplus-stores/barra-doce/functions/ssr/src/components/AccountMenu.vue +4 -1
  13. package/ecomplus-stores/barra-doce/functions/ssr/src/components/AccountPage.vue +6 -3
  14. package/ecomplus-stores/barra-doce/functions/ssr/src/components/Banner.vue +2 -1
  15. package/ecomplus-stores/barra-doce/functions/ssr/src/components/BlogPosts.vue +8 -2
  16. package/ecomplus-stores/barra-doce/functions/ssr/src/components/Breadcrumbs.vue +4 -1
  17. package/ecomplus-stores/barra-doce/functions/ssr/src/components/CartItem.vue +4 -3
  18. package/ecomplus-stores/barra-doce/functions/ssr/src/components/CartSidebar.vue +1 -1
  19. package/ecomplus-stores/barra-doce/functions/ssr/src/components/CheckoutPage.vue +2 -2
  20. package/ecomplus-stores/barra-doce/functions/ssr/src/components/ContentEntry.vue +1 -1
  21. package/ecomplus-stores/barra-doce/functions/ssr/src/components/FooterStamps.vue +8 -6
  22. package/ecomplus-stores/barra-doce/functions/ssr/src/components/HeroSlider.vue +7 -3
  23. package/ecomplus-stores/barra-doce/functions/ssr/src/components/ImagesGallery.vue +13 -11
  24. package/ecomplus-stores/barra-doce/functions/ssr/src/components/LoginForm.vue +1 -1
  25. package/ecomplus-stores/barra-doce/functions/ssr/src/components/PitchBar.vue +5 -2
  26. package/ecomplus-stores/barra-doce/functions/ssr/src/components/Prices.vue +1 -1
  27. package/ecomplus-stores/barra-doce/functions/ssr/src/components/ProductCard.vue +13 -13
  28. package/ecomplus-stores/barra-doce/functions/ssr/src/components/ProductDetails.vue +1 -1
  29. package/ecomplus-stores/barra-doce/functions/ssr/src/components/ProductShelf.vue +9 -6
  30. package/ecomplus-stores/barra-doce/functions/ssr/src/components/SearchModal.vue +1 -1
  31. package/ecomplus-stores/barra-doce/functions/ssr/src/components/SearchShowcase.vue +8 -9
  32. package/ecomplus-stores/barra-doce/functions/ssr/src/components/ShopFooter.vue +15 -6
  33. package/ecomplus-stores/barra-doce/functions/ssr/src/components/ShopHeader.vue +11 -15
  34. package/ecomplus-stores/barra-doce/functions/ssr/src/components/ShopHeaderMenu.vue +6 -3
  35. package/ecomplus-stores/barra-doce/functions/ssr/src/components/ShopHeaderSubmenu.vue +7 -4
  36. package/ecomplus-stores/barra-doce/functions/ssr/src/components/ShopSidenav.vue +5 -2
  37. package/ecomplus-stores/barra-doce/functions/ssr/src/components/ShopSidenavCategory.vue +3 -2
  38. package/ecomplus-stores/barra-doce/functions/ssr/src/components/SkuSelector.vue +8 -5
  39. package/ecomplus-stores/barra-doce/functions/ssr/src/layouts/PageFooter.astro +1 -2
  40. package/ecomplus-stores/barra-doce/functions/ssr/src/layouts/PageHeader.astro +2 -1
  41. package/ecomplus-stores/barra-doce/functions/ssr/src/main/Fallback.astro +3 -3
  42. package/ecomplus-stores/barra-doce/functions/ssr/src/main/Main.astro +2 -2
  43. package/ecomplus-stores/barra-doce/functions/ssr/src/pages/[...slug].astro +13 -5
  44. package/ecomplus-stores/barra-doce/functions/ssr/src/scripts/InlineScripts.astro +8 -8
  45. package/ecomplus-stores/barra-doce/functions/with-apps/package.json +3 -3
  46. package/ecomplus-stores/barra-doce/package.json +10 -3
  47. package/ecomplus-stores/barra-doce/tailwind.config.cjs +5 -0
  48. package/ecomplus-stores/tia-sonia/.vscode/settings.json +7 -1
  49. package/package.json +13 -8
  50. package/packages/__skeleton/package.json +1 -1
  51. package/packages/api/lib/api.js +1 -1
  52. package/packages/api/lib/api.js.map +1 -1
  53. package/packages/api/package.json +2 -2
  54. package/packages/api/src/api.ts +1 -1
  55. package/packages/apps/affiliate-program/package.json +2 -2
  56. package/packages/apps/correios/package.json +2 -2
  57. package/packages/apps/custom-payment/package.json +2 -2
  58. package/packages/apps/custom-shipping/package.json +2 -2
  59. package/packages/apps/datafrete/package.json +2 -2
  60. package/packages/apps/discounts/package.json +2 -2
  61. package/packages/apps/emails/package.json +2 -2
  62. package/packages/apps/fb-conversions/package.json +2 -2
  63. package/packages/apps/flash-courier/package.json +2 -2
  64. package/packages/apps/frenet/package.json +2 -2
  65. package/packages/apps/galaxpay/package.json +2 -2
  66. package/packages/apps/google-analytics/package.json +2 -2
  67. package/packages/apps/jadlog/package.json +2 -2
  68. package/packages/apps/loyalty-points/package.json +2 -2
  69. package/packages/apps/mandae/package.json +2 -2
  70. package/packages/apps/melhor-envio/package.json +2 -2
  71. package/packages/apps/mercadopago/package.json +2 -2
  72. package/packages/apps/pagarme/package.json +2 -2
  73. package/packages/apps/pagarme-v5/package.json +2 -2
  74. package/packages/apps/paghiper/package.json +2 -2
  75. package/packages/apps/pix/package.json +2 -2
  76. package/packages/apps/tiny-erp/package.json +2 -2
  77. package/packages/apps/webhooks/package.json +2 -2
  78. package/packages/cli/ci/bunny-config-base.sh +169 -0
  79. package/packages/cli/ci/bunny-prepare-ab.sh +164 -0
  80. package/packages/cli/config/firebase.json +13 -0
  81. package/packages/cli/lib/cli.js +17 -3
  82. package/packages/cli/package.json +3 -2
  83. package/packages/cli/src/cli.ts +17 -7
  84. package/packages/config/package.json +2 -2
  85. package/packages/emails/package.json +2 -2
  86. package/packages/eslint/base.eslintrc.cjs +3 -2
  87. package/packages/eslint/package.json +5 -4
  88. package/packages/eslint/storefront.eslintrc.cjs +17 -2
  89. package/packages/eslint/storefront.staged.eslintrc.cjs +9 -0
  90. package/packages/events/package.json +2 -2
  91. package/packages/feeds/package.json +2 -2
  92. package/packages/firebase/package.json +3 -3
  93. package/packages/i18n/package.json +2 -2
  94. package/packages/modules/package.json +2 -2
  95. package/packages/passport/package.json +2 -2
  96. package/packages/ssr/package.json +6 -6
  97. package/packages/storefront/dist/client/_astro/{AccountPage.sfdU6Ju1.js → AccountPage.9BlGHXT3.js} +1 -1
  98. package/packages/storefront/dist/client/_astro/CartSidebar.55UgTcV0.js +1 -0
  99. package/packages/storefront/dist/client/_astro/{HeroSlider.GWgaYE3A.js → HeroSlider.XZb2xsyV.js} +1 -1
  100. package/packages/storefront/dist/client/_astro/{PitchBar._m4Oyh26.js → PitchBar.Nr7T3S3T.js} +1 -1
  101. package/packages/storefront/dist/client/_astro/{Prices.ij-wiXyI.js → Prices.Ye-m2HTo.js} +1 -1
  102. package/packages/storefront/dist/client/_astro/ProductDetails.ENLKdSz_.js +7 -0
  103. package/packages/storefront/dist/client/_astro/ProductShelf.CNf5JDrU.js +1 -0
  104. package/packages/storefront/dist/client/_astro/ProductShelf.lCBJky3e.js +1 -0
  105. package/packages/storefront/dist/client/_astro/{QuantitySelector.BLGwL_-E.js → QuantitySelector.tumfWDjC.js} +1 -1
  106. package/packages/storefront/dist/client/_astro/{SearchModal.3j8PYOg4.js → SearchModal.4osqtafp.js} +1 -1
  107. package/packages/storefront/dist/client/_astro/{SearchShowcase.na8UFES5.js → SearchShowcase.hg6TWrz3.js} +1 -1
  108. package/packages/storefront/dist/client/_astro/ShopHeader.xLMeJpqV.js +7 -0
  109. package/packages/storefront/dist/client/_astro/{_plugin-vue_export-helper.zwYIxbLv.js → _plugin-vue_export-helper.SO-0jCqa.js} +2 -2
  110. package/packages/storefront/dist/client/_astro/{_slug_.gHu56-HX.css → _slug_.r344YGqG.css} +1 -1
  111. package/packages/storefront/dist/client/_astro/client.ZhEmw4hZ.js +1 -0
  112. package/packages/storefront/dist/client/_astro/{customer-session.zys3PDaD.js → customer-session.hXdZh5Ii.js} +1 -1
  113. package/packages/storefront/dist/client/_astro/{format-money.85X7Tchr.js → format-money.iK5LGydz.js} +1 -1
  114. package/packages/storefront/dist/client/_astro/{grid-title.tJFKNjnT.js → grid-title.vGKBy72g.js} +1 -1
  115. package/packages/storefront/dist/client/_astro/{hoisted.J3ui9KfA.js → hoisted.HGTzAuTI.js} +1 -1
  116. package/packages/storefront/dist/client/_astro/{hoisted.3l9XzKQq.js → hoisted.J15ErMtK.js} +1 -1
  117. package/packages/storefront/dist/client/_astro/hoisted.KYhwGfsv.js +1 -0
  118. package/packages/storefront/dist/client/_astro/{i18n.vH3oaO8m.js → i18n.Lxnz1oF-.js} +1 -1
  119. package/packages/storefront/dist/client/_astro/{img.PXVYiEi4.js → img.WnsidxCx.js} +1 -1
  120. package/packages/storefront/dist/client/_astro/{index._z3KfWlu.js → index.R7A-Pg5V.js} +1 -1
  121. package/packages/storefront/dist/client/_astro/{index.ZVw4Qnet.js → index.q6KIyKlJ.js} +1 -1
  122. package/packages/storefront/dist/client/_astro/{modules-info.39sWCsAH.js → modules-info.tVRhvxNm.js} +1 -1
  123. package/packages/storefront/dist/client/_astro/name.urFqJ5yn.js +1 -0
  124. package/packages/storefront/dist/client/_astro/runtime-core.esm-bundler.XTSAdOlw.js +13 -0
  125. package/packages/storefront/dist/client/_astro/{shopping-cart.bLFDGb3i.js → shopping-cart.ZdSCrjS6.js} +1 -1
  126. package/packages/storefront/dist/client/_astro/{use-analytics.qryUNUh7.js → use-analytics.tCrQbW8O.js} +1 -1
  127. package/packages/storefront/dist/client/_astro/{use-product-card.h3dJsLOD.js → use-product-card.-9TsgDDW.js} +1 -1
  128. package/packages/storefront/dist/client/_astro/use-text-value.XE_A2nDM.js +4 -0
  129. package/packages/storefront/dist/server/chunks/{CartSidebar_8VAKl-jR.mjs → CartSidebar_7UWmGIF6.mjs} +5 -5
  130. package/packages/storefront/dist/server/chunks/{SearchModal_7debttOi.mjs → SearchModal_MNdcYMws.mjs} +4 -4
  131. package/packages/storefront/dist/server/chunks/{_.._D6rq0cLa.mjs → _.._h5R83hoK.mjs} +1 -1
  132. package/packages/storefront/dist/server/chunks/{_page__WXDIwV7g.mjs → _page__lWVlZyRe.mjs} +1 -1
  133. package/packages/storefront/dist/server/chunks/{account_DOT2RzND.mjs → account_jmelxnlw.mjs} +1 -1
  134. package/packages/storefront/dist/server/chunks/astro/{assets-service_gJYJeEDH.mjs → assets-service_xNulQtBO.mjs} +1 -1
  135. package/packages/storefront/dist/server/chunks/{astro_H-6uiAAG.mjs → astro_tggR3S_9.mjs} +2 -2
  136. package/packages/storefront/dist/server/chunks/{index_eXlHIU83.mjs → index_e3ytAL8v.mjs} +1 -1
  137. package/packages/storefront/dist/server/chunks/{node_-eQO2yOn.mjs → node_kUJIRL0c.mjs} +1 -1
  138. package/packages/storefront/dist/server/chunks/pages/{__fI3NeWvy.mjs → __wihn0dYD.mjs} +864 -856
  139. package/packages/storefront/dist/server/chunks/pages/{_page__Piz8geXW.mjs → _page__Sb1eYhpz.mjs} +2 -2
  140. package/packages/storefront/dist/server/chunks/pages/{account_6pD7OYw-.mjs → account_-mULVQUB.mjs} +2 -2
  141. package/packages/storefront/dist/server/chunks/pages/{index_2F5yi6YO.mjs → index_mQXYNYRg.mjs} +4 -4
  142. package/packages/storefront/dist/server/chunks/pages/{node_-Buhxl8v.mjs → node_-qe5LuQh.mjs} +3 -3
  143. package/packages/storefront/dist/server/chunks/pages/{~fallback_okEL1qQ3.mjs → ~fallback_ad_xyGHU.mjs} +4 -4
  144. package/packages/storefront/dist/server/chunks/~fallback_EZqiEAFE.mjs +6 -0
  145. package/packages/storefront/dist/server/entry.mjs +376 -307
  146. package/packages/storefront/dist/server/manifest_RrmXPEuL.mjs +196 -0
  147. package/packages/storefront/dist/server/renderers.mjs +1 -1
  148. package/packages/storefront/package.json +9 -8
  149. package/packages/storefront/src/lib/components/BannerPictures.astro +7 -6
  150. package/packages/storefront/src/lib/components/CarouselControl.vue +2 -2
  151. package/packages/storefront/src/lib/components/ContentClearfix.vue +1 -1
  152. package/packages/storefront/src/lib/components/Drawer.vue +2 -2
  153. package/packages/storefront/src/lib/components/Picture.astro +2 -2
  154. package/packages/storefront/src/lib/components/QuantitySelectorControl.vue +2 -2
  155. package/packages/storefront/src/lib/components/ViewTransitions.astro +1 -0
  156. package/packages/storefront/src/lib/layouts/BaseBody.astro +3 -3
  157. package/packages/storefront/src/lib/layouts/BaseHead.astro +29 -29
  158. package/packages/test-base/package.json +2 -2
  159. package/packages/types/package.json +2 -2
  160. package/tailwind.config.cjs +5 -0
  161. package/LICENSE.md +0 -230
  162. package/packages/storefront/dist/client/_astro/CartSidebar.1fFe2RGR.js +0 -1
  163. package/packages/storefront/dist/client/_astro/ProductDetails.WXj4miM3.js +0 -7
  164. package/packages/storefront/dist/client/_astro/ProductShelf.GkYOYehE.js +0 -1
  165. package/packages/storefront/dist/client/_astro/ProductShelf.I8ZQzwkT.js +0 -1
  166. package/packages/storefront/dist/client/_astro/ShopHeader.27oTzgGP.js +0 -7
  167. package/packages/storefront/dist/client/_astro/client.guyl5T6O.js +0 -1
  168. package/packages/storefront/dist/client/_astro/ecom-icon_12falx.png +0 -0
  169. package/packages/storefront/dist/client/_astro/ecom-icon_15pqnO.png +0 -0
  170. package/packages/storefront/dist/client/_astro/ecom-icon_t3guw.png +0 -0
  171. package/packages/storefront/dist/client/_astro/headphone_T2Jjc.avif +0 -0
  172. package/packages/storefront/dist/client/_astro/headphone_Z1CG18r.webp +0 -0
  173. package/packages/storefront/dist/client/_astro/hoisted.X6EeZJCY.js +0 -1
  174. package/packages/storefront/dist/client/_astro/logo_1UBsBq.webp +0 -0
  175. package/packages/storefront/dist/client/_astro/logo_Z1K5PE9.png +0 -0
  176. package/packages/storefront/dist/client/_astro/logo_Z1KIIl1.avif +0 -0
  177. package/packages/storefront/dist/client/_astro/name.LjTu3VQY.js +0 -1
  178. package/packages/storefront/dist/client/_astro/passion_LHbe9.webp +0 -0
  179. package/packages/storefront/dist/client/_astro/passion_Z23MeUb.avif +0 -0
  180. package/packages/storefront/dist/client/_astro/rect8589_1TtOHY.png +0 -0
  181. package/packages/storefront/dist/client/_astro/rect8589_1f5opX.webp +0 -0
  182. package/packages/storefront/dist/client/_astro/rect8589_IUskt.webp +0 -0
  183. package/packages/storefront/dist/client/_astro/rect8589_Uxfdf.png +0 -0
  184. package/packages/storefront/dist/client/_astro/rect8589_Z15uApA.png +0 -0
  185. package/packages/storefront/dist/client/_astro/rect8589_Z1Ap1Im.avif +0 -0
  186. package/packages/storefront/dist/client/_astro/rect8589_Z1JT1HB.webp +0 -0
  187. package/packages/storefront/dist/client/_astro/rect8589_ZY9mtN.avif +0 -0
  188. package/packages/storefront/dist/client/_astro/rect8589_tMFW0.avif +0 -0
  189. package/packages/storefront/dist/client/_astro/rect859_1TgQXS.avif +0 -0
  190. package/packages/storefront/dist/client/_astro/rect859_2Nm1z.avif +0 -0
  191. package/packages/storefront/dist/client/_astro/rect859_DIqwR.png +0 -0
  192. package/packages/storefront/dist/client/_astro/rect859_Z1IKDb2.png +0 -0
  193. package/packages/storefront/dist/client/_astro/rect859_Z29FI4V.webp +0 -0
  194. package/packages/storefront/dist/client/_astro/rect859_Z2kFHGk.avif +0 -0
  195. package/packages/storefront/dist/client/_astro/rect859_ZkpPFI.webp +0 -0
  196. package/packages/storefront/dist/client/_astro/rect859_jXzBi.png +0 -0
  197. package/packages/storefront/dist/client/_astro/rect859_x1l16.webp +0 -0
  198. package/packages/storefront/dist/client/_astro/rect89_1TSfW7.avif +0 -0
  199. package/packages/storefront/dist/client/_astro/rect89_Z1re32x.webp +0 -0
  200. package/packages/storefront/dist/client/_astro/runtime-core.esm-bundler.arxvxBux.js +0 -13
  201. package/packages/storefront/dist/client/_astro/use-text-value.dpiQwgOv.js +0 -4
  202. package/packages/storefront/dist/client/app/account/index.html +0 -56
  203. package/packages/storefront/dist/client/app/index.html +0 -96
  204. package/packages/storefront/dist/client/blog/1/index.html +0 -82
  205. package/packages/storefront/dist/client/index.html +0 -122
  206. package/packages/storefront/dist/client/macbook-apple-pro-15.4-intel-core-i7-2.6ghz-ram-16gb-ssd-512gb-mr972ll/a-prata/index.html +0 -89
  207. package/packages/storefront/dist/client/mouse-gamer-corsair-optico-harpoon-rgb-ch-9301011-na/index.html +0 -89
  208. package/packages/storefront/dist/client/p/contato/index.html +0 -86
  209. package/packages/storefront/dist/client/p/terms/index.html +0 -97
  210. package/packages/storefront/dist/client/posts/3/index.html +0 -97
  211. package/packages/storefront/dist/client/posts/4/index.html +0 -97
  212. package/packages/storefront/dist/client/~fallback/index.html +0 -97
  213. package/packages/storefront/dist/server/chunks/~fallback_M-xiy2GE.mjs +0 -6
  214. package/packages/storefront/dist/server/manifest_oV2meNKS.mjs +0 -196
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env sh
2
+ . "$(dirname -- "$0")/_/husky.sh"
3
+
4
+ npx lint-staged
@@ -16,9 +16,14 @@
16
16
  "tailwindCSS.experimental.configFile": {
17
17
  "packages/storefront/tailwind.config.cjs": "packages/**",
18
18
  "store/functions/ssr/tailwind.config.cjs": "store/**",
19
- "ecomplus-stores/tia-sonia/functions/ssr/tailwind.config.cjs": "ecomplus-stores/tia-sonia/**",
20
19
  "ecomplus-stores/barra-doce/functions/ssr/tailwind.config.cjs": "ecomplus-stores/barra-doce/**"
21
20
  },
22
21
  "typescript.tsdk": "node_modules/typescript/lib",
23
- "eslint.run": "onSave"
22
+ "eslint.validate": [
23
+ "javascript",
24
+ "javascriptreact",
25
+ "astro",
26
+ "typescript",
27
+ "typescriptreact"
28
+ ]
24
29
  }
package/CHANGELOG.md CHANGED
@@ -2,6 +2,30 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ## [2.1.0](https://github.com/ecomplus/cloud-commerce/compare/v2.0.9...v2.1.0) (2024-01-26)
6
+
7
+
8
+ ### Features
9
+
10
+ * **cli:** New `ci/bunny-config-base.sh` script to fix bunny.net CDN pull zone basic configs ([5e525ec](https://github.com/ecomplus/cloud-commerce/commit/5e525ecd94589221886421bede6ab8901ad3c46f))
11
+ * **cli:** New `ci/bunny-prepare-ab.sh` script to purge cache and setup edge rules for A/B testing ([61ad030](https://github.com/ecomplus/cloud-commerce/commit/61ad030dd9285bd45a2f70e6d65b82576394e588))
12
+
13
+
14
+ ### Bug Fixes
15
+
16
+ * **api:** Reduce default `cacheMaxAge` to 2min ([6353d6a](https://github.com/ecomplus/cloud-commerce/commit/6353d6a9a830437a4fbf49bf161ef67c0760c762))
17
+ * **cli:** Ensure env vars with dotenv, set per-deploy cookies on Hosting response ([b9bc5e0](https://github.com/ecomplus/cloud-commerce/commit/b9bc5e0bf2a7b013854ef443e47cc955db7509dd))
18
+
19
+ ### [2.0.9](https://github.com/ecomplus/cloud-commerce/compare/v2.0.8...v2.0.9) (2024-01-20)
20
+
21
+
22
+ ### Bug Fixes
23
+
24
+ * **storefront:** Bump Astro to latest v4.2.1 ([dd6b65a](https://github.com/ecomplus/cloud-commerce/commit/dd6b65a62ae585870f4cdf00496df2f2392cf96a))
25
+ * **storefront:** Bump Vue to latest v3.4.15 ([46fd6f5](https://github.com/ecomplus/cloud-commerce/commit/46fd6f59beb95e85ef2ed4b0479f912cf8eb4fd8))
26
+ * **storefront:** Stop `click` event propagation and prevent default (a) on `<CarouselControl>` ([94defd8](https://github.com/ecomplus/cloud-commerce/commit/94defd8b6e03d1821f605325c23d9c9f42cd9881))
27
+ * **storefront:** Stop `click` event propagation on `<CarouselControl>` by default ([b44ff85](https://github.com/ecomplus/cloud-commerce/commit/b44ff85c4382ef912c434bf1f251134697156098))
28
+
5
29
  ### [2.0.8](https://github.com/ecomplus/cloud-commerce/compare/v2.0.7...v2.0.8) (2024-01-17)
6
30
 
7
31
 
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 E-Com Club Softwares para E-commerce <ti@e-com.club>
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/action.yml CHANGED
@@ -96,6 +96,8 @@ inputs:
96
96
  description: 'App: Tiktok pixel ID'
97
97
  tiktok-access-token:
98
98
  description: 'App: Tiktok access token'
99
+ public-dotenv:
100
+ description: 'Raw `public.env` file content to set additional public env vars'
99
101
 
100
102
  outputs: {}
101
103
 
@@ -134,7 +136,7 @@ runs:
134
136
 
135
137
  - if: steps.npm-cache-root.outputs.cache-hit != 'true'
136
138
  shell: bash
137
- run: npm ci --omit=dev
139
+ run: npm ci --omit=dev --ignore-scripts
138
140
 
139
141
  - name: Get npm global directories
140
142
  id: npm-paths
@@ -175,14 +177,14 @@ runs:
175
177
  working-directory: functions/with-apps
176
178
  run: npm ci
177
179
 
178
- - name: Set ECOM_STORE_ID and GITHUB_REF env
180
+ - name: Set ecom_store_id and git_branch env
179
181
  shell: bash
180
182
  working-directory: functions
181
183
  env:
182
184
  ECOM_STORE_ID: ${{ inputs.ecom-store-id }}
183
185
  run: |
184
186
  echo "ecom_store_id=${ECOM_STORE_ID:-$(cat config.json | jq -r '.storeId')}" >> $GITHUB_ENV
185
- echo "git_branch=${GITHUB_REF#refs/heads/}" >> $GITHUB_ENV
187
+ echo "git_branch=${GITHUB_HEAD_REF:-${GITHUB_REF_NAME}}" >> $GITHUB_ENV
186
188
 
187
189
  - uses: dorny/paths-filter@v2.11.1
188
190
  id: changes
@@ -266,6 +268,7 @@ runs:
266
268
  PAGARMEV5_PUBLIC_KEY: ${{ inputs.pagarmev5-public-key }}
267
269
  TIKTOK_ACCESS_TOKEN: ${{ inputs.tiktok-access-token }}
268
270
  TIKTOK_PIXEL_ID: ${{ inputs.tiktok-pixel-id }}
271
+ PUBLIC_DOTENV: ${{ inputs.public-dotenv }}
269
272
  run: |
270
273
  export GAC_FILENAME=".gac-$RANDOM.json"
271
274
  echo $FIREBASE_SERVICE_ACCOUNT > $GAC_FILENAME
@@ -314,6 +317,9 @@ runs:
314
317
  TIKTOK_ACCESS_TOKEN=$TIKTOK_ACCESS_TOKEN
315
318
  TIKTOK_PIXEL_ID=$TIKTOK_PIXEL_ID
316
319
  " > functions/.env
320
+ if [[ -n "$PUBLIC_DOTENV" ]]; then
321
+ echo "$PUBLIC_DOTENV" >> functions/.env
322
+ fi
317
323
  if [ -z "$DEPLOY_CODEBASE" ]; then
318
324
  BUNNYNET_API_KEY=$BUNNYNET_API_KEY \
319
325
  GOOGLE_APPLICATION_CREDENTIALS=$GAC_FILENAME \
@@ -328,6 +334,21 @@ runs:
328
334
  npm run deploy -- --only functions:$DEPLOY_CODEBASE
329
335
  fi
330
336
  fi
337
+
338
+ - if: github.event_name == 'push' && contains(github.event.head_commit.message, '[config bunny]')
339
+ name: Set bunny.net CDN pull zone basic configs
340
+ shell: bash
341
+ env:
342
+ ECOM_STORE_ID: ${{ env.ecom_store_id }}
343
+ GIT_BRANCH: ${{ env.git_branch }}
344
+ BUNNYNET_API_KEY: ${{ inputs.bunnynet-api-key }}
345
+ run: |
346
+ if [ ! -z "$BUNNYNET_API_KEY" ]; then
347
+ domain=$(cat functions/ssr/content/settings.json | jq -r '.domain')
348
+ if [ ! -z "$domain" ]; then
349
+ bash $GITHUB_ACTION_PATH/packages/cli/ci/bunny-config-base.sh $domain
350
+ fi
351
+ fi
331
352
 
332
353
  - if: github.event_name == 'pull_request'
333
354
  name: Build storefront static
@@ -345,7 +366,26 @@ runs:
345
366
 
346
367
  - if: github.event_name == 'pull_request'
347
368
  name: Deploy Firebase Hosting PR preview
369
+ id: deploy-preview
348
370
  uses: FirebaseExtended/action-hosting-deploy@v0
349
371
  with:
350
372
  repoToken: ${{ inputs.github-token }}
351
373
  firebaseServiceAccount: ${{ inputs.firebase-service-account }}
374
+ channelId: ${{ (startsWith(env.git_branch, 'main-') && env.git_branch) || null }}
375
+ expires: ${{ (startsWith(env.git_branch, 'main-') && '30d') || null }}
376
+
377
+ - if: ${{ github.event_name == 'pull_request' && startsWith(env.git_branch, 'main-') }}
378
+ name: Prepare bunny.net CDN for A/B testing
379
+ shell: bash
380
+ env:
381
+ ECOM_STORE_ID: ${{ env.ecom_store_id }}
382
+ GIT_BRANCH: ${{ env.git_branch }}
383
+ BUNNYNET_API_KEY: ${{ inputs.bunnynet-api-key }}
384
+ CHANNEL_URL: ${{ steps.deploy-preview.outputs.details_url }}
385
+ run: |
386
+ if [ ! -z "$BUNNYNET_API_KEY" ]; then
387
+ domain=$(cat functions/ssr/content/settings.json | jq -r '.domain')
388
+ if [ ! -z "$domain" ]; then
389
+ bash $GITHUB_ACTION_PATH/packages/cli/ci/bunny-prepare-ab.sh $domain $CHANNEL_URL
390
+ fi
391
+ fi
@@ -75,3 +75,4 @@ jobs:
75
75
  pagarmev5-public-key: ${{ secrets.PAGARMEV5_PUBLIC_KEY }}
76
76
  tiktok-pixel-id: ${{ secrets.TIKTOK_PIXEL_ID }}
77
77
  tiktok-access-token: ${{ secrets.TIKTOK_ACCESS_TOKEN }}
78
+ public-dotenv: ${{ secrets.PUBLIC_DOTENV }}
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env sh
2
+ . "$(dirname -- "$0")/_/husky.sh"
3
+
4
+ npx lint-staged
@@ -11,5 +11,11 @@
11
11
  "css.lint.unknownAtRules": "ignore",
12
12
  "git.autofetch": true,
13
13
  "typescript.tsdk": "node_modules/typescript/lib",
14
- "eslint.run": "onSave"
14
+ "eslint.validate": [
15
+ "javascript",
16
+ "javascriptreact",
17
+ "astro",
18
+ "typescript",
19
+ "typescriptreact"
20
+ ]
15
21
  }
@@ -15,8 +15,8 @@
15
15
  },
16
16
  "main": "index.js",
17
17
  "dependencies": {
18
- "@cloudcommerce/feeds": "^2.0.7",
19
- "@cloudcommerce/firebase": "^2.0.7",
20
- "@cloudcommerce/passport": "^2.0.7"
18
+ "@cloudcommerce/feeds": "^2.0.9",
19
+ "@cloudcommerce/firebase": "^2.0.9",
20
+ "@cloudcommerce/passport": "^2.0.9"
21
21
  }
22
22
  }
@@ -0,0 +1,6 @@
1
+ module.exports = {
2
+ extends: '../../node_modules/@cloudcommerce/eslint/storefront.staged.eslintrc.cjs',
3
+ rules: {
4
+ 'import/no-extraneous-dependencies': 'off',
5
+ },
6
+ };
@@ -10,22 +10,23 @@
10
10
  "shell": "firebase functions:shell",
11
11
  "start": "npm run shell",
12
12
  "deploy": "firebase deploy --only functions",
13
- "logs": "firebase functions:log"
13
+ "logs": "firebase functions:log",
14
+ "lint:fix": "eslint -c ./.staged.eslintrc.cjs src/**/*.{ts,vue,astro} --fix"
14
15
  },
15
16
  "engines": {
16
17
  "node": "18"
17
18
  },
18
19
  "main": "index.js",
19
20
  "dependencies": {
20
- "@cloudcommerce/api": "^2.0.7",
21
- "@cloudcommerce/firebase": "^2.0.7",
22
- "@cloudcommerce/ssr": "^2.0.7",
21
+ "@cloudcommerce/api": "^2.0.9",
22
+ "@cloudcommerce/firebase": "^2.0.9",
23
+ "@cloudcommerce/ssr": "^2.0.9",
23
24
  "@headlessui/vue": "^1.7.17"
24
25
  },
25
26
  "devDependencies": {
26
- "@cloudcommerce/i18n": "^2.0.7",
27
- "@cloudcommerce/storefront": "^2.0.7",
28
- "@cloudcommerce/types": "^2.0.7",
27
+ "@cloudcommerce/i18n": "^2.0.9",
28
+ "@cloudcommerce/storefront": "^2.0.9",
29
+ "@cloudcommerce/types": "^2.0.9",
29
30
  "@iconify-json/mingcute": "^1.1.15",
30
31
  "photoswipe": "^5.4.3"
31
32
  }
@@ -62,7 +62,10 @@
62
62
  <MenuItem as="li">
63
63
  <div class="text-base-500 flex justify-center gap-2 p-2 text-base">
64
64
  <span v-for="(href, network) in socialNetworks" :key="network">
65
- <SocialNetworkLink :network="network" class="hover:text-primary p-1" />
65
+ <SocialNetworkLink
66
+ :network="network"
67
+ class="hover:text-primary p-1"
68
+ />
66
69
  </span>
67
70
  </div>
68
71
  </MenuItem>
@@ -1,6 +1,6 @@
1
1
  <template>
2
- <article class="from-secondary-700 to-secondary-950 flex
3
- min-h-screen w-full flex-col justify-center bg-gradient-to-br">
2
+ <article class="from-secondary-700 to-secondary-950 flex min-h-screen w-full
3
+ flex-col justify-center bg-gradient-to-br">
4
4
  <div class="mx-auto p-4">
5
5
  <section class="ui-section text-center">
6
6
  <a href="/" class="text-base-200 hover:text-white">
@@ -27,7 +27,10 @@
27
27
  v-for="({ title, href }, i) in $settings.serviceLinks"
28
28
  :key="`s-${i}`"
29
29
  >
30
- <ALink :href="href" class="ui-link text-base-200 hover:text-white">
30
+ <ALink
31
+ :href="href"
32
+ class="text-base-200 ui-link hover:text-white"
33
+ >
31
34
  {{ title }}
32
35
  </ALink>
33
36
  </li>
@@ -28,7 +28,8 @@
28
28
  </Component>
29
29
  <p
30
30
  v-if="parsedSubtitle"
31
- class="text-base-800 mt-4 text-lg font-medium uppercase md:mt-6 lg:text-xl"
31
+ class="text-base-800 mt-4 text-lg font-medium uppercase
32
+ md:mt-6 lg:text-xl"
32
33
  >
33
34
  {{ parsedSubtitle }}
34
35
  </p>
@@ -1,7 +1,10 @@
1
1
  <template>
2
2
  <article class="mb-9 mt-6 md:mb-12 md:mt-8">
3
3
  <section class="ui-section">
4
- <article v-if="featured" class="mb-9 flex flex-wrap gap-x-8 lg:flex-nowrap">
4
+ <article
5
+ v-if="featured"
6
+ class="mb-9 flex flex-wrap gap-x-8 lg:flex-nowrap"
7
+ >
5
8
  <a :href="`/posts/${featured.slug}`" class="w-full max-w-[600px]">
6
9
  <AImg
7
10
  v-if="featured.thumbnail"
@@ -26,7 +29,10 @@
26
29
  --- {{ featured.author }}
27
30
  </em>
28
31
  <div class="not-prose mt-5">
29
- <a :href="`/posts/${featured.slug}`" class="ui-btn-lg ui-btn-primary">
32
+ <a
33
+ :href="`/posts/${featured.slug}`"
34
+ class="ui-btn-lg ui-btn-primary"
35
+ >
30
36
  <i class="i-chevron-right mr-1"></i>
31
37
  {{ $t.i19seeMore }}
32
38
  </a>
@@ -1,6 +1,9 @@
1
1
  <template>
2
2
  <section v-if="breadcrumbs.length > 1" class="ui-section-slim">
3
- <nav aria-label="Breadcrumb" class="w-full overflow-hidden text-lg md:text-sm">
3
+ <nav
4
+ aria-label="Breadcrumb"
5
+ class="w-full overflow-hidden text-lg md:text-sm"
6
+ >
4
7
  <ol class="text-base-600 flex items-center gap-1">
5
8
  <li>
6
9
  <a href="/" class="hover:text-primary">
@@ -5,7 +5,7 @@
5
5
  v-if="image"
6
6
  :picture="image"
7
7
  :alt="title"
8
- class="h-20 w-20 object-cover"
8
+ class="size-20 object-cover"
9
9
  />
10
10
  <p class="text-base-700 group-hover:text-base-900 flex-auto py-2
11
11
  text-sm group-hover:underline">
@@ -18,8 +18,9 @@
18
18
  class="absolute right-0 top-0 p-2 opacity-70 hover:opacity-100"
19
19
  :aria-label="$t.i19remove"
20
20
  >
21
- <span class="border-3 text-danger-800 border-danger-700/30 flex h-5 w-5 flex-col
22
- justify-center rounded-full text-sm leading-none">
21
+ <span class="border-3 border-danger-700/30 text-danger-800 flex size-5
22
+ flex-col justify-center
23
+ rounded-full text-sm leading-none">
23
24
  <i class="i-close mx-auto my-0"></i>
24
25
  </span>
25
26
  </button>
@@ -49,7 +49,7 @@
49
49
  <a
50
50
  href="#"
51
51
  @click.prevent="emit('close')"
52
- class="ui-link text-base-500 hover:text-base-700 text-sm"
52
+ class="text-base-500 ui-link hover:text-base-700 text-sm"
53
53
  >
54
54
  <i class="i-arrow-right-line mr-1 rotate-180"></i>
55
55
  {{ $t.i19continueShopping }}
@@ -7,7 +7,7 @@
7
7
  <slot name="logo" />
8
8
  </a>
9
9
  <div class="flex items-center gap-2">
10
- <i class="i-shield-check-solid bg-success-400 m-0 text-3xl"></i>
10
+ <i class="bg-success-400 i-shield-check-solid m-0 text-3xl"></i>
11
11
  <span class="text-base-600 text-base">
12
12
  {{ $t.i19safeBuy }}
13
13
  </span>
@@ -24,7 +24,7 @@
24
24
  v-for="({ title, href }, i) in $settings.serviceLinks"
25
25
  :key="`s-${i}`"
26
26
  >
27
- <ALink :href="href" target="blank" class="ui-link text-base-700">
27
+ <ALink :href="href" target="blank" class="text-base-700 ui-link">
28
28
  {{ title }}
29
29
  <i class="bg-base-300 i-arrow-top-right-on-square ml-0.5"></i>
30
30
  </ALink>
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <section class="ui-section">
3
3
  <article class="prose">
4
- <h1 class="ui-title not-prose my-4">{{ title }}</h1>
4
+ <h1 class="not-prose ui-title my-4">{{ title }}</h1>
5
5
  <ContentClearfix :html="html" />
6
6
  </article>
7
7
  </section>
@@ -1,16 +1,17 @@
1
1
  <template>
2
2
  <div class="ui-section">
3
- <div class="flex flex-wrap items-start justify-between gap-5 lg:flex-nowrap">
4
- <ul class="mx-auto flex items-center gap-x-6 gap-y-3
5
- overflow-x-auto md:mx-0 md:flex-wrap md:overflow-hidden lg:gap-x-8">
3
+ <div class="flex flex-wrap items-start justify-between
4
+ gap-5 lg:flex-nowrap">
5
+ <ul class="mx-auto flex items-center gap-x-6 gap-y-3 overflow-x-auto
6
+ md:mx-0 md:flex-wrap md:overflow-hidden lg:gap-x-8">
6
7
  <li v-for="(stamp, i) in stamps" :key="i">
7
8
  <ALink :href="stamp.href?.replace('{domain}', $settings.domain || '')">
8
9
  <slot :name="`picture-${i}`" />
9
10
  <span v-if="!stamp.img" class="flex items-center">
10
11
  <span
11
12
  v-if="stamp.icon"
12
- class="[&>*]:from-success-200 [&>*]:to-success-700
13
- mr-2 text-4xl [&>*]:bg-gradient-to-br"
13
+ class="[&>*]:from-success-200 [&>*]:to-success-700 mr-2
14
+ text-4xl [&>*]:bg-gradient-to-br"
14
15
  >
15
16
  <i v-if="stamp.icon === 'lock'" class="i-lock-closed"></i>
16
17
  <i v-else-if="stamp.icon === 'check'" class="i-check-badge"></i>
@@ -28,7 +29,8 @@
28
29
  </li>
29
30
  </ul>
30
31
  <div class="mx-auto flex flex-wrap items-center justify-end
31
- gap-4 overflow-x-auto text-2xl md:mx-0 md:flex-nowrap md:overflow-hidden">
32
+ gap-4 overflow-x-auto text-2xl
33
+ md:mx-0 md:flex-nowrap md:overflow-hidden">
32
34
  <PaymentMethodFlag
33
35
  v-for="paymentMethod in $settings.paymentMethods"
34
36
  :key="paymentMethod"
@@ -19,17 +19,21 @@
19
19
  <div
20
20
  v-show="slides.length > 1"
21
21
  class="absolute bottom-5 right-5 z-10 flex w-screen
22
- items-center justify-end xl:left-1/2 xl:right-auto xl:-ms-[640px] xl:max-w-screen-xl"
22
+ items-center justify-end
23
+ xl:left-1/2 xl:right-auto xl:-ms-[640px] xl:max-w-screen-xl"
23
24
  >
24
25
  <div
25
26
  class="text-primary relative h-10 w-20 rounded-full bg-white/50
26
27
  shadow-sm ring-1 ring-black/5 transition-opacity"
27
28
  :class="isMounted ? 'opacity-100' : 'opacity-20 [&>*]:cursor-wait'"
28
29
  >
29
- <CarouselControl class="hover:bg-primary/10 h-10 w-10 rounded-full" is-prev>
30
+ <CarouselControl
31
+ class="hover:bg-primary/10 size-10 rounded-full"
32
+ is-prev
33
+ >
30
34
  <i class="i-arrow-right-line rotate-180"></i>
31
35
  </CarouselControl>
32
- <CarouselControl class="hover:bg-primary/10 h-10 w-10 rounded-full">
36
+ <CarouselControl class="hover:bg-primary/10 size-10 rounded-full">
33
37
  <i class="i-arrow-right-line"></i>
34
38
  </CarouselControl>
35
39
  </div>
@@ -1,5 +1,6 @@
1
1
  <template>
2
- <div class="-mx-4 flex w-screen gap-3 sm:mx-0 sm:w-full md:h-[525px] 2xl:gap-5">
2
+ <div class="-mx-4 flex w-screen gap-3
3
+ sm:mx-0 sm:w-full md:h-[525px] 2xl:gap-5">
3
4
  <Carousel
4
5
  v-if="pictures.length > 1"
5
6
  axis="y"
@@ -22,8 +23,8 @@
22
23
  >
23
24
  <AImg
24
25
  :picture="pictures[index]"
25
- class="ring-secondary/10 h-full w-full rounded border-2
26
- object-cover opacity-90 transition-colors"
26
+ class="ring-secondary/10 size-full rounded border-2 object-cover
27
+ opacity-90 transition-colors"
27
28
  :class="index === activeIndex
28
29
  ? 'border-secondary/50 ring-4 cursor-auto'
29
30
  : 'border-transparent hover:border-primary'
@@ -36,10 +37,10 @@
36
37
  <span>
37
38
  <CarouselControl
38
39
  v-if="pictures.length > 6"
39
- class="hover:bg-primary-300/60 text-primary
40
- !bottom-3 !left-1/2 -ml-5 h-10 w-10
41
- rounded-full bg-white/60 text-xl
42
- opacity-0 shadow-sm ring-1 ring-black/5 group-hover:opacity-90"
40
+ class="text-primary hover:bg-primary-300/60
41
+ !bottom-3 !left-1/2 -ml-5 size-10 rounded-full
42
+ bg-white/60 text-xl opacity-0 shadow-sm ring-1
43
+ ring-black/5 group-hover:opacity-90"
43
44
  />
44
45
  <span class="absolute bottom-0 block h-2 w-full
45
46
  bg-gradient-to-b from-transparent to-white"></span>
@@ -51,7 +52,8 @@
51
52
  as="div"
52
53
  v-model:index="activeIndex"
53
54
  class="text-base-600 [&_i]:i-arrow-right-line mx-auto
54
- h-full w-full max-w-[525px] [&>*]:h-full [&_i]:mx-2 [&_i]:text-2xl"
55
+ size-full max-w-[525px]
56
+ [&>*]:h-full [&_i]:mx-2 [&_i]:text-2xl"
55
57
  :class="isLoadingLightbox && 'opacity-80'"
56
58
  :id="psId"
57
59
  >
@@ -71,7 +73,7 @@
71
73
  <AImg
72
74
  :picture="picture"
73
75
  preferred-size="big"
74
- class="h-full w-full rounded object-cover"
76
+ class="size-full rounded object-cover"
75
77
  :fetchpriority="i === 0 ? 'high' : 'low'"
76
78
  :loading="i === 0 ? 'eager' : 'lazy'"
77
79
  />
@@ -79,8 +81,8 @@
79
81
  </Carousel>
80
82
  <i
81
83
  v-if="isLoadingLightbox"
82
- class="i-arrow-path bg-base-200 absolute
83
- left-1/2 top-1/2 -ml-7 -mt-7 h-14 w-14 animate-spin"
84
+ class="bg-base-200 i-arrow-path absolute
85
+ left-1/2 top-1/2 -ml-7 -mt-7 size-14 animate-spin"
84
86
  :aria-label="$t.i19loading"
85
87
  ></i>
86
88
  <ul
@@ -36,7 +36,7 @@
36
36
  <a
37
37
  v-show="!isSignUp && !isLinkSignInBlocked"
38
38
  href="?password"
39
- class="ui-link text-base-500 text-right text-sm lowercase"
39
+ class="text-base-500 ui-link text-right text-sm lowercase"
40
40
  @click.prevent="isLinkSignIn = !isLinkSignIn"
41
41
  >
42
42
  {{ isLinkSignIn ? $t.i19enterWithPassword : $t.i19iForgotMyPassword }}
@@ -16,7 +16,7 @@
16
16
  <span
17
17
  v-if="parsedContents[i]"
18
18
  v-html="parsedContents[i]"
19
- class="prose text-base-800 text-sm"
19
+ class="text-base-800 prose text-sm"
20
20
  ></span>
21
21
  </ALink>
22
22
  </li>
@@ -25,7 +25,10 @@
25
25
  v-show="countValidSlides > 1"
26
26
  class="text-base-400 text-xl leading-none"
27
27
  >
28
- <CarouselControl class="bg-base-100 hover:text-base-700 pr-2" is-prev />
28
+ <CarouselControl
29
+ class="bg-base-100 hover:text-base-700 pr-2"
30
+ is-prev
31
+ />
29
32
  <CarouselControl class="bg-base-100 hover:text-base-700 pl-2" />
30
33
  </div>
31
34
  </template>
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div
3
3
  class="text-base-600
4
- [&>div]:[font-size:90%] [&_small]:lowercase [&_small]:[font-size:92%]"
4
+ [&>div]:[font-size:90%] [&_small]:lowercase [&_small]:[font-size:92%]"
5
5
  :class="isBig ? 'text-lg' : null"
6
6
  >
7
7
  <span v-if="comparePrice" class="text-base-500 mr-1 text-[87%]">
@@ -11,26 +11,26 @@
11
11
  >
12
12
  <div class="aspect-square p-2
13
13
  transition-transform motion-safe:group-hover:scale-110">
14
- <div class="relative h-full w-full overflow-hidden rounded bg-white
15
- group-hover:rounded-none">
14
+ <div class="relative size-full overflow-hidden
15
+ rounded bg-white group-hover:rounded-none">
16
16
  <span v-if="images?.length" class="text-xs text-opacity-70">
17
17
  <AImg
18
18
  :picture="images[0]"
19
19
  :alt="title"
20
- class="absolute left-0 top-0 block h-full w-full object-cover"
20
+ class="absolute left-0 top-0 block size-full object-cover"
21
21
  />
22
22
  <AImg
23
23
  v-if="images[1] && wasHoveredOnce"
24
24
  :picture="images[1]"
25
25
  :alt="title"
26
- class="absolute left-0 top-0 z-10 block h-full w-full
27
- object-cover text-transparent opacity-0
28
- transition-opacity group-hover:opacity-100 motion-safe:duration-300"
26
+ class="absolute left-0 top-0 z-10 block size-full
27
+ object-cover text-transparent opacity-0 transition-opacity
28
+ group-hover:opacity-100 motion-safe:duration-300"
29
29
  />
30
30
  </span>
31
31
  <div
32
32
  v-else
33
- class="from-base-50/20 to-base-100 h-full w-full bg-gradient-to-br"
33
+ class="from-base-50/20 to-base-100 size-full bg-gradient-to-br"
34
34
  />
35
35
  </div>
36
36
  </div>
@@ -38,8 +38,8 @@
38
38
  v-if="discountPercentage"
39
39
  class=":uno: bg-secondary/70 text-on-secondary absolute
40
40
  right-2 top-9 py-0.5
41
- pl-3 pr-1.5 text-xs
42
- transition-transform [clip-path:polygon(20%_0,100%_0,100%_100%,0_100%)]
41
+ pl-3 pr-1.5 text-xs transition-transform
42
+ [clip-path:polygon(20%_0,100%_0,100%_100%,0_100%)]
43
43
  group-hover:translate-x-2 group-hover:scale-110"
44
44
  >
45
45
  -<strong>{{ discountPercentage }}</strong>%
@@ -49,7 +49,7 @@
49
49
  <div v-if="isActive">
50
50
  <Prices :product="product" />
51
51
  </div>
52
- <span v-else class="ui-badge bg-warning-100 text-warning-700">
52
+ <span v-else class="bg-warning-100 text-warning-700 ui-badge">
53
53
  {{ !isInStock ? $t.i19outOfStock : $t.i19inactive }}
54
54
  </span>
55
55
  </div>
@@ -65,9 +65,9 @@
65
65
  </component>
66
66
  <button
67
67
  v-if="isActive && !hasVariations"
68
- class="lg:-top-13 primary absolute -top-12 left-1/2 z-10 -ml-7 h-14 w-14
69
- rounded-full p-2 text-3xl
70
- leading-none opacity-75 hover:opacity-100 lg:left-4 lg:ml-0"
68
+ class="lg:-top-13 primary absolute -top-12 left-1/2 z-10
69
+ -ml-7 size-14 rounded-full p-2 text-3xl leading-none
70
+ opacity-75 hover:opacity-100 lg:left-4 lg:ml-0"
71
71
  @click.stop.prevent="addProductToCart(product)"
72
72
  :aria-label="$t.i19addToCart"
73
73
  >
@@ -8,7 +8,7 @@
8
8
  </div>
9
9
  <div class="lg:sticky-header:translate-y-14 top-0 py-4
10
10
  transition-transform lg:sticky">
11
- <h1 class="ui-text-brand text-secondary-900 text-lg">
11
+ <h1 class="text-secondary-900 ui-text-brand text-lg">
12
12
  {{ title }}
13
13
  </h1>
14
14
  <div v-if="isActive" class="mt-5">