cloudcommerce 0.1.3 → 0.1.5

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 (119) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/ecomplus-stores/monocard/functions/core/package.json +1 -1
  3. package/ecomplus-stores/monocard/functions/events/package.json +2 -2
  4. package/ecomplus-stores/monocard/functions/modules/package.json +2 -2
  5. package/ecomplus-stores/monocard/functions/passport/package.json +2 -2
  6. package/ecomplus-stores/monocard/functions/ssr/package.json +6 -6
  7. package/ecomplus-stores/monocard/package.json +1 -1
  8. package/ecomplus-stores/tia-sonia/functions/core/package.json +1 -1
  9. package/ecomplus-stores/tia-sonia/functions/events/package.json +2 -2
  10. package/ecomplus-stores/tia-sonia/functions/modules/package.json +2 -2
  11. package/ecomplus-stores/tia-sonia/functions/passport/package.json +2 -2
  12. package/ecomplus-stores/tia-sonia/functions/ssr/content/settings.json +1 -1
  13. package/ecomplus-stores/tia-sonia/functions/ssr/package.json +9 -7
  14. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/acai-com-granola.jpg +0 -0
  15. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/cafe-com-tapioca-e-aveia.jpg +0 -0
  16. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/fimdeano1920x736.jpg +0 -0
  17. package/ecomplus-stores/tia-sonia/functions/ssr/src/components/PitchBar.vue +65 -0
  18. package/ecomplus-stores/tia-sonia/functions/ssr/src/components/TheHeader.vue +104 -10
  19. package/ecomplus-stores/tia-sonia/functions/ssr/src/components/header/HeaderBarLink.vue +5 -0
  20. package/ecomplus-stores/tia-sonia/functions/ssr/src/components/header/HeaderButtonLink.vue +1 -1
  21. package/ecomplus-stores/tia-sonia/functions/ssr/src/components/header/HeaderNav.vue +7 -6
  22. package/ecomplus-stores/tia-sonia/functions/ssr/src/layouts/Base.astro +10 -6
  23. package/ecomplus-stores/tia-sonia/functions/ssr/src/layouts/Pages.astro +19 -12
  24. package/ecomplus-stores/tia-sonia/functions/ssr/src/main/Home.astro +32 -9
  25. package/ecomplus-stores/tia-sonia/functions/ssr/tailwind.config.cjs +15 -1
  26. package/ecomplus-stores/tia-sonia/functions/ssr/uno.config.cjs +2 -1
  27. package/ecomplus-stores/tia-sonia/package.json +1 -1
  28. package/package.json +2 -1
  29. package/packages/api/package.json +1 -1
  30. package/packages/apps/correios/package.json +1 -1
  31. package/packages/apps/custom-payment/package.json +1 -1
  32. package/packages/apps/custom-shipping/package.json +1 -1
  33. package/packages/apps/discounts/package.json +1 -1
  34. package/packages/apps/emails/package.json +1 -1
  35. package/packages/apps/frenet/events.js +1 -0
  36. package/packages/apps/frenet/lib/frenet-events.d.ts +6 -0
  37. package/packages/apps/frenet/lib/frenet-events.js +19 -0
  38. package/packages/apps/frenet/lib/frenet-events.js.map +1 -0
  39. package/packages/apps/frenet/lib/functions-lib/database.d.ts +18 -0
  40. package/packages/apps/frenet/lib/functions-lib/database.js +128 -0
  41. package/packages/apps/frenet/lib/functions-lib/database.js.map +1 -0
  42. package/packages/apps/frenet/lib/functions-lib/events-to-frenet.d.ts +3 -0
  43. package/packages/apps/frenet/lib/functions-lib/events-to-frenet.js +48 -0
  44. package/packages/apps/frenet/lib/functions-lib/events-to-frenet.js.map +1 -0
  45. package/packages/apps/frenet/lib/functions-lib/fetch-tracking-code.d.ts +2 -0
  46. package/packages/apps/frenet/lib/functions-lib/fetch-tracking-code.js +19 -0
  47. package/packages/apps/frenet/lib/functions-lib/fetch-tracking-code.js.map +1 -0
  48. package/packages/apps/frenet/lib/functions-lib/remove-delivered.d.ts +2 -0
  49. package/packages/apps/frenet/lib/functions-lib/remove-delivered.js +30 -0
  50. package/packages/apps/frenet/lib/functions-lib/remove-delivered.js.map +1 -0
  51. package/packages/apps/frenet/lib/functions-lib/tracking-codes.d.ts +2 -0
  52. package/packages/apps/frenet/lib/functions-lib/tracking-codes.js +138 -0
  53. package/packages/apps/frenet/lib/functions-lib/tracking-codes.js.map +1 -0
  54. package/packages/apps/frenet/lib/functions-lib/update-fulfillments.d.ts +5 -0
  55. package/packages/apps/frenet/lib/functions-lib/update-fulfillments.js +49 -0
  56. package/packages/apps/frenet/lib/functions-lib/update-fulfillments.js.map +1 -0
  57. package/packages/apps/frenet/package.json +11 -3
  58. package/packages/apps/frenet/src/frenet-events.ts +25 -0
  59. package/packages/apps/frenet/src/functions-lib/database.ts +159 -0
  60. package/packages/apps/frenet/src/functions-lib/events-to-frenet.ts +62 -0
  61. package/packages/apps/frenet/src/functions-lib/fetch-tracking-code.ts +22 -0
  62. package/packages/apps/frenet/src/functions-lib/remove-delivered.ts +31 -0
  63. package/packages/apps/frenet/src/functions-lib/tracking-codes.ts +170 -0
  64. package/packages/apps/frenet/src/functions-lib/update-fulfillments.ts +56 -0
  65. package/packages/apps/galaxpay/package.json +1 -1
  66. package/packages/apps/infinitepay/package.json +1 -1
  67. package/packages/apps/jadlog/package.json +1 -1
  68. package/packages/apps/loyalty-points/package.json +1 -1
  69. package/packages/apps/mercadopago/package.json +1 -1
  70. package/packages/apps/pagarme/package.json +1 -1
  71. package/packages/apps/pix/package.json +1 -1
  72. package/packages/apps/tiny-erp/package.json +1 -1
  73. package/packages/cli/package.json +1 -1
  74. package/packages/config/package.json +1 -1
  75. package/packages/emails/package.json +1 -1
  76. package/packages/events/lib/firebase.js +2 -0
  77. package/packages/events/lib/firebase.js.map +1 -1
  78. package/packages/events/package.json +2 -1
  79. package/packages/events/src/firebase.ts +2 -0
  80. package/packages/firebase/lib/config.d.ts +1 -0
  81. package/packages/firebase/lib/config.js +4 -0
  82. package/packages/firebase/lib/config.js.map +1 -1
  83. package/packages/firebase/package.json +1 -1
  84. package/packages/firebase/src/config.ts +5 -0
  85. package/packages/i18n/package.json +1 -1
  86. package/packages/modules/package.json +1 -1
  87. package/packages/passport/package.json +1 -1
  88. package/packages/ssr/package.json +1 -2
  89. package/packages/storefront/dist/client/HeaderButtons.300c19e5.js +1 -0
  90. package/packages/storefront/dist/client/Prices.6c44a513.js +1 -0
  91. package/packages/storefront/dist/client/{ProductCard.7b68cc35.js → ProductCard.69bba7fc.js} +1 -1
  92. package/packages/storefront/dist/client/assets/_...slug_.15bda576.css +1 -0
  93. package/packages/storefront/dist/client/assets/server.4d9646d8.css +1 -0
  94. package/packages/storefront/dist/client/chunks/{HeaderButtons.cbbb059d.js → HeaderButtons.1abd5bf4.js} +1 -1
  95. package/packages/storefront/dist/client/chunks/{LoginForm.ac2f1b1f.js → LoginForm.7e7d6137.js} +1 -1
  96. package/packages/storefront/dist/client/chunks/Prices.vue_vue_type_script_setup_true_lang.e4525076.js +1 -0
  97. package/packages/storefront/dist/client/chunks/_plugin-vue_export-helper.fc452b02.js +1 -0
  98. package/packages/storefront/dist/client/chunks/runtime-core.esm-bundler.b4556b35.js +1 -0
  99. package/packages/storefront/dist/client/client.2a3e5a58.js +1 -0
  100. package/packages/storefront/dist/client/sw.js +1 -1
  101. package/packages/storefront/dist/server/entry.mjs +34 -1558
  102. package/packages/storefront/package.json +4 -5
  103. package/packages/storefront/src/lib/assets/tooltip.css +43 -0
  104. package/packages/storefront/src/lib/components/Prices.vue +2 -2
  105. package/packages/storefront/src/lib/layouts/BaseBody.astro +1 -1
  106. package/packages/storefront/src/lib/pages/_vue.ts +0 -2
  107. package/packages/storefront/tailwind.config.cjs +38 -23
  108. package/packages/storefront/uno.config.cjs +37 -35
  109. package/packages/types/package.json +1 -1
  110. package/ecomplus-stores/tia-sonia/functions/ssr/src/components/TopBar.vue +0 -133
  111. package/ecomplus-stores/tia-sonia/functions/ssr/src/components/header/HeaderNavLink.vue +0 -5
  112. package/packages/storefront/dist/client/HeaderButtons.8acf8a3b.js +0 -1
  113. package/packages/storefront/dist/client/Prices.9099fe99.js +0 -1
  114. package/packages/storefront/dist/client/assets/_...slug_.f19a16ca.css +0 -1
  115. package/packages/storefront/dist/client/assets/server.55b8d73d.css +0 -1
  116. package/packages/storefront/dist/client/chunks/Prices.vue_vue_type_script_setup_true_lang.c37148c1.js +0 -1
  117. package/packages/storefront/dist/client/chunks/_plugin-vue_export-helper.5ccc5d75.js +0 -1
  118. package/packages/storefront/dist/client/chunks/runtime-core.esm-bundler.d5646b29.js +0 -1
  119. package/packages/storefront/dist/client/client.9783ef49.js +0 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/storefront",
3
3
  "type": "module",
4
- "version": "0.1.3",
4
+ "version": "0.1.5",
5
5
  "description": "E-Com Plus Cloud Commerce storefront with Astro",
6
6
  "main": "src/index.js",
7
7
  "repository": {
@@ -39,18 +39,17 @@
39
39
  "@ecomplus/utils": "1.5.0-rc.3",
40
40
  "@fastify/deepmerge": "^1.3.0",
41
41
  "@headlessui/vue": "^1.7.7",
42
- "@iconify-json/brands": "npm:@iconify-json/fa6-brands@^1.1.8",
43
- "@iconify-json/general": "npm:@iconify-json/heroicons@^1.1.6",
42
+ "@iconify-json/fa6-brands": "^1.1.8",
43
+ "@iconify-json/heroicons": "^1.1.6",
44
44
  "@iconify-json/logos": "^1.1.19",
45
45
  "@vueuse/core": "^9.9.0",
46
46
  "astro": "^1.7.2",
47
47
  "chroma-js": "^2.4.2",
48
48
  "dotenv": "^16.0.3",
49
49
  "firebase": "^9.15.0",
50
- "floating-vue": "2.0.0-beta.20",
51
50
  "image-size": "^1.0.2",
52
51
  "tailwindcss": "^3.2.4",
53
- "unocss": "^0.47.6",
52
+ "unocss": "^0.48.0",
54
53
  "vite": "^3.2.5",
55
54
  "vite-plugin-pwa": "^0.14.0",
56
55
  "vue": "^3.2.45",
@@ -0,0 +1,43 @@
1
+ [data-tooltip] {
2
+ position: relative;
3
+ cursor: help;
4
+ --c-background: var(--c-tooltip-background, rgba(44, 44, 44, 0.85));
5
+ --c-foreground: var(--c-tooltip-foreground, var(--c-on-dark));
6
+ }
7
+ [data-tooltip]::before {
8
+ content: attr(data-tooltip);
9
+ visibility: hidden;
10
+ opacity: 0;
11
+ transition: opacity var(--transition);
12
+ position: absolute;
13
+ z-index: 1;
14
+ left: 0;
15
+ top: 102%;
16
+ margin-top: 5px;
17
+ font-size: clamp(0.75rem, 90%, 1rem);
18
+ width: max-content;
19
+ background-color: var(--c-background);
20
+ color: var(--c-foreground);
21
+ text-align: center;
22
+ @apply rounded-sm py-1 px-2 leading-snug;
23
+ }
24
+ [data-tooltip]::after {
25
+ content: "";
26
+ visibility: hidden;
27
+ opacity: 0;
28
+ transition: opacity var(--transition);
29
+ position: absolute;
30
+ z-index: 1;
31
+ left: 50%;
32
+ top: 102%;
33
+ margin-left: -5px;
34
+ margin-top: -4px;
35
+ border-width: 5px;
36
+ border-style: solid;
37
+ border-color: transparent transparent var(--c-background) transparent;
38
+ }
39
+ [data-tooltip]:hover::before,
40
+ [data-tooltip]:hover::after {
41
+ opacity: 1;
42
+ visibility: visible;
43
+ }
@@ -80,10 +80,10 @@ setTimeout(() => {
80
80
  <slot v-if="pointsCashback" name="cashback" v-bind="prices">
81
81
  <Fade slide="down">
82
82
  <div v-if="hasCashback" :data-sf-prices-cashback="pointsCashback">
83
- <span v-tooltip.bottom="$t.i19get$1back
83
+ <span :data-tooltip="$t.i19get$1back
84
84
  .replace('$1', $percentage(earnPointsPercentage))">
85
85
  <slot name="cashback-pre">
86
- <i class="i-arrow-uturn-left mr-1"></i>
86
+ <i class="i-cashback mr-1"></i>
87
87
  </slot>
88
88
  <slot name="cashback-value" v-bind="prices">
89
89
  <span class="font-medium">
@@ -3,7 +3,7 @@ import type { PageContext } from '@@sf/ssr-context';
3
3
  import '@@sf/assets/preflight.css';
4
4
  import '@@sf/assets/base.css';
5
5
  import '@@sf/assets/forms.css';
6
- import 'floating-vue/dist/style.css';
6
+ import '@@sf/assets/tooltip.css';
7
7
  import 'uno.css';
8
8
 
9
9
  export interface Props {
@@ -1,6 +1,5 @@
1
1
  import type { App } from 'vue';
2
2
  import { i18n, formatMoney } from '@ecomplus/utils';
3
- import VTooltip from 'floating-vue/src/directives/v-tooltip';
4
3
  // @ts-ignore
5
4
  import Fade from '@@components/globals/Fade.vue';
6
5
 
@@ -21,7 +20,6 @@ export default (app: App) => {
21
20
  app.config.globalProperties.$percentage = formatPercentage;
22
21
  },
23
22
  });
24
- app.directive('tooltip', VTooltip);
25
23
  app.component('Fade', Fade);
26
24
  };
27
25
 
@@ -1,10 +1,15 @@
1
+ const deepmerge = require('@fastify/deepmerge')();
1
2
  const colors = require('tailwindcss/colors');
2
3
  const chroma = require('chroma-js');
3
4
  const getCMS = require('./config/storefront.cms.cjs');
4
5
 
5
- // IntelliSense for UnoCSS icons
6
- let defaultIcons = {
7
- brandIcons: 'brands',
6
+ let defaultThemeOptions = {
7
+ baseColor: 'slate',
8
+ successColor: 'emerald',
9
+ warningColor: 'amber',
10
+ dangerColor: 'rose',
11
+ // IntelliSense for UnoCSS icons
12
+ brandIcons: 'fa6-brands',
8
13
  brandIconsShortcuts: [
9
14
  'facebook',
10
15
  'twitter',
@@ -31,11 +36,12 @@ let defaultIcons = {
31
36
  'hipercard',
32
37
  'dinersclub',
33
38
  ],
34
- generalIcons: 'general',
39
+ generalIcons: 'heroicons',
40
+ shoppingCartIcon: 'shopping-bag',
41
+ cashbackIcon: 'arrow-uturn-left',
35
42
  };
36
- if (globalThis.storefront_default_icons) {
37
- const deepmerge = require('@fastify/deepmerge')();
38
- defaultIcons = deepmerge(defaultIcons, globalThis.storefront_default_icons);
43
+ if (globalThis.storefront_theme_options) {
44
+ defaultThemeOptions = deepmerge(defaultThemeOptions, globalThis.storefront_theme_options);
39
45
  }
40
46
 
41
47
  const { primaryColor, secondaryColor } = getCMS();
@@ -51,9 +57,13 @@ Object.keys(brandColors).forEach((colorName) => {
51
57
  const color = chroma(hex);
52
58
  let subtle;
53
59
  let bold;
54
- if (color.luminance() >= 0.1) {
60
+ const luminance = color.luminance();
61
+ if (luminance >= 0.1) {
55
62
  subtle = chroma(hex).brighten(1.5);
56
63
  bold = chroma(hex).darken(1.5);
64
+ } else if (luminance > 0.03) {
65
+ subtle = chroma(hex).brighten();
66
+ bold = chroma(hex).darken();
57
67
  } else {
58
68
  subtle = chroma(hex).darken();
59
69
  bold = chroma(hex).brighten();
@@ -94,17 +104,20 @@ Object.keys(brandColors).forEach((colorName) => {
94
104
  });
95
105
  });
96
106
 
97
- const genTailwindConfig = ({
98
- brandIcons = defaultIcons.brandIcons,
99
- brandIconsShortcuts = defaultIcons.brandIconsShortcuts,
100
- brandLogos = defaultIcons.brandLogos,
101
- brandLogosShortcuts = defaultIcons.brandLogosShortcuts,
102
- generalIcons = defaultIcons.generalIcons,
103
- baseColor = 'slate',
104
- successColor = 'emerald',
105
- warningColor = 'amber',
106
- dangerColor = 'rose',
107
- } = {}) => {
107
+ const genTailwindConfig = (themeOptions = {}) => {
108
+ const {
109
+ brandIcons,
110
+ brandIconsShortcuts,
111
+ brandLogos,
112
+ brandLogosShortcuts,
113
+ generalIcons,
114
+ baseColor,
115
+ successColor,
116
+ warningColor,
117
+ dangerColor,
118
+ shoppingCartIcon,
119
+ cashbackIcon,
120
+ } = deepmerge(defaultThemeOptions, themeOptions);
108
121
  const config = {
109
122
  theme: {
110
123
  extend: {
@@ -149,9 +162,8 @@ const genTailwindConfig = ({
149
162
  if (!shortcuts) {
150
163
  const { icons } = require(`@iconify-json/${iconset}`);
151
164
  shortcuts = Object.keys(icons.icons);
152
- if (!shortcuts.includes('shopping-cart')) {
153
- shortcuts.push('shopping-cart');
154
- }
165
+ shortcuts.push(['shopping-cart', shoppingCartIcon]);
166
+ shortcuts.push(['cashback', cashbackIcon]);
155
167
  }
156
168
  shortcuts.forEach((shortcut) => {
157
169
  if (typeof shortcut === 'string') {
@@ -181,6 +193,9 @@ const genTailwindConfig = ({
181
193
  },
182
194
  ],
183
195
  };
196
+ if (globalThis.storefront_tailwind_config) {
197
+ return deepmerge(config, globalThis.storefront_tailwind_config);
198
+ }
184
199
  return config;
185
200
  };
186
201
 
@@ -189,7 +204,7 @@ const tailwindConfig = genTailwindConfig();
189
204
  module.exports = {
190
205
  ...tailwindConfig,
191
206
  genTailwindConfig,
192
- defaultIcons,
207
+ defaultThemeOptions,
193
208
  brandColors,
194
209
  brandColorsPalletes,
195
210
  onBrandColors,
@@ -1,5 +1,4 @@
1
- const { join: joinPath } = require('path');
2
-
1
+ const deepmerge = require('@fastify/deepmerge')();
3
2
  const {
4
3
  defineConfig,
5
4
  presetUno,
@@ -8,55 +7,57 @@ const {
8
7
  transformerCompileClass,
9
8
  transformerDirectives,
10
9
  } = require('unocss');
11
-
12
10
  const {
13
11
  genTailwindConfig,
14
- defaultIcons,
12
+ defaultThemeOptions,
15
13
  brandColors,
16
14
  brandColorsPalletes,
17
15
  onBrandColors,
18
- } = require(joinPath(process.cwd(), 'tailwind.config.cjs'));
16
+ } = require('./tailwind.config.cjs');
19
17
 
20
18
  const colorCSSVars = {};
21
19
  Object.keys(brandColors).forEach((colorName) => {
22
20
  Object.keys(brandColorsPalletes[colorName]).forEach((tone) => {
23
- const rgb = brandColorsPalletes[colorName][tone];
24
- let colorLabel;
25
- if (tone === 'DEFAULT') {
26
- colorLabel = colorName;
27
- colorCSSVars[`rgb-${colorLabel}`] = rgb.substring(4).replace(')', ''); // rgb(rgb) -> rgb
28
- } else {
29
- colorLabel = `${colorName}-${tone}`;
21
+ const cssRGB = brandColorsPalletes[colorName][tone];
22
+ const colorLabel = tone === 'DEFAULT' ? colorName : `${colorName}-${tone}`;
23
+ colorCSSVars[`rgb-${colorLabel}`] = cssRGB.substring(4).replace(')', ''); // rgb(rgb) -> rgb
24
+ if (!/\d/.test(tone)) {
25
+ colorCSSVars[`c-${colorLabel}`] = cssRGB;
26
+ colorCSSVars[`c-on-${colorLabel}`] = onBrandColors[colorLabel];
30
27
  }
31
- colorCSSVars[`c-${colorLabel}`] = brandColorsPalletes[colorName][tone];
32
28
  });
33
29
  });
34
30
  Object.keys(onBrandColors).forEach((colorLabel) => {
35
- const rgb = onBrandColors[colorLabel];
31
+ const cssRGB = onBrandColors[colorLabel];
36
32
  const [colorName] = colorLabel.split('-');
37
33
  const colorCSSVar = Object.keys(colorCSSVars).find((varName) => {
38
- return colorCSSVars[varName] === rgb && new RegExp(`${colorName}-\\d`).test(varName);
34
+ return `rgb(${colorCSSVars[varName]})` === cssRGB
35
+ && new RegExp(`${colorName}-\\d`).test(varName);
39
36
  });
40
- colorCSSVars[`on-${colorLabel}`] = colorCSSVar ? `var(--${colorCSSVar})` : rgb;
37
+ colorCSSVars[`rgb-on-${colorLabel}`] = colorCSSVar
38
+ ? `var(--${colorCSSVar})`
39
+ : cssRGB.substring(4).replace(')', '');
41
40
  });
42
41
 
43
- const genUnoCSSConfig = ({
44
- brandIcons = defaultIcons.brandIcons,
45
- brandIconsShortcuts = defaultIcons.brandIconsShortcuts,
46
- brandLogos = defaultIcons.brandLogos,
47
- brandLogosShortcuts = defaultIcons.brandLogosShortcuts,
48
- generalIcons = defaultIcons.generalIcons,
49
- shoppingCartIcon = 'shopping-bag',
50
- preflights = [{
51
- getCSS: () => {
52
- const strCSSVars = Object.entries(colorCSSVars)
53
- .map(([varName, value]) => `--${varName}:${value};`)
54
- .join(' ');
55
- return `:root { ${strCSSVars} }`;
56
- },
57
- }],
58
- } = {}) => {
59
- const tailwindConfig = genTailwindConfig();
42
+ const genUnoCSSConfig = (themeOptions = {}) => {
43
+ const {
44
+ brandIcons,
45
+ brandIconsShortcuts,
46
+ brandLogos,
47
+ brandLogosShortcuts,
48
+ generalIcons,
49
+ shoppingCartIcon,
50
+ cashbackIcon,
51
+ preflights = [{
52
+ getCSS: () => {
53
+ const strCSSVars = Object.entries(colorCSSVars)
54
+ .map(([varName, value]) => `--${varName}:${value};`)
55
+ .join(' ');
56
+ return `:root { ${strCSSVars} }`;
57
+ },
58
+ }],
59
+ } = deepmerge(defaultThemeOptions, themeOptions);
60
+ const tailwindConfig = genTailwindConfig(themeOptions);
60
61
  const rules = [];
61
62
  tailwindConfig.plugins?.forEach((plugin) => {
62
63
  plugin({
@@ -86,6 +87,7 @@ const genUnoCSSConfig = ({
86
87
  : { [`i-${brand[0]}`]: `i-${brandLogos}:${brand[1]}` };
87
88
  }),
88
89
  { 'i-shopping-cart': `i-${generalIcons}:${shoppingCartIcon}` },
90
+ { 'i-cashback': `i-${generalIcons}:${cashbackIcon}` },
89
91
  [/^i-([^:]+)$/, ([, icon]) => `i-${generalIcons}:${icon}`],
90
92
  ],
91
93
  theme: {
@@ -97,14 +99,14 @@ const genUnoCSSConfig = ({
97
99
  colors[colorName] = {};
98
100
  Object.keys(brandColorsPalletes[colorName]).forEach((tone) => {
99
101
  const colorLabel = tone === 'DEFAULT' ? colorName : `${colorName}-${tone}`;
100
- colors[colorName][tone] = `var(--c-${colorLabel})`;
102
+ colors[colorName][tone] = `rgb(var(--rgb-${colorLabel}))`;
101
103
  });
102
104
  return colors;
103
105
  }, {}),
104
106
  on: Object.keys(onBrandColors).reduce((onColors, colorLabel) => {
105
107
  return {
106
108
  ...onColors,
107
- colorLabel: `var(--c-on-${colorLabel})`,
109
+ colorLabel: `rgb(var(--rgb-on-${colorLabel}))`,
108
110
  };
109
111
  }, {}),
110
112
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/types",
3
3
  "type": "module",
4
- "version": "0.1.3",
4
+ "version": "0.1.5",
5
5
  "description": "E-Com Plus Cloud Commerce reusable type definitions",
6
6
  "main": "index.ts",
7
7
  "repository": {
@@ -1,133 +0,0 @@
1
- <script lang="ts" setup>
2
- import type CmsHeader from '@@sf/types/cms-header';
3
- import type CmsContacts from '@@sf/types/cms-contacts';
4
-
5
- export interface Props {
6
- marketingStripe: CmsHeader['marketing_stripe'];
7
- hasNavbar?: boolean;
8
- pageLinks: CmsHeader['contacts_stripe']['pages'];
9
- contacts: CmsContacts;
10
- hasPhoneLinks?: boolean;
11
- hasNetworkLinks?: boolean;
12
- socialNetworks?: string[];
13
- }
14
-
15
- withDefaults(defineProps<Props>(), {
16
- hasNavbar: true,
17
- hasPhoneLinks: true,
18
- hasNetworksLinks: true,
19
- socialNetworks() {
20
- return ['facebook', 'twitter', 'youtube', 'pinterest', 'instagram', 'tiktok'];
21
- },
22
- });
23
- </script>
24
-
25
- <template>
26
- <div class="top-bar w-full bg-surface">
27
- <slot name="countdown" v-bind="{ marketingStripe }">
28
- <template v-if="marketingStripe && marketingStripe.text">
29
- <component
30
- :is="marketingStripe.link ? 'a' : 'div'"
31
- class="top-bar__countdown block text-sm text-center p-1
32
- whitespace-nowrap overflow-x-auto"
33
- :class="marketingStripe.link ? 'primary' : 'secondary'"
34
- :href="marketingStripe.link"
35
- >
36
- {{ marketingStripe.text }}
37
- </component>
38
- </template>
39
- </slot>
40
- <div
41
- v-if="hasNavbar"
42
- class="top-bar__nav hidden md:block py-2"
43
- >
44
- <div class="container">
45
- <div class="flex items-center lg:px-2 xl:px-4">
46
- <div class="grow text-xs">
47
- <slot name="page-links" v-bind="{ pageLinks }">
48
- <nav
49
- v-if="pageLinks"
50
- class="top-bar__page-links inline-block mr-4 font-semibold"
51
- >
52
- <a
53
- v-for="({ link, title }, i) in pageLinks"
54
- class="mr-2 lg:mr-3"
55
- :key="i"
56
- :href="link"
57
- >
58
- {{ title }}
59
- </a>
60
- </nav>
61
- </slot>
62
- <slot
63
- name="contact-links"
64
- v-bind="{ contacts, hasPhoneLinks }"
65
- >
66
- <div
67
- v-if="hasPhoneLinks"
68
- class="top-bar__contact-links inline-block"
69
- >
70
- <a
71
- v-if="contacts.whatsapp"
72
- href="javascript:;"
73
- target="_blank"
74
- rel="noopener"
75
- :data-whatsapp-tel="contacts.whatsapp.replace(/\D/g, '')"
76
- class="mr-2"
77
- >
78
- <i class="i-whatsapp"></i>
79
- {{ contacts.whatsapp }}
80
- </a>
81
- <a
82
- v-if="contacts.phone && contacts.phone !== contacts.whatsapp"
83
- :href="`tel:+${contacts.phone.replace(/\D/g, '')}`"
84
- target="_blank"
85
- rel="noopener"
86
- class="mr-2"
87
- >
88
- <i class="i-phone"></i>
89
- {{ contacts.phone }}
90
- </a>
91
- </div>
92
- </slot>
93
- </div>
94
- <slot
95
- name="social-networks"
96
- v-bind="{ contacts, hasNetworkLinks }"
97
- >
98
- <div
99
- v-if="hasNetworkLinks"
100
- class="top-bar__social-networks leading-none"
101
- >
102
- <template v-for="network in socialNetworks">
103
- <template v-if="contacts[network]">
104
- <a
105
- :key="network"
106
- :href="contacts[network]"
107
- target="_blank"
108
- rel="noopener"
109
- class="ml-2"
110
- :aria-label="`Follow on ${network}`"
111
- >
112
- <i v-if="network === 'facebook'" class="i-facebook"></i>
113
- <i v-else-if="network === 'youtube'" class="i-youtube"></i>
114
- <i v-else-if="network === 'twitter'" class="i-twitter"></i>
115
- <i v-else-if="network === 'pinterest'" class="i-pinterest"></i>
116
- <i v-else-if="network === 'instagram'" class="i-instagram"></i>
117
- <i v-else-if="network === 'tiktok'" class="i-tiktok"></i>
118
- </a>
119
- </template>
120
- </template>
121
- </div>
122
- </slot>
123
- </div>
124
- </div>
125
- </div>
126
- </div>
127
- </template>
128
-
129
- <style>
130
- .top-bar__nav a:not(:hover) {
131
- color: var(--gray);
132
- }
133
- </style>
@@ -1,5 +0,0 @@
1
- <template>
2
- <a class="text-gray-accent hover:text-primary no-underline">
3
- <slot />
4
- </a>
5
- </template>
@@ -1 +0,0 @@
1
- import{_ as a}from"./chunks/HeaderButtons.cbbb059d.js";import"./chunks/preload-helper.1de719f8.js";import"./chunks/_plugin-vue_export-helper.5ccc5d75.js";import"./chunks/runtime-core.esm-bundler.d5646b29.js";/* empty css */export{a as default};
@@ -1 +0,0 @@
1
- import"./chunks/Prices.vue_vue_type_script_setup_true_lang.c37148c1.js";import{_ as s}from"./chunks/Prices.vue_vue_type_script_setup_true_lang.c37148c1.js";/* empty css */import"./chunks/session-utm.2de8b604.js";import"./chunks/runtime-core.esm-bundler.d5646b29.js";import"./chunks/price.ecf7fed4.js";import"./chunks/ecom-utils.b0a26608.js";export{s 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}.resize-observer[data-v-b329ee4c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer[data-v-b329ee4c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}.v-popper__popper{z-index:10000;top:0;left:0;outline:none}.v-popper__popper.v-popper__popper--hidden{visibility:hidden;opacity:0;transition:opacity .15s,visibility .15s;pointer-events:none}.v-popper__popper.v-popper__popper--shown{visibility:visible;opacity:1;transition:opacity .15s}.v-popper__popper.v-popper__popper--skip-transition,.v-popper__popper.v-popper__popper--skip-transition>.v-popper__wrapper{transition:none!important}.v-popper__backdrop{position:absolute;top:0;left:0;width:100%;height:100%;display:none}.v-popper__inner{position:relative;box-sizing:border-box;overflow-y:auto}.v-popper__inner>div{position:relative;z-index:1;max-width:inherit;max-height:inherit}.v-popper__arrow-container{position:absolute;width:10px;height:10px}.v-popper__popper--arrow-overflow .v-popper__arrow-container,.v-popper__popper--no-positioning .v-popper__arrow-container{display:none}.v-popper__arrow-inner,.v-popper__arrow-outer{border-style:solid;position:absolute;top:0;left:0;width:0;height:0}.v-popper__arrow-inner{visibility:hidden;border-width:7px}.v-popper__arrow-outer{border-width:6px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{left:-2px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{left:-1px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer{border-bottom-width:0;border-left-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{top:0}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{border-top-width:0;border-left-color:transparent!important;border-right-color:transparent!important;border-top-color:transparent!important}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{top:-4px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{top:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{top:-1px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{border-left-width:0;border-left-color:transparent!important;border-top-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{left:-4px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{left:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{right:-10px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer{border-right-width:0;border-top-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner{left:-2px}.v-popper--theme-dropdown .v-popper__inner{background:#fff;color:#000;border-radius:6px;border:1px solid #ddd;box-shadow:0 6px 30px #0000001a}.v-popper--theme-dropdown .v-popper__arrow-inner{visibility:visible;border-color:#fff}.v-popper--theme-dropdown .v-popper__arrow-outer{border-color:#ddd}.v-popper--theme-tooltip .v-popper__inner{background:rgba(0,0,0,.8);color:#fff;border-radius:6px;padding:7px 12px 6px}.v-popper--theme-tooltip .v-popper__arrow-outer{border-color:#000c}*,: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{--c-primary-50:rgb(246,250,249);--c-primary-100:rgb(226,239,235);--c-primary-200:rgb(204,227,220);--c-primary-300:rgb(180,214,204);--c-primary-400:rgb(148,196,181);--c-primary-500:rgb(106,172,152);--c-primary-600:rgb(59,146,120);--c-primary-700:rgb(19,123,91);--c-primary-800:rgb(16,101,75);--c-primary-900:rgb(11,72,54);--c-primary-subtle:rgb(103,197,161);--rgb-primary:19,124,92;--c-primary:rgb(19,124,92);--c-primary-bold:rgb(0,57,31);--c-secondary-50:rgb(246,250,249);--c-secondary-100:rgb(226,239,235);--c-secondary-200:rgb(204,227,220);--c-secondary-300:rgb(180,214,204);--c-secondary-400:rgb(148,196,181);--c-secondary-500:rgb(106,172,152);--c-secondary-600:rgb(59,146,120);--c-secondary-700:rgb(19,123,91);--c-secondary-800:rgb(16,101,75);--c-secondary-900:rgb(11,72,54);--c-secondary-subtle:rgb(103,197,161);--rgb-secondary:19,124,92;--c-secondary:rgb(19,124,92);--c-secondary-bold:rgb(0,57,31);--on-primary:var(--c-on-dark);--on-primary-subtle:var(--c-on-light);--on-primary-bold:var(--c-on-dark);--on-secondary:var(--c-on-dark);--on-secondary-subtle:var(--c-on-light);--on-secondary-bold:var(--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-arrow-uturn-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='M9 15L3 9m0 0l6-6M3 9h12a6 6 0 0 1 0 12h-3'/%3E%3C/svg%3E");mask:var(--un-icon) no-repeat;mask-size:100% 100%;-webkit-mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;margin-bottom:.22rem;width:1em;height:1em}.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");mask:var(--un-icon) no-repeat;mask-size:100% 100%;-webkit-mask:var(--un-icon) no-repeat;-webkit-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");mask:var(--un-icon) no-repeat;mask-size:100% 100%;-webkit-mask:var(--un-icon) no-repeat;-webkit-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");mask:var(--un-icon) no-repeat;mask-size:100% 100%;-webkit-mask:var(--un-icon) no-repeat;-webkit-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");mask:var(--un-icon) no-repeat;mask-size:100% 100%;-webkit-mask:var(--un-icon) no-repeat;-webkit-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");mask:var(--un-icon) no-repeat;mask-size:100% 100%;-webkit-mask:var(--un-icon) no-repeat;-webkit-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");mask:var(--un-icon) no-repeat;mask-size:100% 100%;-webkit-mask:var(--un-icon) no-repeat;-webkit-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");mask:var(--un-icon) no-repeat;mask-size:100% 100%;-webkit-mask:var(--un-icon) no-repeat;-webkit-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");mask:var(--un-icon) no-repeat;mask-size:100% 100%;-webkit-mask:var(--un-icon) no-repeat;-webkit-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");mask:var(--un-icon) no-repeat;mask-size:100% 100%;-webkit-mask:var(--un-icon) no-repeat;-webkit-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");mask:var(--un-icon) no-repeat;mask-size:100% 100%;-webkit-mask:var(--un-icon) no-repeat;-webkit-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");mask:var(--un-icon) no-repeat;mask-size:100% 100%;-webkit-mask:var(--un-icon) no-repeat;-webkit-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}}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.top-0{top:0rem}.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}.mb-5{margin-bottom:1.25rem}.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}.h-full{height:100%}.h1{height:.25rem}.h2{height:.5rem}.h3{height:.75rem}.h4{height:1rem}.h5{height:1.25rem}.h6{height:1.5rem}.max-h-screen{max-height:100vh}.w-80{width:20rem}.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-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.overflow-x-auto{overflow-x:auto}.whitespace-nowrap{white-space:nowrap}.rounded-none{border-radius:0rem}.bg-opacity-90{--un-bg-opacity:.9}.p-0{padding:0rem}.p-1{padding:.25rem}.px{padding-left:1rem;padding-right:1rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.text-center{text-align:center}.text-right{text-align:right}.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-base{font-size:1rem;line-height:1.5rem}.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-primary:hover,.text-primary{color:var(--c-primary)}.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))}.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)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.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}}@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}}@media only screen and (prefers-color-scheme: dark){:root:not([data-theme=light]) a:not([role=button]){--color: var(--primary-100)}:root:not([data-theme=light]) a:not([role=button]):is([aria-current],:hover,:active,:focus){--color: var(--primary-300)}}html{scroll-behavior:smooth}body{overflow-x:hidden}.top-bar__nav a:not(:hover){color:var(--gray)}.drawer.v-enter-active,.drawer.v-leave-active{transition:opacity .15s linear}.drawer.v-enter-from,.drawer.v-leave-to{opacity:0}.drawer.v-enter-active article,.drawer.v-leave-active article{transition:transform .25s ease-in-out}.drawer.v-enter-from article,.drawer.v-leave-to article{transform:translate3d(var(--transition-3d-tx),0,0)}.drawer[data-v-30d58250]{--transition-3d-tx: var(--23c6d983)}
@@ -1 +0,0 @@
1
- .v-popper__popper{z-index:10000;top:0;left:0;outline:none}.v-popper__popper.v-popper__popper--hidden{visibility:hidden;opacity:0;transition:opacity .15s,visibility .15s;pointer-events:none}.v-popper__popper.v-popper__popper--shown{visibility:visible;opacity:1;transition:opacity .15s}.v-popper__popper.v-popper__popper--skip-transition,.v-popper__popper.v-popper__popper--skip-transition>.v-popper__wrapper{transition:none!important}.v-popper__backdrop{position:absolute;top:0;left:0;width:100%;height:100%;display:none}.v-popper__inner{position:relative;box-sizing:border-box;overflow-y:auto}.v-popper__inner>div{position:relative;z-index:1;max-width:inherit;max-height:inherit}.v-popper__arrow-container{position:absolute;width:10px;height:10px}.v-popper__popper--arrow-overflow .v-popper__arrow-container,.v-popper__popper--no-positioning .v-popper__arrow-container{display:none}.v-popper__arrow-inner,.v-popper__arrow-outer{border-style:solid;position:absolute;top:0;left:0;width:0;height:0}.v-popper__arrow-inner{visibility:hidden;border-width:7px}.v-popper__arrow-outer{border-width:6px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{left:-2px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{left:-1px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer{border-bottom-width:0;border-left-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{top:0}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{border-top-width:0;border-left-color:transparent!important;border-right-color:transparent!important;border-top-color:transparent!important}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{top:-4px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{top:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{top:-1px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{border-left-width:0;border-left-color:transparent!important;border-top-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{left:-4px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{left:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{right:-10px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer{border-right-width:0;border-top-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner{left:-2px}.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{u as F}from"./session-utm.2de8b604.js";import{r as W,c as m,d as R,a as q,b as u,n as b,g as C,u as e,e as P,m as V,o as y,f as v,t as h,h as d,i as J,j as A,w as E,k as z,l as K,p as U}from"./runtime-core.esm-bundler.d5646b29.js";import{g as L,c as G}from"./price.ecf7fed4.js";import"./ecom-utils.b0a26608.js";const H=(t,o,a=1e4)=>{let p,l;a&&(p=new AbortController,l=setTimeout(()=>{p.abort()},a)),o?.body&&typeof o.body=="object"&&(o.body=JSON.stringify(o.body),o.headers={...o.headers,"Content-Type":"application/json","Content-Length":o.body.length.toString()});const g=fetch(t,{...o,signal:p?.signal});return g.finally(()=>{l&&clearTimeout(l)}),g},Q={list_payments:{},calculate_shipping:{},apply_discount:{}},D=W(Q);{const t="MODULES_INFO",o=sessionStorage.getItem(t);let a;if(o)try{a=JSON.parse(o),a.__timestamp<Date.now()-1e3*60*5&&(a=null,sessionStorage.removeItem(t)),delete a.__timestamp}catch{sessionStorage.removeItem(t)}if(a?.list_payments)Object.assign(D,a);else{const p=[{modName:"list_payments"},{modName:"calculate_shipping"}];Object.keys(F).length&&p.push({modName:"apply_discount",reqOptions:{method:"post",body:{utm:F}}}),p.forEach(({modName:l,reqOptions:g})=>{H(`/api/modules/${l}`,g).then(async $=>{if($.ok){const i={};D[l]=i;const{result:O}=await $.json();Array.isArray(O)&&O.forEach(({error:I,response:f})=>{if(!I){let s,r;switch(l){case"calculate_shipping":s="free_shipping_from_value",r=f[s],typeof r=="number"&&(i[s]===void 0||r<i[s])&&(i[s]=r);break;case"list_payments":s="installments_option",r=f[s],r&&(!i[s]||r.monthly_interest<i[s].monthly_interest||r.max_number>i[s].max_number)&&(i[s]=r),s="discount_option",r=f[s],r&&(!i[s]||r.value>i[s].value)&&f.payment_gateways.forEach(({discount:_})=>{_&&_.apply_at!=="freight"&&_.value===r.value&&(i[s]={apply_at:_.apply_at,...r})}),s="loyalty_points_programs",r=f[s],r&&(i[s]={...i[s],...r});break;default:s="available_extra_discount",r=f[s],r&&(!i[s]||r.value>i[s].value)&&(i[s]=r)}}}),sessionStorage.setItem(t,JSON.stringify({...D,__timestamp:Date.now()}))}}).catch(console.error)})}}const M=(t,o)=>{const{type:a,value:p}=o;let l;return p?(a==="percentage"?l=t*((100-p)/100):l=t-p,l>0?l:0):t},X=t=>{const o=m(()=>t.product||{price:t.price||0,base_price:t.basePrice}),a=m(()=>{const{variations:c}=o.value;if(c){const k=L(o.value);for(let w=0;w<c.length;w++)if(L({...o.value,...c[w]})>k)return!0}return!1}),p=m(()=>D.apply_discount.available_extra_discount),l=m(()=>{const c=L(o.value),k=p.value;return k&&(!k.min_amount||c>k.min_amount)?M(c,k):c}),g=m(()=>{if(G(o.value))return o.value.base_price;const c=L(o.value);return c>l.value?c:0}),$=m(()=>t.installmentsOption||D.list_payments.installments_option||{max_number:1}),i=m(()=>{if($.value.max_number<=1)return 1;const c=$.value.min_installment||5,k=Math.round(l.value/c);return Math.min(k,$.value.max_number)}),O=m(()=>$.value.monthly_interest||0),I=m(()=>{if(i.value>=2){if(O.value)return l.value/i.value;const c=O.value/100;return l.value*c/(1-(1+c)**-i.value)}return 0}),f=m(()=>{const c=t.discountOption||D.list_payments.discount_option;return c&&(!c.min_amount||c.min_amount<=l.value)&&(!t.isAmountTotal||c.apply_at==="total")?c:{}}),s=m(()=>f.value.label||""),r=m(()=>M(l.value,f.value)),_=m(()=>{if(t.loyaltyPointsProgram)return t.loyaltyPointsProgram;const c=D.list_payments.loyalty_points_programs;if(c){const k=Object.keys(c);for(let w=0;w<k.length;w++){const S=c[w];if(S&&S.earn_percentage>0)return S}}return{ratio:0}}),j=m(()=>_.value.min_subtotal_to_earn||0),n=m(()=>_.value.name||""),B=m(()=>_.value.earn_percentage||0),N=m(()=>B.value/100),T=m(()=>N.value>0?l.value*N.value:0);return{hasVariedPrices:a,salePrice:l,comparePrice:g,installmentsObject:$,installmentsNumber:i,monthlyInterest:O,installmentValue:I,discountObject:f,discountLabel:s,priceWithDiscount:r,pointsProgramObject:_,pointsMinPrice:j,pointsProgramName:n,earnPointsPercentage:B,earnPointsFactor:N,pointsCashback:T}},Y=t=>m(()=>{let o="";return Object.keys(t).forEach(a=>{t[a]===!0&&(o+=` ${a.replace(/^(is|has)/,"")}`)}),o.slice(1)}),Z=["data-sf-prices"],x=["data-sf-prices-compare"],ee={key:0},te={key:0},se=["data-sf-prices-sale"],ae={key:0},ne=["data-sf-prices-cashback"],oe=P("i",{class:"i-arrow-uturn-left mr-1"},null,-1),re={class:"font-medium"},le=P("small",null," cashback",-1),ie=["data-sf-prices-installment"],ce={key:0},ue={key:0},me={key:0},pe=["data-sf-prices-discount"],de={key:0},fe={key:0},be=R({__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(t){const o=t,a=X(o),{hasVariedPrices:p,salePrice:l,comparePrice:g,earnPointsPercentage:$,pointsCashback:i,installmentsNumber:O,monthlyInterest:I,installmentValue:f,priceWithDiscount:s,discountLabel:r}=a,_=Y(o),j=q(!1);return setTimeout(()=>{j.value=!0,setTimeout(()=>{j.value=!1},5e3)},5e3),(n,B)=>{const N=K("Fade"),T=U("tooltip");return u(n.$slots,"default",b(C(e(a))),()=>[P("div",{"data-sf-prices":e(_),class:"text-base-600"},[e(g)?u(n.$slots,"compare",b(V({key:0},e(a))),()=>[P("span",{"data-sf-prices-compare":e(g),class:"text-base-500 mr-1"},[u(n.$slots,"compare-pre",{},()=>[t.isLiteral?(y(),v("small",ee,h("De "))):d("",!0)]),u(n.$slots,"compare-value",b(C(e(a))),()=>[P("s",null,h(n.$money(e(g))),1)]),u(n.$slots,"compare-post",{},()=>[t.isLiteral?(y(),v("small",te,h(" Por"))):d("",!0)])],8,x)]):d("",!0),u(n.$slots,"sale",b(C(e(a))),()=>[P("strong",{"data-sf-prices-sale":e(l),class:"inline-block text-base-800"},[u(n.$slots,"sale-pre",{},()=>[e(p)?(y(),v("small",ae,h("A partir de "))):d("",!0)]),u(n.$slots,"sale-value",b(C(e(a))),()=>[J(h(n.$money(e(l))),1)]),u(n.$slots,"sale-post")],8,se)]),e(i)?u(n.$slots,"cashback",b(V({key:1},e(a))),()=>[A(N,{slide:"down"},{default:E(()=>[t.hasCashback?(y(),v("div",{key:0,"data-sf-prices-cashback":e(i)},[z((y(),v("span",null,[u(n.$slots,"cashback-pre",{},()=>[oe]),u(n.$slots,"cashback-value",b(C(e(a))),()=>[P("span",re,h(n.$money(e(i))),1)]),u(n.$slots,"cashback-post",{},()=>[le])])),[[T,"Receba $1 de volta".replace("$1",n.$percentage(e($))),void 0,{bottom:!0}]])],8,ne)):d("",!0)]),_:3})]):d("",!0),e(f)?u(n.$slots,"installment",b(V({key:2},e(a))),()=>[A(N,{slide:"down"},{default:E(()=>[t.hasPriceOptions?(y(),v("div",{key:0,"data-sf-prices-installment":e(f)},[u(n.$slots,"installment-pre",{},()=>[t.isLiteral?(y(),v("small",ce,h("At\xE9 "))):d("",!0)]),u(n.$slots,"installment-value",b(C(e(a))),()=>[J(h(e(O))+"x ",1),t.isLiteral?(y(),v("small",ue,h(" De "))):d("",!0),P("span",null,h(n.$money(e(f))),1)]),u(n.$slots,"installment-post",{},()=>[!e(I)&&t.isLiteral?(y(),v("small",me,h("Sem juros"))):d("",!0)])],8,ie)):d("",!0)]),_:3})]):d("",!0),e(s)<e(l)?u(n.$slots,"discount",b(V({key:3},e(a))),()=>[A(N,{slide:"down"},{default:E(()=>[t.hasPriceOptions?(y(),v("div",{key:0,"data-sf-prices-discount":e(s)},[u(n.$slots,"discount-pre",{},()=>[e(r)?d("",!0):(y(),v("small",de,h("A partir de ")))]),u(n.$slots,"discount-value",b(C(e(a))),()=>[P("span",null,h(n.$money(e(s))),1)]),u(n.$slots,"discount-post",{},()=>[e(r)?(y(),v("small",fe,h(` ${e(r)}`),1)):d("",!0)])],8,pe)):d("",!0)]),_:3})]):d("",!0)],8,Z)])}}});export{be as _};