@formancy/react 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +46 -3
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1766 -879
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
package/dist/index.d.mts
CHANGED
|
@@ -57,6 +57,10 @@ export declare function useRepeater(path: string | Path): RepeaterBinding;
|
|
|
57
57
|
interface WizardBinding {
|
|
58
58
|
page: number;
|
|
59
59
|
pageCount: number;
|
|
60
|
+
/** Whether there is a live page after this one. Not `page < pageCount - 1`
|
|
61
|
+
* once a page can be walked past: the last live page is not always the last. */
|
|
62
|
+
canGoNext: boolean;
|
|
63
|
+
canGoBack: boolean;
|
|
60
64
|
/** Resolves true iff the page advanced; a failed validation keeps the page. */
|
|
61
65
|
next(): Promise<boolean>;
|
|
62
66
|
back(): void;
|
|
@@ -84,7 +88,13 @@ export declare function useSubmit(): () => {
|
|
|
84
88
|
errors: Record<string, string[]>;
|
|
85
89
|
};
|
|
86
90
|
//#endregion
|
|
87
|
-
//#region src/
|
|
91
|
+
//#region src/fields/internals.d.ts
|
|
92
|
+
/**
|
|
93
|
+
* The pieces every control shares: the shell it renders inside, the prop shapes, and the few helpers more than one of them needs.
|
|
94
|
+
*
|
|
95
|
+
* One file per control, because a control changes for its own reasons.
|
|
96
|
+
* These were one 2,154-line file — the largest in the repository.
|
|
97
|
+
*/
|
|
88
98
|
/**
|
|
89
99
|
* The component registry — theming mechanism number two. The schema decides
|
|
90
100
|
* WHAT a field is; the registry decides what RENDERS it, with per-path entries
|
|
@@ -126,6 +136,20 @@ interface FormancyFormProps {
|
|
|
126
136
|
submitLabel?: string;
|
|
127
137
|
onSubmit?: (outcome: SubmitOutcome) => void;
|
|
128
138
|
}
|
|
139
|
+
//#endregion
|
|
140
|
+
//#region src/form.d.ts
|
|
141
|
+
/**
|
|
142
|
+
* The form, the list that walks it, and which component renders which type.
|
|
143
|
+
*
|
|
144
|
+
* What is left after the controls moved into `fields/`: 2,154 lines that had
|
|
145
|
+
* become the place things went. Three subjects remain here and they are one —
|
|
146
|
+
* a form renders a list, a list renders a slot, a slot may render a repeater,
|
|
147
|
+
* and a repeater renders a list. Mutual recursion is not a seam.
|
|
148
|
+
*
|
|
149
|
+
* `null` in the map is not an omission. `hidden` renders nothing by design, and
|
|
150
|
+
* `group`, `page` and `repeater` are containers the list itself walks rather
|
|
151
|
+
* than controls.
|
|
152
|
+
*/
|
|
129
153
|
/**
|
|
130
154
|
* Renders the whole form from the engine: one slot per field, resolved through
|
|
131
155
|
* the registry. Slots subscribe individually, so a keystroke re-renders one
|
|
@@ -315,6 +339,25 @@ interface StoredFile {
|
|
|
315
339
|
/** Where the bytes are, in whatever the host's storage calls a location. */
|
|
316
340
|
storageKey: string;
|
|
317
341
|
}
|
|
342
|
+
/**
|
|
343
|
+
* What the field tells an uploader about the file it is sending.
|
|
344
|
+
*
|
|
345
|
+
* An uploader that reads none of it still works — a function of the file alone is an
|
|
346
|
+
* `Uploader` — and the field then shows the file as uploading with no figure, and a
|
|
347
|
+
* cancel that stops waiting for it rather than stopping the transfer
|
|
348
|
+
* ([0130](../../../docs/decisions/0130-each-file-is-its-own-upload.md)).
|
|
349
|
+
*/
|
|
350
|
+
interface UploadOptions {
|
|
351
|
+
/**
|
|
352
|
+
* The field the file is for, at the data path a server reads — `items[].receipt` for
|
|
353
|
+
* a file field in a repeater row, whichever row it is.
|
|
354
|
+
*/
|
|
355
|
+
field: string;
|
|
356
|
+
/** Aborted when the person cancels this file. Hand it to `fetch` and the transfer stops. */
|
|
357
|
+
signal: AbortSignal;
|
|
358
|
+
/** Bytes sent so far, of how many. `fetch` cannot report an upload's progress; XHR can. */
|
|
359
|
+
onProgress(sent: number, total: number): void;
|
|
360
|
+
}
|
|
318
361
|
/**
|
|
319
362
|
* Uploads one file and reports what was stored.
|
|
320
363
|
*
|
|
@@ -322,7 +365,7 @@ interface StoredFile {
|
|
|
322
365
|
* file, because a submission somebody believes carries their evidence and does not is
|
|
323
366
|
* the worst outcome available here.
|
|
324
367
|
*/
|
|
325
|
-
type Uploader = (file: File) => Promise<StoredFile>;
|
|
368
|
+
type Uploader = (file: File, options: UploadOptions) => Promise<StoredFile>;
|
|
326
369
|
export declare const UploaderProvider: import("react").Provider<Uploader | undefined>;
|
|
327
370
|
/**
|
|
328
371
|
* The host's uploader, or undefined when there is none.
|
|
@@ -446,5 +489,5 @@ interface ResumeNoticeProps {
|
|
|
446
489
|
}
|
|
447
490
|
export declare function ResumeNotice({ migration, labels }: ResumeNoticeProps): ReactElement | null;
|
|
448
491
|
//#endregion
|
|
449
|
-
export type { ErrorSummaryProps, FieldBinding, FieldComponent, FieldComponentProps, FormancyFormProps, OptionsRequest, OptionsSource, OptionsSources, Registry, RepeaterBinding, ResumeMigration, ResumeNoticeProps, RichTextEditorFactory, RichTextEditorHandle, RichTextEditorMount, ScanRequest, Scanner, StoredFile, SubmitOutcome, Uploader, WizardBinding };
|
|
492
|
+
export type { ErrorSummaryProps, FieldBinding, FieldComponent, FieldComponentProps, FormancyFormProps, OptionsRequest, OptionsSource, OptionsSources, Registry, RepeaterBinding, ResumeMigration, ResumeNoticeProps, RichTextEditorFactory, RichTextEditorHandle, RichTextEditorMount, ScanRequest, Scanner, StoredFile, SubmitOutcome, UploadOptions, Uploader, WizardBinding };
|
|
450
493
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/context.tsx","../src/use-field.ts","../src/use-repeater.ts","../src/use-wizard.ts","../src/use-submit.ts","../src/form.tsx","../src/error-summary.tsx","../src/rich-text.tsx","../src/options-source.ts","../src/scanning.ts","../src/uploads.ts","../src/rich-text-editor.ts","../src/resume-notice.tsx"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/context.tsx","../src/use-field.ts","../src/use-repeater.ts","../src/use-wizard.ts","../src/use-submit.ts","../src/fields/internals.tsx","../src/form.tsx","../src/error-summary.tsx","../src/rich-text.tsx","../src/options-source.ts","../src/scanning.ts","../src/uploads.ts","../src/rich-text-editor.ts","../src/resume-notice.tsx"],"mappings":";;;;wBAagB,mBAAmB,QAAQ;EAAc,QAAQ;EAAY,WAAW;oBAAW,IAAA;wBAOnF,iBAAiB;;;UCfhB,qBAAqB;EACpC,SAAS;EACT;;EAEA,cAAc;;EAEd;IAAc;IAAY;;;EAE1B;IAAc;;;;;;;;;;;;;wBAaA,SAAS,eAAe,OAAO;;;UCrB9B;EACf;;EAEA;EACA;EACA,UAAU;;EAEV,QAAQ,cAAc;;;;;;;wBAQR,YAAY,eAAe,OAAO;;;UCjBjC;EACf;EACA;;;EAGA;EACA;;EAEA,QAAQ;EACR;;EAEA,KAAK;;;;;;;wBAQS,aAAa;;;;;;;;;;;wBCTb;EAAqB;EAAa,QAAQ;;;;;;;;;;;;;;;;;UCQzC;EACf;EACA;;KAGU,iBAAiB,cAAc;UAE1B;EACf,SAAS,QAAQ,OAAO,WAAW;EACnC,SAAS,eAAe;;UAGT;EACf;EACA,QAAQ;;EAER;;UAGe;;;;;;;EAOf,SAAS;EACT,WAAW;;;;;;;EAOX;EACA;EACA,YAAY,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;wBCDP,aAAa,OAAO,oCAAiB,IAAA;;;UCnDpC;EACf,SAAS;;;;;;;;;;;wBAYK,eAAe,UAAU,oCAAiB,IAAA;;;;;;;;;;;;;;;;;;;;wBCI1C,WAAW;EAAY;IAAmB;;;;;;;;;;UCZzC;;;;;EAKf;;EAEA;;EAEA;;EAEA;;EAEA;;;;;;;;;EASA;;EAEA;;EAEA,QAAQ;;;;;;;;;;;UAYO;EACf,QAAQ,SAAS,iBAAiB,iBAAiB;;EAEnD;;EAEA;;EAEA;;;;;;;;;;;;;KAcU,iBAAiB,SAAS,eAAe;qBAIxC,wCAAsB,SAAA,SAAA,eAAA;;;;;;;;;wBAUnB,qBAAqB;;;;;;;;;;;;UCxEpB;;EAEf;;EAEA;;;;;;;;;;;;;;;;;;;KAoBU,WAAW,SAAS,gBAAgB;qBAInC,iCAAe,SAAA;;;;;;;;wBASZ,cAAc;;;;;;;;;;;;;UCpCb;;EAEf;EACA;EACA;EACA;;EAEA;;;;;;;;;;UAWe;;;;;EAKf;;EAEA,QAAQ;;EAER,WAAW,cAAc;;;;;;;;;KAUf,YAAY,MAAM,MAAM,SAAS,kBAAkB,QAAQ;qBAI1D,kCAAgB,SAAA;;;;;;;;;wBAUb,eAAe;;;;;;;;;;;;;;;;;;;;;UC1Cd;;EAEf;;EAEA,WAAW;;;;;;;;;;;;;EAaX,MAAM,SAAS,aAAa;;EAE5B,WAAW,SAAS;EACpB;;UAGe;;WAEN,SAAS;;WAET;;WAEA,WAAW;WACX;;;;;;;;;;WAUA,YAAY,SAAS;;KAGpB,yBAAyB,OAAO,wBAAwB;qBAIvD,wCAAsB,SAAA;;;;;;;;;wBAUnB,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;UClD3B;WACN;WACA,SAAS;aAAyB;aAAuB;;;UAGnD;;WAEN,YAAY;;WAEZ,SAAS,SAAS;;wBAGb,eAAe,WAAW,UAAU,oBAAoB"}
|