cloudcommerce 0.26.6 → 0.27.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 (353) hide show
  1. package/.github/workflows/test-apps.yml +2 -2
  2. package/.gitmodules +0 -3
  3. package/.vscode/settings.json +3 -1
  4. package/CHANGELOG.md +50 -0
  5. package/action.yml +2 -2
  6. package/ecomplus-stores/barra-doce/functions/many/package.json +3 -3
  7. package/ecomplus-stores/barra-doce/functions/ssr/package.json +6 -6
  8. package/ecomplus-stores/barra-doce/functions/ssr/src/components/ShopHeader.vue +4 -1
  9. package/ecomplus-stores/barra-doce/functions/with-apps/package.json +3 -3
  10. package/ecomplus-stores/barra-doce/package.json +2 -2
  11. package/ecomplus-stores/barra-doce/scripts/install.sh +12 -2
  12. package/ecomplus-stores/monocard/.firebaserc +1 -1
  13. package/ecomplus-stores/monocard/.github/build-and-deploy +1 -0
  14. package/ecomplus-stores/monocard/.github/workflows/build-and-deploy.yml +1 -0
  15. package/ecomplus-stores/monocard/README.md +11 -82
  16. package/ecomplus-stores/{iluminim → monocard}/SETUP.md +12 -0
  17. package/ecomplus-stores/{iluminim → monocard}/SETUP.pt-BR.md +12 -0
  18. package/ecomplus-stores/monocard/functions/config.json +1 -1
  19. package/ecomplus-stores/monocard/functions/{core → many}/package.json +4 -2
  20. package/ecomplus-stores/monocard/functions/ssr/.eslintrc.cjs +1 -1
  21. package/ecomplus-stores/monocard/functions/ssr/content/layout.json +25 -10
  22. package/ecomplus-stores/{iluminim → monocard}/functions/ssr/content/pages/home.json +12 -19
  23. package/ecomplus-stores/monocard/functions/ssr/content/pages/products.json +19 -0
  24. package/ecomplus-stores/monocard/functions/ssr/content/settings.json +22 -2
  25. package/ecomplus-stores/monocard/functions/ssr/package.json +8 -9
  26. package/ecomplus-stores/monocard/functions/ssr/src/assets/card.css +99 -0
  27. package/ecomplus-stores/{iluminim → monocard}/functions/ssr/src/assets/style.css +16 -7
  28. package/ecomplus-stores/monocard/functions/ssr/src/components/AccountMenu.vue +5 -14
  29. package/ecomplus-stores/{iluminim → monocard}/functions/ssr/src/components/Banner.vue +6 -4
  30. package/ecomplus-stores/monocard/functions/ssr/src/components/Breadcrumbs.astro +44 -0
  31. package/ecomplus-stores/{iluminim → monocard}/functions/ssr/src/components/CartSidebar.vue +1 -1
  32. package/ecomplus-stores/monocard/functions/ssr/src/components/DemoVideo.vue +8 -3
  33. package/ecomplus-stores/monocard/functions/ssr/src/components/DocDescription.astro +30 -0
  34. package/ecomplus-stores/monocard/functions/ssr/src/components/FeatureTabs.vue +2 -2
  35. package/ecomplus-stores/monocard/functions/ssr/src/components/LottiePhoneNFC.vue +12 -9
  36. package/ecomplus-stores/monocard/functions/ssr/src/components/MonocardCustomizer.vue +8 -105
  37. package/ecomplus-stores/monocard/functions/ssr/src/components/Prices.vue +10 -27
  38. package/ecomplus-stores/{iluminim → monocard}/functions/ssr/src/components/ProductCard.vue +1 -1
  39. package/ecomplus-stores/{iluminim → monocard}/functions/ssr/src/components/ShopFooter.vue +9 -35
  40. package/ecomplus-stores/monocard/functions/ssr/src/components/ShopHeader.vue +85 -32
  41. package/ecomplus-stores/monocard/functions/ssr/src/components/ShopHeaderMenu.vue +1 -1
  42. package/ecomplus-stores/monocard/functions/ssr/src/components/ShopSidenav.vue +3 -3
  43. package/ecomplus-stores/monocard/functions/ssr/src/components/ShopSidenavCategory.vue +2 -2
  44. package/ecomplus-stores/monocard/functions/ssr/src/env.d.ts +9 -1
  45. package/ecomplus-stores/monocard/functions/ssr/src/layouts/Base.astro +9 -44
  46. package/ecomplus-stores/{iluminim → monocard}/functions/ssr/src/layouts/PageFooter.astro +3 -19
  47. package/ecomplus-stores/{iluminim → monocard}/functions/ssr/src/layouts/PageHeader.astro +7 -14
  48. package/ecomplus-stores/monocard/functions/ssr/src/main/Fallback.astro +0 -5
  49. package/ecomplus-stores/monocard/functions/ssr/src/main/Home.astro +6 -12
  50. package/ecomplus-stores/monocard/functions/ssr/src/main/Sections.astro +38 -0
  51. package/ecomplus-stores/monocard/functions/ssr/src/main/Wildcard.astro +4 -18
  52. package/ecomplus-stores/monocard/functions/ssr/src/pages/[...slug].astro +15 -9
  53. package/ecomplus-stores/monocard/functions/ssr/src/pages/comprar/index.astro +19 -9
  54. package/ecomplus-stores/monocard/functions/ssr/src/pages/index.astro +16 -10
  55. package/ecomplus-stores/monocard/functions/ssr/src/scripts/InlineScripts.astro +6 -6
  56. package/ecomplus-stores/monocard/functions/ssr/tailwind.config.cjs +1 -11
  57. package/ecomplus-stores/monocard/functions/{events → with-apps}/package.json +4 -3
  58. package/ecomplus-stores/monocard/package.json +4 -1
  59. package/ecomplus-stores/monocard/scripts/install.sh +12 -2
  60. package/ecomplus-stores/tia-sonia/scripts/install.sh +12 -2
  61. package/package.json +7 -7
  62. package/packages/api/package.json +1 -1
  63. package/packages/apps/affilate-program/package.json +2 -2
  64. package/packages/apps/correios/package.json +3 -4
  65. package/packages/apps/custom-payment/package.json +1 -1
  66. package/packages/apps/custom-shipping/package.json +1 -1
  67. package/packages/apps/datafrete/package.json +3 -3
  68. package/packages/apps/discounts/package.json +1 -1
  69. package/packages/apps/emails/package.json +2 -2
  70. package/packages/apps/fb-conversions/package.json +3 -3
  71. package/packages/apps/flash-courier/package.json +2 -2
  72. package/packages/apps/frenet/package.json +3 -3
  73. package/packages/apps/galaxpay/package.json +3 -3
  74. package/packages/apps/google-analytics/package.json +3 -3
  75. package/packages/apps/jadlog/package.json +2 -2
  76. package/packages/apps/loyalty-points/package.json +1 -1
  77. package/packages/apps/melhor-envio/package.json +3 -3
  78. package/packages/apps/mercadopago/package.json +3 -3
  79. package/packages/apps/pagarme/package.json +4 -4
  80. package/packages/apps/paghiper/package.json +3 -3
  81. package/packages/apps/pix/package.json +3 -3
  82. package/packages/apps/tiny-erp/lib/integration/export-order-to-tiny.js +22 -0
  83. package/packages/apps/tiny-erp/lib/integration/export-order-to-tiny.js.map +1 -1
  84. package/packages/apps/tiny-erp/lib/integration/helpers/format-tiny-date.js +2 -2
  85. package/packages/apps/tiny-erp/lib/integration/helpers/format-tiny-date.js.map +1 -1
  86. package/packages/apps/tiny-erp/lib/integration/import-order-from-tiny.js +7 -1
  87. package/packages/apps/tiny-erp/lib/integration/import-order-from-tiny.js.map +1 -1
  88. package/packages/apps/tiny-erp/lib/integration/import-product-from-tiny.js +14 -5
  89. package/packages/apps/tiny-erp/lib/integration/import-product-from-tiny.js.map +1 -1
  90. package/packages/apps/tiny-erp/lib/integration/parsers/order-from-tiny.js +9 -1
  91. package/packages/apps/tiny-erp/lib/integration/parsers/order-from-tiny.js.map +1 -1
  92. package/packages/apps/tiny-erp/lib/integration/parsers/order-to-tiny.js +8 -6
  93. package/packages/apps/tiny-erp/lib/integration/parsers/order-to-tiny.js.map +1 -1
  94. package/packages/apps/tiny-erp/lib/integration/parsers/product-from-tiny.js +118 -38
  95. package/packages/apps/tiny-erp/lib/integration/parsers/product-from-tiny.js.map +1 -1
  96. package/packages/apps/tiny-erp/lib/integration/parsers/product-to-tiny.js +8 -0
  97. package/packages/apps/tiny-erp/lib/integration/parsers/product-to-tiny.js.map +1 -1
  98. package/packages/apps/tiny-erp/package.json +3 -3
  99. package/packages/apps/tiny-erp/src/integration/export-order-to-tiny.ts +24 -0
  100. package/packages/apps/tiny-erp/src/integration/helpers/format-tiny-date.ts +2 -2
  101. package/packages/apps/tiny-erp/src/integration/import-order-from-tiny.ts +8 -1
  102. package/packages/apps/tiny-erp/src/integration/import-product-from-tiny.ts +17 -5
  103. package/packages/apps/tiny-erp/src/integration/parsers/order-from-tiny.ts +13 -1
  104. package/packages/apps/tiny-erp/src/integration/parsers/order-to-tiny.ts +11 -6
  105. package/packages/apps/tiny-erp/src/integration/parsers/product-from-tiny.ts +144 -41
  106. package/packages/apps/tiny-erp/src/integration/parsers/product-to-tiny.ts +10 -0
  107. package/packages/apps/webhooks/package.json +3 -3
  108. package/packages/cli/package.json +2 -2
  109. package/packages/config/package.json +1 -1
  110. package/packages/emails/package.json +4 -4
  111. package/packages/eslint/base.eslintrc.cjs +3 -0
  112. package/packages/eslint/package.json +5 -4
  113. package/packages/eslint/storefront.eslintrc.cjs +8 -1
  114. package/packages/events/package.json +2 -2
  115. package/packages/feeds/package.json +1 -1
  116. package/packages/firebase/package.json +3 -3
  117. package/packages/i18n/package.json +1 -1
  118. package/packages/modules/package.json +3 -3
  119. package/packages/passport/package.json +2 -2
  120. package/packages/ssr/lib/firebase/serve-storefront.js +23 -8
  121. package/packages/ssr/lib/firebase/serve-storefront.js.map +1 -1
  122. package/packages/ssr/package.json +3 -3
  123. package/packages/ssr/src/firebase/serve-storefront.ts +24 -8
  124. package/packages/storefront/.auto-imports.d.ts +65 -0
  125. package/packages/storefront/astro.config.mjs +24 -1
  126. package/packages/storefront/client.d.ts +1 -0
  127. package/packages/storefront/config/astro/context-directive.mjs +21 -0
  128. package/packages/storefront/config/astro/index.d.ts +8 -0
  129. package/packages/storefront/config/storefront.tailwind.cjs +0 -1
  130. package/packages/storefront/dist/client/_astro/{Carousel.9ad2e1dc.js → Carousel.4bf71bce.js} +1 -1
  131. package/packages/storefront/dist/client/_astro/{CartSidebar.a6c6a885.js → CartSidebar.05b12b39.js} +1 -1
  132. package/packages/storefront/dist/client/_astro/{HeroSlider.ee1e6200.js → HeroSlider.fe108a14.js} +1 -1
  133. package/packages/storefront/dist/client/_astro/{PitchBar.6111676e.js → PitchBar.2c821b77.js} +1 -1
  134. package/packages/storefront/dist/client/_astro/{Prices.04ff8fce.js → Prices.78eb0a61.js} +1 -1
  135. package/packages/storefront/dist/client/_astro/{ProductShelf.085721d6.js → ProductShelf.46d8a51c.js} +1 -1
  136. package/packages/storefront/dist/client/_astro/ShopHeader.3694a82b.js +4 -0
  137. package/packages/storefront/dist/client/_astro/_...slug_.a4a7a874.css +1 -0
  138. package/packages/storefront/dist/client/_astro/ecom-icon_CDmhA.png +0 -0
  139. package/packages/storefront/dist/client/_astro/ecom-icon_Z27EX9f.png +0 -0
  140. package/packages/storefront/dist/client/_astro/ecom-icon_Zo1CLq.png +0 -0
  141. package/packages/storefront/dist/client/_astro/{firebase-app.8c541cce.js → firebase-app.3f59f3c7.js} +3 -3
  142. package/packages/storefront/dist/client/_astro/headphone_1Ekzdh.avif +0 -0
  143. package/packages/storefront/dist/client/_astro/headphone_Z1GbHcH.webp +0 -0
  144. package/packages/storefront/dist/client/_astro/{hoisted.85fdcf03.js → hoisted.648beb9d.js} +1 -1
  145. package/packages/storefront/dist/client/_astro/index.fadf28bd.js +1 -0
  146. package/packages/storefront/dist/client/_astro/logo_144owC.webp +0 -0
  147. package/packages/storefront/dist/client/_astro/logo_1ug3XF.png +0 -0
  148. package/packages/storefront/dist/client/_astro/logo_Z1EIN1I.avif +0 -0
  149. package/packages/storefront/dist/client/_astro/{modules-info.e5d77bf3.js → modules-info.df822732.js} +1 -1
  150. package/packages/storefront/dist/client/_astro/passion_1LvKlp.webp +0 -0
  151. package/packages/storefront/dist/client/_astro/passion_2PSWs.avif +0 -0
  152. package/packages/storefront/dist/client/_astro/rect8589_1A8K2Q.webp +0 -0
  153. package/packages/storefront/dist/client/_astro/rect8589_1ND0he.png +0 -0
  154. package/packages/storefront/dist/client/_astro/rect8589_1mIaKd.png +0 -0
  155. package/packages/storefront/dist/client/_astro/rect8589_LhopI.avif +0 -0
  156. package/packages/storefront/dist/client/_astro/rect8589_Z1NFjiR.avif +0 -0
  157. package/packages/storefront/dist/client/_astro/rect8589_Z2a06Gx.png +0 -0
  158. package/packages/storefront/dist/client/_astro/rect8589_Z2nulUU.webp +0 -0
  159. package/packages/storefront/dist/client/_astro/rect8589_ZH7hsH.avif +0 -0
  160. package/packages/storefront/dist/client/_astro/rect8589_ZorpIx.webp +0 -0
  161. package/packages/storefront/dist/client/_astro/rect859_1CcLjM.avif +0 -0
  162. package/packages/storefront/dist/client/_astro/rect859_1IVKep.png +0 -0
  163. package/packages/storefront/dist/client/_astro/rect859_1zkdb4.webp +0 -0
  164. package/packages/storefront/dist/client/_astro/rect859_299fN7.avif +0 -0
  165. package/packages/storefront/dist/client/_astro/rect859_CnIof.png +0 -0
  166. package/packages/storefront/dist/client/_astro/rect859_Z1OtQaE.avif +0 -0
  167. package/packages/storefront/dist/client/_astro/rect859_flB3g.png +0 -0
  168. package/packages/storefront/dist/client/_astro/rect859_rsWaw.webp +0 -0
  169. package/packages/storefront/dist/client/_astro/rect859_sLbkT.webp +0 -0
  170. package/packages/storefront/dist/client/_astro/rect89_1yf5jS.avif +0 -0
  171. package/packages/storefront/dist/client/_astro/rect89_GQBli.webp +0 -0
  172. package/packages/storefront/dist/client/~fallback.html +67 -0
  173. package/packages/storefront/dist/client/~index.html +113 -0
  174. package/packages/storefront/dist/server/chunks/{CartSidebar.41b20543.mjs → CartSidebar.4179ad81.mjs} +4 -12
  175. package/packages/storefront/dist/server/chunks/{SearchModal.5f5e6a15.mjs → SearchModal.146ce2f7.mjs} +4 -11
  176. package/packages/storefront/dist/server/chunks/_...05c626ea.mjs +28 -0
  177. package/packages/storefront/dist/server/chunks/{account@_@astro.204fba92.mjs → account@_@astro.5eaddaf8.mjs} +2 -9
  178. package/packages/storefront/dist/server/chunks/{index@_@astro.19e0f502.mjs → index@_@astro.25a343cc.mjs} +3 -10
  179. package/packages/storefront/dist/server/chunks/{index@_@astro.b37a6ac9.mjs → index@_@astro.2d2f2e33.mjs} +3 -10
  180. package/packages/storefront/dist/server/chunks/pages/{_...slug_.astro.36e8882b.mjs → _...slug_.astro.0808946e.mjs} +1836 -450
  181. package/packages/storefront/dist/server/chunks/pages/index.astro.d4145872.mjs +186 -0
  182. package/packages/storefront/dist/server/chunks/pages/{~fallback.astro.ba4c2475.mjs → ~fallback.astro.84d4765b.mjs} +6 -23
  183. package/packages/storefront/dist/server/chunks/{~fallback@_@astro.6bb4c4b4.mjs → ~fallback@_@astro.86d710c3.mjs} +3 -10
  184. package/packages/storefront/dist/server/entry.mjs +7 -14
  185. package/packages/storefront/dist/server/images.dist.csv +30 -0
  186. package/packages/storefront/dist/server/images.src.csv +11 -0
  187. package/packages/storefront/dist/server/renderers.mjs +2 -9
  188. package/packages/storefront/dist/server/static-builds.csv +51 -0
  189. package/packages/storefront/package.json +6 -5
  190. package/packages/storefront/scripts/build-prod.sh +3 -2
  191. package/packages/storefront/server.d.ts +1 -0
  192. package/packages/storefront/src/lib/$storefront.d.ts +8 -8
  193. package/packages/storefront/src/lib/assets/base.css +13 -0
  194. package/packages/storefront/src/lib/assets/reset.css +11 -2
  195. package/packages/storefront/src/lib/components/Carousel.vue +93 -72
  196. package/packages/storefront/src/lib/components/CarouselControl.vue +13 -7
  197. package/packages/storefront/src/lib/components/ContentClearfix.vue +17 -0
  198. package/packages/storefront/src/lib/components/Drawer.vue +3 -3
  199. package/packages/storefront/src/lib/components/PaymentMethodFlag.vue +1 -1
  200. package/packages/storefront/src/lib/components/QuantitySelector.vue +4 -4
  201. package/packages/storefront/src/lib/components/QuantitySelectorControl.vue +2 -2
  202. package/packages/storefront/src/lib/components/ViewTransitions.astro +409 -0
  203. package/packages/storefront/src/lib/components/globals/AImg.vue +2 -1
  204. package/packages/storefront/src/lib/layouts/BaseBody.astro +1 -1
  205. package/packages/storefront/src/lib/layouts/BaseHead.astro +28 -5
  206. package/packages/storefront/src/lib/layouts/use-page-header.ts +2 -2
  207. package/packages/test-base/package.json +1 -1
  208. package/packages/types/package.json +1 -1
  209. package/pnpm-workspace.yaml +2 -0
  210. package/ecomplus-stores/iluminim/.devcontainer/devcontainer.json +0 -30
  211. package/ecomplus-stores/iluminim/.editorconfig +0 -13
  212. package/ecomplus-stores/iluminim/.eslintrc.cjs +0 -3
  213. package/ecomplus-stores/iluminim/.firebaserc +0 -5
  214. package/ecomplus-stores/iluminim/.github/renovate.json +0 -5
  215. package/ecomplus-stores/iluminim/.github/workflows/build-and-deploy.yml +0 -36
  216. package/ecomplus-stores/iluminim/.github/workflows/calibreapp-image-actions.yml +0 -23
  217. package/ecomplus-stores/iluminim/.gitpod.yml +0 -12
  218. package/ecomplus-stores/iluminim/.idx/dev.nix +0 -24
  219. package/ecomplus-stores/iluminim/.nvmrc +0 -1
  220. package/ecomplus-stores/iluminim/.vscode/extensions.json +0 -8
  221. package/ecomplus-stores/iluminim/.vscode/launch.json +0 -11
  222. package/ecomplus-stores/iluminim/.vscode/settings.json +0 -10
  223. package/ecomplus-stores/iluminim/README.md +0 -31
  224. package/ecomplus-stores/iluminim/functions/config.json +0 -3
  225. package/ecomplus-stores/iluminim/functions/example.env +0 -10
  226. package/ecomplus-stores/iluminim/functions/many/package.json +0 -22
  227. package/ecomplus-stores/iluminim/functions/ssr/.eslintrc.cjs +0 -6
  228. package/ecomplus-stores/iluminim/functions/ssr/astro.config.mjs +0 -4
  229. package/ecomplus-stores/iluminim/functions/ssr/content/layout.json +0 -57
  230. package/ecomplus-stores/iluminim/functions/ssr/content/settings.json +0 -65
  231. package/ecomplus-stores/iluminim/functions/ssr/index.js +0 -18
  232. package/ecomplus-stores/iluminim/functions/ssr/package.json +0 -31
  233. package/ecomplus-stores/iluminim/functions/ssr/public/admin/.gitkeep +0 -2
  234. package/ecomplus-stores/iluminim/functions/ssr/public/assets/cms-preview.css +0 -274
  235. package/ecomplus-stores/iluminim/functions/ssr/public/assets/cms.css +0 -114
  236. package/ecomplus-stores/iluminim/functions/ssr/public/assets/cvv.png +0 -0
  237. package/ecomplus-stores/iluminim/functions/ssr/public/assets/img-placeholder.png +0 -0
  238. package/ecomplus-stores/iluminim/functions/ssr/public/assets/payments.png +0 -0
  239. package/ecomplus-stores/iluminim/functions/ssr/public/assets/ssl-safe.png +0 -0
  240. package/ecomplus-stores/iluminim/functions/ssr/public/img/icon.png +0 -0
  241. package/ecomplus-stores/iluminim/functions/ssr/public/img/large-icon.png +0 -0
  242. package/ecomplus-stores/iluminim/functions/ssr/public/img/uploads/banner-chamada-desktop-9x81zmd91q.webp +0 -0
  243. package/ecomplus-stores/iluminim/functions/ssr/public/img/uploads/banner2.webp +0 -0
  244. package/ecomplus-stores/iluminim/functions/ssr/public/img/uploads/chamada-mobile-q1c6om6jx4.webp +0 -0
  245. package/ecomplus-stores/iluminim/functions/ssr/public/img/uploads/headphone.webp +0 -0
  246. package/ecomplus-stores/iluminim/functions/ssr/public/img/uploads/logo.webp +0 -0
  247. package/ecomplus-stores/iluminim/functions/ssr/public/img/uploads/og-image.png +0 -0
  248. package/ecomplus-stores/iluminim/functions/ssr/public/img/uploads/passion.webp +0 -0
  249. package/ecomplus-stores/iluminim/functions/ssr/public/img/uploads/rect8589.png +0 -0
  250. package/ecomplus-stores/iluminim/functions/ssr/public/img/uploads/rect859.png +0 -0
  251. package/ecomplus-stores/iluminim/functions/ssr/public/img/uploads/rect89.webp +0 -0
  252. package/ecomplus-stores/iluminim/functions/ssr/public/robots.txt +0 -6
  253. package/ecomplus-stores/iluminim/functions/ssr/scripts/build.sh +0 -14
  254. package/ecomplus-stores/iluminim/functions/ssr/src/components/AccountMenu.vue +0 -95
  255. package/ecomplus-stores/iluminim/functions/ssr/src/components/Countdown.vue +0 -79
  256. package/ecomplus-stores/iluminim/functions/ssr/src/components/HeroSlider.vue +0 -52
  257. package/ecomplus-stores/iluminim/functions/ssr/src/components/PitchBar.vue +0 -56
  258. package/ecomplus-stores/iluminim/functions/ssr/src/components/Prices.vue +0 -95
  259. package/ecomplus-stores/iluminim/functions/ssr/src/components/ProductsCountdown.vue +0 -20
  260. package/ecomplus-stores/iluminim/functions/ssr/src/components/SearchModal.vue +0 -6
  261. package/ecomplus-stores/iluminim/functions/ssr/src/components/ShopHeader.vue +0 -158
  262. package/ecomplus-stores/iluminim/functions/ssr/src/components/ShopHeaderMenu.vue +0 -58
  263. package/ecomplus-stores/iluminim/functions/ssr/src/components/ShopHeaderSubmenu.vue +0 -88
  264. package/ecomplus-stores/iluminim/functions/ssr/src/components/ShopSidenav.vue +0 -61
  265. package/ecomplus-stores/iluminim/functions/ssr/src/components/ShopSidenavCategory.vue +0 -80
  266. package/ecomplus-stores/iluminim/functions/ssr/src/env.d.ts +0 -13
  267. package/ecomplus-stores/iluminim/functions/ssr/src/layouts/Base.astro +0 -16
  268. package/ecomplus-stores/iluminim/functions/ssr/src/main/Fallback.astro +0 -10
  269. package/ecomplus-stores/iluminim/functions/ssr/src/main/Home.astro +0 -49
  270. package/ecomplus-stores/iluminim/functions/ssr/src/main/Sections.astro +0 -42
  271. package/ecomplus-stores/iluminim/functions/ssr/src/main/Wildcard.astro +0 -18
  272. package/ecomplus-stores/iluminim/functions/ssr/src/pages/[...slug].astro +0 -40
  273. package/ecomplus-stores/iluminim/functions/ssr/src/pages/_vue.ts +0 -3
  274. package/ecomplus-stores/iluminim/functions/ssr/src/pages/app/account.astro +0 -0
  275. package/ecomplus-stores/iluminim/functions/ssr/src/pages/app/index.astro +0 -0
  276. package/ecomplus-stores/iluminim/functions/ssr/src/pages/index.astro +0 -37
  277. package/ecomplus-stores/iluminim/functions/ssr/src/scripts/InlineScripts.astro +0 -10
  278. package/ecomplus-stores/iluminim/functions/ssr/tailwind.config.cjs +0 -13
  279. package/ecomplus-stores/iluminim/functions/ssr/tsconfig.json +0 -12
  280. package/ecomplus-stores/iluminim/functions/ssr/uno.config.cjs +0 -5
  281. package/ecomplus-stores/iluminim/functions/with-apps/package.json +0 -22
  282. package/ecomplus-stores/iluminim/package.json +0 -31
  283. package/ecomplus-stores/iluminim/scripts/install.sh +0 -14
  284. package/ecomplus-stores/monocard/README.pt-BR.md +0 -102
  285. package/ecomplus-stores/monocard/functions/core/index.js +0 -9
  286. package/ecomplus-stores/monocard/functions/events/index.js +0 -9
  287. package/ecomplus-stores/monocard/functions/modules/index.js +0 -9
  288. package/ecomplus-stores/monocard/functions/modules/package.json +0 -21
  289. package/ecomplus-stores/monocard/functions/passport/index.js +0 -9
  290. package/ecomplus-stores/monocard/functions/passport/package.json +0 -21
  291. package/ecomplus-stores/monocard/functions/ssr/content/blog.json +0 -18
  292. package/ecomplus-stores/monocard/functions/ssr/content/brands.json +0 -24
  293. package/ecomplus-stores/monocard/functions/ssr/content/categories.json +0 -24
  294. package/ecomplus-stores/monocard/functions/ssr/content/collections.json +0 -24
  295. package/ecomplus-stores/monocard/functions/ssr/content/home.json +0 -45
  296. package/ecomplus-stores/monocard/functions/ssr/content/maintenance.json +0 -6
  297. package/ecomplus-stores/monocard/functions/ssr/content/pages/contato.json +0 -6
  298. package/ecomplus-stores/monocard/functions/ssr/content/pages/entrega.json +0 -6
  299. package/ecomplus-stores/monocard/functions/ssr/content/pages/faq.json +0 -6
  300. package/ecomplus-stores/monocard/functions/ssr/content/pages/pagamentos.json +0 -6
  301. package/ecomplus-stores/monocard/functions/ssr/content/pages/privacidade.json +0 -6
  302. package/ecomplus-stores/monocard/functions/ssr/content/pages/sobre-nos.json +0 -6
  303. package/ecomplus-stores/monocard/functions/ssr/content/pages/termos.json +0 -6
  304. package/ecomplus-stores/monocard/functions/ssr/content/pages/trocas.json +0 -6
  305. package/ecomplus-stores/monocard/functions/ssr/content/posts/esta-loja-e-um-pwa.json +0 -9
  306. package/ecomplus-stores/monocard/functions/ssr/content/products.json +0 -32
  307. package/ecomplus-stores/monocard/functions/ssr/content/search.json +0 -8
  308. package/ecomplus-stores/monocard/functions/ssr/content/widgets/analytics.json +0 -11
  309. package/ecomplus-stores/monocard/functions/ssr/content/widgets/compre-confie.json +0 -11
  310. package/ecomplus-stores/monocard/functions/ssr/content/widgets/ebit.json +0 -11
  311. package/ecomplus-stores/monocard/functions/ssr/content/widgets/fb-pixel.json +0 -12
  312. package/ecomplus-stores/monocard/functions/ssr/content/widgets/gmc-ratings.json +0 -12
  313. package/ecomplus-stores/monocard/functions/ssr/content/widgets/minicart.json +0 -6
  314. package/ecomplus-stores/monocard/functions/ssr/content/widgets/offers-notification.json +0 -11
  315. package/ecomplus-stores/monocard/functions/ssr/content/widgets/opinioes-verificadas.json +0 -18
  316. package/ecomplus-stores/monocard/functions/ssr/content/widgets/product-card.json +0 -10
  317. package/ecomplus-stores/monocard/functions/ssr/content/widgets/product.json +0 -13
  318. package/ecomplus-stores/monocard/functions/ssr/content/widgets/search-engine.json +0 -8
  319. package/ecomplus-stores/monocard/functions/ssr/content/widgets/search.json +0 -6
  320. package/ecomplus-stores/monocard/functions/ssr/content/widgets/tag-manager.json +0 -12
  321. package/ecomplus-stores/monocard/functions/ssr/content/widgets/tawkto.json +0 -12
  322. package/ecomplus-stores/monocard/functions/ssr/content/widgets/trustvox.json +0 -15
  323. package/ecomplus-stores/monocard/functions/ssr/content/widgets/user.json +0 -5
  324. package/ecomplus-stores/monocard/functions/ssr/public/admin/config.json +0 -1
  325. package/ecomplus-stores/monocard/functions/ssr/public/assets/cms-preview.css +0 -274
  326. package/ecomplus-stores/monocard/functions/ssr/public/assets/cms.css +0 -114
  327. package/ecomplus-stores/monocard/functions/ssr/public/assets/cvv.png +0 -0
  328. package/ecomplus-stores/monocard/functions/ssr/public/assets/fonts/FavoritPro-Regular.woff2 +0 -0
  329. package/ecomplus-stores/monocard/functions/ssr/public/assets/fonts/MyriadPro-Regular.woff2 +0 -0
  330. package/ecomplus-stores/monocard/functions/ssr/public/assets/ssl-safe.png +0 -0
  331. package/ecomplus-stores/monocard/functions/ssr/src/layouts/Pages.astro +0 -50
  332. package/ecomplus-stores/monocard/functions/ssr/src/pages/fallback.astro +0 -21
  333. package/packages/storefront/dist/client/_astro/ShopHeader.7e485e35.js +0 -4
  334. package/packages/storefront/dist/client/_astro/_...slug_.b693913e.css +0 -1
  335. package/packages/storefront/dist/client/_astro/index.ea57babe.js +0 -1
  336. package/packages/storefront/dist/server/chunks/_...4a2548d2.mjs +0 -35
  337. package/packages/storefront/dist/server/chunks/endpoint@_@js.11be892a.mjs +0 -35
  338. package/packages/storefront/dist/server/chunks/pages/endpoint.js.f7a896a1.mjs +0 -119
  339. package/packages/storefront/dist/server/chunks/pages/index.astro.3145bd93.mjs +0 -1649
  340. package/packages/storefront/src/lib/components/ContentClearfix.astro +0 -12
  341. /package/ecomplus-stores/{iluminim → monocard}/functions/many/index.js +0 -0
  342. /package/ecomplus-stores/{iluminim → monocard}/functions/ssr/content/blog/.gitkeep +0 -0
  343. /package/ecomplus-stores/{iluminim → monocard}/functions/ssr/content/extra-pages/contato.json +0 -0
  344. /package/ecomplus-stores/{iluminim → monocard}/functions/ssr/content/extra-pages/terms.json +0 -0
  345. /package/ecomplus-stores/{iluminim → monocard}/functions/ssr/content/extra-pages/trocas.json +0 -0
  346. /package/ecomplus-stores/{iluminim/functions/ssr/src/layouts/Checkout.astro → monocard/functions/ssr/public/admin/.gitkeep} +0 -0
  347. /package/ecomplus-stores/{iluminim → monocard}/functions/ssr/public/img/uploads/ecom-icon.png +0 -0
  348. /package/ecomplus-stores/{iluminim → monocard}/functions/ssr/src/components/BannersGrid.astro +0 -0
  349. /package/ecomplus-stores/{iluminim → monocard}/functions/ssr/src/components/CartItem.vue +0 -0
  350. /package/ecomplus-stores/monocard/functions/ssr/src/components/{FeatureTabs.astro → FeaturesSection.astro} +0 -0
  351. /package/ecomplus-stores/{iluminim → monocard}/functions/ssr/src/components/ProductShelf.vue +0 -0
  352. /package/ecomplus-stores/{iluminim → monocard}/functions/ssr/src/pages/~fallback.astro +0 -0
  353. /package/ecomplus-stores/{iluminim → monocard}/functions/with-apps/index.js +0 -0
@@ -1,25 +1,25 @@
1
1
  <template>
2
- <footer class="w-screen bg-base-50 border-t border-base-100 py-2">
2
+ <footer class="w-screen bg-black text-base-300 border-t border-base-100 py-2">
3
3
  <div class="ui-section">
4
4
  <div class="pb-7 border-b border-base-200
5
5
  flex justify-between flex-wrap lg:flex-nowrap sm:gap-x-10 gap-y-5">
6
6
  <div class="shrink">
7
7
  <slot name="logo" />
8
- <div v-if="$settings.description" class="prose">
8
+ <div v-if="$settings.description" class="prose prose-invert">
9
9
  <p>{{ $settings.description }}</p>
10
10
  </div>
11
- <div class="flex gap-2 text-base-500">
11
+ <div class="flex gap-2 text-base-400">
12
12
  <span v-for="(href, network) in socialNetworks" :key="network">
13
13
  <SocialNetworkLink :network="network" class="p-1 hover:text-primary">
14
14
  <template v-if="network === 'whatsapp'" #append>
15
- <span class="ml-1 text-sm text-base-600">
15
+ <span class="ml-1 text-sm text-base-300">
16
16
  {{ $settings.whatsapp }}
17
17
  </span>
18
18
  </template>
19
19
  </SocialNetworkLink>
20
20
  </span>
21
21
  </div>
22
- <div v-if="$settings.address || $settings.phone" class="mt-3 text-base-700">
22
+ <div v-if="$settings.address || $settings.phone" class="mt-3 text-base-200">
23
23
  <address v-if="$settings.address" class="inline-block mr-4">
24
24
  {{ $settings.address }}
25
25
  </address>
@@ -33,27 +33,6 @@
33
33
  </ALink>
34
34
  </div>
35
35
  </div>
36
- <div v-if="categories?.length" class="basis-1/2 sm:basis-auto">
37
- <div class="text-lg font-medium mb-2.5">
38
- {{ categoriesColTitle || $t.i19categories }}
39
- </div>
40
- <ul
41
- class="text-sm"
42
- :class="categories.length > 4
43
- ? 'grid md:grid-cols-2 gap-x-5 gap-y-1.5' : 'space-y-1.5'"
44
- >
45
- <li v-for="({ name, slug }, i) in categories" :key="`c-${i}`">
46
- <ALink :href="`/${slug}`" class="ui-link text-base-600">
47
- {{ name }}
48
- </ALink>
49
- </li>
50
- <li>
51
- <ALink href="/s" class="ui-link text-base-900">
52
- {{ $t.i19allProducts }}
53
- </ALink>
54
- </li>
55
- </ul>
56
- </div>
57
36
  <div v-if="pageLinks?.length" class="basis-1/2 sm:basis-auto">
58
37
  <div class="text-lg font-medium mb-2.5">
59
38
  {{ pagesColTitle || $t.i19institutional }}
@@ -64,7 +43,7 @@
64
43
  ? 'grid md:grid-cols-2 gap-x-5 gap-y-1.5' : 'space-y-1.5'"
65
44
  >
66
45
  <li v-for="({ title, href }, i) in pageLinks" :key="`p-${i}`">
67
- <ALink :href="href" class="ui-link text-base-600">
46
+ <ALink :href="href" class="ui-link text-base-50">
68
47
  {{ title }}
69
48
  </ALink>
70
49
  </li>
@@ -89,7 +68,7 @@
89
68
  <i v-else-if="stamp.icon === 'check'" class="i-check-badge"></i>
90
69
  <i v-else class="i-arrow-path-rounded-square"></i>
91
70
  </span>
92
- <span class="text-sm font-medium text-base-600 max-w-[140px]">
71
+ <span class="text-sm font-medium text-base-300 max-w-[140px]">
93
72
  {{ stamp.alt }}
94
73
  <i
95
74
  v-if="stamp.href && stamp.href.charAt(0) !== '/'"
@@ -106,6 +85,7 @@
106
85
  v-for="paymentMethod in $settings.payment_methods"
107
86
  :key="paymentMethod"
108
87
  :flag="paymentMethod"
88
+ class="!text-base-50"
109
89
  />
110
90
  </div>
111
91
  </div>
@@ -116,7 +96,7 @@
116
96
  {{ $settings.address ? `/ ${$settings.address}` : '' }}
117
97
  / {{ $settings.doc_number }}
118
98
  </div>
119
- <ALink href="https://www.ecomplus.io/" class="italic text-[#37003c]">
99
+ <ALink href="https://www.ecomplus.io/" class="italic text-[rgb(239,235,240)]">
120
100
  powered by <b>E-Com Plus</b>
121
101
  </ALink>
122
102
  </div>
@@ -125,7 +105,6 @@
125
105
  </template>
126
106
 
127
107
  <script setup lang="ts">
128
- import type { Categories } from '@cloudcommerce/api/types';
129
108
  import type { LayoutContent } from '@@sf/content';
130
109
  import { socialNetworks } from '@@sf/sf-lib';
131
110
  import SocialNetworkLink from '@@sf/components/SocialNetworkLink.vue';
@@ -133,11 +112,6 @@ import PaymentMethodFlag from '@@sf/components/PaymentMethodFlag.vue';
133
112
 
134
113
  export interface Props {
135
114
  stamps?: LayoutContent['footer']['stamps'];
136
- categories?: Array<Partial<Categories> & {
137
- name: string;
138
- slug: string;
139
- }>;
140
- categoriesColTitle?: string;
141
115
  pageLinks?: Array<{
142
116
  title: string;
143
117
  href: string;
@@ -19,7 +19,7 @@
19
19
  >
20
20
  <i
21
21
  class="text-base-100 text-3xl"
22
- :class="isSidenavOpen ? 'i-close' : 'i-menu'"
22
+ :class="isSidenavOpen ? 'i-close' : 'i-menu-3-line'"
23
23
  ></i>
24
24
  </button>
25
25
  </div>
@@ -29,22 +29,28 @@
29
29
  v-bind="{ isSticky, ...headerNavLinks }"
30
30
  />
31
31
  <div class="basis-1/4 px-2 flex justify-end items-center gap-3 lg:gap-4">
32
- <AccountMenu
33
- class="hidden sm:block"
34
- :aria-label="$t.i19myAccount"
35
- :service-links="serviceLinks"
36
- >
32
+ <AccountMenu class="hidden sm:block">
37
33
  <template #button="{ open }">
38
34
  <i
39
- class="i-account w-7 h-7
35
+ class="i-account-pin-circle-line w-7 h-7
40
36
  hover:text-primary hover:scale-110 active:scale-125"
41
37
  :class="open ? 'text-white scale-110' : 'text-base-200'"
42
38
  ></i>
43
39
  </template>
44
40
  </AccountMenu>
45
- <button :aria-label="$t.i19openCart">
46
- <i class="i-shopping-cart w-7 h-7
41
+ <button
42
+ :aria-label="$t.i19openCart"
43
+ @click="isCartOpen = !isCartOpen"
44
+ class="relative group"
45
+ >
46
+ <i class="i-shopping-bag-3-line w-7 h-7
47
47
  text-base-200 hover:text-primary hover:scale-110 active:scale-125"></i>
48
+ <span
49
+ v-if="delayedTotalItems"
50
+ class="ui-badge-pill-sm absolute -top-1 -right-1.5"
51
+ >
52
+ {{ delayedTotalItems }}
53
+ </span>
48
54
  </button>
49
55
  </div>
50
56
  </div>
@@ -53,46 +59,93 @@
53
59
  :has-close-button="false"
54
60
  position="absolute"
55
61
  :class="isSticky ? 'mt-2 md:mt-3' : 'mt-3 sm:mt-4 md:mt-5'"
56
- :style="{ height: `calc(100vh - ${positionY}px + .5rem)` }"
62
+ :style="{
63
+ height: `calc(100vh - ${positionY}px + .5rem)`,
64
+ maxHeight: `calc(100dvh - ${positionY}px + .5rem)`,
65
+ }"
57
66
  >
58
67
  <ShopSidenav class="bg-white pt-6" />
59
68
  </Drawer>
69
+ <Teleport v-if="isMounted" to="#teleported-overlap">
70
+ <Drawer
71
+ v-model="isCartOpen"
72
+ placement="end"
73
+ backdrop-target="#teleported-overlap"
74
+ >
75
+ <Suspense>
76
+ <CartSidebar v-if="isCartOpenOnce" @close="isCartOpen = false" />
77
+ <template #fallback>
78
+ <Skeleton class="pt-16 px-6" is-bold />
79
+ </template>
80
+ </Suspense>
81
+ </Drawer>
82
+ </Teleport>
60
83
  </header>
61
84
  </template>
62
85
 
63
86
  <script setup lang="ts">
64
- import type { CategoriesList } from '@cloudcommerce/api/types';
65
- import { getCurrentInstance, ref } from 'vue';
66
- import useShopHeader from '@@sf/composables/use-shop-header';
87
+ import {
88
+ ref,
89
+ watch,
90
+ onMounted,
91
+ defineAsyncComponent,
92
+ getCurrentInstance,
93
+ } from 'vue';
94
+ import { watchOnce } from '@vueuse/core';
95
+ import { totalItems } from '@@sf/state/shopping-cart';
96
+ import {
97
+ type Props as UseShopHeaderProps,
98
+ useShopHeader,
99
+ } from '@@sf/composables/use-shop-header';
67
100
  import Drawer from '@@sf/components/Drawer.vue';
68
101
  import ShopSidenav from '~/components/ShopSidenav.vue';
69
102
  import ShopHeaderMenu from '~/components/ShopHeaderMenu.vue';
70
103
  import AccountMenu from '~/components/AccountMenu.vue';
71
104
 
72
- export interface Props {
73
- categories: CategoriesList;
74
- menuCategorySlugs?: string[];
75
- menuRandomCategories?: number;
76
- isAlphabeticalSortSubmenu?: boolean;
77
- serviceLinks?: Array<{
78
- title: string;
79
- href: string;
80
- }>;
81
- }
105
+ export interface Props extends Omit<UseShopHeaderProps, 'header'> {}
82
106
 
107
+ const CartSidebar = defineAsyncComponent(() => import('~/components/CartSidebar.vue'));
83
108
  const props = defineProps<Props>();
84
109
  const header = ref<HTMLElement | null>(null);
85
- const {
86
- isSticky,
87
- positionY,
88
- } = useShopHeader({ ...props, header });
110
+ const { isSticky, positionY } = useShopHeader({ ...props, header });
89
111
  const isSidenavOpen = ref(false);
112
+ const isSearchOpen = ref(false);
113
+ const isSearchOpenOnce = ref(false);
114
+ watchOnce(isSearchOpen, () => {
115
+ isSearchOpenOnce.value = true;
116
+ });
117
+ const isCartOpen = ref(false);
118
+ const isCartOpenOnce = ref(false);
119
+ watchOnce(isCartOpen, () => {
120
+ isCartOpenOnce.value = true;
121
+ });
122
+ const isMounted = ref(false);
123
+ const delayedTotalItems = ref(0);
124
+ onMounted(() => {
125
+ isMounted.value = true;
126
+ watch(totalItems, (newTotalItems, prevTotalItems) => {
127
+ if (typeof prevTotalItems === 'number') {
128
+ if (prevTotalItems < newTotalItems) {
129
+ isCartOpen.value = true;
130
+ } else if (prevTotalItems && !newTotalItems) {
131
+ isCartOpen.value = false;
132
+ }
133
+ }
134
+ delayedTotalItems.value = newTotalItems;
135
+ }, { immediate: true });
136
+ });
90
137
  const vm = getCurrentInstance();
91
- const metafields = vm?.appContext.app.config.globalProperties.$settings.metafields || {};
138
+ const metafields = {
139
+ support_url: '',
140
+ business_lp_url: '',
141
+ monocard_slug: '',
142
+ monodot_slug: '',
143
+ ...vm?.appContext.app.config.globalProperties.$settings.metafields,
144
+ };
92
145
  const headerNavLinks = {
93
- supportUrl: metafields.support_url || '',
94
- businessLpUrl: metafields.business_lp_url || '',
95
- monocardSlug: metafields.monocard_slug || '',
96
- monodotSlug: metafields.monodot_slug || '',
146
+ supportUrl: metafields.support_url,
147
+ businessLpUrl: metafields.business_lp_url,
148
+ monocardSlug: metafields.monocard_slug,
149
+ monodotSlug: metafields.monodot_slug,
97
150
  };
98
151
  </script>
@@ -29,7 +29,7 @@
29
29
  >
30
30
  <span>{{ $t.i19buy }}</span>
31
31
  <i
32
- class="i-chevron-down ml-1 transition-transform"
32
+ class="i-arrow-down-s-line ml-1 transition-transform"
33
33
  :class="open ? 'rotate-180' : 'opacity-50'"
34
34
  ></i>
35
35
  </MenuButton>
@@ -12,7 +12,7 @@
12
12
  <footer class="text-base">
13
13
  <div class="flex items-center px-2 py-4 bg-base-100">
14
14
  <AccountLink class="p-2 grow flex items-center gap-3">
15
- <i class="i-account text-4xl text-base-500 m-0"></i>
15
+ <i class="i-account-pin-circle-line text-4xl text-base-500 m-0"></i>
16
16
  <span class="leading-tight">
17
17
  {{ `${$t.i19hello} ${customerName || $t.i19visitor}` }}
18
18
  <small class="block lowercase font-semibold text-primary">
@@ -26,7 +26,7 @@
26
26
  class="p-2 text-right text-base-800"
27
27
  >
28
28
  <span class="text-base-600">{{ $t.i19logout }}</span>
29
- <i class="i-logout text-lg ml-1"></i>
29
+ <i class="i-logout-circle-r-line text-lg ml-1"></i>
30
30
  </button>
31
31
  </div>
32
32
  <ul class="flex gap-3 p-4 bg-base-200 text-xl text-base-700">
@@ -47,7 +47,7 @@ import {
47
47
  isLogged,
48
48
  logout,
49
49
  } from '@@sf/state/customer-session';
50
- import { socialNetworks } from '@@sf/server-data';
50
+ import { socialNetworks } from '@@sf/sf-lib';
51
51
  import AccountLink from '@@sf/components/AccountLink.vue';
52
52
  import SocialNetworkLink from '@@sf/components/SocialNetworkLink.vue';
53
53
  import ShopSidenavCategory from '~/components/ShopSidenavCategory.vue';
@@ -11,8 +11,8 @@
11
11
  :class="isOpen ? 'bg-base-100' : null"
12
12
  >
13
13
  <i :class="!isOpen
14
- ? 'i-arrow-right float-right mb-0 mt-1 text-xl text-base-500'
15
- : 'i-arrow-left text-lg'"></i>
14
+ ? 'i-arrow-right-line float-right mb-0 mt-1 text-xl text-base-500'
15
+ : 'i-arrow-left-line text-lg'"></i>
16
16
  <AImg
17
17
  v-if="!isOpen && categoryTree.icon"
18
18
  :picture="categoryTree.icon"
@@ -1,5 +1,13 @@
1
- /// <reference path="../.astro/types.d.ts" />
2
1
  /// <reference types="@astrojs/image/client" />
3
2
  /// <reference types="vite-plugin-pwa/client" />
3
+ /// <reference types="vue/ref-macros" />
4
4
  /// <reference types="@cloudcommerce/storefront/client" />
5
5
  /// <reference types="@cloudcommerce/storefront/server" />
6
+
7
+ /* eslint-disable import/newline-after-import */
8
+
9
+ declare module '*.vue' {
10
+ import { type DefineComponent } from 'vue';
11
+ const component: DefineComponent<{}, {}, any>;
12
+ export default component;
13
+ }
@@ -1,50 +1,15 @@
1
1
  ---
2
- import type { PageContext } from '@@sf/ssr-context';
3
- import Base from '@@sf/layouts/Base.astro';
2
+ import SfBase from '@@sf/layouts/Base.astro';
4
3
  import InlineScripts from '~/scripts/InlineScripts.astro';
5
- import '@fontsource/inter/variable-full.css';
6
-
7
- export interface Props {
8
- pageContext: PageContext;
9
- title?: string;
10
- }
11
-
12
- const { pageContext, title } = Astro.props as Props;
4
+ import '~/assets/style.css';
5
+ import 'uno.css';
6
+ import '@fontsource-variable/inter/index.css';
13
7
  ---
14
8
 
15
- <Base pageContext={pageContext} title={title}>
9
+ <SfBase>
10
+ <Fragment slot="base-head">
11
+ <slot name="base-head" />
12
+ </Fragment>
16
13
  <InlineScripts slot="before-head-end" />
17
14
  <slot />
18
- </Base>
19
-
20
- <style is:global>
21
- @font-face {
22
- font-family: 'Favorit';
23
- src: url('/assets/fonts/FavoritPro-Regular.woff2') format('woff2');
24
- font-weight: normal;
25
- font-style: normal;
26
- font-display: swap;
27
- }
28
- :root {
29
- --font-brand: "Favorit", sans-serif;
30
- --custom-font-sans: "Inter";
31
- --c-on-primary: rgb(0, 0, 0);
32
- --un-prose-links: rgb(var(--rgb-primary-700));
33
- }
34
- @supports (font-variation-settings: normal) {
35
- :root {
36
- --custom-font-sans: "InterVariable";
37
- }
38
- }
39
- html {
40
- scroll-behavior: smooth;
41
- }
42
- body {
43
- overflow-x: hidden;
44
- }
45
- a, button, button > * {
46
- transition: background-color var(--transition),
47
- color var(--transition), border-color var(--transition),
48
- opacity var(--transition), transform var(--transition-fast);
49
- }
50
- </style>
15
+ </SfBase>
@@ -1,7 +1,4 @@
1
1
  ---
2
- import { filterMainCategories } from '@@sf/composables/use-shop-header';
3
- import useSharedData from '@@sf/composables/use-shared-data';
4
- import Picture from '@@sf/components/Picture.astro';
5
2
  import {
6
3
  type Props as ShopFooterProps,
7
4
  default as ShopFooter,
@@ -14,21 +11,10 @@ const layoutContent = await getContent('layout');
14
11
  const {
15
12
  footer: {
16
13
  stamps,
17
- categories_list: categoriesList,
18
14
  pages_list: pagesList,
19
15
  },
20
16
  } = layoutContent;
21
- let mainCategories: ShopFooterProps['categories'];
22
17
  let pageLinks: ShopFooterProps['pageLinks'];
23
- if (categoriesList?.enabled) {
24
- if (categoriesList.categories?.length) {
25
- mainCategories = categoriesList.categories;
26
- } else {
27
- // Will wait and reuse categories loaded from <PageHeader>
28
- const { value: categories } = await useSharedData({ field: 'categories' });
29
- mainCategories = filterMainCategories(categories);
30
- }
31
- }
32
18
  if (pagesList?.enabled) {
33
19
  if (pagesList.links?.length) {
34
20
  pageLinks = pagesList.links;
@@ -47,20 +33,18 @@ if (pagesList?.enabled) {
47
33
 
48
34
  <ShopFooter
49
35
  {stamps}
50
- categories={mainCategories}
51
- categoriesColTitle={categoriesList?.title}
52
36
  {pageLinks}
53
37
  pagesColTitle={pagesList?.title}
54
38
  >
55
39
  <Fragment slot="logo">
56
40
  <a href="/">
57
41
  <LogoHeading>
58
- <Picture
42
+ <img
59
43
  src={settings.logo}
60
44
  alt={settings.name}
61
- widths={[300]}
45
+ width="150"
46
+ height="24.5"
62
47
  loading="lazy"
63
- class="max-w-[150px]"
64
48
  />
65
49
  </LogoHeading>
66
50
  </a>
@@ -1,20 +1,14 @@
1
1
  ---
2
2
  import usePageHeader from '@@sf/layouts/use-page-header';
3
- import useSharedData from '@@sf/composables/use-shared-data';
4
- import Picture from '@@sf/components/Picture.astro';
5
3
  import PitchBar from '~/components/PitchBar.vue';
6
4
  import ShopHeader from '~/components/ShopHeader.vue';
7
5
 
8
6
  const { routeContext } = Astro.locals;
9
7
  const { settings, isHomepage } = routeContext;
10
8
  const LogoHeading = isHomepage ? 'h1' : 'h2';
11
- const {
12
- pitchBar,
13
- shopHeader: { categories, ...shopHeader },
14
- } = await usePageHeader({ routeContext });
15
- const { inlineClientJS } = await useSharedData({
16
- field: 'categories',
17
- value: categories?.map(({ _id, ...c }) => c),
9
+ const { pitchBar, shopHeader } = await usePageHeader({
10
+ routeContext,
11
+ listedCategoryFields: null,
18
12
  });
19
13
  ---
20
14
 
@@ -22,19 +16,18 @@ const { inlineClientJS } = await useSharedData({
22
16
  {pitchBar.slides.length > 1 && <PitchBar {...pitchBar} client:idle />}
23
17
  {pitchBar.slides.length === 1 && <PitchBar {...pitchBar} />}
24
18
  </slot>
25
- <script is:inline set:html={inlineClientJS} />
26
19
  <ShopHeader {...shopHeader} client:load>
27
20
  <Fragment slot="logo">
28
21
  <a href="/">
29
22
  <LogoHeading>
30
- <Picture
31
- slot="logo-picture"
23
+ <img
32
24
  src={settings.logo}
33
25
  alt={settings.name}
34
- widths={[300]}
26
+ width="150"
27
+ height="24.5"
35
28
  fetchpriority="high"
36
29
  loading="eager"
37
- class="hover:drop-shadow-sm max-w-[150px] mx-auto"
30
+ class="hover:drop-shadow-sm mx-auto"
38
31
  />
39
32
  </LogoHeading>
40
33
  </a>
@@ -1,9 +1,4 @@
1
1
  ---
2
- import type { PageContext } from '@@sf/ssr-context';
3
-
4
- export interface Props {
5
- pageContext?: PageContext;
6
- }
7
2
  ---
8
3
 
9
4
  <main>
@@ -1,16 +1,10 @@
1
1
  ---
2
- import type { PageContext } from '@@sf/ssr-context';
3
- import api from '@cloudcommerce/api';
4
2
  import LottiePhoneNFC from '~/components/LottiePhoneNFC.vue';
5
3
  import CasesGrid from '~/components/CasesGrid.astro';
6
- import FeatureTabs from '~/components/FeatureTabs.astro';
4
+ import FeaturesSection from '~/components/FeaturesSection.astro';
7
5
 
8
- export interface Props {
9
- pageContext: PageContext;
10
- }
11
-
12
- const { settings } = Astro.props.pageContext;
13
- const products = (await api.get('products')).data.result;
6
+ const { routeContext } = Astro.locals;
7
+ const { settings } = routeContext;
14
8
  ---
15
9
 
16
10
  <main>
@@ -70,7 +64,7 @@ const products = (await api.get('products')).data.result;
70
64
  </div>
71
65
  </div>
72
66
  <div class="lg:col-span-4 mt-5 lg:mt-7 h-96 sm:h-auto">
73
- <LottiePhoneNFC client:only />
67
+ <LottiePhoneNFC client:idle />
74
68
  </div>
75
69
  </div>
76
70
  </article>
@@ -80,7 +74,7 @@ const products = (await api.get('products')).data.result;
80
74
  <div class="max-w-lg mx-auto mt-7">
81
75
  <a href="/#avaliacoes" class="text-lg text-primary-600 hover:text-primary-800
82
76
  font-brand lowercase flex gap-1 sm:gap-2 items-center justify-center">
83
- <i class="i-chevron-down text-3xl animate-bounce -mb-1.5"></i>
77
+ <i class="i-arrow-down-s-line text-3xl animate-bounce -mb-1.5"></i>
84
78
  <span class="underline underline-offset-4 decoration-primary">
85
79
  O que profissionais e times dizem</span>
86
80
  <div class="hidden sm:flex gap-0.5 text-xs text-yellow-400">
@@ -94,7 +88,7 @@ const products = (await api.get('products')).data.result;
94
88
  </div>
95
89
  </section>
96
90
  <section class="bg-gradient-to-br from-white to-base-100 py-9">
97
- <FeatureTabs />
91
+ <FeaturesSection />
98
92
  </section>
99
93
  <section id="produtos"></section>
100
94
  </main>
@@ -0,0 +1,38 @@
1
+ ---
2
+ import { usePageSections } from '@@sf/layouts/use-page-main';
3
+ import BannersGrid from '~/components/BannersGrid.astro';
4
+ import ProductShelf from '~/components/ProductShelf.vue';
5
+ import Breadcrumbs from '~/components/Breadcrumbs.astro';
6
+ import DocDescription from '~/components/DocDescription.astro';
7
+
8
+ const { routeContext } = Astro.locals;
9
+ const { sections } = await usePageSections({
10
+ routeContext,
11
+ handleCustomSection: async (type, content) => {
12
+ if (type === 'c:foo') return { props: { ...content, foo: 'bar' } };
13
+ return { props: content };
14
+ },
15
+ });
16
+ /* `apiContext` is surelly set here (from Wildcard.astro)
17
+ cause route resource is required to define sections from content. */
18
+ const { apiContext: { doc: apiDoc } } = routeContext;
19
+ ---
20
+
21
+ <article class="my-9 md:my-12">
22
+ {sections.map(async ({ type, props }) => {
23
+ switch (type) {
24
+ case 'product-shelf':
25
+ return <ProductShelf {...props} client:visible />
26
+ case 'banners-grid':
27
+ return <BannersGrid {...props} />
28
+ case 'breadcrumbs':
29
+ return apiDoc && <Breadcrumbs {...props} apiDoc={apiDoc} />
30
+ case 'doc-description':
31
+ return apiDoc && <DocDescription apiDoc={apiDoc} />
32
+ case 'c:foo':
33
+ return <div data-foo={props.foo}></div>
34
+ default:
35
+ return <div data-section={type}></div>
36
+ }
37
+ })}
38
+ </article>
@@ -1,23 +1,9 @@
1
1
  ---
2
- import type { PageContext } from '@@sf/ssr-context';
3
-
4
- export interface Props {
5
- pageContext: PageContext;
6
- }
7
-
8
- const {
9
- pageContext: { apiResource, apiDoc },
10
- } = Astro.props as Props;
2
+ import Sections from '~/main/Sections.astro';
3
+ const { fetchingApiContext } = Astro.locals.routeContext;
4
+ await fetchingApiContext;
11
5
  ---
12
6
 
13
7
  <main>
14
- {apiDoc &&
15
- <h1>Hello <span class="text-gradient">{apiDoc.name}</span></h1>
16
- <hr>
17
- <div class="mt-3">
18
- <mark>{apiDoc._id}</mark> from <i>{apiResource}</i>
19
- <p>{Math.random()}</p>
20
- <em>Lorem ipsum dolor sit amet</em>
21
- </div>
22
- }
8
+ <Sections />
23
9
  </main>
@@ -1,17 +1,20 @@
1
1
  ---
2
2
  import api from '@cloudcommerce/api';
3
- import loadPageContext, { PageContext } from '@@sf/ssr-context';
4
- import PagesLayout from '~/layouts/Pages.astro';
3
+ import loadRouteContext, { RouteContext } from '@@sf/ssr-context';
4
+ import BaseHead from '@@sf/layouts/BaseHead.astro';
5
+ import Base from '~/layouts/Base.astro';
6
+ import PageHeader from '~/layouts/PageHeader.astro';
7
+ import PageFooter from '~/layouts/PageFooter.astro';
5
8
  import WildcardMain from '~/main/Wildcard.astro';
6
9
 
7
10
  if (String(Astro.params.slug).endsWith('.css.map')) {
8
11
  return new Response(null, { status: 404 });
9
12
  }
10
13
 
11
- let pageContext: PageContext | undefined;
14
+ let routeContext: RouteContext | undefined;
12
15
  let loadError: any;
13
16
  try {
14
- pageContext = await loadPageContext(Astro);
17
+ routeContext = await loadRouteContext(Astro);
15
18
  } catch (err: any) {
16
19
  if (err.astroResponse) {
17
20
  return err.astroResponse;
@@ -26,11 +29,14 @@ export async function getStaticPaths() {
26
29
  ---
27
30
 
28
31
  <!DOCTYPE html>
29
- <html lang={pageContext?.lang.replace('_', '-')}>
30
- {pageContext &&
31
- <PagesLayout pageContext={pageContext}>
32
- <WildcardMain pageContext={pageContext} />
33
- </PagesLayout>
32
+ <html lang={routeContext?.lang.replace('_', '-')}>
33
+ {routeContext &&
34
+ <Base>
35
+ <BaseHead slot="base-head" />
36
+ <PageHeader />
37
+ <WildcardMain />
38
+ <PageFooter />
39
+ </Base>
34
40
  }
35
41
  {loadError && <Fragment set:html={loadError.responseHTML} />}
36
42
  </html>