@bagelink/vue 1.4.81 → 1.4.87
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/Badge.vue.d.ts +2 -2
- package/dist/components/Badge.vue.d.ts.map +1 -1
- package/dist/components/Btn.vue.d.ts +4 -3
- package/dist/components/Btn.vue.d.ts.map +1 -1
- package/dist/components/Pill.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/SelectInput.vue.d.ts.map +1 -1
- package/dist/index.cjs +5 -5
- package/dist/index.mjs +5 -5
- package/dist/style.css +1 -1
- package/dist/types/BagelForm.d.ts +11 -1
- package/dist/types/BagelForm.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/elementUtils.d.ts +30 -39
- package/dist/utils/elementUtils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/Avatar.vue +1 -1
- package/src/components/Badge.vue +1059 -26
- package/src/components/Btn.vue +26 -37
- package/src/components/Card.vue +1 -1
- package/src/components/Pill.vue +203 -8
- package/src/components/dataTable/DataTable.vue +1 -1
- package/src/components/form/inputs/DatePicker.vue +1 -1
- package/src/components/form/inputs/SelectInput.vue +1 -1
- package/src/styles/appearance.css +202 -1356
- package/src/styles/bagel.css +2 -0
- package/src/styles/btnColors.css +847 -0
- package/src/styles/colors.css +3739 -0
- package/src/styles/dark.css +2 -2
- package/src/styles/mobileColors.css +3741 -0
- package/src/styles/text.css +2294 -783
- package/src/styles/theme.css +419 -434
- package/src/types/BagelForm.ts +15 -1
- package/src/types/index.ts +46 -11
- package/src/utils/elementUtils.ts +63 -88
package/src/types/BagelForm.ts
CHANGED
|
@@ -73,11 +73,25 @@ export type VNodeFn<T, P extends Path<T>> = (props: {
|
|
|
73
73
|
field: BaseBagelField<T, P>
|
|
74
74
|
}) => VNode
|
|
75
75
|
|
|
76
|
+
export interface ElementField<
|
|
77
|
+
T,
|
|
78
|
+
PO extends PathsOptions = DefaultPathsOptions,
|
|
79
|
+
> {
|
|
80
|
+
$el: string
|
|
81
|
+
id?: Path<T, PO> | string
|
|
82
|
+
class?: any
|
|
83
|
+
vIf?: any
|
|
84
|
+
style?: Record<string, any>
|
|
85
|
+
attrs?: Record<string, any>
|
|
86
|
+
onClick?: () => void
|
|
87
|
+
children?: ElementField<T, PO>[]
|
|
88
|
+
}
|
|
89
|
+
|
|
76
90
|
export type SchemaChild<
|
|
77
91
|
T,
|
|
78
92
|
P extends Path<T, PO>,
|
|
79
93
|
PO extends PathsOptions = DefaultPathsOptions,
|
|
80
|
-
> = Field<T, PO> | VNode | VNodeFn<T, P> | string
|
|
94
|
+
> = Field<T, PO> | ElementField<T, PO> | VNode | VNodeFn<T, P> | string
|
|
81
95
|
|
|
82
96
|
export interface BaseBagelField<
|
|
83
97
|
T,
|
package/src/types/index.ts
CHANGED
|
@@ -21,17 +21,52 @@ export type Tab = {
|
|
|
21
21
|
icon?: IconType
|
|
22
22
|
} | string
|
|
23
23
|
|
|
24
|
-
export type ThemeType =
|
|
25
|
-
'
|
|
26
|
-
| 'white'
|
|
27
|
-
| 'red'
|
|
28
|
-
| 'gray'
|
|
29
|
-
| '
|
|
30
|
-
| '
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
24
|
+
export type ThemeType =
|
|
25
|
+
| 'blue' | 'green' | 'red' | 'yellow' | 'purple' | 'brown' | 'orange' | 'turquoise' | 'gray' | 'black' | 'pink'
|
|
26
|
+
| 'primary' | 'white'
|
|
27
|
+
| 'blue-light' | 'green-light' | 'red-light' | 'yellow-light' | 'purple-light' | 'brown-light'
|
|
28
|
+
| 'orange-light' | 'turquoise-light' | 'pink-light' | 'gray-light' | 'primary-light'
|
|
29
|
+
| 'blue-tint' | 'red-tint' | 'primary-tint' | 'black-tint' | 'blue-dark'
|
|
30
|
+
| 'light'
|
|
31
|
+
|
|
32
|
+
// Extended theme type with all percentage variations
|
|
33
|
+
export type ExtendedThemeType =
|
|
34
|
+
// Base colors
|
|
35
|
+
| 'blue' | 'green' | 'red' | 'yellow' | 'purple' | 'brown' | 'orange' | 'turquoise' | 'gray' | 'black' | 'pink'
|
|
36
|
+
| 'primary' | 'white'
|
|
37
|
+
// Legacy light variants
|
|
38
|
+
| 'blue-light' | 'green-light' | 'red-light' | 'yellow-light' | 'purple-light' | 'brown-light'
|
|
39
|
+
| 'orange-light' | 'turquoise-light' | 'pink-light' | 'gray-light' | 'primary-light'
|
|
40
|
+
// Legacy tint variants
|
|
41
|
+
| 'blue-tint' | 'red-tint' | 'primary-tint' | 'black-tint' | 'blue-dark' | 'light'
|
|
42
|
+
// 10% variants (lightest)
|
|
43
|
+
| 'blue-10' | 'green-10' | 'red-10' | 'yellow-10' | 'purple-10' | 'brown-10' | 'orange-10' | 'turquoise-10' | 'gray-10' | 'black-10' | 'pink-10'
|
|
44
|
+
// 20% variants
|
|
45
|
+
| 'blue-20' | 'green-20' | 'red-20' | 'yellow-20' | 'purple-20' | 'brown-20' | 'orange-20' | 'turquoise-20' | 'gray-20' | 'black-20' | 'pink-20'
|
|
46
|
+
// 30% variants
|
|
47
|
+
| 'blue-30' | 'green-30' | 'red-30' | 'yellow-30' | 'purple-30' | 'brown-30' | 'orange-30' | 'turquoise-30' | 'gray-30' | 'black-30' | 'pink-30'
|
|
48
|
+
// 40% variants
|
|
49
|
+
| 'blue-40' | 'green-40' | 'red-40' | 'yellow-40' | 'purple-40' | 'brown-40' | 'orange-40' | 'turquoise-40' | 'gray-40' | 'black-40' | 'pink-40'
|
|
50
|
+
// 50% variants
|
|
51
|
+
| 'blue-50' | 'green-50' | 'red-50' | 'yellow-50' | 'purple-50' | 'brown-50' | 'orange-50' | 'turquoise-50' | 'gray-50' | 'black-50' | 'pink-50'
|
|
52
|
+
// 60% variants
|
|
53
|
+
| 'blue-60' | 'green-60' | 'red-60' | 'yellow-60' | 'purple-60' | 'brown-60' | 'orange-60' | 'turquoise-60' | 'gray-60' | 'black-60' | 'pink-60'
|
|
54
|
+
// 70% variants
|
|
55
|
+
| 'blue-70' | 'green-70' | 'red-70' | 'yellow-70' | 'purple-70' | 'brown-70' | 'orange-70' | 'turquoise-70' | 'gray-70' | 'black-70' | 'pink-70'
|
|
56
|
+
// 80% variants
|
|
57
|
+
| 'blue-80' | 'green-80' | 'red-80' | 'yellow-80' | 'purple-80' | 'brown-80' | 'orange-80' | 'turquoise-80' | 'gray-80' | 'black-80' | 'pink-80'
|
|
58
|
+
// 90% variants
|
|
59
|
+
| 'blue-90' | 'green-90' | 'red-90' | 'yellow-90' | 'purple-90' | 'brown-90' | 'orange-90' | 'turquoise-90' | 'gray-90' | 'black-90' | 'pink-90'
|
|
60
|
+
// 100% variants (same as base)
|
|
61
|
+
| 'blue-100' | 'green-100' | 'red-100' | 'yellow-100' | 'purple-100' | 'brown-100' | 'orange-100' | 'turquoise-100' | 'gray-100' | 'black-100' | 'pink-100'
|
|
62
|
+
// 110% variants (darker)
|
|
63
|
+
| 'blue-110' | 'green-110' | 'red-110' | 'yellow-110' | 'purple-110' | 'brown-110' | 'orange-110' | 'turquoise-110' | 'gray-110' | 'black-110' | 'pink-110'
|
|
64
|
+
// 120% variants
|
|
65
|
+
| 'blue-120' | 'green-120' | 'red-120' | 'yellow-120' | 'purple-120' | 'brown-120' | 'orange-120' | 'turquoise-120' | 'gray-120' | 'black-120' | 'pink-120'
|
|
66
|
+
// 130% variants (darkest)
|
|
67
|
+
| 'blue-130' | 'green-130' | 'red-130' | 'yellow-130' | 'purple-130' | 'brown-130' | 'orange-130' | 'turquoise-130' | 'gray-130' | 'black-130' | 'pink-130'
|
|
68
|
+
// Status colors
|
|
69
|
+
| 'Error' | 'Paid' | 'Active'
|
|
35
70
|
|
|
36
71
|
export type Option =
|
|
37
72
|
| string
|
|
@@ -1,28 +1,14 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { IconType, Option, Path, ElementField } from '@bagelink/vue'
|
|
2
2
|
|
|
3
3
|
export type DefaultPathsOptions = Record<string, any>
|
|
4
4
|
export type PathsOptions = Record<string, any>
|
|
5
5
|
|
|
6
|
-
export
|
|
7
|
-
T,
|
|
8
|
-
P extends Path<T, PO>,
|
|
9
|
-
PO extends PathsOptions = DefaultPathsOptions
|
|
10
|
-
> extends Partial<BaseBagelField<T, P, PO>> {
|
|
11
|
-
$el: string
|
|
12
|
-
id?: P
|
|
13
|
-
class?: string
|
|
14
|
-
vIf?: boolean | (() => boolean)
|
|
15
|
-
style?: Record<string, any>
|
|
16
|
-
attrs?: Record<string, any>
|
|
17
|
-
onClick?: () => void
|
|
18
|
-
children?: BaseElementField<T, any>[]
|
|
19
|
-
}
|
|
6
|
+
export type BaseElementField<T, PO extends PathsOptions = DefaultPathsOptions> = ElementField<T, PO>
|
|
20
7
|
|
|
21
8
|
export interface BtnElementOptions<
|
|
22
9
|
T = any,
|
|
23
|
-
P extends Path<T, PO> = any,
|
|
24
10
|
PO extends PathsOptions = DefaultPathsOptions
|
|
25
|
-
> extends Partial<BaseElementField<T,
|
|
11
|
+
> extends Partial<BaseElementField<T, PO>> {
|
|
26
12
|
text?: string
|
|
27
13
|
variant?: 'primary' | 'secondary' | 'outline' | 'ghost' | 'danger'
|
|
28
14
|
size?: 'sm' | 'md' | 'lg'
|
|
@@ -36,9 +22,8 @@ export interface BtnElementOptions<
|
|
|
36
22
|
|
|
37
23
|
export interface TxtElementOptions<
|
|
38
24
|
T = any,
|
|
39
|
-
P extends Path<T, PO> = any,
|
|
40
25
|
PO extends PathsOptions = DefaultPathsOptions
|
|
41
|
-
> extends Partial<BaseElementField<T,
|
|
26
|
+
> extends Partial<BaseElementField<T, PO>> {
|
|
42
27
|
text?: string
|
|
43
28
|
tag?: 'p' | 'span' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'div'
|
|
44
29
|
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'
|
|
@@ -49,9 +34,8 @@ export interface TxtElementOptions<
|
|
|
49
34
|
|
|
50
35
|
export interface ImgElementOptions<
|
|
51
36
|
T = any,
|
|
52
|
-
P extends Path<T, PO> = any,
|
|
53
37
|
PO extends PathsOptions = DefaultPathsOptions
|
|
54
|
-
> extends Partial<BaseElementField<T,
|
|
38
|
+
> extends Partial<BaseElementField<T, PO>> {
|
|
55
39
|
src?: string
|
|
56
40
|
alt?: string
|
|
57
41
|
width?: number | string
|
|
@@ -64,9 +48,8 @@ export interface ImgElementOptions<
|
|
|
64
48
|
|
|
65
49
|
export interface DropdownElementOptions<
|
|
66
50
|
T = any,
|
|
67
|
-
P extends Path<T, PO> = any,
|
|
68
51
|
PO extends PathsOptions = DefaultPathsOptions
|
|
69
|
-
> extends Partial<BaseElementField<T,
|
|
52
|
+
> extends Partial<BaseElementField<T, PO>> {
|
|
70
53
|
options?: Option[] | (() => Option[])
|
|
71
54
|
placeholder?: string
|
|
72
55
|
searchable?: boolean
|
|
@@ -78,9 +61,8 @@ export interface DropdownElementOptions<
|
|
|
78
61
|
|
|
79
62
|
export interface ListItemElementOptions<
|
|
80
63
|
T = any,
|
|
81
|
-
P extends Path<T, PO> = any,
|
|
82
64
|
PO extends PathsOptions = DefaultPathsOptions
|
|
83
|
-
> extends Partial<BaseElementField<T,
|
|
65
|
+
> extends Partial<BaseElementField<T, PO>> {
|
|
84
66
|
title?: string
|
|
85
67
|
subtitle?: string
|
|
86
68
|
icon?: IconType
|
|
@@ -94,24 +76,23 @@ export interface ListItemElementOptions<
|
|
|
94
76
|
// Magical button overloads with schema support
|
|
95
77
|
export function btn<
|
|
96
78
|
T = any,
|
|
97
|
-
P extends Path<T, PO> = any,
|
|
98
79
|
PO extends PathsOptions = DefaultPathsOptions
|
|
99
|
-
>(options: BtnElementOptions<T,
|
|
80
|
+
>(options: BtnElementOptions<T, PO>): BaseElementField<T, PO>
|
|
100
81
|
export function btn<
|
|
101
82
|
T = any,
|
|
102
83
|
P extends Path<T, PO> = any,
|
|
103
84
|
PO extends PathsOptions = DefaultPathsOptions
|
|
104
|
-
>(id: P): BaseElementField<T,
|
|
85
|
+
>(id: P): BaseElementField<T, PO>
|
|
105
86
|
export function btn<
|
|
106
87
|
T = any,
|
|
107
88
|
P extends Path<T, PO> = any,
|
|
108
89
|
PO extends PathsOptions = DefaultPathsOptions
|
|
109
|
-
>(id: P, text: string): BaseElementField<T,
|
|
90
|
+
>(id: P, text: string): BaseElementField<T, PO>
|
|
110
91
|
export function btn<
|
|
111
92
|
T = any,
|
|
112
93
|
P extends Path<T, PO> = any,
|
|
113
94
|
PO extends PathsOptions = DefaultPathsOptions
|
|
114
|
-
>(id: P, icon: IconType): BaseElementField<T,
|
|
95
|
+
>(id: P, icon: IconType): BaseElementField<T, PO>
|
|
115
96
|
export function btn<
|
|
116
97
|
T = any,
|
|
117
98
|
P extends Path<T, PO> = any,
|
|
@@ -119,8 +100,8 @@ export function btn<
|
|
|
119
100
|
>(
|
|
120
101
|
id: P,
|
|
121
102
|
text: string,
|
|
122
|
-
options: BtnElementOptions<T,
|
|
123
|
-
): BaseElementField<T,
|
|
103
|
+
options: BtnElementOptions<T, PO>
|
|
104
|
+
): BaseElementField<T, PO>
|
|
124
105
|
export function btn<
|
|
125
106
|
T = any,
|
|
126
107
|
P extends Path<T, PO> = any,
|
|
@@ -128,8 +109,8 @@ export function btn<
|
|
|
128
109
|
>(
|
|
129
110
|
id: P,
|
|
130
111
|
icon: IconType,
|
|
131
|
-
options: BtnElementOptions<T,
|
|
132
|
-
): BaseElementField<T,
|
|
112
|
+
options: BtnElementOptions<T, PO>
|
|
113
|
+
): BaseElementField<T, PO>
|
|
133
114
|
export function btn<
|
|
134
115
|
T = any,
|
|
135
116
|
P extends Path<T, PO> = any,
|
|
@@ -137,28 +118,28 @@ export function btn<
|
|
|
137
118
|
>(
|
|
138
119
|
id: P,
|
|
139
120
|
textOrIcon: string | IconType,
|
|
140
|
-
options: BtnElementOptions<T,
|
|
141
|
-
): BaseElementField<T,
|
|
121
|
+
options: BtnElementOptions<T, PO>
|
|
122
|
+
): BaseElementField<T, PO>
|
|
142
123
|
export function btn<
|
|
143
124
|
T = any,
|
|
144
125
|
P extends Path<T, PO> = any,
|
|
145
126
|
PO extends PathsOptions = DefaultPathsOptions
|
|
146
127
|
>(
|
|
147
|
-
idOrOptions?: P | BtnElementOptions<T,
|
|
128
|
+
idOrOptions?: P | BtnElementOptions<T, PO>,
|
|
148
129
|
textOrIcon?: string | IconType,
|
|
149
|
-
options?: BtnElementOptions<T,
|
|
150
|
-
): BaseElementField<T,
|
|
130
|
+
options?: BtnElementOptions<T, PO>,
|
|
131
|
+
): BaseElementField<T, PO> {
|
|
151
132
|
// Handle different overload patterns
|
|
152
|
-
let id:
|
|
133
|
+
let id: Path<T, PO> | undefined
|
|
153
134
|
let text: string = ''
|
|
154
135
|
let icon: IconType | undefined
|
|
155
|
-
let finalOptions: BtnElementOptions<T,
|
|
136
|
+
let finalOptions: BtnElementOptions<T, PO> = {}
|
|
156
137
|
|
|
157
138
|
if (typeof idOrOptions === 'object' && idOrOptions !== null) {
|
|
158
139
|
// btn(options)
|
|
159
140
|
finalOptions = idOrOptions
|
|
160
141
|
const { id: optionId, text: optionText, icon: optionIcon } = finalOptions
|
|
161
|
-
id = optionId
|
|
142
|
+
id = optionId as Path<T, PO> | undefined
|
|
162
143
|
text = optionText ?? ''
|
|
163
144
|
icon = optionIcon
|
|
164
145
|
} else {
|
|
@@ -212,13 +193,12 @@ export function btn<
|
|
|
212
193
|
|
|
213
194
|
export function getBaseElementField<
|
|
214
195
|
T = any,
|
|
215
|
-
P extends Path<T, PO> = any,
|
|
216
196
|
PO extends PathsOptions = DefaultPathsOptions
|
|
217
197
|
>(
|
|
218
198
|
elementType: string,
|
|
219
|
-
id?:
|
|
220
|
-
options: Partial<BaseElementField<T,
|
|
221
|
-
): BaseElementField<T,
|
|
199
|
+
id?: Path<T, PO>,
|
|
200
|
+
options: Partial<BaseElementField<T, PO>> = {}
|
|
201
|
+
): BaseElementField<T, PO> {
|
|
222
202
|
return {
|
|
223
203
|
$el: elementType,
|
|
224
204
|
id,
|
|
@@ -238,30 +218,29 @@ export function iconBtn<
|
|
|
238
218
|
>(
|
|
239
219
|
id?: P,
|
|
240
220
|
icon?: IconType,
|
|
241
|
-
options?: BtnElementOptions<T,
|
|
242
|
-
): BaseElementField<T,
|
|
221
|
+
options?: BtnElementOptions<T, PO>,
|
|
222
|
+
): BaseElementField<T, PO> {
|
|
243
223
|
if (icon != null && id != null) {
|
|
244
224
|
return btn(id, icon, options || {})
|
|
245
225
|
}
|
|
246
|
-
return btn({ id, icon, ...options } as BtnElementOptions<T,
|
|
226
|
+
return btn({ id, icon, ...options } as BtnElementOptions<T, PO>)
|
|
247
227
|
}
|
|
248
228
|
|
|
249
229
|
// Magical text overloads with schema support
|
|
250
230
|
export function txt<
|
|
251
231
|
T = any,
|
|
252
|
-
P extends Path<T, PO> = any,
|
|
253
232
|
PO extends PathsOptions = DefaultPathsOptions
|
|
254
|
-
>(options: TxtElementOptions<T,
|
|
233
|
+
>(options: TxtElementOptions<T, PO>): BaseElementField<T, PO>
|
|
255
234
|
export function txt<
|
|
256
235
|
T = any,
|
|
257
236
|
P extends Path<T, PO> = any,
|
|
258
237
|
PO extends PathsOptions = DefaultPathsOptions
|
|
259
|
-
>(id: P): BaseElementField<T,
|
|
238
|
+
>(id: P): BaseElementField<T, PO>
|
|
260
239
|
export function txt<
|
|
261
240
|
T = any,
|
|
262
241
|
P extends Path<T, PO> = any,
|
|
263
242
|
PO extends PathsOptions = DefaultPathsOptions
|
|
264
|
-
>(id: P, text: string): BaseElementField<T,
|
|
243
|
+
>(id: P, text: string): BaseElementField<T, PO>
|
|
265
244
|
export function txt<
|
|
266
245
|
T = any,
|
|
267
246
|
P extends Path<T, PO> = any,
|
|
@@ -270,30 +249,30 @@ export function txt<
|
|
|
270
249
|
id: P,
|
|
271
250
|
text: string,
|
|
272
251
|
tag: 'p' | 'span' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'div'
|
|
273
|
-
): BaseElementField<T,
|
|
252
|
+
): BaseElementField<T, PO>
|
|
274
253
|
export function txt<
|
|
275
254
|
T = any,
|
|
276
255
|
P extends Path<T, PO> = any,
|
|
277
256
|
PO extends PathsOptions = DefaultPathsOptions
|
|
278
|
-
>(id: P, text: string, options: TxtElementOptions<T,
|
|
257
|
+
>(id: P, text: string, options: TxtElementOptions<T, PO>): BaseElementField<T, PO>
|
|
279
258
|
export function txt<
|
|
280
259
|
T = any,
|
|
281
260
|
P extends Path<T, PO> = any,
|
|
282
261
|
PO extends PathsOptions = DefaultPathsOptions
|
|
283
262
|
>(
|
|
284
|
-
idOrOptions?: P | TxtElementOptions<T,
|
|
263
|
+
idOrOptions?: P | TxtElementOptions<T, PO>,
|
|
285
264
|
text?: string,
|
|
286
|
-
tagOrOptions?: string | TxtElementOptions<T,
|
|
287
|
-
): BaseElementField<T,
|
|
265
|
+
tagOrOptions?: string | TxtElementOptions<T, PO>,
|
|
266
|
+
): BaseElementField<T, PO> {
|
|
288
267
|
// Handle different overload patterns
|
|
289
|
-
let id:
|
|
290
|
-
let finalOptions: TxtElementOptions<T,
|
|
268
|
+
let id: Path<T, PO> | undefined
|
|
269
|
+
let finalOptions: TxtElementOptions<T, PO> = {}
|
|
291
270
|
|
|
292
271
|
if (typeof idOrOptions === 'object' && idOrOptions !== null) {
|
|
293
272
|
// txt(options)
|
|
294
273
|
finalOptions = idOrOptions
|
|
295
274
|
const { id: optionId } = finalOptions
|
|
296
|
-
id = optionId
|
|
275
|
+
id = optionId as Path<T, PO> | undefined
|
|
297
276
|
} else {
|
|
298
277
|
// txt(id, ...) patterns
|
|
299
278
|
id = idOrOptions
|
|
@@ -329,48 +308,47 @@ export function txt<
|
|
|
329
308
|
// Magical image overloads with schema support
|
|
330
309
|
export function img<
|
|
331
310
|
T = any,
|
|
332
|
-
P extends Path<T, PO> = any,
|
|
333
311
|
PO extends PathsOptions = DefaultPathsOptions
|
|
334
|
-
>(options: ImgElementOptions<T,
|
|
312
|
+
>(options: ImgElementOptions<T, PO>): BaseElementField<T, PO>
|
|
335
313
|
export function img<
|
|
336
314
|
T = any,
|
|
337
315
|
P extends Path<T, PO> = any,
|
|
338
316
|
PO extends PathsOptions = DefaultPathsOptions
|
|
339
|
-
>(id: P): BaseElementField<T,
|
|
317
|
+
>(id: P): BaseElementField<T, PO>
|
|
340
318
|
export function img<
|
|
341
319
|
T = any,
|
|
342
320
|
P extends Path<T, PO> = any,
|
|
343
321
|
PO extends PathsOptions = DefaultPathsOptions
|
|
344
|
-
>(id: P, src: string): BaseElementField<T,
|
|
322
|
+
>(id: P, src: string): BaseElementField<T, PO>
|
|
345
323
|
export function img<
|
|
346
324
|
T = any,
|
|
347
325
|
P extends Path<T, PO> = any,
|
|
348
326
|
PO extends PathsOptions = DefaultPathsOptions
|
|
349
|
-
>(id: P, src: string, alt: string): BaseElementField<T,
|
|
327
|
+
>(id: P, src: string, alt: string): BaseElementField<T, PO>
|
|
350
328
|
export function img<
|
|
351
329
|
T = any,
|
|
352
330
|
P extends Path<T, PO> = any,
|
|
353
331
|
PO extends PathsOptions = DefaultPathsOptions
|
|
354
|
-
>(id: P, src: string, options: ImgElementOptions<T,
|
|
332
|
+
>(id: P, src: string, options: ImgElementOptions<T, PO>): BaseElementField<T, PO>
|
|
355
333
|
export function img<
|
|
356
334
|
T = any,
|
|
357
335
|
P extends Path<T, PO> = any,
|
|
358
336
|
PO extends PathsOptions = DefaultPathsOptions
|
|
359
337
|
>(
|
|
360
|
-
idOrOptions?: P | ImgElementOptions<T,
|
|
338
|
+
idOrOptions?: P | ImgElementOptions<T, PO>,
|
|
361
339
|
src?: string,
|
|
362
|
-
altOrOptions?: string | ImgElementOptions<T,
|
|
363
|
-
): BaseElementField<T,
|
|
340
|
+
altOrOptions?: string | ImgElementOptions<T, PO>,
|
|
341
|
+
): BaseElementField<T, PO> {
|
|
364
342
|
// Handle different overload patterns
|
|
365
|
-
let id:
|
|
343
|
+
let id: Path<T, PO> | undefined
|
|
366
344
|
let finalSrc: string = ''
|
|
367
|
-
let finalOptions: ImgElementOptions<T,
|
|
345
|
+
let finalOptions: ImgElementOptions<T, PO> = {}
|
|
368
346
|
|
|
369
347
|
if (typeof idOrOptions === 'object' && idOrOptions !== null) {
|
|
370
348
|
// img(options)
|
|
371
349
|
finalOptions = idOrOptions
|
|
372
350
|
const { id: optionId, src: optionSrc } = finalOptions
|
|
373
|
-
id = optionId
|
|
351
|
+
id = optionId as Path<T, PO> | undefined
|
|
374
352
|
finalSrc = optionSrc ?? ''
|
|
375
353
|
} else {
|
|
376
354
|
// img(id, ...) patterns
|
|
@@ -409,13 +387,12 @@ export function img<
|
|
|
409
387
|
// Dropdown element function following BagelForm pattern
|
|
410
388
|
export function dropdownElement<
|
|
411
389
|
T = any,
|
|
412
|
-
P extends Path<T, PO> = any,
|
|
413
390
|
PO extends PathsOptions = DefaultPathsOptions
|
|
414
391
|
>(
|
|
415
|
-
id?:
|
|
392
|
+
id?: Path<T, PO>,
|
|
416
393
|
options?: Option[] | (() => Option[]),
|
|
417
|
-
config?: DropdownElementOptions<T,
|
|
418
|
-
): BaseElementField<T,
|
|
394
|
+
config?: DropdownElementOptions<T, PO>,
|
|
395
|
+
): BaseElementField<T, PO> {
|
|
419
396
|
return {
|
|
420
397
|
$el: 'dropdown',
|
|
421
398
|
id,
|
|
@@ -437,13 +414,12 @@ export function dropdownElement<
|
|
|
437
414
|
// ListItem element function following BagelForm pattern
|
|
438
415
|
export function listItemElement<
|
|
439
416
|
T = any,
|
|
440
|
-
P extends Path<T, PO> = any,
|
|
441
417
|
PO extends PathsOptions = DefaultPathsOptions
|
|
442
418
|
>(
|
|
443
|
-
id?:
|
|
419
|
+
id?: Path<T, PO>,
|
|
444
420
|
title?: string,
|
|
445
|
-
options?: ListItemElementOptions<T,
|
|
446
|
-
): BaseElementField<T,
|
|
421
|
+
options?: ListItemElementOptions<T, PO>,
|
|
422
|
+
): BaseElementField<T, PO> {
|
|
447
423
|
return {
|
|
448
424
|
$el: 'listItem',
|
|
449
425
|
id,
|
|
@@ -467,13 +443,12 @@ export function listItemElement<
|
|
|
467
443
|
// Container element function following BagelForm pattern
|
|
468
444
|
export function containerElement<
|
|
469
445
|
T = any,
|
|
470
|
-
P extends Path<T, PO> = any,
|
|
471
446
|
PO extends PathsOptions = DefaultPathsOptions
|
|
472
447
|
>(
|
|
473
|
-
id?:
|
|
448
|
+
id?: Path<T, PO>,
|
|
474
449
|
children?: BaseElementField<T, any>[],
|
|
475
|
-
options?: Partial<BaseElementField<T,
|
|
476
|
-
): BaseElementField<T,
|
|
450
|
+
options?: Partial<BaseElementField<T, PO>>,
|
|
451
|
+
): BaseElementField<T, PO> {
|
|
477
452
|
return {
|
|
478
453
|
$el: 'div',
|
|
479
454
|
id,
|
|
@@ -501,9 +476,9 @@ export function findElementById<T>(
|
|
|
501
476
|
|
|
502
477
|
export function column<T = any, P extends Path<T, PO> = any, PO extends PathsOptions = DefaultPathsOptions>(
|
|
503
478
|
id?: P,
|
|
504
|
-
labelOrOptions?: string | Partial<BaseElementField<T,
|
|
505
|
-
options?: Partial<BaseElementField<T,
|
|
506
|
-
): BaseElementField<T,
|
|
479
|
+
labelOrOptions?: string | Partial<BaseElementField<T, PO>>,
|
|
480
|
+
options?: Partial<BaseElementField<T, PO>>,
|
|
481
|
+
): BaseElementField<T, PO> {
|
|
507
482
|
let label: string | undefined
|
|
508
483
|
if (typeof labelOrOptions === 'string') {
|
|
509
484
|
label = labelOrOptions
|