@golemui/gui-mcp 1.1.1-rc.3 → 1.2.1-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/cli.js +4 -4
- package/dx/dx-lint.d.ts +10 -1
- package/dx/typecheck.d.ts +7 -0
- package/{get-concept-DRFSt-XX.js → get-concept-CnyfqgLF.js} +226 -32
- package/json.js +1 -1
- package/lib.js +2 -2
- package/{list-dx-factories-BLhvXI07.js → list-dx-factories-Td5MhXfg.js} +92 -29
- package/package.json +5 -5
- package/shared/get-concept.d.ts +1 -1
- package/shared/lint/boolean-validator.d.ts +32 -0
|
@@ -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$
|
|
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$
|
|
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$
|
|
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$
|
|
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: {
|
|
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: [
|
|
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:
|
|
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
|
-
//
|
|
2923
|
-
|
|
2924
|
-
"
|
|
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
|
};
|