lau-ecom-design-system 1.0.19 → 1.0.21

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 (50) hide show
  1. package/README.md +49 -0
  2. package/dist/316236bc7a52233c.png +0 -0
  3. package/dist/lau-ecom-design-system.esm.css +8 -1
  4. package/dist/lau-ecom-design-system.esm.js +1657 -682
  5. package/dist/lau-ecom-design-system.min.css +8 -1
  6. package/dist/lau-ecom-design-system.min.js +1 -1
  7. package/dist/lau-ecom-design-system.ssr.css +8 -1
  8. package/dist/lau-ecom-design-system.ssr.js +1406 -470
  9. package/dist/style.css +290 -69
  10. package/package.json +81 -80
  11. package/src/components/LauEcomBannerCookies/LauEcomBannerCookies.vue +178 -168
  12. package/src/components/LauEcomBannerCookies/LauEcomBannerCookiesConfig.vue +160 -159
  13. package/src/components/LauEcomBannerCookies/LauEcomBannerCookiesConfigAccordion.vue +80 -76
  14. package/src/components/LauEcomButton/LauEcomButton.vue +137 -137
  15. package/src/components/LauEcomCheckbox/LauEcomCheckbox.vue +143 -143
  16. package/src/components/LauEcomDisclamer/LauEcomDisclamer.vue +79 -79
  17. package/src/components/LauEcomDropdown/LauEcomDropdown.vue +208 -203
  18. package/src/components/LauEcomFooter/LauEcomFooter.vue +24 -73
  19. package/src/components/LauEcomFooter/LauEcomSubFooter.vue +5 -31
  20. package/src/components/LauEcomFooter/LauEcomSubFooterCategory.vue +9 -48
  21. package/src/components/LauEcomIcon/LauEcomCoreIconBook.vue +26 -26
  22. package/src/components/LauEcomIcon/LauEcomCoreIconFileCode.vue +28 -28
  23. package/src/components/LauEcomIcon/LauEcomUpcIconArrowDown.vue +0 -7
  24. package/src/components/LauEcomIcon/LauEcomUpcIconCertificate.vue +28 -28
  25. package/src/components/LauEcomIcon/LauEcomUpcIconCheck.vue +26 -26
  26. package/src/components/LauEcomIcon/LauEcomUpcIconCheckCircle.vue +28 -28
  27. package/src/components/LauEcomIcon/LauEcomUpcIconCreditCard.vue +28 -28
  28. package/src/components/LauEcomIcon/LauEcomUpcIconExclamationCircle.vue +28 -28
  29. package/src/components/LauEcomIcon/LauEcomUpcIconExclamationTriangle.vue +28 -28
  30. package/src/components/LauEcomIcon/LauEcomUpcIconInfoCircle.vue +26 -26
  31. package/src/components/LauEcomIcon/LauEcomUpcIconNavArrow.vue +26 -26
  32. package/src/components/LauEcomIcon/LauEcomUpcIconNavBack.vue +25 -0
  33. package/src/components/LauEcomIcon/LauEcomUpcIconNavCheckmark.vue +26 -26
  34. package/src/components/LauEcomInput/LauEcomInput.vue +207 -207
  35. package/src/components/LauEcomInput2/LauEcomInput2.vue +207 -0
  36. package/src/components/LauEcomInputSearch/LauEcomInputSearch.vue +244 -0
  37. package/src/components/LauEcomLoaderPage/LauEcomLoaderPage.vue +16 -16
  38. package/src/components/LauEcomPaginator/LauEcomPaginator.vue +57 -0
  39. package/src/components/LauEcomPaginator/LauEcomPaginatorButton.vue +68 -0
  40. package/src/components/LauEcomRadioButton/LauEcomRadioButton.vue +103 -103
  41. package/src/components/LauEcomRtb/LauEcomRtb.vue +71 -71
  42. package/src/components/LauEcomStepbar/LauEcomStepbar.vue +43 -43
  43. package/src/components/LauEcomStepbar/LauEcomStepbarItem.vue +128 -128
  44. package/src/components/LauEcomSwitch/LauEcomSwitch.vue +110 -108
  45. package/src/components/LauEcomTab/LauEcomTab.vue +82 -82
  46. package/src/components/LauEcomTag/LauEcomTag.vue +56 -0
  47. package/src/components/LauEcomTextButton/LauEcomTextButton.vue +71 -71
  48. package/src/components/LauEcomTyPage/LauEcomSummary.vue +14 -0
  49. package/src/components/LauEcomTyPage/LauEcomSummaryItem.vue +22 -0
  50. package/src/components/LauEcomTyPage/LauEcomTyPage.vue +149 -0
@@ -1,79 +1,79 @@
1
- <script lang="ts" setup>
2
- import { computed } from "vue";
3
- import { LauEcomState } from "../../enums";
4
- import {
5
- LauEcomUpcIconCheckCircle,
6
- LauEcomUpcIconExclamationCircle,
7
- LauEcomUpcIconExclamationTriangle,
8
- LauEcomUpcIconInfoCircle,
9
- } from "../LauEcomIcon";
10
-
11
- interface Props {
12
- state?: LauEcomState;
13
- }
14
-
15
- const props = withDefaults(defineProps<Props>(), {
16
- state: LauEcomState.success,
17
- });
18
-
19
- const lauEcomDisclamerClasses = computed(() => {
20
- return {
21
- "lau-ecom-disclamer upc-font-body-reg-05-14px": true,
22
- "lau-ecom-disclamer--success": props.state === LauEcomState.success,
23
- "lau-ecom-disclamer--warning": props.state === LauEcomState.warning,
24
- "lau-ecom-disclamer--error": props.state === LauEcomState.error,
25
- "lau-ecom-disclamer--information": props.state === LauEcomState.information,
26
- };
27
- });
28
- </script>
29
-
30
- <template>
31
- <div :class="lauEcomDisclamerClasses">
32
- <span>
33
- <LauEcomUpcIconCheckCircle
34
- v-if="state === LauEcomState.success"
35
- class="dsEcom-fill-feedback-success-60"
36
- />
37
- <LauEcomUpcIconExclamationTriangle
38
- v-if="state === LauEcomState.warning"
39
- class="dsEcom-fill-feedback-critical-60"
40
- />
41
- <LauEcomUpcIconExclamationCircle
42
- v-if="state === LauEcomState.error"
43
- class="dsEcom-fill-feedback-error-60"
44
- />
45
- <LauEcomUpcIconInfoCircle
46
- v-if="state === LauEcomState.information"
47
- class="dsEcom-fill-feedback-informative-60"
48
- />
49
- </span>
50
- <p>
51
- ¡Qué buena elección! Inscríbete pero antes escoge la fecha de inicio y el
52
- horario
53
- </p>
54
- </div>
55
- </template>
56
-
57
- <style scoped>
58
- .lau-ecom-disclamer {
59
- @apply dsEcom-text-neutral-100
60
- dsEcom-p-4
61
- dsEcom-flex
62
- dsEcom-gap-3
63
- dsEcom-w-fit
64
- dsEcom-rounded-[2px];
65
- }
66
-
67
- .lau-ecom-disclamer--success {
68
- @apply dsEcom-bg-feedback-success-30;
69
- }
70
- .lau-ecom-disclamer--warning {
71
- @apply dsEcom-bg-feedback-critical-30;
72
- }
73
- .lau-ecom-disclamer--error {
74
- @apply dsEcom-bg-feedback-error-30;
75
- }
76
- .lau-ecom-disclamer--information {
77
- @apply dsEcom-bg-feedback-informative-30;
78
- }
79
- </style>
1
+ <script lang="ts" setup>
2
+ import { computed } from "vue";
3
+ import { LauEcomState } from "../../enums";
4
+ import {
5
+ LauEcomUpcIconCheckCircle,
6
+ LauEcomUpcIconExclamationCircle,
7
+ LauEcomUpcIconExclamationTriangle,
8
+ LauEcomUpcIconInfoCircle,
9
+ } from "../LauEcomIcon";
10
+
11
+ interface Props {
12
+ state?: LauEcomState;
13
+ }
14
+
15
+ const props = withDefaults(defineProps<Props>(), {
16
+ state: LauEcomState.success,
17
+ });
18
+
19
+ const lauEcomDisclamerClasses = computed(() => {
20
+ return {
21
+ "lau-ecom-disclamer upc-font-body-reg-05-14px": true,
22
+ "lau-ecom-disclamer--success": props.state === LauEcomState.success,
23
+ "lau-ecom-disclamer--warning": props.state === LauEcomState.warning,
24
+ "lau-ecom-disclamer--error": props.state === LauEcomState.error,
25
+ "lau-ecom-disclamer--information": props.state === LauEcomState.information,
26
+ };
27
+ });
28
+ </script>
29
+
30
+ <template>
31
+ <div :class="lauEcomDisclamerClasses">
32
+ <span>
33
+ <LauEcomUpcIconCheckCircle
34
+ v-if="state === LauEcomState.success"
35
+ class="dsEcom-fill-feedback-success-60"
36
+ />
37
+ <LauEcomUpcIconExclamationTriangle
38
+ v-if="state === LauEcomState.warning"
39
+ class="dsEcom-fill-feedback-critical-60"
40
+ />
41
+ <LauEcomUpcIconExclamationCircle
42
+ v-if="state === LauEcomState.error"
43
+ class="dsEcom-fill-feedback-error-60"
44
+ />
45
+ <LauEcomUpcIconInfoCircle
46
+ v-if="state === LauEcomState.information"
47
+ class="dsEcom-fill-feedback-informative-60"
48
+ />
49
+ </span>
50
+ <p>
51
+ ¡Qué buena elección! Inscríbete pero antes escoge la fecha de inicio y el
52
+ horario
53
+ </p>
54
+ </div>
55
+ </template>
56
+
57
+ <style scoped>
58
+ .lau-ecom-disclamer {
59
+ @apply dsEcom-text-neutral-100
60
+ dsEcom-p-4
61
+ dsEcom-flex
62
+ dsEcom-gap-3
63
+ dsEcom-w-fit
64
+ dsEcom-rounded-[2px];
65
+ }
66
+
67
+ .lau-ecom-disclamer--success {
68
+ @apply dsEcom-bg-feedback-success-30;
69
+ }
70
+ .lau-ecom-disclamer--warning {
71
+ @apply dsEcom-bg-feedback-critical-30;
72
+ }
73
+ .lau-ecom-disclamer--error {
74
+ @apply dsEcom-bg-feedback-error-30;
75
+ }
76
+ .lau-ecom-disclamer--information {
77
+ @apply dsEcom-bg-feedback-informative-30;
78
+ }
79
+ </style>
@@ -1,203 +1,208 @@
1
- <script lang="ts" setup>
2
- import { computed, ref } from "vue";
3
- import {
4
- LauEcomUpcIconArrowDown,
5
- LauEcomUpcIconExclamationTriangle,
6
- } from "../LauEcomIcon";
7
- import { DropdownItem } from "./types";
8
- import { Colors } from "../../utils";
9
-
10
- interface Props {
11
- id?: string;
12
- label?: string;
13
- isDisabled?: boolean;
14
- placeholder?: string;
15
- dropdownItems: DropdownItem[];
16
- errorMessage?: string;
17
- }
18
-
19
- const props = withDefaults(defineProps<Props>(), {
20
- id: "label",
21
- label: "Dropdown label",
22
- isDisabled: false,
23
- placeholder: "Placeholder",
24
- errorMessage: "",
25
- });
26
-
27
- const isOpen = ref(false);
28
- const selectedItem = ref<DropdownItem | null>(null);
29
-
30
- const handleDropdownOpen = () => {
31
- if (props.isDisabled) return;
32
- isOpen.value = !isOpen.value;
33
- };
34
-
35
- const selectDropdownItem = (index: number) => {
36
- selectedItem.value = props.dropdownItems[index];
37
- isOpen.value = false;
38
- };
39
-
40
- const lauEcomLabelClasses = computed(() => {
41
- return {
42
- "lau-ecom-label core-font-body-bold-06-12px": true,
43
- "lau-ecom-label--disabled": props.isDisabled,
44
- };
45
- });
46
-
47
- const lauEcomDropdownClasses = computed(() => {
48
- return {
49
- "lau-ecom-dropdown core-font-body-reg-04-16px": true,
50
- "lau-ecom-dropdown--open": isOpen.value,
51
- "lau-ecom-dropdown--disabled": props.isDisabled,
52
- "lau-ecom-dropdown--error": props.errorMessage,
53
- };
54
- });
55
-
56
- const lauEcomIconClasses = computed(() => {
57
- return {
58
- "lau-ecom-icon": true,
59
- "lau-ecom-icon--open": isOpen.value,
60
- "lau-ecom-icon--disabled": props.isDisabled,
61
- };
62
- });
63
-
64
- const iconArrowDownColor = computed(() => {
65
- if (props.isDisabled) return Colors["upc-color-neutral-70"];
66
- if (props.errorMessage) return Colors["upc-color-red-60-base"];
67
- return Colors["upc-color-neutral-100"];
68
- });
69
- </script>
70
-
71
- <template>
72
- <div>
73
- <label :class="lauEcomLabelClasses" :for="id">{{ label }}</label>
74
- <div class="dsEcom-relative">
75
- <div class="dsEcom-relative">
76
- <input
77
- :id="id"
78
- :name="id"
79
- :disabled="isDisabled"
80
- :placeholder="placeholder"
81
- :value="selectedItem?.name"
82
- readonly
83
- :class="lauEcomDropdownClasses"
84
- @click="handleDropdownOpen"
85
- />
86
- <span :class="lauEcomIconClasses">
87
- <LauEcomUpcIconArrowDown :color="iconArrowDownColor" />
88
- </span>
89
- </div>
90
- <ul
91
- v-if="dropdownItems.length > 0"
92
- v-show="isOpen"
93
- class="lau-ecom-dropdown-list core-font-body-reg-04-16px"
94
- >
95
- <li
96
- v-for="(dropdownItem, index) in dropdownItems"
97
- :key="`dropdown-item-${index + 1}`"
98
- class="lau-ecom-dropdown-list-item"
99
- @click="selectDropdownItem(index)"
100
- >
101
- <span>{{ dropdownItem.name }}</span>
102
- </li>
103
- </ul>
104
- </div>
105
- <div
106
- v-if="errorMessage"
107
- class="lau-ecom-dropdown__error core-font-body-reg-06-12px"
108
- >
109
- <span>
110
- <LauEcomUpcIconExclamationTriangle
111
- width="16"
112
- height="16"
113
- :color="Colors['upc-color-red-60-base']"
114
- />
115
- </span>
116
- <p class="dsEcom-ml-1">
117
- {{ errorMessage }}
118
- </p>
119
- </div>
120
- </div>
121
- </template>
122
-
123
- <style scoped>
124
- .lau-ecom-label {
125
- @apply dsEcom-text-neutral-100;
126
- }
127
-
128
- .lau-ecom-label--disabled {
129
- @apply dsEcom-text-neutral-70;
130
- }
131
-
132
- .lau-ecom-dropdown {
133
- @apply dsEcom-w-full
134
- dsEcom-h-auto
135
- dsEcom-cursor-pointer
136
- dsEcom-bg-neutral-10
137
- dsEcom-px-3
138
- dsEcom-py-[11px]
139
- dsEcom-rounded-[2px]
140
- dsEcom-border
141
- dsEcom-border-neutral-80
142
- hover:dsEcom-border-stroke-secondary-60
143
- focus:dsEcom-border-stroke-secondary-60
144
- focus:dsEcom-outline-none;
145
- }
146
-
147
- .lau-ecom-dropdown--disabled {
148
- @apply !dsEcom-border-neutral-70
149
- !dsEcom-bg-neutral-20;
150
- }
151
-
152
- .lau-ecom-dropdown--error {
153
- @apply !dsEcom-border-feedback-error-60;
154
- }
155
-
156
- .lau-ecom-dropdown--open {
157
- @apply dsEcom-border-stroke-secondary-60;
158
- }
159
-
160
- .lau-ecom-icon {
161
- @apply dsEcom-absolute
162
- dsEcom-right-4
163
- dsEcom-top-3
164
- dsEcom-transition-all
165
- dsEcom-duration-300
166
- dsEcom-cursor-pointer;
167
- }
168
-
169
- .lau-ecom-icon--open {
170
- @apply dsEcom-rotate-180;
171
- }
172
-
173
- .lau-ecom-icon--disabled {
174
- @apply dsEcom-cursor-default;
175
- }
176
-
177
- .lau-ecom-dropdown-list {
178
- @apply dsEcom-absolute
179
- dsEcom-top-full
180
- dsEcom-left-0
181
- dsEcom-w-full
182
- dsEcom-z-20
183
- dsEcom-py-1
184
- dsEcom-shadow-upc-shadow-subtle
185
- dsEcom-bg-neutral-10;
186
- }
187
-
188
- .lau-ecom-dropdown-list-item {
189
- @apply dsEcom-py-2
190
- dsEcom-px-3
191
- dsEcom-cursor-pointer
192
- hover:dsEcom-bg-neutral-30
193
- active:dsEcom-bg-neutral-40
194
- focus:dsEcom-bg-neutral-40;
195
- }
196
-
197
- .lau-ecom-dropdown__error {
198
- @apply dsEcom-flex
199
- dsEcom-items-center
200
- dsEcom-mt-[2px]
201
- dsEcom-text-primary-60;
202
- }
203
- </style>
1
+ <script lang="ts" setup>
2
+ import { computed, ref } from "vue";
3
+ import {
4
+ LauEcomUpcIconArrowDown,
5
+ LauEcomUpcIconExclamationTriangle,
6
+ } from "../LauEcomIcon";
7
+ import { DropdownItem } from "./types";
8
+
9
+ interface Props {
10
+ id?: string;
11
+ label?: string;
12
+ isDisabled?: boolean;
13
+ placeholder?: string;
14
+ dropdownItems: DropdownItem[];
15
+ errorMessage?: string;
16
+ disabledColor?: string;
17
+ errorColor?: string;
18
+ defaultColor?: string;
19
+ }
20
+
21
+ const props = withDefaults(defineProps<Props>(), {
22
+ id: "label",
23
+ label: "Dropdown label",
24
+ isDisabled: false,
25
+ placeholder: "Placeholder",
26
+ errorMessage: "",
27
+ disabledColor: "var(--neutral-70)",
28
+ errorColor: "var(--feedback-error-60)",
29
+ defaultColor: "var(--neutral-100)",
30
+ });
31
+
32
+ const isOpen = ref(false);
33
+ const selectedItem = ref<DropdownItem | null>(null);
34
+
35
+ const handleDropdownOpen = () => {
36
+ if (props.isDisabled) return;
37
+ isOpen.value = !isOpen.value;
38
+ };
39
+
40
+ const selectDropdownItem = (index: number) => {
41
+ selectedItem.value = props.dropdownItems[index];
42
+ isOpen.value = false;
43
+ };
44
+
45
+ const lauEcomLabelClasses = computed(() => {
46
+ return {
47
+ "lau-ecom-label core-font-body-bold-06-12px": true,
48
+ "lau-ecom-label--disabled": props.isDisabled,
49
+ };
50
+ });
51
+
52
+ const lauEcomDropdownClasses = computed(() => {
53
+ return {
54
+ "lau-ecom-dropdown core-font-body-reg-04-16px": true,
55
+ "lau-ecom-dropdown--open": isOpen.value,
56
+ "lau-ecom-dropdown--disabled": props.isDisabled,
57
+ "lau-ecom-dropdown--error": props.errorMessage,
58
+ };
59
+ });
60
+
61
+ const lauEcomIconClasses = computed(() => {
62
+ return {
63
+ "lau-ecom-icon": true,
64
+ "lau-ecom-icon--open": isOpen.value,
65
+ "lau-ecom-icon--disabled": props.isDisabled,
66
+ };
67
+ });
68
+
69
+ const iconArrowDownColor = computed(() => {
70
+ if (props.isDisabled) return props.disabledColor;
71
+ if (props.errorMessage) return props.errorColor;
72
+ return props.defaultColor;
73
+ });
74
+ </script>
75
+
76
+ <template>
77
+ <div>
78
+ <label :class="lauEcomLabelClasses" :for="id">{{ label }}</label>
79
+ <div class="dsEcom-relative">
80
+ <div class="dsEcom-relative">
81
+ <input
82
+ :id="id"
83
+ :name="id"
84
+ :disabled="isDisabled"
85
+ :placeholder="placeholder"
86
+ :value="selectedItem?.name"
87
+ readonly
88
+ :class="lauEcomDropdownClasses"
89
+ @click="handleDropdownOpen"
90
+ />
91
+ <span :class="lauEcomIconClasses">
92
+ <LauEcomUpcIconArrowDown :color="iconArrowDownColor" />
93
+ </span>
94
+ </div>
95
+ <ul
96
+ v-if="dropdownItems.length > 0"
97
+ v-show="isOpen"
98
+ class="lau-ecom-dropdown-list core-font-body-reg-04-16px"
99
+ >
100
+ <li
101
+ v-for="(dropdownItem, index) in dropdownItems"
102
+ :key="`dropdown-item-${index + 1}`"
103
+ class="lau-ecom-dropdown-list-item"
104
+ @click="selectDropdownItem(index)"
105
+ >
106
+ <span>{{ dropdownItem.name }}</span>
107
+ </li>
108
+ </ul>
109
+ </div>
110
+ <div
111
+ v-if="errorMessage"
112
+ class="lau-ecom-dropdown__error core-font-body-reg-06-12px"
113
+ >
114
+ <span>
115
+ <LauEcomUpcIconExclamationTriangle
116
+ width="16"
117
+ height="16"
118
+ :color="errorColor"
119
+ />
120
+ </span>
121
+ <p class="dsEcom-ml-1">
122
+ {{ errorMessage }}
123
+ </p>
124
+ </div>
125
+ </div>
126
+ </template>
127
+
128
+ <style scoped>
129
+ .lau-ecom-label {
130
+ @apply dsEcom-text-neutral-100;
131
+ }
132
+
133
+ .lau-ecom-label--disabled {
134
+ @apply dsEcom-text-neutral-70;
135
+ }
136
+
137
+ .lau-ecom-dropdown {
138
+ @apply dsEcom-w-full
139
+ dsEcom-h-auto
140
+ dsEcom-cursor-pointer
141
+ dsEcom-bg-neutral-10
142
+ dsEcom-px-3
143
+ dsEcom-py-[11px]
144
+ dsEcom-rounded-[2px]
145
+ dsEcom-border
146
+ dsEcom-border-neutral-80
147
+ hover:dsEcom-border-stroke-secondary-60
148
+ focus:dsEcom-border-stroke-secondary-60
149
+ focus:dsEcom-outline-none;
150
+ }
151
+
152
+ .lau-ecom-dropdown--disabled {
153
+ @apply !dsEcom-border-neutral-70
154
+ !dsEcom-bg-neutral-20;
155
+ }
156
+
157
+ .lau-ecom-dropdown--error {
158
+ @apply !dsEcom-border-feedback-error-60;
159
+ }
160
+
161
+ .lau-ecom-dropdown--open {
162
+ @apply dsEcom-border-stroke-secondary-60;
163
+ }
164
+
165
+ .lau-ecom-icon {
166
+ @apply dsEcom-absolute
167
+ dsEcom-right-4
168
+ dsEcom-top-3
169
+ dsEcom-transition-all
170
+ dsEcom-duration-300
171
+ dsEcom-cursor-pointer;
172
+ }
173
+
174
+ .lau-ecom-icon--open {
175
+ @apply dsEcom-rotate-180;
176
+ }
177
+
178
+ .lau-ecom-icon--disabled {
179
+ @apply dsEcom-cursor-default;
180
+ }
181
+
182
+ .lau-ecom-dropdown-list {
183
+ @apply dsEcom-absolute
184
+ dsEcom-top-full
185
+ dsEcom-left-0
186
+ dsEcom-w-full
187
+ dsEcom-z-20
188
+ dsEcom-py-1
189
+ dsEcom-shadow-upc-shadow-subtle
190
+ dsEcom-bg-neutral-10;
191
+ }
192
+
193
+ .lau-ecom-dropdown-list-item {
194
+ @apply dsEcom-py-2
195
+ dsEcom-px-3
196
+ dsEcom-cursor-pointer
197
+ hover:dsEcom-bg-neutral-30
198
+ active:dsEcom-bg-neutral-40
199
+ focus:dsEcom-bg-neutral-40;
200
+ }
201
+
202
+ .lau-ecom-dropdown__error {
203
+ @apply dsEcom-flex
204
+ dsEcom-items-center
205
+ dsEcom-mt-[2px]
206
+ dsEcom-text-primary-60;
207
+ }
208
+ </style>