@bagelink/vue 1.14.13 → 1.15.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.
- 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/Badge.vue.d.ts.map +1 -1
- package/dist/components/Btn.vue.d.ts +1 -1
- package/dist/components/Btn.vue.d.ts.map +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/Dropdown.vue.d.ts.map +1 -1
- 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/ListItem.vue.d.ts.map +1 -1
- package/dist/components/MapEmbed/Index.vue.d.ts.map +1 -1
- package/dist/components/Modal.vue.d.ts +0 -1
- package/dist/components/Pagination.vue.d.ts.map +1 -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/Swiper.vue.d.ts.map +1 -1
- 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/index.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/AppContent.vue.d.ts.map +1 -1
- package/dist/components/layout/AppLayout.vue.d.ts +0 -2
- package/dist/components/layout/AppLayout.vue.d.ts.map +1 -1
- package/dist/components/layout/AppSidebar.vue.d.ts +1 -5
- package/dist/components/layout/AppSidebar.vue.d.ts.map +1 -1
- package/dist/components/layout/Panel.vue.d.ts.map +1 -1
- package/dist/components/layout/Resizable.vue.d.ts.map +1 -1
- package/dist/components/layout/Skeleton.vue.d.ts.map +1 -1
- package/dist/components/layout/TabsNav.vue.d.ts +1 -12
- package/dist/components/layout/TabsNav.vue.d.ts.map +1 -1
- package/dist/components/layout/appLayoutContext.d.ts +24 -0
- package/dist/components/layout/appLayoutContext.d.ts.map +1 -0
- package/dist/components/layout/index.d.ts.map +1 -1
- package/dist/components/lightbox/Lightbox.vue.d.ts.map +1 -1
- package/dist/composables/index.d.ts.map +1 -1
- package/dist/composables/useDevice.d.ts.map +1 -1
- package/dist/composables/useEscapeKey.d.ts +12 -0
- package/dist/composables/useEscapeKey.d.ts.map +1 -0
- package/dist/composables/useSchemaField.d.ts.map +1 -1
- package/dist/composables/useTheme.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/form-flow/FormFlow.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/form-flow/form-flow.d.ts.map +1 -1
- package/dist/i18n/index.d.ts +0 -838
- package/dist/index.cjs +245 -222
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +42201 -51162
- 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/BagelForm.d.ts.map +1 -1
- package/dist/types/BtnOptions.d.ts.map +1 -1
- 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/constants.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 +3 -10
- package/src/components/AccordionItem.vue +5 -5
- package/src/components/Alert.vue +37 -16
- package/src/components/Avatar.vue +2 -1
- package/src/components/Badge.vue +145 -22
- package/src/components/BglVideo.vue +4 -4
- package/src/components/Btn.vue +81 -69
- package/src/components/Card.vue +7 -6
- package/src/components/Dropdown.vue +7 -14
- package/src/components/FieldSetVue.vue +2 -2
- package/src/components/FilterQuery.vue +3 -3
- package/src/components/Image.vue +5 -3
- package/src/components/JSONSchema.vue +4 -4
- package/src/components/JsonBuilder.vue +3 -3
- package/src/components/ListItem.vue +2 -4
- package/src/components/MapEmbed/Index.vue +18 -17
- package/src/components/NavBar.vue +2 -2
- package/src/components/Spreadsheet/Index.vue +4 -4
- package/src/components/Spreadsheet/SpreadsheetTable.vue +10 -10
- package/src/components/Swiper.vue +3 -1
- package/src/components/Toast.vue +57 -36
- package/src/components/calendar/CalendarPopover.vue +1 -1
- package/src/components/calendar/Index.vue +5 -5
- 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 +8 -8
- package/src/components/dataTable/DataTable.vue +68 -10
- package/src/components/form/index.ts +0 -4
- 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 +15 -15
- package/src/components/form/inputs/NumberInput.vue +11 -11
- package/src/components/form/inputs/OTP.vue +4 -4
- 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 +16 -16
- 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 +12 -12
- package/src/components/form/inputs/TextInput.vue +11 -11
- package/src/components/form/inputs/ToggleInput.vue +11 -11
- package/src/components/form/inputs/Upload/upload.css +16 -16
- package/src/components/index.ts +2 -9
- package/src/components/layout/AppContent.vue +5 -19
- package/src/components/layout/AppLayout.vue +47 -18
- package/src/components/layout/AppSidebar.vue +19 -36
- package/src/components/layout/BottomMenu.vue +1 -1
- package/src/components/layout/Resizable.vue +5 -2
- package/src/components/layout/Skeleton.vue +5 -4
- package/src/components/layout/TabsNav.vue +23 -23
- package/src/components/layout/appLayoutContext.ts +44 -0
- package/src/components/layout/index.ts +2 -0
- package/src/components/lightbox/Lightbox.vue +3 -9
- package/src/composables/index.ts +1 -0
- package/src/composables/useDevice.ts +2 -1
- package/src/composables/useEscapeKey.ts +56 -0
- package/src/composables/useSchemaField.ts +2 -17
- package/src/composables/useTheme.ts +23 -19
- package/src/form-flow/FormFlow.vue +2 -0
- package/src/form-flow/form-flow.ts +7 -0
- package/src/index.ts +0 -3
- 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 +44 -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/BagelForm.ts +46 -151
- package/src/types/BtnOptions.ts +5 -3
- 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/constants.ts +7 -0
- package/src/utils/date.ts +482 -0
- package/src/utils/fetch.ts +128 -0
- package/src/utils/index.ts +54 -3
- package/src/utils/sizeParsing.ts +5 -5
- package/src/utils/string.ts +56 -0
- package/vite.config.ts +5 -1
- package/bin/generateFormSchema.ts +0 -1035
- package/bin/utils.ts +0 -223
- package/src/components/Carousel.vue +0 -724
- package/src/components/ImportData.vue +0 -1749
- package/src/components/Modal.vue +0 -184
- package/src/components/ModalConfirm.vue +0 -42
- package/src/components/ModalForm.vue +0 -102
- package/src/components/Pill.vue +0 -149
- package/src/components/Slider.vue +0 -1446
- package/src/components/Title.vue +0 -23
- package/src/components/ToolBar.vue +0 -9
- package/src/components/form/BagelForm.vue +0 -219
- package/src/components/form/BglFieldSet.vue +0 -14
- package/src/components/form/BglMultiStepForm.vue +0 -469
- package/src/components/form/FieldArray.vue +0 -422
- package/src/components/form/useBagelFormState.ts +0 -76
- package/src/composables/useFormField.ts +0 -38
- package/src/dialog/DialogOLD.vue +0 -358
- 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
- package/src/utils/BagelFormUtils.ts +0 -684
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
:root {
|
|
2
|
-
--transition-ease-in: cubic-bezier(0.1, 0.5, 0.33, 1);
|
|
3
|
-
--transition-ease-out: cubic-bezier(1, 0.33, 0.5, 0.1);
|
|
2
|
+
--bgl-transition-ease-in: cubic-bezier(0.1, 0.5, 0.33, 1);
|
|
3
|
+
--bgl-transition-ease-out: cubic-bezier(1, 0.33, 0.5, 0.1);
|
|
4
4
|
}
|
|
5
5
|
|
|
6
6
|
.transition,
|
|
@@ -27,11 +27,11 @@
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
.scale-enter-active {
|
|
30
|
-
transition: all 0.2s var(--transition-ease-in);
|
|
30
|
+
transition: all 0.2s var(--bgl-transition-ease-in);
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
.scale-leave-active {
|
|
34
|
-
transition: all 0.2s var(--transition-ease-out);
|
|
34
|
+
transition: all 0.2s var(--bgl-transition-ease-out);
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
.scale-enter-from,
|
package/src/types/BagelForm.ts
CHANGED
|
@@ -1,83 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Schema field types used by DataTable, DataPreview, useSchemaField and elementUtils.
|
|
3
|
+
* (The BagelForm form-rendering system was removed — use FormFlow with defineSchema.)
|
|
4
|
+
*/
|
|
5
|
+
import type { Paths, Get, OmitIndexSignature } from 'type-fest'
|
|
3
6
|
import type { ToString } from 'type-fest/source/internal'
|
|
4
7
|
import type { LiteralStringUnion } from 'type-fest/source/literal-union'
|
|
5
8
|
import type { PathsOptions, DefaultPathsOptions } from 'type-fest/source/paths'
|
|
6
9
|
import type { VNode } from 'vue'
|
|
7
10
|
|
|
8
|
-
type ArrayAttrs = any
|
|
9
|
-
interface Option { label: string, value: any }
|
|
10
|
-
|
|
11
11
|
// BagelInputShellProps is exported from components/form/inputs/bagelInputShell.ts
|
|
12
12
|
// Do not re-export here to avoid duplicate export in src/index.ts
|
|
13
13
|
import type { BagelInputShellProps } from '../components/form/inputs/bagelInputShell'
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
= | string
|
|
17
|
-
| number
|
|
18
|
-
| boolean
|
|
19
|
-
| undefined
|
|
20
|
-
| { [key: string]: any }
|
|
21
|
-
|
|
22
|
-
export type AttributeFn<T, P extends Path<T>> = (
|
|
23
|
-
field: SmartFieldVal<T, P>,
|
|
24
|
-
row?: T
|
|
25
|
-
) => AttributeValue
|
|
26
|
-
|
|
27
|
-
export interface Attributes<T, P extends Path<T>> {
|
|
28
|
-
[key: string]: AttributeValue | AttributeFn<T, P>
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export type BagelFieldOptions<T, P extends Path<T>>
|
|
32
|
-
= | string
|
|
33
|
-
| (
|
|
34
|
-
| {
|
|
35
|
-
label?: string
|
|
36
|
-
value: string | number
|
|
37
|
-
}
|
|
38
|
-
| string
|
|
39
|
-
| number
|
|
40
|
-
| boolean
|
|
41
|
-
| { [key: string]: any }
|
|
42
|
-
)[]
|
|
43
|
-
| ((val?: SmartFieldVal<T, P>, rowData?: T) => Option[] | ((query: string) => Promise<Option[]>))
|
|
44
|
-
| ((query: string, val?: SmartFieldVal<T, P>, rowData?: T) => Promise<Option[]>)
|
|
45
|
-
|
|
46
|
-
export type VIfType<T, P extends Path<T>>
|
|
47
|
-
= | string
|
|
48
|
-
| boolean
|
|
49
|
-
| ((val?: SmartFieldVal<T, P>, rowData?: T) => boolean)
|
|
50
|
-
|
|
51
|
-
export type ValidationFn<T, P extends Path<T>> = (
|
|
52
|
-
val?: SmartFieldVal<T, P>,
|
|
53
|
-
rowData?: T
|
|
54
|
-
) => string | undefined
|
|
15
|
+
interface Option { label: string, value: any }
|
|
55
16
|
|
|
56
|
-
|
|
57
|
-
maxRecursionDepth: 0
|
|
58
|
-
}
|
|
17
|
+
// ---------- Path resolution ----------
|
|
59
18
|
|
|
60
19
|
export type _Path<
|
|
61
20
|
T,
|
|
62
21
|
PO extends PathsOptions = DefaultPathsOptions,
|
|
63
22
|
> = ToString<Paths<OmitIndexSignature<T>, PO>>
|
|
64
23
|
|
|
65
|
-
// Utility type for open-ended object paths
|
|
66
|
-
export type OpenEndedPath<T>
|
|
67
|
-
= keyof T extends infer K
|
|
68
|
-
? K extends keyof T
|
|
69
|
-
? T[K] extends { [key: string]: any }
|
|
70
|
-
? `${K & string}.${string}`
|
|
71
|
-
: never
|
|
72
|
-
: never
|
|
73
|
-
: never
|
|
74
|
-
|
|
75
24
|
// Helper type to get paths for index signature properties
|
|
76
25
|
type IndexSignaturePaths<T> = {
|
|
77
26
|
[K in keyof T]: T[K] extends { [key: string]: any }
|
|
78
|
-
?
|
|
79
|
-
? `${K & string}.${string}`
|
|
80
|
-
: never
|
|
27
|
+
? `${K & string}.${string}`
|
|
81
28
|
: never
|
|
82
29
|
}[keyof T]
|
|
83
30
|
|
|
@@ -87,7 +34,11 @@ export type Path<T, PO extends PathsOptions = DefaultPathsOptions>
|
|
|
87
34
|
? LiteralStringUnion<_Path<T, PO>>
|
|
88
35
|
: _Path<T, PO> | IndexSignaturePaths<T> | `${keyof T & string}.more_info.${string}`
|
|
89
36
|
|
|
90
|
-
|
|
37
|
+
/** The value type at path P in object T. Falls back to unknown if resolution fails. */
|
|
38
|
+
export type FieldVal<T, P extends Path<T>>
|
|
39
|
+
= unknown extends Get<T, P> ? unknown : Get<T, P>
|
|
40
|
+
|
|
41
|
+
/** Field value type that preserves type information when possible. */
|
|
91
42
|
export type SmartFieldVal<T, P extends Path<T>>
|
|
92
43
|
= P extends string
|
|
93
44
|
? P extends keyof T
|
|
@@ -95,8 +46,25 @@ export type SmartFieldVal<T, P extends Path<T>>
|
|
|
95
46
|
: any
|
|
96
47
|
: FieldVal<T, P>
|
|
97
48
|
|
|
98
|
-
//
|
|
99
|
-
|
|
49
|
+
// ---------- Field callbacks & attributes ----------
|
|
50
|
+
|
|
51
|
+
export type AttributeValue
|
|
52
|
+
= | string
|
|
53
|
+
| number
|
|
54
|
+
| boolean
|
|
55
|
+
| undefined
|
|
56
|
+
| { [key: string]: any }
|
|
57
|
+
|
|
58
|
+
export type AttributeFn<T, P extends Path<T>> = (
|
|
59
|
+
field: SmartFieldVal<T, P>,
|
|
60
|
+
row?: T
|
|
61
|
+
) => AttributeValue
|
|
62
|
+
|
|
63
|
+
export interface Attributes<T, P extends Path<T>> {
|
|
64
|
+
[key: string]: AttributeValue | AttributeFn<T, P>
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export type FieldOptions<T, P extends Path<T>>
|
|
100
68
|
= | string
|
|
101
69
|
| (
|
|
102
70
|
| {
|
|
@@ -111,43 +79,27 @@ export type SmartBagelFieldOptions<T, P extends Path<T>>
|
|
|
111
79
|
| ((val?: SmartFieldVal<T, P>, rowData?: T) => Option[] | ((query: string) => Promise<Option[]>))
|
|
112
80
|
| ((query: string, val?: SmartFieldVal<T, P>, rowData?: T) => Promise<Option[]>)
|
|
113
81
|
|
|
114
|
-
|
|
115
|
-
export type SmartVIfType<T, P extends Path<T>>
|
|
82
|
+
export type VIfType<T, P extends Path<T>>
|
|
116
83
|
= | string
|
|
117
84
|
| boolean
|
|
118
85
|
| ((val?: SmartFieldVal<T, P>, rowData?: T) => boolean)
|
|
119
86
|
|
|
120
|
-
|
|
121
|
-
export type SmartValidationFn<T, P extends Path<T>> = (
|
|
87
|
+
export type ValidationFn<T, P extends Path<T>> = (
|
|
122
88
|
val?: SmartFieldVal<T, P>,
|
|
123
89
|
rowData?: T
|
|
124
90
|
) => string | undefined
|
|
125
91
|
|
|
126
|
-
|
|
127
|
-
export type SmartAttributeFn<T, P extends Path<T>> = (
|
|
128
|
-
field: SmartFieldVal<T, P>,
|
|
129
|
-
row?: T
|
|
130
|
-
) => AttributeValue
|
|
131
|
-
|
|
132
|
-
// Smart transform function that preserves type information
|
|
133
|
-
export type SmartTransformFn<T, P extends Path<T>> = (
|
|
92
|
+
export type TransformFn<T, P extends Path<T>> = (
|
|
134
93
|
val?: SmartFieldVal<T, P>,
|
|
135
94
|
rowData?: T
|
|
136
95
|
) => any
|
|
137
96
|
|
|
138
|
-
|
|
139
|
-
export type SmartUpdateFn<T, P extends Path<T>> = (
|
|
97
|
+
export type UpdateFn<T, P extends Path<T>> = (
|
|
140
98
|
val?: SmartFieldVal<T, P>,
|
|
141
99
|
rowData?: T
|
|
142
100
|
) => unknown
|
|
143
101
|
|
|
144
|
-
|
|
145
|
-
// Fall back to unknown if type resolution fails
|
|
146
|
-
export type FieldVal<T, P extends Path<T>>
|
|
147
|
-
= unknown extends Get<T, P> ? unknown : Get<T, P>
|
|
148
|
-
|
|
149
|
-
/** If path P in T is an array, this gives the array's element type. */
|
|
150
|
-
export type ArrayFieldVal<T, P extends Path<T>> = IterableElement<Get<T, P>>
|
|
102
|
+
// ---------- Schema fields ----------
|
|
151
103
|
|
|
152
104
|
export type VNodeFn<T, P extends Path<T>> = (props: {
|
|
153
105
|
row?: T
|
|
@@ -189,50 +141,26 @@ export interface BaseBagelField<
|
|
|
189
141
|
'id'?: P
|
|
190
142
|
'label'?: string
|
|
191
143
|
'placeholder'?: string
|
|
192
|
-
'class'?: AttributeValue |
|
|
144
|
+
'class'?: AttributeValue | AttributeFn<T, P>
|
|
193
145
|
'attrs'?: Attributes<T, P>
|
|
194
146
|
'required'?: boolean
|
|
195
147
|
'disabled'?: boolean
|
|
196
148
|
'helptext'?: string
|
|
197
|
-
'options'?:
|
|
149
|
+
'options'?: FieldOptions<T, P>
|
|
198
150
|
'children'?: SchemaChild<T, Path<T, PO>, PO>[]
|
|
199
151
|
'slots'?: { [key: string]: SchemaChild<T, Path<T, PO>, PO>[] }
|
|
200
152
|
'defaultValue'?: any
|
|
201
|
-
'vIf'?:
|
|
202
|
-
'v-if'?:
|
|
203
|
-
'transform'?:
|
|
204
|
-
'onUpdate'?:
|
|
205
|
-
'validate'?:
|
|
153
|
+
'vIf'?: VIfType<T, P>
|
|
154
|
+
'v-if'?: VIfType<T, P>
|
|
155
|
+
'transform'?: TransformFn<T, P>
|
|
156
|
+
'onUpdate'?: UpdateFn<T, P>
|
|
157
|
+
'validate'?: ValidationFn<T, P>
|
|
206
158
|
}
|
|
207
159
|
|
|
208
|
-
export type _MappedBaseBagelField<
|
|
209
|
-
T,
|
|
210
|
-
PO extends PathsOptions = DefaultPathsOptions,
|
|
211
|
-
> = {
|
|
212
|
-
[P in Path<T, PO>]: BaseBagelField<T, P, PO>
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
export type MappedBaseBagelFieldP<
|
|
216
|
-
T,
|
|
217
|
-
P extends Path<T, PO>,
|
|
218
|
-
PO extends PathsOptions = DefaultPathsOptions,
|
|
219
|
-
> = _MappedBaseBagelField<T, PO>[P]
|
|
220
|
-
|
|
221
|
-
export type FieldByP<
|
|
222
|
-
T,
|
|
223
|
-
P extends Path<T, PO>,
|
|
224
|
-
PO extends PathsOptions = DefaultPathsOptions,
|
|
225
|
-
> = MappedBaseBagelFieldP<T, P, PO>
|
|
226
|
-
|
|
227
160
|
export type Field<
|
|
228
161
|
T,
|
|
229
162
|
PO extends PathsOptions = DefaultPathsOptions,
|
|
230
|
-
> =
|
|
231
|
-
|
|
232
|
-
export type BglFieldT<
|
|
233
|
-
T,
|
|
234
|
-
PO extends PathsOptions = DefaultPathsOptions,
|
|
235
|
-
> = Field<T, PO>
|
|
163
|
+
> = ValidBaseBagelField<T, PO>
|
|
236
164
|
|
|
237
165
|
export type SchemaField<
|
|
238
166
|
T,
|
|
@@ -244,40 +172,7 @@ export type BglFormSchemaT<
|
|
|
244
172
|
PO extends PathsOptions = DefaultPathsOptions,
|
|
245
173
|
> = (SchemaField<T, PO> | BaseBagelField<T, Path<T, PO>, PO>)[]
|
|
246
174
|
|
|
247
|
-
|
|
248
|
-
T,
|
|
249
|
-
PO extends PathsOptions = ShallowPathsOptions,
|
|
250
|
-
> = (SchemaField<T, PO> | BaseBagelField<T, Path<T, PO>, PO>)[]
|
|
251
|
-
|
|
252
|
-
export interface InputBagelField<
|
|
253
|
-
T,
|
|
254
|
-
P extends Path<T, PO>,
|
|
255
|
-
PO extends PathsOptions = DefaultPathsOptions
|
|
256
|
-
>
|
|
257
|
-
extends BaseBagelField<T, P, PO> {
|
|
258
|
-
$el: 'text' | any
|
|
259
|
-
type?: string
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
export interface SelectBagelField<
|
|
263
|
-
T,
|
|
264
|
-
P extends Path<T, PO>,
|
|
265
|
-
PO extends PathsOptions = DefaultPathsOptions,
|
|
266
|
-
>
|
|
267
|
-
extends BaseBagelField<T, P, PO> {
|
|
268
|
-
$el: 'select' | any
|
|
269
|
-
type?: string
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
export interface ArrayBagelField<
|
|
273
|
-
T,
|
|
274
|
-
P extends Path<T, PO>,
|
|
275
|
-
PO extends PathsOptions = DefaultPathsOptions,
|
|
276
|
-
>
|
|
277
|
-
extends BaseBagelField<T, P, PO> {
|
|
278
|
-
$el: 'array' | any
|
|
279
|
-
attrs?: ArrayAttrs
|
|
280
|
-
}
|
|
175
|
+
// ---------- Input component contracts ----------
|
|
281
176
|
|
|
282
177
|
export interface ValidateInputBaseT {
|
|
283
178
|
validate?: ValidationFn<{ [key: string]: unknown }, string>
|
package/src/types/BtnOptions.ts
CHANGED
|
@@ -3,18 +3,20 @@ import type { IconType, ThemeType } from '.'
|
|
|
3
3
|
export interface BtnOptions {
|
|
4
4
|
onClick?: () => void
|
|
5
5
|
color?: ThemeType
|
|
6
|
-
theme?: ThemeType
|
|
7
6
|
disabled?: boolean
|
|
8
7
|
icon?: IconType
|
|
8
|
+
variant?: 'solid' | 'flat' | 'outline'
|
|
9
9
|
flat?: boolean
|
|
10
|
+
outline?: boolean
|
|
11
|
+
/** @deprecated Use `outline` */
|
|
12
|
+
border?: boolean
|
|
10
13
|
thin?: boolean
|
|
11
14
|
type?: 'button' | 'submit' | 'reset'
|
|
12
15
|
loading?: boolean
|
|
13
16
|
role?: string
|
|
14
17
|
value?: string
|
|
15
|
-
border?: boolean
|
|
16
18
|
}
|
|
17
19
|
|
|
18
20
|
export type UnitSize = 'px' | 'rem' | 'vh' | 'vw'
|
|
19
|
-
export type SizeType = '
|
|
21
|
+
export type SizeType = 'xs' | 'sm' | 'md' | 'lg' | 'xl'
|
|
20
22
|
export type SizeUnit = `${number}` | number | `${number}${UnitSize}`
|
package/src/types/TableSchema.ts
CHANGED
package/src/types/index.ts
CHANGED
|
@@ -4,11 +4,6 @@ export type { AvailabilitySlot, CalendarEvent, CalendarProps, CalendarView, Cale
|
|
|
4
4
|
|
|
5
5
|
export type { IconType, MaterialIcons }
|
|
6
6
|
|
|
7
|
-
export type {
|
|
8
|
-
ModalComponentProps,
|
|
9
|
-
ModalComponentProps as ModalFormComponentProps,
|
|
10
|
-
ModalOptions,
|
|
11
|
-
} from '../plugins/modalTypes'
|
|
12
7
|
export type { AddToCalendarEvent } from '../utils/calendar/types'
|
|
13
8
|
export * from './BagelForm'
|
|
14
9
|
export * from './BtnOptions'
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import type { TimeUnit } from '../../types/timeAgoT'
|
|
2
|
-
import { timeDelta, formatDate, fmtDate, handleTimezone, getDatePartsMap, utc, local } from '@bagelink/utils'
|
|
3
2
|
import { getI18n } from '../../i18n'
|
|
4
3
|
|
|
5
|
-
export { fmtDate, formatDate, getDatePartsMap, handleTimezone, timeDelta, utc, local }
|
|
6
|
-
export type { DateTimeAcceptedFormats, FormatDateOptions } from '
|
|
4
|
+
export { fmtDate, formatDate, getDatePartsMap, handleTimezone, timeDelta, utc, local } from '../date'
|
|
5
|
+
export type { DateTimeAcceptedFormats, FormatDateOptions } from '../date'
|
|
7
6
|
|
|
8
7
|
type TimeAgoLang = 'en' | 'es' | 'fr' | 'he' | 'it' | 'ru'
|
|
9
8
|
|
package/src/utils/constants.ts
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The single mobile breakpoint, matching the CSS media query
|
|
3
|
+
* `@media (max-width: 910px)` used by all `m_*` utilities.
|
|
4
|
+
* A viewport is "mobile" when `window.innerWidth <= MOBILE_BREAKPOINT`.
|
|
5
|
+
*/
|
|
6
|
+
export const MOBILE_BREAKPOINT = 910
|
|
7
|
+
|
|
1
8
|
export const IMAGE_FORMATS = ['jpeg', 'png', 'webp', 'avif', 'apng', 'gif', 'avifs', 'svg', 'bmp', 'jpg', 'heic', 'heif', 'ico', 'cur', 'tif', 'tiff']
|
|
2
9
|
export const IMAGE_FORMATS_REGEXP = new RegExp(`(${IMAGE_FORMATS.join('|')})$`, 'i')
|
|
3
10
|
export const VIDEO_FORMATS = ['mp4', 'webm', 'ogg', 'mov', 'avi', 'flv', 'wmv', 'mkv', 'ts', 'm3u8']
|