lau-ecom-design-system 1.0.2 → 1.0.3

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.
@@ -1,113 +1,119 @@
1
- <script lang="ts" setup>
2
- import { computed } from "vue";
3
- import { LauEcomInstance } from "../../enums";
4
-
5
- interface Props {
6
- instance?: LauEcomInstance;
7
- currentClass?: string;
8
- isDisabled?: boolean;
9
- isChecked?: boolean;
10
- id?: string;
11
- name?: string;
12
- label?: string;
13
- }
14
-
15
- const props = withDefaults(defineProps<Props>(), {
16
- instance: LauEcomInstance.Upc,
17
- currentClass: "",
18
- isDisabled: false,
19
- isChecked: false,
20
- id: "",
21
- name: "",
22
- label: "",
23
- errorMessage: "",
24
- });
25
-
26
- const model = defineModel<boolean>();
27
-
28
- const lauEcomSwitchClasses = computed(() => {
29
- return {
30
- "dsEcom-peer lau-ecom-switch": true,
31
- "lau-ecom-switch--upc": props.instance === LauEcomInstance.Upc,
32
- "lau-ecom-switch--cbt": props.instance === LauEcomInstance.Cibertec,
33
- "lau-ecom-switch--disabled": props.isDisabled,
34
- };
35
- });
36
-
37
- const lauEcomSwitchButtonClasses = computed(() => {
38
- return {
39
- "lau-ecom-switch-button": true,
40
- "lau-ecom-switch-button--disabled": props.isDisabled,
41
- };
42
- });
43
- </script>
44
-
45
- <template>
46
- <div class="dsEcom-relative">
47
- <input
48
- :id="id"
49
- v-model="model"
50
- type="checkbox"
51
- :name="name"
52
- :disabled="isDisabled"
53
- :class="lauEcomSwitchClasses"
54
- />
55
- <div :class="lauEcomSwitchButtonClasses" />
56
- </div>
57
- </template>
58
-
59
- <style scoped>
60
- .lau-ecom-switch {
61
- @apply dsEcom-relative
62
- dsEcom-cursor-pointer
63
- dsEcom-shrink-0
64
- dsEcom-appearance-none
65
- dsEcom-w-10
66
- dsEcom-h-6
67
- dsEcom-border
68
- dsEcom-rounded-full
69
- dsEcom-bg-white
70
- dsEcom-transition-all
71
- dsEcom-duration-[0.3s]
72
- checked:dsEcom-p-1
73
- checked:dsEcom-cursor-pointer
74
- checked:disabled:!dsEcom-bg-upc-color-neutral-60
75
- checked:disabled:!dsEcom-border-upc-color-neutral-60;
76
- }
77
-
78
- .lau-ecom-switch--upc {
79
- @apply dsEcom-border-upc-color-red-90
80
- checked:dsEcom-bg-upc-color-red-60-base
81
- checked:dsEcom-border-upc-color-red-60-base;
82
- }
83
-
84
- .lau-ecom-switch--cbt {
85
- @apply dsEcom-border-cbt-color-apple-green-60-base
86
- checked:dsEcom-bg-cbt-color-apple-green-60-base
87
- checked:dsEcom-border-cbt-color-apple-green-60-base;
88
- }
89
-
90
- .lau-ecom-switch--disabled {
91
- @apply dsEcom-border-upc-color-neutral-60
92
- dsEcom-pointer-events-none;
93
- }
94
-
95
- .lau-ecom-switch-button {
96
- @apply dsEcom-absolute
97
- dsEcom-top-1
98
- dsEcom-w-4
99
- dsEcom-h-4
100
- dsEcom-ml-1
101
- dsEcom-bg-upc-color-neutral-90
102
- dsEcom-rounded-full
103
- dsEcom-pointer-events-none
104
- dsEcom-transition-all
105
- dsEcom-duration-[0.3s]
106
- peer-checked:dsEcom-ml-5
107
- peer-checked:dsEcom-bg-white;
108
- }
109
-
110
- .lau-ecom-switch-button--disabled {
111
- @apply dsEcom-bg-upc-color-neutral-60;
112
- }
113
- </style>
1
+ <script lang="ts" setup>
2
+ import { computed, watch } from "vue";
3
+ import { LauEcomInstance } from "../../enums";
4
+
5
+ interface Props {
6
+ instance?: LauEcomInstance;
7
+ currentClass?: string;
8
+ isDisabled?: boolean;
9
+ isChecked?: boolean;
10
+ id?: string;
11
+ name?: string;
12
+ label?: string;
13
+ }
14
+
15
+ const props = withDefaults(defineProps<Props>(), {
16
+ instance: LauEcomInstance.Upc,
17
+ currentClass: "",
18
+ isDisabled: false,
19
+ isChecked: false,
20
+ id: "",
21
+ name: "",
22
+ label: "",
23
+ errorMessage: "",
24
+ });
25
+
26
+ const model = defineModel<boolean>();
27
+
28
+ const emit = defineEmits(["onToggle"]);
29
+
30
+ const lauEcomSwitchClasses = computed(() => {
31
+ return {
32
+ "dsEcom-peer lau-ecom-switch": true,
33
+ "lau-ecom-switch--upc": props.instance === LauEcomInstance.Upc,
34
+ "lau-ecom-switch--cbt": props.instance === LauEcomInstance.Cibertec,
35
+ "lau-ecom-switch--disabled": props.isDisabled,
36
+ };
37
+ });
38
+
39
+ const lauEcomSwitchButtonClasses = computed(() => {
40
+ return {
41
+ "lau-ecom-switch-button": true,
42
+ "lau-ecom-switch-button--disabled": props.isDisabled,
43
+ };
44
+ });
45
+
46
+ watch(model, (newValue) => {
47
+ if (newValue) emit("onToggle");
48
+ });
49
+ </script>
50
+
51
+ <template>
52
+ <div class="dsEcom-relative">
53
+ <input
54
+ :id="id"
55
+ v-model="model"
56
+ type="checkbox"
57
+ :name="name"
58
+ :disabled="isDisabled"
59
+ :class="lauEcomSwitchClasses"
60
+ />
61
+ <div :class="lauEcomSwitchButtonClasses" />
62
+ </div>
63
+ </template>
64
+
65
+ <style scoped>
66
+ .lau-ecom-switch {
67
+ @apply dsEcom-relative
68
+ dsEcom-cursor-pointer
69
+ dsEcom-shrink-0
70
+ dsEcom-appearance-none
71
+ dsEcom-w-10
72
+ dsEcom-h-6
73
+ dsEcom-border
74
+ dsEcom-rounded-full
75
+ dsEcom-bg-white
76
+ dsEcom-transition-all
77
+ dsEcom-duration-[0.3s]
78
+ checked:dsEcom-p-1
79
+ checked:dsEcom-cursor-pointer
80
+ checked:disabled:!dsEcom-bg-upc-color-neutral-60
81
+ checked:disabled:!dsEcom-border-upc-color-neutral-60;
82
+ }
83
+
84
+ .lau-ecom-switch--upc {
85
+ @apply dsEcom-border-upc-color-neutral-90
86
+ checked:dsEcom-bg-upc-color-red-60-base
87
+ checked:dsEcom-border-upc-color-red-60-base;
88
+ }
89
+
90
+ .lau-ecom-switch--cbt {
91
+ @apply dsEcom-border-color-cbt-color-neutral-90
92
+ checked:dsEcom-bg-cbt-color-apple-green-60-base
93
+ checked:dsEcom-border-cbt-color-apple-green-60-base;
94
+ }
95
+
96
+ .lau-ecom-switch--disabled {
97
+ @apply dsEcom-border-upc-color-neutral-60
98
+ dsEcom-pointer-events-none;
99
+ }
100
+
101
+ .lau-ecom-switch-button {
102
+ @apply dsEcom-absolute
103
+ dsEcom-top-1
104
+ dsEcom-w-4
105
+ dsEcom-h-4
106
+ dsEcom-ml-1
107
+ dsEcom-bg-upc-color-neutral-90
108
+ dsEcom-rounded-full
109
+ dsEcom-pointer-events-none
110
+ dsEcom-transition-all
111
+ dsEcom-duration-[0.3s]
112
+ peer-checked:dsEcom-ml-5
113
+ peer-checked:dsEcom-bg-white;
114
+ }
115
+
116
+ .lau-ecom-switch-button--disabled {
117
+ @apply dsEcom-bg-upc-color-neutral-60;
118
+ }
119
+ </style>
@@ -1,139 +1,133 @@
1
- <script lang="ts" setup>
2
- import { computed, ref } from "vue";
3
- import { LauEcomInstance } from "../../enums";
4
- import { Colors } from "../../utils";
5
- import { LauEcomUpcIconNavArrow } from "../LauEcomIcon";
6
-
7
- interface Props {
8
- instance?: LauEcomInstance;
9
- size?: string;
10
- isDisabled?: boolean;
11
- type?: string;
12
- hasArrow?: boolean;
13
- }
14
-
15
- const props = withDefaults(defineProps<Props>(), {
16
- instance: LauEcomInstance.Upc,
17
- size: "medium",
18
- isDisabled: false,
19
- type: "button",
20
- hasArrow: false,
21
- });
22
-
23
- const emit = defineEmits(["onClick"]);
24
-
25
- const handleClick = () => {
26
- emit("onClick");
27
- };
28
-
29
- const isMouseOver = ref(false);
30
- const isActive = ref(false);
31
-
32
- const handleMouseOver = () => {
33
- console.log("over");
34
-
35
- isMouseOver.value = true;
36
- };
37
-
38
- const handleMouseOut = () => {
39
- isMouseOver.value = false;
40
- };
41
-
42
- const handleMouseDown = () => {
43
- console.log("down");
44
-
45
- isActive.value = true;
46
- };
47
-
48
- const handleMouseUp = () => {
49
- console.log("up");
50
-
51
- isActive.value = false;
52
- };
53
-
54
- const lauEcomButtonTextClasses = computed(() => {
55
- return {
56
- "lau-ecom-text-button": true,
57
- "lau-ecom-text-button--upc upc-font-button-16px":
58
- props.instance === LauEcomInstance.Upc,
59
- "lau-ecom-text-button--cbt cbt-font-button-16px":
60
- props.instance === LauEcomInstance.Cibertec,
61
- "lau-ecom-text-button--disabled": props.isDisabled,
62
- };
63
- });
64
-
65
- const getIconColor = computed(() => {
66
- if (props.instance === LauEcomInstance.Upc) {
67
- if (props.isDisabled) {
68
- return Colors["upc-color-neutral-70"];
69
- }
70
- if (isMouseOver.value) {
71
- if (isActive.value) {
72
- return Colors["upc-color-red-80"];
73
- }
74
-
75
- return Colors["upc-color-red-70"];
76
- }
77
- return Colors["upc-color-red-60-base"];
78
- }
79
-
80
- if (props.instance === LauEcomInstance.Cibertec) {
81
- if (props.isDisabled) {
82
- return Colors["cbt-color-neutral-70"];
83
- }
84
- if (isMouseOver.value) {
85
- if (isActive.value) {
86
- return Colors["cbt-color-apple-green-80"];
87
- }
88
- return Colors["cbt-color-apple-green-70"];
89
- }
90
-
91
- return Colors["cbt-color-apple-green-60-base"];
92
- }
93
- return "";
94
- });
95
- </script>
96
-
97
- <template>
98
- <button
99
- :class="lauEcomButtonTextClasses"
100
- :disabled="isDisabled"
101
- @mouseover="handleMouseOver"
102
- @mouseout="handleMouseOut"
103
- @mouseup="handleMouseUp"
104
- @mousedown="handleMouseDown"
105
- @click="handleClick"
106
- >
107
- <slot></slot>
108
- <LauEcomUpcIconNavArrow
109
- v-if="hasArrow"
110
- class="dsEcom-rotate-90"
111
- width="16"
112
- height="16"
113
- :color="getIconColor"
114
- />
115
- </button>
116
- </template>
117
-
118
- <style scoped>
119
- .lau-ecom-text-button {
120
- @apply dsEcom-flex
121
- dsEcom-items-center
122
- dsEcom-gap-2;
123
- }
124
-
125
- .lau-ecom-text-button--upc {
126
- @apply dsEcom-text-upc-color-red-60-base
127
- hover:dsEcom-text-upc-color-red-70
128
- active:dsEcom-text-upc-color-red-80;
129
- }
130
-
131
- .lau-ecom-text-button--cbt {
132
- @apply dsEcom-text-cbt-color-apple-green-60-base
133
- hover:dsEcom-text-cbt-color-apple-green-70
134
- active:dsEcom-text-cbt-color-apple-green-80;
135
- }
136
- .lau-ecom-text-button--disabled {
137
- @apply dsEcom-text-upc-color-neutral-70;
138
- }
139
- </style>
1
+ <script lang="ts" setup>
2
+ import { computed, ref } from "vue";
3
+ import { LauEcomInstance } from "../../enums";
4
+ import { Colors } from "../../utils";
5
+ import { LauEcomUpcIconNavArrow } from "../LauEcomIcon";
6
+
7
+ interface Props {
8
+ instance?: LauEcomInstance;
9
+ size?: string;
10
+ isDisabled?: boolean;
11
+ type?: string;
12
+ hasArrow?: boolean;
13
+ }
14
+
15
+ const props = withDefaults(defineProps<Props>(), {
16
+ instance: LauEcomInstance.Upc,
17
+ size: "medium",
18
+ isDisabled: false,
19
+ type: "button",
20
+ hasArrow: false,
21
+ });
22
+
23
+ const emit = defineEmits(["onClick"]);
24
+
25
+ const handleClick = () => {
26
+ emit("onClick");
27
+ };
28
+
29
+ const isMouseOver = ref(false);
30
+ const isActive = ref(false);
31
+
32
+ const handleMouseOver = () => {
33
+ isMouseOver.value = true;
34
+ };
35
+
36
+ const handleMouseOut = () => {
37
+ isMouseOver.value = false;
38
+ };
39
+
40
+ const handleMouseDown = () => {
41
+ isActive.value = true;
42
+ };
43
+
44
+ const handleMouseUp = () => {
45
+ isActive.value = false;
46
+ };
47
+
48
+ const lauEcomButtonTextClasses = computed(() => {
49
+ return {
50
+ "lau-ecom-text-button": true,
51
+ "lau-ecom-text-button--upc upc-font-button-16px":
52
+ props.instance === LauEcomInstance.Upc,
53
+ "lau-ecom-text-button--cbt cbt-font-button-16px":
54
+ props.instance === LauEcomInstance.Cibertec,
55
+ "lau-ecom-text-button--disabled": props.isDisabled,
56
+ };
57
+ });
58
+
59
+ const getIconColor = computed(() => {
60
+ if (props.instance === LauEcomInstance.Upc) {
61
+ if (props.isDisabled) {
62
+ return Colors["upc-color-neutral-70"];
63
+ }
64
+ if (isMouseOver.value) {
65
+ if (isActive.value) {
66
+ return Colors["upc-color-red-80"];
67
+ }
68
+
69
+ return Colors["upc-color-red-70"];
70
+ }
71
+ return Colors["upc-color-red-60-base"];
72
+ }
73
+
74
+ if (props.instance === LauEcomInstance.Cibertec) {
75
+ if (props.isDisabled) {
76
+ return Colors["cbt-color-neutral-70"];
77
+ }
78
+ if (isMouseOver.value) {
79
+ if (isActive.value) {
80
+ return Colors["cbt-color-apple-green-80"];
81
+ }
82
+ return Colors["cbt-color-apple-green-70"];
83
+ }
84
+
85
+ return Colors["cbt-color-apple-green-60-base"];
86
+ }
87
+ return "";
88
+ });
89
+ </script>
90
+
91
+ <template>
92
+ <button
93
+ :class="lauEcomButtonTextClasses"
94
+ :disabled="isDisabled"
95
+ @mouseover="handleMouseOver"
96
+ @mouseout="handleMouseOut"
97
+ @mouseup="handleMouseUp"
98
+ @mousedown="handleMouseDown"
99
+ @click="handleClick"
100
+ >
101
+ <slot></slot>
102
+ <LauEcomUpcIconNavArrow
103
+ v-if="hasArrow"
104
+ class="dsEcom-rotate-90"
105
+ width="16"
106
+ height="16"
107
+ :color="getIconColor"
108
+ />
109
+ </button>
110
+ </template>
111
+
112
+ <style scoped>
113
+ .lau-ecom-text-button {
114
+ @apply dsEcom-flex
115
+ dsEcom-items-center
116
+ dsEcom-gap-2;
117
+ }
118
+
119
+ .lau-ecom-text-button--upc {
120
+ @apply dsEcom-text-upc-color-red-60-base
121
+ hover:dsEcom-text-upc-color-red-70
122
+ active:dsEcom-text-upc-color-red-80;
123
+ }
124
+
125
+ .lau-ecom-text-button--cbt {
126
+ @apply dsEcom-text-cbt-color-apple-green-60-base
127
+ hover:dsEcom-text-cbt-color-apple-green-70
128
+ active:dsEcom-text-cbt-color-apple-green-80;
129
+ }
130
+ .lau-ecom-text-button--disabled {
131
+ @apply dsEcom-text-upc-color-neutral-70;
132
+ }
133
+ </style>