lau-ecom-design-system 1.0.0 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. package/dist/lau-ecom-design-system.esm.js +2472 -980
  2. package/dist/lau-ecom-design-system.min.js +1 -1
  3. package/dist/lau-ecom-design-system.ssr.js +1768 -408
  4. package/dist/style.css +405 -27
  5. package/package.json +1 -1
  6. package/src/assets/Rambla/Rambla.otf +0 -0
  7. package/src/components/LauEcomBannerCookies/LauEcomBannerCookies.vue +105 -106
  8. package/src/components/LauEcomBannerCookies/LauEcomBannerCookiesConfig.vue +191 -159
  9. package/src/components/LauEcomBannerCookies/LauEcomBannerCookiesConfigAccordion.vue +80 -66
  10. package/src/components/LauEcomButton/LauEcomButton.vue +192 -160
  11. package/src/components/LauEcomCheckbox/LauEcomCheckbox.vue +18 -3
  12. package/src/components/LauEcomDisclamer/LauEcomDisclamer.vue +82 -0
  13. package/src/components/LauEcomFooter/LauEcomFooter.vue +194 -0
  14. package/src/components/LauEcomFooter/LauEcomSubFooter.vue +113 -0
  15. package/src/components/LauEcomFooter/LauEcomSubFooterCategory.vue +127 -0
  16. package/src/components/LauEcomIcon/LauEcomCbtIconChart.vue +53 -0
  17. package/src/components/LauEcomIcon/LauEcomCbtIconGirlReading.vue +31 -0
  18. package/src/components/LauEcomIcon/LauEcomCbtIconWorldwide.vue +29 -0
  19. package/src/components/LauEcomIcon/LauEcomCbtLogoCbtVer.vue +29 -0
  20. package/src/components/LauEcomIcon/LauEcomCbtLogoLaureate.vue +110 -0
  21. package/src/components/LauEcomIcon/LauEcomCbtLogoUpcWhite.vue +33 -0
  22. package/src/components/LauEcomIcon/LauEcomCoreIconBook.vue +29 -0
  23. package/src/components/LauEcomIcon/LauEcomCoreIconFileCode.vue +31 -0
  24. package/src/components/LauEcomIcon/LauEcomCoreIconNavClose.vue +29 -29
  25. package/src/components/LauEcomIcon/LauEcomLogoWasc.vue +456 -0
  26. package/src/components/LauEcomIcon/LauEcomUpcIconCertificate.vue +31 -0
  27. package/src/components/LauEcomIcon/LauEcomUpcIconCheckCircle.vue +31 -0
  28. package/src/components/LauEcomIcon/LauEcomUpcIconCreditCard.vue +31 -0
  29. package/src/components/LauEcomIcon/LauEcomUpcIconExclamationCircle.vue +31 -0
  30. package/src/components/LauEcomIcon/LauEcomUpcIconGlobe.vue +29 -0
  31. package/src/components/LauEcomIcon/LauEcomUpcIconInfoCircle.vue +29 -0
  32. package/src/components/LauEcomIcon/LauEcomUpcIconInnova.vue +122 -0
  33. package/src/components/LauEcomIcon/LauEcomUpcIconVirtualClass.vue +39 -0
  34. package/src/components/LauEcomInput/LauEcomInput.vue +6 -6
  35. package/src/components/LauEcomRadioButton/LauEcomRadioButton.vue +36 -8
  36. package/src/components/LauEcomRtb/LauEcomRtb.vue +92 -0
  37. package/src/components/LauEcomStepbar/LauEcomStepbar.vue +4 -0
  38. package/src/components/LauEcomStepbar/LauEcomStepbarItem.vue +50 -7
  39. package/src/components/LauEcomSwitch/LauEcomSwitch.vue +113 -94
  40. package/src/components/LauEcomTab/LauEcomTab.vue +113 -0
  41. package/src/components/LauEcomTextButton/LauEcomTextButton.vue +139 -0
  42. package/src/enums/index.ts +3 -2
  43. package/src/enums/instance.ts +5 -5
  44. package/src/enums/size.ts +1 -1
  45. package/src/enums/state.ts +6 -0
@@ -1,66 +1,80 @@
1
- <script lang="ts" setup>
2
- import { computed, ref } from "vue";
3
- import LauEcomUpcIconNavArrow from "../LauEcomIcon/LauEcomUpcIconNavArrow.vue";
4
- import LauEcomSwitch from "../LauEcomSwitch/LauEcomSwitch.vue";
5
- import { CookieItem } from "./types";
6
-
7
- interface Props {
8
- cookieItem: CookieItem;
9
- }
10
-
11
- withDefaults(defineProps<Props>(), {
12
- cookieItem: () => {
13
- return {
14
- title: "Cookie",
15
- text: "lorem ipsum dolor sit amet, consectetur",
16
- };
17
- },
18
- });
19
-
20
- const isOpen = ref(false);
21
- const isChecked = defineModel<boolean>();
22
-
23
- const handleClickAccordion = () => {
24
- isOpen.value = !isOpen.value;
25
- };
26
-
27
- const iconClass = computed(() => {
28
- return isOpen.value ? "dsEcom-rotate-0" : "dsEcom-rotate-180";
29
- });
30
- </script>
31
-
32
- <template>
33
- <div class="dsEcom-mb-4">
34
- <div class="lau-ecom-config-accordion-head">
35
- <div
36
- class="dsEcom-flex dsEcom-items-center dsEcom-gap-2"
37
- @click="handleClickAccordion"
38
- >
39
- <span :class="iconClass"><LauEcomUpcIconNavArrow /></span>
40
- <p class="upc-font-subtitle-03-20px">
41
- {{ cookieItem.title }}
42
- </p>
43
- </div>
44
- <LauEcomSwitch v-model="isChecked" />
45
- </div>
46
- <div v-show="isOpen" class="lau-ecom-config-accordion-content">
47
- <p class="core-font-body-reg-05-14px">
48
- {{ cookieItem.text }}
49
- </p>
50
- </div>
51
- </div>
52
- </template>
53
-
54
- <style scoped>
55
- .lau-ecom-config-accordion-head {
56
- @apply dsEcom-flex
57
- dsEcom-justify-between
58
- dsEcom-pb-4
59
- dsEcom-border-b-2;
60
- }
61
-
62
- .lau-ecom-config-accordion-content {
63
- @apply dsEcom-py-2
64
- dsEcom-px-8;
65
- }
66
- </style>
1
+ <script lang="ts" setup>
2
+ import { computed, ref } from "vue";
3
+ import LauEcomUpcIconNavArrow from "../LauEcomIcon/LauEcomUpcIconNavArrow.vue";
4
+ import LauEcomSwitch from "../LauEcomSwitch/LauEcomSwitch.vue";
5
+ import { CookieItem } from "./types";
6
+ import { LauEcomInstance } from "../../enums";
7
+
8
+ interface Props {
9
+ instance: LauEcomInstance;
10
+ cookieItem: CookieItem;
11
+ }
12
+
13
+ const props = withDefaults(defineProps<Props>(), {
14
+ instance: LauEcomInstance.Upc,
15
+ cookieItem: () => {
16
+ return {
17
+ title: "Cookie",
18
+ text: "lorem ipsum dolor sit amet, consectetur",
19
+ };
20
+ },
21
+ });
22
+
23
+ const isOpen = ref(false);
24
+ const isChecked = defineModel<boolean>();
25
+
26
+ const handleClickAccordion = () => {
27
+ isOpen.value = !isOpen.value;
28
+ };
29
+
30
+ const iconClass = computed(() => {
31
+ return isOpen.value ? "dsEcom-rotate-0" : "dsEcom-rotate-180";
32
+ });
33
+
34
+ const titleClasses = computed(() => {
35
+ return {
36
+ "upc-font-subtitle-03-20px": props.instance === LauEcomInstance.Upc,
37
+ "cbt-font-subtitle-03-20px": props.instance === LauEcomInstance.Cibertec,
38
+ };
39
+ });
40
+ </script>
41
+
42
+ <template>
43
+ <div class="dsEcom-mb-4">
44
+ <div class="lau-ecom-config-accordion-head">
45
+ <div
46
+ class="dsEcom-flex dsEcom-items-center dsEcom-gap-2"
47
+ @click="handleClickAccordion"
48
+ >
49
+ <span :class="iconClass"><LauEcomUpcIconNavArrow /></span>
50
+ <p :class="titleClasses">
51
+ {{ cookieItem.title }}
52
+ </p>
53
+ </div>
54
+ <LauEcomSwitch
55
+ v-model="isChecked"
56
+ :instance="instance"
57
+ :isDisabled="cookieItem.isDisabled"
58
+ />
59
+ </div>
60
+ <div v-show="isOpen" class="lau-ecom-config-accordion-content">
61
+ <p class="core-font-body-reg-05-14px">
62
+ {{ cookieItem.text }}
63
+ </p>
64
+ </div>
65
+ </div>
66
+ </template>
67
+
68
+ <style scoped>
69
+ .lau-ecom-config-accordion-head {
70
+ @apply dsEcom-flex
71
+ dsEcom-justify-between
72
+ dsEcom-pb-4
73
+ dsEcom-border-b-2;
74
+ }
75
+
76
+ .lau-ecom-config-accordion-content {
77
+ @apply dsEcom-py-2
78
+ dsEcom-px-8;
79
+ }
80
+ </style>
@@ -1,160 +1,192 @@
1
- <script lang="ts" setup>
2
- import { computed, ref } from "vue";
3
- import { LauEcomUpcIconNavArrow } from "../LauEcomIcon";
4
- import { Colors } from "../../utils";
5
- import { LauEcomButtonSize, LauEcomButtonType } from "./types";
6
- import { LauEcomInstance } from "../../enums";
7
-
8
- const props = withDefaults(
9
- defineProps<{
10
- instance?: LauEcomInstance;
11
- type?: LauEcomButtonType;
12
- size?: LauEcomButtonSize;
13
- isDisabled?: boolean;
14
- hasArrow?: boolean;
15
- }>(),
16
- {
17
- instance: LauEcomInstance.Upc,
18
- text: "Button Text",
19
- type: LauEcomButtonType.Primary,
20
- size: LauEcomButtonSize.Large,
21
- isDisabled: false,
22
- hasArrow: false,
23
- },
24
- );
25
-
26
- const emit = defineEmits(["onClick"]);
27
-
28
- const isMouseOver = ref(false);
29
-
30
- const lauEcomButtonClasses = computed(() => {
31
- return {
32
- "lau-ecom-button": true,
33
- "lau-ecom-button-upc": props.instance === LauEcomInstance.Upc,
34
- "lau-ecom-button-upc--secondary":
35
- props.instance === LauEcomInstance.Upc &&
36
- props.type === LauEcomButtonType.Secondary,
37
- "lau-ecom-button-upc--large":
38
- props.instance === LauEcomInstance.Upc &&
39
- props.size === LauEcomButtonSize.Large,
40
- "lau-ecom-button-upc--medium":
41
- props.instance === LauEcomInstance.Upc &&
42
- props.size === LauEcomButtonSize.Medium,
43
- "lau-ecom-button-upc--disabled":
44
- props.instance === "UPC" &&
45
- props.type === LauEcomButtonType.Primary &&
46
- props.isDisabled,
47
- "lau-ecom-button-upc--secondary-disabled":
48
- props.instance === LauEcomInstance.Upc &&
49
- props.type === LauEcomButtonType.Secondary &&
50
- props.isDisabled,
51
- };
52
- });
53
-
54
- const getIconColor = computed(() => {
55
- if (props.instance === "UPC") {
56
- switch (props.type) {
57
- case LauEcomButtonType.Primary:
58
- return Colors["upc-color-neutral-10"];
59
-
60
- case LauEcomButtonType.Secondary:
61
- if (props.isDisabled) {
62
- return Colors["upc-color-neutral-70"];
63
- }
64
- return isMouseOver.value
65
- ? Colors["upc-color-red-80"]
66
- : Colors["upc-color-red-60-base"];
67
-
68
- default:
69
- return "";
70
- }
71
- }
72
- return "";
73
- });
74
-
75
- const handleClick = () => {
76
- emit("onClick");
77
- };
78
-
79
- const handleMouseOver = () => {
80
- isMouseOver.value = true;
81
- };
82
-
83
- const handleMouseOut = () => {
84
- isMouseOver.value = false;
85
- };
86
- </script>
87
-
88
- <template>
89
- <button
90
- class="upc-font-button-bold-16px"
91
- :class="lauEcomButtonClasses"
92
- :disabled="isDisabled"
93
- @mouseover="handleMouseOver"
94
- @mouseout="handleMouseOut"
95
- @click="handleClick"
96
- >
97
- <LauEcomUpcIconNavArrow v-if="hasArrow" :color="getIconColor" />
98
- <slot></slot>
99
- </button>
100
- </template>
101
-
102
- <style scoped>
103
- .lau-ecom-button {
104
- @apply dsEcom-text-upc-color-neutral-10 dsEcom-flex dsEcom-items-center dsEcom-justify-center dsEcom-gap-2;
105
- }
106
-
107
- .lau-ecom-button-upc {
108
- @apply dsEcom-bg-upc-color-red-60-base
109
- dsEcom-rounded-core-border-radius-32px
110
- dsEcom-border-[1px]
111
- dsEcom-border-upc-color-red-60-base
112
- dsEcom-text-center
113
- dsEcom-py-[14px]
114
- dsEcom-px-[16px]
115
- hover:dsEcom-bg-upc-color-red-80
116
- hover:dsEcom-border-upc-color-red-80
117
- active:dsEcom-bg-upc-color-red-80
118
- active:dsEcom-border-upc-color-red-80;
119
- }
120
-
121
- .lau-ecom-button-upc--large {
122
- @apply dsEcom-w-auto
123
- dsEcom-h-[48px];
124
- }
125
-
126
- .lau-ecom-button-upc--medium {
127
- @apply dsEcom-w-auto
128
- dsEcom-h-[44px];
129
- }
130
-
131
- .lau-ecom-button-upc--disabled {
132
- @apply dsEcom-border-upc-color-neutral-70
133
- dsEcom-bg-upc-color-neutral-70
134
- hover:dsEcom-bg-upc-color-neutral-70
135
- hover:dsEcom-border-upc-color-neutral-70
136
- active:dsEcom-bg-upc-color-neutral-70
137
- active:dsEcom-border-upc-color-neutral-70;
138
- }
139
-
140
- .lau-ecom-button-upc--secondary {
141
- @apply dsEcom-bg-upc-color-neutral-10
142
- dsEcom-border-upc-color-red-60-base
143
- dsEcom-text-upc-color-red-60-base
144
- hover:dsEcom-text-upc-color-red-80
145
- hover:dsEcom-border-upc-color-red-80
146
- hover:dsEcom-bg-upc-color-neutral-10
147
- active:dsEcom-text-upc-color-red-80
148
- active:dsEcom-border-upc-color-red-80
149
- active:dsEcom-bg-upc-color-neutral-10;
150
- }
151
-
152
- .lau-ecom-button-upc--secondary-disabled {
153
- @apply dsEcom-border-upc-color-neutral-70
154
- dsEcom-text-upc-color-neutral-70
155
- hover:dsEcom-border-upc-color-neutral-70
156
- hover:dsEcom-text-upc-color-neutral-70
157
- active:dsEcom-border-upc-color-neutral-70
158
- active:dsEcom-text-upc-color-neutral-70;
159
- }
160
- </style>
1
+ <script lang="ts" setup>
2
+ import { computed, ref } from "vue";
3
+ import { LauEcomUpcIconNavArrow } from "../LauEcomIcon";
4
+ import { Colors } from "../../utils";
5
+ import { LauEcomButtonType } from "./types";
6
+ import { LauEcomInstance, LauEcomSize } from "../../enums";
7
+
8
+ const props = withDefaults(
9
+ defineProps<{
10
+ instance?: LauEcomInstance;
11
+ type?: LauEcomButtonType;
12
+ size?: LauEcomSize;
13
+ isDisabled?: boolean;
14
+ hasArrow?: boolean;
15
+ }>(),
16
+ {
17
+ instance: LauEcomInstance.Upc,
18
+ text: "Button Text",
19
+ type: LauEcomButtonType.Primary,
20
+ size: LauEcomSize.lg,
21
+ isDisabled: false,
22
+ hasArrow: false,
23
+ },
24
+ );
25
+
26
+ const emit = defineEmits(["onClick"]);
27
+
28
+ const isMouseOver = ref(false);
29
+
30
+ const lauEcomButtonClasses = computed(() => {
31
+ return {
32
+ "lau-ecom-button": true,
33
+ "lau-ecom-button--upc upc-font-button-16px":
34
+ props.instance === LauEcomInstance.Upc,
35
+ "lau-ecom-button--cbt cbt-font-button-16px":
36
+ props.instance === LauEcomInstance.Cibertec,
37
+ "lau-ecom-button--secondary": props.type === LauEcomButtonType.Secondary,
38
+ "lau-ecom-button--secondary-upc":
39
+ props.instance === LauEcomInstance.Upc &&
40
+ props.type === LauEcomButtonType.Secondary,
41
+ "lau-ecom-button--secondary-upc-disabled":
42
+ props.instance === LauEcomInstance.Upc &&
43
+ props.type === LauEcomButtonType.Secondary &&
44
+ props.isDisabled,
45
+ "lau-ecom-button--secondary-cbt":
46
+ props.instance === LauEcomInstance.Cibertec &&
47
+ props.type === LauEcomButtonType.Secondary,
48
+ "lau-ecom-button--secondary-cbt-disabled":
49
+ props.instance === LauEcomInstance.Cibertec &&
50
+ props.type === LauEcomButtonType.Secondary &&
51
+ props.isDisabled,
52
+ "lau-ecom-button--large": props.size === LauEcomSize.lg,
53
+ "lau-ecom-button--medium": props.size === LauEcomSize.md,
54
+ "lau-ecom-button--disabled":
55
+ props.type === LauEcomButtonType.Primary && props.isDisabled,
56
+ };
57
+ });
58
+
59
+ const getIconColor = computed(() => {
60
+ if (props.instance === "UPC") {
61
+ switch (props.type) {
62
+ case LauEcomButtonType.Primary:
63
+ return Colors["upc-color-neutral-10"];
64
+
65
+ case LauEcomButtonType.Secondary:
66
+ if (props.isDisabled) {
67
+ return Colors["upc-color-neutral-70"];
68
+ }
69
+ return isMouseOver.value
70
+ ? Colors["upc-color-red-80"]
71
+ : Colors["upc-color-red-60-base"];
72
+
73
+ default:
74
+ return "";
75
+ }
76
+ }
77
+ return "";
78
+ });
79
+
80
+ const handleClick = () => {
81
+ emit("onClick");
82
+ };
83
+
84
+ const handleMouseOver = () => {
85
+ isMouseOver.value = true;
86
+ };
87
+
88
+ const handleMouseOut = () => {
89
+ isMouseOver.value = false;
90
+ };
91
+ </script>
92
+
93
+ <template>
94
+ <button
95
+ :class="lauEcomButtonClasses"
96
+ :disabled="isDisabled"
97
+ @mouseover="handleMouseOver"
98
+ @mouseout="handleMouseOut"
99
+ @click="handleClick"
100
+ >
101
+ <LauEcomUpcIconNavArrow v-if="hasArrow" :color="getIconColor" />
102
+ <slot></slot>
103
+ </button>
104
+ </template>
105
+
106
+ <style scoped>
107
+ .lau-ecom-button {
108
+ @apply dsEcom-text-upc-color-neutral-10
109
+ dsEcom-flex
110
+ dsEcom-items-center
111
+ dsEcom-justify-center
112
+ dsEcom-gap-2
113
+ dsEcom-rounded-core-border-radius-32px
114
+ dsEcom-border-[1px]
115
+ dsEcom-text-center
116
+ dsEcom-py-[14px]
117
+ dsEcom-px-[16px];
118
+ }
119
+
120
+ .lau-ecom-button--upc {
121
+ @apply dsEcom-bg-upc-color-red-60-base
122
+ dsEcom-border-upc-color-red-60-base
123
+ hover:dsEcom-bg-upc-color-red-70
124
+ hover:dsEcom-border-upc-color-red-70
125
+ active:dsEcom-bg-upc-color-red-80
126
+ active:dsEcom-border-upc-color-red-80;
127
+ }
128
+
129
+ .lau-ecom-button--cbt {
130
+ @apply dsEcom-bg-cbt-color-apple-green-60-base
131
+ dsEcom-border-cbt-color-apple-green-60-base
132
+ hover:dsEcom-bg-cbt-color-apple-green-70
133
+ hover:dsEcom-border-cbt-color-apple-green-70
134
+ active:dsEcom-bg-cbt-color-apple-green-80
135
+ active:dsEcom-border-cbt-color-apple-green-80;
136
+ }
137
+
138
+ .lau-ecom-button--large {
139
+ @apply dsEcom-w-auto
140
+ dsEcom-h-[48px];
141
+ }
142
+
143
+ .lau-ecom-button--medium {
144
+ @apply dsEcom-w-auto
145
+ dsEcom-h-[44px];
146
+ }
147
+
148
+ .lau-ecom-button--disabled {
149
+ @apply dsEcom-border-upc-color-neutral-70
150
+ dsEcom-bg-upc-color-neutral-70
151
+ hover:dsEcom-bg-upc-color-neutral-70
152
+ hover:dsEcom-border-upc-color-neutral-70
153
+ active:dsEcom-bg-upc-color-neutral-70
154
+ active:dsEcom-border-upc-color-neutral-70;
155
+ }
156
+
157
+ .lau-ecom-button--secondary {
158
+ @apply dsEcom-bg-upc-color-neutral-10
159
+ hover:dsEcom-bg-upc-color-neutral-10
160
+ active:dsEcom-bg-upc-color-neutral-10;
161
+ }
162
+
163
+ .lau-ecom-button--secondary-upc {
164
+ @apply dsEcom-border-upc-color-red-60-base
165
+ dsEcom-text-upc-color-red-60-base
166
+ hover:dsEcom-text-upc-color-red-80
167
+ hover:dsEcom-border-upc-color-red-80
168
+ active:dsEcom-text-upc-color-red-80
169
+ active:dsEcom-border-upc-color-red-80;
170
+ }
171
+
172
+ .lau-ecom-button--secondary-cbt {
173
+ @apply dsEcom-bg-upc-color-neutral-10
174
+ dsEcom-border-cbt-color-apple-green-60-base
175
+ dsEcom-text-cbt-color-apple-green-60-base
176
+ hover:dsEcom-text-cbt-color-apple-green-70
177
+ hover:dsEcom-border-cbt-color-apple-green-70
178
+ hover:dsEcom-bg-upc-color-neutral-10
179
+ active:dsEcom-text-cbt-color-apple-green-80
180
+ active:dsEcom-border-cbt-color-apple-green-80
181
+ active:dsEcom-bg-upc-color-neutral-10;
182
+ }
183
+
184
+ .lau-ecom-button--secondary-upc-disabled {
185
+ @apply dsEcom-border-upc-color-neutral-70
186
+ dsEcom-text-upc-color-neutral-70
187
+ hover:dsEcom-border-upc-color-neutral-70
188
+ hover:dsEcom-text-upc-color-neutral-70
189
+ active:dsEcom-border-upc-color-neutral-70
190
+ active:dsEcom-text-upc-color-neutral-70;
191
+ }
192
+ </style>
@@ -1,8 +1,10 @@
1
1
  <script lang="ts" setup>
2
2
  import { computed, ref } from "vue";
3
3
  import { LauEcomUpcIconNavCheckmark } from "../LauEcomIcon";
4
+ import { LauEcomInstance } from "../../enums";
4
5
 
5
6
  interface Props {
7
+ instance?: LauEcomInstance;
6
8
  id?: string;
7
9
  label?: string;
8
10
  value?: string | number | boolean;
@@ -12,6 +14,7 @@ interface Props {
12
14
  }
13
15
 
14
16
  const props = withDefaults(defineProps<Props>(), {
17
+ instance: LauEcomInstance.Upc,
15
18
  id: "",
16
19
  label: "text label",
17
20
  value: "",
@@ -48,6 +51,8 @@ const handleChange = () => {
48
51
  const lauEcomCheckboxClasses = computed(() => {
49
52
  return {
50
53
  "lau-ecom-checkbox dsEcom-peer": true,
54
+ "lau-ecom-checkbox--upc": props.instance === LauEcomInstance.Upc,
55
+ "lau-ecom-checkbox--cib": props.instance === LauEcomInstance.Cibertec,
51
56
  "lau-ecom-checkbox--disabled": props.isDisabled,
52
57
  "dsEcom-cursor-pointer checked:!dsEcom-border-upc-color-red-60-base group-hover:dsEcom-border-upc-color-red-60-base":
53
58
  !props.isDisabled,
@@ -101,7 +106,7 @@ const textLabelClass = computed(() => {
101
106
  dsEcom-appearance-none
102
107
  dsEcom-border
103
108
  dsEcom-border-upc-color-neutral-90
104
- hover:dsEcom-border-upc-color-red-80
109
+
105
110
  dsEcom-transition
106
111
  dsEcom-duration-200
107
112
  after:dsEcom-absolute
@@ -109,11 +114,21 @@ const textLabelClass = computed(() => {
109
114
  after:dsEcom-top-0
110
115
  after:dsEcom-h-full
111
116
  after:dsEcom-w-full
112
- checked:dsEcom-bg-upc-color-red-60-base
113
- checked:!dsEcom-border-upc-color-red-60-base
114
117
  focus:dsEcom-outline-none;
115
118
  }
116
119
 
120
+ .lau-ecom-checkbox--upc {
121
+ @apply hover:dsEcom-border-upc-color-red-80
122
+ checked:dsEcom-bg-upc-color-red-60-base
123
+ checked:!dsEcom-border-upc-color-red-60-base;
124
+ }
125
+
126
+ .lau-ecom-checkbox--cib {
127
+ @apply hover:dsEcom-border-cbt-color-apple-green-70
128
+ checked:dsEcom-bg-cbt-color-apple-green-60-base
129
+ checked:!dsEcom-border-cbt-color-apple-green-60-base;
130
+ }
131
+
117
132
  .lau-ecom-checkbox--disabled {
118
133
  @apply !dsEcom-border-upc-color-neutral-60
119
134
  checked:!dsEcom-border-upc-color-neutral-60
@@ -0,0 +1,82 @@
1
+ <script lang="ts" setup>
2
+ import { computed } from "vue";
3
+ import { LauEcomInstance, LauEcomState } from "../../enums";
4
+ import {
5
+ LauEcomUpcIconCheckCircle,
6
+ LauEcomUpcIconExclamationCircle,
7
+ LauEcomUpcIconExclamationTriangle,
8
+ LauEcomUpcIconInfoCircle,
9
+ } from "../LauEcomIcon";
10
+ import { Colors } from "../../utils";
11
+
12
+ interface Props {
13
+ instance?: LauEcomInstance;
14
+ state?: LauEcomState;
15
+ }
16
+
17
+ const props = withDefaults(defineProps<Props>(), {
18
+ instance: LauEcomInstance.Upc,
19
+ state: LauEcomState.success,
20
+ });
21
+
22
+ const lauEcomDisclamerClasses = computed(() => {
23
+ return {
24
+ "lau-ecom-disclamer upc-font-body-reg-05-14px": true,
25
+ "lau-ecom-disclamer--success": props.state === LauEcomState.success,
26
+ "lau-ecom-disclamer--warning": props.state === LauEcomState.warning,
27
+ "lau-ecom-disclamer--error": props.state === LauEcomState.error,
28
+ "lau-ecom-disclamer--information": props.state === LauEcomState.information,
29
+ };
30
+ });
31
+ </script>
32
+
33
+ <template>
34
+ <div :class="lauEcomDisclamerClasses">
35
+ <span>
36
+ <LauEcomUpcIconCheckCircle
37
+ v-if="state === LauEcomState.success"
38
+ :color="Colors['core-color-green-60-base']"
39
+ />
40
+ <LauEcomUpcIconExclamationTriangle
41
+ v-if="state === LauEcomState.warning"
42
+ :color="Colors['core-icon-critical-60']"
43
+ />
44
+ <LauEcomUpcIconExclamationCircle
45
+ v-if="state === LauEcomState.error"
46
+ :color="Colors['core-color-redibbon-60-base']"
47
+ />
48
+ <LauEcomUpcIconInfoCircle
49
+ v-if="state === LauEcomState.information"
50
+ :color="Colors['core-color-blue-intense-60-base']"
51
+ />
52
+ </span>
53
+ <p>
54
+ ¡Qué buena elección! Inscríbete pero antes escoge la fecha de inicio y el
55
+ horario
56
+ </p>
57
+ </div>
58
+ </template>
59
+
60
+ <style scoped>
61
+ .lau-ecom-disclamer {
62
+ @apply dsEcom-text-upc-color-neutral-100
63
+ dsEcom-p-4
64
+ dsEcom-flex
65
+ dsEcom-gap-3
66
+ dsEcom-w-fit
67
+ dsEcom-rounded-[2px];
68
+ }
69
+
70
+ .lau-ecom-disclamer--success {
71
+ @apply dsEcom-bg-core-color-green-30;
72
+ }
73
+ .lau-ecom-disclamer--warning {
74
+ @apply dsEcom-bg-core-feedback-critical-30;
75
+ }
76
+ .lau-ecom-disclamer--error {
77
+ @apply dsEcom-bg-core-color-redibbon-30;
78
+ }
79
+ .lau-ecom-disclamer--information {
80
+ @apply dsEcom-bg-core-color-blue-intense-30;
81
+ }
82
+ </style>