@object-ui/plugin-form 17.6.0 → 18.0.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.
Files changed (72) hide show
  1. package/CHANGELOG.md +4991 -0
  2. package/README.md +522 -80
  3. package/dist/DrawerForm.d.ts +42 -3
  4. package/dist/DrawerForm.d.ts.map +1 -1
  5. package/dist/EmbeddableForm.d.ts.map +1 -1
  6. package/dist/FormAnalytics.d.ts.map +1 -1
  7. package/dist/LineItemsPanel.d.ts +6 -3
  8. package/dist/LineItemsPanel.d.ts.map +1 -1
  9. package/dist/MasterDetailForm.d.ts +79 -38
  10. package/dist/MasterDetailForm.d.ts.map +1 -1
  11. package/dist/ModalForm.d.ts +60 -5
  12. package/dist/ModalForm.d.ts.map +1 -1
  13. package/dist/ObjectForm.d.ts.map +1 -1
  14. package/dist/SplitForm.d.ts +49 -3
  15. package/dist/SplitForm.d.ts.map +1 -1
  16. package/dist/TabbedForm.d.ts +75 -5
  17. package/dist/TabbedForm.d.ts.map +1 -1
  18. package/dist/WizardForm.d.ts +145 -38
  19. package/dist/WizardForm.d.ts.map +1 -1
  20. package/dist/autoLayout.d.ts +113 -8
  21. package/dist/autoLayout.d.ts.map +1 -1
  22. package/dist/closedAffordanceNotice.d.ts +14 -0
  23. package/dist/closedAffordanceNotice.d.ts.map +1 -0
  24. package/dist/customFieldsMerge.d.ts +29 -0
  25. package/dist/customFieldsMerge.d.ts.map +1 -0
  26. package/dist/deriveMasterDetail.d.ts +82 -29
  27. package/dist/deriveMasterDetail.d.ts.map +1 -1
  28. package/dist/fieldGroups.d.ts +189 -0
  29. package/dist/fieldGroups.d.ts.map +1 -1
  30. package/dist/fieldWriteGate.d.ts +136 -0
  31. package/dist/fieldWriteGate.d.ts.map +1 -0
  32. package/dist/flatFields.d.ts +11 -2
  33. package/dist/flatFields.d.ts.map +1 -1
  34. package/dist/formChrome.d.ts +55 -0
  35. package/dist/formChrome.d.ts.map +1 -0
  36. package/dist/index.d.ts +149 -26
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +3984 -2332
  39. package/dist/index.umd.cjs +1 -1
  40. package/dist/initialFieldFocus.d.ts +23 -0
  41. package/dist/initialFieldFocus.d.ts.map +1 -0
  42. package/dist/initialRecord.d.ts +72 -0
  43. package/dist/initialRecord.d.ts.map +1 -0
  44. package/dist/loadFailure.d.ts +28 -0
  45. package/dist/loadFailure.d.ts.map +1 -0
  46. package/dist/masterDetailTx.d.ts.map +1 -1
  47. package/dist/occSave.d.ts +6 -1
  48. package/dist/occSave.d.ts.map +1 -1
  49. package/dist/recordInvalidation.d.ts +33 -0
  50. package/dist/recordInvalidation.d.ts.map +1 -0
  51. package/dist/recordReadGate.d.ts +34 -0
  52. package/dist/recordReadGate.d.ts.map +1 -0
  53. package/dist/sanitize.d.ts +272 -5
  54. package/dist/sanitize.d.ts.map +1 -1
  55. package/dist/schemaDefaults.d.ts +104 -9
  56. package/dist/schemaDefaults.d.ts.map +1 -1
  57. package/dist/sectionFields.d.ts +67 -2
  58. package/dist/sectionFields.d.ts.map +1 -1
  59. package/dist/sectionGroups.d.ts +62 -0
  60. package/dist/sectionGroups.d.ts.map +1 -0
  61. package/dist/sectionPredicateDiagnostic.d.ts +38 -0
  62. package/dist/sectionPredicateDiagnostic.d.ts.map +1 -0
  63. package/dist/submitTarget.d.ts +136 -0
  64. package/dist/submitTarget.d.ts.map +1 -0
  65. package/dist/successBehavior.d.ts +44 -25
  66. package/dist/successBehavior.d.ts.map +1 -1
  67. package/dist/thankYouRedirectCountdown.d.ts +1 -1
  68. package/dist/uploadGate.d.ts +35 -0
  69. package/dist/uploadGate.d.ts.map +1 -0
  70. package/dist/writePayload.d.ts +87 -0
  71. package/dist/writePayload.d.ts.map +1 -0
  72. package/package.json +13 -12
@@ -1,13 +1,33 @@
1
1
  import { default as React } from 'react';
2
- import { FormField, DataSource } from '@object-ui/types';
2
+ import { FormField, DataSource, ObjectFormSchema, ObjectFormSection } from '@object-ui/types';
3
3
  export interface DrawerFormSectionConfig {
4
4
  name?: string;
5
5
  label?: string;
6
6
  description?: string;
7
7
  columns?: 1 | 2 | 3 | 4;
8
- fields: (string | FormField)[];
8
+ /**
9
+ * The same three entry shapes as `ObjectFormSection.fields`, by reference:
10
+ * a field name, the form view's `{ field, … }` entry, or an inline
11
+ * `FormField` (objectui#11615).
12
+ */
13
+ fields: NonNullable<ObjectFormSection['fields']>;
9
14
  collapsible?: boolean;
10
15
  collapsed?: boolean;
16
+ /**
17
+ * ADR-0089 `FormSection.visibleWhen` — conditional visibility for the
18
+ * section's divider HEADER, evaluated by the form renderer with the canonical
19
+ * engine and the host predicate scope (#6010/#6111). Fails OPEN.
20
+ */
21
+ visibleWhen?: string | {
22
+ dialect?: string;
23
+ source: string;
24
+ };
25
+ /**
26
+ * The fault direction of {@link visibleWhen}, by reference to
27
+ * `ObjectFormSection.visibleWhenFault` (objectui#13055): `'hidden'` (a field
28
+ * group's predicate) hides the section when it cannot be evaluated.
29
+ */
30
+ visibleWhenFault?: ObjectFormSection['visibleWhenFault'];
11
31
  /** Custom CSS class for the section's divider header. */
12
32
  className?: string;
13
33
  }
@@ -16,7 +36,8 @@ export interface DrawerFormSchema {
16
36
  formType: 'drawer';
17
37
  objectName: string;
18
38
  mode: 'create' | 'edit' | 'view';
19
- recordId?: string | number;
39
+ /** Record ID (for edit/view modes). A string, per the one record-id rule on `DataSource` (objectui#9511) — `ObjectForm` builds this schema from the authorable `ObjectFormSchema.recordId`, which is a string, and `findOne` takes a string. */
40
+ recordId?: string;
20
41
  title?: string;
21
42
  description?: string;
22
43
  sections?: DrawerFormSectionConfig[];
@@ -60,6 +81,24 @@ export interface DrawerFormSchema {
60
81
  readOnly?: boolean;
61
82
  layout?: 'vertical' | 'horizontal';
62
83
  columns?: number;
84
+ /**
85
+ * Override persistence — the seam a host uses to own the write. Declared as
86
+ * `ObjectFormSchema['submitHandler']` rather than restated, so this variant
87
+ * and the canonical key `ObjectForm` forwards can never drift apart.
88
+ * When supplied, the form validates and hands the collected values
89
+ * to this handler INSTEAD of calling `dataSource.create` /
90
+ * `dataSource.update`; the returned record is passed on to `onSuccess`.
91
+ * In `edit` mode, for a record this form read itself, it hands over what it
92
+ * would have written: the fields that differ from that read, or the full
93
+ * sanitized payload when nothing changed (objectui#10156; the whole rule is
94
+ * on `ObjectFormSchema['submitHandler']`).
95
+ *
96
+ * `MasterDetailForm` supplies it to route the parent AND its child
97
+ * collections through one atomic `batchTransaction` (#2679 / ADR-0034
98
+ * item 4). A renderer that does not read it writes the parent on its own and
99
+ * escapes that transaction — objectui#6176.
100
+ */
101
+ submitHandler?: ObjectFormSchema['submitHandler'];
63
102
  onSuccess?: (data: any) => void | Promise<void>;
64
103
  onError?: (error: Error) => void;
65
104
  onCancel?: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerForm.d.ts","sourceRoot":"","sources":["../src/DrawerForm.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DrawerForm.d.ts","sourceRoot":"","sources":["../src/DrawerForm.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"EmbeddableForm.d.ts","sourceRoot":"","sources":["../src/EmbeddableForm.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;;;GAYG;AAEH,OAAO,KAA4D,MAAM,OAAO,CAAC;AACjF,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAU9D,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,gDAAgD;IAChD,YAAY,CAAC,EAAE,SAAS,EAAE,CAAC;IAC3B,6BAA6B;IAC7B,QAAQ,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,sEAAsE;QACtE,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,mCAAmC;IACnC,YAAY,CAAC,EAAE;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,iCAAiC;IACjC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAI5B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAE1B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhC;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhC,iEAAiE;IACjE,OAAO,CAAC,EAAE;QACR,kFAAkF;QAClF,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,6EAA6E;QAC7E,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,+EAA+E;QAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IAEF,kFAAkF;IAClF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,yFAAyF;IACzF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,yBAAyB;IACzB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,uCAAuC;IACvC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,gFAAgF;IAChF,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAiBD;wDACwD;AACxD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,GAAE,MAAM,EAAO,GAAG,OAAO,CAgBtF;AAED;wDACwD;AACxD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,GAAG,SAAS,EAAE,GAAG,SAAS,CAU/F;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAucxD,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"EmbeddableForm.d.ts","sourceRoot":"","sources":["../src/EmbeddableForm.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"FormAnalytics.d.ts","sourceRoot":"","sources":["../src/FormAnalytics.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;GAUG;AAEH,OAAO,KAAkB,MAAM,OAAO,CAAC;AAGvC,MAAM,WAAW,oBAAoB;IACnC,uCAAuC;IACvC,gBAAgB,EAAE,MAAM,CAAC;IACzB,gDAAgD;IAChD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,+CAA+C;IAC/C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,+CAA+C;IAC/C,gBAAgB,CAAC,EAAE,KAAK,CAAC;QACvB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH,gCAAgC;IAChC,YAAY,CAAC,EAAE,KAAK,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,kBAAkB;IACjC,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,OAAO,EAAE,oBAAoB,CAAC;IAC9B,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAQD;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA4ItD,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"FormAnalytics.d.ts","sourceRoot":"","sources":["../src/FormAnalytics.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;GAUG;AAEH,OAAO,KAAkB,MAAM,OAAO,CAAC;AAIvC,MAAM,WAAW,oBAAoB;IACnC,uCAAuC;IACvC,gBAAgB,EAAE,MAAM,CAAC;IACzB,gDAAgD;IAChD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,+CAA+C;IAC/C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,+CAA+C;IAC/C,gBAAgB,CAAC,EAAE,KAAK,CAAC;QACvB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH,gCAAgC;IAChC,YAAY,CAAC,EAAE,KAAK,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,kBAAkB;IACjC,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,OAAO,EAAE,oBAAoB,CAAC;IAC9B,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAQD;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA+ItD,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -8,7 +8,9 @@ export interface LineItemsPanelSchema {
8
8
  parentObject?: string;
9
9
  parentId?: string;
10
10
  recordId?: string;
11
+ /** Numeric CHILD column summed into the grid's footer total, e.g. `'amount'`. */
11
12
  amountField?: string;
13
+ /** PARENT field that receives that sum on save, e.g. `'total_amount'`. */
12
14
  totalField?: string;
13
15
  title?: string;
14
16
  readonly?: boolean;
@@ -29,10 +31,11 @@ export interface LineItemsPanelSchema {
29
31
  */
30
32
  filter?: any[] | Record<string, any>;
31
33
  /**
32
- * Load order for the child rows — the legacy `"line_no desc"` clause or the
33
- * spec's `SortConfig[]`. Without one the rows arrive in storage order.
34
+ * Load order for the child rows — the spec's `SortConfig[]`. Without one the
35
+ * rows arrive in storage order. The legacy `"line_no desc"` clause is RETIRED
36
+ * (objectui#8221): `convertSortToQueryParams` refuses it out loud.
34
37
  */
35
- sort?: string | Array<{
38
+ sort?: Array<{
36
39
  field?: string;
37
40
  order?: 'asc' | 'desc';
38
41
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"LineItemsPanel.d.ts","sourceRoot":"","sources":["../src/LineItemsPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;GASG;AAEH,OAAO,KAAoD,MAAM,OAAO,CAAC;AASzE,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAUpE,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrC;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;KAAE,CAAC,CAAC;IAClE;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,MAAM,EAAE,oBAAoB,CAAA;CAAE,CAsLrE,CAAC"}
1
+ {"version":3,"file":"LineItemsPanel.d.ts","sourceRoot":"","sources":["../src/LineItemsPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;GASG;AAEH,OAAO,KAA4D,MAAM,OAAO,CAAC;AASjF,OAAO,EAAwC,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAkE1F,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iFAAiF;IACjF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrC;;;;OAIG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;KAAE,CAAC,CAAC;IACzD;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAsE5C,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,MAAM,EAAE,oBAAoB,CAAA;CAAE,CAsrBrE,CAAC"}
@@ -1,37 +1,54 @@
1
1
  import { default as React } from 'react';
2
- import { DataSource } from '@object-ui/types';
3
- import { GridColumn } from '@object-ui/fields';
4
- import { InlineMode } from './deriveMasterDetail';
5
- export interface MasterDetailDetailConfig {
6
- /** Child object name, e.g. 'expense_line'. */
7
- childObject: string;
8
- /** FK field on the child pointing back to the parent, e.g. 'expense_claim'.
9
- * Optional — auto-detected from the child's master_detail/lookup field that
10
- * references the parent object when omitted. */
11
- relationshipField?: string;
12
- /** Editable columns for the child grid. Optional — derived from the child
13
- * object's fields (via DataSource.getObjectSchema) when omitted. */
14
- columns?: GridColumn[];
15
- /** Field names for the per-row expand form. Optional — derived from the child
16
- * object's fields (broader than `columns`: includes rich types) when omitted. */
17
- formFields?: string[];
18
- /** Inline-edit form factor: 'grid' = editable cells; 'form' = read-only list +
19
- * per-row full form. Optional — resolved from the relationship's `inlineEdit`
20
- * (incl. the smart default) when omitted. */
21
- inlineMode?: InlineMode;
22
- /** Numeric child column to sum, e.g. 'amount'. */
23
- amountField?: string;
24
- /** Child field holding the line sort position — stamped on drag-reorder so
25
- * order persists. Auto-derived from a `position`/`sort_order`/… field. */
26
- sortField?: string;
27
- /** Parent field to receive the rolled-up sum, e.g. 'total_amount'. */
28
- totalField?: string;
29
- /** Section title. */
30
- title?: string;
31
- minRows?: number;
32
- maxRows?: number;
33
- addLabel?: string;
34
- }
2
+ import { DataSource, I18nLabel } from '@object-ui/types';
3
+ import { ObjectMasterDetailFormProps } from '@objectstack/spec/ui';
4
+ /**
5
+ * One detail collection: the `details` entry of
6
+ * `ComponentPropsMap['object-master-detail-form']` in `@objectstack/spec`, on
7
+ * its authoring face (`z.input`, what a document writes), taken by reference
8
+ * rather than restated here (objectui#11396). Since 17.6.0 the spec judges that
9
+ * entry as a closed shape (objectstack-ai/objectstack#21215): `childObject`
10
+ * required, every other member optional, `columns` the spec's inline grid
11
+ * column (the type the line grid's `GridColumn` is), an undeclared key refused
12
+ * by name. `@object-ui/types` takes the whole props row by reference, so
13
+ * `objectui validate` gives the spec's verdict on an entry; this is the
14
+ * TypeScript face of that entry, and
15
+ * `__tests__/masterDetailDetailsMembers-8071.test.tsx` holds the two equal at
16
+ * compile time.
17
+ *
18
+ * ONE key is left off, and it is no longer a fork: `sortField`. This form
19
+ * reads no such member — objectui#11070 round 9 retired the authored override:
20
+ * the child field the grid stamps with each line's position is DERIVED from
21
+ * the child object (`deriveDetail` picks its `position` / `sort_order` / …
22
+ * field) and carried on the resolved entry, and row 2c of that test pins that a
23
+ * written `sortField` is read by nothing. Through 17.6.0 the spec entry still
24
+ * declared it; `@objectstack/spec` 17.7.0 retires it — a `retiredKey()`
25
+ * tombstone on the entry (objectstack-ai/objectstack#21589, landed by PR
26
+ * objectstack-ai/objectstack#21632 as `6ec54f00`) — so both published zod faces
27
+ * refuse an authored `sortField` with the spec's retired-key message
28
+ * (objectui#11717). The entry still LISTS the key as that tombstone, and the
29
+ * omission below keeps it off this face rather than offer a member whose only
30
+ * legal value is absence. That omission is the whole of what is hand-written
31
+ * about the shape.
32
+ *
33
+ * Where each member lands — the renderer's reading, which the spec's
34
+ * description does not carry:
35
+ * - `childObject` names the child object; `relationshipField` is the FK on the
36
+ * child back to the parent, auto-detected from the child's `master_detail` /
37
+ * `lookup` field that references the parent when omitted.
38
+ * - `columns` are the line grid's editable columns, derived from the child's
39
+ * fields (via `DataSource.getObjectSchema`) when omitted; `formFields` are
40
+ * the per-row expand form's field names (broader than `columns`: rich types
41
+ * included), derived likewise.
42
+ * - `inlineMode`: `grid` = editable cells, `form` = read-only list + per-row
43
+ * full form; resolved from the relationship's `inlineEdit` (incl. the smart
44
+ * default) when omitted.
45
+ * - `amountField` is the CHILD column summed, and reaches the grid as its
46
+ * `totalField`; `totalField` is the PARENT field the sum is saved to, and is
47
+ * not forwarded to the grid.
48
+ * - `title` heads the collection's section (`Line Items` when unset);
49
+ * `minRows`, `maxRows` and `addLabel` reach the grid under the same names.
50
+ */
51
+ export type MasterDetailDetailConfig = Omit<NonNullable<ObjectMasterDetailFormProps['details']>[number], 'sortField'>;
35
52
  export interface MasterDetailFormSchema {
36
53
  type?: 'object-master-detail-form';
37
54
  /** Parent object name, e.g. 'expense_claim'. */
@@ -53,11 +70,28 @@ export interface MasterDetailFormSchema {
53
70
  sections?: any[];
54
71
  fields?: any[];
55
72
  formType?: 'simple' | 'tabbed';
56
- title?: string;
57
- submitText?: string;
58
- /** Label for the Cancel button in the action bar. i18n is the host's job
59
- * (this plugin is locale-agnostic); defaults to English 'Cancel'. */
60
- cancelText?: string;
73
+ /**
74
+ * `title`, `submitText` and `cancelText` are the spec's `I18nLabel`, as
75
+ * `ComponentPropsMap['object-master-detail-form']` in `@objectstack/spec`
76
+ * declares them: a plain string or an inline per-locale map such as
77
+ * `{ en: 'Purchase order', 'zh-CN': '采购单' }`. The form resolves each one
78
+ * with `pickLocalized` against the active UI language
79
+ * (`useObjectTranslation().language`) before it reaches the screen
80
+ * (objectui#10935).
81
+ *
82
+ * `title` names the record in the built-in edit-save toast ("… saved",
83
+ * pack key `form.savedNamed`), which shows only when the host supplies no
84
+ * `onSuccess`.
85
+ */
86
+ title?: I18nLabel;
87
+ /** Label of the Save button. Defaults to the session locale's `common.save`
88
+ * (edit) or `form.create` ('Save' / 'Create' in English). */
89
+ submitText?: I18nLabel;
90
+ /** Label for the Cancel button in the action bar, which renders only when the
91
+ * host supplies `onCancel`. Defaults to the session locale's `common.cancel`
92
+ * ('Cancel' in English); an authored label, a string or a per-locale map,
93
+ * always wins (objectui#11039). */
94
+ cancelText?: I18nLabel;
61
95
  /** Hide the bottom Save/Cancel action bar — e.g. a non-persisting design
62
96
  * preview. Defaults to shown (the form owns the only Save in this layout). */
63
97
  showSubmit?: boolean;
@@ -68,6 +102,13 @@ export interface MasterDetailFormSchema {
68
102
  * Defaults to `tax_rate`; the stack only appears if the field is present. */
69
103
  taxRateField?: string;
70
104
  onSuccess?: (parent: any) => void | Promise<void>;
105
+ /**
106
+ * Called after a refused save, for bookkeeping only (logging, custom focus
107
+ * handling, …) — NOT for showing the failure to the user. The form
108
+ * renderer already toasts every rejected write for any host `submitHandler`
109
+ * (objectui#7354); a host that also toasts here puts the same refusal on
110
+ * screen twice.
111
+ */
71
112
  onError?: (err: Error) => void;
72
113
  onCancel?: () => void;
73
114
  className?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"MasterDetailForm.d.ts","sourceRoot":"","sources":["../src/MasterDetailForm.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAA4D,MAAM,OAAO,CAAC;AACjF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAIpE,OAAO,EAAgC,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAErF,MAAM,WAAW,wBAAwB;IACvC,8CAA8C;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB;;qDAEiD;IACjD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;yEACqE;IACrE,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvB;sFACkF;IAClF,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;kDAE8C;IAC9C,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;+EAC2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,2BAA2B,CAAC;IACnC,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IACzB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B;mFAC+E;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;0EACsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;mFAC+E;IAC/E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qCAAqC;IACrC,OAAO,EAAE,wBAAwB,EAAE,CAAC;IACpC;;kFAE8E;IAC9E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA+LD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,sBAAsB,CAAC;IAC/B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CA2a5D,CAAC"}
1
+ {"version":3,"file":"MasterDetailForm.d.ts","sourceRoot":"","sources":["../src/MasterDetailForm.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAA4D,MAAM,OAAO,CAAC;AACjF,OAAO,KAAK,EAA6B,UAAU,EAAqB,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAmC5G,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAExE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,MAAM,wBAAwB,GAAG,IAAI,CACzC,WAAW,CAAC,2BAA2B,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,EAC3D,WAAW,CACZ,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,2BAA2B,CAAC;IACnC,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IACzB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B;mFAC+E;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC/B;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;kEAC8D;IAC9D,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;;;wCAGoC;IACpC,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;mFAC+E;IAC/E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qCAAqC;IACrC,OAAO,EAAE,wBAAwB,EAAE,CAAC;IACpC;;kFAE8E;IAC9E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAw7BD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,sBAAsB,CAAC;IAC/B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CA8hC5D,CAAC"}
@@ -1,11 +1,42 @@
1
1
  import { default as React } from 'react';
2
- import { FormField, DataSource } from '@object-ui/types';
2
+ import { FormField, DataSource, ObjectFormSchema, ObjectFormSection } from '@object-ui/types';
3
3
  export interface ModalFormSectionConfig {
4
4
  name?: string;
5
5
  label?: string;
6
6
  description?: string;
7
7
  columns?: 1 | 2 | 3 | 4;
8
- fields: (string | FormField)[];
8
+ /**
9
+ * The same three entry shapes as `ObjectFormSection.fields`, by reference:
10
+ * a field name, the form view's `{ field, … }` entry, or an inline
11
+ * `FormField` (objectui#11615).
12
+ */
13
+ fields: NonNullable<ObjectFormSection['fields']>;
14
+ /**
15
+ * Whether the section can be collapsed — spec `FormSection.collapsible`.
16
+ * `collapsed: true` implies it (objectui#9780). The control lives on the
17
+ * section's divider row, so a section with neither `label` nor
18
+ * `description` cannot carry one: it renders open and is reported
19
+ * (objectui#9849, director ruling letter E). Stacked layout only — the
20
+ * `tabbed` content layout draws tabs, which do not collapse.
21
+ */
22
+ collapsible?: boolean;
23
+ /** Whether the section starts collapsed — spec `FormSection.collapsed`. Same rules as `collapsible`. */
24
+ collapsed?: boolean;
25
+ /**
26
+ * ADR-0089 `FormSection.visibleWhen` — conditional visibility for the
27
+ * section's divider HEADER, evaluated by the form renderer with the canonical
28
+ * engine and the host predicate scope (#6010/#6111). Fails OPEN.
29
+ */
30
+ visibleWhen?: string | {
31
+ dialect?: string;
32
+ source: string;
33
+ };
34
+ /**
35
+ * The fault direction of {@link visibleWhen}, by reference to
36
+ * `ObjectFormSection.visibleWhenFault` (objectui#13055): `'hidden'` (a field
37
+ * group's predicate) hides the section when it cannot be evaluated.
38
+ */
39
+ visibleWhenFault?: ObjectFormSection['visibleWhenFault'];
9
40
  /** Custom CSS class for the section's header row (stacked layout). */
10
41
  className?: string;
11
42
  /**
@@ -20,11 +51,12 @@ export interface ModalFormSchema {
20
51
  formType: 'modal';
21
52
  objectName: string;
22
53
  mode: 'create' | 'edit' | 'view';
23
- recordId?: string | number;
54
+ /** Record ID (for edit/view modes). A string, per the one record-id rule on `DataSource` (objectui#9511) — `ObjectForm` builds this schema from the authorable `ObjectFormSchema.recordId`, which is a string, and `findOne` takes a string. */
55
+ recordId?: string;
24
56
  title?: string;
25
57
  description?: string;
26
58
  sections?: ModalFormSectionConfig[];
27
- /** Internal content layout (ADR-0050, #1890): 'tabbed' renders sections as
59
+ /** Internal content layout (ADR-0050, objectstack-ai/objectstack#1890): 'tabbed' renders sections as
28
60
  * tabs inside the modal, so "modal + tabbed" composes. Default stacks them. */
29
61
  contentLayout?: 'simple' | 'tabbed';
30
62
  fields?: string[];
@@ -44,7 +76,12 @@ export interface ModalFormSchema {
44
76
  */
45
77
  modalSize?: 'sm' | 'default' | 'lg' | 'xl' | 'full';
46
78
  /**
47
- * Whether to show a close button in the header.
79
+ * Whether the dialog draws its close (X) button. Only an explicit `false`
80
+ * hides it (objectui#11061); both dialog arms (the flat form and the
81
+ * `subforms` master-detail form) pass it to `MobileDialogContent`'s
82
+ * `showCloseButton`. Hidden, the form is still dismissable: Escape (and a
83
+ * backdrop click) still reach `onOpenChange(false)`, as does the Cancel
84
+ * action when it is shown.
48
85
  * @default true
49
86
  */
50
87
  modalCloseButton?: boolean;
@@ -66,6 +103,24 @@ export interface ModalFormSchema {
66
103
  readOnly?: boolean;
67
104
  layout?: 'vertical' | 'horizontal';
68
105
  columns?: number;
106
+ /**
107
+ * Override persistence — the seam a host uses to own the write. Declared as
108
+ * `ObjectFormSchema['submitHandler']` rather than restated, so this variant
109
+ * and the canonical key `ObjectForm` forwards can never drift apart.
110
+ * When supplied, the form validates and hands the collected values
111
+ * to this handler INSTEAD of calling `dataSource.create` /
112
+ * `dataSource.update`; the returned record is passed on to `onSuccess`.
113
+ * In `edit` mode, for a record this form read itself, it hands over what it
114
+ * would have written: the fields that differ from that read, or the full
115
+ * sanitized payload when nothing changed (objectui#10156; the whole rule is
116
+ * on `ObjectFormSchema['submitHandler']`).
117
+ *
118
+ * `MasterDetailForm` supplies it to route the parent AND its child
119
+ * collections through one atomic `batchTransaction` (#2679 / ADR-0034
120
+ * item 4). A renderer that does not read it writes the parent on its own and
121
+ * escapes that transaction — objectui#6176.
122
+ */
123
+ submitHandler?: ObjectFormSchema['submitHandler'];
69
124
  onSuccess?: (data: any) => void | Promise<void>;
70
125
  onError?: (error: Error) => void;
71
126
  onCancel?: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"ModalForm.d.ts","sourceRoot":"","sources":["../src/ModalForm.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;GAKG;AAEH,OAAO,KAAmE,MAAM,OAAO,CAAC;AACxF,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AA0D9D,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,MAAM,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAC/B,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACpC;oFACgF;IAChF,aAAa,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,CAAC,EAAE,SAAS,EAAE,CAAC;IAE3B;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAEvC;;;OAGG;IACH,SAAS,CAAC,EAAE,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;IAEpD;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAG3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;4EACwE;IACxE,QAAQ,CAAC,EAAE,KAAK,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,eAAe,CAAC;IACxB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAiBD,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA8rB9C,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"ModalForm.d.ts","sourceRoot":"","sources":["../src/ModalForm.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectForm.d.ts","sourceRoot":"","sources":["../src/ObjectForm.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;GAKG;AAEH,OAAO,KAAoD,MAAM,OAAO,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAyB,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAqC5F;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,MAAM,EAAE,gBAAgB,CAAC;IAEzB;;;OAGG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA8BD;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAmPzD,CAAC"}
1
+ {"version":3,"file":"ObjectForm.d.ts","sourceRoot":"","sources":["../src/ObjectForm.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;GAKG;AAEH,OAAO,KAAoD,MAAM,OAAO,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAyB,UAAU,EAAE,MAAM,kBAAkB,CAAC;AA8D5F;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,MAAM,EAAE,gBAAgB,CAAC;IAEzB;;;OAGG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAwFD;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAwZzD,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { default as React } from 'react';
2
- import { FormField, DataSource } from '@object-ui/types';
2
+ import { FormField, DataSource, ObjectFormSchema, ObjectFormSection } from '@object-ui/types';
3
3
  export interface SplitFormSectionConfig {
4
4
  name?: string;
5
5
  label?: string;
@@ -12,7 +12,27 @@ export interface SplitFormSectionConfig {
12
12
  * positional rule (first section 'primary', every other 'secondary').
13
13
  */
14
14
  pane?: 'primary' | 'secondary';
15
- fields: (string | FormField)[];
15
+ /**
16
+ * The same three entry shapes as `ObjectFormSection.fields`, by reference:
17
+ * a field name, the form view's `{ field, … }` entry, or an inline
18
+ * `FormField` (objectui#11615).
19
+ */
20
+ fields: NonNullable<ObjectFormSection['fields']>;
21
+ /**
22
+ * ADR-0089 `FormSection.visibleWhen` — conditional visibility for the
23
+ * section's divider HEADER, evaluated by the form renderer with the canonical
24
+ * engine and the host predicate scope (#6010/#6111). Fails OPEN.
25
+ */
26
+ visibleWhen?: string | {
27
+ dialect?: string;
28
+ source: string;
29
+ };
30
+ /**
31
+ * The fault direction of {@link visibleWhen}, by reference to
32
+ * `ObjectFormSection.visibleWhenFault` (objectui#13055): `'hidden'` (a field
33
+ * group's predicate) hides the section when it cannot be evaluated.
34
+ */
35
+ visibleWhenFault?: ObjectFormSection['visibleWhenFault'];
16
36
  /** Custom CSS class for the section's header row. */
17
37
  className?: string;
18
38
  /**
@@ -28,8 +48,16 @@ export interface SplitFormSchema {
28
48
  formType: 'split';
29
49
  objectName: string;
30
50
  mode: 'create' | 'edit' | 'view';
31
- recordId?: string | number;
51
+ /** Record ID (for edit/view modes). A string, per the one record-id rule on `DataSource` (objectui#9511) — `ObjectForm` builds this schema from the authorable `ObjectFormSchema.recordId`, which is a string, and `findOne` takes a string. */
52
+ recordId?: string;
32
53
  sections: SplitFormSectionConfig[];
54
+ /**
55
+ * Inline field definitions (`object-form.customFields`). A member naming a
56
+ * field a section lists is that field's definition, as on every other
57
+ * `formType` (objectui#10254); `ObjectForm` hands the key over in its
58
+ * `{...schema}` spread.
59
+ */
60
+ customFields?: FormField[];
33
61
  /**
34
62
  * Split direction.
35
63
  * @default 'horizontal'
@@ -59,6 +87,24 @@ export interface SplitFormSchema {
59
87
  initialValues?: Record<string, any>;
60
88
  initialData?: Record<string, any>;
61
89
  readOnly?: boolean;
90
+ /**
91
+ * Override persistence — the seam a host uses to own the write. Declared as
92
+ * `ObjectFormSchema['submitHandler']` rather than restated, so this variant
93
+ * and the canonical key `ObjectForm` forwards can never drift apart.
94
+ * When supplied, the form validates and hands the collected values
95
+ * to this handler INSTEAD of calling `dataSource.create` /
96
+ * `dataSource.update`; the returned record is passed on to `onSuccess`.
97
+ * In `edit` mode, for a record this form read itself, it hands over what it
98
+ * would have written: the fields that differ from that read, or the full
99
+ * sanitized payload when nothing changed (objectui#10156, objectui#10563;
100
+ * the whole rule is on `ObjectFormSchema['submitHandler']`).
101
+ *
102
+ * `MasterDetailForm` supplies it to route the parent AND its child
103
+ * collections through one atomic `batchTransaction` (#2679 / ADR-0034
104
+ * item 4). A renderer that does not read it writes the parent on its own and
105
+ * escapes that transaction — objectui#6176.
106
+ */
107
+ submitHandler?: ObjectFormSchema['submitHandler'];
62
108
  onSuccess?: (data: any) => void | Promise<void>;
63
109
  onError?: (error: Error) => void;
64
110
  onCancel?: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"SplitForm.d.ts","sourceRoot":"","sources":["../src/SplitForm.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAA4D,MAAM,OAAO,CAAC;AACjF,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAS9D,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;IAC/B,MAAM,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAC/B,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,QAAQ,EAAE,sBAAsB,EAAE,CAAC;IAEnC;;;OAGG;IACH,cAAc,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IAE3C;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,eAAe,CAAC;IACxB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAkS9C,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"SplitForm.d.ts","sourceRoot":"","sources":["../src/SplitForm.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAA4D,MAAM,OAAO,CAAC;AACjF,OAAO,KAAK,EAAE,SAAS,EAAc,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAyB/G,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;IAC/B;;;;OAIG;IACH,MAAM,EAAE,WAAW,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjD;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IACzD,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,gPAAgP;IAChP,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,sBAAsB,EAAE,CAAC;IACnC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,SAAS,EAAE,CAAC;IAE3B;;;OAGG;IACH,cAAc,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IAE3C;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;;;;;;;;;;;OAgBG;IACH,aAAa,CAAC,EAAE,gBAAgB,CAAC,eAAe,CAAC,CAAC;IAElD,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,eAAe,CAAC;IACxB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA0b9C,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { default as React } from 'react';
2
- import { FormField, DataSource } from '@object-ui/types';
2
+ import { FormField, DataSource, ObjectFormSchema, ObjectFormSection } from '@object-ui/types';
3
3
  export interface FormSectionConfig {
4
4
  /**
5
5
  * Section identifier (used as tab value)
@@ -19,9 +19,51 @@ export interface FormSectionConfig {
19
19
  */
20
20
  columns?: 1 | 2 | 3 | 4;
21
21
  /**
22
- * Field names or configurations in this section
22
+ * The same three entry shapes as `ObjectFormSection.fields`, by reference:
23
+ * a field name, the form view's `{ field, … }` entry, or an inline
24
+ * `FormField` (objectui#11615).
23
25
  */
24
- fields: (string | FormField)[];
26
+ fields: NonNullable<ObjectFormSection['fields']>;
27
+ /**
28
+ * ADR-0089 `FormSection.visibleWhen` — the TABBED arm of the one grouping
29
+ * contract ruled 2026-08-29 (objectui#6237, option A). Spelled exactly as the
30
+ * sibling `ModalFormSectionConfig.visibleWhen`, because it IS the same
31
+ * authored key: `ObjectForm` copies a section's predicate here, this layout
32
+ * copies it onto the tab it synthesises (`FormFieldTab.visibleWhen`), and the
33
+ * form renderer evaluates it on the canonical engine with the live record and
34
+ * the host predicate scope bound (#6010) — the same path a field's own
35
+ * `visibleWhen` takes. A broken predicate fails OPEN (the tab stays visible).
36
+ *
37
+ * Ruled semantics (maintainer 2026-08-27, the same ruling for tabs as for
38
+ * sections), inherited from the renderer rather than re-implemented here:
39
+ * visibility decides what is DRAWN and nothing else — a hidden tab's values
40
+ * still submit — and a hidden tab's fields skip CLIENT-side validation, so a
41
+ * user is never blocked by an error pointing at a control they cannot see.
42
+ * The server-side contract stays the loud floor for genuinely-required data;
43
+ * see the boundary note on `WizardStepConfig` and objectui#6237 for the
44
+ * measured reason the server cannot read this predicate.
45
+ *
46
+ * ⛔ Deliberately NOT on the wizard's step type, and that boundary is now
47
+ * structural rather than subtractive (maintainer ruling 2026-08-30,
48
+ * objectui#6237). `WizardForm` used to type its steps as
49
+ * `Omit<FormSectionConfig, 'visibleWhen'>` — a derivation that defended the
50
+ * one key it named while every FUTURE key added here still reached a wizard
51
+ * step by default. `WizardStepConfig` is now declared independently, exactly
52
+ * as `SplitFormSectionConfig` / `ModalFormSectionConfig` /
53
+ * `DrawerFormSectionConfig` already are, so this type and the wizard's share
54
+ * nothing: a key is authorable on a wizard step only if someone writes it
55
+ * there, on the type whose renderer has to honour it.
56
+ */
57
+ visibleWhen?: string | {
58
+ dialect?: string;
59
+ source: string;
60
+ };
61
+ /**
62
+ * The fault direction of {@link visibleWhen}, by reference to
63
+ * `ObjectFormSection.visibleWhenFault` (objectui#13055): `'hidden'` (a field
64
+ * group's predicate) hides the section when it cannot be evaluated.
65
+ */
66
+ visibleWhenFault?: ObjectFormSection['visibleWhenFault'];
25
67
  /**
26
68
  * Custom CSS class for the section's Card wrapper.
27
69
  *
@@ -47,13 +89,23 @@ export interface TabbedFormSchema {
47
89
  */
48
90
  mode: 'create' | 'edit' | 'view';
49
91
  /**
50
- * Record ID (for edit/view modes)
92
+ * Record ID (for edit/view modes). A string, per the one record-id rule on
93
+ * `DataSource` (objectui#9511) — `ObjectForm` builds this schema from the
94
+ * authorable `ObjectFormSchema.recordId`, which is a string, and `findOne`
95
+ * takes a string.
51
96
  */
52
- recordId?: string | number;
97
+ recordId?: string;
53
98
  /**
54
99
  * Tab sections configuration
55
100
  */
56
101
  sections: FormSectionConfig[];
102
+ /**
103
+ * Inline field definitions (`object-form.customFields`). A member naming a
104
+ * field a section lists is that field's definition, as on every other
105
+ * `formType` (objectui#10254); `ObjectForm` hands the key over in its
106
+ * `{...schema}` spread.
107
+ */
108
+ customFields?: FormField[];
57
109
  /**
58
110
  * Grid width for the whole form (1–4). Aligns with @objectstack/spec
59
111
  * FormView.columns and OUTRANKS the per-section `columns`, which say how a
@@ -100,6 +152,24 @@ export interface TabbedFormSchema {
100
152
  * Read-only mode
101
153
  */
102
154
  readOnly?: boolean;
155
+ /**
156
+ * Override persistence — the seam a host uses to own the write. Declared as
157
+ * `ObjectFormSchema['submitHandler']` rather than restated, so this variant
158
+ * and the canonical key `ObjectForm` forwards can never drift apart.
159
+ * When supplied, the form validates and hands the collected values
160
+ * to this handler INSTEAD of calling `dataSource.create` /
161
+ * `dataSource.update`; the returned record is passed on to `onSuccess`.
162
+ * In `edit` mode, for a record this form read itself, it hands over what it
163
+ * would have written: the fields that differ from that read, or the full
164
+ * sanitized payload when nothing changed (objectui#10156, objectui#10563;
165
+ * the whole rule is on `ObjectFormSchema['submitHandler']`).
166
+ *
167
+ * `MasterDetailForm` supplies it to route the parent AND its child
168
+ * collections through one atomic `batchTransaction` (#2679 / ADR-0034
169
+ * item 4). A renderer that does not read it writes the parent on its own and
170
+ * escapes that transaction — objectui#6176.
171
+ */
172
+ submitHandler?: ObjectFormSchema['submitHandler'];
103
173
  /**
104
174
  * Callbacks
105
175
  */
@@ -1 +1 @@
1
- {"version":3,"file":"TabbedForm.d.ts","sourceRoot":"","sources":["../src/TabbedForm.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;GAKG;AAEH,OAAO,KAAwC,MAAM,OAAO,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAS9D,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAExB;;OAEG;IACH,MAAM,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAE/B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;IAEnB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IAEjC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE3B;;OAEG;IACH,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAE9B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,WAAW,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IAElD;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEpC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAElC;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAEtB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,gBAAgB,CAAC;IACzB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA4PhD,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"TabbedForm.d.ts","sourceRoot":"","sources":["../src/TabbedForm.tsx"],"names":[],"mappings":"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"}