@petrarca/sonnet-forms 0.7.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/dist/index.d.ts +352 -20
- package/dist/index.js +2762 -413
- package/dist/index.js.map +1 -1
- package/dist/widget-options.d.ts +2 -1
- package/dist/widget-options.js +74 -1
- package/dist/widget-options.js.map +1 -1
- package/package.json +8 -8
package/dist/widget-options.d.ts
CHANGED
|
@@ -58,4 +58,5 @@ declare function optionDefsToSchema(defs: WidgetOptionDef[]): JsonSchema;
|
|
|
58
58
|
*/
|
|
59
59
|
declare const WIDGET_OPTION_DEFS: Record<string, WidgetOptionDef[]>;
|
|
60
60
|
|
|
61
|
-
export { WIDGET_OPTION_DEFS,
|
|
61
|
+
export { WIDGET_OPTION_DEFS, optionDefsToSchema };
|
|
62
|
+
export type { WidgetOptionDef, WidgetOptionType };
|
package/dist/widget-options.js
CHANGED
|
@@ -69,6 +69,19 @@ var selectOptions = [
|
|
|
69
69
|
help: "Badge color for multi-select values."
|
|
70
70
|
}
|
|
71
71
|
];
|
|
72
|
+
var choiceListOptions = [
|
|
73
|
+
{
|
|
74
|
+
key: "orientation",
|
|
75
|
+
label: "Orientation",
|
|
76
|
+
type: "enum",
|
|
77
|
+
enumValues: ["vertical", "horizontal"],
|
|
78
|
+
default: "vertical"
|
|
79
|
+
},
|
|
80
|
+
{ key: "compact", label: "Compact", type: "boolean" }
|
|
81
|
+
];
|
|
82
|
+
var compactOnlyOptions = [
|
|
83
|
+
{ key: "compact", label: "Compact", type: "boolean" }
|
|
84
|
+
];
|
|
72
85
|
var tagsOptions = [
|
|
73
86
|
{ key: "maxTags", label: "Max tags", type: "number" },
|
|
74
87
|
{
|
|
@@ -97,6 +110,54 @@ var quantityOptions = [
|
|
|
97
110
|
{ key: "precision", label: "Precision", type: "number" },
|
|
98
111
|
{ key: "step", label: "Step", type: "number" }
|
|
99
112
|
];
|
|
113
|
+
var codeableConceptOptions = [
|
|
114
|
+
{
|
|
115
|
+
key: "text",
|
|
116
|
+
label: "Text",
|
|
117
|
+
type: "boolean",
|
|
118
|
+
help: "Offer a text beside the codes. Default: when the first list is extensible."
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
key: "mode",
|
|
122
|
+
label: "Mode",
|
|
123
|
+
type: "enum",
|
|
124
|
+
enumValues: ["list", "search"],
|
|
125
|
+
help: "The whole list, or a search, for every row. Default: decided by each list's size."
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
key: "minChars",
|
|
129
|
+
label: "Minimum characters",
|
|
130
|
+
type: "number",
|
|
131
|
+
help: "The characters a search waits for. Default: 1."
|
|
132
|
+
}
|
|
133
|
+
];
|
|
134
|
+
var codedValueOptions = [
|
|
135
|
+
{
|
|
136
|
+
key: "mode",
|
|
137
|
+
label: "Mode",
|
|
138
|
+
type: "enum",
|
|
139
|
+
enumValues: ["list", "search"],
|
|
140
|
+
help: "The whole list, or a search. Default: decided by the list's size."
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
key: "minChars",
|
|
144
|
+
label: "Minimum characters",
|
|
145
|
+
type: "number",
|
|
146
|
+
help: "The characters a search waits for. Default: 1."
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
key: "store",
|
|
150
|
+
label: "Store",
|
|
151
|
+
type: "string",
|
|
152
|
+
help: "The hit's property a code-only field stores. Default: code."
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
key: "keep",
|
|
156
|
+
label: "Keep",
|
|
157
|
+
type: "string[]",
|
|
158
|
+
help: "Properties of a hit a coding keeps beside its own, as the terminology service returns them."
|
|
159
|
+
}
|
|
160
|
+
];
|
|
100
161
|
var dateOptions = [
|
|
101
162
|
{
|
|
102
163
|
key: "precision",
|
|
@@ -207,11 +268,17 @@ var WIDGET_OPTION_DEFS = {
|
|
|
207
268
|
ObjectWidget: objectOptions,
|
|
208
269
|
ArrayWidget: arrayOptions,
|
|
209
270
|
QuantityWidget: quantityOptions,
|
|
271
|
+
CodedValueWidget: codedValueOptions,
|
|
272
|
+
CodeableConceptWidget: codeableConceptOptions,
|
|
210
273
|
DateWidget: dateOptions,
|
|
211
274
|
TimeWidget: timeOptions,
|
|
212
275
|
DateTimeWidget: dateTimeOptions,
|
|
213
276
|
DisplayWidget: [],
|
|
214
277
|
OneOfWidget: oneOfOptions,
|
|
278
|
+
RadioWidget: choiceListOptions,
|
|
279
|
+
CheckboxGroupWidget: choiceListOptions,
|
|
280
|
+
ChoiceWithTextWidget: compactOnlyOptions,
|
|
281
|
+
AbsentReasonsWidget: compactOnlyOptions,
|
|
215
282
|
// Lowercase aliases
|
|
216
283
|
text: textInputOptions,
|
|
217
284
|
textarea: textareaOptions,
|
|
@@ -224,11 +291,17 @@ var WIDGET_OPTION_DEFS = {
|
|
|
224
291
|
object: objectOptions,
|
|
225
292
|
array: arrayOptions,
|
|
226
293
|
quantity: quantityOptions,
|
|
294
|
+
"coded-value": codedValueOptions,
|
|
295
|
+
"codeable-concept": codeableConceptOptions,
|
|
227
296
|
date: dateOptions,
|
|
228
297
|
time: timeOptions,
|
|
229
298
|
"date-time": dateTimeOptions,
|
|
230
299
|
display: [],
|
|
231
|
-
"one-of": oneOfOptions
|
|
300
|
+
"one-of": oneOfOptions,
|
|
301
|
+
radio: choiceListOptions,
|
|
302
|
+
"checkbox-group": choiceListOptions,
|
|
303
|
+
"choice-with-text": compactOnlyOptions,
|
|
304
|
+
"absent-reasons": compactOnlyOptions
|
|
232
305
|
};
|
|
233
306
|
export {
|
|
234
307
|
WIDGET_OPTION_DEFS,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/widgets/widgetOptions.ts"],"sourcesContent":["/**\n * Widget option metadata -- design-time descriptors for each widget's\n * `x-ui-options`.\n *\n * This module is authoring metadata for a schema designer, NOT runtime code.\n * It is intentionally kept out of the widget component files and the main\n * package entry so that form-rendering consumers never pull it into their\n * bundle. It is exported only from the `@petrarca/sonnet-forms/widget-options`\n * subpath.\n *\n * A `WidgetOptionDef` is our ergonomic, widget-specific descriptor; a designer\n * translates a list of them into a plain `JsonSchema` (via `optionDefsToSchema`)\n * and renders that with `JsonSchemaFormRenderer` to produce the options editor.\n *\n * Options that are *derived* rather than chosen are deliberately omitted:\n * - `multiple` (SelectWidget) is inferred from `type: \"array\"`.\n * - `enumNames` is owned by a dedicated enum editor (seeded from `enum`).\n *\n * The declared keys are kept in sync with what each widget actually reads via a\n * drift-guard test (widgetOptions.test.ts).\n */\n\nimport type {\n JsonSchema,\n JsonSchemaProperty,\n} from \"@petrarca/sonnet-core/schema\";\n\n/** Value kinds a widget option can take. */\nexport type WidgetOptionType =\n | \"string\"\n | \"number\"\n | \"boolean\"\n | \"enum\"\n | \"string[]\"\n | \"json\";\n\n/**\n * A single widget option descriptor.\n *\n * `type: \"json\"` is the escape hatch for irregular options that do not fit the\n * simple set (e.g. a `string | string[]` union); a designer renders it as a raw\n * JSON editor for that one option.\n */\nexport interface WidgetOptionDef {\n /** The x-ui-options key. */\n key: string;\n /** Human label for the designer's options editor. */\n label: string;\n /** Value kind. */\n type: WidgetOptionType;\n /** Default value (advisory; shown in the generated editor). */\n default?: unknown;\n /** Allowed values when `type` is \"enum\". */\n enumValues?: string[];\n /** Optional help text shown under the field. */\n help?: string;\n}\n\n/** Map a WidgetOptionDef to its JsonSchemaProperty. */\nfunction defToProperty(def: WidgetOptionDef): JsonSchemaProperty {\n const base: JsonSchemaProperty = {\n title: def.label,\n description: def.help,\n default: def.default,\n };\n switch (def.type) {\n case \"string\":\n return { ...base, type: \"string\" };\n case \"number\":\n return { ...base, type: \"number\" };\n case \"boolean\":\n return { ...base, type: \"boolean\" };\n case \"enum\":\n return { ...base, type: \"string\", enum: def.enumValues ?? [] };\n case \"string[]\":\n return {\n ...base,\n type: \"array\",\n items: { type: \"string\" },\n \"x-ui-widget\": \"tags\",\n };\n case \"json\":\n // Render as a raw JSON editor; the value shape is open.\n return { ...base, type: \"object\", \"x-ui-widget\": \"json-editor\" };\n }\n}\n\n/**\n * Translate a list of widget option descriptors into a plain JsonSchema that a\n * designer can render with JsonSchemaFormRenderer. The result is an object\n * schema whose properties are the options.\n */\nexport function optionDefsToSchema(defs: WidgetOptionDef[]): JsonSchema {\n const properties: Record<string, JsonSchemaProperty> = {};\n for (const def of defs) {\n properties[def.key] = defToProperty(def);\n }\n return { title: \"\", type: \"object\", properties };\n}\n\n// Per-widget descriptors. Keys mirror what each widget reads from x-ui-options.\n\nconst textInputOptions: WidgetOptionDef[] = [\n {\n key: \"inputType\",\n label: \"Input type\",\n type: \"string\",\n help: \"HTML input type override (e.g. email, url, tel).\",\n },\n { key: \"compact\", label: \"Compact\", type: \"boolean\" },\n];\n\nconst textareaOptions: WidgetOptionDef[] = [\n { key: \"rows\", label: \"Rows\", type: \"number\", default: 3 },\n { key: \"minRows\", label: \"Min rows\", type: \"number\" },\n { key: \"autosize\", label: \"Autosize\", type: \"boolean\", default: true },\n];\n\nconst numberOptions: WidgetOptionDef[] = [\n { key: \"step\", label: \"Step\", type: \"number\" },\n { key: \"allowDecimal\", label: \"Allow decimal\", type: \"boolean\" },\n];\n\nconst checkboxOptions: WidgetOptionDef[] = [\n { key: \"compact\", label: \"Compact\", type: \"boolean\" },\n];\n\nconst selectOptions: WidgetOptionDef[] = [\n { key: \"clearable\", label: \"Clearable\", type: \"boolean\", default: true },\n { key: \"compact\", label: \"Compact\", type: \"boolean\" },\n {\n key: \"creatable\",\n label: \"Allow custom value\",\n type: \"boolean\",\n help: \"Let the user type and submit a value not in the predefined list (combobox mode).\",\n },\n {\n key: \"badgeColor\",\n label: \"Badge color\",\n type: \"string\",\n help: \"Badge color for multi-select values.\",\n },\n];\n\nconst tagsOptions: WidgetOptionDef[] = [\n { key: \"maxTags\", label: \"Max tags\", type: \"number\" },\n {\n key: \"splitKeys\",\n label: \"Split keys\",\n type: \"string[]\",\n help: \"Characters that commit a tag (e.g. comma, Enter).\",\n },\n];\n\nconst jsonEditorOptions: WidgetOptionDef[] = [\n { key: \"height\", label: \"Height\", type: \"string\", default: \"240px\" },\n];\n\nconst quantityOptions: WidgetOptionDef[] = [\n {\n key: \"units\",\n label: \"Units\",\n type: \"json\",\n help: \"Array of unit options ({ value, label }).\",\n },\n {\n key: \"unitPosition\",\n label: \"Unit position\",\n type: \"enum\",\n enumValues: [\"prefix\", \"suffix\"],\n },\n { key: \"precision\", label: \"Precision\", type: \"number\" },\n { key: \"step\", label: \"Step\", type: \"number\" },\n];\n\nconst dateOptions: WidgetOptionDef[] = [\n {\n key: \"precision\",\n label: \"Precision\",\n type: \"enum\",\n enumValues: [\"year\", \"month\", \"day\"],\n default: \"day\",\n help: \"Selection depth: year (YYYY), month (YYYY-MM), or day (YYYY-MM-DD).\",\n },\n {\n key: \"locale\",\n label: \"Locale\",\n type: \"string\",\n help: \"BCP-47 override (e.g. de-DE). Defaults to the app locale.\",\n },\n];\n\nconst timeOptions: WidgetOptionDef[] = [\n {\n key: \"granularity\",\n label: \"Granularity\",\n type: \"enum\",\n enumValues: [\"minute\", \"second\"],\n default: \"minute\",\n },\n];\n\nconst dateTimeOptions: WidgetOptionDef[] = [\n {\n key: \"granularity\",\n label: \"Granularity\",\n type: \"enum\",\n enumValues: [\"minute\", \"second\"],\n default: \"minute\",\n },\n {\n key: \"timeZone\",\n label: \"Timezone hint\",\n type: \"string\",\n help: \"IANA id (e.g. Europe/Berlin) shown as a hint; never applied to the value.\",\n },\n {\n key: \"locale\",\n label: \"Locale\",\n type: \"string\",\n help: \"BCP-47 override for the date part. Defaults to the app locale.\",\n },\n];\n\nconst objectOptions: WidgetOptionDef[] = [\n {\n key: \"variant\",\n label: \"Variant\",\n type: \"enum\",\n enumValues: [\"section\", \"card\", \"collapsible\", \"inline\", \"borderless\"],\n default: \"section\",\n },\n { key: \"defaultOpen\", label: \"Default open\", type: \"boolean\", default: true },\n];\n\nconst oneOfOptions: WidgetOptionDef[] = [\n {\n key: \"variant\",\n label: \"Container variant\",\n type: \"enum\",\n enumValues: [\"section\", \"card\", \"collapsible\", \"inline\", \"borderless\"],\n default: \"section\",\n },\n];\n\nconst arrayOptions: WidgetOptionDef[] = [\n {\n key: \"addLabel\",\n label: \"Add button label\",\n type: \"string\",\n default: \"Add item\",\n },\n {\n key: \"itemTitle\",\n label: \"Item title\",\n type: \"string\",\n help: \"Supports {index} placeholder.\",\n },\n { key: \"orderable\", label: \"Orderable\", type: \"boolean\" },\n { key: \"emptyMessage\", label: \"Empty message\", type: \"string\" },\n];\n\nconst entitySelectOptions: WidgetOptionDef[] = [\n {\n key: \"mode\",\n label: \"Mode\",\n type: \"enum\",\n enumValues: [\"eager\", \"typeahead\", \"explicit\"],\n },\n { key: \"minChars\", label: \"Min chars\", type: \"number\" },\n { key: \"endpoint\", label: \"REST endpoint\", type: \"string\" },\n { key: \"valueKey\", label: \"Value key\", type: \"string\", default: \"id\" },\n { key: \"labelKey\", label: \"Label key\", type: \"string\", default: \"name\" },\n { key: \"searchKey\", label: \"Search key\", type: \"string\" },\n { key: \"extraParams\", label: \"Extra params\", type: \"json\" },\n { key: \"query\", label: \"GraphQL query\", type: \"string\" },\n { key: \"dataPath\", label: \"GraphQL data path\", type: \"string\" },\n];\n\n/**\n * Built-in widget option descriptors, keyed by widget name (both canonical and\n * lowercase-alias names, matching DEFAULT_WIDGETS). A designer merges consumer\n * overrides for custom widgets over this map.\n */\nexport const WIDGET_OPTION_DEFS: Record<string, WidgetOptionDef[]> = {\n // Canonical names\n TextInputWidget: textInputOptions,\n TextareaWidget: textareaOptions,\n NumberWidget: numberOptions,\n CheckboxWidget: checkboxOptions,\n SelectWidget: selectOptions,\n TagsInputWidget: tagsOptions,\n JsonEditorWidget: jsonEditorOptions,\n EntitySelectWidget: entitySelectOptions,\n ObjectWidget: objectOptions,\n ArrayWidget: arrayOptions,\n QuantityWidget: quantityOptions,\n DateWidget: dateOptions,\n TimeWidget: timeOptions,\n DateTimeWidget: dateTimeOptions,\n DisplayWidget: [],\n OneOfWidget: oneOfOptions,\n\n // Lowercase aliases\n text: textInputOptions,\n textarea: textareaOptions,\n number: numberOptions,\n checkbox: checkboxOptions,\n select: selectOptions,\n tags: tagsOptions,\n \"json-editor\": jsonEditorOptions,\n \"entity-select\": entitySelectOptions,\n object: objectOptions,\n array: arrayOptions,\n quantity: quantityOptions,\n date: dateOptions,\n time: timeOptions,\n \"date-time\": dateTimeOptions,\n display: [],\n \"one-of\": oneOfOptions,\n};\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/widgets/widgetOptions.ts"],"sourcesContent":["/**\n * Widget option metadata -- design-time descriptors for each widget's\n * `x-ui-options`.\n *\n * This module is authoring metadata for a schema designer, NOT runtime code.\n * It is intentionally kept out of the widget component files and the main\n * package entry so that form-rendering consumers never pull it into their\n * bundle. It is exported only from the `@petrarca/sonnet-forms/widget-options`\n * subpath.\n *\n * A `WidgetOptionDef` is our ergonomic, widget-specific descriptor; a designer\n * translates a list of them into a plain `JsonSchema` (via `optionDefsToSchema`)\n * and renders that with `JsonSchemaFormRenderer` to produce the options editor.\n *\n * Options that are *derived* rather than chosen are deliberately omitted:\n * - `multiple` (SelectWidget) is inferred from `type: \"array\"`.\n * - `enumNames` is owned by a dedicated enum editor (seeded from `enum`).\n *\n * The declared keys are kept in sync with what each widget actually reads via a\n * drift-guard test (widgetOptions.test.ts).\n */\n\nimport type {\n JsonSchema,\n JsonSchemaProperty,\n} from \"@petrarca/sonnet-core/schema\";\n\n/** Value kinds a widget option can take. */\nexport type WidgetOptionType =\n | \"string\"\n | \"number\"\n | \"boolean\"\n | \"enum\"\n | \"string[]\"\n | \"json\";\n\n/**\n * A single widget option descriptor.\n *\n * `type: \"json\"` is the escape hatch for irregular options that do not fit the\n * simple set (e.g. a `string | string[]` union); a designer renders it as a raw\n * JSON editor for that one option.\n */\nexport interface WidgetOptionDef {\n /** The x-ui-options key. */\n key: string;\n /** Human label for the designer's options editor. */\n label: string;\n /** Value kind. */\n type: WidgetOptionType;\n /** Default value (advisory; shown in the generated editor). */\n default?: unknown;\n /** Allowed values when `type` is \"enum\". */\n enumValues?: string[];\n /** Optional help text shown under the field. */\n help?: string;\n}\n\n/** Map a WidgetOptionDef to its JsonSchemaProperty. */\nfunction defToProperty(def: WidgetOptionDef): JsonSchemaProperty {\n const base: JsonSchemaProperty = {\n title: def.label,\n description: def.help,\n default: def.default,\n };\n switch (def.type) {\n case \"string\":\n return { ...base, type: \"string\" };\n case \"number\":\n return { ...base, type: \"number\" };\n case \"boolean\":\n return { ...base, type: \"boolean\" };\n case \"enum\":\n return { ...base, type: \"string\", enum: def.enumValues ?? [] };\n case \"string[]\":\n return {\n ...base,\n type: \"array\",\n items: { type: \"string\" },\n \"x-ui-widget\": \"tags\",\n };\n case \"json\":\n // Render as a raw JSON editor; the value shape is open.\n return { ...base, type: \"object\", \"x-ui-widget\": \"json-editor\" };\n }\n}\n\n/**\n * Translate a list of widget option descriptors into a plain JsonSchema that a\n * designer can render with JsonSchemaFormRenderer. The result is an object\n * schema whose properties are the options.\n */\nexport function optionDefsToSchema(defs: WidgetOptionDef[]): JsonSchema {\n const properties: Record<string, JsonSchemaProperty> = {};\n for (const def of defs) {\n properties[def.key] = defToProperty(def);\n }\n return { title: \"\", type: \"object\", properties };\n}\n\n// Per-widget descriptors. Keys mirror what each widget reads from x-ui-options.\n\nconst textInputOptions: WidgetOptionDef[] = [\n {\n key: \"inputType\",\n label: \"Input type\",\n type: \"string\",\n help: \"HTML input type override (e.g. email, url, tel).\",\n },\n { key: \"compact\", label: \"Compact\", type: \"boolean\" },\n];\n\nconst textareaOptions: WidgetOptionDef[] = [\n { key: \"rows\", label: \"Rows\", type: \"number\", default: 3 },\n { key: \"minRows\", label: \"Min rows\", type: \"number\" },\n { key: \"autosize\", label: \"Autosize\", type: \"boolean\", default: true },\n];\n\nconst numberOptions: WidgetOptionDef[] = [\n { key: \"step\", label: \"Step\", type: \"number\" },\n { key: \"allowDecimal\", label: \"Allow decimal\", type: \"boolean\" },\n];\n\nconst checkboxOptions: WidgetOptionDef[] = [\n { key: \"compact\", label: \"Compact\", type: \"boolean\" },\n];\n\nconst selectOptions: WidgetOptionDef[] = [\n { key: \"clearable\", label: \"Clearable\", type: \"boolean\", default: true },\n { key: \"compact\", label: \"Compact\", type: \"boolean\" },\n {\n key: \"creatable\",\n label: \"Allow custom value\",\n type: \"boolean\",\n help: \"Let the user type and submit a value not in the predefined list (combobox mode).\",\n },\n {\n key: \"badgeColor\",\n label: \"Badge color\",\n type: \"string\",\n help: \"Badge color for multi-select values.\",\n },\n];\n\n// Radio buttons and a checkbox group: every option in view, in a column or a row.\nconst choiceListOptions: WidgetOptionDef[] = [\n {\n key: \"orientation\",\n label: \"Orientation\",\n type: \"enum\",\n enumValues: [\"vertical\", \"horizontal\"],\n default: \"vertical\",\n },\n { key: \"compact\", label: \"Compact\", type: \"boolean\" },\n];\n\nconst compactOnlyOptions: WidgetOptionDef[] = [\n { key: \"compact\", label: \"Compact\", type: \"boolean\" },\n];\n\nconst tagsOptions: WidgetOptionDef[] = [\n { key: \"maxTags\", label: \"Max tags\", type: \"number\" },\n {\n key: \"splitKeys\",\n label: \"Split keys\",\n type: \"string[]\",\n help: \"Characters that commit a tag (e.g. comma, Enter).\",\n },\n];\n\nconst jsonEditorOptions: WidgetOptionDef[] = [\n { key: \"height\", label: \"Height\", type: \"string\", default: \"240px\" },\n];\n\nconst quantityOptions: WidgetOptionDef[] = [\n {\n key: \"units\",\n label: \"Units\",\n type: \"json\",\n help: \"Array of unit options ({ value, label }).\",\n },\n {\n key: \"unitPosition\",\n label: \"Unit position\",\n type: \"enum\",\n enumValues: [\"prefix\", \"suffix\"],\n },\n { key: \"precision\", label: \"Precision\", type: \"number\" },\n { key: \"step\", label: \"Step\", type: \"number\" },\n];\n\nconst codeableConceptOptions: WidgetOptionDef[] = [\n {\n key: \"text\",\n label: \"Text\",\n type: \"boolean\",\n help: \"Offer a text beside the codes. Default: when the first list is extensible.\",\n },\n {\n key: \"mode\",\n label: \"Mode\",\n type: \"enum\",\n enumValues: [\"list\", \"search\"],\n help: \"The whole list, or a search, for every row. Default: decided by each list's size.\",\n },\n {\n key: \"minChars\",\n label: \"Minimum characters\",\n type: \"number\",\n help: \"The characters a search waits for. Default: 1.\",\n },\n];\n\nconst codedValueOptions: WidgetOptionDef[] = [\n {\n key: \"mode\",\n label: \"Mode\",\n type: \"enum\",\n enumValues: [\"list\", \"search\"],\n help: \"The whole list, or a search. Default: decided by the list's size.\",\n },\n {\n key: \"minChars\",\n label: \"Minimum characters\",\n type: \"number\",\n help: \"The characters a search waits for. Default: 1.\",\n },\n {\n key: \"store\",\n label: \"Store\",\n type: \"string\",\n help: \"The hit's property a code-only field stores. Default: code.\",\n },\n {\n key: \"keep\",\n label: \"Keep\",\n type: \"string[]\",\n help: \"Properties of a hit a coding keeps beside its own, as the terminology service returns them.\",\n },\n];\n\nconst dateOptions: WidgetOptionDef[] = [\n {\n key: \"precision\",\n label: \"Precision\",\n type: \"enum\",\n enumValues: [\"year\", \"month\", \"day\"],\n default: \"day\",\n help: \"Selection depth: year (YYYY), month (YYYY-MM), or day (YYYY-MM-DD).\",\n },\n {\n key: \"locale\",\n label: \"Locale\",\n type: \"string\",\n help: \"BCP-47 override (e.g. de-DE). Defaults to the app locale.\",\n },\n];\n\nconst timeOptions: WidgetOptionDef[] = [\n {\n key: \"granularity\",\n label: \"Granularity\",\n type: \"enum\",\n enumValues: [\"minute\", \"second\"],\n default: \"minute\",\n },\n];\n\nconst dateTimeOptions: WidgetOptionDef[] = [\n {\n key: \"granularity\",\n label: \"Granularity\",\n type: \"enum\",\n enumValues: [\"minute\", \"second\"],\n default: \"minute\",\n },\n {\n key: \"timeZone\",\n label: \"Timezone hint\",\n type: \"string\",\n help: \"IANA id (e.g. Europe/Berlin) shown as a hint; never applied to the value.\",\n },\n {\n key: \"locale\",\n label: \"Locale\",\n type: \"string\",\n help: \"BCP-47 override for the date part. Defaults to the app locale.\",\n },\n];\n\nconst objectOptions: WidgetOptionDef[] = [\n {\n key: \"variant\",\n label: \"Variant\",\n type: \"enum\",\n enumValues: [\"section\", \"card\", \"collapsible\", \"inline\", \"borderless\"],\n default: \"section\",\n },\n { key: \"defaultOpen\", label: \"Default open\", type: \"boolean\", default: true },\n];\n\nconst oneOfOptions: WidgetOptionDef[] = [\n {\n key: \"variant\",\n label: \"Container variant\",\n type: \"enum\",\n enumValues: [\"section\", \"card\", \"collapsible\", \"inline\", \"borderless\"],\n default: \"section\",\n },\n];\n\nconst arrayOptions: WidgetOptionDef[] = [\n {\n key: \"addLabel\",\n label: \"Add button label\",\n type: \"string\",\n default: \"Add item\",\n },\n {\n key: \"itemTitle\",\n label: \"Item title\",\n type: \"string\",\n help: \"Supports {index} placeholder.\",\n },\n { key: \"orderable\", label: \"Orderable\", type: \"boolean\" },\n { key: \"emptyMessage\", label: \"Empty message\", type: \"string\" },\n];\n\nconst entitySelectOptions: WidgetOptionDef[] = [\n {\n key: \"mode\",\n label: \"Mode\",\n type: \"enum\",\n enumValues: [\"eager\", \"typeahead\", \"explicit\"],\n },\n { key: \"minChars\", label: \"Min chars\", type: \"number\" },\n { key: \"endpoint\", label: \"REST endpoint\", type: \"string\" },\n { key: \"valueKey\", label: \"Value key\", type: \"string\", default: \"id\" },\n { key: \"labelKey\", label: \"Label key\", type: \"string\", default: \"name\" },\n { key: \"searchKey\", label: \"Search key\", type: \"string\" },\n { key: \"extraParams\", label: \"Extra params\", type: \"json\" },\n { key: \"query\", label: \"GraphQL query\", type: \"string\" },\n { key: \"dataPath\", label: \"GraphQL data path\", type: \"string\" },\n];\n\n/**\n * Built-in widget option descriptors, keyed by widget name (both canonical and\n * lowercase-alias names, matching DEFAULT_WIDGETS). A designer merges consumer\n * overrides for custom widgets over this map.\n */\nexport const WIDGET_OPTION_DEFS: Record<string, WidgetOptionDef[]> = {\n // Canonical names\n TextInputWidget: textInputOptions,\n TextareaWidget: textareaOptions,\n NumberWidget: numberOptions,\n CheckboxWidget: checkboxOptions,\n SelectWidget: selectOptions,\n TagsInputWidget: tagsOptions,\n JsonEditorWidget: jsonEditorOptions,\n EntitySelectWidget: entitySelectOptions,\n ObjectWidget: objectOptions,\n ArrayWidget: arrayOptions,\n QuantityWidget: quantityOptions,\n CodedValueWidget: codedValueOptions,\n CodeableConceptWidget: codeableConceptOptions,\n DateWidget: dateOptions,\n TimeWidget: timeOptions,\n DateTimeWidget: dateTimeOptions,\n DisplayWidget: [],\n OneOfWidget: oneOfOptions,\n RadioWidget: choiceListOptions,\n CheckboxGroupWidget: choiceListOptions,\n ChoiceWithTextWidget: compactOnlyOptions,\n AbsentReasonsWidget: compactOnlyOptions,\n\n // Lowercase aliases\n text: textInputOptions,\n textarea: textareaOptions,\n number: numberOptions,\n checkbox: checkboxOptions,\n select: selectOptions,\n tags: tagsOptions,\n \"json-editor\": jsonEditorOptions,\n \"entity-select\": entitySelectOptions,\n object: objectOptions,\n array: arrayOptions,\n quantity: quantityOptions,\n \"coded-value\": codedValueOptions,\n \"codeable-concept\": codeableConceptOptions,\n date: dateOptions,\n time: timeOptions,\n \"date-time\": dateTimeOptions,\n display: [],\n \"one-of\": oneOfOptions,\n radio: choiceListOptions,\n \"checkbox-group\": choiceListOptions,\n \"choice-with-text\": compactOnlyOptions,\n \"absent-reasons\": compactOnlyOptions,\n};\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@petrarca/sonnet-forms",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"description": "Schema-driven form renderer, field components, and widgets for the Petrarca Sonnet component library",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"publishConfig": {
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"class-variance-authority": "^0.7.1",
|
|
27
27
|
"lucide-react": "^0.553.0",
|
|
28
|
-
"@petrarca/sonnet-core": "0.
|
|
29
|
-
"@petrarca/sonnet-ui": "0.
|
|
28
|
+
"@petrarca/sonnet-core": "0.9.0",
|
|
29
|
+
"@petrarca/sonnet-ui": "0.9.0"
|
|
30
30
|
},
|
|
31
31
|
"peerDependencies": {
|
|
32
32
|
"react": ">=19",
|
|
@@ -34,17 +34,17 @@
|
|
|
34
34
|
"tailwindcss": ">=3"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
|
-
"@types/react": "^19.
|
|
38
|
-
"@types/react-dom": "^19.
|
|
39
|
-
"tsup": "^
|
|
40
|
-
"typescript": "^5.9.
|
|
37
|
+
"@types/react": "^19.3.0",
|
|
38
|
+
"@types/react-dom": "^19.3.0",
|
|
39
|
+
"tsup": "^9.0.0",
|
|
40
|
+
"typescript": "^5.9.3"
|
|
41
41
|
},
|
|
42
42
|
"scripts": {
|
|
43
43
|
"build": "tsup",
|
|
44
44
|
"dev": "tsup --watch",
|
|
45
45
|
"typecheck": "tsc --noEmit",
|
|
46
46
|
"lint": "tsc --noEmit",
|
|
47
|
-
"test": "vitest run",
|
|
47
|
+
"test": "vitest run --config ../../vitest.config.ts",
|
|
48
48
|
"clean": "rm -rf dist *.tsbuildinfo"
|
|
49
49
|
}
|
|
50
50
|
}
|