@maxhealth.tech/prefab 0.3.11 → 0.3.13

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 (54) hide show
  1. package/CHANGELOG.md +25 -3
  2. package/dist/a2ui/catalog.js +1 -1
  3. package/dist/a2ui/catalog.js.map +1 -1
  4. package/dist/a2ui.min.js +1 -1
  5. package/dist/auto/comparison.d.ts.map +1 -1
  6. package/dist/auto/comparison.js +1 -7
  7. package/dist/auto/comparison.js.map +1 -1
  8. package/dist/auto/form.d.ts.map +1 -1
  9. package/dist/auto/form.js +8 -9
  10. package/dist/auto/form.js.map +1 -1
  11. package/dist/auto/index.d.ts +2 -0
  12. package/dist/auto/index.d.ts.map +1 -1
  13. package/dist/auto/index.js +5 -11
  14. package/dist/auto/index.js.map +1 -1
  15. package/dist/auto/schema.d.ts +84 -0
  16. package/dist/auto/schema.d.ts.map +1 -0
  17. package/dist/auto/schema.js +227 -0
  18. package/dist/auto/schema.js.map +1 -0
  19. package/dist/components/form/index.d.ts +7 -3
  20. package/dist/components/form/index.d.ts.map +1 -1
  21. package/dist/components/form/index.js +8 -3
  22. package/dist/components/form/index.js.map +1 -1
  23. package/dist/core/component.d.ts +11 -1
  24. package/dist/core/component.d.ts.map +1 -1
  25. package/dist/core/component.js +4 -1
  26. package/dist/core/component.js.map +1 -1
  27. package/dist/core/humanize.d.ts +20 -0
  28. package/dist/core/humanize.d.ts.map +1 -0
  29. package/dist/core/humanize.js +28 -0
  30. package/dist/core/humanize.js.map +1 -0
  31. package/dist/core/index.d.ts +1 -0
  32. package/dist/core/index.d.ts.map +1 -1
  33. package/dist/core/index.js +1 -0
  34. package/dist/core/index.js.map +1 -1
  35. package/dist/core/version.d.ts +1 -1
  36. package/dist/core/version.js +1 -1
  37. package/dist/index.d.ts +2 -0
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +1 -0
  40. package/dist/index.js.map +1 -1
  41. package/dist/renderer/components/choice.d.ts +10 -0
  42. package/dist/renderer/components/choice.d.ts.map +1 -0
  43. package/dist/renderer/components/choice.js +261 -0
  44. package/dist/renderer/components/choice.js.map +1 -0
  45. package/dist/renderer/components/form.d.ts +24 -1
  46. package/dist/renderer/components/form.d.ts.map +1 -1
  47. package/dist/renderer/components/form.js +36 -239
  48. package/dist/renderer/components/form.js.map +1 -1
  49. package/dist/renderer/components/index.d.ts.map +1 -1
  50. package/dist/renderer/components/index.js +2 -0
  51. package/dist/renderer/components/index.js.map +1 -1
  52. package/dist/renderer.auto.min.js +10 -10
  53. package/dist/renderer.min.js +10 -10
  54. package/package.json +1 -1
@@ -0,0 +1,84 @@
1
+ /**
2
+ * fieldsFromJsonSchema — derive form fields from a JSON Schema.
3
+ *
4
+ * `formSchema()` in `src/mcp/input-required.ts` turns an `AutoFormField[]` into
5
+ * an elicitation schema. This is the other direction, and it is the one a server
6
+ * usually needs: every MCP tool already declares an `inputSchema`, every REST
7
+ * route already declares a request body, and both are JSON Schema. Handing that
8
+ * schema here produces the field list `autoForm()` renders, so a tool's own
9
+ * input contract draws its own form with no second description of the fields.
10
+ *
11
+ * Only what a flat form can honestly ask for is emitted. A nested object, an
12
+ * array of objects, or a branch with no primitive type is skipped rather than
13
+ * rendered as a control that cannot round-trip — the same rule `autoTable`
14
+ * applies to nested columns.
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * import { autoForm, fieldsFromJsonSchema } from '@maxhealth.tech/prefab'
19
+ *
20
+ * const fields = fieldsFromJsonSchema({
21
+ * type: 'object',
22
+ * required: ['email'],
23
+ * properties: {
24
+ * email: { type: 'string', format: 'email', title: 'Email' },
25
+ * plan: { type: 'string', enum: ['pro', 'team'] },
26
+ * seats: { type: 'integer', minimum: 1, maximum: 50 },
27
+ * },
28
+ * })
29
+ *
30
+ * autoForm(fields, 'create_account', { title: 'New account' })
31
+ * ```
32
+ */
33
+ import type { AutoFormField } from './form.js';
34
+ /**
35
+ * The JSON Schema keywords a form field can express, read structurally.
36
+ *
37
+ * Deliberately not a full JSON Schema type: this reads schemas from anywhere
38
+ * (TypeBox, Zod, a hand-written spec, an OpenAPI document) and only the
39
+ * keywords below survive the crossing into a control.
40
+ */
41
+ export interface JsonSchemaNode {
42
+ type?: string | string[];
43
+ format?: string;
44
+ title?: string;
45
+ description?: string;
46
+ enum?: unknown[];
47
+ const?: unknown;
48
+ default?: unknown;
49
+ properties?: Record<string, JsonSchemaNode>;
50
+ required?: string[];
51
+ items?: JsonSchemaNode;
52
+ anyOf?: JsonSchemaNode[];
53
+ oneOf?: JsonSchemaNode[];
54
+ minimum?: number;
55
+ maximum?: number;
56
+ minLength?: number;
57
+ maxLength?: number;
58
+ minItems?: number;
59
+ maxItems?: number;
60
+ readOnly?: boolean;
61
+ }
62
+ export interface FieldsFromJsonSchemaOptions {
63
+ /** Property names to leave out (server-managed keys, path params already known). */
64
+ exclude?: string[];
65
+ /**
66
+ * Property names to keep, in this order. Anything else is dropped, and a name
67
+ * the schema does not declare is ignored rather than invented.
68
+ */
69
+ include?: string[];
70
+ /**
71
+ * Emit a field for every property, including ones already marked
72
+ * `readOnly: true` in the schema. @default false
73
+ */
74
+ includeReadOnly?: boolean;
75
+ }
76
+ /**
77
+ * Derive `autoForm` fields from a JSON Schema object.
78
+ *
79
+ * Returns an empty list for anything that is not an object schema with
80
+ * properties, so a caller can hand over whatever a route declared and branch on
81
+ * the result rather than pre-checking the shape.
82
+ */
83
+ export declare function fieldsFromJsonSchema(schema: unknown, options?: FieldsFromJsonSchemaOptions): AutoFormField[];
84
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/auto/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAkB,MAAM,WAAW,CAAA;AAI9D;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACxB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAA;IAChB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IAC3C,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,KAAK,CAAC,EAAE,cAAc,CAAA;IACtB,KAAK,CAAC,EAAE,cAAc,EAAE,CAAA;IACxB,KAAK,CAAC,EAAE,cAAc,EAAE,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,2BAA2B;IAC1C,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAkLD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,2BAA2B,GACpC,aAAa,EAAE,CAqBjB"}
@@ -0,0 +1,227 @@
1
+ /**
2
+ * fieldsFromJsonSchema — derive form fields from a JSON Schema.
3
+ *
4
+ * `formSchema()` in `src/mcp/input-required.ts` turns an `AutoFormField[]` into
5
+ * an elicitation schema. This is the other direction, and it is the one a server
6
+ * usually needs: every MCP tool already declares an `inputSchema`, every REST
7
+ * route already declares a request body, and both are JSON Schema. Handing that
8
+ * schema here produces the field list `autoForm()` renders, so a tool's own
9
+ * input contract draws its own form with no second description of the fields.
10
+ *
11
+ * Only what a flat form can honestly ask for is emitted. A nested object, an
12
+ * array of objects, or a branch with no primitive type is skipped rather than
13
+ * rendered as a control that cannot round-trip — the same rule `autoTable`
14
+ * applies to nested columns.
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * import { autoForm, fieldsFromJsonSchema } from '@maxhealth.tech/prefab'
19
+ *
20
+ * const fields = fieldsFromJsonSchema({
21
+ * type: 'object',
22
+ * required: ['email'],
23
+ * properties: {
24
+ * email: { type: 'string', format: 'email', title: 'Email' },
25
+ * plan: { type: 'string', enum: ['pro', 'team'] },
26
+ * seats: { type: 'integer', minimum: 1, maximum: 50 },
27
+ * },
28
+ * })
29
+ *
30
+ * autoForm(fields, 'create_account', { title: 'New account' })
31
+ * ```
32
+ */
33
+ // ── Type mapping ─────────────────────────────────────────────────────────────
34
+ /**
35
+ * JSON Schema `format` → the field `type` that renders it.
36
+ *
37
+ * These land on `<input type>` verbatim, so every value here is a real HTML
38
+ * input type; `date-time` becomes `datetime-local` because that is the control
39
+ * a browser has. `password` is not a JSON Schema format, but TypeBox and
40
+ * OpenAPI both emit it and a password field is worth honouring.
41
+ */
42
+ const FORMAT_TYPE = {
43
+ email: 'email',
44
+ uri: 'url',
45
+ url: 'url',
46
+ 'uri-reference': 'url',
47
+ hostname: 'url',
48
+ date: 'date',
49
+ 'date-time': 'datetime-local',
50
+ time: 'time',
51
+ password: 'password',
52
+ tel: 'tel',
53
+ phone: 'tel',
54
+ };
55
+ /**
56
+ * Read an untyped value as a schema node, or nothing when it is not one.
57
+ * Schemas arrive from callers as `unknown`, and every recursive read (a
58
+ * property, `items`, a union branch) has to survive whatever is actually there.
59
+ */
60
+ function asNode(value) {
61
+ return value != null && typeof value === 'object' && !Array.isArray(value) ? value : undefined;
62
+ }
63
+ /** The `properties` map, read the same defensive way. */
64
+ function asRecord(value) {
65
+ const node = asNode(value);
66
+ return node;
67
+ }
68
+ /** Types a flat form can ask for. Everything else is structure, not a value. */
69
+ const PRIMITIVE_TYPES = new Set(['string', 'number', 'integer', 'boolean']);
70
+ /**
71
+ * Resolve the branch of a union that a single control should represent.
72
+ *
73
+ * Two unions are worth resolving rather than skipping. A nullable field
74
+ * (`type: ['string','null']`, or an `anyOf` with a null branch) is one optional
75
+ * control. And a coercion union — Elysia compiles `t.Integer()` to
76
+ * `anyOf: [{ type: 'string', format: 'integer' }, { type: 'integer' }]` so a
77
+ * query string can carry a number — describes one number field written twice;
78
+ * the non-string branch is the one that says what the value means.
79
+ *
80
+ * A branch carrying an `enum` wins over both: it is the most specific thing
81
+ * said about the value, and it renders as a Select.
82
+ */
83
+ function resolveNode(node) {
84
+ const union = node.anyOf ?? node.oneOf;
85
+ if (union == null || union.length === 0) {
86
+ if (Array.isArray(node.type)) {
87
+ const type = node.type.find(t => t !== 'null');
88
+ return type == null ? undefined : { ...node, type };
89
+ }
90
+ return node;
91
+ }
92
+ const branches = union
93
+ .map(resolveNode)
94
+ .filter((b) => b != null && b.type !== 'null');
95
+ if (branches.length === 0)
96
+ return undefined;
97
+ const enumBranch = branches.find(b => b.enum != null || b.items?.enum != null);
98
+ const typedBranch = branches.find(b => b.type != null && b.type !== 'string');
99
+ const resolved = enumBranch ?? typedBranch ?? branches[0];
100
+ // Keep the annotations from the union itself: a coercion union carries its
101
+ // title and description on the parent, not on the branch that won.
102
+ return {
103
+ ...resolved,
104
+ ...(node.title != null && resolved.title == null && { title: node.title }),
105
+ ...(node.description != null && resolved.description == null && { description: node.description }),
106
+ ...(node.default !== undefined && resolved.default === undefined && { default: node.default }),
107
+ };
108
+ }
109
+ /** Enum values as form options. Non-string values are stringified, as a control submits text. */
110
+ function toOptions(values) {
111
+ return values
112
+ .filter(v => v !== null && typeof v !== 'object')
113
+ .map(v => ({ value: String(v) }));
114
+ }
115
+ /** A default is only carried across when the control can actually hold it. */
116
+ function toDefault(value) {
117
+ if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean')
118
+ return value;
119
+ if (Array.isArray(value) && value.every(v => typeof v === 'string'))
120
+ return value;
121
+ return undefined;
122
+ }
123
+ /**
124
+ * Build one field, or undefined when the property is not a value a flat form
125
+ * can ask for (a nested object, an array of objects, an empty union).
126
+ */
127
+ function toField(name, raw, required) {
128
+ const node = resolveNode(raw);
129
+ if (node == null)
130
+ return undefined;
131
+ const common = {
132
+ name,
133
+ ...(node.title != null && { label: node.title }),
134
+ ...(node.description != null && { description: node.description }),
135
+ ...(required && { required: true }),
136
+ };
137
+ // A `const` is an enum of one — the schema saying the value is fixed.
138
+ const enumValues = node.enum ?? (node.const !== undefined ? [node.const] : undefined);
139
+ if (enumValues != null) {
140
+ const options = toOptions(enumValues);
141
+ if (options.length === 0)
142
+ return undefined;
143
+ const fallback = toDefault(node.default);
144
+ return {
145
+ ...common,
146
+ options,
147
+ ...(typeof fallback === 'string' && { default: fallback }),
148
+ };
149
+ }
150
+ if (node.type === 'array') {
151
+ // Only a multi-choice list survives: an array of free-form values has no
152
+ // single control, and an array of objects is a table, not a field.
153
+ const items = node.items == null ? undefined : resolveNode(node.items);
154
+ if (items?.enum == null)
155
+ return undefined;
156
+ const options = toOptions(items.enum);
157
+ if (options.length === 0)
158
+ return undefined;
159
+ const fallback = toDefault(node.default);
160
+ return {
161
+ ...common,
162
+ options,
163
+ multiple: true,
164
+ ...(node.minItems != null && { min: node.minItems }),
165
+ ...(node.maxItems != null && { max: node.maxItems }),
166
+ ...(Array.isArray(fallback) && { default: fallback }),
167
+ };
168
+ }
169
+ if (typeof node.type !== 'string' || !PRIMITIVE_TYPES.has(node.type))
170
+ return undefined;
171
+ const fallback = toDefault(node.default);
172
+ if (node.type === 'boolean') {
173
+ return { ...common, type: 'checkbox', ...(typeof fallback === 'boolean' && { default: fallback }) };
174
+ }
175
+ if (node.type === 'number' || node.type === 'integer') {
176
+ // Both render as `type="number"`: `integer` is not an input type, and a
177
+ // control claiming one falls back to free text in every browser.
178
+ return {
179
+ ...common,
180
+ type: 'number',
181
+ ...(node.minimum != null && { min: node.minimum }),
182
+ ...(node.maximum != null && { max: node.maximum }),
183
+ ...(typeof fallback === 'number' && { default: fallback }),
184
+ };
185
+ }
186
+ const type = node.format != null ? FORMAT_TYPE[node.format] : undefined;
187
+ return {
188
+ ...common,
189
+ type: type ?? 'text',
190
+ ...(node.minLength != null && { min: node.minLength }),
191
+ ...(node.maxLength != null && { max: node.maxLength }),
192
+ ...(typeof fallback === 'string' && { default: fallback }),
193
+ };
194
+ }
195
+ // ── fieldsFromJsonSchema() ───────────────────────────────────────────────────
196
+ /**
197
+ * Derive `autoForm` fields from a JSON Schema object.
198
+ *
199
+ * Returns an empty list for anything that is not an object schema with
200
+ * properties, so a caller can hand over whatever a route declared and branch on
201
+ * the result rather than pre-checking the shape.
202
+ */
203
+ export function fieldsFromJsonSchema(schema, options) {
204
+ const root = asNode(schema);
205
+ const resolved = root == null ? undefined : resolveNode(root);
206
+ const properties = asRecord(resolved?.properties);
207
+ if (properties == null)
208
+ return [];
209
+ const required = new Set(Array.isArray(resolved?.required) ? resolved.required : []);
210
+ const exclude = new Set(options?.exclude ?? []);
211
+ const names = options?.include ?? Object.keys(properties);
212
+ const fields = [];
213
+ for (const name of names) {
214
+ const property = asNode(properties[name]);
215
+ if (property == null)
216
+ continue;
217
+ if (exclude.has(name))
218
+ continue;
219
+ if (property.readOnly === true && options?.includeReadOnly !== true)
220
+ continue;
221
+ const field = toField(name, property, required.has(name));
222
+ if (field != null)
223
+ fields.push(field);
224
+ }
225
+ return fields;
226
+ }
227
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/auto/schema.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,6 @@ export declare function Form(props: FormProps): ContainerComponent;
11
11
  export interface InputProps extends StatefulProps {
12
12
  placeholder?: string;
13
13
  inputType?: string;
14
- required?: boolean;
15
14
  }
16
15
  export declare function Input(props: InputProps): StatefulComponent;
17
16
  export interface TextareaProps extends StatefulProps {
@@ -31,9 +30,14 @@ export interface ButtonProps extends ComponentProps {
31
30
  }
32
31
  export declare function Button(label: RxStr, props?: ButtonProps): Component;
33
32
  export declare function ButtonGroup(props?: ContainerProps): ContainerComponent;
34
- export declare function Select(props: StatefulProps & {
33
+ export interface SelectProps extends StatefulProps {
34
+ /** Shown until a choice is made. */
35
+ placeholder?: string;
36
+ /** Accept several choices. Submits an array under `name`. */
37
+ multiple?: boolean;
35
38
  children?: Component[];
36
- }): ContainerComponent;
39
+ }
40
+ export declare function Select(props: SelectProps): ContainerComponent;
37
41
  export declare function SelectOption(value: string, label?: string, props?: ComponentProps): Component;
38
42
  export interface CheckboxProps extends StatefulProps {
39
43
  checked?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/form/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/form/index.ts"],"names":[],"mappings":"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"}
@@ -32,7 +32,9 @@ export function Textarea(props) {
32
32
  ...(props.placeholder && { placeholder: props.placeholder }),
33
33
  ...(props.rows !== undefined && { rows: props.rows }),
34
34
  disabled: false,
35
- required: false,
35
+ // Defaulted rather than omitted: the Python reference emits it on every
36
+ // Textarea, and the wire-parity goldens are compared field for field.
37
+ required: props.required ?? false,
36
38
  });
37
39
  return c;
38
40
  }
@@ -58,10 +60,13 @@ export function Button(label, props) {
58
60
  export function ButtonGroup(props) {
59
61
  return new ContainerComponent('ButtonGroup', props);
60
62
  }
61
- // ── Select + SelectOption ────────────────────────────────────────────────────
62
63
  export function Select(props) {
63
64
  const c = new ContainerComponent('Select', props);
64
- c.getProps = () => statefulProps(props);
65
+ c.getProps = () => ({
66
+ ...statefulProps(props),
67
+ ...(props.placeholder != null && { placeholder: props.placeholder }),
68
+ ...(props.multiple === true && { multiple: true }),
69
+ });
65
70
  return c;
66
71
  }
67
72
  export function SelectOption(value, label, props) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/form/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/form/index.ts"],"names":[],"mappings":"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"}
@@ -61,13 +61,22 @@ export interface StatefulProps extends ComponentProps {
61
61
  onChange?: Action | Action[];
62
62
  /** Visible field label. Rendered by every stateful control. */
63
63
  label?: RxStr;
64
+ /**
65
+ * The field must be filled before the form is submitted.
66
+ *
67
+ * Lives here rather than on `InputProps` because it is the control's own
68
+ * constraint, not the text input's: a Select or a RadioGroup states it the
69
+ * same way, the renderer marks it the same way, and the A2UI emitter turns it
70
+ * into the same `required` check.
71
+ */
72
+ required?: boolean;
64
73
  }
65
74
  /**
66
75
  * Wire shape shared by every stateful control.
67
76
  *
68
77
  * Select, RadioGroup and Combobox are containers rather than StatefulComponents,
69
78
  * so they cannot inherit it; they call this instead of restating it, which is how
70
- * `label` went missing on them.
79
+ * `label`, and after it `required`, went missing on them.
71
80
  */
72
81
  export declare function statefulProps(props: StatefulProps): Record<string, unknown>;
73
82
  /**
@@ -79,6 +88,7 @@ export declare class StatefulComponent extends Component {
79
88
  value?: unknown;
80
89
  onChange?: Action | Action[];
81
90
  label?: RxStr;
91
+ required?: boolean;
82
92
  constructor(type: string, props: StatefulProps);
83
93
  getProps(): Record<string, unknown>;
84
94
  }
@@ -1 +1 @@
1
- {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../src/core/component.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AAI9C,+EAA+E;AAC/E,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,EAAE,GAAG,GAAG,CAAA;AAErC,gCAAgC;AAChC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAA;IACnC,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAA;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAID,kEAAkE;AAClE,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,8DAA8D;AAC9D,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wCAAwC;AACxC,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAiBlD;AAID,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,KAAK,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC3B,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAC5B;AAED,qBAAa,SAAS;IACpB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,KAAK,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC3B,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;gBAEf,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,cAAc;IAQhD,6DAA6D;IAC7D,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAInC,MAAM,IAAI,aAAa;CA2BxB;AAID,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAA;CACvB;AAED,qBAAa,kBAAmB,SAAQ,SAAS;IAC/C,QAAQ,EAAE,SAAS,EAAE,CAAA;gBAET,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,cAAc;IAKhD,MAAM,IAAI,aAAa;CAOxB;AAID,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC5B,+DAA+D;IAC/D,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAW3E;AAED;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,SAAS;IAC9C,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC5B,KAAK,CAAC,EAAE,KAAK,CAAA;gBAED,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa;IAQ9C,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAGpC"}
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../src/core/component.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AAI9C,+EAA+E;AAC/E,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,EAAE,GAAG,GAAG,CAAA;AAErC,gCAAgC;AAChC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAA;IACnC,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAA;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAID,kEAAkE;AAClE,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,8DAA8D;AAC9D,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wCAAwC;AACxC,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAiBlD;AAID,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,KAAK,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC3B,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAC5B;AAED,qBAAa,SAAS;IACpB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,KAAK,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC3B,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;gBAEf,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,cAAc;IAQhD,6DAA6D;IAC7D,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAInC,MAAM,IAAI,aAAa;CA2BxB;AAID,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAA;CACvB;AAED,qBAAa,kBAAmB,SAAQ,SAAS;IAC/C,QAAQ,EAAE,SAAS,EAAE,CAAA;gBAET,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,cAAc;IAKhD,MAAM,IAAI,aAAa;CAOxB;AAID,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC5B,+DAA+D;IAC/D,KAAK,CAAC,EAAE,KAAK,CAAA;IACb;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAY3E;AAED;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,SAAS;IAC9C,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC5B,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;gBAEN,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa;IAS9C,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAGpC"}
@@ -110,13 +110,14 @@ export class ContainerComponent extends Component {
110
110
  *
111
111
  * Select, RadioGroup and Combobox are containers rather than StatefulComponents,
112
112
  * so they cannot inherit it; they call this instead of restating it, which is how
113
- * `label` went missing on them.
113
+ * `label`, and after it `required`, went missing on them.
114
114
  */
115
115
  export function statefulProps(props) {
116
116
  return {
117
117
  name: props.name,
118
118
  ...(props.value !== undefined && { value: props.value }),
119
119
  ...(props.label !== undefined && { label: props.label }),
120
+ ...(props.required !== undefined && { required: props.required }),
120
121
  ...(props.onChange && {
121
122
  onChange: Array.isArray(props.onChange)
122
123
  ? props.onChange.map(a => a.toJSON())
@@ -133,12 +134,14 @@ export class StatefulComponent extends Component {
133
134
  value;
134
135
  onChange;
135
136
  label;
137
+ required;
136
138
  constructor(type, props) {
137
139
  super(type, props);
138
140
  this.name = props.name;
139
141
  this.value = props.value;
140
142
  this.onChange = props.onChange;
141
143
  this.label = props.label;
144
+ this.required = props.required;
142
145
  }
143
146
  getProps() {
144
147
  return statefulProps(this);
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sourceRoot":"","sources":["../../src/core/component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"component.js","sourceRoot":"","sources":["../../src/core/component.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Key humanization — turn a data key into a label a person reads.
3
+ *
4
+ * Four copies of this had accumulated (`autoDetail`/`autoTable`, `autoForm`,
5
+ * `autoComparison`, and now the schema converter), three of them byte-identical.
6
+ * They are one function with one optional extra rule, so they live here.
7
+ */
8
+ /**
9
+ * `firstName` / `first_name` / `first-name` → `First name`.
10
+ *
11
+ * Only the first word is capitalized: these are labels in a sentence-case UI,
12
+ * not headings.
13
+ */
14
+ export declare function humanizeKey(key: string): string;
15
+ /**
16
+ * {@link humanizeKey} plus the `id` → `ID` rule, for table headers and detail
17
+ * rows where `User Id` reads as a typo.
18
+ */
19
+ export declare function humanizeColumnKey(key: string): string;
20
+ //# sourceMappingURL=humanize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"humanize.d.ts","sourceRoot":"","sources":["../../src/core/humanize.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAM/C;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAErD"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Key humanization — turn a data key into a label a person reads.
3
+ *
4
+ * Four copies of this had accumulated (`autoDetail`/`autoTable`, `autoForm`,
5
+ * `autoComparison`, and now the schema converter), three of them byte-identical.
6
+ * They are one function with one optional extra rule, so they live here.
7
+ */
8
+ /**
9
+ * `firstName` / `first_name` / `first-name` → `First name`.
10
+ *
11
+ * Only the first word is capitalized: these are labels in a sentence-case UI,
12
+ * not headings.
13
+ */
14
+ export function humanizeKey(key) {
15
+ return key
16
+ .replace(/([A-Z])/g, ' $1')
17
+ .replace(/[_-]/g, ' ')
18
+ .trim()
19
+ .replace(/^\w/, c => c.toUpperCase());
20
+ }
21
+ /**
22
+ * {@link humanizeKey} plus the `id` → `ID` rule, for table headers and detail
23
+ * rows where `User Id` reads as a typo.
24
+ */
25
+ export function humanizeColumnKey(key) {
26
+ return humanizeKey(key).replace(/\bid\b/gi, 'ID');
27
+ }
28
+ //# sourceMappingURL=humanize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"humanize.js","sourceRoot":"","sources":["../../src/core/humanize.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,OAAO,GAAG;SACP,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC;SAC1B,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,IAAI,EAAE;SACN,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;AACzC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;AACnD,CAAC"}
@@ -1,6 +1,7 @@
1
1
  export { Component, ContainerComponent, StatefulComponent, serializeValue, toCamelCase, toSnakeCase } from './component.js';
2
2
  export type { ComponentJSON, ComponentProps, ContainerProps, StatefulProps, RxStr } from './component.js';
3
3
  export { stringifyValue } from './stringify.js';
4
+ export { humanizeKey, humanizeColumnKey } from './humanize.js';
4
5
  export { validateWireFormat, isValidWireFormat } from './validate.js';
5
6
  export type { ValidationError, ValidationResult } from './validate.js';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC3H,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACzG,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACrE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC3H,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACzG,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACrE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA"}
@@ -1,4 +1,5 @@
1
1
  export { Component, ContainerComponent, StatefulComponent, serializeValue, toCamelCase, toSnakeCase } from './component.js';
2
2
  export { stringifyValue } from './stringify.js';
3
+ export { humanizeKey, humanizeColumnKey } from './humanize.js';
3
4
  export { validateWireFormat, isValidWireFormat } from './validate.js';
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE3H,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE3H,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA"}