cloudcommerce 0.6.6 → 0.6.7

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 (58) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/package.json +1 -1
  3. package/packages/api/package.json +1 -1
  4. package/packages/apps/correios/package.json +1 -1
  5. package/packages/apps/custom-payment/package.json +1 -1
  6. package/packages/apps/custom-shipping/package.json +1 -1
  7. package/packages/apps/datafrete/package.json +1 -1
  8. package/packages/apps/discounts/package.json +1 -1
  9. package/packages/apps/emails/package.json +1 -1
  10. package/packages/apps/fb-conversions/package.json +1 -1
  11. package/packages/apps/frenet/package.json +1 -1
  12. package/packages/apps/galaxpay/assets/onload-expression.min.js +1 -0
  13. package/packages/apps/galaxpay/package.json +1 -1
  14. package/packages/apps/google-analytics/package.json +1 -1
  15. package/packages/apps/infinitepay/package.json +1 -1
  16. package/packages/apps/jadlog/package.json +1 -1
  17. package/packages/apps/loyalty-points/package.json +1 -1
  18. package/packages/apps/melhor-envio/package.json +1 -1
  19. package/packages/apps/mercadopago/assets/onload-expression.min.js +1 -0
  20. package/packages/apps/mercadopago/package.json +1 -1
  21. package/packages/apps/pagarme/assets/onload-expression.min.js +1 -0
  22. package/packages/apps/pagarme/package.json +1 -1
  23. package/packages/apps/paghiper/package.json +1 -1
  24. package/packages/apps/pix/package.json +1 -1
  25. package/packages/apps/tiny-erp/package.json +1 -1
  26. package/packages/apps/webhooks/package.json +1 -1
  27. package/packages/cli/package.json +1 -1
  28. package/packages/config/package.json +1 -1
  29. package/packages/emails/package.json +1 -1
  30. package/packages/events/package.json +1 -1
  31. package/packages/firebase/package.json +1 -1
  32. package/packages/i18n/package.json +1 -1
  33. package/packages/modules/package.json +1 -1
  34. package/packages/passport/package.json +1 -1
  35. package/packages/ssr/package.json +1 -1
  36. package/packages/storefront/dist/client/_astro/{PitchBar.fae93937.js → PitchBar.16431255.js} +1 -1
  37. package/packages/storefront/dist/client/_astro/{Prices.c3513660.js → Prices.7368883b.js} +1 -1
  38. package/packages/storefront/dist/client/_astro/{ProductCard.943cd687.js → ProductCard.b9f8f3e7.js} +1 -1
  39. package/packages/storefront/dist/client/_astro/ShopHeader.7967a383.js +4 -0
  40. package/packages/storefront/dist/client/_astro/{_...slug_.86768317.css → _...slug_.61014c4c.css} +1 -1
  41. package/packages/storefront/dist/client/_astro/{_plugin-vue_export-helper.a7457a61.js → _plugin-vue_export-helper.3dfd3410.js} +1 -1
  42. package/packages/storefront/dist/client/_astro/{client.e1250adc.js → client.3ab4cffd.js} +1 -1
  43. package/packages/storefront/dist/client/_astro/{format-money.6379f63c.js → format-money.e75b6ce1.js} +1 -1
  44. package/packages/storefront/dist/client/_astro/{index.769c6acb.js → index.140ec818.js} +1 -1
  45. package/packages/storefront/dist/client/_astro/{modules-info.fbf28964.js → modules-info.6e650119.js} +1 -1
  46. package/packages/storefront/dist/client/_astro/{runtime-dom.esm-bundler.4e28b902.js → runtime-dom.esm-bundler.b4764bdb.js} +1 -1
  47. package/packages/storefront/dist/client/sw.js +1 -1
  48. package/packages/storefront/dist/server/chunks/pages/{all.226fa45f.mjs → all.571056bd.mjs} +771 -74
  49. package/packages/storefront/dist/server/entry.mjs +2 -2
  50. package/packages/storefront/package.json +1 -1
  51. package/packages/storefront/server.d.ts +5 -0
  52. package/packages/storefront/src/lib/components/AccountLink.vue +38 -0
  53. package/packages/storefront/src/lib/layouts/PagesHeader.astro +1 -0
  54. package/packages/storefront/src/lib/ssr-context.ts +2 -5
  55. package/packages/storefront/tailwind.config.cjs +1 -0
  56. package/packages/types/index.ts +5 -0
  57. package/packages/types/package.json +1 -1
  58. package/packages/storefront/dist/client/_astro/ShopHeader.5b3abae3.js +0 -4
@@ -14,7 +14,7 @@ import enableDestroy from 'server-destroy';
14
14
  import { defineComponent, computed, useSSRContext, mergeProps, h as h$2, createSSRApp } from 'vue';
15
15
  import { ssrRenderSlotInner, ssrRenderAttrs, ssrRenderSlot, renderToString } from 'vue/server-renderer';
16
16
  import { img, imgSizes, i18n, formatMoney } from '@ecomplus/utils';
17
- /* empty css */import { _ as _export_sfc, a as _page0, b as _page1, c as _page2, d as _page3, e as _page4, f as _page5 } from './chunks/pages/all.226fa45f.mjs';
17
+ /* empty css */import { _ as _export_sfc, a as _page0, b as _page1, c as _page2, d as _page3, e as _page4, f as _page5 } from './chunks/pages/all.571056bd.mjs';
18
18
  import 'path-to-regexp';
19
19
  import 'tls';
20
20
  import 'mime';
@@ -3415,7 +3415,7 @@ const _renderer1 = {
3415
3415
  const pageMap = new Map([["../../node_modules/.pnpm/@astrojs+image@0.15.0_astro@2.0.14+sharp@0.31.3/node_modules/@astrojs/image/dist/endpoint.js", _page0],["src/pages/index.astro", _page1],["src/pages/fallback.astro", _page2],["src/pages/app/index.astro", _page3],["src/pages/app/account.astro", _page4],["src/pages/[...slug].astro", _page5],]);
3416
3416
  const renderers = [Object.assign({"name":"astro:jsx","serverEntrypoint":"astro/jsx/server.js","jsxImportSource":"astro"}, { ssr: server_default }),Object.assign({"name":"@astrojs/vue","clientEntrypoint":"@astrojs/vue/client.js","serverEntrypoint":"@astrojs/vue/server.js"}, { ssr: _renderer1 }),];
3417
3417
 
3418
- const _manifest = Object.assign(deserializeManifest({"adapterName":"@astrojs/node","routes":[{"file":"","links":[],"scripts":[],"routeData":{"type":"endpoint","route":"/_image","pattern":"^\\/_image$","segments":[[{"content":"_image","dynamic":false,"spread":false}]],"params":[],"component":"../../node_modules/.pnpm/@astrojs+image@0.15.0_astro@2.0.14+sharp@0.31.3/node_modules/@astrojs/image/dist/endpoint.js","pathname":"/_image","_meta":{"trailingSlash":"ignore"}}},{"file":"","links":["_astro/_...slug_.86768317.css","_astro/index.0c833781.css"],"scripts":[{"type":"external","value":"_astro/hoisted.721ad75d.js"}],"routeData":{"route":"/","type":"page","pattern":"^\\/$","segments":[],"params":[],"component":"src/pages/index.astro","pathname":"/","_meta":{"trailingSlash":"ignore"}}},{"file":"","links":["_astro/_...slug_.86768317.css"],"scripts":[{"type":"external","value":"_astro/hoisted.721ad75d.js"}],"routeData":{"route":"/fallback","type":"page","pattern":"^\\/fallback\\/?$","segments":[[{"content":"fallback","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/fallback.astro","pathname":"/fallback","_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[],"routeData":{"route":"/app","type":"page","pattern":"^\\/app\\/?$","segments":[[{"content":"app","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/app/index.astro","pathname":"/app","_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[],"routeData":{"route":"/app/account","type":"page","pattern":"^\\/app\\/account\\/?$","segments":[[{"content":"app","dynamic":false,"spread":false}],[{"content":"account","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/app/account.astro","pathname":"/app/account","_meta":{"trailingSlash":"ignore"}}},{"file":"","links":["_astro/_...slug_.86768317.css"],"scripts":[{"type":"external","value":"_astro/hoisted.721ad75d.js"}],"routeData":{"route":"/[...slug]","type":"page","pattern":"^(?:\\/(.*?))?\\/?$","segments":[[{"content":"...slug","dynamic":true,"spread":true}]],"params":["...slug"],"component":"src/pages/[...slug].astro","_meta":{"trailingSlash":"ignore"}}}],"site":"https://ecom2-002.web.app","base":"/","markdown":{"drafts":false,"syntaxHighlight":"shiki","shikiConfig":{"langs":[],"theme":"github-dark","wrap":false},"remarkPlugins":[],"rehypePlugins":[],"remarkRehype":{},"gfm":true,"smartypants":true,"contentDir":"file:///home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/content/"},"pageMap":null,"propagation":[["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/lib/layouts/BaseHead.astro","in-tree"],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/lib/layouts/BaseStateJson.astro","in-tree"],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/lib/layouts/BaseBody.astro","in-tree"],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/lib/layouts/Base.astro","in-tree"],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/scripts/InlineScripts.astro","in-tree"],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/layouts/Base.astro","in-tree"],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/node_modules/@astrojs/image/components/Image.astro","in-tree"],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/node_modules/@astrojs/image/components/Picture.astro","in-tree"],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/lib/ssr/Picture.astro","in-tree"],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/lib/layouts/PagesHeader.astro","in-tree"],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/layouts/Pages.astro","in-tree"],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/main/Home.astro","in-tree"],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/pages/index.astro","in-tree"],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/main/Fallback.astro","in-tree"],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/pages/fallback.astro","in-tree"],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/pages/app/index.astro","in-tree"],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/pages/app/account.astro","in-tree"],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/main/Wildcard.astro","in-tree"],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/pages/[...slug].astro","in-tree"]],"renderers":[],"entryModules":{"\u0000@astrojs-ssr-virtual-entry":"_@astrojs-ssr-virtual-entry.mjs","~/components/Prices.vue":"_astro/Prices.c3513660.js","@@sf/components/ProductCard.vue":"_astro/ProductCard.943cd687.js","/astro/hoisted.js?q=0":"_astro/hoisted.721ad75d.js","@astrojs/vue/client.js":"_astro/client.e1250adc.js","~/components/PitchBar.vue":"_astro/PitchBar.fae93937.js","/home/leo/code/ecomplus/cloud-commerce/node_modules/workbox-window/build/workbox-window.prod.es5.mjs":"_astro/workbox-window.prod.es5.295a6886.js","~/components/ShopHeader.vue":"_astro/ShopHeader.5b3abae3.js","/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/lib/scripts/firebase-app.ts":"_astro/firebase-app.7ce2ebb1.js","astro:scripts/before-hydration.js":""},"assets":["/_astro/index.0c833781.css","/_astro/server.1bc2fa51.css","/_astro/_...slug_.86768317.css","/manifest.webmanifest","/robots.txt","/sw.js","/workbox-e2ee76b5.js","/_astro/PitchBar.fae93937.js","/_astro/Prices.c3513660.js","/_astro/ProductCard.943cd687.js","/_astro/ShopHeader.5b3abae3.js","/_astro/_plugin-vue_export-helper.a7457a61.js","/_astro/client.e1250adc.js","/_astro/firebase-app.7ce2ebb1.js","/_astro/format-money.6379f63c.js","/_astro/hoisted.721ad75d.js","/_astro/idle-callback.889bf0ea.js","/_astro/index.769c6acb.js","/_astro/modules-info.fbf28964.js","/_astro/preload-helper.101896b7.js","/_astro/runtime-dom.esm-bundler.4e28b902.js","/_astro/session-utm.72684b84.js","/_astro/workbox-window.prod.es5.295a6886.js","/admin/config.json","/assets/cms-preview.css","/assets/cms.css","/assets/cvv.png","/assets/img-placeholder.png","/assets/payments.png","/assets/ssl-safe.png","/img/icon.png","/img/large-icon.png","/img/uploads/banner1.png","/img/uploads/banner2.png","/img/uploads/banner2.webp","/img/uploads/favicon.png","/img/uploads/headless.png","/img/uploads/headphone.png","/img/uploads/headphone.webp","/img/uploads/icon.png","/img/uploads/large-icon.png","/img/uploads/logo.png","/img/uploads/logo.webp","/img/uploads/og-image.png","/img/uploads/passion.png","/img/uploads/passion.webp","/img/uploads/pwa-reliable.png","/img/uploads/rect8589.png","/img/uploads/rect859.png","/img/uploads/rect89.png","/img/uploads/rect89.webp","/img/uploads/ssl-safe.png","/assets/icons/bootstrap-icons/font/storefront-icons.woff2","/assets/icons/feather-icons/font/storefront-icons.woff2","/assets/icons/font-awesome/font/storefront-icons.woff2","/assets/icons/line-awesome/font/storefront-icons.woff2","/assets/icons/tabler-icons/font/storefront-icons.woff2"]}), {
3418
+ const _manifest = Object.assign(deserializeManifest({"adapterName":"@astrojs/node","routes":[{"file":"","links":[],"scripts":[],"routeData":{"type":"endpoint","route":"/_image","pattern":"^\\/_image$","segments":[[{"content":"_image","dynamic":false,"spread":false}]],"params":[],"component":"../../node_modules/.pnpm/@astrojs+image@0.15.0_astro@2.0.14+sharp@0.31.3/node_modules/@astrojs/image/dist/endpoint.js","pathname":"/_image","_meta":{"trailingSlash":"ignore"}}},{"file":"","links":["_astro/_...slug_.61014c4c.css","_astro/index.0c833781.css"],"scripts":[{"type":"external","value":"_astro/hoisted.721ad75d.js"}],"routeData":{"route":"/","type":"page","pattern":"^\\/$","segments":[],"params":[],"component":"src/pages/index.astro","pathname":"/","_meta":{"trailingSlash":"ignore"}}},{"file":"","links":["_astro/_...slug_.61014c4c.css"],"scripts":[{"type":"external","value":"_astro/hoisted.721ad75d.js"}],"routeData":{"route":"/fallback","type":"page","pattern":"^\\/fallback\\/?$","segments":[[{"content":"fallback","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/fallback.astro","pathname":"/fallback","_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[],"routeData":{"route":"/app","type":"page","pattern":"^\\/app\\/?$","segments":[[{"content":"app","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/app/index.astro","pathname":"/app","_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[],"routeData":{"route":"/app/account","type":"page","pattern":"^\\/app\\/account\\/?$","segments":[[{"content":"app","dynamic":false,"spread":false}],[{"content":"account","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/app/account.astro","pathname":"/app/account","_meta":{"trailingSlash":"ignore"}}},{"file":"","links":["_astro/_...slug_.61014c4c.css"],"scripts":[{"type":"external","value":"_astro/hoisted.721ad75d.js"}],"routeData":{"route":"/[...slug]","type":"page","pattern":"^(?:\\/(.*?))?\\/?$","segments":[[{"content":"...slug","dynamic":true,"spread":true}]],"params":["...slug"],"component":"src/pages/[...slug].astro","_meta":{"trailingSlash":"ignore"}}}],"site":"https://ecom2-002.web.app","base":"/","markdown":{"drafts":false,"syntaxHighlight":"shiki","shikiConfig":{"langs":[],"theme":"github-dark","wrap":false},"remarkPlugins":[],"rehypePlugins":[],"remarkRehype":{},"gfm":true,"smartypants":true,"contentDir":"file:///home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/content/"},"pageMap":null,"propagation":[["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/lib/layouts/BaseHead.astro","in-tree"],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/lib/layouts/BaseStateJson.astro","in-tree"],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/lib/layouts/BaseBody.astro","in-tree"],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/lib/layouts/Base.astro","in-tree"],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/scripts/InlineScripts.astro","in-tree"],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/layouts/Base.astro","in-tree"],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/node_modules/@astrojs/image/components/Image.astro","in-tree"],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/node_modules/@astrojs/image/components/Picture.astro","in-tree"],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/lib/ssr/Picture.astro","in-tree"],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/lib/layouts/PagesHeader.astro","in-tree"],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/layouts/Pages.astro","in-tree"],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/main/Home.astro","in-tree"],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/pages/index.astro","in-tree"],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/main/Fallback.astro","in-tree"],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/pages/fallback.astro","in-tree"],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/pages/app/index.astro","in-tree"],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/pages/app/account.astro","in-tree"],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/main/Wildcard.astro","in-tree"],["/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/pages/[...slug].astro","in-tree"]],"renderers":[],"entryModules":{"\u0000@astrojs-ssr-virtual-entry":"_@astrojs-ssr-virtual-entry.mjs","~/components/Prices.vue":"_astro/Prices.7368883b.js","/astro/hoisted.js?q=0":"_astro/hoisted.721ad75d.js","@@sf/components/ProductCard.vue":"_astro/ProductCard.b9f8f3e7.js","~/components/PitchBar.vue":"_astro/PitchBar.16431255.js","@astrojs/vue/client.js":"_astro/client.3ab4cffd.js","/home/leo/code/ecomplus/cloud-commerce/node_modules/workbox-window/build/workbox-window.prod.es5.mjs":"_astro/workbox-window.prod.es5.295a6886.js","/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/lib/scripts/firebase-app.ts":"_astro/firebase-app.7ce2ebb1.js","~/components/ShopHeader.vue":"_astro/ShopHeader.7967a383.js","astro:scripts/before-hydration.js":""},"assets":["/_astro/index.0c833781.css","/_astro/server.1bc2fa51.css","/_astro/_...slug_.61014c4c.css","/manifest.webmanifest","/robots.txt","/sw.js","/workbox-e2ee76b5.js","/_astro/PitchBar.16431255.js","/_astro/Prices.7368883b.js","/_astro/ProductCard.b9f8f3e7.js","/_astro/ShopHeader.7967a383.js","/_astro/_plugin-vue_export-helper.3dfd3410.js","/_astro/client.3ab4cffd.js","/_astro/firebase-app.7ce2ebb1.js","/_astro/format-money.e75b6ce1.js","/_astro/hoisted.721ad75d.js","/_astro/idle-callback.889bf0ea.js","/_astro/index.140ec818.js","/_astro/modules-info.6e650119.js","/_astro/preload-helper.101896b7.js","/_astro/runtime-dom.esm-bundler.b4764bdb.js","/_astro/session-utm.72684b84.js","/_astro/workbox-window.prod.es5.295a6886.js","/admin/config.json","/assets/cms-preview.css","/assets/cms.css","/assets/cvv.png","/assets/img-placeholder.png","/assets/payments.png","/assets/ssl-safe.png","/img/icon.png","/img/large-icon.png","/img/uploads/banner1.png","/img/uploads/banner2.png","/img/uploads/banner2.webp","/img/uploads/favicon.png","/img/uploads/headless.png","/img/uploads/headphone.png","/img/uploads/headphone.webp","/img/uploads/icon.png","/img/uploads/large-icon.png","/img/uploads/logo.png","/img/uploads/logo.webp","/img/uploads/og-image.png","/img/uploads/passion.png","/img/uploads/passion.webp","/img/uploads/pwa-reliable.png","/img/uploads/rect8589.png","/img/uploads/rect859.png","/img/uploads/rect89.png","/img/uploads/rect89.webp","/img/uploads/ssl-safe.png","/assets/icons/bootstrap-icons/font/storefront-icons.woff2","/assets/icons/feather-icons/font/storefront-icons.woff2","/assets/icons/font-awesome/font/storefront-icons.woff2","/assets/icons/line-awesome/font/storefront-icons.woff2","/assets/icons/tabler-icons/font/storefront-icons.woff2"]}), {
3419
3419
  pageMap: pageMap,
3420
3420
  renderers: renderers
3421
3421
  });
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/storefront",
3
3
  "type": "module",
4
- "version": "0.6.6",
4
+ "version": "0.6.7",
5
5
  "description": "E-Com Plus Cloud Commerce storefront with Astro",
6
6
  "main": "src/index.js",
7
7
  "repository": {
@@ -1,3 +1,4 @@
1
+ import type { ApiEndpoint } from '@cloudcommerce/api';
1
2
  import type {
2
3
  ProductSet,
3
4
  CategorySet,
@@ -29,6 +30,10 @@ declare global {
29
30
  },
30
31
  onLoad: (callback: (...args: any[]) => void) => void,
31
32
  };
33
+ // eslint-disable-next-line
34
+ var api_prefetch_endpoints: undefined | ApiEndpoint[];
35
+ // eslint-disable-next-line
36
+ var storefront_slim_doc_regex: undefined | RegExp;
32
37
  }
33
38
 
34
39
  export { };
@@ -0,0 +1,38 @@
1
+ <script setup lang="ts">
2
+ import { computed } from 'vue';
3
+
4
+ export interface Props {
5
+ to?: 'orders' | 'favorites';
6
+ accountUrl?: string;
7
+ returnUrl?: string;
8
+ isSignUp?: boolean;
9
+ }
10
+
11
+ const props = withDefaults(defineProps<Props>(), {
12
+ accountUrl: globalThis.storefront.settings.account_url || '/app/account',
13
+ returnUrl: globalThis.location?.href,
14
+ });
15
+ const href = computed(() => {
16
+ let url = props.accountUrl;
17
+ if (!props.to) {
18
+ if (props.isSignUp) {
19
+ url += '?sign_up&';
20
+ } else {
21
+ url += '?';
22
+ }
23
+ return `${url}return_url=${props.returnUrl}`;
24
+ }
25
+ const { settings } = globalThis.storefront;
26
+ if (props.to === 'orders' && settings.orders_url) {
27
+ return settings.orders_url;
28
+ }
29
+ if (props.to === 'favorites' && settings.favorites_url) {
30
+ return settings.favorites_url;
31
+ }
32
+ return `${url}/${props.to}`;
33
+ });
34
+ </script>
35
+
36
+ <template>
37
+ <a :href="href"><slot /></a>
38
+ </template>
@@ -25,6 +25,7 @@ const shopHeader: ShopHeaderProps = {
25
25
  menuCategorySlugs: cmsHeader.inline_menu_categories?.featured,
26
26
  menuRandomCategories: cmsHeader.inline_menu_categories?.random,
27
27
  isAlphabeticalSortSubmenu: cmsHeader.alphabetical_sort_submenu,
28
+ serviceLinks: cmsHeader.service_links,
28
29
  };
29
30
  const LogoHeading = Astro.props.logoHeading || (isHomepage ? 'h1' : 'h2');
30
31
  ---
@@ -1,9 +1,10 @@
1
1
  import type { AstroGlobal } from 'astro';
2
2
  import type { BaseConfig } from '@cloudcommerce/config';
3
+ import type { ApiError, ApiEndpoint } from '@cloudcommerce/api';
3
4
  import type { CategoriesList, BrandsList } from '@cloudcommerce/api/types';
4
5
  import type { CMS, CmsSettings } from './cms';
5
6
  import { EventEmitter } from 'node:events';
6
- import api, { ApiError, ApiEndpoint } from '@cloudcommerce/api';
7
+ import api from '@cloudcommerce/api';
7
8
  import _getConfig from '../../storefront.config.mjs';
8
9
 
9
10
  type StorefrontConfig = {
@@ -24,10 +25,6 @@ type StorefrontConfig = {
24
25
  const emitter = new EventEmitter();
25
26
  const getConfig: () => StorefrontConfig = _getConfig;
26
27
 
27
- declare global {
28
- // eslint-disable-next-line
29
- var api_prefetch_endpoints: ApiEndpoint[];
30
- }
31
28
  if (!globalThis.api_prefetch_endpoints) {
32
29
  globalThis.api_prefetch_endpoints = [
33
30
  'categories?fields=_id,name,slug,parent,icon,pictures.0',
@@ -45,6 +45,7 @@ let defaultThemeOptions = {
45
45
  account: 'user-circle',
46
46
  close: 'x-mark',
47
47
  logout: 'arrow-right-on-rectangle',
48
+ favorites: 'heart',
48
49
  },
49
50
  };
50
51
  if (globalThis.storefront_theme_options) {
@@ -121,6 +121,11 @@ type CmsSettings = {
121
121
  available_extra_discount?: Partial<ApplyDiscountResponse['available_extra_discount']>,
122
122
  },
123
123
  },
124
+ cart_url?: string,
125
+ checkout_url?: string,
126
+ account_url?: string,
127
+ orders_url?: string,
128
+ favorites_url?: string,
124
129
  };
125
130
 
126
131
  export type {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/types",
3
3
  "type": "module",
4
- "version": "0.6.6",
4
+ "version": "0.6.7",
5
5
  "description": "E-Com Plus Cloud Commerce reusable type definitions",
6
6
  "main": "index.ts",
7
7
  "repository": {
@@ -1,4 +0,0 @@
1
- import{c as qe,u as Qe,p as Ze,b as et}from"./index.769c6acb.js";import{j as O,c as P,q as G,u as ie,d as $,s as tt,_ as U,r as oe,o as w,k as L,w as F,a as k,n as C,$ as Ne,e as g,p as ae,b as R,a0 as nt,g as N,h as Oe,l as ot,t as I,F as j,C as X,f as at,a1 as rt,G as te,m as pe,y as fe,a2 as q,a3 as Me,a4 as lt,z as st,A as it,a5 as Ee}from"./_plugin-vue_export-helper.a7457a61.js";import{w as ut}from"./runtime-dom.esm-bundler.4e28b902.js";import{_ as ct}from"./preload-helper.101896b7.js";import{i as dt}from"./idle-callback.889bf0ea.js";const pt=e=>{if(e){if(e.display_name)return e.display_name;if(e.name&&e.name.given_name)return e.name.given_name}return""},ft=pt,vt=e=>{const{header:n,canSetStyles:o,canCreateHeightDiv:t,isShownOnScrollDown:a}={canSetStyles:!0,canCreateHeightDiv:!0,...e},{ready:r,start:l}=qe(100,{controls:!0,immediate:!1}),s=O(0),i=O(0);let u;const{y:d}=Qe(document),m=P(()=>r.value&&d.value>i.value*1.2),b=O("none");G(m,async _=>{o&&(n.value.style.position=_?"sticky":null),u&&(u.style.height=_?`${s.value}px`:null),_?(await Ze(300),b.value="opacity var(--transition-slow), transform var(--transition)"):(l(),b.value="none")});const p=O(!1);return G(d,(_,v)=>{p.value=_>0&&_<v}),ie(()=>{const _=()=>{s.value=n.value.offsetHeight,i.value=s.value+window.pageYOffset+n.value.getBoundingClientRect().top,l()},v=n.value.getElementsByTagName("IMG");let y=!0;for(let f=0;f<v.length;f++){const c=v[f];(!c.complete||c.naturalHeight===0)&&(y=!1,c.onload=_)}y&&_(),window.addEventListener("resize",et(_,300)),o&&(n.value.style.willChange="transform",G([m,p],([f,c])=>{let S=null,x=null;f&&(!c||a)&&(S="0",x="translateY(-100%)"),n.value.style.opacity=S,n.value.style.transform=x}),G(b,f=>{n.value.style.transition=f})),t&&(u=document.createElement("div"),n.value.parentElement.insertBefore(u,n.value))}),{staticHeight:s,staticY:i,isSticky:m,isScrollUp:p,transition:b}},mt=(e,n)=>{const o=e.filter(({slug:t,parent:a})=>t&&!a);return n?.length&&o.sort((t,a)=>{const r=n.indexOf(t.slug),l=n.indexOf(a.slug);return r>-1?l===-1||r<l?-1:1:l>-1?1:0}),o},ht=(e,n,o=!1)=>{const t=e.filter(({slug:a,parent:r})=>a&&r?r._id===n._id||r.slug&&r.slug===n.slug:!1);return o&&t.sort((a,r)=>a.name<r.name?-1:1),t},gt=({header:e,categories:n,menuCategorySlugs:o,menuRandomCategories:t=7,isAlphabeticalSortSubmenu:a})=>{const{isSticky:r,staticHeight:l,staticY:s}=vt({header:e}),i=P(()=>r.value?e.value.offsetHeight:s.value),u=mt(n,o),d=v=>ht(n,v,!!a),m=v=>({...v,subcategories:d(v).map(y=>m(y))}),b=u.map(m);let p=0;const _=b.filter(({slug:v})=>o?.includes(v)?!0:p<t?(p+=1,!0):!1);return{isSticky:r,staticHeight:l,staticY:s,positionY:i,mainCategories:u,getSubcategories:d,getCategoryTree:m,categoryTrees:b,inlineMenuTrees:_}},bt=$({__name:"Drawer",props:{modelValue:{type:Boolean,default:!1},placement:{default:"start"},position:{default:"fixed"},hasCloseButton:{type:Boolean,default:!0}},emits:["update:modelValue"],setup(e,{expose:n,emit:o}){n();const t=e,a=()=>o("update:modelValue",!1),r=O(null),l=p=>{r.value?.contains(p.target)||a()},s=p=>{p.key==="Escape"&&a()},i=O(0);G(tt(t,"modelValue"),async p=>{p?(i.value=window.innerWidth-document.documentElement.clientWidth,document.body.style.overflow="hidden",document.body.style.paddingRight=`${i.value}px`,setTimeout(()=>{document.addEventListener("click",l,{passive:!0}),document.addEventListener("keydown",s,{passive:!0})},500)):(document.body.style.overflow=null,document.body.style.paddingRight=null,document.removeEventListener("click",l),document.removeEventListener("keydown",s))});const u=P(()=>{switch(t.placement){case"start":return"left";case"end":return"right";case"top":return"down";default:return"up"}}),d=P(()=>t.position==="fixed"),m=P(()=>t.placement==="start"||t.placement==="end"),b={props:t,emit:o,close:a,drawer:r,outsideClickListener:l,escClickListener:s,scrollbarWidth:i,slideTo:u,isFixed:d,isPlacementX:m};return Object.defineProperty(b,"__isScriptSetup",{enumerable:!1,value:!0}),b}}),yt=["open","data-drawer"],_t={class:"relative h-full"},wt=["onClick"],St=g("i",{class:"i-close text-base-400 text-3xl"},null,-1),xt={key:0,class:"fixed top-0 left-0 w-screen h-screen bg-black/50 z-40","data-drawer-backdrop":""};function Pt(e,n,o,t,a,r){const l=oe("Fade");return w(),L(l,{slide:t.slideTo,speed:"slow","is-floating":""},{default:F(()=>[o.modelValue?(w(),k("dialog",{key:0,ref:"drawer",class:C(["w-screen shadow p-0 m-0 z-50",[o.position,t.isFixed?`top-0 left-0 ${t.isPlacementX?"h-screen":""}`:null,t.isPlacementX?"max-w-sm":null]]),style:Ne({maxWidth:t.isPlacementX?null:`calc(100vw - ${t.scrollbarWidth}px)`}),open:o.modelValue,"data-drawer":o.placement},[g("div",_t,[o.hasCloseButton?(w(),k("button",{key:0,type:"button","aria-label":"Fechar",onClick:ut(t.close,["prevent"]),class:C(["absolute top-2",o.placement==="end"?"left-2":"right-2"]),"data-drawer-close":""},[ae(e.$slots,"close",{},()=>[St])],10,wt)):R("",!0),ae(e.$slots,"default")]),(w(),L(nt,{to:"#teleported-top"},[N(l,null,{default:F(()=>[o.modelValue?(w(),k("div",xt)):R("",!0)]),_:1})]))],14,yt)):R("",!0)]),_:3},8,["slide"])}const kt=U(bt,[["render",Pt]]);globalThis.__apiCache||(globalThis.__apiCache={});const ee={BASE_URL:"/",MODE:"production",DEV:!1,PROD:!0,SITE:'"https://ecom2-002.web.app"',SSR:!1};class Te extends Error{constructor(n,o,t,a=!1){o?(super(o.statusText),this.data=o.data,this.statusCode=o.status):super(t||"Request error"),this.config=n,this.response=o,this.isTimeout=a}}const Ot={middleware(e){const n={...e.headers};if(!e.isNoAuth)if(e.accessToken)n.Authorization=`Bearer ${e.accessToken}`;else{const r=e.authenticationId||ee.ECOM_AUTHENTICATION_ID,l=e.apiKey||ee.ECOM_API_KEY;if(r&&l){const s=`${r}:${l}`,i=typeof Buffer=="function"?Buffer.from(s).toString("base64"):btoa(s);n.Authorization=`Basic ${i}`}}let o=e.baseUrl||ee.API_BASE_URL||"https://ecomplus.io/v2";const{endpoint:t,params:a}=e;if(t!=="login"&&t!=="authenticate"&&t!=="ask-auth-callback"&&t!=="check-username"){const r=e.storeId||ee.ECOM_STORE_ID;if(!r)throw new Error("`storeId` must be set in config or `ECOM_STORE_ID` env var");o+=`/:${r}`;const l=e.lang||ee.ECOM_LANG;l&&(o+=`,lang:${l}`)}if(o+=`/${t}`,a){if(typeof a=="string")o+=`?${a}`;else if(typeof a=="object"){const r=new URLSearchParams;Object.keys(a).forEach(l=>{const s=a[l];Array.isArray(s)?s.forEach(i=>{r.append(l,i)}):r.append(l,s)}),o+=`?${r.toString()}`}}return{url:o,headers:n}}},A=async(e,n=0)=>{const{url:o,headers:t}=Ot.middleware(e),{method:a="get",timeout:r=2e4,maxRetries:l=3,cacheMaxAge:s=6e5}=e,i=a==="get"&&(e.canCache||e.canCache===void 0&&ee.SSR);let u;if(i){u=`${o}${JSON.stringify(t)}`;const y=globalThis.__apiCache[u];if(y&&Date.now()-y.timestamp<=s)return{...y.res,config:e}}const d=e.body||e.data;let m;d&&(m=JSON.stringify(d),t["Content-Type"]="application/json",t["Content-Length"]=m.length.toString());const b=new AbortController;let p=!1;const _=setTimeout(()=>{b.abort(),p=!0},r);let v;try{v=await(e.fetch||fetch)(o,{method:a,headers:t,body:m,signal:b.signal})}catch(y){throw new Te(e,v,y.message,p)}if(clearTimeout(_),v){if(v.ok){const f={...v,data:await v.json()};return i&&u&&(globalThis.__apiCache[u]={timestamp:Date.now(),res:f}),{...f,config:e}}const{status:y}=v;if(l<n&&(y===429||y>=500)){const f=v.headers.get("retry-after");return new Promise((c,S)=>{setTimeout(()=>{A(e,n+1).then(c).catch(S)},f&&parseInt(f,10)||5e3)})}}try{v.data=await v?.json()}catch{}throw new Te(e,v)},Et=(e,n)=>A({...n,endpoint:e}),Tt=(e,n,o)=>A({...o,method:"post",endpoint:e,body:n}),Ct=(e,n,o)=>A({...o,method:"put",endpoint:e,body:n}),$t=(e,n,o)=>A({...o,method:"patch",endpoint:e,body:n}),Fe=(e,n)=>A({...n,method:"delete",endpoint:e});A.get=Et;A.post=Tt;A.put=Ct;A.patch=$t;A.del=Fe;A.delete=Fe;const It=(e,n,o=globalThis.localStorage)=>{if(!o)return Oe(n);let t;const a=o.getItem(e);if(a)try{t=JSON.parse(a)}catch{t=null,o.removeItem(e)}const r=Oe(t||n);return G(r,()=>{o.setItem(e,JSON.stringify(r))}),r},Le="SESSION",ye={customer:{display_name:"",main_email:""},auth:null},M=It(Le,ye),xe=P(()=>{const{auth:e}=M;return e&&new Date(e.expires).getTime()-Date.now()>1e3*10}),je=P(()=>M.customer),_e=P(()=>ft(je.value)),Ce=P({get(){return je.value.main_email},set(e){M.customer.main_email=e}});let K;const At=P(()=>xe.value||!!K?.currentUser?.emailVerified),De=()=>{M.auth=ye.auth,M.customer=ye.customer,localStorage.removeItem(Le),K.signOut()},Be=async()=>{const e=await K.currentUser.getIdToken(),{domain:n}=window.storefront.settings;try{const o=await fetch(`https://${n}/api/passport/token`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`}});M.auth=await o.json()}catch(o){console.error(o)}},Nt=async()=>(xe.value||await Be(),M.auth.access_token),Mt=async()=>{const e=await Nt(),{data:n}=await A.get(`customers/${M.auth.customer_id}`,{accessToken:e});return M.customer=n,n};let $e=!1;const Ft=(e=!window.location.pathname.startsWith("/app/"))=>{if($e)return;$e=!0;const n=()=>ct(()=>import("./firebase-app.7ce2ebb1.js"),[]).then(({getAuth:o,onAuthStateChanged:t,isSignInWithEmailLink:a,signInWithEmailLink:r})=>{if(K=o(),t(K,async l=>{if(l){if(l.displayName&&!_e.value&&(M.customer.display_name=l.displayName),l.email&&(!Ce.value||l.emailVerified)&&(M.customer.main_email=l.email),l.emailVerified){const s=l.email!==Ce.value;(s||!xe.value)&&(await Be(),(s||!_e.value)&&await Mt())}}else De()}),a(K,window.location.href)){const s=new URLSearchParams(window.location.search).get("email");s&&r(K,s,window.location.href).then(()=>window.localStorage.removeItem("emailForSignIn")).catch(console.error)}}).catch(console.error);e?dt(n):n()},{settings:Ie,context:go}=globalThis.storefront,Lt=["whatsapp","instagram","facebook","twitter","youtube","tiktok","pinterest"],Pe={};Lt.forEach(e=>{Ie[e]&&(Pe[e]=Ie[e])});let le;le=navigator.userAgent,document.body?document.body.offsetWidth:window.screen.width;le.includes("Safari")&&le.includes("Chrome");const jt=/iPad|iPhone|iPod/.test(le)&&!window.MSStream,Dt=jt||/Android|webOS|BlackBerry|IEMobile|Opera Mini/i.test(le),Bt=$({__name:"SocialNetworkIcon",props:{as:{default:"i"},network:null},setup(e,{expose:n}){n();const o=e,t=P(()=>{switch(o.network){case"facebook":return"i-facebook";case"instagram":return"i-instagram";case"whatsapp":return"i-whatsapp";case"youtube":return"i-youtube";case"pinterest":return"i-pinterest";case"tiktok":return"i-tiktok";case"twitter":return"i-twitter";default:return""}}),a={props:o,iconClassName:t};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}});function Ht(e,n,o,t,a,r){return w(),L(ot(o.as),{class:C(t.iconClassName)},null,8,["class"])}const Rt=U(Bt,[["render",Ht]]),Vt=$({__name:"SocialNetworkLink",props:{network:null,href:null,message:null},setup(e,{expose:n}){n();const o=e,t=P(()=>{let r=o.href||Pe[o.network];if(o.network==="whatsapp"){const l=r.replace(/[^+\d]/g,"");r=`https://${Dt?"api":"web"}.whatsapp.com/send?phone=`+encodeURIComponent(l.charAt(0)==="+"?l:`+55${l}`),o.message&&(r+=`&text=${encodeURIComponent(o.message)}`)}return r}),a={props:o,fixedHref:t,SocialNetworkIcon:Rt};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}});function Ut(e,n,o,t,a,r){const l=oe("ALink");return w(),L(l,{href:t.fixedHref},{default:F(()=>[ae(e.$slots,"default",{},()=>[N(t.SocialNetworkIcon,{network:o.network},null,8,["network"]),ae(e.$slots,"append")])]),_:3},8,["href"])}const Wt=U(Vt,[["render",Ut]]),zt=$({__name:"ShopSidenavCategory",props:{categoryTree:null},setup(e,{expose:n}){n();const o=O(!1),t=O(!0);G(o,r=>{r?setTimeout(()=>{t.value=!1},25):t.value=!0});const a={isOpen:o,isFaded:t};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}}),Gt={class:"text-lg text-base-800"},Kt=["href"],Yt=["href"],Xt={class:"inline"};function Jt(e,n,o,t,a,r){const l=oe("AImg"),s=oe("ShopSidenavCategory",!0);return w(),k("li",Gt,[o.categoryTree.subcategories.length?(w(),k("details",{key:0,class:"bg-white overflow-y-auto overflow-x-hidden z-10 open:absolute open:top-0 open:left-0 open:w-full open:h-full",onToggle:n[0]||(n[0]=i=>t.isOpen=!t.isOpen)},[g("summary",{class:C(["cursor-pointer list-none px-6 py-3 active:bg-base-100 transition-colors",t.isOpen?"bg-base-100":null])},[g("i",{class:C(t.isOpen?"i-arrow-left text-lg":"i-arrow-right float-right mb-0 mt-1 text-xl text-base-500")},null,2),!t.isOpen&&o.categoryTree.icon?(w(),L(l,{key:0,picture:o.categoryTree.icon,class:"w-auto h-5 inline mr-3"},null,8,["picture"])):R("",!0),g("h3",{class:C(["inline",t.isOpen?"ml-4 text-base":null])},I(o.categoryTree.name),3)],2),g("ul",{class:C(["mt-2 transition-opacity",t.isFaded?"opacity-20":"opacity-100"]),tabindex:"-1"},[(w(!0),k(j,null,X(o.categoryTree.subcategories,i=>(w(),L(s,{key:i._id,"category-tree":i},null,8,["category-tree"]))),128)),g("li",null,[g("a",{href:`/${o.categoryTree.slug}`,class:"block px-6 py-3 text-base underline active:bg-base-200"},I("Ver toda a categoria $1".replace("$1",o.categoryTree.name)),9,Kt)])],2)],32)):(w(),k("a",{key:1,href:`/${o.categoryTree.slug}`,class:"block px-6 py-3 active:bg-base-200"},[!t.isOpen&&o.categoryTree.icon?(w(),L(l,{key:0,picture:o.categoryTree.icon,class:"w-auto h-5 inline mr-3"},null,8,["picture"])):R("",!0),g("h3",Xt,I(o.categoryTree.name),1)],8,Yt))])}const qt=U(zt,[["render",Jt]]),Qt=$({__name:"ShopSidenav",props:{categoryTrees:null},setup(e,{expose:n}){n(),ie(()=>Ft());const o={get customerName(){return _e},get isLogged(){return At},get logout(){return De},get socialNetworks(){return Pe},SocialNetworkLink:Wt,ShopSidenavCategory:qt};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}}),Zt={class:"flex flex-col h-full"},en={class:"py-4 grow"},tn={class:"relative h-full"},nn={class:"text-base"},on={class:"flex items-center px-2 py-4 bg-base-100"},an={href:"/app/account",class:"p-2 grow flex items-center gap-3"},rn=g("i",{class:"i-account text-4xl text-base-500 m-0"},null,-1),ln={class:"leading-tight"},sn=g("small",{class:"block lowercase font-semibold text-primary"},I("Meus pedidos")+", "+I("Minha conta"),-1),un=g("span",{class:"text-base-600"},I("Sair"),-1),cn=g("i",{class:"i-logout text-lg ml-1"},null,-1),dn=[un,cn],pn={class:"flex gap-3 p-4 bg-base-200 text-xl text-base-700"};function fn(e,n,o,t,a,r){return w(),k("aside",Zt,[g("nav",en,[g("ul",tn,[(w(!0),k(j,null,X(o.categoryTrees,l=>(w(),L(t.ShopSidenavCategory,{key:l._id,"category-tree":l},null,8,["category-tree"]))),128))])]),g("footer",nn,[g("div",on,[g("a",an,[rn,g("span",ln,[at(I(`Olá ${t.customerName||"Visitante"}`)+" ",1),sn])]),t.isLogged?(w(),k("button",{key:0,onClick:n[0]||(n[0]=(...l)=>t.logout&&t.logout(...l)),class:"p-2 text-right text-base-800"},dn)):R("",!0)]),g("ul",pn,[(w(!0),k(j,null,X(t.socialNetworks,(l,s)=>(w(),k("li",{key:s},[N(t.SocialNetworkLink,{network:s,class:"p-1 active:text-primary"},null,8,["network"])]))),128))])])])}const vn=U(Qt,[["render",fn]]);function V(e,n,...o){if(e in n){let a=n[e];return typeof a=="function"?a(...o):a}let t=new Error(`Tried to handle "${e}" but there is no handler defined. Only defined handlers are: ${Object.keys(n).map(a=>`"${a}"`).join(", ")}.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,V),t}var se=(e=>(e[e.None=0]="None",e[e.RenderStrategy=1]="RenderStrategy",e[e.Static=2]="Static",e))(se||{}),mn=(e=>(e[e.Unmount=0]="Unmount",e[e.Hidden=1]="Hidden",e))(mn||{});function re({visible:e=!0,features:n=0,ourProps:o,theirProps:t,...a}){var r;let l=Re(t,o),s=Object.assign(a,{props:l});if(e||n&2&&l.static)return ge(s);if(n&1){let i=(r=l.unmount)==null||r?0:1;return V(i,{[0](){return null},[1](){return ge({...a,props:{...l,hidden:!0,style:{display:"none"}}})}})}return ge(s)}function ge({props:e,attrs:n,slots:o,slot:t,name:a}){var r,l;let{as:s,...i}=hn(e,["unmount","static"]),u=(r=o.default)==null?void 0:r.call(o,t),d={};if(t){let m=!1,b=[];for(let[p,_]of Object.entries(t))typeof _=="boolean"&&(m=!0),_===!0&&b.push(p);m&&(d["data-headlessui-state"]=b.join(" "))}if(s==="template"){if(u=He(u??[]),Object.keys(i).length>0||Object.keys(n).length>0){let[m,...b]=u??[];if(!gn(m)||b.length>0)throw new Error(['Passing props on "template"!',"",`The current component <${a} /> is rendering a "template".`,"However we need to passthrough the following props:",Object.keys(i).concat(Object.keys(n)).map(v=>v.trim()).filter((v,y,f)=>f.indexOf(v)===y).sort((v,y)=>v.localeCompare(y)).map(v=>` - ${v}`).join(`
2
- `),"","You can apply a few solutions:",['Add an `as="..."` prop, to ensure that we render an actual element instead of a "template".',"Render a single element as the child so that we can forward the props onto that element."].map(v=>` - ${v}`).join(`
3
- `)].join(`
4
- `));let p=Re((l=m.props)!=null?l:{},i),_=rt(m,p);for(let v in p)v.startsWith("on")&&(_.props||(_.props={}),_.props[v]=p[v]);return _}return Array.isArray(u)&&u.length===1?u[0]:u}return te(s,Object.assign({},i,d),{default:()=>u})}function He(e){return e.flatMap(n=>n.type===j?He(n.children):[n])}function Re(...e){if(e.length===0)return{};if(e.length===1)return e[0];let n={},o={};for(let t of e)for(let a in t)a.startsWith("on")&&typeof t[a]=="function"?(o[a]!=null||(o[a]=[]),o[a].push(t[a])):n[a]=t[a];if(n.disabled||n["aria-disabled"])return Object.assign(n,Object.fromEntries(Object.keys(o).map(t=>[t,void 0])));for(let t in o)Object.assign(n,{[t](a,...r){let l=o[t];for(let s of l){if(a instanceof Event&&a.defaultPrevented)return;s(a,...r)}}});return n}function hn(e,n=[]){let o=Object.assign({},e);for(let t of n)t in o&&delete o[t];return o}function gn(e){return e==null?!1:typeof e.type=="string"||typeof e.type=="object"||typeof e.type=="function"}let bn=0;function yn(){return++bn}function ne(){return yn()}var z=(e=>(e.Space=" ",e.Enter="Enter",e.Escape="Escape",e.Backspace="Backspace",e.Delete="Delete",e.ArrowLeft="ArrowLeft",e.ArrowUp="ArrowUp",e.ArrowRight="ArrowRight",e.ArrowDown="ArrowDown",e.Home="Home",e.End="End",e.PageUp="PageUp",e.PageDown="PageDown",e.Tab="Tab",e))(z||{});function h(e){var n;return e==null||e.value==null?null:(n=e.value.$el)!=null?n:e.value}let Ve=Symbol("Context");var J=(e=>(e[e.Open=1]="Open",e[e.Closed=2]="Closed",e[e.Closing=4]="Closing",e[e.Opening=8]="Opening",e))(J||{});function Ue(){return pe(Ve,null)}function _n(e){fe(Ve,e)}function Ae(e,n){if(e)return e;let o=n??"button";if(typeof o=="string"&&o.toLowerCase()==="button")return"button"}function wn(e,n){let o=O(Ae(e.value.type,e.value.as));return ie(()=>{o.value=Ae(e.value.type,e.value.as)}),q(()=>{var t;o.value||!h(n)||h(n)instanceof HTMLButtonElement&&!((t=h(n))!=null&&t.hasAttribute("type"))&&(o.value="button")}),o}class Sn{constructor(){this.current=this.detect(),this.currentId=0}set(n){this.current!==n&&(this.currentId=0,this.current=n)}reset(){this.set(this.detect())}nextId(){return++this.currentId}get isServer(){return this.current==="server"}get isClient(){return this.current==="client"}detect(){return typeof window>"u"||typeof document>"u"?"server":"client"}}let ve=new Sn;function ue(e){if(ve.isServer)return null;if(e instanceof Node)return e.ownerDocument;if(e!=null&&e.hasOwnProperty("value")){let n=h(e);if(n)return n.ownerDocument}return document}let we=["[contentEditable=true]","[tabindex]","a[href]","area[href]","button:not([disabled])","iframe","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].map(e=>`${e}:not([tabindex='-1'])`).join(",");var B=(e=>(e[e.First=1]="First",e[e.Previous=2]="Previous",e[e.Next=4]="Next",e[e.Last=8]="Last",e[e.WrapAround=16]="WrapAround",e[e.NoScroll=32]="NoScroll",e))(B||{}),ce=(e=>(e[e.Error=0]="Error",e[e.Overflow=1]="Overflow",e[e.Success=2]="Success",e[e.Underflow=3]="Underflow",e))(ce||{}),xn=(e=>(e[e.Previous=-1]="Previous",e[e.Next=1]="Next",e))(xn||{});function me(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(we)).sort((n,o)=>Math.sign((n.tabIndex||Number.MAX_SAFE_INTEGER)-(o.tabIndex||Number.MAX_SAFE_INTEGER)))}var ke=(e=>(e[e.Strict=0]="Strict",e[e.Loose=1]="Loose",e))(ke||{});function We(e,n=0){var o;return e===((o=ue(e))==null?void 0:o.body)?!1:V(n,{[0](){return e.matches(we)},[1](){let t=e;for(;t!==null;){if(t.matches(we))return!0;t=t.parentElement}return!1}})}let Pn=["textarea","input"].join(",");function kn(e){var n,o;return(o=(n=e?.matches)==null?void 0:n.call(e,Pn))!=null?o:!1}function On(e,n=o=>o){return e.slice().sort((o,t)=>{let a=n(o),r=n(t);if(a===null||r===null)return 0;let l=a.compareDocumentPosition(r);return l&Node.DOCUMENT_POSITION_FOLLOWING?-1:l&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function Y(e,n,{sorted:o=!0,relativeTo:t=null,skipElements:a=[]}={}){var r;let l=(r=Array.isArray(e)?e.length>0?e[0].ownerDocument:document:e?.ownerDocument)!=null?r:document,s=Array.isArray(e)?o?On(e):e:me(e);a.length>0&&s.length>1&&(s=s.filter(_=>!a.includes(_))),t=t??l.activeElement;let i=(()=>{if(n&5)return 1;if(n&10)return-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),u=(()=>{if(n&1)return 0;if(n&2)return Math.max(0,s.indexOf(t))-1;if(n&4)return Math.max(0,s.indexOf(t))+1;if(n&8)return s.length-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),d=n&32?{preventScroll:!0}:{},m=0,b=s.length,p;do{if(m>=b||m+b<=0)return 0;let _=u+m;if(n&16)_=(_+b)%b;else{if(_<0)return 3;if(_>=b)return 1}p=s[_],p?.focus(d),m+=i}while(p!==l.activeElement);return n&6&&kn(p)&&p.select(),p.hasAttribute("tabindex")||p.setAttribute("tabindex","0"),2}function be(e,n,o){ve.isServer||q(t=>{document.addEventListener(e,n,o),t(()=>document.removeEventListener(e,n,o))})}function En(e,n,o=P(()=>!0)){function t(r,l){if(!o.value||r.defaultPrevented)return;let s=l(r);if(s===null||!s.getRootNode().contains(s))return;let i=function u(d){return typeof d=="function"?u(d()):Array.isArray(d)||d instanceof Set?d:[d]}(e);for(let u of i){if(u===null)continue;let d=u instanceof HTMLElement?u:h(u);if(d!=null&&d.contains(s)||r.composed&&r.composedPath().includes(d))return}return!We(s,ke.Loose)&&s.tabIndex!==-1&&r.preventDefault(),n(r,s)}let a=O(null);be("mousedown",r=>{var l,s;o.value&&(a.value=((s=(l=r.composedPath)==null?void 0:l.call(r))==null?void 0:s[0])||r.target)},!0),be("click",r=>{!a.value||(t(r,()=>a.value),a.value=null)},!0),be("blur",r=>t(r,()=>window.document.activeElement instanceof HTMLIFrameElement?window.document.activeElement:null),!0)}var de=(e=>(e[e.None=1]="None",e[e.Focusable=2]="Focusable",e[e.Hidden=4]="Hidden",e))(de||{});let Se=$({name:"Hidden",props:{as:{type:[Object,String],default:"div"},features:{type:Number,default:1}},setup(e,{slots:n,attrs:o}){return()=>{let{features:t,...a}=e,r={"aria-hidden":(t&2)===2?!0:void 0,style:{position:"fixed",top:1,left:1,width:1,height:0,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0",...(t&4)===4&&(t&2)!==2&&{display:"none"}}};return re({ourProps:r,theirProps:a,slot:{},attrs:o,slots:n,name:"Hidden"})}}});function Tn(e,n,o){ve.isServer||q(t=>{window.addEventListener(e,n,o),t(()=>window.removeEventListener(e,n,o))})}var H=(e=>(e[e.Forwards=0]="Forwards",e[e.Backwards=1]="Backwards",e))(H||{});function ze(){let e=O(0);return Tn("keydown",n=>{n.key==="Tab"&&(e.value=n.shiftKey?1:0)}),e}function Cn(e,n,o,t){ve.isServer||q(a=>{e=e??window,e.addEventListener(n,o,t),a(()=>e.removeEventListener(n,o,t))})}var $n=(e=>(e[e.Open=0]="Open",e[e.Closed=1]="Closed",e))($n||{});let Ge=Symbol("PopoverContext");function he(e){let n=pe(Ge,null);if(n===null){let o=new Error(`<${e} /> is missing a parent <${Je.name} /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(o,he),o}return n}let Ke=Symbol("PopoverGroupContext");function Ye(){return pe(Ke,null)}let Xe=Symbol("PopoverPanelContext");function In(){return pe(Xe,null)}let Je=$({name:"Popover",props:{as:{type:[Object,String],default:"div"}},setup(e,{slots:n,attrs:o,expose:t}){var a;let r=O(null);t({el:r,$el:r});let l=O(1),s=O(null),i=O(null),u=O(null),d=O(null),m=P(()=>ue(r)),b=P(()=>{var c,S;if(!h(s)||!h(d))return!1;for(let Z of document.querySelectorAll("body > *"))if(Number(Z?.contains(h(s)))^Number(Z?.contains(h(d))))return!0;let x=me(),E=x.indexOf(h(s)),T=(E+x.length-1)%x.length,W=(E+1)%x.length,D=x[T],Q=x[W];return!((c=h(d))!=null&&c.contains(D))&&!((S=h(d))!=null&&S.contains(Q))}),p={popoverState:l,buttonId:O(null),panelId:O(null),panel:d,button:s,isPortalled:b,beforePanelSentinel:i,afterPanelSentinel:u,togglePopover(){l.value=V(l.value,{[0]:1,[1]:0})},closePopover(){l.value!==1&&(l.value=1)},close(c){p.closePopover();let S=(()=>c?c instanceof HTMLElement?c:c.value instanceof HTMLElement?h(c):h(p.button):h(p.button))();S?.focus()}};fe(Ge,p),_n(P(()=>V(l.value,{[0]:J.Open,[1]:J.Closed})));let _={buttonId:p.buttonId,panelId:p.panelId,close(){p.closePopover()}},v=Ye(),y=v?.registerPopover;function f(){var c,S,x,E;return(E=v?.isFocusWithinPopoverGroup())!=null?E:((c=m.value)==null?void 0:c.activeElement)&&(((S=h(s))==null?void 0:S.contains(m.value.activeElement))||((x=h(d))==null?void 0:x.contains(m.value.activeElement)))}return q(()=>y?.(_)),Cn((a=m.value)==null?void 0:a.defaultView,"focus",c=>{var S,x;l.value===0&&(f()||!s||!d||c.target!==window&&((S=h(p.beforePanelSentinel))!=null&&S.contains(c.target)||(x=h(p.afterPanelSentinel))!=null&&x.contains(c.target)||p.closePopover()))},!0),En([s,d],(c,S)=>{var x;p.closePopover(),We(S,ke.Loose)||(c.preventDefault(),(x=h(s))==null||x.focus())},P(()=>l.value===0)),()=>{let c={open:l.value===0,close:p.close};return re({theirProps:e,ourProps:{ref:r},slot:c,slots:n,attrs:o,name:"Popover"})}}}),An=$({name:"PopoverButton",props:{as:{type:[Object,String],default:"button"},disabled:{type:[Boolean],default:!1},id:{type:String,default:()=>`headlessui-popover-button-${ne()}`}},inheritAttrs:!1,setup(e,{attrs:n,slots:o,expose:t}){let a=he("PopoverButton"),r=P(()=>ue(a.button));t({el:a.button,$el:a.button}),ie(()=>{a.buttonId.value=e.id}),Me(()=>{a.buttonId.value=null});let l=Ye(),s=l?.closeOthers,i=In(),u=P(()=>i===null?!1:i.value===a.panelId.value),d=O(null),m=`headlessui-focus-sentinel-${ne()}`;u.value||q(()=>{a.button.value=d.value});let b=wn(P(()=>({as:e.as,type:n.type})),d);function p(f){var c,S,x,E,T;if(u.value){if(a.popoverState.value===1)return;switch(f.key){case z.Space:case z.Enter:f.preventDefault(),(S=(c=f.target).click)==null||S.call(c),a.closePopover(),(x=h(a.button))==null||x.focus();break}}else switch(f.key){case z.Space:case z.Enter:f.preventDefault(),f.stopPropagation(),a.popoverState.value===1&&s?.(a.buttonId.value),a.togglePopover();break;case z.Escape:if(a.popoverState.value!==0)return s?.(a.buttonId.value);if(!h(a.button)||(E=r.value)!=null&&E.activeElement&&!((T=h(a.button))!=null&&T.contains(r.value.activeElement)))return;f.preventDefault(),f.stopPropagation(),a.closePopover();break}}function _(f){u.value||f.key===z.Space&&f.preventDefault()}function v(f){var c,S;e.disabled||(u.value?(a.closePopover(),(c=h(a.button))==null||c.focus()):(f.preventDefault(),f.stopPropagation(),a.popoverState.value===1&&s?.(a.buttonId.value),a.togglePopover(),(S=h(a.button))==null||S.focus()))}function y(f){f.preventDefault(),f.stopPropagation()}return()=>{let f=a.popoverState.value===0,c={open:f},{id:S,...x}=e,E=u.value?{ref:d,type:b.value,onKeydown:p,onClick:v}:{ref:d,id:S,type:b.value,"aria-expanded":e.disabled?void 0:a.popoverState.value===0,"aria-controls":h(a.panel)?a.panelId.value:void 0,disabled:e.disabled?!0:void 0,onKeydown:p,onKeyup:_,onClick:v,onMousedown:y},T=ze();function W(){let D=h(a.panel);if(!D)return;function Q(){V(T.value,{[H.Forwards]:()=>Y(D,B.First),[H.Backwards]:()=>Y(D,B.Last)})===ce.Error&&Y(me().filter(Z=>Z.dataset.headlessuiFocusGuard!=="true"),V(T.value,{[H.Forwards]:B.Next,[H.Backwards]:B.Previous}),{relativeTo:h(a.button)})}Q()}return te(j,[re({ourProps:E,theirProps:{...n,...x},slot:c,attrs:n,slots:o,name:"PopoverButton"}),f&&!u.value&&a.isPortalled.value&&te(Se,{id:m,features:de.Focusable,"data-headlessui-focus-guard":!0,as:"button",type:"button",onFocus:W})])}}});$({name:"PopoverOverlay",props:{as:{type:[Object,String],default:"div"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0}},setup(e,{attrs:n,slots:o}){let t=he("PopoverOverlay"),a=`headlessui-popover-overlay-${ne()}`,r=Ue(),l=P(()=>r!==null?(r.value&J.Open)===J.Open:t.popoverState.value===0);function s(){t.closePopover()}return()=>{let i={open:t.popoverState.value===0};return re({ourProps:{id:a,"aria-hidden":!0,onClick:s},theirProps:e,slot:i,attrs:n,slots:o,features:se.RenderStrategy|se.Static,visible:l.value,name:"PopoverOverlay"})}}});let Nn=$({name:"PopoverPanel",props:{as:{type:[Object,String],default:"div"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},focus:{type:Boolean,default:!1},id:{type:String,default:()=>`headlessui-popover-panel-${ne()}`}},inheritAttrs:!1,setup(e,{attrs:n,slots:o,expose:t}){let{focus:a}=e,r=he("PopoverPanel"),l=P(()=>ue(r.panel)),s=`headlessui-focus-sentinel-before-${ne()}`,i=`headlessui-focus-sentinel-after-${ne()}`;t({el:r.panel,$el:r.panel}),ie(()=>{r.panelId.value=e.id}),Me(()=>{r.panelId.value=null}),fe(Xe,r.panelId),q(()=>{var y,f;if(!a||r.popoverState.value!==0||!r.panel)return;let c=(y=l.value)==null?void 0:y.activeElement;(f=h(r.panel))!=null&&f.contains(c)||Y(h(r.panel),B.First)});let u=Ue(),d=P(()=>u!==null?(u.value&J.Open)===J.Open:r.popoverState.value===0);function m(y){var f,c;switch(y.key){case z.Escape:if(r.popoverState.value!==0||!h(r.panel)||l.value&&!((f=h(r.panel))!=null&&f.contains(l.value.activeElement)))return;y.preventDefault(),y.stopPropagation(),r.closePopover(),(c=h(r.button))==null||c.focus();break}}function b(y){var f,c,S,x,E;let T=y.relatedTarget;!T||!h(r.panel)||(f=h(r.panel))!=null&&f.contains(T)||(r.closePopover(),((S=(c=h(r.beforePanelSentinel))==null?void 0:c.contains)!=null&&S.call(c,T)||(E=(x=h(r.afterPanelSentinel))==null?void 0:x.contains)!=null&&E.call(x,T))&&T.focus({preventScroll:!0}))}let p=ze();function _(){let y=h(r.panel);if(!y)return;function f(){V(p.value,{[H.Forwards]:()=>{var c;Y(y,B.First)===ce.Error&&((c=h(r.afterPanelSentinel))==null||c.focus())},[H.Backwards]:()=>{var c;(c=h(r.button))==null||c.focus({preventScroll:!0})}})}f()}function v(){let y=h(r.panel);if(!y)return;function f(){V(p.value,{[H.Forwards]:()=>{let c=h(r.button),S=h(r.panel);if(!c)return;let x=me(),E=x.indexOf(c),T=x.slice(0,E+1),W=[...x.slice(E+1),...T];for(let D of W.slice())if(D.dataset.headlessuiFocusGuard==="true"||S?.contains(D)){let Q=W.indexOf(D);Q!==-1&&W.splice(Q,1)}Y(W,B.First,{sorted:!1})},[H.Backwards]:()=>{var c;Y(y,B.Previous)===ce.Error&&((c=h(r.button))==null||c.focus())}})}f()}return()=>{let y={open:r.popoverState.value===0,close:r.close},{id:f,focus:c,...S}=e,x={ref:r.panel,id:f,onKeydown:m,onFocusout:a&&r.popoverState.value===0?b:void 0,tabIndex:-1};return re({ourProps:x,theirProps:{...n,...S},attrs:n,slot:y,slots:{...o,default:(...E)=>{var T;return[te(j,[d.value&&r.isPortalled.value&&te(Se,{id:s,ref:r.beforePanelSentinel,features:de.Focusable,"data-headlessui-focus-guard":!0,as:"button",type:"button",onFocus:_}),(T=o.default)==null?void 0:T.call(o,...E),d.value&&r.isPortalled.value&&te(Se,{id:i,ref:r.afterPanelSentinel,features:de.Focusable,"data-headlessui-focus-guard":!0,as:"button",type:"button",onFocus:v})])]}},features:se.RenderStrategy|se.Static,visible:d.value,name:"PopoverPanel"})}}});$({name:"PopoverGroup",props:{as:{type:[Object,String],default:"div"}},setup(e,{attrs:n,slots:o,expose:t}){let a=O(null),r=lt([]),l=P(()=>ue(a));t({el:a,$el:a});function s(m){let b=r.value.indexOf(m);b!==-1&&r.value.splice(b,1)}function i(m){return r.value.push(m),()=>{s(m)}}function u(){var m;let b=l.value;if(!b)return!1;let p=b.activeElement;return(m=h(a))!=null&&m.contains(p)?!0:r.value.some(_=>{var v,y;return((v=b.getElementById(_.buttonId.value))==null?void 0:v.contains(p))||((y=b.getElementById(_.panelId.value))==null?void 0:y.contains(p))})}function d(m){for(let b of r.value)b.buttonId.value!==m&&b.close()}return fe(Ke,{registerPopover:i,unregisterPopover:s,isFocusWithinPopoverGroup:u,closeOthers:d}),()=>re({ourProps:{ref:a},theirProps:e,slot:{},attrs:n,slots:o,name:"PopoverGroup"})}});const Mn=e=>{const n=P(()=>e.categoryTree.pictures?.[0]),o=P(()=>e.categoryTree.subcategories.filter(({subcategories:i})=>i.length)),t=P(()=>{let i=o.value.length;return n.value&&(i+=1),o.value.length<e.categoryTree.subcategories.length&&(i+=1),i}),a=P(()=>(e.megaMenuMaxCols||7)>=t.value),r=P(()=>a.value?e.categoryTree.subcategories.filter(({subcategories:i})=>!i.length):e.categoryTree.subcategories),l=P(()=>a.value?e.categoryTree.subcategories.filter(({subcategories:i})=>i.length):e.categoryTree.subcategories),s=P(()=>a.value?t.value:n.value?2:1);return{categoryPicture:n,isMegaMenu:a,subcategoryLinks:r,subcategoryCols:l,countMenuCols:s}},Fn=$({__name:"ShopHeaderSubmenu",props:{categoryTree:null},setup(e,{expose:n}){n();const o=e,{categoryPicture:t,subcategoryLinks:a,subcategoryCols:r,countMenuCols:l}=Mn(o),s={props:o,categoryPicture:t,subcategoryLinks:a,subcategoryCols:r,countMenuCols:l,get Popover(){return Je},get PopoverButton(){return An},get PopoverPanel(){return Nn}};return Object.defineProperty(s,"__isScriptSetup",{enumerable:!1,value:!0}),s}}),Ln={class:"relative"},jn={class:"flex gap-6 w-full"},Dn={key:0,class:"flex-1"},Bn=["href"],Hn=["href"],Rn={class:"text-sm text-base-600 mt-1 mb-1.5"},Vn=["href"],Un=["href"];function Wn(e,n,o,t,a,r){const l=oe("AImg"),s=oe("Fade");return w(),L(t.Popover,null,{default:F(({open:i})=>[N(t.PopoverButton,{class:"outline-none"},{default:F(()=>[ae(e.$slots,"button",st(it({open:i})))]),_:2},1024),g("div",Ln,[N(s,null,{default:F(()=>[N(t.PopoverPanel,{class:C(["absolute z-20 top-3 left-1/2 -translate-x-1/2 !transform px-6 py-4 rounded-md shadow bg-white text-base text-base-700",t.countMenuCols===1?"w-60":t.countMenuCols===2?`w-screen ${t.categoryPicture?"max-w-lg":"max-w-sm"}`:t.countMenuCols===3?`w-screen ${t.categoryPicture?"max-w-xl":"max-w-md"}`:t.countMenuCols<6?"w-screen max-w-3xl":"w-screen max-w-5xl"])},{default:F(()=>[g("div",jn,[t.subcategoryLinks.length?(w(),k("ul",Dn,[(w(!0),k(j,null,X(t.subcategoryLinks,(u,d)=>(w(),k("li",{key:`link-${d}`,class:C(t.subcategoryLinks.length>10?"text-sm mb-1":"mb-2")},[g("a",{href:`/${u.slug}`,class:"hover:text-primary"},[g("h3",null,I(u.name),1)],8,Bn)],2))),128))])):R("",!0),(w(!0),k(j,null,X(t.subcategoryCols,(u,d)=>(w(),k("div",{key:u._id,class:"flex-1"},[g("a",{href:`/${u.slug}`,class:"hover:text-primary"},[g("h3",null,I(u.name),1)],8,Hn),g("ul",Rn,[(w(!0),k(j,null,X(u.subcategories,(m,b)=>(w(),k("li",{key:`${d}-${b}`,class:"mb-0.5"},[g("a",{href:`/${m.slug}`,class:"hover:text-primary hover:underline"},[g("h3",null,I(m.name),1)],8,Vn)]))),128))])]))),128)),t.categoryPicture?(w(),k("div",{key:1,class:C(t.countMenuCols===2?"basis-1/2":t.countMenuCols<5?"basis-2/5":"basis-1/3")},[N(l,{picture:t.categoryPicture,class:"ml-auto rounded"},null,8,["picture"])],2)):R("",!0)]),g("a",{href:`/${o.categoryTree.slug}`,class:"block mt-1 text-xs text-base-600 leading-snug underline"},I("Ver toda a categoria $1".replace("$1",o.categoryTree.name)),9,Un)]),_:1},8,["class"])]),_:1})])]),_:3})}const zn=U(Fn,[["render",Wn]]),Gn=$({__name:"ShopHeaderMenu",props:{inlineMenuTrees:null},setup(e,{expose:n}){n();const o=e,t=P(()=>!!o.inlineMenuTrees.find(({subcategories:r})=>!r.length)),a={props:o,hasOneLevelSubcategories:t,ShopHeaderSubmenu:zn};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}}),Kn={class:"hover:text-primary group"},Yn=["href"],Xn={class:"inline"};function Jn(e,n,o,t,a,r){return w(),k("nav",null,[g("ul",{class:C(["flex gap-4 xl:gap-5 text-base-700",o.inlineMenuTrees.length<7?"text-base":"text-sm"])},[(w(!0),k(j,null,X(o.inlineMenuTrees,(l,s)=>(w(),k("li",{key:s},[l.subcategories.length?(w(),L(t.ShopHeaderSubmenu,{key:0,"category-tree":l},{button:F(({open:i})=>[g("span",Kn,[g("h3",{class:C(["group-hover:underline inline",[o.inlineMenuTrees.length<7?"decoration-2":null,i?"underline":null]])},I(l.name),3),t.hasOneLevelSubcategories?(w(),k("i",{key:0,class:C(["i-chevron-down ml-1 transition-transform text-base-400 group-hover:text-primary-subtle",i?"rotate-180":null])},null,2)):R("",!0)])]),_:2},1032,["category-tree"])):(w(),k("a",{key:1,href:`/${l.slug}`,class:"hover:text-primary hover:underline decoration-2"},[g("h3",Xn,I(l.name),1)],8,Yn))]))),128))],2)])}const qn=U(Gn,[["render",Jn]]),Qn={},Zn={class:"w-full h-40 bg-base-300"};function eo(e,n){return w(),k("div",Zn)}const to=U(Qn,[["render",eo]]),no=$({__name:"ShopHeader",props:{categories:null,menuCategorySlugs:null,menuRandomCategories:null,isAlphabeticalSortSubmenu:{type:Boolean}},setup(e,{expose:n}){n();const o=e,t=O(null),{isSticky:a,positionY:r,categoryTrees:l,inlineMenuTrees:s}=gt({...o,header:t}),i=O(!1),u=O(!1),d={props:o,header:t,isSticky:a,positionY:r,categoryTrees:l,inlineMenuTrees:s,isSidenavOpen:i,isSearchOpen:u,Drawer:kt,ShopSidenav:vn,ShopHeaderMenu:qn,SearchModal:to};return Object.defineProperty(d,"__isScriptSetup",{enumerable:!1,value:!0}),d}}),oo={class:"container lg:max-w-7xl mx-auto px-1 lg:pl-3 grid grid-flow-col grid-cols-3 justify-between items-center lg:grid-cols-none lg:auto-cols-max"},ao={class:"lg:hidden"},ro={class:"px-2 flex justify-end items-center gap-3 lg:gap-4 text-base-800"},lo=g("i",{class:"i-search w-7 h-7 hover:text-primary hover:scale-110 active:scale-125"},null,-1),so=[lo],io=g("button",{class:"hidden sm:block","aria-label":"Minha conta"},[g("i",{class:"i-account w-7 h-7 hover:text-primary hover:scale-110 active:scale-125"})],-1),uo=g("button",{"aria-label":"Abrir carrinho"},[g("i",{class:"i-shopping-cart w-7 h-7 hover:text-primary hover:scale-110 active:scale-125"})],-1);function co(e,n,o,t,a,r){return w(),k("header",{ref:"header",class:C(["top-0 z-50 transition-colors",[t.isSticky&&!t.isSidenavOpen?"bg-white/80":"bg-white",t.isSticky?"backdrop-blur-md shadow py-2 md:py-3":"py-3 sm:py-4 md:py-5"]])},[g("div",oo,[g("div",ao,[g("button",{class:"px-2 my-1","aria-label":"Abrir/fechar menu",onClick:n[0]||(n[0]=l=>t.isSidenavOpen=!t.isSidenavOpen)},[g("i",{class:C(["text-base-500 text-3xl",t.isSidenavOpen?"i-close":"i-menu"])},null,2)])]),ae(e.$slots,"logo"),N(t.ShopHeaderMenu,Ee({class:"hidden lg:block"},{inlineMenuTrees:t.inlineMenuTrees}),null,16),g("div",ro,[g("button",{"aria-label":"Buscar produtos",onClick:n[1]||(n[1]=l=>t.isSearchOpen=!t.isSearchOpen)},so),io,uo])]),N(t.Drawer,{modelValue:t.isSidenavOpen,"onUpdate:modelValue":n[2]||(n[2]=l=>t.isSidenavOpen=l),"has-close-button":!1,position:"absolute",class:C(t.isSticky?"mt-2 md:mt-3":"mt-3 sm:mt-4 md:mt-5"),style:Ne({height:`calc(100vh - ${t.positionY}px + .5rem)`})},{default:F(()=>[N(t.ShopSidenav,Ee({class:"bg-white pt-6"},{categoryTrees:t.categoryTrees}),null,16)]),_:1},8,["modelValue","class","style"]),N(t.Drawer,{modelValue:t.isSearchOpen,"onUpdate:modelValue":n[3]||(n[3]=l=>t.isSearchOpen=l),"has-close-button":!1,placement:"top"},{default:F(()=>[N(t.SearchModal)]),_:1},8,["modelValue"])],2)}const bo=U(no,[["render",co]]);export{bo as default};