@tai42/studio-sdk 21.0.0 → 22.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 (62) hide show
  1. package/dist/components/chip-group.d.ts +42 -0
  2. package/dist/components/chip-group.d.ts.map +1 -0
  3. package/dist/components/chip-group.js +85 -0
  4. package/dist/components/chip-group.js.map +1 -0
  5. package/dist/components/components.css +9 -3
  6. package/dist/index.d.ts +4 -2
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +2 -1
  9. package/dist/index.js.map +1 -1
  10. package/dist/schema-form/SchemaForm.d.ts +11 -1
  11. package/dist/schema-form/SchemaForm.d.ts.map +1 -1
  12. package/dist/schema-form/SchemaForm.js +2 -2
  13. package/dist/schema-form/SchemaForm.js.map +1 -1
  14. package/dist/schema-form/classify.d.ts.map +1 -1
  15. package/dist/schema-form/classify.js +54 -2
  16. package/dist/schema-form/classify.js.map +1 -1
  17. package/dist/schema-form/date-range-field.d.ts +44 -0
  18. package/dist/schema-form/date-range-field.d.ts.map +1 -0
  19. package/dist/schema-form/date-range-field.js +72 -0
  20. package/dist/schema-form/date-range-field.js.map +1 -0
  21. package/dist/schema-form/enum-field.d.ts +3 -1
  22. package/dist/schema-form/enum-field.d.ts.map +1 -1
  23. package/dist/schema-form/enum-field.js +8 -2
  24. package/dist/schema-form/enum-field.js.map +1 -1
  25. package/dist/schema-form/field-model.d.ts +20 -1
  26. package/dist/schema-form/field-model.d.ts.map +1 -1
  27. package/dist/schema-form/field-node.d.ts +10 -0
  28. package/dist/schema-form/field-node.d.ts.map +1 -1
  29. package/dist/schema-form/field-node.js +6 -3
  30. package/dist/schema-form/field-node.js.map +1 -1
  31. package/dist/schema-form/index.d.ts +3 -1
  32. package/dist/schema-form/index.d.ts.map +1 -1
  33. package/dist/schema-form/index.js +1 -0
  34. package/dist/schema-form/index.js.map +1 -1
  35. package/dist/schema-form/multiselect-field.d.ts.map +1 -1
  36. package/dist/schema-form/multiselect-field.js +11 -0
  37. package/dist/schema-form/multiselect-field.js.map +1 -1
  38. package/dist/schema-form/object-fields.d.ts +9 -1
  39. package/dist/schema-form/object-fields.d.ts.map +1 -1
  40. package/dist/schema-form/object-fields.js +16 -3
  41. package/dist/schema-form/object-fields.js.map +1 -1
  42. package/dist/schema-form/string-field.d.ts +6 -1
  43. package/dist/schema-form/string-field.d.ts.map +1 -1
  44. package/dist/schema-form/string-field.js +42 -8
  45. package/dist/schema-form/string-field.js.map +1 -1
  46. package/dist/schema-form/types.d.ts +36 -0
  47. package/dist/schema-form/types.d.ts.map +1 -1
  48. package/package.json +2 -2
  49. package/src/components/chip-group.tsx +157 -0
  50. package/src/components/components.css +9 -3
  51. package/src/index.ts +6 -0
  52. package/src/schema-form/SchemaForm.tsx +10 -0
  53. package/src/schema-form/classify.ts +59 -3
  54. package/src/schema-form/date-range-field.tsx +167 -0
  55. package/src/schema-form/enum-field.tsx +20 -0
  56. package/src/schema-form/field-model.ts +24 -2
  57. package/src/schema-form/field-node.tsx +19 -0
  58. package/src/schema-form/index.ts +10 -1
  59. package/src/schema-form/multiselect-field.tsx +21 -0
  60. package/src/schema-form/object-fields.tsx +36 -2
  61. package/src/schema-form/string-field.tsx +72 -1
  62. package/src/schema-form/types.ts +38 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-range-field.js","sourceRoot":"","sources":["../../src/schema-form/date-range-field.tsx"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import type { ReactNode } from 'react';
8
8
  import type { FieldModel } from './field-model';
9
- export declare function EnumField({ heading, description, error, model, value, onChange, }: {
9
+ export declare function EnumField({ heading, description, error, model, value, onChange, choiceLabel, }: {
10
10
  heading: string;
11
11
  description: string | undefined;
12
12
  error: string | undefined;
@@ -15,5 +15,7 @@ export declare function EnumField({ heading, description, error, model, value, o
15
15
  }>;
16
16
  value: unknown;
17
17
  onChange: (value: unknown) => void;
18
+ /** The select's placeholder when the field draws as a select; absent shows `Select…`. */
19
+ choiceLabel?: string;
18
20
  }): ReactNode;
19
21
  //# sourceMappingURL=enum-field.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"enum-field.d.ts","sourceRoot":"","sources":["../../src/schema-form/enum-field.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAMhD,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,WAAW,EACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,KAAK,EAAE,OAAO,CAAC,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7C,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC,GAAG,SAAS,CAmCZ"}
1
+ {"version":3,"file":"enum-field.d.ts","sourceRoot":"","sources":["../../src/schema-form/enum-field.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAMhD,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,WAAW,EACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,QAAQ,EACR,WAAW,GACZ,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,KAAK,EAAE,OAAO,CAAC,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7C,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,yFAAyF;IACzF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,SAAS,CAmDZ"}
@@ -1,11 +1,12 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { ChipGroup } from '../components/chip-group';
2
3
  import { Field } from '../components/field';
3
4
  import { RadioGroup } from '../components/radio-group';
4
5
  import { Select } from '../components/select';
5
6
  // The documented radio-vs-select threshold, shared across channels: a choice of this many
6
7
  // options or fewer draws as a radio group, a longer one as a select.
7
8
  const RADIO_MAX_OPTIONS = 5;
8
- export function EnumField({ heading, description, error, model, value, onChange, }) {
9
+ export function EnumField({ heading, description, error, model, value, onChange, choiceLabel, }) {
9
10
  const options = model.options.map((option, index) => ({
10
11
  key: String(index),
11
12
  label: option.label,
@@ -20,9 +21,14 @@ export function EnumField({ heading, description, error, model, value, onChange,
20
21
  if (match !== undefined)
21
22
  onChange(match.value);
22
23
  };
24
+ // `control: chips` draws the choice as a chip grid in place of the radio/select,
25
+ // at any option count.
26
+ if (model.control === 'chips') {
27
+ return (_jsx(Field, { label: heading, description: description, error: error, group: true, children: _jsx(ChipGroup, { mode: "single", options: options.map((option) => ({ value: option.key, label: option.label })), value: selectedKey, onValueChange: emit }) }));
28
+ }
23
29
  if (options.length <= RADIO_MAX_OPTIONS) {
24
30
  return (_jsx(Field, { label: heading, description: description, error: error, group: true, children: _jsx(RadioGroup, { options: options.map((option) => ({ value: option.key, label: option.label })), value: selectedKey, onValueChange: emit }) }));
25
31
  }
26
- return (_jsx(Field, { label: heading, description: description, error: error, children: _jsx(Select, { options: options.map((option) => ({ value: option.key, label: option.label })), value: selectedKey, onValueChange: emit }) }));
32
+ return (_jsx(Field, { label: heading, description: description, error: error, children: _jsx(Select, { options: options.map((option) => ({ value: option.key, label: option.label })), value: selectedKey, onValueChange: emit, placeholder: choiceLabel }) }));
27
33
  }
28
34
  //# sourceMappingURL=enum-field.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"enum-field.js","sourceRoot":"","sources":["../../src/schema-form/enum-field.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,0FAA0F;AAC1F,qEAAqE;AACrE,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAE5B,MAAM,UAAU,SAAS,CAAC,EACxB,OAAO,EACP,WAAW,EACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,QAAQ,GAQT;IACC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACpD,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC,CAAC,CAAC;IACJ,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IAClE,4EAA4E;IAC5E,4EAA4E;IAC5E,MAAM,WAAW,GAAG,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,CAAC,GAAW,EAAQ,EAAE;QACjC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QAC3D,IAAI,KAAK,KAAK,SAAS;YAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC,CAAC;IAEF,IAAI,OAAO,CAAC,MAAM,IAAI,iBAAiB,EAAE,CAAC;QACxC,OAAO,CACL,KAAC,KAAK,IAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,kBAClE,KAAC,UAAU,IACT,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,EAC9E,KAAK,EAAE,WAAW,EAClB,aAAa,EAAE,IAAI,GACnB,GACI,CACT,CAAC;IACJ,CAAC;IACD,OAAO,CACL,KAAC,KAAK,IAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,YAC3D,KAAC,MAAM,IACL,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,EAC9E,KAAK,EAAE,WAAW,EAClB,aAAa,EAAE,IAAI,GACnB,GACI,CACT,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"enum-field.js","sourceRoot":"","sources":["../../src/schema-form/enum-field.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,0FAA0F;AAC1F,qEAAqE;AACrE,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAE5B,MAAM,UAAU,SAAS,CAAC,EACxB,OAAO,EACP,WAAW,EACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,QAAQ,EACR,WAAW,GAUZ;IACC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACpD,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC,CAAC,CAAC;IACJ,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IAClE,4EAA4E;IAC5E,4EAA4E;IAC5E,MAAM,WAAW,GAAG,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,CAAC,GAAW,EAAQ,EAAE;QACjC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QAC3D,IAAI,KAAK,KAAK,SAAS;YAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC,CAAC;IAEF,iFAAiF;IACjF,uBAAuB;IACvB,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;QAC9B,OAAO,CACL,KAAC,KAAK,IAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,kBAClE,KAAC,SAAS,IACR,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,EAC9E,KAAK,EAAE,WAAW,EAClB,aAAa,EAAE,IAAI,GACnB,GACI,CACT,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,IAAI,iBAAiB,EAAE,CAAC;QACxC,OAAO,CACL,KAAC,KAAK,IAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,kBAClE,KAAC,UAAU,IACT,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,EAC9E,KAAK,EAAE,WAAW,EAClB,aAAa,EAAE,IAAI,GACnB,GACI,CACT,CAAC;IACJ,CAAC;IACD,OAAO,CACL,KAAC,KAAK,IAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,YAC3D,KAAC,MAAM,IACL,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,EAC9E,KAAK,EAAE,WAAW,EAClB,aAAa,EAAE,IAAI,EACnB,WAAW,EAAE,WAAW,GACxB,GACI,CACT,CAAC;AACJ,CAAC"}
@@ -5,7 +5,7 @@
5
5
  * validator import the vocabulary without pulling in classification code.
6
6
  */
7
7
  import type { EnumOption } from './resolve';
8
- import type { JsonSchema } from './types';
8
+ import type { FormControl, FormInputMode, JsonSchema } from './types';
9
9
  /**
10
10
  * How a string field accepts binary content as a JSON-serializable string.
11
11
  * Derived from a field's JSON-Schema media annotations (see the `SchemaForm` module).
@@ -112,9 +112,24 @@ export type FieldModel = {
112
112
  } | {
113
113
  readonly kind: 'enum';
114
114
  readonly options: readonly EnumOption[];
115
+ /** The `control` keyword off the property: `'chips'` draws the choice as a
116
+ * chip grid in place of the radio/select; `undefined` keeps the default. */
117
+ readonly control: FormControl | undefined;
115
118
  } | {
116
119
  readonly kind: 'string';
117
120
  readonly format: string | undefined;
121
+ /** The input kind (keyboard / native control) this string draws, from the
122
+ * schema's `inputMode` keyword; `undefined` for a plain text box. It
123
+ * draws, it does not validate, and it outranks `format` for the control. */
124
+ readonly inputMode: FormInputMode | undefined;
125
+ /** True when the `control` keyword is `'textarea'`: draw a multi-line text
126
+ * control instead of a single-line box. It draws, it does not validate. */
127
+ readonly multiline: boolean;
128
+ /** The `maxLength`/`minLength` JSON-Schema bounds, drawn on the control (a
129
+ * native cap plus a live counter when `maxLength` is set) and enforced by
130
+ * the validator. `undefined` leaves that bound unconstrained. */
131
+ readonly maxLength: number | undefined;
132
+ readonly minLength: number | undefined;
118
133
  /** Present when media annotations opt the field into the upload control. */
119
134
  readonly media: MediaUpload | undefined;
120
135
  /** Present when a well-formed `x-tai42-expression` annotation opts the
@@ -134,6 +149,10 @@ export type FieldModel = {
134
149
  } | {
135
150
  readonly kind: 'multiselect';
136
151
  readonly options: readonly EnumOption[];
152
+ /** The `control` keyword off the property: `'chips'` draws the multi-select
153
+ * as a toggle-chip grid in place of the checkbox group; `undefined` keeps
154
+ * the default. */
155
+ readonly control: FormControl | undefined;
137
156
  } | {
138
157
  readonly kind: 'object';
139
158
  readonly properties: readonly (readonly [string, JsonSchema])[];
@@ -1 +1 @@
1
- {"version":3,"file":"field-model.d.ts","sourceRoot":"","sources":["../../src/schema-form/field-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"field-model.d.ts","sourceRoot":"","sources":["../../src/schema-form/field-model.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,16 @@ interface FieldNodeProps {
24
24
  readonly markRequired?: boolean;
25
25
  readonly errors: SchemaFormErrors | undefined;
26
26
  readonly idPrefix: string;
27
+ /**
28
+ * Per-field picker placeholders keyed by property name, handed to an OBJECT node so
29
+ * its direct `enum`-select children draw their placeholder. Carried by the root form
30
+ * only; nested objects receive none.
31
+ */
32
+ readonly fieldWording?: Readonly<Record<string, {
33
+ choiceLabel?: string;
34
+ }>>;
35
+ /** This field's own picker placeholder, when it draws as an `enum` select. */
36
+ readonly choiceLabel?: string;
27
37
  }
28
38
  /**
29
39
  * A single schema node, dispatched on its classified model kind. Wrapped in
@@ -1 +1 @@
1
- {"version":3,"file":"field-node.d.ts","sourceRoot":"","sources":["../../src/schema-form/field-node.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAgB7C,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAG5D,UAAU,cAAc;IACtB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sFAAsF;IACtF,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAMD;;;;;;GAMG;AACH,iBAAS,aAAa,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,CAoBvD;AAkLD,eAAO,MAAM,SAAS,2DAAsB,CAAC"}
1
+ {"version":3,"file":"field-node.d.ts","sourceRoot":"","sources":["../../src/schema-form/field-node.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAgB7C,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAG5D,UAAU,cAAc;IACtB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sFAAsF;IACtF,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IAC3E,8EAA8E;IAC9E,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAMD;;;;;;GAMG;AACH,iBAAS,aAAa,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,CAsBvD;AA2LD,eAAO,MAAM,SAAS,2DAAsB,CAAC"}
@@ -49,6 +49,8 @@ function FieldNodeImpl(props) {
49
49
  required,
50
50
  errors,
51
51
  idPrefix,
52
+ fieldWording: props.fieldWording,
53
+ choiceLabel: props.choiceLabel,
52
54
  });
53
55
  }
54
56
  /** Render the field component matching the classified model kind. */
@@ -60,9 +62,9 @@ function renderField(args) {
60
62
  case 'const':
61
63
  return (_jsx(ConstField, { heading: heading, description: description, error: error, constValue: model.value }));
62
64
  case 'enum':
63
- return (_jsx(EnumField, { heading: heading, description: description, error: error, model: model, value: value, onChange: onChange }));
65
+ return (_jsx(EnumField, { heading: heading, description: description, error: error, model: model, value: value, onChange: onChange, choiceLabel: args.choiceLabel }));
64
66
  case 'string':
65
- return (_jsx(StringField, { heading: heading, description: description, error: error, format: model.format, media: model.media, expression: model.expression, date: model.date, argName: path, value: value, required: required, onChange: onChange }));
67
+ return (_jsx(StringField, { heading: heading, description: description, error: error, format: model.format, inputMode: model.inputMode, multiline: model.multiline, maxLength: model.maxLength, minLength: model.minLength, media: model.media, expression: model.expression, date: model.date, argName: path, value: value, required: required, onChange: onChange }));
66
68
  case 'number':
67
69
  return (_jsx(NumberField, { heading: heading, description: description, error: error, integer: model.integer, value: value, onChange: onChange }));
68
70
  case 'boolean':
@@ -76,11 +78,12 @@ function renderField(args) {
76
78
  /** The composite (recursing) field kinds: array, object, record, and union. */
77
79
  function renderCompositeField(args, model) {
78
80
  const { heading, description, error, root, value, onChange, path, errors, idPrefix } = args;
81
+ const { fieldWording } = args;
79
82
  switch (model.kind) {
80
83
  case 'array':
81
84
  return (_jsx(ArrayField, { heading: heading, description: description, error: error, items: model.items, root: root, value: value, onChange: onChange, path: path, errors: errors, idPrefix: idPrefix }));
82
85
  case 'object':
83
- return (_jsx(FieldGroup, { heading: heading, description: description, error: error, atRoot: path === '', children: _jsx(ObjectFields, { properties: model.properties, requiredKeys: model.required, root: root, value: value, onChange: onChange, path: path, errors: errors, idPrefix: idPrefix, skip: undefined }) }));
86
+ return (_jsx(FieldGroup, { heading: heading, description: description, error: error, atRoot: path === '', children: _jsx(ObjectFields, { properties: model.properties, requiredKeys: model.required, root: root, value: value, onChange: onChange, path: path, errors: errors, idPrefix: idPrefix, skip: undefined, fieldWording: fieldWording }) }));
84
87
  case 'record':
85
88
  return (_jsx(RecordField, { heading: heading, description: description, error: error, values: model.values, root: root, value: value, onChange: onChange, path: path, errors: errors, idPrefix: idPrefix }));
86
89
  case 'union':
@@ -1 +1 @@
1
- {"version":3,"file":"field-node.js","sourceRoot":"","sources":["../../src/schema-form/field-node.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"field-node.js","sourceRoot":"","sources":["../../src/schema-form/field-node.tsx"],"names":[],"mappings":"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"}
@@ -33,13 +33,15 @@ export type { RecordEntryContext, RecordEntryRenderer } from './context';
33
33
  export type { ExpressionFieldComponent, ExpressionFieldProps, ExpressionInputKey, ExpressionInputShape, } from './context';
34
34
  export { RecordEntryRendererContext } from './context';
35
35
  export { ExpressionFieldContext } from './context';
36
+ export type { DateRangePair } from './date-range-field';
37
+ export { dateRangePairs } from './date-range-field';
36
38
  export { defaultValueForSchema } from './default-value';
37
39
  export { resolveRef } from './resolve';
38
40
  export type { CompletionProvider, SchemaFormProps } from './SchemaForm';
39
41
  export { SchemaForm } from './SchemaForm';
40
42
  export type { SecretRef, SecretRefFieldProps } from './SecretRefField';
41
43
  export { SecretRefField } from './SecretRefField';
42
- export type { Discriminator, JsonSchema, JsonSchemaType, SchemaFormErrors } from './types';
44
+ export type { Discriminator, FormControl, FormInputMode, JsonSchema, JsonSchemaType, SchemaFormErrors, } from './types';
43
45
  export { validateAgainstSchema } from './validate';
44
46
  export { isFieldVisible } from './visibility';
45
47
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema-form/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACzE,YAAY,EACV,wBAAwB,EACxB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema-form/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACzE,YAAY,EACV,wBAAwB,EACxB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACnD,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EACV,aAAa,EACb,WAAW,EACX,aAAa,EACb,UAAU,EACV,cAAc,EACd,gBAAgB,GACjB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export { RecordEntryRendererContext } from './context';
2
2
  export { ExpressionFieldContext } from './context';
3
+ export { dateRangePairs } from './date-range-field';
3
4
  export { defaultValueForSchema } from './default-value';
4
5
  export { resolveRef } from './resolve';
5
6
  export { SchemaForm } from './SchemaForm';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema-form/index.ts"],"names":[],"mappings":"AAsCA,OAAO,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema-form/index.ts"],"names":[],"mappings":"AAsCA,OAAO,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AASlD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"multiselect-field.d.ts","sourceRoot":"","sources":["../../src/schema-form/multiselect-field.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,wBAAgB,gBAAgB,CAAC,EAC/B,OAAO,EACP,WAAW,EACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,KAAK,EAAE,OAAO,CAAC,UAAU,EAAE;QAAE,IAAI,EAAE,aAAa,CAAA;KAAE,CAAC,CAAC;IACpD,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC,GAAG,SAAS,CA8BZ"}
1
+ {"version":3,"file":"multiselect-field.d.ts","sourceRoot":"","sources":["../../src/schema-form/multiselect-field.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,wBAAgB,gBAAgB,CAAC,EAC/B,OAAO,EACP,WAAW,EACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,KAAK,EAAE,OAAO,CAAC,UAAU,EAAE;QAAE,IAAI,EAAE,aAAa,CAAA;KAAE,CAAC,CAAC;IACpD,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC,GAAG,SAAS,CAkDZ"}
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { Checkbox } from '../components/checkbox';
3
+ import { ChipGroup } from '../components/chip-group';
3
4
  import { Field } from '../components/field';
4
5
  export function MultiSelectField({ heading, description, error, model, value, onChange, }) {
5
6
  const selected = Array.isArray(value)
@@ -14,6 +15,16 @@ export function MultiSelectField({ heading, description, error, model, value, on
14
15
  .filter((candidate) => next.includes(candidate));
15
16
  onChange(ordered);
16
17
  };
18
+ // `control: chips` draws the multi-select as a toggle-chip grid in place of the
19
+ // checkbox group. The chips emit the selection in the OPTIONS' declared order.
20
+ if (model.control === 'chips') {
21
+ return (_jsx(Field, { label: heading, description: description, error: error, group: true, children: _jsx(ChipGroup, { mode: "multi", options: model.options.map((option) => ({
22
+ value: String(option.value),
23
+ label: option.label,
24
+ })), value: selected, onValueChange: (next) => {
25
+ onChange([...next]);
26
+ } }) }));
27
+ }
17
28
  return (_jsx(Field, { label: heading, description: description, error: error, group: true, children: model.options.map((option, index) => {
18
29
  const optionValue = String(option.value);
19
30
  return (_jsx(Checkbox, { label: option.label, checked: selected.includes(optionValue), onCheckedChange: (checked) => {
@@ -1 +1 @@
1
- {"version":3,"file":"multiselect-field.js","sourceRoot":"","sources":["../../src/schema-form/multiselect-field.tsx"],"names":[],"mappings":";AASA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAG5C,MAAM,UAAU,gBAAgB,CAAC,EAC/B,OAAO,EACP,WAAW,EACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,QAAQ,GAQT;IACC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACnC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;QAClE,CAAC,CAAC,EAAE,CAAC;IACP,wFAAwF;IACxF,mFAAmF;IACnF,MAAM,MAAM,GAAG,CAAC,WAAmB,EAAE,OAAgB,EAAQ,EAAE;QAC7D,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC;QAC9F,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO;aAC1B,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aACrC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QACnD,QAAQ,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC,CAAC;IACF,OAAO,CACL,KAAC,KAAK,IAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,kBACjE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACnC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACzC,OAAO,CACL,KAAC,QAAQ,IAEP,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EACvC,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE;oBAC3B,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;gBAC/B,CAAC,IALI,KAAK,CAMV,CACH,CAAC;QACJ,CAAC,CAAC,GACI,CACT,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"multiselect-field.js","sourceRoot":"","sources":["../../src/schema-form/multiselect-field.tsx"],"names":[],"mappings":";AASA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAG5C,MAAM,UAAU,gBAAgB,CAAC,EAC/B,OAAO,EACP,WAAW,EACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,QAAQ,GAQT;IACC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACnC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;QAClE,CAAC,CAAC,EAAE,CAAC;IACP,wFAAwF;IACxF,mFAAmF;IACnF,MAAM,MAAM,GAAG,CAAC,WAAmB,EAAE,OAAgB,EAAQ,EAAE;QAC7D,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC;QAC9F,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO;aAC1B,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aACrC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QACnD,QAAQ,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,gFAAgF;IAChF,+EAA+E;IAC/E,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;QAC9B,OAAO,CACL,KAAC,KAAK,IAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,kBAClE,KAAC,SAAS,IACR,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;oBACtC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;oBAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;iBACpB,CAAC,CAAC,EACH,KAAK,EAAE,QAAQ,EACf,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE;oBACtB,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;gBACtB,CAAC,GACD,GACI,CACT,CAAC;IACJ,CAAC;IACD,OAAO,CACL,KAAC,KAAK,IAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,kBACjE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACnC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACzC,OAAO,CACL,KAAC,QAAQ,IAEP,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EACvC,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE;oBAC3B,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;gBAC/B,CAAC,IALI,KAAK,CAMV,CACH,CAAC;QACJ,CAAC,CAAC,GACI,CACT,CAAC;AACJ,CAAC"}
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import type { ReactNode } from 'react';
8
8
  import type { JsonSchema, SchemaFormErrors } from './types';
9
- export declare function ObjectFields({ properties, requiredKeys, root, value, onChange, path, errors, idPrefix, skip, markRequired, }: {
9
+ export declare function ObjectFields({ properties, requiredKeys, root, value, onChange, path, errors, idPrefix, skip, markRequired, fieldWording, }: {
10
10
  properties: readonly (readonly [string, JsonSchema])[];
11
11
  requiredKeys: ReadonlySet<string>;
12
12
  root: JsonSchema;
@@ -18,5 +18,13 @@ export declare function ObjectFields({ properties, requiredKeys, root, value, on
18
18
  skip: string | undefined;
19
19
  /** Mark each required property's label with the DS required marker. */
20
20
  markRequired?: boolean;
21
+ /**
22
+ * Per-property picker placeholders, keyed by property name. Handed to the root form's
23
+ * object only; a property whose `enum` draws as a select shows its entry's
24
+ * `choiceLabel` as the select placeholder. Absent for nested objects.
25
+ */
26
+ fieldWording?: Readonly<Record<string, {
27
+ choiceLabel?: string;
28
+ }>>;
21
29
  }): ReactNode;
22
30
  //# sourceMappingURL=object-fields.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"object-fields.d.ts","sourceRoot":"","sources":["../../src/schema-form/object-fields.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAO5D,wBAAgB,YAAY,CAAC,EAC3B,UAAU,EACV,YAAY,EACZ,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,YAAoB,GACrB,EAAE;IACD,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;IACvD,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,uEAAuE;IACvE,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,GAAG,SAAS,CAkCZ"}
1
+ {"version":3,"file":"object-fields.d.ts","sourceRoot":"","sources":["../../src/schema-form/object-fields.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvC,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAO5D,wBAAgB,YAAY,CAAC,EAC3B,UAAU,EACV,YAAY,EACZ,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,YAAoB,EACpB,YAAY,GACb,EAAE;IACD,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;IACvD,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,uEAAuE;IACvE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;OAIG;IACH,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;CACnE,GAAG,SAAS,CA4DZ"}
@@ -1,24 +1,37 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { DateRangeField, dateRangePairs } from './date-range-field';
2
3
  import { FieldNode } from './field-node';
3
4
  import { useKeyedCallbacks } from './keyed-callbacks';
4
5
  import { isFieldVisible } from './visibility';
5
6
  function isPlainObject(value) {
6
7
  return typeof value === 'object' && value !== null && !Array.isArray(value);
7
8
  }
8
- export function ObjectFields({ properties, requiredKeys, root, value, onChange, path, errors, idPrefix, skip, markRequired = false, }) {
9
+ export function ObjectFields({ properties, requiredKeys, root, value, onChange, path, errors, idPrefix, skip, markRequired = false, fieldWording, }) {
9
10
  const obj = isPlainObject(value) ? value : {};
10
11
  const changeFor = useKeyedCallbacks((name, next) => {
11
12
  onChange(setKey(obj, name, next));
12
13
  }, properties.map(([name]) => name));
14
+ // A drawable date-range pair renders as ONE DateRangeField at the START's slot; the
15
+ // END is skipped. The pairing is `dateRangePairs`, the one definition every surface
16
+ // shares. Properties here are one page's, so the "same page" rule holds by construction.
17
+ const pairs = dateRangePairs(properties);
18
+ const pairByStart = new Map(pairs.map((pair) => [pair.startName, pair]));
19
+ const skippedEnds = new Set(pairs.map((pair) => pair.endName));
20
+ const childPathOf = (name) => (path === '' ? name : `${path}.${name}`);
13
21
  return (_jsx(_Fragment, { children: properties.map(([name, propSchema]) => {
14
22
  if (skip !== undefined && name === skip)
15
23
  return null;
24
+ if (skippedEnds.has(name))
25
+ return null;
16
26
  // A field hidden by its `visibleWhen` predicate (scope B) is not rendered; the
17
27
  // validator skips it in step, so a hidden field is neither shown nor required.
18
28
  if (!isFieldVisible(propSchema, obj))
19
29
  return null;
20
- const childPath = path === '' ? name : `${path}.${name}`;
21
- return (_jsx(FieldNode, { schema: propSchema, root: root, value: obj[name], onChange: changeFor(name), path: childPath, label: name, required: requiredKeys.has(name), markRequired: markRequired, errors: errors, idPrefix: idPrefix }, name));
30
+ const pair = pairByStart.get(name);
31
+ if (pair !== undefined) {
32
+ return (_jsx(DateRangeField, { pair: pair, startValue: obj[pair.startName], endValue: obj[pair.endName], startRequired: requiredKeys.has(pair.startName), endRequired: requiredKeys.has(pair.endName), markRequired: markRequired, startError: errors?.[childPathOf(pair.startName)], endError: errors?.[childPathOf(pair.endName)], onChangeStart: changeFor(pair.startName), onChangeEnd: changeFor(pair.endName) }, name));
33
+ }
34
+ return (_jsx(FieldNode, { schema: propSchema, root: root, value: obj[name], onChange: changeFor(name), path: childPathOf(name), label: name, required: requiredKeys.has(name), markRequired: markRequired, errors: errors, idPrefix: idPrefix, choiceLabel: fieldWording?.[name]?.choiceLabel }, name));
22
35
  }) }));
23
36
  }
24
37
  function setKey(obj, name, next) {
@@ -1 +1 @@
1
- {"version":3,"file":"object-fields.js","sourceRoot":"","sources":["../../src/schema-form/object-fields.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAC3B,UAAU,EACV,YAAY,EACZ,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,YAAY,GAAG,KAAK,GAarB;IACC,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,MAAM,SAAS,GAAG,iBAAiB,CACjC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;QACb,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACpC,CAAC,EACD,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CACjC,CAAC;IACF,OAAO,CACL,4BACG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE;YACrC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC;YACrD,+EAA+E;YAC/E,+EAA+E;YAC/E,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;YAClD,MAAM,SAAS,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;YACzD,OAAO,CACL,KAAC,SAAS,IAER,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,EAChB,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,EACzB,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAChC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,IAVb,IAAI,CAWT,CACH,CAAC;QACJ,CAAC,CAAC,GACD,CACJ,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CACb,GAA4B,EAC5B,IAAY,EACZ,IAAa;IAEb,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"object-fields.js","sourceRoot":"","sources":["../../src/schema-form/object-fields.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAC3B,UAAU,EACV,YAAY,EACZ,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,YAAY,GAAG,KAAK,EACpB,YAAY,GAmBb;IACC,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,MAAM,SAAS,GAAG,iBAAiB,CACjC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;QACb,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACpC,CAAC,EACD,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CACjC,CAAC;IACF,oFAAoF;IACpF,oFAAoF;IACpF,yFAAyF;IACzF,MAAM,KAAK,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACzE,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/D,MAAM,WAAW,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;IACvF,OAAO,CACL,4BACG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE;YACrC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC;YACrD,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;YACvC,+EAA+E;YAC/E,+EAA+E;YAC/E,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;YAClD,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,OAAO,CACL,KAAC,cAAc,IAEb,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAC/B,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAC3B,aAAa,EAAE,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAC/C,WAAW,EAAE,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAC3C,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EACjD,QAAQ,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAC7C,aAAa,EAAE,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EACxC,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAV/B,IAAI,CAWT,CACH,CAAC;YACJ,CAAC;YACD,OAAO,CACL,KAAC,SAAS,IAER,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,EAChB,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,EACzB,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,EACvB,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAChC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,YAAY,EAAE,CAAC,IAAI,CAAC,EAAE,WAAW,IAXzC,IAAI,CAYT,CACH,CAAC;QACJ,CAAC,CAAC,GACD,CACJ,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CACb,GAA4B,EAC5B,IAAY,EACZ,IAAa;IAEb,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;AAClC,CAAC"}
@@ -20,11 +20,16 @@
20
20
  */
21
21
  import type { ReactNode } from 'react';
22
22
  import type { DateConstraints, ExpressionAnnotation, MediaUpload } from './field-model';
23
- export declare function StringField({ heading, description, error, format, media, expression, date, argName, value, required, onChange, }: {
23
+ import type { FormInputMode } from './types';
24
+ export declare function StringField({ heading, description, error, format, inputMode, multiline, maxLength, minLength, media, expression, date, argName, value, required, onChange, }: {
24
25
  heading: string;
25
26
  description: string | undefined;
26
27
  error: string | undefined;
27
28
  format: string | undefined;
29
+ inputMode: FormInputMode | undefined;
30
+ multiline: boolean;
31
+ maxLength: number | undefined;
32
+ minLength: number | undefined;
28
33
  media: MediaUpload | undefined;
29
34
  expression: ExpressionAnnotation | undefined;
30
35
  date: DateConstraints | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"string-field.d.ts","sourceRoot":"","sources":["../../src/schema-form/string-field.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAUvC,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAIxF,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,WAAW,EACX,KAAK,EACL,MAAM,EACN,KAAK,EACL,UAAU,EACV,IAAI,EACJ,OAAO,EACP,KAAK,EACL,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,EAAE,WAAW,GAAG,SAAS,CAAC;IAC/B,UAAU,EAAE,oBAAoB,GAAG,SAAS,CAAC;IAC7C,IAAI,EAAE,eAAe,GAAG,SAAS,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC,GAAG,SAAS,CA0EZ"}
1
+ {"version":3,"file":"string-field.d.ts","sourceRoot":"","sources":["../../src/schema-form/string-field.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAUvC,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGxF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,WAAW,EACX,KAAK,EACL,MAAM,EACN,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,KAAK,EACL,UAAU,EACV,IAAI,EACJ,OAAO,EACP,KAAK,EACL,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,SAAS,EAAE,aAAa,GAAG,SAAS,CAAC;IACrC,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,KAAK,EAAE,WAAW,GAAG,SAAS,CAAC;IAC/B,UAAU,EAAE,oBAAoB,GAAG,SAAS,CAAC;IAC7C,IAAI,EAAE,eAAe,GAAG,SAAS,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC,GAAG,SAAS,CAoGZ"}
@@ -7,7 +7,8 @@ import { Textarea, TextInput } from '../components/inputs';
7
7
  import { errorMessage } from '../errors';
8
8
  import { CompletionProviderContext, ExpressionFieldContext } from './context';
9
9
  import { MediaField } from './media-field';
10
- export function StringField({ heading, description, error, format, media, expression, date, argName, value, required, onChange, }) {
10
+ export function StringField({ heading, description, error, format, inputMode, multiline, maxLength, minLength, media, expression, date, argName, value, required, onChange, }) {
11
+ const control = stringControl(format, inputMode);
11
12
  const completionProvider = useContext(CompletionProviderContext);
12
13
  const expressionField = useContext(ExpressionFieldContext);
13
14
  const current = typeof value === 'string' ? value : '';
@@ -33,13 +34,26 @@ export function StringField({ heading, description, error, format, media, expres
33
34
  if (media !== undefined) {
34
35
  return (_jsx(MediaField, { heading: heading, description: description, error: error, media: media, value: current, onChange: emit }));
35
36
  }
36
- return (_jsx(Field, { label: heading, description: description, error: error, children: completionProvider !== undefined ? (_jsx(CompletionField, { argName: argName, value: current, onChange: emit, provider: completionProvider })) : (_jsx(TextInput, { type: stringInputType(format),
37
- // A native date control enforces its inclusive bounds (scope C); on a
38
- // non-date input the browser ignores these, and the validator enforces the
39
- // rest (unavailable days, range span) that the control cannot draw.
40
- min: date?.min, max: date?.max, value: current, onChange: (event) => {
41
- emit(event.target.value);
42
- } })) }));
37
+ return (_jsxs(Field, { label: heading, description: description, error: error, children: [completionProvider !== undefined ? (_jsx(CompletionField, { argName: argName, value: current, onChange: emit, provider: completionProvider })) : multiline ? (_jsx(Textarea, { maxLength: maxLength, minLength: minLength, value: current, onChange: (event) => {
38
+ emit(event.target.value);
39
+ } })) : (_jsx(TextInput, { type: control.type,
40
+ // The keyboard hint for a `numeric`/`decimal` mode (a text box with a
41
+ // numeric/decimal keyboard); `undefined` for every other control, which
42
+ // selects its kind through `type` instead.
43
+ inputMode: control.inputMode,
44
+ // A native date control enforces its inclusive bounds (scope C); on a
45
+ // non-date input the browser ignores these, and the validator enforces the
46
+ // rest (unavailable days, range span) that the control cannot draw.
47
+ min: date?.min, max: date?.max,
48
+ // The length bounds draw natively (the control caps input at `maxLength`)
49
+ // and the validator enforces them; a counter shows the maximum (below).
50
+ maxLength: maxLength, minLength: minLength, value: current, onChange: (event) => {
51
+ emit(event.target.value);
52
+ } })), completionProvider === undefined && maxLength !== undefined ? (_jsx(LengthCounter, { current: current, max: maxLength })) : null] }));
53
+ }
54
+ /** The `n / max` length hint under a bounded string control. */
55
+ function LengthCounter({ current, max }) {
56
+ return (_jsx("p", { className: "tai-field-hint", style: { margin: 0 }, "aria-live": "polite", children: `${String(Array.from(current).length)} / ${String(max)}` }));
43
57
  }
44
58
  /**
45
59
  * A string field backed by argument completions. Split out so its memoised
@@ -172,4 +186,24 @@ function stringInputType(format) {
172
186
  return 'text';
173
187
  return FORMAT_INPUT_TYPES[format] ?? 'text';
174
188
  }
189
+ /** The native control each `inputMode` draws. `tel`/`email`/`url` select the
190
+ * matching input `type`; `numeric`/`decimal` keep a text box and set the HTML
191
+ * `inputmode` keyboard hint; `text` is a plain text box. */
192
+ const INPUT_MODE_CONTROLS = {
193
+ text: { type: 'text', inputMode: undefined },
194
+ numeric: { type: 'text', inputMode: 'numeric' },
195
+ decimal: { type: 'text', inputMode: 'decimal' },
196
+ tel: { type: 'tel', inputMode: undefined },
197
+ email: { type: 'email', inputMode: undefined },
198
+ url: { type: 'url', inputMode: undefined },
199
+ };
200
+ // The native control for a string field: the `inputMode` keyword OUTRANKS
201
+ // `format` when present; otherwise the format mapping stands as before. The value
202
+ // is always the typed string — `numeric`/`decimal` set only the keyboard, never a
203
+ // number coercion.
204
+ function stringControl(format, inputMode) {
205
+ if (inputMode !== undefined)
206
+ return INPUT_MODE_CONTROLS[inputMode];
207
+ return { type: stringInputType(format), inputMode: undefined };
208
+ }
175
209
  //# sourceMappingURL=string-field.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"string-field.js","sourceRoot":"","sources":["../../src/schema-form/string-field.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"string-field.js","sourceRoot":"","sources":["../../src/schema-form/string-field.tsx"],"names":[],"mappings":"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"}
@@ -8,6 +8,22 @@
8
8
  */
9
9
  /** The JSON-Schema `type` keyword values Pydantic emits. */
10
10
  export type JsonSchemaType = 'string' | 'number' | 'integer' | 'boolean' | 'object' | 'array' | 'null';
11
+ /**
12
+ * The input KIND a `string` field collects, drawn as the matching keyboard or
13
+ * native control. The vocabulary is the HTML `inputmode`/control naming of the
14
+ * concept: `numeric`/`decimal` set a text box's keyboard hint; `tel`/`email`/`url`
15
+ * select the matching native control. It draws, it does not validate.
16
+ */
17
+ export type FormInputMode = 'text' | 'numeric' | 'decimal' | 'tel' | 'email' | 'url';
18
+ /**
19
+ * The CONTROL a surface draws for a property in place of the default for the
20
+ * property's shape. `chips` draws a choice (a `string` with an `enum`, or an
21
+ * `array` of such strings) as a tap-to-select chip grid instead of the
22
+ * radio/select or checkbox group. `textarea` draws a `string` as a multi-line
23
+ * text control instead of a single-line box. It changes what is DRAWN, never what
24
+ * is accepted — the value and its validation stay the property's own.
25
+ */
26
+ export type FormControl = 'chips' | 'textarea';
11
27
  /** A Pydantic-style discriminated-union tag: which property selects the variant. */
12
28
  export interface Discriminator {
13
29
  readonly propertyName: string;
@@ -57,6 +73,26 @@ export interface JsonSchema {
57
73
  readonly minItems?: number;
58
74
  readonly maxItems?: number;
59
75
  readonly pattern?: string;
76
+ /**
77
+ * The input KIND a `string` field collects — a platform keyword (see {@link
78
+ * FormInputMode}). The renderer draws the matching keyboard or native control:
79
+ * `numeric`/`decimal` a text box with that keyboard hint (the value stays the
80
+ * typed string, so `"007"` keeps its leading zeros), `tel`/`email`/`url` the
81
+ * matching native control, `text` or absent a plain text box. It DRAWS, it does
82
+ * not validate — the answer door still enforces `type`, `pattern` and `format`.
83
+ * When present it OUTRANKS `format` for the control. A value outside the set is
84
+ * read as absent (the server ask door is the authority that refuses it).
85
+ */
86
+ readonly inputMode?: FormInputMode;
87
+ /**
88
+ * The CONTROL to draw for this property in place of its shape's default — a
89
+ * platform keyword (see {@link FormControl}). `chips` draws a `string`-with-`enum`
90
+ * or an `array` of such strings as a chip grid; `textarea` draws a `string` as a
91
+ * multi-line text control. It DRAWS, it does not validate — the answer door still
92
+ * enforces the property's `type`, `enum`, `maxLength` and the rest. A value outside
93
+ * the set is read as absent (the server ask door is the authority that refuses it).
94
+ */
95
+ readonly control?: FormControl;
60
96
  /**
61
97
  * Platform date-constraint keys on a `string`/`date` (or `date-time`) property. They
62
98
  * are NOT the JSON-Schema numeric keywords (which are inert on a string): `minDate`/