lau-ecom-design-system 1.0.16 → 1.0.18

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 (35) hide show
  1. package/dist/lau-ecom-design-system.esm.css +13 -1
  2. package/dist/lau-ecom-design-system.esm.js +1582 -265
  3. package/dist/lau-ecom-design-system.min.css +13 -1
  4. package/dist/lau-ecom-design-system.min.js +1 -1
  5. package/dist/lau-ecom-design-system.ssr.css +13 -1
  6. package/dist/lau-ecom-design-system.ssr.js +1496 -218
  7. package/dist/style.css +190 -19
  8. package/package.json +80 -80
  9. package/src/components/LauEcomBannerCookies/LauEcomBannerCookies.vue +8 -39
  10. package/src/components/LauEcomBannerCookies/LauEcomBannerCookiesConfig.vue +8 -46
  11. package/src/components/LauEcomBannerCookies/LauEcomBannerCookiesConfigAccordion.vue +2 -13
  12. package/src/components/LauEcomButton/LauEcomButton.vue +137 -149
  13. package/src/components/LauEcomCheckbox/LauEcomCheckbox.vue +143 -148
  14. package/src/components/LauEcomDisclamer/LauEcomDisclamer.vue +79 -82
  15. package/src/components/LauEcomDropdown/LauEcomDropdown.vue +203 -203
  16. package/src/components/LauEcomIcon/LauEcomCoreIconBook.vue +26 -29
  17. package/src/components/LauEcomIcon/LauEcomCoreIconFileCode.vue +28 -31
  18. package/src/components/LauEcomIcon/LauEcomUpcIconCertificate.vue +28 -31
  19. package/src/components/LauEcomIcon/LauEcomUpcIconCheck.vue +26 -29
  20. package/src/components/LauEcomIcon/LauEcomUpcIconCheckCircle.vue +28 -31
  21. package/src/components/LauEcomIcon/LauEcomUpcIconCreditCard.vue +28 -31
  22. package/src/components/LauEcomIcon/LauEcomUpcIconExclamationCircle.vue +28 -31
  23. package/src/components/LauEcomIcon/LauEcomUpcIconExclamationTriangle.vue +28 -31
  24. package/src/components/LauEcomIcon/LauEcomUpcIconInfoCircle.vue +26 -29
  25. package/src/components/LauEcomIcon/LauEcomUpcIconNavArrow.vue +26 -28
  26. package/src/components/LauEcomIcon/LauEcomUpcIconNavCheckmark.vue +26 -29
  27. package/src/components/LauEcomInput/LauEcomInput.vue +207 -208
  28. package/src/components/LauEcomLoaderPage/LauEcomLoaderPage.vue +2 -28
  29. package/src/components/LauEcomRadioButton/LauEcomRadioButton.vue +103 -115
  30. package/src/components/LauEcomRtb/LauEcomRtb.vue +71 -92
  31. package/src/components/LauEcomStepbar/LauEcomStepbar.vue +43 -49
  32. package/src/components/LauEcomStepbar/LauEcomStepbarItem.vue +128 -172
  33. package/src/components/LauEcomSwitch/LauEcomSwitch.vue +9 -20
  34. package/src/components/LauEcomTab/LauEcomTab.vue +82 -113
  35. package/src/components/LauEcomTextButton/LauEcomTextButton.vue +13 -75
@@ -1,115 +1,103 @@
1
- <script lang="ts" setup>
2
- import { computed, ref, watch } from "vue";
3
- import { LauEcomInstance } from "../../enums";
4
-
5
- interface Props {
6
- instance?: LauEcomInstance;
7
- id?: string;
8
- label?: string;
9
- value?: string | number | boolean;
10
- modelValue?: string | number | boolean;
11
- isRequired?: boolean;
12
- isDisabled?: boolean;
13
- }
14
-
15
- const props = withDefaults(defineProps<Props>(), {
16
- instance: LauEcomInstance.Upc,
17
- id: "",
18
- label: "default",
19
- value: "",
20
- modelValue: "",
21
- isRequired: false,
22
- isDisabled: false,
23
- });
24
-
25
- const emit = defineEmits<{
26
- "update:modelValue": [value: string];
27
- }>();
28
-
29
- const lauEcomRadioButtonClasses = computed(() => {
30
- return {
31
- "lau-ecom-radio-button": true,
32
- "lau-ecom-radio-button--upc": props.instance === LauEcomInstance.Upc,
33
- "lau-ecom-radio-button--cbt": props.instance === LauEcomInstance.Cibertec,
34
- "lau-ecom-radio-button--disabled": props.isDisabled,
35
- "lau-ecom-radio-button--required": props.isRequired,
36
- };
37
- });
38
-
39
- const radioGroupValue = ref(props.modelValue);
40
-
41
- const handleChange = () => {
42
- emit("update:modelValue", String(props.value));
43
- };
44
-
45
- watch(
46
- () => props.modelValue,
47
- (newValue) => {
48
- radioGroupValue.value = newValue;
49
- },
50
- );
51
- </script>
52
-
53
- <template>
54
- <label>
55
- <input
56
- :id="id"
57
- v-model="radioGroupValue"
58
- :class="lauEcomRadioButtonClasses"
59
- type="radio"
60
- :disabled="isDisabled"
61
- :value="value"
62
- @change="handleChange"
63
- />
64
- <span :for="id">{{ label }}</span>
65
- </label>
66
- </template>
67
-
68
- <style scoped>
69
- .lau-ecom-radio-button {
70
- @apply dsEcom-relative
71
- dsEcom-float-left
72
- dsEcom-mr-2
73
- dsEcom-h-5
74
- dsEcom-w-5
75
- dsEcom-appearance-none
76
- dsEcom-rounded-full
77
- dsEcom-border-[1px]
78
- dsEcom-border-solid
79
- dsEcom-border-upc-color-neutral-90
80
- checked:before:dsEcom-opacity-[0.16]
81
- checked:after:dsEcom-content-['']
82
- checked:after:dsEcom-absolute
83
- checked:after:dsEcom-left-1/2
84
- checked:after:dsEcom-top-1/2
85
- checked:after:dsEcom-h-3
86
- checked:after:dsEcom-w-3
87
- checked:after:dsEcom-rounded-full
88
- checked:after:[transform:translate(-50%,-50%)]
89
- checked:focus:before:dsEcom-scale-100;
90
- }
91
-
92
- .lau-ecom-radio-button--upc {
93
- @apply hover:dsEcom-border-upc-color-red-60-base
94
- checked:dsEcom-border-upc-color-red-60-base
95
- checked:after:dsEcom-bg-upc-color-red-60-base
96
- checked:focus:dsEcom-border-upc-color-red-60-base;
97
- }
98
-
99
- .lau-ecom-radio-button--cbt {
100
- @apply hover:dsEcom-border-cbt-color-apple-green-60-base
101
- checked:dsEcom-border-cbt-color-apple-green-60-base
102
- checked:after:dsEcom-bg-cbt-color-apple-green-60-base
103
- checked:focus:dsEcom-border-cbt-color-apple-green-60-base;
104
- }
105
-
106
- .lau-ecom-radio-button--disabled {
107
- @apply !dsEcom-border-upc-color-neutral-50
108
- checked:after:dsEcom-bg-upc-color-neutral-50
109
- disabled:dsEcom-cursor-not-allowed;
110
- }
111
-
112
- .lau-ecom-radio-button--required {
113
- @apply dsEcom-border-upc-color-red-60-base;
114
- }
115
- </style>
1
+ <script lang="ts" setup>
2
+ import { computed, ref, watch } from "vue";
3
+
4
+ interface Props {
5
+ id?: string;
6
+ label?: string;
7
+ value?: string | number | boolean;
8
+ modelValue?: string | number | boolean;
9
+ isRequired?: boolean;
10
+ isDisabled?: boolean;
11
+ }
12
+
13
+ const props = withDefaults(defineProps<Props>(), {
14
+ id: "",
15
+ label: "default",
16
+ value: "",
17
+ modelValue: "",
18
+ isRequired: false,
19
+ isDisabled: false,
20
+ });
21
+
22
+ const emit = defineEmits<{
23
+ "update:modelValue": [value: string];
24
+ }>();
25
+
26
+ const lauEcomRadioButtonClasses = computed(() => {
27
+ return {
28
+ "lau-ecom-radio-button lau-ecom-radio-button--upc": true,
29
+ "lau-ecom-radio-button--disabled": props.isDisabled,
30
+ "lau-ecom-radio-button--required": props.isRequired,
31
+ };
32
+ });
33
+
34
+ const radioGroupValue = ref(props.modelValue);
35
+
36
+ const handleChange = () => {
37
+ emit("update:modelValue", String(props.value));
38
+ };
39
+
40
+ watch(
41
+ () => props.modelValue,
42
+ (newValue) => {
43
+ radioGroupValue.value = newValue;
44
+ },
45
+ );
46
+ </script>
47
+
48
+ <template>
49
+ <label>
50
+ <input
51
+ :id="id"
52
+ v-model="radioGroupValue"
53
+ :class="lauEcomRadioButtonClasses"
54
+ type="radio"
55
+ :disabled="isDisabled"
56
+ :value="value"
57
+ @change="handleChange"
58
+ />
59
+ <span :for="id">{{ label }}</span>
60
+ </label>
61
+ </template>
62
+
63
+ <style scoped>
64
+ .lau-ecom-radio-button {
65
+ @apply dsEcom-relative
66
+ dsEcom-float-left
67
+ dsEcom-mr-2
68
+ dsEcom-h-5
69
+ dsEcom-w-5
70
+ dsEcom-appearance-none
71
+ dsEcom-rounded-full
72
+ dsEcom-border-[1px]
73
+ dsEcom-border-solid
74
+ dsEcom-border-neutral-90
75
+ checked:before:dsEcom-opacity-[0.16]
76
+ checked:after:dsEcom-content-['']
77
+ checked:after:dsEcom-absolute
78
+ checked:after:dsEcom-left-1/2
79
+ checked:after:dsEcom-top-1/2
80
+ checked:after:dsEcom-h-3
81
+ checked:after:dsEcom-w-3
82
+ checked:after:dsEcom-rounded-full
83
+ checked:after:[transform:translate(-50%,-50%)]
84
+ checked:focus:before:dsEcom-scale-100;
85
+ }
86
+
87
+ .lau-ecom-radio-button--upc {
88
+ @apply hover:dsEcom-border-primary-60
89
+ checked:dsEcom-border-primary-60
90
+ checked:after:dsEcom-bg-primary-60
91
+ checked:focus:dsEcom-border-primary-60;
92
+ }
93
+
94
+ .lau-ecom-radio-button--disabled {
95
+ @apply !dsEcom-border-neutral-50
96
+ checked:after:dsEcom-bg-neutral-50
97
+ disabled:dsEcom-cursor-not-allowed;
98
+ }
99
+
100
+ .lau-ecom-radio-button--required {
101
+ @apply dsEcom-border-primary-60;
102
+ }
103
+ </style>
@@ -1,92 +1,71 @@
1
- <script lang="ts" setup>
2
- import { computed } from "vue";
3
- import { Colors } from "../../utils";
4
- import {
5
- LauEcomUpcIconCertificate,
6
- LauEcomUpcIconCreditCard,
7
- LauEcomUpcIconVirtualClass,
8
- } from "../LauEcomIcon";
9
- import { RtbType } from "./types";
10
-
11
- interface Props {
12
- type?: RtbType;
13
- title?: string;
14
- text?: string;
15
- }
16
-
17
- const props = withDefaults(defineProps<Props>(), {
18
- type: RtbType.cbt,
19
- title: "Aprenderas Haciendo",
20
- text: "Resolverás casos reales, a través de clases prácticas. Obtendrás conocimiento para aplicarla en tu trabajo o proyecto personal.",
21
- });
22
-
23
- const isModalidadType = computed(() => {
24
- return props.type === RtbType.modalidad;
25
- });
26
-
27
- const isCertificacionType = computed(() => {
28
- return props.type === RtbType.certificacion;
29
- });
30
-
31
- const isMetodopagoType = computed(() => {
32
- return props.type === RtbType.metodopago;
33
- });
34
-
35
- const isCbtType = computed(() => {
36
- return props.type === RtbType.cbt;
37
- });
38
- </script>
39
-
40
- <template>
41
- <div
42
- v-if="isModalidadType"
43
- class="core-font-body-reg-05-14px dsEcom-flex dsEcom-items-center dsEcom-gap-2"
44
- >
45
- <LauEcomUpcIconVirtualClass
46
- width="32"
47
- height="32"
48
- :color="Colors['upc-epg-color-purple-60-base']"
49
- />
50
- Virtual en vivo
51
- </div>
52
- <div
53
- v-if="isCertificacionType"
54
- class="core-font-body-reg-05-14px dsEcom-flex dsEcom-items-center dsEcom-gap-2"
55
- >
56
- <LauEcomUpcIconCertificate
57
- width="32"
58
- height="32"
59
- :color="Colors['upc-epg-color-purple-60-base']"
60
- />
61
- Certificado de EPG | UPC
62
- </div>
63
- <div
64
- v-if="isMetodopagoType"
65
- class="core-font-body-reg-05-14px dsEcom-flex dsEcom-items-center dsEcom-gap-2"
66
- >
67
- <LauEcomUpcIconCreditCard
68
- width="32"
69
- height="32"
70
- :color="Colors['upc-epg-color-purple-60-base']"
71
- />
72
- Hasta 12 cuotas sin intereses en TC Dinners y BBVA
73
- </div>
74
- <div v-if="isCbtType" class="lau-ecom-rtb-cbt">
75
- <slot name="icon" :color="Colors['cbt-color-apple-green-60-base']"></slot>
76
- <p class="dsEcom-text-cbt-astro-blue-20 cbt-font-heading-07-28px">
77
- {{ title }}
78
- </p>
79
- <p class="cbt-font-body-reg-02-16px dsEcom-text-color-cbt-color-neutral-80">
80
- {{ text }}
81
- </p>
82
- </div>
83
- </template>
84
-
85
- <style scoped>
86
- .lau-ecom-rtb-cbt {
87
- @apply dsEcom-w-[384px]
88
- dsEcom-h-[292px]
89
- dsEcom-rounded-[16px]
90
- dsEcom-p-6;
91
- }
92
- </style>
1
+ <script lang="ts" setup>
2
+ import { computed } from "vue";
3
+ import {
4
+ LauEcomUpcIconCertificate,
5
+ LauEcomUpcIconCreditCard,
6
+ LauEcomUpcIconVirtualClass,
7
+ } from "../LauEcomIcon";
8
+ import { RtbType } from "./types";
9
+
10
+ interface Props {
11
+ type?: RtbType;
12
+ title?: string;
13
+ text?: string;
14
+ }
15
+
16
+ const props = withDefaults(defineProps<Props>(), {
17
+ type: RtbType.modalidad,
18
+ title: "Aprenderas Haciendo",
19
+ text: "Resolverás casos reales, a través de clases prácticas. Obtendrás conocimiento para aplicarla en tu trabajo o proyecto personal.",
20
+ });
21
+
22
+ const isModalidadType = computed(() => {
23
+ return props.type === RtbType.modalidad;
24
+ });
25
+
26
+ const isCertificacionType = computed(() => {
27
+ return props.type === RtbType.certificacion;
28
+ });
29
+
30
+ const isMetodopagoType = computed(() => {
31
+ return props.type === RtbType.metodopago;
32
+ });
33
+ </script>
34
+
35
+ <template>
36
+ <div
37
+ v-if="isModalidadType"
38
+ class="core-font-body-reg-05-14px dsEcom-flex dsEcom-items-center dsEcom-gap-2"
39
+ >
40
+ <LauEcomUpcIconVirtualClass
41
+ class="dsEcom-fill-secondary-60"
42
+ width="32"
43
+ height="32"
44
+ />
45
+ Virtual en vivo
46
+ </div>
47
+ <div
48
+ v-if="isCertificacionType"
49
+ class="core-font-body-reg-05-14px dsEcom-flex dsEcom-items-center dsEcom-gap-2"
50
+ >
51
+ <LauEcomUpcIconCertificate
52
+ class="dsEcom-fill-secondary-60"
53
+ width="32"
54
+ height="32"
55
+ />
56
+ Certificado de EPG | UPC
57
+ </div>
58
+ <div
59
+ v-if="isMetodopagoType"
60
+ class="core-font-body-reg-05-14px dsEcom-flex dsEcom-items-center dsEcom-gap-2"
61
+ >
62
+ <LauEcomUpcIconCreditCard
63
+ class="dsEcom-fill-secondary-60"
64
+ width="32"
65
+ height="32"
66
+ />
67
+ Hasta 12 cuotas sin intereses en TC Dinners y BBVA
68
+ </div>
69
+ </template>
70
+
71
+ <style scoped></style>
@@ -1,49 +1,43 @@
1
- <script lang="ts" setup>
2
- // import { ref } from 'vue';
3
- import { Step } from "./types";
4
- import LauEcomStepbarItem from "./LauEcomStepbarItem.vue";
5
- import { LauEcomInstance } from "../../enums";
6
-
7
- interface Props {
8
- instance?: LauEcomInstance;
9
- steps: Step[];
10
- currentStep: number;
11
- }
12
- withDefaults(defineProps<Props>(), {
13
- instance: LauEcomInstance.Upc,
14
- steps: () => [
15
- {
16
- numberStep: 1,
17
- label: "Step",
18
- },
19
- {
20
- numberStep: 2,
21
- label: "Step",
22
- },
23
- {
24
- numberStep: 3,
25
- label: "Step",
26
- },
27
- {
28
- numberStep: 4,
29
- label: "Step",
30
- },
31
- ],
32
- currentStep: 1,
33
- });
34
- </script>
35
-
36
- <template>
37
- <div class="dsEcom-flex dsEcom-w-full">
38
- <LauEcomStepbarItem
39
- v-for="(step, index) in steps"
40
- :key="`lau-ecom-stepbar-item-${index + 1}`"
41
- :instance="instance"
42
- :step="step"
43
- :is-completed="currentStep > index + 1"
44
- :is-current-step="currentStep === index + 1"
45
- :is-last-item="index === steps.length - 1"
46
- :total-steps="steps.length"
47
- />
48
- </div>
49
- </template>
1
+ <script lang="ts" setup>
2
+ import { Step } from "./types";
3
+ import LauEcomStepbarItem from "./LauEcomStepbarItem.vue";
4
+ interface Props {
5
+ steps: Step[];
6
+ currentStep: number;
7
+ }
8
+ withDefaults(defineProps<Props>(), {
9
+ steps: () => [
10
+ {
11
+ numberStep: 1,
12
+ label: "Step",
13
+ },
14
+ {
15
+ numberStep: 2,
16
+ label: "Step",
17
+ },
18
+ {
19
+ numberStep: 3,
20
+ label: "Step",
21
+ },
22
+ {
23
+ numberStep: 4,
24
+ label: "Step",
25
+ },
26
+ ],
27
+ currentStep: 1,
28
+ });
29
+ </script>
30
+
31
+ <template>
32
+ <div class="dsEcom-flex dsEcom-w-full">
33
+ <LauEcomStepbarItem
34
+ v-for="(step, index) in steps"
35
+ :key="`lau-ecom-stepbar-item-${index + 1}`"
36
+ :step="step"
37
+ :is-completed="currentStep > index + 1"
38
+ :is-current-step="currentStep === index + 1"
39
+ :is-last-item="index === steps.length - 1"
40
+ :total-steps="steps.length"
41
+ />
42
+ </div>
43
+ </template>