import type { Morfo } from '../types'; import { v } from '../types'; export const dateRangePickerMorfo = { name: 'DateRangePicker', kebab: 'date-range-picker', scope: ['soma'], texts: { trigger: '#?components.date-range-picker.trigger|Open range calendar', calendar: '#?components.date-range-picker.calendar|Date range calendar' }, focus: { initial: 'first-focusable', trap: true, return: 'trigger', restore: true }, parts: [ { name: 'Provider', kebab: 'provider', archetype: 'provider', kind: 'public', defaultElement: 'div', optional: false, states: ['open', 'closed'], data: [ { attr: 'data-state', values: ['open', 'closed'] }, { attr: 'data-disabled', severity: 'optional' }, { attr: 'data-readonly', severity: 'optional' }, { attr: 'data-required', severity: 'optional' }, { attr: 'data-invalid', severity: 'optional' } ], aria: [ { attr: 'aria-disabled', value: v.propRef('disabled'), severity: 'optional' }, { attr: 'aria-readonly', value: v.propRef('readonly'), severity: 'optional' }, { attr: 'aria-required', value: v.propRef('required'), severity: 'optional' } ] }, { name: 'Trigger', kebab: 'trigger', archetype: 'trigger', kind: 'public', defaultElement: 'button', role: 'button', optional: false, states: ['open', 'closed'], data: [{ attr: 'data-state', values: ['open', 'closed'] }], aria: [ { attr: 'type', value: v.literal('button') }, { attr: 'aria-haspopup', value: v.literal('dialog') }, { attr: 'aria-expanded', value: v.stateRef('open') }, { attr: 'aria-controls', value: v.partRef('calendar'), condition: { when: 'part-present', part: 'calendar' }, severity: 'recommended' }, { attr: 'aria-label', value: v.translationRef('#?components.date-range-picker.trigger|Open range calendar'), severity: 'recommended' } ] }, { name: 'Calendar', kebab: 'calendar', kind: 'public', defaultElement: 'div', role: 'dialog', optional: false, data: [], aria: [] } ] } as const satisfies Morfo;