Current section

Files

Jump to
noora components date-picker.json
Raw

components/date-picker.json

{
"name": "DatePicker",
"tagName": "noora-date-picker",
"elementClassName": "NooraDatePicker",
"className": "noora-date-picker",
"modulePath": "./priv/static/noora-web-components.js",
"description": "Selects a date range with a two-month calendar, optional presets, and editable range fields.",
"usage": "<noora-date-picker label=\"Select date range\"></noora-date-picker>",
"attributes": [
{
"name": "label",
"property": "label",
"type": "string",
"default": "Select date range",
"description": "Sets the trigger label when no range is selected."
},
{
"name": "name",
"property": "name",
"type": "string",
"description": "Sets the submitted field-name prefix for `[start]` and `[end]` values."
},
{
"name": "start",
"property": "start",
"type": "string",
"description": "Sets the start date in year-month-day format."
},
{
"name": "end",
"property": "end",
"type": "string",
"description": "Sets the end date in year-month-day format."
},
{
"name": "min",
"property": "min",
"type": "string",
"description": "Sets the earliest selectable date."
},
{
"name": "max",
"property": "max",
"type": "string",
"description": "Sets the latest selectable date."
},
{
"name": "selected-preset",
"property": "selectedPreset",
"type": "string",
"description": "Identifies the selected preset."
},
{
"name": "start-of-week",
"property": "startOfWeek",
"type": "number",
"default": 0,
"description": "Sets the first weekday, where zero is Sunday and one is Monday."
},
{
"name": "disabled",
"property": "disabled",
"type": "boolean",
"default": false,
"description": "Disables interaction."
},
{
"name": "open",
"property": "open",
"type": "boolean",
"default": false,
"reflect": true,
"description": "Controls whether the picker is open."
}
],
"properties": [
{
"name": "presets",
"type": "json",
"typescriptType": "Array<Record<string, unknown>>",
"default": [],
"description": "Defines presets programmatically when declarative noora-date-picker-preset children are not used."
}
],
"readonlyProperties": [],
"slots": [
{
"name": "",
"description": "Declarative noora-date-picker-preset children."
},
{
"name": "actions",
"description": "Additional footer actions."
}
],
"cssParts": [
{
"name": "trigger",
"description": "The range trigger."
},
{
"name": "content",
"description": "The picker content."
},
{
"name": "calendar",
"description": "The calendar and range controls."
},
{
"name": "month",
"description": "One calendar month."
}
],
"events": [
{
"name": "noora-open-change",
"type": "CustomEvent<{ open: boolean }>",
"description": "Emitted when the date picker opens or closes."
},
{
"name": "noora-period-change",
"type": "CustomEvent<{ start: string; end: string; preset: string | undefined }>",
"description": "Emitted when a date range is applied."
},
{
"name": "noora-cancel",
"type": "CustomEvent<Record<string, never>>",
"description": "Emitted when date selection is cancelled."
}
],
"notes": [
"A picker named `range` submits its dates as `range[start]` and `range[end]`.",
"Range changes emit a `noora-period-change` event after Apply is selected.",
"Cancel emits a `noora-cancel` event.",
"Slotted action buttons can use data-action=\"cancel\" or data-action=\"apply\"."
],
"examples": [
{
"id": "default",
"title": "Default date picker",
"description": "Open the picker with common presets and footer actions.",
"markup": "<noora-date-picker selected-preset=\"7d\">\n <noora-date-picker-preset value=\"1h\" start=\"2026-07-27\" end=\"2026-07-27\">Last 1 hour</noora-date-picker-preset>\n <noora-date-picker-preset value=\"24h\" start=\"2026-07-26\" end=\"2026-07-27\">Last 24 hours</noora-date-picker-preset>\n <noora-date-picker-preset value=\"7d\" start=\"2026-07-21\" end=\"2026-07-27\">Last 7 days</noora-date-picker-preset>\n <noora-date-picker-preset value=\"30d\" start=\"2026-06-28\" end=\"2026-07-27\">Last 30 days</noora-date-picker-preset>\n <noora-date-picker-preset value=\"custom\">Custom</noora-date-picker-preset>\n <noora-button slot=\"actions\" type=\"button\" variant=\"secondary\" size=\"medium\" data-action=\"cancel\">Cancel</noora-button>\n <noora-button slot=\"actions\" type=\"button\" variant=\"primary\" size=\"medium\" data-action=\"apply\">Apply</noora-button>\n</noora-date-picker>"
}
]
}