cloudcommerce 0.2.2 → 0.3.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 (163) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/ecomplus-stores/monocard/functions/ssr/package.json +0 -2
  3. package/ecomplus-stores/tia-sonia/functions/ssr/package.json +0 -2
  4. package/package.json +7 -7
  5. package/packages/api/package.json +1 -1
  6. package/packages/apps/correios/package.json +2 -2
  7. package/packages/apps/custom-payment/package.json +1 -1
  8. package/packages/apps/custom-shipping/package.json +1 -1
  9. package/packages/apps/datafrete/package.json +2 -2
  10. package/packages/apps/discounts/package.json +1 -1
  11. package/packages/apps/emails/package.json +1 -1
  12. package/packages/apps/fb-conversions/lib/fb-conversions-events.js +131 -111
  13. package/packages/apps/fb-conversions/lib/fb-conversions-events.js.map +1 -1
  14. package/packages/apps/fb-conversions/lib/functions-lib/create-fb-objects.js +69 -0
  15. package/packages/apps/fb-conversions/lib/functions-lib/create-fb-objects.js.map +1 -0
  16. package/packages/apps/fb-conversions/package.json +1 -1
  17. package/packages/apps/fb-conversions/src/fb-conversions-events.ts +173 -125
  18. package/packages/apps/fb-conversions/src/functions-lib/create-fb-objects.ts +104 -0
  19. package/packages/apps/frenet/package.json +2 -2
  20. package/packages/apps/galaxpay/package.json +2 -2
  21. package/packages/apps/google-analytics/package.json +2 -2
  22. package/packages/apps/infinitepay/package.json +2 -2
  23. package/packages/apps/jadlog/package.json +2 -2
  24. package/packages/apps/loyalty-points/package.json +1 -1
  25. package/packages/apps/melhor-envio/CHANGELOG.md +1 -0
  26. package/packages/apps/melhor-envio/README.md +1 -0
  27. package/packages/apps/melhor-envio/events.js +1 -0
  28. package/packages/apps/melhor-envio/lib/functions-lib/database.d.ts +18 -0
  29. package/packages/apps/melhor-envio/lib/functions-lib/database.js +115 -0
  30. package/packages/apps/melhor-envio/lib/functions-lib/database.js.map +1 -0
  31. package/packages/apps/melhor-envio/lib/functions-lib/events-to-melhor-envio.d.ts +7 -0
  32. package/packages/apps/melhor-envio/lib/functions-lib/events-to-melhor-envio.js +112 -0
  33. package/packages/apps/melhor-envio/lib/functions-lib/events-to-melhor-envio.js.map +1 -0
  34. package/packages/apps/melhor-envio/lib/functions-lib/new-label.d.ts +42 -0
  35. package/packages/apps/melhor-envio/lib/functions-lib/new-label.js +185 -0
  36. package/packages/apps/melhor-envio/lib/functions-lib/new-label.js.map +1 -0
  37. package/packages/apps/melhor-envio/lib/functions-lib/order-is-valid.d.ts +5 -0
  38. package/packages/apps/melhor-envio/lib/functions-lib/order-is-valid.js +40 -0
  39. package/packages/apps/melhor-envio/lib/functions-lib/order-is-valid.js.map +1 -0
  40. package/packages/apps/melhor-envio/lib/functions-lib/tracking-codes.d.ts +2 -0
  41. package/packages/apps/melhor-envio/lib/functions-lib/tracking-codes.js +164 -0
  42. package/packages/apps/melhor-envio/lib/functions-lib/tracking-codes.js.map +1 -0
  43. package/packages/apps/melhor-envio/lib/index.d.ts +1 -0
  44. package/packages/apps/melhor-envio/lib/index.js +2 -0
  45. package/packages/apps/melhor-envio/lib/index.js.map +1 -0
  46. package/packages/apps/melhor-envio/lib/melhor-envio-events.d.ts +6 -0
  47. package/packages/apps/melhor-envio/lib/melhor-envio-events.js +17 -0
  48. package/packages/apps/melhor-envio/lib/melhor-envio-events.js.map +1 -0
  49. package/packages/apps/melhor-envio/lib/melhor-envio.d.ts +2 -0
  50. package/packages/apps/melhor-envio/lib/melhor-envio.js +6 -0
  51. package/packages/apps/melhor-envio/lib/melhor-envio.js.map +1 -0
  52. package/packages/apps/melhor-envio/lib-mjs/calculate-melhor-envio.mjs +341 -0
  53. package/packages/apps/melhor-envio/lib-mjs/functions/client-melhor-envio.mjs +14 -0
  54. package/packages/apps/melhor-envio/lib-mjs/functions/error-handling.mjs +62 -0
  55. package/packages/apps/melhor-envio/lib-mjs/functions/new-shipment.mjs +119 -0
  56. package/packages/apps/melhor-envio/package.json +36 -0
  57. package/packages/apps/melhor-envio/src/functions-lib/database.ts +140 -0
  58. package/packages/apps/melhor-envio/src/functions-lib/events-to-melhor-envio.ts +137 -0
  59. package/packages/apps/melhor-envio/src/functions-lib/new-label.ts +214 -0
  60. package/packages/apps/melhor-envio/src/functions-lib/order-is-valid.ts +51 -0
  61. package/packages/apps/melhor-envio/src/functions-lib/tracking-codes.ts +191 -0
  62. package/packages/apps/melhor-envio/src/index.ts +1 -0
  63. package/packages/apps/melhor-envio/src/melhor-envio-events.ts +24 -0
  64. package/packages/apps/melhor-envio/src/melhor-envio.ts +7 -0
  65. package/packages/apps/melhor-envio/tsconfig.json +6 -0
  66. package/packages/apps/mercadopago/package.json +2 -2
  67. package/packages/apps/pagarme/package.json +2 -2
  68. package/packages/apps/paghiper/package.json +3 -3
  69. package/packages/apps/pix/package.json +2 -2
  70. package/packages/apps/tiny-erp/package.json +2 -2
  71. package/packages/cli/package.json +1 -1
  72. package/packages/config/package.json +1 -1
  73. package/packages/emails/package.json +3 -3
  74. package/packages/events/lib/firebase.js +2 -0
  75. package/packages/events/lib/firebase.js.map +1 -1
  76. package/packages/events/package.json +2 -1
  77. package/packages/events/src/firebase.ts +2 -0
  78. package/packages/firebase/lib/config.d.ts +4 -0
  79. package/packages/firebase/lib/config.js +8 -0
  80. package/packages/firebase/lib/config.js.map +1 -1
  81. package/packages/firebase/package.json +2 -2
  82. package/packages/firebase/src/config.ts +9 -0
  83. package/packages/i18n/lib/en_us/i19buyTogether.txt +1 -0
  84. package/packages/i18n/lib/en_us/i19buyTogetherWith.txt +1 -0
  85. package/packages/i18n/lib/en_us/i19report.txt +1 -0
  86. package/packages/i18n/lib/en_us/i19toggleMenu.txt +1 -0
  87. package/packages/i18n/lib/en_us/i19uponRequest.txt +1 -0
  88. package/packages/i18n/lib/en_us/i19usedPoints.txt +1 -0
  89. package/packages/i18n/lib/en_us.d.ts +6 -0
  90. package/packages/i18n/lib/en_us.js +6 -0
  91. package/packages/i18n/lib/en_us.js.map +1 -1
  92. package/packages/i18n/lib/pt_br/i19buyTogether.txt +1 -0
  93. package/packages/i18n/lib/pt_br/i19buyTogetherWith.txt +1 -0
  94. package/packages/i18n/lib/pt_br/i19report.txt +1 -0
  95. package/packages/i18n/lib/pt_br/i19toggleMenu.txt +1 -0
  96. package/packages/i18n/lib/pt_br/i19uponRequest.txt +1 -0
  97. package/packages/i18n/lib/pt_br/i19usedPoints.txt +1 -0
  98. package/packages/i18n/lib/pt_br.d.ts +6 -0
  99. package/packages/i18n/lib/pt_br.js +6 -0
  100. package/packages/i18n/lib/pt_br.js.map +1 -1
  101. package/packages/i18n/package.json +1 -1
  102. package/packages/i18n/src/en_us.ts +6 -0
  103. package/packages/i18n/src/pt_br.ts +6 -0
  104. package/packages/modules/lib/firebase/call-app-module.js +5 -0
  105. package/packages/modules/lib/firebase/call-app-module.js.map +1 -1
  106. package/packages/modules/package.json +3 -2
  107. package/packages/modules/src/firebase/call-app-module.ts +5 -0
  108. package/packages/passport/package.json +1 -1
  109. package/packages/ssr/package.json +6 -7
  110. package/packages/storefront/.eslintrc.cjs +1 -1
  111. package/packages/storefront/astro.config.mjs +8 -1
  112. package/packages/storefront/dist/client/_astro/PitchBar.209c6645.js +1 -0
  113. package/packages/storefront/dist/client/_astro/Prices.6fbcb5ac.js +1 -0
  114. package/packages/storefront/dist/client/_astro/Prices.vue_vue_type_script_setup_true_lang.44f23680.js +1 -0
  115. package/packages/storefront/dist/client/_astro/ProductCard.ee5eee91.js +1 -0
  116. package/packages/storefront/dist/client/_astro/ShopHeader.b801c785.js +1 -0
  117. package/packages/storefront/dist/client/_astro/_...slug_.32968ccf.css +1 -0
  118. package/packages/storefront/dist/client/_astro/client.5a46cc02.js +1 -0
  119. package/packages/storefront/dist/client/_astro/ecom-utils.92f137f6.js +1 -0
  120. package/packages/storefront/dist/client/_astro/hoisted.6edd7364.js +1 -0
  121. package/packages/storefront/dist/client/_astro/index.844a4059.js +1 -0
  122. package/packages/storefront/dist/client/{assets → _astro}/index.90df622b.css +0 -0
  123. package/packages/storefront/dist/client/_astro/modules-info.d9373e21.js +1 -0
  124. package/packages/storefront/dist/client/_astro/runtime-core.esm-bundler.f04cee62.js +1 -0
  125. package/packages/storefront/dist/client/_astro/runtime-dom.esm-bundler.00313542.js +1 -0
  126. package/packages/storefront/dist/client/_astro/server.60de185d.css +1 -0
  127. package/packages/storefront/dist/client/{chunks/session-utm.ceebe967.js → _astro/session-utm.72684b84.js} +0 -0
  128. package/packages/storefront/dist/client/_astro/use-component-variant.58788b6e.js +1 -0
  129. package/packages/storefront/dist/client/{chunks/workbox-window.prod.es5.10f2e5ac.js → _astro/workbox-window.prod.es5.295a6886.js} +0 -0
  130. package/packages/storefront/dist/client/fallback/index.html +79 -0
  131. package/packages/storefront/dist/client/sw.js +1 -1
  132. package/packages/storefront/dist/server/chunks/astro.89bd9221.mjs +3378 -0
  133. package/packages/storefront/dist/server/chunks/pages/all.23de4e5c.mjs +2453 -0
  134. package/packages/storefront/dist/server/chunks/prerender.f40361a3.mjs +2 -0
  135. package/packages/storefront/dist/server/entry.mjs +2016 -11995
  136. package/packages/storefront/package.json +10 -11
  137. package/packages/storefront/src/lib/assets/base.css +16 -11
  138. package/packages/storefront/src/lib/components/Carousel.vue +52 -82
  139. package/packages/storefront/src/lib/components/Drawer.vue +103 -0
  140. package/packages/storefront/src/lib/components/PitchBar.vue +16 -11
  141. package/packages/storefront/src/lib/components/Prices.vue +29 -29
  142. package/packages/storefront/src/lib/components/ShopHeader.vue +82 -0
  143. package/packages/storefront/src/lib/components/StickyHeader.vue +73 -32
  144. package/packages/storefront/src/lib/components/globals/Fade.vue +10 -14
  145. package/packages/storefront/src/lib/composables/use-component-variant.ts +6 -2
  146. package/packages/storefront/src/lib/composables/use-prices.ts +4 -2
  147. package/packages/storefront/src/lib/layouts/BaseBody.astro +1 -0
  148. package/packages/storefront/src/lib/layouts/PagesHeader.astro +28 -13
  149. package/packages/storefront/src/lib/ssr/Picture.astro +7 -2
  150. package/packages/storefront/tailwind.config.cjs +4 -0
  151. package/packages/storefront/uno.config.cjs +1 -1
  152. package/packages/types/package.json +1 -1
  153. package/packages/storefront/dist/client/PitchBar.5ae15bda.js +0 -1
  154. package/packages/storefront/dist/client/Prices.248d1aae.js +0 -1
  155. package/packages/storefront/dist/client/ProductCard.4848304c.js +0 -1
  156. package/packages/storefront/dist/client/assets/_...slug_.b701cbb1.css +0 -1
  157. package/packages/storefront/dist/client/assets/server.4d9646d8.css +0 -1
  158. package/packages/storefront/dist/client/chunks/Prices.vue_vue_type_script_setup_true_lang.2d01aaa2.js +0 -1
  159. package/packages/storefront/dist/client/chunks/ecom-utils.cd6787a7.js +0 -1
  160. package/packages/storefront/dist/client/chunks/modules-info.fcab5bba.js +0 -1
  161. package/packages/storefront/dist/client/chunks/runtime-dom.esm-bundler.923790dc.js +0 -1
  162. package/packages/storefront/dist/client/client.2356f675.js +0 -1
  163. package/packages/storefront/dist/client/hoisted.11b849a7.js +0 -1
@@ -1,43 +1,84 @@
1
1
  <script setup lang="ts">
2
- import type { ImgHTMLAttributes } from 'vue';
3
- import { toRefs } from 'vue';
2
+ import {
3
+ ref,
4
+ computed,
5
+ watch,
6
+ reactive,
7
+ onMounted,
8
+ } from 'vue';
9
+ import {
10
+ promiseTimeout,
11
+ useTimeout,
12
+ useDebounceFn,
13
+ useScroll,
14
+ } from '@vueuse/core';
15
+ import useComponentVariant from '@@sf/composables/use-component-variant';
4
16
 
5
17
  export interface Props {
6
- logo?: ImgHTMLAttributes;
7
- logoAltHeading?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | null;
18
+ isShownOnScrollDown?: boolean;
8
19
  }
9
20
 
10
- const props = withDefaults(defineProps<Props>(), {
11
- logoAltHeading: 'h2',
21
+ const props = defineProps<Props>();
22
+ const header = ref<HTMLElement | null>(null);
23
+ const { ready, start } = useTimeout(100, { controls: true, immediate: false });
24
+ const height = ref(0);
25
+ if (!import.meta.env.SSR) {
26
+ onMounted(() => {
27
+ const fixHeight = () => {
28
+ height.value = header.value.offsetHeight;
29
+ start();
30
+ };
31
+ const imgs = header.value.getElementsByTagName('IMG');
32
+ let isAllLoaded = true;
33
+ for (let i = 0; i < imgs.length; i++) {
34
+ const img = imgs[i] as HTMLImageElement;
35
+ if (!img.complete || img.naturalHeight === 0) {
36
+ isAllLoaded = false;
37
+ img.onload = fixHeight;
38
+ }
39
+ }
40
+ if (isAllLoaded) {
41
+ fixHeight();
42
+ }
43
+ window.addEventListener('resize', useDebounceFn(fixHeight, 300));
44
+ });
45
+ }
46
+ const { y } = !import.meta.env.SSR ? useScroll(document) : { y: ref(0) };
47
+ const isSticky = computed(() => ready.value && y.value > height.value * 1.5);
48
+ const transition = ref('none');
49
+ watch(isSticky, async (isSetSticky) => {
50
+ if (!isSetSticky) {
51
+ start();
52
+ transition.value = 'none';
53
+ } else {
54
+ await promiseTimeout(300);
55
+ transition.value = 'opacity var(--transition-slow), transform var(--transition)';
56
+ }
57
+ });
58
+ const isScrollUp = ref(false);
59
+ watch(y, (newY, oldY) => {
60
+ isScrollUp.value = newY > 0 && newY < oldY;
12
61
  });
13
- const { logo } = toRefs(props);
62
+ const componentVariant = useComponentVariant(reactive({
63
+ ...props,
64
+ isSticky,
65
+ isScrollUp,
66
+ }));
14
67
  </script>
15
68
 
16
69
  <template>
17
- <header class="header bg-opacity-90 backdrop-blur-md
18
- sticky top-0 z-50 py-1 sm:py-2" data-sticky-header>
19
- <div class="container">
20
- <div class="grid grid-flow-col auto-cols-max justify-between items-center">
21
- <slot name="aside">
22
- <div class="header__aside md:hidden">
23
- <div class="i-bars-3-bottom-left"></div>
24
- </div>
25
- </slot>
26
- <slot name="logo" v-bind="{ logo }">
27
- <a v-if="logo" href="/">
28
- <component :is="(logo.alt && logoAltHeading) || 'span'" class="m-0">
29
- <img v-bind="logo" />
30
- </component>
31
- </a>
32
- </slot>
33
- <div class="flex items-center">
34
- <slot name="actions">
35
- <slot name="nav" />
36
- <slot name="search" />
37
- <slot name="buttons" />
38
- </slot>
39
- </div>
40
- </div>
41
- </div>
70
+ <div :style="isSticky ? `height: ${height}px` : null"></div>
71
+ <header
72
+ ref="header"
73
+ class="z-50 top-0 will-change-transform"
74
+ :class="{
75
+ 'sticky bg-white/80 backdrop-blur-md shadow py-2 md:py-3': isSticky,
76
+ 'opacity-0 -translate-y-full': isSticky && (!isScrollUp || isShownOnScrollDown),
77
+ 'py-3 sm:py-4 md:py-5': !isSticky,
78
+ }"
79
+ :style="{ transition }"
80
+ :data-sticky-header="componentVariant"
81
+ >
82
+ <slot/>
42
83
  </header>
43
84
  </template>
@@ -4,12 +4,14 @@ import { computed } from 'vue';
4
4
  export interface Props {
5
5
  speed?: 'default' | 'slow' | 'slower',
6
6
  slide?: 'down' | 'left' | 'right' | 'up',
7
+ isFloating?: boolean,
7
8
  isLeaveTo?: boolean,
8
9
  isEnterFrom?: boolean,
9
10
  }
10
11
 
11
12
  const props = withDefaults(defineProps<Props>(), {
12
13
  speed: 'default',
14
+ isFloating: false,
13
15
  isLeaveTo: true,
14
16
  isEnterFrom: true,
15
17
  });
@@ -50,32 +52,28 @@ const isSlideY = computed(() => {
50
52
  return props.slide === 'down' || props.slide === 'up';
51
53
  });
52
54
  const height = computed(() => {
55
+ if (props.isFloating) return null;
53
56
  return isSlideY.value ? 0 : 'auto';
54
57
  });
55
58
  const width = computed(() => {
59
+ if (props.isFloating) return null;
56
60
  return props.slide && !isSlideY.value ? 0 : 'auto';
57
61
  });
58
62
  const enterFromHeight = computed(() => {
59
63
  return props.isEnterFrom ? height.value : 'auto';
60
64
  });
61
- const leaveToHeight = computed(() => {
62
- return props.isLeaveTo ? height.value : 'auto';
63
- });
64
65
  const enterFromWidth = computed(() => {
65
66
  return props.isEnterFrom ? width.value : 'auto';
66
67
  });
67
- const leaveToWidth = computed(() => {
68
- return props.isLeaveTo ? width.value : 'auto';
69
- });
70
68
  const willChange = computed(() => {
71
69
  let properties = 'opacity';
72
70
  if (transform.value !== 'none') properties += ', transform';
73
- if (height.value !== 'auto') properties += ', height';
74
- if (width.value !== 'auto') properties += ', width';
71
+ if (height.value === 0) properties += ', height';
72
+ if (width.value === 0) properties += ', width';
75
73
  return properties;
76
74
  });
77
75
  const onEnter = (el: HTMLElement) => {
78
- if (props.slide) {
76
+ if (props.slide && !props.isFloating && props.isEnterFrom) {
79
77
  if (isSlideY.value) {
80
78
  el.style.width = getComputedStyle(el).width;
81
79
  el.style.height = 'auto';
@@ -104,12 +102,12 @@ const onEnter = (el: HTMLElement) => {
104
102
  }
105
103
  };
106
104
  const onAfterEnter = (el: HTMLElement) => {
107
- if (props.slide) {
108
- el.style[isSlideY.value ? 'height' : 'width'] = 'auto';
105
+ if (props.slide && !props.isFloating && props.isEnterFrom) {
106
+ el.style[isSlideY.value ? 'height' : 'width'] = null;
109
107
  }
110
108
  };
111
109
  const onLeave = (el: HTMLElement) => {
112
- if (props.slide) {
110
+ if (props.slide && !props.isFloating && props.isLeaveTo) {
113
111
  if (isSlideY.value) {
114
112
  el.style.height = getComputedStyle(el).height;
115
113
  } else {
@@ -165,7 +163,5 @@ const onLeave = (el: HTMLElement) => {
165
163
  .sf-fade-leave-to {
166
164
  opacity: v-bind(leaveToOpacity);
167
165
  transform: v-bind(leaveToTransform);
168
- height: v-bind(leaveToHeight);
169
- width: v-bind(leaveToWidth);
170
166
  }
171
167
  </style>
@@ -1,13 +1,17 @@
1
1
  import { computed } from 'vue';
2
2
 
3
- export default (props: Record<string, any>) => {
3
+ const useComponentVariant = (props: Record<string, any>, stringProps?: string[]) => {
4
4
  return computed(() => {
5
5
  let variantName = '';
6
6
  Object.keys(props).forEach((prop) => {
7
- if (props[prop] === true) {
7
+ if (props[prop] === true && prop !== 'modelValue') {
8
8
  variantName += ` ${prop.replace(/^(is|has)/, '')}`;
9
+ } else if (stringProps && stringProps.includes(prop)) {
10
+ variantName += ` ${prop}:${props[prop]}`;
9
11
  }
10
12
  });
11
13
  return variantName.slice(1);
12
14
  });
13
15
  };
16
+
17
+ export default useComponentVariant;
@@ -7,7 +7,7 @@ export interface Props {
7
7
  product?: Partial<Products> & { price: number, final_price?: number };
8
8
  price?: number;
9
9
  basePrice?: number;
10
- isAmountTotal?: boolean,
10
+ isAmountTotal?: boolean;
11
11
  installmentsOption?: ListPaymentsResponse['installments_option'];
12
12
  discountOption?: ListPaymentsResponse['discount_option'];
13
13
  loyaltyPointsProgram?: ListPaymentsResponse['loyalty_points_programs']['k'];
@@ -27,7 +27,7 @@ const getPriceWithDiscount = (price: number, discount: Props['discountOption'])
27
27
  return price;
28
28
  };
29
29
 
30
- export default (props: Props) => {
30
+ const usePrices = (props: Props) => {
31
31
  const _product = computed(() => {
32
32
  return props.product || {
33
33
  price: props.price || 0,
@@ -177,3 +177,5 @@ export default (props: Props) => {
177
177
  cashbackValue,
178
178
  };
179
179
  };
180
+
181
+ export default usePrices;
@@ -14,4 +14,5 @@ export interface Props {
14
14
  <body>
15
15
  <slot />
16
16
  <slot name="before-body-end" />
17
+ <div id="teleported"></div>
17
18
  </body>
@@ -5,7 +5,7 @@ import type CmsContacts from '@@sf/types/cms-contacts';
5
5
  import type { PageContext } from '@@sf/ssr-context';
6
6
  import Picture from '@@sf/ssr/Picture.astro';
7
7
  import PitchBar, { Props as PitchBarProps } from '@@sf/components/PitchBar.vue';
8
- import StickyHeader from '@@sf/components/StickyHeader.vue';
8
+ import ShopHeader from '@@sf/components/ShopHeader.vue';
9
9
 
10
10
  export interface Props {
11
11
  pageContext: PageContext;
@@ -37,23 +37,38 @@ const LogoHeading = Astro.props.logoHeading || (isHomepage ? 'h1' : 'h2');
37
37
 
38
38
  <Fragment>
39
39
  <slot name="pitch-bar">
40
- {pitchBar.slides.length && <PitchBar {...pitchBar} client:idle />}
40
+ {pitchBar.slides.length > 1 && <PitchBar {...pitchBar} client:idle />}
41
+ {pitchBar.slides.length === 1 && <PitchBar {...pitchBar} />}
41
42
  </slot>
42
43
  <slot name="sticky-header">
43
- <StickyHeader>
44
+ <ShopHeader client:load>
44
45
  <Fragment slot="logo">
45
46
  <slot name="logo">
46
- <LogoHeading>
47
- <Picture
48
- src={logoSrc}
49
- alt={settings.name}
50
- widths={[300]}
51
- sizes="150px"
52
- fetchpriority="high"
53
- />
54
- </LogoHeading>
47
+ <a href="/">
48
+ <LogoHeading>
49
+ <Picture
50
+ src={logoSrc}
51
+ alt={settings.name}
52
+ widths={[300]}
53
+ sizes="150px"
54
+ fetchpriority="high"
55
+ class="hover:drop-shadow-sm"
56
+ />
57
+ </LogoHeading>
58
+ </a>
55
59
  </slot>
56
60
  </Fragment>
57
- </StickyHeader>
61
+ </ShopHeader>
58
62
  </slot>
59
63
  </Fragment>
64
+
65
+ <style is:global>
66
+ /*
67
+ [data-pitch-bar] {
68
+ @apply bg-slate-300;
69
+ }
70
+ [data-pitch-bar-controls] > * {
71
+ @apply bg-slate-300;
72
+ }
73
+ */
74
+ </style>
@@ -2,9 +2,14 @@
2
2
  import { Picture } from '@astrojs/image/components';
3
3
  import { getAspectRatio } from '@@sf/ssr/image';
4
4
 
5
- export type Props = Parameters<typeof Picture>[0];
5
+ type PictureProps = Parameters<typeof Picture>[0];
6
6
 
7
- const props = Astro.props as Props;
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;
8
13
  if (!props.aspectRatio && typeof props.src === 'string') {
9
14
  props.aspectRatio = getAspectRatio(props.src);
10
15
  }
@@ -44,6 +44,10 @@ let defaultThemeOptions = {
44
44
  'chevron-left': 'chevron-left',
45
45
  'chevron-up': 'chevron-up',
46
46
  'chevron-down': 'chevron-down',
47
+ menu: 'bars-3-bottom-left',
48
+ search: 'magnifying-glass',
49
+ account: 'user-circle',
50
+ close: 'x-mark',
47
51
  },
48
52
  };
49
53
  if (globalThis.storefront_theme_options) {
@@ -75,6 +75,7 @@ const genUnoCSSConfig = (themeOptions = {}) => {
75
75
  preflights,
76
76
  rules,
77
77
  shortcuts: [
78
+ [/^i-([^:]+)$/, ([, icon]) => `i-${generalIcons}:${icon}`],
78
79
  ...brandIconsShortcuts.map((brand) => {
79
80
  return typeof brand === 'string'
80
81
  ? { [`i-${brand}`]: `i-${brandIcons}:${brand}` }
@@ -88,7 +89,6 @@ const genUnoCSSConfig = (themeOptions = {}) => {
88
89
  ...Object.keys(iconAliases).map((alias) => {
89
90
  return { [`i-${alias}`]: `i-${generalIcons}:${iconAliases[alias]}` };
90
91
  }),
91
- [/^i-([^:]+)$/, ([, icon]) => `i-${generalIcons}:${icon}`],
92
92
  ],
93
93
  theme: {
94
94
  ...theme,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/types",
3
3
  "type": "module",
4
- "version": "0.2.2",
4
+ "version": "0.3.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{v as Oe}from"./chunks/runtime-dom.esm-bundler.923790dc.js";import{p as Te}from"./chunks/modules-info.fcab5bba.js";import{u as T,x as we,y as Se,q as p,z as V,d as q,o as _,b as x,r as I,h as U,A as ce,B as xe,C as J,D as Ie,E as Ee,F as $e,G as je,s as de,w as E,v as fe,n as ve,f as pe,j as L,c as X,H as Ce,I as Le,J as Pe,e as Be}from"./chunks/ecom-utils.cd6787a7.js";/* empty css */import"./chunks/session-utm.ceebe967.js";var R=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ne(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var me=Ne,We=typeof R=="object"&&R&&R.Object===Object&&R,ke=We,Ae=ke,Re=typeof self=="object"&&self&&self.Object===Object&&self,Ve=Ae||Re||Function("return this")(),be=Ve,Fe=be,Ge=function(){return Fe.Date.now()},Me=Ge,He=/\s/;function Qe(e){for(var t=e.length;t--&&He.test(e.charAt(t)););return t}var Ue=Qe,De=Ue,ze=/^\s+/;function qe(e){return e&&e.slice(0,De(e)+1).replace(ze,"")}var Ke=qe,Je=be,Xe=Je.Symbol,ge=Xe,Z=ge,he=Object.prototype,Ze=he.hasOwnProperty,Ye=he.toString,C=Z?Z.toStringTag:void 0;function et(e){var t=Ze.call(e,C),n=e[C];try{e[C]=void 0;var o=!0}catch{}var l=Ye.call(e);return o&&(t?e[C]=n:delete e[C]),l}var tt=et,nt=Object.prototype,rt=nt.toString;function at(e){return rt.call(e)}var ot=at,Y=ge,st=tt,it=ot,lt="[object Null]",ut="[object Undefined]",ee=Y?Y.toStringTag:void 0;function ct(e){return e==null?e===void 0?ut:lt:ee&&ee in Object(e)?st(e):it(e)}var dt=ct;function ft(e){return e!=null&&typeof e=="object"}var vt=ft,pt=dt,mt=vt,bt="[object Symbol]";function gt(e){return typeof e=="symbol"||mt(e)&&pt(e)==bt}var ht=gt,yt=Ke,te=me,_t=ht,ne=0/0,Ot=/^[-+]0x[0-9a-f]+$/i,Tt=/^0b[01]+$/i,wt=/^0o[0-7]+$/i,St=parseInt;function xt(e){if(typeof e=="number")return e;if(_t(e))return ne;if(te(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=te(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=yt(e);var n=Tt.test(e);return n||wt.test(e)?St(e.slice(2),n?2:8):Ot.test(e)?ne:+e}var It=xt,Et=me,Q=Me,re=It,$t="Expected a function",jt=Math.max,Ct=Math.min;function Lt(e,t,n){var o,l,m,s,a,d,v=0,c=!1,f=!1,b=!0;if(typeof e!="function")throw new TypeError($t);t=re(t)||0,Et(n)&&(c=!!n.leading,f="maxWait"in n,m=f?jt(re(n.maxWait)||0,t):m,b="trailing"in n?!!n.trailing:b);function h(i){var g=o,y=l;return o=l=void 0,v=i,s=e.apply(y,g),s}function B(i){return v=i,a=setTimeout(O,t),c?h(i):s}function $(i){var g=i-d,y=i-v,W=t-g;return f?Ct(W,m-y):W}function w(i){var g=i-d,y=i-v;return d===void 0||g>=t||g<0||f&&y>=m}function O(){var i=Q();if(w(i))return N(i);a=setTimeout(O,$(i))}function N(i){return a=void 0,b&&o?h(i):(o=l=void 0,s)}function G(){a!==void 0&&clearTimeout(a),v=0,o=d=l=a=void 0}function M(){return a===void 0?s:N(Q())}function S(){var i=Q(),g=w(i);if(o=arguments,l=this,d=i,g){if(a===void 0)return B(d);if(f)return clearTimeout(a),a=setTimeout(O,t),h(d)}return a===void 0&&(a=setTimeout(O,t)),s}return S.cancel=G,S.flush=M,S}var ae=Lt,oe;const P=typeof window<"u",Pt=e=>typeof e=="string",Bt=()=>{};P&&((oe=window?.navigator)==null?void 0:oe.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function Nt(e){return typeof e=="function"?e():T(e)}function Wt(e){return e}function kt(e){return we()?(Se(e),!0):!1}function At(e){var t;const n=Nt(e);return(t=n?.$el)!=null?t:n}const Rt=P?window:void 0;P&&window.document;P&&window.navigator;P&&window.location;function se(...e){let t,n,o,l;if(Pt(e[0])||Array.isArray(e[0])?([n,o,l]=e,t=Rt):[t,n,o,l]=e,!t)return Bt;Array.isArray(n)||(n=[n]),Array.isArray(o)||(o=[o]);const m=[],s=()=>{m.forEach(c=>c()),m.length=0},a=(c,f,b)=>(c.addEventListener(f,b,l),()=>c.removeEventListener(f,b,l)),d=V(()=>At(t),c=>{s(),c&&m.push(...n.flatMap(f=>o.map(b=>a(c,f,b))))},{immediate:!0,flush:"post"}),v=()=>{d(),s()};return kt(v),v}const D=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},z="__vueuse_ssr_handlers__";D[z]=D[z]||{};D[z];function Vt(e){const t=p(!1);return se(e,"mouseenter",()=>t.value=!0),se(e,"mouseleave",()=>t.value=!1),t}var ie;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(ie||(ie={}));var Ft=Object.defineProperty,le=Object.getOwnPropertySymbols,Gt=Object.prototype.hasOwnProperty,Mt=Object.prototype.propertyIsEnumerable,ue=(e,t,n)=>t in e?Ft(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ht=(e,t)=>{for(var n in t||(t={}))Gt.call(t,n)&&ue(e,n,t[n]);if(le)for(var n of le(t))Mt.call(t,n)&&ue(e,n,t[n]);return e};const Qt={easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]};Ht({linear:Wt},Qt);const ye=Symbol("carousel"),Ut=["aria-label","data-carousel-control"],F=q({__name:"CarouselControl",props:{direction:{default:1}},setup(e){const{changeSlide:t}=xe(ye);return(n,o)=>(_(),x("button",{type:"button","aria-label":e.direction>0?"Pr\xF3ximo":"Anterior",onClick:o[0]||(o[0]=l=>T(t)(e.direction)),"data-carousel-control":e.direction>0?"next":"previous"},[I(n.$slots,"default",{},()=>[U("i",{class:ce(["m-0",e.direction>0?"i-chevron-right":"i-chevron-left"])},null,2)])],8,Ut))}}),Dt=q({__name:"Carousel",props:{as:{default:"ul"},modelValue:{default:1},autoplay:null},emits:["update:modelValue","bound-left","bound-right"],setup(e,{emit:t}){const n=e,o=(r,u,A)=>Math.abs(r-u)<=A,l=100,m=410,s=p(n.modelValue-1);V(J(n,"modelValue"),r=>{s.value=r-1}),V(s,(r,u)=>{r!==u&&t("update:modelValue",r+1)});const a=p(null),d=p(!0),v=p(!1),c=p([]),f=p(0),b=p(0),h=p(0),B=p(0),$=p(null),w=p(null),O=()=>{const r=o(h.value,0,5),u=o(f.value-b.value,h.value,5);r&&t("bound-left",!0),d.value=r,u&&t("bound-right",!0),v.value=u},N=()=>{f.value=a.value.scrollWidth,b.value=a.value.offsetWidth},G=()=>{const r=[...a.value.children];c.value=r.map(u=>({offsetLeft:u.offsetLeft,width:u.offsetWidth}))},M=r=>{const u=r>0?s.value:s.value+r,A=c.value[u].width||0;return A?A*r:0},S=()=>{const r=c.value.findIndex(u=>o(u.offsetLeft,h.value,5));r!==-1&&r!==-2&&(s.value=r||0)},i=()=>{h.value=a.value.scrollLeft||0},g=()=>{const r=f.value-b.value;B.value=c.value.findIndex(({offsetLeft:u})=>u>=r)},y=()=>{!a.value||(N(),G(),i(),S(),O(),g())},W=()=>{!a.value||(i(),S(),O())};let k=null;const H=()=>{n.autoplay&&(clearTimeout(k),k=setTimeout(()=>{j(1)},n.autoplay))},j=r=>{if(r<0){if(d.value){g(),s.value=B.value-1,j(1);return}}else if(v.value){s.value=1,j(-1);return}const u=M(r);u&&(a.value.scrollBy({left:u,behavior:"smooth"}),H())},K=p(null),_e=Vt(K);return V(_e,r=>{r?clearTimeout(k):H()}),Ie(()=>{y(),w.value=ae(W,l),$.value=ae(y,m),a.value.addEventListener("scroll",w.value),window.addEventListener("resize",$.value),Ee(()=>{[...a.value.children].forEach(r=>{r.setAttribute("tabindex","0")})}),H()}),$e(()=>{a.value.removeEventListener("scroll",w.value),window.removeEventListener("resize",$.value),clearTimeout(k)}),je(ye,{autoplay:J(n,"autoplay"),changeSlide:j,isBoundLeft:d,isBoundRight:v}),(r,u)=>(_(),x("div",{ref_key:"carousel",ref:K,"data-carousel":""},[(_(),de(fe(e.as),{ref_key:"wrapper",ref:a,"data-carousel-wrapper":""},{default:E(()=>[I(r.$slots,"default")]),_:3},512)),I(r.$slots,"controls",ve(pe({changeSlide:j,isBoundLeft:d.value,isBoundRight:v.value})),()=>[L(F,{direction:-1},{default:E(()=>[I(r.$slots,"previous")]),_:3}),L(F,null,{default:E(()=>[I(r.$slots,"next")]),_:3})])],512))}}),zt={"data-pitch-bar":"",class:"bg-base-100"},qt={class:"container md:w-2/3 mx-auto px-3 py-1"},Kt=["innerHTML"],Jt={class:"text-xl leading-none text-base-400"},nn=q({__name:"PitchBar",props:{slides:null},setup(e){const t=e,n=X(()=>t.slides.map(({html:l})=>Te(l).value)),o=X(()=>n.value.filter(l=>l).length);return(l,m)=>(_(),x("div",zt,[U("div",qt,[L(Dt,{autoplay:T(o)>1?7e3:null},{controls:E(()=>[Ce(U("div",Jt,[L(F,{direction:-1,class:"pr-2 bg-base-100 hover:text-base-700"}),L(F,{class:"pl-2 bg-base-100 hover:text-base-700"})],512),[[Oe,T(o)>1]])]),default:E(()=>[(_(!0),x(Le,null,Pe(e.slides,(s,a)=>(_(),x("li",{key:a},[(_(),de(fe(s.href?"ALink":"span"),{href:s.href,target:s.target,class:ce(s.href?"hover:underline":null)},{default:E(()=>[I(l.$slots,"slide",ve(pe({slide:s,i:a,parsedContents:T(n)})),()=>[T(n)[a]?(_(),x("span",{key:0,innerHTML:T(n)[a],class:"prose text-sm text-base-800"},null,8,Kt)):Be("",!0)])]),_:2},1032,["href","target","class"]))]))),128))]),_:3},8,["autoplay"])])]))}});export{nn as default};
@@ -1 +0,0 @@
1
- import"./chunks/Prices.vue_vue_type_script_setup_true_lang.2d01aaa2.js";import{_}from"./chunks/Prices.vue_vue_type_script_setup_true_lang.2d01aaa2.js";/* empty css */import"./chunks/modules-info.fcab5bba.js";import"./chunks/session-utm.ceebe967.js";import"./chunks/ecom-utils.cd6787a7.js";export{_ as default};
@@ -1 +0,0 @@
1
- import{_ as e}from"./chunks/Prices.vue_vue_type_script_setup_true_lang.2d01aaa2.js";/* empty css */import{d as u,q as c,s as n,w as t,v as d,o as m,j as a,i as o,t as l}from"./chunks/ecom-utils.cd6787a7.js";import"./chunks/modules-info.fcab5bba.js";import"./chunks/session-utm.ceebe967.js";const B=u({__name:"ProductCard",props:{as:{default:"div"}},setup(p){const s=c(12),r=c(!1);return setTimeout(()=>{s.value=8,r.value=!0},5e3),(_,f)=>(m(),n(d(p.as),null,{default:t(()=>[a(e,null,{default:t(({salePrice:i})=>[o(" ProductCard "+l(i),1)]),_:1}),a(e,{product:{price:s.value}},null,8,["product"]),a(e,{price:12,"base-price":17}),a(e,{price:12,"base-price":16,"is-literal":!0}),a(e,{price:12,"is-big":r.value},null,8,["is-big"]),a(e,{price:14,"base-price":18,"is-big":r.value,"is-literal":!0},null,8,["is-big"]),a(e,{price:12,"base-price":16},{"compare-value":t(({comparePrice:i})=>[o(" x"+l(i),1)]),_:1})]),_:1}))}});export{B as default};
@@ -1 +0,0 @@
1
- *,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:var(--font-family);font-feature-settings:normal}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--font-mono);font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#94a3b8}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}:root{--content-max-width: 80rem;--font-size: 14.5px;--font-sans: var(--custom-font-sans, ui-sans-serif), system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono: var(--custom-font-mono, ui-monospace), SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--font-family: var(--font-sans);--transition: .15s ease-in-out;--transition-slow: .25s ease-in-out;--transition-slower: .45s ease-in-out;--c-on-dark: rgb(255, 255, 255);--c-on-light: rgb(0, 0, 0);--c-background: #fff;--c-on-background: #1e293b;--un-prose-body: #334155;--un-prose-headings: #0f172a;--un-prose-links: var(--c-primary);--un-prose-captions: #64748b;--un-prose-borders: #e2e8f0;--un-prose-hr: #cbd5e1;--un-prose-bg-soft: #f1f5f9;color-scheme:light;accent-color:var(--c-secondary)}@media (prefers-reduced-motion: reduce){:root{--transition: 0s;--transition-slow: 0s;--transition-slower: .15s linear}}html{font-size:var(--font-size)}@media (min-width: 640px){html{font-size:calc(var(--font-size) * 1.0345)}}@media (min-width: 768px){html{font-size:calc(var(--font-size) * 1.0689)}}@media (min-width: 1024px){html{font-size:calc(var(--font-size) * 1.1034)}}@media (min-width: 1280px){html{font-size:calc(var(--font-size) * 1.1379)}}@media (min-width: 1536px){html{font-size:calc(var(--font-size) * 1.1724)}}body>header,body>main,body>footer{margin-left:auto;margin-right:auto}body>main{max-width:var(--content-max-width)}:focus-visible{outline-color:var(--c-outline, rgba(var(--rgb-secondary), .1))}::selection{background-color:var(--c-selection-background, rgba(var(--rgb-secondary), .15))}::marker{color:var(--c-primary)}:is(::-webkit-calendar-picker-indicator,::-webkit-clear-button,::-webkit-inner-spin-button,::-webkit-outer-spin-button){color:var(--c-secondary)}body{background:var(--c-background);color:var(--c-on-background)}[type=text],[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--c-background);border-color:#64748b;border-width:1px;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem;--un-shadow: 0 0 #0000}[type=text]:focus,[type=email]:focus,[type=url]:focus,[type=password]:focus,[type=number]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=month]:focus,[type=search]:focus,[type=tel]:focus,[type=time]:focus,[type=week]:focus,[multiple]:focus,textarea:focus,select:focus{outline:2px solid transparent;outline-offset:2px;--un-ring-inset: var(--un-empty, );--un-ring-offset-width: 0px;--un-ring-offset-color: var(--c-background);--un-ring-color: var(--c-primary);--un-ring-offset-shadow: var(--un-ring-inset) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color);--un-ring-shadow: var(--un-ring-inset) 0 0 0 calc(1px + var(--un-ring-offset-width)) var(--un-ring-color);box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow);border-color:var(--c-primary)}input::-moz-placeholder,textarea::-moz-placeholder{color:#64748b;opacity:1}input::placeholder,textarea::placeholder{color:#64748b;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}select{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;print-color-adjust:exact}[multiple]{background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;padding-right:.75rem;print-color-adjust:unset}[type=checkbox],[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;print-color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;height:1rem;width:1rem;color:var(--c-primary);background-color:var(--c-background);border-color:#64748b;border-width:1px;--un-shadow: 0 0 #0000}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{outline:2px solid transparent;outline-offset:2px;--un-ring-inset: var(--un-empty, );--un-ring-offset-width: 2px;--un-ring-offset-color: var(--c-background);--un-ring-color: var(--c-primary);--un-ring-offset-shadow: var(--un-ring-inset) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color);--un-ring-shadow: var(--un-ring-inset) 0 0 0 calc(2px + var(--un-ring-offset-width)) var(--un-ring-color);box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}[type=checkbox]:checked,[type=radio]:checked{border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}[type=checkbox]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}[type=radio]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}[type=checkbox]:checked:hover,[type=checkbox]:checked:focus,[type=radio]:checked:hover,[type=radio]:checked:focus{border-color:transparent;background-color:currentColor}[type=checkbox]:indeterminate{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}[type=checkbox]:indeterminate:hover,[type=checkbox]:indeterminate:focus{border-color:transparent;background-color:currentColor}[type=file]{background:unset;border-color:inherit;border-width:0;border-radius:0;padding:0;font-size:unset;line-height:inherit}[type=file]:focus{outline:1px solid ButtonText;outline:1px auto -webkit-focus-ring-color}[data-tooltip]{position:relative;cursor:help;--background-color: var(--c-tooltip-background, rgba(44, 44, 44, .85));--color: var(--c-tooltip-foreground, var(--c-on-dark));--border-color: transparent transparent var(--background-color) transparent}[data-tooltip]:before{content:attr(data-tooltip);visibility:hidden;opacity:0;transition:opacity var(--transition);position:absolute;z-index:1;left:0;top:102%;margin-top:5px;font-size:clamp(.75rem,90%,1rem);width:max-content;background-color:var(--background-color);color:var(--color);text-align:center;border-radius:.125rem;padding:.25rem .5rem;line-height:1.375}[data-tooltip]:after{content:"";visibility:hidden;opacity:0;transition:opacity var(--transition);position:absolute;z-index:1;left:50%;top:102%;margin-left:-5px;margin-top:-4px;border-width:5px;border-style:solid;border-color:var(--border-color)}[data-tooltip]:hover:before,[data-tooltip]:hover:after{opacity:1;visibility:visible}*,:before,:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgba(0,0,0,0);--un-ring-shadow:0 0 rgba(0,0,0,0);--un-shadow-inset: ;--un-shadow:0 0 rgba(0,0,0,0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgba(0,0,0,0);--un-ring-shadow:0 0 rgba(0,0,0,0);--un-shadow-inset: ;--un-shadow:0 0 rgba(0,0,0,0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }:root{--rgb-primary-50:246,250,249;--rgb-primary-100:226,239,235;--rgb-primary-200:204,227,220;--rgb-primary-300:180,214,204;--rgb-primary-400:148,196,181;--rgb-primary-500:106,172,152;--rgb-primary-600:59,146,120;--rgb-primary-700:19,123,91;--rgb-primary-800:16,101,75;--rgb-primary-900:11,72,54;--rgb-primary-subtle:103,197,161;--c-primary-subtle:rgb(103,197,161);--c-on-primary-subtle:var(--c-on-light);--rgb-primary:19,124,92;--c-primary:rgb(19,124,92);--c-on-primary:var(--c-on-dark);--rgb-primary-bold:0,68,41;--c-primary-bold:rgb(0,68,41);--c-on-primary-bold:var(--c-on-dark);--rgb-secondary-50:246,250,249;--rgb-secondary-100:226,239,235;--rgb-secondary-200:204,227,220;--rgb-secondary-300:180,214,204;--rgb-secondary-400:148,196,181;--rgb-secondary-500:106,172,152;--rgb-secondary-600:59,146,120;--rgb-secondary-700:19,123,91;--rgb-secondary-800:16,101,75;--rgb-secondary-900:11,72,54;--rgb-secondary-subtle:103,197,161;--c-secondary-subtle:rgb(103,197,161);--c-on-secondary-subtle:var(--c-on-light);--rgb-secondary:19,124,92;--c-secondary:rgb(19,124,92);--c-on-secondary:var(--c-on-dark);--rgb-secondary-bold:0,68,41;--c-secondary-bold:rgb(0,68,41);--c-on-secondary-bold:var(--c-on-dark);--rgb-on-primary:--c-on-dark;--rgb-on-primary-subtle:--c-on-light;--rgb-on-primary-bold:--c-on-dark;--rgb-on-secondary:--c-on-dark;--rgb-on-secondary-subtle:--c-on-light;--rgb-on-secondary-bold:--c-on-dark}.prose :where(h1,h2,h3,h4,h5,h6):not(:where(.not-prose,.not-prose *)){color:var(--un-prose-headings);font-weight:600;line-height:1.25}.prose :where(a):not(:where(.not-prose,.not-prose *)){color:var(--un-prose-links);text-decoration:underline;font-weight:500}.prose :where(a code):not(:where(.not-prose,.not-prose *)){color:var(--un-prose-links)}.prose :where(p,ul,ol,pre):not(:where(.not-prose,.not-prose *)){margin:1em 0;line-height:1.75}.prose :where(blockquote):not(:where(.not-prose,.not-prose *)){margin:1em 0;padding-left:1em;font-style:italic;border-left:.25em solid var(--un-prose-borders)}.prose :where(h1):not(:where(.not-prose,.not-prose *)){margin:1rem 0;font-size:2.25em}.prose :where(h2):not(:where(.not-prose,.not-prose *)){margin:1.75em 0 .5em;font-size:1.75em}.prose :where(h3):not(:where(.not-prose,.not-prose *)){margin:1.5em 0 .5em;font-size:1.375em}.prose :where(h4):not(:where(.not-prose,.not-prose *)){margin:1em 0;font-size:1.125em}.prose :where(img,video):not(:where(.not-prose,.not-prose *)){max-width:100%}.prose :where(figure,picture):not(:where(.not-prose,.not-prose *)){margin:1em 0}.prose :where(figcaption):not(:where(.not-prose,.not-prose *)){color:var(--un-prose-captions);font-size:.875em}.prose :where(code):not(:where(.not-prose,.not-prose *)){color:var(--un-prose-code);font-size:.875em;font-weight:600;font-family:var(--un-prose-font-mono)}.prose :where(:not(pre) > code):not(:where(.not-prose,.not-prose *)):before,.prose :where(:not(pre) > code):not(:where(.not-prose,.not-prose *)):after{content:"`"}.prose :where(pre):not(:where(.not-prose,.not-prose *)){padding:1.25rem 1.5rem;overflow-x:auto;border-radius:.375rem}.prose :where(pre,code):not(:where(.not-prose,.not-prose *)){white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;hyphens:none;background:transparent}.prose :where(pre code):not(:where(.not-prose,.not-prose *)){font-weight:inherit}.prose :where(ol,ul):not(:where(.not-prose,.not-prose *)){padding-left:1.25em}.prose :where(ol):not(:where(.not-prose,.not-prose *)){list-style-type:decimal}.prose :where(ol[type="A"]):not(:where(.not-prose,.not-prose *)){list-style-type:upper-alpha}.prose :where(ol[type="a"]):not(:where(.not-prose,.not-prose *)){list-style-type:lower-alpha}.prose :where(ol[type="A" s]):not(:where(.not-prose,.not-prose *)){list-style-type:upper-alpha}.prose :where(ol[type="a" s]):not(:where(.not-prose,.not-prose *)){list-style-type:lower-alpha}.prose :where(ol[type="I"]):not(:where(.not-prose,.not-prose *)){list-style-type:upper-roman}.prose :where(ol[type="i"]):not(:where(.not-prose,.not-prose *)){list-style-type:lower-roman}.prose :where(ol[type="I" s]):not(:where(.not-prose,.not-prose *)){list-style-type:upper-roman}.prose :where(ol[type="i" s]):not(:where(.not-prose,.not-prose *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where(.not-prose,.not-prose *)){list-style-type:decimal}.prose :where(ul):not(:where(.not-prose,.not-prose *)){list-style-type:disc}.prose :where(ol > li):not(:where(.not-prose,.not-prose *))::marker,.prose :where(ul > li):not(:where(.not-prose,.not-prose *))::marker,.prose :where(summary):not(:where(.not-prose,.not-prose *))::marker{color:var(--un-prose-lists)}.prose :where(hr):not(:where(.not-prose,.not-prose *)){margin:2em 0;border:1px solid var(--un-prose-hr)}.prose :where(table):not(:where(.not-prose,.not-prose *)){display:block;margin:1em 0;border-collapse:collapse;overflow-x:auto}.prose :where(tr):not(:where(.not-prose,.not-prose *)):nth-child(2n){background:var(--un-prose-bg-soft)}.prose :where(td,th):not(:where(.not-prose,.not-prose *)){border:1px solid var(--un-prose-borders);padding:.625em 1em}.prose :where(abbr):not(:where(.not-prose,.not-prose *)){cursor:help}.prose :where(kbd):not(:where(.not-prose,.not-prose *)){color:var(--un-prose-code);border:1px solid;padding:.25rem .5rem;font-size:.875em;border-radius:.25rem}.prose :where(details):not(:where(.not-prose,.not-prose *)){margin:1em 0;padding:1.25rem 1.5rem;background:var(--un-prose-bg-soft)}.prose :where(summary):not(:where(.not-prose,.not-prose *)){cursor:pointer;font-weight:600}.prose{color:var(--un-prose-body);max-width:65ch}.i-bars-3-bottom-left{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' display='inline-block' vertical-align='middle' margin-bottom='0.22rem' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25H12'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;margin-bottom:.22rem;width:1em;height:1em}.i-cashback{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' display='inline-block' vertical-align='middle' margin-bottom='0.22rem' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M9 15L3 9m0 0l6-6M3 9h12a6 6 0 0 1 0 12h-3'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;margin-bottom:.22rem;width:1em;height:1em}.i-chevron-left{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' display='inline-block' vertical-align='middle' margin-bottom='0.22rem' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M15.75 19.5L8.25 12l7.5-7.5'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;margin-bottom:.22rem;width:1em;height:1em}.i-chevron-right{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' display='inline-block' vertical-align='middle' margin-bottom='0.22rem' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m8.25 4.5l7.5 7.5l-7.5 7.5'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;margin-bottom:.22rem;width:1em;height:1em}.i-facebook{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 512 512' display='inline-block' vertical-align='middle' margin-bottom='0.22rem' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48c27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;margin-bottom:.22rem;width:1em;height:1em}.i-instagram{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 448 512' display='inline-block' vertical-align='middle' margin-bottom='0.22rem' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9S287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7s74.7 33.5 74.7 74.7s-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8c-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8s26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9c-26.2-26.2-58-34.4-93.9-36.2c-37-2.1-147.9-2.1-184.9 0c-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9c1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0c35.9-1.7 67.7-9.9 93.9-36.2c26.2-26.2 34.4-58 36.2-93.9c2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6c-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6c-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6c29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6c11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;margin-bottom:.22rem;width:1em;height:1em}.i-phone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' display='inline-block' vertical-align='middle' margin-bottom='0.22rem' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M2.25 6.75c0 8.284 6.716 15 15 15h2.25a2.25 2.25 0 0 0 2.25-2.25v-1.372c0-.516-.351-.966-.852-1.091l-4.423-1.106c-.44-.11-.902.055-1.173.417l-.97 1.293c-.282.376-.769.542-1.21.38a12.035 12.035 0 0 1-7.143-7.143c-.162-.441.004-.928.38-1.21l1.293-.97c.363-.271.527-.734.417-1.173L6.963 3.102a1.125 1.125 0 0 0-1.091-.852H4.5A2.25 2.25 0 0 0 2.25 4.5v2.25Z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;margin-bottom:.22rem;width:1em;height:1em}.i-pinterest{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 496 512' display='inline-block' vertical-align='middle' margin-bottom='0.22rem' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M496 256c0 137-111 248-248 248c-25.6 0-50.2-3.9-73.4-11.1c10.1-16.5 25.2-43.5 30.8-65c3-11.6 15.4-59 15.4-59c8.1 15.4 31.7 28.5 56.8 28.5c74.8 0 128.7-68.8 128.7-154.3c0-81.9-66.9-143.2-152.9-143.2c-107 0-163.9 71.8-163.9 150.1c0 36.4 19.4 81.7 50.3 96.1c4.7 2.2 7.2 1.2 8.3-3.3c.8-3.4 5-20.3 6.9-28.1c.6-2.5.3-4.7-1.7-7.1c-10.1-12.5-18.3-35.3-18.3-56.6c0-54.7 41.4-107.6 112-107.6c60.9 0 103.6 41.5 103.6 100.9c0 67.1-33.9 113.6-78 113.6c-24.3 0-42.6-20.1-36.7-44.8c7-29.5 20.5-61.3 20.5-82.6c0-19-10.2-34.9-31.4-34.9c-24.9 0-44.9 25.7-44.9 60.2c0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256C0 119 111 8 248 8s248 111 248 248z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;margin-bottom:.22rem;width:1em;height:1em}.i-shopping-cart{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' display='inline-block' vertical-align='middle' margin-bottom='0.22rem' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M15.75 10.5V6a3.75 3.75 0 1 0-7.5 0v4.5m11.356-1.993l1.263 12c.07.665-.45 1.243-1.119 1.243H4.25a1.125 1.125 0 0 1-1.12-1.243l1.264-12A1.125 1.125 0 0 1 5.513 7.5h12.974c.576 0 1.059.435 1.119 1.007ZM8.625 10.5a.375.375 0 1 1-.75 0a.375.375 0 0 1 .75 0Zm7.5 0a.375.375 0 1 1-.75 0a.375.375 0 0 1 .75 0Z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;margin-bottom:.22rem;width:1em;height:1em}.i-tiktok{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 448 512' display='inline-block' vertical-align='middle' margin-bottom='0.22rem' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M448 209.91a210.06 210.06 0 0 1-122.77-39.25v178.72A162.55 162.55 0 1 1 185 188.31v89.89a74.62 74.62 0 1 0 52.23 71.18V0h88a121.18 121.18 0 0 0 1.86 22.17A122.18 122.18 0 0 0 381 102.39a121.43 121.43 0 0 0 67 20.14Z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;margin-bottom:.22rem;width:1em;height:1em}.i-twitter{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 512 512' display='inline-block' vertical-align='middle' margin-bottom='0.22rem' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M459.37 151.716c.325 4.548.325 9.097.325 13.645c0 138.72-105.583 298.558-298.558 298.558c-59.452 0-114.68-17.219-161.137-47.106c8.447.974 16.568 1.299 25.34 1.299c49.055 0 94.213-16.568 130.274-44.832c-46.132-.975-84.792-31.188-98.112-72.772c6.498.974 12.995 1.624 19.818 1.624c9.421 0 18.843-1.3 27.614-3.573c-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319c-28.264-18.843-46.781-51.005-46.781-87.391c0-19.492 5.197-37.36 14.294-52.954c51.655 63.675 129.3 105.258 216.365 109.807c-1.624-7.797-2.599-15.918-2.599-24.04c0-57.828 46.782-104.934 104.934-104.934c30.213 0 57.502 12.67 76.67 33.137c23.715-4.548 46.456-13.32 66.599-25.34c-7.798 24.366-24.366 44.833-46.132 57.827c21.117-2.273 41.584-8.122 60.426-16.243c-14.292 20.791-32.161 39.308-52.628 54.253z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;margin-bottom:.22rem;width:1em;height:1em}.i-user-circle{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' display='inline-block' vertical-align='middle' margin-bottom='0.22rem' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M17.982 18.725A7.488 7.488 0 0 0 12 15.75a7.488 7.488 0 0 0-5.982 2.975m11.963 0a9 9 0 1 0-11.963 0m11.963 0A8.966 8.966 0 0 1 12 21a8.966 8.966 0 0 1-5.982-2.275M15 9.75a3 3 0 1 1-6 0a3 3 0 0 1 6 0Z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;margin-bottom:.22rem;width:1em;height:1em}.i-whatsapp{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 448 512' display='inline-block' vertical-align='middle' margin-bottom='0.22rem' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222c0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222c0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4l-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2c0-101.7 82.8-184.5 184.6-184.5c49.3 0 95.6 19.2 130.4 54.1c34.8 34.9 56.2 81.2 56.1 130.5c0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18c-5.1-1.9-8.8-2.8-12.5 2.8c-3.7 5.6-14.3 18-17.6 21.8c-3.2 3.7-6.5 4.2-12 1.4c-32.6-16.3-54-29.1-75.5-66c-5.7-9.8 5.7-9.1 16.3-30.3c1.8-3.7.9-6.9-.5-9.7c-1.4-2.8-12.5-30.1-17.1-41.2c-4.5-10.8-9.1-9.3-12.5-9.5c-3.2-.2-6.9-.2-10.6-.2c-3.7 0-9.7 1.4-14.8 6.9c-5.1 5.6-19.4 19-19.4 46.3c0 27.3 19.9 53.7 22.6 57.4c2.8 3.7 39.1 59.7 94.8 83.8c35.2 15.2 49 16.5 66.6 13.9c10.7-1.6 32.8-13.4 37.4-26.4c4.6-13 4.6-24.1 3.2-26.4c-1.3-2.5-5-3.9-10.5-6.6z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;margin-bottom:.22rem;width:1em;height:1em}.i-youtube{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 576 512' display='inline-block' vertical-align='middle' margin-bottom='0.22rem' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597c-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821c11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205l-142.739 81.201z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;margin-bottom:.22rem;width:1em;height:1em}.container{max-width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.top-0{top:0rem}.z-10{z-index:10}.z-50{z-index:50}.grid{display:grid}.auto-cols-max{grid-auto-columns:max-content}.grid-flow-col{grid-auto-flow:column}.m-0{margin:0rem}.mx-auto{margin-left:auto;margin-right:auto}.me{margin-inline-end:1rem}.ml-2{margin-left:.5rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-4{margin-right:1rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.block{display:block}.inline-block{display:inline-block}.hidden{display:none}.h1{height:.25rem}.h2{height:.5rem}.h3{height:.75rem}.h4{height:1rem}.h5{height:1.25rem}.h6{height:1.5rem}.w-full{width:100%}.flex{display:flex}.inline-flex{display:inline-flex}.grow{flex-grow:1}.transform{transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.resize{resize:both}.items-center{align-items:center}.justify-between{justify-content:space-between}.overflow-x-auto{overflow-x:auto}.whitespace-nowrap{white-space:nowrap}.bg-base-100{--un-bg-opacity:1;background-color:rgba(241,245,249,var(--un-bg-opacity))}.bg-opacity-90{--un-bg-opacity:.9}.p-1{padding:.25rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pl-2{padding-left:.5rem}.pr-2{padding-right:.5rem}.text-center{text-align:center}.font-brand{font-family:var(--font-brand, var(--font-sans))}.text-2xl{font-size:1.5rem;line-height:2rem}.text-5xl{font-size:3rem;line-height:1}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-none{line-height:1}.lowercase{text-transform:lowercase}.hover\:text-base-700:hover{--un-text-opacity:1;color:rgba(51,65,85,var(--un-text-opacity))}.hover\:text-primary:hover,.text-primary{--un-text-opacity:1;color:rgba(var(--rgb-primary),var(--un-text-opacity))}.text-base-400{--un-text-opacity:1;color:rgba(148,163,184,var(--un-text-opacity))}.text-base-500{--un-text-opacity:1;color:rgba(100,116,139,var(--un-text-opacity))}.text-base-600{--un-text-opacity:1;color:rgba(71,85,105,var(--un-text-opacity))}.text-base-800{--un-text-opacity:1;color:rgba(30,41,59,var(--un-text-opacity))}.text-gray-700{--un-text-opacity:1;color:rgba(55,65,81,var(--un-text-opacity))}.hover\:underline:hover{text-decoration-line:underline}.no-underline{text-decoration:none}.backdrop-blur-md{--un-backdrop-blur:blur(12px);-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia)}.primary{background-color:var(--c-primary, rgb(19,124,92));color:var(--c-on-primary, var(--c-on-dark))}.secondary{background-color:var(--c-secondary, rgb(19,124,92));color:var(--c-on-secondary, var(--c-on-dark))}@media (min-width: 640px){.sm\:py-2{padding-top:.5rem;padding-bottom:.5rem}}@media (min-width: 768px){.md\:block{display:block}.md\:hidden{display:none}.md\:w-2\/3{width:66.6666666667%}}@media (min-width: 1024px){.lg\:mr-3{margin-right:.75rem}.lg\:px-2{padding-left:.5rem;padding-right:.5rem}}@media (min-width: 1280px){.xl\:px-4{padding-left:1rem;padding-right:1rem}}html{scroll-behavior:smooth}body{overflow-x:hidden}a,button,button>*{transition:color var(--transition),background-color var(--transition),opacity var(--transition)}[data-carousel]{position:relative}[data-carousel-wrapper]{display:flex;overflow-x:scroll;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-webkit-overflow-scrolling:touch;-ms-overflow-style:none;list-style:none;margin:0;padding:0}[data-carousel-wrapper]::-webkit-scrollbar{display:none}[data-carousel-wrapper]>*{flex:0 0 100%;height:100%;scroll-snap-align:start;display:flex;justify-content:center;align-items:center;outline:none}[data-carousel-control]{position:absolute;top:0;bottom:0;z-index:1}[data-carousel-control=previous]{left:0}[data-carousel-control=next]{right:0}
@@ -1 +0,0 @@
1
- .sf-fade-enter-active,.sf-fade-leave-active{transition:opacity var(--duration),transform var(--duration),height var(--duration),width var(--duration);overflow:hidden}*[data-v-f3719df1]{will-change:var(--de1ebbd6);transform:translateZ(0);backface-visibility:hidden;perspective:1000px}.sf-fade-enter-active[data-v-f3719df1],.sf-fade-leave-active[data-v-f3719df1]{--duration: var(--fb017372)}.sf-fade-enter-from[data-v-f3719df1]{opacity:var(--a7913688);transform:var(--44556fdd);height:var(--b31f6b54);width:var(--77b9da92)}.sf-fade-leave-to[data-v-f3719df1]{opacity:var(--764bb2e8);transform:var(--816204a6);height:var(--5ef3e2f4);width:var(--7b2c0887)}
@@ -1 +0,0 @@
1
- import{m as I}from"./modules-info.fcab5bba.js";import{c as r,g as j,a as z,d as F,b as u,u as e,r as o,n as p,m as C,e as i,f as D,o as m,h as b,t as c,i as M,j as w,w as A,k as R}from"./ecom-utils.cd6787a7.js";const S=(n,l)=>{const{type:P,value:k}=l;let a;return k?(P==="percentage"?a=n*((100-k)/100):a=n-k,a>0?a:0):n},q=n=>{const l=r(()=>n.product||{price:n.price||0,base_price:n.basePrice}),P=r(()=>{const{variations:t}=l.value;if(t){const d=j(l.value);for(let g=0;g<t.length;g++)if(j({...l.value,...t[g]})>d)return!0}return!1}),k=r(()=>I.apply_discount.available_extra_discount),a=r(()=>{const t=j(l.value),d=k.value;return d&&(!d.min_amount||t>d.min_amount)?S(t,d):t}),V=r(()=>{if(z(l.value))return l.value.base_price;const t=j(l.value);return t>a.value?t:0}),h=r(()=>n.installmentsOption||I.list_payments.installments_option||{max_number:1}),v=r(()=>{if(h.value.max_number<=1)return 1;const t=h.value.min_installment||5,d=Math.round(a.value/t);return Math.min(d,h.value.max_number)}),$=r(()=>h.value.monthly_interest||0),L=r(()=>{if(v.value>=2){if(!$.value)return a.value/v.value;const t=$.value/100;return a.value*t/(1-(1+t)**-v.value)}return 0}),y=r(()=>{const t=n.discountOption||I.list_payments.discount_option;return t&&(!t.min_amount||t.min_amount<=a.value)&&(!n.isAmountTotal||t.apply_at==="total")?t:{}}),O=r(()=>{const{label:t}=y.value;return t?t.includes(" ")?t:`via ${t}`:""}),f=r(()=>S(a.value,y.value)),_=r(()=>{if(n.loyaltyPointsProgram)return n.loyaltyPointsProgram;const t=I.list_payments.loyalty_points_programs;if(t){const d=Object.keys(t);for(let g=0;g<d.length;g++){const B=t[d[g]];if(B&&B.earn_percentage>0)return B}}return{ratio:0}}),s=r(()=>_.value.min_subtotal_to_earn||0),E=r(()=>_.value.name||""),N=r(()=>_.value.earn_percentage||0),W=r(()=>N.value*_.value.ratio),T=r(()=>W.value>=1?a.value*(W.value/100):0);return{hasVariedPrices:P,salePrice:a,comparePrice:V,installmentsObject:h,installmentsNumber:v,monthlyInterest:$,installmentValue:L,discountObject:y,discountLabel:O,priceWithDiscount:f,pointsProgramObject:_,pointsMinPrice:s,pointsProgramName:E,earnPointsPercentage:N,cashbackPercentage:W,cashbackValue:T}},G=n=>r(()=>{let l="";return Object.keys(n).forEach(P=>{n[P]===!0&&(l+=` ${P.replace(/^(is|has)/,"")}`)}),l.slice(1)}),H=["data-prices"],J={"data-prices-compare":"",class:"text-base-500 mr-1"},K={key:0},Q={key:0},U={"data-prices-sale":"",class:"inline-block text-base-800"},X={key:0},Y={key:0,"data-prices-cashback":"",class:"relative z-10"},Z=["data-tooltip"],x=b("i",{class:"i-cashback mr-1"},null,-1),ee={class:"font-medium"},te=b("small",null," cashback",-1),se={key:0,"data-prices-installment":""},ae={key:0},ne={key:0},oe={key:0},re={key:0,"data-prices-discount":""},le={key:0},ie={key:0},me=F({__name:"Prices",props:{product:null,price:null,basePrice:null,isAmountTotal:{type:Boolean},installmentsOption:null,discountOption:null,isBig:{type:Boolean},isLiteral:{type:Boolean},hasCashback:{type:Boolean,default:!0},hasPriceOptions:{type:Boolean,default:!0}},setup(n){const l=n,P=q(l),{hasVariedPrices:k,salePrice:a,comparePrice:V,cashbackPercentage:h,cashbackValue:v,installmentsNumber:$,monthlyInterest:L,installmentValue:y,priceWithDiscount:O,discountLabel:f}=P,_=G(l);return(s,E)=>{const N=R("Fade");return m(),u("div",{"data-prices":e(_),class:"text-base-600"},[e(V)?o(s.$slots,"compare",p(C({key:0},{salePrice:e(a),comparePrice:e(V)})),()=>[b("span",J,[o(s.$slots,"compare-pre",{},()=>[n.isLiteral?(m(),u("small",K,c("De "))):i("",!0)]),o(s.$slots,"compare-value",p(D({salePrice:e(a),comparePrice:e(V)})),()=>[b("s",null,c(s.$money(e(V))),1)]),o(s.$slots,"compare-post",{},()=>[n.isLiteral?(m(),u("small",Q,c(" Por"))):i("",!0)])])]):i("",!0),o(s.$slots,"sale",p(D({salePrice:e(a)})),()=>[b("strong",U,[o(s.$slots,"sale-pre",{},()=>[e(k)?(m(),u("small",X,c("A partir de "))):i("",!0)]),o(s.$slots,"sale-value",p(D({salePrice:e(a)})),()=>[M(c(s.$money(e(a))),1)]),o(s.$slots,"sale-post")])]),e(v)?o(s.$slots,"cashback",p(C({key:1},{salePrice:e(a),cashbackValue:e(v),cashbackPercentage:e(h)})),()=>[w(N,{slide:"down"},{default:A(()=>[n.hasCashback?(m(),u("div",Y,[b("span",{"data-tooltip":"Receba $1 de volta".replace("$1",s.$percentage(e(h)))},[o(s.$slots,"cashback-pre",{},()=>[x]),o(s.$slots,"cashback-value",p(D({salePrice:e(a),cashbackValue:e(v),cashbackPercentage:e(h)})),()=>[b("span",ee,c(s.$money(e(v))),1)]),o(s.$slots,"cashback-post",{},()=>[te])],8,Z)])):i("",!0)]),_:3})]):i("",!0),e(y)?o(s.$slots,"installment",p(C({key:2},{salePrice:e(a),installmentValue:e(y),installmentsNumber:e($),monthlyInterest:e(L)})),()=>[w(N,{slide:"down"},{default:A(()=>[n.hasPriceOptions?(m(),u("div",se,[o(s.$slots,"installment-pre",{},()=>[n.isLiteral?(m(),u("small",ae,c("At\xE9 "))):i("",!0)]),o(s.$slots,"installment-value",p(D({salePrice:e(a),installmentValue:e(y),installmentsNumber:e($),monthlyInterest:e(L)})),()=>[M(c(e($))+"x ",1),n.isLiteral?(m(),u("small",ne,c(" De "))):i("",!0),b("span",null,c(s.$money(e(y))),1)]),o(s.$slots,"installment-post",{},()=>[!e(L)&&n.isLiteral?(m(),u("small",oe,c("Sem juros"))):i("",!0)])])):i("",!0)]),_:3})]):i("",!0),e(O)<e(a)?o(s.$slots,"discount",p(C({key:3},{salePrice:e(a),priceWithDiscount:e(O),discountLabel:e(f)})),()=>[w(N,{slide:"down"},{default:A(()=>[n.hasPriceOptions?(m(),u("div",re,[o(s.$slots,"discount-pre",{},()=>[e(f)?i("",!0):(m(),u("small",le,c("A partir de ")))]),o(s.$slots,"discount-value",p(D({salePrice:e(a),priceWithDiscount:e(O),discountLabel:e(f)})),()=>[b("span",null,c(s.$money(e(O))),1)]),o(s.$slots,"discount-post",{},()=>[e(f)?(m(),u("small",ie,c(` ${e(f)}`),1)):i("",!0)])])):i("",!0)]),_:3})]):i("",!0)],8,H)}}});export{me as _};