@bagelink/vue 1.8.52 → 1.8.57

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 (41) hide show
  1. package/dist/components/layout/AppContent.vue.d.ts +0 -3
  2. package/dist/components/layout/AppContent.vue.d.ts.map +1 -1
  3. package/dist/dialog/Dialog.vue.d.ts +44 -0
  4. package/dist/dialog/Dialog.vue.d.ts.map +1 -0
  5. package/dist/dialog/DialogConfirm.vue.d.ts +29 -0
  6. package/dist/dialog/DialogConfirm.vue.d.ts.map +1 -0
  7. package/dist/dialog/DialogForm.vue.d.ts +38 -0
  8. package/dist/dialog/DialogForm.vue.d.ts.map +1 -0
  9. package/dist/dialog/dialogTypes.d.ts +48 -0
  10. package/dist/dialog/dialogTypes.d.ts.map +1 -0
  11. package/dist/dialog/index.d.ts +6 -0
  12. package/dist/dialog/index.d.ts.map +1 -0
  13. package/dist/dialog/useDialog.d.ts +6 -0
  14. package/dist/dialog/useDialog.d.ts.map +1 -0
  15. package/dist/form-flow/FormFlow.vue.d.ts +30 -0
  16. package/dist/form-flow/FormFlow.vue.d.ts.map +1 -0
  17. package/dist/form-flow/MultiStepForm.vue.d.ts +43 -0
  18. package/dist/form-flow/MultiStepForm.vue.d.ts.map +1 -0
  19. package/dist/form-flow/form-flow.d.ts +261 -0
  20. package/dist/form-flow/form-flow.d.ts.map +1 -0
  21. package/dist/index.cjs +23 -23
  22. package/dist/index.d.ts +4 -0
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.mjs +5846 -4738
  25. package/dist/style.css +1 -1
  26. package/dist/utils/queryFilter.d.ts +7 -2
  27. package/dist/utils/queryFilter.d.ts.map +1 -1
  28. package/package.json +1 -1
  29. package/src/components/layout/AppContent.vue +1 -4
  30. package/src/dialog/Dialog.vue +358 -0
  31. package/src/dialog/DialogConfirm.vue +76 -0
  32. package/src/dialog/DialogForm.vue +153 -0
  33. package/src/dialog/dialogTypes.ts +65 -0
  34. package/src/dialog/index.ts +16 -0
  35. package/src/dialog/useDialog.ts +247 -0
  36. package/src/form-flow/FormFlow.vue +366 -0
  37. package/src/form-flow/MultiStepForm.vue +538 -0
  38. package/src/form-flow/README.md +185 -0
  39. package/src/form-flow/form-flow.ts +801 -0
  40. package/src/index.ts +9 -1
  41. package/src/utils/queryFilter.ts +68 -10
@@ -1,7 +1,6 @@
1
1
  interface Props {
2
2
  title?: string;
3
3
  showMenuButton?: boolean;
4
- showBackButton?: boolean;
5
4
  backTo?: string;
6
5
  border?: boolean;
7
6
  }
@@ -21,8 +20,6 @@ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
21
20
  declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
22
21
  border: boolean;
23
22
  showMenuButton: boolean;
24
- showBackButton: boolean;
25
- backTo: string;
26
23
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
27
24
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
28
25
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"AppContent.vue.d.ts","sourceRoot":"","sources":["../../../src/components/layout/AppContent.vue"],"names":[],"mappings":"AAiJA,UAAU,KAAK;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,OAAO,CAAA;CAChB;AAuCD,iBAAS,cAAc;WAuHT,OAAO,IAA6B;;+BAdd,GAAG;iCACD,GAAG;gCACJ,GAAG;yBACV,GAAG;yBACH,GAAG;;;;EAehC;AAaD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;YAlLX,OAAO;oBAHC,OAAO;oBACP,OAAO;YACf,MAAM;wFA2Ld,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"AppContent.vue.d.ts","sourceRoot":"","sources":["../../../src/components/layout/AppContent.vue"],"names":[],"mappings":"AA8IA,UAAU,KAAK;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,OAAO,CAAA;CAChB;AAmCD,iBAAS,cAAc;WAyHT,OAAO,IAA6B;;+BAdd,GAAG;iCACD,GAAG;gCACJ,GAAG;yBACV,GAAG;yBACH,GAAG;;;;EAehC;AAaD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;YAhLX,OAAO;oBAFC,OAAO;wFA0LvB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { DialogWidth, DialogPosition } from './dialogTypes';
2
+ type __VLS_Props = {
3
+ open: boolean;
4
+ title?: string;
5
+ width?: DialogWidth;
6
+ position?: DialogPosition;
7
+ dismissable?: boolean;
8
+ };
9
+ declare function close(): void;
10
+ declare function __VLS_template(): {
11
+ attrs: Partial<{}>;
12
+ slots: {
13
+ default?(_: {}): any;
14
+ footer?(_: {}): any;
15
+ };
16
+ refs: {
17
+ dialogRef: HTMLDialogElement;
18
+ };
19
+ rootEl: HTMLDialogElement;
20
+ };
21
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
22
+ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {
23
+ close: typeof close;
24
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
25
+ "update:open": (value: boolean) => any;
26
+ close: () => any;
27
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
28
+ "onUpdate:open"?: ((value: boolean) => any) | undefined;
29
+ onClose?: (() => any) | undefined;
30
+ }>, {
31
+ dismissable: boolean;
32
+ width: DialogWidth;
33
+ position: DialogPosition;
34
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
35
+ dialogRef: HTMLDialogElement;
36
+ }, HTMLDialogElement>;
37
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
38
+ export default _default;
39
+ type __VLS_WithTemplateSlots<T, S> = T & {
40
+ new (): {
41
+ $slots: S;
42
+ };
43
+ };
44
+ //# sourceMappingURL=Dialog.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dialog.vue.d.ts","sourceRoot":"","sources":["../../src/dialog/Dialog.vue"],"names":[],"mappings":"AAAA,OAiXO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAIhE,KAAK,WAAW,GAAG;IAClB,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,WAAW,CAAC,EAAE,OAAO,CAAA;CACrB,CAAC;AAqEF,iBAAS,KAAK,SAEb;AAYD,iBAAS,cAAc;WA0FT,OAAO,IAA6B;;yBAZrB,GAAG;wBACJ,GAAG;;;;;;EAgB9B;AAkBD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;;;;iBAtMN,OAAO;WAFb,WAAW;cACR,cAAc;;;qBAkNxB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { DialogWidth, DialogPosition } from './dialogTypes';
2
+ type __VLS_Props = {
3
+ open: boolean;
4
+ title?: string;
5
+ message: string;
6
+ width?: DialogWidth;
7
+ position?: DialogPosition;
8
+ dismissable?: boolean;
9
+ confirmText?: string;
10
+ cancelText?: string;
11
+ confirmColor?: 'primary' | 'red' | 'green' | 'blue';
12
+ };
13
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
14
+ "update:open": (value: boolean) => any;
15
+ resolve: (confirmed: boolean) => any;
16
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
17
+ "onUpdate:open"?: ((value: boolean) => any) | undefined;
18
+ onResolve?: ((confirmed: boolean) => any) | undefined;
19
+ }>, {
20
+ title: string;
21
+ confirmText: string;
22
+ cancelText: string;
23
+ dismissable: boolean;
24
+ width: DialogWidth;
25
+ position: DialogPosition;
26
+ confirmColor: "primary" | "red" | "green" | "blue";
27
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDialogElement>;
28
+ export default _default;
29
+ //# sourceMappingURL=DialogConfirm.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DialogConfirm.vue.d.ts","sourceRoot":"","sources":["../../src/dialog/DialogConfirm.vue"],"names":[],"mappings":"AAAA,OAiFO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAIhE,KAAK,WAAW,GAAG;IAClB,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,SAAS,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAA;CACnD,CAAC;;;;;;;;WARO,MAAM;iBAKA,MAAM;gBACP,MAAM;iBAFL,OAAO;WAFb,WAAW;cACR,cAAc;kBAIV,SAAS,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM;;AAoKpD,wBASG"}
@@ -0,0 +1,38 @@
1
+ import { SchemaDefinition } from '../form-flow/form-flow';
2
+ import { DialogWidth, DialogPosition, DialogAction } from './dialogTypes';
3
+ declare const _default: <T extends Record<string, any>>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
4
+ props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
5
+ readonly "onUpdate:open"?: ((value: boolean) => any) | undefined;
6
+ readonly onResolve?: ((result: {
7
+ action: DialogAction;
8
+ data: T;
9
+ }) => any) | undefined;
10
+ } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>, "onUpdate:open" | "onResolve"> & {
11
+ open: boolean;
12
+ title?: string;
13
+ width?: DialogWidth;
14
+ position?: DialogPosition;
15
+ dismissable?: boolean;
16
+ schema: SchemaDefinition;
17
+ modelValue?: T;
18
+ onSubmit?: (data: T) => Promise<void> | void;
19
+ onDelete?: (data: T) => Promise<void> | void;
20
+ submitText?: string;
21
+ cancelText?: string;
22
+ deleteText?: string;
23
+ } & Partial<{}>> & import('vue').PublicProps;
24
+ expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
25
+ attrs: any;
26
+ slots: {};
27
+ emit: ((evt: "update:open", value: boolean) => void) & ((evt: "resolve", result: {
28
+ action: DialogAction;
29
+ data: T;
30
+ }) => void);
31
+ }>) => import('vue').VNode & {
32
+ __ctx?: Awaited<typeof __VLS_setup>;
33
+ };
34
+ export default _default;
35
+ type __VLS_PrettifyLocal<T> = {
36
+ [K in keyof T]: T[K];
37
+ } & {};
38
+ //# sourceMappingURL=DialogForm.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DialogForm.vue.d.ts","sourceRoot":"","sources":["../../src/dialog/DialogForm.vue"],"names":[],"mappings":"AA2JA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9D;;;;;GAKG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;yBAM7D,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7C,aAAa,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,EAC9D,YAAY,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,EAC3G,eAAe,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,EACjE;WA4RO,mBAAmB,CAAC;;;oBAlQG,YAAY;kBAAQ,CAAC;;;cAxB7C,OAAO;gBACL,MAAM;gBACN,WAAW;mBACR,cAAc;sBACX,OAAO;gBACb,gBAAgB;qBACX,CAAC;mBACH,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;mBACjC,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;qBAC/B,MAAM;qBACN,MAAM;qBACN,MAAM;mBA+Q0E,CAAC,4BAA2B;oBACzG,OAAO,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,IAAI;WAClD,GAAG;;;gBApQoB,YAAY;cAAQ,CAAC;;EAwQhD,KACQ,OAAO,KAAK,EAAE,KAAK,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,WAAW,CAAC,CAAA;CAAE;AAvSzE,wBAuS4E;AAC5E,KAAK,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { Component } from 'vue';
2
+ import { SchemaDefinition } from '../form-flow/form-flow';
3
+ export type DialogWidth = 's' | 'm' | 'l' | 'xl' | 'full';
4
+ export type DialogPosition = 'center' | 'left' | 'right';
5
+ export type DialogAction = 'submit' | 'cancel' | 'delete';
6
+ export interface DialogBaseOptions {
7
+ title?: string;
8
+ width?: DialogWidth;
9
+ position?: DialogPosition;
10
+ dismissable?: boolean;
11
+ class?: string;
12
+ }
13
+ export interface DialogFormOptions<T extends Record<string, any> = Record<string, any>> extends DialogBaseOptions {
14
+ schema: SchemaDefinition;
15
+ modelValue?: T;
16
+ /** Runs before close on submit - throw to keep dialog open with error */
17
+ onSubmit?: (data: T) => Promise<void> | void;
18
+ /** If provided, shows delete button - throw to keep dialog open with error */
19
+ onDelete?: (data: T) => Promise<void> | void;
20
+ /** Custom button text */
21
+ submitText?: string;
22
+ cancelText?: string;
23
+ deleteText?: string;
24
+ }
25
+ export interface DialogFormResult<T> {
26
+ action: DialogAction;
27
+ data: T;
28
+ }
29
+ export interface DialogConfirmOptions extends DialogBaseOptions {
30
+ message: string;
31
+ confirmText?: string;
32
+ cancelText?: string;
33
+ confirmColor?: 'primary' | 'red' | 'green' | 'blue';
34
+ }
35
+ export interface DialogOpenOptions extends DialogBaseOptions {
36
+ component: Component | string;
37
+ props?: Record<string, any>;
38
+ }
39
+ export interface DialogRef {
40
+ close: () => void;
41
+ }
42
+ export interface DialogApi {
43
+ form: <T extends Record<string, any> = Record<string, any>>(options: DialogFormOptions<T>) => Promise<DialogFormResult<T>>;
44
+ confirm: (options: string | DialogConfirmOptions) => Promise<boolean>;
45
+ open: (options: DialogOpenOptions) => DialogRef;
46
+ }
47
+ export declare const DIALOG_WIDTHS: Record<DialogWidth, string>;
48
+ //# sourceMappingURL=dialogTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialogTypes.d.ts","sourceRoot":"","sources":["../../src/dialog/dialogTypes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AACpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAE9D,MAAM,MAAM,WAAW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,MAAM,CAAA;AACzD,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;AACxD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAEzD,MAAM,WAAW,iBAAiB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAE,SAAQ,iBAAiB;IAChH,MAAM,EAAE,gBAAgB,CAAA;IACxB,UAAU,CAAC,EAAE,CAAC,CAAA;IACd,yEAAyE;IACzE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC5C,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC5C,yBAAyB;IACzB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC;IAClC,MAAM,EAAE,YAAY,CAAA;IACpB,IAAI,EAAE,CAAC,CAAA;CACP;AAED,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAC9D,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,SAAS,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAA;CACnD;AAED,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC3D,SAAS,EAAE,SAAS,GAAG,MAAM,CAAA;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAC3B;AAED,MAAM,WAAW,SAAS;IACzB,KAAK,EAAE,MAAM,IAAI,CAAA;CACjB;AAED,MAAM,WAAW,SAAS;IACzB,IAAI,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzD,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,KACzB,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;IACjC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACrE,IAAI,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,SAAS,CAAA;CAC/C;AAGD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAMrD,CAAA"}
@@ -0,0 +1,6 @@
1
+ export { default as Dialog } from './Dialog.vue';
2
+ export { default as DialogConfirm } from './DialogConfirm.vue';
3
+ export { default as DialogForm } from './DialogForm.vue';
4
+ export type { DialogAction, DialogApi, DialogBaseOptions, DialogConfirmOptions, DialogFormOptions, DialogFormResult, DialogOpenOptions, DialogPosition, DialogRef, DialogWidth } from './dialogTypes';
5
+ export { DialogPlugin, DialogSymbol, useDialog } from './useDialog';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dialog/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAA;AACxD,YAAY,EACX,YAAY,EACZ,SAAS,EACT,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,SAAS,EACT,WAAW,EACX,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { InjectionKey, Plugin } from 'vue';
2
+ import { DialogApi } from './dialogTypes';
3
+ export declare const DialogSymbol: InjectionKey<DialogApi>;
4
+ export declare function useDialog(): DialogApi;
5
+ export declare const DialogPlugin: Plugin;
6
+ //# sourceMappingURL=useDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDialog.d.ts","sourceRoot":"","sources":["../../src/dialog/useDialog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAO,YAAY,EAAE,MAAM,EAAE,MAAM,KAAK,CAAA;AACpD,OAAO,KAAK,EACX,SAAS,EAOT,MAAM,eAAe,CAAA;AAMtB,eAAO,MAAM,YAAY,EAAE,YAAY,CAAC,SAAS,CAAoB,CAAA;AAKrE,wBAAgB,SAAS,IAAI,SAAS,CASrC;AAUD,eAAO,MAAM,YAAY,EAAE,MA+M1B,CAAA"}
@@ -0,0 +1,30 @@
1
+ import { SchemaDefinition, FieldBuilder } from './form-flow';
2
+ export interface Props {
3
+ schema: SchemaDefinition;
4
+ modelValue?: Record<string, any>;
5
+ components?: Record<string, any>;
6
+ /** External validation errors (from parent MultiStepForm) */
7
+ errors?: Record<string, string>;
8
+ }
9
+ declare const _default: <T extends Record<string, any>>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
10
+ props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
11
+ readonly "onUpdate:modelValue"?: ((value: Record<string, any>) => any) | undefined;
12
+ } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>, "onUpdate:modelValue"> & Props & Partial<{}>> & import('vue').PublicProps;
13
+ expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
14
+ attrs: any;
15
+ slots: Partial<Record<`field:${string}`, (_: {
16
+ value: any;
17
+ field: FieldBuilder<any>;
18
+ formData: any;
19
+ error: string;
20
+ onChange: (val: any) => void;
21
+ }) => any>>;
22
+ emit: (evt: "update:modelValue", value: Record<string, any>) => void;
23
+ }>) => import('vue').VNode & {
24
+ __ctx?: Awaited<typeof __VLS_setup>;
25
+ };
26
+ export default _default;
27
+ type __VLS_PrettifyLocal<T> = {
28
+ [K in keyof T]: T[K];
29
+ } & {};
30
+ //# sourceMappingURL=FormFlow.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormFlow.vue.d.ts","sourceRoot":"","sources":["../../src/form-flow/FormFlow.vue"],"names":[],"mappings":"AAAA,OA4XO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAkBjE,MAAM,WAAW,KAAK;IACrB,MAAM,EAAE,gBAAgB,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAChC,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC/B;yBAEgB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7C,aAAa,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,EAC9D,YAAY,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,EAC3G,eAAe,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,EACjE;WAobO,mBAAmB,CAAC;;iKAAkE,CAAC,4BAA2B;oBACzG,OAAO,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,IAAI;WAClD,GAAG;;;;;;wBAzIO,GAAG;UAkGgE,GAAG;;EA2CpF,KACQ,OAAO,KAAK,EAAE,KAAK,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,WAAW,CAAC,CAAA;CAAE;AA/bzE,wBA+b4E;AAC5E,KAAK,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { SchemaDefinition } from './form-flow';
2
+ export interface Props {
3
+ schema: Record<string, SchemaDefinition>;
4
+ modelValue?: Record<string, any>;
5
+ currentStep?: string;
6
+ components?: Record<string, any>;
7
+ /** Whether to validate required fields before allowing next step */
8
+ validateOnNext?: boolean;
9
+ }
10
+ declare function validateCurrentStep(): boolean;
11
+ declare function __VLS_template(): {
12
+ attrs: Partial<{}>;
13
+ slots: any;
14
+ refs: {};
15
+ rootEl: HTMLDivElement;
16
+ };
17
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
18
+ declare const __VLS_component: import('vue').DefineComponent<Props, {
19
+ validateCurrentStep: typeof validateCurrentStep;
20
+ stepErrors: import('vue').Ref<Record<string, string>, Record<string, string>>;
21
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
22
+ "update:modelValue": (value: Record<string, any>) => any;
23
+ stepChange: (step: string) => any;
24
+ complete: () => any;
25
+ "update:currentStep": (step: string) => any;
26
+ validationError: (errors: Record<string, string>) => any;
27
+ }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
28
+ "onUpdate:modelValue"?: ((value: Record<string, any>) => any) | undefined;
29
+ onStepChange?: ((step: string) => any) | undefined;
30
+ onComplete?: (() => any) | undefined;
31
+ "onUpdate:currentStep"?: ((step: string) => any) | undefined;
32
+ onValidationError?: ((errors: Record<string, string>) => any) | undefined;
33
+ }>, {
34
+ validateOnNext: boolean;
35
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
36
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
37
+ export default _default;
38
+ type __VLS_WithTemplateSlots<T, S> = T & {
39
+ new (): {
40
+ $slots: S;
41
+ };
42
+ };
43
+ //# sourceMappingURL=MultiStepForm.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiStepForm.vue.d.ts","sourceRoot":"","sources":["../../src/form-flow/MultiStepForm.vue"],"names":[],"mappings":"AAAA,OAsiBO,KAAK,EAAgB,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAOjE,MAAM,WAAW,KAAK;IACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAChC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAChC,oEAAoE;IACpE,cAAc,CAAC,EAAE,OAAO,CAAA;CACxB;AA6LD,iBAAS,mBAAmB,IAAI,OAAO,CA4CtC;AAoED,iBAAS,cAAc;WA6IT,OAAO,IAA6B;;;;EAKjD;AAuBD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;oBAxdH,OAAO;wFAkevB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -0,0 +1,261 @@
1
+ import { Component } from 'vue';
2
+ type Primitive = string | number | boolean | null | undefined | Date | ((...args: any[]) => any);
3
+ /**
4
+ * Extract all possible nested keys from a type, including:
5
+ * - Dot notation paths: 'meta.bio'
6
+ * - Array index paths: 'rules[0].name'
7
+ *
8
+ * @example
9
+ * interface Form {
10
+ * name: string
11
+ * meta: { bio: string }
12
+ * rules: Array<{ field: string, value: number }>
13
+ * }
14
+ *
15
+ * type Keys = NestedKeyOf<Form>
16
+ * // 'name' | 'meta' | 'meta.bio' | 'rules' | 'rules[0]' | 'rules[0].field' | 'rules[0].value'
17
+ */
18
+ type NestedKeyOf<T> = T extends Primitive ? never : {
19
+ [K in keyof T & string]: K | (T[K] extends Primitive ? never : T[K] extends Array<infer U> ? `${K}[${number}]` | (U extends Primitive ? never : `${K}[${number}].${NestedKeyOf<U>}`) : `${K}.${NestedKeyOf<T[K]>}`);
20
+ }[keyof T & string];
21
+ interface BaseFieldConfig {
22
+ label?: string;
23
+ required?: boolean;
24
+ placeholder?: string;
25
+ helpText?: string;
26
+ default?: any;
27
+ class?: string;
28
+ }
29
+ /**
30
+ * Syntactic sugar for required: true
31
+ * @example $.email({ required }) instead of $.email({ required: true })
32
+ */
33
+ export declare const required = true;
34
+ export interface FieldBuilder<TValue = any> {
35
+ _type: string;
36
+ _config: BaseFieldConfig & Record<string, any>;
37
+ _condition?: string;
38
+ _validations?: Array<(value: TValue) => true | string>;
39
+ _onUpdate?: (value: TValue, formData: Record<string, any>) => void;
40
+ _class?: string;
41
+ _slots?: Array<SlotConfig>;
42
+ _component?: ComponentConfig;
43
+ if: (condition: string) => FieldBuilder<TValue>;
44
+ validate: (fn: (value: TValue) => true | string) => FieldBuilder<TValue>;
45
+ onUpdate: (fn: (value: TValue, formData: Record<string, any>) => void) => FieldBuilder<TValue>;
46
+ class: (className: string) => FieldBuilder<TValue>;
47
+ slot: {
48
+ (component: Component | string, props?: Record<string, any>): FieldBuilder<TValue>;
49
+ (slotName: string, component: Component | string, props?: Record<string, any>): FieldBuilder<TValue>;
50
+ };
51
+ }
52
+ interface SlotConfig {
53
+ name?: string;
54
+ component: Component | string;
55
+ props?: Record<string, any>;
56
+ }
57
+ interface ComponentConfig {
58
+ component: Component | string;
59
+ props?: Record<string, any>;
60
+ }
61
+ export interface SchemaDefinition {
62
+ _isSchema: true;
63
+ _label?: string;
64
+ _fields: Record<string, FieldBuilder>;
65
+ _condition?: string;
66
+ _class?: string;
67
+ if: (condition: string) => SchemaDefinition;
68
+ class: (className: string) => SchemaDefinition;
69
+ toJSONSchema: () => any;
70
+ }
71
+ export declare const $: {
72
+ text(labelOrConfig?: string | (BaseFieldConfig & {
73
+ min?: number;
74
+ max?: number;
75
+ }), config?: BaseFieldConfig & {
76
+ min?: number;
77
+ max?: number;
78
+ }): FieldBuilder<string>;
79
+ email(labelOrConfig?: string | BaseFieldConfig, config?: BaseFieldConfig): FieldBuilder<string>;
80
+ password(labelOrConfig?: string | BaseFieldConfig, config?: BaseFieldConfig): FieldBuilder<string>;
81
+ number(labelOrConfig?: string | (BaseFieldConfig & {
82
+ min?: number;
83
+ max?: number;
84
+ step?: number;
85
+ }), config?: BaseFieldConfig & {
86
+ min?: number;
87
+ max?: number;
88
+ step?: number;
89
+ }): FieldBuilder<number>;
90
+ tel(labelOrConfig?: string | BaseFieldConfig, config?: BaseFieldConfig): FieldBuilder<string>;
91
+ url(labelOrConfig?: string | BaseFieldConfig, config?: BaseFieldConfig): FieldBuilder<string>;
92
+ date(labelOrConfig?: string | (BaseFieldConfig & {
93
+ min?: string;
94
+ max?: string;
95
+ }), config?: BaseFieldConfig & {
96
+ min?: string;
97
+ max?: string;
98
+ }): FieldBuilder<string>;
99
+ time(labelOrConfig?: string | BaseFieldConfig, config?: BaseFieldConfig): FieldBuilder<string>;
100
+ datetime(labelOrConfig?: string | BaseFieldConfig, config?: BaseFieldConfig): FieldBuilder<string>;
101
+ textarea(labelOrConfig?: string | (BaseFieldConfig & {
102
+ rows?: number;
103
+ cols?: number;
104
+ }), config?: BaseFieldConfig & {
105
+ rows?: number;
106
+ cols?: number;
107
+ }): FieldBuilder<string>;
108
+ richtext(labelOrConfig?: string | (BaseFieldConfig & {
109
+ autoheight?: boolean;
110
+ }), config?: BaseFieldConfig & {
111
+ autoheight?: boolean;
112
+ }): FieldBuilder<string>;
113
+ checkbox(labelOrConfig?: string | BaseFieldConfig, config?: BaseFieldConfig): FieldBuilder<boolean>;
114
+ toggle(labelOrConfig?: string | BaseFieldConfig, config?: BaseFieldConfig): FieldBuilder<boolean>;
115
+ radio<T extends string = string>(options: T[] | readonly T[], labelOrConfig?: string | BaseFieldConfig, config?: BaseFieldConfig): FieldBuilder<T>;
116
+ select<T extends string = string>(options: T[] | readonly T[], labelOrConfig?: string | BaseFieldConfig, config?: BaseFieldConfig): FieldBuilder<T>;
117
+ multiselect<T extends string = string>(options: T[] | readonly T[], labelOrConfig?: string | BaseFieldConfig, config?: BaseFieldConfig): FieldBuilder<T[]>;
118
+ array(label: string, schemaOrComponent?: SchemaDefinition | Component | string, config?: BaseFieldConfig & {
119
+ allowAdd?: boolean;
120
+ allowDelete?: boolean;
121
+ min?: number;
122
+ max?: number;
123
+ }): FieldBuilder<any[]>;
124
+ component(component: Component | string, props?: Record<string, any>): FieldBuilder;
125
+ /**
126
+ * Display-only component that receives formData but doesn't bind to a field value.
127
+ * Useful for summaries, previews, info panels, etc.
128
+ *
129
+ * @example
130
+ * $.display(Summary)
131
+ * $.display(Summary, { showPrice: true })
132
+ *
133
+ * // The component receives: { formData, ...props }
134
+ */
135
+ display(component: Component | string, props?: Record<string, any>): FieldBuilder<void>;
136
+ };
137
+ /**
138
+ * Define a single-step form schema or a step in a multi-step form
139
+ *
140
+ * Supports both direct keys and nested paths (dot notation):
141
+ * - Direct: { email: $.email() }
142
+ * - Nested: { 'meta.bio': $.text() }
143
+ *
144
+ * @example
145
+ * // Single-step form
146
+ * const userSchema = schema<User>({
147
+ * email: $.email({ required: true }),
148
+ * firstName: $.text({ required: true }),
149
+ * 'meta.bio': $.richtext() // Nested path - type-checked!
150
+ * })
151
+ *
152
+ * @example
153
+ * // Multi-step form step (with label)
154
+ * const step = schema('Personal Info', {
155
+ * firstName: $.text({ required: true }),
156
+ * lastName: $.text({ required: true })
157
+ * })
158
+ */
159
+ export declare function schema<T extends Record<string, any>>(labelOrFields: string | Partial<Record<NestedKeyOf<T>, FieldBuilder>>, maybeFields?: Partial<Record<NestedKeyOf<T>, FieldBuilder>>): SchemaDefinition;
160
+ /**
161
+ * Multi-step schema type with embedded form data type
162
+ * The __type property is a phantom type for TypeScript inference
163
+ */
164
+ export type MultiStepSchemaDefinition<T = any> = Record<string, SchemaDefinition> & {
165
+ /** Phantom type for form data inference (not present at runtime) */
166
+ __type?: T;
167
+ };
168
+ /**
169
+ * Define a multi-step form schema
170
+ *
171
+ * @param T - The final merged form data type across all steps
172
+ *
173
+ * @example
174
+ * interface OnboardingData {
175
+ * userType: 'individual' | 'business'
176
+ * firstName: string
177
+ * lastName: string
178
+ * companyName?: string
179
+ * }
180
+ *
181
+ * const onboardingFlow = multiStepSchema<OnboardingData>({
182
+ * user_type: schema('Who are you?', {
183
+ * userType: $.radio(['individual', 'business'], { required: true })
184
+ * }),
185
+ * personal_info: schema('Personal Information', {
186
+ * firstName: $.text({ required: true }),
187
+ * lastName: $.text({ required: true })
188
+ * }),
189
+ * business_info: schema('Company Details', {
190
+ * companyName: $.text({ required: true })
191
+ * }).if('userType eq "business"')
192
+ * })
193
+ *
194
+ * // Later, extract the type:
195
+ * type FormData = NonNullable<typeof onboardingFlow.__type>
196
+ */
197
+ export declare function multiStepSchema<T extends Record<string, any> = Record<string, any>>(steps: Record<string, SchemaDefinition>): MultiStepSchemaDefinition<T>;
198
+ interface JSONSchemaProperty {
199
+ 'type'?: string;
200
+ 'title'?: string;
201
+ 'description'?: string;
202
+ 'default'?: any;
203
+ 'enum'?: any[];
204
+ 'format'?: string;
205
+ 'minimum'?: number;
206
+ 'maximum'?: number;
207
+ 'minLength'?: number;
208
+ 'maxLength'?: number;
209
+ 'x-ui'?: {
210
+ fieldType?: string;
211
+ placeholder?: string;
212
+ disabled?: boolean;
213
+ readonly?: boolean;
214
+ autoheight?: boolean;
215
+ rows?: number;
216
+ cols?: number;
217
+ class?: string;
218
+ condition?: string;
219
+ allowAdd?: boolean;
220
+ allowDelete?: boolean;
221
+ component?: string;
222
+ componentProps?: Record<string, any>;
223
+ };
224
+ }
225
+ interface JSONSchemaObject {
226
+ 'type'?: string;
227
+ 'title'?: string;
228
+ 'properties'?: Record<string, JSONSchemaProperty>;
229
+ 'required'?: string[];
230
+ 'x-ui'?: {
231
+ condition?: string;
232
+ class?: string;
233
+ };
234
+ }
235
+ /**
236
+ * Create a schema from a JSONSchema object
237
+ *
238
+ * This allows you to save schemas to a database and load them later.
239
+ *
240
+ * @example
241
+ * // Save to database
242
+ * const jsonSchema = mySchema.toJSONSchema()
243
+ * await db.schemas.insert({ name: 'user-form', schema: jsonSchema })
244
+ *
245
+ * // Load from database
246
+ * const saved = await db.schemas.findOne({ name: 'user-form' })
247
+ * const loadedSchema = fromJSONSchema(saved.schema)
248
+ *
249
+ * // Use in component
250
+ * <FormFlow v-model="data" :schema="loadedSchema" />
251
+ */
252
+ export declare function fromJSONSchema(jsonSchema: JSONSchemaObject): SchemaDefinition;
253
+ /**
254
+ * Infer the TypeScript type from a schema definition
255
+ */
256
+ export type InferSchemaType<S extends SchemaDefinition> = {
257
+ [K in keyof S['_fields']]: InferFieldType<S['_fields'][K]>;
258
+ };
259
+ type InferFieldType<F> = F extends FieldBuilder<infer T> ? T : any;
260
+ export {};
261
+ //# sourceMappingURL=form-flow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-flow.d.ts","sourceRoot":"","sources":["../../src/form-flow/form-flow.ts"],"names":[],"mappings":"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"}