nuxt-hs-ui 1.0.10 → 2.0.2

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 (112) hide show
  1. package/README.md +11 -4
  2. package/dist/module.d.mts +10 -2
  3. package/dist/module.d.ts +10 -2
  4. package/dist/module.json +5 -2
  5. package/dist/module.mjs +90 -51
  6. package/dist/runtime/assets/flatpickr-dark.css +1 -0
  7. package/dist/runtime/assets/flatpickr-month-select-style.css +1 -0
  8. package/dist/runtime/assets/tabulator-custom.css +1 -0
  9. package/dist/runtime/assets/tabulator.css +1 -0
  10. package/dist/runtime/assets/vue-select.css +1 -0
  11. package/dist/runtime/components/{hs-fc/btn/line-loading.vue → form/btn-line-loading.vue} +28 -42
  12. package/dist/runtime/components/form/btn.vue +488 -0
  13. package/dist/runtime/components/form/check-box.vue +352 -0
  14. package/dist/runtime/components/form/check-list.vue +354 -0
  15. package/dist/runtime/components/form/datepicker copy.vue +770 -0
  16. package/dist/runtime/components/form/datepicker.vue +897 -0
  17. package/dist/runtime/components/form/input-frame.vue +272 -0
  18. package/dist/runtime/components/form/radio.vue +685 -0
  19. package/dist/runtime/components/form/select-img-icon.vue +53 -0
  20. package/dist/runtime/components/form/select.vue +438 -0
  21. package/dist/runtime/components/form/text-box.vue +375 -0
  22. package/dist/runtime/components/form/textarea.vue +466 -0
  23. package/dist/runtime/components/form/value-box.vue +681 -0
  24. package/dist/runtime/components/interactive/alert.vue +113 -0
  25. package/dist/runtime/components/{hs-ui → interactive}/block-loading.vue +42 -59
  26. package/dist/runtime/components/{hs-ui/dialog/index.vue → interactive/dialog.vue} +132 -127
  27. package/dist/runtime/components/interactive/modal-bg.vue +82 -0
  28. package/dist/runtime/components/interactive/modal.vue +143 -0
  29. package/dist/runtime/components/{hs-ui/toast/index.vue → interactive/toast.vue} +76 -109
  30. package/dist/runtime/components/{hs-ui → interactive}/window-loader.vue +12 -9
  31. package/dist/runtime/components/{hs-ui → layout}/accordion.vue +21 -30
  32. package/dist/runtime/components/layout/aspect-box.vue +71 -0
  33. package/dist/runtime/components/layout/card-item.vue +193 -0
  34. package/dist/runtime/components/layout/card.vue +42 -0
  35. package/dist/runtime/components/layout/container.vue +40 -0
  36. package/dist/runtime/components/misc/breadcrumb.vue +96 -0
  37. package/dist/runtime/components/misc/tabulator.vue +187 -0
  38. package/dist/runtime/components/misc/view-name-display-target.vue +39 -0
  39. package/dist/runtime/components/misc/view-name-display.vue +90 -0
  40. package/dist/runtime/composables/use-hs-dialog.d.ts +40 -0
  41. package/dist/runtime/composables/{use-hs-ui-dialog.js → use-hs-dialog.js} +15 -10
  42. package/dist/runtime/composables/{use-hs-form-focus.d.ts → use-hs-focus.d.ts} +1 -1
  43. package/dist/runtime/composables/{use-hs-form-focus.js → use-hs-focus.js} +2 -4
  44. package/dist/runtime/composables/use-hs-misc.d.ts +22 -0
  45. package/dist/runtime/composables/use-hs-misc.js +62 -0
  46. package/dist/runtime/composables/use-hs-modal.d.ts +31 -0
  47. package/dist/runtime/{components/hs-ui/modal/use-ui-modal.js → composables/use-hs-modal.js} +18 -16
  48. package/dist/runtime/composables/use-hs-multi-lang.d.ts +14 -6
  49. package/dist/runtime/composables/use-hs-multi-lang.js +44 -11
  50. package/dist/runtime/composables/{use-hs-ui-toast.d.ts → use-hs-toast.d.ts} +3 -3
  51. package/dist/runtime/composables/{use-hs-ui-toast.js → use-hs-toast.js} +4 -5
  52. package/dist/runtime/composables/{use-hs-ui-window-loader.d.ts → use-hs-window-loader.d.ts} +1 -1
  53. package/dist/runtime/composables/{use-hs-ui-window-loader.js → use-hs-window-loader.js} +1 -2
  54. package/dist/runtime/plugin/v-select.d.ts +2 -0
  55. package/dist/runtime/plugin/v-select.js +5 -0
  56. package/dist/runtime/style.css +22 -1
  57. package/dist/runtime/tailwind.css +78 -0
  58. package/dist/runtime/types/app.config.d.ts +5 -0
  59. package/dist/runtime/{components/hs-ui/dialog/index.type.d.ts → types/dialog.d.ts} +3 -3
  60. package/dist/runtime/{components/hs-ui/toast/index.type.d.ts → types/toast.d.ts} +1 -2
  61. package/dist/runtime/{components/hs-ui/toast/index.type.js → types/toast.js} +0 -1
  62. package/dist/runtime/utils/class-style.d.ts +6 -0
  63. package/dist/runtime/utils/class-style.js +27 -0
  64. package/dist/runtime/utils/com.d.ts +6 -0
  65. package/dist/runtime/{lib → utils}/com.js +1 -4
  66. package/dist/runtime/utils/dayjs.d.ts +53 -0
  67. package/dist/runtime/utils/dayjs.js +124 -0
  68. package/dist/runtime/utils/float.d.ts +2 -0
  69. package/dist/runtime/utils/float.js +35 -0
  70. package/dist/runtime/utils/multi-lang-object.d.ts +17 -0
  71. package/dist/runtime/utils/multi-lang-object.js +34 -0
  72. package/dist/runtime/{lib → utils}/multi-lang.d.ts +1 -1
  73. package/dist/runtime/{lib → utils}/multi-lang.js +31 -27
  74. package/dist/runtime/{lib → utils}/number.d.ts +2 -4
  75. package/dist/runtime/{lib → utils}/number.js +29 -69
  76. package/dist/runtime/utils/object.d.ts +46 -0
  77. package/dist/runtime/utils/object.js +107 -0
  78. package/dist/runtime/utils/select-item.d.ts +31 -0
  79. package/dist/runtime/utils/select.d.ts +14 -0
  80. package/dist/runtime/utils/select.js +36 -0
  81. package/dist/runtime/utils/string.d.ts +39 -0
  82. package/dist/runtime/utils/string.js +125 -0
  83. package/dist/runtime/utils/tabulator.d.ts +108 -0
  84. package/dist/runtime/utils/tabulator.js +296 -0
  85. package/dist/runtime/utils/theme.d.ts +21 -0
  86. package/dist/runtime/utils/theme.js +31 -0
  87. package/dist/runtime/utils/tv.d.ts +101 -0
  88. package/dist/runtime/utils/tv.js +26 -0
  89. package/dist/runtime/utils/wareki.d.ts +3 -0
  90. package/dist/runtime/utils/wareki.js +106 -0
  91. package/dist/types.d.mts +1 -17
  92. package/dist/types.d.ts +1 -17
  93. package/package.json +99 -37
  94. package/dist/runtime/components/hs-fc/btn/index.vue +0 -510
  95. package/dist/runtime/components/hs-ui/aspect-box.vue +0 -83
  96. package/dist/runtime/components/hs-ui/card-item.vue +0 -141
  97. package/dist/runtime/components/hs-ui/card.vue +0 -54
  98. package/dist/runtime/components/hs-ui/container.vue +0 -50
  99. package/dist/runtime/components/hs-ui/modal/bg.vue +0 -94
  100. package/dist/runtime/components/hs-ui/modal/index.vue +0 -206
  101. package/dist/runtime/components/hs-ui/modal/use-ui-modal.d.ts +0 -20
  102. package/dist/runtime/components/v-test.vue +0 -60
  103. package/dist/runtime/composables/use-hs-ui-dialog.d.ts +0 -22
  104. package/dist/runtime/lib/class-style.d.ts +0 -8
  105. package/dist/runtime/lib/class-style.js +0 -59
  106. package/dist/runtime/lib/com.d.ts +0 -14
  107. package/dist/runtime/lib/prefix.d.ts +0 -2
  108. package/dist/runtime/lib/prefix.js +0 -17
  109. package/dist/runtime/lib/theme.d.ts +0 -2
  110. package/dist/runtime/lib/theme.js +0 -21
  111. /package/dist/runtime/{components/hs-ui/dialog/index.type.js → types/dialog.js} +0 -0
  112. /package/dist/runtime/{components/hs-fc/hoge → utils/select-item.js} +0 -0
@@ -0,0 +1,53 @@
1
+ <script setup lang="ts">
2
+ /* ----------------------------------------------------------------------------
3
+ // src\runtime\components\form\select-img-icon.vue
4
+ // ----------------------------------------------------------------------------
5
+ // SelectImgIcon
6
+ // SelectImgIconSelectImgIcon
7
+ ----------------------------------------------------------------------------- */
8
+
9
+ // [ tailwind ]
10
+ import { twMerge } from "tailwind-merge";
11
+ // [ NUXT ]
12
+ import { computed } from "#imports";
13
+ // [ utils ]
14
+ import { type ClassType, ClassTypeToString } from "../../utils/class-style";
15
+ // ----------------------------------------------------------------------------
16
+ type Props = {
17
+ imgUrl?: string | null;
18
+ classImg?: ClassType;
19
+ classImgTag?: ClassType;
20
+ };
21
+
22
+ const props = withDefaults(defineProps<Props>(), {
23
+ imgUrl: null,
24
+ classImg: "",
25
+ classImgTag: "",
26
+ });
27
+
28
+ const imgClass = computed(() => {
29
+ return twMerge(
30
+ //
31
+ "border border-gray-700",
32
+ "h-[18px] w-[36px]",
33
+ ClassTypeToString(props.classImg)
34
+ );
35
+ });
36
+
37
+ const imgTagClass = computed(() => {
38
+ return twMerge(
39
+ "object-contain w-full h-full",
40
+ ClassTypeToString(props.classImgTag)
41
+ );
42
+ });
43
+ </script>
44
+
45
+ <template>
46
+ <div class="flex-cc border border-gray-300 me-[4px]" :class="imgClass">
47
+ <img v-if="props.imgUrl" :src="props.imgUrl" alt="" :class="imgTagClass" />
48
+ <div v-else class="text-center leading-[1em]" style="transform: scale(0.5)">
49
+ <div>NO</div>
50
+ <div>IMG</div>
51
+ </div>
52
+ </div>
53
+ </template>
@@ -0,0 +1,438 @@
1
+ <script setup lang="ts">
2
+ /* ----------------------------------------------------------------------------
3
+ // src\runtime\components\form\select.vue
4
+ // ----------------------------------------------------------------------------
5
+ // Select
6
+ // SelectSelect
7
+ ----------------------------------------------------------------------------- */
8
+
9
+ // [ tailwind ]
10
+ // [ NUXT ]
11
+ import { reactive, ref, watch, computed, useId } from "#imports";
12
+ // [ utils ]
13
+ import type { ClassType } from "../../utils/class-style";
14
+ import type { SelectItem } from "../../utils/select-item";
15
+ import { useDisplayList, type DisplaySelectItem } from "../../utils/select";
16
+ // [ composables ]
17
+ import { useHsFocus } from "../../composables/use-hs-focus";
18
+ import { useHsMultiLang } from "../../composables/use-hs-multi-lang";
19
+ // [ Components ]
20
+ import InputFrame from "./input-frame.vue";
21
+ import SelectImgIcon from "./select-img-icon.vue";
22
+ import Btn from "../form/btn.vue";
23
+
24
+ // ----------------------------------------------------------------------------
25
+ const hsFocus = useHsFocus();
26
+ const multiLang = useHsMultiLang();
27
+ const tx = multiLang.tx;
28
+
29
+ // ----------------------------------------------------------------------------
30
+ // [ Props ]
31
+ type Props = {
32
+ // ----------------------------------------------------------------------------
33
+ // Input 種類別
34
+ list: SelectItem[];
35
+ order?: boolean;
36
+ loading?: boolean;
37
+ nullText?: string;
38
+ image?: boolean;
39
+ classImg?: ClassType;
40
+ classImgTag?: ClassType;
41
+ nullable?: boolean;
42
+ // ----------------------------------------------------------------------------
43
+ data: number | null;
44
+ diff?: number | null | undefined;
45
+ tabindex?: string | undefined;
46
+ // ----------------------------------------------------------------------------
47
+ class?: ClassType;
48
+ classHeader?: ClassType;
49
+ classInput?: ClassType;
50
+ // ----------------------------------------------------------------------------
51
+ // 状態
52
+ // focus?: boolean;
53
+ focusColor?: string;
54
+ // change?: boolean;
55
+ changeColor?: string;
56
+ error?: boolean;
57
+ errorColor?: string;
58
+ disabled?: boolean;
59
+ disabledColor?: string;
60
+ readonly?: boolean;
61
+ // ----------------------------------------------------------------------------
62
+ // 表示
63
+ label?: string;
64
+ // 表示-副情報
65
+ require?: boolean;
66
+ requireText?: string;
67
+ warn?: string;
68
+ warnTimeOut?: number;
69
+ // ----------------------------------------------------------------------------
70
+ // 設定
71
+ size?: "s" | "m" | "l";
72
+ };
73
+
74
+ const props = withDefaults(defineProps<Props>(), {
75
+ // ----------------------------------------------------------------------------
76
+ // Input 種類別
77
+ order: false,
78
+ loading: false,
79
+ nullText: "選択してください",
80
+ nullable: false,
81
+ image: false,
82
+ classImg: "",
83
+ classImgTag: "",
84
+ // ----------------------------------------------------------------------------
85
+ diff: undefined,
86
+ tabindex: undefined,
87
+ // ----------------------------------------------------------------------------
88
+ class: "",
89
+ classHeader: "",
90
+ classInput: "",
91
+ // ----------------------------------------------------------------------------
92
+ // 状態
93
+ // focus: false,
94
+ focusColor: "shadow-[inset_0px_0px_1px_2px_#0d8ee4]",
95
+ // change: false,
96
+ changeColor: "shadow-[inset_0px_0px_1px_2px_#fd9831be]",
97
+ error: false,
98
+ errorColor: "shadow-[inset_0px_0px_1px_2px_#d80000dc]",
99
+ disabled: false,
100
+ disabledColor: "",
101
+ readonly: false,
102
+ // ----------------------------------------------------------------------------
103
+ // 表示
104
+ label: "",
105
+ // 表示-副情報
106
+ require: false,
107
+ requireText: "必須",
108
+ warn: "",
109
+ warnTimeOut: 300,
110
+ // ----------------------------------------------------------------------------
111
+ // 設定
112
+ size: "m",
113
+ });
114
+ // ----------------------------------------------------------------------------
115
+ // [ emit ]
116
+ type Emits = {
117
+ ref: [element: HTMLElement];
118
+ focus: [elm: HTMLElement];
119
+ blur: [elm: HTMLElement];
120
+ // ----------------------------
121
+ "update:data": [value: number | null];
122
+ "value-change": [after: number | null, before: number | null];
123
+ // ----------------------------
124
+ keydown: [event: KeyboardEvent];
125
+ keyup: [event: KeyboardEvent];
126
+ selectOpen: [uid: string];
127
+ selectClose: [uid: string];
128
+ // ----------------------------
129
+ };
130
+ const emit = defineEmits<Emits>();
131
+ // ----------------------------------------------------------------------------
132
+ // [ getCurrentInstance ]
133
+ const uid = useId();
134
+ // ----------------------------------------------------------------------------
135
+ // 更新の有無判定
136
+ const isChangeData = computed(() => {
137
+ if (props.diff === undefined) return false;
138
+ if (props.diff !== props.data) return true;
139
+ return false;
140
+ });
141
+ // [ ref ]
142
+
143
+ // ----------------------------------------------------------------------------
144
+ const displayData = ref<DisplaySelectItem | null>(null);
145
+ watch(displayData, (v) => {
146
+ const before = props.data;
147
+ if (v === null) {
148
+ emit("update:data", null);
149
+ emit("value-change", null, before);
150
+ return;
151
+ }
152
+ if (v.id === null) {
153
+ displayData.value = null;
154
+ return;
155
+ }
156
+ emit("update:data", v.id);
157
+ emit("value-change", v.id, before);
158
+ });
159
+
160
+ // ----------------------------------------------------------------------------
161
+ // 不明選択肢太陽
162
+ const unKnownSelected = ref<boolean>(false);
163
+ const unKnownData = computed(() => {
164
+ if (props.data === null) return null;
165
+ return {
166
+ id: props.data,
167
+ text: `選択肢にない値です ID=${props.data}`,
168
+ };
169
+ });
170
+
171
+ // ----------------------------------------------------------------------------
172
+ const isShowHidden = ref(false);
173
+ /** 選択肢に非表示アイテムが含まれているかどうか */
174
+ const includeHidden = computed(() => {
175
+ return props.list.filter((row) => row.hidden).length > 0;
176
+ });
177
+ // ----------------------------------------------------------------------------
178
+ /** 選択肢 */
179
+ const displayList = computed(() => {
180
+ return useDisplayList({
181
+ list: props.list,
182
+ id: props.data,
183
+ order: props.order,
184
+ unKnownData: unKnownData.value,
185
+ unKnownSelected: unKnownSelected.value,
186
+ isShowHidden: isShowHidden.value,
187
+ require: props.require || !props.nullable,
188
+ nullText: props.nullText,
189
+ });
190
+ });
191
+ // ----------------------------------------------------------------------------
192
+
193
+ const checkData = (id: number | null) => {
194
+ const ret = displayList.value.find((row) => row.id === id);
195
+ if (ret === undefined) {
196
+ // 選択肢に存在しないコード引当
197
+ unKnownSelected.value = true;
198
+ displayData.value = unKnownData.value;
199
+ } else {
200
+ unKnownSelected.value = false;
201
+ displayData.value = ret;
202
+ }
203
+ };
204
+ checkData(props.data);
205
+ // const activateItem = computed(() => {
206
+ watch(
207
+ () => props.data,
208
+ (id) => {
209
+ checkData(id);
210
+ }
211
+ );
212
+ // ----------------------------------------------------------------------------
213
+
214
+ // [ focus, blur ]
215
+ interface FocusState {
216
+ isActivate: boolean;
217
+ isOpen: boolean;
218
+ }
219
+ const focusState = reactive<FocusState>({
220
+ isActivate: false,
221
+ isOpen: false,
222
+ });
223
+
224
+ /**
225
+ * コントロールのFocus判定
226
+ */
227
+ const computedActivate = computed(() => {
228
+ if (props.disabled === true) return false;
229
+ if (props.readonly === true) return false;
230
+ if (focusState.isActivate) return true;
231
+ if (focusState.isOpen) return true;
232
+ if (hsFocus.state.id !== uid) return false;
233
+ return false;
234
+ });
235
+
236
+ // ----------------------------------------------------------------------------
237
+ // const isOpen = ref(false);
238
+ const onFocus = () => {
239
+ // console.log('onFocus');
240
+ if (props.disabled === true) return;
241
+ if (props.readonly === true) return;
242
+ focusState.isActivate = true;
243
+ hsFocus.state.id = uid;
244
+ };
245
+ const onBlur = () => {
246
+ // console.log('onBlur');
247
+ focusState.isActivate = false;
248
+ };
249
+ const selectOpen = () => {
250
+ emit("selectOpen", uid);
251
+ focusState.isOpen = true;
252
+ };
253
+ const selectClose = () => {
254
+ // console.log('selectClose');
255
+ focusState.isOpen = false;
256
+ emit("selectClose", uid);
257
+ };
258
+ // ----------------------------------------------------------------------------
259
+ // ----------------------------------------------------------------------------
260
+ </script>
261
+
262
+ <template>
263
+ <InputFrame
264
+ :class="[props.class]"
265
+ :class-header="props.classHeader"
266
+ :class-input="['px-0', props.classInput]"
267
+ :focus="computedActivate"
268
+ :focus-color="props.focusColor"
269
+ :change="isChangeData"
270
+ :change-color="props.changeColor"
271
+ :error="props.error"
272
+ :error-color="props.errorColor"
273
+ :disabled="props.disabled"
274
+ :disabled-color="props.disabledColor"
275
+ :readonly="props.readonly"
276
+ :label="props.label"
277
+ :require="props.require"
278
+ :require-text="props.requireText"
279
+ :warn="props.warn"
280
+ :warn-time-out="props.warnTimeOut"
281
+ :size="props.size"
282
+ >
283
+ <div
284
+ v-if="displayData === null"
285
+ class="absolute inset-0 flex items-center px-1 pointer-events-none text-[0.9em]"
286
+ :class="[computedActivate ? 'opacity-30' : '']"
287
+ >
288
+ {{ props.nullText }}
289
+ </div>
290
+ <v-select
291
+ ref="inputElement"
292
+ v-model="displayData"
293
+ label="text"
294
+ index="id"
295
+ append-to-body
296
+ :options="displayList"
297
+ :loading="props.loading"
298
+ :clearable="!props.require && props.nullable"
299
+ :disabled="props.disabled || props.readonly"
300
+ :uid="uid"
301
+ :class="[
302
+ `size-${props.size}`,
303
+ { disabled: props.disabled || props.readonly },
304
+ ]"
305
+ @open="selectOpen"
306
+ @close="selectClose"
307
+ @blur="onBlur()"
308
+ @focus="onFocus()"
309
+ >
310
+ <!-- -->
311
+ <!-- -->
312
+ <template #selected-option="{ text, imgUrl, deleted, hidden }">
313
+ <div class="flex items-baseline w-full">
314
+ <SelectImgIcon
315
+ v-if="imgUrl && props.image"
316
+ class="flex-none"
317
+ :class="[computedActivate ? 'opacity-40' : '']"
318
+ :img-url="imgUrl"
319
+ :class-img="props.classImg"
320
+ :class-img-tag="props.classImgTag"
321
+ />
322
+ <div class="flex-1 truncate">{{ tx(text) }}</div>
323
+ <div v-if="deleted" class="text-error text-[0.7em] leading-[1em]">
324
+ ※削除済み
325
+ </div>
326
+ <div v-if="hidden" class="text-error text-[0.7em] leading-[1em]">
327
+ ※非表示
328
+ </div>
329
+ </div>
330
+ </template>
331
+ <template #option="{ text, imgUrl, deleted, hidden }">
332
+ <div class="flex items-center">
333
+ <SelectImgIcon
334
+ v-if="props.image"
335
+ class="flex-none"
336
+ :img-url="imgUrl"
337
+ :class-img="props.classImg"
338
+ :class-img-tag="props.classImgTag"
339
+ />
340
+ <div class="flex-1 truncate">{{ tx(text) }}</div>
341
+ <div v-if="deleted" class="text-error text-[0.7em] leading-[1em]">
342
+ ※削除済み
343
+ </div>
344
+ <div v-if="hidden" class="text-error text-[0.7em] leading-[1em]">
345
+ ※非表示
346
+ </div>
347
+ </div>
348
+ </template>
349
+ <template v-if="includeHidden" #list-footer>
350
+ <li class="vs__dropdown-option v-select-hidden-toggle-switch">
351
+ <Btn
352
+ theme="accent1"
353
+ variant="outlined"
354
+ class="w-full"
355
+ size="xs"
356
+ @click="isShowHidden = !isShowHidden"
357
+ >
358
+ <span class="me-1">Hidden options</span>
359
+ <i
360
+ class="fas"
361
+ :class="[
362
+ !isShowHidden
363
+ ? 'fa-eye-slash text-error'
364
+ : 'fa-eye text-success',
365
+ ]"
366
+ ></i>
367
+ <i class="fas fa-caret-right mx-1"></i>
368
+ <i
369
+ class="fas"
370
+ :class="[
371
+ isShowHidden
372
+ ? 'fa-eye-slash text-error'
373
+ : 'fa-eye text-success',
374
+ ]"
375
+ ></i>
376
+ </Btn>
377
+ </li>
378
+ </template>
379
+ </v-select>
380
+ </InputFrame>
381
+ </template>
382
+
383
+ <style>
384
+ .v-select > div {
385
+ border-width: 0 !important;
386
+ }
387
+ .v-select .vs__selected {
388
+ margin-top: 0 !important;
389
+ margin-bottom: 0 !important;
390
+ }
391
+ .v-select .vs__selected,
392
+ .v-select .vs__selected-options {
393
+ max-width: 100%;
394
+ }
395
+ .v-select .vs__search {
396
+ margin: 0 !important;
397
+ }
398
+ .v-select .vs__clear {
399
+ padding: 3px;
400
+ border: solid 1px transparent;
401
+ transition: border-color 300ms;
402
+ border-radius: 3px;
403
+ }
404
+ .v-select .vs__clear:focus {
405
+ box-shadow: inset 0px 0px 1px 2px #0d8ee4;
406
+ }
407
+ .v-select .vs__dropdown-toggle {
408
+ background-color: transparent;
409
+ }
410
+ .v-select.size-s .vs__dropdown-toggle {
411
+ padding-bottom: 0 !important;
412
+ height: 24px !important;
413
+ }
414
+ .v-select.size-s .vs__spinner {
415
+ width: 3.5em;
416
+ height: 3.5em;
417
+ }
418
+ .v-select.size-m .vs__dropdown-toggle {
419
+ padding-bottom: 0 !important;
420
+ height: 26px !important;
421
+ }
422
+ .v-select.size-m .vs__spinner {
423
+ width: 4em;
424
+ height: 4em;
425
+ }
426
+ .v-select.disabled .vs__search,
427
+ .v-select.disabled .vs__dropdown-toggle,
428
+ .v-select.disabled .vs__open-indicator {
429
+ background-color: transparent !important;
430
+ }
431
+ .v-select.disabled .vs__clear {
432
+ display: none;
433
+ }
434
+
435
+ .v-select-hidden-toggle-switch {
436
+ pointer-events: all !important;
437
+ }
438
+ </style>