@bagelink/vue 0.0.232-beta.0 → 0.0.233-beta.0

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 (71) hide show
  1. package/dist/components/AccordionItem.vue.d.ts.map +1 -1
  2. package/dist/components/Card.vue.d.ts +2 -0
  3. package/dist/components/Card.vue.d.ts.map +1 -1
  4. package/dist/components/ModalBglForm.vue.d.ts.map +1 -1
  5. package/dist/components/TableSchema.vue.d.ts +3 -39
  6. package/dist/components/TableSchema.vue.d.ts.map +1 -1
  7. package/dist/components/form/BglField.vue.d.ts.map +1 -1
  8. package/dist/components/form/BglForm.vue.d.ts +4 -0
  9. package/dist/components/form/BglForm.vue.d.ts.map +1 -1
  10. package/dist/components/form/inputs/CheckInput.vue.d.ts +9 -22
  11. package/dist/components/form/inputs/CheckInput.vue.d.ts.map +1 -1
  12. package/dist/components/form/inputs/Checkbox.vue.d.ts +4 -10
  13. package/dist/components/form/inputs/Checkbox.vue.d.ts.map +1 -1
  14. package/dist/components/form/inputs/ColorPicker.vue.d.ts +6 -2
  15. package/dist/components/form/inputs/ColorPicker.vue.d.ts.map +1 -1
  16. package/dist/components/form/inputs/DateInput.vue.d.ts +44 -35
  17. package/dist/components/form/inputs/DateInput.vue.d.ts.map +1 -1
  18. package/dist/components/form/inputs/FileUpload.vue.d.ts.map +1 -1
  19. package/dist/components/form/inputs/SelectInput.vue.d.ts.map +1 -1
  20. package/dist/components/form/inputs/index.d.ts +0 -10
  21. package/dist/components/form/inputs/index.d.ts.map +1 -1
  22. package/dist/components/formkit/index.d.ts +1 -13
  23. package/dist/components/formkit/index.d.ts.map +1 -1
  24. package/dist/components/index.d.ts +0 -1
  25. package/dist/components/index.d.ts.map +1 -1
  26. package/dist/index.cjs +1101 -3976
  27. package/dist/index.mjs +1102 -3977
  28. package/dist/plugins/bagel.d.ts +1 -1
  29. package/dist/plugins/bagel.d.ts.map +1 -1
  30. package/dist/plugins/modal.d.ts +1 -2
  31. package/dist/plugins/modal.d.ts.map +1 -1
  32. package/dist/style.css +266 -1014
  33. package/dist/types/BagelForm.d.ts +2 -3
  34. package/dist/types/BagelForm.d.ts.map +1 -1
  35. package/package.json +1 -1
  36. package/src/components/AccordionItem.vue +25 -53
  37. package/src/components/Card.vue +2 -1
  38. package/src/components/ModalBglForm.vue +6 -22
  39. package/src/components/TableSchema.vue +1 -3
  40. package/src/components/form/BglField.vue +15 -3
  41. package/src/components/form/BglForm.vue +19 -18
  42. package/src/components/form/inputs/CheckInput.vue +17 -24
  43. package/src/components/form/inputs/Checkbox.vue +3 -24
  44. package/src/components/form/inputs/ColorPicker.vue +8 -19
  45. package/src/components/form/inputs/DateInput.vue +21 -2
  46. package/src/components/form/inputs/FileUpload.vue +11 -23
  47. package/src/components/form/inputs/SelectInput.vue +9 -11
  48. package/src/components/form/inputs/index.ts +0 -10
  49. package/src/components/formkit/index.ts +19 -27
  50. package/src/components/index.ts +0 -1
  51. package/src/plugins/bagel.ts +6 -6
  52. package/src/plugins/modal.ts +1 -2
  53. package/src/styles/modal.css +59 -57
  54. package/src/styles/theme.css +0 -18
  55. package/src/types/BagelForm.ts +7 -11
  56. package/src/components/ContactArray.vue +0 -113
  57. package/src/components/Drop.vue +0 -150
  58. package/src/components/form/inputs/CurrencyInput.vue +0 -137
  59. package/src/components/form/inputs/DatetimeInput.vue +0 -49
  60. package/src/components/form/inputs/DurationInput.vue +0 -55
  61. package/src/components/form/inputs/FloatInput.vue +0 -53
  62. package/src/components/form/inputs/IntInput.vue +0 -52
  63. package/src/components/form/inputs/LinkField.vue +0 -300
  64. package/src/components/form/inputs/Password.vue +0 -90
  65. package/src/components/form/inputs/PasswordInput.vue +0 -85
  66. package/src/components/form/inputs/PlainText.vue +0 -63
  67. package/src/components/form/inputs/ReadOnlyInput.vue +0 -28
  68. package/src/components/form/inputs/SelectField.vue +0 -202
  69. package/src/components/formkit/AddressArray.vue +0 -250
  70. package/src/components/formkit/BankDetailsArray.vue +0 -274
  71. package/src/components/formkit/ContactArrayFormKit.vue +0 -203
@@ -1,137 +0,0 @@
1
- <template>
2
- <div
3
- class="bagel-input"
4
- :title="field.description"
5
- :class="{ small: small }"
6
- >
7
- <label v-if="field.label">
8
- {{ field.label }}
9
- </label>
10
- <div class="flex gap-3">
11
- <input
12
- :value="modelValue"
13
- type="number"
14
- @input="handleInput"
15
- :placeholder="placeholder"
16
- :class="{ 'no-edit': !editMode }"
17
- >
18
- <p class="currency">
19
- {{
20
- currencies
21
- .find((c) => c.symbol === field.currency)?.character || field.currency
22
- }}
23
- </p>
24
- </div>
25
- </div>
26
- </template>
27
-
28
- <script setup lang="ts">
29
- import { BagelField } from '@bagelink/vue';
30
-
31
- const emits = defineEmits(['update:modelValue']);
32
- withDefaults(
33
- defineProps<{
34
- field: BagelField;
35
- modelValue: any;
36
-
37
- placeholder?: string;
38
- editMode?: boolean;
39
- small?: boolean;
40
- }>(),
41
- {
42
- editMode: true,
43
- },
44
- );
45
- const handleInput = (e: Event) => {
46
- const el = e.target as HTMLInputElement;
47
- let value = parseFloat(el.value);
48
- if (Number.isNaN(value)) {
49
- value = 0;
50
- }
51
- emits('update:modelValue', value);
52
- };
53
-
54
- const currencies = [
55
- { name: 'United Arab Emirates Dirham', symbol: 'AED', character: 'د.إ' },
56
- { name: 'Afghan Afghani', symbol: 'AFN', character: '؋' },
57
- { name: 'Albanian Lek', symbol: 'ALL', character: 'L' },
58
- { name: 'Armenian Dram', symbol: 'AMD', character: '֏' },
59
- { name: 'Netherlands Antillean Guilder', symbol: 'ANG', character: 'ƒ' },
60
- { name: 'Angolan Kwanza', symbol: 'AOA', character: 'Kz' },
61
- { name: 'Argentine Peso', symbol: 'ARS', character: '$' },
62
- { name: 'Australian Dollar', symbol: 'AUD', character: '$' },
63
- { name: 'Aruban Florin', symbol: 'AWG', character: 'ƒ' },
64
- { name: 'Azerbaijani Manat', symbol: 'AZN', character: '₼' },
65
- {
66
- name: 'Bosnia-Herzegovina Convertible Mark',
67
- symbol: 'BAM',
68
- character: 'KM',
69
- },
70
- { name: 'Barbadian Dollar', symbol: 'BBD', character: '$' },
71
- { name: 'Bangladeshi Taka', symbol: 'BDT', character: '৳' },
72
- { name: 'Bulgarian Lev', symbol: 'BGN', character: 'лв' },
73
- { name: 'Bahraini Dinar', symbol: 'BHD', character: 'ب.د' },
74
- { name: 'Burundian Franc', symbol: 'BIF', character: 'FBu' },
75
- { name: 'Bermudan Dollar', symbol: 'BMD', character: '$' },
76
- { name: 'Brunei Dollar', symbol: 'BND', character: '$' },
77
- { name: 'Bolivian Boliviano', symbol: 'BOB', character: 'Bs.' },
78
- { name: 'Brazilian Real', symbol: 'BRL', character: 'R$' },
79
- { name: 'Bahamian Dollar', symbol: 'BSD', character: '$' },
80
- { name: 'Bitcoin', symbol: '₿', character: '₿' },
81
- { name: 'Bhutanese Ngultrum', symbol: 'BTN', character: 'Nu.' },
82
- { name: 'Botswanan Pula', symbol: 'BWP', character: 'P' },
83
- { name: 'Belarusian Ruble', symbol: 'BYN', character: 'Br' },
84
- { name: 'Belize Dollar', symbol: 'BZD', character: '$' },
85
- { name: 'Canadian Dollar', symbol: 'CAD', character: '$' },
86
- { name: 'Congolese Franc', symbol: 'CDF', character: 'FC' },
87
- { name: 'Swiss Franc', symbol: 'CHF', character: 'Fr' },
88
- { name: 'Chilean Peso', symbol: 'CLP', character: '$' },
89
- { name: 'Chinese Yuan', symbol: 'CNY', character: '¥' },
90
- { name: 'Colombian Peso', symbol: 'COP', character: '$' },
91
- { name: 'Costa Rican Colón', symbol: 'CRC', character: '₡' },
92
- { name: 'Cuban Convertible Peso', symbol: 'CUC', character: '$' },
93
- { name: 'Cuban Peso', symbol: 'CUP', character: '$' },
94
- { name: 'Cape Verdean Escudo', symbol: 'CVE', character: '$' },
95
- { name: 'Czech Republic Koruna', symbol: 'CZK', character: 'Kč' },
96
- { name: 'Djiboutian Franc', symbol: 'DJF', character: 'Fdj' },
97
- { name: 'Danish Krone', symbol: 'DKK', character: 'kr' },
98
- { name: 'Dominican Peso', symbol: 'DOP', character: '$' },
99
- { name: 'Algerian Dinar', symbol: 'DZD', character: 'د.ج' },
100
- { name: 'Egyptian Pound', symbol: 'EGP', character: '£' },
101
- { name: 'Eritrean Nakfa', symbol: 'ERN', character: 'Nfk' },
102
- { name: 'Ethiopian Birr', symbol: 'ETB', character: 'Br' },
103
- { name: 'Euro', symbol: 'EUR', character: '€' },
104
- { name: 'Fijian Dollar', symbol: 'FJD', character: '$' },
105
- { name: 'Falkland Islands Pound', symbol: 'FKP', character: '£' },
106
- { name: 'British Pound Sterling', symbol: 'GBP', character: '£' },
107
- { name: 'Georgian Lari', symbol: 'GEL', character: 'ლ' },
108
- { name: 'Guernsey Pound', symbol: 'GGP', character: '£' },
109
- { name: 'Ghanaian Cedi', symbol: 'GHS', character: '₵' },
110
- { name: 'Gibraltar Pound', symbol: 'GIP', character: '£' },
111
- { name: 'Gambian Dalasi', symbol: 'GMD', character: 'D' },
112
- { name: 'Guinean Franc', symbol: 'GNF', character: 'FG' },
113
- { name: 'Guatemalan Quetzal', symbol: 'GTQ', character: 'Q' },
114
- { name: 'Guyanaese Dollar', symbol: 'GYD', character: '$' },
115
- { name: 'Hong Kong Dollar', symbol: 'HKD', character: '$' },
116
- { name: 'Honduran Lempira', symbol: 'HNL', character: 'L' },
117
- { name: 'Croatian Kuna', symbol: 'HRK', character: 'kn' },
118
- { name: 'Haitian Gourde', symbol: 'HTG', character: 'G' },
119
- { name: 'Hungarian Forint', symbol: 'HUF', character: 'Ft' },
120
- { name: 'Indonesian Rupiah', symbol: 'IDR', character: 'Rp' },
121
- { name: 'Israeli New Shekel', symbol: 'ILS', character: '₪' },
122
- { name: 'Manx pound', symbol: 'IMP', character: '£' },
123
- { name: 'Indian Rupee', symbol: 'INR', character: '₹' },
124
- { name: 'Iraqi Dinar', symbol: 'IQD', character: 'ع.د' },
125
- { name: 'Iranian Rial', symbol: 'IRR', character: '﷼' },
126
- { name: 'Icelandic Króna', symbol: 'ISK', character: 'kr' },
127
- { name: 'Jersey Pound', symbol: 'JEP', character: '£' },
128
- ];
129
- </script>
130
-
131
- <style scoped>
132
- .currency {
133
- font-size: calc(var(--input-font-size) * 1.4);
134
- margin-inline-start: -50px;
135
- line-height: 0px;
136
- }
137
- </style>
@@ -1,49 +0,0 @@
1
- <template>
2
- <div
3
- class="bagel-input"
4
- :title="description"
5
- :class="{ small: small }"
6
- >
7
- <label v-if="label">
8
- <LangText :input="label" />
9
- </label>
10
- <!-- :placeholder="bagelApp.translate(placeholder, true)" -->
11
- <input
12
- :value="modelValue?.split('.')[0] || ''"
13
- type="datetime-local"
14
- @input="handleInput"
15
- :placeholder="placeholder"
16
- :class="{ 'no-edit': !editMode }"
17
- >
18
- </div>
19
- </template>
20
-
21
- <script setup lang="ts">
22
- import { onMounted } from 'vue';
23
-
24
- const emits = defineEmits(['update:modelValue']);
25
- // @ts-ignore TODO: remove this Nati
26
- const props = withDefaults(
27
- defineProps<{
28
- description?: string;
29
- label?: string;
30
- modelValue: any;
31
- placeholder?: string;
32
- editMode?: boolean;
33
- small?: boolean;
34
- }>(),
35
- {
36
- description: '',
37
- editMode: true,
38
- placeholder: '',
39
- label: '',
40
- },
41
- );
42
- const handleInput = (e: Event) => {
43
- const el = e.target as HTMLInputElement;
44
- emits('update:modelValue', el.value);
45
- };
46
- onMounted(() => { });
47
- </script>
48
-
49
- <style scoped></style>
@@ -1,55 +0,0 @@
1
- <template>
2
- <div
3
- class="bagel-input"
4
- :title="description"
5
- :class="{ small: small }"
6
- >
7
- <label v-if="label">
8
- <LangText :input="label" />
9
- </label>
10
- <!-- :title="formatDuration(modelValue)" -->
11
- <!-- :placeholder="bagelApp.translate(placeholder, true)" -->
12
- <input
13
- :value="modelValue"
14
- :title="modelValue"
15
- type="number"
16
- @input="handleInput"
17
- :placeholder="placeholder"
18
- :class="{ 'no-edit': !editMode }"
19
- >
20
- </div>
21
- </template>
22
-
23
- <script setup lang="ts">
24
- // TODO: remove this Nati ?
25
-
26
- const emits = defineEmits(['update:modelValue']);
27
-
28
- // const props =
29
- withDefaults(
30
- defineProps<{
31
- description?: string;
32
- label?: string;
33
- modelValue: any;
34
- placeholder?: string;
35
- editMode?: boolean;
36
- small?: boolean;
37
- }>(),
38
- {
39
- description: '',
40
- editMode: true,
41
- placeholder: '',
42
- label: '',
43
- },
44
- );
45
- const handleInput = (e: Event) => {
46
- const el = e.target as HTMLInputElement;
47
- let value = parseInt(el.value);
48
- if (isNaN(value)) {
49
- value = 0;
50
- }
51
- emits('update:modelValue', value);
52
- };
53
- </script>
54
-
55
- <style scoped></style>
@@ -1,53 +0,0 @@
1
- <template>
2
- <div
3
- class="bagel-input"
4
- :title="description"
5
- :class="{ small: small }"
6
- >
7
- <label v-if="label">
8
- <LangText :input="label" />
9
- </label>
10
- <input
11
- :value="modelValue"
12
- type="number"
13
- @input="handleInput"
14
- :class="{ 'no-edit': !editMode }"
15
- :placeholder="placeholder"
16
- >
17
- <!-- :placeholder="bagelApp.translate(placeholder, true)" -->
18
- </div>
19
- </template>
20
-
21
- <script setup lang="ts">
22
- // TODO: remove this Nati ?
23
-
24
- const emits = defineEmits(['update:modelValue']);
25
-
26
- // const props =
27
- withDefaults(
28
- defineProps<{
29
- description?: string;
30
- label?: string;
31
- modelValue: any;
32
- placeholder?: string;
33
- editMode?: boolean;
34
- small?: boolean;
35
- }>(),
36
- {
37
- description: '',
38
- editMode: true,
39
- placeholder: '',
40
- label: '',
41
- },
42
- );
43
- const handleInput = (e: Event) => {
44
- const el = e.target as HTMLInputElement;
45
- let value = parseFloat(el.value);
46
- if (isNaN(value)) {
47
- value = 0;
48
- }
49
- emits('update:modelValue', value);
50
- };
51
- </script>
52
-
53
- <style scoped></style>
@@ -1,52 +0,0 @@
1
- <template>
2
- <div
3
- class="bagel-input"
4
- :title="description"
5
- :class="{ small: small }"
6
- >
7
- <label v-if="label">
8
- <LangText :input="label" />
9
- </label>
10
- <input
11
- :value="modelValue"
12
- type="number"
13
- @input="handleInput"
14
- :class="{ 'no-edit': !editMode }"
15
- :placeholder="placeholder"
16
- >
17
- </div>
18
- </template>
19
-
20
- <script setup lang="ts">
21
- // TODO: remove this Nati ?
22
-
23
- const emits = defineEmits(['update:modelValue']);
24
-
25
- // const props =
26
- withDefaults(
27
- defineProps<{
28
- description?: string;
29
- label?: string;
30
- modelValue: any;
31
- placeholder?: string;
32
- editMode?: boolean;
33
- small?: boolean;
34
- }>(),
35
- {
36
- description: '',
37
- editMode: true,
38
- placeholder: '',
39
- label: '',
40
- },
41
- );
42
- const handleInput = (e: Event) => {
43
- const el = e.target as HTMLInputElement;
44
- let value = parseInt(el.value);
45
- if (isNaN(value)) {
46
- value = 0;
47
- }
48
- emits('update:modelValue', value);
49
- };
50
- </script>
51
-
52
- <style scoped></style>
@@ -1,300 +0,0 @@
1
- <template>
2
- <div
3
- class="bagel-input"
4
- :title="description"
5
- :class="{ small: small }"
6
- >
7
- <label v-if="label">
8
- <LangText :input="label" />
9
- </label>
10
-
11
- <input
12
- @keydown.enter="handleEnter"
13
- autocomplete="off"
14
- @click="openList"
15
- name="link-input"
16
- v-model="selectedItem"
17
- @focus="initList"
18
- @input="handleInput"
19
- :disabled="!editMode"
20
- >
21
-
22
- <div
23
- class="custom-select"
24
- ref="selectEl"
25
- name="link-input"
26
- :class="{ 'open-select': showList && linkOptions.length > 0 }"
27
- >
28
- <Teleport to="#app">
29
- <div
30
- ref="dropdown"
31
- :class="{ 'open-select': showList && linkOptions.length > 0 }"
32
- class="custom-select-drop"
33
- >
34
- <div
35
- v-for="option in linkOptions"
36
- :key="formatString(option.value, 'pascal')"
37
- @click.stop="handleSelect(option)"
38
- >
39
- <div
40
- class="option-label"
41
- v-if="option.label"
42
- >
43
- {{ option.label }}<span>ID: {{ option.value }}</span>
44
- </div>
45
- <div
46
- class="option-label"
47
- v-else
48
- >
49
- ID: {{ option.value }}
50
- </div>
51
- <div class="option-description">
52
- {{ option.description }}
53
- </div>
54
- </div>
55
- </div>
56
- </Teleport>
57
- </div>
58
- </div>
59
- </template>
60
-
61
- <script lang="ts" setup>
62
- import { onMounted, ref } from 'vue';
63
- import { formatString } from '@bagelink/vue';
64
-
65
- const props = withDefaults(
66
- defineProps<{
67
- description?: string;
68
- label?: string;
69
- modelValue: any;
70
- useId?: false;
71
- bagelApp?: any;
72
- entity: string;
73
- editMode: boolean;
74
- filters?: any;
75
- small?: boolean;
76
- }>(),
77
- {
78
- description: '',
79
- label: '',
80
- useId: false,
81
- filters: {},
82
- bagelApp: null,
83
- },
84
- );
85
- const showList = ref(false);
86
-
87
- const left = ref('0');
88
- const top = ref(0);
89
- const width = ref('0');
90
- const selectEl = ref<HTMLElement>();
91
- const dropdown = ref<HTMLElement>();
92
- const linkOptions = ref<any>([]);
93
- const item = ref<ListItem>();
94
- const emits = defineEmits(['update:modelValue', 'selected']);
95
- const selectedItem = ref<any>();
96
- let bagel: any;
97
-
98
- function handleSelect(item: ListItem) {
99
- showList.value = false;
100
- selectedItem.value = item;
101
- if (props.useId || props.entity === 'Entity') {
102
- selectedItem.value = item.value;
103
- } else {
104
- selectedItem.value = item.label || item.value;
105
- }
106
-
107
- emits('update:modelValue', item.value);
108
- emits('selected', item.value);
109
- }
110
-
111
- async function getLinkOptions(inputString: string) {
112
- linkOptions.value = await bagel.entity.getLinkedFieldList({
113
- entity: props.entity,
114
- txt: inputString,
115
- reference_entity: '',
116
- filters: props.filters,
117
- });
118
- }
119
-
120
- function hideDrop(e: WheelEvent) {
121
- const dropRect = dropdown.value?.getBoundingClientRect?.() ||
122
- ({
123
- left: 0,
124
- right: 0,
125
- } as DOMRect);
126
- if (e.clientX < dropRect.left || e.clientX > dropRect.right) {
127
- showList.value = false;
128
- }
129
- }
130
-
131
- function openList() {
132
- setPosition();
133
- showList.value = true;
134
- }
135
-
136
- // @ts-ignore TODO: remove this Nati
137
- function setPosition(e?: WheelEvent) {
138
- const elInfo = selectEl.value?.getBoundingClientRect?.() ||
139
- ({
140
- top: 0,
141
- left: 0,
142
- bottom: 0,
143
- width: 0,
144
- } as DOMRect);
145
-
146
- top.value = elInfo.bottom;
147
-
148
- left.value = `${elInfo.left}px`;
149
- width.value = `${elInfo.width}px`;
150
- const dropRect = dropdown.value?.getBoundingClientRect?.() ||
151
- ({
152
- height: 0,
153
- } as DOMRect);
154
-
155
- if (window.innerHeight - elInfo.bottom < dropRect.height) {
156
- top.value = elInfo.top - dropRect.height;
157
- }
158
- }
159
-
160
- interface ListItem {
161
- value: string;
162
- label?: string;
163
- description?: string;
164
- }
165
-
166
- // @ts-ignore TODO: remove this Nati
167
- const initialized = ref(false);
168
-
169
- async function initList(e: Event) {
170
- await getLinkOptions(getElValue(e));
171
- showList.value = true;
172
- }
173
-
174
- function getElValue(e: Event) {
175
- const el = e.target as HTMLInputElement;
176
- return el.value.trim();
177
- }
178
-
179
- function handleEnter(e: Event) {
180
- emits('update:modelValue', getElValue(e));
181
- emits('selected');
182
- showList.value = false;
183
- }
184
-
185
- function handleClick(e: any) {
186
- const { target } = e;
187
- if (target.name != 'link-input' && showList.value == true) {
188
- showList.value = false;
189
- emits('update:modelValue', item.value);
190
- emits('selected');
191
- }
192
- // showList.value = false
193
- }
194
-
195
- const handleInput = async (e: Event) => {
196
- showList.value = true;
197
- const el = e.target as HTMLInputElement;
198
- emits('update:modelValue', el.value);
199
- await getLinkOptions(el.value);
200
- };
201
- onMounted(() => {
202
- bagel = props.bagelApp;
203
- setPosition();
204
- window.addEventListener('wheel', hideDrop);
205
- selectedItem.value = props.modelValue;
206
- document.addEventListener('click', handleClick);
207
- });
208
- </script>
209
-
210
- <style scoped>
211
- .custom-select {
212
- position: relative;
213
- font-size: var(--input-font-size);
214
- }
215
-
216
- .custom-select .input {
217
- width: 100%;
218
- cursor: pointer;
219
- background: var(--input-bg);
220
- min-height: var(--input-height);
221
- border: none;
222
- border-radius: var(--input-border-radius);
223
- color: var(--input-color);
224
- position: relative;
225
- display: flex;
226
- flex-direction: column;
227
- text-align: start;
228
- margin-inline-end: 20px;
229
- justify-content: center;
230
- }
231
-
232
- .custom-select .input:after {
233
- content: 'keyboard_arrow_down';
234
- font-family: 'Material Symbols Outlined', serif;
235
- position: absolute;
236
- top: calc(var(--input-height) / 2 - 10px);
237
- font-size: calc(var(--input-font-size) * 1.5);
238
- right: calc(var(--input-height) / 4);
239
- height: 100%;
240
- }
241
-
242
- .option-label {
243
- font-size: var(--input-font-size);
244
- /*color: var(--input-color);*/
245
- }
246
-
247
- .option-description {
248
- font-size: var(--input-font-size);
249
- color: var(--input-color);
250
- }
251
-
252
- [dir='rtl'] .custom-select .input:after {
253
- right: unset;
254
- left: calc(var(--input-font-size) / 2);
255
- }
256
-
257
- /*[dir='rtl'] .custom-select-drop {*/
258
- /* right: v-bind(left);*/
259
- /* left: unset;*/
260
- /*}*/
261
- [dir='rtl'] .custom-select-drop {
262
- inset-inline-end: v-bind(left);
263
- inset-inline-start: unset;
264
- }
265
-
266
- .custom-select-drop {
267
- position: fixed;
268
- cursor: pointer;
269
- inset-inline-start: v-bind(left);
270
- top: v-bind('`${top}px`');
271
- box-sizing: border-box;
272
- width: v-bind(width);
273
- background: var(--bgl-white);
274
- box-shadow: 0 0 10px 0 var(--bgl-shadow);
275
- border-radius: 10px;
276
- z-index: 10000;
277
- overflow-y: auto;
278
- opacity: 0;
279
- pointer-events: none;
280
- max-height: 0;
281
- }
282
-
283
- .open-select.custom-select-drop {
284
- opacity: 1;
285
- max-height: 150px;
286
- pointer-events: all;
287
- }
288
-
289
- .custom-select-drop>* {
290
- padding: 0.5rem 0.75rem;
291
- }
292
-
293
- .custom-select-drop>*:hover {
294
- background: var(--bgl-blue-light);
295
- }
296
-
297
- .custom-select-drop>*:active {
298
- filter: var(--bgl-hover-filter);
299
- }
300
- </style>