@bagelink/vue 1.14.10 → 1.14.15
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/components/Alert.vue.d.ts.map +1 -1
- package/dist/components/Avatar.vue.d.ts.map +1 -1
- package/dist/components/Card.vue.d.ts.map +1 -1
- package/dist/components/Image.vue.d.ts.map +1 -1
- package/dist/components/ImportData.vue.d.ts.map +1 -1
- package/dist/components/Pill.vue.d.ts.map +1 -1
- package/dist/components/Swiper.vue.d.ts.map +1 -1
- package/dist/components/Toast.vue.d.ts.map +1 -1
- package/dist/components/calendar/CalendarPopover.vue.d.ts.map +1 -1
- package/dist/components/dataTable/DataTable.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/Checkbox.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/RichText/index.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/RichText/utils/media.d.ts.map +1 -1
- package/dist/components/form/inputs/SelectInput.vue.d.ts.map +1 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/layout/Skeleton.vue.d.ts.map +1 -1
- package/dist/dialog/Dialog.vue.d.ts.map +1 -1
- package/dist/dialog/DialogConfirm.vue.d.ts.map +1 -1
- package/dist/index.cjs +148 -145
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +35417 -35475
- package/dist/plugins/bagel.d.ts.map +1 -1
- package/dist/style.css +1 -1
- package/dist/types/TableSchema.d.ts.map +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/calendar/dateUtils.d.ts.map +1 -1
- package/dist/utils/date.d.ts +116 -0
- package/dist/utils/date.d.ts.map +1 -0
- package/dist/utils/fetch.d.ts +29 -0
- package/dist/utils/fetch.d.ts.map +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/string.d.ts +7 -0
- package/dist/utils/string.d.ts.map +1 -0
- package/package.json +1 -5
- package/src/components/AccordionItem.vue +5 -5
- package/src/components/Alert.vue +3 -2
- package/src/components/Avatar.vue +2 -1
- package/src/components/BglVideo.vue +4 -4
- package/src/components/Btn.vue +39 -39
- package/src/components/Card.vue +7 -6
- package/src/components/Dropdown.vue +2 -2
- package/src/components/FieldSetVue.vue +2 -2
- package/src/components/FilterQuery.vue +2 -2
- package/src/components/Image.vue +2 -1
- package/src/components/ImportData.vue +12 -12
- package/src/components/JSONSchema.vue +2 -2
- package/src/components/JsonBuilder.vue +2 -2
- package/src/components/ListItem.vue +1 -1
- package/src/components/MapEmbed/Index.vue +8 -8
- package/src/components/Pill.vue +17 -16
- package/src/components/Spreadsheet/Index.vue +3 -3
- package/src/components/Spreadsheet/SpreadsheetTable.vue +10 -10
- package/src/components/Toast.vue +34 -28
- package/src/components/calendar/CalendarPopover.vue +1 -1
- package/src/components/calendar/Index.vue +1 -1
- package/src/components/calendar/views/AgendaView.vue +2 -2
- package/src/components/calendar/views/DayView.vue +1 -1
- package/src/components/calendar/views/MonthView.vue +5 -5
- package/src/components/dataTable/DataTable.vue +68 -10
- package/src/components/form/FieldArray.vue +5 -5
- package/src/components/form/inputs/ArrayInput.vue +1 -1
- package/src/components/form/inputs/CheckInput.vue +6 -6
- package/src/components/form/inputs/Checkbox.vue +5 -4
- package/src/components/form/inputs/CodeEditor/Index.vue +1 -1
- package/src/components/form/inputs/ColorInput.vue +5 -5
- package/src/components/form/inputs/DatePicker.vue +3 -3
- package/src/components/form/inputs/EmailInput.vue +14 -14
- package/src/components/form/inputs/NumberInput.vue +10 -10
- package/src/components/form/inputs/OTP.vue +2 -2
- package/src/components/form/inputs/PasswordInput.vue +3 -3
- package/src/components/form/inputs/RadioGroup.vue +1 -1
- package/src/components/form/inputs/RichText/editor.css +4 -4
- package/src/components/form/inputs/RichText/index.vue +39 -39
- package/src/components/form/inputs/RichText/utils/media.ts +1 -92
- package/src/components/form/inputs/RichText/utils/table.ts +4 -4
- package/src/components/form/inputs/SelectBtn.vue +1 -1
- package/src/components/form/inputs/SelectInput.vue +13 -13
- package/src/components/form/inputs/SignaturePad.vue +6 -6
- package/src/components/form/inputs/TableField.vue +7 -7
- package/src/components/form/inputs/TelInput.vue +11 -11
- package/src/components/form/inputs/TextInput.vue +10 -10
- package/src/components/form/inputs/ToggleInput.vue +11 -11
- package/src/components/form/inputs/Upload/upload.css +14 -14
- package/src/components/index.ts +0 -3
- package/src/components/layout/AppSidebar.vue +3 -3
- package/src/components/layout/BottomMenu.vue +1 -1
- package/src/components/layout/Skeleton.vue +5 -4
- package/src/components/layout/TabsNav.vue +18 -18
- package/src/index.ts +0 -1
- package/src/plugins/bagel.ts +0 -15
- package/src/styles/app-layout.css +231 -0
- package/src/styles/appearance.css +179 -21
- package/src/styles/bagel.css +103 -97
- package/src/styles/buttons.css +8 -8
- package/src/styles/colors.css +0 -103
- package/src/styles/dark.css +25 -26
- package/src/styles/input-variants.css +11 -11
- package/src/styles/inputs.css +49 -61
- package/src/styles/layout.css +445 -1258
- package/src/styles/loginCard.css +1 -1
- package/src/styles/mobilLayout.css +153 -28
- package/src/styles/text.css +500 -1508
- package/src/styles/theme.css +199 -435
- package/src/styles/transitions.css +4 -4
- package/src/types/TableSchema.ts +1 -0
- package/src/types/index.ts +0 -5
- package/src/utils/calendar/dateUtils.ts +2 -3
- package/src/utils/date.ts +482 -0
- package/src/utils/fetch.ts +128 -0
- package/src/utils/index.ts +35 -0
- package/src/utils/string.ts +56 -0
- package/bin/generateFormSchema.ts +0 -1035
- package/bin/utils.ts +0 -223
- package/src/components/Modal.vue +0 -184
- package/src/components/ModalConfirm.vue +0 -42
- package/src/components/ModalForm.vue +0 -102
- package/src/plugins/modalTypes.ts +0 -61
- package/src/plugins/useModal.ts +0 -225
- package/src/styles/modal.css +0 -120
- package/src/styles/pillColors.css +0 -0
|
@@ -2,13 +2,15 @@
|
|
|
2
2
|
import type { BaseBagelField, Field, Path } from '@bagelink/vue'
|
|
3
3
|
import type { SetupContext } from 'vue'
|
|
4
4
|
import type { TableSchemaProps } from '../../types/TableSchema'
|
|
5
|
+
import type { DraggableEvent } from '../draggable/useDraggable'
|
|
5
6
|
import {
|
|
6
7
|
Icon,
|
|
7
8
|
keyToLabel,
|
|
8
9
|
Loading
|
|
9
10
|
} from '@bagelink/vue'
|
|
10
|
-
import { useSlots, watch, computed, toValue } from 'vue'
|
|
11
|
+
import { useSlots, watch, computed, toValue, ref, nextTick, onMounted } from 'vue'
|
|
11
12
|
import { useSchemaField } from '../../composables/useSchemaField'
|
|
13
|
+
import { useDraggable } from '../draggable/useDraggable'
|
|
12
14
|
import { useTableData } from './useTableData'
|
|
13
15
|
import { useTableSelection } from './useTableSelection'
|
|
14
16
|
import { useTableVirtualization } from './useTableVirtualization'
|
|
@@ -21,6 +23,7 @@ const props = defineProps<TableSchemaProps<T>>()
|
|
|
21
23
|
const emit = defineEmits<{
|
|
22
24
|
orderBy: [EmitOrderT]
|
|
23
25
|
select: [T]
|
|
26
|
+
reorder: [{ oldIndex: number, newIndex: number, item: T }]
|
|
24
27
|
lastItemVisible: []
|
|
25
28
|
}>()
|
|
26
29
|
|
|
@@ -78,6 +81,38 @@ const {
|
|
|
78
81
|
}
|
|
79
82
|
})
|
|
80
83
|
|
|
84
|
+
const isSortable = computed(() => !!props.sortable)
|
|
85
|
+
const dragHandle = computed(() => {
|
|
86
|
+
if (typeof props.sortable === 'object' && props.sortable?.handle) return props.sortable.handle
|
|
87
|
+
return '.drag-handle-col'
|
|
88
|
+
})
|
|
89
|
+
|
|
90
|
+
// Drag-to-reorder
|
|
91
|
+
const tbodyRef = ref<HTMLTableSectionElement>()
|
|
92
|
+
|
|
93
|
+
const { initDraggableContainer } = useDraggable({
|
|
94
|
+
handle: dragHandle.value,
|
|
95
|
+
mode: 'line',
|
|
96
|
+
items: props.data,
|
|
97
|
+
onEnd: (event: DraggableEvent) => {
|
|
98
|
+
if (event.oldIndex === event.newIndex) return
|
|
99
|
+
const item = computedData.value[event.oldIndex]
|
|
100
|
+
const cleanItem = cleanTransformedData(item)
|
|
101
|
+
emit('reorder', { oldIndex: event.oldIndex, newIndex: event.newIndex, item: cleanItem })
|
|
102
|
+
}
|
|
103
|
+
})
|
|
104
|
+
|
|
105
|
+
function reinitDrag() {
|
|
106
|
+
if (!isSortable.value || !tbodyRef.value) return
|
|
107
|
+
nextTick(() => {
|
|
108
|
+
if (tbodyRef.value) initDraggableContainer(tbodyRef.value)
|
|
109
|
+
})
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
watch(() => props.data, reinitDrag, { deep: true })
|
|
113
|
+
watch(isSortable, (val) => { if (val) nextTick(reinitDrag) })
|
|
114
|
+
onMounted(reinitDrag)
|
|
115
|
+
|
|
81
116
|
function renderFieldForRow(field: Field<T>, row: T) {
|
|
82
117
|
const { renderField } = useSchemaField<T>({
|
|
83
118
|
mode: 'table',
|
|
@@ -119,29 +154,33 @@ const showLoading = computed(() => loading.value)
|
|
|
119
154
|
<div v-bind="wrapperProps" :class="{ 'pointer-events-none': showLoading }">
|
|
120
155
|
<table class="infinite-wrapper" :class="{ selecting: computedSelectedItems.length }">
|
|
121
156
|
<thead class="row first-row">
|
|
122
|
-
<th v-if="
|
|
157
|
+
<th v-if="isSortable" class="col-drag" />
|
|
158
|
+
<th v-if="isSelectable && !isSortable">
|
|
123
159
|
<input ref="allSelectorEl" type="checkbox" @click.stop @change="(e) => toggleSelectAll(e)">
|
|
124
160
|
</th>
|
|
125
161
|
<th
|
|
126
162
|
v-for="field in computedSchema" :key="field.id" class="col"
|
|
127
|
-
@click="toggleSort(field?.id || '')"
|
|
163
|
+
@click="!isSortable && toggleSort(field?.id || '')"
|
|
128
164
|
>
|
|
129
165
|
<div class="flex">
|
|
130
166
|
{{ field.label || field.attrs?.label || keyToLabel(field?.id) }}
|
|
131
|
-
<div class="list-arrows" :class="{ sorted: sortField === field?.id }">
|
|
167
|
+
<div v-if="!isSortable" class="list-arrows" :class="{ sorted: sortField === field?.id }">
|
|
132
168
|
<Icon :class="{ desc: sortDirection === 'DESC' }" icon="keyboard_arrow_up" />
|
|
133
169
|
</div>
|
|
134
170
|
</div>
|
|
135
171
|
</th>
|
|
136
172
|
</thead>
|
|
137
|
-
<tbody>
|
|
173
|
+
<tbody ref="tbodyRef">
|
|
138
174
|
<tr
|
|
139
175
|
v-for="{ data: row } in list" :key="row?.id || `row-${Math.random()}`"
|
|
140
176
|
class="row row-item position-relative"
|
|
141
177
|
:class="{ selected: row?.id && computedSelectedItems.includes(row.id) }"
|
|
142
178
|
@click="(event) => toggleSelectItem(row, event)"
|
|
143
179
|
>
|
|
144
|
-
<td v-if="
|
|
180
|
+
<td v-if="isSortable" class="col-drag">
|
|
181
|
+
<Icon icon="drag_indicator" :size="1.2" class="drag-handle-col grab" />
|
|
182
|
+
</td>
|
|
183
|
+
<td v-if="isSelectable && !isSortable">
|
|
145
184
|
<div @click.stop>
|
|
146
185
|
<input v-model="selectedItems" type="checkbox" :value="row?.id || ''">
|
|
147
186
|
</div>
|
|
@@ -164,6 +203,25 @@ const showLoading = computed(() => loading.value)
|
|
|
164
203
|
</template>
|
|
165
204
|
|
|
166
205
|
<style scoped>
|
|
206
|
+
.col-drag {
|
|
207
|
+
width: 2.5rem;
|
|
208
|
+
padding: 0 0.25rem;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
.col-drag .bgl_icon-font {
|
|
212
|
+
color: var(--bgl-black-tint);
|
|
213
|
+
opacity: 0.5;
|
|
214
|
+
transition: opacity 0.15s;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
.row-item:hover .col-drag .bgl_icon-font {
|
|
218
|
+
opacity: 0.8;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
.grab {
|
|
222
|
+
cursor: grab;
|
|
223
|
+
}
|
|
224
|
+
|
|
167
225
|
.table-list-wrap {
|
|
168
226
|
min-height: 150px;
|
|
169
227
|
}
|
|
@@ -238,7 +296,7 @@ th {
|
|
|
238
296
|
}
|
|
239
297
|
|
|
240
298
|
.row {
|
|
241
|
-
border-bottom: 1px solid var(--border-color);
|
|
299
|
+
border-bottom: 1px solid var(--bgl-border-color);
|
|
242
300
|
cursor: pointer;
|
|
243
301
|
}
|
|
244
302
|
|
|
@@ -254,7 +312,7 @@ th {
|
|
|
254
312
|
|
|
255
313
|
.row.first-row::after {
|
|
256
314
|
content: '';
|
|
257
|
-
border-bottom: 1px solid var(--border-color);
|
|
315
|
+
border-bottom: 1px solid var(--bgl-border-color);
|
|
258
316
|
position: absolute;
|
|
259
317
|
left: 0;
|
|
260
318
|
right: 0;
|
|
@@ -382,7 +440,7 @@ th input[type='checkbox'] {
|
|
|
382
440
|
|
|
383
441
|
th::after {
|
|
384
442
|
content: '';
|
|
385
|
-
border-bottom: 1px solid var(--border-color);
|
|
443
|
+
border-bottom: 1px solid var(--bgl-border-color);
|
|
386
444
|
position: absolute;
|
|
387
445
|
left: 0;
|
|
388
446
|
right: 0;
|
|
@@ -390,7 +448,7 @@ th::after {
|
|
|
390
448
|
}
|
|
391
449
|
|
|
392
450
|
tr {
|
|
393
|
-
border-bottom: 1px solid var(--border-color);
|
|
451
|
+
border-bottom: 1px solid var(--bgl-border-color);
|
|
394
452
|
cursor: pointer;
|
|
395
453
|
align-items: center;
|
|
396
454
|
}
|
|
@@ -307,7 +307,7 @@ const showMinimizeButton = computed(() => {
|
|
|
307
307
|
<div
|
|
308
308
|
v-for="(item, i) in internalData" :key="i" outline thin
|
|
309
309
|
class="mb-05 itemBox transition radius-05 overflow-hidden txt12 border"
|
|
310
|
-
style="--input-font-size: 12px" :class="{ minimized: minimizedItems[i] }"
|
|
310
|
+
style="--bgl-input-font-size: 12px" :class="{ minimized: minimizedItems[i] }"
|
|
311
311
|
>
|
|
312
312
|
<div>
|
|
313
313
|
<!-- Minimized View -->
|
|
@@ -366,13 +366,13 @@ const showMinimizeButton = computed(() => {
|
|
|
366
366
|
|
|
367
367
|
.itemBox {
|
|
368
368
|
background: var(--btn-bg);
|
|
369
|
-
--label-font-size: 0.6rem;
|
|
370
|
-
--input-height: 30px;
|
|
371
|
-
--input-font-size: 7px;
|
|
369
|
+
--bgl-label-font-size: 0.6rem;
|
|
370
|
+
--bgl-input-height: 30px;
|
|
371
|
+
--bgl-input-font-size: 7px;
|
|
372
372
|
}
|
|
373
373
|
|
|
374
374
|
.bginputbg {
|
|
375
|
-
background: var(--input-bg);
|
|
375
|
+
background: var(--bgl-input-bg);
|
|
376
376
|
}
|
|
377
377
|
|
|
378
378
|
.pt-065 {
|
|
@@ -58,8 +58,8 @@ onMounted(() => {
|
|
|
58
58
|
|
|
59
59
|
.bgl-checkbox input[type='checkbox'] {
|
|
60
60
|
accent-color: var(--bgl-input-label-active-color, var(--bgl-accent-color));
|
|
61
|
-
height: calc(var(--input-height) / 2.75);
|
|
62
|
-
width: calc(var(--input-height) / 2.75);
|
|
61
|
+
height: calc(var(--bgl-input-height) / 2.75);
|
|
62
|
+
width: calc(var(--bgl-input-height) / 2.75);
|
|
63
63
|
min-width: 0;
|
|
64
64
|
display: flex;
|
|
65
65
|
justify-content: center;
|
|
@@ -69,8 +69,8 @@ onMounted(() => {
|
|
|
69
69
|
|
|
70
70
|
.bgl-checkbox input[type='checkbox']::before {
|
|
71
71
|
content: '';
|
|
72
|
-
height: calc(var(--input-height) / 2.75);
|
|
73
|
-
width: calc(var(--input-height) / 2.75);
|
|
72
|
+
height: calc(var(--bgl-input-height) / 2.75);
|
|
73
|
+
width: calc(var(--bgl-input-height) / 2.75);
|
|
74
74
|
background: var(--bgl-input-label-active-color, var(--bgl-primary));
|
|
75
75
|
border-radius: 100%;
|
|
76
76
|
opacity: 0;
|
|
@@ -86,7 +86,7 @@ onMounted(() => {
|
|
|
86
86
|
.bgl-checkbox label {
|
|
87
87
|
cursor: pointer;
|
|
88
88
|
user-select: none;
|
|
89
|
-
font-size: var(--input-font-size);
|
|
89
|
+
font-size: var(--bgl-input-font-size);
|
|
90
90
|
transition: var(--bgl-transition-400);
|
|
91
91
|
}
|
|
92
92
|
|
|
@@ -99,7 +99,7 @@ onMounted(() => {
|
|
|
99
99
|
}
|
|
100
100
|
|
|
101
101
|
.bagel-input:focus-within.bgl-checkbox:not(:checked) label {
|
|
102
|
-
color: var(--label-color) !important;
|
|
102
|
+
color: var(--bgl-label-color) !important;
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
.bgl-checkbox input:disabled+label,
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
+
defineOptions({ name: 'BglCheckbox' })
|
|
2
3
|
const val = defineModel<boolean>('modelValue', { default: false })
|
|
3
4
|
</script>
|
|
4
5
|
|
|
@@ -13,8 +14,8 @@ const val = defineModel<boolean>('modelValue', { default: false })
|
|
|
13
14
|
.primary-checkbox input {
|
|
14
15
|
appearance: none;
|
|
15
16
|
accent-color: var(--bgl-accent-color);
|
|
16
|
-
height: calc(var(--input-height) / 1.75);
|
|
17
|
-
width: calc(var(--input-height) / 1.75);
|
|
17
|
+
height: calc(var(--bgl-input-height) / 1.75);
|
|
18
|
+
width: calc(var(--bgl-input-height) / 1.75);
|
|
18
19
|
min-width: 0;
|
|
19
20
|
display: flex;
|
|
20
21
|
justify-content: center;
|
|
@@ -26,8 +27,8 @@ const val = defineModel<boolean>('modelValue', { default: false })
|
|
|
26
27
|
}
|
|
27
28
|
|
|
28
29
|
.primary-checkbox {
|
|
29
|
-
height:var(--input-height);
|
|
30
|
-
width:var(--input-height);
|
|
30
|
+
height:var(--bgl-input-height);
|
|
31
|
+
width:var(--bgl-input-height);
|
|
31
32
|
display: flex;
|
|
32
33
|
justify-content: center;
|
|
33
34
|
align-items: center;
|
|
@@ -180,7 +180,7 @@ watch(() => props.modelValue, () => {
|
|
|
180
180
|
}
|
|
181
181
|
|
|
182
182
|
.code-editor-grandpa:focus-within {
|
|
183
|
-
outline: solid 1px var(--border-color, #4f575f);
|
|
183
|
+
outline: solid 1px var(--bgl-border-color, #4f575f);
|
|
184
184
|
box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.13);
|
|
185
185
|
}
|
|
186
186
|
|
|
@@ -70,9 +70,9 @@ watch(
|
|
|
70
70
|
|
|
71
71
|
<style>
|
|
72
72
|
.colorInputPick {
|
|
73
|
-
--input-font-size: 12px;
|
|
73
|
+
--bgl-input-font-size: 12px;
|
|
74
74
|
background: transparent !important;
|
|
75
|
-
height: var(--input-height) !important;
|
|
75
|
+
height: var(--bgl-input-height) !important;
|
|
76
76
|
min-width: 50px !important;
|
|
77
77
|
outline: none !important;
|
|
78
78
|
}
|
|
@@ -90,7 +90,7 @@ watch(
|
|
|
90
90
|
/* ── frame: transparent bg, outline that highlights on focus ── */
|
|
91
91
|
.bagel-input.frame .colorInputPickWrap {
|
|
92
92
|
background: transparent !important;
|
|
93
|
-
outline: 1.5px solid var(--border-color);
|
|
93
|
+
outline: 1.5px solid var(--bgl-border-color);
|
|
94
94
|
outline-offset: -1px;
|
|
95
95
|
transition: outline-color 0.2s ease, box-shadow 0.2s ease;
|
|
96
96
|
}
|
|
@@ -101,7 +101,7 @@ watch(
|
|
|
101
101
|
|
|
102
102
|
/* ── bgl-outline: border only ── */
|
|
103
103
|
.bagel-input.bgl-outline .colorInputPickWrap {
|
|
104
|
-
outline: 1.5px solid var(--border-color);
|
|
104
|
+
outline: 1.5px solid var(--bgl-border-color);
|
|
105
105
|
outline-offset: -1px;
|
|
106
106
|
}
|
|
107
107
|
|
|
@@ -117,7 +117,7 @@ watch(
|
|
|
117
117
|
background: transparent !important;
|
|
118
118
|
border-radius: 0 !important;
|
|
119
119
|
outline: none !important;
|
|
120
|
-
border-bottom: 1.5px solid var(--border-color);
|
|
120
|
+
border-bottom: 1.5px solid var(--bgl-border-color);
|
|
121
121
|
transition: border-color 0.25s ease;
|
|
122
122
|
position: relative;
|
|
123
123
|
}
|
|
@@ -449,7 +449,7 @@ function selectDate(date: Date | null) {
|
|
|
449
449
|
<style scoped>
|
|
450
450
|
.calendar-container {
|
|
451
451
|
max-width: 90vw;
|
|
452
|
-
border-radius: var(--card-border-radius);
|
|
452
|
+
border-radius: var(--bgl-card-border-radius);
|
|
453
453
|
background: var(--bgl-box-bg);
|
|
454
454
|
}
|
|
455
455
|
|
|
@@ -508,9 +508,9 @@ function selectDate(date: Date | null) {
|
|
|
508
508
|
}
|
|
509
509
|
|
|
510
510
|
.day:hover:not(.disabled) {
|
|
511
|
-
background-color: var(--input-bg);
|
|
511
|
+
background-color: var(--bgl-input-bg);
|
|
512
512
|
color: var(--bgl-text-color);
|
|
513
|
-
outline: 1px solid var(--border-color);
|
|
513
|
+
outline: 1px solid var(--bgl-border-color);
|
|
514
514
|
}
|
|
515
515
|
|
|
516
516
|
.day:hover:not(.disabled).selected {
|
|
@@ -382,7 +382,7 @@ onMounted(() => {
|
|
|
382
382
|
}
|
|
383
383
|
|
|
384
384
|
.bagel-input label {
|
|
385
|
-
font-size: var(--label-font-size);
|
|
385
|
+
font-size: var(--bgl-label-font-size);
|
|
386
386
|
}
|
|
387
387
|
|
|
388
388
|
.bagel-input.format-invalid,
|
|
@@ -399,14 +399,14 @@ onMounted(() => {
|
|
|
399
399
|
border-radius: 50%;
|
|
400
400
|
background: var(--bgl-orange);
|
|
401
401
|
right: 0.6rem;
|
|
402
|
-
bottom: calc(var(--input-height) / 2 - 3.5px);
|
|
402
|
+
bottom: calc(var(--bgl-input-height) / 2 - 3.5px);
|
|
403
403
|
pointer-events: none;
|
|
404
404
|
}
|
|
405
405
|
|
|
406
406
|
.bagel-input.format-invalid.textInputIconWrap::after,
|
|
407
407
|
.bagel-input.format-valid.textInputIconWrap::after,
|
|
408
408
|
.bagel-input.format-empty.textInputIconWrap::after {
|
|
409
|
-
right: calc(var(--input-height) / 3 + 1.8rem);
|
|
409
|
+
right: calc(var(--bgl-input-height) / 3 + 1.8rem);
|
|
410
410
|
}
|
|
411
411
|
|
|
412
412
|
.bagel-input.format-empty::after {
|
|
@@ -417,7 +417,7 @@ onMounted(() => {
|
|
|
417
417
|
border-radius: 50%;
|
|
418
418
|
background: var(--bgl-gray, #aaa);
|
|
419
419
|
right: 0.6rem;
|
|
420
|
-
bottom: calc(var(--input-height) / 2 - 3.5px);
|
|
420
|
+
bottom: calc(var(--bgl-input-height) / 2 - 3.5px);
|
|
421
421
|
pointer-events: none;
|
|
422
422
|
}
|
|
423
423
|
|
|
@@ -433,7 +433,7 @@ onMounted(() => {
|
|
|
433
433
|
border-radius: 50%;
|
|
434
434
|
background: var(--bgl-green);
|
|
435
435
|
right: 0.6rem;
|
|
436
|
-
bottom: calc(var(--input-height) / 2 - 3.5px);
|
|
436
|
+
bottom: calc(var(--bgl-input-height) / 2 - 3.5px);
|
|
437
437
|
pointer-events: none;
|
|
438
438
|
}
|
|
439
439
|
</style>
|
|
@@ -455,33 +455,33 @@ onMounted(() => {
|
|
|
455
455
|
}
|
|
456
456
|
|
|
457
457
|
.bagel-input label {
|
|
458
|
-
font-size: var(--label-font-size);
|
|
458
|
+
font-size: var(--bgl-label-font-size);
|
|
459
459
|
}
|
|
460
460
|
|
|
461
461
|
/* email input is always LTR — use physical properties so icons stay in the correct
|
|
462
462
|
visual position regardless of the document's text direction */
|
|
463
463
|
.textInputIconWrap .bgl_icon-font {
|
|
464
|
-
color: var(--input-color);
|
|
464
|
+
color: var(--bgl-input-color);
|
|
465
465
|
position: absolute;
|
|
466
|
-
right: calc(var(--input-height) / 3 - 0.25rem);
|
|
467
|
-
margin-top: calc(var(--input-height) / 2 + 0.1rem);
|
|
466
|
+
right: calc(var(--bgl-input-height) / 3 - 0.25rem);
|
|
467
|
+
margin-top: calc(var(--bgl-input-height) / 2 + 0.1rem);
|
|
468
468
|
line-height: 0;
|
|
469
469
|
}
|
|
470
470
|
|
|
471
471
|
.textInputIconWrap input {
|
|
472
|
-
padding-right: calc(var(--input-height) / 3 + 1.5rem);
|
|
472
|
+
padding-right: calc(var(--bgl-input-height) / 3 + 1.5rem);
|
|
473
473
|
}
|
|
474
474
|
|
|
475
475
|
.txtInputIconStart .iconStart {
|
|
476
|
-
color: var(--input-color);
|
|
476
|
+
color: var(--bgl-input-color);
|
|
477
477
|
position: absolute;
|
|
478
|
-
left: calc(var(--input-height) / 3 - 0.25rem);
|
|
479
|
-
margin-top: calc(var(--input-height) / 2);
|
|
478
|
+
left: calc(var(--bgl-input-height) / 3 - 0.25rem);
|
|
479
|
+
margin-top: calc(var(--bgl-input-height) / 2);
|
|
480
480
|
line-height: 0;
|
|
481
481
|
}
|
|
482
482
|
|
|
483
483
|
.txtInputIconStart input {
|
|
484
|
-
padding-left: calc(var(--input-height) / 3 + 1.5rem);
|
|
484
|
+
padding-left: calc(var(--bgl-input-height) / 3 + 1.5rem);
|
|
485
485
|
}
|
|
486
486
|
|
|
487
487
|
.bagel-input.small textarea {
|
|
@@ -220,9 +220,9 @@ const hasValue = computed(() => formattedValue.value.length > 0)
|
|
|
220
220
|
.input-icon-wrap {
|
|
221
221
|
display: flex;
|
|
222
222
|
align-items: center;
|
|
223
|
-
background: var(--input-bg);
|
|
224
|
-
border-radius: var(--input-border-radius);
|
|
225
|
-
height: var(--input-height);
|
|
223
|
+
background: var(--bgl-input-bg);
|
|
224
|
+
border-radius: var(--bgl-input-border-radius);
|
|
225
|
+
height: var(--bgl-input-height);
|
|
226
226
|
transition: box-shadow 0.2s ease, outline-color 0.2s ease;
|
|
227
227
|
}
|
|
228
228
|
|
|
@@ -235,14 +235,14 @@ const hasValue = computed(() => formattedValue.value.length > 0)
|
|
|
235
235
|
}
|
|
236
236
|
|
|
237
237
|
.input-icon-wrap:focus-within {
|
|
238
|
-
outline-color: var(--input-bg);
|
|
238
|
+
outline-color: var(--bgl-input-bg);
|
|
239
239
|
box-shadow: inset 0 0 8px #00000018;
|
|
240
240
|
}
|
|
241
241
|
|
|
242
242
|
.input-icon-wrap .iconStart,
|
|
243
243
|
.input-icon-wrap > .bgl_icon-font {
|
|
244
244
|
flex-shrink: 0;
|
|
245
|
-
color: var(--input-color);
|
|
245
|
+
color: var(--bgl-input-color);
|
|
246
246
|
line-height: 0;
|
|
247
247
|
padding-inline: 0.35rem;
|
|
248
248
|
}
|
|
@@ -250,7 +250,7 @@ const hasValue = computed(() => formattedValue.value.length > 0)
|
|
|
250
250
|
/* ── frame variant ─────────────────────────────────────────────── */
|
|
251
251
|
.bagel-input.frame .input-icon-wrap {
|
|
252
252
|
background: transparent;
|
|
253
|
-
outline: 1.5px solid var(--border-color);
|
|
253
|
+
outline: 1.5px solid var(--bgl-border-color);
|
|
254
254
|
outline-offset: -1px;
|
|
255
255
|
}
|
|
256
256
|
|
|
@@ -261,7 +261,7 @@ const hasValue = computed(() => formattedValue.value.length > 0)
|
|
|
261
261
|
|
|
262
262
|
/* ── outline variant ───────────────────────────────────────────── */
|
|
263
263
|
.bagel-input.bgl-outline .input-icon-wrap {
|
|
264
|
-
outline: 1.5px solid var(--border-color);
|
|
264
|
+
outline: 1.5px solid var(--bgl-border-color);
|
|
265
265
|
outline-offset: -1px;
|
|
266
266
|
}
|
|
267
267
|
|
|
@@ -271,7 +271,7 @@ const hasValue = computed(() => formattedValue.value.length > 0)
|
|
|
271
271
|
background: transparent;
|
|
272
272
|
border-radius: 0;
|
|
273
273
|
height: auto;
|
|
274
|
-
border-bottom: 1.5px solid var(--border-color);
|
|
274
|
+
border-bottom: 1.5px solid var(--bgl-border-color);
|
|
275
275
|
}
|
|
276
276
|
|
|
277
277
|
.bagel-input.underlined .input-icon-wrap::after {
|
|
@@ -306,11 +306,11 @@ const hasValue = computed(() => formattedValue.value.length > 0)
|
|
|
306
306
|
}
|
|
307
307
|
|
|
308
308
|
.top-bgl-ctrl-num-btn {
|
|
309
|
-
margin-top: calc(var(--input-height) / 10) !important;
|
|
309
|
+
margin-top: calc(var(--bgl-input-height) / 10) !important;
|
|
310
310
|
}
|
|
311
311
|
|
|
312
312
|
.bgl-ctrl-num-btn {
|
|
313
|
-
height: calc(var(--input-height) / 2.5) !important;
|
|
313
|
+
height: calc(var(--bgl-input-height) / 2.5) !important;
|
|
314
314
|
isolation: isolate;
|
|
315
315
|
}
|
|
316
316
|
|
|
@@ -167,7 +167,7 @@ function isDigitsFull() {
|
|
|
167
167
|
|
|
168
168
|
.otp-input.frame .digit-box {
|
|
169
169
|
background: transparent;
|
|
170
|
-
outline: 1.5px solid var(--border-color);
|
|
170
|
+
outline: 1.5px solid var(--bgl-border-color);
|
|
171
171
|
outline-offset: -1px;
|
|
172
172
|
transition: outline-color 0.2s ease, box-shadow 0.2s ease;
|
|
173
173
|
}
|
|
@@ -184,7 +184,7 @@ function isDigitsFull() {
|
|
|
184
184
|
/* ── bgl-outline variant ────────────────────────────────────────────────── */
|
|
185
185
|
|
|
186
186
|
.otp-input.bgl-outline .digit-box {
|
|
187
|
-
outline: 1.5px solid var(--border-color);
|
|
187
|
+
outline: 1.5px solid var(--bgl-border-color);
|
|
188
188
|
outline-offset: -1px;
|
|
189
189
|
}
|
|
190
190
|
|
|
@@ -77,7 +77,7 @@ const strengthScore = computed(() => {
|
|
|
77
77
|
|
|
78
78
|
const strengthColor = computed(() => {
|
|
79
79
|
const score = strengthScore.value
|
|
80
|
-
if (score == null) return 'var(--input-bg)' // gray - no password
|
|
80
|
+
if (score == null) return 'var(--bgl-input-bg)' // gray - no password
|
|
81
81
|
if (score <= 1) return 'var(--bgl-red)' // red
|
|
82
82
|
if (score === 2) return 'var(--bgl-orange)' // orange
|
|
83
83
|
if (score === 3) return 'var(--bgl-yellow)' // amber
|
|
@@ -134,7 +134,7 @@ const feedbackMessage = computed(() => {
|
|
|
134
134
|
|
|
135
135
|
<style>
|
|
136
136
|
.m-password {
|
|
137
|
-
height: var(--input-height) !important;
|
|
137
|
+
height: var(--bgl-input-height) !important;
|
|
138
138
|
}
|
|
139
139
|
|
|
140
140
|
[dir='rtl'] .passwordInput input {
|
|
@@ -149,7 +149,7 @@ const feedbackMessage = computed(() => {
|
|
|
149
149
|
.password-strength-bar {
|
|
150
150
|
flex: 1;
|
|
151
151
|
height: 6px;
|
|
152
|
-
background-color: var(--input-bg);
|
|
152
|
+
background-color: var(--bgl-input-bg);
|
|
153
153
|
}
|
|
154
154
|
|
|
155
155
|
.password-strength-fill {
|
|
@@ -67,7 +67,7 @@ th {
|
|
|
67
67
|
/* Add styles for embedded content */
|
|
68
68
|
.richtext-editor-content iframe {
|
|
69
69
|
max-width: 100%;
|
|
70
|
-
border: 1px solid var(--border-color, #ddd);
|
|
70
|
+
border: 1px solid var(--bgl-border-color, #ddd);
|
|
71
71
|
border-radius: 8px;
|
|
72
72
|
display: block;
|
|
73
73
|
margin: 1em auto;
|
|
@@ -148,7 +148,7 @@ th {
|
|
|
148
148
|
.richtext-editor-content .embed-iframe {
|
|
149
149
|
width: 100%;
|
|
150
150
|
height: 315px;
|
|
151
|
-
border: 1px solid var(--border-color, #ddd);
|
|
151
|
+
border: 1px solid var(--bgl-border-color, #ddd);
|
|
152
152
|
border-radius: 8px;
|
|
153
153
|
background: white;
|
|
154
154
|
}
|
|
@@ -214,7 +214,7 @@ th {
|
|
|
214
214
|
|
|
215
215
|
/* Add a subtle border to distinguish embedded content */
|
|
216
216
|
.richtext-editor-content iframe:not([class*='editableContent']) {
|
|
217
|
-
border: 1px solid var(--border-color);
|
|
217
|
+
border: 1px solid var(--bgl-border-color);
|
|
218
218
|
border-radius: 4px;
|
|
219
219
|
background: white;
|
|
220
220
|
}
|
|
@@ -304,7 +304,7 @@ th {
|
|
|
304
304
|
max-width: 100%;
|
|
305
305
|
width: 100%;
|
|
306
306
|
margin: 0 auto;
|
|
307
|
-
border: 1px solid var(--border-color, #ddd);
|
|
307
|
+
border: 1px solid var(--bgl-border-color, #ddd);
|
|
308
308
|
border-radius: 8px;
|
|
309
309
|
background: white;
|
|
310
310
|
transition: all 0.3s ease;
|