lau-ecom-design-system 1.0.16 → 1.0.18

Sign up to get free protection for your applications and to get access to all the features.
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>