lau-ecom-design-system 1.0.2 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
package/dist/style.css CHANGED
@@ -640,7 +640,7 @@
640
640
  --tw-contain-style: ;
641
641
  }
642
642
 
643
- /* ! tailwindcss v3.4.14 | MIT License | https://tailwindcss.com */
643
+ /* ! tailwindcss v3.4.16 | MIT License | https://tailwindcss.com */
644
644
 
645
645
  /*
646
646
  1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
@@ -1242,6 +1242,10 @@ video {
1242
1242
  position: relative;
1243
1243
  }
1244
1244
 
1245
+ .dsEcom-inset-0 {
1246
+ inset: 0px;
1247
+ }
1248
+
1245
1249
  .dsEcom-left-0 {
1246
1250
  left: 0px;
1247
1251
  }
@@ -1282,6 +1286,10 @@ video {
1282
1286
  z-index: 20;
1283
1287
  }
1284
1288
 
1289
+ .dsEcom-z-50 {
1290
+ z-index: 50;
1291
+ }
1292
+
1285
1293
  .dsEcom-col-span-2 {
1286
1294
  grid-column: span 2 / span 2;
1287
1295
  }
@@ -1331,6 +1339,11 @@ video {
1331
1339
  display: none;
1332
1340
  }
1333
1341
 
1342
+ .dsEcom-size-full {
1343
+ width: 100%;
1344
+ height: 100%;
1345
+ }
1346
+
1334
1347
  .\!dsEcom-h-\[1px\] {
1335
1348
  height: 1px !important;
1336
1349
  }
@@ -1609,6 +1622,10 @@ video {
1609
1622
  border-color: var(--color-cbt-color-apple-green-60-base);
1610
1623
  }
1611
1624
 
1625
+ .dsEcom-border-color-cbt-color-neutral-90 {
1626
+ border-color: var(--color-cbt-color-neutral-90);
1627
+ }
1628
+
1612
1629
  .dsEcom-border-upc-color-neutral-60 {
1613
1630
  border-color: var(--color-upc-color-neutral-60);
1614
1631
  }
@@ -1629,10 +1646,6 @@ video {
1629
1646
  border-color: var(--color-upc-color-red-60-base);
1630
1647
  }
1631
1648
 
1632
- .dsEcom-border-upc-color-red-90 {
1633
- border-color: var(--color-upc-color-red-90);
1634
- }
1635
-
1636
1649
  .dsEcom-border-upc-epg-color-purple-60-base {
1637
1650
  border-color: var(--color-upc-epg-color-purple-60-base);
1638
1651
  }
@@ -1653,6 +1666,10 @@ video {
1653
1666
  background-color: var(--color-upc-color-red-60-base) !important;
1654
1667
  }
1655
1668
 
1669
+ .dsEcom-bg-cbt-astro-blue-90 {
1670
+ background-color: var(--color-cbt-astro-blue-90);
1671
+ }
1672
+
1656
1673
  .dsEcom-bg-cbt-color-apple-green-60-base {
1657
1674
  background-color: var(--color-cbt-color-apple-green-60-base);
1658
1675
  }
@@ -1681,6 +1698,10 @@ video {
1681
1698
  background-color: var(--color-upc-color-neutral-70);
1682
1699
  }
1683
1700
 
1701
+ .dsEcom-bg-upc-color-neutral-80 {
1702
+ background-color: var(--color-upc-color-neutral-80);
1703
+ }
1704
+
1684
1705
  .dsEcom-bg-upc-color-neutral-90 {
1685
1706
  background-color: var(--color-upc-color-neutral-90);
1686
1707
  }
@@ -1691,7 +1712,11 @@ video {
1691
1712
 
1692
1713
  .dsEcom-bg-white {
1693
1714
  --tw-bg-opacity: 1;
1694
- background-color: rgb(255 255 255 / var(--tw-bg-opacity));
1715
+ background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
1716
+ }
1717
+
1718
+ .dsEcom-bg-opacity-70 {
1719
+ --tw-bg-opacity: 0.7;
1695
1720
  }
1696
1721
 
1697
1722
  .dsEcom-p-4 {
@@ -1898,6 +1923,11 @@ video {
1898
1923
  color: var(--color-upc-epg-color-purple-60-base);
1899
1924
  }
1900
1925
 
1926
+ .dsEcom-text-white {
1927
+ --tw-text-opacity: 1;
1928
+ color: rgb(255 255 255 / var(--tw-text-opacity, 1));
1929
+ }
1930
+
1901
1931
  .dsEcom-shadow-upc-shadow-prominent {
1902
1932
  --tw-shadow: 0px 8px 48px -6px rgba(89, 89, 89, 0.24);
1903
1933
  --tw-shadow-colored: 0px 8px 48px -6px var(--tw-shadow-color);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "lau-ecom-design-system",
3
3
  "private": false,
4
- "version": "1.0.2",
4
+ "version": "1.0.4",
5
5
  "sourceType": "module",
6
6
  "sideEffects": false,
7
7
  "main": "dist/lau-ecom-design-system.ssr.js",
@@ -1,105 +1,199 @@
1
- <script lang="ts" setup>
2
- import { computed } from "vue";
3
- import LauEcomButton from "../LauEcomButton/LauEcomButton.vue";
4
- import LauEcomTextButton from "../LauEcomTextButton/LauEcomTextButton.vue";
5
- import { LauEcomInstance } from "../../enums";
6
-
7
- interface Props {
8
- instance?: LauEcomInstance;
9
- }
10
-
11
- const props = withDefaults(defineProps<Props>(), {
12
- instance: LauEcomInstance.Upc,
13
- });
14
-
15
- const emit = defineEmits(["onConfigCookies", "onAccept"]);
16
-
17
- const handleConfigCookies = () => {
18
- emit("onConfigCookies");
19
- };
20
-
21
- const handleAccept = () => {
22
- emit("onAccept");
23
- };
24
-
25
- const lauEcomBannerCookiesClasses = computed(() => {
26
- return {
27
- "lau-ecom-cookies": true,
28
- "lau-ecom-cookies--upc": props.instance === LauEcomInstance.Upc,
29
- "lau-ecom-cookies--cib": props.instance === LauEcomInstance.Cibertec,
30
- };
31
- });
32
-
33
- const lauEcomBannerCookiesTextClasses = computed(() => {
34
- return {
35
- "lau-ecom-text": true,
36
- "core-font-body-reg-04-16px": true,
37
- "lau-ecom-text--upc": props.instance === LauEcomInstance.Upc,
38
- "lau-ecom-text--cib": props.instance === LauEcomInstance.Cibertec,
39
- };
40
- });
41
- </script>
42
-
43
- <template>
44
- <div :class="lauEcomBannerCookiesClasses">
45
- <p :class="lauEcomBannerCookiesTextClasses">
46
- Este sitio web utiliza cookies gracias a esto podemos personalizar los
47
- ingresos a la web en futuras visitas y brindarte una mejor experiencia
48
- dentro de nuestro sitio.
49
- <a class="core-font-link-02-16px dsEcom-text-core-color-blue-60-base"
50
- >Conoce más</a
51
- >
52
- </p>
53
- <div class="lau-ecom-buttons">
54
- <LauEcomTextButton :instance="instance" @on-click="handleConfigCookies">
55
- Configurar cookies
56
- </LauEcomTextButton>
57
- <LauEcomButton :instance="instance" @on-click="handleAccept">
58
- Aceptar
59
- </LauEcomButton>
60
- </div>
61
- </div>
62
- </template>
63
-
64
- <style scoped>
65
- .lau-ecom-cookies {
66
- @apply dsEcom-w-full
67
- dsEcom-py-[32px]
68
- dsEcom-px-[64px]
69
- dsEcom-flex
70
- dsEcom-justify-between
71
- dsEcom-items-center
72
- dsEcom-gap-20
73
- dsEcom-shadow-upc-shadow-prominent
74
- mobiles:dsEcom-flex-col
75
- mobiles:dsEcom-px-[24px];
76
- }
77
-
78
- .lau-ecom-cookies--upc {
79
- @apply dsEcom-text-upc-color-neutral-20;
80
- }
81
-
82
- .lau-ecom-cookies--cib {
83
- @apply dsEcom-text-color-cbt-color-neutral-20;
84
- }
85
-
86
- .lau-ecom-text {
87
- @apply dsEcom-block
88
- dsEcom-w-[883px]
89
- mobiles:dsEcom-w-full;
90
- }
91
-
92
- .lau-ecom-text--upc {
93
- @apply dsEcom-text-upc-color-neutral-90;
94
- }
95
-
96
- .lau-ecom-text--cib {
97
- @apply dsEcom-text-color-cbt-color-neutral-80;
98
- }
99
-
100
- .lau-ecom-buttons {
101
- @apply dsEcom-flex
102
- dsEcom-gap-8
103
- mobiles:dsEcom-self-end;
104
- }
105
- </style>
1
+ <script lang="ts" setup>
2
+ import { computed, onBeforeMount, ref } from "vue";
3
+ import LauEcomButton from "../LauEcomButton/LauEcomButton.vue";
4
+ import LauEcomTextButton from "../LauEcomTextButton/LauEcomTextButton.vue";
5
+ import { LauEcomInstance } from "../../enums";
6
+ import { getCookie, acceptAllCookies } from "../../utils/Cookies";
7
+ import LauEcomBannerCookiesConfig from "./LauEcomBannerCookiesConfig.vue";
8
+ import { CategoryCookie } from "./types";
9
+ import { COOKIE_CONSENT, CookieItemKey } from "../../utils";
10
+
11
+ interface Props {
12
+ instance?: LauEcomInstance;
13
+ isVisible?: boolean;
14
+ categoryCookies?: CategoryCookie[] | null;
15
+ }
16
+
17
+ const props = withDefaults(defineProps<Props>(), {
18
+ instance: LauEcomInstance.Upc,
19
+ isVisible: true,
20
+ categoryCookies: () => {
21
+ return [
22
+ {
23
+ title: "Esenciales",
24
+ description:
25
+ "Este sitio web utiliza cookies gracias a esto podemos personalizar los ingresos a la web en futuras visitas y brindarte una mejor experiencia.",
26
+ isChecked: false,
27
+ isDisabled: false,
28
+ },
29
+ {
30
+ title: "Preferencias",
31
+ description:
32
+ "Este sitio web utiliza cookies gracias a esto podemos personalizar los ingresos a la web en futuras visitas y brindarte una mejor experiencia.",
33
+ isChecked: false,
34
+ isDisabled: false,
35
+ },
36
+ {
37
+ id: CookieItemKey.statistics,
38
+ title: "Estadisticas",
39
+ description:
40
+ "Este sitio web utiliza cookies gracias a esto podemos personalizar los ingresos a la web en futuras visitas y brindarte una mejor experiencia.",
41
+ isChecked: true,
42
+ isDisabled: false,
43
+ },
44
+ {
45
+ id: CookieItemKey.marketing,
46
+ title: "Marketing",
47
+ description:
48
+ "Este sitio web utiliza cookies gracias a esto podemos personalizar los ingresos a la web en futuras visitas y brindarte una mejor experiencia.",
49
+ isChecked: true,
50
+ isDisabled: false,
51
+ },
52
+ ];
53
+ },
54
+ });
55
+
56
+ const isConfigOpen = ref(false);
57
+ const isBannerVisible = ref(props.isVisible);
58
+
59
+ const emit = defineEmits([
60
+ "onConfigCookies",
61
+ "onAccept",
62
+ "onAcceptAll",
63
+ "onReject",
64
+ "onAcceptSelected",
65
+ "onAcceptAll",
66
+ "onClose",
67
+ ]);
68
+
69
+ onBeforeMount(() => {
70
+ const cookieConsent = getCookie(COOKIE_CONSENT);
71
+ if (cookieConsent) isBannerVisible.value = false;
72
+ });
73
+
74
+ const handleConfigCookies = () => {
75
+ isConfigOpen.value = !isConfigOpen.value;
76
+ emit("onConfigCookies");
77
+ };
78
+
79
+ const handleAccept = () => {
80
+ acceptAllCookies();
81
+ emit("onAccept");
82
+ isBannerVisible.value = false;
83
+ };
84
+
85
+ const lauEcomBannerCookiesClasses = computed(() => {
86
+ return {
87
+ "lau-ecom-cookies": true,
88
+ "lau-ecom-cookies--upc": props.instance === LauEcomInstance.Upc,
89
+ "lau-ecom-cookies--cib": props.instance === LauEcomInstance.Cibertec,
90
+ };
91
+ });
92
+
93
+ const lauEcomBannerCookiesTextClasses = computed(() => {
94
+ return {
95
+ "lau-ecom-text core-font-body-reg-04-16px": true,
96
+ "lau-ecom-text--upc": props.instance === LauEcomInstance.Upc,
97
+ "lau-ecom-text--cib": props.instance === LauEcomInstance.Cibertec,
98
+ };
99
+ });
100
+
101
+ const handleConfigClose = () => {
102
+ emit("onClose");
103
+ isConfigOpen.value = false;
104
+ };
105
+
106
+ const closeCookiesBanner = () => {
107
+ isConfigOpen.value = false;
108
+ isBannerVisible.value = false;
109
+ };
110
+
111
+ const handleReject = () => {
112
+ emit("onReject");
113
+ closeCookiesBanner();
114
+ };
115
+
116
+ const handleAcceptSelected = () => {
117
+ emit("onAcceptSelected");
118
+ closeCookiesBanner();
119
+ };
120
+
121
+ const handleAcceptAll = () => {
122
+ emit("onAcceptAll");
123
+ closeCookiesBanner();
124
+ };
125
+ </script>
126
+
127
+ <template>
128
+ <div v-if="isBannerVisible">
129
+ <div v-if="!isConfigOpen" :class="lauEcomBannerCookiesClasses">
130
+ <p :class="lauEcomBannerCookiesTextClasses">
131
+ Este sitio web utiliza cookies gracias a esto podemos personalizar los
132
+ ingresos a la web en futuras visitas y brindarte una mejor experiencia
133
+ dentro de nuestro sitio.
134
+ <a class="core-font-link-02-16px dsEcom-text-core-color-blue-60-base"
135
+ >Conoce más</a
136
+ >
137
+ </p>
138
+ <div class="lau-ecom-buttons">
139
+ <LauEcomTextButton :instance="instance" @on-click="handleConfigCookies">
140
+ Configurar cookies
141
+ </LauEcomTextButton>
142
+ <LauEcomButton :instance="instance" @on-click="handleAccept">
143
+ Aceptar
144
+ </LauEcomButton>
145
+ </div>
146
+ </div>
147
+ <LauEcomBannerCookiesConfig
148
+ v-else
149
+ :category-cookies="categoryCookies"
150
+ @on-accept-all="handleAcceptAll"
151
+ @on-reject="handleReject"
152
+ @on-accept-selected="handleAcceptSelected"
153
+ @on-close="handleConfigClose"
154
+ />
155
+ </div>
156
+ </template>
157
+
158
+ <style scoped>
159
+ .lau-ecom-cookies {
160
+ @apply dsEcom-w-full
161
+ dsEcom-py-[32px]
162
+ dsEcom-px-[64px]
163
+ dsEcom-flex
164
+ dsEcom-justify-between
165
+ dsEcom-items-center
166
+ dsEcom-gap-20
167
+ dsEcom-shadow-upc-shadow-prominent
168
+ mobiles:dsEcom-flex-col
169
+ mobiles:dsEcom-px-[24px];
170
+ }
171
+
172
+ .lau-ecom-cookies--upc {
173
+ @apply dsEcom-text-upc-color-neutral-20;
174
+ }
175
+
176
+ .lau-ecom-cookies--cib {
177
+ @apply dsEcom-text-color-cbt-color-neutral-20;
178
+ }
179
+
180
+ .lau-ecom-text {
181
+ @apply dsEcom-block
182
+ dsEcom-w-[883px]
183
+ mobiles:dsEcom-w-full;
184
+ }
185
+
186
+ .lau-ecom-text--upc {
187
+ @apply dsEcom-text-upc-color-neutral-90;
188
+ }
189
+
190
+ .lau-ecom-text--cib {
191
+ @apply dsEcom-text-color-cbt-color-neutral-80;
192
+ }
193
+
194
+ .lau-ecom-buttons {
195
+ @apply dsEcom-flex
196
+ dsEcom-gap-8
197
+ mobiles:dsEcom-self-end;
198
+ }
199
+ </style>