@golemui/gui-mcp 1.0.2 → 1.1.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/CHANGELOG.md +14 -0
- package/cli.js +2 -2
- package/{get-concept-Py3iLVmb.js → get-concept-e_HDPrW1.js} +574 -263
- package/json.js +1 -1
- package/lib.js +2 -2
- package/{list-dx-factories-C-Z5Sc5E.js → list-dx-factories-BlB_usDm.js} +106 -5
- package/package.json +5 -5
- package/shared/lint/reactive-expressions.d.ts +8 -1
|
@@ -1,212 +1,427 @@
|
|
|
1
1
|
import Ajv2020 from "ajv/dist/2020.js";
|
|
2
2
|
import addFormats from "ajv-formats";
|
|
3
|
-
const $schema$
|
|
4
|
-
const $id$
|
|
5
|
-
const title$
|
|
6
|
-
const $defs$
|
|
3
|
+
const $schema$F = "https://json-schema.org/draft/2020-12/schema";
|
|
4
|
+
const $id$F = "https://golemui.com/schemas/common.schema.json";
|
|
5
|
+
const title$F = "Golem Common Definitions";
|
|
6
|
+
const $defs$E = { "reactiveExpression": { "type": "string", "description": "A reactive expression string. Use `$form` to access form data e.g. `$form.termsAccepted === true`" }, "dotPath": { "type": "string", "description": "A dot-separated path to a property in the form data" }, "dateRange": { "type": "object", "description": "A single date range used by calendar/date-picker widgets to mark days as disabled.", "properties": { "start": { "type": "string", "description": "ISO-8601 date string for the start of the disabled range (inclusive)" }, "end": { "type": "string", "description": "ISO-8601 date string for the end of the disabled range (inclusive). Omit to disable a single day." } }, "required": ["start"], "additionalProperties": false }, "dateTimeRange": { "type": "object", "description": "A single date-time range (two ISO date-times) used by the range date-time calendar for the value and for disabled instant spans.", "properties": { "start": { "type": "string", "description": "ISO-8601 date-time string for the start of the range (inclusive)" }, "end": { "type": "string", "description": "ISO-8601 date-time string for the end of the range (inclusive)" } }, "required": ["start"], "additionalProperties": false }, "uid": { "type": "string", "description": "Unique identifier for the widget" }, "knownWidgetTypes": { "description": "Built-in widget `type` identifiers. Used to exclude built-ins from the custom-widget fallback so every widget matches exactly one schema.", "enum": ["accordion", "alert", "button", "calendar", "dateTimeCalendar", "dateTimePicker", "checkbox", "currency", "dateInput", "datePicker", "dateTimeInput", "dropdown", "flex", "grid", "list", "markdown", "markdownText", "number", "password", "radiogroup", "rangeCalendar", "rangeDateInput", "rangeDateTimeInput", "rangeDateTimeCalendar", "rangeDateTimePicker", "rangeTimeInput", "rangeDatePicker", "rangeTimePicker", "repeater", "select", "tabs", "tags", "textarea", "textinput", "timeInput", "timePicker", "toggle"] }, "localizable": { "description": "A value that can be a plain string or an i18n key object. Use a plain string for static text, or `{key, default, params}` to reference a translation key.", "oneOf": [{ "type": "string" }, { "type": "object", "properties": { "key": { "type": "string", "description": "The i18n translation key" }, "default": { "type": "string", "description": "Fallback text shown when the translation key is not found" }, "params": { "type": "object", "description": "Interpolation parameters passed to the translation function" } }, "required": ["key"], "additionalProperties": false }] }, "include": { "description": "Show this widget only in certain form states (`{in: [stateNames]}`) or when a reactive expression is true (`{when: expr}`). If omitted the widget is always shown.", "oneOf": [{ "type": "object", "properties": { "in": { "type": "array", "items": { "type": "string" }, "description": "List of state names (defined in the form `states` map) in which this widget should be visible" } }, "required": ["in"], "additionalProperties": false }, { "type": "object", "properties": { "when": { "$ref": "#/$defs/reactiveExpression" } }, "required": ["when"], "additionalProperties": false }] }, "exclude": { "description": "Hide this widget in certain form states (`{from: [stateNames]}`) or when a reactive expression is true (`{when: expr}`). If omitted the widget is never hidden.", "oneOf": [{ "type": "object", "properties": { "from": { "type": "array", "items": { "type": "string" }, "description": "List of state names (defined in the form `states` map) in which this widget should be hidden" } }, "required": ["from"], "additionalProperties": false }, { "type": "object", "properties": { "when": { "$ref": "#/$defs/reactiveExpression" } }, "required": ["when"], "additionalProperties": false }] }, "boolOrWhen": { "description": "A static boolean or a conditional `{when: reactiveExpression}` object evaluated at runtime. Use `{when: '$form.someField === true'}` for dynamic behavior.", "oneOf": [{ "type": "boolean" }, { "type": "object", "properties": { "when": { "$ref": "#/$defs/reactiveExpression" } }, "required": ["when"], "additionalProperties": false }] }, "on": { "type": "object", "description": 'Event handlers for this widget. Values are action names dispatched to the form\'s event bus. Each key also accepts a state-suffixed variant (`"click.<stateName>"`) that overrides the base handler when the named state is active.', "properties": { "load": { "type": "string", "description": "Action dispatched when the widget is first mounted" }, "click": { "type": "string", "description": "Action dispatched when the user clicks the widget" }, "change": { "type": "string", "description": "Action dispatched when the widget value changes" }, "filter": { "type": "string", "description": "Action dispatched on search/filter input, typically used with async data sources" }, "blur": { "type": "string", "description": "Action dispatched when the widget loses focus" } }, "patternProperties": { "^load\\.[^.]+$": { "type": "string", "description": 'State-suffixed load handler: used instead of `load` when the named state is active (e.g. `"load.myState"`)' }, "^click\\.[^.]+$": { "type": "string", "description": 'State-suffixed click handler: used instead of `click` when the named state is active (e.g. `"click.myState"`)' }, "^change\\.[^.]+$": { "type": "string", "description": 'State-suffixed change handler: used instead of `change` when the named state is active (e.g. `"change.myState"`)' }, "^filter\\.[^.]+$": { "type": "string", "description": 'State-suffixed filter handler: used instead of `filter` when the named state is active (e.g. `"filter.myState"`)' }, "^blur\\.[^.]+$": { "type": "string", "description": 'State-suffixed blur handler: used instead of `blur` when the named state is active (e.g. `"blur.myState"`)' } }, "additionalProperties": false }, "baseWidget": { "type": "object", "description": 'Base properties shared by all widgets. Root-level props that support state-suffixing (e.g. `"label.myState"`) are: `label`, `disabled`, `readonly`, `validator`, `size`. Any key inside `props` can also be suffixed. State names must be declared in the form `states` map.', "properties": { "$schema": { "type": "string" }, "uid": { "$ref": "#/$defs/uid" }, "type": { "type": "string" }, "size": { "type": "number", "description": "Column span in the form grid (1–12). Defaults to full width when omitted.", "minimum": 1, "maximum": 12 }, "include": { "$ref": "#/$defs/include" }, "exclude": { "$ref": "#/$defs/exclude" } }, "required": ["type"] } };
|
|
7
7
|
const commonSchema = {
|
|
8
|
+
$schema: $schema$F,
|
|
9
|
+
$id: $id$F,
|
|
10
|
+
title: title$F,
|
|
11
|
+
$defs: $defs$E
|
|
12
|
+
};
|
|
13
|
+
const $schema$E = "https://json-schema.org/draft/2020-12/schema";
|
|
14
|
+
const $id$E = "https://golemui.com/schemas/form.schema.json";
|
|
15
|
+
const title$E = "Golem Form DSL";
|
|
16
|
+
const type$C = "object";
|
|
17
|
+
const properties$B = { "$schema": { "type": "string" }, "states": { "type": "object", "description": 'Named boolean conditions keyed by state name, each mapping to a reactive expression. States serve two purposes: (1) gating widget visibility via `include.in` / `exclude.from`; (2) overriding individual widget properties when a state is active by appending `".<stateName>"` to any property key — e.g. `"label.myState": "Active label"` or `"props.hint.myState": "Active hint"`. Root-level suffixable props: `label`, `disabled`, `readonly`, `validator`, `size`. Any key inside `props` can also be suffixed.', "additionalProperties": { "$ref": "common.schema.json#/$defs/reactiveExpression" } }, "form": { "type": "array", "description": "The ordered list of widgets that make up the form body", "items": { "$ref": "#/$defs/formWidget" } }, "autocomplete": { "type": "string", "description": "HTML `autocomplete` attribute applied to the `<form>` element (e.g. `on`, `off`)" } };
|
|
18
|
+
const required$B = ["form"];
|
|
19
|
+
const additionalProperties = false;
|
|
20
|
+
const $defs$D = { "chunkRef": { "type": "object", "description": "A reference to an external chunk file whose widget array will be inlined at this position in the form", "properties": { "$ref": { "type": "string", "description": "Relative path to a JSON chunk file" } }, "required": ["$ref"], "additionalProperties": false }, "formWidget": { "oneOf": [{ "$ref": "./components/accordion.schema.json" }, { "$ref": "./components/alert.schema.json" }, { "$ref": "./components/button.schema.json" }, { "$ref": "./components/calendar.schema.json" }, { "$ref": "./components/datetimecalendar.schema.json" }, { "$ref": "./components/datetimepicker.schema.json" }, { "$ref": "./components/checkbox.schema.json" }, { "$ref": "./components/currency.schema.json" }, { "$ref": "./components/dateinput.schema.json" }, { "$ref": "./components/datetimeinput.schema.json" }, { "$ref": "./components/datepicker.schema.json" }, { "$ref": "./components/dropdown.schema.json" }, { "$ref": "./components/list.schema.json" }, { "$ref": "./components/markdown.schema.json" }, { "$ref": "./components/markdowntext.schema.json" }, { "$ref": "./components/number.schema.json" }, { "$ref": "./components/password.schema.json" }, { "$ref": "./components/radiogroup.schema.json" }, { "$ref": "./components/rangecalendar.schema.json" }, { "$ref": "./components/rangedateinput.schema.json" }, { "$ref": "./components/rangedatetimeinput.schema.json" }, { "$ref": "./components/rangedatetimecalendar.schema.json" }, { "$ref": "./components/rangedatetimepicker.schema.json" }, { "$ref": "./components/rangetimeinput.schema.json" }, { "$ref": "./components/rangedatepicker.schema.json" }, { "$ref": "./components/rangetimepicker.schema.json" }, { "$ref": "./components/repeater.schema.json" }, { "$ref": "./components/select.schema.json" }, { "$ref": "./components/flex.schema.json" }, { "$ref": "./components/grid.schema.json" }, { "$ref": "./components/tabs.schema.json" }, { "$ref": "./components/tags.schema.json" }, { "$ref": "./components/textarea.schema.json" }, { "$ref": "./components/textinput.schema.json" }, { "$ref": "./components/timeinput.schema.json" }, { "$ref": "./components/timepicker.schema.json" }, { "$ref": "./components/toggle.schema.json" }, { "$ref": "./components/custom.schema.json" }, { "$ref": "#/$defs/chunkRef" }] } };
|
|
21
|
+
const formSchema = {
|
|
22
|
+
$schema: $schema$E,
|
|
23
|
+
$id: $id$E,
|
|
24
|
+
title: title$E,
|
|
25
|
+
type: type$C,
|
|
26
|
+
properties: properties$B,
|
|
27
|
+
required: required$B,
|
|
28
|
+
additionalProperties,
|
|
29
|
+
$defs: $defs$D
|
|
30
|
+
};
|
|
31
|
+
const $schema$D = "https://json-schema.org/draft/2020-12/schema";
|
|
32
|
+
const $id$D = "https://golemui.com/schemas/layout-widget.schema.json";
|
|
33
|
+
const title$D = "Golem Layout Widget";
|
|
34
|
+
const oneOf$1 = [{ "$ref": "./components/accordion.schema.json" }, { "$ref": "./components/flex.schema.json" }, { "$ref": "./components/grid.schema.json" }, { "$ref": "./components/tabs.schema.json" }];
|
|
35
|
+
const layoutWidgetSchema = {
|
|
36
|
+
$schema: $schema$D,
|
|
37
|
+
$id: $id$D,
|
|
38
|
+
title: title$D,
|
|
39
|
+
oneOf: oneOf$1
|
|
40
|
+
};
|
|
41
|
+
const $schema$C = "https://json-schema.org/draft/2020-12/schema";
|
|
42
|
+
const $id$C = "https://golemui.com/schemas/validators.schema.json";
|
|
43
|
+
const title$C = "GolemUI Validator Definitions";
|
|
44
|
+
const $defs$C = { "localizable": { "$ref": "./common.schema.json#/$defs/localizable" }, "stringValidator": { "type": "object", "properties": { "type": { "const": "string" }, "required": { "type": "boolean", "description": "Makes the field mandatory — validation fails if the value is empty or absent" }, "minLength": { "type": "number", "description": "Minimum number of characters the string must contain" }, "maxLength": { "type": "number", "description": "Maximum number of characters the string may contain" }, "pattern": { "type": "string", "description": "A regular expression pattern the value must match" }, "format": { "type": "string", "description": "A named format the string must conform to (e.g. `email`, `url`, `date`, `uuid`)", "enum": ["email", "hostname", "ipv4", "ipv6", "url", "uuid", "date", "time", "date-time", "duration"] }, "const": { "description": "The string must equal exactly this value" }, "enum": { "type": "array", "description": "The string must be one of these allowed values" }, "messages": { "type": "object", "description": "Custom error messages that override the default text for each constraint violation", "properties": { "invalid": { "$ref": "#/$defs/localizable", "description": "Shown when the value fails general type validation" }, "required": { "$ref": "#/$defs/localizable", "description": "Shown when a required field is empty" }, "minLength": { "$ref": "#/$defs/localizable", "description": "Shown when the value is shorter than `minLength`" }, "maxLength": { "$ref": "#/$defs/localizable", "description": "Shown when the value is longer than `maxLength`" }, "pattern": { "$ref": "#/$defs/localizable", "description": "Shown when the value does not match the `pattern` regex" }, "format": { "$ref": "#/$defs/localizable", "description": "Shown when the value does not conform to the specified `format`" }, "enum": { "$ref": "#/$defs/localizable", "description": "Shown when the value is not in the `enum` list" }, "const": { "$ref": "#/$defs/localizable", "description": "Shown when the value does not equal `const`" } }, "additionalProperties": false } }, "required": ["type"], "additionalProperties": false }, "numberValidator": { "type": "object", "properties": { "type": { "type": "string", "enum": ["number", "integer"] }, "required": { "type": "boolean", "description": "Makes the field mandatory — validation fails if the value is absent" }, "minimum": { "type": "number", "description": "The value must be greater than or equal to this number (inclusive)" }, "maximum": { "type": "number", "description": "The value must be less than or equal to this number (inclusive)" }, "exclusiveMinimum": { "type": "number", "description": "The value must be strictly greater than this number (exclusive)" }, "exclusiveMaximum": { "type": "number", "description": "The value must be strictly less than this number (exclusive)" }, "multipleOf": { "type": "number", "description": "The value must be a multiple of this number" }, "const": { "description": "The value must equal exactly this number" }, "enum": { "type": "array", "description": "The value must be one of these allowed numbers" }, "messages": { "type": "object", "description": "Custom error messages that override the default text for each constraint violation", "properties": { "invalid": { "$ref": "#/$defs/localizable", "description": "Shown when the value fails general type validation" }, "minimum": { "$ref": "#/$defs/localizable", "description": "Shown when the value is below `minimum`" }, "maximum": { "$ref": "#/$defs/localizable", "description": "Shown when the value exceeds `maximum`" }, "exclusiveMinimum": { "$ref": "#/$defs/localizable", "description": "Shown when the value is not strictly above `exclusiveMinimum`" }, "exclusiveMaximum": { "$ref": "#/$defs/localizable", "description": "Shown when the value is not strictly below `exclusiveMaximum`" }, "multipleOf": { "$ref": "#/$defs/localizable", "description": "Shown when the value is not a multiple of `multipleOf`" }, "enum": { "$ref": "#/$defs/localizable", "description": "Shown when the value is not in the `enum` list" }, "const": { "$ref": "#/$defs/localizable", "description": "Shown when the value does not equal `const`" } }, "additionalProperties": false } }, "required": ["type"], "additionalProperties": false }, "booleanValidator": { "type": "object", "properties": { "type": { "const": "boolean" }, "required": { "type": "boolean", "description": "Makes the field mandatory — validation fails if the value is absent or false (e.g. an unchecked required checkbox)" }, "const": { "description": "The value must equal exactly this boolean (e.g. `true` to require acceptance)" }, "messages": { "type": "object", "description": "Custom error messages that override the default text for each constraint violation", "properties": { "invalid": { "$ref": "#/$defs/localizable", "description": "Shown when the value fails general type validation" }, "const": { "$ref": "#/$defs/localizable", "description": "Shown when the value does not equal `const`" } }, "additionalProperties": false } }, "required": ["type"], "additionalProperties": false }, "arrayValidator": { "type": "object", "properties": { "type": { "const": "array" }, "required": { "type": "boolean", "description": "Makes the field mandatory — validation fails if the array is empty or absent" }, "minItems": { "type": "number", "description": "The array must contain at least this many items" }, "maxItems": { "type": "number", "description": "The array must contain no more than this many items" }, "uniqueItems": { "type": "boolean", "description": "When true, all items in the array must be distinct values" }, "messages": { "type": "object", "description": "Custom error messages that override the default text for each constraint violation", "properties": { "invalid": { "$ref": "#/$defs/localizable", "description": "Shown when the value fails general type validation" }, "required": { "$ref": "#/$defs/localizable", "description": "Shown when a required array is empty or absent" }, "minItems": { "$ref": "#/$defs/localizable", "description": "Shown when the array has fewer items than `minItems`" }, "maxItems": { "$ref": "#/$defs/localizable", "description": "Shown when the array has more items than `maxItems`" } }, "additionalProperties": false } }, "required": ["type"], "additionalProperties": false }, "customValidator": { "type": "object", "description": "A custom validator that delegates validation to application code. The registered validator function receives these constraint keys and must return a Standard Schema V1-compliant schema object (https://standardschema.dev). Add arbitrary constraint keys alongside `type` — they are passed as-is to the registered validator function.", "properties": { "type": { "const": "custom" }, "required": { "type": "boolean", "description": "Makes the field mandatory — evaluation is still delegated to the custom validator" } }, "required": ["type"], "additionalProperties": true }, "validator": { "description": "Validation rules for this field. The `type` discriminant selects the validator: `string`, `number`, `integer`, `boolean`, `array`, or `custom`.", "oneOf": [{ "$ref": "#/$defs/stringValidator" }, { "$ref": "#/$defs/numberValidator" }, { "$ref": "#/$defs/booleanValidator" }, { "$ref": "#/$defs/arrayValidator" }, { "$ref": "#/$defs/customValidator" }] } };
|
|
45
|
+
const validatorsSchema = {
|
|
46
|
+
$schema: $schema$C,
|
|
47
|
+
$id: $id$C,
|
|
48
|
+
title: title$C,
|
|
49
|
+
$defs: $defs$C
|
|
50
|
+
};
|
|
51
|
+
const $schema$B = "https://json-schema.org/draft/2020-12/schema";
|
|
52
|
+
const $id$B = "https://golemui.com/schemas/components/accordion.schema.json";
|
|
53
|
+
const title$B = "Accordion Widget";
|
|
54
|
+
const type$B = "object";
|
|
55
|
+
const $defs$B = { "singleOpenProp": { "type": "boolean", "description": "When true, opening one section automatically closes all others. Defaults to false." }, "defaultOpenProp": { "type": "object", "description": "Map of section UIDs to booleans indicating which sections are open on initial render", "additionalProperties": { "type": "boolean" }, "minProperties": 1 }, "renderModeProp": { "description": "Controls when section content is rendered: `all` keeps all sections in the DOM, `activeOnly` unmounts inactive ones", "enum": ["all", "activeOnly"] }, "sectionsProp": { "type": "array", "description": "Ordered list of section definitions. Each section's `uid` must match the widget UIDs used in `children`.", "minItems": 1, "items": { "type": "object", "properties": { "label": { "$ref": "../common.schema.json#/$defs/localizable" }, "uid": { "type": "string", "description": "Unique identifier linking this section definition to its widgets in `children`" } }, "required": ["label", "uid"], "additionalProperties": false } } };
|
|
56
|
+
const allOf$B = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
|
|
57
|
+
const properties$A = { "kind": { "const": "layout" }, "type": { "const": "accordion" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "children": { "type": "array", "description": "Flat list of widgets belonging to all sections. Each widget must have a `uid` matching one of the section UIDs in `props.sections`.", "minItems": 1, "items": { "$ref": "../form.schema.json#/$defs/formWidget" } }, "props": { "type": "object", "properties": { "singleOpen": { "$ref": "#/$defs/singleOpenProp" }, "defaultOpen": { "$ref": "#/$defs/defaultOpenProp" }, "renderMode": { "$ref": "#/$defs/renderModeProp" }, "sections": { "$ref": "#/$defs/sectionsProp" } }, "required": ["sections"], "patternProperties": { "^singleOpen\\.[^.]+$": { "$ref": "#/$defs/singleOpenProp" }, "^defaultOpen\\.[^.]+$": { "$ref": "#/$defs/defaultOpenProp" }, "^renderMode\\.[^.]+$": { "$ref": "#/$defs/renderModeProp" }, "^sections\\.[^.]+$": { "$ref": "#/$defs/sectionsProp" } }, "additionalProperties": false } };
|
|
58
|
+
const required$A = ["kind", "type", "children", "props"];
|
|
59
|
+
const unevaluatedProperties$B = false;
|
|
60
|
+
const accordion = {
|
|
61
|
+
$schema: $schema$B,
|
|
62
|
+
$id: $id$B,
|
|
63
|
+
title: title$B,
|
|
64
|
+
type: type$B,
|
|
65
|
+
$defs: $defs$B,
|
|
66
|
+
allOf: allOf$B,
|
|
67
|
+
properties: properties$A,
|
|
68
|
+
required: required$A,
|
|
69
|
+
unevaluatedProperties: unevaluatedProperties$B
|
|
70
|
+
};
|
|
71
|
+
const $schema$A = "https://json-schema.org/draft/2020-12/schema";
|
|
72
|
+
const $id$A = "https://golemui.com/schemas/components/alert.schema.json";
|
|
73
|
+
const title$A = "Alert Widget";
|
|
74
|
+
const type$A = "object";
|
|
75
|
+
const $defs$A = { "textProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "levelProp": { "enum": ["default", "info", "success", "warning", "error"] } };
|
|
76
|
+
const allOf$A = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
|
|
77
|
+
const properties$z = { "kind": { "const": "display" }, "type": { "const": "alert" }, "props": { "type": "object", "properties": { "text": { "$ref": "#/$defs/textProp" }, "level": { "$ref": "#/$defs/levelProp" } }, "patternProperties": { "^text\\.[^.]+$": { "$ref": "#/$defs/textProp" }, "^level\\.[^.]+$": { "$ref": "#/$defs/levelProp" } }, "required": ["text"], "additionalProperties": false } };
|
|
78
|
+
const required$z = ["kind", "type", "props"];
|
|
79
|
+
const unevaluatedProperties$A = false;
|
|
80
|
+
const alert = {
|
|
81
|
+
$schema: $schema$A,
|
|
82
|
+
$id: $id$A,
|
|
83
|
+
title: title$A,
|
|
84
|
+
type: type$A,
|
|
85
|
+
$defs: $defs$A,
|
|
86
|
+
allOf: allOf$A,
|
|
87
|
+
properties: properties$z,
|
|
88
|
+
required: required$z,
|
|
89
|
+
unevaluatedProperties: unevaluatedProperties$A
|
|
90
|
+
};
|
|
91
|
+
const $schema$z = "https://json-schema.org/draft/2020-12/schema";
|
|
92
|
+
const $id$z = "https://golemui.com/schemas/components/button.schema.json";
|
|
93
|
+
const title$z = "Button Widget";
|
|
94
|
+
const type$z = "object";
|
|
95
|
+
const $defs$z = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "variantProp": { "enum": ["filled", "outlined", "link"] }, "iconProp": { "type": "string" }, "iconPositionProp": { "enum": ["left", "right"] } };
|
|
96
|
+
const allOf$z = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
|
|
97
|
+
const properties$y = { "kind": { "const": "action" }, "type": { "const": "button" }, "actionType": { "enum": ["button", "submit"] }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "props": { "type": "object", "properties": { "variant": { "$ref": "#/$defs/variantProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "iconPosition": { "$ref": "#/$defs/iconPositionProp" } }, "patternProperties": { "^variant\\.[^.]+$": { "$ref": "#/$defs/variantProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^iconPosition\\.[^.]+$": { "$ref": "#/$defs/iconPositionProp" } }, "additionalProperties": false } };
|
|
98
|
+
const patternProperties$u = { "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" } };
|
|
99
|
+
const required$y = ["kind", "type"];
|
|
100
|
+
const unevaluatedProperties$z = false;
|
|
101
|
+
const button = {
|
|
102
|
+
$schema: $schema$z,
|
|
103
|
+
$id: $id$z,
|
|
104
|
+
title: title$z,
|
|
105
|
+
type: type$z,
|
|
106
|
+
$defs: $defs$z,
|
|
107
|
+
allOf: allOf$z,
|
|
108
|
+
properties: properties$y,
|
|
109
|
+
patternProperties: patternProperties$u,
|
|
110
|
+
required: required$y,
|
|
111
|
+
unevaluatedProperties: unevaluatedProperties$z
|
|
112
|
+
};
|
|
113
|
+
const $schema$y = "https://json-schema.org/draft/2020-12/schema";
|
|
114
|
+
const $id$y = "https://golemui.com/schemas/components/calendar.schema.json";
|
|
115
|
+
const title$y = "Calendar Widget";
|
|
116
|
+
const type$y = "object";
|
|
117
|
+
const $defs$y = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "prevMonthIconProp": { "type": "string" }, "nextMonthIconProp": { "type": "string" }, "prevMonthAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "nextMonthAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "dayFormatProp": { "description": "Formatting of day numbers in the calendar grid (`numeric` = 1–31, `2-digit` = 01–31)", "enum": ["numeric", "2-digit"] }, "weekdayFormatProp": { "description": "Formatting of weekday column headers (`short` = Mon, `long` = Monday, `narrow` = M)", "enum": ["short", "long", "narrow"] }, "monthFormatProp": { "description": "Formatting of the month heading (`long` = January, `short` = Jan, `narrow` = J, `numeric` = 1, `2-digit` = 01)", "enum": ["numeric", "2-digit", "long", "short", "narrow"] }, "minDateProp": { "type": "string", "description": "ISO-8601 date string for the earliest selectable date (inclusive)" }, "maxDateProp": { "type": "string", "description": "ISO-8601 date string for the latest selectable date (inclusive)" }, "numberOfMonthsProp": { "type": "number", "description": "Number of month panels to display side by side. Defaults to 1." }, "disabledRangesProp": { "type": "array", "description": "Date ranges that are shown but cannot be selected", "items": { "$ref": "../common.schema.json#/$defs/dateRange" } } };
|
|
118
|
+
const allOf$y = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
|
|
119
|
+
const properties$x = { "kind": { "const": "input" }, "type": { "const": "calendar" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "hint": { "$ref": "#/$defs/hintProp" }, "prevMonthIcon": { "$ref": "#/$defs/prevMonthIconProp" }, "nextMonthIcon": { "$ref": "#/$defs/nextMonthIconProp" }, "prevMonthAriaLabel": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "nextMonthAriaLabel": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "dayFormat": { "$ref": "#/$defs/dayFormatProp" }, "weekdayFormat": { "$ref": "#/$defs/weekdayFormatProp" }, "monthFormat": { "$ref": "#/$defs/monthFormatProp" }, "minDate": { "$ref": "#/$defs/minDateProp" }, "maxDate": { "$ref": "#/$defs/maxDateProp" }, "numberOfMonths": { "$ref": "#/$defs/numberOfMonthsProp" }, "disabledRanges": { "$ref": "#/$defs/disabledRangesProp" } }, "patternProperties": { "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^prevMonthIcon\\.[^.]+$": { "$ref": "#/$defs/prevMonthIconProp" }, "^nextMonthIcon\\.[^.]+$": { "$ref": "#/$defs/nextMonthIconProp" }, "^prevMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "^nextMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "^dayFormat\\.[^.]+$": { "$ref": "#/$defs/dayFormatProp" }, "^weekdayFormat\\.[^.]+$": { "$ref": "#/$defs/weekdayFormatProp" }, "^monthFormat\\.[^.]+$": { "$ref": "#/$defs/monthFormatProp" }, "^minDate\\.[^.]+$": { "$ref": "#/$defs/minDateProp" }, "^maxDate\\.[^.]+$": { "$ref": "#/$defs/maxDateProp" }, "^numberOfMonths\\.[^.]+$": { "$ref": "#/$defs/numberOfMonthsProp" }, "^disabledRanges\\.[^.]+$": { "$ref": "#/$defs/disabledRangesProp" } }, "additionalProperties": false } };
|
|
120
|
+
const patternProperties$t = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
|
|
121
|
+
const required$x = ["kind", "type", "path"];
|
|
122
|
+
const unevaluatedProperties$y = false;
|
|
123
|
+
const calendar = {
|
|
124
|
+
$schema: $schema$y,
|
|
125
|
+
$id: $id$y,
|
|
126
|
+
title: title$y,
|
|
127
|
+
type: type$y,
|
|
128
|
+
$defs: $defs$y,
|
|
129
|
+
allOf: allOf$y,
|
|
130
|
+
properties: properties$x,
|
|
131
|
+
patternProperties: patternProperties$t,
|
|
132
|
+
required: required$x,
|
|
133
|
+
unevaluatedProperties: unevaluatedProperties$y
|
|
134
|
+
};
|
|
135
|
+
const $schema$x = "https://json-schema.org/draft/2020-12/schema";
|
|
136
|
+
const $id$x = "https://golemui.com/schemas/components/datetimecalendar.schema.json";
|
|
137
|
+
const title$x = "DateTimeCalendar Widget";
|
|
138
|
+
const type$x = "object";
|
|
139
|
+
const $defs$x = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "prevMonthIconProp": { "type": "string" }, "nextMonthIconProp": { "type": "string" }, "prevMonthAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "nextMonthAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "dayFormatProp": { "description": "Formatting of day numbers in the calendar grid (`numeric` = 1–31, `2-digit` = 01–31)", "enum": ["numeric", "2-digit"] }, "weekdayFormatProp": { "description": "Formatting of weekday column headers (`short` = Mon, `long` = Monday, `narrow` = M)", "enum": ["short", "long", "narrow"] }, "monthFormatProp": { "description": "Formatting of the month heading (`long` = January, `short` = Jan, `narrow` = J, `numeric` = 1, `2-digit` = 01)", "enum": ["numeric", "2-digit", "long", "short", "narrow"] }, "minDateProp": { "type": "string", "description": "ISO-8601 date string for the earliest selectable date (inclusive)" }, "maxDateProp": { "type": "string", "description": "ISO-8601 date string for the latest selectable date (inclusive)" }, "numberOfMonthsProp": { "type": "number", "description": "Number of month panels to display side by side. Defaults to 1. The time row and grid render on the first panel only." }, "disabledRangesProp": { "type": "array", "description": "Date ranges that are shown but cannot be selected", "items": { "$ref": "../common.schema.json#/$defs/dateRange" } }, "hourFormatProp": { "enum": ["12", "24"] }, "allowCustomTimeProp": { "type": "boolean" }, "minuteStepProp": { "type": "number", "minimum": 1 }, "isoTimeProp": { "type": "string", "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?$" }, "disabledTimeRangesProp": { "type": "array", "description": "Time ranges rendered disabled; entries optionally scope to a date and/or weekdays", "items": { "type": "object", "properties": { "start": { "$ref": "#/$defs/isoTimeProp" }, "end": { "$ref": "#/$defs/isoTimeProp" }, "date": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "description": "ISO date: the range only applies on that date" }, "weekdays": { "type": "array", "items": { "type": "integer", "minimum": 0, "maximum": 6 }, "description": "Date.prototype.getDay() numbering: 0=Sunday … 6=Saturday" } }, "required": ["start", "end"], "additionalProperties": false } } };
|
|
140
|
+
const allOf$x = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
|
|
141
|
+
const properties$w = { "kind": { "const": "input" }, "type": { "const": "dateTimeCalendar" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "minTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledTimeRangeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "noAvailableTimesMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "hint": { "$ref": "#/$defs/hintProp" }, "prevMonthIcon": { "$ref": "#/$defs/prevMonthIconProp" }, "nextMonthIcon": { "$ref": "#/$defs/nextMonthIconProp" }, "prevMonthAriaLabel": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "nextMonthAriaLabel": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "dayFormat": { "$ref": "#/$defs/dayFormatProp" }, "weekdayFormat": { "$ref": "#/$defs/weekdayFormatProp" }, "monthFormat": { "$ref": "#/$defs/monthFormatProp" }, "minDate": { "$ref": "#/$defs/minDateProp" }, "maxDate": { "$ref": "#/$defs/maxDateProp" }, "numberOfMonths": { "$ref": "#/$defs/numberOfMonthsProp" }, "disabledRanges": { "$ref": "#/$defs/disabledRangesProp" }, "hourFormat": { "$ref": "#/$defs/hourFormatProp" }, "minuteStep": { "$ref": "#/$defs/minuteStepProp" }, "minTime": { "$ref": "#/$defs/isoTimeProp" }, "maxTime": { "$ref": "#/$defs/isoTimeProp" }, "disabledTimeRanges": { "$ref": "#/$defs/disabledTimeRangesProp" }, "allowCustomTime": { "$ref": "#/$defs/allowCustomTimeProp" } }, "patternProperties": { "^minTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^disabledTimeRangeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^noAvailableTimesMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^prevMonthIcon\\.[^.]+$": { "$ref": "#/$defs/prevMonthIconProp" }, "^nextMonthIcon\\.[^.]+$": { "$ref": "#/$defs/nextMonthIconProp" }, "^prevMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "^nextMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "^dayFormat\\.[^.]+$": { "$ref": "#/$defs/dayFormatProp" }, "^weekdayFormat\\.[^.]+$": { "$ref": "#/$defs/weekdayFormatProp" }, "^monthFormat\\.[^.]+$": { "$ref": "#/$defs/monthFormatProp" }, "^minDate\\.[^.]+$": { "$ref": "#/$defs/minDateProp" }, "^maxDate\\.[^.]+$": { "$ref": "#/$defs/maxDateProp" }, "^numberOfMonths\\.[^.]+$": { "$ref": "#/$defs/numberOfMonthsProp" }, "^disabledRanges\\.[^.]+$": { "$ref": "#/$defs/disabledRangesProp" }, "^hourFormat\\.[^.]+$": { "$ref": "#/$defs/hourFormatProp" }, "^minuteStep\\.[^.]+$": { "$ref": "#/$defs/minuteStepProp" }, "^minTime\\.[^.]+$": { "$ref": "#/$defs/isoTimeProp" }, "^maxTime\\.[^.]+$": { "$ref": "#/$defs/isoTimeProp" }, "^disabledTimeRanges\\.[^.]+$": { "$ref": "#/$defs/disabledTimeRangesProp" }, "^allowCustomTime\\.[^.]+$": { "$ref": "#/$defs/allowCustomTimeProp" } }, "additionalProperties": false } };
|
|
142
|
+
const patternProperties$s = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
|
|
143
|
+
const required$w = ["kind", "type", "path"];
|
|
144
|
+
const unevaluatedProperties$x = false;
|
|
145
|
+
const datetimecalendar = {
|
|
146
|
+
$schema: $schema$x,
|
|
147
|
+
$id: $id$x,
|
|
148
|
+
title: title$x,
|
|
149
|
+
type: type$x,
|
|
150
|
+
$defs: $defs$x,
|
|
151
|
+
allOf: allOf$x,
|
|
152
|
+
properties: properties$w,
|
|
153
|
+
patternProperties: patternProperties$s,
|
|
154
|
+
required: required$w,
|
|
155
|
+
unevaluatedProperties: unevaluatedProperties$x
|
|
156
|
+
};
|
|
157
|
+
const $schema$w = "https://json-schema.org/draft/2020-12/schema";
|
|
158
|
+
const $id$w = "https://golemui.com/schemas/components/datetimepicker.schema.json";
|
|
159
|
+
const title$w = "DateTimePicker Widget";
|
|
160
|
+
const type$w = "object";
|
|
161
|
+
const $defs$w = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "prevMonthIconProp": { "type": "string" }, "nextMonthIconProp": { "type": "string" }, "prevMonthAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "nextMonthAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "dayFormatProp": { "description": "Formatting of day numbers in the calendar grid (`numeric` = 1–31, `2-digit` = 01–31)", "enum": ["numeric", "2-digit"] }, "weekdayFormatProp": { "description": "Formatting of weekday column headers (`short` = Mon, `long` = Monday, `narrow` = M)", "enum": ["short", "long", "narrow"] }, "monthFormatProp": { "description": "Formatting of the month heading (`long` = January, `short` = Jan, `narrow` = J, `numeric` = 1, `2-digit` = 01)", "enum": ["numeric", "2-digit", "long", "short", "narrow"] }, "minDateProp": { "type": "string", "description": "ISO-8601 date string for the earliest selectable date (inclusive)" }, "maxDateProp": { "type": "string", "description": "ISO-8601 date string for the latest selectable date (inclusive)" }, "numberOfMonthsProp": { "type": "number", "description": "Number of month panels to display side by side. Defaults to 1. The time row and grid render on the first panel only." }, "disabledRangesProp": { "type": "array", "description": "Date ranges that are shown but cannot be selected", "items": { "$ref": "../common.schema.json#/$defs/dateRange" } }, "hourFormatProp": { "enum": ["12", "24"] }, "allowCustomTimeProp": { "type": "boolean" }, "minuteStepProp": { "type": "number", "minimum": 1 }, "isoTimeProp": { "type": "string", "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?$" }, "disabledTimeRangesProp": { "type": "array", "description": "Time ranges rendered disabled; entries optionally scope to a date and/or weekdays", "items": { "type": "object", "properties": { "start": { "$ref": "#/$defs/isoTimeProp" }, "end": { "$ref": "#/$defs/isoTimeProp" }, "date": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "description": "ISO date: the range only applies on that date" }, "weekdays": { "type": "array", "items": { "type": "integer", "minimum": 0, "maximum": 6 }, "description": "Date.prototype.getDay() numbering: 0=Sunday … 6=Saturday" } }, "required": ["start", "end"], "additionalProperties": false } } };
|
|
162
|
+
const allOf$w = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
|
|
163
|
+
const properties$v = { "kind": { "const": "input" }, "type": { "const": "dateTimePicker" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "invalidDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "minDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDateRangeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "minTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledTimeRangeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "noAvailableTimesMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "prevMonthIcon": { "$ref": "#/$defs/prevMonthIconProp" }, "nextMonthIcon": { "$ref": "#/$defs/nextMonthIconProp" }, "prevMonthAriaLabel": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "nextMonthAriaLabel": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "dayFormat": { "$ref": "#/$defs/dayFormatProp" }, "weekdayFormat": { "$ref": "#/$defs/weekdayFormatProp" }, "monthFormat": { "$ref": "#/$defs/monthFormatProp" }, "minDate": { "$ref": "#/$defs/minDateProp" }, "maxDate": { "$ref": "#/$defs/maxDateProp" }, "numberOfMonths": { "$ref": "#/$defs/numberOfMonthsProp" }, "disabledRanges": { "$ref": "#/$defs/disabledRangesProp" }, "hourFormat": { "$ref": "#/$defs/hourFormatProp" }, "minuteStep": { "$ref": "#/$defs/minuteStepProp" }, "minTime": { "$ref": "#/$defs/isoTimeProp" }, "maxTime": { "$ref": "#/$defs/isoTimeProp" }, "disabledTimeRanges": { "$ref": "#/$defs/disabledTimeRangesProp" }, "allowCustomTime": { "$ref": "#/$defs/allowCustomTimeProp" } }, "patternProperties": { "^invalidDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^minDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^disabledDateRangeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^minTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^disabledTimeRangeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^noAvailableTimesMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^prevMonthIcon\\.[^.]+$": { "$ref": "#/$defs/prevMonthIconProp" }, "^nextMonthIcon\\.[^.]+$": { "$ref": "#/$defs/nextMonthIconProp" }, "^prevMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "^nextMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "^dayFormat\\.[^.]+$": { "$ref": "#/$defs/dayFormatProp" }, "^weekdayFormat\\.[^.]+$": { "$ref": "#/$defs/weekdayFormatProp" }, "^monthFormat\\.[^.]+$": { "$ref": "#/$defs/monthFormatProp" }, "^minDate\\.[^.]+$": { "$ref": "#/$defs/minDateProp" }, "^maxDate\\.[^.]+$": { "$ref": "#/$defs/maxDateProp" }, "^numberOfMonths\\.[^.]+$": { "$ref": "#/$defs/numberOfMonthsProp" }, "^disabledRanges\\.[^.]+$": { "$ref": "#/$defs/disabledRangesProp" }, "^hourFormat\\.[^.]+$": { "$ref": "#/$defs/hourFormatProp" }, "^minuteStep\\.[^.]+$": { "$ref": "#/$defs/minuteStepProp" }, "^minTime\\.[^.]+$": { "$ref": "#/$defs/isoTimeProp" }, "^maxTime\\.[^.]+$": { "$ref": "#/$defs/isoTimeProp" }, "^disabledTimeRanges\\.[^.]+$": { "$ref": "#/$defs/disabledTimeRangesProp" }, "^allowCustomTime\\.[^.]+$": { "$ref": "#/$defs/allowCustomTimeProp" } }, "additionalProperties": false } };
|
|
164
|
+
const patternProperties$r = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
|
|
165
|
+
const required$v = ["kind", "type", "path"];
|
|
166
|
+
const unevaluatedProperties$w = false;
|
|
167
|
+
const datetimepicker = {
|
|
168
|
+
$schema: $schema$w,
|
|
169
|
+
$id: $id$w,
|
|
170
|
+
title: title$w,
|
|
171
|
+
type: type$w,
|
|
172
|
+
$defs: $defs$w,
|
|
173
|
+
allOf: allOf$w,
|
|
174
|
+
properties: properties$v,
|
|
175
|
+
patternProperties: patternProperties$r,
|
|
176
|
+
required: required$v,
|
|
177
|
+
unevaluatedProperties: unevaluatedProperties$w
|
|
178
|
+
};
|
|
179
|
+
const $schema$v = "https://json-schema.org/draft/2020-12/schema";
|
|
180
|
+
const $id$v = "https://golemui.com/schemas/components/checkbox.schema.json";
|
|
181
|
+
const title$v = "Checkbox Widget";
|
|
182
|
+
const type$v = "object";
|
|
183
|
+
const $defs$v = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "checkboxPositionProp": { "enum": ["left", "right"], "default": "left" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" } };
|
|
184
|
+
const allOf$v = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
|
|
185
|
+
const properties$u = { "kind": { "const": "input" }, "type": { "const": "checkbox" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "boolean" }, "props": { "type": "object", "properties": { "checkboxPosition": { "$ref": "#/$defs/checkboxPositionProp" }, "hint": { "$ref": "#/$defs/hintProp" } }, "patternProperties": { "^checkboxPosition\\.[^.]+$": { "$ref": "#/$defs/checkboxPositionProp" }, "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" } }, "additionalProperties": false } };
|
|
186
|
+
const patternProperties$q = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
|
|
187
|
+
const required$u = ["kind", "type", "path"];
|
|
188
|
+
const unevaluatedProperties$v = false;
|
|
189
|
+
const checkbox = {
|
|
8
190
|
$schema: $schema$v,
|
|
9
191
|
$id: $id$v,
|
|
10
192
|
title: title$v,
|
|
11
|
-
|
|
193
|
+
type: type$v,
|
|
194
|
+
$defs: $defs$v,
|
|
195
|
+
allOf: allOf$v,
|
|
196
|
+
properties: properties$u,
|
|
197
|
+
patternProperties: patternProperties$q,
|
|
198
|
+
required: required$u,
|
|
199
|
+
unevaluatedProperties: unevaluatedProperties$v
|
|
12
200
|
};
|
|
13
201
|
const $schema$u = "https://json-schema.org/draft/2020-12/schema";
|
|
14
|
-
const $id$u = "https://golemui.com/schemas/
|
|
15
|
-
const title$u = "
|
|
16
|
-
const type$
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
-
const $
|
|
21
|
-
const
|
|
202
|
+
const $id$u = "https://golemui.com/schemas/components/currency.schema.json";
|
|
203
|
+
const title$u = "Currency Widget";
|
|
204
|
+
const type$u = "object";
|
|
205
|
+
const $defs$u = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "currencyProp": { "type": "string" }, "stepProp": { "type": "number" }, "maximumFractionDigitsProp": { "type": "number" }, "minimumFractionDigitsProp": { "type": "number" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "placeholderProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "autocompleteProp": { "type": "string" } };
|
|
206
|
+
const allOf$u = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
|
|
207
|
+
const properties$t = { "kind": { "const": "input" }, "type": { "const": "currency" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "number" }, "props": { "type": "object", "properties": { "currency": { "$ref": "#/$defs/currencyProp" }, "step": { "$ref": "#/$defs/stepProp" }, "maximumFractionDigits": { "$ref": "#/$defs/maximumFractionDigitsProp" }, "minimumFractionDigits": { "$ref": "#/$defs/minimumFractionDigitsProp" }, "hint": { "$ref": "#/$defs/hintProp" }, "placeholder": { "$ref": "#/$defs/placeholderProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "autocomplete": { "$ref": "#/$defs/autocompleteProp" } }, "patternProperties": { "^currency\\.[^.]+$": { "$ref": "#/$defs/currencyProp" }, "^step\\.[^.]+$": { "$ref": "#/$defs/stepProp" }, "^maximumFractionDigits\\.[^.]+$": { "$ref": "#/$defs/maximumFractionDigitsProp" }, "^minimumFractionDigits\\.[^.]+$": { "$ref": "#/$defs/minimumFractionDigitsProp" }, "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^placeholder\\.[^.]+$": { "$ref": "#/$defs/placeholderProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^autocomplete\\.[^.]+$": { "$ref": "#/$defs/autocompleteProp" } }, "additionalProperties": false } };
|
|
208
|
+
const patternProperties$p = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
|
|
209
|
+
const required$t = ["kind", "type", "path"];
|
|
210
|
+
const unevaluatedProperties$u = false;
|
|
211
|
+
const currency = {
|
|
22
212
|
$schema: $schema$u,
|
|
23
213
|
$id: $id$u,
|
|
24
214
|
title: title$u,
|
|
25
|
-
type: type$
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
215
|
+
type: type$u,
|
|
216
|
+
$defs: $defs$u,
|
|
217
|
+
allOf: allOf$u,
|
|
218
|
+
properties: properties$t,
|
|
219
|
+
patternProperties: patternProperties$p,
|
|
220
|
+
required: required$t,
|
|
221
|
+
unevaluatedProperties: unevaluatedProperties$u
|
|
30
222
|
};
|
|
31
223
|
const $schema$t = "https://json-schema.org/draft/2020-12/schema";
|
|
32
|
-
const $id$t = "https://golemui.com/schemas/
|
|
33
|
-
const title$t = "
|
|
34
|
-
const
|
|
35
|
-
const
|
|
224
|
+
const $id$t = "https://golemui.com/schemas/components/custom.schema.json";
|
|
225
|
+
const title$t = "Custom Widget";
|
|
226
|
+
const description = "Fallback for user-registered custom components. Matches any widget whose `type` is NOT a built-in. Structural fields required by the widget's `kind` are validated (input -> path, layout -> children); `props` is an open object validated at runtime by the custom component itself.";
|
|
227
|
+
const type$t = "object";
|
|
228
|
+
const allOf$t = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }, { "properties": { "type": { "not": { "$ref": "../common.schema.json#/$defs/knownWidgetTypes" } } } }];
|
|
229
|
+
const oneOf = [{ "$ref": "#/$defs/customInput" }, { "$ref": "#/$defs/customDisplay" }, { "$ref": "#/$defs/customAction" }, { "$ref": "#/$defs/customLayout" }];
|
|
230
|
+
const unevaluatedProperties$t = false;
|
|
231
|
+
const $defs$t = { "customInput": { "type": "object", "description": "Custom input widget. Binds to form data via `path`; `props` is open.", "properties": { "kind": { "const": "input" }, "type": { "type": "string" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabled": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonly": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": true, "props": { "type": "object" } }, "patternProperties": { "^label\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^disabled\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "^readonly\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } }, "required": ["kind", "type", "path"] }, "customDisplay": { "type": "object", "description": "Custom display widget. No data binding; `props` is open.", "properties": { "kind": { "const": "display" }, "type": { "type": "string" }, "props": { "type": "object" } }, "required": ["kind", "type"] }, "customAction": { "type": "object", "description": "Custom action widget; `props` is open.", "properties": { "kind": { "const": "action" }, "type": { "type": "string" }, "label": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabled": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "props": { "type": "object" } }, "patternProperties": { "^label\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^disabled\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/boolOrWhen" } }, "required": ["kind", "type"] }, "customLayout": { "type": "object", "description": "Custom layout widget. Contains `children`; `props` is open.", "properties": { "kind": { "const": "layout" }, "type": { "type": "string" }, "children": { "type": "array", "minItems": 1, "items": { "$ref": "../form.schema.json#/$defs/formWidget" } }, "props": { "type": "object" } }, "required": ["kind", "type", "children"] } };
|
|
232
|
+
const custom = {
|
|
36
233
|
$schema: $schema$t,
|
|
37
234
|
$id: $id$t,
|
|
38
235
|
title: title$t,
|
|
39
|
-
|
|
236
|
+
description,
|
|
237
|
+
type: type$t,
|
|
238
|
+
allOf: allOf$t,
|
|
239
|
+
oneOf,
|
|
240
|
+
unevaluatedProperties: unevaluatedProperties$t,
|
|
241
|
+
$defs: $defs$t
|
|
40
242
|
};
|
|
41
243
|
const $schema$s = "https://json-schema.org/draft/2020-12/schema";
|
|
42
|
-
const $id$s = "https://golemui.com/schemas/
|
|
43
|
-
const title$s = "
|
|
44
|
-
const $
|
|
45
|
-
const
|
|
244
|
+
const $id$s = "https://golemui.com/schemas/components/dateinput.schema.json";
|
|
245
|
+
const title$s = "DateInput Widget";
|
|
246
|
+
const type$s = "object";
|
|
247
|
+
const $defs$s = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "minDateProp": { "type": "string" }, "maxDateProp": { "type": "string" } };
|
|
248
|
+
const allOf$s = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
|
|
249
|
+
const properties$s = { "kind": { "const": "input" }, "type": { "const": "dateInput" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "invalidDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "minDate": { "$ref": "#/$defs/minDateProp" }, "maxDate": { "$ref": "#/$defs/maxDateProp" }, "minDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" } }, "patternProperties": { "^invalidDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^minDate\\.[^.]+$": { "$ref": "#/$defs/minDateProp" }, "^maxDate\\.[^.]+$": { "$ref": "#/$defs/maxDateProp" }, "^minDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" } }, "additionalProperties": false } };
|
|
250
|
+
const patternProperties$o = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
|
|
251
|
+
const required$s = ["kind", "type", "path"];
|
|
252
|
+
const unevaluatedProperties$s = false;
|
|
253
|
+
const dateinput = {
|
|
46
254
|
$schema: $schema$s,
|
|
47
255
|
$id: $id$s,
|
|
48
256
|
title: title$s,
|
|
49
|
-
|
|
257
|
+
type: type$s,
|
|
258
|
+
$defs: $defs$s,
|
|
259
|
+
allOf: allOf$s,
|
|
260
|
+
properties: properties$s,
|
|
261
|
+
patternProperties: patternProperties$o,
|
|
262
|
+
required: required$s,
|
|
263
|
+
unevaluatedProperties: unevaluatedProperties$s
|
|
50
264
|
};
|
|
51
265
|
const $schema$r = "https://json-schema.org/draft/2020-12/schema";
|
|
52
|
-
const $id$r = "https://golemui.com/schemas/components/
|
|
53
|
-
const title$r = "
|
|
266
|
+
const $id$r = "https://golemui.com/schemas/components/datepicker.schema.json";
|
|
267
|
+
const title$r = "DatePicker Widget";
|
|
54
268
|
const type$r = "object";
|
|
55
|
-
const $defs$r = { "
|
|
269
|
+
const $defs$r = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "prevMonthIconProp": { "type": "string" }, "nextMonthIconProp": { "type": "string" }, "prevMonthAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "nextMonthAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "dayFormatProp": { "enum": ["numeric", "2-digit"] }, "weekdayFormatProp": { "enum": ["short", "long", "narrow"] }, "monthFormatProp": { "enum": ["numeric", "2-digit", "long", "short", "narrow"] }, "minDateProp": { "type": "string" }, "maxDateProp": { "type": "string" }, "numberOfMonthsProp": { "type": "number" }, "disabledRangesProp": { "type": "array", "items": { "$ref": "../common.schema.json#/$defs/dateRange" } } };
|
|
56
270
|
const allOf$r = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
|
|
57
|
-
const properties$
|
|
58
|
-
const
|
|
271
|
+
const properties$r = { "kind": { "const": "input" }, "type": { "const": "datePicker" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "invalidDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "minDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDateRangeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "prevMonthIcon": { "$ref": "#/$defs/prevMonthIconProp" }, "nextMonthIcon": { "$ref": "#/$defs/nextMonthIconProp" }, "prevMonthAriaLabel": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "nextMonthAriaLabel": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "dayFormat": { "$ref": "#/$defs/dayFormatProp" }, "weekdayFormat": { "$ref": "#/$defs/weekdayFormatProp" }, "monthFormat": { "$ref": "#/$defs/monthFormatProp" }, "minDate": { "$ref": "#/$defs/minDateProp" }, "maxDate": { "$ref": "#/$defs/maxDateProp" }, "numberOfMonths": { "$ref": "#/$defs/numberOfMonthsProp" }, "disabledRanges": { "$ref": "#/$defs/disabledRangesProp" } }, "patternProperties": { "^invalidDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^minDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^disabledDateRangeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^prevMonthIcon\\.[^.]+$": { "$ref": "#/$defs/prevMonthIconProp" }, "^nextMonthIcon\\.[^.]+$": { "$ref": "#/$defs/nextMonthIconProp" }, "^prevMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "^nextMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "^dayFormat\\.[^.]+$": { "$ref": "#/$defs/dayFormatProp" }, "^weekdayFormat\\.[^.]+$": { "$ref": "#/$defs/weekdayFormatProp" }, "^monthFormat\\.[^.]+$": { "$ref": "#/$defs/monthFormatProp" }, "^minDate\\.[^.]+$": { "$ref": "#/$defs/minDateProp" }, "^maxDate\\.[^.]+$": { "$ref": "#/$defs/maxDateProp" }, "^numberOfMonths\\.[^.]+$": { "$ref": "#/$defs/numberOfMonthsProp" }, "^disabledRanges\\.[^.]+$": { "$ref": "#/$defs/disabledRangesProp" } }, "additionalProperties": false } };
|
|
272
|
+
const patternProperties$n = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
|
|
273
|
+
const required$r = ["kind", "type", "path"];
|
|
59
274
|
const unevaluatedProperties$r = false;
|
|
60
|
-
const
|
|
275
|
+
const datepicker = {
|
|
61
276
|
$schema: $schema$r,
|
|
62
277
|
$id: $id$r,
|
|
63
278
|
title: title$r,
|
|
64
279
|
type: type$r,
|
|
65
280
|
$defs: $defs$r,
|
|
66
281
|
allOf: allOf$r,
|
|
67
|
-
properties: properties$
|
|
68
|
-
|
|
282
|
+
properties: properties$r,
|
|
283
|
+
patternProperties: patternProperties$n,
|
|
284
|
+
required: required$r,
|
|
69
285
|
unevaluatedProperties: unevaluatedProperties$r
|
|
70
286
|
};
|
|
71
287
|
const $schema$q = "https://json-schema.org/draft/2020-12/schema";
|
|
72
|
-
const $id$q = "https://golemui.com/schemas/components/
|
|
73
|
-
const title$q = "
|
|
288
|
+
const $id$q = "https://golemui.com/schemas/components/datetimeinput.schema.json";
|
|
289
|
+
const title$q = "DateTimeInput Widget";
|
|
74
290
|
const type$q = "object";
|
|
75
|
-
const $defs$q = { "
|
|
291
|
+
const $defs$q = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "hourFormatProp": { "enum": ["12", "24"] }, "minuteStepProp": { "type": "number", "minimum": 1 }, "minDateProp": { "type": "string" }, "maxDateProp": { "type": "string" }, "minTimeProp": { "type": "string" }, "maxTimeProp": { "type": "string" } };
|
|
76
292
|
const allOf$q = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
|
|
77
|
-
const properties$
|
|
78
|
-
const
|
|
293
|
+
const properties$q = { "kind": { "const": "input" }, "type": { "const": "dateTimeInput" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "invalidDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "hourFormat": { "$ref": "#/$defs/hourFormatProp" }, "minuteStep": { "$ref": "#/$defs/minuteStepProp" }, "minDate": { "$ref": "#/$defs/minDateProp" }, "maxDate": { "$ref": "#/$defs/maxDateProp" }, "minTime": { "$ref": "#/$defs/minTimeProp" }, "maxTime": { "$ref": "#/$defs/maxTimeProp" }, "minDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "minTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" } }, "patternProperties": { "^invalidDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^minDate\\.[^.]+$": { "$ref": "#/$defs/minDateProp" }, "^maxDate\\.[^.]+$": { "$ref": "#/$defs/maxDateProp" }, "^minTime\\.[^.]+$": { "$ref": "#/$defs/minTimeProp" }, "^maxTime\\.[^.]+$": { "$ref": "#/$defs/maxTimeProp" }, "^minDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^minTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^hourFormat\\.[^.]+$": { "$ref": "#/$defs/hourFormatProp" }, "^minuteStep\\.[^.]+$": { "$ref": "#/$defs/minuteStepProp" } }, "additionalProperties": false } };
|
|
294
|
+
const patternProperties$m = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
|
|
295
|
+
const required$q = ["kind", "type", "path"];
|
|
79
296
|
const unevaluatedProperties$q = false;
|
|
80
|
-
const
|
|
297
|
+
const datetimeinput = {
|
|
81
298
|
$schema: $schema$q,
|
|
82
299
|
$id: $id$q,
|
|
83
300
|
title: title$q,
|
|
84
301
|
type: type$q,
|
|
85
302
|
$defs: $defs$q,
|
|
86
303
|
allOf: allOf$q,
|
|
87
|
-
properties: properties$
|
|
88
|
-
|
|
304
|
+
properties: properties$q,
|
|
305
|
+
patternProperties: patternProperties$m,
|
|
306
|
+
required: required$q,
|
|
89
307
|
unevaluatedProperties: unevaluatedProperties$q
|
|
90
308
|
};
|
|
91
309
|
const $schema$p = "https://json-schema.org/draft/2020-12/schema";
|
|
92
|
-
const $id$p = "https://golemui.com/schemas/components/
|
|
93
|
-
const title$p = "
|
|
310
|
+
const $id$p = "https://golemui.com/schemas/components/dropdown.schema.json";
|
|
311
|
+
const title$p = "Dropdown Widget";
|
|
94
312
|
const type$p = "object";
|
|
95
|
-
const $defs$p = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "
|
|
313
|
+
const $defs$p = { "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "placeholderProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "itemsProp": { "type": "array", "description": "Items are either primitive values (string/number) or arbitrary record objects (paired with `labelField`/`valueField`/`itemRenderer` for custom rendering). Note: widget templates inside items are only supported on `repeater`, not here.", "items": { "type": ["string", "number", "object"] } }, "labelFieldProp": { "type": "string", "description": 'Object property used as the display label when items are objects (e.g. `"name"` reads `item.name`)' }, "valueFieldProp": { "type": "string", "description": 'Object property used as the stored value when items are objects (e.g. `"id"` stores `item.id`)' }, "searchFieldsProp": { "type": "array", "description": "Object properties searched when the user types in the filter box. Defaults to `labelField` when omitted.", "items": { "type": "string" } }, "heightProp": { "type": "number", "description": "Fixed pixel height of the dropdown list panel (enables virtual scrolling for large lists)" }, "itemHeightProp": { "type": "number", "description": "Fixed pixel height of each item row, required for virtual scrolling when `height` is set" }, "itemRendererProp": { "type": "string", "description": "Name of a registered custom item renderer component used to display each option" }, "inputDebounceProp": { "type": "number", "description": "Milliseconds to debounce the filter input before firing the `on.filter` event (default: 0)" }, "autocompleteProp": { "type": "string", "description": "HTML `autocomplete` attribute applied to the underlying input element" } };
|
|
96
314
|
const allOf$p = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
|
|
97
|
-
const properties$
|
|
98
|
-
const patternProperties$
|
|
99
|
-
const required$
|
|
315
|
+
const properties$p = { "kind": { "const": "input" }, "type": { "const": "dropdown" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "required": ["items"], "properties": { "placeholder": { "$ref": "#/$defs/placeholderProp" }, "hint": { "$ref": "#/$defs/hintProp" }, "items": { "$ref": "#/$defs/itemsProp" }, "labelField": { "$ref": "#/$defs/labelFieldProp" }, "valueField": { "$ref": "#/$defs/valueFieldProp" }, "searchFields": { "$ref": "#/$defs/searchFieldsProp" }, "height": { "$ref": "#/$defs/heightProp" }, "itemHeight": { "$ref": "#/$defs/itemHeightProp" }, "itemRenderer": { "$ref": "#/$defs/itemRendererProp" }, "inputDebounce": { "$ref": "#/$defs/inputDebounceProp" }, "autocomplete": { "$ref": "#/$defs/autocompleteProp" } }, "patternProperties": { "^placeholder\\.[^.]+$": { "$ref": "#/$defs/placeholderProp" }, "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^items\\.[^.]+$": { "$ref": "#/$defs/itemsProp" }, "^labelField\\.[^.]+$": { "$ref": "#/$defs/labelFieldProp" }, "^valueField\\.[^.]+$": { "$ref": "#/$defs/valueFieldProp" }, "^searchFields\\.[^.]+$": { "$ref": "#/$defs/searchFieldsProp" }, "^height\\.[^.]+$": { "$ref": "#/$defs/heightProp" }, "^itemHeight\\.[^.]+$": { "$ref": "#/$defs/itemHeightProp" }, "^itemRenderer\\.[^.]+$": { "$ref": "#/$defs/itemRendererProp" }, "^inputDebounce\\.[^.]+$": { "$ref": "#/$defs/inputDebounceProp" }, "^autocomplete\\.[^.]+$": { "$ref": "#/$defs/autocompleteProp" } }, "additionalProperties": false } };
|
|
316
|
+
const patternProperties$l = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
|
|
317
|
+
const required$p = ["kind", "type", "path", "props"];
|
|
100
318
|
const unevaluatedProperties$p = false;
|
|
101
|
-
const
|
|
319
|
+
const dropdown = {
|
|
102
320
|
$schema: $schema$p,
|
|
103
321
|
$id: $id$p,
|
|
104
322
|
title: title$p,
|
|
105
323
|
type: type$p,
|
|
106
324
|
$defs: $defs$p,
|
|
107
325
|
allOf: allOf$p,
|
|
108
|
-
properties: properties$
|
|
109
|
-
patternProperties: patternProperties$
|
|
110
|
-
required: required$
|
|
326
|
+
properties: properties$p,
|
|
327
|
+
patternProperties: patternProperties$l,
|
|
328
|
+
required: required$p,
|
|
111
329
|
unevaluatedProperties: unevaluatedProperties$p
|
|
112
330
|
};
|
|
113
331
|
const $schema$o = "https://json-schema.org/draft/2020-12/schema";
|
|
114
|
-
const $id$o = "https://golemui.com/schemas/components/
|
|
115
|
-
const title$o = "
|
|
332
|
+
const $id$o = "https://golemui.com/schemas/components/flex.schema.json";
|
|
333
|
+
const title$o = "Flex Widget";
|
|
116
334
|
const type$o = "object";
|
|
117
|
-
const $defs$o = { "
|
|
335
|
+
const $defs$o = { "directionProp": { "enum": ["row", "row-reverse", "column", "column-reverse"] }, "justifyProp": { "enum": ["center", "start", "end", "stretch"] }, "alignProp": { "enum": ["center", "start", "end", "space-between", "space-around", "space-evenly"] }, "gapProp": { "type": "number" } };
|
|
118
336
|
const allOf$o = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
|
|
119
|
-
const properties$
|
|
120
|
-
const
|
|
121
|
-
const required$n = ["kind", "type", "path"];
|
|
337
|
+
const properties$o = { "kind": { "const": "layout" }, "type": { "const": "flex" }, "children": { "type": "array", "minItems": 1, "items": { "$ref": "../form.schema.json#/$defs/formWidget" } }, "props": { "type": "object", "properties": { "direction": { "$ref": "#/$defs/directionProp" }, "justify": { "$ref": "#/$defs/justifyProp" }, "align": { "$ref": "#/$defs/alignProp" }, "gap": { "$ref": "#/$defs/gapProp" } }, "patternProperties": { "^direction\\.[^.]+$": { "$ref": "#/$defs/directionProp" }, "^justify\\.[^.]+$": { "$ref": "#/$defs/justifyProp" }, "^align\\.[^.]+$": { "$ref": "#/$defs/alignProp" }, "^gap\\.[^.]+$": { "$ref": "#/$defs/gapProp" } }, "additionalProperties": false } };
|
|
338
|
+
const required$o = ["kind", "type", "children"];
|
|
122
339
|
const unevaluatedProperties$o = false;
|
|
123
|
-
const
|
|
340
|
+
const flex = {
|
|
124
341
|
$schema: $schema$o,
|
|
125
342
|
$id: $id$o,
|
|
126
343
|
title: title$o,
|
|
127
344
|
type: type$o,
|
|
128
345
|
$defs: $defs$o,
|
|
129
346
|
allOf: allOf$o,
|
|
130
|
-
properties: properties$
|
|
131
|
-
|
|
132
|
-
required: required$n,
|
|
347
|
+
properties: properties$o,
|
|
348
|
+
required: required$o,
|
|
133
349
|
unevaluatedProperties: unevaluatedProperties$o
|
|
134
350
|
};
|
|
135
351
|
const $schema$n = "https://json-schema.org/draft/2020-12/schema";
|
|
136
|
-
const $id$n = "https://golemui.com/schemas/components/
|
|
137
|
-
const title$n = "
|
|
352
|
+
const $id$n = "https://golemui.com/schemas/components/grid.schema.json";
|
|
353
|
+
const title$n = "Grid Widget";
|
|
138
354
|
const type$n = "object";
|
|
139
|
-
const $defs$n = { "
|
|
355
|
+
const $defs$n = { "directionProp": { "enum": ["row", "column"] }, "columnGapProp": { "type": "number" }, "rowGapProp": { "type": "number" }, "autoFitProp": { "type": "boolean" }, "alignProp": { "enum": ["center", "start", "end", "space-between", "space-around", "space-evenly", "stretch"] }, "justifyProp": { "enum": ["center", "start", "end", "stretch"] } };
|
|
140
356
|
const allOf$n = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
|
|
141
|
-
const properties$
|
|
142
|
-
const
|
|
143
|
-
const required$m = ["kind", "type", "path"];
|
|
357
|
+
const properties$n = { "kind": { "const": "layout" }, "type": { "const": "grid" }, "children": { "type": "array", "minItems": 1, "items": { "$ref": "../form.schema.json#/$defs/formWidget" } }, "props": { "type": "object", "properties": { "direction": { "$ref": "#/$defs/directionProp" }, "columnGap": { "$ref": "#/$defs/columnGapProp" }, "rowGap": { "$ref": "#/$defs/rowGapProp" }, "autoFit": { "$ref": "#/$defs/autoFitProp" }, "align": { "$ref": "#/$defs/alignProp" }, "justify": { "$ref": "#/$defs/justifyProp" } }, "patternProperties": { "^direction\\.[^.]+$": { "$ref": "#/$defs/directionProp" }, "^columnGap\\.[^.]+$": { "$ref": "#/$defs/columnGapProp" }, "^rowGap\\.[^.]+$": { "$ref": "#/$defs/rowGapProp" }, "^autoFit\\.[^.]+$": { "$ref": "#/$defs/autoFitProp" }, "^align\\.[^.]+$": { "$ref": "#/$defs/alignProp" }, "^justify\\.[^.]+$": { "$ref": "#/$defs/justifyProp" } }, "additionalProperties": false } };
|
|
358
|
+
const required$n = ["kind", "type", "children"];
|
|
144
359
|
const unevaluatedProperties$n = false;
|
|
145
|
-
const
|
|
360
|
+
const grid = {
|
|
146
361
|
$schema: $schema$n,
|
|
147
362
|
$id: $id$n,
|
|
148
363
|
title: title$n,
|
|
149
364
|
type: type$n,
|
|
150
365
|
$defs: $defs$n,
|
|
151
366
|
allOf: allOf$n,
|
|
152
|
-
properties: properties$
|
|
153
|
-
|
|
154
|
-
required: required$m,
|
|
367
|
+
properties: properties$n,
|
|
368
|
+
required: required$n,
|
|
155
369
|
unevaluatedProperties: unevaluatedProperties$n
|
|
156
370
|
};
|
|
157
371
|
const $schema$m = "https://json-schema.org/draft/2020-12/schema";
|
|
158
|
-
const $id$m = "https://golemui.com/schemas/components/
|
|
159
|
-
const title$m = "
|
|
372
|
+
const $id$m = "https://golemui.com/schemas/components/list.schema.json";
|
|
373
|
+
const title$m = "List Widget";
|
|
160
374
|
const type$m = "object";
|
|
161
|
-
const $defs$m = { "
|
|
375
|
+
const $defs$m = { "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "itemsProp": { "type": "array", "description": "Items are either primitive values (string/number) or arbitrary record objects (paired with `labelField`/`valueField`/`itemRenderer` for custom rendering). Note: widget templates inside items are only supported on `repeater`, not here.", "items": { "type": ["string", "number", "object"] } }, "labelFieldProp": { "type": "string" }, "valueFieldProp": { "type": "string" }, "heightProp": { "type": "number" }, "itemHeightProp": { "type": "number" }, "itemRendererProp": { "type": "string" } };
|
|
162
376
|
const allOf$m = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
|
|
163
|
-
const properties$
|
|
164
|
-
const patternProperties$
|
|
165
|
-
const required$
|
|
377
|
+
const properties$m = { "kind": { "const": "input" }, "type": { "const": "list" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "hint": { "$ref": "#/$defs/hintProp" }, "items": { "$ref": "#/$defs/itemsProp" }, "labelField": { "$ref": "#/$defs/labelFieldProp" }, "valueField": { "$ref": "#/$defs/valueFieldProp" }, "height": { "$ref": "#/$defs/heightProp" }, "itemHeight": { "$ref": "#/$defs/itemHeightProp" }, "itemRenderer": { "$ref": "#/$defs/itemRendererProp" } }, "patternProperties": { "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^items\\.[^.]+$": { "$ref": "#/$defs/itemsProp" }, "^labelField\\.[^.]+$": { "$ref": "#/$defs/labelFieldProp" }, "^valueField\\.[^.]+$": { "$ref": "#/$defs/valueFieldProp" }, "^height\\.[^.]+$": { "$ref": "#/$defs/heightProp" }, "^itemHeight\\.[^.]+$": { "$ref": "#/$defs/itemHeightProp" }, "^itemRenderer\\.[^.]+$": { "$ref": "#/$defs/itemRendererProp" } }, "additionalProperties": false } };
|
|
378
|
+
const patternProperties$k = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
|
|
379
|
+
const required$m = ["kind", "type", "path"];
|
|
166
380
|
const unevaluatedProperties$m = false;
|
|
167
|
-
const
|
|
381
|
+
const list = {
|
|
168
382
|
$schema: $schema$m,
|
|
169
383
|
$id: $id$m,
|
|
170
384
|
title: title$m,
|
|
171
385
|
type: type$m,
|
|
172
386
|
$defs: $defs$m,
|
|
173
387
|
allOf: allOf$m,
|
|
174
|
-
properties: properties$
|
|
175
|
-
patternProperties: patternProperties$
|
|
176
|
-
required: required$
|
|
388
|
+
properties: properties$m,
|
|
389
|
+
patternProperties: patternProperties$k,
|
|
390
|
+
required: required$m,
|
|
177
391
|
unevaluatedProperties: unevaluatedProperties$m
|
|
178
392
|
};
|
|
179
393
|
const $schema$l = "https://json-schema.org/draft/2020-12/schema";
|
|
180
|
-
const $id$l = "https://golemui.com/schemas/components/
|
|
181
|
-
const title$l = "
|
|
182
|
-
const description = "Fallback for user-registered custom components. Matches any widget whose `type` is NOT a built-in. Structural fields required by the widget's `kind` are validated (input -> path, layout -> children); `props` is an open object validated at runtime by the custom component itself.";
|
|
394
|
+
const $id$l = "https://golemui.com/schemas/components/markdown.schema.json";
|
|
395
|
+
const title$l = "Markdown Widget";
|
|
183
396
|
const type$l = "object";
|
|
184
|
-
const
|
|
185
|
-
const
|
|
397
|
+
const $defs$l = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "placeholderProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "counterModeProp": { "enum": ["remaining", "current"] }, "minimumHeightProp": { "type": "number" }, "autoGrowProp": { "type": "boolean" }, "defaultOpenPreviewProp": { "type": "boolean" }, "maxLengthProp": { "type": "number" }, "toolsProp": { "type": "array", "items": { "enum": ["H", "B", "I", "Q", "L", "OL", "UL", "|"] } }, "splitViewTitleProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "headingTitleProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "boldTitleProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "italicTitleProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "strikethroughTitleProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "quoteTitleProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "linkTitleProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "orderedListTitleProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "unorderedListTitleProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "autocompleteProp": { "type": "string" } };
|
|
398
|
+
const allOf$l = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
|
|
399
|
+
const properties$l = { "kind": { "const": "input" }, "type": { "const": "markdown" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "string" }, "props": { "type": "object", "properties": { "hint": { "$ref": "#/$defs/hintProp" }, "placeholder": { "$ref": "#/$defs/placeholderProp" }, "counterMode": { "$ref": "#/$defs/counterModeProp" }, "minimumHeight": { "$ref": "#/$defs/minimumHeightProp" }, "autoGrow": { "$ref": "#/$defs/autoGrowProp" }, "defaultOpenPreview": { "$ref": "#/$defs/defaultOpenPreviewProp" }, "maxLength": { "$ref": "#/$defs/maxLengthProp" }, "tools": { "$ref": "#/$defs/toolsProp" }, "splitViewTitle": { "$ref": "#/$defs/splitViewTitleProp" }, "headingTitle": { "$ref": "#/$defs/headingTitleProp" }, "boldTitle": { "$ref": "#/$defs/boldTitleProp" }, "italicTitle": { "$ref": "#/$defs/italicTitleProp" }, "strikethroughTitle": { "$ref": "#/$defs/strikethroughTitleProp" }, "quoteTitle": { "$ref": "#/$defs/quoteTitleProp" }, "linkTitle": { "$ref": "#/$defs/linkTitleProp" }, "orderedListTitle": { "$ref": "#/$defs/orderedListTitleProp" }, "unorderedListTitle": { "$ref": "#/$defs/unorderedListTitleProp" }, "autocomplete": { "$ref": "#/$defs/autocompleteProp" } }, "patternProperties": { "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^placeholder\\.[^.]+$": { "$ref": "#/$defs/placeholderProp" }, "^counterMode\\.[^.]+$": { "$ref": "#/$defs/counterModeProp" }, "^minimumHeight\\.[^.]+$": { "$ref": "#/$defs/minimumHeightProp" }, "^autoGrow\\.[^.]+$": { "$ref": "#/$defs/autoGrowProp" }, "^defaultOpenPreview\\.[^.]+$": { "$ref": "#/$defs/defaultOpenPreviewProp" }, "^maxLength\\.[^.]+$": { "$ref": "#/$defs/maxLengthProp" }, "^tools\\.[^.]+$": { "$ref": "#/$defs/toolsProp" }, "^splitViewTitle\\.[^.]+$": { "$ref": "#/$defs/splitViewTitleProp" }, "^headingTitle\\.[^.]+$": { "$ref": "#/$defs/headingTitleProp" }, "^boldTitle\\.[^.]+$": { "$ref": "#/$defs/boldTitleProp" }, "^italicTitle\\.[^.]+$": { "$ref": "#/$defs/italicTitleProp" }, "^strikethroughTitle\\.[^.]+$": { "$ref": "#/$defs/strikethroughTitleProp" }, "^quoteTitle\\.[^.]+$": { "$ref": "#/$defs/quoteTitleProp" }, "^linkTitle\\.[^.]+$": { "$ref": "#/$defs/linkTitleProp" }, "^orderedListTitle\\.[^.]+$": { "$ref": "#/$defs/orderedListTitleProp" }, "^unorderedListTitle\\.[^.]+$": { "$ref": "#/$defs/unorderedListTitleProp" }, "^autocomplete\\.[^.]+$": { "$ref": "#/$defs/autocompleteProp" } }, "additionalProperties": false } };
|
|
400
|
+
const patternProperties$j = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
|
|
401
|
+
const required$l = ["kind", "type", "path"];
|
|
186
402
|
const unevaluatedProperties$l = false;
|
|
187
|
-
const
|
|
188
|
-
const custom = {
|
|
403
|
+
const markdown = {
|
|
189
404
|
$schema: $schema$l,
|
|
190
405
|
$id: $id$l,
|
|
191
406
|
title: title$l,
|
|
192
|
-
description,
|
|
193
407
|
type: type$l,
|
|
408
|
+
$defs: $defs$l,
|
|
194
409
|
allOf: allOf$l,
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
410
|
+
properties: properties$l,
|
|
411
|
+
patternProperties: patternProperties$j,
|
|
412
|
+
required: required$l,
|
|
413
|
+
unevaluatedProperties: unevaluatedProperties$l
|
|
198
414
|
};
|
|
199
415
|
const $schema$k = "https://json-schema.org/draft/2020-12/schema";
|
|
200
|
-
const $id$k = "https://golemui.com/schemas/components/
|
|
201
|
-
const title$k = "
|
|
416
|
+
const $id$k = "https://golemui.com/schemas/components/markdowntext.schema.json";
|
|
417
|
+
const title$k = "MarkdownText Widget";
|
|
202
418
|
const type$k = "object";
|
|
203
|
-
const $defs$k = { "
|
|
419
|
+
const $defs$k = { "mdProp": { "$ref": "../common.schema.json#/$defs/localizable" } };
|
|
204
420
|
const allOf$k = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
|
|
205
|
-
const properties$k = { "kind": { "const": "
|
|
206
|
-
const
|
|
207
|
-
const required$k = ["kind", "type", "path"];
|
|
421
|
+
const properties$k = { "kind": { "const": "display" }, "type": { "const": "markdownText" }, "props": { "type": "object", "properties": { "md": { "$ref": "#/$defs/mdProp" } }, "patternProperties": { "^md\\.[^.]+$": { "$ref": "#/$defs/mdProp" } }, "required": ["md"], "additionalProperties": false } };
|
|
422
|
+
const required$k = ["kind", "type", "props"];
|
|
208
423
|
const unevaluatedProperties$k = false;
|
|
209
|
-
const
|
|
424
|
+
const markdowntext = {
|
|
210
425
|
$schema: $schema$k,
|
|
211
426
|
$id: $id$k,
|
|
212
427
|
title: title$k,
|
|
@@ -214,21 +429,20 @@ const dateinput = {
|
|
|
214
429
|
$defs: $defs$k,
|
|
215
430
|
allOf: allOf$k,
|
|
216
431
|
properties: properties$k,
|
|
217
|
-
patternProperties: patternProperties$g,
|
|
218
432
|
required: required$k,
|
|
219
433
|
unevaluatedProperties: unevaluatedProperties$k
|
|
220
434
|
};
|
|
221
435
|
const $schema$j = "https://json-schema.org/draft/2020-12/schema";
|
|
222
|
-
const $id$j = "https://golemui.com/schemas/components/
|
|
223
|
-
const title$j = "
|
|
436
|
+
const $id$j = "https://golemui.com/schemas/components/number.schema.json";
|
|
437
|
+
const title$j = "Number Widget";
|
|
224
438
|
const type$j = "object";
|
|
225
|
-
const $defs$j = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "
|
|
439
|
+
const $defs$j = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "placeholderProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "stepProp": { "type": "number" }, "minimumProp": { "type": "number" }, "maximumProp": { "type": "number" }, "autoGrowProp": { "type": "boolean" }, "autocompleteProp": { "type": "string" } };
|
|
226
440
|
const allOf$j = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
|
|
227
|
-
const properties$j = { "kind": { "const": "input" }, "type": { "const": "
|
|
228
|
-
const patternProperties$
|
|
441
|
+
const properties$j = { "kind": { "const": "input" }, "type": { "const": "number" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "number" }, "props": { "type": "object", "properties": { "placeholder": { "$ref": "#/$defs/placeholderProp" }, "hint": { "$ref": "#/$defs/hintProp" }, "step": { "$ref": "#/$defs/stepProp" }, "minimum": { "$ref": "#/$defs/minimumProp" }, "maximum": { "$ref": "#/$defs/maximumProp" }, "autoGrow": { "$ref": "#/$defs/autoGrowProp" }, "autocomplete": { "$ref": "#/$defs/autocompleteProp" } }, "patternProperties": { "^placeholder\\.[^.]+$": { "$ref": "#/$defs/placeholderProp" }, "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^step\\.[^.]+$": { "$ref": "#/$defs/stepProp" }, "^minimum\\.[^.]+$": { "$ref": "#/$defs/minimumProp" }, "^maximum\\.[^.]+$": { "$ref": "#/$defs/maximumProp" }, "^autoGrow\\.[^.]+$": { "$ref": "#/$defs/autoGrowProp" }, "^autocomplete\\.[^.]+$": { "$ref": "#/$defs/autocompleteProp" } }, "additionalProperties": false } };
|
|
442
|
+
const patternProperties$i = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
|
|
229
443
|
const required$j = ["kind", "type", "path"];
|
|
230
444
|
const unevaluatedProperties$j = false;
|
|
231
|
-
const
|
|
445
|
+
const numberWidget = {
|
|
232
446
|
$schema: $schema$j,
|
|
233
447
|
$id: $id$j,
|
|
234
448
|
title: title$j,
|
|
@@ -236,21 +450,21 @@ const datepicker = {
|
|
|
236
450
|
$defs: $defs$j,
|
|
237
451
|
allOf: allOf$j,
|
|
238
452
|
properties: properties$j,
|
|
239
|
-
patternProperties: patternProperties$
|
|
453
|
+
patternProperties: patternProperties$i,
|
|
240
454
|
required: required$j,
|
|
241
455
|
unevaluatedProperties: unevaluatedProperties$j
|
|
242
456
|
};
|
|
243
457
|
const $schema$i = "https://json-schema.org/draft/2020-12/schema";
|
|
244
|
-
const $id$i = "https://golemui.com/schemas/components/
|
|
245
|
-
const title$i = "
|
|
458
|
+
const $id$i = "https://golemui.com/schemas/components/password.schema.json";
|
|
459
|
+
const title$i = "Password Widget";
|
|
246
460
|
const type$i = "object";
|
|
247
|
-
const $defs$i = { "
|
|
461
|
+
const $defs$i = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "placeholderProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "showPasswordIconProp": { "type": "string" }, "hidePasswordIconProp": { "type": "string" }, "showPasswordLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "hidePasswordLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "autocompleteProp": { "type": "string" } };
|
|
248
462
|
const allOf$i = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
|
|
249
|
-
const properties$i = { "kind": { "const": "input" }, "type": { "const": "
|
|
250
|
-
const patternProperties$
|
|
251
|
-
const required$i = ["kind", "type", "path"
|
|
463
|
+
const properties$i = { "kind": { "const": "input" }, "type": { "const": "password" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "string" }, "props": { "type": "object", "properties": { "hint": { "$ref": "#/$defs/hintProp" }, "placeholder": { "$ref": "#/$defs/placeholderProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "showPasswordIcon": { "$ref": "#/$defs/showPasswordIconProp" }, "hidePasswordIcon": { "$ref": "#/$defs/hidePasswordIconProp" }, "showPasswordLabel": { "$ref": "#/$defs/showPasswordLabelProp" }, "hidePasswordLabel": { "$ref": "#/$defs/hidePasswordLabelProp" }, "autocomplete": { "$ref": "#/$defs/autocompleteProp" } }, "patternProperties": { "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^placeholder\\.[^.]+$": { "$ref": "#/$defs/placeholderProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^showPasswordIcon\\.[^.]+$": { "$ref": "#/$defs/showPasswordIconProp" }, "^hidePasswordIcon\\.[^.]+$": { "$ref": "#/$defs/hidePasswordIconProp" }, "^showPasswordLabel\\.[^.]+$": { "$ref": "#/$defs/showPasswordLabelProp" }, "^hidePasswordLabel\\.[^.]+$": { "$ref": "#/$defs/hidePasswordLabelProp" }, "^autocomplete\\.[^.]+$": { "$ref": "#/$defs/autocompleteProp" } }, "additionalProperties": false } };
|
|
464
|
+
const patternProperties$h = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
|
|
465
|
+
const required$i = ["kind", "type", "path"];
|
|
252
466
|
const unevaluatedProperties$i = false;
|
|
253
|
-
const
|
|
467
|
+
const password = {
|
|
254
468
|
$schema: $schema$i,
|
|
255
469
|
$id: $id$i,
|
|
256
470
|
title: title$i,
|
|
@@ -258,20 +472,21 @@ const dropdown = {
|
|
|
258
472
|
$defs: $defs$i,
|
|
259
473
|
allOf: allOf$i,
|
|
260
474
|
properties: properties$i,
|
|
261
|
-
patternProperties: patternProperties$
|
|
475
|
+
patternProperties: patternProperties$h,
|
|
262
476
|
required: required$i,
|
|
263
477
|
unevaluatedProperties: unevaluatedProperties$i
|
|
264
478
|
};
|
|
265
479
|
const $schema$h = "https://json-schema.org/draft/2020-12/schema";
|
|
266
|
-
const $id$h = "https://golemui.com/schemas/components/
|
|
267
|
-
const title$h = "
|
|
480
|
+
const $id$h = "https://golemui.com/schemas/components/radiogroup.schema.json";
|
|
481
|
+
const title$h = "RadioGroup Widget";
|
|
268
482
|
const type$h = "object";
|
|
269
|
-
const $defs$h = { "
|
|
483
|
+
const $defs$h = { "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "optionsProp": { "type": "array", "description": "Options may be primitive values (string/number), structured `{ label, value }` records, or arbitrary objects (paired with `labelField`/`valueField` for custom rendering).", "items": { "type": ["string", "number", "object"] } }, "labelFieldProp": { "type": "string", "description": 'Object property used as the display label when options are objects (e.g. `"name"` reads `item.name`)' }, "valueFieldProp": { "type": "string", "description": 'Object property used as the stored value when options are objects (e.g. `"id"` stores `item.id`)' }, "directionProp": { "description": "Layout direction for the radio buttons (`row` = horizontal, `column` = vertical). Defaults to `column`.", "enum": ["row", "column"], "default": "column" } };
|
|
270
484
|
const allOf$h = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
|
|
271
|
-
const properties$h = { "kind": { "const": "
|
|
272
|
-
const
|
|
485
|
+
const properties$h = { "kind": { "const": "input" }, "type": { "const": "radiogroup" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "hint": { "$ref": "#/$defs/hintProp" }, "options": { "$ref": "#/$defs/optionsProp" }, "labelField": { "$ref": "#/$defs/labelFieldProp" }, "valueField": { "$ref": "#/$defs/valueFieldProp" }, "direction": { "$ref": "#/$defs/directionProp" } }, "patternProperties": { "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^options\\.[^.]+$": { "$ref": "#/$defs/optionsProp" }, "^labelField\\.[^.]+$": { "$ref": "#/$defs/labelFieldProp" }, "^valueField\\.[^.]+$": { "$ref": "#/$defs/valueFieldProp" }, "^direction\\.[^.]+$": { "$ref": "#/$defs/directionProp" } }, "additionalProperties": false } };
|
|
486
|
+
const patternProperties$g = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
|
|
487
|
+
const required$h = ["kind", "type", "path"];
|
|
273
488
|
const unevaluatedProperties$h = false;
|
|
274
|
-
const
|
|
489
|
+
const radiogroup = {
|
|
275
490
|
$schema: $schema$h,
|
|
276
491
|
$id: $id$h,
|
|
277
492
|
title: title$h,
|
|
@@ -279,19 +494,21 @@ const flex = {
|
|
|
279
494
|
$defs: $defs$h,
|
|
280
495
|
allOf: allOf$h,
|
|
281
496
|
properties: properties$h,
|
|
497
|
+
patternProperties: patternProperties$g,
|
|
282
498
|
required: required$h,
|
|
283
499
|
unevaluatedProperties: unevaluatedProperties$h
|
|
284
500
|
};
|
|
285
501
|
const $schema$g = "https://json-schema.org/draft/2020-12/schema";
|
|
286
|
-
const $id$g = "https://golemui.com/schemas/components/
|
|
287
|
-
const title$g = "
|
|
502
|
+
const $id$g = "https://golemui.com/schemas/components/rangecalendar.schema.json";
|
|
503
|
+
const title$g = "RangeCalendar Widget";
|
|
288
504
|
const type$g = "object";
|
|
289
|
-
const $defs$g = { "
|
|
505
|
+
const $defs$g = { "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "prevMonthIconProp": { "type": "string" }, "nextMonthIconProp": { "type": "string" }, "prevMonthAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "nextMonthAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "removePillAriaLabelProp": { "description": "Accessible label for the button that clears the selected range pill", "$ref": "../common.schema.json#/$defs/localizable" }, "dayFormatProp": { "description": "Formatting of day numbers in the calendar grid (`numeric` = 1–31, `2-digit` = 01–31)", "enum": ["numeric", "2-digit"] }, "weekdayFormatProp": { "description": "Formatting of weekday column headers (`short` = Mon, `long` = Monday, `narrow` = M)", "enum": ["short", "long", "narrow"] }, "monthFormatProp": { "description": "Formatting of the month heading (`long` = January, `short` = Jan, `narrow` = J, `numeric` = 1, `2-digit` = 01)", "enum": ["numeric", "2-digit", "long", "short", "narrow"] }, "minDateProp": { "type": "string", "description": "ISO-8601 date string for the earliest selectable date (inclusive)" }, "maxDateProp": { "type": "string", "description": "ISO-8601 date string for the latest selectable date (inclusive)" }, "numberOfMonthsProp": { "type": "number", "description": "Number of month panels to display side by side. Defaults to 1." }, "disabledRangesProp": { "type": "array", "description": "Date ranges that are shown but cannot be selected", "items": { "$ref": "../common.schema.json#/$defs/dateRange" } } };
|
|
290
506
|
const allOf$g = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
|
|
291
|
-
const properties$g = { "kind": { "const": "
|
|
292
|
-
const
|
|
507
|
+
const properties$g = { "kind": { "const": "input" }, "type": { "const": "rangeCalendar" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "hint": { "$ref": "#/$defs/hintProp" }, "prevMonthIcon": { "$ref": "#/$defs/prevMonthIconProp" }, "nextMonthIcon": { "$ref": "#/$defs/nextMonthIconProp" }, "prevMonthAriaLabel": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "nextMonthAriaLabel": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "removePillAriaLabel": { "$ref": "#/$defs/removePillAriaLabelProp" }, "dayFormat": { "$ref": "#/$defs/dayFormatProp" }, "weekdayFormat": { "$ref": "#/$defs/weekdayFormatProp" }, "monthFormat": { "$ref": "#/$defs/monthFormatProp" }, "minDate": { "$ref": "#/$defs/minDateProp" }, "maxDate": { "$ref": "#/$defs/maxDateProp" }, "numberOfMonths": { "$ref": "#/$defs/numberOfMonthsProp" }, "disabledRanges": { "$ref": "#/$defs/disabledRangesProp" }, "disabledDateRangeMessage": { "$ref": "../common.schema.json#/$defs/localizable" } }, "patternProperties": { "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^prevMonthIcon\\.[^.]+$": { "$ref": "#/$defs/prevMonthIconProp" }, "^nextMonthIcon\\.[^.]+$": { "$ref": "#/$defs/nextMonthIconProp" }, "^prevMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "^nextMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "^removePillAriaLabel\\.[^.]+$": { "$ref": "#/$defs/removePillAriaLabelProp" }, "^dayFormat\\.[^.]+$": { "$ref": "#/$defs/dayFormatProp" }, "^weekdayFormat\\.[^.]+$": { "$ref": "#/$defs/weekdayFormatProp" }, "^monthFormat\\.[^.]+$": { "$ref": "#/$defs/monthFormatProp" }, "^minDate\\.[^.]+$": { "$ref": "#/$defs/minDateProp" }, "^maxDate\\.[^.]+$": { "$ref": "#/$defs/maxDateProp" }, "^numberOfMonths\\.[^.]+$": { "$ref": "#/$defs/numberOfMonthsProp" }, "^disabledRanges\\.[^.]+$": { "$ref": "#/$defs/disabledRangesProp" }, "^disabledDateRangeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" } }, "additionalProperties": false } };
|
|
508
|
+
const patternProperties$f = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
|
|
509
|
+
const required$g = ["kind", "type", "path"];
|
|
293
510
|
const unevaluatedProperties$g = false;
|
|
294
|
-
const
|
|
511
|
+
const rangecalendar = {
|
|
295
512
|
$schema: $schema$g,
|
|
296
513
|
$id: $id$g,
|
|
297
514
|
title: title$g,
|
|
@@ -299,20 +516,21 @@ const grid = {
|
|
|
299
516
|
$defs: $defs$g,
|
|
300
517
|
allOf: allOf$g,
|
|
301
518
|
properties: properties$g,
|
|
519
|
+
patternProperties: patternProperties$f,
|
|
302
520
|
required: required$g,
|
|
303
521
|
unevaluatedProperties: unevaluatedProperties$g
|
|
304
522
|
};
|
|
305
523
|
const $schema$f = "https://json-schema.org/draft/2020-12/schema";
|
|
306
|
-
const $id$f = "https://golemui.com/schemas/components/
|
|
307
|
-
const title$f = "
|
|
524
|
+
const $id$f = "https://golemui.com/schemas/components/rangedateinput.schema.json";
|
|
525
|
+
const title$f = "RangeDateInput Widget";
|
|
308
526
|
const type$f = "object";
|
|
309
|
-
const $defs$f = { "
|
|
527
|
+
const $defs$f = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "separatorProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "removePillAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "startDateAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "endDateAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" } };
|
|
310
528
|
const allOf$f = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
|
|
311
|
-
const properties$f = { "kind": { "const": "input" }, "type": { "const": "
|
|
312
|
-
const patternProperties$
|
|
529
|
+
const properties$f = { "kind": { "const": "input" }, "type": { "const": "rangeDateInput" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "invalidDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "separator": { "$ref": "#/$defs/separatorProp" }, "removePillAriaLabel": { "$ref": "#/$defs/removePillAriaLabelProp" }, "startDateAriaLabel": { "$ref": "#/$defs/startDateAriaLabelProp" }, "endDateAriaLabel": { "$ref": "#/$defs/endDateAriaLabelProp" } }, "patternProperties": { "^invalidDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^separator\\.[^.]+$": { "$ref": "#/$defs/separatorProp" }, "^removePillAriaLabel\\.[^.]+$": { "$ref": "#/$defs/removePillAriaLabelProp" }, "^startDateAriaLabel\\.[^.]+$": { "$ref": "#/$defs/startDateAriaLabelProp" }, "^endDateAriaLabel\\.[^.]+$": { "$ref": "#/$defs/endDateAriaLabelProp" } }, "additionalProperties": false } };
|
|
530
|
+
const patternProperties$e = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
|
|
313
531
|
const required$f = ["kind", "type", "path"];
|
|
314
532
|
const unevaluatedProperties$f = false;
|
|
315
|
-
const
|
|
533
|
+
const rangedateinput = {
|
|
316
534
|
$schema: $schema$f,
|
|
317
535
|
$id: $id$f,
|
|
318
536
|
title: title$f,
|
|
@@ -320,21 +538,21 @@ const list = {
|
|
|
320
538
|
$defs: $defs$f,
|
|
321
539
|
allOf: allOf$f,
|
|
322
540
|
properties: properties$f,
|
|
323
|
-
patternProperties: patternProperties$
|
|
541
|
+
patternProperties: patternProperties$e,
|
|
324
542
|
required: required$f,
|
|
325
543
|
unevaluatedProperties: unevaluatedProperties$f
|
|
326
544
|
};
|
|
327
545
|
const $schema$e = "https://json-schema.org/draft/2020-12/schema";
|
|
328
|
-
const $id$e = "https://golemui.com/schemas/components/
|
|
329
|
-
const title$e = "
|
|
546
|
+
const $id$e = "https://golemui.com/schemas/components/rangedatetimeinput.schema.json";
|
|
547
|
+
const title$e = "RangeDateTimeInput Widget";
|
|
330
548
|
const type$e = "object";
|
|
331
|
-
const $defs$e = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "
|
|
549
|
+
const $defs$e = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "separatorProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "removePillAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "startDateTimeAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "endDateTimeAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "hourFormatProp": { "enum": ["12", "24"] }, "minuteStepProp": { "type": "number", "minimum": 1 }, "minDateTimeProp": { "type": "string", "description": "ISO-8601 date-time string for the earliest selectable date-time (inclusive). Each endpoint of the value is an instant, so the bound is an instant too." }, "maxDateTimeProp": { "type": "string", "description": "ISO-8601 date-time string for the latest selectable date-time (inclusive)" } };
|
|
332
550
|
const allOf$e = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
|
|
333
|
-
const properties$e = { "kind": { "const": "input" }, "type": { "const": "
|
|
334
|
-
const patternProperties$
|
|
551
|
+
const properties$e = { "kind": { "const": "input" }, "type": { "const": "rangeDateTimeInput" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "separator": { "$ref": "#/$defs/separatorProp" }, "removePillAriaLabel": { "$ref": "#/$defs/removePillAriaLabelProp" }, "startDateTimeAriaLabel": { "$ref": "#/$defs/startDateTimeAriaLabelProp" }, "endDateTimeAriaLabel": { "$ref": "#/$defs/endDateTimeAriaLabelProp" }, "hourFormat": { "$ref": "#/$defs/hourFormatProp" }, "minuteStep": { "$ref": "#/$defs/minuteStepProp" }, "invalidDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "minDateTime": { "$ref": "#/$defs/minDateTimeProp" }, "maxDateTime": { "$ref": "#/$defs/maxDateTimeProp" }, "minDateTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxDateTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" } }, "patternProperties": { "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^separator\\.[^.]+$": { "$ref": "#/$defs/separatorProp" }, "^removePillAriaLabel\\.[^.]+$": { "$ref": "#/$defs/removePillAriaLabelProp" }, "^startDateTimeAriaLabel\\.[^.]+$": { "$ref": "#/$defs/startDateTimeAriaLabelProp" }, "^endDateTimeAriaLabel\\.[^.]+$": { "$ref": "#/$defs/endDateTimeAriaLabelProp" }, "^hourFormat\\.[^.]+$": { "$ref": "#/$defs/hourFormatProp" }, "^minuteStep\\.[^.]+$": { "$ref": "#/$defs/minuteStepProp" }, "^invalidDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^minDateTime\\.[^.]+$": { "$ref": "#/$defs/minDateTimeProp" }, "^maxDateTime\\.[^.]+$": { "$ref": "#/$defs/maxDateTimeProp" }, "^minDateTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxDateTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" } }, "additionalProperties": false } };
|
|
552
|
+
const patternProperties$d = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
|
|
335
553
|
const required$e = ["kind", "type", "path"];
|
|
336
554
|
const unevaluatedProperties$e = false;
|
|
337
|
-
const
|
|
555
|
+
const rangedatetimeinput = {
|
|
338
556
|
$schema: $schema$e,
|
|
339
557
|
$id: $id$e,
|
|
340
558
|
title: title$e,
|
|
@@ -342,20 +560,21 @@ const markdown = {
|
|
|
342
560
|
$defs: $defs$e,
|
|
343
561
|
allOf: allOf$e,
|
|
344
562
|
properties: properties$e,
|
|
345
|
-
patternProperties: patternProperties$
|
|
563
|
+
patternProperties: patternProperties$d,
|
|
346
564
|
required: required$e,
|
|
347
565
|
unevaluatedProperties: unevaluatedProperties$e
|
|
348
566
|
};
|
|
349
567
|
const $schema$d = "https://json-schema.org/draft/2020-12/schema";
|
|
350
|
-
const $id$d = "https://golemui.com/schemas/components/
|
|
351
|
-
const title$d = "
|
|
568
|
+
const $id$d = "https://golemui.com/schemas/components/rangedatetimecalendar.schema.json";
|
|
569
|
+
const title$d = "RangeDateTimeCalendar Widget";
|
|
352
570
|
const type$d = "object";
|
|
353
|
-
const $defs$d = { "
|
|
571
|
+
const $defs$d = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "prevMonthIconProp": { "type": "string" }, "nextMonthIconProp": { "type": "string" }, "prevMonthAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "nextMonthAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "removePillAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "dayFormatProp": { "description": "Formatting of day numbers in the calendar grid (`numeric` = 1–31, `2-digit` = 01–31)", "enum": ["numeric", "2-digit"] }, "weekdayFormatProp": { "description": "Formatting of weekday column headers (`short` = Mon, `long` = Monday, `narrow` = M)", "enum": ["short", "long", "narrow"] }, "monthFormatProp": { "description": "Formatting of the month heading (`long` = January, `short` = Jan, `narrow` = J, `numeric` = 1, `2-digit` = 01)", "enum": ["numeric", "2-digit", "long", "short", "narrow"] }, "numberOfMonthsProp": { "type": "number", "description": "Number of month panels to display side by side. Defaults to 1. The time row renders on the first panel only." }, "hourFormatProp": { "enum": ["12", "24"] }, "minuteStepProp": { "type": "number", "minimum": 1 }, "allowCustomTimeProp": { "type": "boolean" }, "minDateTimeProp": { "type": "string", "description": "ISO-8601 date-time string for the earliest selectable instant (inclusive). Endpoints are instants, so the bound is an instant too." }, "maxDateTimeProp": { "type": "string", "description": "ISO-8601 date-time string for the latest selectable instant (inclusive)" }, "disabledRangesProp": { "type": "array", "description": "Disabled instant spans (in this widget's DateTimeRange coordinate system). Blocking a whole day is a span of 00:00:00–23:59:59.", "items": { "$ref": "../common.schema.json#/$defs/dateTimeRange" } } };
|
|
354
572
|
const allOf$d = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
|
|
355
|
-
const properties$d = { "kind": { "const": "
|
|
356
|
-
const
|
|
573
|
+
const properties$d = { "kind": { "const": "input" }, "type": { "const": "rangeDateTimeCalendar" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "hint": { "$ref": "#/$defs/hintProp" }, "prevMonthIcon": { "$ref": "#/$defs/prevMonthIconProp" }, "nextMonthIcon": { "$ref": "#/$defs/nextMonthIconProp" }, "prevMonthAriaLabel": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "nextMonthAriaLabel": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "removePillAriaLabel": { "$ref": "#/$defs/removePillAriaLabelProp" }, "dayFormat": { "$ref": "#/$defs/dayFormatProp" }, "weekdayFormat": { "$ref": "#/$defs/weekdayFormatProp" }, "monthFormat": { "$ref": "#/$defs/monthFormatProp" }, "numberOfMonths": { "$ref": "#/$defs/numberOfMonthsProp" }, "hourFormat": { "$ref": "#/$defs/hourFormatProp" }, "minuteStep": { "$ref": "#/$defs/minuteStepProp" }, "allowCustomTime": { "$ref": "#/$defs/allowCustomTimeProp" }, "startTimeLabel": { "$ref": "../common.schema.json#/$defs/localizable" }, "endTimeLabel": { "$ref": "../common.schema.json#/$defs/localizable" }, "minDateTime": { "$ref": "#/$defs/minDateTimeProp" }, "maxDateTime": { "$ref": "#/$defs/maxDateTimeProp" }, "minDateTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxDateTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledRanges": { "$ref": "#/$defs/disabledRangesProp" }, "disabledRangeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "noAvailableTimesMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "dayCountAriaLabel": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDayCountAriaLabel": { "$ref": "../common.schema.json#/$defs/localizable" } }, "patternProperties": { "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^prevMonthIcon\\.[^.]+$": { "$ref": "#/$defs/prevMonthIconProp" }, "^nextMonthIcon\\.[^.]+$": { "$ref": "#/$defs/nextMonthIconProp" }, "^prevMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "^nextMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "^removePillAriaLabel\\.[^.]+$": { "$ref": "#/$defs/removePillAriaLabelProp" }, "^dayFormat\\.[^.]+$": { "$ref": "#/$defs/dayFormatProp" }, "^weekdayFormat\\.[^.]+$": { "$ref": "#/$defs/weekdayFormatProp" }, "^monthFormat\\.[^.]+$": { "$ref": "#/$defs/monthFormatProp" }, "^numberOfMonths\\.[^.]+$": { "$ref": "#/$defs/numberOfMonthsProp" }, "^hourFormat\\.[^.]+$": { "$ref": "#/$defs/hourFormatProp" }, "^minuteStep\\.[^.]+$": { "$ref": "#/$defs/minuteStepProp" }, "^allowCustomTime\\.[^.]+$": { "$ref": "#/$defs/allowCustomTimeProp" }, "^startTimeLabel\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^endTimeLabel\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^minDateTime\\.[^.]+$": { "$ref": "#/$defs/minDateTimeProp" }, "^maxDateTime\\.[^.]+$": { "$ref": "#/$defs/maxDateTimeProp" }, "^minDateTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxDateTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^disabledRanges\\.[^.]+$": { "$ref": "#/$defs/disabledRangesProp" }, "^disabledRangeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^noAvailableTimesMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^dayCountAriaLabel\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^disabledDayCountAriaLabel\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" } }, "additionalProperties": false } };
|
|
574
|
+
const patternProperties$c = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
|
|
575
|
+
const required$d = ["kind", "type", "path"];
|
|
357
576
|
const unevaluatedProperties$d = false;
|
|
358
|
-
const
|
|
577
|
+
const rangedatetimecalendar = {
|
|
359
578
|
$schema: $schema$d,
|
|
360
579
|
$id: $id$d,
|
|
361
580
|
title: title$d,
|
|
@@ -363,20 +582,21 @@ const markdowntext = {
|
|
|
363
582
|
$defs: $defs$d,
|
|
364
583
|
allOf: allOf$d,
|
|
365
584
|
properties: properties$d,
|
|
585
|
+
patternProperties: patternProperties$c,
|
|
366
586
|
required: required$d,
|
|
367
587
|
unevaluatedProperties: unevaluatedProperties$d
|
|
368
588
|
};
|
|
369
589
|
const $schema$c = "https://json-schema.org/draft/2020-12/schema";
|
|
370
|
-
const $id$c = "https://golemui.com/schemas/components/
|
|
371
|
-
const title$c = "
|
|
590
|
+
const $id$c = "https://golemui.com/schemas/components/rangedatetimepicker.schema.json";
|
|
591
|
+
const title$c = "RangeDateTimePicker Widget";
|
|
372
592
|
const type$c = "object";
|
|
373
|
-
const $defs$c = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "
|
|
593
|
+
const $defs$c = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "separatorProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "removePillAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "startDateTimeAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "endDateTimeAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "invalidDateMessageProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "prevMonthIconProp": { "type": "string" }, "nextMonthIconProp": { "type": "string" }, "prevMonthAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "nextMonthAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "dayFormatProp": { "description": "Formatting of day numbers in the calendar grid (`numeric` = 1–31, `2-digit` = 01–31)", "enum": ["numeric", "2-digit"] }, "weekdayFormatProp": { "description": "Formatting of weekday column headers (`short` = Mon, `long` = Monday, `narrow` = M)", "enum": ["short", "long", "narrow"] }, "monthFormatProp": { "description": "Formatting of the month heading (`long` = January, `short` = Jan, `narrow` = J, `numeric` = 1, `2-digit` = 01)", "enum": ["numeric", "2-digit", "long", "short", "narrow"] }, "numberOfMonthsProp": { "type": "number", "description": "Number of month panels to display side by side. Defaults to 1. The time row renders on the first panel only." }, "hourFormatProp": { "enum": ["12", "24"] }, "minuteStepProp": { "type": "number", "minimum": 1 }, "allowCustomTimeProp": { "type": "boolean" }, "minDateTimeProp": { "type": "string", "description": "ISO-8601 date-time string for the earliest selectable instant (inclusive). Endpoints are instants, so the bound is an instant too." }, "maxDateTimeProp": { "type": "string", "description": "ISO-8601 date-time string for the latest selectable instant (inclusive)" }, "disabledRangesProp": { "type": "array", "description": "Disabled instant spans (in this widget's DateTimeRange coordinate system). Blocking a whole day is a span of 00:00:00–23:59:59.", "items": { "$ref": "../common.schema.json#/$defs/dateTimeRange" } } };
|
|
374
594
|
const allOf$c = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
|
|
375
|
-
const properties$c = { "kind": { "const": "input" }, "type": { "const": "
|
|
595
|
+
const properties$c = { "kind": { "const": "input" }, "type": { "const": "rangeDateTimePicker" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "separator": { "$ref": "#/$defs/separatorProp" }, "removePillAriaLabel": { "$ref": "#/$defs/removePillAriaLabelProp" }, "startDateTimeAriaLabel": { "$ref": "#/$defs/startDateTimeAriaLabelProp" }, "endDateTimeAriaLabel": { "$ref": "#/$defs/endDateTimeAriaLabelProp" }, "invalidDateMessage": { "$ref": "#/$defs/invalidDateMessageProp" }, "prevMonthIcon": { "$ref": "#/$defs/prevMonthIconProp" }, "nextMonthIcon": { "$ref": "#/$defs/nextMonthIconProp" }, "prevMonthAriaLabel": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "nextMonthAriaLabel": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "dayFormat": { "$ref": "#/$defs/dayFormatProp" }, "weekdayFormat": { "$ref": "#/$defs/weekdayFormatProp" }, "monthFormat": { "$ref": "#/$defs/monthFormatProp" }, "numberOfMonths": { "$ref": "#/$defs/numberOfMonthsProp" }, "hourFormat": { "$ref": "#/$defs/hourFormatProp" }, "minuteStep": { "$ref": "#/$defs/minuteStepProp" }, "allowCustomTime": { "$ref": "#/$defs/allowCustomTimeProp" }, "startTimeLabel": { "$ref": "../common.schema.json#/$defs/localizable" }, "endTimeLabel": { "$ref": "../common.schema.json#/$defs/localizable" }, "minDateTime": { "$ref": "#/$defs/minDateTimeProp" }, "maxDateTime": { "$ref": "#/$defs/maxDateTimeProp" }, "minDateTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxDateTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledRanges": { "$ref": "#/$defs/disabledRangesProp" }, "disabledRangeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "noAvailableTimesMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "dayCountAriaLabel": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDayCountAriaLabel": { "$ref": "../common.schema.json#/$defs/localizable" } }, "patternProperties": { "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^separator\\.[^.]+$": { "$ref": "#/$defs/separatorProp" }, "^removePillAriaLabel\\.[^.]+$": { "$ref": "#/$defs/removePillAriaLabelProp" }, "^startDateTimeAriaLabel\\.[^.]+$": { "$ref": "#/$defs/startDateTimeAriaLabelProp" }, "^endDateTimeAriaLabel\\.[^.]+$": { "$ref": "#/$defs/endDateTimeAriaLabelProp" }, "^invalidDateMessage\\.[^.]+$": { "$ref": "#/$defs/invalidDateMessageProp" }, "^prevMonthIcon\\.[^.]+$": { "$ref": "#/$defs/prevMonthIconProp" }, "^nextMonthIcon\\.[^.]+$": { "$ref": "#/$defs/nextMonthIconProp" }, "^prevMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "^nextMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "^dayFormat\\.[^.]+$": { "$ref": "#/$defs/dayFormatProp" }, "^weekdayFormat\\.[^.]+$": { "$ref": "#/$defs/weekdayFormatProp" }, "^monthFormat\\.[^.]+$": { "$ref": "#/$defs/monthFormatProp" }, "^numberOfMonths\\.[^.]+$": { "$ref": "#/$defs/numberOfMonthsProp" }, "^hourFormat\\.[^.]+$": { "$ref": "#/$defs/hourFormatProp" }, "^minuteStep\\.[^.]+$": { "$ref": "#/$defs/minuteStepProp" }, "^allowCustomTime\\.[^.]+$": { "$ref": "#/$defs/allowCustomTimeProp" }, "^startTimeLabel\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^endTimeLabel\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^minDateTime\\.[^.]+$": { "$ref": "#/$defs/minDateTimeProp" }, "^maxDateTime\\.[^.]+$": { "$ref": "#/$defs/maxDateTimeProp" }, "^minDateTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxDateTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^disabledRanges\\.[^.]+$": { "$ref": "#/$defs/disabledRangesProp" }, "^disabledRangeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^noAvailableTimesMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^dayCountAriaLabel\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^disabledDayCountAriaLabel\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" } }, "additionalProperties": false } };
|
|
376
596
|
const patternProperties$b = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
|
|
377
597
|
const required$c = ["kind", "type", "path"];
|
|
378
598
|
const unevaluatedProperties$c = false;
|
|
379
|
-
const
|
|
599
|
+
const rangedatetimepicker = {
|
|
380
600
|
$schema: $schema$c,
|
|
381
601
|
$id: $id$c,
|
|
382
602
|
title: title$c,
|
|
@@ -389,16 +609,16 @@ const numberWidget = {
|
|
|
389
609
|
unevaluatedProperties: unevaluatedProperties$c
|
|
390
610
|
};
|
|
391
611
|
const $schema$b = "https://json-schema.org/draft/2020-12/schema";
|
|
392
|
-
const $id$b = "https://golemui.com/schemas/components/
|
|
393
|
-
const title$b = "
|
|
612
|
+
const $id$b = "https://golemui.com/schemas/components/rangetimeinput.schema.json";
|
|
613
|
+
const title$b = "RangeTimeInput Widget";
|
|
394
614
|
const type$b = "object";
|
|
395
|
-
const $defs$b = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "
|
|
615
|
+
const $defs$b = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "separatorProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "removePillAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "startTimeAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "endTimeAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "hourFormatProp": { "enum": ["12", "24"] }, "minuteStepProp": { "type": "number", "minimum": 1 }, "isoTimeProp": { "type": "string", "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?$" } };
|
|
396
616
|
const allOf$b = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
|
|
397
|
-
const properties$b = { "kind": { "const": "input" }, "type": { "const": "
|
|
617
|
+
const properties$b = { "kind": { "const": "input" }, "type": { "const": "rangeTimeInput" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "separator": { "$ref": "#/$defs/separatorProp" }, "removePillAriaLabel": { "$ref": "#/$defs/removePillAriaLabelProp" }, "startTimeAriaLabel": { "$ref": "#/$defs/startTimeAriaLabelProp" }, "endTimeAriaLabel": { "$ref": "#/$defs/endTimeAriaLabelProp" }, "hourFormat": { "$ref": "#/$defs/hourFormatProp" }, "minuteStep": { "$ref": "#/$defs/minuteStepProp" }, "minTime": { "$ref": "#/$defs/isoTimeProp" }, "maxTime": { "$ref": "#/$defs/isoTimeProp" }, "minTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "rangeOrderMessage": { "$ref": "../common.schema.json#/$defs/localizable" } }, "patternProperties": { "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^separator\\.[^.]+$": { "$ref": "#/$defs/separatorProp" }, "^removePillAriaLabel\\.[^.]+$": { "$ref": "#/$defs/removePillAriaLabelProp" }, "^startTimeAriaLabel\\.[^.]+$": { "$ref": "#/$defs/startTimeAriaLabelProp" }, "^endTimeAriaLabel\\.[^.]+$": { "$ref": "#/$defs/endTimeAriaLabelProp" }, "^hourFormat\\.[^.]+$": { "$ref": "#/$defs/hourFormatProp" }, "^minuteStep\\.[^.]+$": { "$ref": "#/$defs/minuteStepProp" }, "^minTime\\.[^.]+$": { "$ref": "#/$defs/isoTimeProp" }, "^maxTime\\.[^.]+$": { "$ref": "#/$defs/isoTimeProp" }, "^minTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^rangeOrderMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" } }, "additionalProperties": false } };
|
|
398
618
|
const patternProperties$a = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
|
|
399
619
|
const required$b = ["kind", "type", "path"];
|
|
400
620
|
const unevaluatedProperties$b = false;
|
|
401
|
-
const
|
|
621
|
+
const rangetimeinput = {
|
|
402
622
|
$schema: $schema$b,
|
|
403
623
|
$id: $id$b,
|
|
404
624
|
title: title$b,
|
|
@@ -411,16 +631,16 @@ const password = {
|
|
|
411
631
|
unevaluatedProperties: unevaluatedProperties$b
|
|
412
632
|
};
|
|
413
633
|
const $schema$a = "https://json-schema.org/draft/2020-12/schema";
|
|
414
|
-
const $id$a = "https://golemui.com/schemas/components/
|
|
415
|
-
const title$a = "
|
|
634
|
+
const $id$a = "https://golemui.com/schemas/components/rangedatepicker.schema.json";
|
|
635
|
+
const title$a = "RangeDatePicker Widget";
|
|
416
636
|
const type$a = "object";
|
|
417
|
-
const $defs$a = { "
|
|
637
|
+
const $defs$a = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "separatorProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "removePillAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "startDateAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "endDateAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "prevMonthIconProp": { "type": "string" }, "nextMonthIconProp": { "type": "string" }, "prevMonthAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "nextMonthAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "dayFormatProp": { "enum": ["numeric", "2-digit"] }, "weekdayFormatProp": { "enum": ["short", "long", "narrow"] }, "monthFormatProp": { "enum": ["numeric", "2-digit", "long", "short", "narrow"] }, "minDateProp": { "type": "string" }, "maxDateProp": { "type": "string" }, "numberOfMonthsProp": { "type": "number" }, "disabledRangesProp": { "type": "array", "items": { "$ref": "../common.schema.json#/$defs/dateRange" } } };
|
|
418
638
|
const allOf$a = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
|
|
419
|
-
const properties$a = { "kind": { "const": "input" }, "type": { "const": "
|
|
639
|
+
const properties$a = { "kind": { "const": "input" }, "type": { "const": "rangeDatePicker" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "invalidDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "minDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDateRangeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "separator": { "$ref": "#/$defs/separatorProp" }, "removePillAriaLabel": { "$ref": "#/$defs/removePillAriaLabelProp" }, "startDateAriaLabel": { "$ref": "#/$defs/startDateAriaLabelProp" }, "endDateAriaLabel": { "$ref": "#/$defs/endDateAriaLabelProp" }, "prevMonthIcon": { "$ref": "#/$defs/prevMonthIconProp" }, "nextMonthIcon": { "$ref": "#/$defs/nextMonthIconProp" }, "prevMonthAriaLabel": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "nextMonthAriaLabel": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "dayFormat": { "$ref": "#/$defs/dayFormatProp" }, "weekdayFormat": { "$ref": "#/$defs/weekdayFormatProp" }, "monthFormat": { "$ref": "#/$defs/monthFormatProp" }, "minDate": { "$ref": "#/$defs/minDateProp" }, "maxDate": { "$ref": "#/$defs/maxDateProp" }, "numberOfMonths": { "$ref": "#/$defs/numberOfMonthsProp" }, "disabledRanges": { "$ref": "#/$defs/disabledRangesProp" } }, "patternProperties": { "^invalidDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^minDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^disabledDateRangeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^separator\\.[^.]+$": { "$ref": "#/$defs/separatorProp" }, "^removePillAriaLabel\\.[^.]+$": { "$ref": "#/$defs/removePillAriaLabelProp" }, "^startDateAriaLabel\\.[^.]+$": { "$ref": "#/$defs/startDateAriaLabelProp" }, "^endDateAriaLabel\\.[^.]+$": { "$ref": "#/$defs/endDateAriaLabelProp" }, "^prevMonthIcon\\.[^.]+$": { "$ref": "#/$defs/prevMonthIconProp" }, "^nextMonthIcon\\.[^.]+$": { "$ref": "#/$defs/nextMonthIconProp" }, "^prevMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "^nextMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "^dayFormat\\.[^.]+$": { "$ref": "#/$defs/dayFormatProp" }, "^weekdayFormat\\.[^.]+$": { "$ref": "#/$defs/weekdayFormatProp" }, "^monthFormat\\.[^.]+$": { "$ref": "#/$defs/monthFormatProp" }, "^minDate\\.[^.]+$": { "$ref": "#/$defs/minDateProp" }, "^maxDate\\.[^.]+$": { "$ref": "#/$defs/maxDateProp" }, "^numberOfMonths\\.[^.]+$": { "$ref": "#/$defs/numberOfMonthsProp" }, "^disabledRanges\\.[^.]+$": { "$ref": "#/$defs/disabledRangesProp" } }, "additionalProperties": false } };
|
|
420
640
|
const patternProperties$9 = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
|
|
421
641
|
const required$a = ["kind", "type", "path"];
|
|
422
642
|
const unevaluatedProperties$a = false;
|
|
423
|
-
const
|
|
643
|
+
const rangedatepicker = {
|
|
424
644
|
$schema: $schema$a,
|
|
425
645
|
$id: $id$a,
|
|
426
646
|
title: title$a,
|
|
@@ -433,16 +653,16 @@ const radiogroup = {
|
|
|
433
653
|
unevaluatedProperties: unevaluatedProperties$a
|
|
434
654
|
};
|
|
435
655
|
const $schema$9 = "https://json-schema.org/draft/2020-12/schema";
|
|
436
|
-
const $id$9 = "https://golemui.com/schemas/components/
|
|
437
|
-
const title$9 = "
|
|
656
|
+
const $id$9 = "https://golemui.com/schemas/components/rangetimepicker.schema.json";
|
|
657
|
+
const title$9 = "RangeTimePicker Widget";
|
|
438
658
|
const type$9 = "object";
|
|
439
|
-
const $defs$9 = { "
|
|
659
|
+
const $defs$9 = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "separatorProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "removePillAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "startTimeAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "endTimeAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "hourFormatProp": { "enum": ["12", "24"] }, "minuteStepProp": { "type": "number", "minimum": 1 }, "isoTimeProp": { "type": "string", "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?$" }, "disabledRangesProp": { "type": "array", "items": { "type": "object", "properties": { "start": { "$ref": "#/$defs/isoTimeProp" }, "end": { "$ref": "#/$defs/isoTimeProp" } }, "required": ["start", "end"], "additionalProperties": false } }, "allowCustomTimeProp": { "type": "boolean" }, "sizeProp": { "type": "number" } };
|
|
440
660
|
const allOf$9 = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
|
|
441
|
-
const properties$9 = { "kind": { "const": "input" }, "type": { "const": "
|
|
661
|
+
const properties$9 = { "kind": { "const": "input" }, "type": { "const": "rangeTimePicker" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "separator": { "$ref": "#/$defs/separatorProp" }, "removePillAriaLabel": { "$ref": "#/$defs/removePillAriaLabelProp" }, "startTimeAriaLabel": { "$ref": "#/$defs/startTimeAriaLabelProp" }, "endTimeAriaLabel": { "$ref": "#/$defs/endTimeAriaLabelProp" }, "startTimeLabel": { "$ref": "../common.schema.json#/$defs/localizable" }, "endTimeLabel": { "$ref": "../common.schema.json#/$defs/localizable" }, "hourFormat": { "$ref": "#/$defs/hourFormatProp" }, "minuteStep": { "$ref": "#/$defs/minuteStepProp" }, "minTime": { "$ref": "#/$defs/isoTimeProp" }, "maxTime": { "$ref": "#/$defs/isoTimeProp" }, "minTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "rangeOrderMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledRanges": { "$ref": "#/$defs/disabledRangesProp" }, "allowCustomTime": { "$ref": "#/$defs/allowCustomTimeProp" }, "height": { "$ref": "#/$defs/sizeProp" }, "itemHeight": { "$ref": "#/$defs/sizeProp" }, "disabledRangeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "noAvailableTimesMessage": { "$ref": "../common.schema.json#/$defs/localizable" } }, "patternProperties": { "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^separator\\.[^.]+$": { "$ref": "#/$defs/separatorProp" }, "^removePillAriaLabel\\.[^.]+$": { "$ref": "#/$defs/removePillAriaLabelProp" }, "^startTimeAriaLabel\\.[^.]+$": { "$ref": "#/$defs/startTimeAriaLabelProp" }, "^endTimeAriaLabel\\.[^.]+$": { "$ref": "#/$defs/endTimeAriaLabelProp" }, "^startTimeLabel\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^endTimeLabel\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^hourFormat\\.[^.]+$": { "$ref": "#/$defs/hourFormatProp" }, "^minuteStep\\.[^.]+$": { "$ref": "#/$defs/minuteStepProp" }, "^minTime\\.[^.]+$": { "$ref": "#/$defs/isoTimeProp" }, "^maxTime\\.[^.]+$": { "$ref": "#/$defs/isoTimeProp" }, "^minTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^rangeOrderMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^disabledRanges\\.[^.]+$": { "$ref": "#/$defs/disabledRangesProp" }, "^allowCustomTime\\.[^.]+$": { "$ref": "#/$defs/allowCustomTimeProp" }, "^height\\.[^.]+$": { "$ref": "#/$defs/sizeProp" }, "^itemHeight\\.[^.]+$": { "$ref": "#/$defs/sizeProp" }, "^disabledRangeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^noAvailableTimesMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" } }, "additionalProperties": false } };
|
|
442
662
|
const patternProperties$8 = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
|
|
443
663
|
const required$9 = ["kind", "type", "path"];
|
|
444
664
|
const unevaluatedProperties$9 = false;
|
|
445
|
-
const
|
|
665
|
+
const rangetimepicker = {
|
|
446
666
|
$schema: $schema$9,
|
|
447
667
|
$id: $id$9,
|
|
448
668
|
title: title$9,
|
|
@@ -455,16 +675,16 @@ const rangecalendar = {
|
|
|
455
675
|
unevaluatedProperties: unevaluatedProperties$9
|
|
456
676
|
};
|
|
457
677
|
const $schema$8 = "https://json-schema.org/draft/2020-12/schema";
|
|
458
|
-
const $id$8 = "https://golemui.com/schemas/components/
|
|
459
|
-
const title$8 = "
|
|
678
|
+
const $id$8 = "https://golemui.com/schemas/components/repeater.schema.json";
|
|
679
|
+
const title$8 = "Repeater Widget";
|
|
460
680
|
const type$8 = "object";
|
|
461
|
-
const $defs$8 = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "
|
|
681
|
+
const $defs$8 = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "addLabelProp": { "description": "Label for the button that adds a new repeated item", "$ref": "../common.schema.json#/$defs/localizable" }, "removeLabelProp": { "description": "Label for the button that removes an existing repeated item", "$ref": "../common.schema.json#/$defs/localizable" }, "limitProp": { "type": "number", "description": "Maximum number of items the user can add. No limit when omitted." }, "templateProp": { "description": "Widget tree used as the template for each repeated item. Paths inside are resolved relative to the item's index in the array. Widgets inside the template can reference the current item in reactive expressions ('when' conditions, '{{}}' interpolation slots, and i18n params) through the scope variables '$item' (the item object, e.g. '$item.quantity') and '$index' (the item's zero-based position). For nested repeaters these bind to the innermost enclosing item.", "$ref": "../layout-widget.schema.json" }, "titleProp": { "description": "Title displayed in the header of each item panel.", "$ref": "../common.schema.json#/$defs/localizable" }, "addButtonIconProp": { "type": "string", "description": "Icon name or CSS class for the add-item button icon" }, "removeButtonIconProp": { "type": "string", "description": "Icon name or CSS class for the remove-item button icon" } };
|
|
462
682
|
const allOf$8 = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
|
|
463
|
-
const properties$8 = { "kind": { "const": "input" }, "type": { "const": "
|
|
464
|
-
const patternProperties$7 = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^
|
|
465
|
-
const required$8 = ["kind", "type", "path"];
|
|
683
|
+
const properties$8 = { "kind": { "const": "input" }, "type": { "const": "repeater" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "addLabel": { "$ref": "#/$defs/addLabelProp" }, "removeLabel": { "$ref": "#/$defs/removeLabelProp" }, "limit": { "$ref": "#/$defs/limitProp" }, "template": { "$ref": "#/$defs/templateProp" }, "title": { "$ref": "#/$defs/titleProp" }, "addButtonIcon": { "$ref": "#/$defs/addButtonIconProp" }, "removeButtonIcon": { "$ref": "#/$defs/removeButtonIconProp" } }, "required": ["template"], "patternProperties": { "^addLabel\\.[^.]+$": { "$ref": "#/$defs/addLabelProp" }, "^removeLabel\\.[^.]+$": { "$ref": "#/$defs/removeLabelProp" }, "^limit\\.[^.]+$": { "$ref": "#/$defs/limitProp" }, "^template\\.[^.]+$": { "$ref": "#/$defs/templateProp" }, "^title\\.[^.]+$": { "$ref": "#/$defs/titleProp" }, "^addButtonIcon\\.[^.]+$": { "$ref": "#/$defs/addButtonIconProp" }, "^removeButtonIcon\\.[^.]+$": { "$ref": "#/$defs/removeButtonIconProp" } }, "additionalProperties": false } };
|
|
684
|
+
const patternProperties$7 = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
|
|
685
|
+
const required$8 = ["kind", "type", "path", "props"];
|
|
466
686
|
const unevaluatedProperties$8 = false;
|
|
467
|
-
const
|
|
687
|
+
const repeater = {
|
|
468
688
|
$schema: $schema$8,
|
|
469
689
|
$id: $id$8,
|
|
470
690
|
title: title$8,
|
|
@@ -477,16 +697,16 @@ const rangedateinput = {
|
|
|
477
697
|
unevaluatedProperties: unevaluatedProperties$8
|
|
478
698
|
};
|
|
479
699
|
const $schema$7 = "https://json-schema.org/draft/2020-12/schema";
|
|
480
|
-
const $id$7 = "https://golemui.com/schemas/components/
|
|
481
|
-
const title$7 = "
|
|
700
|
+
const $id$7 = "https://golemui.com/schemas/components/select.schema.json";
|
|
701
|
+
const title$7 = "Select Widget";
|
|
482
702
|
const type$7 = "object";
|
|
483
|
-
const $defs$7 = { "
|
|
703
|
+
const $defs$7 = { "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "optionsProp": { "type": "array", "description": "Options may be primitive values (string/number), structured `{ label, value }` records, or arbitrary objects (paired with `labelField`/`valueField` for custom rendering).", "items": { "type": ["string", "number", "object"] } }, "placeholderProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "labelFieldProp": { "type": "string", "description": 'Object property used as the display label when options are objects (e.g. `"name"` reads `item.name`)' }, "valueFieldProp": { "type": "string", "description": 'Object property used as the stored value when options are objects (e.g. `"id"` stores `item.id`)' }, "autocompleteProp": { "type": "string", "description": "HTML `autocomplete` attribute applied to the underlying input element" } };
|
|
484
704
|
const allOf$7 = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
|
|
485
|
-
const properties$7 = { "kind": { "const": "input" }, "type": { "const": "
|
|
705
|
+
const properties$7 = { "kind": { "const": "input" }, "type": { "const": "select" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "invalidOptionMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "options": { "$ref": "#/$defs/optionsProp" }, "placeholder": { "$ref": "#/$defs/placeholderProp" }, "labelField": { "$ref": "#/$defs/labelFieldProp" }, "valueField": { "$ref": "#/$defs/valueFieldProp" }, "autocomplete": { "$ref": "#/$defs/autocompleteProp" } }, "patternProperties": { "^invalidOptionMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^options\\.[^.]+$": { "$ref": "#/$defs/optionsProp" }, "^placeholder\\.[^.]+$": { "$ref": "#/$defs/placeholderProp" }, "^labelField\\.[^.]+$": { "$ref": "#/$defs/labelFieldProp" }, "^valueField\\.[^.]+$": { "$ref": "#/$defs/valueFieldProp" }, "^autocomplete\\.[^.]+$": { "$ref": "#/$defs/autocompleteProp" } }, "additionalProperties": false } };
|
|
486
706
|
const patternProperties$6 = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
|
|
487
707
|
const required$7 = ["kind", "type", "path"];
|
|
488
708
|
const unevaluatedProperties$7 = false;
|
|
489
|
-
const
|
|
709
|
+
const select = {
|
|
490
710
|
$schema: $schema$7,
|
|
491
711
|
$id: $id$7,
|
|
492
712
|
title: title$7,
|
|
@@ -499,16 +719,15 @@ const rangedatepicker = {
|
|
|
499
719
|
unevaluatedProperties: unevaluatedProperties$7
|
|
500
720
|
};
|
|
501
721
|
const $schema$6 = "https://json-schema.org/draft/2020-12/schema";
|
|
502
|
-
const $id$6 = "https://golemui.com/schemas/components/
|
|
503
|
-
const title$6 = "
|
|
722
|
+
const $id$6 = "https://golemui.com/schemas/components/tabs.schema.json";
|
|
723
|
+
const title$6 = "Tabs Widget";
|
|
504
724
|
const type$6 = "object";
|
|
505
|
-
const $defs$6 = { "
|
|
725
|
+
const $defs$6 = { "defaultOpenProp": { "type": "string", "description": "UID of the tab that is active on initial render. Defaults to the first tab." }, "renderModeProp": { "description": "Controls when tab content is rendered: `all` keeps all tabs in the DOM, `activeOnly` unmounts inactive ones", "enum": ["all", "activeOnly"] }, "tabsProp": { "type": "array", "description": "Ordered list of tab definitions. Each tab's `uid` must match the widget UIDs used in `children`.", "minItems": 1, "items": { "type": "object", "properties": { "label": { "$ref": "../common.schema.json#/$defs/localizable" }, "uid": { "type": "string", "description": "Unique identifier linking this tab definition to its widgets in `children`" } }, "required": ["label", "uid"], "additionalProperties": false } } };
|
|
506
726
|
const allOf$6 = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
|
|
507
|
-
const properties$6 = { "kind": { "const": "
|
|
508
|
-
const
|
|
509
|
-
const required$6 = ["kind", "type", "path", "props"];
|
|
727
|
+
const properties$6 = { "kind": { "const": "layout" }, "type": { "const": "tabs" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "children": { "type": "array", "description": "Flat list of widgets belonging to all tabs. Each widget must have a `uid` matching one of the tab UIDs in `props.tabs`.", "minItems": 1, "items": { "$ref": "../form.schema.json#/$defs/formWidget" } }, "props": { "type": "object", "properties": { "defaultOpen": { "$ref": "#/$defs/defaultOpenProp" }, "renderMode": { "$ref": "#/$defs/renderModeProp" }, "tabs": { "$ref": "#/$defs/tabsProp" } }, "required": ["tabs"], "patternProperties": { "^defaultOpen\\.[^.]+$": { "$ref": "#/$defs/defaultOpenProp" }, "^renderMode\\.[^.]+$": { "$ref": "#/$defs/renderModeProp" }, "^tabs\\.[^.]+$": { "$ref": "#/$defs/tabsProp" } }, "additionalProperties": false } };
|
|
728
|
+
const required$6 = ["kind", "type", "children", "props"];
|
|
510
729
|
const unevaluatedProperties$6 = false;
|
|
511
|
-
const
|
|
730
|
+
const tabs = {
|
|
512
731
|
$schema: $schema$6,
|
|
513
732
|
$id: $id$6,
|
|
514
733
|
title: title$6,
|
|
@@ -516,21 +735,20 @@ const repeater = {
|
|
|
516
735
|
$defs: $defs$6,
|
|
517
736
|
allOf: allOf$6,
|
|
518
737
|
properties: properties$6,
|
|
519
|
-
patternProperties: patternProperties$5,
|
|
520
738
|
required: required$6,
|
|
521
739
|
unevaluatedProperties: unevaluatedProperties$6
|
|
522
740
|
};
|
|
523
741
|
const $schema$5 = "https://json-schema.org/draft/2020-12/schema";
|
|
524
|
-
const $id$5 = "https://golemui.com/schemas/components/
|
|
525
|
-
const title$5 = "
|
|
742
|
+
const $id$5 = "https://golemui.com/schemas/components/tags.schema.json";
|
|
743
|
+
const title$5 = "Tags Widget";
|
|
526
744
|
const type$5 = "object";
|
|
527
|
-
const $defs$5 = { "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "
|
|
745
|
+
const $defs$5 = { "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "placeholderProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "separatorsProp": { "type": "array", "description": 'Characters or strings that trigger a new tag when typed (e.g. `[",", " "]`). Defaults to Enter key only.', "items": { "type": "string" } }, "allowDuplicatesProp": { "type": "boolean", "description": "When true, the same tag value may be added more than once. Defaults to false." }, "trimProp": { "type": "boolean", "description": "When true, whitespace is trimmed from each tag before it is added. Defaults to true." }, "limitProp": { "type": "number", "description": "Maximum number of tags the user can add. No limit when omitted." }, "removeAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "removeIconProp": { "type": "string" } };
|
|
528
746
|
const allOf$5 = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
|
|
529
|
-
const properties$5 = { "kind": { "const": "input" }, "type": { "const": "
|
|
530
|
-
const patternProperties$
|
|
747
|
+
const properties$5 = { "kind": { "const": "input" }, "type": { "const": "tags" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "array", "items": { "type": "string" } }, "props": { "type": "object", "properties": { "hint": { "$ref": "#/$defs/hintProp" }, "placeholder": { "$ref": "#/$defs/placeholderProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "separators": { "$ref": "#/$defs/separatorsProp" }, "allowDuplicates": { "$ref": "#/$defs/allowDuplicatesProp" }, "trim": { "$ref": "#/$defs/trimProp" }, "limit": { "$ref": "#/$defs/limitProp" }, "removeAriaLabel": { "$ref": "#/$defs/removeAriaLabelProp" }, "removeIcon": { "$ref": "#/$defs/removeIconProp" } }, "patternProperties": { "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^placeholder\\.[^.]+$": { "$ref": "#/$defs/placeholderProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^separators\\.[^.]+$": { "$ref": "#/$defs/separatorsProp" }, "^allowDuplicates\\.[^.]+$": { "$ref": "#/$defs/allowDuplicatesProp" }, "^trim\\.[^.]+$": { "$ref": "#/$defs/trimProp" }, "^limit\\.[^.]+$": { "$ref": "#/$defs/limitProp" }, "^removeAriaLabel\\.[^.]+$": { "$ref": "#/$defs/removeAriaLabelProp" }, "^removeIcon\\.[^.]+$": { "$ref": "#/$defs/removeIconProp" } }, "additionalProperties": false } };
|
|
748
|
+
const patternProperties$5 = { "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
|
|
531
749
|
const required$5 = ["kind", "type", "path"];
|
|
532
750
|
const unevaluatedProperties$5 = false;
|
|
533
|
-
const
|
|
751
|
+
const tags = {
|
|
534
752
|
$schema: $schema$5,
|
|
535
753
|
$id: $id$5,
|
|
536
754
|
title: title$5,
|
|
@@ -538,20 +756,21 @@ const select = {
|
|
|
538
756
|
$defs: $defs$5,
|
|
539
757
|
allOf: allOf$5,
|
|
540
758
|
properties: properties$5,
|
|
541
|
-
patternProperties: patternProperties$
|
|
759
|
+
patternProperties: patternProperties$5,
|
|
542
760
|
required: required$5,
|
|
543
761
|
unevaluatedProperties: unevaluatedProperties$5
|
|
544
762
|
};
|
|
545
763
|
const $schema$4 = "https://json-schema.org/draft/2020-12/schema";
|
|
546
|
-
const $id$4 = "https://golemui.com/schemas/components/
|
|
547
|
-
const title$4 = "
|
|
764
|
+
const $id$4 = "https://golemui.com/schemas/components/textarea.schema.json";
|
|
765
|
+
const title$4 = "TextArea Widget";
|
|
548
766
|
const type$4 = "object";
|
|
549
|
-
const $defs$4 = { "
|
|
767
|
+
const $defs$4 = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "placeholderProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "counterModeProp": { "enum": ["remaining", "current"] }, "minimumHeightProp": { "type": "number" }, "autoGrowProp": { "type": "boolean" }, "maxLengthProp": { "type": "number" }, "autocompleteProp": { "type": "string" } };
|
|
550
768
|
const allOf$4 = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
|
|
551
|
-
const properties$4 = { "kind": { "const": "
|
|
552
|
-
const
|
|
769
|
+
const properties$4 = { "kind": { "const": "input" }, "type": { "const": "textarea" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "string" }, "props": { "type": "object", "properties": { "hint": { "$ref": "#/$defs/hintProp" }, "placeholder": { "$ref": "#/$defs/placeholderProp" }, "counterMode": { "$ref": "#/$defs/counterModeProp" }, "minimumHeight": { "$ref": "#/$defs/minimumHeightProp" }, "autoGrow": { "$ref": "#/$defs/autoGrowProp" }, "maxLength": { "$ref": "#/$defs/maxLengthProp" }, "autocomplete": { "$ref": "#/$defs/autocompleteProp" } }, "patternProperties": { "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^placeholder\\.[^.]+$": { "$ref": "#/$defs/placeholderProp" }, "^counterMode\\.[^.]+$": { "$ref": "#/$defs/counterModeProp" }, "^minimumHeight\\.[^.]+$": { "$ref": "#/$defs/minimumHeightProp" }, "^autoGrow\\.[^.]+$": { "$ref": "#/$defs/autoGrowProp" }, "^maxLength\\.[^.]+$": { "$ref": "#/$defs/maxLengthProp" }, "^autocomplete\\.[^.]+$": { "$ref": "#/$defs/autocompleteProp" } }, "additionalProperties": false } };
|
|
770
|
+
const patternProperties$4 = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
|
|
771
|
+
const required$4 = ["kind", "type", "path"];
|
|
553
772
|
const unevaluatedProperties$4 = false;
|
|
554
|
-
const
|
|
773
|
+
const textarea = {
|
|
555
774
|
$schema: $schema$4,
|
|
556
775
|
$id: $id$4,
|
|
557
776
|
title: title$4,
|
|
@@ -559,20 +778,21 @@ const tabs = {
|
|
|
559
778
|
$defs: $defs$4,
|
|
560
779
|
allOf: allOf$4,
|
|
561
780
|
properties: properties$4,
|
|
781
|
+
patternProperties: patternProperties$4,
|
|
562
782
|
required: required$4,
|
|
563
783
|
unevaluatedProperties: unevaluatedProperties$4
|
|
564
784
|
};
|
|
565
785
|
const $schema$3 = "https://json-schema.org/draft/2020-12/schema";
|
|
566
|
-
const $id$3 = "https://golemui.com/schemas/components/
|
|
567
|
-
const title$3 = "
|
|
786
|
+
const $id$3 = "https://golemui.com/schemas/components/textinput.schema.json";
|
|
787
|
+
const title$3 = "TextInput Widget";
|
|
568
788
|
const type$3 = "object";
|
|
569
|
-
const $defs$3 = { "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "placeholderProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "
|
|
789
|
+
const $defs$3 = { "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "placeholderProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "autocompleteProp": { "type": "string" } };
|
|
570
790
|
const allOf$3 = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
|
|
571
|
-
const properties$3 = { "kind": { "const": "input" }, "type": { "const": "
|
|
791
|
+
const properties$3 = { "kind": { "const": "input" }, "type": { "const": "textinput" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "string" }, "props": { "type": "object", "properties": { "hint": { "$ref": "#/$defs/hintProp" }, "placeholder": { "$ref": "#/$defs/placeholderProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "autocomplete": { "$ref": "#/$defs/autocompleteProp" } }, "patternProperties": { "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^placeholder\\.[^.]+$": { "$ref": "#/$defs/placeholderProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^autocomplete\\.[^.]+$": { "$ref": "#/$defs/autocompleteProp" } }, "additionalProperties": false } };
|
|
572
792
|
const patternProperties$3 = { "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
|
|
573
793
|
const required$3 = ["kind", "type", "path"];
|
|
574
794
|
const unevaluatedProperties$3 = false;
|
|
575
|
-
const
|
|
795
|
+
const textinput = {
|
|
576
796
|
$schema: $schema$3,
|
|
577
797
|
$id: $id$3,
|
|
578
798
|
title: title$3,
|
|
@@ -585,16 +805,16 @@ const tags = {
|
|
|
585
805
|
unevaluatedProperties: unevaluatedProperties$3
|
|
586
806
|
};
|
|
587
807
|
const $schema$2 = "https://json-schema.org/draft/2020-12/schema";
|
|
588
|
-
const $id$2 = "https://golemui.com/schemas/components/
|
|
589
|
-
const title$2 = "
|
|
808
|
+
const $id$2 = "https://golemui.com/schemas/components/timeinput.schema.json";
|
|
809
|
+
const title$2 = "TimeInput Widget";
|
|
590
810
|
const type$2 = "object";
|
|
591
|
-
const $defs$2 = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "
|
|
811
|
+
const $defs$2 = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "hourFormatProp": { "enum": ["12", "24"] }, "minuteStepProp": { "type": "number", "minimum": 1 }, "minTimeProp": { "type": "string" }, "maxTimeProp": { "type": "string" } };
|
|
592
812
|
const allOf$2 = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
|
|
593
|
-
const properties$2 = { "kind": { "const": "input" }, "type": { "const": "
|
|
813
|
+
const properties$2 = { "kind": { "const": "input" }, "type": { "const": "timeInput" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "hourFormat": { "$ref": "#/$defs/hourFormatProp" }, "minuteStep": { "$ref": "#/$defs/minuteStepProp" }, "minTime": { "$ref": "#/$defs/minTimeProp" }, "maxTime": { "$ref": "#/$defs/maxTimeProp" }, "minTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" } }, "patternProperties": { "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^hourFormat\\.[^.]+$": { "$ref": "#/$defs/hourFormatProp" }, "^minuteStep\\.[^.]+$": { "$ref": "#/$defs/minuteStepProp" }, "^minTime\\.[^.]+$": { "$ref": "#/$defs/minTimeProp" }, "^maxTime\\.[^.]+$": { "$ref": "#/$defs/maxTimeProp" }, "^minTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" } }, "additionalProperties": false } };
|
|
594
814
|
const patternProperties$2 = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
|
|
595
815
|
const required$2 = ["kind", "type", "path"];
|
|
596
816
|
const unevaluatedProperties$2 = false;
|
|
597
|
-
const
|
|
817
|
+
const timeinput = {
|
|
598
818
|
$schema: $schema$2,
|
|
599
819
|
$id: $id$2,
|
|
600
820
|
title: title$2,
|
|
@@ -607,16 +827,16 @@ const textarea = {
|
|
|
607
827
|
unevaluatedProperties: unevaluatedProperties$2
|
|
608
828
|
};
|
|
609
829
|
const $schema$1 = "https://json-schema.org/draft/2020-12/schema";
|
|
610
|
-
const $id$1 = "https://golemui.com/schemas/components/
|
|
611
|
-
const title$1 = "
|
|
830
|
+
const $id$1 = "https://golemui.com/schemas/components/timepicker.schema.json";
|
|
831
|
+
const title$1 = "TimePicker Widget";
|
|
612
832
|
const type$1 = "object";
|
|
613
|
-
const $defs$1 = { "
|
|
833
|
+
const $defs$1 = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "hourFormatProp": { "enum": ["12", "24"] }, "minuteStepProp": { "type": "number", "minimum": 1 }, "isoTimeProp": { "type": "string", "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?$" }, "disabledRangesProp": { "type": "array", "items": { "type": "object", "properties": { "start": { "$ref": "#/$defs/isoTimeProp" }, "end": { "$ref": "#/$defs/isoTimeProp" } }, "required": ["start", "end"], "additionalProperties": false } }, "allowCustomTimeProp": { "type": "boolean" }, "sizeProp": { "type": "number" } };
|
|
614
834
|
const allOf$1 = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
|
|
615
|
-
const properties$1 = { "kind": { "const": "input" }, "type": { "const": "
|
|
616
|
-
const patternProperties$1 = { "^
|
|
835
|
+
const properties$1 = { "kind": { "const": "input" }, "type": { "const": "timePicker" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "minTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledRangeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "noAvailableTimesMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "hourFormat": { "$ref": "#/$defs/hourFormatProp" }, "minuteStep": { "$ref": "#/$defs/minuteStepProp" }, "minTime": { "$ref": "#/$defs/isoTimeProp" }, "maxTime": { "$ref": "#/$defs/isoTimeProp" }, "disabledRanges": { "$ref": "#/$defs/disabledRangesProp" }, "allowCustomTime": { "$ref": "#/$defs/allowCustomTimeProp" }, "height": { "$ref": "#/$defs/sizeProp" }, "itemHeight": { "$ref": "#/$defs/sizeProp" } }, "patternProperties": { "^minTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^disabledRangeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^noAvailableTimesMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^hourFormat\\.[^.]+$": { "$ref": "#/$defs/hourFormatProp" }, "^minuteStep\\.[^.]+$": { "$ref": "#/$defs/minuteStepProp" }, "^minTime\\.[^.]+$": { "$ref": "#/$defs/isoTimeProp" }, "^maxTime\\.[^.]+$": { "$ref": "#/$defs/isoTimeProp" }, "^disabledRanges\\.[^.]+$": { "$ref": "#/$defs/disabledRangesProp" }, "^allowCustomTime\\.[^.]+$": { "$ref": "#/$defs/allowCustomTimeProp" }, "^height\\.[^.]+$": { "$ref": "#/$defs/sizeProp" }, "^itemHeight\\.[^.]+$": { "$ref": "#/$defs/sizeProp" } }, "additionalProperties": false } };
|
|
836
|
+
const patternProperties$1 = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
|
|
617
837
|
const required$1 = ["kind", "type", "path"];
|
|
618
838
|
const unevaluatedProperties$1 = false;
|
|
619
|
-
const
|
|
839
|
+
const timepicker = {
|
|
620
840
|
$schema: $schema$1,
|
|
621
841
|
$id: $id$1,
|
|
622
842
|
title: title$1,
|
|
@@ -660,9 +880,14 @@ const COMPONENT_SCHEMAS = {
|
|
|
660
880
|
alert,
|
|
661
881
|
button,
|
|
662
882
|
calendar,
|
|
883
|
+
dateTimeCalendar: datetimecalendar,
|
|
884
|
+
dateTimePicker: datetimepicker,
|
|
663
885
|
checkbox,
|
|
664
886
|
currency,
|
|
665
887
|
dateInput: dateinput,
|
|
888
|
+
timeInput: timeinput,
|
|
889
|
+
timePicker: timepicker,
|
|
890
|
+
dateTimeInput: datetimeinput,
|
|
666
891
|
datePicker: datepicker,
|
|
667
892
|
dropdown,
|
|
668
893
|
flex,
|
|
@@ -675,7 +900,12 @@ const COMPONENT_SCHEMAS = {
|
|
|
675
900
|
radiogroup,
|
|
676
901
|
rangeCalendar: rangecalendar,
|
|
677
902
|
rangeDateInput: rangedateinput,
|
|
903
|
+
rangeDateTimeInput: rangedatetimeinput,
|
|
904
|
+
rangeDateTimeCalendar: rangedatetimecalendar,
|
|
905
|
+
rangeDateTimePicker: rangedatetimepicker,
|
|
906
|
+
rangeTimeInput: rangetimeinput,
|
|
678
907
|
rangeDatePicker: rangedatepicker,
|
|
908
|
+
rangeTimePicker: rangetimepicker,
|
|
679
909
|
repeater,
|
|
680
910
|
select,
|
|
681
911
|
tabs,
|
|
@@ -1100,18 +1330,18 @@ function dedupe(errors) {
|
|
|
1100
1330
|
}
|
|
1101
1331
|
function lintReactiveExpressions(formDefinition) {
|
|
1102
1332
|
const findings = [];
|
|
1103
|
-
walk$1(formDefinition, "", findings);
|
|
1333
|
+
walk$1(formDefinition, "", findings, false, false);
|
|
1104
1334
|
return findings;
|
|
1105
1335
|
}
|
|
1106
|
-
function checkReactiveExpression(expression, path = "") {
|
|
1336
|
+
function checkReactiveExpression(expression, path = "", options = {}) {
|
|
1107
1337
|
const out = [];
|
|
1108
|
-
checkExpression(expression, path, out);
|
|
1338
|
+
checkExpression(expression, path, out, options.inRepeaterTemplate === true);
|
|
1109
1339
|
return out;
|
|
1110
1340
|
}
|
|
1111
|
-
function walk$1(node, path, out) {
|
|
1341
|
+
function walk$1(node, path, out, inTemplate, propsOfRepeater) {
|
|
1112
1342
|
if (node === null || typeof node !== "object") return;
|
|
1113
1343
|
if (Array.isArray(node)) {
|
|
1114
|
-
node.forEach((item, i) => walk$1(item, `${path}/${i}`, out));
|
|
1344
|
+
node.forEach((item, i) => walk$1(item, `${path}/${i}`, out, inTemplate, false));
|
|
1115
1345
|
return;
|
|
1116
1346
|
}
|
|
1117
1347
|
const obj = node;
|
|
@@ -1120,14 +1350,14 @@ function walk$1(node, path, out) {
|
|
|
1120
1350
|
if (child && typeof child === "object" && "when" in child) {
|
|
1121
1351
|
const expr = child.when;
|
|
1122
1352
|
if (typeof expr === "string") {
|
|
1123
|
-
checkExpression(expr, `${path}/${key}/when`, out);
|
|
1353
|
+
checkExpression(expr, `${path}/${key}/when`, out, inTemplate);
|
|
1124
1354
|
}
|
|
1125
1355
|
}
|
|
1126
1356
|
}
|
|
1127
1357
|
if (path === "" && obj["states"] && typeof obj["states"] === "object") {
|
|
1128
1358
|
for (const [name, expr] of Object.entries(obj["states"])) {
|
|
1129
1359
|
if (typeof expr === "string") {
|
|
1130
|
-
checkExpression(expr, `/states/${name}`, out);
|
|
1360
|
+
checkExpression(expr, `/states/${name}`, out, false);
|
|
1131
1361
|
}
|
|
1132
1362
|
}
|
|
1133
1363
|
}
|
|
@@ -1135,15 +1365,16 @@ function walk$1(node, path, out) {
|
|
|
1135
1365
|
if (v && typeof v === "object" && !Array.isArray(v) && "when" in v) {
|
|
1136
1366
|
const expr = v.when;
|
|
1137
1367
|
if (typeof expr === "string" && k !== "include" && k !== "exclude") {
|
|
1138
|
-
checkExpression(expr, `${path}/${k}/when`, out);
|
|
1368
|
+
checkExpression(expr, `${path}/${k}/when`, out, inTemplate);
|
|
1139
1369
|
}
|
|
1140
1370
|
}
|
|
1141
1371
|
if (typeof v === "object" && v !== null) {
|
|
1142
|
-
|
|
1372
|
+
const childInTemplate = inTemplate || propsOfRepeater && k === "template";
|
|
1373
|
+
walk$1(v, `${path}/${k}`, out, childInTemplate, obj["type"] === "repeater" && k === "props");
|
|
1143
1374
|
}
|
|
1144
1375
|
}
|
|
1145
1376
|
}
|
|
1146
|
-
function checkExpression(expr, path, out) {
|
|
1377
|
+
function checkExpression(expr, path, out, inTemplate) {
|
|
1147
1378
|
const trimmed = expr.trim();
|
|
1148
1379
|
if (!trimmed) {
|
|
1149
1380
|
out.push({ path, expression: expr, message: "Expression is empty." });
|
|
@@ -1172,12 +1403,21 @@ function checkExpression(expr, path, out) {
|
|
|
1172
1403
|
});
|
|
1173
1404
|
return;
|
|
1174
1405
|
}
|
|
1175
|
-
|
|
1406
|
+
const referencesItemScope = /\$item\b|\$index\b/.test(trimmed);
|
|
1407
|
+
const hasGlobalRoot = /\$form\b|\$meta\b|\$formIsInvalid\b|\$fn\b/.test(trimmed);
|
|
1408
|
+
if (referencesItemScope && !inTemplate) {
|
|
1409
|
+
out.push({
|
|
1410
|
+
path,
|
|
1411
|
+
expression: expr,
|
|
1412
|
+
message: "Expression references `$item` or `$index`, which are only available inside a repeater `props.template`.",
|
|
1413
|
+
suggestion: "Move the widget inside the repeater template, or read the data through `$form` (e.g. `$form.lineItems?.[0]?.quantity`)."
|
|
1414
|
+
});
|
|
1415
|
+
} else if (!hasGlobalRoot && !(inTemplate && referencesItemScope)) {
|
|
1176
1416
|
out.push({
|
|
1177
1417
|
path,
|
|
1178
1418
|
expression: expr,
|
|
1179
|
-
message: "Expression does not reference `$form`, `$meta`, or `$
|
|
1180
|
-
suggestion: "GolemUI expressions read form data via `$form.fieldName`, form metadata via `$meta.key`, or the built-in `$formIsInvalid` boolean. Did you forget the prefix?"
|
|
1419
|
+
message: "Expression does not reference `$form`, `$meta`, `$formIsInvalid`, or `$fn`.",
|
|
1420
|
+
suggestion: "GolemUI expressions read form data via `$form.fieldName`, form metadata via `$meta.key`, or the built-in `$formIsInvalid` boolean. Host-provided pure functions are callable via `$fn.functionName(...)` when the host passes a `functions` map in the form init config. Inside a repeater `props.template` the current item is available via `$item` and its position via `$index`. Did you forget the prefix?"
|
|
1181
1421
|
});
|
|
1182
1422
|
}
|
|
1183
1423
|
if (/(?<![=!<>])=(?![=>])/.test(trimmed)) {
|
|
@@ -1204,15 +1444,15 @@ function checkExpression(expr, path, out) {
|
|
|
1204
1444
|
suggestion: "Use strict equality `===` / `!==` to avoid type coercion (e.g. `$form.x !== undefined` rather than `$form.x != null`)."
|
|
1205
1445
|
});
|
|
1206
1446
|
}
|
|
1207
|
-
if (/(?<![=!])!\s*\$(?:form|meta)\b/.test(trimmed)) {
|
|
1447
|
+
if (/(?<![=!])!\s*\$(?:form|meta|item)\b/.test(trimmed)) {
|
|
1208
1448
|
out.push({
|
|
1209
1449
|
path,
|
|
1210
1450
|
expression: expr,
|
|
1211
|
-
message: "Expression negates a `$form`/`$meta` reference (relies on truthy/falsy coercion).",
|
|
1451
|
+
message: "Expression negates a `$form`/`$meta`/`$item` reference (relies on truthy/falsy coercion).",
|
|
1212
1452
|
suggestion: 'Form data values can be `undefined`. Pick the case you actually mean and write it explicitly — `$form.x === undefined`, `$form.x === null`, `$form.x === 0`, `$form.x === ""` — instead of `!$form.x`.'
|
|
1213
1453
|
});
|
|
1214
1454
|
}
|
|
1215
|
-
const refChainRe = /\$(?:form|meta)\b((?:\.[\w?]+)*)/g;
|
|
1455
|
+
const refChainRe = /\$(?:form|meta|item)\b((?:\.[\w?]+)*)/g;
|
|
1216
1456
|
let chainFlagged = false;
|
|
1217
1457
|
let chainMatch;
|
|
1218
1458
|
while ((chainMatch = refChainRe.exec(trimmed)) !== null) {
|
|
@@ -1237,9 +1477,9 @@ function checkExpression(expr, path, out) {
|
|
|
1237
1477
|
chainFlagged = true;
|
|
1238
1478
|
}
|
|
1239
1479
|
}
|
|
1240
|
-
const refOnly = /^\$(?:form|meta)(?:\.[\w?]+)*$/;
|
|
1241
|
-
const refBeforeBool = /\$(?:form|meta)(?:\.[\w?]+)*\s*(?:&&|\|\||\?(?![.?]))/;
|
|
1242
|
-
const refAfterBool = /(?:&&|\|\|)\s*\$(?:form|meta)(?:\.[\w?]+)*\s*$/;
|
|
1480
|
+
const refOnly = /^\$(?:form|meta|item)(?:\.[\w?]+)*$/;
|
|
1481
|
+
const refBeforeBool = /\$(?:form|meta|item)(?:\.[\w?]+)*\s*(?:&&|\|\||\?(?![.?]))/;
|
|
1482
|
+
const refAfterBool = /(?:&&|\|\|)\s*\$(?:form|meta|item)(?:\.[\w?]+)*\s*$/;
|
|
1243
1483
|
if (refOnly.test(trimmed) || refBeforeBool.test(trimmed) || refAfterBool.test(trimmed)) {
|
|
1244
1484
|
out.push({
|
|
1245
1485
|
path,
|
|
@@ -1248,7 +1488,7 @@ function checkExpression(expr, path, out) {
|
|
|
1248
1488
|
suggestion: 'Form data values can be `undefined`. Compare explicitly: `$form.x !== undefined`, `$form.x === "value"`, `$form.items?.length > 0`. For default values use nullish coalescing: `$form.x ?? defaultValue`.'
|
|
1249
1489
|
});
|
|
1250
1490
|
}
|
|
1251
|
-
const refForCmpRe = /\$(?:form|meta)(?:\.[\w?]+)+/g;
|
|
1491
|
+
const refForCmpRe = /\$(?:form|meta|item)(?:\.[\w?]+)+/g;
|
|
1252
1492
|
let r5Flagged = false;
|
|
1253
1493
|
let cmpMatch;
|
|
1254
1494
|
while ((cmpMatch = refForCmpRe.exec(trimmed)) !== null) {
|
|
@@ -1273,16 +1513,16 @@ function checkExpression(expr, path, out) {
|
|
|
1273
1513
|
}
|
|
1274
1514
|
function lintStringInterpolations(formDefinition) {
|
|
1275
1515
|
const findings = [];
|
|
1276
|
-
walk(formDefinition, "", findings);
|
|
1516
|
+
walk(formDefinition, "", findings, false, false);
|
|
1277
1517
|
return findings;
|
|
1278
1518
|
}
|
|
1279
1519
|
const SLOT_REGEX = /\{\{([^}]*(?:\}[^}]+)*)\}\}/g;
|
|
1280
|
-
function walk(node, path, out) {
|
|
1520
|
+
function walk(node, path, out, inTemplate, propsOfRepeater) {
|
|
1281
1521
|
if (node === null || typeof node !== "object") {
|
|
1282
1522
|
return;
|
|
1283
1523
|
}
|
|
1284
1524
|
if (Array.isArray(node)) {
|
|
1285
|
-
node.forEach((item, i) => walk(item, `${path}/${i}`, out));
|
|
1525
|
+
node.forEach((item, i) => walk(item, `${path}/${i}`, out, inTemplate, false));
|
|
1286
1526
|
return;
|
|
1287
1527
|
}
|
|
1288
1528
|
const obj = node;
|
|
@@ -1304,9 +1544,10 @@ function walk(node, path, out) {
|
|
|
1304
1544
|
}
|
|
1305
1545
|
const childPath = `${path}/${key}`;
|
|
1306
1546
|
if (typeof value === "string") {
|
|
1307
|
-
checkTemplate(value, childPath, out);
|
|
1547
|
+
checkTemplate(value, childPath, out, inTemplate);
|
|
1308
1548
|
} else {
|
|
1309
|
-
|
|
1549
|
+
const childInTemplate = inTemplate || propsOfRepeater && key === "template";
|
|
1550
|
+
walk(value, childPath, out, childInTemplate, obj["type"] === "repeater" && key === "props");
|
|
1310
1551
|
}
|
|
1311
1552
|
}
|
|
1312
1553
|
}
|
|
@@ -1329,7 +1570,7 @@ function checkParamExpression(value, path, out) {
|
|
|
1329
1570
|
});
|
|
1330
1571
|
}
|
|
1331
1572
|
}
|
|
1332
|
-
function checkTemplate(value, path, out) {
|
|
1573
|
+
function checkTemplate(value, path, out, inTemplate) {
|
|
1333
1574
|
const openCount = (value.match(/\{\{/g) ?? []).length;
|
|
1334
1575
|
const closeCount = (value.match(/\}\}/g) ?? []).length;
|
|
1335
1576
|
if (openCount !== closeCount) {
|
|
@@ -1347,10 +1588,10 @@ function checkTemplate(value, path, out) {
|
|
|
1347
1588
|
while ((match = SLOT_REGEX.exec(value)) !== null) {
|
|
1348
1589
|
const slot = match[0];
|
|
1349
1590
|
const expr = match[1];
|
|
1350
|
-
checkSlot(expr, slot, path, out);
|
|
1591
|
+
checkSlot(expr, slot, path, out, inTemplate);
|
|
1351
1592
|
}
|
|
1352
1593
|
}
|
|
1353
|
-
function checkSlot(expr, slot, path, out) {
|
|
1594
|
+
function checkSlot(expr, slot, path, out, inTemplate) {
|
|
1354
1595
|
const trimmed = expr.trim();
|
|
1355
1596
|
if (!trimmed) {
|
|
1356
1597
|
out.push({
|
|
@@ -1370,12 +1611,21 @@ function checkSlot(expr, slot, path, out) {
|
|
|
1370
1611
|
});
|
|
1371
1612
|
return;
|
|
1372
1613
|
}
|
|
1373
|
-
|
|
1614
|
+
const referencesItemScope = /\$item\b|\$index\b/.test(trimmed);
|
|
1615
|
+
const hasGlobalRoot = /\$form\b|\$meta\b|\$errors\b|\$formIsInvalid\b|\$fn\b/.test(trimmed);
|
|
1616
|
+
if (referencesItemScope && !inTemplate) {
|
|
1374
1617
|
out.push({
|
|
1375
1618
|
path,
|
|
1376
1619
|
slot,
|
|
1377
|
-
message: "Interpolation slot
|
|
1378
|
-
suggestion: "
|
|
1620
|
+
message: "Interpolation slot references `$item` or `$index`, which are only available inside a repeater `props.template`.",
|
|
1621
|
+
suggestion: "Move the widget inside the repeater template, or read the data through `$form` (e.g. `$form.lineItems?.[0]?.quantity`)."
|
|
1622
|
+
});
|
|
1623
|
+
} else if (!hasGlobalRoot && !(inTemplate && referencesItemScope)) {
|
|
1624
|
+
out.push({
|
|
1625
|
+
path,
|
|
1626
|
+
slot,
|
|
1627
|
+
message: "Interpolation slot does not reference `$form`, `$meta`, `$errors`, `$formIsInvalid`, or `$fn`.",
|
|
1628
|
+
suggestion: "GolemUI template slots read data via `$form.fieldName`, metadata via `$meta.key`, validation errors via `$errors.fieldName`, or the built-in `$formIsInvalid` boolean. Host-provided pure functions are callable via `$fn.functionName(...)` when the host passes a `functions` map in the form init config. Inside a repeater `props.template` the current item is available via `$item` and its position via `$index`."
|
|
1379
1629
|
});
|
|
1380
1630
|
}
|
|
1381
1631
|
if (/(?<![=!<>])=(?![=>])/.test(trimmed)) {
|
|
@@ -2300,11 +2550,11 @@ const JSON_GET_WIDGET_SPEC_TOOL = {
|
|
|
2300
2550
|
};
|
|
2301
2551
|
const STATES_CONCEPT = {
|
|
2302
2552
|
concept: "states",
|
|
2303
|
-
summary: "States are named boolean conditions declared at the form root. Each state name maps to a reactive expression string (using `$form`, `$meta`, or `$
|
|
2553
|
+
summary: "States are named boolean conditions declared at the form root. Each state name maps to a reactive expression string (using `$form`, `$meta`, `$formIsInvalid`, or `$fn`) that the runtime evaluates continuously as the user interacts with the form. Once declared, state names can gate widget visibility (include / exclude) and swap individual widget properties per-state — a capability unique to named states that has no inline `when` equivalent.",
|
|
2304
2554
|
patterns: [
|
|
2305
2555
|
{
|
|
2306
2556
|
name: "Declare states at the form root",
|
|
2307
|
-
description: 'Add a `"states"` object to the top-level form definition. Each key is a state name; each value is a reactive expression string. Expressions are evaluated at runtime — they have access to `$form` (all current form values), `$meta` (host-supplied metadata), and `$
|
|
2557
|
+
description: 'Add a `"states"` object to the top-level form definition. Each key is a state name; each value is a reactive expression string. Expressions are evaluated at runtime — they have access to `$form` (all current form values), `$meta` (host-supplied metadata), `$formIsInvalid`, and `$fn` (host-provided pure functions). State names can contain letters, numbers, hyphens, and underscores. Colons enable hierarchical composition — see the "Composed sub-states (colon notation)" pattern below.',
|
|
2308
2558
|
example: {
|
|
2309
2559
|
$schema: "https://golemui.com/schemas/form.schema.json",
|
|
2310
2560
|
states: {
|
|
@@ -2368,7 +2618,7 @@ const STATES_CONCEPT = {
|
|
|
2368
2618
|
},
|
|
2369
2619
|
{
|
|
2370
2620
|
name: "Inline conditional rendering with `when`",
|
|
2371
|
-
description: 'For a one-off condition that applies to a single widget only, use the inline `when` form: `"include": { "when": "expression" }` or `"exclude": { "when": "expression" }`. The expression is evaluated exactly like a state expression — it has access to `$form`, `$meta`, and `$
|
|
2621
|
+
description: 'For a one-off condition that applies to a single widget only, use the inline `when` form: `"include": { "when": "expression" }` or `"exclude": { "when": "expression" }`. The expression is evaluated exactly like a state expression — it has access to `$form`, `$meta`, `$formIsInvalid`, and `$fn`, uses the same safe operator subset, and must use optional chaining for nested fields. No entry in the root `states` map is required. Use this form when the condition is not shared with any other widget; use the named-state form (`in`/`from`) when the same condition gates two or more widgets.',
|
|
2372
2622
|
example: {
|
|
2373
2623
|
$schema: "https://golemui.com/schemas/form.schema.json",
|
|
2374
2624
|
form: [
|
|
@@ -2463,7 +2713,7 @@ const STATES_CONCEPT = {
|
|
|
2463
2713
|
"State-suffixed root props — only these support suffixes at the widget root level: `label`, `disabled`, `readonly`, `validator`, `size`. All other overridable properties live inside `props`.",
|
|
2464
2714
|
'State-suffixed props inside `props` — any key inside the `props` object can be suffixed: `"hint.<state>"`, `"placeholder.<state>"`, `"items.<state>"`, `"addLabel.<state>"`, etc.',
|
|
2465
2715
|
'Suffix names must not contain dots (the dot is the separator between property and state name): `"label.myState"` ✅, `"label.register:adult"` ✅ — `"label.my.state"` ❌.',
|
|
2466
|
-
"Reactive expressions must reference `$form`, `$meta`, or `$
|
|
2716
|
+
"Reactive expressions must reference `$form`, `$meta`, `$formIsInvalid`, or `$fn`. A bare identifier like `termsAccepted` without a root reference is invalid.",
|
|
2467
2717
|
"Use `===` / `!==` for equality, `&&` / `||` for logic. Avoid `=` (assignment), `==`/`!=` (loose equality), or bitwise `&`/`|`.",
|
|
2468
2718
|
'When multiple states are active at the same time and a property has more than one matching suffix, the longest state name wins (most specific takes priority). Example: if both `register` and `register:adult` are active, `"label.register:adult"` overrides `"label.register"`.',
|
|
2469
2719
|
'`include.in` and `exclude.from` each accept an Array of state names. A widget included `in: ["a", "b"]` renders when state `a` OR state `b` is active.',
|
|
@@ -2472,11 +2722,11 @@ const STATES_CONCEPT = {
|
|
|
2472
2722
|
};
|
|
2473
2723
|
const STRING_INTERPOLATION_CONCEPT = {
|
|
2474
2724
|
concept: "string-interpolation",
|
|
2475
|
-
summary: "GolemUI supports live data binding in text props via `{{expression}}` template slots. Any string-valued property (e.g. `props.text`, `props.hint`, `label`) can embed one or more `{{...}}` slots. Each slot is a JavaScript-like expression evaluated against the live form state using a safe subset of JavaScript (no side effects
|
|
2725
|
+
summary: "GolemUI supports live data binding in text props via `{{expression}}` template slots. Any string-valued property (e.g. `props.text`, `props.hint`, `label`) can embed one or more `{{...}}` slots. Each slot is a JavaScript-like expression evaluated against the live form state using a safe subset of JavaScript (no side effects; method calls on scope values and host-provided `$fn` functions are the only calls allowed). i18n translation `params` objects accept a matching bare-expression format — the same expressions but without the `{{}}` delimiters.",
|
|
2476
2726
|
patterns: [
|
|
2477
2727
|
{
|
|
2478
2728
|
name: "Template slots in display text",
|
|
2479
|
-
description: "Embed `{{expression}}` in any string prop to inject live values. Available scopes: `$form` (all current field values), `$meta` (host-supplied metadata), `$errors` (current validation error messages keyed by field uid), `$formIsInvalid` (boolean — `true` when any field currently fails validation). Use optional chaining (`?.`) when accessing nested fields that may not yet exist. Multiple slots can appear in a single string.",
|
|
2729
|
+
description: "Embed `{{expression}}` in any string prop to inject live values. Available scopes: `$form` (all current field values), `$meta` (host-supplied metadata), `$errors` (current validation error messages keyed by field uid), `$formIsInvalid` (boolean — `true` when any field currently fails validation), and `$fn` (host-provided pure functions, called as `$fn.name(...)`). Use optional chaining (`?.`) when accessing nested fields that may not yet exist. Multiple slots can appear in a single string.",
|
|
2480
2730
|
example: {
|
|
2481
2731
|
$schema: "https://golemui.com/schemas/form.schema.json",
|
|
2482
2732
|
form: [
|
|
@@ -2519,7 +2769,7 @@ const STRING_INTERPOLATION_CONCEPT = {
|
|
|
2519
2769
|
},
|
|
2520
2770
|
{
|
|
2521
2771
|
name: "Expressions in slots",
|
|
2522
|
-
description: "Slots support full JavaScript-like expressions: arithmetic, string concatenation, ternary conditionals, and optional chaining. The expression is evaluated against the same scope object (`$form`, `$meta`, `$errors`, `$formIsInvalid`). If the expression evaluates to `null` or `undefined`, the slot renders as an empty string.",
|
|
2772
|
+
description: "Slots support full JavaScript-like expressions: arithmetic, string concatenation, ternary conditionals, and optional chaining. The expression is evaluated against the same scope object (`$form`, `$meta`, `$errors`, `$formIsInvalid`, `$fn`). If the expression evaluates to `null` or `undefined`, the slot renders as an empty string.",
|
|
2523
2773
|
example: {
|
|
2524
2774
|
$schema: "https://golemui.com/schemas/form.schema.json",
|
|
2525
2775
|
data: { firstName: "Jane", lastName: "Doe", count: 4, role: "admin" },
|
|
@@ -2553,7 +2803,7 @@ const STRING_INTERPOLATION_CONCEPT = {
|
|
|
2553
2803
|
},
|
|
2554
2804
|
{
|
|
2555
2805
|
name: "i18n param expressions",
|
|
2556
|
-
description: "When using i18n translations, `params` values support the same expression language as `{{}}` slots, but as **bare expressions** without the `{{}}` delimiters. Params that start with a `$` scope prefix are evaluated; others are passed as static strings. The expression has access to `$form`, `$meta`, `$errors`, and `$
|
|
2806
|
+
description: "When using i18n translations, `params` values support the same expression language as `{{}}` slots, but as **bare expressions** without the `{{}}` delimiters. Params that start with a `$` scope prefix are evaluated; others are passed as static strings. The expression has access to `$form`, `$meta`, `$errors`, `$formIsInvalid`, and `$fn`.",
|
|
2557
2807
|
example: {
|
|
2558
2808
|
$schema: "https://golemui.com/schemas/form.schema.json",
|
|
2559
2809
|
data: { firstName: "Jane", lastName: "Doe", count: 4 },
|
|
@@ -2580,7 +2830,8 @@ const STRING_INTERPOLATION_CONCEPT = {
|
|
|
2580
2830
|
}
|
|
2581
2831
|
],
|
|
2582
2832
|
rules: [
|
|
2583
|
-
"Slots must reference at least one of `$form`, `$meta`, `$errors`, or `$
|
|
2833
|
+
"Slots must reference at least one of `$form`, `$meta`, `$errors`, `$formIsInvalid`, or `$fn`. A bare identifier without a scope prefix is invalid inside `{{}}`: use `{{$form.name}}` not `{{name}}`. `$formIsInvalid` is a bare boolean — do not chain properties onto it.",
|
|
2834
|
+
"Inside a repeater `props.template`, slots can additionally reference `$item` (the current repeater item object) and `$index` (its zero-based position): `{{($item.quantity ?? 0) * ($item.unitPrice ?? 0)}}`. Outside a template, `$item`/`$index` are undefined and invalid.",
|
|
2584
2835
|
"If an expression evaluates to `null` or `undefined`, the slot renders as an empty string in display text.",
|
|
2585
2836
|
"Use optional chaining (`?.`) when accessing nested fields that may not yet exist: `{{$form.address?.city}}` not `{{$form.address.city}}`.",
|
|
2586
2837
|
"Do not use assignment `=` inside a slot — slots are read-only. Use `===` for equality checks.",
|
|
@@ -2593,7 +2844,7 @@ const STRING_INTERPOLATION_CONCEPT = {
|
|
|
2593
2844
|
};
|
|
2594
2845
|
const REACTIVE_SCOPE_CONCEPT = {
|
|
2595
2846
|
concept: "reactive-scope",
|
|
2596
|
-
summary: "GolemUI reactive expressions (used in `states`, `include.when`, `exclude.when`, and `{{}}` template slots) share a common read-only scope object. The scope exposes
|
|
2847
|
+
summary: "GolemUI reactive expressions (used in `states`, `include.when`, `exclude.when`, and `{{}}` template slots) share a common read-only scope object. The scope exposes five global variables: `$form` (live form data), `$meta` (host-supplied metadata), `$errors` (validation error messages), `$formIsInvalid` (built-in boolean), and `$fn` (host-provided pure functions). Inside a repeater `props.template` two more variables are available: `$item` (the current repeater item object) and `$index` (its zero-based position). All variables are read-only — expressions can only read from them, never write to them.",
|
|
2597
2848
|
patterns: [
|
|
2598
2849
|
{
|
|
2599
2850
|
name: "$form — live form data",
|
|
@@ -2683,10 +2934,69 @@ const REACTIVE_SCOPE_CONCEPT = {
|
|
|
2683
2934
|
formValid: "!$formIsInvalid"
|
|
2684
2935
|
}
|
|
2685
2936
|
}
|
|
2937
|
+
},
|
|
2938
|
+
{
|
|
2939
|
+
name: "$fn — host-provided pure functions",
|
|
2940
|
+
description: "`$fn` is a namespace of pure functions that the host application passes to the form component via the `functions` entry of the init config (a sibling of `dependencies`). Call them as `$fn.functionName(arg1, arg2)`; arguments can be any scope value, including `$form` paths and `$item`/`$index` inside a repeater template, and the returned value is substituted like any other expression result. Use `$fn` to keep complex derivations (totals, currency conversion, formatting) out of the expression string and inside typed, testable host code. The MCP tool has no knowledge of which function names the host supplies. Calling a name the host did not provide throws at evaluation time: template slots surface a form-health error, `when` conditions in flags propagate the error, and `states` treat the expression as `false`. Host functions MUST be pure: derive the result only from the arguments, no side effects.",
|
|
2941
|
+
example: {
|
|
2942
|
+
$schema: "https://golemui.com/schemas/form.schema.json",
|
|
2943
|
+
form: [
|
|
2944
|
+
{
|
|
2945
|
+
kind: "display",
|
|
2946
|
+
type: "markdownText",
|
|
2947
|
+
props: {
|
|
2948
|
+
// grandTotal comes from the host: config.functions = { grandTotal: (items) => ... }
|
|
2949
|
+
md: "**Grand Total:** {{$fn.grandTotal($form.lineItems)}}"
|
|
2950
|
+
},
|
|
2951
|
+
include: { when: "$fn.grandTotal($form.lineItems) > 0" }
|
|
2952
|
+
}
|
|
2953
|
+
]
|
|
2954
|
+
}
|
|
2955
|
+
},
|
|
2956
|
+
{
|
|
2957
|
+
name: "$item / $index — current repeater item (template scope only)",
|
|
2958
|
+
description: "`$item` is the data object of the repeater item a widget belongs to, and `$index` is that item's zero-based position in the array. They are available ONLY to widgets inside a repeater `props.template` — in `include`/`exclude`/`disabled`/`readonly` `when` conditions, `{{}}` template slots, and i18n params. Outside a template they are `undefined` and the linter flags them. For nested repeaters, `$item`/`$index` refer to the INNERMOST enclosing item; to address an outer level, use the `items` path token through `$form` instead (e.g. `$form.teams.items.name` resolves against each item of the `teams` repeater). `$item` leaf values may be `undefined` while the user fills in the row, so guard them; `$index` is always a defined number.",
|
|
2959
|
+
example: {
|
|
2960
|
+
$schema: "https://golemui.com/schemas/form.schema.json",
|
|
2961
|
+
form: [
|
|
2962
|
+
{
|
|
2963
|
+
kind: "input",
|
|
2964
|
+
type: "repeater",
|
|
2965
|
+
path: "lineItems",
|
|
2966
|
+
label: "Line Items",
|
|
2967
|
+
props: {
|
|
2968
|
+
template: {
|
|
2969
|
+
kind: "layout",
|
|
2970
|
+
type: "flex",
|
|
2971
|
+
props: { direction: "column" },
|
|
2972
|
+
children: [
|
|
2973
|
+
{
|
|
2974
|
+
kind: "input",
|
|
2975
|
+
type: "number",
|
|
2976
|
+
path: "lineItems.items.quantity",
|
|
2977
|
+
label: "Quantity {{$index + 1}}"
|
|
2978
|
+
},
|
|
2979
|
+
{
|
|
2980
|
+
kind: "display",
|
|
2981
|
+
type: "markdownText",
|
|
2982
|
+
props: {
|
|
2983
|
+
md: "**Total:** {{(($item.quantity ?? 0) * ($item.unitPrice ?? 0)).toFixed(2)}}"
|
|
2984
|
+
},
|
|
2985
|
+
include: { when: "$item.quantity !== undefined" }
|
|
2986
|
+
}
|
|
2987
|
+
]
|
|
2988
|
+
}
|
|
2989
|
+
}
|
|
2990
|
+
}
|
|
2991
|
+
]
|
|
2992
|
+
}
|
|
2686
2993
|
}
|
|
2687
2994
|
],
|
|
2688
2995
|
rules: [
|
|
2689
|
-
"All
|
|
2996
|
+
"All scope variables are read-only. Expressions may only read values, never assign them.",
|
|
2997
|
+
"`$item` and `$index` exist only for widgets inside a repeater `props.template`. In `states` and in widgets outside a template they are undefined and invalid.",
|
|
2998
|
+
"For nested repeaters `$item`/`$index` bind to the innermost enclosing item. Use the `items` path token through `$form` to address outer levels.",
|
|
2999
|
+
"`$item` leaf values (`$item.someField`) may be `undefined` until the user fills them in — guard with `??` or explicit comparisons. `$index` is always a defined number.",
|
|
2690
3000
|
"`$form` is always a defined object. Its leaf values (`$form.someField`) may be `undefined` until the user fills them in.",
|
|
2691
3001
|
"Use optional chaining (`?.`) at every intermediate segment of a nested path. `$form.address?.city` is safe; `$form.address.city` throws if `address` is undefined.",
|
|
2692
3002
|
'A widget\'s `path` value maps directly to a `$form` key path using the same dot segments. `path: "shipping.address.zip"` -> `$form.shipping?.address?.zip`.',
|
|
@@ -2695,7 +3005,8 @@ const REACTIVE_SCOPE_CONCEPT = {
|
|
|
2695
3005
|
"`$meta` keys are arbitrary — they depend entirely on what the host application passes to the form component. Use optional chaining if a key may be absent.",
|
|
2696
3006
|
"Supported operators across all expressions: arithmetic (`+`, `-`, `*`, `/`, `%`), comparison (`===`, `!==`, `<`, `>`, `<=`, `>=`), logical (`&&`, `||`, `!`), ternary (`? :`), optional chaining (`?.`), nullish coalescing (`??`).",
|
|
2697
3007
|
"Use `===` / `!==` for equality. Avoid `==` / `!=` (loose equality causes unexpected coercions with `undefined`).",
|
|
2698
|
-
"
|
|
3008
|
+
"Expressions may call methods on scope values (e.g. `.includes()`, `.toFixed()`) and host functions via `$fn.name(...)`. Everything must stay a pure read: no `eval`, no assignments, no side effects.",
|
|
3009
|
+
"`$fn` names are defined by the host through the `functions` init config. Calling a name the host did not provide errors the expression at evaluation time — coordinate names with the host."
|
|
2699
3010
|
]
|
|
2700
3011
|
};
|
|
2701
3012
|
const ICONS_CONCEPT = {
|
|
@@ -2795,7 +3106,7 @@ function getConcept(input) {
|
|
|
2795
3106
|
}
|
|
2796
3107
|
const GET_CONCEPT_TOOL = {
|
|
2797
3108
|
name: "get_concept",
|
|
2798
|
-
description: 'Return a detailed guide for a cross-cutting GolemUI form concept — things that span multiple widgets and affect the whole form, rather than the API of a single widget. Call this when you need to: (1) conditionally show or hide widgets (`include`/`exclude`) — both the named-state form (`in`/`from`) and the inline `when` expression form are covered under the `states` concept; (2) change a widget\'s props based on form state (state-suffixed props like `"label.stateName": "…"`); (3) understand what `$form`, `$meta`, `$errors`, and `$
|
|
3109
|
+
description: 'Return a detailed guide for a cross-cutting GolemUI form concept — things that span multiple widgets and affect the whole form, rather than the API of a single widget. Call this when you need to: (1) conditionally show or hide widgets (`include`/`exclude`) — both the named-state form (`in`/`from`) and the inline `when` expression form are covered under the `states` concept; (2) change a widget\'s props based on form state (state-suffixed props like `"label.stateName": "…"`); (3) understand what `$form`, `$meta`, `$errors`, `$formIsInvalid`, and `$fn` are and how to reference form data in reactive expressions — use the `reactive-scope` concept; (4) add icons to widgets — use the `icons` concept. Currently supported concepts: `states`, `string-interpolation`, `reactive-scope`, `icons`.',
|
|
2799
3110
|
inputSchema: {
|
|
2800
3111
|
type: "object",
|
|
2801
3112
|
properties: {
|