@golemui/gui-mcp 1.2.0 → 1.2.1

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.
@@ -138,7 +138,7 @@ const title$x = "DateTimeCalendar Widget";
138
138
  const type$x = "object";
139
139
  const $defs$x = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "prevMonthIconProp": { "type": "string" }, "nextMonthIconProp": { "type": "string" }, "prevMonthAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "nextMonthAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "selectYearAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "yearGridAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "dayFormatProp": { "description": "Formatting of day numbers in the calendar grid (`numeric` = 1–31, `2-digit` = 01–31)", "enum": ["numeric", "2-digit"] }, "weekdayFormatProp": { "description": "Formatting of weekday column headers (`short` = Mon, `long` = Monday, `narrow` = M)", "enum": ["short", "long", "narrow"] }, "monthFormatProp": { "description": "Formatting of the month heading (`long` = January, `short` = Jan, `narrow` = J, `numeric` = 1, `2-digit` = 01)", "enum": ["numeric", "2-digit", "long", "short", "narrow"] }, "minDateProp": { "type": "string", "description": "ISO-8601 date string for the earliest selectable date (inclusive)" }, "maxDateProp": { "type": "string", "description": "ISO-8601 date string for the latest selectable date (inclusive)" }, "numberOfMonthsProp": { "type": "number", "description": "Number of month panels to display side by side. Defaults to 1. The time row and grid render on the first panel only." }, "disabledRangesProp": { "type": "array", "description": "Date ranges that are shown but cannot be selected", "items": { "$ref": "../common.schema.json#/$defs/dateRange" } }, "hourFormatProp": { "enum": ["12", "24"] }, "allowCustomTimeProp": { "type": "boolean" }, "minuteStepProp": { "type": "number", "minimum": 1 }, "isoTimeProp": { "type": "string", "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?$" }, "disabledTimeRangesProp": { "type": "array", "description": "Time ranges rendered disabled; entries optionally scope to a date and/or weekdays", "items": { "type": "object", "properties": { "start": { "$ref": "#/$defs/isoTimeProp" }, "end": { "$ref": "#/$defs/isoTimeProp" }, "date": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "description": "ISO date: the range only applies on that date" }, "weekdays": { "type": "array", "items": { "type": "integer", "minimum": 0, "maximum": 6 }, "description": "Date.prototype.getDay() numbering: 0=Sunday … 6=Saturday" } }, "required": ["start", "end"], "additionalProperties": false } } };
140
140
  const allOf$x = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
141
- const properties$w = { "kind": { "const": "input" }, "type": { "const": "dateTimeCalendar" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "minTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledTimeRangeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "noAvailableTimesMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "hint": { "$ref": "#/$defs/hintProp" }, "prevMonthIcon": { "$ref": "#/$defs/prevMonthIconProp" }, "nextMonthIcon": { "$ref": "#/$defs/nextMonthIconProp" }, "prevMonthAriaLabel": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "nextMonthAriaLabel": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "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": "../common.schema.json#/$defs/localizable" }, "^maxTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^disabledTimeRangeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^noAvailableTimesMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^prevMonthIcon\\.[^.]+$": { "$ref": "#/$defs/prevMonthIconProp" }, "^nextMonthIcon\\.[^.]+$": { "$ref": "#/$defs/nextMonthIconProp" }, "^prevMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "^nextMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "^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 } };
141
+ const properties$w = { "kind": { "const": "input" }, "type": { "const": "dateTimeCalendar" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "minTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledTimeRangeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "noAvailableTimesMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../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": "../common.schema.json#/$defs/localizable" }, "^maxTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^disabledTimeRangeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^noAvailableTimesMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^prevMonthIcon\\.[^.]+$": { "$ref": "#/$defs/prevMonthIconProp" }, "^nextMonthIcon\\.[^.]+$": { "$ref": "#/$defs/nextMonthIconProp" }, "^prevMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "^nextMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "^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 } };
142
142
  const patternProperties$s = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
143
143
  const required$w = ["kind", "type", "path"];
144
144
  const unevaluatedProperties$x = false;
@@ -160,7 +160,7 @@ const title$w = "DateTimePicker Widget";
160
160
  const type$w = "object";
161
161
  const $defs$w = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "prevMonthIconProp": { "type": "string" }, "nextMonthIconProp": { "type": "string" }, "prevMonthAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "nextMonthAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "toggleAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "selectYearAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "yearGridAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "dayAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "monthAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "yearAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "hourAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "minuteAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "dayPeriodAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "dayFormatProp": { "description": "Formatting of day numbers in the calendar grid (`numeric` = 1–31, `2-digit` = 01–31)", "enum": ["numeric", "2-digit"] }, "weekdayFormatProp": { "description": "Formatting of weekday column headers (`short` = Mon, `long` = Monday, `narrow` = M)", "enum": ["short", "long", "narrow"] }, "monthFormatProp": { "description": "Formatting of the month heading (`long` = January, `short` = Jan, `narrow` = J, `numeric` = 1, `2-digit` = 01)", "enum": ["numeric", "2-digit", "long", "short", "narrow"] }, "minDateProp": { "type": "string", "description": "ISO-8601 date string for the earliest selectable date (inclusive)" }, "maxDateProp": { "type": "string", "description": "ISO-8601 date string for the latest selectable date (inclusive)" }, "numberOfMonthsProp": { "type": "number", "description": "Number of month panels to display side by side. Defaults to 1. The time row and grid render on the first panel only." }, "disabledRangesProp": { "type": "array", "description": "Date ranges that are shown but cannot be selected", "items": { "$ref": "../common.schema.json#/$defs/dateRange" } }, "hourFormatProp": { "enum": ["12", "24"] }, "allowCustomTimeProp": { "type": "boolean" }, "minuteStepProp": { "type": "number", "minimum": 1 }, "isoTimeProp": { "type": "string", "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?$" }, "disabledTimeRangesProp": { "type": "array", "description": "Time ranges rendered disabled; entries optionally scope to a date and/or weekdays", "items": { "type": "object", "properties": { "start": { "$ref": "#/$defs/isoTimeProp" }, "end": { "$ref": "#/$defs/isoTimeProp" }, "date": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "description": "ISO date: the range only applies on that date" }, "weekdays": { "type": "array", "items": { "type": "integer", "minimum": 0, "maximum": 6 }, "description": "Date.prototype.getDay() numbering: 0=Sunday … 6=Saturday" } }, "required": ["start", "end"], "additionalProperties": false } } };
162
162
  const allOf$w = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
163
- const properties$v = { "kind": { "const": "input" }, "type": { "const": "dateTimePicker" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "invalidDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "minDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDateRangeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "minTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledTimeRangeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "noAvailableTimesMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "prevMonthIcon": { "$ref": "#/$defs/prevMonthIconProp" }, "nextMonthIcon": { "$ref": "#/$defs/nextMonthIconProp" }, "prevMonthAriaLabel": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "nextMonthAriaLabel": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "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": "../common.schema.json#/$defs/localizable" }, "^minDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^disabledDateRangeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^minTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^disabledTimeRangeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^noAvailableTimesMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^prevMonthIcon\\.[^.]+$": { "$ref": "#/$defs/prevMonthIconProp" }, "^nextMonthIcon\\.[^.]+$": { "$ref": "#/$defs/nextMonthIconProp" }, "^prevMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "^nextMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "^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 } };
163
+ const properties$v = { "kind": { "const": "input" }, "type": { "const": "dateTimePicker" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "invalidDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "minDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDateRangeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "minTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledTimeRangeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "noAvailableTimesMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../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": "../common.schema.json#/$defs/localizable" }, "^minDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^disabledDateRangeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^minTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^disabledTimeRangeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^noAvailableTimesMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^prevMonthIcon\\.[^.]+$": { "$ref": "#/$defs/prevMonthIconProp" }, "^nextMonthIcon\\.[^.]+$": { "$ref": "#/$defs/nextMonthIconProp" }, "^prevMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "^nextMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "^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 } };
164
164
  const patternProperties$r = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
165
165
  const required$v = ["kind", "type", "path"];
166
166
  const unevaluatedProperties$w = false;
@@ -246,7 +246,7 @@ const title$s = "DateInput Widget";
246
246
  const type$s = "object";
247
247
  const $defs$s = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "minDateProp": { "type": "string" }, "maxDateProp": { "type": "string" }, "dayAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "monthAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "yearAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" } };
248
248
  const allOf$s = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
249
- const properties$s = { "kind": { "const": "input" }, "type": { "const": "dateInput" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "invalidDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "minDate": { "$ref": "#/$defs/minDateProp" }, "maxDate": { "$ref": "#/$defs/maxDateProp" }, "minDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "dayAriaLabel": { "$ref": "#/$defs/dayAriaLabelProp" }, "monthAriaLabel": { "$ref": "#/$defs/monthAriaLabelProp" }, "yearAriaLabel": { "$ref": "#/$defs/yearAriaLabelProp" } }, "patternProperties": { "^invalidDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^minDate\\.[^.]+$": { "$ref": "#/$defs/minDateProp" }, "^maxDate\\.[^.]+$": { "$ref": "#/$defs/maxDateProp" }, "^minDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^dayAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayAriaLabelProp" }, "^monthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/monthAriaLabelProp" }, "^yearAriaLabel\\.[^.]+$": { "$ref": "#/$defs/yearAriaLabelProp" } }, "additionalProperties": false } };
249
+ const properties$s = { "kind": { "const": "input" }, "type": { "const": "dateInput" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "invalidDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "minDate": { "$ref": "#/$defs/minDateProp" }, "maxDate": { "$ref": "#/$defs/maxDateProp" }, "minDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../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": "../common.schema.json#/$defs/localizable" }, "^minDate\\.[^.]+$": { "$ref": "#/$defs/minDateProp" }, "^maxDate\\.[^.]+$": { "$ref": "#/$defs/maxDateProp" }, "^minDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../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 } };
250
250
  const patternProperties$o = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
251
251
  const required$s = ["kind", "type", "path"];
252
252
  const unevaluatedProperties$s = false;
@@ -268,7 +268,7 @@ const title$r = "DatePicker Widget";
268
268
  const type$r = "object";
269
269
  const $defs$r = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "prevMonthIconProp": { "type": "string" }, "nextMonthIconProp": { "type": "string" }, "prevMonthAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "nextMonthAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "toggleAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "selectYearAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "yearGridAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "dayAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "monthAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "yearAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "dayFormatProp": { "enum": ["numeric", "2-digit"] }, "weekdayFormatProp": { "enum": ["short", "long", "narrow"] }, "monthFormatProp": { "enum": ["numeric", "2-digit", "long", "short", "narrow"] }, "minDateProp": { "type": "string" }, "maxDateProp": { "type": "string" }, "numberOfMonthsProp": { "type": "number" }, "disabledRangesProp": { "type": "array", "items": { "$ref": "../common.schema.json#/$defs/dateRange" } } };
270
270
  const allOf$r = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
271
- const properties$r = { "kind": { "const": "input" }, "type": { "const": "datePicker" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "invalidDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "minDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDateRangeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "prevMonthIcon": { "$ref": "#/$defs/prevMonthIconProp" }, "nextMonthIcon": { "$ref": "#/$defs/nextMonthIconProp" }, "prevMonthAriaLabel": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "nextMonthAriaLabel": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "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": "../common.schema.json#/$defs/localizable" }, "^minDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^disabledDateRangeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^prevMonthIcon\\.[^.]+$": { "$ref": "#/$defs/prevMonthIconProp" }, "^nextMonthIcon\\.[^.]+$": { "$ref": "#/$defs/nextMonthIconProp" }, "^prevMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "^nextMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "^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 } };
271
+ const properties$r = { "kind": { "const": "input" }, "type": { "const": "datePicker" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "invalidDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "minDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDateRangeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../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": "../common.schema.json#/$defs/localizable" }, "^minDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^disabledDateRangeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^prevMonthIcon\\.[^.]+$": { "$ref": "#/$defs/prevMonthIconProp" }, "^nextMonthIcon\\.[^.]+$": { "$ref": "#/$defs/nextMonthIconProp" }, "^prevMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "^nextMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "^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 } };
272
272
  const patternProperties$n = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
273
273
  const required$r = ["kind", "type", "path"];
274
274
  const unevaluatedProperties$r = false;
@@ -290,7 +290,7 @@ const title$q = "DateTimeInput Widget";
290
290
  const type$q = "object";
291
291
  const $defs$q = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "hourFormatProp": { "enum": ["12", "24"] }, "minuteStepProp": { "type": "number", "minimum": 1 }, "minDateProp": { "type": "string" }, "maxDateProp": { "type": "string" }, "minTimeProp": { "type": "string" }, "maxTimeProp": { "type": "string" }, "dayAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "monthAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "yearAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "hourAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "minuteAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "dayPeriodAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" } };
292
292
  const allOf$q = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
293
- const properties$q = { "kind": { "const": "input" }, "type": { "const": "dateTimeInput" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "invalidDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "hourFormat": { "$ref": "#/$defs/hourFormatProp" }, "minuteStep": { "$ref": "#/$defs/minuteStepProp" }, "minDate": { "$ref": "#/$defs/minDateProp" }, "maxDate": { "$ref": "#/$defs/maxDateProp" }, "minTime": { "$ref": "#/$defs/minTimeProp" }, "maxTime": { "$ref": "#/$defs/maxTimeProp" }, "minDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "minTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "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": "../common.schema.json#/$defs/localizable" }, "^minDate\\.[^.]+$": { "$ref": "#/$defs/minDateProp" }, "^maxDate\\.[^.]+$": { "$ref": "#/$defs/maxDateProp" }, "^minTime\\.[^.]+$": { "$ref": "#/$defs/minTimeProp" }, "^maxTime\\.[^.]+$": { "$ref": "#/$defs/maxTimeProp" }, "^minDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^minTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^hourFormat\\.[^.]+$": { "$ref": "#/$defs/hourFormatProp" }, "^minuteStep\\.[^.]+$": { "$ref": "#/$defs/minuteStepProp" }, "^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 } };
293
+ const properties$q = { "kind": { "const": "input" }, "type": { "const": "dateTimeInput" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "invalidDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "hourFormat": { "$ref": "#/$defs/hourFormatProp" }, "minuteStep": { "$ref": "#/$defs/minuteStepProp" }, "minDate": { "$ref": "#/$defs/minDateProp" }, "maxDate": { "$ref": "#/$defs/maxDateProp" }, "minTime": { "$ref": "#/$defs/minTimeProp" }, "maxTime": { "$ref": "#/$defs/maxTimeProp" }, "minDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "minTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../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": "../common.schema.json#/$defs/localizable" }, "^minDate\\.[^.]+$": { "$ref": "#/$defs/minDateProp" }, "^maxDate\\.[^.]+$": { "$ref": "#/$defs/maxDateProp" }, "^minTime\\.[^.]+$": { "$ref": "#/$defs/minTimeProp" }, "^maxTime\\.[^.]+$": { "$ref": "#/$defs/maxTimeProp" }, "^minDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^minTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../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 } };
294
294
  const patternProperties$m = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
295
295
  const required$q = ["kind", "type", "path"];
296
296
  const unevaluatedProperties$q = false;
@@ -526,7 +526,7 @@ const title$f = "RangeDateInput Widget";
526
526
  const type$f = "object";
527
527
  const $defs$f = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "separatorProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "removePillAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "startDateAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "endDateAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "dayAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "monthAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "yearAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" } };
528
528
  const allOf$f = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
529
- const properties$f = { "kind": { "const": "input" }, "type": { "const": "rangeDateInput" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "invalidDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "separator": { "$ref": "#/$defs/separatorProp" }, "removePillAriaLabel": { "$ref": "#/$defs/removePillAriaLabelProp" }, "startDateAriaLabel": { "$ref": "#/$defs/startDateAriaLabelProp" }, "endDateAriaLabel": { "$ref": "#/$defs/endDateAriaLabelProp" }, "dayAriaLabel": { "$ref": "#/$defs/dayAriaLabelProp" }, "monthAriaLabel": { "$ref": "#/$defs/monthAriaLabelProp" }, "yearAriaLabel": { "$ref": "#/$defs/yearAriaLabelProp" } }, "patternProperties": { "^invalidDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^separator\\.[^.]+$": { "$ref": "#/$defs/separatorProp" }, "^removePillAriaLabel\\.[^.]+$": { "$ref": "#/$defs/removePillAriaLabelProp" }, "^startDateAriaLabel\\.[^.]+$": { "$ref": "#/$defs/startDateAriaLabelProp" }, "^endDateAriaLabel\\.[^.]+$": { "$ref": "#/$defs/endDateAriaLabelProp" }, "^dayAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayAriaLabelProp" }, "^monthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/monthAriaLabelProp" }, "^yearAriaLabel\\.[^.]+$": { "$ref": "#/$defs/yearAriaLabelProp" } }, "additionalProperties": false } };
529
+ const properties$f = { "kind": { "const": "input" }, "type": { "const": "rangeDateInput" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "invalidDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../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": "../common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^separator\\.[^.]+$": { "$ref": "#/$defs/separatorProp" }, "^removePillAriaLabel\\.[^.]+$": { "$ref": "#/$defs/removePillAriaLabelProp" }, "^startDateAriaLabel\\.[^.]+$": { "$ref": "#/$defs/startDateAriaLabelProp" }, "^endDateAriaLabel\\.[^.]+$": { "$ref": "#/$defs/endDateAriaLabelProp" }, "^dayAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayAriaLabelProp" }, "^monthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/monthAriaLabelProp" }, "^yearAriaLabel\\.[^.]+$": { "$ref": "#/$defs/yearAriaLabelProp" } }, "additionalProperties": false } };
530
530
  const patternProperties$e = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
531
531
  const required$f = ["kind", "type", "path"];
532
532
  const unevaluatedProperties$f = false;
@@ -548,7 +548,7 @@ const title$e = "RangeDateTimeInput Widget";
548
548
  const type$e = "object";
549
549
  const $defs$e = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "separatorProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "removePillAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "startDateTimeAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "endDateTimeAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "hourFormatProp": { "enum": ["12", "24"] }, "minuteStepProp": { "type": "number", "minimum": 1 }, "minDateTimeProp": { "type": "string", "description": "ISO-8601 date-time string for the earliest selectable date-time (inclusive). Each endpoint of the value is an instant, so the bound is an instant too." }, "maxDateTimeProp": { "type": "string", "description": "ISO-8601 date-time string for the latest selectable date-time (inclusive)" }, "dayAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "monthAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "yearAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "hourAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "minuteAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "dayPeriodAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" } };
550
550
  const allOf$e = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
551
- const properties$e = { "kind": { "const": "input" }, "type": { "const": "rangeDateTimeInput" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "separator": { "$ref": "#/$defs/separatorProp" }, "removePillAriaLabel": { "$ref": "#/$defs/removePillAriaLabelProp" }, "startDateTimeAriaLabel": { "$ref": "#/$defs/startDateTimeAriaLabelProp" }, "endDateTimeAriaLabel": { "$ref": "#/$defs/endDateTimeAriaLabelProp" }, "hourFormat": { "$ref": "#/$defs/hourFormatProp" }, "minuteStep": { "$ref": "#/$defs/minuteStepProp" }, "invalidDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "minDateTime": { "$ref": "#/$defs/minDateTimeProp" }, "maxDateTime": { "$ref": "#/$defs/maxDateTimeProp" }, "minDateTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxDateTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "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": "../common.schema.json#/$defs/localizable" }, "^minDateTime\\.[^.]+$": { "$ref": "#/$defs/minDateTimeProp" }, "^maxDateTime\\.[^.]+$": { "$ref": "#/$defs/maxDateTimeProp" }, "^minDateTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxDateTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^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 } };
551
+ const properties$e = { "kind": { "const": "input" }, "type": { "const": "rangeDateTimeInput" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "separator": { "$ref": "#/$defs/separatorProp" }, "removePillAriaLabel": { "$ref": "#/$defs/removePillAriaLabelProp" }, "startDateTimeAriaLabel": { "$ref": "#/$defs/startDateTimeAriaLabelProp" }, "endDateTimeAriaLabel": { "$ref": "#/$defs/endDateTimeAriaLabelProp" }, "hourFormat": { "$ref": "#/$defs/hourFormatProp" }, "minuteStep": { "$ref": "#/$defs/minuteStepProp" }, "invalidDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "minDateTime": { "$ref": "#/$defs/minDateTimeProp" }, "maxDateTime": { "$ref": "#/$defs/maxDateTimeProp" }, "minDateTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxDateTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../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": "../common.schema.json#/$defs/localizable" }, "^minDateTime\\.[^.]+$": { "$ref": "#/$defs/minDateTimeProp" }, "^maxDateTime\\.[^.]+$": { "$ref": "#/$defs/maxDateTimeProp" }, "^minDateTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxDateTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../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 } };
552
552
  const patternProperties$d = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
553
553
  const required$e = ["kind", "type", "path"];
554
554
  const unevaluatedProperties$e = false;
@@ -570,7 +570,7 @@ const title$d = "RangeDateTimeCalendar Widget";
570
570
  const type$d = "object";
571
571
  const $defs$d = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "prevMonthIconProp": { "type": "string" }, "nextMonthIconProp": { "type": "string" }, "prevMonthAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "nextMonthAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "selectYearAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "yearGridAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "removePillAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "dayFormatProp": { "description": "Formatting of day numbers in the calendar grid (`numeric` = 1–31, `2-digit` = 01–31)", "enum": ["numeric", "2-digit"] }, "weekdayFormatProp": { "description": "Formatting of weekday column headers (`short` = Mon, `long` = Monday, `narrow` = M)", "enum": ["short", "long", "narrow"] }, "monthFormatProp": { "description": "Formatting of the month heading (`long` = January, `short` = Jan, `narrow` = J, `numeric` = 1, `2-digit` = 01)", "enum": ["numeric", "2-digit", "long", "short", "narrow"] }, "numberOfMonthsProp": { "type": "number", "description": "Number of month panels to display side by side. Defaults to 1. The time row renders on the first panel only." }, "hourFormatProp": { "enum": ["12", "24"] }, "minuteStepProp": { "type": "number", "minimum": 1 }, "allowCustomTimeProp": { "type": "boolean" }, "minDateTimeProp": { "type": "string", "description": "ISO-8601 date-time string for the earliest selectable instant (inclusive). Endpoints are instants, so the bound is an instant too." }, "maxDateTimeProp": { "type": "string", "description": "ISO-8601 date-time string for the latest selectable instant (inclusive)" }, "disabledRangesProp": { "type": "array", "description": "Disabled instant spans (in this widget's DateTimeRange coordinate system). Blocking a whole day is a span of 00:00:00–23:59:59.", "items": { "$ref": "../common.schema.json#/$defs/dateTimeRange" } } };
572
572
  const allOf$d = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
573
- const properties$d = { "kind": { "const": "input" }, "type": { "const": "rangeDateTimeCalendar" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "hint": { "$ref": "#/$defs/hintProp" }, "prevMonthIcon": { "$ref": "#/$defs/prevMonthIconProp" }, "nextMonthIcon": { "$ref": "#/$defs/nextMonthIconProp" }, "prevMonthAriaLabel": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "nextMonthAriaLabel": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "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": "../common.schema.json#/$defs/localizable" }, "endTimeLabel": { "$ref": "../common.schema.json#/$defs/localizable" }, "minDateTime": { "$ref": "#/$defs/minDateTimeProp" }, "maxDateTime": { "$ref": "#/$defs/maxDateTimeProp" }, "minDateTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxDateTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledRanges": { "$ref": "#/$defs/disabledRangesProp" }, "disabledRangeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "noAvailableTimesMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "dayCountAriaLabel": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDayCountAriaLabel": { "$ref": "../common.schema.json#/$defs/localizable" } }, "patternProperties": { "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^prevMonthIcon\\.[^.]+$": { "$ref": "#/$defs/prevMonthIconProp" }, "^nextMonthIcon\\.[^.]+$": { "$ref": "#/$defs/nextMonthIconProp" }, "^prevMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "^nextMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "^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": "../common.schema.json#/$defs/localizable" }, "^endTimeLabel\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^minDateTime\\.[^.]+$": { "$ref": "#/$defs/minDateTimeProp" }, "^maxDateTime\\.[^.]+$": { "$ref": "#/$defs/maxDateTimeProp" }, "^minDateTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxDateTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^disabledRanges\\.[^.]+$": { "$ref": "#/$defs/disabledRangesProp" }, "^disabledRangeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^noAvailableTimesMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^dayCountAriaLabel\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^disabledDayCountAriaLabel\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" } }, "additionalProperties": false } };
573
+ const properties$d = { "kind": { "const": "input" }, "type": { "const": "rangeDateTimeCalendar" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "hint": { "$ref": "#/$defs/hintProp" }, "prevMonthIcon": { "$ref": "#/$defs/prevMonthIconProp" }, "nextMonthIcon": { "$ref": "#/$defs/nextMonthIconProp" }, "prevMonthAriaLabel": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "nextMonthAriaLabel": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "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": "../common.schema.json#/$defs/localizable" }, "endTimeLabel": { "$ref": "../common.schema.json#/$defs/localizable" }, "minDateTime": { "$ref": "#/$defs/minDateTimeProp" }, "maxDateTime": { "$ref": "#/$defs/maxDateTimeProp" }, "minDateTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxDateTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledRanges": { "$ref": "#/$defs/disabledRangesProp" }, "disabledRangeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "noAvailableTimesMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../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": "../common.schema.json#/$defs/localizable" }, "disabledDayCountAriaLabel": { "$ref": "../common.schema.json#/$defs/localizable" } }, "patternProperties": { "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^prevMonthIcon\\.[^.]+$": { "$ref": "#/$defs/prevMonthIconProp" }, "^nextMonthIcon\\.[^.]+$": { "$ref": "#/$defs/nextMonthIconProp" }, "^prevMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "^nextMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "^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": "../common.schema.json#/$defs/localizable" }, "^endTimeLabel\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^minDateTime\\.[^.]+$": { "$ref": "#/$defs/minDateTimeProp" }, "^maxDateTime\\.[^.]+$": { "$ref": "#/$defs/maxDateTimeProp" }, "^minDateTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxDateTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^disabledRanges\\.[^.]+$": { "$ref": "#/$defs/disabledRangesProp" }, "^disabledRangeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^noAvailableTimesMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^dayCountAriaLabel\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^disabledDayCountAriaLabel\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" } }, "additionalProperties": false } };
574
574
  const patternProperties$c = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
575
575
  const required$d = ["kind", "type", "path"];
576
576
  const unevaluatedProperties$d = false;
@@ -592,7 +592,7 @@ const title$c = "RangeDateTimePicker Widget";
592
592
  const type$c = "object";
593
593
  const $defs$c = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "separatorProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "removePillAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "startDateTimeAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "endDateTimeAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "invalidDateMessageProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "prevMonthIconProp": { "type": "string" }, "nextMonthIconProp": { "type": "string" }, "prevMonthAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "nextMonthAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "toggleAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "selectYearAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "yearGridAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "dayAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "monthAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "yearAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "hourAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "minuteAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "dayPeriodAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "dayFormatProp": { "description": "Formatting of day numbers in the calendar grid (`numeric` = 1–31, `2-digit` = 01–31)", "enum": ["numeric", "2-digit"] }, "weekdayFormatProp": { "description": "Formatting of weekday column headers (`short` = Mon, `long` = Monday, `narrow` = M)", "enum": ["short", "long", "narrow"] }, "monthFormatProp": { "description": "Formatting of the month heading (`long` = January, `short` = Jan, `narrow` = J, `numeric` = 1, `2-digit` = 01)", "enum": ["numeric", "2-digit", "long", "short", "narrow"] }, "numberOfMonthsProp": { "type": "number", "description": "Number of month panels to display side by side. Defaults to 1. The time row renders on the first panel only." }, "hourFormatProp": { "enum": ["12", "24"] }, "minuteStepProp": { "type": "number", "minimum": 1 }, "allowCustomTimeProp": { "type": "boolean" }, "minDateTimeProp": { "type": "string", "description": "ISO-8601 date-time string for the earliest selectable instant (inclusive). Endpoints are instants, so the bound is an instant too." }, "maxDateTimeProp": { "type": "string", "description": "ISO-8601 date-time string for the latest selectable instant (inclusive)" }, "disabledRangesProp": { "type": "array", "description": "Disabled instant spans (in this widget's DateTimeRange coordinate system). Blocking a whole day is a span of 00:00:00–23:59:59.", "items": { "$ref": "../common.schema.json#/$defs/dateTimeRange" } } };
594
594
  const allOf$c = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
595
- const properties$c = { "kind": { "const": "input" }, "type": { "const": "rangeDateTimePicker" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "separator": { "$ref": "#/$defs/separatorProp" }, "removePillAriaLabel": { "$ref": "#/$defs/removePillAriaLabelProp" }, "startDateTimeAriaLabel": { "$ref": "#/$defs/startDateTimeAriaLabelProp" }, "endDateTimeAriaLabel": { "$ref": "#/$defs/endDateTimeAriaLabelProp" }, "invalidDateMessage": { "$ref": "#/$defs/invalidDateMessageProp" }, "prevMonthIcon": { "$ref": "#/$defs/prevMonthIconProp" }, "nextMonthIcon": { "$ref": "#/$defs/nextMonthIconProp" }, "prevMonthAriaLabel": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "nextMonthAriaLabel": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "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": "../common.schema.json#/$defs/localizable" }, "endTimeLabel": { "$ref": "../common.schema.json#/$defs/localizable" }, "minDateTime": { "$ref": "#/$defs/minDateTimeProp" }, "maxDateTime": { "$ref": "#/$defs/maxDateTimeProp" }, "minDateTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxDateTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledRanges": { "$ref": "#/$defs/disabledRangesProp" }, "disabledRangeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "noAvailableTimesMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "dayCountAriaLabel": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDayCountAriaLabel": { "$ref": "../common.schema.json#/$defs/localizable" } }, "patternProperties": { "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^separator\\.[^.]+$": { "$ref": "#/$defs/separatorProp" }, "^removePillAriaLabel\\.[^.]+$": { "$ref": "#/$defs/removePillAriaLabelProp" }, "^startDateTimeAriaLabel\\.[^.]+$": { "$ref": "#/$defs/startDateTimeAriaLabelProp" }, "^endDateTimeAriaLabel\\.[^.]+$": { "$ref": "#/$defs/endDateTimeAriaLabelProp" }, "^invalidDateMessage\\.[^.]+$": { "$ref": "#/$defs/invalidDateMessageProp" }, "^prevMonthIcon\\.[^.]+$": { "$ref": "#/$defs/prevMonthIconProp" }, "^nextMonthIcon\\.[^.]+$": { "$ref": "#/$defs/nextMonthIconProp" }, "^prevMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "^nextMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "^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": "../common.schema.json#/$defs/localizable" }, "^endTimeLabel\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^minDateTime\\.[^.]+$": { "$ref": "#/$defs/minDateTimeProp" }, "^maxDateTime\\.[^.]+$": { "$ref": "#/$defs/maxDateTimeProp" }, "^minDateTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxDateTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^disabledRanges\\.[^.]+$": { "$ref": "#/$defs/disabledRangesProp" }, "^disabledRangeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^noAvailableTimesMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^dayCountAriaLabel\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^disabledDayCountAriaLabel\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" } }, "additionalProperties": false } };
595
+ const properties$c = { "kind": { "const": "input" }, "type": { "const": "rangeDateTimePicker" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "separator": { "$ref": "#/$defs/separatorProp" }, "removePillAriaLabel": { "$ref": "#/$defs/removePillAriaLabelProp" }, "startDateTimeAriaLabel": { "$ref": "#/$defs/startDateTimeAriaLabelProp" }, "endDateTimeAriaLabel": { "$ref": "#/$defs/endDateTimeAriaLabelProp" }, "invalidDateMessage": { "$ref": "#/$defs/invalidDateMessageProp" }, "prevMonthIcon": { "$ref": "#/$defs/prevMonthIconProp" }, "nextMonthIcon": { "$ref": "#/$defs/nextMonthIconProp" }, "prevMonthAriaLabel": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "nextMonthAriaLabel": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "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": "../common.schema.json#/$defs/localizable" }, "endTimeLabel": { "$ref": "../common.schema.json#/$defs/localizable" }, "minDateTime": { "$ref": "#/$defs/minDateTimeProp" }, "maxDateTime": { "$ref": "#/$defs/maxDateTimeProp" }, "minDateTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxDateTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledRanges": { "$ref": "#/$defs/disabledRangesProp" }, "disabledRangeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "noAvailableTimesMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../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": "../common.schema.json#/$defs/localizable" }, "disabledDayCountAriaLabel": { "$ref": "../common.schema.json#/$defs/localizable" } }, "patternProperties": { "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^separator\\.[^.]+$": { "$ref": "#/$defs/separatorProp" }, "^removePillAriaLabel\\.[^.]+$": { "$ref": "#/$defs/removePillAriaLabelProp" }, "^startDateTimeAriaLabel\\.[^.]+$": { "$ref": "#/$defs/startDateTimeAriaLabelProp" }, "^endDateTimeAriaLabel\\.[^.]+$": { "$ref": "#/$defs/endDateTimeAriaLabelProp" }, "^invalidDateMessage\\.[^.]+$": { "$ref": "#/$defs/invalidDateMessageProp" }, "^prevMonthIcon\\.[^.]+$": { "$ref": "#/$defs/prevMonthIconProp" }, "^nextMonthIcon\\.[^.]+$": { "$ref": "#/$defs/nextMonthIconProp" }, "^prevMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "^nextMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "^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": "../common.schema.json#/$defs/localizable" }, "^endTimeLabel\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^minDateTime\\.[^.]+$": { "$ref": "#/$defs/minDateTimeProp" }, "^maxDateTime\\.[^.]+$": { "$ref": "#/$defs/maxDateTimeProp" }, "^minDateTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxDateTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^disabledRanges\\.[^.]+$": { "$ref": "#/$defs/disabledRangesProp" }, "^disabledRangeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^noAvailableTimesMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^dayCountAriaLabel\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^disabledDayCountAriaLabel\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" } }, "additionalProperties": false } };
596
596
  const patternProperties$b = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
597
597
  const required$c = ["kind", "type", "path"];
598
598
  const unevaluatedProperties$c = false;
@@ -614,7 +614,7 @@ const title$b = "RangeTimeInput Widget";
614
614
  const type$b = "object";
615
615
  const $defs$b = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "separatorProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "removePillAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "startTimeAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "endTimeAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "hourFormatProp": { "enum": ["12", "24"] }, "minuteStepProp": { "type": "number", "minimum": 1 }, "isoTimeProp": { "type": "string", "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?$" }, "hourAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "minuteAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "dayPeriodAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" } };
616
616
  const allOf$b = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
617
- const properties$b = { "kind": { "const": "input" }, "type": { "const": "rangeTimeInput" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "separator": { "$ref": "#/$defs/separatorProp" }, "removePillAriaLabel": { "$ref": "#/$defs/removePillAriaLabelProp" }, "startTimeAriaLabel": { "$ref": "#/$defs/startTimeAriaLabelProp" }, "endTimeAriaLabel": { "$ref": "#/$defs/endTimeAriaLabelProp" }, "hourFormat": { "$ref": "#/$defs/hourFormatProp" }, "minuteStep": { "$ref": "#/$defs/minuteStepProp" }, "minTime": { "$ref": "#/$defs/isoTimeProp" }, "maxTime": { "$ref": "#/$defs/isoTimeProp" }, "minTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "rangeOrderMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "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": "../common.schema.json#/$defs/localizable" }, "^maxTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^rangeOrderMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^hourAriaLabel\\.[^.]+$": { "$ref": "#/$defs/hourAriaLabelProp" }, "^minuteAriaLabel\\.[^.]+$": { "$ref": "#/$defs/minuteAriaLabelProp" }, "^dayPeriodAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayPeriodAriaLabelProp" } }, "additionalProperties": false } };
617
+ const properties$b = { "kind": { "const": "input" }, "type": { "const": "rangeTimeInput" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "separator": { "$ref": "#/$defs/separatorProp" }, "removePillAriaLabel": { "$ref": "#/$defs/removePillAriaLabelProp" }, "startTimeAriaLabel": { "$ref": "#/$defs/startTimeAriaLabelProp" }, "endTimeAriaLabel": { "$ref": "#/$defs/endTimeAriaLabelProp" }, "hourFormat": { "$ref": "#/$defs/hourFormatProp" }, "minuteStep": { "$ref": "#/$defs/minuteStepProp" }, "minTime": { "$ref": "#/$defs/isoTimeProp" }, "maxTime": { "$ref": "#/$defs/isoTimeProp" }, "minTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "rangeOrderMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../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": "../common.schema.json#/$defs/localizable" }, "^maxTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^rangeOrderMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^hourAriaLabel\\.[^.]+$": { "$ref": "#/$defs/hourAriaLabelProp" }, "^minuteAriaLabel\\.[^.]+$": { "$ref": "#/$defs/minuteAriaLabelProp" }, "^dayPeriodAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayPeriodAriaLabelProp" } }, "additionalProperties": false } };
618
618
  const patternProperties$a = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
619
619
  const required$b = ["kind", "type", "path"];
620
620
  const unevaluatedProperties$b = false;
@@ -636,7 +636,7 @@ const title$a = "RangeDatePicker Widget";
636
636
  const type$a = "object";
637
637
  const $defs$a = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "separatorProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "removePillAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "startDateAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "endDateAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "prevMonthIconProp": { "type": "string" }, "nextMonthIconProp": { "type": "string" }, "prevMonthAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "nextMonthAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "toggleAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "selectYearAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "yearGridAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "dayAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "monthAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "yearAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "dayFormatProp": { "enum": ["numeric", "2-digit"] }, "weekdayFormatProp": { "enum": ["short", "long", "narrow"] }, "monthFormatProp": { "enum": ["numeric", "2-digit", "long", "short", "narrow"] }, "minDateProp": { "type": "string" }, "maxDateProp": { "type": "string" }, "numberOfMonthsProp": { "type": "number" }, "disabledRangesProp": { "type": "array", "items": { "$ref": "../common.schema.json#/$defs/dateRange" } } };
638
638
  const allOf$a = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
639
- const properties$a = { "kind": { "const": "input" }, "type": { "const": "rangeDatePicker" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "invalidDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "minDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDateRangeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "separator": { "$ref": "#/$defs/separatorProp" }, "removePillAriaLabel": { "$ref": "#/$defs/removePillAriaLabelProp" }, "startDateAriaLabel": { "$ref": "#/$defs/startDateAriaLabelProp" }, "endDateAriaLabel": { "$ref": "#/$defs/endDateAriaLabelProp" }, "prevMonthIcon": { "$ref": "#/$defs/prevMonthIconProp" }, "nextMonthIcon": { "$ref": "#/$defs/nextMonthIconProp" }, "prevMonthAriaLabel": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "nextMonthAriaLabel": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "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": "../common.schema.json#/$defs/localizable" }, "^minDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^disabledDateRangeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^separator\\.[^.]+$": { "$ref": "#/$defs/separatorProp" }, "^removePillAriaLabel\\.[^.]+$": { "$ref": "#/$defs/removePillAriaLabelProp" }, "^startDateAriaLabel\\.[^.]+$": { "$ref": "#/$defs/startDateAriaLabelProp" }, "^endDateAriaLabel\\.[^.]+$": { "$ref": "#/$defs/endDateAriaLabelProp" }, "^prevMonthIcon\\.[^.]+$": { "$ref": "#/$defs/prevMonthIconProp" }, "^nextMonthIcon\\.[^.]+$": { "$ref": "#/$defs/nextMonthIconProp" }, "^prevMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "^nextMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "^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 } };
639
+ const properties$a = { "kind": { "const": "input" }, "type": { "const": "rangeDatePicker" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "invalidDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "minDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxDateMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDateRangeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../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": "../common.schema.json#/$defs/localizable" }, "^minDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxDateMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^disabledDateRangeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^separator\\.[^.]+$": { "$ref": "#/$defs/separatorProp" }, "^removePillAriaLabel\\.[^.]+$": { "$ref": "#/$defs/removePillAriaLabelProp" }, "^startDateAriaLabel\\.[^.]+$": { "$ref": "#/$defs/startDateAriaLabelProp" }, "^endDateAriaLabel\\.[^.]+$": { "$ref": "#/$defs/endDateAriaLabelProp" }, "^prevMonthIcon\\.[^.]+$": { "$ref": "#/$defs/prevMonthIconProp" }, "^nextMonthIcon\\.[^.]+$": { "$ref": "#/$defs/nextMonthIconProp" }, "^prevMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/prevMonthAriaLabelProp" }, "^nextMonthAriaLabel\\.[^.]+$": { "$ref": "#/$defs/nextMonthAriaLabelProp" }, "^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 } };
640
640
  const patternProperties$9 = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
641
641
  const required$a = ["kind", "type", "path"];
642
642
  const unevaluatedProperties$a = false;
@@ -658,7 +658,7 @@ const title$9 = "RangeTimePicker Widget";
658
658
  const type$9 = "object";
659
659
  const $defs$9 = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "separatorProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "removePillAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "startTimeAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "endTimeAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "hourFormatProp": { "enum": ["12", "24"] }, "minuteStepProp": { "type": "number", "minimum": 1 }, "isoTimeProp": { "type": "string", "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?$" }, "disabledRangesProp": { "type": "array", "items": { "type": "object", "properties": { "start": { "$ref": "#/$defs/isoTimeProp" }, "end": { "$ref": "#/$defs/isoTimeProp" } }, "required": ["start", "end"], "additionalProperties": false } }, "allowCustomTimeProp": { "type": "boolean" }, "sizeProp": { "type": "number" }, "toggleAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "hourAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "minuteAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "dayPeriodAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" } };
660
660
  const allOf$9 = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
661
- const properties$9 = { "kind": { "const": "input" }, "type": { "const": "rangeTimePicker" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "separator": { "$ref": "#/$defs/separatorProp" }, "removePillAriaLabel": { "$ref": "#/$defs/removePillAriaLabelProp" }, "startTimeAriaLabel": { "$ref": "#/$defs/startTimeAriaLabelProp" }, "endTimeAriaLabel": { "$ref": "#/$defs/endTimeAriaLabelProp" }, "startTimeLabel": { "$ref": "../common.schema.json#/$defs/localizable" }, "endTimeLabel": { "$ref": "../common.schema.json#/$defs/localizable" }, "hourFormat": { "$ref": "#/$defs/hourFormatProp" }, "minuteStep": { "$ref": "#/$defs/minuteStepProp" }, "minTime": { "$ref": "#/$defs/isoTimeProp" }, "maxTime": { "$ref": "#/$defs/isoTimeProp" }, "minTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "rangeOrderMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledRanges": { "$ref": "#/$defs/disabledRangesProp" }, "allowCustomTime": { "$ref": "#/$defs/allowCustomTimeProp" }, "height": { "$ref": "#/$defs/sizeProp" }, "itemHeight": { "$ref": "#/$defs/sizeProp" }, "disabledRangeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "noAvailableTimesMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "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": "../common.schema.json#/$defs/localizable" }, "^endTimeLabel\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^hourFormat\\.[^.]+$": { "$ref": "#/$defs/hourFormatProp" }, "^minuteStep\\.[^.]+$": { "$ref": "#/$defs/minuteStepProp" }, "^minTime\\.[^.]+$": { "$ref": "#/$defs/isoTimeProp" }, "^maxTime\\.[^.]+$": { "$ref": "#/$defs/isoTimeProp" }, "^minTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^rangeOrderMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^disabledRanges\\.[^.]+$": { "$ref": "#/$defs/disabledRangesProp" }, "^allowCustomTime\\.[^.]+$": { "$ref": "#/$defs/allowCustomTimeProp" }, "^height\\.[^.]+$": { "$ref": "#/$defs/sizeProp" }, "^itemHeight\\.[^.]+$": { "$ref": "#/$defs/sizeProp" }, "^disabledRangeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^noAvailableTimesMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^toggleAriaLabel\\.[^.]+$": { "$ref": "#/$defs/toggleAriaLabelProp" }, "^hourAriaLabel\\.[^.]+$": { "$ref": "#/$defs/hourAriaLabelProp" }, "^minuteAriaLabel\\.[^.]+$": { "$ref": "#/$defs/minuteAriaLabelProp" }, "^dayPeriodAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayPeriodAriaLabelProp" } }, "additionalProperties": false } };
661
+ const properties$9 = { "kind": { "const": "input" }, "type": { "const": "rangeTimePicker" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "separator": { "$ref": "#/$defs/separatorProp" }, "removePillAriaLabel": { "$ref": "#/$defs/removePillAriaLabelProp" }, "startTimeAriaLabel": { "$ref": "#/$defs/startTimeAriaLabelProp" }, "endTimeAriaLabel": { "$ref": "#/$defs/endTimeAriaLabelProp" }, "startTimeLabel": { "$ref": "../common.schema.json#/$defs/localizable" }, "endTimeLabel": { "$ref": "../common.schema.json#/$defs/localizable" }, "hourFormat": { "$ref": "#/$defs/hourFormatProp" }, "minuteStep": { "$ref": "#/$defs/minuteStepProp" }, "minTime": { "$ref": "#/$defs/isoTimeProp" }, "maxTime": { "$ref": "#/$defs/isoTimeProp" }, "minTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "rangeOrderMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledRanges": { "$ref": "#/$defs/disabledRangesProp" }, "allowCustomTime": { "$ref": "#/$defs/allowCustomTimeProp" }, "height": { "$ref": "#/$defs/sizeProp" }, "itemHeight": { "$ref": "#/$defs/sizeProp" }, "disabledRangeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "noAvailableTimesMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../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": "../common.schema.json#/$defs/localizable" }, "^endTimeLabel\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^hourFormat\\.[^.]+$": { "$ref": "#/$defs/hourFormatProp" }, "^minuteStep\\.[^.]+$": { "$ref": "#/$defs/minuteStepProp" }, "^minTime\\.[^.]+$": { "$ref": "#/$defs/isoTimeProp" }, "^maxTime\\.[^.]+$": { "$ref": "#/$defs/isoTimeProp" }, "^minTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^rangeOrderMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^disabledRanges\\.[^.]+$": { "$ref": "#/$defs/disabledRangesProp" }, "^allowCustomTime\\.[^.]+$": { "$ref": "#/$defs/allowCustomTimeProp" }, "^height\\.[^.]+$": { "$ref": "#/$defs/sizeProp" }, "^itemHeight\\.[^.]+$": { "$ref": "#/$defs/sizeProp" }, "^disabledRangeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^noAvailableTimesMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^toggleAriaLabel\\.[^.]+$": { "$ref": "#/$defs/toggleAriaLabelProp" }, "^hourAriaLabel\\.[^.]+$": { "$ref": "#/$defs/hourAriaLabelProp" }, "^minuteAriaLabel\\.[^.]+$": { "$ref": "#/$defs/minuteAriaLabelProp" }, "^dayPeriodAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayPeriodAriaLabelProp" } }, "additionalProperties": false } };
662
662
  const patternProperties$8 = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
663
663
  const required$9 = ["kind", "type", "path"];
664
664
  const unevaluatedProperties$9 = false;
@@ -810,7 +810,7 @@ const title$2 = "TimeInput Widget";
810
810
  const type$2 = "object";
811
811
  const $defs$2 = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "hourFormatProp": { "enum": ["12", "24"] }, "minuteStepProp": { "type": "number", "minimum": 1 }, "minTimeProp": { "type": "string" }, "maxTimeProp": { "type": "string" }, "hourAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "minuteAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "dayPeriodAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" } };
812
812
  const allOf$2 = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
813
- const properties$2 = { "kind": { "const": "input" }, "type": { "const": "timeInput" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "hourFormat": { "$ref": "#/$defs/hourFormatProp" }, "minuteStep": { "$ref": "#/$defs/minuteStepProp" }, "minTime": { "$ref": "#/$defs/minTimeProp" }, "maxTime": { "$ref": "#/$defs/maxTimeProp" }, "minTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "hourAriaLabel": { "$ref": "#/$defs/hourAriaLabelProp" }, "minuteAriaLabel": { "$ref": "#/$defs/minuteAriaLabelProp" }, "dayPeriodAriaLabel": { "$ref": "#/$defs/dayPeriodAriaLabelProp" } }, "patternProperties": { "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^hourFormat\\.[^.]+$": { "$ref": "#/$defs/hourFormatProp" }, "^minuteStep\\.[^.]+$": { "$ref": "#/$defs/minuteStepProp" }, "^minTime\\.[^.]+$": { "$ref": "#/$defs/minTimeProp" }, "^maxTime\\.[^.]+$": { "$ref": "#/$defs/maxTimeProp" }, "^minTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^hourAriaLabel\\.[^.]+$": { "$ref": "#/$defs/hourAriaLabelProp" }, "^minuteAriaLabel\\.[^.]+$": { "$ref": "#/$defs/minuteAriaLabelProp" }, "^dayPeriodAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayPeriodAriaLabelProp" } }, "additionalProperties": false } };
813
+ const properties$2 = { "kind": { "const": "input" }, "type": { "const": "timeInput" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "hourFormat": { "$ref": "#/$defs/hourFormatProp" }, "minuteStep": { "$ref": "#/$defs/minuteStepProp" }, "minTime": { "$ref": "#/$defs/minTimeProp" }, "maxTime": { "$ref": "#/$defs/maxTimeProp" }, "minTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../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" }, "^hourFormat\\.[^.]+$": { "$ref": "#/$defs/hourFormatProp" }, "^minuteStep\\.[^.]+$": { "$ref": "#/$defs/minuteStepProp" }, "^minTime\\.[^.]+$": { "$ref": "#/$defs/minTimeProp" }, "^maxTime\\.[^.]+$": { "$ref": "#/$defs/maxTimeProp" }, "^minTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^hourAriaLabel\\.[^.]+$": { "$ref": "#/$defs/hourAriaLabelProp" }, "^minuteAriaLabel\\.[^.]+$": { "$ref": "#/$defs/minuteAriaLabelProp" }, "^dayPeriodAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayPeriodAriaLabelProp" } }, "additionalProperties": false } };
814
814
  const patternProperties$2 = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
815
815
  const required$2 = ["kind", "type", "path"];
816
816
  const unevaluatedProperties$2 = false;
@@ -832,7 +832,7 @@ const title$1 = "TimePicker Widget";
832
832
  const type$1 = "object";
833
833
  const $defs$1 = { "labelDef": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "readonlyDef": { "$ref": "../common.schema.json#/$defs/boolOrWhen" }, "hintProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "iconProp": { "type": "string" }, "hourFormatProp": { "enum": ["12", "24"] }, "minuteStepProp": { "type": "number", "minimum": 1 }, "isoTimeProp": { "type": "string", "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?$" }, "disabledRangesProp": { "type": "array", "items": { "type": "object", "properties": { "start": { "$ref": "#/$defs/isoTimeProp" }, "end": { "$ref": "#/$defs/isoTimeProp" } }, "required": ["start", "end"], "additionalProperties": false } }, "allowCustomTimeProp": { "type": "boolean" }, "sizeProp": { "type": "number" }, "toggleAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "hourAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "minuteAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" }, "dayPeriodAriaLabelProp": { "$ref": "../common.schema.json#/$defs/localizable" } };
834
834
  const allOf$1 = [{ "$ref": "../common.schema.json#/$defs/baseWidget" }];
835
- const properties$1 = { "kind": { "const": "input" }, "type": { "const": "timePicker" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "minTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledRangeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "noAvailableTimesMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "hint": { "$ref": "#/$defs/hintProp" }, "icon": { "$ref": "#/$defs/iconProp" }, "hourFormat": { "$ref": "#/$defs/hourFormatProp" }, "minuteStep": { "$ref": "#/$defs/minuteStepProp" }, "minTime": { "$ref": "#/$defs/isoTimeProp" }, "maxTime": { "$ref": "#/$defs/isoTimeProp" }, "disabledRanges": { "$ref": "#/$defs/disabledRangesProp" }, "allowCustomTime": { "$ref": "#/$defs/allowCustomTimeProp" }, "height": { "$ref": "#/$defs/sizeProp" }, "itemHeight": { "$ref": "#/$defs/sizeProp" }, "toggleAriaLabel": { "$ref": "#/$defs/toggleAriaLabelProp" }, "hourAriaLabel": { "$ref": "#/$defs/hourAriaLabelProp" }, "minuteAriaLabel": { "$ref": "#/$defs/minuteAriaLabelProp" }, "dayPeriodAriaLabel": { "$ref": "#/$defs/dayPeriodAriaLabelProp" } }, "patternProperties": { "^minTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^disabledRangeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^noAvailableTimesMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^hourFormat\\.[^.]+$": { "$ref": "#/$defs/hourFormatProp" }, "^minuteStep\\.[^.]+$": { "$ref": "#/$defs/minuteStepProp" }, "^minTime\\.[^.]+$": { "$ref": "#/$defs/isoTimeProp" }, "^maxTime\\.[^.]+$": { "$ref": "#/$defs/isoTimeProp" }, "^disabledRanges\\.[^.]+$": { "$ref": "#/$defs/disabledRangesProp" }, "^allowCustomTime\\.[^.]+$": { "$ref": "#/$defs/allowCustomTimeProp" }, "^height\\.[^.]+$": { "$ref": "#/$defs/sizeProp" }, "^itemHeight\\.[^.]+$": { "$ref": "#/$defs/sizeProp" }, "^toggleAriaLabel\\.[^.]+$": { "$ref": "#/$defs/toggleAriaLabelProp" }, "^hourAriaLabel\\.[^.]+$": { "$ref": "#/$defs/hourAriaLabelProp" }, "^minuteAriaLabel\\.[^.]+$": { "$ref": "#/$defs/minuteAriaLabelProp" }, "^dayPeriodAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayPeriodAriaLabelProp" } }, "additionalProperties": false } };
835
+ const properties$1 = { "kind": { "const": "input" }, "type": { "const": "timePicker" }, "path": { "$ref": "../common.schema.json#/$defs/dotPath" }, "label": { "$ref": "#/$defs/labelDef" }, "disabled": { "$ref": "#/$defs/disabledDef" }, "readonly": { "$ref": "#/$defs/readonlyDef" }, "on": { "$ref": "../common.schema.json#/$defs/on" }, "validator": { "$ref": "../validators.schema.json#/$defs/validator" }, "props": { "type": "object", "properties": { "minTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "maxTimeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "disabledRangeMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "noAvailableTimesMessage": { "$ref": "../common.schema.json#/$defs/localizable" }, "incompleteMessage": { "$ref": "../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" }, "hourFormat": { "$ref": "#/$defs/hourFormatProp" }, "minuteStep": { "$ref": "#/$defs/minuteStepProp" }, "minTime": { "$ref": "#/$defs/isoTimeProp" }, "maxTime": { "$ref": "#/$defs/isoTimeProp" }, "disabledRanges": { "$ref": "#/$defs/disabledRangesProp" }, "allowCustomTime": { "$ref": "#/$defs/allowCustomTimeProp" }, "height": { "$ref": "#/$defs/sizeProp" }, "itemHeight": { "$ref": "#/$defs/sizeProp" }, "toggleAriaLabel": { "$ref": "#/$defs/toggleAriaLabelProp" }, "hourAriaLabel": { "$ref": "#/$defs/hourAriaLabelProp" }, "minuteAriaLabel": { "$ref": "#/$defs/minuteAriaLabelProp" }, "dayPeriodAriaLabel": { "$ref": "#/$defs/dayPeriodAriaLabelProp" } }, "patternProperties": { "^minTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^maxTimeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^disabledRangeMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^noAvailableTimesMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^incompleteMessage\\.[^.]+$": { "$ref": "../common.schema.json#/$defs/localizable" }, "^hint\\.[^.]+$": { "$ref": "#/$defs/hintProp" }, "^icon\\.[^.]+$": { "$ref": "#/$defs/iconProp" }, "^hourFormat\\.[^.]+$": { "$ref": "#/$defs/hourFormatProp" }, "^minuteStep\\.[^.]+$": { "$ref": "#/$defs/minuteStepProp" }, "^minTime\\.[^.]+$": { "$ref": "#/$defs/isoTimeProp" }, "^maxTime\\.[^.]+$": { "$ref": "#/$defs/isoTimeProp" }, "^disabledRanges\\.[^.]+$": { "$ref": "#/$defs/disabledRangesProp" }, "^allowCustomTime\\.[^.]+$": { "$ref": "#/$defs/allowCustomTimeProp" }, "^height\\.[^.]+$": { "$ref": "#/$defs/sizeProp" }, "^itemHeight\\.[^.]+$": { "$ref": "#/$defs/sizeProp" }, "^toggleAriaLabel\\.[^.]+$": { "$ref": "#/$defs/toggleAriaLabelProp" }, "^hourAriaLabel\\.[^.]+$": { "$ref": "#/$defs/hourAriaLabelProp" }, "^minuteAriaLabel\\.[^.]+$": { "$ref": "#/$defs/minuteAriaLabelProp" }, "^dayPeriodAriaLabel\\.[^.]+$": { "$ref": "#/$defs/dayPeriodAriaLabelProp" } }, "additionalProperties": false } };
836
836
  const patternProperties$1 = { "^label\\.[^.]+$": { "$ref": "#/$defs/labelDef" }, "^disabled\\.[^.]+$": { "$ref": "#/$defs/disabledDef" }, "^readonly\\.[^.]+$": { "$ref": "#/$defs/readonlyDef" }, "^validator\\.[^.]+$": { "$ref": "../validators.schema.json#/$defs/validator" } };
837
837
  const required$1 = ["kind", "type", "path"];
838
838
  const unevaluatedProperties$1 = false;
@@ -1330,7 +1330,7 @@ function dedupe(errors) {
1330
1330
  }
1331
1331
  function lintReactiveExpressions(formDefinition) {
1332
1332
  const findings = [];
1333
- walk$1(formDefinition, "", findings, false, false);
1333
+ walk$2(formDefinition, "", findings, false, false);
1334
1334
  return findings;
1335
1335
  }
1336
1336
  function checkReactiveExpression(expression, path = "", options = {}) {
@@ -1338,10 +1338,10 @@ function checkReactiveExpression(expression, path = "", options = {}) {
1338
1338
  checkExpression(expression, path, out, options.inRepeaterTemplate === true);
1339
1339
  return out;
1340
1340
  }
1341
- function walk$1(node, path, out, inTemplate, propsOfRepeater) {
1341
+ function walk$2(node, path, out, inTemplate, propsOfRepeater) {
1342
1342
  if (node === null || typeof node !== "object") return;
1343
1343
  if (Array.isArray(node)) {
1344
- node.forEach((item, i) => walk$1(item, `${path}/${i}`, out, inTemplate, false));
1344
+ node.forEach((item, i) => walk$2(item, `${path}/${i}`, out, inTemplate, false));
1345
1345
  return;
1346
1346
  }
1347
1347
  const obj = node;
@@ -1370,7 +1370,7 @@ function walk$1(node, path, out, inTemplate, propsOfRepeater) {
1370
1370
  }
1371
1371
  if (typeof v === "object" && v !== null) {
1372
1372
  const childInTemplate = inTemplate || propsOfRepeater && k === "template";
1373
- walk$1(v, `${path}/${k}`, out, childInTemplate, obj["type"] === "repeater" && k === "props");
1373
+ walk$2(v, `${path}/${k}`, out, childInTemplate, obj["type"] === "repeater" && k === "props");
1374
1374
  }
1375
1375
  }
1376
1376
  }
@@ -1511,6 +1511,45 @@ function checkExpression(expr, path, out, inTemplate) {
1511
1511
  }
1512
1512
  }
1513
1513
  }
1514
+ function checkBooleanValidatorRules(validator, path) {
1515
+ const findings = [];
1516
+ const requiredIsTrue = validator.required === true;
1517
+ const constPresent = "const" in validator && validator.const !== void 0;
1518
+ if (requiredIsTrue && !constPresent) {
1519
+ findings.push({
1520
+ path,
1521
+ message: "Boolean validator has `required: true` but no `const` — this does NOT force the checkbox to be checked: `false` is a valid boolean and passes; `required` only rejects a missing value (`undefined`/`null`).",
1522
+ suggestion: "If this checkbox must be checked (e.g. terms acceptance), add `const: true` and set `messages.invalid` and `messages.const` to the same user-facing text. If a false value is genuinely acceptable, ignore this warning."
1523
+ });
1524
+ }
1525
+ if (constPresent && !requiredIsTrue) {
1526
+ findings.push({
1527
+ path,
1528
+ message: "Boolean validator has `const` but no `required: true` — the pristine value passes: a never-touched checkbox holds `undefined`, and non-required validators skip validation entirely for `undefined`.",
1529
+ suggestion: "Add `required: true` so the untouched state fails too, and set `messages.invalid` and `messages.const` to the same user-facing text."
1530
+ });
1531
+ }
1532
+ return findings;
1533
+ }
1534
+ function lintBooleanValidators(formDefinition) {
1535
+ const findings = [];
1536
+ walk$1(formDefinition, "", findings);
1537
+ return findings;
1538
+ }
1539
+ function walk$1(node, path, out) {
1540
+ if (node === null || typeof node !== "object") return;
1541
+ if (Array.isArray(node)) {
1542
+ node.forEach((item, i) => walk$1(item, `${path}/${i}`, out));
1543
+ return;
1544
+ }
1545
+ const obj = node;
1546
+ for (const [key, value] of Object.entries(obj)) {
1547
+ if ((key === "validator" || key.startsWith("validator.")) && value !== null && typeof value === "object" && !Array.isArray(value) && value["type"] === "boolean") {
1548
+ out.push(...checkBooleanValidatorRules(value, `${path}/${key}`));
1549
+ }
1550
+ walk$1(value, `${path}/${key}`, out);
1551
+ }
1552
+ }
1514
1553
  function lintStringInterpolations(formDefinition) {
1515
1554
  const findings = [];
1516
1555
  walk(formDefinition, "", findings, false, false);
@@ -1650,17 +1689,25 @@ function validateFormDefinition(input) {
1650
1689
  message: "Form failed schema validation but no specific error could be localized. The form may contain a widget at a position the form schema does not allow, or a structural shape that our targeted validator missed. Verify each widget against its `json_get_widget_spec` entry."
1651
1690
  });
1652
1691
  }
1692
+ const booleanValidatorWarnings = lintBooleanValidators(input.formDefinition).map(
1693
+ (f) => ({
1694
+ path: f.path,
1695
+ message: f.message,
1696
+ suggestion: f.suggestion,
1697
+ keyword: "booleanValidator"
1698
+ })
1699
+ );
1653
1700
  return {
1654
1701
  valid: errors.length === 0,
1655
1702
  errors,
1656
- warnings,
1703
+ warnings: [...warnings, ...booleanValidatorWarnings],
1657
1704
  expressionWarnings,
1658
1705
  interpolationWarnings
1659
1706
  };
1660
1707
  }
1661
1708
  const JSON_VALIDATE_FORM_DEFINITION_TOOL = {
1662
1709
  name: "json_validate_form_definition",
1663
- description: "Validate a GolemUI form definition against the bundled JSON Schemas. Use this AFTER generating or modifying a form definition to guarantee it is correct before the user pastes it into their codebase. Returns `{ valid, errors, warnings, expressionWarnings, interpolationWarnings }`. Hard mistakes (typos in widget `type`, missing required props, invalid validator shapes) show up in `errors` and flip `valid` to false. Likely-custom widgets (a `type` value that isn't a built-in and isn't close to one) show up in `warnings` instead — they don't affect `valid`. Reactive expressions (`include.when`, `disabled.when`, etc.) are linted separately into `expressionWarnings`. String interpolation templates (`{{$form.x}}`, `{{$meta.y}}`, expressions like `{{$form.count + 1}}`, etc.) in widget props, and bare expressions inside i18n `params` objects, are linted into `interpolationWarnings`.",
1710
+ description: "Validate a GolemUI form definition against the bundled JSON Schemas. Use this AFTER generating or modifying a form definition to guarantee it is correct before the user pastes it into their codebase. Returns `{ valid, errors, warnings, expressionWarnings, interpolationWarnings }`. Hard mistakes (typos in widget `type`, missing required props, invalid validator shapes) show up in `errors` and flip `valid` to false. Likely-custom widgets (a `type` value that isn't a built-in and isn't close to one) and semantic validator traps (a boolean validator with only half of the `required: true` + `const: true` pair — it will not force a mandatory checkbox to be checked) show up in `warnings` instead — they don't affect `valid`, but surface them and apply their `suggestion`. Reactive expressions (`include.when`, `disabled.when`, etc.) are linted separately into `expressionWarnings`. String interpolation templates (`{{$form.x}}`, `{{$meta.y}}`, expressions like `{{$form.count + 1}}`, etc.) in widget props, and bare expressions inside i18n `params` objects, are linted into `interpolationWarnings`.",
1664
1711
  inputSchema: {
1665
1712
  type: "object",
1666
1713
  properties: {
@@ -2303,7 +2350,15 @@ const EXAMPLES = {
2303
2350
  type: "checkbox",
2304
2351
  path: "termsAccepted",
2305
2352
  label: "I accept the terms",
2306
- validator: { type: "boolean", required: true, const: true }
2353
+ validator: {
2354
+ type: "boolean",
2355
+ required: true,
2356
+ const: true,
2357
+ messages: {
2358
+ invalid: "You must accept the terms",
2359
+ const: "You must accept the terms"
2360
+ }
2361
+ }
2307
2362
  },
2308
2363
  toggle: {
2309
2364
  kind: "input",
@@ -2446,6 +2501,7 @@ const NOTES = {
2446
2501
  textinput: [
2447
2502
  "`path` is the dot-path into form data this field writes to.",
2448
2503
  "`validator.format` supports: `email`, `hostname`, `ipv4`, `ipv6`, `url`, `uuid`, `date`, `time`, `date-time`, `duration`.",
2504
+ 'Add custom `validator.messages` (per-rule map) on production forms — the library defaults are developer-facing. When `required: true`, ALWAYS also set `messages.invalid` with the same text as `messages.required`: an `undefined`/`null` value (pristine or cleared) fails the base type check and shows the `invalid` message, not the `required` one. Call `get_concept({ concept: "validation" })` for the full explanation.',
2449
2505
  'Root props `label`, `disabled`, `readonly`, `validator`, and `size` accept state suffixes — e.g. `"label.<stateName>": "New label"` overrides the label only when that named state is active. Props inside `props` (e.g. `hint`, `placeholder`) also accept suffixes as `"hint.<stateName>"`. Call `get_concept({ concept: "states" })` for the full pattern.',
2450
2506
  '`props.icon` accepts a Google Material Icons ligature name (e.g. `"search"`, `"email"`, `"lock"`) to display a decorative icon inside the input field. Supports state suffix: `"icon.<stateName>": "check"` to swap the icon when a state is active. Call `get_concept({ concept: "icons" })` for setup and the full list of icon-capable widgets.'
2451
2507
  ],
@@ -2504,7 +2560,10 @@ const NOTES = {
2504
2560
  'Supports state-suffixed props: `"label.<stateName>"` and `"disabled.<stateName>"` swap the label or disabled state when a named state is active — e.g. disable the submit button until terms are accepted, then re-enable it. Call `get_concept({ concept: "states" })` for the full pattern.',
2505
2561
  '`props.icon` accepts a Google Material Icons ligature name (e.g. `"send"`, `"check"`, `"arrow_forward"`) to render an icon on the button. `props.iconPosition` controls placement: `"left"` (default) or `"right"`. Both support state suffixes: `"icon.<stateName>": "hourglass_empty"` swaps the icon while a state is active. Call `get_concept({ concept: "icons" })` for setup instructions and the full list of icon-capable widgets.'
2506
2562
  ],
2507
- checkbox: ["Set `validator.const: true` to require the user to tick it (e.g. terms acceptance)."],
2563
+ checkbox: [
2564
+ 'MANDATORY CHECKBOX (e.g. terms acceptance): `required: true` alone is a silent trap — it only rejects a MISSING value; an unchecked box holding `false` is a valid boolean and passes. `const: true` is what rejects `false` — but alone it lets the pristine `undefined` pass (non-required validators are optional). Use BOTH: `validator: { type: "boolean", required: true, const: true }`.',
2565
+ 'Set BOTH `messages.invalid` and `messages.const` to the same user-facing text: a never-touched box fails the type check (`invalid` message), a checked-then-unchecked box fails the `const` rule. Call `get_concept({ concept: "validation" })` for the full explanation.'
2566
+ ],
2508
2567
  alert: [
2509
2568
  'Use `include: { in: ["stateName"] }` to show this alert only when a named state is active, or `exclude: { from: ["stateName"] }` to hide it when a state is active. This is cleaner than `include: { when: "..." }` when the same condition is reused across multiple widgets. Call `get_concept({ concept: "states" })` for the full states pattern.',
2510
2569
  'Props inside `props` (e.g. `text`, `level`) accept state suffixes: `"text.<stateName>": "New message"` swaps the message when that state is active.'
@@ -2910,18 +2969,25 @@ const REACTIVE_SCOPE_CONCEPT = {
2910
2969
  },
2911
2970
  {
2912
2971
  name: "$formIsInvalid — whole-form validity flag",
2913
- description: "`$formIsInvalid` is a built-in boolean that the runtime maintains automatically. It is `true` when ANY field in the form currently fails its validator; `false` otherwise. Use it to disable the submit button, show a banner, or guard a navigation step. It is NOT a property of `$form` — use it as a bare identifier. Do NOT chain properties onto it: `$formIsInvalid.something` is invalid.",
2972
+ description: '`$formIsInvalid` is a built-in boolean that the runtime maintains automatically. It is `true` when ANY field currently has a RECORDED validation failure; `false` otherwise. CAVEAT: validation never runs at mount, so on a pristine form the flag is `false` even when required fields are empty — it flips only after the first validated interaction. To disable a submit button from the start, combine it with a data check (see `get_concept({ concept: "validation" })` for the full explanation). It is NOT a property of `$form` — use it as a bare identifier. Do NOT chain properties onto it: `$formIsInvalid.something` is invalid.',
2914
2973
  example: {
2915
2974
  $schema: "https://golemui.com/schemas/form.schema.json",
2916
2975
  form: [
2976
+ {
2977
+ kind: "input",
2978
+ type: "textinput",
2979
+ path: "email",
2980
+ label: "Email",
2981
+ validator: { type: "string", required: true, format: "email" }
2982
+ },
2917
2983
  {
2918
2984
  kind: "action",
2919
2985
  type: "button",
2920
2986
  actionType: "submit",
2921
2987
  label: "Submit",
2922
- // Disable the submit button while any field is invalid.
2923
- disabled: true,
2924
- "disabled.formValid": false
2988
+ // '$formIsInvalid' alone starts ENABLED on the pristine form (no validation has run
2989
+ // yet) — the extra data check covers the not-yet-validated empty state.
2990
+ disabled: { when: "$formIsInvalid || $form.email === undefined" }
2925
2991
  },
2926
2992
  {
2927
2993
  kind: "display",
@@ -2929,10 +2995,7 @@ const REACTIVE_SCOPE_CONCEPT = {
2929
2995
  props: { level: "warning", text: "Please fix the errors above before submitting." },
2930
2996
  include: { when: "$formIsInvalid" }
2931
2997
  }
2932
- ],
2933
- states: {
2934
- formValid: "!$formIsInvalid"
2935
- }
2998
+ ]
2936
2999
  }
2937
3000
  },
2938
3001
  {
@@ -3009,6 +3072,135 @@ const REACTIVE_SCOPE_CONCEPT = {
3009
3072
  "`$fn` names are defined by the host through the `functions` init config. Calling a name the host did not provide errors the expression at evaluation time — coordinate names with the host."
3010
3073
  ]
3011
3074
  };
3075
+ const VALIDATION_CONCEPT = {
3076
+ concept: "validation",
3077
+ summary: 'Input widgets validate through their declarative `validator` object. Three behaviors are non-obvious and cause real bugs when missed: (1) validation NEVER runs at mount — a pristine form has zero recorded errors, so `$formIsInvalid` starts `false` in every `validateOn` mode; (2) on boolean fields `required: true` does NOT force a checkbox to be checked — `false` is a valid boolean; a mandatory checkbox needs `const: true` AND `required: true` together; (3) when a required field is `undefined` or `null` the failure comes from the base type check, not the `required` rule, so the user sees the `invalid` message (a raw "Invalid input: expected string, received undefined" unless you customize it). Always set custom `messages`.',
3078
+ patterns: [
3079
+ {
3080
+ name: "Custom error messages per rule (`messages`)",
3081
+ description: 'Every validator accepts a `messages` object mapping rule names to custom error text. The allowed keys depend on the validator type — string: `invalid`, `required`, `minLength`, `maxLength`, `pattern`, `format`, `enum`, `const`; number/integer: `invalid`, `minimum`, `maximum`, `exclusiveMinimum`, `exclusiveMaximum`, `multipleOf`, `enum`, `const`; boolean: `invalid`, `const`; array: `invalid`, `required`, `minItems`, `maxItems`. The special key `invalid` customizes the base type check (wrong type, or `undefined`/`null` on a required field). Note that only string and array validators have a `required` message key — they are the only types with a present-but-empty state (`""` / `[]`); for number/integer/boolean a missing value can only ever show the `invalid` message. Values are plain strings or i18n descriptors `{ key, params?, default? }`. Without `messages`, failures surface library-default text (e.g. "Invalid input: expected string, received undefined") that is not written for end users — production forms should set custom messages for every rule they use, and ALWAYS set `invalid` whenever `required: true` is set (see the next patterns for why).',
3082
+ example: {
3083
+ $schema: "https://golemui.com/schemas/form.schema.json",
3084
+ form: [
3085
+ {
3086
+ kind: "input",
3087
+ type: "textinput",
3088
+ path: "email",
3089
+ label: "Email",
3090
+ validator: {
3091
+ type: "string",
3092
+ required: true,
3093
+ format: "email",
3094
+ messages: {
3095
+ // `invalid` fires when the value is undefined/null (pristine or cleared) —
3096
+ // for the user that IS the required case, so give it the same text.
3097
+ invalid: "Email is required",
3098
+ required: "Email is required",
3099
+ format: "Enter a valid email address"
3100
+ }
3101
+ }
3102
+ }
3103
+ ]
3104
+ }
3105
+ },
3106
+ {
3107
+ name: "Mandatory checkbox — `const: true` AND `required: true`, never `required` alone",
3108
+ description: "On a boolean validator `required: true` is a silent trap: it only rejects a MISSING value (`undefined`/`null`); an unchecked checkbox holding `false` is a perfectly valid boolean and PASSES. To force the box to be checked you need `const: true` — but `const: true` alone is also not enough: a validator without `required: true` is optional, so a pristine checkbox whose value is still `undefined` skips validation entirely and passes too. The full recipe is BOTH rules together, plus messages for BOTH failure modes: a pristine/never-touched checkbox fails the base type check (`invalid` message) while a checked-then-unchecked checkbox fails the `const` rule (`const` message) — set both keys to the same user-facing text.",
3109
+ example: {
3110
+ $schema: "https://golemui.com/schemas/form.schema.json",
3111
+ form: [
3112
+ {
3113
+ kind: "input",
3114
+ type: "checkbox",
3115
+ path: "termsAccepted",
3116
+ label: "I accept the terms",
3117
+ validator: {
3118
+ type: "boolean",
3119
+ required: true,
3120
+ // rejects undefined/null (never touched)
3121
+ const: true,
3122
+ // rejects false (unchecked)
3123
+ messages: {
3124
+ invalid: "You must accept the terms",
3125
+ const: "You must accept the terms"
3126
+ }
3127
+ }
3128
+ }
3129
+ ]
3130
+ }
3131
+ },
3132
+ {
3133
+ name: "The `invalid` message — what empty required fields actually show",
3134
+ description: 'When a required field holds `undefined` or `null` (pristine, or the widget cleared it), the failure is raised by the BASE TYPE check ("expected string, received undefined"), NOT by the `required` rule — the `required` rule only fires on present-but-empty values such as `""` for strings or `[]` for arrays. Consequence: `messages.required` alone does not cover the most common empty state, and the user sees the raw library default instead. Whenever you set `required: true` on a string or array validator, set BOTH `messages.required` AND `messages.invalid`, normally to the same text — from the user\'s perspective both mean "this field is required". On number/integer/boolean validators there is no `required` message key at all — `messages.invalid` is the ONLY way to word the missing-value error, so setting it is not optional there. Note `null` is never valid: even on a non-required field, `null` fails the type check and shows the `invalid` message (only `undefined` is treated as "not filled in yet").',
3135
+ example: {
3136
+ $schema: "https://golemui.com/schemas/form.schema.json",
3137
+ form: [
3138
+ {
3139
+ kind: "input",
3140
+ type: "number",
3141
+ path: "age",
3142
+ label: "Age",
3143
+ validator: {
3144
+ type: "integer",
3145
+ required: true,
3146
+ minimum: 18,
3147
+ messages: {
3148
+ // Number validators have no `required` message key — `invalid` covers the
3149
+ // undefined/null case (pristine or cleared input), which IS the required case.
3150
+ invalid: "Age is required",
3151
+ minimum: "You must be at least 18"
3152
+ }
3153
+ }
3154
+ }
3155
+ ]
3156
+ }
3157
+ },
3158
+ {
3159
+ name: "When validation runs — `validateOn` and the pristine-form gap",
3160
+ description: 'Validation runs only in response to user interaction, filtered by the form-level `validateOn` config: `"eager"` (the default — the first change OR blur on any field validates the WHOLE form), `"change"`, `"blur"`, `"submit"`, or an array of those. NOTHING validates at mount in ANY mode, so on a pristine form the error map is empty and `$formIsInvalid` is `false` — a submit button with `disabled: { when: "$formIsInvalid" }` starts out ENABLED even when required fields are empty. Clicking a submit button always validates the whole form and the runtime refuses to emit the submit event while invalid — data integrity is safe — but the disabled-until-valid UX needs a compound expression that also checks the data directly, because `$formIsInvalid` only reflects validations that have already run.',
3161
+ example: {
3162
+ $schema: "https://golemui.com/schemas/form.schema.json",
3163
+ form: [
3164
+ {
3165
+ kind: "input",
3166
+ type: "textinput",
3167
+ path: "email",
3168
+ label: "Email",
3169
+ validator: {
3170
+ type: "string",
3171
+ required: true,
3172
+ format: "email",
3173
+ messages: { invalid: "Email is required", required: "Email is required" }
3174
+ }
3175
+ },
3176
+ {
3177
+ kind: "action",
3178
+ type: "button",
3179
+ actionType: "submit",
3180
+ label: "Submit",
3181
+ // '$formIsInvalid' alone leaves this ENABLED on the pristine form (no validation has
3182
+ // run yet). The compound expression also disables it while the field is still empty.
3183
+ disabled: { when: "$formIsInvalid || $form.email === undefined" }
3184
+ }
3185
+ ]
3186
+ }
3187
+ }
3188
+ ],
3189
+ rules: [
3190
+ 'Validation NEVER runs at mount. A pristine form has an empty error map and `$formIsInvalid === false` in every `validateOn` mode, including the default `"eager"`.',
3191
+ '`disabled: { when: "$formIsInvalid" }` on a submit button leaves it ENABLED on the pristine form. For disabled-until-valid UX, use a compound expression that also checks the data: `"$formIsInvalid || $form.email === undefined"`.',
3192
+ "The runtime always re-validates everything on submit click and blocks the submit event while invalid — the pristine gap is a UX issue, not a data-integrity issue.",
3193
+ '`validateOn` values: `"eager"` (default; first change or blur anywhere validates the whole form), `"change"`, `"blur"`, `"submit"`, or an array of `"change"`/`"blur"`/`"submit"`.',
3194
+ "Boolean `required: true` does NOT force a checkbox to be checked — `false` is a valid boolean. Only `const: true` rejects `false`.",
3195
+ "`const: true` alone does NOT cover the pristine case — without `required: true` the validator is optional and `undefined` passes. A mandatory checkbox needs BOTH.",
3196
+ 'A required field holding `undefined`/`null` fails the base TYPE check, not the `required` rule — the user sees the `invalid` message. The `required` rule only fires on present-but-empty values (`""`, `[]`).',
3197
+ "Only string and array validators accept a `required` message key. Number/integer and boolean validators do NOT — `messages.invalid` is the only way to word their missing-value error.",
3198
+ "ALWAYS pair `messages.required` with `messages.invalid` (same text) on string/array validators. For a mandatory checkbox, pair `messages.const` with `messages.invalid`.",
3199
+ '`null` is never a valid value, even for non-required fields — it fails the type check and shows the `invalid` message. Only `undefined` means "not filled in yet".',
3200
+ "Message values are strings or i18n descriptors `{ key, params?, default? }` — the same `Localizable` shape as labels.",
3201
+ 'Production forms should define custom `messages` for every rule they use — the library defaults (e.g. "Invalid input: expected string, received undefined") are developer-facing, not user-facing.'
3202
+ ]
3203
+ };
3012
3204
  const ICONS_CONCEPT = {
3013
3205
  concept: "icons",
3014
3206
  summary: 'GolemUI uses Google Material Icons for all icon props. An icon value is a Material Icons ligature name — a lowercase string with underscores, such as `"search"`, `"home"`, `"arrow_forward"`, or `"check_circle"`. The icon font must be loaded by the host page; without it, the icon value renders as raw text. Several widgets accept a `props.icon` property; `button` additionally has `props.iconPosition`. All icon props support state suffixes for reactive icon swapping.',
@@ -3094,6 +3286,7 @@ const CONCEPTS = {
3094
3286
  states: STATES_CONCEPT,
3095
3287
  "string-interpolation": STRING_INTERPOLATION_CONCEPT,
3096
3288
  "reactive-scope": REACTIVE_SCOPE_CONCEPT,
3289
+ validation: VALIDATION_CONCEPT,
3097
3290
  icons: ICONS_CONCEPT
3098
3291
  };
3099
3292
  function getConcept(input) {
@@ -3106,13 +3299,13 @@ function getConcept(input) {
3106
3299
  }
3107
3300
  const GET_CONCEPT_TOOL = {
3108
3301
  name: "get_concept",
3109
- description: 'Return a detailed guide for a cross-cutting GolemUI form concept — things that span multiple widgets and affect the whole form, rather than the API of a single widget. Call this when you need to: (1) conditionally show or hide widgets (`include`/`exclude`) — both the named-state form (`in`/`from`) and the inline `when` expression form are covered under the `states` concept; (2) change a widget\'s props based on form state (state-suffixed props like `"label.stateName": "…"`); (3) understand what `$form`, `$meta`, `$errors`, `$formIsInvalid`, and `$fn` are and how to reference form data in reactive expressions — use the `reactive-scope` concept; (4) add icons to widgets — use the `icons` concept. Currently supported concepts: `states`, `string-interpolation`, `reactive-scope`, `icons`.',
3302
+ description: 'Return a detailed guide for a cross-cutting GolemUI form concept — things that span multiple widgets and affect the whole form, rather than the API of a single widget. Call this when you need to: (1) conditionally show or hide widgets (`include`/`exclude`) — both the named-state form (`in`/`from`) and the inline `when` expression form are covered under the `states` concept; (2) change a widget\'s props based on form state (state-suffixed props like `"label.stateName": "…"`); (3) understand what `$form`, `$meta`, `$errors`, `$formIsInvalid`, and `$fn` are and how to reference form data in reactive expressions — use the `reactive-scope` concept; (4) write validators with custom error messages, make a checkbox mandatory, or gate a submit button on validity — use the `validation` concept (it covers three non-obvious traps: no validation at mount, boolean `required` vs `const`, and the `invalid` message); (5) add icons to widgets — use the `icons` concept. Currently supported concepts: `states`, `string-interpolation`, `reactive-scope`, `validation`, `icons`.',
3110
3303
  inputSchema: {
3111
3304
  type: "object",
3112
3305
  properties: {
3113
3306
  concept: {
3114
3307
  type: "string",
3115
- description: 'The concept to explain. Currently supported: `"states"`, `"string-interpolation"`.',
3308
+ description: 'The concept to explain. Currently supported: `"states"`, `"string-interpolation"`, `"reactive-scope"`, `"validation"`, `"icons"`.',
3116
3309
  enum: Object.keys(CONCEPTS)
3117
3310
  }
3118
3311
  },
@@ -3130,5 +3323,6 @@ export {
3130
3323
  getWidgetSpec as f,
3131
3324
  generateFromJsonSchema as g,
3132
3325
  checkReactiveExpression as h,
3326
+ checkBooleanValidatorRules as i,
3133
3327
  validateFormDefinition as v
3134
3328
  };