cloudcommerce 0.6.13 → 0.7.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.
- package/CHANGELOG.md +21 -0
- package/action.yml +2 -2
- package/ecomplus-stores/monocard/functions/core/package.json +1 -1
- package/ecomplus-stores/monocard/functions/events/package.json +2 -2
- package/ecomplus-stores/monocard/functions/modules/package.json +2 -2
- package/ecomplus-stores/monocard/functions/passport/package.json +2 -2
- package/ecomplus-stores/monocard/functions/ssr/content/settings.json +2 -2
- package/ecomplus-stores/monocard/functions/ssr/package.json +6 -6
- package/ecomplus-stores/monocard/functions/ssr/public/img/uploads/card-phone.png +0 -0
- package/ecomplus-stores/monocard/functions/ssr/public/img/uploads/qrcode-camera.png +0 -0
- package/ecomplus-stores/monocard/functions/ssr/src/components/CasesGrid.astro +1 -1
- package/ecomplus-stores/monocard/functions/ssr/src/components/FeatureTabs.astro +23 -0
- package/ecomplus-stores/monocard/functions/ssr/src/components/FeatureTabs.vue +225 -0
- package/ecomplus-stores/monocard/functions/ssr/src/components/ShopHeaderMenu.vue +2 -2
- package/ecomplus-stores/monocard/functions/ssr/src/layouts/Base.astro +1 -0
- package/ecomplus-stores/monocard/functions/ssr/src/layouts/Pages.astro +0 -1
- package/ecomplus-stores/monocard/functions/ssr/src/main/Home.astro +3 -3
- package/ecomplus-stores/monocard/package.json +1 -1
- package/ecomplus-stores/tia-sonia/functions/ssr/src/layouts/PagesHeader.astro +0 -11
- package/package.json +6 -6
- package/packages/api/package.json +1 -1
- package/packages/apps/correios/package.json +1 -1
- package/packages/apps/custom-payment/package.json +1 -1
- package/packages/apps/custom-shipping/package.json +1 -1
- package/packages/apps/datafrete/package.json +1 -1
- package/packages/apps/discounts/package.json +1 -1
- package/packages/apps/emails/package.json +1 -1
- package/packages/apps/fb-conversions/package.json +1 -1
- package/packages/apps/frenet/package.json +1 -1
- package/packages/apps/galaxpay/package.json +1 -1
- package/packages/apps/google-analytics/package.json +1 -1
- package/packages/apps/infinitepay/package.json +1 -1
- package/packages/apps/jadlog/package.json +1 -1
- package/packages/apps/loyalty-points/package.json +1 -1
- package/packages/apps/melhor-envio/package.json +1 -1
- package/packages/apps/mercadopago/package.json +1 -1
- package/packages/apps/pagarme/package.json +2 -2
- package/packages/apps/paghiper/package.json +1 -1
- package/packages/apps/pix/package.json +1 -1
- package/packages/apps/tiny-erp/lib/integration/after-tiny-queue.js +2 -2
- package/packages/apps/tiny-erp/lib/integration/after-tiny-queue.js.map +1 -1
- package/packages/apps/tiny-erp/lib/integration/import-order-from-tiny.js +4 -3
- package/packages/apps/tiny-erp/lib/integration/import-order-from-tiny.js.map +1 -1
- package/packages/apps/tiny-erp/lib/integration/import-product-from-tiny.js +19 -19
- package/packages/apps/tiny-erp/lib/integration/import-product-from-tiny.js.map +1 -1
- package/packages/apps/tiny-erp/lib/integration/parsers/order-to-tiny.js +5 -3
- package/packages/apps/tiny-erp/lib/integration/parsers/order-to-tiny.js.map +1 -1
- package/packages/apps/tiny-erp/lib/integration/parsers/product-from-tiny.js +11 -11
- package/packages/apps/tiny-erp/lib/integration/parsers/product-from-tiny.js.map +1 -1
- package/packages/apps/tiny-erp/lib/integration/parsers/product-to-tiny.js +19 -10
- package/packages/apps/tiny-erp/lib/integration/parsers/product-to-tiny.js.map +1 -1
- package/packages/apps/tiny-erp/package.json +1 -1
- package/packages/apps/tiny-erp/src/integration/after-tiny-queue.ts +2 -2
- package/packages/apps/tiny-erp/src/integration/import-order-from-tiny.ts +4 -3
- package/packages/apps/tiny-erp/src/integration/import-product-from-tiny.ts +18 -18
- package/packages/apps/tiny-erp/src/integration/parsers/order-to-tiny.ts +5 -3
- package/packages/apps/tiny-erp/src/integration/parsers/product-from-tiny.ts +11 -11
- package/packages/apps/tiny-erp/src/integration/parsers/product-to-tiny.ts +21 -11
- package/packages/apps/webhooks/package.json +1 -1
- package/packages/cli/config/firebase.json +21 -2
- package/packages/cli/package.json +1 -1
- package/packages/config/package.json +1 -1
- package/packages/emails/package.json +2 -2
- package/packages/events/package.json +1 -1
- package/packages/firebase/package.json +2 -2
- package/packages/i18n/package.json +1 -1
- package/packages/modules/package.json +1 -1
- package/packages/passport/package.json +1 -1
- package/packages/ssr/package.json +5 -5
- package/packages/storefront/.base.eslintrc.cjs +1 -1
- package/packages/storefront/astro.config.mjs +1 -1
- package/packages/storefront/dist/client/_astro/ShopHeader.e93c8274.js +4 -0
- package/packages/storefront/dist/client/_astro/{firebase-app.7ce2ebb1.js → firebase-app.72e91a3e.js} +72 -72
- package/packages/storefront/dist/client/sw.js +1 -1
- package/packages/storefront/dist/server/chunks/{astro.2e59789d.mjs → astro.9781c0a7.mjs} +217 -272
- package/packages/storefront/dist/server/chunks/{image-pool.78b6d784.mjs → image-pool.c24d15b2.mjs} +1202 -1202
- package/packages/storefront/dist/server/chunks/pages/{all.f49a350f.mjs → all.3a2f4354.mjs} +218 -289
- package/packages/storefront/dist/server/entry.mjs +16 -363
- package/packages/storefront/package.json +11 -11
- package/packages/storefront/scripts/build-prod.sh +7 -0
- package/packages/storefront/src/lib/components/Picture.astro +94 -0
- package/packages/storefront/src/lib/layouts/BaseHead.astro +2 -8
- package/packages/storefront/ssr-runtime/Picture.ssr.astro +0 -0
- package/packages/storefront/ssr-runtime/get-image.ts +4 -0
- package/packages/storefront/ssr-runtime/get-picture.ts +126 -0
- package/packages/types/package.json +1 -1
- package/ecomplus-stores/monocard/functions/ssr/src/components/UsageSteps.astro +0 -21
- package/ecomplus-stores/monocard/functions/ssr/src/components/UsageSteps.vue +0 -155
- package/packages/storefront/dist/client/_astro/ShopHeader.301e109b.js +0 -4
- package/packages/storefront/src/lib/ssr/Picture.astro +0 -27
- package/packages/storefront/src/lib/ssr/image.ts +0 -68
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
---
|
|
2
|
+
import type {
|
|
3
|
+
PictureComponentLocalImageProps,
|
|
4
|
+
PictureComponentRemoteImageProps,
|
|
5
|
+
} from '@astrojs/image/components/';
|
|
6
|
+
import { resolve as resolvePath } from 'path';
|
|
7
|
+
import imageSize from 'image-size';
|
|
8
|
+
import { getPicture } from '@astrojs/image';
|
|
9
|
+
|
|
10
|
+
type PictureProps = PictureComponentLocalImageProps | PictureComponentRemoteImageProps;
|
|
11
|
+
|
|
12
|
+
export type Props = Omit<PictureProps, 'aspectRatio'> & {
|
|
13
|
+
aspectRatio?: PictureProps['aspectRatio'],
|
|
14
|
+
fetchpriority?: 'high' | 'low' | 'auto',
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
const tryImageSize = (src: string) => {
|
|
18
|
+
let dimensions: { width?: number, height?: number } = {};
|
|
19
|
+
if (typeof src === 'string' && src.startsWith('/')) {
|
|
20
|
+
const { STOREFRONT_BASE_DIR } = import.meta.env;
|
|
21
|
+
try {
|
|
22
|
+
dimensions = imageSize(resolvePath(STOREFRONT_BASE_DIR, `public${src}`));
|
|
23
|
+
} catch (e) {
|
|
24
|
+
dimensions = {};
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return dimensions;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
const getAspectRatio = (src: string | { width?: number, height?: number }) => {
|
|
31
|
+
if (typeof src === 'string') {
|
|
32
|
+
src = tryImageSize(src);
|
|
33
|
+
}
|
|
34
|
+
if (src.width) {
|
|
35
|
+
return src.height ? src.width / src.height : 1;
|
|
36
|
+
}
|
|
37
|
+
return 0;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
const {
|
|
41
|
+
src,
|
|
42
|
+
alt,
|
|
43
|
+
sizes,
|
|
44
|
+
widths,
|
|
45
|
+
aspectRatio: propAspectRatio,
|
|
46
|
+
fit,
|
|
47
|
+
background,
|
|
48
|
+
position,
|
|
49
|
+
formats = ['avif', 'webp'],
|
|
50
|
+
loading = 'lazy',
|
|
51
|
+
decoding = 'async',
|
|
52
|
+
...attrs
|
|
53
|
+
} = Astro.props;
|
|
54
|
+
|
|
55
|
+
let aspectRatio = propAspectRatio;
|
|
56
|
+
if ((!attrs.width || !attrs.height) && !aspectRatio && typeof src === 'string') {
|
|
57
|
+
const { width, height } = tryImageSize(src);
|
|
58
|
+
if (height) {
|
|
59
|
+
aspectRatio = getAspectRatio({ width, height });
|
|
60
|
+
attrs.width = width;
|
|
61
|
+
attrs.height = height;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
const { image, sources } = await getPicture({
|
|
66
|
+
src,
|
|
67
|
+
widths,
|
|
68
|
+
formats,
|
|
69
|
+
aspectRatio,
|
|
70
|
+
fit,
|
|
71
|
+
background,
|
|
72
|
+
position,
|
|
73
|
+
alt,
|
|
74
|
+
});
|
|
75
|
+
const imgSrc = `${image.src}&V=${process.env.DEPLOY_RAND}`;
|
|
76
|
+
delete image.src;
|
|
77
|
+
delete image.width;
|
|
78
|
+
delete image.height;
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
<picture>
|
|
82
|
+
{sources.map((attrs) => <source
|
|
83
|
+
type={attrs.type}
|
|
84
|
+
srcset={attrs.srcset.replace(/\s(\w+)$/, `&V=${process.env.DEPLOY_RAND} $1`)}
|
|
85
|
+
sizes={sizes}
|
|
86
|
+
/>)}
|
|
87
|
+
<img
|
|
88
|
+
{...image}
|
|
89
|
+
loading={loading}
|
|
90
|
+
decoding={decoding}
|
|
91
|
+
src={imgSrc}
|
|
92
|
+
{...attrs}
|
|
93
|
+
/>
|
|
94
|
+
</picture>
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
import type { PageContext } from '@@sf/ssr-context';
|
|
3
3
|
import { pwaInfo } from 'virtual:pwa-info';
|
|
4
4
|
import { img as getImg } from '@ecomplus/utils';
|
|
5
|
-
import { getImage as transformImage } from '@@sf/ssr/image';
|
|
6
5
|
|
|
7
6
|
export interface Props {
|
|
8
7
|
pageContext: PageContext;
|
|
@@ -23,13 +22,8 @@ const state = apiDoc || cmsContent || {};
|
|
|
23
22
|
const title = state.meta_title || state.name || state.title || Astro.props.title || settings.name;
|
|
24
23
|
const description = state.meta_description || state.short_description || settings.description;
|
|
25
24
|
const favicon = settings.icon
|
|
26
|
-
?
|
|
27
|
-
|
|
28
|
-
width: 32,
|
|
29
|
-
height: 32,
|
|
30
|
-
format: 'png',
|
|
31
|
-
isLowResolution: true,
|
|
32
|
-
})).src
|
|
25
|
+
? '/_image?f=png&w=32&h=32&format=png'
|
|
26
|
+
+ `&href=${encodeURIComponent(settings.icon)}&V=${import.meta.env.DEPLOY_RAND}`
|
|
33
27
|
: '/favicon.ico';
|
|
34
28
|
const canonicalUrl = new URL(Astro.url.pathname, Astro.site || `https://${domain}`);
|
|
35
29
|
const cmsMetatags = await cms('metatags');
|
|
File without changes
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import type { HTMLAttributes } from 'astro/types';
|
|
2
|
+
import type { ImageMetadata } from '@astrojs/image/dist/vite-plugin-astro-image';
|
|
3
|
+
import type { OutputFormat, TransformOptions } from '@astrojs/image/dist/loaders/';
|
|
4
|
+
// eslint-disable-next-line
|
|
5
|
+
import mime from 'mime';
|
|
6
|
+
|
|
7
|
+
function removeQueryString(src: string) {
|
|
8
|
+
const index = src.lastIndexOf('?');
|
|
9
|
+
return index > 0 ? src.substring(0, index) : src;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
function basename(src: string) {
|
|
13
|
+
// eslint-disable-next-line
|
|
14
|
+
return removeQueryString(src.replace(/^.*[\\\/]/, ''));
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const extname = (src: string) => {
|
|
18
|
+
const base = basename(src);
|
|
19
|
+
const index = base.lastIndexOf('.');
|
|
20
|
+
if (index <= 0) {
|
|
21
|
+
return '';
|
|
22
|
+
}
|
|
23
|
+
return base.substring(index);
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
function parseAspectRatio(aspectRatio: TransformOptions['aspectRatio']) {
|
|
27
|
+
if (!aspectRatio) {
|
|
28
|
+
return undefined;
|
|
29
|
+
}
|
|
30
|
+
// Parse aspect ratio strings, if required (ex: "16:9")
|
|
31
|
+
if (typeof aspectRatio === 'number') {
|
|
32
|
+
return aspectRatio;
|
|
33
|
+
}
|
|
34
|
+
const [width, height] = aspectRatio.split(':');
|
|
35
|
+
return parseInt(width, 10) / parseInt(height, 10);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export interface GetPictureParams {
|
|
39
|
+
src: string | ImageMetadata | Promise<{ default: ImageMetadata }>;
|
|
40
|
+
alt: string;
|
|
41
|
+
widths: number[];
|
|
42
|
+
formats: OutputFormat[];
|
|
43
|
+
aspectRatio?: TransformOptions['aspectRatio'];
|
|
44
|
+
fit?: TransformOptions['fit'];
|
|
45
|
+
background?: TransformOptions['background'];
|
|
46
|
+
position?: TransformOptions['position'];
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export interface GetPictureResult {
|
|
50
|
+
image: HTMLAttributes<'img'>;
|
|
51
|
+
sources: { type: string; srcset: string }[];
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
async function resolveAspectRatio({ src, aspectRatio }: GetPictureParams) {
|
|
55
|
+
if (typeof src === 'string') {
|
|
56
|
+
return parseAspectRatio(aspectRatio);
|
|
57
|
+
}
|
|
58
|
+
const metadata = 'then' in src ? (await src).default : src;
|
|
59
|
+
return parseAspectRatio(aspectRatio) || metadata.width / metadata.height;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
async function resolveFormats({ src, formats }: GetPictureParams) {
|
|
63
|
+
const unique = new Set(formats);
|
|
64
|
+
if (typeof src === 'string') {
|
|
65
|
+
unique.add(extname(src).replace('.', '') as OutputFormat);
|
|
66
|
+
} else {
|
|
67
|
+
const metadata = 'then' in src ? (await src).default : src;
|
|
68
|
+
unique.add(extname(metadata.src).replace('.', '') as OutputFormat);
|
|
69
|
+
}
|
|
70
|
+
return Array.from(unique).filter(Boolean);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export async function getPicture(params: GetPictureParams): Promise<GetPictureResult> {
|
|
74
|
+
const {
|
|
75
|
+
src,
|
|
76
|
+
alt,
|
|
77
|
+
widths,
|
|
78
|
+
fit,
|
|
79
|
+
position,
|
|
80
|
+
background,
|
|
81
|
+
} = params;
|
|
82
|
+
if (!src) {
|
|
83
|
+
throw new Error('[@astrojs/image] `src` is required');
|
|
84
|
+
}
|
|
85
|
+
if (!widths || !Array.isArray(widths)) {
|
|
86
|
+
throw new Error('[@astrojs/image] at least one `width` is required. ex: `widths={[100]}`');
|
|
87
|
+
}
|
|
88
|
+
const aspectRatio = await resolveAspectRatio(params);
|
|
89
|
+
if (!aspectRatio) {
|
|
90
|
+
throw new Error('`aspectRatio` must be provided for remote images');
|
|
91
|
+
}
|
|
92
|
+
// Always include the original image format
|
|
93
|
+
const allFormats = await resolveFormats(params);
|
|
94
|
+
const lastFormat = allFormats[allFormats.length - 1];
|
|
95
|
+
const maxWidth = Math.max(...widths);
|
|
96
|
+
let image: HTMLAttributes<'img'>;
|
|
97
|
+
async function getSource(format: OutputFormat) {
|
|
98
|
+
const imgs = await Promise.all(
|
|
99
|
+
widths.map(async (width) => {
|
|
100
|
+
const img = await getImage({
|
|
101
|
+
src,
|
|
102
|
+
alt,
|
|
103
|
+
format,
|
|
104
|
+
width,
|
|
105
|
+
fit,
|
|
106
|
+
position,
|
|
107
|
+
background,
|
|
108
|
+
aspectRatio,
|
|
109
|
+
});
|
|
110
|
+
if (format === lastFormat && width === maxWidth) {
|
|
111
|
+
image = img;
|
|
112
|
+
}
|
|
113
|
+
return `${img.src} ${width}w`;
|
|
114
|
+
}),
|
|
115
|
+
);
|
|
116
|
+
return {
|
|
117
|
+
type: mime.getType(format) || format,
|
|
118
|
+
srcset: imgs.join(','),
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
const sources = await Promise.all(allFormats.map((format) => getSource(format)));
|
|
122
|
+
return {
|
|
123
|
+
sources,
|
|
124
|
+
image,
|
|
125
|
+
};
|
|
126
|
+
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
import Picture from '@@sf/ssr/Picture.astro';
|
|
3
|
-
import UsageSteps from '~/components/UsageSteps.vue';
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
<UsageSteps client:visible>
|
|
7
|
-
<Picture
|
|
8
|
-
slot="picture-devices"
|
|
9
|
-
src={'/img/uploads/devices.jpg'}
|
|
10
|
-
alt="Produtos Monocard: clássico, personalizado e Monodot."
|
|
11
|
-
widths={[400, 600]}
|
|
12
|
-
sizes="(max-width: 500px) 200px, 300px"
|
|
13
|
-
/>
|
|
14
|
-
<Picture
|
|
15
|
-
slot="picture-edit"
|
|
16
|
-
src={'/img/uploads/edit-suit.jpg'}
|
|
17
|
-
alt="Configure seu perfil e Monolink com facilidade."
|
|
18
|
-
widths={[400, 600]}
|
|
19
|
-
sizes="(max-width: 500px) 200px, 300px"
|
|
20
|
-
/>
|
|
21
|
-
</UsageSteps>
|
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<article class="container px-8 my-4 mx-auto text-center">
|
|
3
|
-
<h3
|
|
4
|
-
ref="title"
|
|
5
|
-
class="text-xl lg:text-2xl font-semibold text-base-700
|
|
6
|
-
inline-block lg:text-left"
|
|
7
|
-
:style="{ minWidth: titleMinWidth, minHeight: titleMinHeight }"
|
|
8
|
-
>
|
|
9
|
-
<span class="block lg:inline">
|
|
10
|
-
Uma ferramenta poderosa para
|
|
11
|
-
</span>
|
|
12
|
-
<Fade>
|
|
13
|
-
<span
|
|
14
|
-
v-if="copyKeyword"
|
|
15
|
-
class="text-2xl font-bold text-transparent bg-clip-text bg-gradient-to-tr
|
|
16
|
-
from-secondary-600 to-secondary-900"
|
|
17
|
-
>
|
|
18
|
-
{{ copyKeyword }}
|
|
19
|
-
</span>
|
|
20
|
-
</Fade>
|
|
21
|
-
</h3>
|
|
22
|
-
<TabGroup as="div" class="max-w-3xl mx-auto">
|
|
23
|
-
<TabList class="flex space-x-1 rounded-md bg-base-100/70 p-1 mt-8">
|
|
24
|
-
<Tab
|
|
25
|
-
as="template"
|
|
26
|
-
v-for="([step, icon], i) in [
|
|
27
|
-
['Escolha o seu Mono', 'i-qr-code-line'],
|
|
28
|
-
['Configure seu perfil', 'i-paint-brush-fill'],
|
|
29
|
-
['Compartilhe onde quiser', 'i-share-forward-2-fill'],
|
|
30
|
-
]"
|
|
31
|
-
:key="i"
|
|
32
|
-
v-slot="{ selected }"
|
|
33
|
-
>
|
|
34
|
-
<button
|
|
35
|
-
class="w-full rounded-sm p-2.5 text-sm md:text-base
|
|
36
|
-
font-medium leading-5 text-base-900
|
|
37
|
-
ring-primary-100 ring-opacity-60 ring-offset-2 ring-offset-primary-400
|
|
38
|
-
focus:outline-none focus:ring-2 block relative"
|
|
39
|
-
:class="selected ? 'bg-primary-100/30 text-black' : null"
|
|
40
|
-
>
|
|
41
|
-
<i
|
|
42
|
-
:class="[
|
|
43
|
-
icon,
|
|
44
|
-
selected ? 'bg-primary-400/70' : 'bg-base-300/70 md:bg-base-400/70',
|
|
45
|
-
]"
|
|
46
|
-
class="w-8 h-8 absolute left-2 top-1/2 -mt-4"
|
|
47
|
-
></i>
|
|
48
|
-
<span class="z-10 relative">{{ step }}</span>
|
|
49
|
-
</button>
|
|
50
|
-
</Tab>
|
|
51
|
-
</TabList>
|
|
52
|
-
<TabPanels class="text-left w-64 mx-auto sm:w-auto sm:px-5 mt-4">
|
|
53
|
-
<TabPanel
|
|
54
|
-
class="flex flex-wrap md:flex-nowrap items-start justify-between"
|
|
55
|
-
v-motion-fade-visible
|
|
56
|
-
>
|
|
57
|
-
<div class="md:order-last rounded-xl overflow-hidden shadow-lg
|
|
58
|
-
mt-4 md:mt-5 mb-2 md:mb-0 mx-auto md:mx-0 h-44 md:h-auto">
|
|
59
|
-
<slot name="picture-devices" />
|
|
60
|
-
</div>
|
|
61
|
-
<div class="md:basis-1/2 prose">
|
|
62
|
-
<h4>Cartão clássico, personalizado ou dot</h4>
|
|
63
|
-
<p>
|
|
64
|
-
No momento da compra você decide o dispositivo que
|
|
65
|
-
mais combina com você ou sua empresa.
|
|
66
|
-
Opte pelo Monocard clássico, personalizado com seu logo ou Monodot.
|
|
67
|
-
</p>
|
|
68
|
-
<p class="bg-base-200 px-4 py-2 rounded">
|
|
69
|
-
<a :href="`/${$settings.metafields.monocardSlug}`">Monocard</a>
|
|
70
|
-
conecta por aproximação com
|
|
71
|
-
<span class="inline-block">NFC <i class="i-signal-tower-fill mr-1"></i></span>,
|
|
72
|
-
escaneamento de
|
|
73
|
-
<span class="inline-block">QR Code <i class="i-qr-code-line"></i></span>
|
|
74
|
-
e Monolink (URL do seu perfil).
|
|
75
|
-
</p>
|
|
76
|
-
<p class="bg-base-200/70 px-4 py-2 rounded">
|
|
77
|
-
<a :href="`/${$settings.metafields.monodotSlug}`">Monodot</a>
|
|
78
|
-
pode ser colado no smartphone e conecta por
|
|
79
|
-
<span class="inline-block">QR Code <i class="i-qr-code-line"></i></span>
|
|
80
|
-
e Monolink.
|
|
81
|
-
</p>
|
|
82
|
-
</div>
|
|
83
|
-
</TabPanel>
|
|
84
|
-
<TabPanel
|
|
85
|
-
class="flex flex-wrap md:flex-nowrap items-start justify-between"
|
|
86
|
-
v-motion-fade-visible
|
|
87
|
-
>
|
|
88
|
-
<div class="md:order-last rounded-xl overflow-hidden shadow-lg
|
|
89
|
-
mt-4 md:mt-5 mb-2 md:mb-0 mx-auto md:mx-0 h-44 md:h-auto">
|
|
90
|
-
<slot name="picture-edit" />
|
|
91
|
-
</div>
|
|
92
|
-
<div class="md:basis-1/2 prose">
|
|
93
|
-
<h4>Editar o perfil é rápido e fácil</h4>
|
|
94
|
-
<p>
|
|
95
|
-
Adicione sua foto ou o logo de sua empresa em seu perfil.
|
|
96
|
-
Disponibilize todos os contatos que desejar, WhatsApp,
|
|
97
|
-
LinkedIn, Instagram, TikTok, Twitter, loja, website
|
|
98
|
-
e até mesmo Pix.
|
|
99
|
-
</p>
|
|
100
|
-
<p class="font-medium">
|
|
101
|
-
Tudo em um único link para bio,
|
|
102
|
-
apontado diretamente pelo seu cartão de visitas inteligente.
|
|
103
|
-
</p>
|
|
104
|
-
</div>
|
|
105
|
-
</TabPanel>
|
|
106
|
-
<TabPanel v-motion-fade-visible>Content 3</TabPanel>
|
|
107
|
-
</TabPanels>
|
|
108
|
-
</TabGroup>
|
|
109
|
-
</article>
|
|
110
|
-
</template>
|
|
111
|
-
|
|
112
|
-
<script setup lang="ts">
|
|
113
|
-
import {
|
|
114
|
-
ref,
|
|
115
|
-
nextTick,
|
|
116
|
-
onMounted,
|
|
117
|
-
onBeforeUnmount,
|
|
118
|
-
} from 'vue';
|
|
119
|
-
import { useDebounceFn } from '@vueuse/core';
|
|
120
|
-
import {
|
|
121
|
-
TabGroup,
|
|
122
|
-
TabList,
|
|
123
|
-
Tab,
|
|
124
|
-
TabPanels,
|
|
125
|
-
TabPanel,
|
|
126
|
-
} from '@headlessui/vue';
|
|
127
|
-
|
|
128
|
-
const title = ref<null | HTMLHeadingElement>(null);
|
|
129
|
-
const titleMinWidth = ref<null | string>(null);
|
|
130
|
-
const titleMinHeight = ref<null | string>(null);
|
|
131
|
-
const fixTitleSize = () => {
|
|
132
|
-
titleMinWidth.value = `${title.value.offsetWidth}px`;
|
|
133
|
-
titleMinHeight.value = `${title.value.offsetHeight}px`;
|
|
134
|
-
};
|
|
135
|
-
const onResize = useDebounceFn(() => fixTitleSize(), 400);
|
|
136
|
-
const copyKeyword = ref<null | string>('networking');
|
|
137
|
-
let keywordInterval: null | ReturnType<typeof setInterval> = null;
|
|
138
|
-
onMounted(() => {
|
|
139
|
-
keywordInterval = setInterval(() => {
|
|
140
|
-
fixTitleSize();
|
|
141
|
-
const oldValue = copyKeyword.value;
|
|
142
|
-
nextTick(() => {
|
|
143
|
-
copyKeyword.value = null;
|
|
144
|
-
setTimeout(() => {
|
|
145
|
-
copyKeyword.value = oldValue === 'networking' ? 'negócios' : 'networking';
|
|
146
|
-
}, 300);
|
|
147
|
-
});
|
|
148
|
-
}, 3000);
|
|
149
|
-
window.addEventListener('resize', onResize);
|
|
150
|
-
});
|
|
151
|
-
onBeforeUnmount(() => {
|
|
152
|
-
clearInterval(keywordInterval);
|
|
153
|
-
window.removeEventListener('resize', onResize);
|
|
154
|
-
});
|
|
155
|
-
</script>
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{c as mt,u as ht,p as gt,b as bt}from"./index.16f33784.js";import{r as k,f as S,m as ne,q as ae,d as $,p as _t,_ as V,j as ee,o as w,c as L,w as O,g as I,n as C,C as Ve,i as y,l as te,h as R,T as yt,b as T,B as Ne,a as wt,t as M,F as j,A as Y,e as Q,D as St,E as de,k as fe,v as ve,G as J,s as re,H as Me,I as xt,x as We,y as Ke,J as Le,K as Fe}from"./_plugin-vue_export-helper.77ed7c18.js";import{w as kt}from"./runtime-dom.esm-bundler.d2f39f33.js";import{_ as Pt}from"./preload-helper.101896b7.js";import{i as It}from"./idle-callback.889bf0ea.js";const Ot=e=>{if(e){if(e.display_name)return e.display_name;if(e.name&&e.name.given_name)return e.name.given_name}return""},Tt=Ot,Et=e=>{const{header:n,canSetStyles:r,canCreateHeightDiv:t,isShownOnScrollDown:o}={canSetStyles:!0,canCreateHeightDiv:!0,...e},{ready:a,start:l}=mt(100,{controls:!0,immediate:!1}),s=k(0),c=k(0);let u;const{y:i}=ht(document),m=S(()=>a.value&&i.value>c.value*1.2),v=k("none");ne(m,async d=>{r&&(n.value.style.position=d?"sticky":null),u&&(u.style.height=d?`${s.value}px`:null),d?(await gt(300),v.value="opacity var(--transition-slow), transform var(--transition)"):(l(),v.value="none")});const p=k(!1);return ne(i,(d,f)=>{p.value=d>0&&d<f}),ae(()=>{const d=()=>{s.value=n.value.offsetHeight,c.value=s.value+window.pageYOffset+n.value.getBoundingClientRect().top,l()},f=n.value.getElementsByTagName("IMG");let b=!0;for(let g=0;g<f.length;g++){const _=f[g];(!_.complete||_.naturalHeight===0)&&(b=!1,_.onload=d)}b&&d(),window.addEventListener("resize",bt(d,300)),r&&(n.value.style.willChange="transform",ne([m,p],([g,_])=>{let x=null,P=null;g&&(!_||o)&&(x="0",P="translateY(-100%)"),n.value.style.opacity=x,n.value.style.transform=P}),ne(v,g=>{n.value.style.transition=g})),t&&(u=document.createElement("div"),n.value.parentElement.insertBefore(u,n.value))}),{staticHeight:s,staticY:c,isSticky:m,isScrollUp:p,transition:v}},Mt=(e,n)=>{const r=e.filter(({slug:t,parent:o})=>t&&!o);return n?.length&&r.sort((t,o)=>{const a=n.indexOf(t.slug),l=n.indexOf(o.slug);return a>-1?l===-1||a<l?-1:1:l>-1?1:0}),r},Ct=(e,n,r=!1)=>{const t=e.filter(({slug:o,parent:a})=>o&&a?a._id===n._id||a.slug&&a.slug===n.slug:!1);return r&&t.sort((o,a)=>o.name<a.name?-1:1),t},$t=({header:e,categories:n,menuCategorySlugs:r,menuRandomCategories:t=7,isAlphabeticalSortSubmenu:o})=>{const{isSticky:a,staticHeight:l,staticY:s}=Et({header:e}),c=S(()=>a.value?e.value.offsetHeight:s.value),u=Mt(n,r),i=f=>Ct(n,f,!!o),m=f=>({...f,subcategories:i(f).map(b=>m(b))}),v=u.map(m);let p=0;const d=v.filter(({slug:f})=>r?.includes(f)?!0:p<t?(p+=1,!0):!1);return{isSticky:a,staticHeight:l,staticY:s,positionY:c,mainCategories:u,getSubcategories:i,getCategoryTree:m,categoryTrees:v,inlineMenuTrees:d}},At=$({__name:"Drawer",props:{modelValue:{type:Boolean,default:!1},placement:{default:"start"},position:{default:"fixed"},hasCloseButton:{type:Boolean,default:!0}},emits:["update:modelValue"],setup(e,{expose:n,emit:r}){n();const t=e,o=()=>r("update:modelValue",!1),a=k(null),l=p=>{a.value?.contains(p.target)||o()},s=p=>{p.key==="Escape"&&o()},c=k(0);ne(_t(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",l,{passive:!0}),document.addEventListener("keydown",s,{passive:!0})},500)):(document.body.style.overflow=null,document.body.style.paddingRight=null,document.removeEventListener("click",l),document.removeEventListener("keydown",s))});const u=S(()=>{switch(t.placement){case"start":return"left";case"end":return"right";case"top":return"down";default:return"up"}}),i=S(()=>t.position==="fixed"),m=S(()=>t.placement==="start"||t.placement==="end"),v={props:t,emit:r,close:o,drawer:a,outsideClickListener:l,escClickListener:s,scrollbarWidth:c,slideTo:u,isFixed:i,isPlacementX:m};return Object.defineProperty(v,"__isScriptSetup",{enumerable:!1,value:!0}),v}}),Nt=["open","data-drawer"],Lt={class:"relative h-full"},Ft=["onClick"],Dt=y("i",{class:"i-close text-base-400 text-3xl"},null,-1),Rt={key:0,class:"fixed top-0 left-0 w-screen h-screen bg-black/50 z-40","data-drawer-backdrop":""};function jt(e,n,r,t,o,a){const l=ee("Fade");return w(),L(l,{slide:t.slideTo,speed:"slow","is-floating":""},{default:O(()=>[r.modelValue?(w(),I("dialog",{key:0,ref:"drawer",class:C(["w-screen shadow p-0 m-0 z-50",[r.position,t.isFixed?`top-0 left-0 ${t.isPlacementX?"h-screen":""}`:null,t.isPlacementX?"max-w-sm":null]]),style:Ve({maxWidth:t.isPlacementX?null:`calc(100vw - ${t.scrollbarWidth}px)`}),open:r.modelValue,"data-drawer":r.placement},[y("div",Lt,[r.hasCloseButton?(w(),I("button",{key:0,type:"button","aria-label":"Fechar",onClick:kt(t.close,["prevent"]),class:C(["absolute top-2",r.placement==="end"?"left-2":"right-2"]),"data-drawer-close":""},[te(e.$slots,"close",{},()=>[Dt])],10,Ft)):R("",!0),te(e.$slots,"default")]),(w(),L(yt,{to:"#teleported-top"},[T(l,null,{default:O(()=>[r.modelValue?(w(),I("div",Rt)):R("",!0)]),_:1})]))],14,Nt)):R("",!0)]),_:3},8,["slide"])}const Bt=V(At,[["render",jt]]);globalThis.__apiCache||(globalThis.__apiCache={});const ce={BASE_URL:"/",MODE:"production",DEV:!1,PROD:!0,SSR:!1,SITE:'"https://ecom2-002.web.app"'};class De extends Error{constructor(n,r,t,o=!1){r?(super(r.statusText),this.data=r.data,this.statusCode=r.status):super(t||"Request error"),this.config=n,this.response=r,this.isTimeout=o}}const Ht={middleware(e){const n={...e.headers};if(!e.isNoAuth)if(e.accessToken)n.Authorization=`Bearer ${e.accessToken}`;else{const a=e.authenticationId||ce.ECOM_AUTHENTICATION_ID,l=e.apiKey||ce.ECOM_API_KEY;if(a&&l){const s=`${a}:${l}`,c=typeof Buffer=="function"?Buffer.from(s).toString("base64"):btoa(s);n.Authorization=`Basic ${c}`}}let r=e.baseUrl||ce.API_BASE_URL||"https://ecomplus.io/v2";const{endpoint:t,params:o}=e;if(t!=="login"&&t!=="authenticate"&&t!=="ask-auth-callback"&&t!=="check-username"){const a=e.storeId||ce.ECOM_STORE_ID;if(!a)throw new Error("`storeId` must be set in config or `ECOM_STORE_ID` env var");r+=`/:${a}`;const l=e.lang||ce.ECOM_LANG;l&&(r+=`,lang:${l}`)}if(r+=`/${t}`,o){if(typeof o=="string")r+=`?${o}`;else if(typeof o=="object"){const a=new URLSearchParams;Object.keys(o).forEach(l=>{const s=o[l];Array.isArray(s)?s.forEach(c=>{a.append(l,c)}):a.append(l,s)}),r+=`?${a.toString()}`}}return{url:r,headers:n}}},D=async(e,n=0)=>{const{url:r,headers:t}=Ht.middleware(e),{method:o="get",timeout:a=2e4,maxRetries:l=3,cacheMaxAge:s=6e5}=e,c=o==="get"&&(e.canCache||e.canCache===void 0&&ce.SSR);let u;if(c){u=`${r}${JSON.stringify(t)}`;const b=globalThis.__apiCache[u];if(b&&Date.now()-b.timestamp<=s)return{...b.res,config:e}}const i=e.body||e.data;let m;i&&(m=JSON.stringify(i),t["Content-Type"]="application/json",t["Content-Length"]=m.length.toString());const v=new AbortController;let p=!1;const d=setTimeout(()=>{v.abort(),p=!0},a);let f;try{f=await(e.fetch||fetch)(r,{method:o,headers:t,body:m,signal:v.signal})}catch(b){throw new De(e,f,b.message,p)}if(clearTimeout(d),f){if(f.ok){const g={...f,data:await f.json()};return c&&u&&(globalThis.__apiCache[u]={timestamp:Date.now(),res:g}),{...g,config:e}}const{status:b}=f;if(l<n&&(b===429||b>=500)){const g=f.headers.get("retry-after");return new Promise((_,x)=>{setTimeout(()=>{D(e,n+1).then(_).catch(x)},g&&parseInt(g,10)||5e3)})}}try{f.data=await f?.json()}catch{}throw new De(e,f)},Ut=(e,n)=>D({...n,endpoint:e}),Vt=(e,n,r)=>D({...r,method:"post",endpoint:e,body:n}),Wt=(e,n,r)=>D({...r,method:"put",endpoint:e,body:n}),Kt=(e,n,r)=>D({...r,method:"patch",endpoint:e,body:n}),ze=(e,n)=>D({...n,method:"delete",endpoint:e});D.get=Ut;D.post=Vt;D.put=Wt;D.patch=Kt;D.del=ze;D.delete=ze;const zt=(e,n,r=globalThis.localStorage)=>{if(!r)return Ne(n);let t;const o=r.getItem(e);if(o)try{t=JSON.parse(o)}catch{t=null,r.removeItem(e)}const a=Ne(t||n);return ne(a,()=>{r.setItem(e,JSON.stringify(a))}),a},Ge="SESSION",Oe={customer:{display_name:"",main_email:""},auth:null},H=zt(Ge,Oe),Ce=S(()=>{const{auth:e}=H;return e&&new Date(e.expires).getTime()-Date.now()>1e3*10}),Ye=S(()=>H.customer),he=S(()=>Tt(Ye.value)),Re=S({get(){return Ye.value.main_email},set(e){H.customer.main_email=e}});let oe;const Xe=S(()=>Ce.value||!!oe?.currentUser?.emailVerified),$e=()=>{H.auth=Oe.auth,H.customer=Oe.customer,localStorage.removeItem(Ge),oe.signOut()},Je=async()=>{const e=await oe.currentUser.getIdToken(),{domain:n}=window.storefront.settings;try{const r=await fetch(`https://${n}/api/passport/token`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`}});H.auth=await r.json()}catch(r){console.error(r)}},Gt=async()=>(Ce.value||await Je(),H.auth.access_token),Yt=async()=>{const e=await Gt(),{data:n}=await D.get(`customers/${H.auth.customer_id}`,{accessToken:e});return H.customer=n,n};let je=!1;const qe=(e=!window.location.pathname.startsWith("/app/"))=>{if(je)return;je=!0;const n=()=>Pt(()=>import("./firebase-app.7ce2ebb1.js"),[]).then(({getAuth:r,onAuthStateChanged:t,isSignInWithEmailLink:o,signInWithEmailLink:a})=>{if(oe=r(),t(oe,async l=>{if(l){if(l.displayName&&!he.value&&(H.customer.display_name=l.displayName),l.email&&(!Re.value||l.emailVerified)&&(H.customer.main_email=l.email),l.emailVerified){const s=l.email!==Re.value;(s||!Ce.value)&&(await Je(),(s||!he.value)&&await Yt())}}else $e()}),o(oe,window.location.href)){const s=new URLSearchParams(window.location.search).get("email");s&&a(oe,s,window.location.href).then(()=>window.localStorage.removeItem("emailForSignIn")).catch(console.error)}}).catch(console.error);e?It(n):n()},{settings:Be,context:Jo}=globalThis.storefront,Xt=["whatsapp","instagram","facebook","twitter","youtube","tiktok","pinterest"],_e={};Xt.forEach(e=>{Be[e]&&(_e[e]=Be[e])});const Jt=$({__name:"AccountLink",props:{to:null,accountUrl:{default:globalThis.storefront.settings.account_url||"/app/account"},returnUrl:{default:globalThis.location?.href},isSignUp:{type:Boolean}},setup(e,{expose:n}){n();const r=e,t=S(()=>{let a=r.accountUrl;if(!r.to)return r.isSignUp?a+="?sign_up&":a+="?",`${a}return_url=${r.returnUrl}`;const{settings:l}=globalThis.storefront;return r.to==="orders"&&l.orders_url?l.orders_url:r.to==="favorites"&&l.favorites_url?l.favorites_url:`${a}/${r.to}`}),o={props:r,href:t};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}}),qt=["href"];function Qt(e,n,r,t,o,a){return w(),I("a",{href:t.href},[te(e.$slots,"default")],8,qt)}const Qe=V(Jt,[["render",Qt]]);let pe;pe=navigator.userAgent,document.body?document.body.offsetWidth:window.screen.width;pe.includes("Safari")&&pe.includes("Chrome");const Zt=/iPad|iPhone|iPod/.test(pe)&&!window.MSStream,en=Zt||/Android|webOS|BlackBerry|IEMobile|Opera Mini/i.test(pe),tn=$({__name:"SocialNetworkIcon",props:{as:{default:"i"},network:null},setup(e,{expose:n}){n();const r=e,t=S(()=>{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";default:return""}}),o={props:r,iconClassName:t};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}});function nn(e,n,r,t,o,a){return w(),L(wt(r.as),{class:C(t.iconClassName)},null,8,["class"])}const on=V(tn,[["render",nn]]),rn=$({__name:"SocialNetworkLink",props:{network:null,href:null,message:null},setup(e,{expose:n}){n();const r=e,t=S(()=>{let a=r.href||_e[r.network];if(r.network==="whatsapp"){const l=a.replace(/[^+\d]/g,"");a=`https://${en?"api":"web"}.whatsapp.com/send?phone=`+encodeURIComponent(l.charAt(0)==="+"?l:`+55${l}`),r.message&&(a+=`&text=${encodeURIComponent(r.message)}`)}return a}),o={props:r,fixedHref:t,SocialNetworkIcon:on};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}});function an(e,n,r,t,o,a){const l=ee("ALink");return w(),L(l,{href:t.fixedHref},{default:O(()=>[te(e.$slots,"default",{},()=>[T(t.SocialNetworkIcon,{network:r.network},null,8,["network"]),te(e.$slots,"append")])]),_:3},8,["href"])}const Ze=V(rn,[["render",an]]),ln=$({__name:"ShopSidenavCategory",props:{categoryTree:null},setup(e,{expose:n}){n();const r=k(!1),t=k(!0);ne(r,a=>{a?setTimeout(()=>{t.value=!1},25):t.value=!0});const o={isOpen:r,isFaded:t};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}}),sn={class:"text-lg text-base-800"},un=["href"],cn=["href"],dn={class:"inline"};function pn(e,n,r,t,o,a){const l=ee("AImg"),s=ee("ShopSidenavCategory",!0);return w(),I("li",sn,[r.categoryTree.subcategories.length?(w(),I("details",{key:0,class:"bg-white overflow-y-auto overflow-x-hidden z-10 open:absolute open:top-0 open:left-0 open:w-full open:h-full",onToggle:n[0]||(n[0]=c=>t.isOpen=!t.isOpen)},[y("summary",{class:C(["cursor-pointer list-none px-6 py-3 active:bg-base-100 transition-colors",t.isOpen?"bg-base-100":null])},[y("i",{class:C(t.isOpen?"i-arrow-left text-lg":"i-arrow-right float-right mb-0 mt-1 text-xl text-base-500")},null,2),!t.isOpen&&r.categoryTree.icon?(w(),L(l,{key:0,picture:r.categoryTree.icon,class:"w-auto h-5 inline mr-3"},null,8,["picture"])):R("",!0),y("h3",{class:C(["inline",t.isOpen?"ml-4 text-base":null])},M(r.categoryTree.name),3)],2),y("ul",{class:C(["mt-2 transition-opacity",t.isFaded?"opacity-20":"opacity-100"]),tabindex:"-1"},[(w(!0),I(j,null,Y(r.categoryTree.subcategories,c=>(w(),L(s,{key:c._id,"category-tree":c},null,8,["category-tree"]))),128)),y("li",null,[y("a",{href:`/${r.categoryTree.slug}`,class:"block px-6 py-3 text-base underline active:bg-base-200"},M("Ver toda a categoria $1".replace("$1",r.categoryTree.name)),9,un)])],2)],32)):(w(),I("a",{key:1,href:`/${r.categoryTree.slug}`,class:"block px-6 py-3 active:bg-base-200"},[!t.isOpen&&r.categoryTree.icon?(w(),L(l,{key:0,picture:r.categoryTree.icon,class:"w-auto h-5 inline mr-3"},null,8,["picture"])):R("",!0),y("h3",dn,M(r.categoryTree.name),1)],8,cn))])}const fn=V(ln,[["render",pn]]),vn=$({__name:"ShopSidenav",props:{categoryTrees:null},setup(e,{expose:n}){n(),ae(()=>qe());const r={get customerName(){return he},get isLogged(){return Xe},get logout(){return $e},get socialNetworks(){return _e},AccountLink:Qe,SocialNetworkLink:Ze,ShopSidenavCategory:fn};return Object.defineProperty(r,"__isScriptSetup",{enumerable:!1,value:!0}),r}}),mn={class:"flex flex-col h-full"},hn={class:"py-4 grow"},gn={class:"relative h-full"},bn={class:"text-base"},_n={class:"flex items-center px-2 py-4 bg-base-100"},yn=y("i",{class:"i-account text-4xl text-base-500 m-0"},null,-1),wn={class:"leading-tight"},Sn=y("small",{class:"block lowercase font-semibold text-primary"},M("Meus pedidos")+", "+M("Minha conta"),-1),xn=y("span",{class:"text-base-600"},M("Sair"),-1),kn=y("i",{class:"i-logout text-lg ml-1"},null,-1),Pn=[xn,kn],In={class:"flex gap-3 p-4 bg-base-200 text-xl text-base-700"};function On(e,n,r,t,o,a){return w(),I("aside",mn,[y("nav",hn,[y("ul",gn,[(w(!0),I(j,null,Y(r.categoryTrees,l=>(w(),L(t.ShopSidenavCategory,{key:l._id,"category-tree":l},null,8,["category-tree"]))),128))])]),y("footer",bn,[y("div",_n,[T(t.AccountLink,{class:"p-2 grow flex items-center gap-3"},{default:O(()=>[yn,y("span",wn,[Q(M(`Olá ${t.customerName||"Visitante"}`)+" ",1),Sn])]),_:1}),t.isLogged?(w(),I("button",{key:0,onClick:n[0]||(n[0]=(...l)=>t.logout&&t.logout(...l)),class:"p-2 text-right text-base-800"},Pn)):R("",!0)]),y("ul",In,[(w(!0),I(j,null,Y(t.socialNetworks,(l,s)=>(w(),I("li",{key:s},[T(t.SocialNetworkLink,{network:s,class:"p-1 active:text-primary"},null,8,["network"])]))),128))])])])}const Tn=V(vn,[["render",On]]);function W(e,n,...r){if(e in n){let o=n[e];return typeof o=="function"?o(...r):o}let t=new Error(`Tried to handle "${e}" but there is no handler defined. Only defined handlers are: ${Object.keys(n).map(o=>`"${o}"`).join(", ")}.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,W),t}var le=(e=>(e[e.None=0]="None",e[e.RenderStrategy=1]="RenderStrategy",e[e.Static=2]="Static",e))(le||{}),En=(e=>(e[e.Unmount=0]="Unmount",e[e.Hidden=1]="Hidden",e))(En||{});function K({visible:e=!0,features:n=0,ourProps:r,theirProps:t,...o}){var a;let l=tt(t,r),s=Object.assign(o,{props:l});if(e||n&2&&l.static)return Pe(s);if(n&1){let c=(a=l.unmount)==null||a?0:1;return W(c,{[0](){return null},[1](){return Pe({...o,props:{...l,hidden:!0,style:{display:"none"}}})}})}return Pe(s)}function Pe({props:e,attrs:n,slots:r,slot:t,name:o}){var a,l;let{as:s,...c}=Mn(e,["unmount","static"]),u=(a=r.default)==null?void 0:a.call(r,t),i={};if(t){let m=!1,v=[];for(let[p,d]of Object.entries(t))typeof d=="boolean"&&(m=!0),d===!0&&v.push(p);m&&(i["data-headlessui-state"]=v.join(" "))}if(s==="template"){if(u=et(u??[]),Object.keys(c).length>0||Object.keys(n).length>0){let[m,...v]=u??[];if(!Cn(m)||v.length>0)throw new Error(['Passing props on "template"!',"",`The current component <${o} /> is rendering a "template".`,"However we need to passthrough the following props:",Object.keys(c).concat(Object.keys(n)).map(f=>f.trim()).filter((f,b,g)=>g.indexOf(f)===b).sort((f,b)=>f.localeCompare(b)).map(f=>` - ${f}`).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(f=>` - ${f}`).join(`
|
|
3
|
-
`)].join(`
|
|
4
|
-
`));let p=tt((l=m.props)!=null?l:{},c),d=St(m,p);for(let f in p)f.startsWith("on")&&(d.props||(d.props={}),d.props[f]=p[f]);return d}return Array.isArray(u)&&u.length===1?u[0]:u}return de(s,Object.assign({},c,i),{default:()=>u})}function et(e){return e.flatMap(n=>n.type===j?et(n.children):[n])}function tt(...e){if(e.length===0)return{};if(e.length===1)return e[0];let n={},r={};for(let t of e)for(let o in t)o.startsWith("on")&&typeof t[o]=="function"?(r[o]!=null||(r[o]=[]),r[o].push(t[o])):n[o]=t[o];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](o,...a){let l=r[t];for(let s of l){if(o instanceof Event&&o.defaultPrevented)return;s(o,...a)}}});return n}function Mn(e,n=[]){let r=Object.assign({},e);for(let t of n)t in r&&delete r[t];return r}function Cn(e){return e==null?!1:typeof e.type=="string"||typeof e.type=="object"||typeof e.type=="function"}let $n=0;function An(){return++$n}function X(){return An()}var E=(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))(E||{});function Nn(e){throw new Error("Unexpected object: "+e)}var F=(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))(F||{});function Ln(e,n){let r=n.resolveItems();if(r.length<=0)return null;let t=n.resolveActiveIndex(),o=t??-1,a=(()=>{switch(e.focus){case 0:return r.findIndex(l=>!n.resolveDisabled(l));case 1:{let l=r.slice().reverse().findIndex((s,c,u)=>o!==-1&&u.length-c-1>=o?!1:!n.resolveDisabled(s));return l===-1?l:r.length-1-l}case 2:return r.findIndex((l,s)=>s<=o?!1:!n.resolveDisabled(l));case 3:{let l=r.slice().reverse().findIndex(s=>!n.resolveDisabled(s));return l===-1?l:r.length-1-l}case 4:return r.findIndex(l=>n.resolveId(l)===e.id);case 5:return null;default:Nn(e)}})();return a===-1?t:a}function h(e){var n;return e==null||e.value==null?null:(n=e.value.$el)!=null?n:e.value}let nt=Symbol("Context");var U=(e=>(e[e.Open=1]="Open",e[e.Closed=2]="Closed",e[e.Closing=4]="Closing",e[e.Opening=8]="Opening",e))(U||{});function Ae(){return fe(nt,null)}function ot(e){ve(nt,e)}function He(e,n){if(e)return e;let r=n??"button";if(typeof r=="string"&&r.toLowerCase()==="button")return"button"}function rt(e,n){let r=k(He(e.value.type,e.value.as));return ae(()=>{r.value=He(e.value.type,e.value.as)}),J(()=>{var t;r.value||h(n)&&h(n)instanceof HTMLButtonElement&&!((t=h(n))!=null&&t.hasAttribute("type"))&&(r.value="button")}),r}class Fn{constructor(){this.current=this.detect(),this.currentId=0}set(n){this.current!==n&&(this.currentId=0,this.current=n)}reset(){this.set(this.detect())}nextId(){return++this.currentId}get isServer(){return this.current==="server"}get isClient(){return this.current==="client"}detect(){return typeof window>"u"||typeof document>"u"?"server":"client"}}let ye=new Fn;function se(e){if(ye.isServer)return null;if(e instanceof Node)return e.ownerDocument;if(e!=null&&e.hasOwnProperty("value")){let n=h(e);if(n)return n.ownerDocument}return document}function Dn({container:e,accept:n,walk:r,enabled:t}){J(()=>{let o=e.value;if(!o||t!==void 0&&!t.value)return;let a=se(e);if(!a)return;let l=Object.assign(c=>n(c),{acceptNode:n}),s=a.createTreeWalker(o,NodeFilter.SHOW_ELEMENT,l,!1);for(;s.nextNode();)r(s.currentNode)})}let Te=["[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||{}),ge=(e=>(e[e.Error=0]="Error",e[e.Overflow=1]="Overflow",e[e.Success=2]="Success",e[e.Underflow=3]="Underflow",e))(ge||{}),Rn=(e=>(e[e.Previous=-1]="Previous",e[e.Next=1]="Next",e))(Rn||{});function me(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(Te)).sort((n,r)=>Math.sign((n.tabIndex||Number.MAX_SAFE_INTEGER)-(r.tabIndex||Number.MAX_SAFE_INTEGER)))}var we=(e=>(e[e.Strict=0]="Strict",e[e.Loose=1]="Loose",e))(we||{});function Se(e,n=0){var r;return e===((r=se(e))==null?void 0:r.body)?!1:W(n,{[0](){return e.matches(Te)},[1](){let t=e;for(;t!==null;){if(t.matches(Te))return!0;t=t.parentElement}return!1}})}function at(e){let n=se(e);re(()=>{n&&!Se(n.activeElement,0)&&jn(e)})}function jn(e){e?.focus({preventScroll:!0})}let Bn=["textarea","input"].join(",");function Hn(e){var n,r;return(r=(n=e?.matches)==null?void 0:n.call(e,Bn))!=null?r:!1}function lt(e,n=r=>r){return e.slice().sort((r,t)=>{let o=n(r),a=n(t);if(o===null||a===null)return 0;let l=o.compareDocumentPosition(a);return l&Node.DOCUMENT_POSITION_FOLLOWING?-1:l&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function Un(e,n){return Z(me(),n,{relativeTo:e})}function Z(e,n,{sorted:r=!0,relativeTo:t=null,skipElements:o=[]}={}){var a;let l=(a=Array.isArray(e)?e.length>0?e[0].ownerDocument:document:e?.ownerDocument)!=null?a:document,s=Array.isArray(e)?r?lt(e):e:me(e);o.length>0&&s.length>1&&(s=s.filter(d=>!o.includes(d))),t=t??l.activeElement;let c=(()=>{if(n&5)return 1;if(n&10)return-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),u=(()=>{if(n&1)return 0;if(n&2)return Math.max(0,s.indexOf(t))-1;if(n&4)return Math.max(0,s.indexOf(t))+1;if(n&8)return s.length-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),i=n&32?{preventScroll:!0}:{},m=0,v=s.length,p;do{if(m>=v||m+v<=0)return 0;let d=u+m;if(n&16)d=(d+v)%v;else{if(d<0)return 3;if(d>=v)return 1}p=s[d],p?.focus(i),m+=c}while(p!==l.activeElement);return n&6&&Hn(p)&&p.select(),p.hasAttribute("tabindex")||p.setAttribute("tabindex","0"),2}function Ie(e,n,r){ye.isServer||J(t=>{document.addEventListener(e,n,r),t(()=>document.removeEventListener(e,n,r))})}function st(e,n,r=S(()=>!0)){function t(a,l){if(!r.value||a.defaultPrevented)return;let s=l(a);if(s===null||!s.getRootNode().contains(s))return;let c=function u(i){return typeof i=="function"?u(i()):Array.isArray(i)||i instanceof Set?i:[i]}(e);for(let u of c){if(u===null)continue;let i=u instanceof HTMLElement?u:h(u);if(i!=null&&i.contains(s)||a.composed&&a.composedPath().includes(i))return}return!Se(s,we.Loose)&&s.tabIndex!==-1&&a.preventDefault(),n(a,s)}let o=k(null);Ie("mousedown",a=>{var l,s;r.value&&(o.value=((s=(l=a.composedPath)==null?void 0:l.call(a))==null?void 0:s[0])||a.target)},!0),Ie("click",a=>{o.value&&(t(a,()=>o.value),o.value=null)},!0),Ie("blur",a=>t(a,()=>window.document.activeElement instanceof HTMLIFrameElement?window.document.activeElement:null),!0)}var be=(e=>(e[e.None=1]="None",e[e.Focusable=2]="Focusable",e[e.Hidden=4]="Hidden",e))(be||{});let Ee=$({name:"Hidden",props:{as:{type:[Object,String],default:"div"},features:{type:Number,default:1}},setup(e,{slots:n,attrs:r}){return()=>{let{features:t,...o}=e,a={"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 K({ourProps:a,theirProps:o,slot:{},attrs:r,slots:n,name:"Hidden"})}}});function Ue(e){return[e.screenX,e.screenY]}function Vn(){let e=k([-1,-1]);return{wasMoved(n){let r=Ue(n);return e.value[0]===r[0]&&e.value[1]===r[1]?!1:(e.value=r,!0)},update(n){e.value=Ue(n)}}}function Wn(e,n,r){ye.isServer||J(t=>{window.addEventListener(e,n,r),t(()=>window.removeEventListener(e,n,r))})}var G=(e=>(e[e.Forwards=0]="Forwards",e[e.Backwards=1]="Backwards",e))(G||{});function it(){let e=k(0);return Wn("keydown",n=>{n.key==="Tab"&&(e.value=n.shiftKey?1:0)}),e}function Kn(e,n,r,t){ye.isServer||J(o=>{e=e??window,e.addEventListener(n,r,t),o(()=>e.removeEventListener(n,r,t))})}var zn=(e=>(e[e.Open=0]="Open",e[e.Closed=1]="Closed",e))(zn||{}),Gn=(e=>(e[e.Pointer=0]="Pointer",e[e.Other=1]="Other",e))(Gn||{});function Yn(e){requestAnimationFrame(()=>requestAnimationFrame(e))}let ut=Symbol("MenuContext");function xe(e){let n=fe(ut,null);if(n===null){let r=new Error(`<${e} /> is missing a parent <Menu /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(r,xe),r}return n}let Xn=$({name:"Menu",props:{as:{type:[Object,String],default:"template"}},setup(e,{slots:n,attrs:r}){let t=k(1),o=k(null),a=k(null),l=k([]),s=k(""),c=k(null),u=k(1);function i(v=p=>p){let p=c.value!==null?l.value[c.value]:null,d=lt(v(l.value.slice()),b=>h(b.dataRef.domRef)),f=p?d.indexOf(p):null;return f===-1&&(f=null),{items:d,activeItemIndex:f}}let m={menuState:t,buttonRef:o,itemsRef:a,items:l,searchQuery:s,activeItemIndex:c,activationTrigger:u,closeMenu:()=>{t.value=1,c.value=null},openMenu:()=>t.value=0,goToItem(v,p,d){let f=i(),b=Ln(v===F.Specific?{focus:F.Specific,id:p}:{focus:v},{resolveItems:()=>f.items,resolveActiveIndex:()=>f.activeItemIndex,resolveId:g=>g.id,resolveDisabled:g=>g.dataRef.disabled});s.value="",c.value=b,u.value=d??1,l.value=f.items},search(v){let p=s.value!==""?0:1;s.value+=v.toLowerCase();let d=(c.value!==null?l.value.slice(c.value+p).concat(l.value.slice(0,c.value+p)):l.value).find(b=>b.dataRef.textValue.startsWith(s.value)&&!b.dataRef.disabled),f=d?l.value.indexOf(d):-1;f===-1||f===c.value||(c.value=f,u.value=1)},clearSearch(){s.value=""},registerItem(v,p){let d=i(f=>[...f,{id:v,dataRef:p}]);l.value=d.items,c.value=d.activeItemIndex,u.value=1},unregisterItem(v){let p=i(d=>{let f=d.findIndex(b=>b.id===v);return f!==-1&&d.splice(f,1),d});l.value=p.items,c.value=p.activeItemIndex,u.value=1}};return st([o,a],(v,p)=>{var d;m.closeMenu(),Se(p,we.Loose)||(v.preventDefault(),(d=h(o))==null||d.focus())},S(()=>t.value===0)),ve(ut,m),ot(S(()=>W(t.value,{[0]:U.Open,[1]:U.Closed}))),()=>{let v={open:t.value===0,close:m.closeMenu};return K({ourProps:{},theirProps:e,slot:v,slots:n,attrs:r,name:"Menu"})}}}),Jn=$({name:"MenuButton",props:{disabled:{type:Boolean,default:!1},as:{type:[Object,String],default:"button"},id:{type:String,default:()=>`headlessui-menu-button-${X()}`}},setup(e,{attrs:n,slots:r,expose:t}){let o=xe("MenuButton");t({el:o.buttonRef,$el:o.buttonRef});function a(u){switch(u.key){case E.Space:case E.Enter:case E.ArrowDown:u.preventDefault(),u.stopPropagation(),o.openMenu(),re(()=>{var i;(i=h(o.itemsRef))==null||i.focus({preventScroll:!0}),o.goToItem(F.First)});break;case E.ArrowUp:u.preventDefault(),u.stopPropagation(),o.openMenu(),re(()=>{var i;(i=h(o.itemsRef))==null||i.focus({preventScroll:!0}),o.goToItem(F.Last)});break}}function l(u){switch(u.key){case E.Space:u.preventDefault();break}}function s(u){e.disabled||(o.menuState.value===0?(o.closeMenu(),re(()=>{var i;return(i=h(o.buttonRef))==null?void 0:i.focus({preventScroll:!0})})):(u.preventDefault(),o.openMenu(),Yn(()=>{var i;return(i=h(o.itemsRef))==null?void 0:i.focus({preventScroll:!0})})))}let c=rt(S(()=>({as:e.as,type:n.type})),o.buttonRef);return()=>{var u;let i={open:o.menuState.value===0},{id:m,...v}=e,p={ref:o.buttonRef,id:m,type:c.value,"aria-haspopup":"menu","aria-controls":(u=h(o.itemsRef))==null?void 0:u.id,"aria-expanded":e.disabled?void 0:o.menuState.value===0,onKeydown:a,onKeyup:l,onClick:s};return K({ourProps:p,theirProps:v,slot:i,attrs:n,slots:r,name:"MenuButton"})}}}),qn=$({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-${X()}`}},setup(e,{attrs:n,slots:r,expose:t}){let o=xe("MenuItems"),a=k(null);t({el:o.itemsRef,$el:o.itemsRef}),Dn({container:S(()=>h(o.itemsRef)),enabled:S(()=>o.menuState.value===0),accept(i){return i.getAttribute("role")==="menuitem"?NodeFilter.FILTER_REJECT:i.hasAttribute("role")?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT},walk(i){i.setAttribute("role","none")}});function l(i){var m;switch(a.value&&clearTimeout(a.value),i.key){case E.Space:if(o.searchQuery.value!=="")return i.preventDefault(),i.stopPropagation(),o.search(i.key);case E.Enter:if(i.preventDefault(),i.stopPropagation(),o.activeItemIndex.value!==null){let v=o.items.value[o.activeItemIndex.value];(m=h(v.dataRef.domRef))==null||m.click()}o.closeMenu(),at(h(o.buttonRef));break;case E.ArrowDown:return i.preventDefault(),i.stopPropagation(),o.goToItem(F.Next);case E.ArrowUp:return i.preventDefault(),i.stopPropagation(),o.goToItem(F.Previous);case E.Home:case E.PageUp:return i.preventDefault(),i.stopPropagation(),o.goToItem(F.First);case E.End:case E.PageDown:return i.preventDefault(),i.stopPropagation(),o.goToItem(F.Last);case E.Escape:i.preventDefault(),i.stopPropagation(),o.closeMenu(),re(()=>{var v;return(v=h(o.buttonRef))==null?void 0:v.focus({preventScroll:!0})});break;case E.Tab:i.preventDefault(),i.stopPropagation(),o.closeMenu(),re(()=>Un(h(o.buttonRef),i.shiftKey?B.Previous:B.Next));break;default:i.key.length===1&&(o.search(i.key),a.value=setTimeout(()=>o.clearSearch(),350));break}}function s(i){switch(i.key){case E.Space:i.preventDefault();break}}let c=Ae(),u=S(()=>c!==null?(c.value&U.Open)===U.Open:o.menuState.value===0);return()=>{var i,m;let v={open:o.menuState.value===0},{id:p,...d}=e,f={"aria-activedescendant":o.activeItemIndex.value===null||(i=o.items.value[o.activeItemIndex.value])==null?void 0:i.id,"aria-labelledby":(m=h(o.buttonRef))==null?void 0:m.id,id:p,onKeydown:l,onKeyup:s,role:"menu",tabIndex:0,ref:o.itemsRef};return K({ourProps:f,theirProps:d,slot:v,attrs:n,slots:r,features:le.RenderStrategy|le.Static,visible:u.value,name:"MenuItems"})}}}),Qn=$({name:"MenuItem",inheritAttrs:!1,props:{as:{type:[Object,String],default:"template"},disabled:{type:Boolean,default:!1},id:{type:String,default:()=>`headlessui-menu-item-${X()}`}},setup(e,{slots:n,attrs:r,expose:t}){let o=xe("MenuItem"),a=k(null);t({el:a,$el:a});let l=S(()=>o.activeItemIndex.value!==null?o.items.value[o.activeItemIndex.value].id===e.id:!1),s=S(()=>({disabled:e.disabled,textValue:"",domRef:a}));ae(()=>{var d,f;let b=(f=(d=h(a))==null?void 0:d.textContent)==null?void 0:f.toLowerCase().trim();b!==void 0&&(s.value.textValue=b)}),ae(()=>o.registerItem(e.id,s)),Me(()=>o.unregisterItem(e.id)),J(()=>{o.menuState.value===0&&l.value&&o.activationTrigger.value!==0&&re(()=>{var d,f;return(f=(d=h(a))==null?void 0:d.scrollIntoView)==null?void 0:f.call(d,{block:"nearest"})})});function c(d){if(e.disabled)return d.preventDefault();o.closeMenu(),at(h(o.buttonRef))}function u(){if(e.disabled)return o.goToItem(F.Nothing);o.goToItem(F.Specific,e.id)}let i=Vn();function m(d){i.update(d)}function v(d){i.wasMoved(d)&&(e.disabled||l.value||o.goToItem(F.Specific,e.id,0))}function p(d){i.wasMoved(d)&&(e.disabled||l.value&&o.goToItem(F.Nothing))}return()=>{let{disabled:d}=e,f={active:l.value,disabled:d,close:o.closeMenu},{id:b,...g}=e;return K({ourProps:{id:b,ref:a,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:v,onMousemove:v,onPointerleave:p,onMouseleave:p},theirProps:{...r,...g},slot:f,attrs:r,slots:n,name:"MenuItem"})}}});var Zn=(e=>(e[e.Open=0]="Open",e[e.Closed=1]="Closed",e))(Zn||{});let ct=Symbol("PopoverContext");function ke(e){let n=fe(ct,null);if(n===null){let r=new Error(`<${e} /> is missing a parent <${vt.name} /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(r,ke),r}return n}let dt=Symbol("PopoverGroupContext");function pt(){return fe(dt,null)}let ft=Symbol("PopoverPanelContext");function eo(){return fe(ft,null)}let vt=$({name:"Popover",props:{as:{type:[Object,String],default:"div"}},setup(e,{slots:n,attrs:r,expose:t}){var o;let a=k(null);t({el:a,$el:a});let l=k(1),s=k(null),c=k(null),u=k(null),i=k(null),m=S(()=>se(a)),v=S(()=>{var _,x;if(!h(s)||!h(i))return!1;for(let ue of document.querySelectorAll("body > *"))if(Number(ue?.contains(h(s)))^Number(ue?.contains(h(i))))return!0;let P=me(),A=P.indexOf(h(s)),N=(A+P.length-1)%P.length,q=(A+1)%P.length,z=P[N],ie=P[q];return!((_=h(i))!=null&&_.contains(z))&&!((x=h(i))!=null&&x.contains(ie))}),p={popoverState:l,buttonId:k(null),panelId:k(null),panel:i,button:s,isPortalled:v,beforePanelSentinel:c,afterPanelSentinel:u,togglePopover(){l.value=W(l.value,{[0]:1,[1]:0})},closePopover(){l.value!==1&&(l.value=1)},close(_){p.closePopover();let x=(()=>_?_ instanceof HTMLElement?_:_.value instanceof HTMLElement?h(_):h(p.button):h(p.button))();x?.focus()}};ve(ct,p),ot(S(()=>W(l.value,{[0]:U.Open,[1]:U.Closed})));let d={buttonId:p.buttonId,panelId:p.panelId,close(){p.closePopover()}},f=pt(),b=f?.registerPopover;function g(){var _,x,P,A;return(A=f?.isFocusWithinPopoverGroup())!=null?A:((_=m.value)==null?void 0:_.activeElement)&&(((x=h(s))==null?void 0:x.contains(m.value.activeElement))||((P=h(i))==null?void 0:P.contains(m.value.activeElement)))}return J(()=>b?.(d)),Kn((o=m.value)==null?void 0:o.defaultView,"focus",_=>{var x,P;l.value===0&&(g()||s&&i&&_.target!==window&&((x=h(p.beforePanelSentinel))!=null&&x.contains(_.target)||(P=h(p.afterPanelSentinel))!=null&&P.contains(_.target)||p.closePopover()))},!0),st([s,i],(_,x)=>{var P;p.closePopover(),Se(x,we.Loose)||(_.preventDefault(),(P=h(s))==null||P.focus())},S(()=>l.value===0)),()=>{let _={open:l.value===0,close:p.close};return K({theirProps:e,ourProps:{ref:a},slot:_,slots:n,attrs:r,name:"Popover"})}}}),to=$({name:"PopoverButton",props:{as:{type:[Object,String],default:"button"},disabled:{type:[Boolean],default:!1},id:{type:String,default:()=>`headlessui-popover-button-${X()}`}},inheritAttrs:!1,setup(e,{attrs:n,slots:r,expose:t}){let o=ke("PopoverButton"),a=S(()=>se(o.button));t({el:o.button,$el:o.button}),ae(()=>{o.buttonId.value=e.id}),Me(()=>{o.buttonId.value=null});let l=pt(),s=l?.closeOthers,c=eo(),u=S(()=>c===null?!1:c.value===o.panelId.value),i=k(null),m=`headlessui-focus-sentinel-${X()}`;u.value||J(()=>{o.button.value=i.value});let v=rt(S(()=>({as:e.as,type:n.type})),i);function p(g){var _,x,P,A,N;if(u.value){if(o.popoverState.value===1)return;switch(g.key){case E.Space:case E.Enter:g.preventDefault(),(x=(_=g.target).click)==null||x.call(_),o.closePopover(),(P=h(o.button))==null||P.focus();break}}else switch(g.key){case E.Space:case E.Enter:g.preventDefault(),g.stopPropagation(),o.popoverState.value===1&&s?.(o.buttonId.value),o.togglePopover();break;case E.Escape:if(o.popoverState.value!==0)return s?.(o.buttonId.value);if(!h(o.button)||(A=a.value)!=null&&A.activeElement&&!((N=h(o.button))!=null&&N.contains(a.value.activeElement)))return;g.preventDefault(),g.stopPropagation(),o.closePopover();break}}function d(g){u.value||g.key===E.Space&&g.preventDefault()}function f(g){var _,x;e.disabled||(u.value?(o.closePopover(),(_=h(o.button))==null||_.focus()):(g.preventDefault(),g.stopPropagation(),o.popoverState.value===1&&s?.(o.buttonId.value),o.togglePopover(),(x=h(o.button))==null||x.focus()))}function b(g){g.preventDefault(),g.stopPropagation()}return()=>{let g=o.popoverState.value===0,_={open:g},{id:x,...P}=e,A=u.value?{ref:i,type:v.value,onKeydown:p,onClick:f}:{ref:i,id:x,type:v.value,"aria-expanded":e.disabled?void 0:o.popoverState.value===0,"aria-controls":h(o.panel)?o.panelId.value:void 0,disabled:e.disabled?!0:void 0,onKeydown:p,onKeyup:d,onClick:f,onMousedown:b},N=it();function q(){let z=h(o.panel);if(!z)return;function ie(){W(N.value,{[G.Forwards]:()=>Z(z,B.First),[G.Backwards]:()=>Z(z,B.Last)})===ge.Error&&Z(me().filter(ue=>ue.dataset.headlessuiFocusGuard!=="true"),W(N.value,{[G.Forwards]:B.Next,[G.Backwards]:B.Previous}),{relativeTo:h(o.button)})}ie()}return de(j,[K({ourProps:A,theirProps:{...n,...P},slot:_,attrs:n,slots:r,name:"PopoverButton"}),g&&!u.value&&o.isPortalled.value&&de(Ee,{id:m,features:be.Focusable,"data-headlessui-focus-guard":!0,as:"button",type:"button",onFocus:q})])}}});$({name:"PopoverOverlay",props:{as:{type:[Object,String],default:"div"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0}},setup(e,{attrs:n,slots:r}){let t=ke("PopoverOverlay"),o=`headlessui-popover-overlay-${X()}`,a=Ae(),l=S(()=>a!==null?(a.value&U.Open)===U.Open:t.popoverState.value===0);function s(){t.closePopover()}return()=>{let c={open:t.popoverState.value===0};return K({ourProps:{id:o,"aria-hidden":!0,onClick:s},theirProps:e,slot:c,attrs:n,slots:r,features:le.RenderStrategy|le.Static,visible:l.value,name:"PopoverOverlay"})}}});let no=$({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-${X()}`}},inheritAttrs:!1,setup(e,{attrs:n,slots:r,expose:t}){let{focus:o}=e,a=ke("PopoverPanel"),l=S(()=>se(a.panel)),s=`headlessui-focus-sentinel-before-${X()}`,c=`headlessui-focus-sentinel-after-${X()}`;t({el:a.panel,$el:a.panel}),ae(()=>{a.panelId.value=e.id}),Me(()=>{a.panelId.value=null}),ve(ft,a.panelId),J(()=>{var b,g;if(!o||a.popoverState.value!==0||!a.panel)return;let _=(b=l.value)==null?void 0:b.activeElement;(g=h(a.panel))!=null&&g.contains(_)||Z(h(a.panel),B.First)});let u=Ae(),i=S(()=>u!==null?(u.value&U.Open)===U.Open:a.popoverState.value===0);function m(b){var g,_;switch(b.key){case E.Escape:if(a.popoverState.value!==0||!h(a.panel)||l.value&&!((g=h(a.panel))!=null&&g.contains(l.value.activeElement)))return;b.preventDefault(),b.stopPropagation(),a.closePopover(),(_=h(a.button))==null||_.focus();break}}function v(b){var g,_,x,P,A;let N=b.relatedTarget;N&&h(a.panel)&&((g=h(a.panel))!=null&&g.contains(N)||(a.closePopover(),((x=(_=h(a.beforePanelSentinel))==null?void 0:_.contains)!=null&&x.call(_,N)||(A=(P=h(a.afterPanelSentinel))==null?void 0:P.contains)!=null&&A.call(P,N))&&N.focus({preventScroll:!0})))}let p=it();function d(){let b=h(a.panel);if(!b)return;function g(){W(p.value,{[G.Forwards]:()=>{var _;Z(b,B.First)===ge.Error&&((_=h(a.afterPanelSentinel))==null||_.focus())},[G.Backwards]:()=>{var _;(_=h(a.button))==null||_.focus({preventScroll:!0})}})}g()}function f(){let b=h(a.panel);if(!b)return;function g(){W(p.value,{[G.Forwards]:()=>{let _=h(a.button),x=h(a.panel);if(!_)return;let P=me(),A=P.indexOf(_),N=P.slice(0,A+1),q=[...P.slice(A+1),...N];for(let z of q.slice())if(z.dataset.headlessuiFocusGuard==="true"||x!=null&&x.contains(z)){let ie=q.indexOf(z);ie!==-1&&q.splice(ie,1)}Z(q,B.First,{sorted:!1})},[G.Backwards]:()=>{var _;Z(b,B.Previous)===ge.Error&&((_=h(a.button))==null||_.focus())}})}g()}return()=>{let b={open:a.popoverState.value===0,close:a.close},{id:g,focus:_,...x}=e,P={ref:a.panel,id:g,onKeydown:m,onFocusout:o&&a.popoverState.value===0?v:void 0,tabIndex:-1};return K({ourProps:P,theirProps:{...n,...x},attrs:n,slot:b,slots:{...r,default:(...A)=>{var N;return[de(j,[i.value&&a.isPortalled.value&&de(Ee,{id:s,ref:a.beforePanelSentinel,features:be.Focusable,"data-headlessui-focus-guard":!0,as:"button",type:"button",onFocus:d}),(N=r.default)==null?void 0:N.call(r,...A),i.value&&a.isPortalled.value&&de(Ee,{id:c,ref:a.afterPanelSentinel,features:be.Focusable,"data-headlessui-focus-guard":!0,as:"button",type:"button",onFocus:f})])]}},features:le.RenderStrategy|le.Static,visible:i.value,name:"PopoverPanel"})}}});$({name:"PopoverGroup",props:{as:{type:[Object,String],default:"div"}},setup(e,{attrs:n,slots:r,expose:t}){let o=k(null),a=xt([]),l=S(()=>se(o));t({el:o,$el:o});function s(m){let v=a.value.indexOf(m);v!==-1&&a.value.splice(v,1)}function c(m){return a.value.push(m),()=>{s(m)}}function u(){var m;let v=l.value;if(!v)return!1;let p=v.activeElement;return(m=h(o))!=null&&m.contains(p)?!0:a.value.some(d=>{var f,b;return((f=v.getElementById(d.buttonId.value))==null?void 0:f.contains(p))||((b=v.getElementById(d.panelId.value))==null?void 0:b.contains(p))})}function i(m){for(let v of a.value)v.buttonId.value!==m&&v.close()}return ve(dt,{registerPopover:c,unregisterPopover:s,isFocusWithinPopoverGroup:u,closeOthers:i}),()=>K({ourProps:{ref:o},theirProps:e,slot:{},attrs:n,slots:r,name:"PopoverGroup"})}});const oo=e=>{const n=S(()=>e.categoryTree.pictures?.[0]),r=S(()=>e.categoryTree.subcategories.filter(({subcategories:c})=>c.length)),t=S(()=>{let c=r.value.length;return n.value&&(c+=1),r.value.length<e.categoryTree.subcategories.length&&(c+=1),c}),o=S(()=>(e.megaMenuMaxCols||7)>=t.value),a=S(()=>o.value?e.categoryTree.subcategories.filter(({subcategories:c})=>!c.length):e.categoryTree.subcategories),l=S(()=>o.value?e.categoryTree.subcategories.filter(({subcategories:c})=>c.length):e.categoryTree.subcategories),s=S(()=>o.value?t.value:n.value?2:1);return{categoryPicture:n,isMegaMenu:o,subcategoryLinks:a,subcategoryCols:l,countMenuCols:s}},ro=$({__name:"ShopHeaderSubmenu",props:{categoryTree:null},setup(e,{expose:n}){n();const r=e,{categoryPicture:t,subcategoryLinks:o,subcategoryCols:a,countMenuCols:l}=oo(r),s={props:r,categoryPicture:t,subcategoryLinks:o,subcategoryCols:a,countMenuCols:l,get Popover(){return vt},get PopoverButton(){return to},get PopoverPanel(){return no}};return Object.defineProperty(s,"__isScriptSetup",{enumerable:!1,value:!0}),s}}),ao={class:"relative"},lo={class:"flex gap-6 w-full"},so={key:0,class:"flex-1"},io=["href"],uo=["href"],co={class:"text-sm text-base-600 mt-1 mb-1.5"},po=["href"],fo=["href"];function vo(e,n,r,t,o,a){const l=ee("AImg"),s=ee("Fade");return w(),L(t.Popover,null,{default:O(({open:c})=>[T(t.PopoverButton,{class:"outline-none"},{default:O(()=>[te(e.$slots,"button",We(Ke({open:c})))]),_:2},1024),y("div",ao,[T(s,null,{default:O(()=>[T(t.PopoverPanel,{class:C(["absolute z-20 top-3 left-1/2 -translate-x-1/2 !transform px-6 py-4 rounded-md backdrop-blur-md shadow bg-white/80 text-base text-base-700",t.countMenuCols===1?"w-60":t.countMenuCols===2?`w-screen ${t.categoryPicture?"max-w-lg":"max-w-sm"}`:t.countMenuCols===3?`w-screen ${t.categoryPicture?"max-w-xl":"max-w-md"}`:t.countMenuCols<6?"w-screen max-w-3xl":"w-screen max-w-5xl"])},{default:O(()=>[y("div",lo,[t.subcategoryLinks.length?(w(),I("ul",so,[(w(!0),I(j,null,Y(t.subcategoryLinks,(u,i)=>(w(),I("li",{key:`link-${i}`,class:C(t.subcategoryLinks.length>10?"text-sm mb-1":"mb-2")},[y("a",{href:`/${u.slug}`,class:"hover:text-primary"},[y("h3",null,M(u.name),1)],8,io)],2))),128))])):R("",!0),(w(!0),I(j,null,Y(t.subcategoryCols,(u,i)=>(w(),I("div",{key:u._id,class:"flex-1"},[y("a",{href:`/${u.slug}`,class:"hover:text-primary"},[y("h3",null,M(u.name),1)],8,uo),y("ul",co,[(w(!0),I(j,null,Y(u.subcategories,(m,v)=>(w(),I("li",{key:`${i}-${v}`,class:"mb-0.5"},[y("a",{href:`/${m.slug}`,class:"hover:text-primary hover:underline"},[y("h3",null,M(m.name),1)],8,po)]))),128))])]))),128)),t.categoryPicture?(w(),I("div",{key:1,class:C(t.countMenuCols===2?"basis-1/2":t.countMenuCols<5?"basis-2/5":"basis-1/3")},[T(l,{picture:t.categoryPicture,class:"ml-auto rounded"},null,8,["picture"])],2)):R("",!0)]),y("a",{href:`/${r.categoryTree.slug}`,class:"block mt-1 text-xs text-base-600 leading-snug underline"},M("Ver toda a categoria $1".replace("$1",r.categoryTree.name)),9,fo)]),_:1},8,["class"])]),_:1})])]),_:3})}const mo=V(ro,[["render",vo]]),ho=$({__name:"ShopHeaderMenu",props:{inlineMenuTrees:null},setup(e,{expose:n}){n();const r=e,t=S(()=>!!r.inlineMenuTrees.find(({subcategories:a})=>!a.length)),o={props:r,hasOneLevelSubcategories:t,ShopHeaderSubmenu:mo};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}}),go={class:"hover:text-primary group"},bo=["href"],_o={class:"inline"};function yo(e,n,r,t,o,a){return w(),I("nav",null,[y("ul",{class:C(["flex gap-4 xl:gap-5 text-base-700",r.inlineMenuTrees.length<7?"text-base":"text-sm"])},[(w(!0),I(j,null,Y(r.inlineMenuTrees,(l,s)=>(w(),I("li",{key:s},[l.subcategories.length?(w(),L(t.ShopHeaderSubmenu,{key:0,"category-tree":l},{button:O(({open:c})=>[y("span",go,[y("h3",{class:C(["group-hover:underline inline",[r.inlineMenuTrees.length<7?"decoration-2":null,c?"underline":null]])},M(l.name),3),t.hasOneLevelSubcategories?(w(),I("i",{key:0,class:C(["i-chevron-down ml-1 transition-transform text-base-400 group-hover:text-primary-subtle",c?"rotate-180":null])},null,2)):R("",!0)])]),_:2},1032,["category-tree"])):(w(),I("a",{key:1,href:`/${l.slug}`,class:C(["hover:text-primary hover:underline",r.inlineMenuTrees.length<7?"decoration-2":null])},[y("h3",_o,M(l.name),1)],10,bo))]))),128))],2)])}const wo=V(ho,[["render",yo]]),So={},xo={class:"w-full h-40 bg-base-300"};function ko(e,n){return w(),I("div",xo)}const Po=V(So,[["render",ko]]),Io=$({__name:"AccountMenu",props:{serviceLinks:null},setup(e,{expose:n}){n();const r={get Menu(){return Xn},get MenuButton(){return Jn},get MenuItems(){return qn},get MenuItem(){return Qn},get socialNetworks(){return _e},get customerName(){return he},get initializeFirebaseAuth(){return qe},get isLogged(){return Xe},get logout(){return $e},AccountLink:Qe,SocialNetworkLink:Ze};return Object.defineProperty(r,"__isScriptSetup",{enumerable:!1,value:!0}),r}}),Oo={key:0},To={class:"p-3 text-base-600"},Eo={class:"list-none"},Mo=y("i",{class:"i-favorites mr-1"},null,-1),Co={class:"flex justify-center gap-2 p-2 text-base-500 text-base"},$o=y("span",{class:"text-base-600"},M("Sair"),-1),Ao=y("i",{class:"i-logout text-lg ml-1"},null,-1),No=[$o,Ao];function Lo(e,n,r,t,o,a){const l=ee("ALink"),s=ee("Fade");return w(),L(t.Menu,{as:"div",class:"relative text-center text-sm text-base-800"},{default:O(({open:c})=>[c?(w(),I("div",Oo,[n[0]||(Le(-1),n[0]=y("span",null,[Q(M(t.initializeFirebaseAuth()),1)]),Le(1),n[0])])):R("",!0),T(t.MenuButton,{class:"outline-none"},{default:O(()=>[te(e.$slots,"button",We(Ke({open:c})))]),_:2},1024),T(s,null,{default:O(()=>[T(t.MenuItems,{class:"absolute -right-8 mt-2 w-56 rounded-md shadow ring-1 ring-black ring-opacity-5 bg-white divide-y divide-base-100 focus:outline-none"},{default:O(()=>[y("div",To,[Q(M(`Olá ${t.customerName||"Visitante"}`)+" ",1),T(t.AccountLink,{class:"block py-1.5 rounded primary hover:primary-bold my-1"},{default:O(()=>[Q(M("Acessar minha conta"))]),_:1}),t.isLogged?R("",!0):(w(),L(t.AccountLink,{key:0,class:"block font-medium text-primary hover:text-primary-bold","is-sign-up":""},{default:O(()=>[Q(M("Criar uma conta"))]),_:1}))]),y("ul",Eo,[T(t.MenuItem,{as:"li"},{default:O(({active:u})=>[T(t.AccountLink,{to:"orders",class:C(["block p-2",u?"bg-base-100 text-primary":null])},{default:O(()=>[Q(M("Meus pedidos"))]),_:2},1032,["class"])]),_:1}),T(t.MenuItem,{as:"li"},{default:O(({active:u})=>[T(t.AccountLink,{to:"favorites",class:C(["block p-2",u?"bg-base-100 text-primary":null])},{default:O(()=>[Mo,Q(" "+M("Meus favoritos"))]),_:2},1032,["class"])]),_:1}),(w(!0),I(j,null,Y(r.serviceLinks,({title:u,href:i},m)=>(w(),L(t.MenuItem,{as:"li",key:`s-${m}`},{default:O(({active:v})=>[T(l,{href:i,class:C(["block p-2",v?"bg-base-100 text-primary":null])},{default:O(()=>[Q(M(u),1)]),_:2},1032,["href","class"])]),_:2},1024))),128)),T(t.MenuItem,{as:"li"},{default:O(()=>[y("div",Co,[(w(!0),I(j,null,Y(t.socialNetworks,(u,i)=>(w(),I("span",{key:i},[T(t.SocialNetworkLink,{network:i,class:"p-1 hover:text-primary"},null,8,["network"])]))),128))])]),_:1}),t.isLogged?(w(),L(t.MenuItem,{key:0,as:"li"},{default:O(()=>[y("button",{onClick:n[1]||(n[1]=(...u)=>t.logout&&t.logout(...u)),class:"p-2 text-right text-base-800"},No)]),_:1})):R("",!0)])]),_:1})]),_:1})]),_:3})}const Fo=V(Io,[["render",Lo]]),Do=$({__name:"ShopHeader",props:{categories:null,menuCategorySlugs:null,menuRandomCategories:null,isAlphabeticalSortSubmenu:{type:Boolean},serviceLinks:null},setup(e,{expose:n}){n();const r=e,t=k(null),{isSticky:o,positionY:a,categoryTrees:l,inlineMenuTrees:s}=$t({...r,header:t}),c=k(!1),u=k(!1),i={props:r,header:t,isSticky:o,positionY:a,categoryTrees:l,inlineMenuTrees:s,isSidenavOpen:c,isSearchOpen:u,Drawer:Bt,ShopSidenav:Tn,ShopHeaderMenu:wo,SearchModal:Po,AccountMenu:Fo};return Object.defineProperty(i,"__isScriptSetup",{enumerable:!1,value:!0}),i}}),Ro={class:"container lg:max-w-7xl mx-auto px-1 lg:pl-3 grid grid-flow-col grid-cols-3 justify-between items-center lg:grid-cols-none lg:auto-cols-max"},jo={class:"lg:hidden"},Bo={class:"px-2 flex justify-end items-center gap-3 lg:gap-4 text-base-800"},Ho=y("i",{class:"i-search w-7 h-7 hover:text-primary hover:scale-110 active:scale-125"},null,-1),Uo=[Ho],Vo=y("button",{"aria-label":"Abrir carrinho"},[y("i",{class:"i-shopping-cart w-7 h-7 hover:text-primary hover:scale-110 active:scale-125"})],-1);function Wo(e,n,r,t,o,a){return w(),I("header",{ref:"header",class:C(["relative top-0 z-50 transition-colors",[t.isSticky&&!t.isSidenavOpen?"bg-white/80":"bg-white",t.isSticky?"backdrop-blur-md shadow py-2 md:py-3":"py-3 sm:py-4 md:py-5"]])},[y("div",Ro,[y("div",jo,[y("button",{class:"px-2 my-1","aria-label":"Abrir/fechar menu",onClick:n[0]||(n[0]=l=>t.isSidenavOpen=!t.isSidenavOpen)},[y("i",{class:C(["text-base-500 text-3xl",t.isSidenavOpen?"i-close":"i-menu"])},null,2)])]),te(e.$slots,"logo"),T(t.ShopHeaderMenu,Fe({class:"hidden lg:block"},{inlineMenuTrees:t.inlineMenuTrees}),null,16),y("div",Bo,[y("button",{"aria-label":"Buscar produtos",onClick:n[1]||(n[1]=l=>t.isSearchOpen=!t.isSearchOpen)},Uo),T(t.AccountMenu,{class:"hidden sm:block","aria-label":"Minha conta","service-links":r.serviceLinks},{button:O(({open:l})=>[y("i",{class:C(["i-account w-7 h-7 hover:text-primary hover:scale-110 active:scale-125",l?"text-black scale-110":null])},null,2)]),_:1},8,["service-links"]),Vo])]),T(t.Drawer,{modelValue:t.isSidenavOpen,"onUpdate:modelValue":n[2]||(n[2]=l=>t.isSidenavOpen=l),"has-close-button":!1,position:"absolute",class:C(t.isSticky?"mt-2 md:mt-3":"mt-3 sm:mt-4 md:mt-5"),style:Ve({height:`calc(100vh - ${t.positionY}px + .5rem)`})},{default:O(()=>[T(t.ShopSidenav,Fe({class:"bg-white pt-6"},{categoryTrees:t.categoryTrees}),null,16)]),_:1},8,["modelValue","class","style"]),T(t.Drawer,{modelValue:t.isSearchOpen,"onUpdate:modelValue":n[3]||(n[3]=l=>t.isSearchOpen=l),"has-close-button":!1,placement:"top"},{default:O(()=>[T(t.SearchModal)]),_:1},8,["modelValue"])],2)}const qo=V(Do,[["render",Wo]]);export{qo as default};
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
import { Picture } from '@astrojs/image/components';
|
|
3
|
-
import { tryImageSize, getAspectRatio } from '@@sf/ssr/image';
|
|
4
|
-
|
|
5
|
-
type PictureProps = Parameters<typeof Picture>[0];
|
|
6
|
-
|
|
7
|
-
export type Props = Omit<PictureProps, 'aspectRatio'> & {
|
|
8
|
-
aspectRatio?: PictureProps['aspectRatio'],
|
|
9
|
-
fetchpriority?: 'high' | 'low' | 'auto',
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
const props = Astro.props as PictureProps;
|
|
13
|
-
if (
|
|
14
|
-
(!props.width || !props.height)
|
|
15
|
-
&& !props.aspectRatio
|
|
16
|
-
&& typeof props.src === 'string'
|
|
17
|
-
) {
|
|
18
|
-
const { width, height } = tryImageSize(props.src);
|
|
19
|
-
if (height) {
|
|
20
|
-
props.aspectRatio = getAspectRatio({ width, height });
|
|
21
|
-
props.width = width;
|
|
22
|
-
props.height = height;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
---
|
|
26
|
-
|
|
27
|
-
<Picture {...props} />
|