@golemui/gui-mcp 1.3.0-rc.0 → 1.4.0-rc.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.
@@ -1,94 +1,138 @@
1
1
  import Ajv2020 from "ajv/dist/2020.js";
2
2
  import addFormats from "ajv-formats";
3
- const $schema$H = "https://json-schema.org/draft/2020-12/schema";
4
- const $id$H = "https://golemui.com/schemas/gui/core/common.schema.json";
3
+ const $schema$J = "https://json-schema.org/draft/2020-12/schema";
4
+ const $id$J = "https://golemui.com/schemas/gui/core/common.schema.json";
5
5
  const $comment$5 = "Owned by @golemui/schemas (libs/schemas/src/lib/core/). Implementation trees contain a generated vendored copy, identical apart from an `$id` rebased onto the implementation's own tree. Edit the source file, then run `npm run generate:schemas`.";
6
- const title$H = "Golem Common Definitions";
7
- const $defs$F = { "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" }, "uid": { "type": "string", "description": "Unique identifier for the widget" }, "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 }, "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"] } };
6
+ const title$J = "Golem Common Definitions";
7
+ const $defs$H = { "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" }, "uid": { "type": "string", "description": "Unique identifier for the widget" }, "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 }, "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": "Relative width of the widget inside its layout, from 1 to 12, where 12 is the full width. Defaults to full width when omitted. gui maps it to a 12-column grid, other widget sets may map it to a flex ratio.", "minimum": 1, "maximum": 12 }, "include": { "$ref": "#/$defs/include" }, "exclude": { "$ref": "#/$defs/exclude" } }, "required": ["type"] } };
8
8
  const commonSchemaJson = {
9
+ $schema: $schema$J,
10
+ $id: $id$J,
11
+ $comment: $comment$5,
12
+ title: title$J,
13
+ $defs: $defs$H
14
+ };
15
+ const $schema$I = "https://json-schema.org/draft/2020-12/schema";
16
+ const $id$I = "https://golemui.com/schemas/gui/ranges.schema.json";
17
+ const $comment$4 = "Owned by @golemui/gui-schemas (libs/gui/schemas/src/lib/). Handwritten, edit directly. Shared date and time range definitions used by the gui component schemas.";
18
+ const title$I = "GolemUI Range Definitions";
19
+ const $defs$G = { "dateRange": { "type": "object", "description": "A single date range. Used as the value of the range calendar and range date widgets, and by calendar/date-picker widgets to mark days as disabled.", "properties": { "start": { "type": "string", "description": "ISO-8601 date string for the start of the range (inclusive)" }, "end": { "type": "string", "description": "ISO-8601 date string for the end of the range (inclusive). Omit to cover a single day." } }, "required": ["start"], "additionalProperties": false }, "dateTimeRange": { "type": "object", "description": "A single date-time range (two ISO date-times). Used as the value of the range date-time widgets, and by those widgets 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). Omit to cover the single instant at start." } }, "required": ["start"], "additionalProperties": false }, "isoTime": { "type": "string", "description": "A time of day as HH:MM or HH:MM:SS on a 24-hour clock", "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?$" }, "timeRange": { "type": "object", "description": "A single time-of-day range. Used as the value of the range time widgets, and by time-picker widgets to mark times as disabled.", "properties": { "start": { "$ref": "#/$defs/isoTime" }, "end": { "$ref": "#/$defs/isoTime" } }, "required": ["start", "end"], "additionalProperties": false }, "scopedTimeRange": { "type": "object", "description": "A time-of-day range that optionally applies only on one date or on given weekdays. Used by date-time widgets to mark times as disabled.", "properties": { "start": { "$ref": "#/$defs/isoTime" }, "end": { "$ref": "#/$defs/isoTime" }, "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 to 6=Saturday" } }, "required": ["start", "end"], "additionalProperties": false } };
20
+ const rangesSchemaJson = {
21
+ $schema: $schema$I,
22
+ $id: $id$I,
23
+ $comment: $comment$4,
24
+ title: title$I,
25
+ $defs: $defs$G
26
+ };
27
+ const $schema$H = "https://json-schema.org/draft/2020-12/schema";
28
+ const $id$H = "https://golemui.com/schemas/gui/validators.schema.json";
29
+ const $comment$3 = "Owned by @golemui/gui-schemas (libs/gui/schemas/src/lib/). Handwritten, edit directly. Each implementation publishes its own validators schema exposing the #/$defs/validator entry pointer.";
30
+ const title$H = "GolemUI Validator Definitions";
31
+ const $defs$F = { "localizable": { "$ref": "./core/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" }] } };
32
+ const validatorsSchemaJson = {
9
33
  $schema: $schema$H,
10
34
  $id: $id$H,
11
- $comment: $comment$5,
35
+ $comment: $comment$3,
12
36
  title: title$H,
13
37
  $defs: $defs$F
14
38
  };
15
39
  const $schema$G = "https://json-schema.org/draft/2020-12/schema";
16
- const $id$G = "https://golemui.com/schemas/gui/ranges.schema.json";
17
- const $comment$4 = "Owned by @golemui/gui-schemas (libs/gui/schemas/src/lib/). Handwritten, edit directly. Shared date and time range definitions used by the gui component schemas.";
18
- const title$G = "GolemUI Range Definitions";
19
- const $defs$E = { "dateRange": { "type": "object", "description": "A single date range. Used as the value of the range calendar and range date widgets, and by calendar/date-picker widgets to mark days as disabled.", "properties": { "start": { "type": "string", "description": "ISO-8601 date string for the start of the range (inclusive)" }, "end": { "type": "string", "description": "ISO-8601 date string for the end of the range (inclusive). Omit to cover a single day." } }, "required": ["start"], "additionalProperties": false }, "dateTimeRange": { "type": "object", "description": "A single date-time range (two ISO date-times). Used as the value of the range date-time widgets, and by those widgets 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). Omit to cover the single instant at start." } }, "required": ["start"], "additionalProperties": false }, "isoTime": { "type": "string", "description": "A time of day as HH:MM or HH:MM:SS on a 24-hour clock", "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?$" }, "timeRange": { "type": "object", "description": "A single time-of-day range. Used as the value of the range time widgets, and by time-picker widgets to mark times as disabled.", "properties": { "start": { "$ref": "#/$defs/isoTime" }, "end": { "$ref": "#/$defs/isoTime" } }, "required": ["start", "end"], "additionalProperties": false }, "scopedTimeRange": { "type": "object", "description": "A time-of-day range that optionally applies only on one date or on given weekdays. Used by date-time widgets to mark times as disabled.", "properties": { "start": { "$ref": "#/$defs/isoTime" }, "end": { "$ref": "#/$defs/isoTime" }, "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 to 6=Saturday" } }, "required": ["start", "end"], "additionalProperties": false } };
20
- const rangesSchemaJson = {
40
+ const $id$G = "https://golemui.com/schemas/gui/form.schema.json";
41
+ const $comment$2 = "GENERATED by libs/gui/schemas/tools/generate-schemas.ts from src/lib/widget-manifest.ts. DO NOT EDIT. Regenerate with `npm run generate:schemas`.";
42
+ const title$G = "Golem Form DSL";
43
+ const type$E = "object";
44
+ const properties$D = { "$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": "./core/common.schema.json#/$defs/reactiveExpression" } }, "form": { "type": "array", "description": "The ordered list of widgets that make up the form body", "items": { "$ref": "./widgets.schema.json#/$defs/formWidget" } }, "autocomplete": { "type": "string", "description": "HTML `autocomplete` attribute applied to the `<form>` element (e.g. `on`, `off`)" } };
45
+ const required$D = ["form"];
46
+ const additionalProperties = false;
47
+ const formSchemaJson = {
21
48
  $schema: $schema$G,
22
49
  $id: $id$G,
23
- $comment: $comment$4,
50
+ $comment: $comment$2,
24
51
  title: title$G,
25
- $defs: $defs$E
52
+ type: type$E,
53
+ properties: properties$D,
54
+ required: required$D,
55
+ additionalProperties
26
56
  };
27
57
  const $schema$F = "https://json-schema.org/draft/2020-12/schema";
28
- const $id$F = "https://golemui.com/schemas/gui/validators.schema.json";
29
- const $comment$3 = "Owned by @golemui/gui-schemas (libs/gui/schemas/src/lib/). Handwritten, edit directly. Each implementation publishes its own validators schema exposing the #/$defs/validator entry pointer.";
30
- const title$F = "GolemUI Validator Definitions";
31
- const $defs$D = { "localizable": { "$ref": "./core/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" }] } };
32
- const validatorsSchemaJson = {
58
+ const $id$F = "https://golemui.com/schemas/gui/layout-widget.schema.json";
59
+ const $comment$1 = "GENERATED by libs/gui/schemas/tools/generate-schemas.ts from src/lib/widget-manifest.ts. DO NOT EDIT. Regenerate with `npm run generate:schemas`.";
60
+ const title$F = "Golem Layout Widget";
61
+ const oneOf$1 = [{ "$ref": "./components/accordion.schema.json" }, { "$ref": "./components/flex.schema.json" }, { "$ref": "./components/grid.schema.json" }, { "$ref": "./components/tabs.schema.json" }];
62
+ const layoutWidgetSchemaJson = {
33
63
  $schema: $schema$F,
34
64
  $id: $id$F,
35
- $comment: $comment$3,
65
+ $comment: $comment$1,
36
66
  title: title$F,
37
- $defs: $defs$D
67
+ oneOf: oneOf$1
38
68
  };
39
69
  const $schema$E = "https://json-schema.org/draft/2020-12/schema";
40
- const $id$E = "https://golemui.com/schemas/gui/form.schema.json";
41
- const $comment$2 = "GENERATED by libs/gui/schemas/tools/generate-schemas.ts from src/lib/widget-manifest.ts. DO NOT EDIT. Regenerate with `npm run generate:schemas`.";
42
- const title$E = "Golem Form DSL";
43
- const type$C = "object";
44
- 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": "./core/common.schema.json#/$defs/reactiveExpression" } }, "form": { "type": "array", "description": "The ordered list of widgets that make up the form body", "items": { "$ref": "./widgets.schema.json#/$defs/formWidget" } }, "autocomplete": { "type": "string", "description": "HTML `autocomplete` attribute applied to the `<form>` element (e.g. `on`, `off`)" } };
45
- const required$B = ["form"];
46
- const additionalProperties = false;
47
- const formSchemaJson = {
70
+ const $id$E = "https://golemui.com/schemas/gui/widgets.schema.json";
71
+ const $comment = "GENERATED by libs/gui/schemas/tools/generate-schemas.ts from src/lib/widget-manifest.ts. DO NOT EDIT. Regenerate with `npm run generate:schemas`.";
72
+ const title$E = "Golem gui widgets";
73
+ const $defs$E = { "knownWidgetTypes": { "description": "Built-in widget `type` identifiers. Used to exclude built-ins from the custom-widget fallback so every widget matches exactly one schema. Types listed here without a component schema are not expressible in JSON and are rejected entirely instead of validating as custom widgets.", "enum": ["calendar", "dateTimeCalendar", "checkbox", "currency", "dateInput", "datePicker", "dateTimeInput", "dateTimePicker", "dropdown", "list", "markdown", "multiDropdown", "multiList", "number", "password", "radiogroup", "rangeCalendar", "rangeDateInput", "rangeDatePicker", "rangeDateTimeInput", "rangeDateTimeCalendar", "rangeDateTimePicker", "rangeTimeInput", "rangeTimePicker", "repeater", "select", "tags", "textarea", "textinput", "timeInput", "timePicker", "toggle", "accordion", "flex", "grid", "tabs", "alert", "markdownText", "renderer", "button"] }, "formWidget": { "description": "A form widget: one of the built-in component schemas, the custom-widget fallback, or a reference to an external chunk file.", "oneOf": [{ "$ref": "./components/calendar.schema.json" }, { "$ref": "./components/datetimecalendar.schema.json" }, { "$ref": "./components/checkbox.schema.json" }, { "$ref": "./components/currency.schema.json" }, { "$ref": "./components/dateinput.schema.json" }, { "$ref": "./components/datepicker.schema.json" }, { "$ref": "./components/datetimeinput.schema.json" }, { "$ref": "./components/datetimepicker.schema.json" }, { "$ref": "./components/dropdown.schema.json" }, { "$ref": "./components/list.schema.json" }, { "$ref": "./components/markdown.schema.json" }, { "$ref": "./components/multidropdown.schema.json" }, { "$ref": "./components/multilist.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/rangedatepicker.schema.json" }, { "$ref": "./components/rangedatetimeinput.schema.json" }, { "$ref": "./components/rangedatetimecalendar.schema.json" }, { "$ref": "./components/rangedatetimepicker.schema.json" }, { "$ref": "./components/rangetimeinput.schema.json" }, { "$ref": "./components/rangetimepicker.schema.json" }, { "$ref": "./components/repeater.schema.json" }, { "$ref": "./components/select.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/accordion.schema.json" }, { "$ref": "./components/flex.schema.json" }, { "$ref": "./components/grid.schema.json" }, { "$ref": "./components/tabs.schema.json" }, { "$ref": "./components/alert.schema.json" }, { "$ref": "./components/markdowntext.schema.json" }, { "$ref": "./components/button.schema.json" }, { "$ref": "./components/custom.schema.json" }, { "$ref": "./core/common.schema.json#/$defs/chunkRef" }] } };
74
+ const widgetsSchemaJson = {
48
75
  $schema: $schema$E,
49
76
  $id: $id$E,
50
- $comment: $comment$2,
77
+ $comment,
51
78
  title: title$E,
52
- type: type$C,
53
- properties: properties$B,
54
- required: required$B,
55
- additionalProperties
79
+ $defs: $defs$E
56
80
  };
57
81
  const $schema$D = "https://json-schema.org/draft/2020-12/schema";
58
- const $id$D = "https://golemui.com/schemas/gui/layout-widget.schema.json";
59
- const $comment$1 = "GENERATED by libs/gui/schemas/tools/generate-schemas.ts from src/lib/widget-manifest.ts. DO NOT EDIT. Regenerate with `npm run generate:schemas`.";
60
- const title$D = "Golem Layout Widget";
61
- const oneOf$1 = [{ "$ref": "./components/accordion.schema.json" }, { "$ref": "./components/flex.schema.json" }, { "$ref": "./components/grid.schema.json" }, { "$ref": "./components/tabs.schema.json" }];
62
- const layoutWidgetSchemaJson = {
82
+ const $id$D = "https://golemui.com/schemas/gui/components/calendar.schema.json";
83
+ const title$D = "Calendar Widget";
84
+ const type$D = "object";
85
+ const $defs$D = { "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "prevMonthIconProp": { "type": "string" }, "nextMonthIconProp": { "type": "string" }, "prevMonthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "nextMonthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "selectYearAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "yearGridAriaLabelProp": { "$ref": "../core/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": "../ranges.schema.json#/$defs/dateRange" } } };
86
+ const allOf$D = [{ "$ref": "../core/common.schema.json#/$defs/baseWidget" }];
87
+ const properties$C = { "kind": { "const": "input" }, "type": { "const": "calendar" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "string" }, "props": { "type": "object", "properties": { "hint": { "$ref": "#/$defs/hintProp" }, "prevMonthIcon": { "$ref": "#/$defs/prevMonthIconProp" }, "nextMonthIcon": { "$ref": "#/$defs/nextMonthIconProp" }, "prevMonthAriaLabel": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "nextMonthAriaLabel": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "selectYearAriaLabel": { "$ref": "#/$defs/selectYearAriaLabelProp" }, "yearGridAriaLabel": { "$ref": "#/$defs/yearGridAriaLabelProp" }, "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" }, "^selectYearAriaLabel\\.[^.]+$": { "$ref": "#/$defs/selectYearAriaLabelProp" }, "^yearGridAriaLabel\\.[^.]+$": { "$ref": "#/$defs/yearGridAriaLabelProp" }, "^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 } };
88
+ const patternProperties$w = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
89
+ const required$C = ["kind", "type", "path"];
90
+ const unevaluatedProperties$D = false;
91
+ const calendarSchemaJson = {
63
92
  $schema: $schema$D,
64
93
  $id: $id$D,
65
- $comment: $comment$1,
66
94
  title: title$D,
67
- oneOf: oneOf$1
95
+ type: type$D,
96
+ $defs: $defs$D,
97
+ allOf: allOf$D,
98
+ properties: properties$C,
99
+ patternProperties: patternProperties$w,
100
+ required: required$C,
101
+ unevaluatedProperties: unevaluatedProperties$D
68
102
  };
69
103
  const $schema$C = "https://json-schema.org/draft/2020-12/schema";
70
- const $id$C = "https://golemui.com/schemas/gui/widgets.schema.json";
71
- const $comment = "GENERATED by libs/gui/schemas/tools/generate-schemas.ts from src/lib/widget-manifest.ts. DO NOT EDIT. Regenerate with `npm run generate:schemas`.";
72
- const title$C = "Golem gui widgets";
73
- const $defs$C = { "knownWidgetTypes": { "description": "Built-in widget `type` identifiers. Used to exclude built-ins from the custom-widget fallback so every widget matches exactly one schema. Types listed here without a component schema are not expressible in JSON and are rejected entirely instead of validating as custom widgets.", "enum": ["calendar", "dateTimeCalendar", "checkbox", "currency", "dateInput", "datePicker", "dateTimeInput", "dateTimePicker", "dropdown", "list", "markdown", "number", "password", "radiogroup", "rangeCalendar", "rangeDateInput", "rangeDatePicker", "rangeDateTimeInput", "rangeDateTimeCalendar", "rangeDateTimePicker", "rangeTimeInput", "rangeTimePicker", "repeater", "select", "tags", "textarea", "textinput", "timeInput", "timePicker", "toggle", "accordion", "flex", "grid", "tabs", "alert", "markdownText", "renderer", "button"] }, "formWidget": { "description": "A form widget: one of the built-in component schemas, the custom-widget fallback, or a reference to an external chunk file.", "oneOf": [{ "$ref": "./components/calendar.schema.json" }, { "$ref": "./components/datetimecalendar.schema.json" }, { "$ref": "./components/checkbox.schema.json" }, { "$ref": "./components/currency.schema.json" }, { "$ref": "./components/dateinput.schema.json" }, { "$ref": "./components/datepicker.schema.json" }, { "$ref": "./components/datetimeinput.schema.json" }, { "$ref": "./components/datetimepicker.schema.json" }, { "$ref": "./components/dropdown.schema.json" }, { "$ref": "./components/list.schema.json" }, { "$ref": "./components/markdown.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/rangedatepicker.schema.json" }, { "$ref": "./components/rangedatetimeinput.schema.json" }, { "$ref": "./components/rangedatetimecalendar.schema.json" }, { "$ref": "./components/rangedatetimepicker.schema.json" }, { "$ref": "./components/rangetimeinput.schema.json" }, { "$ref": "./components/rangetimepicker.schema.json" }, { "$ref": "./components/repeater.schema.json" }, { "$ref": "./components/select.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/accordion.schema.json" }, { "$ref": "./components/flex.schema.json" }, { "$ref": "./components/grid.schema.json" }, { "$ref": "./components/tabs.schema.json" }, { "$ref": "./components/alert.schema.json" }, { "$ref": "./components/markdowntext.schema.json" }, { "$ref": "./components/button.schema.json" }, { "$ref": "./components/custom.schema.json" }, { "$ref": "./core/common.schema.json#/$defs/chunkRef" }] } };
74
- const widgetsSchemaJson = {
104
+ const $id$C = "https://golemui.com/schemas/gui/components/datetimecalendar.schema.json";
105
+ const title$C = "DateTimeCalendar Widget";
106
+ const type$C = "object";
107
+ const $defs$C = { "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "prevMonthIconProp": { "type": "string" }, "nextMonthIconProp": { "type": "string" }, "prevMonthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "nextMonthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "selectYearAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "yearGridAriaLabelProp": { "$ref": "../core/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": "../ranges.schema.json#/$defs/dateRange" } }, "hourFormatProp": { "enum": ["12", "24"] }, "allowCustomTimeProp": { "type": "boolean" }, "minuteStepProp": { "type": "number", "minimum": 1 }, "isoTimeProp": { "$ref": "../ranges.schema.json#/$defs/isoTime" }, "disabledTimeRangesProp": { "type": "array", "description": "Time ranges rendered disabled. Entries optionally scope to a date or given weekdays", "items": { "$ref": "../ranges.schema.json#/$defs/scopedTimeRange" } } };
108
+ const allOf$C = [{ "$ref": "../core/common.schema.json#/$defs/baseWidget" }];
109
+ const properties$B = { "kind": { "const": "input" }, "type": { "const": "dateTimeCalendar" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "string" }, "props": { "type": "object", "properties": { "minTimeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "maxTimeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledTimeRangeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "noAvailableTimesMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../core/common.schema.json#/$defs/localizable", "description": "Error surfaced when focus leaves the widget with a partially filled entry behind; the value goes to null so validators report it even on non-required fields." }, "hint": { "$ref": "#/$defs/hintProp" }, "prevMonthIcon": { "$ref": "#/$defs/prevMonthIconProp" }, "nextMonthIcon": { "$ref": "#/$defs/nextMonthIconProp" }, "prevMonthAriaLabel": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "nextMonthAriaLabel": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "selectYearAriaLabel": { "$ref": "#/$defs/selectYearAriaLabelProp" }, "yearGridAriaLabel": { "$ref": "#/$defs/yearGridAriaLabelProp" }, "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": "../core/common.schema.json#/$defs/localizable" }, "^maxTimeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^disabledTimeRangeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^noAvailableTimesMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../core/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" }, "^selectYearAriaLabel\\.[^.]+$": { "$ref": "#/$defs/selectYearAriaLabelProp" }, "^yearGridAriaLabel\\.[^.]+$": { "$ref": "#/$defs/yearGridAriaLabelProp" }, "^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 } };
110
+ const patternProperties$v = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
111
+ const required$B = ["kind", "type", "path"];
112
+ const unevaluatedProperties$C = false;
113
+ const datetimecalendarSchemaJson = {
75
114
  $schema: $schema$C,
76
115
  $id: $id$C,
77
- $comment,
78
116
  title: title$C,
79
- $defs: $defs$C
117
+ type: type$C,
118
+ $defs: $defs$C,
119
+ allOf: allOf$C,
120
+ properties: properties$B,
121
+ patternProperties: patternProperties$v,
122
+ required: required$B,
123
+ unevaluatedProperties: unevaluatedProperties$C
80
124
  };
81
125
  const $schema$B = "https://json-schema.org/draft/2020-12/schema";
82
- const $id$B = "https://golemui.com/schemas/gui/components/calendar.schema.json";
83
- const title$B = "Calendar Widget";
126
+ const $id$B = "https://golemui.com/schemas/gui/components/checkbox.schema.json";
127
+ const title$B = "Checkbox Widget";
84
128
  const type$B = "object";
85
- const $defs$B = { "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "prevMonthIconProp": { "type": "string" }, "nextMonthIconProp": { "type": "string" }, "prevMonthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "nextMonthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "selectYearAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "yearGridAriaLabelProp": { "$ref": "../core/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": "../ranges.schema.json#/$defs/dateRange" } } };
129
+ const $defs$B = { "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "checkboxPositionProp": { "enum": ["left", "right"], "default": "left" }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" } };
86
130
  const allOf$B = [{ "$ref": "../core/common.schema.json#/$defs/baseWidget" }];
87
- const properties$A = { "kind": { "const": "input" }, "type": { "const": "calendar" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "string" }, "props": { "type": "object", "properties": { "hint": { "$ref": "#/$defs/hintProp" }, "prevMonthIcon": { "$ref": "#/$defs/prevMonthIconProp" }, "nextMonthIcon": { "$ref": "#/$defs/nextMonthIconProp" }, "prevMonthAriaLabel": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "nextMonthAriaLabel": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "selectYearAriaLabel": { "$ref": "#/$defs/selectYearAriaLabelProp" }, "yearGridAriaLabel": { "$ref": "#/$defs/yearGridAriaLabelProp" }, "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" }, "^selectYearAriaLabel\\.[^.]+$": { "$ref": "#/$defs/selectYearAriaLabelProp" }, "^yearGridAriaLabel\\.[^.]+$": { "$ref": "#/$defs/yearGridAriaLabelProp" }, "^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 } };
131
+ const properties$A = { "kind": { "const": "input" }, "type": { "const": "checkbox" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/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 } };
88
132
  const patternProperties$u = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
89
133
  const required$A = ["kind", "type", "path"];
90
134
  const unevaluatedProperties$B = false;
91
- const calendarSchemaJson = {
135
+ const checkboxSchemaJson = {
92
136
  $schema: $schema$B,
93
137
  $id: $id$B,
94
138
  title: title$B,
@@ -101,16 +145,16 @@ const calendarSchemaJson = {
101
145
  unevaluatedProperties: unevaluatedProperties$B
102
146
  };
103
147
  const $schema$A = "https://json-schema.org/draft/2020-12/schema";
104
- const $id$A = "https://golemui.com/schemas/gui/components/datetimecalendar.schema.json";
105
- const title$A = "DateTimeCalendar Widget";
148
+ const $id$A = "https://golemui.com/schemas/gui/components/currency.schema.json";
149
+ const title$A = "Currency Widget";
106
150
  const type$A = "object";
107
- const $defs$A = { "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "prevMonthIconProp": { "type": "string" }, "nextMonthIconProp": { "type": "string" }, "prevMonthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "nextMonthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "selectYearAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "yearGridAriaLabelProp": { "$ref": "../core/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": "../ranges.schema.json#/$defs/dateRange" } }, "hourFormatProp": { "enum": ["12", "24"] }, "allowCustomTimeProp": { "type": "boolean" }, "minuteStepProp": { "type": "number", "minimum": 1 }, "isoTimeProp": { "$ref": "../ranges.schema.json#/$defs/isoTime" }, "disabledTimeRangesProp": { "type": "array", "description": "Time ranges rendered disabled. Entries optionally scope to a date or given weekdays", "items": { "$ref": "../ranges.schema.json#/$defs/scopedTimeRange" } } };
151
+ const $defs$A = { "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "currencyProp": { "type": "string" }, "stepProp": { "type": "number" }, "maximumFractionDigitsProp": { "type": "number" }, "minimumFractionDigitsProp": { "type": "number" }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "placeholderProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "autocompleteProp": { "type": "string" } };
108
152
  const allOf$A = [{ "$ref": "../core/common.schema.json#/$defs/baseWidget" }];
109
- const properties$z = { "kind": { "const": "input" }, "type": { "const": "dateTimeCalendar" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "string" }, "props": { "type": "object", "properties": { "minTimeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "maxTimeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledTimeRangeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "noAvailableTimesMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../core/common.schema.json#/$defs/localizable", "description": "Error surfaced when focus leaves the widget with a partially filled entry behind; the value goes to null so validators report it even on non-required fields." }, "hint": { "$ref": "#/$defs/hintProp" }, "prevMonthIcon": { "$ref": "#/$defs/prevMonthIconProp" }, "nextMonthIcon": { "$ref": "#/$defs/nextMonthIconProp" }, "prevMonthAriaLabel": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "nextMonthAriaLabel": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "selectYearAriaLabel": { "$ref": "#/$defs/selectYearAriaLabelProp" }, "yearGridAriaLabel": { "$ref": "#/$defs/yearGridAriaLabelProp" }, "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": "../core/common.schema.json#/$defs/localizable" }, "^maxTimeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^disabledTimeRangeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^noAvailableTimesMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../core/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" }, "^selectYearAriaLabel\\.[^.]+$": { "$ref": "#/$defs/selectYearAriaLabelProp" }, "^yearGridAriaLabel\\.[^.]+$": { "$ref": "#/$defs/yearGridAriaLabelProp" }, "^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 } };
153
+ const properties$z = { "kind": { "const": "input" }, "type": { "const": "currency" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/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 } };
110
154
  const patternProperties$t = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
111
155
  const required$z = ["kind", "type", "path"];
112
156
  const unevaluatedProperties$A = false;
113
- const datetimecalendarSchemaJson = {
157
+ const currencySchemaJson = {
114
158
  $schema: $schema$A,
115
159
  $id: $id$A,
116
160
  title: title$A,
@@ -123,16 +167,16 @@ const datetimecalendarSchemaJson = {
123
167
  unevaluatedProperties: unevaluatedProperties$A
124
168
  };
125
169
  const $schema$z = "https://json-schema.org/draft/2020-12/schema";
126
- const $id$z = "https://golemui.com/schemas/gui/components/checkbox.schema.json";
127
- const title$z = "Checkbox Widget";
170
+ const $id$z = "https://golemui.com/schemas/gui/components/dateinput.schema.json";
171
+ const title$z = "DateInput Widget";
128
172
  const type$z = "object";
129
- const $defs$z = { "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "checkboxPositionProp": { "enum": ["left", "right"], "default": "left" }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" } };
173
+ const $defs$z = { "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "minDateProp": { "type": "string" }, "maxDateProp": { "type": "string" }, "dayAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "monthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "yearAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" } };
130
174
  const allOf$z = [{ "$ref": "../core/common.schema.json#/$defs/baseWidget" }];
131
- const properties$y = { "kind": { "const": "input" }, "type": { "const": "checkbox" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/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 } };
175
+ const properties$y = { "kind": { "const": "input" }, "type": { "const": "dateInput" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "string" }, "props": { "type": "object", "properties": { "invalidDateMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "minDate": { "$ref": "#/$defs/minDateProp" }, "maxDate": { "$ref": "#/$defs/maxDateProp" }, "minDateMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "maxDateMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../core/common.schema.json#/$defs/localizable", "description": "Error surfaced when focus leaves the widget with a partially filled entry behind; the value goes to null so validators report it even on non-required fields." }, "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "dayAriaLabel": { "$ref": "#/$defs/dayAriaLabelProp" }, "monthAriaLabel": { "$ref": "#/$defs/monthAriaLabelProp" }, "yearAriaLabel": { "$ref": "#/$defs/yearAriaLabelProp" } }, "patternProperties": { "^invalidDateMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^minDate\\.[^.]+$": { "$ref": "#/$defs/minDateProp" }, "^maxDate\\.[^.]+$": { "$ref": "#/$defs/maxDateProp" }, "^minDateMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^maxDateMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^dayAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayAriaLabelProp" }, "^monthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/monthAriaLabelProp" }, "^yearAriaLabel\\.[^.]+$": { "$ref": "#/$defs/yearAriaLabelProp" } }, "additionalProperties": false } };
132
176
  const patternProperties$s = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
133
177
  const required$y = ["kind", "type", "path"];
134
178
  const unevaluatedProperties$z = false;
135
- const checkboxSchemaJson = {
179
+ const dateinputSchemaJson = {
136
180
  $schema: $schema$z,
137
181
  $id: $id$z,
138
182
  title: title$z,
@@ -145,16 +189,16 @@ const checkboxSchemaJson = {
145
189
  unevaluatedProperties: unevaluatedProperties$z
146
190
  };
147
191
  const $schema$y = "https://json-schema.org/draft/2020-12/schema";
148
- const $id$y = "https://golemui.com/schemas/gui/components/currency.schema.json";
149
- const title$y = "Currency Widget";
192
+ const $id$y = "https://golemui.com/schemas/gui/components/datepicker.schema.json";
193
+ const title$y = "DatePicker Widget";
150
194
  const type$y = "object";
151
- const $defs$y = { "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "currencyProp": { "type": "string" }, "stepProp": { "type": "number" }, "maximumFractionDigitsProp": { "type": "number" }, "minimumFractionDigitsProp": { "type": "number" }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "placeholderProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "autocompleteProp": { "type": "string" } };
195
+ const $defs$y = { "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "prevMonthIconProp": { "type": "string" }, "nextMonthIconProp": { "type": "string" }, "prevMonthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "nextMonthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "toggleAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "selectYearAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "yearGridAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "dayAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "monthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "yearAriaLabelProp": { "$ref": "../core/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": "../ranges.schema.json#/$defs/dateRange" } } };
152
196
  const allOf$y = [{ "$ref": "../core/common.schema.json#/$defs/baseWidget" }];
153
- const properties$x = { "kind": { "const": "input" }, "type": { "const": "currency" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/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 } };
197
+ const properties$x = { "kind": { "const": "input" }, "type": { "const": "datePicker" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "string" }, "props": { "type": "object", "properties": { "invalidDateMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "minDateMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "maxDateMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDateRangeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../core/common.schema.json#/$defs/localizable", "description": "Error surfaced when focus leaves the widget with a partially filled entry behind; the value goes to null so validators report it even on non-required fields." }, "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "prevMonthIcon": { "$ref": "#/$defs/prevMonthIconProp" }, "nextMonthIcon": { "$ref": "#/$defs/nextMonthIconProp" }, "prevMonthAriaLabel": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "nextMonthAriaLabel": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "toggleAriaLabel": { "$ref": "#/$defs/toggleAriaLabelProp" }, "selectYearAriaLabel": { "$ref": "#/$defs/selectYearAriaLabelProp" }, "yearGridAriaLabel": { "$ref": "#/$defs/yearGridAriaLabelProp" }, "dayAriaLabel": { "$ref": "#/$defs/dayAriaLabelProp" }, "monthAriaLabel": { "$ref": "#/$defs/monthAriaLabelProp" }, "yearAriaLabel": { "$ref": "#/$defs/yearAriaLabelProp" }, "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": "../core/common.schema.json#/$defs/localizable" }, "^minDateMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^maxDateMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^disabledDateRangeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../core/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" }, "^toggleAriaLabel\\.[^.]+$": { "$ref": "#/$defs/toggleAriaLabelProp" }, "^selectYearAriaLabel\\.[^.]+$": { "$ref": "#/$defs/selectYearAriaLabelProp" }, "^yearGridAriaLabel\\.[^.]+$": { "$ref": "#/$defs/yearGridAriaLabelProp" }, "^dayAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayAriaLabelProp" }, "^monthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/monthAriaLabelProp" }, "^yearAriaLabel\\.[^.]+$": { "$ref": "#/$defs/yearAriaLabelProp" }, "^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 } };
154
198
  const patternProperties$r = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
155
199
  const required$x = ["kind", "type", "path"];
156
200
  const unevaluatedProperties$y = false;
157
- const currencySchemaJson = {
201
+ const datepickerSchemaJson = {
158
202
  $schema: $schema$y,
159
203
  $id: $id$y,
160
204
  title: title$y,
@@ -167,16 +211,16 @@ const currencySchemaJson = {
167
211
  unevaluatedProperties: unevaluatedProperties$y
168
212
  };
169
213
  const $schema$x = "https://json-schema.org/draft/2020-12/schema";
170
- const $id$x = "https://golemui.com/schemas/gui/components/dateinput.schema.json";
171
- const title$x = "DateInput Widget";
214
+ const $id$x = "https://golemui.com/schemas/gui/components/datetimeinput.schema.json";
215
+ const title$x = "DateTimeInput Widget";
172
216
  const type$x = "object";
173
- const $defs$x = { "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "minDateProp": { "type": "string" }, "maxDateProp": { "type": "string" }, "dayAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "monthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "yearAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" } };
217
+ const $defs$x = { "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../core/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" }, "dayAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "monthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "yearAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "hourAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "minuteAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "dayPeriodAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" } };
174
218
  const allOf$x = [{ "$ref": "../core/common.schema.json#/$defs/baseWidget" }];
175
- const properties$w = { "kind": { "const": "input" }, "type": { "const": "dateInput" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "string" }, "props": { "type": "object", "properties": { "invalidDateMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "minDate": { "$ref": "#/$defs/minDateProp" }, "maxDate": { "$ref": "#/$defs/maxDateProp" }, "minDateMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "maxDateMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../core/common.schema.json#/$defs/localizable", "description": "Error surfaced when focus leaves the widget with a partially filled entry behind; the value goes to null so validators report it even on non-required fields." }, "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "dayAriaLabel": { "$ref": "#/$defs/dayAriaLabelProp" }, "monthAriaLabel": { "$ref": "#/$defs/monthAriaLabelProp" }, "yearAriaLabel": { "$ref": "#/$defs/yearAriaLabelProp" } }, "patternProperties": { "^invalidDateMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^minDate\\.[^.]+$": { "$ref": "#/$defs/minDateProp" }, "^maxDate\\.[^.]+$": { "$ref": "#/$defs/maxDateProp" }, "^minDateMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^maxDateMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^dayAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayAriaLabelProp" }, "^monthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/monthAriaLabelProp" }, "^yearAriaLabel\\.[^.]+$": { "$ref": "#/$defs/yearAriaLabelProp" } }, "additionalProperties": false } };
219
+ const properties$w = { "kind": { "const": "input" }, "type": { "const": "dateTimeInput" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "string" }, "props": { "type": "object", "properties": { "invalidDateMessage": { "$ref": "../core/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": "../core/common.schema.json#/$defs/localizable" }, "maxDateMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "minTimeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "maxTimeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../core/common.schema.json#/$defs/localizable", "description": "Error surfaced when focus leaves the widget with a partially filled entry behind; the value goes to null so validators report it even on non-required fields." }, "dayAriaLabel": { "$ref": "#/$defs/dayAriaLabelProp" }, "monthAriaLabel": { "$ref": "#/$defs/monthAriaLabelProp" }, "yearAriaLabel": { "$ref": "#/$defs/yearAriaLabelProp" }, "hourAriaLabel": { "$ref": "#/$defs/hourAriaLabelProp" }, "minuteAriaLabel": { "$ref": "#/$defs/minuteAriaLabelProp" }, "dayPeriodAriaLabel": { "$ref": "#/$defs/dayPeriodAriaLabelProp" } }, "patternProperties": { "^invalidDateMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^minDate\\.[^.]+$": { "$ref": "#/$defs/minDateProp" }, "^maxDate\\.[^.]+$": { "$ref": "#/$defs/maxDateProp" }, "^minTime\\.[^.]+$": { "$ref": "#/$defs/minTimeProp" }, "^maxTime\\.[^.]+$": { "$ref": "#/$defs/maxTimeProp" }, "^minDateMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^maxDateMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^minTimeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^maxTimeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^hourFormat\\.[^.]+$": { "$ref": "#/$defs/hourFormatProp" }, "^minuteStep\\.[^.]+$": { "$ref": "#/$defs/minuteStepProp" }, "^dayAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayAriaLabelProp" }, "^monthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/monthAriaLabelProp" }, "^yearAriaLabel\\.[^.]+$": { "$ref": "#/$defs/yearAriaLabelProp" }, "^hourAriaLabel\\.[^.]+$": { "$ref": "#/$defs/hourAriaLabelProp" }, "^minuteAriaLabel\\.[^.]+$": { "$ref": "#/$defs/minuteAriaLabelProp" }, "^dayPeriodAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayPeriodAriaLabelProp" } }, "additionalProperties": false } };
176
220
  const patternProperties$q = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
177
221
  const required$w = ["kind", "type", "path"];
178
222
  const unevaluatedProperties$x = false;
179
- const dateinputSchemaJson = {
223
+ const datetimeinputSchemaJson = {
180
224
  $schema: $schema$x,
181
225
  $id: $id$x,
182
226
  title: title$x,
@@ -189,16 +233,16 @@ const dateinputSchemaJson = {
189
233
  unevaluatedProperties: unevaluatedProperties$x
190
234
  };
191
235
  const $schema$w = "https://json-schema.org/draft/2020-12/schema";
192
- const $id$w = "https://golemui.com/schemas/gui/components/datepicker.schema.json";
193
- const title$w = "DatePicker Widget";
236
+ const $id$w = "https://golemui.com/schemas/gui/components/datetimepicker.schema.json";
237
+ const title$w = "DateTimePicker Widget";
194
238
  const type$w = "object";
195
- const $defs$w = { "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "prevMonthIconProp": { "type": "string" }, "nextMonthIconProp": { "type": "string" }, "prevMonthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "nextMonthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "toggleAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "selectYearAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "yearGridAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "dayAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "monthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "yearAriaLabelProp": { "$ref": "../core/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": "../ranges.schema.json#/$defs/dateRange" } } };
239
+ const $defs$w = { "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "prevMonthIconProp": { "type": "string" }, "nextMonthIconProp": { "type": "string" }, "prevMonthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "nextMonthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "toggleAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "selectYearAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "yearGridAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "dayAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "monthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "yearAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "hourAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "minuteAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "dayPeriodAriaLabelProp": { "$ref": "../core/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": "../ranges.schema.json#/$defs/dateRange" } }, "hourFormatProp": { "enum": ["12", "24"] }, "allowCustomTimeProp": { "type": "boolean" }, "minuteStepProp": { "type": "number", "minimum": 1 }, "isoTimeProp": { "$ref": "../ranges.schema.json#/$defs/isoTime" }, "disabledTimeRangesProp": { "type": "array", "description": "Time ranges rendered disabled. Entries optionally scope to a date or given weekdays", "items": { "$ref": "../ranges.schema.json#/$defs/scopedTimeRange" } } };
196
240
  const allOf$w = [{ "$ref": "../core/common.schema.json#/$defs/baseWidget" }];
197
- const properties$v = { "kind": { "const": "input" }, "type": { "const": "datePicker" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "string" }, "props": { "type": "object", "properties": { "invalidDateMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "minDateMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "maxDateMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDateRangeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../core/common.schema.json#/$defs/localizable", "description": "Error surfaced when focus leaves the widget with a partially filled entry behind; the value goes to null so validators report it even on non-required fields." }, "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "prevMonthIcon": { "$ref": "#/$defs/prevMonthIconProp" }, "nextMonthIcon": { "$ref": "#/$defs/nextMonthIconProp" }, "prevMonthAriaLabel": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "nextMonthAriaLabel": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "toggleAriaLabel": { "$ref": "#/$defs/toggleAriaLabelProp" }, "selectYearAriaLabel": { "$ref": "#/$defs/selectYearAriaLabelProp" }, "yearGridAriaLabel": { "$ref": "#/$defs/yearGridAriaLabelProp" }, "dayAriaLabel": { "$ref": "#/$defs/dayAriaLabelProp" }, "monthAriaLabel": { "$ref": "#/$defs/monthAriaLabelProp" }, "yearAriaLabel": { "$ref": "#/$defs/yearAriaLabelProp" }, "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": "../core/common.schema.json#/$defs/localizable" }, "^minDateMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^maxDateMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^disabledDateRangeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../core/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" }, "^toggleAriaLabel\\.[^.]+$": { "$ref": "#/$defs/toggleAriaLabelProp" }, "^selectYearAriaLabel\\.[^.]+$": { "$ref": "#/$defs/selectYearAriaLabelProp" }, "^yearGridAriaLabel\\.[^.]+$": { "$ref": "#/$defs/yearGridAriaLabelProp" }, "^dayAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayAriaLabelProp" }, "^monthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/monthAriaLabelProp" }, "^yearAriaLabel\\.[^.]+$": { "$ref": "#/$defs/yearAriaLabelProp" }, "^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 } };
241
+ const properties$v = { "kind": { "const": "input" }, "type": { "const": "dateTimePicker" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "string" }, "props": { "type": "object", "properties": { "invalidDateMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "minDateMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "maxDateMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDateRangeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "minTimeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "maxTimeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledTimeRangeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "noAvailableTimesMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../core/common.schema.json#/$defs/localizable", "description": "Error surfaced when focus leaves the widget with a partially filled entry behind; the value goes to null so validators report it even on non-required fields." }, "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "prevMonthIcon": { "$ref": "#/$defs/prevMonthIconProp" }, "nextMonthIcon": { "$ref": "#/$defs/nextMonthIconProp" }, "prevMonthAriaLabel": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "nextMonthAriaLabel": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "toggleAriaLabel": { "$ref": "#/$defs/toggleAriaLabelProp" }, "selectYearAriaLabel": { "$ref": "#/$defs/selectYearAriaLabelProp" }, "yearGridAriaLabel": { "$ref": "#/$defs/yearGridAriaLabelProp" }, "dayAriaLabel": { "$ref": "#/$defs/dayAriaLabelProp" }, "monthAriaLabel": { "$ref": "#/$defs/monthAriaLabelProp" }, "yearAriaLabel": { "$ref": "#/$defs/yearAriaLabelProp" }, "hourAriaLabel": { "$ref": "#/$defs/hourAriaLabelProp" }, "minuteAriaLabel": { "$ref": "#/$defs/minuteAriaLabelProp" }, "dayPeriodAriaLabel": { "$ref": "#/$defs/dayPeriodAriaLabelProp" }, "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": "../core/common.schema.json#/$defs/localizable" }, "^minDateMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^maxDateMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^disabledDateRangeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^minTimeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^maxTimeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^disabledTimeRangeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^noAvailableTimesMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../core/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" }, "^toggleAriaLabel\\.[^.]+$": { "$ref": "#/$defs/toggleAriaLabelProp" }, "^selectYearAriaLabel\\.[^.]+$": { "$ref": "#/$defs/selectYearAriaLabelProp" }, "^yearGridAriaLabel\\.[^.]+$": { "$ref": "#/$defs/yearGridAriaLabelProp" }, "^dayAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayAriaLabelProp" }, "^monthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/monthAriaLabelProp" }, "^yearAriaLabel\\.[^.]+$": { "$ref": "#/$defs/yearAriaLabelProp" }, "^hourAriaLabel\\.[^.]+$": { "$ref": "#/$defs/hourAriaLabelProp" }, "^minuteAriaLabel\\.[^.]+$": { "$ref": "#/$defs/minuteAriaLabelProp" }, "^dayPeriodAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayPeriodAriaLabelProp" }, "^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 } };
198
242
  const patternProperties$p = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
199
243
  const required$v = ["kind", "type", "path"];
200
244
  const unevaluatedProperties$w = false;
201
- const datepickerSchemaJson = {
245
+ const datetimepickerSchemaJson = {
202
246
  $schema: $schema$w,
203
247
  $id: $id$w,
204
248
  title: title$w,
@@ -211,16 +255,16 @@ const datepickerSchemaJson = {
211
255
  unevaluatedProperties: unevaluatedProperties$w
212
256
  };
213
257
  const $schema$v = "https://json-schema.org/draft/2020-12/schema";
214
- const $id$v = "https://golemui.com/schemas/gui/components/datetimeinput.schema.json";
215
- const title$v = "DateTimeInput Widget";
258
+ const $id$v = "https://golemui.com/schemas/gui/components/dropdown.schema.json";
259
+ const title$v = "Dropdown Widget";
216
260
  const type$v = "object";
217
- const $defs$v = { "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../core/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" }, "dayAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "monthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "yearAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "hourAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "minuteAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "dayPeriodAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" } };
261
+ const $defs$v = { "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "placeholderProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "hintProp": { "$ref": "../core/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" }, "iconProp": { "type": "string" }, "toggleAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" } };
218
262
  const allOf$v = [{ "$ref": "../core/common.schema.json#/$defs/baseWidget" }];
219
- const properties$u = { "kind": { "const": "input" }, "type": { "const": "dateTimeInput" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "string" }, "props": { "type": "object", "properties": { "invalidDateMessage": { "$ref": "../core/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": "../core/common.schema.json#/$defs/localizable" }, "maxDateMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "minTimeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "maxTimeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../core/common.schema.json#/$defs/localizable", "description": "Error surfaced when focus leaves the widget with a partially filled entry behind; the value goes to null so validators report it even on non-required fields." }, "dayAriaLabel": { "$ref": "#/$defs/dayAriaLabelProp" }, "monthAriaLabel": { "$ref": "#/$defs/monthAriaLabelProp" }, "yearAriaLabel": { "$ref": "#/$defs/yearAriaLabelProp" }, "hourAriaLabel": { "$ref": "#/$defs/hourAriaLabelProp" }, "minuteAriaLabel": { "$ref": "#/$defs/minuteAriaLabelProp" }, "dayPeriodAriaLabel": { "$ref": "#/$defs/dayPeriodAriaLabelProp" } }, "patternProperties": { "^invalidDateMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^minDate\\.[^.]+$": { "$ref": "#/$defs/minDateProp" }, "^maxDate\\.[^.]+$": { "$ref": "#/$defs/maxDateProp" }, "^minTime\\.[^.]+$": { "$ref": "#/$defs/minTimeProp" }, "^maxTime\\.[^.]+$": { "$ref": "#/$defs/maxTimeProp" }, "^minDateMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^maxDateMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^minTimeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^maxTimeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^hourFormat\\.[^.]+$": { "$ref": "#/$defs/hourFormatProp" }, "^minuteStep\\.[^.]+$": { "$ref": "#/$defs/minuteStepProp" }, "^dayAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayAriaLabelProp" }, "^monthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/monthAriaLabelProp" }, "^yearAriaLabel\\.[^.]+$": { "$ref": "#/$defs/yearAriaLabelProp" }, "^hourAriaLabel\\.[^.]+$": { "$ref": "#/$defs/hourAriaLabelProp" }, "^minuteAriaLabel\\.[^.]+$": { "$ref": "#/$defs/minuteAriaLabelProp" }, "^dayPeriodAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayPeriodAriaLabelProp" } }, "additionalProperties": false } };
263
+ const properties$u = { "kind": { "const": "input" }, "type": { "const": "dropdown" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": ["string", "number"] }, "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" }, "icon": { "$ref": "#/$defs/iconProp" }, "toggleAriaLabel": { "$ref": "#/$defs/toggleAriaLabelProp" } }, "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" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^toggleAriaLabel\\.[^.]+$": { "$ref": "#/$defs/toggleAriaLabelProp" } }, "additionalProperties": false } };
220
264
  const patternProperties$o = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
221
- const required$u = ["kind", "type", "path"];
265
+ const required$u = ["kind", "type", "path", "props"];
222
266
  const unevaluatedProperties$v = false;
223
- const datetimeinputSchemaJson = {
267
+ const dropdownSchemaJson = {
224
268
  $schema: $schema$v,
225
269
  $id: $id$v,
226
270
  title: title$v,
@@ -233,16 +277,16 @@ const datetimeinputSchemaJson = {
233
277
  unevaluatedProperties: unevaluatedProperties$v
234
278
  };
235
279
  const $schema$u = "https://json-schema.org/draft/2020-12/schema";
236
- const $id$u = "https://golemui.com/schemas/gui/components/datetimepicker.schema.json";
237
- const title$u = "DateTimePicker Widget";
280
+ const $id$u = "https://golemui.com/schemas/gui/components/list.schema.json";
281
+ const title$u = "List Widget";
238
282
  const type$u = "object";
239
- const $defs$u = { "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "prevMonthIconProp": { "type": "string" }, "nextMonthIconProp": { "type": "string" }, "prevMonthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "nextMonthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "toggleAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "selectYearAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "yearGridAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "dayAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "monthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "yearAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "hourAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "minuteAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "dayPeriodAriaLabelProp": { "$ref": "../core/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": "../ranges.schema.json#/$defs/dateRange" } }, "hourFormatProp": { "enum": ["12", "24"] }, "allowCustomTimeProp": { "type": "boolean" }, "minuteStepProp": { "type": "number", "minimum": 1 }, "isoTimeProp": { "$ref": "../ranges.schema.json#/$defs/isoTime" }, "disabledTimeRangesProp": { "type": "array", "description": "Time ranges rendered disabled. Entries optionally scope to a date or given weekdays", "items": { "$ref": "../ranges.schema.json#/$defs/scopedTimeRange" } } };
283
+ const $defs$u = { "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "hintProp": { "$ref": "../core/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" } };
240
284
  const allOf$u = [{ "$ref": "../core/common.schema.json#/$defs/baseWidget" }];
241
- const properties$t = { "kind": { "const": "input" }, "type": { "const": "dateTimePicker" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "string" }, "props": { "type": "object", "properties": { "invalidDateMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "minDateMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "maxDateMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDateRangeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "minTimeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "maxTimeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledTimeRangeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "noAvailableTimesMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../core/common.schema.json#/$defs/localizable", "description": "Error surfaced when focus leaves the widget with a partially filled entry behind; the value goes to null so validators report it even on non-required fields." }, "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "prevMonthIcon": { "$ref": "#/$defs/prevMonthIconProp" }, "nextMonthIcon": { "$ref": "#/$defs/nextMonthIconProp" }, "prevMonthAriaLabel": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "nextMonthAriaLabel": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "toggleAriaLabel": { "$ref": "#/$defs/toggleAriaLabelProp" }, "selectYearAriaLabel": { "$ref": "#/$defs/selectYearAriaLabelProp" }, "yearGridAriaLabel": { "$ref": "#/$defs/yearGridAriaLabelProp" }, "dayAriaLabel": { "$ref": "#/$defs/dayAriaLabelProp" }, "monthAriaLabel": { "$ref": "#/$defs/monthAriaLabelProp" }, "yearAriaLabel": { "$ref": "#/$defs/yearAriaLabelProp" }, "hourAriaLabel": { "$ref": "#/$defs/hourAriaLabelProp" }, "minuteAriaLabel": { "$ref": "#/$defs/minuteAriaLabelProp" }, "dayPeriodAriaLabel": { "$ref": "#/$defs/dayPeriodAriaLabelProp" }, "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": "../core/common.schema.json#/$defs/localizable" }, "^minDateMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^maxDateMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^disabledDateRangeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^minTimeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^maxTimeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^disabledTimeRangeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^noAvailableTimesMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../core/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" }, "^toggleAriaLabel\\.[^.]+$": { "$ref": "#/$defs/toggleAriaLabelProp" }, "^selectYearAriaLabel\\.[^.]+$": { "$ref": "#/$defs/selectYearAriaLabelProp" }, "^yearGridAriaLabel\\.[^.]+$": { "$ref": "#/$defs/yearGridAriaLabelProp" }, "^dayAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayAriaLabelProp" }, "^monthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/monthAriaLabelProp" }, "^yearAriaLabel\\.[^.]+$": { "$ref": "#/$defs/yearAriaLabelProp" }, "^hourAriaLabel\\.[^.]+$": { "$ref": "#/$defs/hourAriaLabelProp" }, "^minuteAriaLabel\\.[^.]+$": { "$ref": "#/$defs/minuteAriaLabelProp" }, "^dayPeriodAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayPeriodAriaLabelProp" }, "^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 } };
285
+ const properties$t = { "kind": { "const": "input" }, "type": { "const": "list" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": ["string", "number"] }, "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 } };
242
286
  const patternProperties$n = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
243
287
  const required$t = ["kind", "type", "path"];
244
288
  const unevaluatedProperties$u = false;
245
- const datetimepickerSchemaJson = {
289
+ const listSchemaJson = {
246
290
  $schema: $schema$u,
247
291
  $id: $id$u,
248
292
  title: title$u,
@@ -255,16 +299,16 @@ const datetimepickerSchemaJson = {
255
299
  unevaluatedProperties: unevaluatedProperties$u
256
300
  };
257
301
  const $schema$t = "https://json-schema.org/draft/2020-12/schema";
258
- const $id$t = "https://golemui.com/schemas/gui/components/dropdown.schema.json";
259
- const title$t = "Dropdown Widget";
302
+ const $id$t = "https://golemui.com/schemas/gui/components/markdown.schema.json";
303
+ const title$t = "Markdown Widget";
260
304
  const type$t = "object";
261
- const $defs$t = { "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "placeholderProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "hintProp": { "$ref": "../core/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" } };
305
+ const $defs$t = { "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "placeholderProp": { "$ref": "../core/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": "../core/common.schema.json#/$defs/localizable" }, "toolbarAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "headingTitleProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "boldTitleProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "italicTitleProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "strikethroughTitleProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "quoteTitleProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "linkTitleProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "orderedListTitleProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "unorderedListTitleProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "autocompleteProp": { "type": "string" } };
262
306
  const allOf$t = [{ "$ref": "../core/common.schema.json#/$defs/baseWidget" }];
263
- const properties$s = { "kind": { "const": "input" }, "type": { "const": "dropdown" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": ["string", "number"] }, "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 } };
307
+ const properties$s = { "kind": { "const": "input" }, "type": { "const": "markdown" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/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" }, "toolbarAriaLabel": { "$ref": "#/$defs/toolbarAriaLabelProp" }, "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" }, "^toolbarAriaLabel\\.[^.]+$": { "$ref": "#/$defs/toolbarAriaLabelProp" }, "^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 } };
264
308
  const patternProperties$m = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
265
- const required$s = ["kind", "type", "path", "props"];
309
+ const required$s = ["kind", "type", "path"];
266
310
  const unevaluatedProperties$t = false;
267
- const dropdownSchemaJson = {
311
+ const markdownSchemaJson = {
268
312
  $schema: $schema$t,
269
313
  $id: $id$t,
270
314
  title: title$t,
@@ -277,16 +321,16 @@ const dropdownSchemaJson = {
277
321
  unevaluatedProperties: unevaluatedProperties$t
278
322
  };
279
323
  const $schema$s = "https://json-schema.org/draft/2020-12/schema";
280
- const $id$s = "https://golemui.com/schemas/gui/components/list.schema.json";
281
- const title$s = "List Widget";
324
+ const $id$s = "https://golemui.com/schemas/gui/components/multidropdown.schema.json";
325
+ const title$s = "MultiDropdown Widget";
282
326
  const type$s = "object";
283
- const $defs$s = { "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "hintProp": { "$ref": "../core/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" } };
327
+ const $defs$s = { "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "placeholderProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "hintProp": { "$ref": "../core/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" }, "iconProp": { "type": "string" }, "toggleAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "removeAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "removeIconProp": { "type": "string" } };
284
328
  const allOf$s = [{ "$ref": "../core/common.schema.json#/$defs/baseWidget" }];
285
- const properties$r = { "kind": { "const": "input" }, "type": { "const": "list" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": ["string", "number"] }, "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 } };
329
+ const properties$r = { "kind": { "const": "input" }, "type": { "const": "multiDropdown" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "array", "items": { "type": ["string", "number"] } }, "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" }, "icon": { "$ref": "#/$defs/iconProp" }, "toggleAriaLabel": { "$ref": "#/$defs/toggleAriaLabelProp" }, "removeAriaLabel": { "$ref": "#/$defs/removeAriaLabelProp" }, "removeIcon": { "$ref": "#/$defs/removeIconProp" } }, "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" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^toggleAriaLabel\\.[^.]+$": { "$ref": "#/$defs/toggleAriaLabelProp" }, "^removeAriaLabel\\.[^.]+$": { "$ref": "#/$defs/removeAriaLabelProp" }, "^removeIcon\\.[^.]+$": { "$ref": "#/$defs/removeIconProp" } }, "additionalProperties": false } };
286
330
  const patternProperties$l = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
287
- const required$r = ["kind", "type", "path"];
331
+ const required$r = ["kind", "type", "path", "props"];
288
332
  const unevaluatedProperties$s = false;
289
- const listSchemaJson = {
333
+ const multidropdownSchemaJson = {
290
334
  $schema: $schema$s,
291
335
  $id: $id$s,
292
336
  title: title$s,
@@ -299,16 +343,16 @@ const listSchemaJson = {
299
343
  unevaluatedProperties: unevaluatedProperties$s
300
344
  };
301
345
  const $schema$r = "https://json-schema.org/draft/2020-12/schema";
302
- const $id$r = "https://golemui.com/schemas/gui/components/markdown.schema.json";
303
- const title$r = "Markdown Widget";
346
+ const $id$r = "https://golemui.com/schemas/gui/components/multilist.schema.json";
347
+ const title$r = "MultiList Widget";
304
348
  const type$r = "object";
305
- const $defs$r = { "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "placeholderProp": { "$ref": "../core/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": "../core/common.schema.json#/$defs/localizable" }, "toolbarAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "headingTitleProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "boldTitleProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "italicTitleProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "strikethroughTitleProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "quoteTitleProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "linkTitleProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "orderedListTitleProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "unorderedListTitleProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "autocompleteProp": { "type": "string" } };
349
+ const $defs$r = { "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "hintProp": { "$ref": "../core/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" } };
306
350
  const allOf$r = [{ "$ref": "../core/common.schema.json#/$defs/baseWidget" }];
307
- const properties$q = { "kind": { "const": "input" }, "type": { "const": "markdown" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/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" }, "toolbarAriaLabel": { "$ref": "#/$defs/toolbarAriaLabelProp" }, "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" }, "^toolbarAriaLabel\\.[^.]+$": { "$ref": "#/$defs/toolbarAriaLabelProp" }, "^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 } };
351
+ const properties$q = { "kind": { "const": "input" }, "type": { "const": "multiList" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "array", "items": { "type": ["string", "number"] } }, "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 } };
308
352
  const patternProperties$k = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
309
353
  const required$q = ["kind", "type", "path"];
310
354
  const unevaluatedProperties$r = false;
311
- const markdownSchemaJson = {
355
+ const multilistSchemaJson = {
312
356
  $schema: $schema$r,
313
357
  $id: $id$r,
314
358
  title: title$r,
@@ -390,9 +434,9 @@ const $schema$n = "https://json-schema.org/draft/2020-12/schema";
390
434
  const $id$n = "https://golemui.com/schemas/gui/components/rangecalendar.schema.json";
391
435
  const title$n = "RangeCalendar Widget";
392
436
  const type$n = "object";
393
- const $defs$n = { "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "prevMonthIconProp": { "type": "string" }, "nextMonthIconProp": { "type": "string" }, "prevMonthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "nextMonthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "selectYearAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "yearGridAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "removePillAriaLabelProp": { "description": "Accessible label for the button that clears the selected range pill", "$ref": "../core/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": "../ranges.schema.json#/$defs/dateRange" } } };
437
+ const $defs$n = { "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "prevMonthIconProp": { "type": "string" }, "nextMonthIconProp": { "type": "string" }, "prevMonthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "nextMonthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "selectYearAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "yearGridAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "removePillAriaLabelProp": { "description": "Accessible label for the button that clears the selected range pill", "$ref": "../core/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": "../ranges.schema.json#/$defs/dateRange" } }, "allowEditProp": { "type": "boolean" }, "editLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "editAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "confirmEditLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "cancelEditLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "editStartedMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "editCommittedMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "editCancelledMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" } };
394
438
  const allOf$n = [{ "$ref": "../core/common.schema.json#/$defs/baseWidget" }];
395
- const properties$m = { "kind": { "const": "input" }, "type": { "const": "rangeCalendar" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "array", "items": { "$ref": "../ranges.schema.json#/$defs/dateRange" } }, "props": { "type": "object", "properties": { "hint": { "$ref": "#/$defs/hintProp" }, "prevMonthIcon": { "$ref": "#/$defs/prevMonthIconProp" }, "nextMonthIcon": { "$ref": "#/$defs/nextMonthIconProp" }, "prevMonthAriaLabel": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "nextMonthAriaLabel": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "selectYearAriaLabel": { "$ref": "#/$defs/selectYearAriaLabelProp" }, "yearGridAriaLabel": { "$ref": "#/$defs/yearGridAriaLabelProp" }, "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": "../core/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" }, "^selectYearAriaLabel\\.[^.]+$": { "$ref": "#/$defs/selectYearAriaLabelProp" }, "^yearGridAriaLabel\\.[^.]+$": { "$ref": "#/$defs/yearGridAriaLabelProp" }, "^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": "../core/common.schema.json#/$defs/localizable" } }, "additionalProperties": false } };
439
+ const properties$m = { "kind": { "const": "input" }, "type": { "const": "rangeCalendar" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "array", "items": { "$ref": "../ranges.schema.json#/$defs/dateRange" } }, "props": { "type": "object", "properties": { "hint": { "$ref": "#/$defs/hintProp" }, "prevMonthIcon": { "$ref": "#/$defs/prevMonthIconProp" }, "nextMonthIcon": { "$ref": "#/$defs/nextMonthIconProp" }, "prevMonthAriaLabel": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "nextMonthAriaLabel": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "selectYearAriaLabel": { "$ref": "#/$defs/selectYearAriaLabelProp" }, "yearGridAriaLabel": { "$ref": "#/$defs/yearGridAriaLabelProp" }, "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": "../core/common.schema.json#/$defs/localizable" }, "allowEdit": { "$ref": "#/$defs/allowEditProp", "description": "Enables the select → edit → confirm flow on the pills: clicking a pill selects it and reveals its action icons; Edit (icon, or F2/E on the focused pill) loads it back into the input, Confirm commits the replacement (Escape cancels). Defaults to false." }, "editLabel": { "$ref": "#/$defs/editLabelProp" }, "editAriaLabel": { "$ref": "#/$defs/editAriaLabelProp", "description": "Edit hint joined into the pill's aria-description (the edit icon itself is decorative); a `{label}` token is substituted with the range's display label. Defaults to 'Edit range {label}'." }, "confirmEditLabel": { "$ref": "#/$defs/confirmEditLabelProp" }, "cancelEditLabel": { "$ref": "#/$defs/cancelEditLabelProp" }, "editStartedMessage": { "$ref": "#/$defs/editStartedMessageProp", "description": "Screen-reader announcement when an edit session starts; `{label}` carries the range. Defaults to 'Editing range {label}.'." }, "editCommittedMessage": { "$ref": "#/$defs/editCommittedMessageProp", "description": "Screen-reader announcement when an edit commits its replacement; `{label}` carries the resulting range. Defaults to 'Range updated to {label}.'." }, "editCancelledMessage": { "$ref": "#/$defs/editCancelledMessageProp" } }, "patternProperties": { "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^prevMonthIcon\\.[^.]+$": { "$ref": "#/$defs/prevMonthIconProp" }, "^nextMonthIcon\\.[^.]+$": { "$ref": "#/$defs/nextMonthIconProp" }, "^prevMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "^nextMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "^selectYearAriaLabel\\.[^.]+$": { "$ref": "#/$defs/selectYearAriaLabelProp" }, "^yearGridAriaLabel\\.[^.]+$": { "$ref": "#/$defs/yearGridAriaLabelProp" }, "^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": "../core/common.schema.json#/$defs/localizable" }, "^allowEdit\\.[^.]+$": { "$ref": "#/$defs/allowEditProp" }, "^editLabel\\.[^.]+$": { "$ref": "#/$defs/editLabelProp" }, "^editAriaLabel\\.[^.]+$": { "$ref": "#/$defs/editAriaLabelProp" }, "^confirmEditLabel\\.[^.]+$": { "$ref": "#/$defs/confirmEditLabelProp" }, "^cancelEditLabel\\.[^.]+$": { "$ref": "#/$defs/cancelEditLabelProp" }, "^editStartedMessage\\.[^.]+$": { "$ref": "#/$defs/editStartedMessageProp" }, "^editCommittedMessage\\.[^.]+$": { "$ref": "#/$defs/editCommittedMessageProp" }, "^editCancelledMessage\\.[^.]+$": { "$ref": "#/$defs/editCancelledMessageProp" } }, "additionalProperties": false } };
396
440
  const patternProperties$g = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
397
441
  const required$m = ["kind", "type", "path"];
398
442
  const unevaluatedProperties$n = false;
@@ -412,9 +456,9 @@ const $schema$m = "https://json-schema.org/draft/2020-12/schema";
412
456
  const $id$m = "https://golemui.com/schemas/gui/components/rangedateinput.schema.json";
413
457
  const title$m = "RangeDateInput Widget";
414
458
  const type$m = "object";
415
- const $defs$m = { "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "separatorProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "removePillAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "startDateAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "endDateAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "dayAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "monthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "yearAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" } };
459
+ const $defs$m = { "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "separatorProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "removePillAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "startDateAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "endDateAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "dayAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "monthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "yearAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "allowEditProp": { "type": "boolean" }, "editLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "editAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "confirmEditLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "cancelEditLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "editStartedMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "editCommittedMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "editCancelledMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" } };
416
460
  const allOf$m = [{ "$ref": "../core/common.schema.json#/$defs/baseWidget" }];
417
- const properties$l = { "kind": { "const": "input" }, "type": { "const": "rangeDateInput" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "array", "items": { "$ref": "../ranges.schema.json#/$defs/dateRange" } }, "props": { "type": "object", "properties": { "invalidDateMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../core/common.schema.json#/$defs/localizable", "description": "Error surfaced when focus leaves the widget with a partially filled entry behind; the value goes to null so validators report it even on non-required fields." }, "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "separator": { "$ref": "#/$defs/separatorProp" }, "removePillAriaLabel": { "$ref": "#/$defs/removePillAriaLabelProp" }, "startDateAriaLabel": { "$ref": "#/$defs/startDateAriaLabelProp" }, "endDateAriaLabel": { "$ref": "#/$defs/endDateAriaLabelProp" }, "dayAriaLabel": { "$ref": "#/$defs/dayAriaLabelProp" }, "monthAriaLabel": { "$ref": "#/$defs/monthAriaLabelProp" }, "yearAriaLabel": { "$ref": "#/$defs/yearAriaLabelProp" } }, "patternProperties": { "^invalidDateMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../core/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" }, "^dayAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayAriaLabelProp" }, "^monthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/monthAriaLabelProp" }, "^yearAriaLabel\\.[^.]+$": { "$ref": "#/$defs/yearAriaLabelProp" } }, "additionalProperties": false } };
461
+ const properties$l = { "kind": { "const": "input" }, "type": { "const": "rangeDateInput" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "array", "items": { "$ref": "../ranges.schema.json#/$defs/dateRange" } }, "props": { "type": "object", "properties": { "invalidDateMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../core/common.schema.json#/$defs/localizable", "description": "Error surfaced when focus leaves the widget with a partially filled entry behind; the value goes to null so validators report it even on non-required fields." }, "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "separator": { "$ref": "#/$defs/separatorProp" }, "removePillAriaLabel": { "$ref": "#/$defs/removePillAriaLabelProp" }, "startDateAriaLabel": { "$ref": "#/$defs/startDateAriaLabelProp" }, "endDateAriaLabel": { "$ref": "#/$defs/endDateAriaLabelProp" }, "dayAriaLabel": { "$ref": "#/$defs/dayAriaLabelProp" }, "monthAriaLabel": { "$ref": "#/$defs/monthAriaLabelProp" }, "yearAriaLabel": { "$ref": "#/$defs/yearAriaLabelProp" }, "allowEdit": { "$ref": "#/$defs/allowEditProp", "description": "Enables the select → edit → confirm flow on the pills: clicking a pill selects it and reveals its action icons; Edit (icon, or F2/E on the focused pill) loads it back into the input, Confirm commits the replacement (Escape cancels). Defaults to false." }, "editLabel": { "$ref": "#/$defs/editLabelProp" }, "editAriaLabel": { "$ref": "#/$defs/editAriaLabelProp", "description": "Edit hint joined into the pill's aria-description (the edit icon itself is decorative); a `{label}` token is substituted with the range's display label. Defaults to 'Edit range {label}'." }, "confirmEditLabel": { "$ref": "#/$defs/confirmEditLabelProp" }, "cancelEditLabel": { "$ref": "#/$defs/cancelEditLabelProp" }, "editStartedMessage": { "$ref": "#/$defs/editStartedMessageProp", "description": "Screen-reader announcement when an edit session starts; `{label}` carries the range. Defaults to 'Editing range {label}.'." }, "editCommittedMessage": { "$ref": "#/$defs/editCommittedMessageProp", "description": "Screen-reader announcement when an edit commits its replacement; `{label}` carries the resulting range. Defaults to 'Range updated to {label}.'." }, "editCancelledMessage": { "$ref": "#/$defs/editCancelledMessageProp" } }, "patternProperties": { "^invalidDateMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../core/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" }, "^dayAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayAriaLabelProp" }, "^monthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/monthAriaLabelProp" }, "^yearAriaLabel\\.[^.]+$": { "$ref": "#/$defs/yearAriaLabelProp" }, "^allowEdit\\.[^.]+$": { "$ref": "#/$defs/allowEditProp" }, "^editLabel\\.[^.]+$": { "$ref": "#/$defs/editLabelProp" }, "^editAriaLabel\\.[^.]+$": { "$ref": "#/$defs/editAriaLabelProp" }, "^confirmEditLabel\\.[^.]+$": { "$ref": "#/$defs/confirmEditLabelProp" }, "^cancelEditLabel\\.[^.]+$": { "$ref": "#/$defs/cancelEditLabelProp" }, "^editStartedMessage\\.[^.]+$": { "$ref": "#/$defs/editStartedMessageProp" }, "^editCommittedMessage\\.[^.]+$": { "$ref": "#/$defs/editCommittedMessageProp" }, "^editCancelledMessage\\.[^.]+$": { "$ref": "#/$defs/editCancelledMessageProp" } }, "additionalProperties": false } };
418
462
  const patternProperties$f = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
419
463
  const required$l = ["kind", "type", "path"];
420
464
  const unevaluatedProperties$m = false;
@@ -434,9 +478,9 @@ const $schema$l = "https://json-schema.org/draft/2020-12/schema";
434
478
  const $id$l = "https://golemui.com/schemas/gui/components/rangedatepicker.schema.json";
435
479
  const title$l = "RangeDatePicker Widget";
436
480
  const type$l = "object";
437
- const $defs$l = { "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "separatorProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "removePillAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "startDateAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "endDateAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "prevMonthIconProp": { "type": "string" }, "nextMonthIconProp": { "type": "string" }, "prevMonthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "nextMonthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "toggleAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "selectYearAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "yearGridAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "dayAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "monthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "yearAriaLabelProp": { "$ref": "../core/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": "../ranges.schema.json#/$defs/dateRange" } } };
481
+ const $defs$l = { "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "separatorProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "removePillAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "startDateAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "endDateAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "prevMonthIconProp": { "type": "string" }, "nextMonthIconProp": { "type": "string" }, "prevMonthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "nextMonthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "toggleAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "selectYearAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "yearGridAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "dayAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "monthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "yearAriaLabelProp": { "$ref": "../core/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": "../ranges.schema.json#/$defs/dateRange" } }, "allowEditProp": { "type": "boolean" }, "editLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "editAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "confirmEditLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "cancelEditLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "editStartedMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "editCommittedMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "editCancelledMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" } };
438
482
  const allOf$l = [{ "$ref": "../core/common.schema.json#/$defs/baseWidget" }];
439
- const properties$k = { "kind": { "const": "input" }, "type": { "const": "rangeDatePicker" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "array", "items": { "$ref": "../ranges.schema.json#/$defs/dateRange" } }, "props": { "type": "object", "properties": { "invalidDateMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "minDateMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "maxDateMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDateRangeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../core/common.schema.json#/$defs/localizable", "description": "Error surfaced when focus leaves the widget with a partially filled entry behind; the value goes to null so validators report it even on non-required fields." }, "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" }, "toggleAriaLabel": { "$ref": "#/$defs/toggleAriaLabelProp" }, "selectYearAriaLabel": { "$ref": "#/$defs/selectYearAriaLabelProp" }, "yearGridAriaLabel": { "$ref": "#/$defs/yearGridAriaLabelProp" }, "dayAriaLabel": { "$ref": "#/$defs/dayAriaLabelProp" }, "monthAriaLabel": { "$ref": "#/$defs/monthAriaLabelProp" }, "yearAriaLabel": { "$ref": "#/$defs/yearAriaLabelProp" }, "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": "../core/common.schema.json#/$defs/localizable" }, "^minDateMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^maxDateMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^disabledDateRangeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../core/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" }, "^toggleAriaLabel\\.[^.]+$": { "$ref": "#/$defs/toggleAriaLabelProp" }, "^selectYearAriaLabel\\.[^.]+$": { "$ref": "#/$defs/selectYearAriaLabelProp" }, "^yearGridAriaLabel\\.[^.]+$": { "$ref": "#/$defs/yearGridAriaLabelProp" }, "^dayAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayAriaLabelProp" }, "^monthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/monthAriaLabelProp" }, "^yearAriaLabel\\.[^.]+$": { "$ref": "#/$defs/yearAriaLabelProp" }, "^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 } };
483
+ const properties$k = { "kind": { "const": "input" }, "type": { "const": "rangeDatePicker" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "array", "items": { "$ref": "../ranges.schema.json#/$defs/dateRange" } }, "props": { "type": "object", "properties": { "invalidDateMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "minDateMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "maxDateMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDateRangeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../core/common.schema.json#/$defs/localizable", "description": "Error surfaced when focus leaves the widget with a partially filled entry behind; the value goes to null so validators report it even on non-required fields." }, "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" }, "toggleAriaLabel": { "$ref": "#/$defs/toggleAriaLabelProp" }, "selectYearAriaLabel": { "$ref": "#/$defs/selectYearAriaLabelProp" }, "yearGridAriaLabel": { "$ref": "#/$defs/yearGridAriaLabelProp" }, "dayAriaLabel": { "$ref": "#/$defs/dayAriaLabelProp" }, "monthAriaLabel": { "$ref": "#/$defs/monthAriaLabelProp" }, "yearAriaLabel": { "$ref": "#/$defs/yearAriaLabelProp" }, "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" }, "allowEdit": { "$ref": "#/$defs/allowEditProp", "description": "Enables the select → edit → confirm flow on the pills: clicking a pill selects it and reveals its action icons; Edit (icon, or F2/E on the focused pill) loads it back into the input, Confirm commits the replacement (Escape cancels). Defaults to false." }, "editLabel": { "$ref": "#/$defs/editLabelProp" }, "editAriaLabel": { "$ref": "#/$defs/editAriaLabelProp", "description": "Edit hint joined into the pill's aria-description (the edit icon itself is decorative); a `{label}` token is substituted with the range's display label. Defaults to 'Edit range {label}'." }, "confirmEditLabel": { "$ref": "#/$defs/confirmEditLabelProp" }, "cancelEditLabel": { "$ref": "#/$defs/cancelEditLabelProp" }, "editStartedMessage": { "$ref": "#/$defs/editStartedMessageProp", "description": "Screen-reader announcement when an edit session starts; `{label}` carries the range. Defaults to 'Editing range {label}.'." }, "editCommittedMessage": { "$ref": "#/$defs/editCommittedMessageProp", "description": "Screen-reader announcement when an edit commits its replacement; `{label}` carries the resulting range. Defaults to 'Range updated to {label}.'." }, "editCancelledMessage": { "$ref": "#/$defs/editCancelledMessageProp" } }, "patternProperties": { "^invalidDateMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^minDateMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^maxDateMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^disabledDateRangeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../core/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" }, "^toggleAriaLabel\\.[^.]+$": { "$ref": "#/$defs/toggleAriaLabelProp" }, "^selectYearAriaLabel\\.[^.]+$": { "$ref": "#/$defs/selectYearAriaLabelProp" }, "^yearGridAriaLabel\\.[^.]+$": { "$ref": "#/$defs/yearGridAriaLabelProp" }, "^dayAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayAriaLabelProp" }, "^monthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/monthAriaLabelProp" }, "^yearAriaLabel\\.[^.]+$": { "$ref": "#/$defs/yearAriaLabelProp" }, "^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" }, "^allowEdit\\.[^.]+$": { "$ref": "#/$defs/allowEditProp" }, "^editLabel\\.[^.]+$": { "$ref": "#/$defs/editLabelProp" }, "^editAriaLabel\\.[^.]+$": { "$ref": "#/$defs/editAriaLabelProp" }, "^confirmEditLabel\\.[^.]+$": { "$ref": "#/$defs/confirmEditLabelProp" }, "^cancelEditLabel\\.[^.]+$": { "$ref": "#/$defs/cancelEditLabelProp" }, "^editStartedMessage\\.[^.]+$": { "$ref": "#/$defs/editStartedMessageProp" }, "^editCommittedMessage\\.[^.]+$": { "$ref": "#/$defs/editCommittedMessageProp" }, "^editCancelledMessage\\.[^.]+$": { "$ref": "#/$defs/editCancelledMessageProp" } }, "additionalProperties": false } };
440
484
  const patternProperties$e = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
441
485
  const required$k = ["kind", "type", "path"];
442
486
  const unevaluatedProperties$l = false;
@@ -456,9 +500,9 @@ const $schema$k = "https://json-schema.org/draft/2020-12/schema";
456
500
  const $id$k = "https://golemui.com/schemas/gui/components/rangedatetimeinput.schema.json";
457
501
  const title$k = "RangeDateTimeInput Widget";
458
502
  const type$k = "object";
459
- const $defs$k = { "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "separatorProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "removePillAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "startDateTimeAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "endDateTimeAriaLabelProp": { "$ref": "../core/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)" }, "dayAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "monthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "yearAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "hourAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "minuteAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "dayPeriodAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" } };
503
+ const $defs$k = { "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "separatorProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "removePillAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "startDateTimeAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "endDateTimeAriaLabelProp": { "$ref": "../core/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)" }, "dayAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "monthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "yearAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "hourAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "minuteAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "dayPeriodAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "allowEditProp": { "type": "boolean" }, "editLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "editAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "confirmEditLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "cancelEditLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "editStartedMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "editCommittedMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "editCancelledMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" } };
460
504
  const allOf$k = [{ "$ref": "../core/common.schema.json#/$defs/baseWidget" }];
461
- const properties$j = { "kind": { "const": "input" }, "type": { "const": "rangeDateTimeInput" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "array", "items": { "$ref": "../ranges.schema.json#/$defs/dateTimeRange" } }, "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": "../core/common.schema.json#/$defs/localizable" }, "minDateTime": { "$ref": "#/$defs/minDateTimeProp" }, "maxDateTime": { "$ref": "#/$defs/maxDateTimeProp" }, "minDateTimeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "maxDateTimeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../core/common.schema.json#/$defs/localizable", "description": "Error surfaced when focus leaves the widget with a partially filled entry behind; the value goes to null so validators report it even on non-required fields." }, "dayAriaLabel": { "$ref": "#/$defs/dayAriaLabelProp" }, "monthAriaLabel": { "$ref": "#/$defs/monthAriaLabelProp" }, "yearAriaLabel": { "$ref": "#/$defs/yearAriaLabelProp" }, "hourAriaLabel": { "$ref": "#/$defs/hourAriaLabelProp" }, "minuteAriaLabel": { "$ref": "#/$defs/minuteAriaLabelProp" }, "dayPeriodAriaLabel": { "$ref": "#/$defs/dayPeriodAriaLabelProp" } }, "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": "../core/common.schema.json#/$defs/localizable" }, "^minDateTime\\.[^.]+$": { "$ref": "#/$defs/minDateTimeProp" }, "^maxDateTime\\.[^.]+$": { "$ref": "#/$defs/maxDateTimeProp" }, "^minDateTimeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^maxDateTimeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^dayAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayAriaLabelProp" }, "^monthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/monthAriaLabelProp" }, "^yearAriaLabel\\.[^.]+$": { "$ref": "#/$defs/yearAriaLabelProp" }, "^hourAriaLabel\\.[^.]+$": { "$ref": "#/$defs/hourAriaLabelProp" }, "^minuteAriaLabel\\.[^.]+$": { "$ref": "#/$defs/minuteAriaLabelProp" }, "^dayPeriodAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayPeriodAriaLabelProp" } }, "additionalProperties": false } };
505
+ const properties$j = { "kind": { "const": "input" }, "type": { "const": "rangeDateTimeInput" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "array", "items": { "$ref": "../ranges.schema.json#/$defs/dateTimeRange" } }, "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": "../core/common.schema.json#/$defs/localizable" }, "minDateTime": { "$ref": "#/$defs/minDateTimeProp" }, "maxDateTime": { "$ref": "#/$defs/maxDateTimeProp" }, "minDateTimeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "maxDateTimeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../core/common.schema.json#/$defs/localizable", "description": "Error surfaced when focus leaves the widget with a partially filled entry behind; the value goes to null so validators report it even on non-required fields." }, "dayAriaLabel": { "$ref": "#/$defs/dayAriaLabelProp" }, "monthAriaLabel": { "$ref": "#/$defs/monthAriaLabelProp" }, "yearAriaLabel": { "$ref": "#/$defs/yearAriaLabelProp" }, "hourAriaLabel": { "$ref": "#/$defs/hourAriaLabelProp" }, "minuteAriaLabel": { "$ref": "#/$defs/minuteAriaLabelProp" }, "dayPeriodAriaLabel": { "$ref": "#/$defs/dayPeriodAriaLabelProp" }, "allowEdit": { "$ref": "#/$defs/allowEditProp", "description": "Enables the select → edit → confirm flow on the pills: clicking a pill selects it and reveals its action icons; Edit (icon, or F2/E on the focused pill) loads it back into the input, Confirm commits the replacement (Escape cancels). Defaults to false." }, "editLabel": { "$ref": "#/$defs/editLabelProp" }, "editAriaLabel": { "$ref": "#/$defs/editAriaLabelProp", "description": "Edit hint joined into the pill's aria-description (the edit icon itself is decorative); a `{label}` token is substituted with the range's display label. Defaults to 'Edit range {label}'." }, "confirmEditLabel": { "$ref": "#/$defs/confirmEditLabelProp" }, "cancelEditLabel": { "$ref": "#/$defs/cancelEditLabelProp" }, "editStartedMessage": { "$ref": "#/$defs/editStartedMessageProp", "description": "Screen-reader announcement when an edit session starts; `{label}` carries the range. Defaults to 'Editing range {label}.'." }, "editCommittedMessage": { "$ref": "#/$defs/editCommittedMessageProp", "description": "Screen-reader announcement when an edit commits its replacement; `{label}` carries the resulting range. Defaults to 'Range updated to {label}.'." }, "editCancelledMessage": { "$ref": "#/$defs/editCancelledMessageProp" } }, "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": "../core/common.schema.json#/$defs/localizable" }, "^minDateTime\\.[^.]+$": { "$ref": "#/$defs/minDateTimeProp" }, "^maxDateTime\\.[^.]+$": { "$ref": "#/$defs/maxDateTimeProp" }, "^minDateTimeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^maxDateTimeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^dayAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayAriaLabelProp" }, "^monthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/monthAriaLabelProp" }, "^yearAriaLabel\\.[^.]+$": { "$ref": "#/$defs/yearAriaLabelProp" }, "^hourAriaLabel\\.[^.]+$": { "$ref": "#/$defs/hourAriaLabelProp" }, "^minuteAriaLabel\\.[^.]+$": { "$ref": "#/$defs/minuteAriaLabelProp" }, "^dayPeriodAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayPeriodAriaLabelProp" }, "^allowEdit\\.[^.]+$": { "$ref": "#/$defs/allowEditProp" }, "^editLabel\\.[^.]+$": { "$ref": "#/$defs/editLabelProp" }, "^editAriaLabel\\.[^.]+$": { "$ref": "#/$defs/editAriaLabelProp" }, "^confirmEditLabel\\.[^.]+$": { "$ref": "#/$defs/confirmEditLabelProp" }, "^cancelEditLabel\\.[^.]+$": { "$ref": "#/$defs/cancelEditLabelProp" }, "^editStartedMessage\\.[^.]+$": { "$ref": "#/$defs/editStartedMessageProp" }, "^editCommittedMessage\\.[^.]+$": { "$ref": "#/$defs/editCommittedMessageProp" }, "^editCancelledMessage\\.[^.]+$": { "$ref": "#/$defs/editCancelledMessageProp" } }, "additionalProperties": false } };
462
506
  const patternProperties$d = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
463
507
  const required$j = ["kind", "type", "path"];
464
508
  const unevaluatedProperties$k = false;
@@ -478,9 +522,9 @@ const $schema$j = "https://json-schema.org/draft/2020-12/schema";
478
522
  const $id$j = "https://golemui.com/schemas/gui/components/rangedatetimecalendar.schema.json";
479
523
  const title$j = "RangeDateTimeCalendar Widget";
480
524
  const type$j = "object";
481
- const $defs$j = { "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "prevMonthIconProp": { "type": "string" }, "nextMonthIconProp": { "type": "string" }, "prevMonthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "nextMonthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "selectYearAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "yearGridAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "removePillAriaLabelProp": { "$ref": "../core/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": "../ranges.schema.json#/$defs/dateTimeRange" } } };
525
+ const $defs$j = { "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "prevMonthIconProp": { "type": "string" }, "nextMonthIconProp": { "type": "string" }, "prevMonthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "nextMonthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "selectYearAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "yearGridAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "removePillAriaLabelProp": { "$ref": "../core/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": "../ranges.schema.json#/$defs/dateTimeRange" } }, "allowEditProp": { "type": "boolean" }, "editLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "editAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "confirmEditLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "cancelEditLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "editStartedMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "editCommittedMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "editCancelledMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" } };
482
526
  const allOf$j = [{ "$ref": "../core/common.schema.json#/$defs/baseWidget" }];
483
- const properties$i = { "kind": { "const": "input" }, "type": { "const": "rangeDateTimeCalendar" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "array", "items": { "$ref": "../ranges.schema.json#/$defs/dateTimeRange" } }, "props": { "type": "object", "properties": { "hint": { "$ref": "#/$defs/hintProp" }, "prevMonthIcon": { "$ref": "#/$defs/prevMonthIconProp" }, "nextMonthIcon": { "$ref": "#/$defs/nextMonthIconProp" }, "prevMonthAriaLabel": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "nextMonthAriaLabel": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "selectYearAriaLabel": { "$ref": "#/$defs/selectYearAriaLabelProp" }, "yearGridAriaLabel": { "$ref": "#/$defs/yearGridAriaLabelProp" }, "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": "../core/common.schema.json#/$defs/localizable" }, "endTimeLabel": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "minDateTime": { "$ref": "#/$defs/minDateTimeProp" }, "maxDateTime": { "$ref": "#/$defs/maxDateTimeProp" }, "minDateTimeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "maxDateTimeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledRanges": { "$ref": "#/$defs/disabledRangesProp" }, "disabledRangeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "noAvailableTimesMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../core/common.schema.json#/$defs/localizable", "description": "Error surfaced when focus leaves the widget with a half-finished range selection behind; the committed pills are untouched, the injected issue alone flags the field." }, "dayCountAriaLabel": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDayCountAriaLabel": { "$ref": "../core/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" }, "^selectYearAriaLabel\\.[^.]+$": { "$ref": "#/$defs/selectYearAriaLabelProp" }, "^yearGridAriaLabel\\.[^.]+$": { "$ref": "#/$defs/yearGridAriaLabelProp" }, "^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": "../core/common.schema.json#/$defs/localizable" }, "^endTimeLabel\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^minDateTime\\.[^.]+$": { "$ref": "#/$defs/minDateTimeProp" }, "^maxDateTime\\.[^.]+$": { "$ref": "#/$defs/maxDateTimeProp" }, "^minDateTimeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^maxDateTimeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^disabledRanges\\.[^.]+$": { "$ref": "#/$defs/disabledRangesProp" }, "^disabledRangeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^noAvailableTimesMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^dayCountAriaLabel\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^disabledDayCountAriaLabel\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" } }, "additionalProperties": false } };
527
+ const properties$i = { "kind": { "const": "input" }, "type": { "const": "rangeDateTimeCalendar" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "array", "items": { "$ref": "../ranges.schema.json#/$defs/dateTimeRange" } }, "props": { "type": "object", "properties": { "hint": { "$ref": "#/$defs/hintProp" }, "prevMonthIcon": { "$ref": "#/$defs/prevMonthIconProp" }, "nextMonthIcon": { "$ref": "#/$defs/nextMonthIconProp" }, "prevMonthAriaLabel": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "nextMonthAriaLabel": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "selectYearAriaLabel": { "$ref": "#/$defs/selectYearAriaLabelProp" }, "yearGridAriaLabel": { "$ref": "#/$defs/yearGridAriaLabelProp" }, "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": "../core/common.schema.json#/$defs/localizable" }, "endTimeLabel": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "minDateTime": { "$ref": "#/$defs/minDateTimeProp" }, "maxDateTime": { "$ref": "#/$defs/maxDateTimeProp" }, "minDateTimeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "maxDateTimeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledRanges": { "$ref": "#/$defs/disabledRangesProp" }, "disabledRangeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "noAvailableTimesMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../core/common.schema.json#/$defs/localizable", "description": "Error surfaced when focus leaves the widget with a half-finished range selection behind; the committed pills are untouched, the injected issue alone flags the field." }, "dayCountAriaLabel": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDayCountAriaLabel": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "allowEdit": { "$ref": "#/$defs/allowEditProp", "description": "Enables the select → edit → confirm flow on the pills: clicking a pill selects it and reveals its action icons; Edit (icon, or F2/E on the focused pill) loads it back into the input, Confirm commits the replacement (Escape cancels). Defaults to false." }, "editLabel": { "$ref": "#/$defs/editLabelProp" }, "editAriaLabel": { "$ref": "#/$defs/editAriaLabelProp", "description": "Edit hint joined into the pill's aria-description (the edit icon itself is decorative); a `{label}` token is substituted with the range's display label. Defaults to 'Edit range {label}'." }, "confirmEditLabel": { "$ref": "#/$defs/confirmEditLabelProp" }, "cancelEditLabel": { "$ref": "#/$defs/cancelEditLabelProp" }, "editStartedMessage": { "$ref": "#/$defs/editStartedMessageProp", "description": "Screen-reader announcement when an edit session starts; `{label}` carries the range. Defaults to 'Editing range {label}.'." }, "editCommittedMessage": { "$ref": "#/$defs/editCommittedMessageProp", "description": "Screen-reader announcement when an edit commits its replacement; `{label}` carries the resulting range. Defaults to 'Range updated to {label}.'." }, "editCancelledMessage": { "$ref": "#/$defs/editCancelledMessageProp" } }, "patternProperties": { "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^prevMonthIcon\\.[^.]+$": { "$ref": "#/$defs/prevMonthIconProp" }, "^nextMonthIcon\\.[^.]+$": { "$ref": "#/$defs/nextMonthIconProp" }, "^prevMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "^nextMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "^selectYearAriaLabel\\.[^.]+$": { "$ref": "#/$defs/selectYearAriaLabelProp" }, "^yearGridAriaLabel\\.[^.]+$": { "$ref": "#/$defs/yearGridAriaLabelProp" }, "^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": "../core/common.schema.json#/$defs/localizable" }, "^endTimeLabel\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^minDateTime\\.[^.]+$": { "$ref": "#/$defs/minDateTimeProp" }, "^maxDateTime\\.[^.]+$": { "$ref": "#/$defs/maxDateTimeProp" }, "^minDateTimeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^maxDateTimeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^disabledRanges\\.[^.]+$": { "$ref": "#/$defs/disabledRangesProp" }, "^disabledRangeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^noAvailableTimesMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^dayCountAriaLabel\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^disabledDayCountAriaLabel\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^allowEdit\\.[^.]+$": { "$ref": "#/$defs/allowEditProp" }, "^editLabel\\.[^.]+$": { "$ref": "#/$defs/editLabelProp" }, "^editAriaLabel\\.[^.]+$": { "$ref": "#/$defs/editAriaLabelProp" }, "^confirmEditLabel\\.[^.]+$": { "$ref": "#/$defs/confirmEditLabelProp" }, "^cancelEditLabel\\.[^.]+$": { "$ref": "#/$defs/cancelEditLabelProp" }, "^editStartedMessage\\.[^.]+$": { "$ref": "#/$defs/editStartedMessageProp" }, "^editCommittedMessage\\.[^.]+$": { "$ref": "#/$defs/editCommittedMessageProp" }, "^editCancelledMessage\\.[^.]+$": { "$ref": "#/$defs/editCancelledMessageProp" } }, "additionalProperties": false } };
484
528
  const patternProperties$c = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
485
529
  const required$i = ["kind", "type", "path"];
486
530
  const unevaluatedProperties$j = false;
@@ -500,9 +544,9 @@ const $schema$i = "https://json-schema.org/draft/2020-12/schema";
500
544
  const $id$i = "https://golemui.com/schemas/gui/components/rangedatetimepicker.schema.json";
501
545
  const title$i = "RangeDateTimePicker Widget";
502
546
  const type$i = "object";
503
- const $defs$i = { "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "separatorProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "removePillAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "startDateTimeAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "endDateTimeAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "invalidDateMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "prevMonthIconProp": { "type": "string" }, "nextMonthIconProp": { "type": "string" }, "prevMonthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "nextMonthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "toggleAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "selectYearAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "yearGridAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "dayAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "monthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "yearAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "hourAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "minuteAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "dayPeriodAriaLabelProp": { "$ref": "../core/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": "../ranges.schema.json#/$defs/dateTimeRange" } } };
547
+ const $defs$i = { "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "separatorProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "removePillAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "startDateTimeAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "endDateTimeAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "invalidDateMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "prevMonthIconProp": { "type": "string" }, "nextMonthIconProp": { "type": "string" }, "prevMonthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "nextMonthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "toggleAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "selectYearAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "yearGridAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "dayAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "monthAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "yearAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "hourAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "minuteAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "dayPeriodAriaLabelProp": { "$ref": "../core/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": "../ranges.schema.json#/$defs/dateTimeRange" } }, "allowEditProp": { "type": "boolean" }, "editLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "editAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "confirmEditLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "cancelEditLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "editStartedMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "editCommittedMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "editCancelledMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" } };
504
548
  const allOf$i = [{ "$ref": "../core/common.schema.json#/$defs/baseWidget" }];
505
- const properties$h = { "kind": { "const": "input" }, "type": { "const": "rangeDateTimePicker" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "array", "items": { "$ref": "../ranges.schema.json#/$defs/dateTimeRange" } }, "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" }, "toggleAriaLabel": { "$ref": "#/$defs/toggleAriaLabelProp" }, "selectYearAriaLabel": { "$ref": "#/$defs/selectYearAriaLabelProp" }, "yearGridAriaLabel": { "$ref": "#/$defs/yearGridAriaLabelProp" }, "dayAriaLabel": { "$ref": "#/$defs/dayAriaLabelProp" }, "monthAriaLabel": { "$ref": "#/$defs/monthAriaLabelProp" }, "yearAriaLabel": { "$ref": "#/$defs/yearAriaLabelProp" }, "hourAriaLabel": { "$ref": "#/$defs/hourAriaLabelProp" }, "minuteAriaLabel": { "$ref": "#/$defs/minuteAriaLabelProp" }, "dayPeriodAriaLabel": { "$ref": "#/$defs/dayPeriodAriaLabelProp" }, "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": "../core/common.schema.json#/$defs/localizable" }, "endTimeLabel": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "minDateTime": { "$ref": "#/$defs/minDateTimeProp" }, "maxDateTime": { "$ref": "#/$defs/maxDateTimeProp" }, "minDateTimeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "maxDateTimeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledRanges": { "$ref": "#/$defs/disabledRangesProp" }, "disabledRangeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "noAvailableTimesMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../core/common.schema.json#/$defs/localizable", "description": "Error surfaced when focus leaves the widget with a partially filled entry behind; the value goes to null so validators report it even on non-required fields." }, "dayCountAriaLabel": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDayCountAriaLabel": { "$ref": "../core/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" }, "^toggleAriaLabel\\.[^.]+$": { "$ref": "#/$defs/toggleAriaLabelProp" }, "^selectYearAriaLabel\\.[^.]+$": { "$ref": "#/$defs/selectYearAriaLabelProp" }, "^yearGridAriaLabel\\.[^.]+$": { "$ref": "#/$defs/yearGridAriaLabelProp" }, "^dayAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayAriaLabelProp" }, "^monthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/monthAriaLabelProp" }, "^yearAriaLabel\\.[^.]+$": { "$ref": "#/$defs/yearAriaLabelProp" }, "^hourAriaLabel\\.[^.]+$": { "$ref": "#/$defs/hourAriaLabelProp" }, "^minuteAriaLabel\\.[^.]+$": { "$ref": "#/$defs/minuteAriaLabelProp" }, "^dayPeriodAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayPeriodAriaLabelProp" }, "^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": "../core/common.schema.json#/$defs/localizable" }, "^endTimeLabel\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^minDateTime\\.[^.]+$": { "$ref": "#/$defs/minDateTimeProp" }, "^maxDateTime\\.[^.]+$": { "$ref": "#/$defs/maxDateTimeProp" }, "^minDateTimeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^maxDateTimeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^disabledRanges\\.[^.]+$": { "$ref": "#/$defs/disabledRangesProp" }, "^disabledRangeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^noAvailableTimesMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^dayCountAriaLabel\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^disabledDayCountAriaLabel\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" } }, "additionalProperties": false } };
549
+ const properties$h = { "kind": { "const": "input" }, "type": { "const": "rangeDateTimePicker" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "array", "items": { "$ref": "../ranges.schema.json#/$defs/dateTimeRange" } }, "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" }, "toggleAriaLabel": { "$ref": "#/$defs/toggleAriaLabelProp" }, "selectYearAriaLabel": { "$ref": "#/$defs/selectYearAriaLabelProp" }, "yearGridAriaLabel": { "$ref": "#/$defs/yearGridAriaLabelProp" }, "dayAriaLabel": { "$ref": "#/$defs/dayAriaLabelProp" }, "monthAriaLabel": { "$ref": "#/$defs/monthAriaLabelProp" }, "yearAriaLabel": { "$ref": "#/$defs/yearAriaLabelProp" }, "hourAriaLabel": { "$ref": "#/$defs/hourAriaLabelProp" }, "minuteAriaLabel": { "$ref": "#/$defs/minuteAriaLabelProp" }, "dayPeriodAriaLabel": { "$ref": "#/$defs/dayPeriodAriaLabelProp" }, "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": "../core/common.schema.json#/$defs/localizable" }, "endTimeLabel": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "minDateTime": { "$ref": "#/$defs/minDateTimeProp" }, "maxDateTime": { "$ref": "#/$defs/maxDateTimeProp" }, "minDateTimeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "maxDateTimeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledRanges": { "$ref": "#/$defs/disabledRangesProp" }, "disabledRangeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "noAvailableTimesMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../core/common.schema.json#/$defs/localizable", "description": "Error surfaced when focus leaves the widget with a partially filled entry behind; the value goes to null so validators report it even on non-required fields." }, "dayCountAriaLabel": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDayCountAriaLabel": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "allowEdit": { "$ref": "#/$defs/allowEditProp", "description": "Enables the select → edit → confirm flow on the pills: clicking a pill selects it and reveals its action icons; Edit (icon, or F2/E on the focused pill) loads it back into the input, Confirm commits the replacement (Escape cancels). Defaults to false." }, "editLabel": { "$ref": "#/$defs/editLabelProp" }, "editAriaLabel": { "$ref": "#/$defs/editAriaLabelProp", "description": "Edit hint joined into the pill's aria-description (the edit icon itself is decorative); a `{label}` token is substituted with the range's display label. Defaults to 'Edit range {label}'." }, "confirmEditLabel": { "$ref": "#/$defs/confirmEditLabelProp" }, "cancelEditLabel": { "$ref": "#/$defs/cancelEditLabelProp" }, "editStartedMessage": { "$ref": "#/$defs/editStartedMessageProp", "description": "Screen-reader announcement when an edit session starts; `{label}` carries the range. Defaults to 'Editing range {label}.'." }, "editCommittedMessage": { "$ref": "#/$defs/editCommittedMessageProp", "description": "Screen-reader announcement when an edit commits its replacement; `{label}` carries the resulting range. Defaults to 'Range updated to {label}.'." }, "editCancelledMessage": { "$ref": "#/$defs/editCancelledMessageProp" } }, "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" }, "^toggleAriaLabel\\.[^.]+$": { "$ref": "#/$defs/toggleAriaLabelProp" }, "^selectYearAriaLabel\\.[^.]+$": { "$ref": "#/$defs/selectYearAriaLabelProp" }, "^yearGridAriaLabel\\.[^.]+$": { "$ref": "#/$defs/yearGridAriaLabelProp" }, "^dayAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayAriaLabelProp" }, "^monthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/monthAriaLabelProp" }, "^yearAriaLabel\\.[^.]+$": { "$ref": "#/$defs/yearAriaLabelProp" }, "^hourAriaLabel\\.[^.]+$": { "$ref": "#/$defs/hourAriaLabelProp" }, "^minuteAriaLabel\\.[^.]+$": { "$ref": "#/$defs/minuteAriaLabelProp" }, "^dayPeriodAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayPeriodAriaLabelProp" }, "^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": "../core/common.schema.json#/$defs/localizable" }, "^endTimeLabel\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^minDateTime\\.[^.]+$": { "$ref": "#/$defs/minDateTimeProp" }, "^maxDateTime\\.[^.]+$": { "$ref": "#/$defs/maxDateTimeProp" }, "^minDateTimeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^maxDateTimeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^disabledRanges\\.[^.]+$": { "$ref": "#/$defs/disabledRangesProp" }, "^disabledRangeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^noAvailableTimesMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^dayCountAriaLabel\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^disabledDayCountAriaLabel\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^allowEdit\\.[^.]+$": { "$ref": "#/$defs/allowEditProp" }, "^editLabel\\.[^.]+$": { "$ref": "#/$defs/editLabelProp" }, "^editAriaLabel\\.[^.]+$": { "$ref": "#/$defs/editAriaLabelProp" }, "^confirmEditLabel\\.[^.]+$": { "$ref": "#/$defs/confirmEditLabelProp" }, "^cancelEditLabel\\.[^.]+$": { "$ref": "#/$defs/cancelEditLabelProp" }, "^editStartedMessage\\.[^.]+$": { "$ref": "#/$defs/editStartedMessageProp" }, "^editCommittedMessage\\.[^.]+$": { "$ref": "#/$defs/editCommittedMessageProp" }, "^editCancelledMessage\\.[^.]+$": { "$ref": "#/$defs/editCancelledMessageProp" } }, "additionalProperties": false } };
506
550
  const patternProperties$b = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
507
551
  const required$h = ["kind", "type", "path"];
508
552
  const unevaluatedProperties$i = false;
@@ -522,9 +566,9 @@ const $schema$h = "https://json-schema.org/draft/2020-12/schema";
522
566
  const $id$h = "https://golemui.com/schemas/gui/components/rangetimeinput.schema.json";
523
567
  const title$h = "RangeTimeInput Widget";
524
568
  const type$h = "object";
525
- const $defs$h = { "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "separatorProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "removePillAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "startTimeAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "endTimeAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "hourFormatProp": { "enum": ["12", "24"] }, "minuteStepProp": { "type": "number", "minimum": 1 }, "isoTimeProp": { "$ref": "../ranges.schema.json#/$defs/isoTime" }, "hourAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "minuteAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "dayPeriodAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" } };
569
+ const $defs$h = { "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "separatorProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "removePillAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "startTimeAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "endTimeAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "hourFormatProp": { "enum": ["12", "24"] }, "minuteStepProp": { "type": "number", "minimum": 1 }, "isoTimeProp": { "$ref": "../ranges.schema.json#/$defs/isoTime" }, "hourAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "minuteAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "dayPeriodAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "allowEditProp": { "type": "boolean" }, "editLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "editAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "confirmEditLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "cancelEditLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "editStartedMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "editCommittedMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "editCancelledMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" } };
526
570
  const allOf$h = [{ "$ref": "../core/common.schema.json#/$defs/baseWidget" }];
527
- const properties$g = { "kind": { "const": "input" }, "type": { "const": "rangeTimeInput" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "array", "items": { "$ref": "../ranges.schema.json#/$defs/timeRange" } }, "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": "../core/common.schema.json#/$defs/localizable" }, "maxTimeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "rangeOrderMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../core/common.schema.json#/$defs/localizable", "description": "Error surfaced when focus leaves the widget with a partially filled entry behind; the value goes to null so validators report it even on non-required fields." }, "hourAriaLabel": { "$ref": "#/$defs/hourAriaLabelProp" }, "minuteAriaLabel": { "$ref": "#/$defs/minuteAriaLabelProp" }, "dayPeriodAriaLabel": { "$ref": "#/$defs/dayPeriodAriaLabelProp" } }, "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": "../core/common.schema.json#/$defs/localizable" }, "^maxTimeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^rangeOrderMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^hourAriaLabel\\.[^.]+$": { "$ref": "#/$defs/hourAriaLabelProp" }, "^minuteAriaLabel\\.[^.]+$": { "$ref": "#/$defs/minuteAriaLabelProp" }, "^dayPeriodAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayPeriodAriaLabelProp" } }, "additionalProperties": false } };
571
+ const properties$g = { "kind": { "const": "input" }, "type": { "const": "rangeTimeInput" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "array", "items": { "$ref": "../ranges.schema.json#/$defs/timeRange" } }, "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": "../core/common.schema.json#/$defs/localizable" }, "maxTimeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "rangeOrderMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../core/common.schema.json#/$defs/localizable", "description": "Error surfaced when focus leaves the widget with a partially filled entry behind; the value goes to null so validators report it even on non-required fields." }, "hourAriaLabel": { "$ref": "#/$defs/hourAriaLabelProp" }, "minuteAriaLabel": { "$ref": "#/$defs/minuteAriaLabelProp" }, "dayPeriodAriaLabel": { "$ref": "#/$defs/dayPeriodAriaLabelProp" }, "allowEdit": { "$ref": "#/$defs/allowEditProp", "description": "Enables the select → edit → confirm flow on the pills: clicking a pill selects it and reveals its action icons; Edit (icon, or F2/E on the focused pill) loads it back into the input, Confirm commits the replacement (Escape cancels). Defaults to false." }, "editLabel": { "$ref": "#/$defs/editLabelProp" }, "editAriaLabel": { "$ref": "#/$defs/editAriaLabelProp", "description": "Edit hint joined into the pill's aria-description (the edit icon itself is decorative); a `{label}` token is substituted with the range's display label. Defaults to 'Edit range {label}'." }, "confirmEditLabel": { "$ref": "#/$defs/confirmEditLabelProp" }, "cancelEditLabel": { "$ref": "#/$defs/cancelEditLabelProp" }, "editStartedMessage": { "$ref": "#/$defs/editStartedMessageProp", "description": "Screen-reader announcement when an edit session starts; `{label}` carries the range. Defaults to 'Editing range {label}.'." }, "editCommittedMessage": { "$ref": "#/$defs/editCommittedMessageProp", "description": "Screen-reader announcement when an edit commits its replacement; `{label}` carries the resulting range. Defaults to 'Range updated to {label}.'." }, "editCancelledMessage": { "$ref": "#/$defs/editCancelledMessageProp" } }, "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": "../core/common.schema.json#/$defs/localizable" }, "^maxTimeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^rangeOrderMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^hourAriaLabel\\.[^.]+$": { "$ref": "#/$defs/hourAriaLabelProp" }, "^minuteAriaLabel\\.[^.]+$": { "$ref": "#/$defs/minuteAriaLabelProp" }, "^dayPeriodAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayPeriodAriaLabelProp" }, "^allowEdit\\.[^.]+$": { "$ref": "#/$defs/allowEditProp" }, "^editLabel\\.[^.]+$": { "$ref": "#/$defs/editLabelProp" }, "^editAriaLabel\\.[^.]+$": { "$ref": "#/$defs/editAriaLabelProp" }, "^confirmEditLabel\\.[^.]+$": { "$ref": "#/$defs/confirmEditLabelProp" }, "^cancelEditLabel\\.[^.]+$": { "$ref": "#/$defs/cancelEditLabelProp" }, "^editStartedMessage\\.[^.]+$": { "$ref": "#/$defs/editStartedMessageProp" }, "^editCommittedMessage\\.[^.]+$": { "$ref": "#/$defs/editCommittedMessageProp" }, "^editCancelledMessage\\.[^.]+$": { "$ref": "#/$defs/editCancelledMessageProp" } }, "additionalProperties": false } };
528
572
  const patternProperties$a = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
529
573
  const required$g = ["kind", "type", "path"];
530
574
  const unevaluatedProperties$h = false;
@@ -544,9 +588,9 @@ const $schema$g = "https://json-schema.org/draft/2020-12/schema";
544
588
  const $id$g = "https://golemui.com/schemas/gui/components/rangetimepicker.schema.json";
545
589
  const title$g = "RangeTimePicker Widget";
546
590
  const type$g = "object";
547
- const $defs$g = { "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "separatorProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "removePillAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "startTimeAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "endTimeAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "hourFormatProp": { "enum": ["12", "24"] }, "minuteStepProp": { "type": "number", "minimum": 1 }, "isoTimeProp": { "$ref": "../ranges.schema.json#/$defs/isoTime" }, "disabledRangesProp": { "type": "array", "items": { "$ref": "../ranges.schema.json#/$defs/timeRange" } }, "allowCustomTimeProp": { "type": "boolean" }, "sizeProp": { "type": "number" }, "toggleAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "hourAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "minuteAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "dayPeriodAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" } };
591
+ const $defs$g = { "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "separatorProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "removePillAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "startTimeAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "endTimeAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "hourFormatProp": { "enum": ["12", "24"] }, "minuteStepProp": { "type": "number", "minimum": 1 }, "isoTimeProp": { "$ref": "../ranges.schema.json#/$defs/isoTime" }, "disabledRangesProp": { "type": "array", "items": { "$ref": "../ranges.schema.json#/$defs/timeRange" } }, "allowCustomTimeProp": { "type": "boolean" }, "sizeProp": { "type": "number" }, "toggleAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "hourAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "minuteAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "dayPeriodAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "allowEditProp": { "type": "boolean" }, "editLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "editAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "confirmEditLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "cancelEditLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "editStartedMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "editCommittedMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "editCancelledMessageProp": { "$ref": "../core/common.schema.json#/$defs/localizable" } };
548
592
  const allOf$g = [{ "$ref": "../core/common.schema.json#/$defs/baseWidget" }];
549
- const properties$f = { "kind": { "const": "input" }, "type": { "const": "rangeTimePicker" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "array", "items": { "$ref": "../ranges.schema.json#/$defs/timeRange" } }, "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": "../core/common.schema.json#/$defs/localizable" }, "endTimeLabel": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "hourFormat": { "$ref": "#/$defs/hourFormatProp" }, "minuteStep": { "$ref": "#/$defs/minuteStepProp" }, "minTime": { "$ref": "#/$defs/isoTimeProp" }, "maxTime": { "$ref": "#/$defs/isoTimeProp" }, "minTimeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "maxTimeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "rangeOrderMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledRanges": { "$ref": "#/$defs/disabledRangesProp" }, "allowCustomTime": { "$ref": "#/$defs/allowCustomTimeProp" }, "height": { "$ref": "#/$defs/sizeProp" }, "itemHeight": { "$ref": "#/$defs/sizeProp" }, "disabledRangeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "noAvailableTimesMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../core/common.schema.json#/$defs/localizable", "description": "Error surfaced when focus leaves the widget with a partially filled entry behind; the value goes to null so validators report it even on non-required fields." }, "toggleAriaLabel": { "$ref": "#/$defs/toggleAriaLabelProp" }, "hourAriaLabel": { "$ref": "#/$defs/hourAriaLabelProp" }, "minuteAriaLabel": { "$ref": "#/$defs/minuteAriaLabelProp" }, "dayPeriodAriaLabel": { "$ref": "#/$defs/dayPeriodAriaLabelProp" } }, "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": "../core/common.schema.json#/$defs/localizable" }, "^endTimeLabel\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^hourFormat\\.[^.]+$": { "$ref": "#/$defs/hourFormatProp" }, "^minuteStep\\.[^.]+$": { "$ref": "#/$defs/minuteStepProp" }, "^minTime\\.[^.]+$": { "$ref": "#/$defs/isoTimeProp" }, "^maxTime\\.[^.]+$": { "$ref": "#/$defs/isoTimeProp" }, "^minTimeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^maxTimeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^rangeOrderMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^disabledRanges\\.[^.]+$": { "$ref": "#/$defs/disabledRangesProp" }, "^allowCustomTime\\.[^.]+$": { "$ref": "#/$defs/allowCustomTimeProp" }, "^height\\.[^.]+$": { "$ref": "#/$defs/sizeProp" }, "^itemHeight\\.[^.]+$": { "$ref": "#/$defs/sizeProp" }, "^disabledRangeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^noAvailableTimesMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^toggleAriaLabel\\.[^.]+$": { "$ref": "#/$defs/toggleAriaLabelProp" }, "^hourAriaLabel\\.[^.]+$": { "$ref": "#/$defs/hourAriaLabelProp" }, "^minuteAriaLabel\\.[^.]+$": { "$ref": "#/$defs/minuteAriaLabelProp" }, "^dayPeriodAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayPeriodAriaLabelProp" } }, "additionalProperties": false } };
593
+ const properties$f = { "kind": { "const": "input" }, "type": { "const": "rangeTimePicker" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "defaultValue": { "type": "array", "items": { "$ref": "../ranges.schema.json#/$defs/timeRange" } }, "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": "../core/common.schema.json#/$defs/localizable" }, "endTimeLabel": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "hourFormat": { "$ref": "#/$defs/hourFormatProp" }, "minuteStep": { "$ref": "#/$defs/minuteStepProp" }, "minTime": { "$ref": "#/$defs/isoTimeProp" }, "maxTime": { "$ref": "#/$defs/isoTimeProp" }, "minTimeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "maxTimeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "rangeOrderMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "disabledRanges": { "$ref": "#/$defs/disabledRangesProp" }, "allowCustomTime": { "$ref": "#/$defs/allowCustomTimeProp" }, "height": { "$ref": "#/$defs/sizeProp" }, "itemHeight": { "$ref": "#/$defs/sizeProp" }, "disabledRangeMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "noAvailableTimesMessage": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../core/common.schema.json#/$defs/localizable", "description": "Error surfaced when focus leaves the widget with a partially filled entry behind; the value goes to null so validators report it even on non-required fields." }, "toggleAriaLabel": { "$ref": "#/$defs/toggleAriaLabelProp" }, "hourAriaLabel": { "$ref": "#/$defs/hourAriaLabelProp" }, "minuteAriaLabel": { "$ref": "#/$defs/minuteAriaLabelProp" }, "dayPeriodAriaLabel": { "$ref": "#/$defs/dayPeriodAriaLabelProp" }, "allowEdit": { "$ref": "#/$defs/allowEditProp", "description": "Enables the select → edit → confirm flow on the pills: clicking a pill selects it and reveals its action icons; Edit (icon, or F2/E on the focused pill) loads it back into the input, Confirm commits the replacement (Escape cancels). Defaults to false." }, "editLabel": { "$ref": "#/$defs/editLabelProp" }, "editAriaLabel": { "$ref": "#/$defs/editAriaLabelProp", "description": "Edit hint joined into the pill's aria-description (the edit icon itself is decorative); a `{label}` token is substituted with the range's display label. Defaults to 'Edit range {label}'." }, "confirmEditLabel": { "$ref": "#/$defs/confirmEditLabelProp" }, "cancelEditLabel": { "$ref": "#/$defs/cancelEditLabelProp" }, "editStartedMessage": { "$ref": "#/$defs/editStartedMessageProp", "description": "Screen-reader announcement when an edit session starts; `{label}` carries the range. Defaults to 'Editing range {label}.'." }, "editCommittedMessage": { "$ref": "#/$defs/editCommittedMessageProp", "description": "Screen-reader announcement when an edit commits its replacement; `{label}` carries the resulting range. Defaults to 'Range updated to {label}.'." }, "editCancelledMessage": { "$ref": "#/$defs/editCancelledMessageProp" } }, "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": "../core/common.schema.json#/$defs/localizable" }, "^endTimeLabel\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^hourFormat\\.[^.]+$": { "$ref": "#/$defs/hourFormatProp" }, "^minuteStep\\.[^.]+$": { "$ref": "#/$defs/minuteStepProp" }, "^minTime\\.[^.]+$": { "$ref": "#/$defs/isoTimeProp" }, "^maxTime\\.[^.]+$": { "$ref": "#/$defs/isoTimeProp" }, "^minTimeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^maxTimeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^rangeOrderMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^disabledRanges\\.[^.]+$": { "$ref": "#/$defs/disabledRangesProp" }, "^allowCustomTime\\.[^.]+$": { "$ref": "#/$defs/allowCustomTimeProp" }, "^height\\.[^.]+$": { "$ref": "#/$defs/sizeProp" }, "^itemHeight\\.[^.]+$": { "$ref": "#/$defs/sizeProp" }, "^disabledRangeMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^noAvailableTimesMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "^toggleAriaLabel\\.[^.]+$": { "$ref": "#/$defs/toggleAriaLabelProp" }, "^hourAriaLabel\\.[^.]+$": { "$ref": "#/$defs/hourAriaLabelProp" }, "^minuteAriaLabel\\.[^.]+$": { "$ref": "#/$defs/minuteAriaLabelProp" }, "^dayPeriodAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayPeriodAriaLabelProp" }, "^allowEdit\\.[^.]+$": { "$ref": "#/$defs/allowEditProp" }, "^editLabel\\.[^.]+$": { "$ref": "#/$defs/editLabelProp" }, "^editAriaLabel\\.[^.]+$": { "$ref": "#/$defs/editAriaLabelProp" }, "^confirmEditLabel\\.[^.]+$": { "$ref": "#/$defs/confirmEditLabelProp" }, "^cancelEditLabel\\.[^.]+$": { "$ref": "#/$defs/cancelEditLabelProp" }, "^editStartedMessage\\.[^.]+$": { "$ref": "#/$defs/editStartedMessageProp" }, "^editCommittedMessage\\.[^.]+$": { "$ref": "#/$defs/editCommittedMessageProp" }, "^editCancelledMessage\\.[^.]+$": { "$ref": "#/$defs/editCancelledMessageProp" } }, "additionalProperties": false } };
550
594
  const patternProperties$9 = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
551
595
  const required$f = ["kind", "type", "path"];
552
596
  const unevaluatedProperties$g = false;
@@ -610,9 +654,9 @@ const $schema$d = "https://json-schema.org/draft/2020-12/schema";
610
654
  const $id$d = "https://golemui.com/schemas/gui/components/tags.schema.json";
611
655
  const title$d = "Tags Widget";
612
656
  const type$d = "object";
613
- const $defs$d = { "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "placeholderProp": { "$ref": "../core/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": "../core/common.schema.json#/$defs/localizable" }, "removeIconProp": { "type": "string" } };
657
+ const $defs$d = { "disabledDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../core/common.schema.json#/$defs/boolOrWhen" }, "labelDef": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "hintProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "placeholderProp": { "$ref": "../core/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." }, "removeAriaLabelProp": { "$ref": "../core/common.schema.json#/$defs/localizable" }, "removeIconProp": { "type": "string" } };
614
658
  const allOf$d = [{ "$ref": "../core/common.schema.json#/$defs/baseWidget" }];
615
- const properties$c = { "kind": { "const": "input" }, "type": { "const": "tags" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/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 } };
659
+ const properties$c = { "kind": { "const": "input" }, "type": { "const": "tags" }, "path": { "$ref": "../core/common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../core/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" }, "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" }, "^removeAriaLabel\\.[^.]+$": { "$ref": "#/$defs/removeAriaLabelProp" }, "^removeIcon\\.[^.]+$": { "$ref": "#/$defs/removeIconProp" } }, "additionalProperties": false } };
616
660
  const patternProperties$6 = { "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
617
661
  const required$c = ["kind", "type", "path"];
618
662
  const unevaluatedProperties$d = false;
@@ -917,6 +961,8 @@ const datetimepickerSchema = datetimepickerSchemaJson;
917
961
  const dropdownSchema = dropdownSchemaJson;
918
962
  const listSchema = listSchemaJson;
919
963
  const markdownSchema = markdownSchemaJson;
964
+ const multidropdownSchema = multidropdownSchemaJson;
965
+ const multilistSchema = multilistSchemaJson;
920
966
  const numberSchema = numberSchemaJson;
921
967
  const passwordSchema = passwordSchemaJson;
922
968
  const radiogroupSchema = radiogroupSchemaJson;
@@ -956,6 +1002,8 @@ const COMPONENT_SCHEMAS_BY_TYPE = {
956
1002
  dropdown: dropdownSchema,
957
1003
  list: listSchema,
958
1004
  markdown: markdownSchema,
1005
+ multiDropdown: multidropdownSchema,
1006
+ multiList: multilistSchema,
959
1007
  number: numberSchema,
960
1008
  password: passwordSchema,
961
1009
  radiogroup: radiogroupSchema,
@@ -2526,8 +2574,7 @@ const EXAMPLES = {
2526
2574
  placeholder: "Add a keyword and press Enter",
2527
2575
  separators: ["Enter", ","],
2528
2576
  trim: true,
2529
- allowDuplicates: false,
2530
- limit: 10
2577
+ allowDuplicates: false
2531
2578
  },
2532
2579
  validator: {
2533
2580
  type: "array",
@@ -2591,6 +2638,30 @@ const EXAMPLES = {
2591
2638
  ]
2592
2639
  }
2593
2640
  },
2641
+ multiDropdown: {
2642
+ kind: "input",
2643
+ type: "multiDropdown",
2644
+ path: "countries",
2645
+ label: "Countries",
2646
+ defaultValue: ["us"],
2647
+ props: {
2648
+ labelField: "label",
2649
+ valueField: "value",
2650
+ items: [
2651
+ { label: "United States", value: "us", flag: "🇺🇸" },
2652
+ { label: "Canada", value: "ca", flag: "🇨🇦" }
2653
+ ]
2654
+ }
2655
+ },
2656
+ multiList: {
2657
+ kind: "input",
2658
+ type: "multiList",
2659
+ path: "toppings",
2660
+ label: "Toppings",
2661
+ props: {
2662
+ items: ["Cheese", "Bacon", "Mushrooms"]
2663
+ }
2664
+ },
2594
2665
  select: {
2595
2666
  kind: "input",
2596
2667
  type: "select",
@@ -2722,8 +2793,8 @@ const NOTES = {
2722
2793
  ],
2723
2794
  tags: [
2724
2795
  "Use `tags` for free-form arrays of primitive values (typically `string[]`) — e.g. keywords, email lists, hashtags. Backing data is `string[]`. For arrays of structured objects, use `repeater` instead.",
2725
- '`props.separators` controls which keys/characters commit a new tag. Defaults emit on `Enter` and `,`; you can also include `"Tab"` or `"blur"`. `props.trim` strips whitespace from each tag; `props.allowDuplicates: false` rejects repeats; `props.limit` caps the array length.',
2726
- 'Validate with an `arrayValidator`: `{ type: "array", minItems, maxItems, uniqueItems }`. The `tags` widget complements that with UI-level enforcement (`allowDuplicates`, `limit`) but the validator is still authoritative for form-level required/min/max constraints.'
2796
+ '`props.separators` controls which keys/characters commit a new tag. Defaults emit on `Enter` and `,`; you can also include `"Tab"` or `"blur"`. `props.trim` strips whitespace from each tag; `props.allowDuplicates: false` rejects repeats.',
2797
+ 'Validate with an `arrayValidator`: `{ type: "array", minItems, maxItems, uniqueItems }`. Entry is never silently blocked — cap the tag count with `maxItems` so the user is told why.'
2727
2798
  ],
2728
2799
  dropdown: [
2729
2800
  "PREFER `select` for plain label/value lists (countries, plans, sizes). `dropdown` is for richer item shapes: when each item has extra fields (icons, flags, metadata) that an `itemRenderer` or `labelField`/`valueField` can use.",