@bagelink/vue 0.0.322 → 0.0.335

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 (72) hide show
  1. package/dist/components/ComboBox.vue.d.ts.map +1 -1
  2. package/dist/components/MaterialIcon.vue.d.ts +4 -2
  3. package/dist/components/MaterialIcon.vue.d.ts.map +1 -1
  4. package/dist/components/Modal.vue.d.ts +0 -1
  5. package/dist/components/ModalBglForm.vue.d.ts.map +1 -1
  6. package/dist/components/Popover.vue.d.ts +10 -0
  7. package/dist/components/Popover.vue.d.ts.map +1 -0
  8. package/dist/components/form/BglForm.vue.d.ts +1 -9
  9. package/dist/components/form/BglForm.vue.d.ts.map +1 -1
  10. package/dist/components/form/inputs/DateInput.vue.d.ts +0 -1
  11. package/dist/components/form/inputs/SelectInput.vue.d.ts +22 -16
  12. package/dist/components/form/inputs/SelectInput.vue.d.ts.map +1 -1
  13. package/dist/components/form/inputs/TextArea.vue.d.ts +3 -1
  14. package/dist/components/form/inputs/TextArea.vue.d.ts.map +1 -1
  15. package/dist/components/form/inputs/TextInput.vue.d.ts.map +1 -1
  16. package/dist/components/formkit/index.d.ts +1 -14
  17. package/dist/components/formkit/index.d.ts.map +1 -1
  18. package/dist/components/index.d.ts +0 -2
  19. package/dist/components/index.d.ts.map +1 -1
  20. package/dist/components/layout/Layout.vue.d.ts +8 -0
  21. package/dist/components/layout/Layout.vue.d.ts.map +1 -1
  22. package/dist/components/layout/SidebarMenu.vue.d.ts.map +1 -1
  23. package/dist/components/layout/TabbedLayout.vue.d.ts +38 -0
  24. package/dist/components/layout/TabbedLayout.vue.d.ts.map +1 -0
  25. package/dist/components/layout/Tabs.vue.d.ts +24 -0
  26. package/dist/components/layout/Tabs.vue.d.ts.map +1 -0
  27. package/dist/components/layout/TabsBody.vue.d.ts +21 -0
  28. package/dist/components/layout/TabsBody.vue.d.ts.map +1 -0
  29. package/dist/components/layout/TabsNav.vue.d.ts +25 -0
  30. package/dist/components/layout/TabsNav.vue.d.ts.map +1 -0
  31. package/dist/components/layout/index.d.ts +4 -0
  32. package/dist/components/layout/index.d.ts.map +1 -1
  33. package/dist/components/layout/tabsManager.d.ts +4 -0
  34. package/dist/components/layout/tabsManager.d.ts.map +1 -0
  35. package/dist/index.cjs +783 -2035
  36. package/dist/index.d.ts +0 -1
  37. package/dist/index.mjs +785 -2037
  38. package/dist/style.css +2129 -695
  39. package/dist/types/index.d.ts +7 -1
  40. package/dist/types/index.d.ts.map +1 -1
  41. package/dist/types/materialIcon.d.ts +2 -0
  42. package/dist/types/materialIcon.d.ts.map +1 -0
  43. package/dist/types/materialIcons.d.ts +1 -1
  44. package/dist/types/materialIcons.d.ts.map +1 -1
  45. package/dist/utils/index.d.ts.map +1 -1
  46. package/package.json +1 -1
  47. package/src/components/MaterialIcon.vue +3 -2
  48. package/src/components/PageTitle.vue +10 -20
  49. package/src/components/form/BglField.vue +2 -2
  50. package/src/components/form/BglForm.vue +49 -53
  51. package/src/components/form/inputs/SelectInput.vue +128 -484
  52. package/src/components/form/inputs/TextInput.vue +158 -112
  53. package/src/components/index.ts +0 -2
  54. package/src/components/layout/Layout.vue +34 -13
  55. package/src/components/layout/SidebarMenu.vue +22 -22
  56. package/src/components/layout/TabbedLayout.vue +79 -0
  57. package/src/components/layout/Tabs.vue +19 -0
  58. package/src/components/layout/TabsBody.vue +15 -0
  59. package/src/components/layout/TabsNav.vue +48 -0
  60. package/src/components/layout/index.ts +4 -0
  61. package/src/components/layout/tabsManager.ts +18 -0
  62. package/src/styles/appearance.css +81 -0
  63. package/src/styles/bagel.css +2 -0
  64. package/src/styles/layout.css +162 -17
  65. package/src/styles/mobilLayout.css +1476 -0
  66. package/src/styles/text.css +153 -1
  67. package/src/types/index.ts +9 -1
  68. package/src/types/materialIcons.ts +1180 -1178
  69. package/src/utils/BagelFormUtils.ts +1 -1
  70. package/src/utils/index.ts +0 -1
  71. package/src/components/ComboBox.vue +0 -165
  72. package/src/components/TabbedLayout.vue +0 -87
@@ -1,527 +1,171 @@
1
1
  <template>
2
- <div>
3
- <label class="txt-start" :for="id">
4
- {{ label }}
5
- <Multiselect
6
- ref="multiselect" :id="id" label="label" trackBy="value" :options="optionList" :required="required"
7
- :placeholder="placeholder" v-model="seletValue" :close-on-select="true" v-bind="extraProps"
8
- />
9
- <!-- <input v-model="dataValue" type="hidden" :name="id" :required v-bind="extraProps"> -->
10
- </label>
11
- </div>
2
+ <Dropdown placement="bottom-start" class="bagel-input selectinput">
3
+ <label>
4
+ {{ label }}
5
+ <button :disabled="disabled" type="button" class="selectinput-btn" @click="toggle">
6
+ {{ valueToLabel(selectedItem) || placeholder || 'Select' }}
7
+ <MaterialIcon v-bind="{ 'icon': open ? 'unfold_less' : 'unfold_more' }" />
8
+ </button>
9
+ <input style="width: 0; height: 0; position: absolute; opacity: 0; z-index: -1;" v-if="required"
10
+ v-model="selectedItem" required>
11
+ </label>
12
+ <template #popper="{ hide }">
13
+ <Card class="selectinput-options p-05" :style="{ width: fullWidth ? '100%' : 'auto' }">
14
+ <TextInput v-if="searchable" ref="searchInput" dense :placeholder="'Search'" icon="search" v-model="search" />
15
+ <div class="selectinput-option hover gap-1" v-for="(option, i) in filteredOptions" :key="`${option}${i}`"
16
+ @click="() => {
17
+ select(option); hide();
18
+ }" :class="{ selected: option === selectedItem }">
19
+ <Icon v-if="isSelected(option)" icon="check" />
20
+ <Icon class="opacity-3" v-if="!isSelected(option)" icon="fiber_manual_record" />
21
+ <span>
22
+ {{ getLabel(option) }}
23
+ </span>
24
+ </div>
25
+ <slot name="last" />
26
+ </Card>
27
+ </template>
28
+ </Dropdown>
12
29
  </template>
13
30
 
14
31
  <script lang="ts" setup>
15
32
  import { watch } from 'vue';
16
- import Multiselect from 'vue-multiselect';
33
+ import { Dropdown } from 'floating-vue';
34
+ import 'floating-vue/style.css';
35
+ import {
36
+ TextInput, Card, Icon, MaterialIcon,
37
+ } from '@bagelink/vue';
17
38
 
18
- type Option = {
19
- label: string;
20
- value: string | number;
21
- };
22
- type RawOption = Option | string | number;
39
+ type Option = string | number | Record<string, any> | { label: string, value: string | number };
40
+ let open = $ref(false);
41
+
42
+ const searchInput = $ref<HTMLInputElement | null>(null);
23
43
 
24
44
  const props = defineProps<{
25
- required?: boolean,
26
- label?: string,
27
- id?: string,
28
- modelValue?: string | number,
29
- placeholder?: string,
30
- defaultValue?: string | number,
31
- options: RawOption[] | string
32
- extraProps?: Record<string, any>
45
+ options: Option[];
46
+ placeholder?: string;
47
+ disabled?: boolean;
48
+ modelValue?: Option;
49
+ searchable?: boolean;
50
+ required?: boolean;
51
+ label?: string;
52
+ fullWidth?: boolean;
33
53
  }>();
54
+ let selectedItem = $ref<Option>();
55
+ let search = $ref('');
34
56
 
35
- let dataValue = $ref<string | number | undefined>(props.modelValue || props.defaultValue);
36
- const multiselect = $ref<Multiselect>();
37
- const emit = defineEmits(['update:modelValue']);
38
- const optionList = $ref<Option[]>([]);
39
-
40
- const seletValue = $computed({
41
- get: () => optionList.find((opt) => opt.value === dataValue),
42
- set: (val?: Option) => {
43
- dataValue = val?.value;
44
- emit('update:modelValue', dataValue);
45
- },
46
- });
47
-
48
- function optnToValueLabel(option: RawOption): Option {
49
- if (typeof option === 'string' || typeof option === 'number') {
50
- return { label: `${option}`, value: option };
51
- }
52
- return option;
53
- }
54
-
55
- function updateOptionList() {
56
- const { options } = props;
57
- const optnLst = typeof options === 'string' ? options.split('\n|,') : options || [];
58
- optionList.push(...optnLst.map(optnToValueLabel));
59
- }
60
-
61
- watch(() => props.options, updateOptionList, { immediate: true });
62
- </script>
63
-
64
- <style>
65
- fieldset[disabled] .multiselect {
66
- pointer-events: none;
67
- }
68
-
69
- .multiselect__spinner {
70
- position: absolute;
71
- right: 1px;
72
- top: 1px;
73
- width: 40px;
74
- height: 38px;
75
- background: #fff;
76
- display: block;
77
- }
57
+ const toggle = () => {
58
+ open = !open;
59
+ if (!open) search = '';
60
+ if (open) setTimeout(() => (searchInput as any)?.$el?.querySelector('input')?.focus(), 100);
61
+ };
78
62
 
79
- .multiselect__spinner::before,
80
- .multiselect__spinner::after {
81
- position: absolute;
82
- content: "";
83
- top: 50%;
84
- left: 50%;
85
- margin: -8px 0 0 -8px;
86
- width: 16px;
87
- height: 16px;
88
- border-radius: 100%;
89
- border-color: var(--bgl-primary-tint) transparent transparent;
90
- border-style: solid;
91
- border-width: 2px;
92
- box-shadow: 0 0 0 1px transparent;
93
- }
63
+ const valueToLabel = (value?: Option) => {
64
+ if (!value) return '';
65
+ const option = props.options.find((option) => {
66
+ if (typeof option === 'string' || typeof option === 'number') return option === value;
67
+ return option.value === value;
68
+ });
69
+ if (!option) return value;
70
+ return getLabel(option);
71
+ };
94
72
 
95
- .multiselect__spinner::before {
96
- animation: spinning 2.4s cubic-bezier(0.41, 0.26, 0.2, 0.62);
97
- animation-iteration-count: infinite;
98
- }
73
+ const emit = defineEmits(['update:modelValue']);
99
74
 
100
- .multiselect__spinner::after {
101
- animation: spinning 2.4s cubic-bezier(0.51, 0.09, 0.21, 0.8);
102
- animation-iteration-count: infinite;
103
- }
75
+ const getLabel = (option: Option) => {
76
+ if (typeof option === 'string') return option;
77
+ if (typeof option === 'number') return `${option}`;
78
+ return option.label;
79
+ };
104
80
 
105
- .multiselect__loading-enter-active,
106
- .multiselect__loading-leave-active {
107
- transition: opacity 0.4s ease-in-out;
108
- opacity: 1;
109
- }
81
+ const isSelected = (option: Option) => {
82
+ if (typeof option === 'string' || typeof option === 'number') return option === selectedItem;
83
+ return option.value === selectedItem;
84
+ };
110
85
 
111
- .multiselect__loading-enter,
112
- .multiselect__loading-leave-active {
113
- opacity: 0;
114
- }
86
+ const filteredOptions = $computed(() => props.options.filter((option) => {
87
+ const searchTerm = new RegExp(search, 'gi');
88
+ if (typeof option === 'string') return option.match(searchTerm);
89
+ if (typeof option === 'number') return `${option}`.match(searchTerm);
90
+ return option.label.match(searchTerm);
91
+ }));
92
+
93
+ const select = (option: Option) => {
94
+ if (typeof option === 'string') selectedItem = option;
95
+ else if (typeof option === 'number') selectedItem = option;
96
+ else selectedItem = option.value;
97
+ emit('update:modelValue', selectedItem);
98
+ open = false;
99
+ };
115
100
 
116
- .multiselect,
117
- .multiselect__input,
118
- .multiselect__single {
119
- font-family: inherit;
120
- font-size: var(--input-font-size);
121
- touch-action: manipulation;
122
- }
101
+ watch(() => props.modelValue, (value) => {
102
+ if (value !== selectedItem) selectedItem = value;
103
+ }, { immediate: true });
104
+ </script>
123
105
 
124
- .multiselect {
125
- box-sizing: content-box;
126
- display: block;
127
- position: relative;
106
+ <style scoped>
107
+ .selectinput {
128
108
  width: 100%;
129
- min-height: var(--input-height);
130
- text-align: left;
131
- color: var(--input-color);
132
- }
133
-
134
- .multiselect * {
135
- box-sizing: border-box;
136
- }
137
-
138
- .multiselect:focus {
139
- outline: none;
140
- }
141
-
142
- .multiselect--disabled {
143
- background: #ededed;
144
- pointer-events: none;
145
- opacity: 0.6;
146
- }
147
-
148
- .multiselect--active {
149
- z-index: 50;
150
109
  }
151
110
 
152
- .multiselect--active:not(.multiselect--above) .multiselect__current,
153
- .multiselect--active:not(.multiselect--above) .multiselect__input,
154
- .multiselect--active:not(.multiselect--above) .multiselect__tags {
155
- border-bottom-left-radius: 0;
156
- border-bottom-right-radius: 0;
157
- }
158
-
159
- .multiselect--active:not(.multiselect--above) .multiselect__tags {
160
- box-shadow: inset 0 0 10px #00000012;
161
- }
162
-
163
- .multiselect--active .multiselect__select {
164
- transform: rotateZ(180deg);
165
- }
166
-
167
- .multiselect--above.multiselect--active .multiselect__current,
168
- .multiselect--above.multiselect--active .multiselect__input,
169
- .multiselect--above.multiselect--active .multiselect__tags {
170
- border-top-left-radius: 0;
171
- border-top-right-radius: 0;
172
- }
173
-
174
- .multiselect__input,
175
- .multiselect__single {
176
- position: relative;
177
- display: inline-block;
178
- border: none;
179
- background: var(--input-bg);
180
- width: calc(100%);
181
- transition: border 0.1s ease;
182
- box-sizing: border-box;
183
- vertical-align: top;
111
+ .selectinput-option {
112
+ padding: 6px 12px;
113
+ cursor: pointer;
114
+ border-radius: 5px;
115
+ transition: all 0.2s;
116
+ display: grid;
117
+ grid-template-columns: 10px 1fr;
118
+ justify-content: space-between;
119
+ width: 100%;
184
120
  font-size: var(--input-font-size);
185
- padding-inline-start: 0rem;
186
- }
187
-
188
- .multiselect--active .multiselect__input {
189
- margin-top: -0.6rem;
190
- }
191
-
192
- .multiselect__input::placeholder {
193
- color: var(--input-color);
194
- }
195
-
196
- .multiselect__tag~.multiselect__input,
197
- .multiselect__tag~.multiselect__single {
198
- width: auto;
199
121
  }
200
122
 
201
- .multiselect__input:hover,
202
- .multiselect__single:hover {
203
- border-color: #cfcfcf;
123
+ .selectinput-options {
124
+ max-height: 300px;
125
+ overflow-y: auto;
204
126
  }
205
127
 
206
- .multiselect__input:focus,
207
- .multiselect__single:focus {
208
- border-color: #a8a8a8;
209
- outline: none;
210
- }
211
-
212
- .multiselect__single {
213
- /* padding-left: 5px; */
214
- margin-bottom: 8px;
128
+ .selectinput-option:hover {
129
+ background: var(--bgl-gray-20);
215
130
  }
131
+ </style>
216
132
 
217
- .multiselect__tags-wrap {
218
- display: inline;
133
+ <style>
134
+ .bagel-input label {
135
+ font-size: var(--label-font-size);
219
136
  }
220
137
 
221
- .multiselect__tags {
222
- /* min-height: 40px; */
223
- display: block;
224
- /* padding: 0.7rem 40px 0.7rem 8px; */
138
+ .selectinput-btn {
139
+ display: flex;
140
+ justify-content: space-between;
141
+ align-items: center;
142
+ height: var(--input-height);
225
143
  border-radius: var(--input-border-radius);
144
+ border: none;
226
145
  background: var(--input-bg);
227
- font-size: var(--input-font-size);
228
- height: var(--input-height);
229
- line-height: 0;
230
- padding: calc(var(--input-height) / 2);
231
- padding-inline-end: 40px;
232
- padding-inline-start: 0.7rem;
233
- }
234
-
235
- .multiselect__tag {
236
- position: relative;
237
- display: inline-block;
238
- padding: 4px 26px 4px 10px;
239
- border-radius: 5px;
240
- margin-right: 10px;
241
- color: #fff;
242
- line-height: 1;
243
- background: var(--bgl-primary-tint);
244
- margin-bottom: 5px;
245
- white-space: nowrap;
246
- overflow: hidden;
247
- max-width: 100%;
248
- text-overflow: ellipsis;
249
- }
250
-
251
- .multiselect__tag-icon {
252
- cursor: pointer;
253
- margin-left: 7px;
254
- position: absolute;
255
- right: 0;
256
- top: 0;
257
- bottom: 0;
258
- font-weight: 700;
259
- font-style: initial;
260
- width: 22px;
261
- text-align: center;
262
- line-height: 22px;
263
- transition: all 0.2s ease;
264
- border-radius: 5px;
265
- }
266
-
267
- .multiselect__tag-icon::after {
268
- content: "×";
269
- color: #266d4d;
270
- font-size: 14px;
271
- }
272
-
273
- /* // Remove these lines to avoid green closing button
274
- //.multiselect__tag-icon:focus,
275
- //.multiselect__tag-icon:hover {
276
- // background: #369a6e;
277
- //} */
278
-
279
- .multiselect__tag-icon:focus::after,
280
- .multiselect__tag-icon:hover::after {
281
- color: white;
282
- }
283
-
284
- .multiselect__current {
285
- line-height: 16px;
286
- min-height: 40px;
287
- box-sizing: border-box;
288
- display: block;
289
- overflow: hidden;
290
- padding: 8px 12px 0;
291
- padding-right: 30px;
292
- white-space: nowrap;
293
- margin: 0;
294
- text-decoration: none;
295
- border-radius: 5px;
296
- /* border: 1px solid #e8e8e8; */
297
- cursor: pointer;
298
- }
299
-
300
- .multiselect__select {
301
- line-height: 16px;
302
- display: block;
303
- position: absolute;
304
- box-sizing: border-box;
305
- /* width: 40px; */
306
- /* height: 38px; */
307
- right: 1px;
308
- top: 1px;
309
- padding: 4px 8px;
310
- margin: 0;
311
- text-decoration: none;
312
- text-align: center;
313
- cursor: pointer;
314
- transition: transform 0.2s ease;
315
- padding-top: calc(var(--input-height) / 2 - 0.7rem);
316
-
317
- }
318
-
319
- .multiselect__select::before {
320
- position: relative;
321
- background-size: contain;
322
- transform: scale(0.5);
323
- color: var(--bgl-black);
324
- content: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='%23b7b7b7' height='24' viewBox='0 -960 960 960' width='24'><path d='M480-345 240-585l56-56 184 184 184-184 56 56-240 240Z'/></svg>");
325
- }
326
-
327
- .multiselect__placeholder {
328
- color: var(--placeholder-color);
329
- display: inline-block;
330
- margin-bottom: 10px;
331
-
332
- }
333
-
334
- .multiselect--active .multiselect__placeholder {
335
- display: none;
336
- }
337
-
338
- .multiselect__content-wrapper {
339
- position: absolute;
340
- display: block;
341
- background: #fff;
146
+ padding: 0.7rem;
147
+ color: var(--input-color);
342
148
  width: 100%;
343
- max-height: 240px;
344
- overflow: auto;
345
- box-shadow: 0 0 10px #00000012;
346
- border-top: none;
347
- border-bottom-left-radius: 5px;
348
- border-bottom-right-radius: 5px;
349
- z-index: 150;
350
- -webkit-overflow-scrolling: touch;
351
- }
352
-
353
- .multiselect__content {
354
- list-style: none;
355
- display: inline-block;
356
- padding: 0;
357
- margin: 0;
358
- min-width: 100%;
359
- vertical-align: top;
360
- }
361
-
362
- .multiselect--above .multiselect__content-wrapper {
363
- bottom: 100%;
364
- border-bottom-left-radius: 0;
365
- border-bottom-right-radius: 0;
366
- border-top-left-radius: 5px;
367
- border-top-right-radius: 5px;
368
- border-bottom: none;
369
- border-top: 1px solid #e8e8e8;
370
- }
371
-
372
- .multiselect__content::-webkit-scrollbar {
373
- display: none;
374
- }
375
-
376
- .multiselect__element {
377
- display: block;
378
- }
379
-
380
- .multiselect__option {
381
- display: block;
382
- padding-inline-start: 12px;
383
- min-height: calc(var(--input-height) * 0.8);
384
- line-height: calc(var(--input-height) * 0.8);
385
- text-decoration: none;
386
- text-transform: none;
387
- position: relative;
388
- cursor: pointer;
389
- white-space: nowrap;
149
+ font-family: inherit;
390
150
  }
391
151
 
392
- .multiselect__option::after {
393
- top: 0;
394
- right: 0;
395
- position: absolute;
396
- width: calc(var(--input-height) * 0.8);
397
- height: calc(var(--input-height) * 0.8);
398
- ;
399
- text-align: center;
400
- font-size: 13px;
152
+ .selectinput-btn:disabled {
153
+ background: var(--input-disabled-bg);
154
+ color: var(--input-disabled-color);
401
155
  }
402
156
 
403
- .multiselect__option--highlight {
404
- background: var(--bgl-primary-light);
157
+ .selectinput-btn:focus {
405
158
  outline: none;
406
- color: var(--bgl-primary);
407
- }
408
-
409
- .multiselect__option--selected {
410
- background: var(--bgl-primary);
411
- color: var(--bgl-white);
412
- font-weight: bold;
413
- }
414
-
415
- .multiselect__option--selected.multiselect__option--highlight {
416
- filter: brightness(0.9);
417
- color: #fff;
418
- }
419
-
420
- .multiselect__option--selected.multiselect__option--highlight::after {
421
- content: "✕";
422
- color: var(--bgl-white);
423
- }
424
-
425
- .multiselect--disabled .multiselect__current,
426
- .multiselect--disabled .multiselect__select {
427
- background: #ededed;
428
- color: #a6a6a6;
429
- }
430
-
431
- .multiselect__option--disabled {
432
- background: #ededed !important;
433
- color: #a6a6a6 !important;
434
- cursor: text;
435
- pointer-events: none;
436
- }
437
-
438
- .multiselect__option--group {
439
- background: #ededed;
440
- color: var(--input-color);
441
- }
442
-
443
- .multiselect__option--group.multiselect__option--highlight {
444
- background: var(--input-color);
445
- color: #fff;
446
- }
447
-
448
- .multiselect__option--group.multiselect__option--highlight::after {
449
- background: var(--input-color);
450
- }
451
-
452
- .multiselect__option--disabled.multiselect__option--highlight {
453
- background: #dedede;
454
- }
455
-
456
- .multiselect__option--group-selected.multiselect__option--highlight {
457
- background: var(--bgl-red);
458
- color: #fff;
459
- }
460
-
461
- .multiselect__option--group-selected.multiselect__option--highlight::after {
462
- background: var(--bgl-red);
463
- content: attr(data-deselect);
464
- color: #fff;
465
- }
466
-
467
- .multiselect-enter-active,
468
- .multiselect-leave-active {
469
- transition: all 0.15s ease;
470
- }
471
-
472
- .multiselect-enter,
473
- .multiselect-leave-active {
474
- opacity: 0;
475
- }
476
-
477
- .multiselect__strong {
478
- margin-bottom: 8px;
479
- line-height: 20px;
480
- display: inline-block;
481
- vertical-align: top;
482
- }
483
-
484
- *[dir="rtl"] .multiselect {
485
- text-align: right;
486
- }
487
-
488
- *[dir="rtl"] .multiselect__select {
489
- right: auto;
490
- left: 1px;
491
- }
492
-
493
- *[dir="rtl"] .multiselect__tags {
494
- padding: calc(var(--input-height) / 2);
495
- padding-inline-end: 40px;
496
- padding-inline-start: 0.7rem;
497
- }
498
-
499
- *[dir="rtl"] .multiselect__content {
500
- text-align: right;
501
- }
502
-
503
- *[dir="rtl"] .multiselect__option::after {
504
- right: auto;
505
- left: 0;
506
- }
507
-
508
- *[dir="rtl"] .multiselect__clear {
509
- right: auto;
510
- left: 12px;
159
+ box-shadow: inset 0 0 10px #00000012;
511
160
  }
512
161
 
513
- *[dir="rtl"] .multiselect__spinner {
514
- right: auto;
515
- left: 1px;
162
+ .v-popper__arrow-container {
163
+ display: none;
516
164
  }
517
165
 
518
- @keyframes spinning {
519
- from {
520
- transform: rotate(0);
521
- }
522
-
523
- to {
524
- transform: rotate(2turn);
525
- }
166
+ .v-popper--theme-dropdown .v-popper__inner {
167
+ border: none;
168
+ background: transparent;
169
+ border-radius: var(--card-border-radius);
526
170
  }
527
171
  </style>