@bagelink/vue 0.0.694 → 0.0.702

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/components/Btn.vue.d.ts +1 -1
  2. package/dist/components/Btn.vue.d.ts.map +1 -1
  3. package/dist/components/ListItem.vue.d.ts +7 -0
  4. package/dist/components/ListItem.vue.d.ts.map +1 -1
  5. package/dist/components/ListView.vue.d.ts.map +1 -1
  6. package/dist/components/TableSchema.vue.d.ts.map +1 -1
  7. package/dist/components/form/BglForm.vue.d.ts +6 -5
  8. package/dist/components/form/BglForm.vue.d.ts.map +1 -1
  9. package/dist/components/form/BglMultiStepForm.vue.d.ts +82 -0
  10. package/dist/components/form/BglMultiStepForm.vue.d.ts.map +1 -0
  11. package/dist/components/form/index.d.ts +1 -0
  12. package/dist/components/form/index.d.ts.map +1 -1
  13. package/dist/components/form/inputs/TelInput.vue.d.ts +3 -3
  14. package/dist/components/form/inputs/TelInput.vue.d.ts.map +1 -1
  15. package/dist/components/form/inputs/TextInput.vue.d.ts.map +1 -1
  16. package/dist/components/layout/TabsNav.vue.d.ts +4 -0
  17. package/dist/components/layout/TabsNav.vue.d.ts.map +1 -1
  18. package/dist/index.cjs +281 -137
  19. package/dist/index.mjs +282 -138
  20. package/dist/style.css +589 -426
  21. package/dist/types/BagelForm.d.ts +1 -0
  22. package/dist/types/BagelForm.d.ts.map +1 -1
  23. package/dist/utils/BagelFormUtils.d.ts +346 -0
  24. package/dist/utils/BagelFormUtils.d.ts.map +1 -1
  25. package/package.json +13 -13
  26. package/src/components/Btn.vue +4 -1
  27. package/src/components/ListItem.vue +54 -2
  28. package/src/components/ListView.vue +0 -38
  29. package/src/components/TableSchema.vue +1 -2
  30. package/src/components/form/BglForm.vue +13 -15
  31. package/src/components/form/BglMultiStepForm.vue +121 -0
  32. package/src/components/form/index.ts +1 -0
  33. package/src/components/form/inputs/FileUploadURL.vue +2 -0
  34. package/src/components/form/inputs/SelectInput.vue +2 -2
  35. package/src/components/form/inputs/TelInput.vue +0 -1
  36. package/src/components/form/inputs/TextInput.vue +0 -1
  37. package/src/components/layout/TabsNav.vue +64 -1
  38. package/src/styles/appearance.css +121 -40
  39. package/src/styles/inputs.css +21 -13
  40. package/src/styles/layout.css +97 -84
  41. package/src/styles/mobilLayout.css +181 -168
  42. package/src/types/BagelForm.ts +1 -0
  43. package/src/utils/BagelFormUtils.ts +29 -1
@@ -37,6 +37,7 @@ export interface SelectBagelField<T> extends BaseBagelField<T> {
37
37
  id: string;
38
38
  }
39
39
  export type Field<T = Record<string, any>> = BaseBagelField<T> | InputBagelField<T> | SelectBagelField<T>;
40
+ export type BglFieldT<T = Record<string, any>> = Field<T>;
40
41
  export type BglFormSchemaT<T = Record<string, any>> = Field<T>[];
41
42
  export type BglFormSchemaFnT<T = Record<string, any>> = (() => BglFormSchemaT<T>) | BglFormSchemaT<T>;
42
43
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"BagelForm.d.ts","sourceRoot":"","sources":["../../src/types/BagelForm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BagelForm.d.ts","sourceRoot":"","sources":["../../src/types/BagelForm.ts"],"names":[],"mappings":"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"}
@@ -43,6 +43,352 @@ export declare function frmRow(...children: Field[]): {
43
43
  class: string;
44
44
  children: Field[];
45
45
  };
46
+ export declare function bglForm(idOrField?: string | Field, ...schema: Field[]): {
47
+ $el: import('vue').Raw<{
48
+ new (...args: any[]): import('vue').CreateComponentPublicInstance<Readonly<import('vue').ExtractPropTypes<{
49
+ schema: {
50
+ type: import('vue').PropType<import('..').BglFormSchemaFnT<any>>;
51
+ required: true;
52
+ };
53
+ id: {
54
+ type: import('vue').PropType<string>;
55
+ };
56
+ label: {
57
+ type: import('vue').PropType<string>;
58
+ };
59
+ modelValue: {
60
+ type: import('vue').PropType<Record<string, any>>;
61
+ default: () => {};
62
+ };
63
+ onDelete: {
64
+ type: import('vue').PropType<(id: string) => void>;
65
+ };
66
+ onSubmit: {
67
+ type: import('vue').PropType<(data: any) => void>;
68
+ };
69
+ status: {
70
+ type: import('vue').PropType<import('../components/form/BglForm.vue').FormStatus>;
71
+ };
72
+ }>> & {
73
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
74
+ onSubmit?: ((...args: any[]) => any) | undefined;
75
+ onDirty?: ((...args: any[]) => any) | undefined;
76
+ }, {
77
+ submit: () => void;
78
+ validateForm: () => boolean;
79
+ deleteItem: () => void;
80
+ isDirty: import('@vue-macros/reactivity-transform/macros.js').ReactiveVariable<false> | import('@vue-macros/reactivity-transform/macros.js').ReactiveVariable<true>;
81
+ clearForm: () => {};
82
+ }, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
83
+ submit: (...args: any[]) => void;
84
+ "update:modelValue": (...args: any[]) => void;
85
+ dirty: (...args: any[]) => void;
86
+ }, import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & Readonly<import('vue').ExtractPropTypes<{
87
+ schema: {
88
+ type: import('vue').PropType<import('..').BglFormSchemaFnT<any>>;
89
+ required: true;
90
+ };
91
+ id: {
92
+ type: import('vue').PropType<string>;
93
+ };
94
+ label: {
95
+ type: import('vue').PropType<string>;
96
+ };
97
+ modelValue: {
98
+ type: import('vue').PropType<Record<string, any>>;
99
+ default: () => {};
100
+ };
101
+ onDelete: {
102
+ type: import('vue').PropType<(id: string) => void>;
103
+ };
104
+ onSubmit: {
105
+ type: import('vue').PropType<(data: any) => void>;
106
+ };
107
+ status: {
108
+ type: import('vue').PropType<import('../components/form/BglForm.vue').FormStatus>;
109
+ };
110
+ }>> & {
111
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
112
+ onSubmit?: ((...args: any[]) => any) | undefined;
113
+ onDirty?: ((...args: any[]) => any) | undefined;
114
+ }, {
115
+ modelValue: Record<string, any>;
116
+ }, true, {}, {}, {
117
+ P: {};
118
+ B: {};
119
+ D: {};
120
+ C: {};
121
+ M: {};
122
+ Defaults: {};
123
+ }, Readonly<import('vue').ExtractPropTypes<{
124
+ schema: {
125
+ type: import('vue').PropType<import('..').BglFormSchemaFnT<any>>;
126
+ required: true;
127
+ };
128
+ id: {
129
+ type: import('vue').PropType<string>;
130
+ };
131
+ label: {
132
+ type: import('vue').PropType<string>;
133
+ };
134
+ modelValue: {
135
+ type: import('vue').PropType<Record<string, any>>;
136
+ default: () => {};
137
+ };
138
+ onDelete: {
139
+ type: import('vue').PropType<(id: string) => void>;
140
+ };
141
+ onSubmit: {
142
+ type: import('vue').PropType<(data: any) => void>;
143
+ };
144
+ status: {
145
+ type: import('vue').PropType<import('../components/form/BglForm.vue').FormStatus>;
146
+ };
147
+ }>> & {
148
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
149
+ onSubmit?: ((...args: any[]) => any) | undefined;
150
+ onDirty?: ((...args: any[]) => any) | undefined;
151
+ }, {
152
+ submit: () => void;
153
+ validateForm: () => boolean;
154
+ deleteItem: () => void;
155
+ isDirty: import('@vue-macros/reactivity-transform/macros.js').ReactiveVariable<false> | import('@vue-macros/reactivity-transform/macros.js').ReactiveVariable<true>;
156
+ clearForm: () => {};
157
+ }, {}, {}, {}, {
158
+ modelValue: Record<string, any>;
159
+ }>;
160
+ __isFragment?: never;
161
+ __isTeleport?: never;
162
+ __isSuspense?: never;
163
+ } & import('vue').ComponentOptionsBase<Readonly<import('vue').ExtractPropTypes<{
164
+ schema: {
165
+ type: import('vue').PropType<import('..').BglFormSchemaFnT<any>>;
166
+ required: true;
167
+ };
168
+ id: {
169
+ type: import('vue').PropType<string>;
170
+ };
171
+ label: {
172
+ type: import('vue').PropType<string>;
173
+ };
174
+ modelValue: {
175
+ type: import('vue').PropType<Record<string, any>>;
176
+ default: () => {};
177
+ };
178
+ onDelete: {
179
+ type: import('vue').PropType<(id: string) => void>;
180
+ };
181
+ onSubmit: {
182
+ type: import('vue').PropType<(data: any) => void>;
183
+ };
184
+ status: {
185
+ type: import('vue').PropType<import('../components/form/BglForm.vue').FormStatus>;
186
+ };
187
+ }>> & {
188
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
189
+ onSubmit?: ((...args: any[]) => any) | undefined;
190
+ onDirty?: ((...args: any[]) => any) | undefined;
191
+ }, {
192
+ submit: () => void;
193
+ validateForm: () => boolean;
194
+ deleteItem: () => void;
195
+ isDirty: import('@vue-macros/reactivity-transform/macros.js').ReactiveVariable<false> | import('@vue-macros/reactivity-transform/macros.js').ReactiveVariable<true>;
196
+ clearForm: () => {};
197
+ }, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
198
+ submit: (...args: any[]) => void;
199
+ "update:modelValue": (...args: any[]) => void;
200
+ dirty: (...args: any[]) => void;
201
+ }, string, {
202
+ modelValue: Record<string, any>;
203
+ }, {}, string, {}> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
204
+ $slots: {
205
+ submit?(_: {
206
+ submit: () => void;
207
+ isDirty: import('@vue-macros/reactivity-transform/macros.js').ReactiveVariable<false> | import('@vue-macros/reactivity-transform/macros.js').ReactiveVariable<true>;
208
+ validateForm: () => boolean;
209
+ }): any;
210
+ success?(_: {}): any;
211
+ error?(_: {}): any;
212
+ };
213
+ })>;
214
+ id: string;
215
+ attrs: {
216
+ schema: (string | import('..').BaseBagelField<Record<string, any>>)[];
217
+ };
218
+ } | {
219
+ $el: import('vue').Raw<{
220
+ new (...args: any[]): import('vue').CreateComponentPublicInstance<Readonly<import('vue').ExtractPropTypes<{
221
+ schema: {
222
+ type: import('vue').PropType<import('..').BglFormSchemaFnT<any>>;
223
+ required: true;
224
+ };
225
+ id: {
226
+ type: import('vue').PropType<string>;
227
+ };
228
+ label: {
229
+ type: import('vue').PropType<string>;
230
+ };
231
+ modelValue: {
232
+ type: import('vue').PropType<Record<string, any>>;
233
+ default: () => {};
234
+ };
235
+ onDelete: {
236
+ type: import('vue').PropType<(id: string) => void>;
237
+ };
238
+ onSubmit: {
239
+ type: import('vue').PropType<(data: any) => void>;
240
+ };
241
+ status: {
242
+ type: import('vue').PropType<import('../components/form/BglForm.vue').FormStatus>;
243
+ };
244
+ }>> & {
245
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
246
+ onSubmit?: ((...args: any[]) => any) | undefined;
247
+ onDirty?: ((...args: any[]) => any) | undefined;
248
+ }, {
249
+ submit: () => void;
250
+ validateForm: () => boolean;
251
+ deleteItem: () => void;
252
+ isDirty: import('@vue-macros/reactivity-transform/macros.js').ReactiveVariable<false> | import('@vue-macros/reactivity-transform/macros.js').ReactiveVariable<true>;
253
+ clearForm: () => {};
254
+ }, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
255
+ submit: (...args: any[]) => void;
256
+ "update:modelValue": (...args: any[]) => void;
257
+ dirty: (...args: any[]) => void;
258
+ }, import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & Readonly<import('vue').ExtractPropTypes<{
259
+ schema: {
260
+ type: import('vue').PropType<import('..').BglFormSchemaFnT<any>>;
261
+ required: true;
262
+ };
263
+ id: {
264
+ type: import('vue').PropType<string>;
265
+ };
266
+ label: {
267
+ type: import('vue').PropType<string>;
268
+ };
269
+ modelValue: {
270
+ type: import('vue').PropType<Record<string, any>>;
271
+ default: () => {};
272
+ };
273
+ onDelete: {
274
+ type: import('vue').PropType<(id: string) => void>;
275
+ };
276
+ onSubmit: {
277
+ type: import('vue').PropType<(data: any) => void>;
278
+ };
279
+ status: {
280
+ type: import('vue').PropType<import('../components/form/BglForm.vue').FormStatus>;
281
+ };
282
+ }>> & {
283
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
284
+ onSubmit?: ((...args: any[]) => any) | undefined;
285
+ onDirty?: ((...args: any[]) => any) | undefined;
286
+ }, {
287
+ modelValue: Record<string, any>;
288
+ }, true, {}, {}, {
289
+ P: {};
290
+ B: {};
291
+ D: {};
292
+ C: {};
293
+ M: {};
294
+ Defaults: {};
295
+ }, Readonly<import('vue').ExtractPropTypes<{
296
+ schema: {
297
+ type: import('vue').PropType<import('..').BglFormSchemaFnT<any>>;
298
+ required: true;
299
+ };
300
+ id: {
301
+ type: import('vue').PropType<string>;
302
+ };
303
+ label: {
304
+ type: import('vue').PropType<string>;
305
+ };
306
+ modelValue: {
307
+ type: import('vue').PropType<Record<string, any>>;
308
+ default: () => {};
309
+ };
310
+ onDelete: {
311
+ type: import('vue').PropType<(id: string) => void>;
312
+ };
313
+ onSubmit: {
314
+ type: import('vue').PropType<(data: any) => void>;
315
+ };
316
+ status: {
317
+ type: import('vue').PropType<import('../components/form/BglForm.vue').FormStatus>;
318
+ };
319
+ }>> & {
320
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
321
+ onSubmit?: ((...args: any[]) => any) | undefined;
322
+ onDirty?: ((...args: any[]) => any) | undefined;
323
+ }, {
324
+ submit: () => void;
325
+ validateForm: () => boolean;
326
+ deleteItem: () => void;
327
+ isDirty: import('@vue-macros/reactivity-transform/macros.js').ReactiveVariable<false> | import('@vue-macros/reactivity-transform/macros.js').ReactiveVariable<true>;
328
+ clearForm: () => {};
329
+ }, {}, {}, {}, {
330
+ modelValue: Record<string, any>;
331
+ }>;
332
+ __isFragment?: never;
333
+ __isTeleport?: never;
334
+ __isSuspense?: never;
335
+ } & import('vue').ComponentOptionsBase<Readonly<import('vue').ExtractPropTypes<{
336
+ schema: {
337
+ type: import('vue').PropType<import('..').BglFormSchemaFnT<any>>;
338
+ required: true;
339
+ };
340
+ id: {
341
+ type: import('vue').PropType<string>;
342
+ };
343
+ label: {
344
+ type: import('vue').PropType<string>;
345
+ };
346
+ modelValue: {
347
+ type: import('vue').PropType<Record<string, any>>;
348
+ default: () => {};
349
+ };
350
+ onDelete: {
351
+ type: import('vue').PropType<(id: string) => void>;
352
+ };
353
+ onSubmit: {
354
+ type: import('vue').PropType<(data: any) => void>;
355
+ };
356
+ status: {
357
+ type: import('vue').PropType<import('../components/form/BglForm.vue').FormStatus>;
358
+ };
359
+ }>> & {
360
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
361
+ onSubmit?: ((...args: any[]) => any) | undefined;
362
+ onDirty?: ((...args: any[]) => any) | undefined;
363
+ }, {
364
+ submit: () => void;
365
+ validateForm: () => boolean;
366
+ deleteItem: () => void;
367
+ isDirty: import('@vue-macros/reactivity-transform/macros.js').ReactiveVariable<false> | import('@vue-macros/reactivity-transform/macros.js').ReactiveVariable<true>;
368
+ clearForm: () => {};
369
+ }, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
370
+ submit: (...args: any[]) => void;
371
+ "update:modelValue": (...args: any[]) => void;
372
+ dirty: (...args: any[]) => void;
373
+ }, string, {
374
+ modelValue: Record<string, any>;
375
+ }, {}, string, {}> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
376
+ $slots: {
377
+ submit?(_: {
378
+ submit: () => void;
379
+ isDirty: import('@vue-macros/reactivity-transform/macros.js').ReactiveVariable<false> | import('@vue-macros/reactivity-transform/macros.js').ReactiveVariable<true>;
380
+ validateForm: () => boolean;
381
+ }): any;
382
+ success?(_: {}): any;
383
+ error?(_: {}): any;
384
+ };
385
+ })>;
386
+ attrs: {
387
+ schema: (import('..').BaseBagelField<Record<string, any>> | undefined)[];
388
+ };
389
+ id?: undefined;
390
+ };
391
+ export declare function telField(id: string, label?: string, options?: Record<string, any>): Field;
46
392
  export declare function findBglFieldById(id: string, _schema: BglFormSchemaT): Field | undefined;
47
393
  export {};
48
394
  //# sourceMappingURL=BagelFormUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BagelFormUtils.d.ts","sourceRoot":"","sources":["../../src/utils/BagelFormUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAElE,UAAU,YAAY;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,KAAK,WAAW,GAAG,YAAY,CAAA;AAE/B,UAAU,gBAAiB,SAAQ,YAAY;IAC9C,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,CAAA;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,UAAU,gBAAiB,SAAQ,YAAY;IAC9C,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,UAAU,eAAgB,SAAQ,YAAY;IAC7C,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;CACb;AAED,KAAK,eAAe,GAAG,YAAY,CAAA;AAEnC,wBAAgB,YAAY,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,GAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAM,EAAE,IAAI,GAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAIjI;AAED,wBAAgB,QAAQ,CACvB,EAAE,EAAE,MAAM,EACV,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,eAAe;;;;;;;;EAWzB;AAED,wBAAgB,QAAQ,CACvB,EAAE,EAAE,MAAM,EACV,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,gBAAgB,GACxB,KAAK,CAgBP;AAED,wBAAgB,SAAS,CACxB,EAAE,EAAE,MAAM,EACV,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,MAAM,EAAE,CAAC,EACrC,MAAM,CAAC,EAAE,gBAAgB,GACvB,KAAK,CAgBP;AAED,wBAAgB,UAAU,CACzB,EAAE,EAAE,MAAM,EACV,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,eAAe,GACvB,KAAK,CAQP;AAED,wBAAgB,SAAS,CACxB,EAAE,EAAE,MAAM,EACV,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,WAAW,GACnB,KAAK,CAaP;AAED,wBAAgB,QAAQ,CACvB,EAAE,EAAE,MAAM,EACV,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,eAAe,GACvB,KAAK,CAoBP;AAED,wBAAgB,MAAM,CAAC,GAAG,QAAQ,EAAE,KAAK,EAAE;;;;EAM1C;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,KAAK,GAAG,SAAS,CASvF"}
1
+ {"version":3,"file":"BagelFormUtils.d.ts","sourceRoot":"","sources":["../../src/utils/BagelFormUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,cAAc,EAAE,KAAK,KAAK,EAAE,KAAK,MAAM,EAAY,MAAM,eAAe,CAAA;AAGjG,UAAU,YAAY;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,KAAK,WAAW,GAAG,YAAY,CAAA;AAE/B,UAAU,gBAAiB,SAAQ,YAAY;IAC9C,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,CAAA;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,UAAU,gBAAiB,SAAQ,YAAY;IAC9C,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,UAAU,eAAgB,SAAQ,YAAY;IAC7C,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;CACb;AAED,KAAK,eAAe,GAAG,YAAY,CAAA;AAEnC,wBAAgB,YAAY,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,GAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAM,EAAE,IAAI,GAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAIjI;AAED,wBAAgB,QAAQ,CACvB,EAAE,EAAE,MAAM,EACV,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,eAAe;;;;;;;;EAWzB;AAED,wBAAgB,QAAQ,CACvB,EAAE,EAAE,MAAM,EACV,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,gBAAgB,GACxB,KAAK,CAgBP;AAED,wBAAgB,SAAS,CACxB,EAAE,EAAE,MAAM,EACV,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,MAAM,EAAE,CAAC,EACrC,MAAM,CAAC,EAAE,gBAAgB,GACvB,KAAK,CAgBP;AAED,wBAAgB,UAAU,CACzB,EAAE,EAAE,MAAM,EACV,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,eAAe,GACvB,KAAK,CAQP;AAED,wBAAgB,SAAS,CACxB,EAAE,EAAE,MAAM,EACV,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,WAAW,GACnB,KAAK,CAaP;AAED,wBAAgB,QAAQ,CACvB,EAAE,EAAE,MAAM,EACV,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,eAAe,GACvB,KAAK,CAoBP;AAED,wBAAgB,MAAM,CAAC,GAAG,QAAQ,EAAE,KAAK,EAAE;;;;EAM1C;AAED,wBAAgB,OAAO,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBrE;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,CAOzF;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,KAAK,GAAG,SAAS,CASvF"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bagelink/vue",
3
3
  "type": "module",
4
- "version": "0.0.694",
4
+ "version": "0.0.702",
5
5
  "description": "Bagel core sdk packages",
6
6
  "author": {
7
7
  "name": "Neveh Allon",
@@ -104,22 +104,22 @@
104
104
  "access": "public"
105
105
  },
106
106
  "dependencies": {
107
- "@tiptap/extension-image": "^2.6.3",
108
- "@tiptap/extension-table": "^2.6.3",
109
- "@tiptap/extension-table-cell": "^2.6.3",
110
- "@tiptap/extension-table-header": "^2.6.3",
111
- "@tiptap/extension-table-row": "^2.6.3",
112
- "@tiptap/extension-youtube": "^2.6.3",
113
- "@tiptap/pm": "^2.6.3",
114
- "@tiptap/starter-kit": "^2.6.3",
115
- "@tiptap/vue-3": "^2.6.3",
107
+ "@tiptap/extension-image": "^2.6.5",
108
+ "@tiptap/extension-table": "^2.6.5",
109
+ "@tiptap/extension-table-cell": "^2.6.5",
110
+ "@tiptap/extension-table-header": "^2.6.5",
111
+ "@tiptap/extension-table-row": "^2.6.5",
112
+ "@tiptap/extension-youtube": "^2.6.5",
113
+ "@tiptap/pm": "^2.6.5",
114
+ "@tiptap/starter-kit": "^2.6.5",
115
+ "@tiptap/vue-3": "^2.6.5",
116
116
  "@vuepic/vue-datepicker": "^8.8.1",
117
- "@vueuse/core": "^10.11.1",
117
+ "@vueuse/core": "^11.0.1",
118
118
  "axios": "^1.7.4",
119
119
  "floating-vue": "^5.2.2",
120
- "libphonenumber-js": "1.11.5",
120
+ "libphonenumber-js": "1.11.7",
121
121
  "signature_pad": "^5.0.2",
122
- "type-fest": "^4.24.0"
122
+ "type-fest": "^4.25.0"
123
123
  },
124
124
  "scripts": {
125
125
  "dev": "tsx watch src/index.ts",
@@ -249,7 +249,10 @@ a {
249
249
  .bgl_btn-icon.thin {
250
250
  height: calc(var(--btn-height) / 1.5);
251
251
  width: calc(var(--btn-height) / 1.5);
252
- line-height: 1;
252
+ line-height: normal;
253
+ }
254
+ .bgl_btn-icon.thin .bgl_btn-flex {
255
+ height: 100%;
253
256
  }
254
257
 
255
258
  [dir="rtl"] .bgl_.bgl_icon-font {
@@ -1,18 +1,28 @@
1
1
  <script lang="ts" setup>
2
- import { Avatar } from '@bagelink/vue'
2
+ import { Avatar, Icon, type MaterialIcons } from '@bagelink/vue'
3
3
 
4
4
  defineProps<{
5
5
  src?: string
6
6
  showAvatar?: boolean
7
7
  to?: string
8
+ icon?: MaterialIcons
8
9
  title?: string
9
10
  subtitle?: string
11
+ flat?: boolean
12
+ onClick?: () => void
10
13
  }>()
11
14
  </script>
12
15
 
13
16
  <template>
14
- <component :is="to ? 'RouterLink' : 'div'" :to="to" class="flex list-item gap-1">
17
+ <component
18
+ :is="to ? 'RouterLink' : 'div'"
19
+ :to="to"
20
+ class="flex gap-1"
21
+ :class="{ 'list-item': to || onClick, 'no-border-list': flat }"
22
+ >
15
23
  <Avatar v-if="src || showAvatar" style="flex-basis: 1;" :name="title" :src="src" :size="40" />
24
+ <Icon v-if="icon" size="1.2" class="color-primary" :icon="icon" />
25
+
16
26
  <div>
17
27
  <p class="no-margin ellipsis line-height-14 pb-025">
18
28
  {{ title }}
@@ -25,3 +35,45 @@ defineProps<{
25
35
  </div>
26
36
  </component>
27
37
  </template>
38
+
39
+ <style>
40
+ .list-item {
41
+ padding: 0.6rem 1rem;
42
+ min-height: -webkit-fit-content;
43
+ min-height: -moz-fit-content;
44
+ min-height: fit-content;
45
+ margin: 0rem 0;
46
+ cursor: pointer;
47
+ transition: var(--bgl-transition);
48
+ color: var(--bgl-black);
49
+ text-decoration: none;
50
+ position: relative;
51
+ }
52
+
53
+ .list-item::after {
54
+ content: '';
55
+ position: absolute;
56
+ left: 0;
57
+ right: 0;
58
+ bottom: 0;
59
+ border-bottom: 1px solid var(--border-color);
60
+ }
61
+
62
+ .list-item:hover,
63
+ .list-item.router-link-active {
64
+ background-color: var(--bgl-primary-light);
65
+ }
66
+
67
+ .list-item:active {
68
+ -webkit-filter: var(--bgl-hover-filter);
69
+ filter: var(--bgl-hover-filter);
70
+ }
71
+ .no-border-list.list-item::after{
72
+ border-bottom: none;
73
+ }
74
+ @media screen and (max-width: 910px) {
75
+ .list-item {
76
+ padding: 0.5rem;
77
+ }
78
+ }
79
+ </style>
@@ -15,42 +15,4 @@
15
15
  .list-wrap {
16
16
  grid-template-rows: auto 1fr;
17
17
  }
18
-
19
- .list-item {
20
- padding: 0.6rem 1rem;
21
- min-height: -webkit-fit-content;
22
- min-height: -moz-fit-content;
23
- min-height: fit-content;
24
- margin: 0rem 0;
25
- cursor: pointer;
26
- transition: var(--bgl-transition);
27
- color: var(--bgl-black);
28
- text-decoration: none;
29
- position: relative;
30
- }
31
-
32
- .list-item::after {
33
- content: '';
34
- position: absolute;
35
- left: 0;
36
- right: 0;
37
- bottom: 0;
38
- border-bottom: 1px solid var(--border-color);
39
- }
40
-
41
- .list-item:hover,
42
- .list-item.router-link-active {
43
- background-color: var(--bgl-blue-light);
44
- }
45
-
46
- .list-item:active {
47
- -webkit-filter: var(--bgl-hover-filter);
48
- filter: var(--bgl-hover-filter);
49
- }
50
-
51
- @media screen and (max-width: 910px) {
52
- .list-item {
53
- padding: 0.5rem;
54
- }
55
- }
56
18
  </style>
@@ -45,8 +45,7 @@ const computedSchema = $computed(() => useBglSchema<T>({
45
45
  schema: props.schema,
46
46
  showFields: props.showFields,
47
47
  data: props.data,
48
- })
49
- )
48
+ }))
50
49
 
51
50
  function transform(rowData: any) {
52
51
  const obj: Record<string, any> = { ...rowData }
@@ -1,14 +1,14 @@
1
1
  <script lang="ts" setup>
2
- import { BglField, type BglFormSchemaT, Title, useModal } from '@bagelink/vue'
2
+ import { BglField, type BglFormSchemaFnT, Title, useBglSchema, useModal } from '@bagelink/vue'
3
3
  import { useSlots, watch } from 'vue'
4
4
 
5
- type FormStatus = 'idle' | 'loading' | 'success' | 'error'
5
+ export type FormStatus = 'idle' | 'loading' | 'success' | 'error'
6
6
 
7
7
  const props = withDefaults(
8
8
  defineProps<{
9
9
  label?: string
10
10
  id?: string
11
- schema: BglFormSchemaT<any>
11
+ schema: BglFormSchemaFnT<any>
12
12
  modelValue?: Record<string, any>
13
13
  onDelete?: (id: string) => void
14
14
  onSubmit?: (data: any) => void
@@ -45,7 +45,9 @@ const form = $ref<HTMLFormElement>()
45
45
  function validateForm() {
46
46
  // ? Ensures that scrolling does not dismiss validation-tooltip in safari
47
47
  setTimeout(() => form?.reportValidity(), 300) // TODO: check if browser is safari
48
- return form?.reportValidity()
48
+
49
+ if (!form) return false
50
+ return form.reportValidity()
49
51
  }
50
52
 
51
53
  const clearForm = () => (data = {})
@@ -89,6 +91,10 @@ function deleteItem() {
89
91
  )
90
92
  }
91
93
 
94
+ const computedSchema = $computed(
95
+ () => useBglSchema({ schema: props.schema })
96
+ )
97
+
92
98
  defineExpose({
93
99
  submit: runSubmit,
94
100
  validateForm,
@@ -99,27 +105,19 @@ defineExpose({
99
105
  </script>
100
106
 
101
107
  <template>
102
- <template v-if="id">
103
- <BglField
104
- v-for="(field, i) in schema"
105
- :key="field.id || `${i}p`"
106
- v-model="data"
107
- :field="field"
108
- />
109
- </template>
110
108
  <form
111
- v-else-if="!slots.success || status !== 'success'"
109
+ v-if="!slots.success || status !== 'success'"
112
110
  ref="form"
113
111
  @submit.prevent="runSubmit"
114
112
  >
115
113
  <Title v-if="label" tag="h4" :label="label" />
116
114
  <BglField
117
- v-for="(field, i) in schema"
115
+ v-for="(field, i) in computedSchema"
118
116
  :key="field.id || `${i}p`"
119
117
  v-model="data"
120
118
  :field="field"
121
119
  />
122
- <slot name="submit" :submit="runSubmit" :isDirty />
120
+ <slot name="submit" :submit="runSubmit" :isDirty :validateForm />
123
121
  </form>
124
122
  <slot v-if="status === 'success'" name="success" />
125
123
  <slot v-if="status === 'error'" name="error" />