@viveksinghind/narrative-form-vue 1.0.2 → 1.0.4
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/composables/useDynamicForm.d.ts +313 -0
- package/dist/composables/useDynamicForm.d.ts.map +1 -0
- package/dist/composables/useTypewriter.d.ts +13 -0
- package/dist/composables/useTypewriter.d.ts.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +1049 -211
- package/dist/style.css +1 -1
- package/package.json +54 -54
- package/LICENSE +0 -21
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
import { Ref } from 'vue';
|
|
2
|
+
import { NarrativeFormConfig } from '@viveksinghind/narrative-form-core';
|
|
3
|
+
export interface UseDynamicFormProps {
|
|
4
|
+
fieldsUrl?: string | Ref<string | undefined>;
|
|
5
|
+
fieldsUrlHeaders?: Record<string, string> | Ref<Record<string, string> | undefined>;
|
|
6
|
+
formConfig?: NarrativeFormConfig | Ref<NarrativeFormConfig | undefined>;
|
|
7
|
+
onFetchError?: (error: Error) => void;
|
|
8
|
+
}
|
|
9
|
+
export declare function useDynamicForm(props: UseDynamicFormProps): {
|
|
10
|
+
config: Ref<{
|
|
11
|
+
form: {
|
|
12
|
+
id: string;
|
|
13
|
+
name: string;
|
|
14
|
+
version: number;
|
|
15
|
+
};
|
|
16
|
+
welcome?: {
|
|
17
|
+
show?: boolean | undefined;
|
|
18
|
+
heading?: string | undefined;
|
|
19
|
+
subtext?: string | undefined;
|
|
20
|
+
ctaLabel?: string | undefined;
|
|
21
|
+
} | undefined;
|
|
22
|
+
fields: {
|
|
23
|
+
key: string;
|
|
24
|
+
type: import('@viveksinghind/narrative-form-core').NarrativeFieldType;
|
|
25
|
+
prefix: string;
|
|
26
|
+
suffix?: string | undefined;
|
|
27
|
+
placeholder?: string | undefined;
|
|
28
|
+
order?: number | undefined;
|
|
29
|
+
options?: string[] | undefined;
|
|
30
|
+
animate?: boolean | undefined;
|
|
31
|
+
autoAdvance?: boolean | undefined;
|
|
32
|
+
lockPrevious?: boolean | undefined;
|
|
33
|
+
showIf?: ((values: import('@viveksinghind/narrative-form-core').NarrativeFieldValues) => boolean) | undefined;
|
|
34
|
+
className?: string | undefined;
|
|
35
|
+
inputClassName?: string | undefined;
|
|
36
|
+
editable?: boolean | undefined;
|
|
37
|
+
defaultValue?: string | undefined;
|
|
38
|
+
validation?: {
|
|
39
|
+
required?: boolean | undefined;
|
|
40
|
+
requiredMessage?: string | undefined;
|
|
41
|
+
minLength?: number | undefined;
|
|
42
|
+
minLengthMessage?: string | undefined;
|
|
43
|
+
maxLength?: number | undefined;
|
|
44
|
+
maxLengthMessage?: string | undefined;
|
|
45
|
+
exactLength?: number | undefined;
|
|
46
|
+
exactLengthMessage?: string | undefined;
|
|
47
|
+
pattern?: RegExp | undefined;
|
|
48
|
+
patternMessage?: string | undefined;
|
|
49
|
+
isEmail?: boolean | undefined;
|
|
50
|
+
isEmailMessage?: string | undefined;
|
|
51
|
+
min?: number | undefined;
|
|
52
|
+
minMessage?: string | undefined;
|
|
53
|
+
max?: number | undefined;
|
|
54
|
+
maxMessage?: string | undefined;
|
|
55
|
+
custom?: ((value: string, allValues: import('@viveksinghind/narrative-form-core').NarrativeFieldValues) => boolean | string | Promise<boolean | string>) | undefined;
|
|
56
|
+
rules?: {
|
|
57
|
+
name: string;
|
|
58
|
+
validate: (value: string, allValues: import('@viveksinghind/narrative-form-core').NarrativeFieldValues) => boolean | string | Promise<boolean | string>;
|
|
59
|
+
message?: string | undefined;
|
|
60
|
+
async?: boolean | undefined;
|
|
61
|
+
debounce?: number | undefined;
|
|
62
|
+
}[] | undefined;
|
|
63
|
+
mode?: "bail" | "all" | undefined;
|
|
64
|
+
trigger?: "onChange" | "onBlur" | "onSubmit" | "onConfirm" | "debounced" | undefined;
|
|
65
|
+
debounceMs?: number | undefined;
|
|
66
|
+
errorDisplay?: {
|
|
67
|
+
mode?: "inline" | "toast" | "shake" | "inline+shake" | "tooltip" | undefined;
|
|
68
|
+
position?: "below" | "above" | undefined;
|
|
69
|
+
icon?: boolean | undefined;
|
|
70
|
+
iconChar?: string | undefined;
|
|
71
|
+
animateIn?: "fadeUp" | "slideDown" | "none" | undefined;
|
|
72
|
+
clearOn?: "onChange" | "onFocus" | undefined;
|
|
73
|
+
} | undefined;
|
|
74
|
+
use?: string | string[] | undefined;
|
|
75
|
+
serverValidate?: {
|
|
76
|
+
url: string;
|
|
77
|
+
method?: "GET" | "POST" | undefined;
|
|
78
|
+
headers?: Record<string, string> | undefined;
|
|
79
|
+
debounceMs?: number | undefined;
|
|
80
|
+
timeout?: number | undefined;
|
|
81
|
+
timeoutMessage?: string | undefined;
|
|
82
|
+
responsePath: string;
|
|
83
|
+
errorPath: string;
|
|
84
|
+
} | undefined;
|
|
85
|
+
loadingText?: string | undefined;
|
|
86
|
+
successIndicator?: boolean | undefined;
|
|
87
|
+
} | undefined;
|
|
88
|
+
sanitise?: ((value: string) => string) | undefined;
|
|
89
|
+
format?: ((value: string) => string) | undefined;
|
|
90
|
+
otpLength?: number | undefined;
|
|
91
|
+
onRequest?: (() => void | Promise<void>) | undefined;
|
|
92
|
+
onVerify?: ((otp: string) => void | Promise<void>) | undefined;
|
|
93
|
+
resendLabel?: string | undefined;
|
|
94
|
+
resendDelay?: number | undefined;
|
|
95
|
+
}[];
|
|
96
|
+
theme?: {
|
|
97
|
+
background?: string | undefined;
|
|
98
|
+
textColor?: string | undefined;
|
|
99
|
+
inputBorderColor?: string | undefined;
|
|
100
|
+
placeholderColor?: string | undefined;
|
|
101
|
+
errorColor?: string | undefined;
|
|
102
|
+
filledColor?: string | undefined;
|
|
103
|
+
cursorColor?: string | undefined;
|
|
104
|
+
successColor?: string | undefined;
|
|
105
|
+
loadingColor?: string | undefined;
|
|
106
|
+
fontFamily?: string | undefined;
|
|
107
|
+
uiFontFamily?: string | undefined;
|
|
108
|
+
fontSize?: string | undefined;
|
|
109
|
+
mobileFontSize?: string | undefined;
|
|
110
|
+
inputFontStyle?: string | undefined;
|
|
111
|
+
lineGap?: string | undefined;
|
|
112
|
+
pagePadding?: string | undefined;
|
|
113
|
+
buttonRadius?: string | undefined;
|
|
114
|
+
buttonBackground?: string | undefined;
|
|
115
|
+
buttonColor?: string | undefined;
|
|
116
|
+
enterBtnSize?: string | undefined;
|
|
117
|
+
chipBorderRadius?: string | undefined;
|
|
118
|
+
chipBorderColor?: string | undefined;
|
|
119
|
+
chipActiveBackground?: string | undefined;
|
|
120
|
+
chipActiveColor?: string | undefined;
|
|
121
|
+
chipFontStyle?: string | undefined;
|
|
122
|
+
mode?: "light" | "dark" | "auto" | undefined;
|
|
123
|
+
dark?: {
|
|
124
|
+
background?: string | undefined;
|
|
125
|
+
textColor?: string | undefined;
|
|
126
|
+
inputBorderColor?: string | undefined;
|
|
127
|
+
placeholderColor?: string | undefined;
|
|
128
|
+
errorColor?: string | undefined;
|
|
129
|
+
filledColor?: string | undefined;
|
|
130
|
+
cursorColor?: string | undefined;
|
|
131
|
+
successColor?: string | undefined;
|
|
132
|
+
loadingColor?: string | undefined;
|
|
133
|
+
fontFamily?: string | undefined;
|
|
134
|
+
uiFontFamily?: string | undefined;
|
|
135
|
+
fontSize?: string | undefined;
|
|
136
|
+
mobileFontSize?: string | undefined;
|
|
137
|
+
inputFontStyle?: string | undefined;
|
|
138
|
+
lineGap?: string | undefined;
|
|
139
|
+
pagePadding?: string | undefined;
|
|
140
|
+
buttonRadius?: string | undefined;
|
|
141
|
+
buttonBackground?: string | undefined;
|
|
142
|
+
buttonColor?: string | undefined;
|
|
143
|
+
enterBtnSize?: string | undefined;
|
|
144
|
+
chipBorderRadius?: string | undefined;
|
|
145
|
+
chipBorderColor?: string | undefined;
|
|
146
|
+
chipActiveBackground?: string | undefined;
|
|
147
|
+
chipActiveColor?: string | undefined;
|
|
148
|
+
chipFontStyle?: string | undefined;
|
|
149
|
+
mode?: "light" | "dark" | "auto" | undefined;
|
|
150
|
+
dark?: /*elided*/ any | undefined;
|
|
151
|
+
} | undefined;
|
|
152
|
+
} | undefined;
|
|
153
|
+
done?: {
|
|
154
|
+
show?: boolean | undefined;
|
|
155
|
+
message?: string | ((values: import('@viveksinghind/narrative-form-core').NarrativeFieldValues) => string) | undefined;
|
|
156
|
+
ctaLabel?: string | undefined;
|
|
157
|
+
onSubmit?: ((values: import('@viveksinghind/narrative-form-core').NarrativeFieldValues, meta: import('@viveksinghind/narrative-form-core').NarrativeMeta) => void | Promise<void>) | undefined;
|
|
158
|
+
} | undefined;
|
|
159
|
+
} | null, NarrativeFormConfig | {
|
|
160
|
+
form: {
|
|
161
|
+
id: string;
|
|
162
|
+
name: string;
|
|
163
|
+
version: number;
|
|
164
|
+
};
|
|
165
|
+
welcome?: {
|
|
166
|
+
show?: boolean | undefined;
|
|
167
|
+
heading?: string | undefined;
|
|
168
|
+
subtext?: string | undefined;
|
|
169
|
+
ctaLabel?: string | undefined;
|
|
170
|
+
} | undefined;
|
|
171
|
+
fields: {
|
|
172
|
+
key: string;
|
|
173
|
+
type: import('@viveksinghind/narrative-form-core').NarrativeFieldType;
|
|
174
|
+
prefix: string;
|
|
175
|
+
suffix?: string | undefined;
|
|
176
|
+
placeholder?: string | undefined;
|
|
177
|
+
order?: number | undefined;
|
|
178
|
+
options?: string[] | undefined;
|
|
179
|
+
animate?: boolean | undefined;
|
|
180
|
+
autoAdvance?: boolean | undefined;
|
|
181
|
+
lockPrevious?: boolean | undefined;
|
|
182
|
+
showIf?: ((values: import('@viveksinghind/narrative-form-core').NarrativeFieldValues) => boolean) | undefined;
|
|
183
|
+
className?: string | undefined;
|
|
184
|
+
inputClassName?: string | undefined;
|
|
185
|
+
editable?: boolean | undefined;
|
|
186
|
+
defaultValue?: string | undefined;
|
|
187
|
+
validation?: {
|
|
188
|
+
required?: boolean | undefined;
|
|
189
|
+
requiredMessage?: string | undefined;
|
|
190
|
+
minLength?: number | undefined;
|
|
191
|
+
minLengthMessage?: string | undefined;
|
|
192
|
+
maxLength?: number | undefined;
|
|
193
|
+
maxLengthMessage?: string | undefined;
|
|
194
|
+
exactLength?: number | undefined;
|
|
195
|
+
exactLengthMessage?: string | undefined;
|
|
196
|
+
pattern?: RegExp | undefined;
|
|
197
|
+
patternMessage?: string | undefined;
|
|
198
|
+
isEmail?: boolean | undefined;
|
|
199
|
+
isEmailMessage?: string | undefined;
|
|
200
|
+
min?: number | undefined;
|
|
201
|
+
minMessage?: string | undefined;
|
|
202
|
+
max?: number | undefined;
|
|
203
|
+
maxMessage?: string | undefined;
|
|
204
|
+
custom?: ((value: string, allValues: import('@viveksinghind/narrative-form-core').NarrativeFieldValues) => boolean | string | Promise<boolean | string>) | undefined;
|
|
205
|
+
rules?: {
|
|
206
|
+
name: string;
|
|
207
|
+
validate: (value: string, allValues: import('@viveksinghind/narrative-form-core').NarrativeFieldValues) => boolean | string | Promise<boolean | string>;
|
|
208
|
+
message?: string | undefined;
|
|
209
|
+
async?: boolean | undefined;
|
|
210
|
+
debounce?: number | undefined;
|
|
211
|
+
}[] | undefined;
|
|
212
|
+
mode?: "bail" | "all" | undefined;
|
|
213
|
+
trigger?: "onChange" | "onBlur" | "onSubmit" | "onConfirm" | "debounced" | undefined;
|
|
214
|
+
debounceMs?: number | undefined;
|
|
215
|
+
errorDisplay?: {
|
|
216
|
+
mode?: "inline" | "toast" | "shake" | "inline+shake" | "tooltip" | undefined;
|
|
217
|
+
position?: "below" | "above" | undefined;
|
|
218
|
+
icon?: boolean | undefined;
|
|
219
|
+
iconChar?: string | undefined;
|
|
220
|
+
animateIn?: "fadeUp" | "slideDown" | "none" | undefined;
|
|
221
|
+
clearOn?: "onChange" | "onFocus" | undefined;
|
|
222
|
+
} | undefined;
|
|
223
|
+
use?: string | string[] | undefined;
|
|
224
|
+
serverValidate?: {
|
|
225
|
+
url: string;
|
|
226
|
+
method?: "GET" | "POST" | undefined;
|
|
227
|
+
headers?: Record<string, string> | undefined;
|
|
228
|
+
debounceMs?: number | undefined;
|
|
229
|
+
timeout?: number | undefined;
|
|
230
|
+
timeoutMessage?: string | undefined;
|
|
231
|
+
responsePath: string;
|
|
232
|
+
errorPath: string;
|
|
233
|
+
} | undefined;
|
|
234
|
+
loadingText?: string | undefined;
|
|
235
|
+
successIndicator?: boolean | undefined;
|
|
236
|
+
} | undefined;
|
|
237
|
+
sanitise?: ((value: string) => string) | undefined;
|
|
238
|
+
format?: ((value: string) => string) | undefined;
|
|
239
|
+
otpLength?: number | undefined;
|
|
240
|
+
onRequest?: (() => void | Promise<void>) | undefined;
|
|
241
|
+
onVerify?: ((otp: string) => void | Promise<void>) | undefined;
|
|
242
|
+
resendLabel?: string | undefined;
|
|
243
|
+
resendDelay?: number | undefined;
|
|
244
|
+
}[];
|
|
245
|
+
theme?: {
|
|
246
|
+
background?: string | undefined;
|
|
247
|
+
textColor?: string | undefined;
|
|
248
|
+
inputBorderColor?: string | undefined;
|
|
249
|
+
placeholderColor?: string | undefined;
|
|
250
|
+
errorColor?: string | undefined;
|
|
251
|
+
filledColor?: string | undefined;
|
|
252
|
+
cursorColor?: string | undefined;
|
|
253
|
+
successColor?: string | undefined;
|
|
254
|
+
loadingColor?: string | undefined;
|
|
255
|
+
fontFamily?: string | undefined;
|
|
256
|
+
uiFontFamily?: string | undefined;
|
|
257
|
+
fontSize?: string | undefined;
|
|
258
|
+
mobileFontSize?: string | undefined;
|
|
259
|
+
inputFontStyle?: string | undefined;
|
|
260
|
+
lineGap?: string | undefined;
|
|
261
|
+
pagePadding?: string | undefined;
|
|
262
|
+
buttonRadius?: string | undefined;
|
|
263
|
+
buttonBackground?: string | undefined;
|
|
264
|
+
buttonColor?: string | undefined;
|
|
265
|
+
enterBtnSize?: string | undefined;
|
|
266
|
+
chipBorderRadius?: string | undefined;
|
|
267
|
+
chipBorderColor?: string | undefined;
|
|
268
|
+
chipActiveBackground?: string | undefined;
|
|
269
|
+
chipActiveColor?: string | undefined;
|
|
270
|
+
chipFontStyle?: string | undefined;
|
|
271
|
+
mode?: "light" | "dark" | "auto" | undefined;
|
|
272
|
+
dark?: {
|
|
273
|
+
background?: string | undefined;
|
|
274
|
+
textColor?: string | undefined;
|
|
275
|
+
inputBorderColor?: string | undefined;
|
|
276
|
+
placeholderColor?: string | undefined;
|
|
277
|
+
errorColor?: string | undefined;
|
|
278
|
+
filledColor?: string | undefined;
|
|
279
|
+
cursorColor?: string | undefined;
|
|
280
|
+
successColor?: string | undefined;
|
|
281
|
+
loadingColor?: string | undefined;
|
|
282
|
+
fontFamily?: string | undefined;
|
|
283
|
+
uiFontFamily?: string | undefined;
|
|
284
|
+
fontSize?: string | undefined;
|
|
285
|
+
mobileFontSize?: string | undefined;
|
|
286
|
+
inputFontStyle?: string | undefined;
|
|
287
|
+
lineGap?: string | undefined;
|
|
288
|
+
pagePadding?: string | undefined;
|
|
289
|
+
buttonRadius?: string | undefined;
|
|
290
|
+
buttonBackground?: string | undefined;
|
|
291
|
+
buttonColor?: string | undefined;
|
|
292
|
+
enterBtnSize?: string | undefined;
|
|
293
|
+
chipBorderRadius?: string | undefined;
|
|
294
|
+
chipBorderColor?: string | undefined;
|
|
295
|
+
chipActiveBackground?: string | undefined;
|
|
296
|
+
chipActiveColor?: string | undefined;
|
|
297
|
+
chipFontStyle?: string | undefined;
|
|
298
|
+
mode?: "light" | "dark" | "auto" | undefined;
|
|
299
|
+
dark?: /*elided*/ any | undefined;
|
|
300
|
+
} | undefined;
|
|
301
|
+
} | undefined;
|
|
302
|
+
done?: {
|
|
303
|
+
show?: boolean | undefined;
|
|
304
|
+
message?: string | ((values: import('@viveksinghind/narrative-form-core').NarrativeFieldValues) => string) | undefined;
|
|
305
|
+
ctaLabel?: string | undefined;
|
|
306
|
+
onSubmit?: ((values: import('@viveksinghind/narrative-form-core').NarrativeFieldValues, meta: import('@viveksinghind/narrative-form-core').NarrativeMeta) => void | Promise<void>) | undefined;
|
|
307
|
+
} | undefined;
|
|
308
|
+
} | null>;
|
|
309
|
+
loading: Ref<boolean, boolean>;
|
|
310
|
+
error: Ref<Error | null, Error | null>;
|
|
311
|
+
retry: () => void;
|
|
312
|
+
};
|
|
313
|
+
//# sourceMappingURL=useDynamicForm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDynamicForm.d.ts","sourceRoot":"","sources":["../../src/composables/useDynamicForm.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC/B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAG9E,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC7C,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC;IACpF,UAAU,CAAC,EAAE,mBAAmB,GAAG,GAAG,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAAC;IACxE,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACvC;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiDxD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface UseTypewriterOptions {
|
|
2
|
+
text: string | (() => string);
|
|
3
|
+
speed?: number;
|
|
4
|
+
enabled?: boolean;
|
|
5
|
+
pauseAfter?: number;
|
|
6
|
+
onComplete?: () => void;
|
|
7
|
+
}
|
|
8
|
+
export declare function useTypewriter(options: UseTypewriterOptions): {
|
|
9
|
+
displayedText: import('vue').ComputedRef<string>;
|
|
10
|
+
isTyping: import('vue').ComputedRef<boolean>;
|
|
11
|
+
isComplete: import('vue').Ref<boolean, boolean>;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=useTypewriter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTypewriter.d.ts","sourceRoot":"","sources":["../../src/composables/useTypewriter.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAOD,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB;;;;EAsE1D"}
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),C=require("@viveksinghind/narrative-form-core");function I(l){const t=new C.FormStateEngine(l,()=>{n.value=t.getSnapshot(),e.triggerRef(n)}),n=e.shallowRef(t.getSnapshot());return e.onUnmounted(()=>{t.reset()}),{snapshot:n,startTyping:o=>t.startTyping(o),activateField:o=>t.activateField(o),confirmField:(o,u)=>t.confirmField(o,u),editField:o=>t.editField(o),reconfirmField:(o,u)=>t.reconfirmField(o,u),next:()=>t.next(),focusField:o=>t.focusField(o),reset:()=>{t.reset(),n.value=t.getSnapshot()},getValues:()=>t.getValues(),getMeta:(o,u)=>t.getMeta(o,u)}}const R={class:"ns-welcome fade-in"},W={class:"ns-welcome-title"},K={key:0,class:"ns-welcome-subtitle"},U=e.defineComponent({__name:"WelcomeScreen",props:{welcome:{},typewriter:{}},emits:["start"],setup(l,{emit:t}){const n=l,o=t,u=e.ref("");let p;return e.onMounted(()=>{if(!n.typewriter.enabled){u.value=n.welcome.heading||"";return}let m=0;p=setInterval(()=>{u.value=(n.welcome.heading||"").slice(0,m+1),m++,m>=(n.welcome.heading||"").length&&clearInterval(p)},n.typewriter.speed??30)}),e.onUnmounted(()=>{clearInterval(p)}),(m,s)=>(e.openBlock(),e.createElementBlock("div",R,[e.createElementVNode("h1",W,e.toDisplayString(u.value),1),l.welcome.subtext?(e.openBlock(),e.createElementBlock("p",K,e.toDisplayString(l.welcome.subtext),1)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"ns-welcome-start",onClick:s[0]||(s[0]=g=>o("start"))},e.toDisplayString(l.welcome.ctaLabel||"Start"),1)]))}}),B=(l,t)=>{const n=l.__vccOpts||l;for(const[o,u]of t)n[o]=u;return n},D=B(U,[["__scopeId","data-v-dbeb46ea"]]),q={class:"ns-done fade-in"},A={class:"ns-done-title"},O=e.defineComponent({__name:"DoneScreen",props:{done:{},values:{},meta:{},typewriter:{}},setup(l){return(t,n)=>(e.openBlock(),e.createElementBlock("div",q,[e.createElementVNode("h1",A,e.toDisplayString(typeof l.done.message=="function"?l.done.message(l.values):l.done.message),1)]))}}),M=B(O,[["__scopeId","data-v-7802c8f5"]]),P={key:0,class:"ns-error-wrapper"},j={class:"ns-error-text"},H=e.defineComponent({__name:"ErrorMessage",props:{message:{},config:{}},setup(l){return(t,n)=>(e.openBlock(),e.createBlock(e.Transition,{name:"fade-slide"},{default:e.withCtx(()=>[l.message?(e.openBlock(),e.createElementBlock("div",P,[e.createElementVNode("p",j,e.toDisplayString(l.message),1)])):e.createCommentVNode("",!0)]),_:1}))}}),_=B(H,[["__scopeId","data-v-a8be2d7b"]]),z={class:"ns-line fade-in"},G={class:"ns-prompt-row"},J={class:"ns-prompt"},Q={key:0,class:"ns-value"},X={key:0,class:"ns-input-row"},Y=["type","disabled","value","onKeydown"],Z=e.defineComponent({__name:"Line",props:{field:{},status:{},value:{},allValues:{},typewriter:{},editable:{type:Boolean},locked:{type:Boolean},editLabel:{}},emits:["typingComplete","confirm","edit","error","change","focus","blur"],setup(l,{emit:t}){const n=l,o=t,u=e.ref(null),p=e.ref(""),m=e.ref(n.value?String(n.value):""),s=e.ref(null),g=e.ref(!1);let w;e.watch(()=>n.value,f=>{f!==void 0&&String(f)!==m.value&&(m.value=String(f))}),e.watch(()=>n.status,f=>{if(f==="typing"){if(!n.typewriter.enabled){p.value=n.field.prompt,o("typingComplete",n.field.key);return}let i=0;w=setInterval(()=>{p.value=n.field.prompt.slice(0,i+1),i++,i>=n.field.prompt.length&&(clearInterval(w),o("typingComplete",n.field.key))},n.typewriter.speed??30)}else(f==="active"||f==="editing")&&e.nextTick(()=>{var i;(i=u.value)==null||i.focus()})},{immediate:!0}),e.onUnmounted(()=>{clearInterval(w)});const E=f=>{const i=f.target;m.value=i.value,o("change",n.field.key,i.value),s.value&&(s.value=null)},V=async()=>{const f=C.validateField(n.field,m.value);if(!f.valid){s.value=f.error||"Invalid input",o("error",n.field.key,s.value);return}if(C.hasAsyncValidation(n.field)){g.value=!0;const i=await C.validateFieldAsync(n.field,m.value);if(g.value=!1,!i.valid){s.value=i.error||"Invalid input",o("error",n.field.key,s.value);return}}s.value=null,o("confirm",n.field.key,m.value)};return(f,i)=>(e.openBlock(),e.createElementBlock("div",z,[e.createElementVNode("div",G,[e.createElementVNode("span",J,e.toDisplayString(l.status==="typing"?p.value:l.field.prompt),1),l.status==="confirmed"?(e.openBlock(),e.createElementBlock("span",Q,e.toDisplayString(m.value),1)):e.createCommentVNode("",!0),l.status==="confirmed"&&l.editable&&!l.locked?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"ns-edit-btn",onClick:i[0]||(i[0]=F=>o("edit",l.field.key))},e.toDisplayString(l.editLabel),1)):e.createCommentVNode("",!0)]),l.status==="active"||l.status==="editing"?(e.openBlock(),e.createElementBlock("div",X,[e.createElementVNode("input",{ref_key:"inputRef",ref:u,type:l.field.type==="email"?"email":l.field.type==="password"?"password":"text",class:"ns-input",disabled:g.value,value:m.value,onInput:E,onFocus:i[1]||(i[1]=F=>o("focus",l.field.key)),onBlur:i[2]||(i[2]=F=>o("blur",l.field.key,m.value)),onKeydown:e.withKeys(e.withModifiers(V,["prevent"]),["enter"])},null,40,Y)])):e.createCommentVNode("",!0),e.createVNode(_,{message:s.value},null,8,["message"])]))}}),L=B(Z,[["__scopeId","data-v-d4b482a6"]]),ee={key:1,class:"ns-form-body"},te=e.defineComponent({__name:"NarrativeForm",props:{fields:{},formConfig:{},typewriter:{},welcome:{},done:{},editable:{type:Boolean,default:!0},editLabel:{},callbacks:{},defaultValues:{},values:{},strings:{},reducedMotion:{type:Boolean}},setup(l){const t=l,n=e.computed(()=>t.fields?t.fields:t.formConfig?t.formConfig.fields:[]),o=e.computed(()=>{if(t.welcome)return t.welcome;if(t.formConfig&&"welcome"in t.formConfig)return t.formConfig.welcome}),u=e.computed(()=>{if(t.done)return t.done;if(t.formConfig&&"done"in t.formConfig)return t.formConfig.done}),p=e.computed(()=>{var d;return{...t.typewriter,enabled:t.reducedMotion?!1:((d=t.typewriter)==null?void 0:d.enabled)??!0}}),m=e.computed(()=>C.mergeStrings(t.strings)),{snapshot:s,startTyping:g,activateField:w,confirmField:E,editField:V,reconfirmField:f,getMeta:i}=I(n.value),F=e.computed(()=>{var d;return((d=o.value)==null?void 0:d.show)!==!1&&o.value!==void 0}),b=e.ref(!F.value),N=e.ref(!1),x=()=>{if(!b.value||N.value||n.value.length===0)return;N.value=!0;const d=n.value.find(r=>s.value.statuses[r.key]!=="confirmed");d&&g(d.key)};e.watch(b,x),e.onMounted(x);const T=(d,r)=>{var v;s.value.statuses[d]==="editing"?f(d,r):E(d,r),(v=t.callbacks)!=null&&v.onFieldComplete&&t.callbacks.onFieldComplete(d,r,0);const S=n.value.findIndex(c=>c.key===d);for(let c=S+1;c<n.value.length;c++){const a=n.value[c];if(!(!a||s.value.statuses[a.key]==="confirmed")){g(a.key);break}}},$=e.computed(()=>n.value.filter(d=>{const r=s.value.statuses[d.key];return r==="typing"||r==="active"||r==="confirmed"||r==="editing"})),h=e.ref(null);return e.watch(()=>$.value.length,()=>{e.nextTick(()=>{h.value&&(h.value.scrollTop=h.value.scrollHeight)})}),(d,r)=>(e.openBlock(),e.createElementBlock("div",{class:"ns-root",ref_key:"scrollContainerRef",ref:h},[!b.value&&o.value?(e.openBlock(),e.createBlock(D,{key:0,welcome:o.value,typewriter:p.value,onStart:r[0]||(r[0]=k=>b.value=!0)},null,8,["welcome","typewriter"])):e.createCommentVNode("",!0),b.value?(e.openBlock(),e.createElementBlock("div",ee,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList($.value,k=>{var S;return e.openBlock(),e.createBlock(L,{key:k.key,field:k,status:e.unref(s).statuses[k.key]??"idle",value:((S=t.values)==null?void 0:S[k.key])??e.unref(s).values[k.key],allValues:e.unref(s).values,typewriter:p.value,editable:t.editable,locked:!1,editLabel:t.editLabel??m.value.editLabel,onTypingComplete:e.unref(w),onConfirm:T,onEdit:r[1]||(r[1]=v=>{var c,a;e.unref(V)(v),(a=(c=t.callbacks)==null?void 0:c.onEdit)==null||a.call(c,v)}),onError:r[2]||(r[2]=(v,c)=>{var a,y;return(y=(a=t.callbacks)==null?void 0:a.onError)==null?void 0:y.call(a,v,c)}),onChange:r[3]||(r[3]=(v,c)=>{var a,y;return(y=(a=t.callbacks)==null?void 0:a.onChange)==null?void 0:y.call(a,v,c)}),onFocus:r[4]||(r[4]=v=>{var c,a;return(a=(c=t.callbacks)==null?void 0:c.onFieldFocus)==null?void 0:a.call(c,v)}),onBlur:r[5]||(r[5]=(v,c)=>{var a,y;return(y=(a=t.callbacks)==null?void 0:a.onFieldBlur)==null?void 0:y.call(a,v,c)})},null,8,["field","status","value","allValues","typewriter","editable","editLabel","onTypingComplete"])}),128))])):e.createCommentVNode("",!0),e.unref(s).isComplete&&u.value?(e.openBlock(),e.createBlock(M,{key:2,done:u.value,values:e.unref(s).values,meta:e.unref(i)(),typewriter:p.value},null,8,["done","values","meta","typewriter"])):e.createCommentVNode("",!0)],512))}}),ne=B(te,[["__scopeId","data-v-33050240"]]);exports.DoneScreen=M;exports.ErrorMessage=_;exports.Line=L;exports.NarrativeForm=ne;exports.WelcomeScreen=D;exports.useFormState=I;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),S=require("@viveksinghind/narrative-form-core");function T(t){const s=new S.FormStateEngine(t,()=>{n.value=s.getSnapshot(),e.triggerRef(n)}),n=e.shallowRef(s.getSnapshot());return e.onUnmounted(()=>{s.reset()}),{snapshot:n,startTyping:l=>s.startTyping(l),activateField:l=>s.activateField(l),confirmField:(l,a)=>s.confirmField(l,a),editField:l=>s.editField(l),reconfirmField:(l,a)=>s.reconfirmField(l,a),next:()=>s.next(),focusField:l=>s.focusField(l),reset:()=>{s.reset(),n.value=s.getSnapshot()},getValues:()=>s.getValues(),getMeta:(l,a)=>s.getMeta(l,a)}}const te={class:"ns-welcome fade-in"},ne={class:"ns-welcome-title"},le={key:0,class:"ns-welcome-subtitle"},oe=e.defineComponent({__name:"WelcomeScreen",props:{welcome:{},typewriter:{}},emits:["start"],setup(t,{emit:s}){const n=t,l=s,a=e.ref("");let r;return e.onMounted(()=>{if(!n.typewriter.enabled){a.value=n.welcome.heading||"";return}let o=0;r=setInterval(()=>{a.value=(n.welcome.heading||"").slice(0,o+1),o++,o>=(n.welcome.heading||"").length&&clearInterval(r)},n.typewriter.speed??30)}),e.onUnmounted(()=>{clearInterval(r)}),(o,i)=>(e.openBlock(),e.createElementBlock("div",te,[e.createElementVNode("h1",ne,e.toDisplayString(a.value),1),t.welcome.subtext?(e.openBlock(),e.createElementBlock("p",le,e.toDisplayString(t.welcome.subtext),1)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"ns-welcome-start",onClick:i[0]||(i[0]=v=>l("start"))},e.toDisplayString(t.welcome.ctaLabel||"Start"),1)]))}}),A=(t,s)=>{const n=t.__vccOpts||t;for(const[l,a]of s)n[l]=a;return n},I=A(oe,[["__scopeId","data-v-dbeb46ea"]]),ae={class:"ns-done fade-in"},se={class:"ns-done-title"},re=e.defineComponent({__name:"DoneScreen",props:{done:{},values:{},meta:{},typewriter:{}},setup(t){return(s,n)=>(e.openBlock(),e.createElementBlock("div",ae,[e.createElementVNode("h1",se,e.toDisplayString(typeof t.done.message=="function"?t.done.message(t.values):t.done.message),1)]))}}),K=A(re,[["__scopeId","data-v-7802c8f5"]]),ie={key:0,class:"ns-error-wrapper"},ue={class:"ns-error-text"},ce=e.defineComponent({__name:"ErrorMessage",props:{message:{},config:{}},setup(t){return(s,n)=>(e.openBlock(),e.createBlock(e.Transition,{name:"fade-slide"},{default:e.withCtx(()=>[t.message?(e.openBlock(),e.createElementBlock("div",ie,[e.createElementVNode("p",ue,e.toDisplayString(t.message),1)])):e.createCommentVNode("",!0)]),_:1}))}}),R=A(ce,[["__scopeId","data-v-a8be2d7b"]]);function de(){return typeof window>"u"?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches}function M(t){const s=()=>typeof t.text=="function"?t.text():t.text,n=e.ref(0),l=e.ref(!1);let a=null,r=null;const o=()=>{a!==null&&(clearInterval(a),a=null),r!==null&&(clearTimeout(r),r=null)};e.onUnmounted(o),e.watch([()=>s(),()=>t.speed,()=>t.enabled,()=>t.pauseAfter],([k,y,d,m])=>{var C;o();const g=y??38,F=d??!0,u=m??100,B=String(k||"");if(!F||de()||B.length===0){n.value=B.length,l.value=!0,(C=t.onComplete)==null||C.call(t);return}n.value=0,l.value=!1,a=setInterval(()=>{n.value++,n.value>=B.length&&(a!==null&&(clearInterval(a),a=null),r=setTimeout(()=>{var V;l.value=!0,(V=t.onComplete)==null||V.call(t)},u))},g)},{immediate:!0});const i=e.computed(()=>s().slice(0,n.value)),v=e.computed(()=>n.value<s().length&&!l.value);return{displayedText:i,isTyping:v,isComplete:l}}const z=e.defineComponent({__name:"Cursor",props:{cursorChar:{default:"|"},className:{}},setup(t){const s=t,n=e.computed(()=>["ns-cursor",s.className].filter(Boolean).join(" "));return(l,a)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(n.value),"aria-hidden":"true"},e.toDisplayString(t.cursorChar),3))}}),j=e.defineComponent({__name:"Prose",props:{text:{},animate:{type:Boolean,default:!0},speed:{default:38},cursor:{type:Boolean,default:!0},cursorChar:{default:"|"},pauseAfter:{default:100},className:{}},emits:["complete"],setup(t,{emit:s}){const n=t,l=s,{displayedText:a,isTyping:r}=M({text:()=>n.text,speed:n.speed,enabled:n.animate,pauseAfter:n.pauseAfter,onComplete:()=>l("complete")}),o=e.computed(()=>["ns-prose",r.value?"ns-prose--typing":void 0,n.className].filter(Boolean).join(" "));return(i,v)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(o.value)},[e.createTextVNode(e.toDisplayString(e.unref(a))+" ",1),t.cursor&&e.unref(r)?(e.openBlock(),e.createBlock(z,{key:0,cursorChar:t.cursorChar},null,8,["cursorChar"])):e.createCommentVNode("",!0)],2))}}),fe=["aria-label","title"],P=e.defineComponent({__name:"EditIcon",props:{label:{default:"Edit"},className:{}},emits:["edit"],setup(t,{emit:s}){const n=t,l=s,a=e.computed(()=>["ns-edit-btn",n.className].filter(Boolean).join(" "));return(r,o)=>(e.openBlock(),e.createElementBlock("button",{type:"button",class:e.normalizeClass(a.value),onClick:o[0]||(o[0]=i=>l("edit")),"aria-label":t.label,title:t.label},[...o[1]||(o[1]=[e.createElementVNode("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[e.createElementVNode("path",{d:"M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z"}),e.createElementVNode("path",{d:"m15 5 4 4"})],-1)])],10,fe))}}),me={class:"ns-filled-value"},pe={key:0,class:"ns-suffix"},q=e.defineComponent({__name:"FilledValue",props:{value:{},suffix:{},editable:{type:Boolean,default:!0},editLabel:{default:"Edit"},className:{}},emits:["edit"],setup(t,{emit:s}){const n=t,l=s,a=e.computed(()=>["ns-filled-wrap",n.className].filter(Boolean).join(" "));return(r,o)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(a.value)},[e.createElementVNode("span",me,e.toDisplayString(t.value),1),t.suffix?(e.openBlock(),e.createElementBlock("span",pe,e.toDisplayString(t.suffix),1)):e.createCommentVNode("",!0),t.editable?(e.openBlock(),e.createBlock(P,{key:1,label:t.editLabel,onEdit:o[0]||(o[0]=i=>l("edit"))},null,8,["label"])):e.createCommentVNode("",!0)],2))}}),ve=["aria-label"],ye=["onClick","onKeydown","aria-selected","tabindex"],U=e.defineComponent({__name:"ChipsField",props:{fieldKey:{},options:{},defaultValue:{},autoAdvance:{type:Boolean,default:!1},className:{}},emits:["confirm","change"],setup(t,{emit:s}){const n=t,l=s,a=e.ref(n.defaultValue??null),r=e.ref(0),o=e.ref([]),i=d=>{a.value=d,l("change",d),n.autoAdvance&&l("confirm",d)},v=()=>{a.value!==null&&l("confirm",a.value)},k=(d,m)=>{var g,F;switch(d.key){case"Enter":case" ":{d.preventDefault();const u=n.options[m];u&&i(u);break}case"ArrowRight":case"ArrowDown":{d.preventDefault();const u=(m+1)%n.options.length;r.value=u,(g=o.value[u])==null||g.focus();break}case"ArrowLeft":case"ArrowUp":{d.preventDefault();const u=(m-1+n.options.length)%n.options.length;r.value=u,(F=o.value[u])==null||F.focus();break}}},y=e.computed(()=>["ns-chips-wrap",n.className].filter(Boolean).join(" "));return(d,m)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(y.value),role:"listbox","aria-label":t.fieldKey},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,(g,F)=>(e.openBlock(),e.createElementBlock("button",{key:g,type:"button",class:e.normalizeClass(["ns-chip",a.value===g?"ns-chip--active":void 0].filter(Boolean).join(" ")),onClick:u=>i(g),onKeydown:u=>k(u,F),"aria-selected":a.value===g,role:"option",tabindex:F===r.value?0:-1,ref_for:!0,ref:u=>{u&&(o.value[F]=u)}},e.toDisplayString(g),43,ye))),128)),!t.autoAdvance&&a.value!==null?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"ns-enter-btn",onClick:v,"aria-label":"Confirm",style:{opacity:"1",transform:"none"}}," ↵ ")):e.createCommentVNode("",!0)],10,ve))}}),ge=["onClick","onKeydown","onMouseenter","aria-pressed"],O=e.defineComponent({__name:"MultiChipsField",props:{fieldKey:{},options:{},defaultValue:{default:()=>[]},className:{}},emits:["confirm","change"],setup(t,{emit:s}){const n=t,l=s,a=e.ref(new Set(n.defaultValue)),r=e.ref(null),o=y=>{a.value.has(y)?a.value.delete(y):a.value.add(y);const d=Array.from(a.value).join(", ");l("change",d)},i=()=>{a.value.size>0&&l("confirm",Array.from(a.value).join(", "))},v=(y,d)=>{y.key==="Enter"&&a.value.size>0?(y.preventDefault(),i()):y.key===" "&&(y.preventDefault(),o(d))},k=e.computed(()=>["ns-chips-wrap",n.className].filter(Boolean).join(" "));return(y,d)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(k.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,(m,g)=>(e.openBlock(),e.createElementBlock("button",{key:m,type:"button",class:e.normalizeClass(["ns-chip",a.value.has(m)?"ns-chip--active":void 0,r.value===g?"ns-chip--hover":void 0].filter(Boolean).join(" ")),onClick:F=>o(m),onKeydown:F=>v(F,m),onMouseenter:F=>r.value=g,onMouseleave:d[0]||(d[0]=F=>r.value=null),"aria-pressed":a.value.has(m),role:"option"},e.toDisplayString(m),43,ge))),128)),a.value.size>0?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"ns-enter-btn",onClick:i,"aria-label":"Confirm"}," ↵ ")):e.createCommentVNode("",!0)],2))}}),ke=["id","value","aria-label"],Ce={value:"",disabled:""},he=["value"],W=e.defineComponent({__name:"SelectField",props:{fieldKey:{},options:{},placeholder:{default:"Select…"},defaultValue:{default:""},autoAdvance:{type:Boolean,default:!1},inputClassName:{},className:{}},emits:["confirm","change","focus","blur"],setup(t,{emit:s}){const n=t,l=s,a=e.ref(n.defaultValue),r=e.ref(null);e.onMounted(()=>{var d;(d=r.value)==null||d.focus()});const o=d=>{const g=d.target.value;a.value=g,l("change",g),n.autoAdvance&&g!==""&&l("confirm",g)},i=d=>{d.key==="Enter"&&a.value!==""&&(d.preventDefault(),l("confirm",a.value))},v=()=>{a.value!==""&&l("confirm",a.value)},k=e.computed(()=>["ns-select-wrap",n.className].filter(Boolean).join(" ")),y=e.computed(()=>["ns-select",n.inputClassName].filter(Boolean).join(" "));return(d,m)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(k.value)},[e.createElementVNode("select",{ref_key:"selectRef",ref:r,id:`ns-field-${t.fieldKey}`,class:e.normalizeClass(y.value),value:a.value,onChange:o,onKeydown:i,onFocus:m[0]||(m[0]=g=>l("focus")),onBlur:m[1]||(m[1]=g=>l("blur",a.value)),"aria-label":t.fieldKey},[e.createElementVNode("option",Ce,e.toDisplayString(t.placeholder),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,g=>(e.openBlock(),e.createElementBlock("option",{key:g,value:g},e.toDisplayString(g),9,he))),128))],42,ke),!t.autoAdvance&&a.value!==""?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"ns-enter-btn",onClick:v,"aria-label":"Confirm"}," ↵ ")):e.createCommentVNode("",!0)],2))}}),be={class:"ns-otp-boxes"},Be=["value","onInput","onKeydown","onFocus","aria-label"],we={class:"ns-otp-resend-wrap"},Ee={key:1,class:"ns-otp-resend ns-otp-resend--disabled"},Fe={class:"ns-otp-timer"},H=e.defineComponent({__name:"OtpField",props:{fieldKey:{},otpLength:{default:6},autoAdvance:{type:Boolean,default:!0},onRequest:{},onVerify:{},resendLabel:{default:"Resend code"},resendDelay:{default:30},className:{}},emits:["confirm","change"],setup(t,{emit:s}){const n=t,l=s,a=e.ref(Array.from({length:n.otpLength},()=>"")),r=e.ref(0),o=e.ref(n.resendDelay),i=e.ref(!1),v=e.ref([]);let k=null;const y=e.ref(!1),d=()=>{if(n.resendDelay<=0){i.value=!0;return}o.value=n.resendDelay,i.value=!1,k!==null&&clearInterval(k),k=setInterval(()=>{o.value-=1,o.value<=0&&(k!==null&&clearInterval(k),i.value=!0)},1e3)};e.onMounted(()=>{var f,c;y.value||(y.value=!0,(f=n.onRequest)==null||f.call(n)),(c=v.value[0])==null||c.focus(),d()}),e.onUnmounted(()=>{k!==null&&clearInterval(k)}),e.watch(()=>n.resendDelay,d);const m=f=>f.join(""),g=(f,c)=>{var b,h;const N=c.target.value.replace(/\D/g,"").slice(-1);a.value[f]=N;const E=m(a.value);l("change",E),N!==""&&f<n.otpLength-1&&((b=v.value[f+1])==null||b.focus(),r.value=f+1),a.value.every(x=>x!=="")&&((h=n.onVerify)==null||h.call(n,E),n.autoAdvance&&setTimeout(()=>l("confirm",E),0))},F=(f,c)=>{var p,w,N;if(c.key==="Backspace")c.preventDefault(),a.value[f]!==""?(a.value[f]="",l("change",m(a.value))):f>0&&(a.value[f-1]="",(p=v.value[f-1])==null||p.focus(),r.value=f-1,l("change",m(a.value)));else if(c.key==="Enter"){c.preventDefault();const E=m(a.value);a.value.every(b=>b!=="")&&l("confirm",E)}else c.key==="ArrowLeft"&&f>0?(c.preventDefault(),(w=v.value[f-1])==null||w.focus(),r.value=f-1):c.key==="ArrowRight"&&f<n.otpLength-1&&(c.preventDefault(),(N=v.value[f+1])==null||N.focus(),r.value=f+1)},u=f=>{var E,b,h;f.preventDefault();const c=((E=f.clipboardData)==null?void 0:E.getData("text").replace(/\D/g,"").slice(0,n.otpLength))||"";if(c.length===0)return;for(let x=0;x<c.length;x++){const L=c[x];L!==void 0&&(a.value[x]=L)}const p=m(a.value);l("change",p);const w=a.value.findIndex(x=>x===""),N=w===-1?n.otpLength-1:w;(b=v.value[N])==null||b.focus(),r.value=N,a.value.every(x=>x!=="")&&((h=n.onVerify)==null||h.call(n,p),n.autoAdvance&&setTimeout(()=>l("confirm",p),0))},B=()=>{var f,c;i.value&&(i.value=!1,a.value=Array.from({length:n.otpLength},()=>""),r.value=0,(f=v.value[0])==null||f.focus(),(c=n.onRequest)==null||c.call(n),d())},C=f=>{r.value=f},V=()=>{l("confirm",m(a.value))},$=e.computed(()=>["ns-otp-wrap",n.className].filter(Boolean).join(" "));return(f,c)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass($.value)},[e.createElementVNode("span",be,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(p,w)=>(e.openBlock(),e.createElementBlock("input",{key:w,ref_for:!0,ref:N=>{N&&(v.value[w]=N)},type:"text",inputmode:"numeric",maxlength:1,class:e.normalizeClass(["ns-otp-box",p!==""?"ns-otp-box--filled":void 0,r.value===w?"ns-otp-box--active":void 0].filter(Boolean).join(" ")),value:p,onInput:N=>g(w,N),onKeydown:N=>F(w,N),onPaste:u,onFocus:N=>C(w),autocomplete:"one-time-code","aria-label":`Digit ${w+1}`},null,42,Be))),128))]),!t.autoAdvance&&a.value.every(p=>p!=="")?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"ns-enter-btn",onClick:V,"aria-label":"Confirm"}," ↵ ")):e.createCommentVNode("",!0),e.createElementVNode("span",we,[i.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"ns-otp-resend",onClick:B},e.toDisplayString(t.resendLabel),1)):(e.openBlock(),e.createElementBlock("span",Ee,[e.createElementVNode("span",Fe," Resend in "+e.toDisplayString(o.value)+"s ",1)]))])],2))}}),G=e.defineComponent({__name:"EnterButton",props:{label:{default:"↵"},className:{}},emits:["confirm"],setup(t,{emit:s}){const n=t,l=s,a=e.computed(()=>["ns-enter-btn",n.className].filter(Boolean).join(" "));return(r,o)=>(e.openBlock(),e.createElementBlock("button",{type:"button",class:e.normalizeClass(a.value),onClick:o[0]||(o[0]=i=>l("confirm")),"aria-label":"Confirm"},e.toDisplayString(t.label),3))}}),Ne=["id","type","inputmode","value","placeholder","aria-label"],Ve={key:0,class:"ns-suffix"},D=e.defineComponent({__name:"InlineInput",props:{fieldKey:{},type:{default:"text"},placeholder:{},defaultValue:{default:""},suffix:{},sanitise:{},inputClassName:{},className:{}},emits:["confirm","change","focus","blur","escape"],setup(t,{emit:s}){const n=t,l=s,a=e.ref(n.defaultValue),r=e.ref(!1),o=e.ref(null);e.onMounted(()=>{var C;(C=o.value)==null||C.focus()});const i=C=>{const V=n.sanitise?n.sanitise(C):C;a.value=V,l("change",V)},v=C=>{const V=C.target;i(V.value)},k=C=>{var $;if(!n.sanitise)return;C.preventDefault();const V=(($=C.clipboardData)==null?void 0:$.getData("text"))||"";i(V)},y=C=>{C.key==="Enter"?(C.preventDefault(),l("confirm",a.value)):C.key==="Escape"&&(C.preventDefault(),l("escape"))},d=()=>{r.value=!0,l("focus")},m=()=>{r.value=!1,l("blur",a.value)},g=()=>{l("confirm",a.value)},F=e.computed(()=>["ns-input-wrap",n.className].filter(Boolean).join(" ")),u=e.computed(()=>["ns-input",`ns-input--${n.type}`,r.value?"ns-input--focused":void 0,n.inputClassName].filter(Boolean).join(" ")),B=e.computed(()=>{switch(n.type){case"tel":return"tel";case"email":return"email";case"number":return"numeric";default:return}});return(C,V)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(F.value)},[e.createElementVNode("input",{ref_key:"inputRef",ref:o,id:`ns-field-${t.fieldKey}`,class:e.normalizeClass(u.value),type:t.type==="number"?"text":t.type,inputmode:B.value,value:a.value,placeholder:t.placeholder,onInput:v,onKeydown:y,onFocus:d,onBlur:m,onPaste:k,autocomplete:"off","aria-label":t.fieldKey},null,42,Ne),e.createVNode(G,{onConfirm:g}),t.suffix?(e.openBlock(),e.createElementBlock("span",Ve,e.toDisplayString(t.suffix),1)):e.createCommentVNode("",!0)],2))}}),Z=e.defineComponent({__name:"PasswordField",props:{fieldKey:{},placeholder:{},defaultValue:{},suffix:{},inputClassName:{},className:{}},emits:["confirm","change","focus","blur"],setup(t,{emit:s}){const n=t,l=s;return(a,r)=>(e.openBlock(),e.createBlock(D,e.mergeProps(n,{type:"password",onConfirm:r[0]||(r[0]=o=>l("confirm",o)),onChange:r[1]||(r[1]=o=>l("change",o)),onFocus:r[2]||(r[2]=o=>l("focus")),onBlur:r[3]||(r[3]=o=>l("blur",o))}),null,16))}}),_=e.defineComponent({__name:"DateField",props:{fieldKey:{},placeholder:{},defaultValue:{},suffix:{},inputClassName:{},className:{}},emits:["confirm","change","focus","blur"],setup(t,{emit:s}){const n=t,l=s;return(a,r)=>(e.openBlock(),e.createBlock(D,e.mergeProps(n,{type:"date",onConfirm:r[0]||(r[0]=o=>l("confirm",o)),onChange:r[1]||(r[1]=o=>l("change",o)),onFocus:r[2]||(r[2]=o=>l("focus")),onBlur:r[3]||(r[3]=o=>l("blur",o))}),null,16))}}),J=e.defineComponent({__name:"TextField",props:{fieldKey:{},placeholder:{},defaultValue:{},suffix:{},inputClassName:{},className:{}},emits:["confirm","change","focus","blur"],setup(t,{emit:s}){const n=t,l=s;return(a,r)=>(e.openBlock(),e.createBlock(D,e.mergeProps(n,{type:"text",onConfirm:r[0]||(r[0]=o=>l("confirm",o)),onChange:r[1]||(r[1]=o=>l("change",o)),onFocus:r[2]||(r[2]=o=>l("focus")),onBlur:r[3]||(r[3]=o=>l("blur",o))}),null,16))}}),Q=e.defineComponent({__name:"EmailField",props:{fieldKey:{},placeholder:{},defaultValue:{},suffix:{},inputClassName:{},className:{}},emits:["confirm","change","focus","blur"],setup(t,{emit:s}){const n=t,l=s;return(a,r)=>(e.openBlock(),e.createBlock(D,e.mergeProps(n,{type:"email",onConfirm:r[0]||(r[0]=o=>l("confirm",o)),onChange:r[1]||(r[1]=o=>l("change",o)),onFocus:r[2]||(r[2]=o=>l("focus")),onBlur:r[3]||(r[3]=o=>l("blur",o))}),null,16))}}),X=e.defineComponent({__name:"NumberField",props:{fieldKey:{},placeholder:{},defaultValue:{},suffix:{},inputClassName:{},className:{}},emits:["confirm","change","focus","blur"],setup(t,{emit:s}){const n=t,l=s,a=r=>r.replace(/[^\d.-]/g,"");return(r,o)=>(e.openBlock(),e.createBlock(D,e.mergeProps(n,{type:"number",sanitise:a,onConfirm:o[0]||(o[0]=i=>l("confirm",i)),onChange:o[1]||(o[1]=i=>l("change",i)),onFocus:o[2]||(o[2]=i=>l("focus")),onBlur:o[3]||(o[3]=i=>l("blur",i))}),null,16))}}),Y=e.defineComponent({__name:"TelField",props:{fieldKey:{},placeholder:{},defaultValue:{},suffix:{},inputClassName:{},className:{}},emits:["confirm","change","focus","blur"],setup(t,{emit:s}){const n=t,l=s,a=r=>r.replace(/\D/g,"");return(r,o)=>(e.openBlock(),e.createBlock(D,e.mergeProps(n,{type:"tel",sanitise:a,onConfirm:o[0]||(o[0]=i=>l("confirm",i)),onChange:o[1]||(o[1]=i=>l("change",i)),onFocus:o[2]||(o[2]=i=>l("focus")),onBlur:o[3]||(o[3]=i=>l("blur",i))}),null,16))}}),xe={class:"ns-prompt-row"},$e={key:0,class:"ns-input-row"},De=e.defineComponent({__name:"Line",props:{field:{},status:{},value:{},allValues:{},typewriter:{},editable:{type:Boolean},locked:{type:Boolean},editLabel:{}},emits:["typingComplete","confirm","edit","error","change","focus","blur"],setup(t,{emit:s}){const n=t,l=s,a={chips:U,"multi-chips":O,select:W,otp:H,password:Z,date:_,text:J,email:Q,number:X,tel:Y},r=e.computed(()=>a[n.field.type]||D),o=e.ref(n.value!==void 0?n.value:""),i=e.ref(null),v=e.ref(!1),k=e.computed(()=>n.field.editable!==!1&&n.editable&&!n.locked),y=e.computed(()=>{var u;return n.field.animate!==!1&&((u=n.typewriter)==null?void 0:u.enabled)!==!1});e.watch(()=>n.value,u=>{u!==void 0&&u!==o.value&&(o.value=u)});const d=()=>{n.status==="typing"&&l("typingComplete",n.field.key)},m=u=>{o.value=u;const B=Array.isArray(u)?u.join(", "):String(u);l("change",n.field.key,B),i.value&&(i.value=null)},g=async u=>{o.value=u;const B=Array.isArray(u)?u.join(", "):String(u),C=S.validateField(n.field,u,n.allValues);if(!C.valid){i.value=C.error||"Invalid input",l("error",n.field.key,i.value);return}if(S.hasAsyncValidation(n.field)){v.value=!0;const V=await S.validateFieldAsync(n.field,u,n.allValues);if(v.value=!1,!V.valid){i.value=V.error||"Invalid input",l("error",n.field.key,i.value);return}}i.value=null,l("confirm",n.field.key,B)},F=()=>{i.value=null,l("edit",n.field.key)};return(u,B)=>{var C,V,$,f;return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["ns-line fade-in",t.field.className])},[e.createElementVNode("div",xe,[e.createVNode(j,{text:t.field.prefix||t.field.prompt||"",animate:t.status==="typing"&&y.value,speed:(C=t.typewriter)==null?void 0:C.speed,cursor:((V=t.typewriter)==null?void 0:V.cursor)!==!1,cursorChar:($=t.typewriter)==null?void 0:$.cursorChar,pauseAfter:(f=t.typewriter)==null?void 0:f.pauseAfter,onComplete:d},null,8,["text","animate","speed","cursor","cursorChar","pauseAfter"]),t.status==="confirmed"?(e.openBlock(),e.createBlock(q,{key:0,value:Array.isArray(o.value)?o.value.join(", "):String(o.value),suffix:t.field.suffix,editable:k.value,editLabel:t.editLabel,onEdit:F},null,8,["value","suffix","editable","editLabel"])):e.createCommentVNode("",!0)]),t.status==="active"||t.status==="editing"?(e.openBlock(),e.createElementBlock("div",$e,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.value),{fieldKey:t.field.key,type:t.field.type,placeholder:t.field.placeholder,defaultValue:t.status==="editing"?o.value:t.field.defaultValue,suffix:t.field.suffix,options:t.field.options,otpLength:t.field.otpLength,autoAdvance:t.field.autoAdvance,resendLabel:t.field.resendLabel,resendDelay:t.field.resendDelay,sanitise:t.field.sanitise,inputClassName:t.field.inputClassName,disabled:v.value,onConfirm:g,onChange:m,onFocus:B[0]||(B[0]=c=>l("focus",t.field.key)),onBlur:B[1]||(B[1]=c=>l("blur",t.field.key,c)),onRequest:B[2]||(B[2]=c=>t.field.onRequest&&t.field.onRequest()),onVerify:B[3]||(B[3]=c=>t.field.onVerify&&t.field.onVerify(c))},null,40,["fieldKey","type","placeholder","defaultValue","suffix","options","otpLength","autoAdvance","resendLabel","resendDelay","sanitise","inputClassName","disabled"]))])):e.createCommentVNode("",!0),e.createVNode(R,{message:i.value},null,8,["message"])],2)}}}),ee=A(De,[["__scopeId","data-v-7fe5da13"]]),Se={key:1,class:"ns-form-body"},Ae=e.defineComponent({__name:"NarrativeForm",props:{fields:{},formConfig:{},typewriter:{},welcome:{},done:{},editable:{type:Boolean,default:!0},editLabel:{},callbacks:{},defaultValues:{},values:{},strings:{},reducedMotion:{type:Boolean}},setup(t){const s=t,n=e.computed(()=>s.fields?s.fields:s.formConfig?s.formConfig.fields:[]),l=e.computed(()=>{if(s.welcome)return s.welcome;if(s.formConfig&&"welcome"in s.formConfig)return s.formConfig.welcome}),a=e.computed(()=>{if(s.done)return s.done;if(s.formConfig&&"done"in s.formConfig)return s.formConfig.done}),r=e.computed(()=>{var c;return{...s.typewriter,enabled:s.reducedMotion?!1:((c=s.typewriter)==null?void 0:c.enabled)??!0}}),o=e.computed(()=>S.mergeStrings(s.strings)),{snapshot:i,startTyping:v,activateField:k,confirmField:y,editField:d,reconfirmField:m,getMeta:g}=T(n.value),F=e.computed(()=>{var c;return((c=l.value)==null?void 0:c.show)!==!1&&l.value!==void 0}),u=e.ref(!F.value),B=e.ref(!1),C=()=>{if(!u.value||B.value||n.value.length===0)return;B.value=!0;const c=n.value.find(p=>i.value.statuses[p.key]!=="confirmed");c&&v(c.key)};e.watch(u,C),e.onMounted(C);const V=(c,p)=>{var E;i.value.statuses[c]==="editing"?m(c,p):y(c,p),(E=s.callbacks)!=null&&E.onFieldComplete&&s.callbacks.onFieldComplete(c,p,0);const N=n.value.findIndex(b=>b.key===c);for(let b=N+1;b<n.value.length;b++){const h=n.value[b];if(!(!h||i.value.statuses[h.key]==="confirmed")){v(h.key);break}}},$=e.computed(()=>n.value.filter(c=>{const p=i.value.statuses[c.key];return p==="typing"||p==="active"||p==="confirmed"||p==="editing"})),f=e.ref(null);return e.watch(()=>$.value.length,()=>{e.nextTick(()=>{f.value&&(f.value.scrollTop=f.value.scrollHeight)})}),(c,p)=>(e.openBlock(),e.createElementBlock("div",{class:"ns-root",ref_key:"scrollContainerRef",ref:f},[!u.value&&l.value?(e.openBlock(),e.createBlock(I,{key:0,welcome:l.value,typewriter:r.value,onStart:p[0]||(p[0]=w=>u.value=!0)},null,8,["welcome","typewriter"])):e.createCommentVNode("",!0),u.value?(e.openBlock(),e.createElementBlock("div",Se,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList($.value,w=>{var N;return e.openBlock(),e.createBlock(ee,{key:w.key,field:w,status:e.unref(i).statuses[w.key]??"idle",value:((N=s.values)==null?void 0:N[w.key])??e.unref(i).values[w.key],allValues:e.unref(i).values,typewriter:r.value,editable:s.editable,locked:!1,editLabel:s.editLabel??o.value.editLabel,onTypingComplete:e.unref(k),onConfirm:V,onEdit:p[1]||(p[1]=E=>{var b,h;e.unref(d)(E),(h=(b=s.callbacks)==null?void 0:b.onEdit)==null||h.call(b,E)}),onError:p[2]||(p[2]=(E,b)=>{var h,x;return(x=(h=s.callbacks)==null?void 0:h.onError)==null?void 0:x.call(h,E,b)}),onChange:p[3]||(p[3]=(E,b)=>{var h,x;return(x=(h=s.callbacks)==null?void 0:h.onChange)==null?void 0:x.call(h,E,b)}),onFocus:p[4]||(p[4]=E=>{var b,h;return(h=(b=s.callbacks)==null?void 0:b.onFieldFocus)==null?void 0:h.call(b,E)}),onBlur:p[5]||(p[5]=(E,b)=>{var h,x;return(x=(h=s.callbacks)==null?void 0:h.onFieldBlur)==null?void 0:x.call(h,E,b)})},null,8,["field","status","value","allValues","typewriter","editable","editLabel","onTypingComplete"])}),128))])):e.createCommentVNode("",!0),e.unref(i).isComplete&&a.value?(e.openBlock(),e.createBlock(K,{key:2,done:a.value,values:e.unref(i).values,meta:e.unref(g)(),typewriter:r.value},null,8,["done","values","meta","typewriter"])):e.createCommentVNode("",!0)],512))}}),Le=A(Ae,[["__scopeId","data-v-33050240"]]),Te=e.defineComponent({__name:"ThemeProvider",props:{theme:{default:()=>({})}},setup(t){const s=t,n={background:"--ns-bg",textColor:"--ns-text",inputBorderColor:"--ns-border",placeholderColor:"--ns-placeholder-color",errorColor:"--ns-error",filledColor:"--ns-filled-color",cursorColor:"--ns-cursor-color",successColor:"--ns-success-color",loadingColor:"--ns-loading-color",fontFamily:"--ns-font-family",uiFontFamily:"--ns-ui-font",fontSize:"--ns-font-size",mobileFontSize:"--ns-mobile-font-size",inputFontStyle:"--ns-input-font-style",lineGap:"--ns-line-gap",pagePadding:"--ns-page-padding",buttonRadius:"--ns-btn-radius",buttonBackground:"--ns-btn-bg",buttonColor:"--ns-btn-color",enterBtnSize:"--ns-enter-size",chipBorderRadius:"--ns-chip-radius",chipBorderColor:"--ns-chip-border",chipActiveBackground:"--ns-chip-active-bg",chipActiveColor:"--ns-chip-active-color",chipFontStyle:"--ns-chip-font-style"},l=e.ref(!1);let a=null;const r=k=>{l.value=k.matches};e.onMounted(()=>{typeof window<"u"&&(a=window.matchMedia("(prefers-color-scheme: dark)"),l.value=a.matches,a.addEventListener("change",r))}),e.onUnmounted(()=>{a&&a.removeEventListener("change",r)});const o=e.computed(()=>s.theme.mode==="dark"?!0:s.theme.mode==="auto"?l.value:!1),i=e.computed(()=>o.value&&s.theme.dark?{...s.theme,...s.theme.dark}:s.theme),v=e.computed(()=>{const k={};for(const[y,d]of Object.entries(n)){const m=i.value[y];typeof m=="string"&&m.length>0&&(k[d]=m)}return k});return e.provide("themeContext",e.computed(()=>({theme:i.value,isDark:o.value}))),(k,y)=>(e.openBlock(),e.createElementBlock("div",{style:e.normalizeStyle(v.value),class:e.normalizeClass(o.value?"ns-root--dark":void 0)},[e.renderSlot(k.$slots,"default")],6))}}),Ie={key:0,class:"ns-toast-container","aria-live":"polite"},Ke={key:0,class:"ns-toast-icon"},Re={class:"ns-toast-message"},Me=["onClick"],ze=e.defineComponent({__name:"ToastProvider",setup(t){const s=e.ref([]),n=(a,r=!1,o="⚠")=>{const i=Math.random().toString(36).substring(2,9);s.value.push({id:i,message:a,icon:r,iconChar:o}),setTimeout(()=>{s.value=s.value.filter(v=>v.id!==i)},3e3)},l=a=>{s.value=s.value.filter(r=>r.id!==a)};return e.provide("toastContext",{showToast:n,hideToast:l}),(a,r)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.renderSlot(a.$slots,"default"),s.value.length>0?(e.openBlock(),e.createElementBlock("div",Ie,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,o=>(e.openBlock(),e.createElementBlock("div",{key:o.id,class:"ns-toast ns-animate-fade-up"},[o.icon?(e.openBlock(),e.createElementBlock("span",Ke,e.toDisplayString(o.iconChar),1)):e.createCommentVNode("",!0),e.createElementVNode("span",Re,e.toDisplayString(o.message),1),e.createElementVNode("button",{type:"button",class:"ns-toast-close",onClick:i=>l(o.id),"aria-label":"Close"}," × ",8,Me)]))),128))])):e.createCommentVNode("",!0)],64))}});function je(t){const s=e.ref(e.unref(t.formConfig)??null),n=e.ref(!!e.unref(t.fieldsUrl)&&!e.unref(t.formConfig)),l=e.ref(null),a=e.ref(0);return e.watch([()=>e.unref(t.fieldsUrl),()=>e.unref(t.fieldsUrlHeaders),()=>e.unref(t.formConfig),a],async([o,i,v])=>{var k;if(v){s.value=v,n.value=!1,l.value=null;return}if(o){n.value=!0,l.value=null;try{const y=await S.fetchFormConfig(o,{headers:i});s.value=y}catch(y){const d=y instanceof Error?y:new Error(String(y));l.value=d,(k=t.onFetchError)==null||k.call(t,d)}finally{n.value=!1}}},{immediate:!0}),{config:s,loading:n,error:l,retry:()=>{e.unref(t.fieldsUrl)&&!e.unref(t.formConfig)&&a.value++}}}exports.ChipsField=U;exports.Cursor=z;exports.DateField=_;exports.DoneScreen=K;exports.EditIcon=P;exports.EmailField=Q;exports.EnterButton=G;exports.ErrorMessage=R;exports.FilledValue=q;exports.InlineInput=D;exports.Line=ee;exports.MultiChipsField=O;exports.NarrativeForm=Le;exports.NumberField=X;exports.OtpField=H;exports.PasswordField=Z;exports.Prose=j;exports.SelectField=W;exports.TelField=Y;exports.TextField=J;exports.ThemeProvider=Te;exports.ToastProvider=ze;exports.WelcomeScreen=I;exports.useDynamicForm=je;exports.useFormState=T;exports.useTypewriter=M;
|
package/dist/index.d.ts
CHANGED
|
@@ -3,5 +3,25 @@ export { default as WelcomeScreen } from './components/WelcomeScreen.vue';
|
|
|
3
3
|
export { default as DoneScreen } from './components/DoneScreen.vue';
|
|
4
4
|
export { default as Line } from './components/Line.vue';
|
|
5
5
|
export { default as ErrorMessage } from './components/ErrorMessage.vue';
|
|
6
|
+
export { default as Cursor } from './components/Cursor.vue';
|
|
7
|
+
export { default as EditIcon } from './components/EditIcon.vue';
|
|
8
|
+
export { default as EnterButton } from './components/EnterButton.vue';
|
|
9
|
+
export { default as FilledValue } from './components/FilledValue.vue';
|
|
10
|
+
export { default as InlineInput } from './components/InlineInput.vue';
|
|
11
|
+
export { default as Prose } from './components/Prose.vue';
|
|
12
|
+
export { default as ThemeProvider } from './components/ThemeProvider.vue';
|
|
13
|
+
export { default as ToastProvider } from './components/ToastProvider.vue';
|
|
14
|
+
export { default as ChipsField } from './components/fields/ChipsField.vue';
|
|
15
|
+
export { default as DateField } from './components/fields/DateField.vue';
|
|
16
|
+
export { default as EmailField } from './components/fields/EmailField.vue';
|
|
17
|
+
export { default as MultiChipsField } from './components/fields/MultiChipsField.vue';
|
|
18
|
+
export { default as NumberField } from './components/fields/NumberField.vue';
|
|
19
|
+
export { default as OtpField } from './components/fields/OtpField.vue';
|
|
20
|
+
export { default as PasswordField } from './components/fields/PasswordField.vue';
|
|
21
|
+
export { default as SelectField } from './components/fields/SelectField.vue';
|
|
22
|
+
export { default as TelField } from './components/fields/TelField.vue';
|
|
23
|
+
export { default as TextField } from './components/fields/TextField.vue';
|
|
6
24
|
export * from './composables/useFormState';
|
|
25
|
+
export * from './composables/useDynamicForm';
|
|
26
|
+
export * from './composables/useTypewriter';
|
|
7
27
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAGxE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAG1E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAGzE,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC"}
|