cloudcommerce 0.37.1 → 0.38.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 (142) hide show
  1. package/.github/workflows/test-apps.yml +2 -2
  2. package/.vscode/settings.json +1 -1
  3. package/CHANGELOG.md +36 -0
  4. package/action.yml +2 -2
  5. package/ecomplus-stores/barra-doce/functions/many/package.json +3 -3
  6. package/ecomplus-stores/barra-doce/functions/ssr/package.json +6 -6
  7. package/ecomplus-stores/barra-doce/functions/with-apps/package.json +3 -3
  8. package/ecomplus-stores/barra-doce/package.json +2 -2
  9. package/package.json +7 -7
  10. package/packages/api/lib/api.d.ts +2 -2
  11. package/packages/api/package.json +1 -1
  12. package/packages/api/types.d.ts +4 -1
  13. package/packages/apps/affilate-program/package.json +1 -1
  14. package/packages/apps/correios/package.json +1 -1
  15. package/packages/apps/custom-payment/package.json +1 -1
  16. package/packages/apps/custom-shipping/package.json +1 -1
  17. package/packages/apps/datafrete/package.json +1 -1
  18. package/packages/apps/discounts/package.json +1 -1
  19. package/packages/apps/emails/package.json +1 -1
  20. package/packages/apps/fb-conversions/package.json +1 -1
  21. package/packages/apps/flash-courier/package.json +1 -1
  22. package/packages/apps/frenet/package.json +1 -1
  23. package/packages/apps/galaxpay/package.json +1 -1
  24. package/packages/apps/google-analytics/package.json +1 -1
  25. package/packages/apps/jadlog/package.json +1 -1
  26. package/packages/apps/loyalty-points/package.json +1 -1
  27. package/packages/apps/mandae/package.json +1 -1
  28. package/packages/apps/melhor-envio/package.json +1 -1
  29. package/packages/apps/mercadopago/package.json +1 -1
  30. package/packages/apps/pagarme/package.json +1 -1
  31. package/packages/apps/pagarme-v5/package.json +1 -1
  32. package/packages/apps/paghiper/package.json +1 -1
  33. package/packages/apps/pix/package.json +1 -1
  34. package/packages/apps/tiny-erp/package.json +1 -1
  35. package/packages/apps/webhooks/package.json +1 -1
  36. package/packages/cli/config/firestore.rules +4 -1
  37. package/packages/cli/lib/cli.js +30 -9
  38. package/packages/cli/package.json +2 -1
  39. package/packages/cli/src/cli.ts +37 -9
  40. package/packages/config/package.json +1 -1
  41. package/packages/emails/package.json +1 -1
  42. package/packages/eslint/package.json +3 -3
  43. package/packages/events/package.json +1 -1
  44. package/packages/feeds/package.json +1 -1
  45. package/packages/firebase/package.json +1 -1
  46. package/packages/i18n/package.json +1 -1
  47. package/packages/modules/package.json +1 -1
  48. package/packages/passport/package.json +1 -1
  49. package/packages/ssr/package.json +5 -5
  50. package/packages/storefront/.auto-imports.d.ts +1 -0
  51. package/packages/storefront/client.d.ts +1 -0
  52. package/packages/storefront/config/storefront.tailwind.cjs +21 -20
  53. package/packages/storefront/config/storefront.unocss.cjs +11 -0
  54. package/packages/storefront/dist/client/_astro/{AccountPage.700be123.js → AccountPage.j0C5JBLY.js} +1 -1
  55. package/packages/storefront/dist/client/_astro/{CartSidebar.430b55df.js → CartSidebar.1kUFk9Xn.js} +1 -1
  56. package/packages/storefront/dist/client/_astro/HeroSlider.tR1dVXyu.js +1 -0
  57. package/packages/storefront/dist/client/_astro/{PitchBar.06e0f831.js → PitchBar.FelC04wE.js} +1 -1
  58. package/packages/storefront/dist/client/_astro/{Prices.0e829c31.js → Prices.PuQc6C7F.js} +1 -1
  59. package/packages/storefront/dist/client/_astro/ProductCard.ephJafAE.js +1 -0
  60. package/packages/storefront/dist/client/_astro/ProductDetails.B6Ih5MGf.js +7 -0
  61. package/packages/storefront/dist/client/_astro/ProductShelf.GESxuPZ_.js +1 -0
  62. package/packages/storefront/dist/client/_astro/{QuantitySelector.ebf60845.js → QuantitySelector.YNmWjN8y.js} +1 -1
  63. package/packages/storefront/dist/client/_astro/SearchContainer.BzixfU3R.js +1 -0
  64. package/packages/storefront/dist/client/_astro/SearchModal.F7vbwxIv.js +1 -0
  65. package/packages/storefront/dist/client/_astro/ShopHeader.5vR1LgSW.js +10 -0
  66. package/packages/storefront/dist/client/_astro/_plugin-vue_export-helper.sk5AFsEV.js +1 -0
  67. package/packages/storefront/dist/client/_astro/_slug_.r8QHNfdw.css +1 -0
  68. package/packages/storefront/dist/client/_astro/client.RF8UxjZd.js +1 -0
  69. package/packages/storefront/dist/client/_astro/customer-session._VkzXnXT.js +7 -0
  70. package/packages/storefront/dist/client/_astro/ecom-utils.gJYgRPRz.js +1 -0
  71. package/packages/storefront/dist/client/_astro/{firebase-app.992a296f.js → firebase-app.cPMfoOsn.js} +1 -1
  72. package/packages/storefront/dist/client/_astro/{format-money.9cf6b04d.js → format-money.FMQXgKHB.js} +1 -1
  73. package/packages/storefront/dist/client/_astro/{hoisted.c90fc6ab.js → hoisted.B6fKrLPR.js} +1 -1
  74. package/packages/storefront/dist/client/_astro/{hoisted.54eaab04.js → hoisted._FbzheVm.js} +1 -1
  75. package/packages/storefront/dist/client/_astro/{i18n.29216eeb.js → i18n.m7SpISxy.js} +1 -1
  76. package/packages/storefront/dist/client/_astro/{img.4f23a3dd.js → img.zh-Drf-O.js} +1 -1
  77. package/packages/storefront/dist/client/_astro/{index-61e5ac61.bdc8d0cd.js → index-dd468b12.D5s8VdAL.js} +92 -107
  78. package/packages/storefront/dist/client/_astro/{index.570b84fe.js → index.5PN-EYMS.js} +1 -1
  79. package/packages/storefront/dist/client/_astro/index.XrHFaN2F.js +1 -0
  80. package/packages/storefront/dist/client/_astro/{modules-info.55780599.js → modules-info.sD0tdb2b.js} +1 -1
  81. package/packages/storefront/dist/client/_astro/name.HU5l7TJo.js +1 -0
  82. package/packages/storefront/dist/client/_astro/{photoswipe-lightbox.esm.c157838f.js → photoswipe-lightbox.esm.dZBqKD9u.js} +1 -1
  83. package/packages/storefront/dist/client/_astro/{photoswipe.01431ec7.js → photoswipe.0V7m2jWu.js} +1 -2
  84. package/packages/storefront/dist/client/_astro/{photoswipe.esm.92c2d901.js → photoswipe.esm.Ylh9TGkz.js} +1 -1
  85. package/packages/storefront/dist/client/_astro/sf-utils.5t7r9A2G.js +1 -0
  86. package/packages/storefront/dist/client/_astro/{shopping-cart.d9f601dd.js → shopping-cart.A-1jhlKi.js} +1 -1
  87. package/packages/storefront/dist/client/_astro/use-analytics.1EVxbrS7.js +1 -0
  88. package/packages/storefront/dist/client/_astro/{use-product-card.437911bb.js → use-product-card.erbOV6Fv.js} +1 -1
  89. package/packages/storefront/dist/client/robots.txt +1 -0
  90. package/packages/storefront/dist/server/chunks/{CartSidebar_eab28771.mjs → CartSidebar_hAgJQJgm.mjs} +1 -1
  91. package/packages/storefront/dist/server/chunks/SearchModal_eWb5SdQM.mjs +351 -0
  92. package/packages/storefront/dist/server/chunks/{_.._5a781fb3.mjs → _.._S7DDBn_b.mjs} +1 -1
  93. package/packages/storefront/dist/server/chunks/{account_519edb70.mjs → account_3ySmGzMc.mjs} +1 -1
  94. package/packages/storefront/dist/server/chunks/astro/{assets-service_a9d9ab5f.mjs → assets-service_QlOZG8ov.mjs} +1 -1
  95. package/packages/storefront/dist/server/chunks/{astro_d98f7186.mjs → astro_zcC1GStV.mjs} +17 -34
  96. package/packages/storefront/dist/server/chunks/{index_5e3ed8a0.mjs → index_nIwq11oA.mjs} +1 -1
  97. package/packages/storefront/dist/server/chunks/{index_10e14f85.mjs → index_uAR5ZV4d.mjs} +1 -1
  98. package/packages/storefront/dist/server/chunks/{node_1119b0d1.mjs → node_2VvC7trl.mjs} +1 -1
  99. package/packages/storefront/dist/server/chunks/pages/{__93ade2dd.mjs → __MSibDuuV.mjs} +652 -255
  100. package/packages/storefront/dist/server/chunks/pages/{account_e5d410a7.mjs → account_iG-YqJ5q.mjs} +3 -2
  101. package/packages/storefront/dist/server/chunks/pages/{index_7e25afc1.mjs → index_BtDyKPh_.mjs} +3 -2
  102. package/packages/storefront/dist/server/chunks/pages/{node_bd378ac0.mjs → node_bKqL47eZ.mjs} +2 -2
  103. package/packages/storefront/dist/server/chunks/pages/{~fallback_73578d2f.mjs → ~fallback_73R5VA6j.mjs} +3 -2
  104. package/packages/storefront/dist/server/chunks/{photoswipe_9528923e.mjs → photoswipe_IcWDJiwc.mjs} +1 -1
  105. package/packages/storefront/dist/server/chunks/{~fallback_41122b9b.mjs → ~fallback_7q1dqY4e.mjs} +1 -1
  106. package/packages/storefront/dist/server/entry.mjs +970 -93
  107. package/packages/storefront/dist/server/manifest_dSwvaOdW.mjs +195 -0
  108. package/packages/storefront/dist/server/renderers.mjs +2 -2
  109. package/packages/storefront/package.json +12 -12
  110. package/packages/storefront/src/helpers/sf-utils.ts +29 -1
  111. package/packages/storefront/src/lib/composables/use-search-container.ts +48 -0
  112. package/packages/storefront/src/lib/composables/use-search-modal.ts +1 -1
  113. package/packages/storefront/src/lib/composables/use-shop-header.ts +14 -5
  114. package/packages/storefront/src/lib/composables/use-sticky-header.ts +2 -0
  115. package/packages/storefront/src/lib/layouts/BaseHead.astro +8 -1
  116. package/packages/storefront/src/lib/layouts/use-page-main.ts +15 -0
  117. package/packages/storefront/src/lib/scripts/firestore.ts +27 -0
  118. package/packages/storefront/src/lib/ssr-context.ts +14 -0
  119. package/packages/storefront/src/lib/state/search-engine.ts +62 -25
  120. package/packages/storefront/src/lib/state/use-analytics.ts +9 -10
  121. package/packages/test-base/package.json +1 -1
  122. package/packages/types/package.json +1 -1
  123. package/packages/storefront/dist/client/_astro/HeroSlider.bd684ed8.js +0 -1
  124. package/packages/storefront/dist/client/_astro/ProductDetails.06da998d.js +0 -1
  125. package/packages/storefront/dist/client/_astro/ProductShelf.3f4f38b5.js +0 -1
  126. package/packages/storefront/dist/client/_astro/ProductShelf.bf82838b.js +0 -1
  127. package/packages/storefront/dist/client/_astro/SearchModal.b6aa5ef7.js +0 -1
  128. package/packages/storefront/dist/client/_astro/ShopHeader.2d6e361a.js +0 -4
  129. package/packages/storefront/dist/client/_astro/_plugin-vue_export-helper.f75743ee.js +0 -1
  130. package/packages/storefront/dist/client/_astro/_slug_.e7cac999.css +0 -1
  131. package/packages/storefront/dist/client/_astro/client.41b42098.js +0 -1
  132. package/packages/storefront/dist/client/_astro/customer-session.5ab9ab1a.js +0 -1
  133. package/packages/storefront/dist/client/_astro/ecom-utils.5cbfb95e.js +0 -1
  134. package/packages/storefront/dist/client/_astro/index.8ac1db99.js +0 -1
  135. package/packages/storefront/dist/client/_astro/name.01410784.js +0 -1
  136. package/packages/storefront/dist/client/_astro/sf-utils.b04e1813.js +0 -1
  137. package/packages/storefront/dist/client/_astro/use-analytics.cc95e346.js +0 -1
  138. package/packages/storefront/dist/server/chunks/SearchModal_f66549d4.mjs +0 -147
  139. package/packages/storefront/dist/server/manifest_221d806b.mjs +0 -1069
  140. /package/packages/storefront/dist/client/_astro/{afetch.f4507208.js → afetch.5c8VmT0-.js} +0 -0
  141. /package/packages/storefront/dist/client/_astro/{img-sizes.41e0efe4.js → img-sizes.gxAI9JNh.js} +0 -0
  142. /package/packages/storefront/dist/client/_astro/{price.04ceb6c4.js → price.Easct8WC.js} +0 -0
@@ -1,5 +1,10 @@
1
1
  import type { SearchItem, SearchResult } from '@cloudcommerce/types';
2
- import { ref, watch, shallowReactive } from 'vue';
2
+ import {
3
+ ref,
4
+ computed,
5
+ watch,
6
+ shallowReactive,
7
+ } from 'vue';
3
8
  import { useDebounceFn } from '@vueuse/core';
4
9
  import api from '@cloudcommerce/api';
5
10
  import useStorage from '@@sf/state/use-storage';
@@ -21,32 +26,35 @@ export const search = async ({
21
26
  fields,
22
27
  url = 'search/v1',
23
28
  }: {
24
- term: string,
29
+ term: string | null,
25
30
  params?: Record<string, any>,
26
31
  fields?: readonly string[],
27
32
  url?: 'search/v1' | `search/v1?${string}`,
28
33
  }) => {
29
- term = term.trim();
30
- if (term.length < 2) {
31
- return { data: { result: [], meta: null } };
34
+ if (typeof term === 'string') {
35
+ term = term.trim();
36
+ if (term.length < 2) {
37
+ return { data: { result: [], meta: null } };
38
+ }
32
39
  }
33
40
  const response = await api.get(url, {
34
41
  fields,
35
- params: {
42
+ params: !term ? params : {
36
43
  ...params,
37
44
  term,
38
45
  },
39
46
  });
40
- if (response.data.result.length) {
47
+ if (term && response.data.result.length) {
48
+ const termStr = term;
41
49
  const completeTermIndex = searchHistory.findIndex((_term) => {
42
- return _term.includes(term) && !(_term.replace(term, '')).includes(' ');
50
+ return _term.includes(termStr) && !(_term.replace(termStr, '')).includes(' ');
43
51
  });
44
52
  if (completeTermIndex > -1) {
45
53
  const completeTerm = searchHistory[completeTermIndex];
46
54
  searchHistory.splice(completeTermIndex, 1);
47
55
  searchHistory.unshift(completeTerm);
48
56
  } else {
49
- const termIndex = searchHistory.findIndex((_term) => term.startsWith(_term));
57
+ const termIndex = searchHistory.findIndex((_term) => termStr.startsWith(_term));
50
58
  if (termIndex > -1) {
51
59
  searchHistory.splice(termIndex, 1);
52
60
  }
@@ -61,13 +69,21 @@ export const search = async ({
61
69
 
62
70
  export class SearchEngine {
63
71
  fields?: readonly string[];
64
- term = ref('');
72
+ term = ref<string | null>('');
65
73
  isWithCount = ref(true);
66
74
  isWithBuckets = ref(true);
67
75
  params = shallowReactive<Record<string, any>>({});
68
76
  pageSize = ref(24);
69
77
  pageNumber = ref(1);
70
- isFetching = ref(false);
78
+ #isFetching = ref(false);
79
+ isFetching = computed(() => this.#isFetching.value);
80
+ #wasFetched = ref(false);
81
+ wasFetched = computed(() => this.#wasFetched.value);
82
+ #fetching = ref<Promise<void> | null>(null);
83
+ #fulfillFetching: (() => void) | undefined;
84
+ fetching = computed(() => this.#fetching.value);
85
+ #fetchError = ref<Error | null>(null);
86
+ fetchError = computed(() => this.#fetchError.value);
71
87
  products = shallowReactive<SearchItem[]>([]);
72
88
  meta = shallowReactive<SearchResult<'v1'>['meta']>({
73
89
  offset: 0,
@@ -86,12 +102,15 @@ export class SearchEngine {
86
102
  } = {}) {
87
103
  this.fields = fields;
88
104
  this.#search = useDebounceFn((opts) => {
89
- this.isFetching.value = true;
105
+ this.#isFetching.value = true;
90
106
  return search(opts);
91
107
  }, debounce);
92
- watch([this.term, this.params], () => {
108
+ watch([this.term, this.params, this.pageSize], () => {
93
109
  this.pageNumber.value = 1;
94
110
  });
111
+ watch(this.pageNumber, () => {
112
+ this.#wasFetched.value = false;
113
+ });
95
114
  }
96
115
 
97
116
  async fetch(term?: string) {
@@ -101,25 +120,43 @@ export class SearchEngine {
101
120
  }
102
121
  const limit = this.pageSize.value;
103
122
  const offset = limit * (this.pageNumber.value - 1);
104
- const response = await this.#search({
105
- term: this.term.value,
106
- params: {
107
- ...this.params,
108
- limit,
109
- offset,
110
- count: this.isWithCount.value || undefined,
111
- buckets: this.isWithBuckets.value || undefined,
112
- },
113
- fields: this.fields,
114
- });
123
+ if (!this.#fetching.value) {
124
+ this.#fetching.value = new Promise((resolve) => {
125
+ this.#fulfillFetching = resolve;
126
+ });
127
+ }
128
+ let response: Awaited<ReturnType<typeof search>> | null | undefined;
129
+ try {
130
+ response = await this.#search({
131
+ term: this.term.value,
132
+ params: {
133
+ ...this.params,
134
+ limit,
135
+ offset,
136
+ count: this.isWithCount.value || undefined,
137
+ buckets: this.isWithBuckets.value || undefined,
138
+ },
139
+ fields: this.fields,
140
+ });
141
+ } catch (err: any) {
142
+ if (this.#fulfillFetching) {
143
+ this.#fetchError.value = err;
144
+ this.#fulfillFetching();
145
+ }
146
+ throw err;
147
+ }
115
148
  if (response) {
116
- this.isFetching.value = false;
149
+ this.#isFetching.value = false;
150
+ this.#wasFetched.value = true;
117
151
  const { data } = response;
118
152
  if (data.meta) {
119
153
  this.products.splice(0);
120
154
  Object.assign(this.meta, data.meta);
121
155
  }
122
156
  data.result.forEach((item) => this.products.push(item));
157
+ if (this.#fulfillFetching) {
158
+ this.#fulfillFetching();
159
+ }
123
160
  }
124
161
  }
125
162
  }
@@ -100,16 +100,15 @@ export const emitGtagEvent = async <N extends Gtag.EventNames = 'view_item'>(
100
100
  default:
101
101
  }
102
102
  } else {
103
- switch (window.location.pathname) {
104
- case '/':
105
- defaultItemsList = 'Home';
106
- break;
107
- case '/s':
108
- case '/search':
109
- case '/busca':
110
- defaultItemsList = 'Search results';
111
- break;
112
- default:
103
+ const { pathname } = window.location;
104
+ if (pathname === '/') {
105
+ defaultItemsList = 'Home';
106
+ } else if (
107
+ /^\/s\/?/.test(pathname)
108
+ || pathname === '/search'
109
+ || pathname === '/busca'
110
+ ) {
111
+ defaultItemsList = 'Search results';
113
112
  }
114
113
  }
115
114
  if (pageViewState.resolve) {
@@ -2,7 +2,7 @@
2
2
  "name": "@cloudcommerce/test-base",
3
3
  "private": true,
4
4
  "type": "module",
5
- "version": "0.37.1",
5
+ "version": "0.38.0",
6
6
  "description": "E-Com Plus Cloud Commerce basic setup for testing",
7
7
  "main": "lib/index.js",
8
8
  "repository": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/types",
3
3
  "type": "module",
4
- "version": "0.37.1",
4
+ "version": "0.38.0",
5
5
  "description": "E-Com Plus Cloud Commerce reusable type definitions",
6
6
  "main": "index.ts",
7
7
  "repository": {
@@ -1 +0,0 @@
1
- import{_ as w,v as B}from"./_plugin-vue_export-helper.f75743ee.js";import{p as f}from"./modules-info.55780599.js";import{c as d,d as T,L as x,M as r,N as l,P as c,Q as o,Y as S,W as b,Z as v,V as y,T as g,$ as C,U as m,a as H,o as L,X as N,O as _,R as P,S as V,a0 as j}from"./ecom-utils.5cbfb95e.js";import"./afetch.f4507208.js";import"./sf-utils.b04e1813.js";import"./format-money.9cf6b04d.js";import"./price.04ceb6c4.js";const M=s=>{const a=d(()=>s.title?f(s.title).value:""),t=d(()=>s.subtitle?f(s.subtitle).value:""),e=d(()=>s.buttonText?f(s.buttonText).value:""),i=d(()=>!!(a.value||t.value||e.value));return{parsedTitle:a,parsedSubtitle:t,parsedButtonText:e,hasHeader:i}},D=T({__name:"Banner",props:{img:{},alt:{},mobileImg:{},href:{},title:{},subtitle:{},buttonLink:{},buttonText:{},headingTag:{default:"h3"}},setup(s,{expose:a}){a();const t=s,{hasHeader:e,parsedTitle:i,parsedSubtitle:p,parsedButtonText:n}=M(t),u={props:t,hasHeader:e,parsedTitle:i,parsedSubtitle:p,parsedButtonText:n};return Object.defineProperty(u,"__isScriptSetup",{enumerable:!1,value:!0}),u}}),O={key:0,class:"mb-3 p-12 sm:mb-0 xl:ps-32"},z={key:1,class:"mt-4 text-lg md:mt-6"};function A(s,a,t,e,i,p){const n=x("ALink");return r(),l("div",{class:b(["mx-auto overflow-x-hidden",e.hasHeader?"grid grid-cols-1 sm:grid-cols-2 items-center":null])},[c(n,{href:t.href,class:b(e.hasHeader?"sm:order-last [&_img]:max-w-full sm:[&_img]:max-w-none [&_img]:aspect-video sm:[&_img]:aspect-[2.5] [&_img]:object-cover":"[&_img]:max-w-full")},{default:o(()=>[S(s.$slots,"picture")]),_:3},8,["href","class"]),e.hasHeader?(r(),l("div",O,[e.parsedTitle?(r(),v(C(t.headingTag),{key:0,class:"ui-title mt-1"},{default:o(()=>[y(g(e.parsedTitle),1)]),_:1})):m("",!0),e.parsedSubtitle?(r(),l("p",z,g(e.parsedSubtitle),1)):m("",!0),e.parsedButtonText?(r(),v(n,{key:2,href:t.buttonLink,class:"ui-btn-lg ui-btn-contrast mt-7 min-w-[150px] md:mt-10"},{default:o(()=>[y(g(e.parsedButtonText),1)]),_:1},8,["href"])):m("",!0)])):m("",!0)],2)}const E=w(D,[["render",A]]),F=T({__name:"HeroSlider",props:{autoplay:{},slides:{}},setup(s,{expose:a}){a();const t=H(!1);L(()=>{t.value=!0});const e={isMounted:t,Banner:E};return Object.defineProperty(e,"__isScriptSetup",{enumerable:!1,value:!0}),e}}),I={class:"relative mx-auto"},Q={class:"absolute bottom-5 right-5 z-10 flex w-screen items-center justify-end xl:left-1/2 xl:right-auto xl:-ms-[640px] xl:max-w-screen-xl"},R=_("i",{class:"i-arrow-right rotate-180"},null,-1),U=_("i",{class:"i-arrow-right"},null,-1);function W(s,a,t,e,i,p){const n=x("CarouselControl"),u=x("Carousel");return r(),l("section",I,[c(u,{autoplay:t.autoplay,class:"secondary [&>*]:items-center"},{controls:o(()=>[N(_("div",Q,[_("div",{class:b(["text-primary relative h-10 w-20 rounded-full bg-white/50 shadow-sm ring-1 ring-black/5 transition-opacity",e.isMounted?"opacity-100":"opacity-20 [&>*]:cursor-wait"])},[c(n,{class:"hover:bg-primary/10 h-10 w-10 rounded-full","is-prev":""},{default:o(()=>[R]),_:1}),c(n,{class:"hover:bg-primary/10 h-10 w-10 rounded-full"},{default:o(()=>[U]),_:1})],2)],512),[[B,t.slides.length>1]])]),default:o(()=>[(r(!0),l(P,null,V(t.slides,(k,h)=>(r(),l("li",{key:h,class:"shrink-0 basis-full"},[c(e.Banner,j({...k,headingTag:h===0?"h2":"h3"},{class:"w-screen max-w-screen-2xl"}),{picture:o(()=>[S(s.$slots,`picture-${h}`)]),_:2},1040)]))),128))]),_:3},8,["autoplay"])])}const $=w(F,[["render",W]]);export{$ as default};
@@ -1 +0,0 @@
1
- import{_ as D,w as J}from"./_plugin-vue_export-helper.f75743ee.js";import{u as Z}from"./index.570b84fe.js";import{a as H}from"./shopping-cart.d9f601dd.js";import{u as X}from"./use-product-card.437911bb.js";import{C as $,Q as tt}from"./QuantitySelector.ebf60845.js";import{P as et}from"./Prices.0e829c31.js";import{_ as G,d as ot}from"./customer-session.5ab9ab1a.js";import{u as it}from"./sf-utils.b04e1813.js";import{g as rt}from"./img-sizes.41e0efe4.js";import{_ as at,d as N,a as S,L as P,M as u,N as f,Z as I,Q as A,O as v,U as y,R as k,S as z,W as V,P as w,a5 as F,J as M,r as L,w as T,K as Q,c as K,V as B,T as C,a6 as st,o as nt,Y as lt}from"./ecom-utils.5cbfb95e.js";import{g as ct}from"./name.01410784.js";import"./index.8ac1db99.js";import"./price.04ceb6c4.js";import"./use-analytics.cc95e346.js";import"./afetch.f4507208.js";import"./img.4f23a3dd.js";import"./modules-info.55780599.js";import"./format-money.9cf6b04d.js";import"./i18n.29216eeb.js";const q=(r,o,l)=>{if(typeof r!="object"||r===null)return[];let t=[];if(typeof r=="object"&&r!==null)if(Array.isArray(r))r.length&&(r[0].specifications?r.forEach(e=>{t=t.concat(q(e,o,l))}):r[0].text&&(t=r));else{const{specifications:e}=r;if(e)for(const n in e)e[n]&&n===o&&(t=e[o]);if(t&&!t.length&&Array.isArray(l)&&l.length){let n,d;return l&&(d=l.find(a=>a.grid_id===o))&&d.options&&(n=d.options.map(a=>{let s;return a.colors&&a.colors.length?s=a.colors[0]:s=a.option_id,{text:a.text,value:s}})),q(n,o)}}return t},W=q,dt=(r,o,l,t=", ")=>{let e=W(r,o,l);if(e.length){let n=e[0].text;for(let d=1;d<e.length;d++)n+=t+e[d].text;return n}return null},Y=dt,ut=(r,o,l,t)=>{const e=W(r,l,t);for(let n=0;n<e.length;n++)if(e[n].text===o)return e[n].value},mt=ut,ft=(r,o,l,t)=>{let e={};return r&&Array.isArray(r.variations)&&r.variations.forEach(n=>{if(l&&n.quantity<=0)return;let d=n.specifications,a=s=>Y(n,s,t);if(d){if(o){for(let s in o)if(o.hasOwnProperty(s)&&(!d[s]||a(s)!==o[s]))return}for(let s in d)if(d.hasOwnProperty(s)){let m=a(s);if(!e.hasOwnProperty(s))e[s]=[];else if(e[s].indexOf(m)!==-1)continue;e[s].push(m)}}}),e},j=ft,gt=(r,o,l=at.get("lang"))=>{let t;return Array.isArray(o)?t=o.find(e=>e.grid_id===r):console.error("`grids` must be array to get grid title"),t?ct(t,l):r},pt=gt,_t=N({__name:"ImagesGallery",props:{pictures:{}},setup(r,{expose:o}){o();const l=S(0),t=S("");let e;const n=S(!1),a={activeIndex:l,psId:t,get lightbox(){return e},set lightbox(s){e=s},isLoadingLightbox:n,zoom:s=>{if(t.value=`ps-${it()}`,!e&&!n.value){n.value=!0;const m="photoswipe-style";Promise.all([G(()=>import("./photoswipe-lightbox.esm.c157838f.js"),[]),G(()=>import("./photoswipe.esm.92c2d901.js"),[]),!document.getElementById(m)&&G(()=>import("./photoswipe.01431ec7.js"),[])]).then(([{default:i},{default:c},_])=>{if(_){const{default:b}=_,p=document.createElement("style");p.id=m,p.textContent=b,document.head.appendChild(p)}e=new i({gallery:`#${t.value} > div`,children:"a",pswpModule:c,showAnimationDuration:300,hideAnimationDuration:300}),e.init(),e.loadAndOpen(s),n.value=!1})}},get getImgSizes(){return rt}};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}}),ht={class:"-mx-4 flex w-screen gap-3 sm:mx-0 sm:w-full md:h-[525px] 2xl:gap-5"},vt=["onClick"],bt=v("span",{class:"absolute bottom-0 block h-2 w-full bg-gradient-to-b from-transparent to-white"},null,-1),yt={class:"relative aspect-square h-full grow md:aspect-auto"},xt={key:0,class:"i-arrow-path bg-base-200 absolute left-1/2 top-1/2 -ml-7 -mt-7 h-14 w-14 animate-spin","aria-label":"Carregando"},kt={key:1,class:"mt-2 flex justify-center gap-1.5 md:hidden"},wt=["aria-label","onClick"];function Ct(r,o,l,t,e,n){const d=P("AImg"),a=P("CarouselControl"),s=P("Carousel"),m=P("ALink");return u(),f("div",ht,[l.pictures.length>1?(u(),I(s,{key:0,axis:"y",class:"group hidden w-[300px] shrink-0 md:block"},{controls:A(()=>[v("span",null,[l.pictures.length>6?(u(),I(a,{key:0,class:"hover:bg-primary-300/60 text-primary !bottom-3 !left-1/2 -ml-5 h-10 w-10 rounded-full bg-white/60 text-xl opacity-0 shadow-sm ring-1 ring-black/5 group-hover:opacity-90"})):y("",!0),bt])]),default:A(()=>[(u(!0),f(k,null,z(Math.ceil(l.pictures.length/2),i=>(u(),f("li",{key:i,class:V(["grid h-1/3 w-full grid-cols-2 gap-3 px-1 pb-3",i===1&&"pt-1"])},[(u(!0),f(k,null,z([1,2].map(c=>(i-1)*2+(c-1)),c=>(u(),f(k,{key:`${i}-${c}`},[c<l.pictures.length?(u(),f("button",{key:0,class:"bg-secondary-100 h-full rounded",onClick:_=>t.activeIndex=c},[w(d,{picture:l.pictures[c],class:V(["ring-secondary/10 h-full w-full rounded border-2 object-cover opacity-90 transition-colors",c===t.activeIndex?"border-secondary/50 ring-4 cursor-auto":"border-transparent hover:border-primary hover:ring-4 hover:ring-primary/20"])},null,8,["picture","class"])],8,vt)):y("",!0)],64))),128))],2))),128))]),_:1})):y("",!0),v("div",yt,[w(s,{as:"div",index:t.activeIndex,"onUpdate:index":o[1]||(o[1]=i=>t.activeIndex=i),class:V(["text-base-600 [&_i]:i-arrow-right mx-auto h-full w-full max-w-[525px] [&>*]:h-full [&_i]:mx-2 [&_i]:text-2xl",t.isLoadingLightbox&&"opacity-80"]),id:t.psId},{default:A(()=>[o[0]||(F(-1),o[0]=(u(!0),f(k,null,z(l.pictures,(i,c)=>(u(),I(m,{key:`big-${c}`,href:i.zoom?.size&&i.zoom.url,"data-pswp-width":t.getImgSizes(i.zoom||"").width,"data-pswp-height":t.getImgSizes(i.zoom||"").height,target:"_blank",rel:"noreferrer",class:V(["shrink-0 basis-full",i.zoom?.size&&"cursor-zoom-in"]),onClick:J(()=>i.zoom?.size&&t.zoom(c),["prevent"])},{default:A(()=>[w(d,{picture:i,"preferred-size":"big",class:"h-full w-full rounded object-cover",fetchpriority:c===0?"high":"low",loading:c===0?"eager":"lazy"},null,8,["picture","fetchpriority","loading"])]),_:2},1032,["href","data-pswp-width","data-pswp-height","class","onClick"]))),128)),F(1),o[0])]),_:1},8,["index","class","id"]),t.isLoadingLightbox?(u(),f("i",xt)):y("",!0),l.pictures.length>1?(u(),f("ul",kt,[(u(!0),f(k,null,z(l.pictures.length,i=>(u(),f("li",{key:`d-${i}`},[v("button",{class:V(["bg-base-700 block h-1.5 w-3 rounded-full",t.activeIndex!==i-1&&"opacity-40"]),"aria-label":`Imagem ${i}`,onClick:c=>t.activeIndex=i-1},null,10,wt)]))),128))])):y("",!0)])])}const St=D(_t,[["render",Ct]]),Ot=r=>{let o=M(globalThis.$storefront.data.grids);o||(o=M([]),ot.get("grids").then(({data:{result:i}})=>{i.forEach(c=>o.push(c))}));const l=L({}),t=L({});T(Q(r,"variations"),()=>{Object.assign(t,j(r,void 0,!0));const i=j(r);Object.keys(i).forEach(c=>{t[c]?l[c]=t[c]:delete l[c]})},{immediate:!0});const e=K(()=>Object.keys(l)),n=L({}),d=S(),a=({optionText:i,gridId:c,gridIndex:_})=>{n[c]=i;const b={};for(let g=0;g<=_;g++){const h=e[g];n[h]&&(b[h]=n[h])}const p=j(r,b,!0);for(let g=_+1;g<e.value.length;g++){const h=e[g],O=p[h];t[h]=O,n[h]&&!O.includes(n[h])&&delete n[h]}const x=r.variations.slice(0);for(let g=0;g<x.length;g++){const h=x[g],{specifications:O}=h,R=Object.keys(O);for(let E=0;E<R.length;E++){const U=R[E];if(n[U]!==Y(h,U)){x.splice(g,1),g-=1;break}}}d.value=x[0]?._id||null};return T(Q(r,"variationId"),i=>{if(!i||i===d.value)return;const c=r.variations.find(x=>x._id===i);if(!c){d.value=null;return}const{specifications:_}=c,b=Object.keys(_),p=(x=0)=>{const g=b[x];if(b[x]&&_[g]&&_[g].length===1){const h=_[g][0].text;l[g].find(O=>O===h)&&(a({optionText:h,gridId:g,gridIndex:e.value.indexOf(g)}),p(x+1))}};p()},{immediate:!0}),{grids:o,variationsGrids:l,activeVariationsGrids:t,selectOption:a,selectedOptions:n,variationId:d,getGridTitle:i=>pt(i,o),getColorOptionBg:i=>{const c=i.split(",").map(_=>mt(r.variations,_.trim(),"colors"));return c.length>1?`background:linear-gradient(to right bottom, ${c[0]} 50%, ${c[1]} 50%)`:`background:${c[0]}`}}},Vt=N({__name:"SkuSelector",props:{variations:{},variationId:{}},emits:["update:variationId"],setup(r,{expose:o,emit:l}){o();const t=r,e=l,{variationsGrids:n,activeVariationsGrids:d,selectOption:a,selectedOptions:s,variationId:m,getGridTitle:i,getColorOptionBg:c}=Ot(t);T(m,b=>{e("update:variationId",b)});const _={props:t,emit:e,variationsGrids:n,activeVariationsGrids:d,selectOption:a,selectedOptions:s,variationId:m,getGridTitle:i,getColorOptionBg:c};return Object.defineProperty(_,"__isScriptSetup",{enumerable:!1,value:!0}),_}}),At={class:"text-base-700 text-sm font-medium"},zt={key:0,class:"text-base-800"},Pt={key:0,class:"mt-2 flex gap-2"},It=["onClick"];function Tt(r,o,l,t,e,n){return u(),f("div",null,[(u(!0),f(k,null,z(t.variationsGrids,(d,a)=>(u(),f("div",{key:a},[v("span",At,[B(C(t.getGridTitle(a))+": ",1),t.selectedOptions[a]?(u(),f("strong",zt,C(t.selectedOptions[a]),1)):y("",!0)]),d.length<7?(u(),f("ul",Pt,[(u(!0),f(k,null,z(d,(s,m)=>(u(),f("li",{key:`${a}-${m}`},[v("button",{class:V(["ring-secondary/60 rounded border",[t.selectedOptions[a]===s?"border-secondary ring-2":null,a==="colors"?"h-9 w-9 text-[0]":"px-2 py-1",t.activeVariationsGrids[a].includes(s)?"text-base-800 bg-base-100 border-base-400":"text-base-500 bg-base-200 border-base-300"]]),style:st(a==="colors"?t.getColorOptionBg(s):void 0),onClick:i=>t.selectOption({optionText:s,gridId:a,gridIndex:m})},C(s),15,It)]))),128))])):y("",!0)]))),128))])}const Et=D(Vt,[["render",Tt]]),Gt=N({__name:"ProductDetails",props:{product:{default:()=>globalThis.$storefront.apiContext?.doc}},setup(r,{expose:o}){o();const l=r,{product:t,title:e,isActive:n}=X(l),d=S(t.min_quantity||1),a=Z("history"),s=S(!1),m=S(null);T(m,p=>{p&&(a.var=p,s.value=!1)}),nt(()=>{T(a,({var:p})=>{typeof p=="string"&&p&&(m.value=p)},{immediate:!0})});const i=K(()=>!!(!t.variations?.length||m.value)),c=p=>(i.value?s.value=!1:(p&&p.preventDefault(),s.value=!0),!s.value),b={props:l,product:t,title:e,isActive:n,quantity:d,params:a,hasSkuSelectionAlert:s,variationId:m,isSkuSelected:i,checkVariation:c,addToCart:()=>{c()&&H(t,m.value?m.value:void 0)},CheckoutLink:$,QuantitySelector:tt,Prices:et,ImagesGallery:St,SkuSelector:Et};return Object.defineProperty(b,"__isScriptSetup",{enumerable:!1,value:!0}),b}}),Lt={class:"ui-section relative grid grid-cols-1 items-start gap-5 md:gap-4 lg:grid-cols-4 2xl:gap-6"},jt={class:"w-full lg:col-span-3"},Bt={class:"top-0 py-4 lg:sticky"},qt={class:"ui-text-brand text-base-700 text-xl"},Dt={key:0,class:"mt-5"},Nt={key:0,class:"ui-alert inline-block"},Rt=v("i",{class:"i-arrow-right ml-1 -rotate-90"},null,-1),Ut={class:"mt-5 flex flex-wrap items-center gap-x-4 gap-y-2 overflow-hidden md:flex-nowrap lg:mt-4 lg:flex-wrap"},Ft=v("i",{class:"i-chevron-double-right mr-1"},null,-1),Mt=["onClick","data-tooltip"],Qt={class:"w-full lg:col-span-3"};function Jt(r,o,l,t,e,n){const d=P("Fade");return u(),f("section",Lt,[v("div",jt,[t.product.pictures?.length?(u(),I(t.ImagesGallery,{key:0,pictures:t.product.pictures},null,8,["pictures"])):y("",!0)]),v("div",Bt,[v("h1",qt,C(t.title),1),t.isActive?(u(),f("div",Dt,[w(t.Prices,{product:t.product,"is-big":"","is-literal":""},null,8,["product"]),t.product.variations?(u(),I(t.SkuSelector,{key:0,variations:t.product.variations,"variation-id":t.variationId,"onUpdate:variationId":o[0]||(o[0]=a=>t.variationId=a),class:"my-4"},null,8,["variations","variation-id"])):y("",!0),w(d,{slide:"down"},{default:A(()=>[t.hasSkuSelectionAlert?(u(),f("div",Nt,[B(C("Por favor selecione uma opção em cada campo acima")+" "),Rt])):y("",!0)]),_:1}),v("div",Ut,[w(t.QuantitySelector,{modelValue:t.quantity,"onUpdate:modelValue":o[1]||(o[1]=a=>t.quantity=a),min:t.product.min_quantity,max:t.product.quantity,class:"border-base-100 rounded md:mr-5 lg:mb-2 lg:mr-auto lg:border-2"},null,8,["modelValue","min","max"]),w(t.CheckoutLink,{class:"ui-btn-lg ui-btn-primary grow text-center",to:"checkout","cart-item":{product_id:t.product._id,quantity:t.quantity,variation_id:t.variationId||void 0},"data-tooltip":t.isSkuSelected?null:"Escolha os detalhes do produto para comprar",onClick:t.checkVariation},{default:A(()=>[Ft,B(" "+C("Comprar"))]),_:1},8,["cart-item","data-tooltip"]),v("button",{class:"ui-btn-lg ui-btn-contrast grow",onClick:J(t.addToCart,["prevent"]),"data-tooltip":t.isSkuSelected?null:"Escolha os detalhes do produto para comprar"},C("Adicionar ao carrinho"),8,Mt)])])):y("",!0)]),v("div",Qt,[lt(r.$slots,"description")])])}const me=D(Gt,[["render",Jt]]);export{me as default};
@@ -1 +0,0 @@
1
- import{_ as N,w as j,v as V}from"./_plugin-vue_export-helper.f75743ee.js";import{a as O,c as R}from"./index.570b84fe.js";import{d as I}from"./customer-session.5ab9ab1a.js";import{c as B,u as D}from"./use-product-card.437911bb.js";import{a as p,J as Q,d as T,L as C,M as s,N as c,P as h,Q as v,O as _,Z as L,U as w,V as x,T as y,$ as z,W as S,X as E,R as H,S as M}from"./ecom-utils.5cbfb95e.js";import{u as q}from"./sf-utils.b04e1813.js";import{a as F}from"./shopping-cart.d9f601dd.js";import{P as J}from"./Prices.0e829c31.js";import{g as U}from"./index.8ac1db99.js";const W=t=>{const a=p(t.title||""),u=p(t.titleLink||""),e=p(!1);let m=null;const d=p(null),l=Q(t.products||[]);return t.products||(e.value=!0,m=(async()=>{let f=t.searchQuery||"",i;if(t.collectionId){try{const{data:r}=await I.get(`collections/${t.collectionId}`);i=r}catch(r){console.error(r),d.value=r}const o=i?.products;Array.isArray(o)&&o.length&&(f+=`&_id=${o.slice(0,60).join(",")}`),!a.value&&a.value!==null&&i?.name&&(a.value=i?.name)}const n=t.limit||24;let g=`offset=${t.page?(t.page-1)*n:0}&limit=${n}`;t.sort&&(g+=`&sort=${t.sort}`),g+=f;try{const{data:o}=await I.get(`search/v1?${g}`);if(t.isShuffle){let r=o.result.filter(A=>A.available&&B(A)).length,b,P;for(;r;)P=Math.floor(Math.random()*r--),b=o.result[r],o.result[r]=o.result[P],o.result[P]=b}o.result.forEach(r=>l.push(r))}catch(o){console.error(o),d.value=o}e.value=!1})()),{title:a,titleLink:u,isFetching:e,fetching:m,fetchError:d,products:l}},X=T({__name:"ProductCard",props:{product:{},productId:{},listName:{},listId:{},headingTag:{default:"h3"}},setup(t,{expose:a}){a();const u=t,{product:e,title:m,link:d,images:l,isInStock:f,isActive:i,discountPercentage:n,hasVariations:k}=D(u),g=p(null),o=O(g),r=p(!1);U(o,()=>{r.value=!0});const b={props:u,product:e,title:m,link:d,images:l,isInStock:f,isActive:i,discountPercentage:n,hasVariations:k,card:g,isHovered:o,wasHoveredOnce:r,get addProductToCart(){return F},Prices:J};return Object.defineProperty(b,"__isScriptSetup",{enumerable:!1,value:!0}),b}}),Z=["data-sku"],G={class:"aspect-square p-2 transition-transform motion-safe:group-hover:scale-110"},K={class:"relative h-full w-full overflow-hidden rounded bg-white group-hover:rounded-none"},Y={key:0,class:"text-xs text-opacity-70"},$={key:1,class:"from-base-50/20 to-base-100 h-full w-full bg-gradient-to-br"},ee={key:0,class:"uno-bm03rg"},te={class:"relative z-10 flex grow flex-col justify-between p-4"},oe={class:"pt-2"},re={key:0},se={key:1,class:"ui-badge bg-warning-100 text-warning-700"},ae=_("span",{class:"bg-on-primary text-primary mr-1 inline-block h-4 w-4 rounded-full text-center text-base leading-none opacity-80"}," + ",-1);function ne(t,a,u,e,m,d){const l=C("AImg"),f=C("ALink");return s(),c("article",{ref:"card","data-sku":e.product.sku,class:"group relative mx-auto h-full max-w-[350px] px-0.5 py-3 hover:z-[1]"},[h(f,{href:e.link,class:"flex h-full flex-col overflow-hidden rounded bg-white ring-black/5 group-hover:shadow group-hover:ring-1"},{default:v(()=>[_("div",G,[_("div",K,[e.images?.length?(s(),c("span",Y,[h(l,{picture:e.images[0],alt:e.title,class:"absolute left-0 top-0 block h-full w-full object-cover"},null,8,["picture","alt"]),e.images[1]&&e.wasHoveredOnce?(s(),L(l,{key:0,picture:e.images[1],alt:e.title,class:"absolute left-0 top-0 z-10 block h-full w-full object-cover text-transparent opacity-0 transition-opacity group-hover:opacity-100 motion-safe:duration-300"},null,8,["picture","alt"])):w("",!0)])):(s(),c("div",$))])]),e.discountPercentage?(s(),c("span",ee,[x(" -"),_("strong",null,y(e.discountPercentage),1),x("% ")])):w("",!0),_("div",te,[(s(),L(z(u.headingTag),{class:S(["ui-link line-clamp-2 no-underline",[e.isActive?"text-base-700":"text-base-500",e.link?"group-hover:text-primary group-hover:underline":null]])},{default:v(()=>[x(y(e.title),1)]),_:1},8,["class"])),_("div",oe,[e.isActive?(s(),c("div",re,[h(e.Prices,{product:e.product},null,8,["product"])])):(s(),c("span",se,y(e.isInStock?"Inativo":"Sem estoque"),1))]),e.isActive&&!e.hasVariations?(s(),c("button",{key:0,class:"uno-3suct9 ui-btn-sm ui-btn-primary",onClick:a[0]||(a[0]=j(i=>e.addProductToCart(e.product),["prevent"]))},[ae,x(" "+y("Adicionar ao carrinho"))])):w("",!0)])]),_:1},8,["href"])],8,Z)}const le=N(X,[["render",ne]]),ie=T({__name:"ProductShelf",props:{collectionId:{},searchQuery:{},sort:{},title:{},titleLink:{},isShuffle:{type:Boolean},limit:{},page:{},products:{}},async setup(t,{expose:a}){a();const u=t,[e,m]=R(),{title:d,titleLink:l,fetching:f,products:i}=W(u),n=d.value||`Shelf ${q()}`,k={props:u,DefineCarouselControl:e,ReuseCarouselControl:m,title:d,titleLink:l,fetching:f,products:i,listName:n,ProductCard:le};return Object.defineProperty(k,"__isScriptSetup",{enumerable:!1,value:!0}),k}}),ce={class:"ui-section"},ue={key:0,class:"mx-auto mb-2 max-w-prose text-center"},de={class:"ui-text-brand text-3xl"};function fe(t,a,u,e,m,d){const l=C("ALink"),f=C("CarouselControl"),i=C("Carousel");return s(),c("section",ce,[e.title?(s(),c("div",ue,[_("h2",de,[h(l,{href:e.titleLink,class:S(e.titleLink?"ui-link":"text-base-700")},{default:v(()=>[x(y(e.title),1)]),_:1},8,["href","class"])])])):w("",!0),h(i,{class:"group/shelf"},{controls:v(()=>[h(e.DefineCarouselControl,null,{default:v(({isPrev:n})=>[E(h(f,{class:S(["uno-nxxji7",n?"!-left-4":"!-right-4"]),"is-prev":n},null,8,["class","is-prev"]),[[V,e.products.length>2]])]),_:1}),h(e.ReuseCarouselControl,{"is-prev":!0}),h(e.ReuseCarouselControl)]),default:v(()=>[(s(!0),c(H,null,M(e.products,n=>(s(),c("li",{key:n._id,class:"shrink-0 basis-1/2 md:basis-1/3 lg:basis-1/4"},[h(e.ProductCard,{product:n,"list-name":e.listName},null,8,["product","list-name"])]))),128))]),_:1})])}const ye=N(ie,[["render",fe]]);export{ye as P};
@@ -1 +0,0 @@
1
- import{P as j}from"./ProductShelf.3f4f38b5.js";import"./_plugin-vue_export-helper.f75743ee.js";import"./ecom-utils.5cbfb95e.js";import"./index.570b84fe.js";import"./index.8ac1db99.js";import"./customer-session.5ab9ab1a.js";import"./sf-utils.b04e1813.js";import"./use-product-card.437911bb.js";import"./use-analytics.cc95e346.js";import"./shopping-cart.d9f601dd.js";import"./price.04ceb6c4.js";import"./afetch.f4507208.js";import"./name.01410784.js";import"./i18n.29216eeb.js";import"./img.4f23a3dd.js";import"./Prices.0e829c31.js";import"./modules-info.55780599.js";import"./format-money.9cf6b04d.js";export{j as default};
@@ -1 +0,0 @@
1
- import{u as g,d as _}from"./customer-session.5ab9ab1a.js";import{a as c,J as p,w as m,d as v,K as S,L as b,M as l,N as u,O as y,P as h,Q as w,R as x,S as k,T as N}from"./ecom-utils.5cbfb95e.js";import{u as C}from"./index.8ac1db99.js";import{P as E}from"./ProductShelf.3f4f38b5.js";import{_ as P}from"./_plugin-vue_export-helper.f75743ee.js";import"./sf-utils.b04e1813.js";import"./index.570b84fe.js";import"./use-product-card.437911bb.js";import"./use-analytics.cc95e346.js";import"./shopping-cart.d9f601dd.js";import"./price.04ceb6c4.js";import"./afetch.f4507208.js";import"./name.01410784.js";import"./i18n.29216eeb.js";import"./img.4f23a3dd.js";import"./Prices.0e829c31.js";import"./modules-info.55780599.js";import"./format-money.9cf6b04d.js";const H="ecomSeachHistory",i=g(H,[]),B=async({term:e,params:r,fields:s,url:t="search/v1"})=>{if(e=e.trim(),e.length<2)return{data:{result:[],meta:null}};const a=await _.get(t,{fields:s,params:{...r,term:e}});if(a.data.result.length&&!i.includes(e)){const o=i.findIndex(n=>e.startsWith(n));for(o>-1?i[o]=e:i.unshift(e);i.length>20;)i.pop()}return a};class M{url;fields;term=c("");params=p({});pageSize=c(24);pageNumber=c(1);products=p([]);#e;constructor({fields:r,url:s="search/v1",debounce:t=150}={}){this.fields=r,this.url=s,this.products=p([]),this.#e=C(B,t),m([this.term,this.params],()=>{this.pageNumber.value=1})}async fetch(r){r&&r!==this.term.value&&(this.term.value=r,this.pageNumber.value=1);const s=this.pageSize.value,t=s*(this.pageNumber.value-1),a=await this.#e({term:this.term.value,params:{limit:s,offset:t,...this.params},url:this.url,fields:this.fields});if(a){const{data:o}=a;o.meta&&this.products.splice(0),o.result.forEach(n=>this.products.push(n))}}}const R=v({__name:"SearchModal",props:{term:{}},setup(e,{expose:r}){r();const s=e,t=new M;m(S(s,"term"),o=>t.fetch(o));const a={props:s,searchEngine:t,get searchHistory(){return i},ProductShelf:E};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}}),z={class:"bg-base-100/80 p-4 backdrop-blur-md lg:rounded"};function D(e,r,s,t,a,o){const n=b("Carousel");return l(),u("article",null,[y("nav",z,[h(n,{class:"gap-2 px-6","wrapper-key":s.term},{default:w(()=>[(l(!0),u(x,null,k(t.searchHistory,(d,f)=>(l(),u("li",{key:f,class:"shrink-0"},N(d),1))),128))]),_:1},8,["wrapper-key"])]),h(t.ProductShelf,{products:t.searchEngine.products,class:"rounded bg-white"},null,8,["products"])])}const $=P(R,[["render",D]]);export{$ as default};
@@ -1,4 +0,0 @@
1
- import{e as je,b as Be,i as Ve,l as Ue,_ as Me}from"./customer-session.5ab9ab1a.js";import{_ as K,w as ge,v as We,a as gt}from"./_plugin-vue_export-helper.f75743ee.js";import{t as ht}from"./shopping-cart.d9f601dd.js";import{b as bt,o as yt}from"./index.570b84fe.js";import{i as pe,a as _t,b as ke}from"./sf-utils.b04e1813.js";import{j as xt,h as wt,p as St,u as kt,g as Ie}from"./index.8ac1db99.js";import{a as x,c as M,w as Z,o as ae,d as D,K as Oe,n as Y,L as U,M as _,Z as A,Q as I,X as we,N as O,W as N,a6 as Ke,O as g,Y as te,U as $,a9 as ze,P as E,$ as Pt,T as L,R as j,S as X,V as Q,aa as Tt,m as V,a3 as le,a4 as ie,ab as q,ac as Pe,a1 as Ye,a2 as Xe,a5 as Ee,a0 as Ce,a8 as Fe,ad as Le}from"./ecom-utils.5cbfb95e.js";import"./price.04ceb6c4.js";const Mt=e=>{const{header:n,canSetStyles:r,canCreateHeightDiv:t,isShownOnScrollDown:a,isShownOnMobile:l}={canSetStyles:!0,canCreateHeightDiv:!0,...e},{ready:o,start:s}=xt(100,{controls:!0,immediate:!1}),i=x(0),c=x(0);let u;const h=l||!pe&&!_t,{y:m}=h?bt(document):{y:x(0)},f=x(0);wt(m,w=>{f.value=w},{debounce:pe?100:50,maxWait:pe?800:400});const b=M(()=>o.value&&f.value>c.value*1.2),d=x("none");Z(b,async w=>{r&&n.value&&(n.value.style.position=w?"fixed":"",n.value.style.width=w?"100vw":""),u&&(u.style.height=w?`${i.value}px`:""),w?(await St(300),d.value="opacity var(--transition-slow), transform var(--transition)"):(s(),d.value="none")});const p=x(!1);return Z(f,(w,P)=>{p.value=w>0&&w<P}),ae(()=>{if(!n.value)throw new Error("<header> (props.header) not set");const w=()=>{const T=n.value;i.value=T.offsetHeight,c.value=i.value+window.scrollY+T.getBoundingClientRect().top,s()},P=n.value.getElementsByTagName("IMG");let S=!0;for(let T=0;T<P.length;T++){const y=P[T];(!y.complete||y.naturalHeight===0)&&(S=!1,y.onload=w)}S&&w(),window.addEventListener("resize",kt(w,300)),r&&(n.value.style.willChange="transform",Z([b,p],([T,y])=>{let k="",C="";T&&(!y||a)&&(k="0",C="translateY(-100%)");const R=n.value;R.style.opacity=k,R.style.transform=C}),Z(d,T=>{n.value.style.transition=T})),t&&(u=document.createElement("div"),n.value.parentElement?.insertBefore(u,n.value))}),{staticHeight:i,staticY:c,isSticky:b,isScrollUp:p,transition:d}},It=(e,n)=>{const r=e.filter(({name:t,slug:a,parent:l})=>t&&a&&!l);return n?.length&&r.sort((t,a)=>{const l=n.indexOf(t.slug),o=n.indexOf(a.slug);return l>-1?o===-1||l<o?-1:1:o>-1?1:0}),r},Ot=(e,n,r=!1)=>{const t=e.filter(({name:a,slug:l,parent:o})=>a&&l&&o?o._id&&o._id===n._id||o.slug&&o.slug===n.slug:!1);return r&&t.sort((a,l)=>a.name<l.name?-1:1),t},Et=e=>{const{header:n,categories:r=globalThis.$storefront.data.categories||[],menuCategorySlugs:t,menuRandomCategories:a=7,isAlphabeticalSortSubmenu:l}=e,{isSticky:o,staticHeight:s,staticY:i}=Mt({header:n}),c=M(()=>o.value?n.value?.offsetHeight:i.value),u=It(r,t),h=p=>Ot(r,p,!!l),m=p=>({...p,subcategories:h(p).map(w=>m(w))}),f=u.map(m);let b=0;const d=f.filter(({slug:p})=>t?.includes(p)?!0:b<a?(b+=1,!0):!1);return{isSticky:o,staticHeight:s,staticY:i,positionY:c,mainCategories:u,getSubcategories:h,getCategoryTree:m,categoryTrees:f,inlineMenuTrees:d}},Ct=D({__name:"Drawer",props:{modelValue:{type:Boolean,default:!1},isHidden:{type:Boolean,default:!1},placement:{default:"start"},position:{default:"fixed"},animation:{default:"slide"},hasCloseButton:{type:Boolean,default:!0},anchorEl:{},backdropTarget:{default:"#teleported-top"},maxWidth:{},class:{}},emits:["update:modelValue"],setup(e,{expose:n,emit:r}){n();const t=e,a=r,l=()=>a("update:modelValue",!1),o=x(null),s=p=>{if(!o.value?.contains(p.target)){if(t.anchorEl?.contains(p.target))return;l()}},i=p=>{p.key==="Escape"&&l()},c=x(0);Z(Oe(t,"modelValue"),async p=>{p?(c.value=window.innerWidth-document.documentElement.clientWidth,document.body.style.overflow="hidden",document.body.style.paddingRight=`${c.value}px`,setTimeout(()=>{document.addEventListener("click",s,{passive:!0}),document.addEventListener("keydown",i,{passive:!0})},500)):(document.body.style.overflow="",document.body.style.paddingRight="",document.removeEventListener("click",s),document.removeEventListener("keydown",i))});const u=M(()=>{if(t.animation!=="slide")return null;switch(t.placement){case"start":return"left";case"end":return"right";case"top":return"down";default:return"up"}}),h=x(null);t.animation==="scale"&&Z(Oe(t,"modelValue"),p=>{p?Y(()=>{setTimeout(()=>{h.value="transition",setTimeout(()=>{t.modelValue&&(h.value="")},300)},50)}):h.value="transition scale-90"},{immediate:!0});const m=M(()=>Array.isArray(t.class)?t.class:[t.class]),f=M(()=>t.position==="fixed"),b=M(()=>t.placement==="start"||t.placement==="end"),d={props:t,emit:a,close:l,drawer:o,outsideClickListener:s,escClickListener:i,scrollbarWidth:c,slideTo:u,animationClassName:h,customClassList:m,isFixed:f,isPlacementX:b};return Object.defineProperty(d,"__isScriptSetup",{enumerable:!1,value:!0}),d}}),Ft=["open","data-drawer"],Lt={class:"relative h-full"},Nt=["onClick"],At=g("i",{class:"i-close text-base-400 hover:text-base-600 text-3xl"},null,-1),Dt={key:0,class:"fixed left-0 top-0 z-30 h-screen w-screen bg-black/50","data-drawer-backdrop":""};function $t(e,n,r,t,a,l){const o=U("Fade");return _(),A(o,{slide:t.slideTo,speed:"slow","is-floating":""},{default:I(()=>[r.modelValue?we((_(),O("dialog",{key:0,ref:"drawer",class:N(["z-40 w-screen p-0",[r.position,t.isPlacementX?"m-0":"mx-auto",t.isPlacementX&&!r.maxWidth?"max-w-sm":null,t.isFixed?`top-0 ${t.isPlacementX?"h-screen":"max-h-screen"}`:null,t.isFixed&&r.placement!=="end"?"left-0":null,t.isFixed&&r.placement==="end"?"left-auto right-0":null,t.animationClassName,...t.customClassList]]),style:Ke({maxWidth:r.maxWidth?`min(${r.maxWidth}, calc(100vw - ${t.scrollbarWidth}px))`:t.isPlacementX?void 0:`calc(100vw - ${t.scrollbarWidth}px)`}),open:r.modelValue,"data-drawer":r.placement},[g("div",Lt,[r.hasCloseButton?(_(),O("button",{key:0,type:"button","aria-label":"Fechar",onClick:ge(t.close,["prevent"]),class:N(["absolute top-2 z-30",r.placement==="end"?"left-2":"right-2"]),"data-drawer-close":""},[te(e.$slots,"close",{},()=>[At])],10,Nt)):$("",!0),te(e.$slots,"default")]),r.backdropTarget?(_(),A(ze,{key:0,to:r.backdropTarget},[E(o,null,{default:I(()=>[r.modelValue&&!r.isHidden?(_(),O("div",Dt)):$("",!0)]),_:1})],8,["to"])):$("",!0)],14,Ft)),[[We,!r.isHidden]]):$("",!0)]),_:3},8,["slide"])}const Rt=K(Ct,[["render",$t]]),Ht=D({__name:"AccountLink",props:{to:{},accountUrl:{default:globalThis.$storefront?.settings.accountUrl||"/app/account"},returnUrl:{default:globalThis.location?.href},isSignUp:{type:Boolean}},setup(e,{expose:n}){n();const r=e,t=M(()=>{let l=r.accountUrl;if(!r.to)return r.isSignUp?l+="?sign_up&":l+="?",r.returnUrl?`${l}return_url=${r.returnUrl}`:l;const{settings:o}=globalThis.$storefront;return r.to==="orders"&&o.ordersUrl?o.ordersUrl:r.to==="favorites"&&o.favoritesUrl?o.favoritesUrl:`${l}/${r.to}`}),a={props:r,href:t};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}}),jt=["href"];function Bt(e,n,r,t,a,l){return _(),O("a",{href:t.href},[te(e.$slots,"default")],8,jt)}const Ge=K(Ht,[["render",Bt]]),Vt=D({__name:"SocialNetworkIcon",props:{as:{default:"i"},network:{}},setup(e,{expose:n}){n();const r=e,t=M(()=>{switch(r.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";case"threads":return"i-threads";default:return""}}),a={props:r,iconClassName:t};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}});function Ut(e,n,r,t,a,l){return _(),A(Pt(r.as),{class:N(t.iconClassName)},null,8,["class"])}const Wt=K(Vt,[["render",Ut]]),Kt=D({__name:"SocialNetworkLink",props:{network:{},href:{},message:{}},setup(e,{expose:n}){n();const r=e,t=M(()=>{let l=r.href||ke[r.network]||"";if(r.network==="whatsapp"){const o=l.replace(/[^+\d]/g,"");l=`https://${pe?"api":"web"}.whatsapp.com/send?phone=`+encodeURIComponent(o.charAt(0)==="+"?o:`+55${o}`),r.message&&(l+=`&text=${encodeURIComponent(r.message)}`)}return l}),a={props:r,fixedHref:t,SocialNetworkIcon:Wt};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}});function zt(e,n,r,t,a,l){const o=U("ALink");return _(),A(o,{href:t.fixedHref},{default:I(()=>[te(e.$slots,"default",{},()=>[E(t.SocialNetworkIcon,{network:r.network},null,8,["network"]),te(e.$slots,"append")])]),_:3},8,["href"])}const qe=K(Kt,[["render",zt]]),Yt=D({__name:"ShopSidenavCategory",props:{categoryTree:{}},setup(e,{expose:n}){n();const r=x(!1),t=x(!0);Z(r,l=>{l?setTimeout(()=>{t.value=!1},25):t.value=!0});const a={isOpen:r,isFaded:t};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}}),Xt={class:"text-base-800 text-lg"},Gt=["href"],qt=["href"],Qt={class:"inline"};function Zt(e,n,r,t,a,l){const o=U("AImg"),s=U("ShopSidenavCategory",!0);return _(),O("li",Xt,[r.categoryTree.subcategories.length?(_(),O("details",{key:0,class:"z-10 overflow-y-auto overflow-x-hidden bg-white open:absolute open:left-0 open:top-0 open:h-full open:w-full",onToggle:n[0]||(n[0]=i=>t.isOpen=!t.isOpen)},[g("summary",{class:N(["active:bg-base-100 cursor-pointer list-none px-6 py-3 transition-colors",t.isOpen?"bg-base-100":null])},[g("i",{class:N(t.isOpen?"i-arrow-right rotate-180 text-lg":"i-arrow-right float-right mb-0 mt-1 text-xl text-base-500")},null,2),!t.isOpen&&r.categoryTree.icon?(_(),A(o,{key:0,picture:r.categoryTree.icon,alt:r.categoryTree.name,class:"mr-3 inline h-5 w-auto"},null,8,["picture","alt"])):$("",!0),g("h3",{class:N(["inline",t.isOpen?"ml-4 text-base":null])},L(r.categoryTree.name),3)],2),g("ul",{class:N(["mt-2 transition-opacity",t.isFaded?"opacity-20":"opacity-100"]),tabindex:"-1"},[(_(!0),O(j,null,X(r.categoryTree.subcategories,(i,c)=>(_(),A(s,{key:c,"category-tree":i},null,8,["category-tree"]))),128)),g("li",null,[g("a",{href:`/${r.categoryTree.slug}`,class:"active:bg-base-200 block px-6 py-3 text-base underline"},L("Ver toda a categoria $1".replace("$1",r.categoryTree.name)),9,Gt)])],2)],32)):(_(),O("a",{key:1,href:`/${r.categoryTree.slug}`,class:"active:bg-base-200 block px-6 py-3"},[!t.isOpen&&r.categoryTree.icon?(_(),A(o,{key:0,picture:r.categoryTree.icon,alt:r.categoryTree.name,class:"mr-3 inline h-5 w-auto"},null,8,["picture","alt"])):$("",!0),g("h3",Qt,L(r.categoryTree.name),1)],8,qt))])}const Jt=K(Yt,[["render",Zt]]),en=D({__name:"ShopSidenav",props:{categoryTrees:{}},setup(e,{expose:n}){n(),ae(()=>je());const r={get customerName(){return Be},get isLogged(){return Ve},get logout(){return Ue},get socialNetworks(){return ke},AccountLink:Ge,SocialNetworkLink:qe,ShopSidenavCategory:Jt};return Object.defineProperty(r,"__isScriptSetup",{enumerable:!1,value:!0}),r}}),tn={class:"flex h-full flex-col bg-white"},nn={class:"grow py-4"},an={class:"relative h-full"},rn={class:"text-base"},ln={class:"bg-base-100 flex items-center px-2 py-4"},on=g("i",{class:"i-user-circle text-base-500 m-0 text-4xl"},null,-1),sn={class:"leading-tight"},un=g("small",{class:"text-primary block font-semibold lowercase"},L("Meus pedidos")+", "+L("Minha conta"),-1),cn=g("span",{class:"text-base-600"},L("Sair"),-1),dn=g("i",{class:"i-arrow-right-on-rectangle ml-1 text-lg"},null,-1),fn=[cn,dn],pn={class:"bg-base-200 text-base-700 flex gap-3 p-4 text-xl"};function vn(e,n,r,t,a,l){return _(),O("aside",tn,[g("nav",nn,[g("ul",an,[(_(!0),O(j,null,X(r.categoryTrees,(o,s)=>(_(),A(t.ShopSidenavCategory,{key:s,"category-tree":o},null,8,["category-tree"]))),128))])]),g("footer",rn,[g("div",ln,[E(t.AccountLink,{class:"flex grow items-center gap-3 p-2"},{default:I(()=>[on,g("span",sn,[Q(L(`Olá ${t.customerName||"Visitante"}`)+" ",1),un])]),_:1}),t.isLogged?(_(),O("button",{key:0,onClick:n[0]||(n[0]=(...o)=>t.logout&&t.logout(...o)),class:"text-base-800 p-2 text-right"},fn)):$("",!0)]),g("ul",pn,[(_(!0),O(j,null,X(t.socialNetworks,(o,s)=>(_(),O("li",{key:s},[E(t.SocialNetworkLink,{network:s,class:"active:text-primary p-1"},null,8,["network"])]))),128))])])])}const mn=K(en,[["render",vn]]);function W(e,n,...r){if(e in n){let a=n[e];return typeof a=="function"?a(...r):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,W),t}var oe=(e=>(e[e.None=0]="None",e[e.RenderStrategy=1]="RenderStrategy",e[e.Static=2]="Static",e))(oe||{}),gn=(e=>(e[e.Unmount=0]="Unmount",e[e.Hidden=1]="Hidden",e))(gn||{});function ne({visible:e=!0,features:n=0,ourProps:r,theirProps:t,...a}){var l;let o=Ze(t,r),s=Object.assign(a,{props:o});if(e||n&2&&o.static)return xe(s);if(n&1){let i=(l=o.unmount)==null||l?0:1;return W(i,{0(){return null},1(){return xe({...a,props:{...o,hidden:!0,style:{display:"none"}}})}})}return xe(s)}function xe({props:e,attrs:n,slots:r,slot:t,name:a}){var l,o;let{as:s,...i}=hn(e,["unmount","static"]),c=(l=r.default)==null?void 0:l.call(r,t),u={};if(t){let h=!1,m=[];for(let[f,b]of Object.entries(t))typeof b=="boolean"&&(h=!0),b===!0&&m.push(f);h&&(u["data-headlessui-state"]=m.join(" "))}if(s==="template"){if(c=Qe(c??[]),Object.keys(i).length>0||Object.keys(n).length>0){let[h,...m]=c??[];if(!bn(h)||m.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(d=>d.trim()).filter((d,p,w)=>w.indexOf(d)===p).sort((d,p)=>d.localeCompare(p)).map(d=>` - ${d}`).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(d=>` - ${d}`).join(`
3
- `)].join(`
4
- `));let f=Ze((o=h.props)!=null?o:{},i),b=Tt(h,f);for(let d in f)d.startsWith("on")&&(b.props||(b.props={}),b.props[d]=f[d]);return b}return Array.isArray(c)&&c.length===1?c[0]:c}return V(s,Object.assign({},i,u),{default:()=>c})}function Qe(e){return e.flatMap(n=>n.type===j?Qe(n.children):[n])}function Ze(...e){if(e.length===0)return{};if(e.length===1)return e[0];let n={},r={};for(let t of e)for(let a in t)a.startsWith("on")&&typeof t[a]=="function"?(r[a]!=null||(r[a]=[]),r[a].push(t[a])):n[a]=t[a];if(n.disabled||n["aria-disabled"])return Object.assign(n,Object.fromEntries(Object.keys(r).map(t=>[t,void 0])));for(let t in r)Object.assign(n,{[t](a,...l){let o=r[t];for(let s of o){if(a instanceof Event&&a.defaultPrevented)return;s(a,...l)}}});return n}function hn(e,n=[]){let r=Object.assign({},e);for(let t of n)t in r&&delete r[t];return r}function bn(e){return e==null?!1:typeof e.type=="string"||typeof e.type=="object"||typeof e.type=="function"}let yn=0;function _n(){return++yn}function ee(){return _n()}var F=(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))(F||{});function xn(e){throw new Error("Unexpected object: "+e)}var H=(e=>(e[e.First=0]="First",e[e.Previous=1]="Previous",e[e.Next=2]="Next",e[e.Last=3]="Last",e[e.Specific=4]="Specific",e[e.Nothing=5]="Nothing",e))(H||{});function wn(e,n){let r=n.resolveItems();if(r.length<=0)return null;let t=n.resolveActiveIndex(),a=t??-1,l=(()=>{switch(e.focus){case 0:return r.findIndex(o=>!n.resolveDisabled(o));case 1:{let o=r.slice().reverse().findIndex((s,i,c)=>a!==-1&&c.length-i-1>=a?!1:!n.resolveDisabled(s));return o===-1?o:r.length-1-o}case 2:return r.findIndex((o,s)=>s<=a?!1:!n.resolveDisabled(o));case 3:{let o=r.slice().reverse().findIndex(s=>!n.resolveDisabled(s));return o===-1?o:r.length-1-o}case 4:return r.findIndex(o=>n.resolveId(o)===e.id);case 5:return null;default:xn(e)}})();return l===-1?t:l}function v(e){var n;return e==null||e.value==null?null:(n=e.value.$el)!=null?n:e.value}let Je=Symbol("Context");var G=(e=>(e[e.Open=1]="Open",e[e.Closed=2]="Closed",e[e.Closing=4]="Closing",e[e.Opening=8]="Opening",e))(G||{});function et(){return le(Je,null)}function tt(e){ie(Je,e)}function Ne(e,n){if(e)return e;let r=n??"button";if(typeof r=="string"&&r.toLowerCase()==="button")return"button"}function nt(e,n){let r=x(Ne(e.value.type,e.value.as));return ae(()=>{r.value=Ne(e.value.type,e.value.as)}),q(()=>{var t;r.value||v(n)&&v(n)instanceof HTMLButtonElement&&!((t=v(n))!=null&&t.hasAttribute("type"))&&(r.value="button")}),r}var Sn=Object.defineProperty,kn=(e,n,r)=>n in e?Sn(e,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[n]=r,Ae=(e,n,r)=>(kn(e,typeof n!="symbol"?n+"":n,r),r);class Pn{constructor(){Ae(this,"current",this.detect()),Ae(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 he=new Pn;function re(e){if(he.isServer)return null;if(e instanceof Node)return e.ownerDocument;if(e!=null&&e.hasOwnProperty("value")){let n=v(e);if(n)return n.ownerDocument}return document}function Tn({container:e,accept:n,walk:r,enabled:t}){q(()=>{let a=e.value;if(!a||t!==void 0&&!t.value)return;let l=re(e);if(!l)return;let o=Object.assign(i=>n(i),{acceptNode:n}),s=l.createTreeWalker(a,NodeFilter.SHOW_ELEMENT,o,!1);for(;s.nextNode();)r(s.currentNode)})}let Se=["[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||{}),ve=(e=>(e[e.Error=0]="Error",e[e.Overflow=1]="Overflow",e[e.Success=2]="Success",e[e.Underflow=3]="Underflow",e))(ve||{}),Mn=(e=>(e[e.Previous=-1]="Previous",e[e.Next=1]="Next",e))(Mn||{});function ue(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(Se)).sort((n,r)=>Math.sign((n.tabIndex||Number.MAX_SAFE_INTEGER)-(r.tabIndex||Number.MAX_SAFE_INTEGER)))}var be=(e=>(e[e.Strict=0]="Strict",e[e.Loose=1]="Loose",e))(be||{});function ye(e,n=0){var r;return e===((r=re(e))==null?void 0:r.body)?!1:W(n,{0(){return e.matches(Se)},1(){let t=e;for(;t!==null;){if(t.matches(Se))return!0;t=t.parentElement}return!1}})}function at(e){let n=re(e);Y(()=>{n&&!ye(n.activeElement,0)&&On(e)})}var In=(e=>(e[e.Keyboard=0]="Keyboard",e[e.Mouse=1]="Mouse",e))(In||{});typeof window<"u"&&typeof document<"u"&&(document.addEventListener("keydown",e=>{e.metaKey||e.altKey||e.ctrlKey||(document.documentElement.dataset.headlessuiFocusVisible="")},!0),document.addEventListener("click",e=>{e.detail===1?delete document.documentElement.dataset.headlessuiFocusVisible:e.detail===0&&(document.documentElement.dataset.headlessuiFocusVisible="")},!0));function On(e){e?.focus({preventScroll:!0})}let En=["textarea","input"].join(",");function Cn(e){var n,r;return(r=(n=e?.matches)==null?void 0:n.call(e,En))!=null?r:!1}function rt(e,n=r=>r){return e.slice().sort((r,t)=>{let a=n(r),l=n(t);if(a===null||l===null)return 0;let o=a.compareDocumentPosition(l);return o&Node.DOCUMENT_POSITION_FOLLOWING?-1:o&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function Fn(e,n){return J(ue(),n,{relativeTo:e})}function J(e,n,{sorted:r=!0,relativeTo:t=null,skipElements:a=[]}={}){var l;let o=(l=Array.isArray(e)?e.length>0?e[0].ownerDocument:document:e?.ownerDocument)!=null?l:document,s=Array.isArray(e)?r?rt(e):e:ue(e);a.length>0&&s.length>1&&(s=s.filter(b=>!a.includes(b))),t=t??o.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")})(),c=(()=>{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")})(),u=n&32?{preventScroll:!0}:{},h=0,m=s.length,f;do{if(h>=m||h+m<=0)return 0;let b=c+h;if(n&16)b=(b+m)%m;else{if(b<0)return 3;if(b>=m)return 1}f=s[b],f?.focus(u),h+=i}while(f!==o.activeElement);return n&6&&Cn(f)&&f.select(),2}function fe(e,n,r){he.isServer||q(t=>{document.addEventListener(e,n,r),t(()=>document.removeEventListener(e,n,r))})}function lt(e,n,r){he.isServer||q(t=>{window.addEventListener(e,n,r),t(()=>window.removeEventListener(e,n,r))})}function ot(e,n,r=M(()=>!0)){function t(l,o){if(!r.value||l.defaultPrevented)return;let s=o(l);if(s===null||!s.getRootNode().contains(s))return;let i=function c(u){return typeof u=="function"?c(u()):Array.isArray(u)||u instanceof Set?u:[u]}(e);for(let c of i){if(c===null)continue;let u=c instanceof HTMLElement?c:v(c);if(u!=null&&u.contains(s)||l.composed&&l.composedPath().includes(u))return}return!ye(s,be.Loose)&&s.tabIndex!==-1&&l.preventDefault(),n(l,s)}let a=x(null);fe("pointerdown",l=>{var o,s;r.value&&(a.value=((s=(o=l.composedPath)==null?void 0:o.call(l))==null?void 0:s[0])||l.target)},!0),fe("mousedown",l=>{var o,s;r.value&&(a.value=((s=(o=l.composedPath)==null?void 0:o.call(l))==null?void 0:s[0])||l.target)},!0),fe("click",l=>{a.value&&(t(l,()=>a.value),a.value=null)},!0),fe("touchend",l=>t(l,()=>l.target instanceof HTMLElement?l.target:null),!0),lt("blur",l=>t(l,()=>window.document.activeElement instanceof HTMLIFrameElement?window.document.activeElement:null),!0)}var se=(e=>(e[e.None=1]="None",e[e.Focusable=2]="Focusable",e[e.Hidden=4]="Hidden",e))(se||{});let me=D({name:"Hidden",props:{as:{type:[Object,String],default:"div"},features:{type:Number,default:1}},setup(e,{slots:n,attrs:r}){return()=>{let{features:t,...a}=e,l={"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 ne({ourProps:l,theirProps:a,slot:{},attrs:r,slots:n,name:"Hidden"})}}});function De(e){return[e.screenX,e.screenY]}function Ln(){let e=x([-1,-1]);return{wasMoved(n){let r=De(n);return e.value[0]===r[0]&&e.value[1]===r[1]?!1:(e.value=r,!0)},update(n){e.value=De(n)}}}var z=(e=>(e[e.Forwards=0]="Forwards",e[e.Backwards=1]="Backwards",e))(z||{});function st(){let e=x(0);return lt("keydown",n=>{n.key==="Tab"&&(e.value=n.shiftKey?1:0)}),e}function Nn(e,n,r,t){he.isServer||q(a=>{e=e??window,e.addEventListener(n,r,t),a(()=>e.removeEventListener(n,r,t))})}let $e=Symbol("PortalParentContext");function An(){let e=le($e,null),n=x([]);function r(l){return n.value.push(l),e&&e.register(l),()=>t(l)}function t(l){let o=n.value.indexOf(l);o!==-1&&n.value.splice(o,1),e&&e.unregister(l)}let a={register:r,unregister:t,portals:n};return[n,D({name:"PortalWrapper",setup(l,{slots:o}){return ie($e,a),()=>{var s;return(s=o.default)==null?void 0:s.call(o)}}})]}function Dn({defaultContainers:e=[],portals:n,mainTreeNodeRef:r}={}){let t=x(null),a=re(t);function l(){var o;let s=[];for(let i of e)i!==null&&(i instanceof HTMLElement?s.push(i):"value"in i&&i.value instanceof HTMLElement&&s.push(i.value));if(n!=null&&n.value)for(let i of n.value)s.push(i);for(let i of(o=a?.querySelectorAll("html > *, body > *"))!=null?o:[])i!==document.body&&i!==document.head&&i instanceof HTMLElement&&i.id!=="headlessui-portal-root"&&(i.contains(v(t))||s.some(c=>i.contains(c))||s.push(i));return s}return{resolveContainers:l,contains(o){return l().some(s=>s.contains(o))},mainTreeNodeRef:t,MainTreeNode(){return r!=null?null:V(me,{features:se.Hidden,ref:t})}}}let Re=/([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g;function He(e){var n,r;let t=(n=e.innerText)!=null?n:"",a=e.cloneNode(!0);if(!(a instanceof HTMLElement))return t;let l=!1;for(let s of a.querySelectorAll('[hidden],[aria-hidden],[role="img"]'))s.remove(),l=!0;let o=l?(r=a.innerText)!=null?r:"":t;return Re.test(o)&&(o=o.replace(Re,"")),o}function $n(e){let n=e.getAttribute("aria-label");if(typeof n=="string")return n.trim();let r=e.getAttribute("aria-labelledby");if(r){let t=r.split(" ").map(a=>{let l=document.getElementById(a);if(l){let o=l.getAttribute("aria-label");return typeof o=="string"?o.trim():He(l).trim()}return null}).filter(Boolean);if(t.length>0)return t.join(", ")}return He(e).trim()}function Rn(e){let n=x(""),r=x("");return()=>{let t=v(e);if(!t)return"";let a=t.innerText;if(n.value===a)return r.value;let l=$n(t).trim().toLowerCase();return n.value=a,r.value=l,l}}var Hn=(e=>(e[e.Open=0]="Open",e[e.Closed=1]="Closed",e))(Hn||{}),jn=(e=>(e[e.Pointer=0]="Pointer",e[e.Other=1]="Other",e))(jn||{});function Bn(e){requestAnimationFrame(()=>requestAnimationFrame(e))}let it=Symbol("MenuContext");function _e(e){let n=le(it,null);if(n===null){let r=new Error(`<${e} /> is missing a parent <Menu /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(r,_e),r}return n}let Vn=D({name:"Menu",props:{as:{type:[Object,String],default:"template"}},setup(e,{slots:n,attrs:r}){let t=x(1),a=x(null),l=x(null),o=x([]),s=x(""),i=x(null),c=x(1);function u(m=f=>f){let f=i.value!==null?o.value[i.value]:null,b=rt(m(o.value.slice()),p=>v(p.dataRef.domRef)),d=f?b.indexOf(f):null;return d===-1&&(d=null),{items:b,activeItemIndex:d}}let h={menuState:t,buttonRef:a,itemsRef:l,items:o,searchQuery:s,activeItemIndex:i,activationTrigger:c,closeMenu:()=>{t.value=1,i.value=null},openMenu:()=>t.value=0,goToItem(m,f,b){let d=u(),p=wn(m===H.Specific?{focus:H.Specific,id:f}:{focus:m},{resolveItems:()=>d.items,resolveActiveIndex:()=>d.activeItemIndex,resolveId:w=>w.id,resolveDisabled:w=>w.dataRef.disabled});s.value="",i.value=p,c.value=b??1,o.value=d.items},search(m){let f=s.value!==""?0:1;s.value+=m.toLowerCase();let b=(i.value!==null?o.value.slice(i.value+f).concat(o.value.slice(0,i.value+f)):o.value).find(p=>p.dataRef.textValue.startsWith(s.value)&&!p.dataRef.disabled),d=b?o.value.indexOf(b):-1;d===-1||d===i.value||(i.value=d,c.value=1)},clearSearch(){s.value=""},registerItem(m,f){let b=u(d=>[...d,{id:m,dataRef:f}]);o.value=b.items,i.value=b.activeItemIndex,c.value=1},unregisterItem(m){let f=u(b=>{let d=b.findIndex(p=>p.id===m);return d!==-1&&b.splice(d,1),b});o.value=f.items,i.value=f.activeItemIndex,c.value=1}};return ot([a,l],(m,f)=>{var b;h.closeMenu(),ye(f,be.Loose)||(m.preventDefault(),(b=v(a))==null||b.focus())},M(()=>t.value===0)),ie(it,h),tt(M(()=>W(t.value,{0:G.Open,1:G.Closed}))),()=>{let m={open:t.value===0,close:h.closeMenu};return ne({ourProps:{},theirProps:e,slot:m,slots:n,attrs:r,name:"Menu"})}}}),Un=D({name:"MenuButton",props:{disabled:{type:Boolean,default:!1},as:{type:[Object,String],default:"button"},id:{type:String,default:()=>`headlessui-menu-button-${ee()}`}},setup(e,{attrs:n,slots:r,expose:t}){let a=_e("MenuButton");t({el:a.buttonRef,$el:a.buttonRef});function l(c){switch(c.key){case F.Space:case F.Enter:case F.ArrowDown:c.preventDefault(),c.stopPropagation(),a.openMenu(),Y(()=>{var u;(u=v(a.itemsRef))==null||u.focus({preventScroll:!0}),a.goToItem(H.First)});break;case F.ArrowUp:c.preventDefault(),c.stopPropagation(),a.openMenu(),Y(()=>{var u;(u=v(a.itemsRef))==null||u.focus({preventScroll:!0}),a.goToItem(H.Last)});break}}function o(c){switch(c.key){case F.Space:c.preventDefault();break}}function s(c){e.disabled||(a.menuState.value===0?(a.closeMenu(),Y(()=>{var u;return(u=v(a.buttonRef))==null?void 0:u.focus({preventScroll:!0})})):(c.preventDefault(),a.openMenu(),Bn(()=>{var u;return(u=v(a.itemsRef))==null?void 0:u.focus({preventScroll:!0})})))}let i=nt(M(()=>({as:e.as,type:n.type})),a.buttonRef);return()=>{var c;let u={open:a.menuState.value===0},{id:h,...m}=e,f={ref:a.buttonRef,id:h,type:i.value,"aria-haspopup":"menu","aria-controls":(c=v(a.itemsRef))==null?void 0:c.id,"aria-expanded":a.menuState.value===0,onKeydown:l,onKeyup:o,onClick:s};return ne({ourProps:f,theirProps:m,slot:u,attrs:n,slots:r,name:"MenuButton"})}}}),Wn=D({name:"MenuItems",props:{as:{type:[Object,String],default:"div"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},id:{type:String,default:()=>`headlessui-menu-items-${ee()}`}},setup(e,{attrs:n,slots:r,expose:t}){let a=_e("MenuItems"),l=x(null);t({el:a.itemsRef,$el:a.itemsRef}),Tn({container:M(()=>v(a.itemsRef)),enabled:M(()=>a.menuState.value===0),accept(u){return u.getAttribute("role")==="menuitem"?NodeFilter.FILTER_REJECT:u.hasAttribute("role")?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT},walk(u){u.setAttribute("role","none")}});function o(u){var h;switch(l.value&&clearTimeout(l.value),u.key){case F.Space:if(a.searchQuery.value!=="")return u.preventDefault(),u.stopPropagation(),a.search(u.key);case F.Enter:if(u.preventDefault(),u.stopPropagation(),a.activeItemIndex.value!==null){let m=a.items.value[a.activeItemIndex.value];(h=v(m.dataRef.domRef))==null||h.click()}a.closeMenu(),at(v(a.buttonRef));break;case F.ArrowDown:return u.preventDefault(),u.stopPropagation(),a.goToItem(H.Next);case F.ArrowUp:return u.preventDefault(),u.stopPropagation(),a.goToItem(H.Previous);case F.Home:case F.PageUp:return u.preventDefault(),u.stopPropagation(),a.goToItem(H.First);case F.End:case F.PageDown:return u.preventDefault(),u.stopPropagation(),a.goToItem(H.Last);case F.Escape:u.preventDefault(),u.stopPropagation(),a.closeMenu(),Y(()=>{var m;return(m=v(a.buttonRef))==null?void 0:m.focus({preventScroll:!0})});break;case F.Tab:u.preventDefault(),u.stopPropagation(),a.closeMenu(),Y(()=>Fn(v(a.buttonRef),u.shiftKey?B.Previous:B.Next));break;default:u.key.length===1&&(a.search(u.key),l.value=setTimeout(()=>a.clearSearch(),350));break}}function s(u){switch(u.key){case F.Space:u.preventDefault();break}}let i=et(),c=M(()=>i!==null?(i.value&G.Open)===G.Open:a.menuState.value===0);return()=>{var u,h;let m={open:a.menuState.value===0},{id:f,...b}=e,d={"aria-activedescendant":a.activeItemIndex.value===null||(u=a.items.value[a.activeItemIndex.value])==null?void 0:u.id,"aria-labelledby":(h=v(a.buttonRef))==null?void 0:h.id,id:f,onKeydown:o,onKeyup:s,role:"menu",tabIndex:0,ref:a.itemsRef};return ne({ourProps:d,theirProps:b,slot:m,attrs:n,slots:r,features:oe.RenderStrategy|oe.Static,visible:c.value,name:"MenuItems"})}}}),Kn=D({name:"MenuItem",inheritAttrs:!1,props:{as:{type:[Object,String],default:"template"},disabled:{type:Boolean,default:!1},id:{type:String,default:()=>`headlessui-menu-item-${ee()}`}},setup(e,{slots:n,attrs:r,expose:t}){let a=_e("MenuItem"),l=x(null);t({el:l,$el:l});let o=M(()=>a.activeItemIndex.value!==null?a.items.value[a.activeItemIndex.value].id===e.id:!1),s=Rn(l),i=M(()=>({disabled:e.disabled,get textValue(){return s()},domRef:l}));ae(()=>a.registerItem(e.id,i)),Pe(()=>a.unregisterItem(e.id)),q(()=>{a.menuState.value===0&&o.value&&a.activationTrigger.value!==0&&Y(()=>{var d,p;return(p=(d=v(l))==null?void 0:d.scrollIntoView)==null?void 0:p.call(d,{block:"nearest"})})});function c(d){if(e.disabled)return d.preventDefault();a.closeMenu(),at(v(a.buttonRef))}function u(){if(e.disabled)return a.goToItem(H.Nothing);a.goToItem(H.Specific,e.id)}let h=Ln();function m(d){h.update(d)}function f(d){h.wasMoved(d)&&(e.disabled||o.value||a.goToItem(H.Specific,e.id,0))}function b(d){h.wasMoved(d)&&(e.disabled||o.value&&a.goToItem(H.Nothing))}return()=>{let{disabled:d}=e,p={active:o.value,disabled:d,close:a.closeMenu},{id:w,...P}=e;return ne({ourProps:{id:w,ref:l,role:"menuitem",tabIndex:d===!0?void 0:-1,"aria-disabled":d===!0?!0:void 0,disabled:void 0,onClick:c,onFocus:u,onPointerenter:m,onMouseenter:m,onPointermove:f,onMousemove:f,onPointerleave:b,onMouseleave:b},theirProps:{...r,...P},slot:p,attrs:r,slots:n,name:"MenuItem"})}}});var zn=(e=>(e[e.Open=0]="Open",e[e.Closed=1]="Closed",e))(zn||{});let ut=Symbol("PopoverContext");function Te(e){let n=le(ut,null);if(n===null){let r=new Error(`<${e} /> is missing a parent <${ft.name} /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(r,Te),r}return n}let Yn=Symbol("PopoverGroupContext");function ct(){return le(Yn,null)}let dt=Symbol("PopoverPanelContext");function Xn(){return le(dt,null)}let ft=D({name:"Popover",inheritAttrs:!1,props:{as:{type:[Object,String],default:"div"}},setup(e,{slots:n,attrs:r,expose:t}){var a;let l=x(null);t({el:l,$el:l});let o=x(1),s=x(null),i=x(null),c=x(null),u=x(null),h=M(()=>re(l)),m=M(()=>{var y,k;if(!v(s)||!v(u))return!1;for(let de of document.querySelectorAll("body > *"))if(Number(de?.contains(v(s)))^Number(de?.contains(v(u))))return!0;let C=ue(),R=C.indexOf(v(s)),ce=(R+C.length-1)%C.length,pt=(R+1)%C.length,vt=C[ce],mt=C[pt];return!((y=v(u))!=null&&y.contains(vt))&&!((k=v(u))!=null&&k.contains(mt))}),f={popoverState:o,buttonId:x(null),panelId:x(null),panel:u,button:s,isPortalled:m,beforePanelSentinel:i,afterPanelSentinel:c,togglePopover(){o.value=W(o.value,{0:1,1:0})},closePopover(){o.value!==1&&(o.value=1)},close(y){f.closePopover();let k=(()=>y?y instanceof HTMLElement?y:y.value instanceof HTMLElement?v(y):v(f.button):v(f.button))();k?.focus()}};ie(ut,f),tt(M(()=>W(o.value,{0:G.Open,1:G.Closed})));let b={buttonId:f.buttonId,panelId:f.panelId,close(){f.closePopover()}},d=ct(),p=d?.registerPopover,[w,P]=An(),S=Dn({mainTreeNodeRef:d?.mainTreeNodeRef,portals:w,defaultContainers:[s,u]});function T(){var y,k,C,R;return(R=d?.isFocusWithinPopoverGroup())!=null?R:((y=h.value)==null?void 0:y.activeElement)&&(((k=v(s))==null?void 0:k.contains(h.value.activeElement))||((C=v(u))==null?void 0:C.contains(h.value.activeElement)))}return q(()=>p?.(b)),Nn((a=h.value)==null?void 0:a.defaultView,"focus",y=>{var k,C;y.target!==window&&y.target instanceof HTMLElement&&o.value===0&&(T()||s&&u&&(S.contains(y.target)||(k=v(f.beforePanelSentinel))!=null&&k.contains(y.target)||(C=v(f.afterPanelSentinel))!=null&&C.contains(y.target)||f.closePopover()))},!0),ot(S.resolveContainers,(y,k)=>{var C;f.closePopover(),ye(k,be.Loose)||(y.preventDefault(),(C=v(s))==null||C.focus())},M(()=>o.value===0)),()=>{let y={open:o.value===0,close:f.close};return V(j,[V(P,{},()=>ne({theirProps:{...e,...r},ourProps:{ref:l},slot:y,slots:n,attrs:r,name:"Popover"})),V(S.MainTreeNode)])}}}),Gn=D({name:"PopoverButton",props:{as:{type:[Object,String],default:"button"},disabled:{type:[Boolean],default:!1},id:{type:String,default:()=>`headlessui-popover-button-${ee()}`}},inheritAttrs:!1,setup(e,{attrs:n,slots:r,expose:t}){let a=Te("PopoverButton"),l=M(()=>re(a.button));t({el:a.button,$el:a.button}),ae(()=>{a.buttonId.value=e.id}),Pe(()=>{a.buttonId.value=null});let o=ct(),s=o?.closeOthers,i=Xn(),c=M(()=>i===null?!1:i.value===a.panelId.value),u=x(null),h=`headlessui-focus-sentinel-${ee()}`;c.value||q(()=>{a.button.value=u.value});let m=nt(M(()=>({as:e.as,type:n.type})),u);function f(S){var T,y,k,C,R;if(c.value){if(a.popoverState.value===1)return;switch(S.key){case F.Space:case F.Enter:S.preventDefault(),(y=(T=S.target).click)==null||y.call(T),a.closePopover(),(k=v(a.button))==null||k.focus();break}}else switch(S.key){case F.Space:case F.Enter:S.preventDefault(),S.stopPropagation(),a.popoverState.value===1&&s?.(a.buttonId.value),a.togglePopover();break;case F.Escape:if(a.popoverState.value!==0)return s?.(a.buttonId.value);if(!v(a.button)||(C=l.value)!=null&&C.activeElement&&!((R=v(a.button))!=null&&R.contains(l.value.activeElement)))return;S.preventDefault(),S.stopPropagation(),a.closePopover();break}}function b(S){c.value||S.key===F.Space&&S.preventDefault()}function d(S){var T,y;e.disabled||(c.value?(a.closePopover(),(T=v(a.button))==null||T.focus()):(S.preventDefault(),S.stopPropagation(),a.popoverState.value===1&&s?.(a.buttonId.value),a.togglePopover(),(y=v(a.button))==null||y.focus()))}function p(S){S.preventDefault(),S.stopPropagation()}let w=st();function P(){let S=v(a.panel);if(!S)return;function T(){W(w.value,{[z.Forwards]:()=>J(S,B.First),[z.Backwards]:()=>J(S,B.Last)})===ve.Error&&J(ue().filter(y=>y.dataset.headlessuiFocusGuard!=="true"),W(w.value,{[z.Forwards]:B.Next,[z.Backwards]:B.Previous}),{relativeTo:v(a.button)})}T()}return()=>{let S=a.popoverState.value===0,T={open:S},{id:y,...k}=e,C=c.value?{ref:u,type:m.value,onKeydown:f,onClick:d}:{ref:u,id:y,type:m.value,"aria-expanded":a.popoverState.value===0,"aria-controls":v(a.panel)?a.panelId.value:void 0,disabled:e.disabled?!0:void 0,onKeydown:f,onKeyup:b,onClick:d,onMousedown:p};return V(j,[ne({ourProps:C,theirProps:{...n,...k},slot:T,attrs:n,slots:r,name:"PopoverButton"}),S&&!c.value&&a.isPortalled.value&&V(me,{id:h,features:se.Focusable,"data-headlessui-focus-guard":!0,as:"button",type:"button",onFocus:P})])}}}),qn=D({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-${ee()}`}},inheritAttrs:!1,setup(e,{attrs:n,slots:r,expose:t}){let{focus:a}=e,l=Te("PopoverPanel"),o=M(()=>re(l.panel)),s=`headlessui-focus-sentinel-before-${ee()}`,i=`headlessui-focus-sentinel-after-${ee()}`;t({el:l.panel,$el:l.panel}),ae(()=>{l.panelId.value=e.id}),Pe(()=>{l.panelId.value=null}),ie(dt,l.panelId),q(()=>{var p,w;if(!a||l.popoverState.value!==0||!l.panel)return;let P=(p=o.value)==null?void 0:p.activeElement;(w=v(l.panel))!=null&&w.contains(P)||J(v(l.panel),B.First)});let c=et(),u=M(()=>c!==null?(c.value&G.Open)===G.Open:l.popoverState.value===0);function h(p){var w,P;switch(p.key){case F.Escape:if(l.popoverState.value!==0||!v(l.panel)||o.value&&!((w=v(l.panel))!=null&&w.contains(o.value.activeElement)))return;p.preventDefault(),p.stopPropagation(),l.closePopover(),(P=v(l.button))==null||P.focus();break}}function m(p){var w,P,S,T,y;let k=p.relatedTarget;k&&v(l.panel)&&((w=v(l.panel))!=null&&w.contains(k)||(l.closePopover(),((S=(P=v(l.beforePanelSentinel))==null?void 0:P.contains)!=null&&S.call(P,k)||(y=(T=v(l.afterPanelSentinel))==null?void 0:T.contains)!=null&&y.call(T,k))&&k.focus({preventScroll:!0})))}let f=st();function b(){let p=v(l.panel);if(!p)return;function w(){W(f.value,{[z.Forwards]:()=>{var P;J(p,B.First)===ve.Error&&((P=v(l.afterPanelSentinel))==null||P.focus())},[z.Backwards]:()=>{var P;(P=v(l.button))==null||P.focus({preventScroll:!0})}})}w()}function d(){let p=v(l.panel);if(!p)return;function w(){W(f.value,{[z.Forwards]:()=>{let P=v(l.button),S=v(l.panel);if(!P)return;let T=ue(),y=T.indexOf(P),k=T.slice(0,y+1),C=[...T.slice(y+1),...k];for(let R of C.slice())if(R.dataset.headlessuiFocusGuard==="true"||S!=null&&S.contains(R)){let ce=C.indexOf(R);ce!==-1&&C.splice(ce,1)}J(C,B.First,{sorted:!1})},[z.Backwards]:()=>{var P;J(p,B.Previous)===ve.Error&&((P=v(l.button))==null||P.focus())}})}w()}return()=>{let p={open:l.popoverState.value===0,close:l.close},{id:w,focus:P,...S}=e,T={ref:l.panel,id:w,onKeydown:h,onFocusout:a&&l.popoverState.value===0?m:void 0,tabIndex:-1};return ne({ourProps:T,theirProps:{...n,...S},attrs:n,slot:p,slots:{...r,default:(...y)=>{var k;return[V(j,[u.value&&l.isPortalled.value&&V(me,{id:s,ref:l.beforePanelSentinel,features:se.Focusable,"data-headlessui-focus-guard":!0,as:"button",type:"button",onFocus:b}),(k=r.default)==null?void 0:k.call(r,...y),u.value&&l.isPortalled.value&&V(me,{id:i,ref:l.afterPanelSentinel,features:se.Focusable,"data-headlessui-focus-guard":!0,as:"button",type:"button",onFocus:d})])]}},features:oe.RenderStrategy|oe.Static,visible:u.value,name:"PopoverPanel"})}}});const Qn=e=>{const n=M(()=>{const i=e.categoryTree.pictures?.[0];if(i&&!i.alt)return{alt:e.categoryTree.name,...i}}),r=M(()=>e.categoryTree.subcategories.filter(({subcategories:i})=>i.length)),t=M(()=>{let i=r.value.length;return n.value&&(i+=1),r.value.length<e.categoryTree.subcategories.length&&(i+=1),i}),a=M(()=>(e.megaMenuMaxCols||7)>=t.value),l=M(()=>a.value?e.categoryTree.subcategories.filter(({subcategories:i})=>!i.length):e.categoryTree.subcategories),o=M(()=>a.value?e.categoryTree.subcategories.filter(({subcategories:i})=>i.length):e.categoryTree.subcategories),s=M(()=>a.value?t.value:n.value?2:1);return{categoryPicture:n,isMegaMenu:a,subcategoryLinks:l,subcategoryCols:o,countMenuCols:s}},Zn=D({__name:"ShopHeaderSubmenu",props:{categoryTree:{},megaMenuMaxCols:{}},setup(e,{expose:n}){n();const r=e,{categoryPicture:t,subcategoryLinks:a,subcategoryCols:l,countMenuCols:o}=Qn(r),s=x(null),i=x(null);yt(s,()=>i.value?.click());const c={props:r,categoryPicture:t,subcategoryLinks:a,subcategoryCols:l,countMenuCols:o,panel:s,close:i,get Popover(){return ft},get PopoverButton(){return Gn},get PopoverPanel(){return qn}};return Object.defineProperty(c,"__isScriptSetup",{enumerable:!1,value:!0}),c}}),Jn=["href"],ea={class:"relative",ref:"panel"},ta={class:"flex w-full gap-6"},na={key:0,class:"flex-1"},aa=["href"],ra=["href"],la={class:"text-base-600 mb-1.5 mt-1 text-sm"},oa=["href"],sa=["href"],ia=["onClick"];function ua(e,n,r,t,a,l){const o=U("AImg"),s=U("Fade");return _(),A(t.Popover,null,{default:I(({open:i})=>[g("a",{href:`/${r.categoryTree.slug}`,role:"button"},[E(t.PopoverButton,{class:"outline-none"},{default:I(()=>[te(e.$slots,"button",Ye(Xe({open:i})))]),_:2},1024)],8,Jn),g("div",ea,[E(s,null,{default:I(()=>[E(t.PopoverPanel,{class:N(["text-base-700 absolute left-1/2 top-3 z-50 -translate-x-1/2 !transform rounded bg-white px-6 py-4 text-base shadow",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:I(({close:c})=>[g("div",ta,[t.subcategoryLinks.length?(_(),O("ul",na,[(_(!0),O(j,null,X(t.subcategoryLinks,(u,h)=>(_(),O("li",{key:`link-${h}`,class:N(t.subcategoryLinks.length>10?"text-sm mb-1":"mb-2")},[g("a",{href:`/${u.slug}`,class:"hover:text-primary"},[g("h3",null,L(u.name),1)],8,aa)],2))),128))])):$("",!0),(_(!0),O(j,null,X(t.subcategoryCols,(u,h)=>(_(),O("div",{key:h,class:"flex-1"},[g("a",{href:`/${u.slug}`,class:"hover:text-primary"},[g("h3",null,L(u.name),1)],8,ra),g("ul",la,[(_(!0),O(j,null,X(u.subcategories,(m,f)=>(_(),O("li",{key:`${h}-${f}`,class:"mb-0.5"},[g("a",{href:`/${m.slug}`,class:"hover:text-primary hover:underline"},[g("h3",null,L(m.name),1)],8,oa)]))),128))])]))),128)),t.categoryPicture?(_(),O("div",{key:1,class:N(t.countMenuCols===2?"basis-1/2":t.countMenuCols<5?"basis-2/5":"basis-1/3")},[E(o,{picture:t.categoryPicture,class:"ml-auto rounded"},null,8,["picture"])],2)):$("",!0)]),g("a",{href:`/${r.categoryTree.slug}`,class:"text-base-600 mt-1 block text-xs leading-snug underline"},L("Ver toda a categoria $1".replace("$1",r.categoryTree.name)),9,sa),g("button",{ref:"close",onClick:ge(c,["stop"]),class:"hidden"},null,8,ia)]),_:1},8,["class"])]),_:1})],512)]),_:3})}const ca=K(Zn,[["render",ua]]),da=D({__name:"ShopHeaderMenu",props:{inlineMenuTrees:{}},setup(e,{expose:n}){n();const r=e,t=M(()=>!!r.inlineMenuTrees.find(({subcategories:l})=>!l.length)),a={props:r,hasOneLevelSubcategories:t,ShopHeaderSubmenu:ca};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}}),fa={class:"hover:text-primary group"},pa=["href"],va={class:"inline"};function ma(e,n,r,t,a,l){return _(),O("nav",null,[g("ul",{class:N(["text-base-700 flex gap-4 xl:gap-5",r.inlineMenuTrees.length<7?"text-base":"text-sm"])},[(_(!0),O(j,null,X(r.inlineMenuTrees,(o,s)=>(_(),O("li",{key:s},[o.subcategories.length?(_(),A(t.ShopHeaderSubmenu,{key:0,"category-tree":o},{button:I(({open:i})=>[g("span",fa,[g("h3",{class:N(["inline group-hover:underline",[r.inlineMenuTrees.length<7?"decoration-2":null,i?"underline":null]])},L(o.name),3),t.hasOneLevelSubcategories?(_(),O("i",{key:0,class:N(["i-chevron-down text-base-400 group-hover:text-primary-subtle ml-1 transition-transform",i?"rotate-180":null])},null,2)):$("",!0)])]),_:2},1032,["category-tree"])):(_(),O("a",{key:1,href:`/${o.slug}`,class:N(["hover:text-primary hover:underline",r.inlineMenuTrees.length<7?"decoration-2":null])},[g("h3",va,L(o.name),1)],10,pa))]))),128))],2)])}const ga=K(da,[["render",ma]]),ha=D({__name:"AccountMenu",setup(e,{expose:n}){n();const r={get Menu(){return Vn},get MenuButton(){return Un},get MenuItems(){return Wn},get MenuItem(){return Kn},get socialNetworks(){return ke},get customerName(){return Be},get initializeFirebaseAuth(){return je},get isLogged(){return Ve},get logout(){return Ue},AccountLink:Ge,SocialNetworkLink:qe};return Object.defineProperty(r,"__isScriptSetup",{enumerable:!1,value:!0}),r}}),ba={key:0},ya={class:"text-base-600 p-3"},_a={class:"list-none"},xa=g("i",{class:"i-heart mr-1"},null,-1),wa={class:"text-base-500 flex justify-center gap-2 p-2 text-base"},Sa=g("span",{class:"text-base-600"},L("Sair"),-1),ka=g("i",{class:"i-arrow-right-on-rectangle ml-1 text-lg"},null,-1),Pa=[Sa,ka];function Ta(e,n,r,t,a,l){const o=U("ALink"),s=U("Fade");return _(),A(t.Menu,{as:"div",class:"text-base-800 relative text-center text-sm"},{default:I(({open:i})=>[i?(_(),O("div",ba,[n[0]||(Ee(-1),n[0]=g("span",null,[Q(L(t.initializeFirebaseAuth()),1)]),Ee(1),n[0])])):$("",!0),E(t.AccountLink,{role:"button",onClick:n[1]||(n[1]=ge(()=>{},["prevent"]))},{default:I(()=>[E(t.MenuButton,{class:"outline-none","aria-label":"Minha conta"},{default:I(()=>[te(e.$slots,"button",Ye(Xe({open:i})))]),_:2},1024)]),_:2},1024),E(s,null,{default:I(()=>[E(t.MenuItems,{class:"divide-base-100 absolute -right-8 mt-2 w-56 divide-y rounded bg-white shadow ring-1 ring-black/5 focus:outline-none"},{default:I(()=>[g("div",ya,[Q(L(`Olá ${t.customerName||"Visitante"}`)+" ",1),E(t.AccountLink,{role:"button",class:"ui-btn-sm ui-btn-primary my-1 block"},{default:I(()=>[Q(L("Acessar minha conta"))]),_:1}),t.isLogged?$("",!0):(_(),A(t.AccountLink,{key:0,"is-sign-up":"",class:"ui-link block"},{default:I(()=>[Q(L("Criar uma conta"))]),_:1}))]),g("ul",_a,[E(t.MenuItem,{as:"li"},{default:I(({active:c})=>[E(t.AccountLink,{to:"orders",class:N(["block p-2",c?"bg-base-100 text-primary":null])},{default:I(()=>[Q(L("Meus pedidos"))]),_:2},1032,["class"])]),_:1}),E(t.MenuItem,{as:"li"},{default:I(({active:c})=>[E(t.AccountLink,{to:"favorites",class:N(["block p-2",c?"bg-base-100 text-primary":null])},{default:I(()=>[xa,Q(" "+L("Meus favoritos"))]),_:2},1032,["class"])]),_:1}),(_(!0),O(j,null,X(e.$settings.serviceLinks,({title:c,href:u},h)=>(_(),A(t.MenuItem,{as:"li",key:`s-${h}`},{default:I(({active:m})=>[E(o,{href:u,class:N(["block p-2",m?"bg-base-100 text-primary":null])},{default:I(()=>[Q(L(c),1)]),_:2},1032,["href","class"])]),_:2},1024))),128)),E(t.MenuItem,{as:"li"},{default:I(()=>[g("div",wa,[(_(!0),O(j,null,X(t.socialNetworks,(c,u)=>(_(),O("span",{key:u},[E(t.SocialNetworkLink,{network:u,class:"hover:text-primary p-1"},null,8,["network"])]))),128))])]),_:1}),t.isLogged?(_(),A(t.MenuItem,{key:0,as:"li"},{default:I(()=>[g("button",{onClick:n[2]||(n[2]=(...c)=>t.logout&&t.logout(...c)),class:"text-base-800 p-2 text-right"},Pa)]),_:1})):$("",!0)])]),_:1})]),_:1})]),_:3})}const Ma=K(ha,[["render",Ta]]),Ia=D({__name:"ShopHeader",props:{categories:{},menuCategorySlugs:{},menuRandomCategories:{},isAlphabeticalSortSubmenu:{type:Boolean}},setup(e,{expose:n}){n();const r=Le(()=>Me(()=>import("./SearchModal.b6aa5ef7.js"),["_astro/SearchModal.b6aa5ef7.js","_astro/customer-session.5ab9ab1a.js","_astro/sf-utils.b04e1813.js","_astro/index.8ac1db99.js","_astro/ecom-utils.5cbfb95e.js","_astro/ProductShelf.3f4f38b5.js","_astro/_plugin-vue_export-helper.f75743ee.js","_astro/index.570b84fe.js","_astro/use-product-card.437911bb.js","_astro/use-analytics.cc95e346.js","_astro/shopping-cart.d9f601dd.js","_astro/price.04ceb6c4.js","_astro/afetch.f4507208.js","_astro/name.01410784.js","_astro/i18n.29216eeb.js","_astro/img.4f23a3dd.js","_astro/Prices.0e829c31.js","_astro/modules-info.55780599.js","_astro/format-money.9cf6b04d.js"])),t=Le(()=>Me(()=>import("./CartSidebar.430b55df.js"),["_astro/CartSidebar.430b55df.js","_astro/_plugin-vue_export-helper.f75743ee.js","_astro/ecom-utils.5cbfb95e.js","_astro/modules-info.55780599.js","_astro/afetch.f4507208.js","_astro/sf-utils.b04e1813.js","_astro/format-money.9cf6b04d.js","_astro/price.04ceb6c4.js","_astro/shopping-cart.d9f601dd.js","_astro/customer-session.5ab9ab1a.js","_astro/index.8ac1db99.js","_astro/QuantitySelector.ebf60845.js","_astro/Prices.0e829c31.js","_astro/name.01410784.js","_astro/i18n.29216eeb.js","_astro/img.4f23a3dd.js"])),a=e,l=x(null),{isSticky:o,positionY:s,categoryTrees:i,inlineMenuTrees:c}=Et({...a,header:l}),u=x(!1),h=x(!1),m=x(!1);Ie(h,()=>{m.value=!0});const f=x(""),b=x(null),d=y=>{h.value=!h.value,h.value?(y.preventDefault(),Y(()=>b.value?.focus())):f.value||y.preventDefault()},p=x(!1),w=x(!1);Ie(p,()=>{w.value=!0});const P=x(!1),S=x(0);ae(()=>{P.value=!0,Z(ht,(y,k)=>{typeof k=="number"&&(k<y?p.value=!0:k&&!y&&(p.value=!1)),S.value=y},{immediate:!0})});const T={SearchModal:r,CartSidebar:t,props:a,header:l,isSticky:o,positionY:s,categoryTrees:i,inlineMenuTrees:c,isSidenavOpen:u,isSearchOpen:h,isSearchOpenOnce:m,searchTerm:f,searchInput:b,toggleSearch:d,isCartOpen:p,isCartOpenOnce:w,isMounted:P,delayedTotalItems:S,Drawer:Rt,ShopSidenav:mn,ShopHeaderMenu:ga,AccountMenu:Ma};return Object.defineProperty(T,"__isScriptSetup",{enumerable:!1,value:!0}),T}}),Oa={class:"mx-auto flex w-screen grid-flow-col grid-cols-3 items-center justify-between px-1 sm:pl-2 sm:pr-2.5 md:grid lg:w-[calc(100vw-1rem)] lg:auto-cols-max lg:grid-cols-none lg:px-1 xl:max-w-[82rem] 2xl:max-w-[85rem]"},Ea={class:"basis-1/4 lg:hidden"},Ca={class:"text-base-800 flex basis-1/4 items-center justify-end gap-3 px-2 lg:gap-4"},Fa={action:"/s",method:"get",class:"relative"},La=g("label",{for:"HeaderSearch",class:"sr-only"},L("Buscar produtos"),-1),Na={class:"absolute -right-0.5 -top-2 flex items-stretch"},Aa=g("div",{class:"hidden w-12 bg-gradient-to-r from-transparent to-white sm:block"},null,-1),Da=["placeholder"],$a=["href"],Ra=g("i",{class:"i-shopping-bag group-hover:text-primary h-7 w-7 group-hover:scale-110 group-active:scale-125"},null,-1),Ha={key:0,class:"ui-badge-pill-sm absolute -right-1.5 -top-1"},ja={class:"container mx-auto"},Ba={class:"h-full bg-white"};function Va(e,n,r,t,a,l){const o=U("Fade"),s=U("Skeleton");return _(),O("header",{ref:"header",class:N(["relative top-0 z-50 transition-colors",[t.isSticky&&!t.isSidenavOpen?"bg-white/80":"bg-white",t.isSticky?"py-2 shadow backdrop-blur-md md:py-3":"py-3 sm:py-4 md:py-5"]])},[g("div",Oa,[g("div",Ea,[g("button",{class:"my-1 px-2","aria-label":"Abrir/fechar menu",onClick:n[0]||(n[0]=i=>t.isSidenavOpen=!t.isSidenavOpen)},[g("i",{class:N(["text-3xl transition-colors",[t.isSidenavOpen?"i-close":"i-bars-3-bottom-left",t.isMounted?"text-base-500":"text-base-400 animate-pulse"]])},null,2)])]),te(e.$slots,"logo"),E(t.ShopHeaderMenu,Ce({class:"hidden lg:block"},{inlineMenuTrees:t.inlineMenuTrees}),null,16),g("div",Ca,[g("form",Fa,[La,E(o,null,{default:I(()=>[we(g("div",Na,[Aa,we(g("input",{ref:"searchInput",type:"search",id:"HeaderSearch",name:"term","onUpdate:modelValue":n[1]||(n[1]=i=>t.searchTerm=i),class:"to-primary-50 border-primary/20 border-1 w-72 max-w-md bg-gradient-to-r from-white py-3 pl-5 pr-12 text-base ring-0 md:w-screen",placeholder:"Buscar produtos ..."},null,8,Da),[[gt,t.searchTerm,void 0,{trim:!0}]])],512),[[We,t.isSearchOpen]])]),_:1}),g("button",{type:"submit","aria-label":"Buscar produtos",onClick:t.toggleSearch},[g("i",{class:N(["i-magnifying-glass hover:text-primary h-7 w-7 hover:scale-110 active:scale-125",t.isSearchOpen&&"text-primary-600 -translate-x-2"])},null,2)])]),E(t.AccountMenu,{class:"hidden sm:block"},{button:I(({open:i})=>[g("i",{class:N(["i-user-circle hover:text-primary h-7 w-7 hover:scale-110 active:scale-125",i?"text-black scale-110":null])},null,2)]),_:1}),g("a",{href:e.$settings.cartUrl||"/app/","aria-label":"Abrir carrinho",onClick:n[2]||(n[2]=ge(i=>t.isCartOpen=!t.isCartOpen,["prevent"])),class:"group relative",role:"button"},[Ra,t.delayedTotalItems?(_(),O("span",Ha,L(t.delayedTotalItems),1)):$("",!0)],8,$a)])]),E(t.Drawer,{modelValue:t.isSidenavOpen,"onUpdate:modelValue":n[3]||(n[3]=i=>t.isSidenavOpen=i),"has-close-button":!1,position:"absolute",class:N(t.isSticky?"mt-2 md:mt-3":"mt-3 sm:mt-4 md:mt-5"),style:Ke({height:`calc(100vh - ${t.positionY}px + .5rem)`,maxHeight:`calc(100dvh - ${t.positionY}px + .5rem)`})},{default:I(()=>[E(t.ShopSidenav,Ce({class:"pt-6"},{categoryTrees:t.categoryTrees}),null,16)]),_:1},8,["modelValue","class","style"]),E(t.Drawer,{modelValue:t.isSearchOpen,"onUpdate:modelValue":n[4]||(n[4]=i=>t.isSearchOpen=i),"is-hidden":!t.searchTerm||t.searchTerm.length<2,"has-close-button":!1,"anchor-el":t.searchInput?.parentElement,placement:"top",animation:"scale","max-width":"55rem",class:"bg-white lg:mt-24 lg:bg-transparent"},{default:I(()=>[(_(),A(Fe,null,{fallback:I(()=>[g("div",ja,[E(s,{class:"p-6","is-large":"","is-bold":""})])]),default:I(()=>[t.isSearchOpenOnce?(_(),A(t.SearchModal,{key:0,term:t.searchTerm},null,8,["term"])):$("",!0)]),_:1}))]),_:1},8,["modelValue","is-hidden","anchor-el"]),t.isMounted?(_(),A(ze,{key:0,to:"#teleported-overlap"},[E(t.Drawer,{modelValue:t.isCartOpen,"onUpdate:modelValue":n[6]||(n[6]=i=>t.isCartOpen=i),placement:"end","backdrop-target":"#teleported-overlap",class:"shadow"},{default:I(()=>[(_(),A(Fe,null,{fallback:I(()=>[g("div",Ba,[E(s,{class:"px-6 pt-16","is-bold":""})])]),default:I(()=>[t.isCartOpenOnce?(_(),A(t.CartSidebar,{key:0,onClose:n[5]||(n[5]=i=>t.isCartOpen=!1)})):$("",!0)]),_:1}))]),_:1},8,["modelValue"])])):$("",!0)],2)}const Qa=K(Ia,[["render",Va]]);export{Qa as default};
@@ -1 +0,0 @@
1
- import{i as ct,h as M,l as G,j as Et,k as At,m as Tt,B as Nt,p as B,q as _t,t as Lt,v as w,x as yt,y as wt,z as Mt,A as Dt,C as ft,E as It,F as Pt,G as Ot,H as lt,I as $t}from"./ecom-utils.5cbfb95e.js";const xt="http://www.w3.org/2000/svg",S=typeof document<"u"?document:null,X=S&&S.createElement("template"),Bt={insert:(t,e,n)=>{e.insertBefore(t,n||null)},remove:t=>{const e=t.parentNode;e&&e.removeChild(t)},createElement:(t,e,n,o)=>{const s=e?S.createElementNS(xt,t):S.createElement(t,n?{is:n}:void 0);return t==="select"&&o&&o.multiple!=null&&s.setAttribute("multiple",o.multiple),s},createText:t=>S.createTextNode(t),createComment:t=>S.createComment(t),setText:(t,e)=>{t.nodeValue=e},setElementText:(t,e)=>{t.textContent=e},parentNode:t=>t.parentNode,nextSibling:t=>t.nextSibling,querySelector:t=>S.querySelector(t),setScopeId(t,e){t.setAttribute(e,"")},insertStaticContent(t,e,n,o,s,r){const c=n?n.previousSibling:e.lastChild;if(s&&(s===r||s.nextSibling))for(;e.insertBefore(s.cloneNode(!0),n),!(s===r||!(s=s.nextSibling)););else{X.innerHTML=o?`<svg>${t}</svg>`:t;const a=X.content;if(o){const f=a.firstChild;for(;f.firstChild;)a.appendChild(f.firstChild);a.removeChild(f)}e.insertBefore(a,n)}return[c?c.nextSibling:e.firstChild,n?n.previousSibling:e.lastChild]}},g="transition",N="animation",y=Symbol("_vtc"),ut=(t,{slots:e})=>Tt(Nt,Rt(t),e);ut.displayName="Transition";const pt={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};ut.props=B({},_t,pt);const b=(t,e=[])=>{w(t)?t.forEach(n=>n(...e)):t&&t(...e)},J=t=>t?w(t)?t.some(e=>e.length>1):t.length>1:!1;function Rt(t){const e={};for(const i in t)i in pt||(e[i]=t[i]);if(t.css===!1)return e;const{name:n="v",type:o,duration:s,enterFromClass:r=`${n}-enter-from`,enterActiveClass:c=`${n}-enter-active`,enterToClass:a=`${n}-enter-to`,appearFromClass:f=r,appearActiveClass:l=c,appearToClass:u=a,leaveFromClass:m=`${n}-leave-from`,leaveActiveClass:d=`${n}-leave-active`,leaveToClass:E=`${n}-leave-to`}=t,A=Ht(s),gt=A&&A[0],vt=A&&A[1],{onBeforeEnter:H,onEnter:F,onEnterCancelled:K,onLeave:z,onLeaveCancelled:ht,onBeforeAppear:bt=H,onAppear:Ct=F,onAppearCancelled:St=K}=e,D=(i,p,h)=>{C(i,p?u:a),C(i,p?l:c),h&&h()},q=(i,p)=>{i._isLeaving=!1,C(i,m),C(i,E),C(i,d),p&&p()},j=i=>(p,h)=>{const U=i?Ct:F,W=()=>D(p,i,h);b(U,[p,W]),Q(()=>{C(p,i?f:r),v(p,i?u:a),J(U)||V(p,o,gt,W)})};return B(e,{onBeforeEnter(i){b(H,[i]),v(i,r),v(i,c)},onBeforeAppear(i){b(bt,[i]),v(i,f),v(i,l)},onEnter:j(!1),onAppear:j(!0),onLeave(i,p){i._isLeaving=!0;const h=()=>q(i,p);v(i,m),zt(),v(i,d),Q(()=>{i._isLeaving&&(C(i,m),v(i,E),J(z)||V(i,o,vt,h))}),b(z,[i,h])},onEnterCancelled(i){D(i,!1),b(K,[i])},onAppearCancelled(i){D(i,!0),b(St,[i])},onLeaveCancelled(i){q(i),b(ht,[i])}})}function Ht(t){if(t==null)return null;if(Lt(t))return[I(t.enter),I(t.leave)];{const e=I(t);return[e,e]}}function I(t){return wt(t)}function v(t,e){e.split(/\s+/).forEach(n=>n&&t.classList.add(n)),(t[y]||(t[y]=new Set)).add(e)}function C(t,e){e.split(/\s+/).forEach(o=>o&&t.classList.remove(o));const n=t[y];n&&(n.delete(e),n.size||(t[y]=void 0))}function Q(t){requestAnimationFrame(()=>{requestAnimationFrame(t)})}let Ft=0;function V(t,e,n,o){const s=t._endId=++Ft,r=()=>{s===t._endId&&o()};if(n)return setTimeout(r,n);const{type:c,timeout:a,propCount:f}=Kt(t,e);if(!c)return o();const l=c+"end";let u=0;const m=()=>{t.removeEventListener(l,d),r()},d=E=>{E.target===t&&++u>=f&&m()};setTimeout(()=>{u<f&&m()},a+1),t.addEventListener(l,d)}function Kt(t,e){const n=window.getComputedStyle(t),o=A=>(n[A]||"").split(", "),s=o(`${g}Delay`),r=o(`${g}Duration`),c=Y(s,r),a=o(`${N}Delay`),f=o(`${N}Duration`),l=Y(a,f);let u=null,m=0,d=0;e===g?c>0&&(u=g,m=c,d=r.length):e===N?l>0&&(u=N,m=l,d=f.length):(m=Math.max(c,l),u=m>0?c>l?g:N:null,d=u?u===g?r.length:f.length:0);const E=u===g&&/\b(transform|all)(,|$)/.test(o(`${g}Property`).toString());return{type:u,timeout:m,propCount:d,hasTransform:E}}function Y(t,e){for(;t.length<e.length;)t=t.concat(t);return Math.max(...e.map((n,o)=>Z(n)+Z(t[o])))}function Z(t){return t==="auto"?0:Number(t.slice(0,-1).replace(",","."))*1e3}function zt(){return document.body.offsetHeight}function qt(t,e,n){const o=t[y];o&&(e=(e?[e,...o]:[...o]).join(" ")),e==null?t.removeAttribute("class"):n?t.setAttribute("class",e):t.className=e}const R=Symbol("_vod"),ce={beforeMount(t,{value:e},{transition:n}){t[R]=t.style.display==="none"?"":t.style.display,n&&e?n.beforeEnter(t):_(t,e)},mounted(t,{value:e},{transition:n}){n&&e&&n.enter(t)},updated(t,{value:e,oldValue:n},{transition:o}){!e!=!n&&(o?e?(o.beforeEnter(t),_(t,!0),o.enter(t)):o.leave(t,()=>{_(t,!1)}):_(t,e))},beforeUnmount(t,{value:e}){_(t,e)}};function _(t,e){t.style.display=e?t[R]:"none"}function jt(t,e,n){const o=t.style,s=M(n);if(n&&!s){if(e&&!M(e))for(const r in e)n[r]==null&&x(o,r,"");for(const r in n)x(o,r,n[r])}else{const r=o.display;s?e!==n&&(o.cssText=n):e&&t.removeAttribute("style"),R in t&&(o.display=r)}}const k=/\s*!important$/;function x(t,e,n){if(w(n))n.forEach(o=>x(t,e,o));else if(n==null&&(n=""),e.startsWith("--"))t.setProperty(e,n);else{const o=Ut(t,e);k.test(n)?t.setProperty(ft(o),n.replace(k,""),"important"):t[o]=n}}const tt=["Webkit","Moz","ms"],P={};function Ut(t,e){const n=P[e];if(n)return n;let o=It(e);if(o!=="filter"&&o in t)return P[e]=o;o=Pt(o);for(let s=0;s<tt.length;s++){const r=tt[s]+o;if(r in t)return P[e]=r}return e}const et="http://www.w3.org/1999/xlink";function Wt(t,e,n,o,s){if(o&&e.startsWith("xlink:"))n==null?t.removeAttributeNS(et,e.slice(6,e.length)):t.setAttributeNS(et,e,n);else{const r=Ot(e);n==null||r&&!lt(n)?t.removeAttribute(e):t.setAttribute(e,r?"":n)}}function Gt(t,e,n,o,s,r,c){if(e==="innerHTML"||e==="textContent"){o&&c(o,s,r),t[e]=n??"";return}const a=t.tagName;if(e==="value"&&a!=="PROGRESS"&&!a.includes("-")){t._value=n;const l=a==="OPTION"?t.getAttribute("value"):t.value,u=n??"";l!==u&&(t.value=u),n==null&&t.removeAttribute(e);return}let f=!1;if(n===""||n==null){const l=typeof t[e];l==="boolean"?n=lt(n):n==null&&l==="string"?(n="",f=!0):l==="number"&&(n=0,f=!0)}try{t[e]=n}catch{}f&&t.removeAttribute(e)}function T(t,e,n,o){t.addEventListener(e,n,o)}function Xt(t,e,n,o){t.removeEventListener(e,n,o)}const nt=Symbol("_vei");function Jt(t,e,n,o,s=null){const r=t[nt]||(t[nt]={}),c=r[e];if(o&&c)c.value=o;else{const[a,f]=Qt(e);if(o){const l=r[e]=Zt(o,s);T(t,a,l,f)}else c&&(Xt(t,a,c,f),r[e]=void 0)}}const ot=/(?:Once|Passive|Capture)$/;function Qt(t){let e;if(ot.test(t)){e={};let o;for(;o=t.match(ot);)t=t.slice(0,t.length-o[0].length),e[o[0].toLowerCase()]=!0}return[t[2]===":"?t.slice(3):ft(t.slice(2)),e]}let O=0;const Vt=Promise.resolve(),Yt=()=>O||(Vt.then(()=>O=0),O=Date.now());function Zt(t,e){const n=o=>{if(!o._vts)o._vts=Date.now();else if(o._vts<=n.attached)return;$t(kt(o,n.value),e,5,[o])};return n.value=t,n.attached=Yt(),n}function kt(t,e){if(w(e)){const n=t.stopImmediatePropagation;return t.stopImmediatePropagation=()=>{n.call(t),t._stopped=!0},e.map(o=>s=>!s._stopped&&o&&o(s))}else return e}const st=/^on[a-z]/,te=(t,e,n,o,s=!1,r,c,a,f)=>{e==="class"?qt(t,o,s):e==="style"?jt(t,n,o):Mt(e)?Dt(e)||Jt(t,e,n,o,c):(e[0]==="."?(e=e.slice(1),!0):e[0]==="^"?(e=e.slice(1),!1):ee(t,e,o,s))?Gt(t,e,o,r,c,a,f):(e==="true-value"?t._trueValue=o:e==="false-value"&&(t._falseValue=o),Wt(t,e,o,s))};function ee(t,e,n,o){return o?!!(e==="innerHTML"||e==="textContent"||e in t&&st.test(e)&&ct(n)):e==="spellcheck"||e==="draggable"||e==="translate"||e==="form"||e==="list"&&t.tagName==="INPUT"||e==="type"&&t.tagName==="TEXTAREA"||st.test(e)&&M(n)?!1:e in t}const rt=t=>{const e=t.props["onUpdate:modelValue"]||!1;return w(e)?n=>yt(e,n):e};function ne(t){t.target.composing=!0}function it(t){const e=t.target;e.composing&&(e.composing=!1,e.dispatchEvent(new Event("input")))}const $=Symbol("_assign"),fe={created(t,{modifiers:{lazy:e,trim:n,number:o}},s){t[$]=rt(s);const r=o||s.props&&s.props.type==="number";T(t,e?"change":"input",c=>{if(c.target.composing)return;let a=t.value;n&&(a=a.trim()),r&&(a=G(a)),t[$](a)}),n&&T(t,"change",()=>{t.value=t.value.trim()}),e||(T(t,"compositionstart",ne),T(t,"compositionend",it),T(t,"change",it))},mounted(t,{value:e}){t.value=e??""},beforeUpdate(t,{value:e,modifiers:{lazy:n,trim:o,number:s}},r){if(t[$]=rt(r),t.composing)return;const c=s||t.type==="number"?G(t.value):t.value,a=e??"";c!==a&&(document.activeElement===t&&t.type!=="range"&&(n||o&&t.value.trim()===a)||(t.value=a))}},oe=["ctrl","shift","alt","meta"],se={stop:t=>t.stopPropagation(),prevent:t=>t.preventDefault(),self:t=>t.target!==t.currentTarget,ctrl:t=>!t.ctrlKey,shift:t=>!t.shiftKey,alt:t=>!t.altKey,meta:t=>!t.metaKey,left:t=>"button"in t&&t.button!==0,middle:t=>"button"in t&&t.button!==1,right:t=>"button"in t&&t.button!==2,exact:(t,e)=>oe.some(n=>t[`${n}Key`]&&!e.includes(n))},le=(t,e)=>(n,...o)=>{for(let s=0;s<e.length;s++){const r=se[e[s]];if(r&&r(n,e))return}return t(n,...o)},mt=B({patchProp:te},Bt);let L,at=!1;function re(){return L||(L=Et(mt))}function ie(){return L=at?L:At(mt),at=!0,L}const ue=(...t)=>{const e=re().createApp(...t),{mount:n}=e;return e.mount=o=>{const s=dt(o);if(!s)return;const r=e._component;!ct(r)&&!r.render&&!r.template&&(r.template=s.innerHTML),s.innerHTML="";const c=n(s,!1,s instanceof SVGElement);return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),c},e},pe=(...t)=>{const e=ie().createApp(...t),{mount:n}=e;return e.mount=o=>{const s=dt(o);if(s)return n(s,!0,s instanceof SVGElement)},e};function dt(t){return M(t)?document.querySelector(t):t}const me=(t,e)=>{const n=t.__vccOpts||t;for(const[o,s]of e)n[o]=s;return n};export{ut as T,me as _,fe as a,ue as b,pe as c,ce as v,le as w};