edvoyui-component-library-test-flight 0.0.168 → 0.0.170
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/package.json +10 -3
- package/src/App.vue +0 -16
- package/src/assets/svg/CheckTick.vue +0 -21
- package/src/assets/svg/ChevronBigDown.vue +0 -22
- package/src/assets/svg/ChevronDownSolid.vue +0 -19
- package/src/assets/svg/ChevronDownStroke.vue +0 -22
- package/src/assets/svg/ChevronDownStrokeSolid.vue +0 -19
- package/src/assets/svg/SearchBigZoomIn.vue +0 -21
- package/src/assets/svg/SortArrow.vue +0 -24
- package/src/assets/svg/Student.vue +0 -30
- package/src/assets/svg/partner.vue +0 -33
- package/src/assets/svg/people.vue +0 -25
- package/src/components/HelloWorld.vue +0 -1974
- package/src/components/accordion/EUIAccordion.vue +0 -152
- package/src/components/alerts/EUIAlerts.vue +0 -194
- package/src/components/avatar/EUIAvatar.vue +0 -96
- package/src/components/breadcrumb/EUIBreadcrumb.vue +0 -59
- package/src/components/button/EUIButton.vue +0 -154
- package/src/components/button/EUIButtonGroup.vue +0 -287
- package/src/components/button/buttonAnimateTab.vue +0 -74
- package/src/components/checkbox/EUICheckbox.vue +0 -110
- package/src/components/datepicker/EUIDatepicker.vue +0 -295
- package/src/components/delete.vue +0 -262
- package/src/components/dragModal/EUIDrag.vue +0 -179
- package/src/components/dropdown/EUIMultiDropdown.vue +0 -174
- package/src/components/errorMessage/EUIErrorMessage.vue +0 -25
- package/src/components/input/EUIInput.vue +0 -223
- package/src/components/input/EUINumberInput.vue +0 -250
- package/src/components/loader/EUICircleLoader.vue +0 -31
- package/src/components/loader/EUICubeLoader.vue +0 -237
- package/src/components/loader/EUILoader.vue +0 -17
- package/src/components/loader/EUISquareLoader.vue +0 -47
- package/src/components/modal/EUIModal.vue +0 -224
- package/src/components/pillSelect/EUIPillSelect.vue +0 -149
- package/src/components/popover/EUIPopover.vue +0 -297
- package/src/components/radio/EUIRadio.vue +0 -75
- package/src/components/searchInput/EUISearch.vue +0 -223
- package/src/components/searchTagSelect/EUISearchTagSelect.vue +0 -642
- package/src/components/searchTagSelect/SearchInput.vue +0 -167
- package/src/components/searchexpand/EUISearchExpand.vue +0 -148
- package/src/components/searchexpand/EUISearchToggle.vue +0 -86
- package/src/components/select/EUISelect.vue +0 -1092
- package/src/components/selectSearch/EUISelectSearch.vue +0 -23
- package/src/components/slideover/EUISlideover.vue +0 -207
- package/src/components/stepperTimeline/EUIStepperHorizontal.vue +0 -242
- package/src/components/stepperTimeline/EUIStepperTimeline.vue +0 -16
- package/src/components/stepperTimeline/EUIStepperVertical.vue +0 -112
- package/src/components/table/ColumnResizeTable.vue +0 -740
- package/src/components/table/EUIDashboardTable.vue +0 -514
- package/src/components/table/EUIPageLimit.vue +0 -66
- package/src/components/table/EUIPagination.vue +0 -175
- package/src/components/table/EUIStudentPagination.vue +0 -172
- package/src/components/table/EUITable.vue +0 -559
- package/src/components/table/EUITableCheckbox.vue +0 -98
- package/src/components/table/GrowthTable.vue +0 -575
- package/src/components/table/GrowthTableView.vue +0 -108
- package/src/components/table/ResizeTableview.vue +0 -198
- package/src/components/table/UCheckbox.vue +0 -169
- package/src/components/table/UTable.vue +0 -611
- package/src/components/table/UTableview.vue +0 -189
- package/src/components/tabs/EUITabOutline.vue +0 -263
- package/src/components/tabs/EUITabs.vue +0 -226
- package/src/components/tag/EUITag.vue +0 -88
- package/src/components/telephone/EUITelephone.vue +0 -299
- package/src/components/textArea/EUITextArea.vue +0 -155
- package/src/components/timeLine/EUITimeLine.vue +0 -148
- package/src/components/toggle/EUIToggle.vue +0 -101
- package/src/components/tooltip/EUITooltip.vue +0 -111
- package/src/components/uidemo/select-com.vue +0 -120
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div>
|
|
3
|
-
<label class="inline-flex items-center cursor-pointer eui-radio">
|
|
4
|
-
<input
|
|
5
|
-
v-model="modelValue"
|
|
6
|
-
type="radio"
|
|
7
|
-
class="sr-only peer eui-radio_input"
|
|
8
|
-
:disabled="disabled"
|
|
9
|
-
@change="toggle()"
|
|
10
|
-
/>
|
|
11
|
-
<div
|
|
12
|
-
class="eui-radio_circle relative size-6 bg-gray-200 peer-focus:outline-none rounded-full after:content-[''] after:absolute after:top-0.5 after:start-0.5 after:bg-gray-500/20 after:border-gray-300/10 after:border after:rounded-full after:size-5 peer-checked:after:bg-purple-700"
|
|
13
|
-
>
|
|
14
|
-
<span class="eui-radio_icons"></span>
|
|
15
|
-
</div>
|
|
16
|
-
<span v-if="label" class="text-sm font-medium text-gray-900 ms-3 first-letter:capitalize">
|
|
17
|
-
{{ label }}
|
|
18
|
-
</span>
|
|
19
|
-
</label>
|
|
20
|
-
<template v-if="errors && Object.keys(errors).length">
|
|
21
|
-
<EUIErrorMessage :errors="errors" :name="name" />
|
|
22
|
-
</template>
|
|
23
|
-
</div>
|
|
24
|
-
</template>
|
|
25
|
-
|
|
26
|
-
<script setup lang="ts">
|
|
27
|
-
import { PropType, toRefs } from "vue";
|
|
28
|
-
import EUIErrorMessage from "../errorMessage/EUIErrorMessage.vue";
|
|
29
|
-
|
|
30
|
-
// Props declaration
|
|
31
|
-
const props = defineProps({
|
|
32
|
-
errors: { type: Object, required: false, default: () => {} },
|
|
33
|
-
modelValue: {
|
|
34
|
-
type: Boolean as PropType<boolean>,
|
|
35
|
-
required: true,
|
|
36
|
-
default: false,
|
|
37
|
-
},
|
|
38
|
-
name: {
|
|
39
|
-
type: String,
|
|
40
|
-
required: false,
|
|
41
|
-
default: "",
|
|
42
|
-
},
|
|
43
|
-
label: { type: String as PropType<string>, required: true, default: "" },
|
|
44
|
-
disabled: {
|
|
45
|
-
type: Boolean,
|
|
46
|
-
default: false,
|
|
47
|
-
},
|
|
48
|
-
});
|
|
49
|
-
const {modelValue} = toRefs(props)
|
|
50
|
-
|
|
51
|
-
const emit = defineEmits(["update:modelValue", "toggle"]);
|
|
52
|
-
const toggle = () => {
|
|
53
|
-
emit("toggle", props.modelValue);
|
|
54
|
-
emit("update:modelValue", props.modelValue);
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
</script>
|
|
58
|
-
|
|
59
|
-
<style lang="scss" scoped>
|
|
60
|
-
.eui-radio_icons {
|
|
61
|
-
@apply size-5 absolute z-10 inset-0 rounded-full;
|
|
62
|
-
&::after {
|
|
63
|
-
content: '';
|
|
64
|
-
@apply absolute transform scale-0 opacity-0 transition-all duration-200 delay-75 ease-in size-2.5 bg-white rounded-full top-[0.45rem] left-[0.45rem];
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
.eui-radio_input:checked + .eui-radio_circle {
|
|
69
|
-
.eui-radio_icons {
|
|
70
|
-
&::after {
|
|
71
|
-
@apply opacity-100 scale-100;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
</style>
|
|
@@ -1,223 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div ref="componentWrapper" class="cursor-pointer group" @click="expandInput">
|
|
3
|
-
<div class="relative max-w-96 z-[calc(infinity)]">
|
|
4
|
-
<div
|
|
5
|
-
:class="[
|
|
6
|
-
'relative flex items-center py-1 duration-300 ease-linear bg-gray-100 border border-gray-200 rounded-full pe-1 group-focus-within:ring-2 ring-purple-200 group-focus-within:border-gray-300 transition-all delay-100',
|
|
7
|
-
isExpanded ? 'group-focus-within:w-96' : 'size-[2.875rem]',
|
|
8
|
-
]"
|
|
9
|
-
>
|
|
10
|
-
<MagnifyingGlassIcon
|
|
11
|
-
class="absolute text-current size-6 top-3 left-3"
|
|
12
|
-
/>
|
|
13
|
-
<input
|
|
14
|
-
v-if="isExpanded"
|
|
15
|
-
v-model="searchQuery"
|
|
16
|
-
type="search"
|
|
17
|
-
placeholder="Search here..."
|
|
18
|
-
class="text-sm font-medium bg-transparent w-96 ps-12 pe-2 focus:outline-none min-h-9"
|
|
19
|
-
autofocus="true"
|
|
20
|
-
@input="handleSearch"
|
|
21
|
-
@blur="closeDropdown"
|
|
22
|
-
@focus="showDropdownResult = true"
|
|
23
|
-
/>
|
|
24
|
-
<div
|
|
25
|
-
v-if="menuDropdown && isExpanded"
|
|
26
|
-
ref="dropdownButton"
|
|
27
|
-
:open="isOpen"
|
|
28
|
-
class="flex items-center pl-3 pe-2 py-1.5 ml-auto bg-white cursor-pointer rounded-3xl ring-1 ring-gray-200/40 select-none transition-all duration-300 ease-in delay-100"
|
|
29
|
-
@click="toggleDropdown"
|
|
30
|
-
>
|
|
31
|
-
<div
|
|
32
|
-
class="inline-flex items-center gap-2 text-sm font-medium tracking-wide min-w-20"
|
|
33
|
-
>
|
|
34
|
-
<component :is="selectOption.icon" class="text-current size-4" />
|
|
35
|
-
{{ selectOption.title }}
|
|
36
|
-
</div>
|
|
37
|
-
<ChevronDownStroke
|
|
38
|
-
:class="[
|
|
39
|
-
'text-current size-6 transform transition-all duration-300 delay-75',
|
|
40
|
-
isOpen ? '-rotate-180 opacity-100' : 'opacity-50',
|
|
41
|
-
]"
|
|
42
|
-
/>
|
|
43
|
-
</div>
|
|
44
|
-
</div>
|
|
45
|
-
<ul
|
|
46
|
-
v-if="showDropdown"
|
|
47
|
-
ref="dropdown"
|
|
48
|
-
class="absolute text-sm font-medium right-0 z-50 w-40 bg-white border rounded-xl shadow-lg mt-0.5 overflow-hidden"
|
|
49
|
-
>
|
|
50
|
-
<li
|
|
51
|
-
v-for="data in dataList"
|
|
52
|
-
class="flex items-center gap-2 px-4 py-2 cursor-pointer hover:bg-gray-100"
|
|
53
|
-
@click.stop="onSelectOption(data)"
|
|
54
|
-
>
|
|
55
|
-
<component :is="data.icon" class="text-current size-4" />
|
|
56
|
-
<span>{{ data.title }}</span>
|
|
57
|
-
</li>
|
|
58
|
-
</ul>
|
|
59
|
-
|
|
60
|
-
<!-- search data -->
|
|
61
|
-
<ul
|
|
62
|
-
v-if="showDropdownResult && filteredResults.length"
|
|
63
|
-
ref="dropdown"
|
|
64
|
-
class="absolute text-sm font-medium right-0 z-40 w-full bg-white border rounded-xl shadow-lg mt-0.5 overflow-hidden"
|
|
65
|
-
@click="closeDropdown"
|
|
66
|
-
>
|
|
67
|
-
<li
|
|
68
|
-
v-for="(result, index) in filteredResults"
|
|
69
|
-
:key="index"
|
|
70
|
-
class="flex flex-col gap-1 px-4 py-2 cursor-pointer hover:bg-gray-100"
|
|
71
|
-
>
|
|
72
|
-
<div class="flex items-center gap-2">
|
|
73
|
-
<span
|
|
74
|
-
class="flex items-center justify-center w-8 h-8 rounded-full"
|
|
75
|
-
:style="{ backgroundColor: result.color }"
|
|
76
|
-
>
|
|
77
|
-
<span class="font-bold text-white">{{ result.initial }}</span>
|
|
78
|
-
</span>
|
|
79
|
-
<div class="flex flex-col">
|
|
80
|
-
<span class="font-semibold">{{ result.name }}</span>
|
|
81
|
-
<span class="text-sm text-gray-500">{{ result.email }}</span>
|
|
82
|
-
</div>
|
|
83
|
-
</div>
|
|
84
|
-
</li>
|
|
85
|
-
</ul>
|
|
86
|
-
</div>
|
|
87
|
-
</div>
|
|
88
|
-
</template>
|
|
89
|
-
|
|
90
|
-
<script lang="ts" setup>
|
|
91
|
-
import { MagnifyingGlassIcon } from "@heroicons/vue/24/solid";
|
|
92
|
-
import { createPopper } from "@popperjs/core";
|
|
93
|
-
import { computed, onBeforeUnmount, onMounted, ref, toRefs } from "vue";
|
|
94
|
-
import ChevronDownStroke from "../../assets/svg/ChevronDownStroke.vue";
|
|
95
|
-
import Student from "../../assets/svg/Student.vue";
|
|
96
|
-
import Partner from "../../assets/svg/partner.vue";
|
|
97
|
-
import People from "../../assets/svg/people.vue";
|
|
98
|
-
|
|
99
|
-
const props = defineProps({
|
|
100
|
-
menuDropdown: {
|
|
101
|
-
type: Boolean,
|
|
102
|
-
default: false
|
|
103
|
-
}
|
|
104
|
-
})
|
|
105
|
-
const {menuDropdown }= toRefs(props);
|
|
106
|
-
|
|
107
|
-
const isExpanded = ref(false);
|
|
108
|
-
const dropdownButton = ref<HTMLElement | null>(null);
|
|
109
|
-
const dropdown = ref<HTMLElement | null>(null);
|
|
110
|
-
const showDropdown = ref(false);
|
|
111
|
-
const searchQuery = ref();
|
|
112
|
-
const showDropdownResult = ref(false);
|
|
113
|
-
const isOpen = ref(false);
|
|
114
|
-
const componentWrapper = ref<HTMLElement | null>(null);
|
|
115
|
-
|
|
116
|
-
function expandInput() {
|
|
117
|
-
isExpanded.value = true;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
function closeInput() {
|
|
121
|
-
if (!searchQuery.value && !selectOption.value) {
|
|
122
|
-
isExpanded.value = false;
|
|
123
|
-
}
|
|
124
|
-
showDropdownResult.value = false;
|
|
125
|
-
isOpen.value = false;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
function toggleDropdown() {
|
|
129
|
-
showDropdown.value = !showDropdown.value;
|
|
130
|
-
isOpen.value = !isOpen.value;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
function closeDropdown() {
|
|
134
|
-
showDropdown.value = false;
|
|
135
|
-
isOpen.value = false;
|
|
136
|
-
closeInput();
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
function handleOutsideClick(event: MouseEvent) {
|
|
140
|
-
if (
|
|
141
|
-
componentWrapper.value &&
|
|
142
|
-
!componentWrapper.value.contains(event.target as Node)
|
|
143
|
-
) {
|
|
144
|
-
closeDropdown();
|
|
145
|
-
if (!searchQuery.value) {
|
|
146
|
-
isExpanded.value = false;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
onMounted(() => {
|
|
152
|
-
document.addEventListener("click", handleOutsideClick);
|
|
153
|
-
if (searchQuery.value) {
|
|
154
|
-
searchQuery.value?.focus();
|
|
155
|
-
}
|
|
156
|
-
if (dropdownButton.value && dropdown.value) {
|
|
157
|
-
createPopper(dropdownButton.value, dropdown.value, {
|
|
158
|
-
placement: "bottom",
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
});
|
|
162
|
-
|
|
163
|
-
onBeforeUnmount(() => {
|
|
164
|
-
document.removeEventListener("click", handleOutsideClick);
|
|
165
|
-
});
|
|
166
|
-
|
|
167
|
-
const filteredResults = computed(() => {
|
|
168
|
-
return results.value.filter((result) =>
|
|
169
|
-
result.name?.toLowerCase().includes(searchQuery.value?.toLowerCase())
|
|
170
|
-
);
|
|
171
|
-
});
|
|
172
|
-
|
|
173
|
-
function handleSearch() {
|
|
174
|
-
if (searchQuery.value) {
|
|
175
|
-
showDropdownResult.value = true;
|
|
176
|
-
} else {
|
|
177
|
-
showDropdownResult.value = false;
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
const dataList = ref([
|
|
182
|
-
{ title: "Student", icon: Student },
|
|
183
|
-
{ title: "People", icon: People },
|
|
184
|
-
{ title: "Partner", icon: Partner },
|
|
185
|
-
]);
|
|
186
|
-
|
|
187
|
-
const selectOption = ref(dataList.value[0]);
|
|
188
|
-
const onSelectOption = (data: any) => {
|
|
189
|
-
selectOption.value = data;
|
|
190
|
-
toggleDropdown()
|
|
191
|
-
};
|
|
192
|
-
|
|
193
|
-
const results = ref([
|
|
194
|
-
{
|
|
195
|
-
name: "Kamal Ahmed",
|
|
196
|
-
email: "kamalahmed@gmail.com",
|
|
197
|
-
color: "green",
|
|
198
|
-
initial: "A",
|
|
199
|
-
},
|
|
200
|
-
{
|
|
201
|
-
name: "Kamala Koteswararoo",
|
|
202
|
-
email: "kamalkote86@gmail.com",
|
|
203
|
-
color: "purple",
|
|
204
|
-
initial: "K",
|
|
205
|
-
},
|
|
206
|
-
{
|
|
207
|
-
name: "Kamaljeet Kaur",
|
|
208
|
-
email: "cheemak346@gmail.com",
|
|
209
|
-
color: "orange",
|
|
210
|
-
initial: "K",
|
|
211
|
-
},
|
|
212
|
-
{
|
|
213
|
-
name: "Kamala Hamal",
|
|
214
|
-
email: "kamalahamal88@outlook.com",
|
|
215
|
-
color: "gray",
|
|
216
|
-
initial: "K",
|
|
217
|
-
},
|
|
218
|
-
]);
|
|
219
|
-
</script>
|
|
220
|
-
|
|
221
|
-
<style scoped>
|
|
222
|
-
/* Add custom styles here */
|
|
223
|
-
</style>
|