edvoyui-component-library-test-flight 0.0.142 → 0.0.144
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.
- package/dist/input/EUIInput.vue.d.ts +1 -1
- package/dist/library-vue-ts.cjs.js +55 -55
- package/dist/library-vue-ts.css +1 -1
- package/dist/library-vue-ts.es.js +9546 -9456
- package/dist/library-vue-ts.umd.js +56 -56
- package/dist/tabs/EUITabs.vue.d.ts +1 -1
- package/dist/tooltip/EUITooltip.vue.d.ts +1 -1
- package/package.json +1 -1
- package/src/components/HelloWorld.vue +46 -3
- package/src/components/input/EUIInput.vue +3 -1
- package/src/components/select/EUISelect.vue +203 -19
- package/src/components/table/UTable.vue +2 -2
- package/src/components/tabs/EUITabs.vue +1 -6
- package/src/components/tooltip/EUITooltip.vue +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * from "/Volumes/work/repos/edvoy-ui-v2/src/components/tabs/EUITabs.vue?vue&type=script&setup=true&lang.ts";
|
|
2
|
-
import "/Volumes/work/repos/edvoy-ui-v2/src/components/tabs/EUITabs.vue?vue&type=style&index=0&scoped=
|
|
2
|
+
import "/Volumes/work/repos/edvoy-ui-v2/src/components/tabs/EUITabs.vue?vue&type=style&index=0&scoped=c7325a13&lang.css";
|
|
3
3
|
declare const _default: any;
|
|
4
4
|
export default _default;
|
|
5
5
|
//# sourceMappingURL=EUITabs.vue.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * from "/Volumes/work/repos/edvoy-ui-v2/src/components/tooltip/EUITooltip.vue?vue&type=script&setup=true&lang.ts";
|
|
2
|
-
import "/Volumes/work/repos/edvoy-ui-v2/src/components/tooltip/EUITooltip.vue?vue&type=style&index=0&scoped=
|
|
2
|
+
import "/Volumes/work/repos/edvoy-ui-v2/src/components/tooltip/EUITooltip.vue?vue&type=style&index=0&scoped=1916fad7&lang.scss";
|
|
3
3
|
declare const _default: any;
|
|
4
4
|
export default _default;
|
|
5
5
|
//# sourceMappingURL=EUITooltip.vue.d.ts.map
|
package/package.json
CHANGED
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
|
|
14
14
|
<!-- Development code here -->
|
|
15
15
|
|
|
16
|
-
<!--
|
|
16
|
+
<!--
|
|
17
|
+
<template>
|
|
17
18
|
<div class="h-[clac(100svh-64px)] w-full px-10 py-8 max-w-screen-xl mx-auto">
|
|
18
19
|
<h1 class="mb-2 font-semibold text-gray-900 tetx-lg">Edvoy UI Componnet</h1>
|
|
19
20
|
|
|
@@ -639,8 +640,18 @@
|
|
|
639
640
|
>
|
|
640
641
|
<code><EUISelect label="Firstname" placeholder="Enter your name" :items="datas" /></code>
|
|
641
642
|
</pre>
|
|
642
|
-
|
|
643
643
|
<div class="grid grid-cols-3 gap-4">
|
|
644
|
+
<EUISelect
|
|
645
|
+
v-model="checkboxData"
|
|
646
|
+
search-label="name"
|
|
647
|
+
placeholder="Placeholder"
|
|
648
|
+
:items="datas"
|
|
649
|
+
:selected-count="true"
|
|
650
|
+
selectedCountLabel="Checkbox"
|
|
651
|
+
:multiple="true"
|
|
652
|
+
:is-checkbox="true"
|
|
653
|
+
/>
|
|
654
|
+
|
|
644
655
|
<EUISelect
|
|
645
656
|
search-label="name"
|
|
646
657
|
label="Select Label"
|
|
@@ -1413,6 +1424,8 @@ import EUISearchExpand from "./searchexpand/EUISearchExpand.vue";
|
|
|
1413
1424
|
import EUITabOutline from "./tabs/EUITabOutline.vue";
|
|
1414
1425
|
import EUIPopover from "./popover/EUIPopover.vue";
|
|
1415
1426
|
|
|
1427
|
+
const checkboxData = ref([])
|
|
1428
|
+
|
|
1416
1429
|
// TODO: Popover
|
|
1417
1430
|
const isLoading = ref(false);
|
|
1418
1431
|
const popoverVisible = ref(false);
|
|
@@ -1551,25 +1564,55 @@ const handleActiveItem = (activeItems: number) => {
|
|
|
1551
1564
|
//TODO: Select Data
|
|
1552
1565
|
const datas = ref([
|
|
1553
1566
|
{
|
|
1567
|
+
value:'ShawnBurke',
|
|
1554
1568
|
name: "Shawn Burke",
|
|
1555
1569
|
age: 6,
|
|
1556
1570
|
},
|
|
1557
1571
|
{
|
|
1572
|
+
value: 'EmeryNolan',
|
|
1558
1573
|
name: "Emery Nolan",
|
|
1559
1574
|
age: 4,
|
|
1560
1575
|
},
|
|
1561
1576
|
{
|
|
1577
|
+
value: 'EmbryGrant',
|
|
1562
1578
|
name: "Embry Grant",
|
|
1563
1579
|
age: 3,
|
|
1564
1580
|
},
|
|
1565
1581
|
{
|
|
1582
|
+
value: 'JesseAustin',
|
|
1566
1583
|
name: "Jesse Austin",
|
|
1567
1584
|
age: 9,
|
|
1568
1585
|
},
|
|
1569
1586
|
{
|
|
1587
|
+
value: 'TandyChristensen',
|
|
1570
1588
|
name: "Tandy Christensen",
|
|
1571
1589
|
age: 7,
|
|
1572
1590
|
},
|
|
1591
|
+
{
|
|
1592
|
+
value:'ShawnBurkeNew',
|
|
1593
|
+
name: "Shawn Burke New",
|
|
1594
|
+
age: 6,
|
|
1595
|
+
},
|
|
1596
|
+
{
|
|
1597
|
+
value: 'EmeryNolanNew',
|
|
1598
|
+
name: "Emery Nolan New",
|
|
1599
|
+
age: 4,
|
|
1600
|
+
},
|
|
1601
|
+
{
|
|
1602
|
+
value: 'EmbryGrantNew',
|
|
1603
|
+
name: "Embry Grant New",
|
|
1604
|
+
age: 3,
|
|
1605
|
+
},
|
|
1606
|
+
{
|
|
1607
|
+
value: 'JesseAustinNew',
|
|
1608
|
+
name: "Jesse Austin New",
|
|
1609
|
+
age: 9,
|
|
1610
|
+
},
|
|
1611
|
+
{
|
|
1612
|
+
value: 'TandyChristensenNew',
|
|
1613
|
+
name: "Tandy Christensen New",
|
|
1614
|
+
age: 7,
|
|
1615
|
+
},
|
|
1573
1616
|
]);
|
|
1574
1617
|
//TODO: Timeline
|
|
1575
1618
|
|
|
@@ -1741,4 +1784,4 @@ const accordionData = ref([
|
|
|
1741
1784
|
]);
|
|
1742
1785
|
</script>
|
|
1743
1786
|
|
|
1744
|
-
<style lang="scss" scoped></style
|
|
1787
|
+
<style lang="scss" scoped></style> -->
|
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
]"
|
|
40
40
|
:clearable="clearable"
|
|
41
41
|
:no-drop="nodropDown"
|
|
42
|
+
:components="customComponents"
|
|
42
43
|
@search="search($event)"
|
|
43
44
|
@option:selected="change($event)"
|
|
44
45
|
@option:deselected="deselected($event)"
|
|
@@ -65,6 +66,14 @@
|
|
|
65
66
|
</div>
|
|
66
67
|
</template>
|
|
67
68
|
|
|
69
|
+
<!-- option, deselect, multiple, disabled -->
|
|
70
|
+
<template
|
|
71
|
+
v-if="selectedCount && multiple"
|
|
72
|
+
#selected-option-container="{}"
|
|
73
|
+
>
|
|
74
|
+
<div class="vs__selected_count">{{ selectedCountLabel }} <span>{{ selected?.length }}</span></div>
|
|
75
|
+
</template>
|
|
76
|
+
|
|
68
77
|
|
|
69
78
|
<!-- Allow parent to override selected-option slot -->
|
|
70
79
|
<template v-if="$slots['selected-option']" #selected-option="slotProps">
|
|
@@ -100,14 +109,23 @@
|
|
|
100
109
|
<slot name="option" v-bind="option as Record<string, any>"></slot> <!-- Passing the 'option' data -->
|
|
101
110
|
</template>
|
|
102
111
|
<template v-else #option="item">
|
|
103
|
-
<div class="flex items-center">
|
|
112
|
+
<div class="flex items-center gap-2">
|
|
104
113
|
<img
|
|
105
114
|
v-if="(item as any).iconlink"
|
|
106
|
-
class="
|
|
115
|
+
class="flex-shrink-0 size-6"
|
|
107
116
|
:src="(item as any).iconlink"
|
|
108
117
|
:alt="item[fieldName]"
|
|
109
118
|
/>
|
|
110
119
|
|
|
120
|
+
<span v-if="isCheckbox" class="flex-shrink-0">
|
|
121
|
+
<input
|
|
122
|
+
:id="`checkbox-${item[fieldName]}`"
|
|
123
|
+
type="checkbox"
|
|
124
|
+
:checked="isChecked(item)"
|
|
125
|
+
class="selectall__input"
|
|
126
|
+
@change="(e) => onCheckBoxChange(item, e)"
|
|
127
|
+
>
|
|
128
|
+
</span>
|
|
111
129
|
{{
|
|
112
130
|
isStartCaseText ? startCaseText(item[fieldName]) : item[fieldName]
|
|
113
131
|
}}
|
|
@@ -131,15 +149,41 @@
|
|
|
131
149
|
<slot name="list-header"></slot>
|
|
132
150
|
</template>
|
|
133
151
|
|
|
134
|
-
<template v-else-if="isSelectAll" #list-header>
|
|
135
|
-
<div v-if="items
|
|
152
|
+
<template v-else-if="isSelectAll || isCheckbox" #list-header>
|
|
153
|
+
<div v-if="isCheckbox" class="flex flex-row items-center justify-between gap-2 px-3 py-2 border-b border-gray-200 border-solid">
|
|
154
|
+
<h3 class="text-sm font-semibold text-black">
|
|
155
|
+
All values
|
|
156
|
+
</h3>
|
|
157
|
+
|
|
158
|
+
<div class="flex items-center gap-1 whitespace-nowrap">
|
|
159
|
+
<button
|
|
160
|
+
class="w-full px-2 py-1 text-xs font-medium transition duration-75 text-start"
|
|
161
|
+
:class="[items?.length !== selected?.length ? 'text-gray-600 hover:text-gray-900': 'pointer-events-none opacity-50 cursor-default text-gray-400']"
|
|
162
|
+
:disabled="items?.length === selected?.length"
|
|
163
|
+
@click.prevent="isCheckedAll"
|
|
164
|
+
>
|
|
165
|
+
Select All
|
|
166
|
+
</button>
|
|
167
|
+
<button
|
|
168
|
+
class="w-full px-2 py-1 text-xs font-medium transition duration-75 text-start"
|
|
169
|
+
:class="[(selected?.length ?? 0) > 0 ? 'text-gray-600 hover:text-gray-900': 'pointer-events-none opacity-50 cursor-default text-gray-400']"
|
|
170
|
+
:disabled="(selected?.length ?? 0) === 0"
|
|
171
|
+
@click.prevent="clearAll"
|
|
172
|
+
>
|
|
173
|
+
Clear all
|
|
174
|
+
</button>
|
|
175
|
+
</div>
|
|
176
|
+
</div>
|
|
177
|
+
|
|
178
|
+
<template v-else>
|
|
136
179
|
<button
|
|
180
|
+
v-if="items.length !== selected?.length"
|
|
137
181
|
class="w-full px-6 py-2 text-sm font-medium text-gray-600 transition duration-75 hover:font-bold hover:text-gray-900 text-start"
|
|
138
182
|
@click.prevent="selectAll"
|
|
139
183
|
>
|
|
140
184
|
Select All
|
|
141
185
|
</button>
|
|
142
|
-
</
|
|
186
|
+
</template>
|
|
143
187
|
</template>
|
|
144
188
|
|
|
145
189
|
<!-- Allow parent to override open-indicator slot -->
|
|
@@ -148,12 +192,15 @@
|
|
|
148
192
|
</template>
|
|
149
193
|
|
|
150
194
|
<template v-else #open-indicator="{ attributes }">
|
|
151
|
-
<span v-bind="attributes as Record<string, any>"
|
|
152
|
-
|
|
153
|
-
|
|
195
|
+
<span v-bind="attributes as Record<string, any>">
|
|
196
|
+
<ChevronDownSolid class="text-current size-6" />
|
|
197
|
+
</span>
|
|
154
198
|
</template>
|
|
155
199
|
</vSelect>
|
|
156
|
-
|
|
200
|
+
|
|
201
|
+
<template v-if="errors && errors.length">
|
|
202
|
+
<EUIErrorMessage :errors="errors" :name="name" class="mt-2" />
|
|
203
|
+
</template>
|
|
157
204
|
</div>
|
|
158
205
|
</template>
|
|
159
206
|
|
|
@@ -172,9 +219,25 @@ import {
|
|
|
172
219
|
ref,
|
|
173
220
|
toRefs,
|
|
174
221
|
watch,
|
|
222
|
+
h
|
|
175
223
|
} from "vue";
|
|
176
224
|
import { ValidationErrors } from "../../utils/types";
|
|
177
|
-
import
|
|
225
|
+
import { XMarkIcon } from "@heroicons/vue/20/solid";
|
|
226
|
+
import ChevronDownSolid from "../../assets/svg/ChevronDownStroke.vue";
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
const customComponents = {
|
|
230
|
+
Deselect: {
|
|
231
|
+
render () {
|
|
232
|
+
return h(XMarkIcon, { class: 'w-4 h-4 text-current' })
|
|
233
|
+
}
|
|
234
|
+
},
|
|
235
|
+
OpenIndicator: {
|
|
236
|
+
render () {
|
|
237
|
+
return h(ChevronDownSolid, { class: 'w-6 h-6 text-gray-800' })
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
178
241
|
|
|
179
242
|
type VirtualElement = {
|
|
180
243
|
getBoundingClientRect: () => ClientRect | DOMRect;
|
|
@@ -191,7 +254,7 @@ const startCaseText = (x: string) => {
|
|
|
191
254
|
return startCase(x);
|
|
192
255
|
};
|
|
193
256
|
|
|
194
|
-
const selected = ref<any>([]);
|
|
257
|
+
const selected = ref<any[] | null>([]);
|
|
195
258
|
const nodropDown = ref(false);
|
|
196
259
|
const props = defineProps({
|
|
197
260
|
clearable: {
|
|
@@ -263,12 +326,11 @@ const props = defineProps({
|
|
|
263
326
|
multiple: {
|
|
264
327
|
type: Boolean,
|
|
265
328
|
required: false,
|
|
266
|
-
default:
|
|
329
|
+
default: true,
|
|
267
330
|
},
|
|
268
331
|
multipleLimit: {
|
|
269
332
|
type: Number,
|
|
270
333
|
required: false,
|
|
271
|
-
default: false,
|
|
272
334
|
},
|
|
273
335
|
disabled: {
|
|
274
336
|
type: Boolean as PropType<boolean>,
|
|
@@ -297,7 +359,6 @@ const props = defineProps({
|
|
|
297
359
|
},
|
|
298
360
|
isSelectAll: {
|
|
299
361
|
type: Boolean,
|
|
300
|
-
required: false,
|
|
301
362
|
default: false,
|
|
302
363
|
},
|
|
303
364
|
taggable: {
|
|
@@ -327,6 +388,18 @@ const props = defineProps({
|
|
|
327
388
|
type: String,
|
|
328
389
|
default: "name",
|
|
329
390
|
},
|
|
391
|
+
selectedCount: {
|
|
392
|
+
type: Boolean,
|
|
393
|
+
default: false
|
|
394
|
+
},
|
|
395
|
+
selectedCountLabel: {
|
|
396
|
+
type: String,
|
|
397
|
+
default: "Selected",
|
|
398
|
+
},
|
|
399
|
+
isCheckbox: {
|
|
400
|
+
type: Boolean,
|
|
401
|
+
default: false,
|
|
402
|
+
},
|
|
330
403
|
});
|
|
331
404
|
|
|
332
405
|
const {
|
|
@@ -353,6 +426,46 @@ const emit = defineEmits([
|
|
|
353
426
|
"open",
|
|
354
427
|
]);
|
|
355
428
|
|
|
429
|
+
const isCheckedAll =(e: Event) => {
|
|
430
|
+
if (e.target) {
|
|
431
|
+
selected.value = [...props.items]
|
|
432
|
+
}
|
|
433
|
+
};
|
|
434
|
+
|
|
435
|
+
const isChecked = (item: any) => {
|
|
436
|
+
const sel = selected.value
|
|
437
|
+
if (Array.isArray(sel)) {
|
|
438
|
+
return sel.some((s:any) => s?.value === item.value)
|
|
439
|
+
}
|
|
440
|
+
if (sel && typeof sel === 'object') {
|
|
441
|
+
return (sel as any).value === item.value;
|
|
442
|
+
}
|
|
443
|
+
return false
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
const clearAll = (e:Event) => {
|
|
447
|
+
if (e.target) {
|
|
448
|
+
selected.value = []
|
|
449
|
+
nodropDown.value = false;
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
const onCheckBoxChange = (item: any, event: Event) => {
|
|
454
|
+
const target = event.target as HTMLInputElement
|
|
455
|
+
|
|
456
|
+
if (!Array.isArray(selected.value)) {
|
|
457
|
+
selected.value = []
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
if (target.checked) {
|
|
461
|
+
if (!selected.value?.some(s => s?.value === item?.value)) {
|
|
462
|
+
selected.value?.push(item)
|
|
463
|
+
}
|
|
464
|
+
} else {
|
|
465
|
+
selected.value = selected.value?.filter(s => s?.value !== item?.value)
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
|
|
356
469
|
const selectAll = (e: Event) => {
|
|
357
470
|
if (e.target) {
|
|
358
471
|
selected.value = [{ _id: "6565d869eb1b7cf8745d6beb", name: "All" }];
|
|
@@ -432,13 +545,23 @@ const fuseSearch = (
|
|
|
432
545
|
};
|
|
433
546
|
|
|
434
547
|
onMounted(() => {
|
|
435
|
-
|
|
548
|
+
if (Array.isArray(props.value)) {
|
|
549
|
+
selected.value = props.value;
|
|
550
|
+
} else if (props.value) {
|
|
551
|
+
selected.value = [props.value];
|
|
552
|
+
} else {
|
|
553
|
+
selected.value = [];
|
|
554
|
+
}
|
|
436
555
|
});
|
|
437
556
|
|
|
438
557
|
onBeforeUnmount(() => {
|
|
439
558
|
selected.value = null;
|
|
440
559
|
});
|
|
441
560
|
|
|
561
|
+
onBeforeUnmount(() => {
|
|
562
|
+
selected.value = [];
|
|
563
|
+
});
|
|
564
|
+
|
|
442
565
|
const slectedChipbg = computed(() => (props.multiple ? "#f3e8ff" : ""));
|
|
443
566
|
const slectedChiptextColor = computed(() => (props.multiple ? "#7e22ce" : ""));
|
|
444
567
|
const slectedChipHeight = computed(() =>
|
|
@@ -479,9 +602,7 @@ const selectedMultiple = computed(() => {
|
|
|
479
602
|
if (selected.value?.length === 0 || _.isEmpty(selected.value)) {
|
|
480
603
|
return "0px";
|
|
481
604
|
}
|
|
482
|
-
|
|
483
605
|
let heightValue;
|
|
484
|
-
|
|
485
606
|
if (isUseCustomSelect.value || props.multiple) {
|
|
486
607
|
heightValue = props.inputFilled ? "24px" : "4px";
|
|
487
608
|
} else {
|
|
@@ -629,6 +750,18 @@ const open = () => {
|
|
|
629
750
|
@apply py-3 font-medium text-base;
|
|
630
751
|
}
|
|
631
752
|
|
|
753
|
+
.vs__actions {
|
|
754
|
+
.vs__clear {
|
|
755
|
+
@apply mr-0.5 scale-95 transform transition-all duration-300 ease-out text-gray-400;
|
|
756
|
+
&:hover {
|
|
757
|
+
@apply scale-125 text-red-600;
|
|
758
|
+
}
|
|
759
|
+
}
|
|
760
|
+
.vs__open-indicator {
|
|
761
|
+
fill: var(--vs-controls-color);
|
|
762
|
+
}
|
|
763
|
+
}
|
|
764
|
+
|
|
632
765
|
.vs__selected-options {
|
|
633
766
|
@apply group-focus:bg-transparent focus-within:bg-transparent border-transparent;
|
|
634
767
|
background-color: v-bind(selectBG);
|
|
@@ -638,10 +771,10 @@ const open = () => {
|
|
|
638
771
|
background: v-bind(slectedChipbg) !important;
|
|
639
772
|
color: v-bind(slectedChiptextColor) !important;
|
|
640
773
|
height: v-bind(slectedChipHeight) !important;
|
|
641
|
-
@apply rounded-
|
|
774
|
+
@apply rounded-md pl-2 text-sm font-medium bg-gray-200 border-transparent;
|
|
642
775
|
|
|
643
776
|
button.vs__deselect {
|
|
644
|
-
@apply p-1;
|
|
777
|
+
@apply p-1 text-gray-400;
|
|
645
778
|
}
|
|
646
779
|
&:hover button.vs__deselect svg {
|
|
647
780
|
@apply fill-current text-red-600;
|
|
@@ -652,6 +785,9 @@ const open = () => {
|
|
|
652
785
|
.v-select.vs--multiple {
|
|
653
786
|
.vs__selected-options {
|
|
654
787
|
margin-top: v-bind(selectedMultiple);
|
|
788
|
+
.vs__selected {
|
|
789
|
+
@apply mt-px;
|
|
790
|
+
}
|
|
655
791
|
}
|
|
656
792
|
}
|
|
657
793
|
|
|
@@ -695,6 +831,13 @@ const open = () => {
|
|
|
695
831
|
@apply appearance-none;
|
|
696
832
|
}
|
|
697
833
|
|
|
834
|
+
.v-select .vs__selected-options .vs__selected_count {
|
|
835
|
+
@apply text-gray-600 first:flex items-center justify-start gap-2 hidden text-sm font-medium leading-snug px-2 py-1;
|
|
836
|
+
span {
|
|
837
|
+
@apply flex items-center justify-center h-5 text-xs text-gray-800 bg-gray-200 rounded-3xl shrink-0 min-w-5;
|
|
838
|
+
}
|
|
839
|
+
}
|
|
840
|
+
|
|
698
841
|
.isUseCustomSelect {
|
|
699
842
|
.v-select.customselect {
|
|
700
843
|
.vs__search:focus {
|
|
@@ -787,4 +930,45 @@ const open = () => {
|
|
|
787
930
|
-webkit-text-fill-color: transparent;
|
|
788
931
|
}
|
|
789
932
|
}
|
|
933
|
+
|
|
934
|
+
.selectall__input {
|
|
935
|
+
@apply size-4 flex-shrink-0 border border-solid border-gray-200 bg-white appearance-none inline-block select-none cursor-pointer align-middle rounded relative before:content-[''] before:transform before:translate-x-1/2 before:-translate-y-1/2 before:z-[-1] before:absolute before:top-1/2 before:right-1/2 before:block before:size-9 before:rounded-full before:bg-violet-100 before:opacity-0 before:transition-opacity hover:before:opacity-75;
|
|
936
|
+
&::after {
|
|
937
|
+
@apply absolute hidden border-solid inset-0 -ml-px -mt-px size-4 scale-90;
|
|
938
|
+
content: "";
|
|
939
|
+
background-image: url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%2012.7132L10.0168%2017.7247L10.4177%2017.0238C12.5668%2013.2658%2015.541%2010.0448%2019.1161%207.60354L20%207%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%223%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E);
|
|
940
|
+
background-size: contain;
|
|
941
|
+
transition: all 0.2s ease;
|
|
942
|
+
}
|
|
943
|
+
&:hover {
|
|
944
|
+
@apply bg-violet-100 border-violet-500;
|
|
945
|
+
}
|
|
946
|
+
&:checked {
|
|
947
|
+
transition: all 0.3s ease;
|
|
948
|
+
transform: translate3d(0, 1, 0);
|
|
949
|
+
@apply bg-violet-700 border-violet-700;
|
|
950
|
+
&::after {
|
|
951
|
+
@apply block border-white;
|
|
952
|
+
}
|
|
953
|
+
&:focus {
|
|
954
|
+
@apply bg-violet-700;
|
|
955
|
+
}
|
|
956
|
+
}
|
|
957
|
+
&:focus {
|
|
958
|
+
@apply outline-none border border-violet-700 bg-violet-200;
|
|
959
|
+
}
|
|
960
|
+
&:disabled {
|
|
961
|
+
@apply bg-gray-300 border-gray-100 cursor-not-allowed;
|
|
962
|
+
& ~ span {
|
|
963
|
+
@apply cursor-not-allowed;
|
|
964
|
+
}
|
|
965
|
+
&:checked {
|
|
966
|
+
@apply bg-white border-white;
|
|
967
|
+
&::after {
|
|
968
|
+
@apply block border-gray-100;
|
|
969
|
+
}
|
|
970
|
+
}
|
|
971
|
+
}
|
|
972
|
+
}
|
|
973
|
+
|
|
790
974
|
</style>
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
<InformationCircleIcon class="inline-block text-gray-500 size-4" />
|
|
87
87
|
</template>
|
|
88
88
|
<template v-slot:tooltip>
|
|
89
|
-
<div class="z-50 max-w-xs break-words whitespace-normal min-w-max">{{ header
|
|
89
|
+
<div class="z-50 max-w-xs break-words whitespace-normal min-w-max">{{ header?.showHeaderInfoText }}</div>
|
|
90
90
|
</template>
|
|
91
91
|
</EUITooltip>
|
|
92
92
|
</div>
|
|
@@ -191,7 +191,7 @@
|
|
|
191
191
|
<InformationCircleIcon class="inline-block text-gray-500 size-4" />
|
|
192
192
|
</template>
|
|
193
193
|
<template v-slot:tooltip>
|
|
194
|
-
<div class="z-50 max-w-xs break-words whitespace-normal min-w-max">{{ header
|
|
194
|
+
<div class="z-50 max-w-xs break-words whitespace-normal min-w-max">{{ header?.showInfoText }}</div>
|
|
195
195
|
</template>
|
|
196
196
|
</EUITooltip>
|
|
197
197
|
</span>
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div>
|
|
3
|
-
|
|
4
|
-
<div class=" overflow-hidden overflow-x-scroll">
|
|
5
3
|
<div
|
|
6
4
|
v-if="tabStyle === 'design'"
|
|
7
|
-
class="inline-flex flex-row items-center justify-start px-[0.25rem] min-h-[34px] mb-0.5 bg-gray-100 rounded-[0.625rem] ring-1 ring-gray-200/75 gap-2"
|
|
5
|
+
class="inline-flex flex-row items-center justify-start px-[0.25rem] min-h-[34px] mb-0.5 bg-gray-100 rounded-[0.625rem] ring-1 ring-gray-200/75 gap-2 overflow-x-auto scrollbar--hide whitespace-nowrap max-w-full"
|
|
8
6
|
>
|
|
9
7
|
<template v-for="(tab, tabindex) in tabs" :key="tabindex">
|
|
10
8
|
<button
|
|
@@ -163,9 +161,6 @@
|
|
|
163
161
|
</slot>
|
|
164
162
|
</button>
|
|
165
163
|
</div>
|
|
166
|
-
</div>
|
|
167
|
-
|
|
168
|
-
|
|
169
164
|
<slot name="content" :active-tab="tabs[activeTabIndex]">
|
|
170
165
|
<div
|
|
171
166
|
:class="[
|