@bagelink/vue 1.14.13 → 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/AddressSearch.vue.d.ts +6 -7
- package/dist/components/Alert.vue.d.ts.map +1 -1
- package/dist/components/Avatar.vue.d.ts.map +1 -1
- package/dist/components/Btn.vue.d.ts +1 -1
- package/dist/components/Card.vue.d.ts.map +1 -1
- package/dist/components/Carousel.vue.d.ts +0 -11
- package/dist/components/Dropdown.vue.d.ts +0 -2
- package/dist/components/Filter.vue.d.ts +30 -0
- package/dist/components/Filter.vue.d.ts.map +1 -0
- package/dist/components/FilterQuery.vue.d.ts +8 -3
- package/dist/components/Image.vue.d.ts.map +1 -1
- package/dist/components/ImportData.vue.d.ts.map +1 -1
- package/dist/components/Modal.vue.d.ts +0 -1
- package/dist/components/Pill.vue.d.ts.map +1 -1
- package/dist/components/QueryFilter.vue.d.ts +30 -0
- package/dist/components/QueryFilter.vue.d.ts.map +1 -0
- package/dist/components/Swiper.vue.d.ts +6 -12
- package/dist/components/Toast.vue.d.ts.map +1 -1
- package/dist/components/analytics/PieChart.vue.d.ts +2 -2
- package/dist/components/calendar/CalendarPopover.vue.d.ts +8 -4
- package/dist/components/calendar/CalendarPopover.vue.d.ts.map +1 -1
- package/dist/components/calendar/CalendarTypes.d.ts +0 -10
- package/dist/components/calendar/Index.vue.d.ts +4 -20
- package/dist/components/calendar/views/WeekView.vue.d.ts +1 -9
- package/dist/components/dataTable/DataTable.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/ArrayInput.vue.d.ts +2 -4
- package/dist/components/form/inputs/CheckInput.vue.d.ts +1 -2
- package/dist/components/form/inputs/Checkbox.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/CodeEditor/Index.vue.d.ts +0 -54
- package/dist/components/form/inputs/ColorInput.vue.d.ts +1 -3
- package/dist/components/form/inputs/DateInput.vue.d.ts +1 -2
- package/dist/components/form/inputs/DatePicker.vue.d.ts +0 -1
- package/dist/components/form/inputs/EmailInput.vue.d.ts +2 -5
- package/dist/components/form/inputs/JSONInput.vue.d.ts +1 -2
- package/dist/components/form/inputs/MarkdownEditor.vue.d.ts +2 -7
- package/dist/components/form/inputs/NumberInput.vue.d.ts +1 -2
- package/dist/components/form/inputs/OTP.vue.d.ts +1 -2
- package/dist/components/form/inputs/PasswordInput.vue.d.ts +10 -16
- package/dist/components/form/inputs/RadioGroup.vue.d.ts +1 -3
- package/dist/components/form/inputs/RangeInput.vue.d.ts +1 -6
- package/dist/components/form/inputs/RichText/index.vue.d.ts +1 -2
- 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/SelectBtn.vue.d.ts +2 -2
- package/dist/components/form/inputs/SelectInput.vue.d.ts +13 -20
- package/dist/components/form/inputs/SelectInput.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/SignaturePad.vue.d.ts +1 -6
- package/dist/components/form/inputs/TableField.vue.d.ts +1 -2
- package/dist/components/form/inputs/TelInput.vue.d.ts +1 -2
- package/dist/components/form/inputs/TextInput.vue.d.ts +2 -3
- package/dist/components/form/inputs/ToggleInput.vue.d.ts +1 -2
- package/dist/components/form/inputs/Upload/UploadInput.vue.d.ts +6 -27
- package/dist/components/form/inputs/Upload/upload.d.ts +1 -1
- package/dist/components/form/inputs/index.d.ts +0 -1
- package/dist/components/index.d.ts +1 -3
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/layout/AppContent.vue.d.ts +1 -1
- package/dist/components/layout/AppLayout.vue.d.ts +0 -2
- package/dist/components/layout/AppSidebar.vue.d.ts +1 -5
- package/dist/components/layout/Skeleton.vue.d.ts.map +1 -1
- package/dist/components/layout/TabsNav.vue.d.ts +1 -12
- package/dist/dialog/Dialog.vue.d.ts.map +1 -1
- package/dist/dialog/DialogConfirm.vue.d.ts.map +1 -1
- package/dist/form-flow/MultiStepForm.vue.d.ts +1 -6
- package/dist/form-flow/form-flow.d.ts +1 -24
- package/dist/i18n/index.d.ts +0 -838
- package/dist/index.cjs +193 -166
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +47586 -53496
- package/dist/plugins/bagel.d.ts.map +1 -1
- package/dist/style.css +1 -2
- package/dist/types/BagelForm.d.ts +1 -10
- package/dist/types/NavLink.d.ts +1 -2
- package/dist/types/TableSchema.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/BagelFormUtils.d.ts +0 -1
- package/dist/utils/calendar/dateUtils.d.ts +2 -2
- 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 +1 -1
- 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/dist/utils/useSearch.d.ts +1 -1
- 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 +43 -60
- 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
|
@@ -66,21 +66,21 @@ onMounted(() => {
|
|
|
66
66
|
appearance: none;
|
|
67
67
|
position: relative;
|
|
68
68
|
display: inline-block;
|
|
69
|
-
background: var(--input-bg);
|
|
70
|
-
height: calc(var(--input-height) / 2);
|
|
71
|
-
width: calc(var(--input-height) - 2px);
|
|
69
|
+
background: var(--bgl-input-bg);
|
|
70
|
+
height: calc(var(--bgl-input-height) / 2);
|
|
71
|
+
width: calc(var(--bgl-input-height) - 2px);
|
|
72
72
|
vertical-align: middle;
|
|
73
73
|
border-radius: 2rem;
|
|
74
74
|
box-shadow: 0px 1px 3px #0003 inset;
|
|
75
75
|
transition: 0.25s linear all;
|
|
76
|
-
outline: 1px solid var(--border-color);
|
|
76
|
+
outline: 1px solid var(--bgl-border-color);
|
|
77
77
|
|
|
78
78
|
}
|
|
79
79
|
.bgl-toggle input::before {
|
|
80
80
|
position: absolute;
|
|
81
81
|
content: "";
|
|
82
|
-
height: calc(var(--input-height) / 2 - 2px);
|
|
83
|
-
width: calc(var(--input-height) / 2 - 2px);
|
|
82
|
+
height: calc(var(--bgl-input-height) / 2 - 2px);
|
|
83
|
+
width: calc(var(--bgl-input-height) / 2 - 2px);
|
|
84
84
|
inset-inline-start: 1px;
|
|
85
85
|
bottom: 1px;
|
|
86
86
|
border-radius: 50%;
|
|
@@ -95,8 +95,8 @@ onMounted(() => {
|
|
|
95
95
|
transition: var(--bgl-transition);
|
|
96
96
|
cursor: pointer;
|
|
97
97
|
user-select: none;
|
|
98
|
-
line-height: var(--input-height);
|
|
99
|
-
font-size: var(--input-font-size);
|
|
98
|
+
line-height: var(--bgl-input-height);
|
|
99
|
+
font-size: var(--bgl-input-font-size);
|
|
100
100
|
vertical-align: middle;
|
|
101
101
|
}
|
|
102
102
|
|
|
@@ -123,7 +123,7 @@ onMounted(() => {
|
|
|
123
123
|
background: var(--bgl-input-label-active-color, var(--bgl-primary));
|
|
124
124
|
}
|
|
125
125
|
.bgl-toggle :checked::before{
|
|
126
|
-
margin-inline-start:calc(var(--input-height) / 2 - 2px) ;
|
|
126
|
+
margin-inline-start:calc(var(--bgl-input-height) / 2 - 2px) ;
|
|
127
127
|
}
|
|
128
128
|
.bgl-toggle input:checked + label {
|
|
129
129
|
color: var(--bgl-input-label-active-color, var(--bgl-primary)) !important;
|
|
@@ -131,13 +131,13 @@ onMounted(() => {
|
|
|
131
131
|
|
|
132
132
|
/* ── bgl-outline variant ── */
|
|
133
133
|
.bgl-outline input {
|
|
134
|
-
outline: 1.5px solid var(--border-color) !important;
|
|
134
|
+
outline: 1.5px solid var(--bgl-border-color) !important;
|
|
135
135
|
outline-offset: 2px;
|
|
136
136
|
}
|
|
137
137
|
|
|
138
138
|
/* ── frame variant ── */
|
|
139
139
|
.frame input {
|
|
140
|
-
outline: 1.5px solid var(--border-color) !important;
|
|
140
|
+
outline: 1.5px solid var(--bgl-border-color) !important;
|
|
141
141
|
outline-offset: 2px;
|
|
142
142
|
transition: outline-color 0.2s ease, box-shadow 0.2s ease;
|
|
143
143
|
background: transparent;
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
.fileUploadWrap {
|
|
2
|
-
outline: 1px solid var(--border-color);
|
|
3
|
-
border-radius: var(--input-border-radius);
|
|
2
|
+
outline: 1px solid var(--bgl-border-color);
|
|
3
|
+
border-radius: var(--bgl-input-border-radius);
|
|
4
4
|
text-align: center;
|
|
5
5
|
cursor: pointer;
|
|
6
6
|
transition: var(--bgl-transition);
|
|
7
7
|
position: relative;
|
|
8
|
-
font-size: var(--input-font-size);
|
|
8
|
+
font-size: var(--bgl-input-font-size);
|
|
9
9
|
overflow-y: auto;
|
|
10
|
-
background: var(--input-bg);
|
|
10
|
+
background: var(--bgl-input-bg);
|
|
11
11
|
height: 215px;
|
|
12
12
|
outline-offset: -1px;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
.bagel-input .fileUploadWrap.fileDropZone {
|
|
16
|
-
background: var(--input-bg);
|
|
16
|
+
background: var(--bgl-input-bg);
|
|
17
17
|
display: flex;
|
|
18
18
|
align-items: center;
|
|
19
19
|
justify-content: center;
|
|
@@ -31,21 +31,21 @@
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
.multi-image-item-preview {
|
|
34
|
-
border: 1px solid var(--border-color) !important;
|
|
35
|
-
border-radius: var(--input-border-radius);
|
|
34
|
+
border: 1px solid var(--bgl-border-color) !important;
|
|
35
|
+
border-radius: var(--bgl-input-border-radius);
|
|
36
36
|
margin: 0.5rem !important;
|
|
37
37
|
background: var(--bgl-popup-bg);
|
|
38
38
|
padding: 0;
|
|
39
39
|
padding-inline-end: 1rem;
|
|
40
40
|
padding-inline-start: 0.25rem;
|
|
41
41
|
text-align: start;
|
|
42
|
-
color: var(--input-color);
|
|
42
|
+
color: var(--bgl-input-color);
|
|
43
43
|
display: grid;
|
|
44
44
|
grid-template-columns: auto 1fr 22px;
|
|
45
45
|
gap: 0.5rem;
|
|
46
46
|
align-items: center;
|
|
47
|
-
height: var(--btn-height);
|
|
48
|
-
font-size: var(--label-font-size);
|
|
47
|
+
height: var(--bgl-btn-height);
|
|
48
|
+
font-size: var(--bgl-label-font-size);
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
.multi-image-item-preview p {
|
|
@@ -56,9 +56,9 @@
|
|
|
56
56
|
|
|
57
57
|
.multi-preview {
|
|
58
58
|
/* width: 40px; */
|
|
59
|
-
height: calc(var(--btn-height) - 0.5rem);
|
|
60
|
-
max-width: calc(var(--btn-height) - 0.5rem);
|
|
61
|
-
border-radius: calc(var(--input-border-radius) / 2);
|
|
59
|
+
height: calc(var(--bgl-btn-height) - 0.5rem);
|
|
60
|
+
max-width: calc(var(--bgl-btn-height) - 0.5rem);
|
|
61
|
+
border-radius: calc(var(--bgl-input-border-radius) / 2);
|
|
62
62
|
object-fit: cover;
|
|
63
63
|
background: var(--bgl-gray-light);
|
|
64
64
|
text-align: center !important;
|
|
@@ -274,7 +274,7 @@
|
|
|
274
274
|
.bagel-input.frame .fileUploadWrap,
|
|
275
275
|
.bagel-input.frame .fileUploadWrap.fileDropZone {
|
|
276
276
|
background: transparent;
|
|
277
|
-
outline-color: var(--border-color);
|
|
277
|
+
outline-color: var(--bgl-border-color);
|
|
278
278
|
transition: outline-color 0.2s ease, box-shadow 0.2s ease;
|
|
279
279
|
}
|
|
280
280
|
|
package/src/components/index.ts
CHANGED
|
@@ -34,9 +34,6 @@ export { default as ListView } from './ListView.vue'
|
|
|
34
34
|
export { default as Loading } from './Loading.vue'
|
|
35
35
|
export { default as MapEmbed } from './MapEmbed/Index.vue'
|
|
36
36
|
export { default as Menu } from './Menu.vue'
|
|
37
|
-
export { default as Modal } from './Modal.vue'
|
|
38
|
-
export { default as ModalConfirm } from './ModalConfirm.vue'
|
|
39
|
-
export { default as ModalForm } from './ModalForm.vue'
|
|
40
37
|
export { default as NavBar } from './NavBar.vue'
|
|
41
38
|
export { default as PageTitle } from './PageTitle.vue'
|
|
42
39
|
export { default as Pagination } from './Pagination.vue'
|
|
@@ -160,7 +160,7 @@ const sidebarStyles = computed(() => {
|
|
|
160
160
|
:style="{
|
|
161
161
|
backgroundColor: props.bgColor,
|
|
162
162
|
color: props.textColor,
|
|
163
|
-
...(props.card && { borderRadius: 'var(--card-border-radius)' }),
|
|
163
|
+
...(props.card && { borderRadius: 'var(--bgl-card-border-radius)' }),
|
|
164
164
|
}" :class="{
|
|
165
165
|
'card cardWrapSide': props.card,
|
|
166
166
|
'px-05': !isVisuallyOpen,
|
|
@@ -227,7 +227,7 @@ const sidebarStyles = computed(() => {
|
|
|
227
227
|
|
|
228
228
|
<style>
|
|
229
229
|
.aside_frame {
|
|
230
|
-
outline: 1px solid var(--border-color);
|
|
230
|
+
outline: 1px solid var(--bgl-border-color);
|
|
231
231
|
}
|
|
232
232
|
|
|
233
233
|
.card .aside_frame {
|
|
@@ -236,7 +236,7 @@ const sidebarStyles = computed(() => {
|
|
|
236
236
|
|
|
237
237
|
.app-sidebar {
|
|
238
238
|
transition: width 0.4s ease;
|
|
239
|
-
--input-font-size: 0.875rem;
|
|
239
|
+
--bgl-input-font-size: 0.875rem;
|
|
240
240
|
/* 14px */
|
|
241
241
|
}
|
|
242
242
|
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
<script lang="ts" setup>
|
|
2
|
+
defineOptions({ name: 'BglSkeleton' })
|
|
2
3
|
const {
|
|
3
4
|
count = 1,
|
|
4
5
|
height,
|
|
5
6
|
width,
|
|
6
|
-
borderRadius = 'var(--skeleton-radius)',
|
|
7
|
+
borderRadius = 'var(--bgl-skeleton-radius)',
|
|
7
8
|
round = false,
|
|
8
9
|
class: className = '',
|
|
9
10
|
} = defineProps<{
|
|
@@ -31,11 +32,11 @@ const slots: SetupContext['slots'] = useSlots()
|
|
|
31
32
|
|
|
32
33
|
<style scoped>
|
|
33
34
|
.skeleton-wrap {
|
|
34
|
-
margin-bottom: var(--skeleton-margin);
|
|
35
|
+
margin-bottom: var(--bgl-skeleton-margin);
|
|
35
36
|
}
|
|
36
37
|
|
|
37
38
|
.skeleton {
|
|
38
|
-
background-color: var(--skeleton-bg);
|
|
39
|
+
background-color: var(--bgl-skeleton-bg);
|
|
39
40
|
border-radius: var(--bg-card-radius);
|
|
40
41
|
margin-bottom: 0.25em;
|
|
41
42
|
position: relative;
|
|
@@ -44,7 +45,7 @@ const slots: SetupContext['slots'] = useSlots()
|
|
|
44
45
|
|
|
45
46
|
.skeleton::before {
|
|
46
47
|
content: "";
|
|
47
|
-
background: linear-gradient(90deg, transparent 20%, var(--skeleton-pulse) 50%, transparent 80%);
|
|
48
|
+
background: linear-gradient(90deg, transparent 20%, var(--bgl-skeleton-pulse) 50%, transparent 80%);
|
|
48
49
|
animation: loadingAnimation 1s ease-in-out infinite;
|
|
49
50
|
position: absolute;
|
|
50
51
|
inset: 0px;
|
|
@@ -171,17 +171,17 @@ onBeforeUnmount(() => {
|
|
|
171
171
|
|
|
172
172
|
<style>
|
|
173
173
|
:root {
|
|
174
|
-
--bgl_tabs-background: var(--input-bg);
|
|
175
|
-
--bgl_tabs-border-radius: var(--input-border-radius);
|
|
176
|
-
--bgl_tabs-inline-padding: calc(var(--btn-padding) / 8);
|
|
177
|
-
--bgl_tabs-block-padding: calc(var(--btn-padding) / 8);
|
|
174
|
+
--bgl_tabs-background: var(--bgl-input-bg);
|
|
175
|
+
--bgl_tabs-border-radius: var(--bgl-input-border-radius);
|
|
176
|
+
--bgl_tabs-inline-padding: calc(var(--bgl-btn-padding) / 8);
|
|
177
|
+
--bgl_tabs-block-padding: calc(var(--bgl-btn-padding) / 8);
|
|
178
178
|
--bgl_tabs-shadow: inset 0 0 10px #00000012;
|
|
179
179
|
--bgl_tabs-gap: 0.25rem;
|
|
180
|
-
--bgl_tabs-font-size: var(--input-font-size);
|
|
181
|
-
--bgl_tab-inline-padding: calc(var(--btn-padding) / 2);
|
|
182
|
-
--bgl_tab-block-padding: calc(var(--btn-padding) / 8);
|
|
180
|
+
--bgl_tabs-font-size: var(--bgl-input-font-size);
|
|
181
|
+
--bgl_tab-inline-padding: calc(var(--bgl-btn-padding) / 2);
|
|
182
|
+
--bgl_tab-block-padding: calc(var(--bgl-btn-padding) / 8);
|
|
183
183
|
--bgl_tab-gap: 0.5rem;
|
|
184
|
-
--bgl_tabs-border-radius: var(--input-border-radius);
|
|
184
|
+
--bgl_tabs-border-radius: var(--bgl-input-border-radius);
|
|
185
185
|
--bgl-tab-hover-bg: rgba(255, 255, 255, .4);
|
|
186
186
|
--bgl_tabs-indicator-color: var(--bgl-popup-bg);
|
|
187
187
|
--bgl-tabs-flat-indicator-color: var(--bgl-primary);
|
|
@@ -204,7 +204,7 @@ onBeforeUnmount(() => {
|
|
|
204
204
|
cursor: pointer;
|
|
205
205
|
font-size: inherit;
|
|
206
206
|
font-family: inherit;
|
|
207
|
-
height: calc(var(--btn-height) - var(--bgl_tabs-block-padding) * 2);
|
|
207
|
+
height: calc(var(--bgl-btn-height) - var(--bgl_tabs-block-padding) * 2);
|
|
208
208
|
padding-inline: var(--bgl_tab-inline-padding);
|
|
209
209
|
padding-block: 0;
|
|
210
210
|
border-radius: var(--bgl_tab-border-radius);
|
|
@@ -242,7 +242,7 @@ onBeforeUnmount(() => {
|
|
|
242
242
|
background: transparent;
|
|
243
243
|
border-bottom: 1px solid var(--bgl-tabs-flat-indicator-color);
|
|
244
244
|
border-radius: 0;
|
|
245
|
-
top: calc(var(--btn-padding) * 1.25);
|
|
245
|
+
top: calc(var(--bgl-btn-padding) * 1.25);
|
|
246
246
|
bottom: unset;
|
|
247
247
|
|
|
248
248
|
}
|
|
@@ -255,30 +255,30 @@ onBeforeUnmount(() => {
|
|
|
255
255
|
}
|
|
256
256
|
.bgl_tab-thin {
|
|
257
257
|
padding-inline: calc(var(--bgl_tab-inline-padding) / 2);
|
|
258
|
-
height: calc(var(--btn-height) * 0.7 - var(--bgl_tabs-block-padding) * 2);
|
|
258
|
+
height: calc(var(--bgl-btn-height) * 0.7 - var(--bgl_tabs-block-padding) * 2);
|
|
259
259
|
}
|
|
260
260
|
|
|
261
261
|
.bgl_tab-xs {
|
|
262
262
|
padding-inline: calc(var(--bgl_tab-inline-padding) / 3);
|
|
263
|
-
font-size: calc(var(--input-font-size) * 0.6);
|
|
264
|
-
height: calc(var(--btn-height) * 0.5 - var(--bgl_tabs-block-padding) * 2);
|
|
263
|
+
font-size: calc(var(--bgl-input-font-size) * 0.6);
|
|
264
|
+
height: calc(var(--bgl-btn-height) * 0.5 - var(--bgl_tabs-block-padding) * 2);
|
|
265
265
|
}
|
|
266
266
|
|
|
267
267
|
.bgl_tab-s {
|
|
268
268
|
padding-inline: calc(var(--bgl_tab-inline-padding) / 1.5);
|
|
269
|
-
height: calc(var(--btn-height) * 0.7 - var(--bgl_tabs-block-padding) * 2);
|
|
269
|
+
height: calc(var(--bgl-btn-height) * 0.7 - var(--bgl_tabs-block-padding) * 2);
|
|
270
270
|
}
|
|
271
271
|
|
|
272
272
|
.bgl_tab-l {
|
|
273
273
|
padding-inline: calc(var(--bgl_tab-inline-padding) * 1.3);
|
|
274
|
-
font-size: calc(var(--input-font-size) * 1.1);
|
|
275
|
-
height: calc(var(--btn-height) * 1.2 - var(--bgl_tabs-block-padding) * 2);
|
|
274
|
+
font-size: calc(var(--bgl-input-font-size) * 1.1);
|
|
275
|
+
height: calc(var(--bgl-btn-height) * 1.2 - var(--bgl_tabs-block-padding) * 2);
|
|
276
276
|
}
|
|
277
277
|
|
|
278
278
|
.bgl_tab-xl {
|
|
279
279
|
padding-inline: calc(var(--bgl_tab-inline-padding) * 1.6);
|
|
280
|
-
font-size: calc(var(--input-font-size) * 1.3);
|
|
281
|
-
height: calc(var(--btn-height) * 1.5 - var(--bgl_tabs-block-padding) * 2);
|
|
280
|
+
font-size: calc(var(--bgl-input-font-size) * 1.3);
|
|
281
|
+
height: calc(var(--bgl-btn-height) * 1.5 - var(--bgl_tabs-block-padding) * 2);
|
|
282
282
|
}
|
|
283
283
|
|
|
284
284
|
.bgl_tab-align-start {
|
package/src/index.ts
CHANGED
|
@@ -23,7 +23,6 @@ export {
|
|
|
23
23
|
useI18n,
|
|
24
24
|
} from './i18n'
|
|
25
25
|
export { type BagelOptions, BagelVue, getI18n } from './plugins/bagel'
|
|
26
|
-
export { ModalPlugin, useModal } from './plugins/useModal'
|
|
27
26
|
|
|
28
27
|
export { type BagelToastOptions, type ToastApi, ToastPlugin, useToast } from './plugins/useToast'
|
|
29
28
|
|
package/src/plugins/bagel.ts
CHANGED
|
@@ -2,14 +2,12 @@ import type { Plugin } from 'vue'
|
|
|
2
2
|
import type { CreateBagelI18nOptions } from '../i18n'
|
|
3
3
|
|
|
4
4
|
import type { BagelToastOptions } from './useToast'
|
|
5
|
-
import { configure } from '@bagelink/utils'
|
|
6
5
|
import FloatingVue from 'floating-vue'
|
|
7
6
|
import lightboxPlugin from '../components/lightbox/index'
|
|
8
7
|
import { DialogPlugin } from '../dialog/useDialog'
|
|
9
8
|
import { ripple, pattern } from '../directives'
|
|
10
9
|
import { createI18n, getI18n } from '../i18n'
|
|
11
10
|
import clickOutside from '../utils/clickOutside'
|
|
12
|
-
import { ModalPlugin } from './useModal'
|
|
13
11
|
import { ToastPlugin } from './useToast'
|
|
14
12
|
import '@oddbird/popover-polyfill'
|
|
15
13
|
|
|
@@ -29,7 +27,6 @@ export const BagelVue: Plugin<BagelOptions> = {
|
|
|
29
27
|
// Install UI plugins
|
|
30
28
|
app.use(lightboxPlugin)
|
|
31
29
|
app.use(DialogPlugin)
|
|
32
|
-
app.use(ModalPlugin)
|
|
33
30
|
app.use(ToastPlugin, options.toast || {})
|
|
34
31
|
|
|
35
32
|
// Install FloatingVue for tooltips/popovers
|
|
@@ -46,18 +43,6 @@ export const BagelVue: Plugin<BagelOptions> = {
|
|
|
46
43
|
// Setup i18n
|
|
47
44
|
const i18n = createI18n(options.i18n || {})
|
|
48
45
|
app.use(i18n as any)
|
|
49
|
-
|
|
50
|
-
// Bridge locale into @bagelink/utils
|
|
51
|
-
configure({
|
|
52
|
-
locale: () => {
|
|
53
|
-
try {
|
|
54
|
-
const { locale } = getI18n().global
|
|
55
|
-
return typeof locale === 'string' ? locale : locale.value
|
|
56
|
-
} catch {
|
|
57
|
-
return 'en'
|
|
58
|
-
}
|
|
59
|
-
},
|
|
60
|
-
})
|
|
61
46
|
},
|
|
62
47
|
}
|
|
63
48
|
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
/* App-level layout patterns — extracted from theme.css (June 2026)
|
|
2
|
+
* These are application-specific rules, not design tokens or reusable utilities.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
.popup {
|
|
6
|
+
border-radius: 15px;
|
|
7
|
+
background: var(--bgl-popup-bg);
|
|
8
|
+
box-shadow: 0 1px 2px 0 rgb(0 0 0 / 10%);
|
|
9
|
+
padding: 2rem;
|
|
10
|
+
min-width: 300px;
|
|
11
|
+
text-align: center;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.tabs {
|
|
15
|
+
column-gap: 1rem;
|
|
16
|
+
margin-top: 20px;
|
|
17
|
+
margin-bottom: -2rem;
|
|
18
|
+
border-top: 1px solid var(--bgl-border-color);
|
|
19
|
+
width: calc(100% + 4rem);
|
|
20
|
+
margin-inline-start: -2rem;
|
|
21
|
+
padding-inline-start: 2rem;
|
|
22
|
+
overflow: auto;
|
|
23
|
+
display: flex;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.tab,
|
|
27
|
+
.router-tab {
|
|
28
|
+
font-size: 14px;
|
|
29
|
+
font-weight: 600;
|
|
30
|
+
line-height: 2.5;
|
|
31
|
+
cursor: pointer;
|
|
32
|
+
transition: var(--bgl-transition);
|
|
33
|
+
border-bottom: 2px solid transparent;
|
|
34
|
+
padding: 0 5px;
|
|
35
|
+
white-space: nowrap;
|
|
36
|
+
text-decoration: none;
|
|
37
|
+
color: inherit;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.tab.active,
|
|
41
|
+
.router-tab.router-link-active {
|
|
42
|
+
color: var(--bgl-primary);
|
|
43
|
+
border-bottom: 2px solid var(--bgl-primary);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.tab:hover,
|
|
47
|
+
.router-tab:hover {
|
|
48
|
+
color: var(--bgl-primary);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.tab:active,
|
|
52
|
+
.router-tab:active {
|
|
53
|
+
filter: brightness(70%);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.entity-container {
|
|
57
|
+
display: grid;
|
|
58
|
+
height: 100%;
|
|
59
|
+
grid-template-columns: minmax(300px, 1fr) 3fr;
|
|
60
|
+
grid-gap: 1rem;
|
|
61
|
+
column-gap: 1rem;
|
|
62
|
+
grid-template-rows: 1fr;
|
|
63
|
+
grid-template-areas: 'list-view detail-view';
|
|
64
|
+
transition: grid-template-columns 0.4s cubic-bezier(0.79, 0.01, 0.34, 0.99);
|
|
65
|
+
transition:
|
|
66
|
+
grid-template-columns 0.4s cubic-bezier(0.79, 0.01, 0.34, 0.99),
|
|
67
|
+
-ms-grid-columns 0.4s cubic-bezier(0.79, 0.01, 0.34, 0.99);
|
|
68
|
+
transition: all 0.5s cubic-bezier(0.79, 0.01, 0.34, 0.99);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.detail-main {
|
|
72
|
+
overflow-y: auto;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.content-row p {
|
|
76
|
+
margin: 0 0 10px 0;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.id {
|
|
80
|
+
color: var(--bgl-gray);
|
|
81
|
+
font-size: 9px;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.field {
|
|
85
|
+
--field-count: 1;
|
|
86
|
+
--width: calc(100% / var(--field-count));
|
|
87
|
+
grid-auto-columns: minmax(var(--width), var(--width));
|
|
88
|
+
font-size: 10px;
|
|
89
|
+
text-align: start;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.detail-view-inner {
|
|
93
|
+
display: grid;
|
|
94
|
+
height: 100%;
|
|
95
|
+
overflow: hidden;
|
|
96
|
+
grid-template-rows: max-content 1fr;
|
|
97
|
+
gap: 1rem;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.detail-view-inner-wrap {
|
|
101
|
+
height: 100%;
|
|
102
|
+
overflow: hidden;
|
|
103
|
+
transition: var(--bgl-transition);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.table-list-wrap {
|
|
107
|
+
overflow: auto;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.copy-url {
|
|
111
|
+
background-color: var(--bgl-gray-light);
|
|
112
|
+
border-radius: var(--bgl-btn-border-radius);
|
|
113
|
+
padding: 0.5rem 1rem;
|
|
114
|
+
align-items: center;
|
|
115
|
+
justify-content: flex-start;
|
|
116
|
+
margin-bottom: 1rem;
|
|
117
|
+
display: flex;
|
|
118
|
+
justify-content: space-between;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.copy-url a {
|
|
122
|
+
margin: 0;
|
|
123
|
+
font-size: 12px;
|
|
124
|
+
opacity: 0.8;
|
|
125
|
+
color: var(--bgl-text-color);
|
|
126
|
+
word-break: break-all;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.list-view {
|
|
130
|
+
grid-area: list-view;
|
|
131
|
+
grid-template-areas: 'list-header''list-content';
|
|
132
|
+
grid-template-columns: 1fr;
|
|
133
|
+
overflow-y: auto;
|
|
134
|
+
grid-template-rows: max-content 1fr;
|
|
135
|
+
transition: var(--bgl-transition-ease);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.shekel {
|
|
139
|
+
line-height: 0;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.view-wrapper {
|
|
143
|
+
height: 100%;
|
|
144
|
+
position: relative;
|
|
145
|
+
overflow: hidden;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.extraOptions {
|
|
149
|
+
max-height: 30px;
|
|
150
|
+
overflow: hidden;
|
|
151
|
+
transition: all 0.2s 30s ease;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.extraOptions:hover {
|
|
155
|
+
max-height: 200vh;
|
|
156
|
+
transition: 0.2s all 0.2s ease;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
@media screen and (max-width: 1000px) {
|
|
160
|
+
.entity-container {
|
|
161
|
+
grid-template-columns: minmax(22vw, 1fr) 2fr;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
@media screen and (max-width: 910px) {
|
|
166
|
+
.tab {
|
|
167
|
+
font-size: 12px;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.entity-container {
|
|
171
|
+
grid-template-columns: 1fr;
|
|
172
|
+
gap: 0;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
.detail-view-inner {
|
|
176
|
+
border-radius: var(--bgl-card-border-radius);
|
|
177
|
+
background: var(--bgl-box-bg);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
.detail-view-inner-wrap {
|
|
181
|
+
position: absolute;
|
|
182
|
+
height: 100%;
|
|
183
|
+
width: 100%;
|
|
184
|
+
background: var(--bgl-bg);
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
.detail-view-inner-wrap.bgl_card {
|
|
188
|
+
background: var(--bgl-box-bg);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
.bgl_card {
|
|
192
|
+
padding: 1rem 1rem;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.tabs {
|
|
196
|
+
column-gap: 10px;
|
|
197
|
+
margin-top: 10px;
|
|
198
|
+
margin-bottom: -15px;
|
|
199
|
+
box-sizing: border-box;
|
|
200
|
+
margin-inline-start: -1rem;
|
|
201
|
+
padding-inline-start: 1rem;
|
|
202
|
+
max-width: calc(100vw - 2rem);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
.popup {
|
|
206
|
+
border-radius: 15px;
|
|
207
|
+
background: var(--bgl-popup-bg);
|
|
208
|
+
box-shadow: 0 1px 2px 0 rgb(0 0 0 / 10%);
|
|
209
|
+
padding: 2rem;
|
|
210
|
+
min-width: 0;
|
|
211
|
+
max-width: 90%;
|
|
212
|
+
max-height: 90vh;
|
|
213
|
+
overflow-x: auto;
|
|
214
|
+
text-align: center;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
.detail-main {
|
|
218
|
+
overflow-y: unset;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
.detail-section {
|
|
222
|
+
height: fit-content;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
.field {
|
|
226
|
+
display: flex;
|
|
227
|
+
flex-wrap: wrap;
|
|
228
|
+
gap: 0.5rem;
|
|
229
|
+
align-items: center;
|
|
230
|
+
}
|
|
231
|
+
}
|