@vireo-ai/trellis-ui 0.1.51 → 0.1.52
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/package.json +6 -1
- package/packages/client/src/components/select/styles.css +19 -0
- package/packages/client/src/styles/theme-support.css +267 -0
- package/packages/client/src/styles/theme.css +1 -268
- package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.css +11 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.min.css +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/build-metadata.json +252 -252
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/motion.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/sortable.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-motion-DRILCSFH.js → capability-motion-DQitxnHn.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-motion-DRILCSFH.js.map → capability-motion-DQitxnHn.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-sortable-CpSdQwYp.js → capability-sortable-Dzv1zWaL.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-sortable-CpSdQwYp.js.map → capability-sortable-Dzv1zWaL.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{core-DnQs1xY6.js → core-DMbnlSdM.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{core-DnQs1xY6.js.map → core-DMbnlSdM.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cursor-data-source-DvHNTjt1.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cursor-data-source-DvHNTjt1.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-cnWgB3wz.js → entry.generated-CvcufWkj.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-cnWgB3wz.js.map → entry.generated-CvcufWkj.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BiyFgA-e.js → entry.generated-D3w3QaSO.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BiyFgA-e.js.map → entry.generated-D3w3QaSO.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-CeD3bUBI.js → entry.generated-DCLIvEtJ.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-CeD3bUBI.js.map → entry.generated-DCLIvEtJ.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-TbFjT_mY.js → entry.generated-DVQaci6w.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-TbFjT_mY.js.map → entry.generated-DVQaci6w.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-D3am_GtI.js → entry.generated-DvvVMsQo.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-D3am_GtI.js.map → entry.generated-DvvVMsQo.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-D7qa64eM.js → entry.generated-Rx9NofFi.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Rx9NofFi.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-oz1RCU1b.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-oz1RCU1b.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DbC4gkeV.js → entry.generated-payXlXhL.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DbC4gkeV.js.map → entry.generated-payXlXhL.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry2.generated-BSal0xp9.js → entry2.generated-CpoK52gE.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry2.generated-BSal0xp9.js.map → entry2.generated-CpoK52gE.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry2.generated-JcxejQr4.js → entry2.generated-D1X0sDop.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry2.generated-JcxejQr4.js.map → entry2.generated-D1X0sDop.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry2.generated-DCbmWkHV.js → entry2.generated-DXDHgDsN.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry2.generated-DCbmWkHV.js.map → entry2.generated-DXDHgDsN.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry2.generated-D26Cigu5.js → entry2.generated-_UPpJlWp.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry2.generated-D26Cigu5.js.map → entry2.generated-_UPpJlWp.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{motion-B4uuk1JX.js → motion-BDQdr83d.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{motion-B4uuk1JX.js.map → motion-BDQdr83d.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-SdoiMWig.js +4 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{ui-FOJhyz8V.js.map → ui-SdoiMWig.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/accordion.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/data-grid.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/date-picker.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/dropdown.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/modal.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/panels.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/select.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/sidebar.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tabs.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/toast.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tooltip.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/virtualizer.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/core.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/logical-entry-manifest.json +91 -91
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.js +8 -8
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.min.js +8 -8
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cursor-data-source-5pQvlhmK.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cursor-data-source-5pQvlhmK.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CPzThz_M.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CPzThz_M.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-D7qa64eM.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-FOJhyz8V.js +0 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"mappings":"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","names":[],"ignoreList":[],"sources":["../../../../../../../../client/src/capabilities/calendar.ts","../../../../../../../../client/src/components/date-picker/contract.ts","../../../../../../../../client/src/components/date-picker/machine.ts","../../../../../../../../client/src/components/date-picker/styles.ts","../../../../../../../../client/src/components/date-picker/value.ts","../../../../../../../../client/src/components/date-picker/index.ts","../../../../../../../../client/src/components/date-picker/entry.generated.ts"],"sourcesContent":["import type {Alpine as AlpineType} from 'alpinejs';\n\nlet registration: Promise<unknown> | null = null;\n\nconst registerCalendarCapability = (_AlpineInstance: AlpineType): void => {\n if (typeof customElements === 'undefined' || customElements.get('calendar-date')) return;\n registration ??= import('cally');\n};\n\nexport {registerCalendarCapability};\n","import {bool, json, number, oneOf, string, type SchemaToProps} from '../../runtime';\nimport {\n ALIGNMENTS,\n COMPONENT_RADII,\n CONTROL_VARIANTS,\n ELEVATION_REFERENCES,\n POSITIONS,\n SURFACE_REFERENCES,\n type Alignment,\n type ComponentRadius,\n type ControlVariant,\n type ElevationReference,\n type Position,\n type SurfaceReference,\n} from '../common';\n\nconst DATE_PICKER_MODES = ['single', 'range'] as const;\nconst DATE_PICKER_IMPLEMENTATIONS = ['enhanced', 'native'] as const;\nconst DATE_PICKER_VARIANTS = CONTROL_VARIANTS;\nconst DATE_PICKER_CLOSE = ['auto', 'confirm'] as const;\nconst DATE_PICKER_COLORS = ['neutral', 'accent'] as const;\nconst DATE_PICKER_RADII = COMPONENT_RADII;\nconst DATE_PICKER_PRESETS_POSITIONS = ['left', 'right', 'top', 'bottom'] as const;\nconst DATE_PICKER_SURFACES = SURFACE_REFERENCES;\nconst DATE_PICKER_ELEVATIONS = ELEVATION_REFERENCES;\n\ntype DatePickerMode = typeof DATE_PICKER_MODES[number];\ntype DatePickerImplementation = typeof DATE_PICKER_IMPLEMENTATIONS[number];\ntype DatePickerVariant = ControlVariant;\ntype DatePickerClose = typeof DATE_PICKER_CLOSE[number];\ntype DatePickerColor = typeof DATE_PICKER_COLORS[number];\ntype DatePickerRadius = ComponentRadius;\ntype DatePickerPresetsPosition = typeof DATE_PICKER_PRESETS_POSITIONS[number];\ntype DatePickerSide = Position;\ntype DatePickerAlign = Alignment;\ntype DatePickerSurface = SurfaceReference;\ntype DatePickerElevation = ElevationReference;\n\ntype DatePickerPreset = {\n value: string;\n label: string;\n start: string;\n end: string;\n disabled?: boolean;\n};\n\nconst datePickerSchema = {\n name: string,\n value: string,\n startName: string,\n endName: string,\n mode: oneOf(DATE_PICKER_MODES, 'single' as DatePickerMode),\n placeholder: string,\n min: string,\n max: string,\n today: string,\n openTo: string,\n forceOpenTo: bool,\n months: number.clamp(0, 12).default(0),\n firstDayOfWeek: number.clamp(-1, 6).default(0),\n locale: string,\n format: string.default('%Y-%m-%d'),\n rangeSeparator: string.default('/'),\n showOutsideDays: bool,\n showWeekNumbers: bool,\n fixedWeeks: bool.default(true),\n selectableHeader: bool,\n withToday: bool,\n clearable: bool,\n disabled: bool,\n readonly: bool,\n required: bool,\n invalid: bool,\n side: oneOf(POSITIONS, 'bottom' as DatePickerSide),\n align: oneOf(ALIGNMENTS, 'start' as DatePickerAlign),\n offset: number.clamp(-100, 100).default(0),\n gap: number.clamp(0, 50).default(4),\n implementation: oneOf(DATE_PICKER_IMPLEMENTATIONS, 'enhanced' as DatePickerImplementation),\n variant: oneOf(DATE_PICKER_VARIANTS, 'outline' as DatePickerVariant),\n color: oneOf(DATE_PICKER_COLORS, 'neutral' as DatePickerColor),\n radius: oneOf(DATE_PICKER_RADII, 'md' as DatePickerRadius),\n surface: oneOf(DATE_PICKER_SURFACES, '+2' as DatePickerSurface),\n elevation: oneOf(DATE_PICKER_ELEVATIONS, '3' as DatePickerElevation),\n close: oneOf(DATE_PICKER_CLOSE, 'auto' as DatePickerClose),\n presets: json.array<DatePickerPreset>([]),\n presetsPosition: oneOf(DATE_PICKER_PRESETS_POSITIONS, 'left' as DatePickerPresetsPosition),\n preset: string,\n presetName: string,\n triggerClass: string,\n inputClass: string,\n popoverClass: string,\n calendarClass: string,\n presetsClass: string,\n presetClass: string,\n class: string,\n form: string,\n};\n\nconst datePickerPresetSchema = {\n value: string,\n label: string,\n start: string,\n end: string,\n disabled: bool,\n class: string,\n};\n\nconst datePickerTriggerSchema = {\n variant: oneOf(DATE_PICKER_VARIANTS, 'outline' as DatePickerVariant),\n radius: oneOf(DATE_PICKER_RADII, 'md' as DatePickerRadius),\n class: string,\n};\n\nconst datePickerPresetsSchema = {\n position: oneOf(DATE_PICKER_PRESETS_POSITIONS, 'left' as DatePickerPresetsPosition),\n class: string,\n};\n\ntype DatePickerProps = SchemaToProps<typeof datePickerSchema>;\ntype DatePickerPresetProps = SchemaToProps<typeof datePickerPresetSchema>;\ntype DatePickerPresetsProps = SchemaToProps<typeof datePickerPresetsSchema>;\ntype DatePickerTriggerProps = SchemaToProps<typeof datePickerTriggerSchema>;\n\nexport {\n DATE_PICKER_CLOSE,\n DATE_PICKER_COLORS,\n DATE_PICKER_ELEVATIONS,\n DATE_PICKER_IMPLEMENTATIONS,\n DATE_PICKER_MODES,\n DATE_PICKER_PRESETS_POSITIONS,\n DATE_PICKER_RADII,\n DATE_PICKER_SURFACES,\n DATE_PICKER_VARIANTS,\n datePickerPresetSchema,\n datePickerPresetsSchema,\n datePickerSchema,\n datePickerTriggerSchema,\n};\nexport type {\n DatePickerAlign,\n DatePickerClose,\n DatePickerColor,\n DatePickerElevation,\n DatePickerImplementation,\n DatePickerMode,\n DatePickerPreset,\n DatePickerPresetProps,\n DatePickerPresetsPosition,\n DatePickerPresetsProps,\n DatePickerProps,\n DatePickerRadius,\n DatePickerSide,\n DatePickerSurface,\n DatePickerTriggerProps,\n DatePickerVariant,\n};\n","import {\n createMachine,\n propsChanged,\n propsChangedEvent,\n type Machine,\n type MachineEventObject,\n type MachineScope,\n} from '../../runtime/state-machine';\nimport {defineHook, type TransitionHookDefinition} from '../../runtime/transition-coordinator';\nimport type {DatePickerProps} from './contract';\n\ntype SelectionSource = 'calendar' | 'input' | 'preset' | 'today' | 'clear' | 'props';\n\ntype DatePickerContext = {\n selection: {\n value: string;\n pendingValue: string;\n previousValue: string;\n source: SelectionSource;\n };\n input: {value: string; valid: boolean};\n preset: {value: string};\n};\n\ntype DatePickerMachineEffects = {\n prepareOpen(scope: MachineScope<DatePickerContext, DatePickerProps>): void;\n finishOpen(scope: MachineScope<DatePickerContext, DatePickerProps>): void;\n prepareClose(scope: MachineScope<DatePickerContext, DatePickerProps>): void;\n finishClose(scope: MachineScope<DatePickerContext, DatePickerProps>): void;\n syncInput(scope: MachineScope<DatePickerContext, DatePickerProps>): void;\n syncPending(scope: MachineScope<DatePickerContext, DatePickerProps>): void;\n markInvalid(scope: MachineScope<DatePickerContext, DatePickerProps>): void;\n commitSelection(scope: MachineScope<DatePickerContext, DatePickerProps>): void;\n syncProps(scope: MachineScope<DatePickerContext, DatePickerProps>): void;\n syncPresets(scope: MachineScope<DatePickerContext, DatePickerProps>): void;\n};\n\ntype CreateDatePickerMachineOptions = {\n props: DatePickerProps;\n context: DatePickerContext;\n effects: DatePickerMachineEffects;\n};\n\nconst openingHook = defineHook({\n name: 'opening',\n state: 'disclosure.opening',\n project: () => ({}),\n onDone: 'OPENING_DONE',\n onError: 'OPENING_ERROR',\n sends: {close: () => ({type: 'CLOSE'})},\n} satisfies TransitionHookDefinition<DatePickerContext, DatePickerProps, Record<string, never>, 'opening'>);\n\nconst closingHook = defineHook({\n name: 'closing',\n state: 'disclosure.closing',\n project: () => ({}),\n onDone: 'CLOSING_DONE',\n onError: 'CLOSING_ERROR',\n sends: {open: () => ({type: 'OPEN'})},\n} satisfies TransitionHookDefinition<DatePickerContext, DatePickerProps, Record<string, never>, 'closing'>);\n\nconst parsingHook = defineHook({\n name: 'parsing',\n state: 'feature.parsing',\n project: (snapshot) => ({input: snapshot.context.input.value}),\n onDone: 'PARSING_DONE',\n onError: 'PARSING_ERROR',\n sends: {\n select: (value: string) => ({type: 'SELECT', value, source: 'input'}),\n clear: () => ({type: 'CLEAR'}),\n },\n} satisfies TransitionHookDefinition<DatePickerContext, DatePickerProps, {input: string}, 'parsing'>);\n\nconst selectingHook = defineHook({\n name: 'selecting',\n state: 'feature.selecting',\n project: (snapshot) => ({\n value: snapshot.context.selection.value,\n previousValue: snapshot.context.selection.previousValue,\n source: snapshot.context.selection.source,\n preset: snapshot.context.preset.value,\n }),\n onDone: 'SELECTING_DONE',\n onError: 'SELECTING_ERROR',\n sends: {\n select: (value: string) => ({type: 'SELECT', value, source: 'input'}),\n clear: () => ({type: 'CLEAR'}),\n close: () => ({type: 'CLOSE'}),\n },\n} satisfies TransitionHookDefinition<DatePickerContext, DatePickerProps, {\n value: string;\n previousValue: string;\n source: SelectionSource;\n preset: string;\n}, 'selecting'>);\n\nconst datePickerHooks = [openingHook, closingHook, parsingHook, selectingHook] as const;\n\nconst nextProps = (event: MachineEventObject): DatePickerProps | null => propsChangedEvent<DatePickerProps>(event)?.props ?? null;\nconst blocked = (props: DatePickerProps): boolean => props.disabled || props.readonly;\nconst eventString = (event: MachineEventObject, key: string): string => (\n typeof event[key] === 'string' ? event[key] : ''\n);\nconst sourceFrom = (event: MachineEventObject): SelectionSource => {\n const source = eventString(event, 'source');\n return source === 'calendar' || source === 'input' || source === 'preset' || source === 'today' || source === 'props'\n ? source\n : 'clear';\n};\n\nconst shouldCloseFromProps = ({event}: MachineScope<DatePickerContext, DatePickerProps>): boolean => {\n const props = nextProps(event);\n return Boolean(props && (\n (propsChanged<DatePickerProps>(event, 'disabled') && props.disabled)\n || (propsChanged<DatePickerProps>(event, 'readonly') && props.readonly)\n ));\n};\n\nconst shouldAutoClose = ({props}: MachineScope<DatePickerContext, DatePickerProps>): boolean => props.close === 'auto';\n\nconst selectionUpdate = (\n context: DatePickerContext,\n event: MachineEventObject,\n value: string,\n): DatePickerContext => ({\n ...context,\n selection: {\n value,\n pendingValue: value,\n previousValue: context.selection.value,\n source: sourceFrom(event),\n },\n input: {value: eventString(event, 'input'), valid: true},\n preset: {value: eventString(event, 'preset')},\n});\n\nconst createDatePickerMachine = ({\n props,\n context,\n effects,\n}: CreateDatePickerMachineOptions): Machine<DatePickerContext, DatePickerProps> => createMachine({\n type: 'parallel',\n states: {\n disclosure: {\n initial: 'closed',\n states: {\n closed: {\n tags: ['closed'],\n on: {\n OPEN: {target: 'opening', guard: 'canOpen', reduce: 'beginOpen', effects: 'prepareOpen'},\n TOGGLE: {target: 'opening', guard: 'canOpen', reduce: 'beginOpen', effects: 'prepareOpen'},\n },\n },\n opening: {\n tags: ['visible', 'expanded', 'interactive', 'transitioning'],\n on: {\n OPENING_DONE: {target: 'open', effects: 'finishOpen'},\n OPENING_ERROR: {target: 'open', effects: 'finishOpen'},\n CLOSE: {target: 'closing', effects: 'prepareClose'},\n TOGGLE: {target: 'closing', effects: 'prepareClose'},\n SELECT: {target: 'closing', guard: shouldAutoClose, effects: 'prepareClose'},\n APPLY: {target: 'closing', effects: 'prepareClose'},\n PROPS_CHANGED: {target: 'closing', guard: shouldCloseFromProps, effects: 'prepareClose'},\n },\n },\n open: {\n tags: ['visible', 'expanded', 'interactive', 'open'],\n on: {\n CLOSE: {target: 'closing', effects: 'prepareClose'},\n TOGGLE: {target: 'closing', effects: 'prepareClose'},\n SELECT: {target: 'closing', guard: shouldAutoClose, effects: 'prepareClose'},\n APPLY: {target: 'closing', effects: 'prepareClose'},\n PROPS_CHANGED: {target: 'closing', guard: shouldCloseFromProps, effects: 'prepareClose'},\n },\n },\n closing: {\n tags: ['visible', 'transitioning'],\n on: {\n CLOSING_DONE: {target: 'closed', effects: 'finishClose'},\n CLOSING_ERROR: {target: 'closed', effects: 'finishClose'},\n OPEN: {target: 'opening', guard: 'canOpen', reduce: 'beginOpen', effects: 'prepareOpen'},\n TOGGLE: {target: 'opening', guard: 'canOpen', reduce: 'beginOpen', effects: 'prepareOpen'},\n },\n },\n },\n },\n feature: {\n initial: 'idle',\n states: {\n idle: {\n on: {\n INPUT: {target: 'editing', reduce: 'setInput', effects: 'syncInput'},\n PENDING: {target: 'editing', reduce: 'setPending', effects: 'syncPending'},\n PARSE: {target: 'parsing', reduce: 'setInvalidInput', effects: 'markInvalid'},\n SELECT: {target: 'selecting', reduce: 'select', effects: 'commitSelection'},\n CLEAR: {target: 'selecting', reduce: 'clear', effects: 'commitSelection'},\n APPLY: {target: 'selecting', reduce: 'apply', effects: 'commitSelection'},\n PROPS_CHANGED: [\n {target: 'selecting', guard: 'valueChanged', reduce: 'replaceProps', effects: 'commitSelection'},\n {reduce: 'replaceProps', effects: 'syncProps'},\n ],\n PRESETS_CHANGED: {effects: 'syncPresets'},\n },\n },\n editing: {\n tags: ['editing'],\n on: {\n INPUT: {target: 'editing', reduce: 'setInput', effects: 'syncInput'},\n PENDING: {target: 'editing', reduce: 'setPending', effects: 'syncPending'},\n PARSE: {target: 'parsing', reduce: 'setInvalidInput', effects: 'markInvalid'},\n SELECT: {target: 'selecting', reduce: 'select', effects: 'commitSelection'},\n CLEAR: {target: 'selecting', reduce: 'clear', effects: 'commitSelection'},\n APPLY: {target: 'selecting', reduce: 'apply', effects: 'commitSelection'},\n CANCEL: {target: 'idle', reduce: 'resetDraft', effects: 'syncPending'},\n CLOSE: {target: 'idle', reduce: 'resetDraft', effects: 'syncPending'},\n PROPS_CHANGED: [\n {target: 'selecting', guard: 'valueChanged', reduce: 'replaceProps', effects: 'commitSelection'},\n {reduce: 'replaceProps', effects: 'syncProps'},\n ],\n PRESETS_CHANGED: {effects: 'syncPresets'},\n },\n },\n parsing: {\n tags: ['editing', 'parsing'],\n on: {\n SELECT: {target: 'selecting', reduce: 'select', effects: 'commitSelection'},\n CLEAR: {target: 'selecting', reduce: 'clear', effects: 'commitSelection'},\n APPLY: {target: 'selecting', reduce: 'apply', effects: 'commitSelection'},\n INPUT: {target: 'editing', reduce: 'setInput', effects: 'syncInput'},\n PARSING_DONE: 'editing',\n PARSING_ERROR: 'editing',\n CLOSE: {target: 'idle', reduce: 'resetDraft', effects: 'syncPending'},\n PROPS_CHANGED: [\n {target: 'selecting', guard: 'valueChanged', reduce: 'replaceProps', effects: 'commitSelection'},\n {target: 'editing', reduce: 'replaceProps', effects: 'syncProps'},\n ],\n },\n },\n selecting: {\n tags: ['selecting'],\n on: {\n SELECT: {target: 'selecting', reduce: 'select', effects: 'commitSelection'},\n CLEAR: {target: 'selecting', reduce: 'clear', effects: 'commitSelection'},\n APPLY: {target: 'selecting', reduce: 'apply', effects: 'commitSelection'},\n SELECTING_DONE: 'idle',\n SELECTING_ERROR: 'idle',\n PROPS_CHANGED: [\n {target: 'selecting', guard: 'valueChanged', reduce: 'replaceProps', effects: 'commitSelection'},\n {reduce: 'replaceProps', effects: 'syncProps'},\n ],\n PRESETS_CHANGED: {effects: 'syncPresets'},\n },\n },\n },\n },\n },\n}, {\n context,\n props,\n reducers: {\n beginOpen: ({context: current}) => ({context: {\n ...current,\n selection: {...current.selection, pendingValue: current.selection.value},\n }}),\n setInput: ({context: current, event}) => ({context: {\n ...current,\n input: {value: eventString(event, 'input'), valid: true},\n }}),\n setInvalidInput: ({context: current, event}) => ({context: {\n ...current,\n input: {value: eventString(event, 'input'), valid: false},\n }}),\n setPending: ({context: current, event}) => ({context: {\n ...current,\n selection: {\n ...current.selection,\n pendingValue: eventString(event, 'value'),\n source: sourceFrom(event),\n },\n preset: {value: eventString(event, 'preset')},\n }}),\n select: ({context: current, event}) => ({context: selectionUpdate(\n current,\n event,\n eventString(event, 'value'),\n )}),\n clear: ({context: current}) => ({context: selectionUpdate(current, {type: 'CLEAR'}, '')}),\n apply: ({context: current}) => ({context: selectionUpdate(\n current,\n {type: 'SELECT', source: current.selection.source},\n current.selection.pendingValue,\n )}),\n resetDraft: ({context: current}) => ({context: {\n ...current,\n selection: {...current.selection, pendingValue: current.selection.value},\n input: {value: '', valid: true},\n }}),\n replaceProps: ({context: current, event}) => {\n const next = nextProps(event);\n if (!next) return undefined;\n if (!propsChanged<DatePickerProps>(event, 'value')) return {props: next};\n return {\n props: next,\n context: selectionUpdate(current, {type: 'PROPS_CHANGED', source: 'props'}, next.value),\n };\n },\n },\n guards: {\n canOpen: ({props: current}) => !blocked(current),\n valueChanged: ({event}) => propsChanged<DatePickerProps>(event, 'value'),\n },\n effects: {\n prepareOpen: effects.prepareOpen,\n finishOpen: effects.finishOpen,\n prepareClose: effects.prepareClose,\n finishClose: effects.finishClose,\n syncInput: effects.syncInput,\n syncPending: effects.syncPending,\n markInvalid: effects.markInvalid,\n commitSelection: effects.commitSelection,\n syncProps: effects.syncProps,\n syncPresets: effects.syncPresets,\n },\n});\n\nexport {createDatePickerMachine, datePickerHooks};\nexport type {\n CreateDatePickerMachineOptions,\n DatePickerContext,\n DatePickerMachineEffects,\n SelectionSource,\n};\n","import {defineStyles} from '../../runtime';\nimport {\n CONTROL_MIN_SIZE_CLASSES,\n CONTROL_RADIUS_CLASSES,\n FIELD_CONTROL_ACTION_CLASSES,\n FIELD_CONTROL_INPUT_CLASSES,\n FIELD_CONTROL_NATIVE_CLASSES,\n FIELD_CONTROL_ROOT_CLASSES,\n OPTION_ITEM_CLASSES,\n POPOVER_GEOMETRY_CLASSES,\n} from '../common';\n\nconst datePickerStyles = defineStyles({definition: {\n component: 'ui.date-picker',\n parts: {\n root: {\n base: 'relative inline-grid w-full min-w-0',\n },\n trigger: {\n base: [\n FIELD_CONTROL_ROOT_CLASSES,\n CONTROL_MIN_SIZE_CLASSES.lg,\n 'text-left',\n ],\n variants: {\n radius: CONTROL_RADIUS_CLASSES,\n },\n defaults: {\n radius: 'md',\n },\n },\n customTrigger: {\n base: [\n 'inline-flex min-h-control-lg min-w-control-lg shrink-0 items-center justify-center gap-control-gap px-2 text-sm outline-none',\n ],\n variants: {\n radius: CONTROL_RADIUS_CLASSES,\n },\n defaults: {\n radius: 'md',\n },\n },\n input: {\n base: [\n 'min-w-0 flex-1 text-sm',\n FIELD_CONTROL_INPUT_CLASSES,\n ],\n },\n icon: {\n base: 'size-icon shrink-0 fill-current text-surface-ink-muted',\n },\n action: {\n base: FIELD_CONTROL_ACTION_CLASSES,\n },\n popover: {\n base: [\n POPOVER_GEOMETRY_CLASSES,\n 'max-h-lg overflow-hidden rounded-overlay-sm',\n ],\n },\n panel: {\n base: 'grid min-w-72 max-w-[calc(100vw-2rem)] gap-0 overflow-hidden',\n variants: {\n hasPresets: {\n true: '',\n false: '',\n },\n presetsPosition: {\n left: '',\n right: '',\n top: '',\n bottom: '',\n },\n },\n compounds: [\n {when: {hasPresets: true, presetsPosition: 'left'}, class: 'sm:grid-cols-[minmax(9rem,11rem)_auto]'},\n {when: {hasPresets: true, presetsPosition: 'right'}, class: 'sm:grid-cols-[auto_minmax(9rem,11rem)]'},\n ],\n defaults: {\n hasPresets: false,\n presetsPosition: 'left',\n },\n },\n calendarWrap: {\n base: 'relative grid size-full place-items-center overflow-x-auto overflow-y-auto p-popover-padding',\n },\n calendar: {\n base: 'grid max-w-full gap-2 text-sm',\n },\n presets: {\n base: [\n 'grid content-start gap-1 p-popover-padding',\n ],\n },\n preset: {\n base: OPTION_ITEM_CLASSES,\n },\n footer: {\n base: 'flex items-center justify-end gap-2 p-popover-padding',\n },\n nativeWrapper: {\n base: 'relative w-full min-w-0',\n },\n native: {\n base: [\n FIELD_CONTROL_NATIVE_CLASSES,\n CONTROL_MIN_SIZE_CLASSES.lg,\n ],\n variants: {\n radius: CONTROL_RADIUS_CLASSES,\n },\n defaults: {\n radius: 'md',\n },\n },\n },\n}});\n\nexport {datePickerStyles};\n","type DateFormatToken = '%Y' | '%m' | '%d';\n\ntype CompiledFormat = {\n source: string;\n tokens: DateFormatToken[];\n};\n\nconst ISO_DATE = /^\\d{4}-\\d{2}-\\d{2}$/;\nconst ISO_RANGE = /^\\d{4}-\\d{2}-\\d{2}\\/\\d{4}-\\d{2}-\\d{2}$/;\nconst TOKEN_PATTERN = /%[Ymd]/g;\n\nconst escapeRegex = (value: string): string => value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\nconst compileLiteral = (value: string): string => {\n let cursor = 0;\n let source = '';\n for (const match of value.matchAll(/[\\s/-]+/g)) {\n source += escapeRegex(value.slice(cursor, match.index));\n source += '(?:\\\\s|[/-])+';\n cursor = (match.index ?? 0) + match[0].length;\n }\n return source + escapeRegex(value.slice(cursor));\n};\n\nconst compileFormat = (format: string): CompiledFormat => {\n const tokens: DateFormatToken[] = [];\n let cursor = 0;\n let source = '';\n for (const match of format.matchAll(TOKEN_PATTERN)) {\n source += compileLiteral(format.slice(cursor, match.index));\n const token = match[0] as DateFormatToken;\n tokens.push(token);\n source += token === '%Y' ? '(\\\\d{4})' : '(\\\\d{2})';\n cursor = (match.index ?? 0) + token.length;\n }\n source += compileLiteral(format.slice(cursor));\n return {source, tokens};\n};\n\nconst isoFromGroups = (groups: string[], tokens: DateFormatToken[]): string | null => {\n const values = Object.fromEntries(tokens.map((token, index) => [token, groups[index] ?? '']));\n const year = Number(values['%Y']);\n const month = Number(values['%m']);\n const day = Number(values['%d']);\n if (!year || !month || !day || new Set(tokens).size !== 3) return null;\n const date = new Date(Date.UTC(year, month - 1, day));\n if (date.getUTCFullYear() !== year || date.getUTCMonth() !== month - 1 || date.getUTCDate() !== day) return null;\n return `${String(year).padStart(4, '0')}-${String(month).padStart(2, '0')}-${String(day).padStart(2, '0')}`;\n};\n\nconst parseDateValue = ({\n input,\n format,\n range,\n separator,\n}: {\n input: string;\n format: string;\n range: boolean;\n separator: string;\n}): string | null => {\n const compiled = compileFormat(format);\n if (!range) {\n const match = input.trim().match(new RegExp(`^${compiled.source}$`));\n return match ? isoFromGroups(match.slice(1), compiled.tokens) : null;\n }\n const match = input.trim().match(new RegExp(\n `^${compiled.source}${compileLiteral(separator)}${compiled.source}$`,\n ));\n if (!match) return null;\n const width = compiled.tokens.length;\n const start = isoFromGroups(match.slice(1, width + 1), compiled.tokens);\n const end = isoFromGroups(match.slice(width + 1), compiled.tokens);\n return start && end && start <= end ? `${start}/${end}` : null;\n};\n\nconst formatIsoDate = (value: string, format: string): string => {\n if (!ISO_DATE.test(value)) return value;\n const [year = '', month = '', day = ''] = value.split('-');\n return format.replaceAll('%Y', year).replaceAll('%m', month).replaceAll('%d', day);\n};\n\nconst formatDatePlaceholder = (format: string): string => format\n .replaceAll('%Y', 'YYYY')\n .replaceAll('%m', 'MM')\n .replaceAll('%d', 'DD');\n\nconst sanitizeDateInput = ({\n input,\n format,\n separator,\n}: {\n input: string;\n format: string;\n separator: string;\n}): string => {\n const configuredLiterals = new Set(`${format.replace(TOKEN_PATTERN, '')}${separator}`);\n return Array.from(input).filter((character) => (\n /[0-9]/.test(character)\n || /[\\s/-]/.test(character)\n || configuredLiterals.has(character)\n )).join('');\n};\n\nconst maskDateInput = ({\n input,\n format,\n range,\n separator,\n}: {\n input: string;\n format: string;\n range: boolean;\n separator: string;\n}): string => {\n const endpointMask = format\n .replaceAll('%Y', '9999')\n .replaceAll('%m', '99')\n .replaceAll('%d', '99');\n const mask = range ? `${endpointMask}${separator}${endpointMask}` : endpointMask;\n const digits = input.match(/[0-9]/g) ?? [];\n let digitIndex = 0;\n let output = '';\n\n for (let index = 0; index < mask.length; index += 1) {\n const character = mask[index] ?? '';\n if (character === '9') {\n const digit = digits[digitIndex];\n if (digit === undefined) break;\n output += digit;\n digitIndex += 1;\n continue;\n }\n if (digitIndex > 0 && mask.slice(index + 1).includes('9')) output += character;\n }\n return output;\n};\n\nconst formatDateValue = ({\n value,\n format,\n range,\n separator,\n}: {\n value: string;\n format: string;\n range: boolean;\n separator: string;\n}): string => {\n if (!value) return '';\n if (!range) return formatIsoDate(value, format);\n if (!ISO_RANGE.test(value)) return value;\n const [start = '', end = ''] = value.split('/');\n return `${formatIsoDate(start, format)}${separator}${formatIsoDate(end, format)}`;\n};\n\nconst withinDateBounds = (value: string, min: string, max: string): boolean => {\n const dates = ISO_RANGE.test(value) ? value.split('/') : [value];\n return dates.every((date) => ISO_DATE.test(date) && (!min || date >= min) && (!max || date <= max));\n};\n\nexport {\n formatDatePlaceholder,\n formatDateValue,\n ISO_DATE,\n ISO_RANGE,\n maskDateInput,\n parseDateValue,\n sanitizeDateInput,\n withinDateBounds,\n};\n","import type Alpine from 'alpinejs';\n\nimport {\n type AlpineMachine,\n createAlpineMachine,\n defineAlpineData,\n type MachineSnapshot,\n reflectSchemaProp,\n type TransitionForHook,\n type TrellisAlpineComponent,\n} from '@client/runtime';\nimport {createAnchoredPopoverSurface, type AnchoredPopoverSurface} from '@client/runtime/anchored-popover';\nimport {addDismissableLayer} from '@client/runtime/dismissable-layer';\nimport {\n dispatchNativeControlChange,\n syncControlPresence,\n syncNativeControl,\n syncRepeatedHiddenInputs,\n} from '@client/runtime/form-control';\nimport {mergeBindings, type BindingObject} from '@client/runtime/merge-bindings';\nimport {resolveStyle} from '@client/runtime/styles';\nimport {addListener, asBool, dispatch, type CleanupStack, setPresence} from '@client/utils';\nimport {datePickerSchema, type DatePickerPreset, type DatePickerProps} from './contract';\nimport {\n createDatePickerMachine,\n type DatePickerContext,\n datePickerHooks,\n type SelectionSource,\n} from './machine';\nimport {datePickerStyles} from './styles';\nimport {\n formatDatePlaceholder,\n formatDateValue,\n ISO_DATE,\n ISO_RANGE,\n maskDateInput,\n parseDateValue,\n sanitizeDateInput,\n withinDateBounds,\n} from './value';\n\ntype DatePickerTransitionName = (typeof datePickerHooks)[number]['name'];\ntype DatePickerTransition<TName extends DatePickerTransitionName = DatePickerTransitionName> = TransitionForHook<\n Extract<(typeof datePickerHooks)[number], {name: TName}>,\n HTMLElement\n>;\n\ntype CalendarElement = HTMLElement & {\n value: string;\n focus(options?: FocusOptions & {target?: 'day' | 'next' | 'previous'}): void;\n};\n\ntype PopoverElement = HTMLElement & {showPopover(): void; hidePopover(): void};\n\n/**\n * Public Alpine API for `ui.datePicker`.\n *\n * @public\n */\ninterface UiDatePickerApi {\n /** Whether the picker is opening or fully open. */\n readonly isOpen: boolean;\n /** Whether the user is editing an uncommitted value. */\n readonly isEditing: boolean;\n /** Canonical ISO date or ISO date range. */\n readonly value: string;\n /** Canonical value currently staged in confirm mode. */\n readonly pendingValue: string;\n /** Identifier of the selected preset, when one matches. */\n readonly preset: string;\n /** Opens the calendar unless the picker is disabled or readonly. */\n open(event?: Event): void;\n /** Closes the calendar and restores focus after keyboard dismissal. */\n close(event?: Event): void;\n /** Reverses the current disclosure lifecycle. */\n toggle(event?: Event): void;\n /** Selects a canonical ISO date or ISO range. */\n select(value: string, event?: Event): void;\n /** Selects the preset identified by its stable value. */\n selectPreset(value: string, event?: Event): void;\n /** Selects the configured today value. */\n selectToday(event?: Event): void;\n /** Clears the committed date, preset, and submitted controls. */\n clear(event?: Event): void;\n /** Discards a pending confirm-mode selection and closes the calendar. */\n cancel(event?: Event): void;\n}\n\ntype DatePickerData = AlpineMachine<DatePickerContext, DatePickerProps, typeof datePickerHooks>\n & UiDatePickerApi\n & {\n readonly root: BindingObject;\n effectivePlaceholder(): string;\n init(): void;\n destroy(): void;\n };\n\nconst YEAR_OPTION_PAST_OFFSET = 100;\nconst YEAR_OPTION_FUTURE_OFFSET = 10;\n\nconst splitRange = (value: string): [string, string] => {\n const [start = '', end = ''] = value.split('/');\n return [start, end];\n};\nconst currentYear = (): number => new Date().getFullYear();\nconst defaultMinDate = (): string => `${currentYear() - YEAR_OPTION_PAST_OFFSET}-01-01`;\nconst defaultMaxDate = (): string => `${currentYear() + YEAR_OPTION_FUTURE_OFFSET}-12-31`;\nconst todayIsoDate = (): string => new Date().toISOString().slice(0, 10);\n\nconst formatMonthHeading = (value: string, locale: string): string => {\n if (!ISO_DATE.test(value)) return '';\n return new Intl.DateTimeFormat(locale || undefined, {\n month: 'long',\n timeZone: 'UTC',\n year: 'numeric',\n }).format(new Date(`${value}T00:00:00.000Z`));\n};\n\nconst presetFromElement = (el: HTMLElement): DatePickerPreset => ({\n value: el.dataset.value ?? '',\n label: el.dataset.label ?? el.textContent?.trim() ?? '',\n start: el.dataset.start ?? '',\n end: el.dataset.end ?? '',\n disabled: asBool({value: el.dataset.disabled}),\n});\n\nconst UiDatePicker = (): TrellisAlpineComponent<DatePickerData> => {\n let rootEl: (HTMLElement & Alpine.ElementWithXAttributes) | null = null;\n let triggerId = '';\n let popoverId = '';\n let popover: AnchoredPopoverSurface | null = null;\n let cleanup: CleanupStack = [];\n let hiddenInputsKey = '';\n let presetInputKey = '';\n let liveMessage = '';\n let lastInputValue = '';\n let restoreFocusAfterClose = false;\n\n const root = (): HTMLElement => {\n if (!rootEl) throw new Error('Date picker has not been initialized.');\n return rootEl;\n };\n const currentProps = (): Readonly<DatePickerProps> => bridge.getCommittedSnapshot().props;\n const currentContext = (): Readonly<DatePickerContext> => bridge.getCommittedSnapshot().context;\n const trigger = (): HTMLElement => {\n const el = root().querySelector<HTMLElement>('[data-ui-date-picker-trigger]');\n if (!el) throw new Error('Date picker requires a trigger.');\n return el;\n };\n const input = (): HTMLInputElement => {\n const el = root().querySelector<HTMLInputElement>('[data-ui-date-picker-input]');\n if (!el) throw new Error('Date picker requires an input.');\n return el;\n };\n const toggleButton = (): HTMLButtonElement | null => root().querySelector('[data-ui-date-picker-toggle]');\n const popoverEl = (): PopoverElement => {\n const el = root().querySelector<HTMLElement>('[data-ui-date-picker-popover]');\n if (!el) throw new Error('Date picker requires a popover.');\n return el as PopoverElement;\n };\n const calendar = (): CalendarElement | null => root().querySelector('[data-ui-date-picker-calendar]');\n const hiddenInputsEl = (): HTMLElement | null => root().querySelector('[data-ui-date-picker-hidden-inputs]');\n const presetInputsEl = (): HTMLElement | null => root().querySelector('[data-ui-date-picker-preset-inputs]');\n const isRange = (): boolean => currentProps().mode === 'range';\n const effectiveMonths = (): number => currentProps().months || (isRange() ? 2 : 1);\n const presetItems = (): DatePickerPreset[] => {\n const items = Array.from(root().querySelectorAll<HTMLElement>('[data-ui-date-picker-preset]'))\n .map(presetFromElement)\n .filter((preset) => preset.value && preset.start && preset.end);\n return items.length ? items : currentProps().presets;\n };\n const formatted = (value: string): string => formatDateValue({\n value,\n format: currentProps().format,\n range: isRange(),\n separator: currentProps().rangeSeparator,\n });\n const selectedPreset = (value: string): string => {\n const match = presetItems().find((preset) => (\n isRange() ? `${preset.start}/${preset.end}` : preset.start\n ) === value);\n const custom = presetItems().find((preset) => preset.value === 'custom');\n return match?.value ?? (value && custom ? 'custom' : '');\n };\n const syncCalendarHeading = (focusedDate?: string): void => {\n const heading = root().querySelector<HTMLElement>('[data-ui-date-picker-calendar-heading]');\n if (!heading) return;\n const props = currentProps();\n const value = focusedDate || splitRange(currentContext().selection.value || props.openTo || props.today || todayIsoDate())[0];\n heading.textContent = formatMonthHeading(value, props.locale);\n };\n const syncCalendar = (): void => {\n const el = calendar();\n if (!el) return;\n const props = currentProps();\n const context = currentContext();\n const value = context.selection.pendingValue;\n if (customElements.get('calendar-date')) el.value = value;\n el.setAttribute('value', value);\n setPresence({el, attr: 'tentative', present: isRange() && Boolean(value) && !ISO_RANGE.test(value)});\n el.setAttribute('months', String(effectiveMonths()));\n el.style.setProperty('--ui-date-picker-month-columns', String(effectiveMonths()));\n el.setAttribute('min', props.min || defaultMinDate());\n el.setAttribute('max', props.max || defaultMaxDate());\n if (props.today) el.setAttribute('today', props.today); else el.removeAttribute('today');\n const focused = props.forceOpenTo ? props.openTo : context.selection.value || props.openTo || props.today || todayIsoDate();\n el.setAttribute('focused-date', splitRange(focused)[0]);\n if (props.locale) el.setAttribute('locale', props.locale); else el.removeAttribute('locale');\n if (props.firstDayOfWeek >= 0) el.setAttribute('first-day-of-week', String(props.firstDayOfWeek));\n const inlineHeading = !props.selectableHeader && effectiveMonths() === 1;\n setPresence({el, attr: 'data-inline-heading', present: inlineHeading, value: 'true'});\n setPresence({el, attr: 'data-hide-month-heading', present: (props.selectableHeader && !isRange()) || inlineHeading, value: 'true'});\n setPresence({el, attr: 'data-fixed-weeks', present: props.fixedWeeks, value: 'true'});\n setPresence({el, attr: 'show-outside-days', present: props.showOutsideDays || props.fixedWeeks});\n setPresence({el, attr: 'show-week-numbers', present: props.showWeekNumbers});\n };\n const syncPresets = (): void => {\n const value = currentContext().selection.pendingValue || currentContext().selection.value;\n root().querySelectorAll<HTMLElement>('[data-ui-date-picker-preset]').forEach((el) => {\n const preset = presetFromElement(el);\n const presetValue = isRange() ? `${preset.start}/${preset.end}` : preset.start;\n setPresence({el, attr: 'data-selected', present: presetValue === value, value: 'true'});\n setPresence({el, attr: 'data-disabled', present: preset.disabled ?? false, value: 'true'});\n });\n };\n const syncHiddenInputs = (): void => {\n const container = hiddenInputsEl();\n if (!container) return;\n const props = currentProps();\n const value = currentContext().selection.value;\n if (!isRange()) {\n hiddenInputsKey = syncRepeatedHiddenInputs({container, currentKey: hiddenInputsKey, state: {\n name: props.name,\n values: value ? [value] : [],\n required: props.required,\n form: props.form,\n marker: 'data-ui-date-picker-hidden-input',\n }});\n return;\n }\n const [start, end] = splitRange(value);\n if (props.startName || props.endName) {\n const key = JSON.stringify({startName: props.startName, endName: props.endName, start, end, form: props.form});\n if (key === hiddenInputsKey) return;\n container.replaceChildren();\n [[props.startName, start], [props.endName, end]].forEach(([name, itemValue]) => {\n if (!name) return;\n const hidden = document.createElement('input');\n hidden.type = 'hidden'; hidden.name = name; hidden.value = itemValue ?? '';\n hidden.setAttribute('data-ui-date-picker-hidden-input', '');\n if (props.form) hidden.setAttribute('form', props.form);\n container.append(hidden);\n });\n hiddenInputsKey = key;\n return;\n }\n hiddenInputsKey = syncRepeatedHiddenInputs({container, currentKey: hiddenInputsKey, state: {\n name: props.name, values: value ? [value] : [], required: props.required, form: props.form,\n marker: 'data-ui-date-picker-hidden-input',\n }});\n };\n const syncPresetInput = (): void => {\n const container = presetInputsEl();\n if (!container) return;\n const props = currentProps();\n const value = selectedPreset(currentContext().selection.value);\n presetInputKey = syncRepeatedHiddenInputs({container, currentKey: presetInputKey, state: {\n name: props.presetName, values: value ? [value] : [], form: props.form,\n marker: 'data-ui-date-picker-preset-input',\n }});\n };\n const syncControl = (): void => {\n const props = currentProps();\n const context = currentContext();\n const visible = bridge.hasTag('visible');\n const expanded = bridge.hasTag('expanded');\n const triggerEl = trigger();\n const inputEl = input();\n const floating = popoverEl();\n triggerEl.id = triggerId;\n floating.id = popoverId;\n floating.dataset.state = expanded ? 'open' : 'closed';\n floating.hidden = !visible;\n triggerEl.dataset.state = expanded ? 'open' : 'closed';\n syncControlPresence({el: triggerEl, state: props, value: 'true'});\n const toggle = toggleButton();\n const ariaOwner = toggle ?? triggerEl;\n ariaOwner.setAttribute('aria-haspopup', 'dialog');\n ariaOwner.setAttribute('aria-expanded', expanded ? 'true' : 'false');\n ariaOwner.setAttribute('aria-controls', popoverId);\n if (triggerEl instanceof HTMLButtonElement) triggerEl.disabled = props.disabled;\n const displayValue = bridge.hasTag('editing')\n ? context.input.value\n : formatted(context.selection.value);\n syncNativeControl({input: inputEl, state: {\n name: '',\n value: displayValue,\n disabled: props.disabled,\n readonly: props.readonly,\n required: props.required && props.mode === 'single',\n invalid: props.invalid || !context.input.valid,\n }});\n inputEl.placeholder = component.effectivePlaceholder();\n root().querySelectorAll<HTMLButtonElement>('[data-ui-date-picker-clear], [data-ui-date-picker-toggle]')\n .forEach((button) => { button.disabled = props.disabled; });\n lastInputValue = displayValue;\n const live = root().querySelector<HTMLElement>('[data-ui-date-picker-live]');\n if (live) live.textContent = liveMessage;\n };\n const syncToday = (): void => {\n const button = root().querySelector<HTMLElement>('[data-ui-date-picker-calendar-today]');\n const dayEl = root().querySelector<HTMLElement>('[data-ui-date-picker-today-day]');\n if (!button || !dayEl) return;\n const today = currentProps().today || todayIsoDate();\n const day = ISO_DATE.test(today) ? String(Number(today.slice(-2))) : '';\n dayEl.textContent = day;\n button.setAttribute('aria-label', day ? `Go to today, ${today}` : 'Go to today');\n };\n const syncSurface = (): void => {\n const props = currentProps();\n const floating = popoverEl();\n floating.dataset.uiSurface = props.surface;\n floating.dataset.uiElevation = props.elevation;\n };\n const syncAll = (): void => {\n reflectSchemaProp({\n el: root(),\n schema: datePickerSchema,\n key: 'value',\n value: currentContext().selection.value,\n });\n syncControl(); syncCalendar(); syncCalendarHeading(); syncToday(); syncSurface();\n syncHiddenInputs(); syncPresetInput(); syncPresets();\n if (bridge.hasTag('visible')) popover?.sync();\n };\n const notifyChange = (): void => {\n dispatchNativeControlChange({\n container: hiddenInputsEl(), fallback: root(), marker: 'data-ui-date-picker-hidden-input',\n });\n dispatch({el: root(), name: 'ui:change'});\n };\n const commit = (value: string, source: SelectionSource, preset = ''): void => {\n if (currentProps().disabled || currentProps().readonly) return;\n bridge.send({type: 'SELECT', value, source, preset});\n };\n const parseInput = (raw: string): string | null => {\n const props = currentProps();\n const value = parseDateValue({input: raw, format: props.format, range: isRange(), separator: props.rangeSeparator});\n return value && withinDateBounds(value, props.min, props.max) ? value : null;\n };\n\n const bridge = createAlpineMachine({\n schema: datePickerSchema,\n hooks: datePickerHooks,\n createMachine: ({props}) => createDatePickerMachine({\n props,\n context: {\n selection: {value: props.value, pendingValue: props.value, previousValue: props.value, source: 'props'},\n input: {value: '', valid: true},\n preset: {value: props.preset},\n },\n effects: {\n prepareOpen: () => {\n const floating = popoverEl();\n floating.hidden = false;\n popover?.open();\n syncAll();\n },\n finishOpen: () => {\n if (restoreFocusAfterClose) calendar()?.focus({preventScroll: true});\n restoreFocusAfterClose = false;\n dispatch({el: root(), name: 'ui:open'});\n },\n prepareClose: syncAll,\n finishClose: () => {\n const floating = popoverEl();\n popover?.close();\n floating.hidden = true;\n if (restoreFocusAfterClose) trigger().focus({preventScroll: true});\n restoreFocusAfterClose = false;\n syncAll();\n dispatch({el: root(), name: 'ui:close'});\n },\n syncInput: syncControl,\n syncPending: () => { syncControl(); syncCalendar(); syncPresets(); },\n markInvalid: () => {\n input().setCustomValidity(`Enter a date in ${currentProps().format}`);\n syncControl();\n dispatch({el: root(), name: 'ui:invalid'});\n },\n commitSelection: () => {\n input().setCustomValidity('');\n const context = currentContext();\n liveMessage = context.selection.value ? (isRange() ? 'Range selected' : 'Date selected') : 'Date cleared';\n syncAll();\n notifyChange();\n dispatch({el: root(), name: context.selection.value ? 'ui:select' : 'ui:clear'});\n },\n syncProps: syncAll,\n syncPresets: () => { syncPresets(); syncPresetInput(); },\n },\n }),\n resolveTransitionElement: ({name, root: owner}) => {\n if (name === 'opening' || name === 'closing') return owner.querySelector('[data-ui-date-picker-popover]');\n if (name === 'parsing') return owner.querySelector('[data-ui-date-picker-input]');\n return owner;\n },\n });\n\n let component!: TrellisAlpineComponent<DatePickerData>;\n component = {\n ...bridge,\n get isOpen(): boolean { return bridge.hasTag('expanded'); },\n get isEditing(): boolean { return bridge.hasTag('editing'); },\n get value(): string { return bridge.getCommittedSnapshot().context.selection.value; },\n get pendingValue(): string { return bridge.getCommittedSnapshot().context.selection.pendingValue; },\n get preset(): string { return selectedPreset(bridge.getCommittedSnapshot().context.selection.value); },\n get root(): BindingObject {\n return mergeBindings({inputs: [resolveStyle({\n part: datePickerStyles.parts.root,\n props: bridge.getCommittedSnapshot().props,\n className: bridge.getCommittedSnapshot().props.class,\n }), {'data-ui-date-picker': '', ':data-state': () => (component.isOpen ? 'open' : 'closed')}]});\n },\n effectivePlaceholder(): string {\n const props = bridge.getCommittedSnapshot().props;\n if (props.placeholder) return props.placeholder;\n const placeholder = formatDatePlaceholder(props.format);\n return props.mode === 'range'\n ? `${placeholder}${props.rangeSeparator}${placeholder}`\n : placeholder;\n },\n open(event?: Event): void {\n event?.preventDefault();\n if (event instanceof KeyboardEvent) restoreFocusAfterClose = true;\n bridge.send('OPEN');\n },\n close(event?: Event): void {\n event?.preventDefault();\n if (event instanceof KeyboardEvent) restoreFocusAfterClose = true;\n bridge.send('CLOSE');\n },\n toggle(event?: Event): void {\n event?.preventDefault();\n bridge.send('TOGGLE');\n },\n select(value: string, event?: Event): void {\n event?.preventDefault();\n if (!withinDateBounds(value, currentProps().min, currentProps().max)) return;\n const valid = isRange() ? ISO_RANGE.test(value) : ISO_DATE.test(value);\n if (valid) commit(value, 'input');\n },\n selectPreset(value: string, event?: Event): void {\n event?.preventDefault();\n if (currentProps().disabled || currentProps().readonly) return;\n const preset = presetItems().find((item) => item.value === value);\n if (!preset || preset.disabled) return;\n const next = isRange() ? `${preset.start}/${preset.end}` : preset.start;\n if (currentProps().close === 'confirm') bridge.send({type: 'PENDING', value: next, source: 'preset', preset: value});\n else commit(next, 'preset', value);\n },\n selectToday(event?: Event): void {\n event?.preventDefault();\n if (currentProps().disabled || currentProps().readonly) return;\n const today = currentProps().today || todayIsoDate();\n const value = isRange() ? `${today}/${today}` : today;\n if (currentProps().close === 'confirm') bridge.send({type: 'PENDING', value, source: 'today'});\n else commit(value, 'today');\n },\n clear(event?: Event): void {\n event?.preventDefault();\n if (currentProps().disabled || currentProps().readonly) return;\n bridge.send('CLEAR');\n },\n cancel(event?: Event): void { event?.preventDefault(); bridge.send('CANCEL'); bridge.send('CLOSE'); },\n init(): void {\n rootEl = this.$el;\n triggerId = this.$id('date-picker-trigger');\n popoverId = this.$id('date-picker-popover');\n bridge.connect(this.$el, this.snapshot);\n popover = createAnchoredPopoverSurface({\n reference: trigger,\n floating: popoverEl,\n position: () => currentProps().side,\n align: () => currentProps().align,\n gap: () => currentProps().gap,\n offset: () => currentProps().offset,\n matchReferenceWidth: false,\n });\n const triggerEl = trigger();\n const inputEl = input();\n const floating = popoverEl();\n addListener({target: triggerEl, event: 'click', cleanup, handler: (event) => {\n const target = event.target;\n if (target instanceof Element && target.closest('[data-ui-date-picker-clear]')) component.clear(event);\n else component.toggle(event);\n }});\n addListener({target: triggerEl, event: 'keydown', cleanup, handler: (raw) => {\n const event = raw as KeyboardEvent;\n if ((event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') && !component.isOpen) component.open(event);\n else if (event.key === 'Escape' && component.isOpen) component.close(event);\n }});\n addListener({target: root(), event: 'keydown', cleanup, handler: (raw) => {\n const event = raw as KeyboardEvent;\n if (event.key === 'Escape' && component.isOpen) component.close(event);\n }});\n addListener({target: inputEl, event: 'input', cleanup, handler: () => {\n const cursor = inputEl.selectionStart ?? inputEl.value.length;\n const digitsBeforeCursor = (inputEl.value.slice(0, cursor).match(/[0-9]/g) ?? []).length;\n let raw = sanitizeDateInput({\n input: inputEl.value,\n format: currentProps().format,\n separator: currentProps().rangeSeparator,\n });\n const deleting = lastInputValue.length - raw.length === 1;\n if (!deleting) raw = maskDateInput({\n input: raw,\n format: currentProps().format,\n range: isRange(),\n separator: currentProps().rangeSeparator,\n });\n if (inputEl.value !== raw) {\n inputEl.value = raw;\n let digitsSeen = 0;\n let nextCursor = raw.length;\n for (let index = 0; index < raw.length; index += 1) {\n if (/[0-9]/.test(raw[index] ?? '')) digitsSeen += 1;\n if (digitsSeen !== digitsBeforeCursor) continue;\n nextCursor = index + 1;\n while (nextCursor < raw.length && !/[0-9]/.test(raw[nextCursor] ?? '')) nextCursor += 1;\n break;\n }\n inputEl.setSelectionRange(nextCursor, nextCursor);\n }\n lastInputValue = raw;\n bridge.send({type: 'INPUT', input: raw});\n const parsed = parseInput(raw);\n if (parsed) commit(parsed, 'input');\n }});\n addListener({target: inputEl, event: 'change', cleanup, handler: () => {\n const parsed = parseInput(inputEl.value);\n if (parsed) commit(parsed, 'input');\n else if (inputEl.value.trim()) bridge.send({type: 'PARSE', input: inputEl.value});\n else bridge.send('CLEAR');\n }});\n addListener({target: floating, event: 'pointerdown', cleanup, handler: (event) => event.stopPropagation()});\n addListener({target: floating, event: 'click', cleanup, handler: (event) => {\n const target = event.target;\n if (!(target instanceof Element)) return;\n const preset = target.closest<HTMLElement>('[data-ui-date-picker-preset]');\n if (preset) component.selectPreset(preset.dataset.value ?? '', event);\n else if (target.closest('[data-ui-date-picker-clear]')) component.clear(event);\n else if (target.closest('[data-ui-date-picker-cancel]')) component.cancel(event);\n else if (target.closest('[data-ui-date-picker-apply]')) bridge.send('APPLY');\n else if (target.closest('[data-ui-date-picker-today]')) component.selectToday(event);\n }});\n const calendarEl = calendar();\n if (calendarEl) {\n void customElements.whenDefined('calendar-date').then(() => {\n if (rootEl) syncCalendar();\n });\n addListener({target: calendarEl, event: 'change', cleanup, handler: () => {\n const value = calendarEl.value;\n if (isRange() && !ISO_RANGE.test(value)) {\n liveMessage = 'Start date selected';\n bridge.send({type: 'PENDING', value, source: 'calendar'});\n } else if (currentProps().close === 'confirm') {\n bridge.send({type: 'PENDING', value, source: 'calendar'});\n } else commit(value, 'calendar');\n }});\n addListener({target: calendarEl, event: 'focusday', cleanup, handler: (event) => {\n const detail = (event as CustomEvent<Date>).detail;\n if (detail instanceof Date) syncCalendarHeading(detail.toISOString().slice(0, 10));\n }});\n }\n cleanup.push(addDismissableLayer({\n isEnabled: () => component.isOpen,\n roots: () => [root(), floating],\n onDismiss: () => component.close(),\n }));\n const presetObserver = new MutationObserver(() => bridge.send('PRESETS_CHANGED'));\n presetObserver.observe(root(), {childList: true, subtree: true, attributes: true, attributeFilter: ['data-value', 'data-start', 'data-end', 'data-disabled']});\n cleanup.push(() => presetObserver.disconnect());\n syncAll();\n },\n destroy(): void {\n cleanup.forEach((dispose) => dispose());\n cleanup = [];\n popover?.destroy();\n popover = null;\n bridge.disconnect();\n rootEl = null;\n },\n };\n return component;\n};\n\nconst registerDatePicker = defineAlpineData('UiDatePicker', UiDatePicker);\n\nexport {registerDatePicker, UiDatePicker};\nexport type {DatePickerData, DatePickerTransition, UiDatePickerApi};\n","// Generated by scripts/generate_component_entries.mjs from packages/client/component-entries.json.\n// Do not edit by hand.\nimport type {Alpine as AlpineType} from 'alpinejs';\nimport {registerMotionCapability} from '../../capabilities/motion';\nimport {registerCalendarCapability} from '../../capabilities/calendar';\nimport {registerDatePicker as registerComponent} from './index';\n\nconst registered = new WeakSet<AlpineType>();\n\nconst registerDatePicker = (AlpineInstance: AlpineType): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n registerMotionCapability(AlpineInstance);\n registerCalendarCapability(AlpineInstance);\n registerComponent(AlpineInstance);\n};\n\nexport {registerDatePicker};\nexport default registerDatePicker;\nexport * from './index';\n"],"file":"entry.generated-BiyFgA-e.js"}
|
|
1
|
+
{"version":3,"mappings":"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","names":[],"ignoreList":[],"sources":["../../../../../../../../client/src/capabilities/calendar.ts","../../../../../../../../client/src/components/date-picker/contract.ts","../../../../../../../../client/src/components/date-picker/machine.ts","../../../../../../../../client/src/components/date-picker/styles.ts","../../../../../../../../client/src/components/date-picker/value.ts","../../../../../../../../client/src/components/date-picker/index.ts","../../../../../../../../client/src/components/date-picker/entry.generated.ts"],"sourcesContent":["import type {Alpine as AlpineType} from 'alpinejs';\n\nlet registration: Promise<unknown> | null = null;\n\nconst registerCalendarCapability = (_AlpineInstance: AlpineType): void => {\n if (typeof customElements === 'undefined' || customElements.get('calendar-date')) return;\n registration ??= import('cally');\n};\n\nexport {registerCalendarCapability};\n","import {bool, json, number, oneOf, string, type SchemaToProps} from '../../runtime';\nimport {\n ALIGNMENTS,\n COMPONENT_RADII,\n CONTROL_VARIANTS,\n ELEVATION_REFERENCES,\n POSITIONS,\n SURFACE_REFERENCES,\n type Alignment,\n type ComponentRadius,\n type ControlVariant,\n type ElevationReference,\n type Position,\n type SurfaceReference,\n} from '../common';\n\nconst DATE_PICKER_MODES = ['single', 'range'] as const;\nconst DATE_PICKER_IMPLEMENTATIONS = ['enhanced', 'native'] as const;\nconst DATE_PICKER_VARIANTS = CONTROL_VARIANTS;\nconst DATE_PICKER_CLOSE = ['auto', 'confirm'] as const;\nconst DATE_PICKER_COLORS = ['neutral', 'accent'] as const;\nconst DATE_PICKER_RADII = COMPONENT_RADII;\nconst DATE_PICKER_PRESETS_POSITIONS = ['left', 'right', 'top', 'bottom'] as const;\nconst DATE_PICKER_SURFACES = SURFACE_REFERENCES;\nconst DATE_PICKER_ELEVATIONS = ELEVATION_REFERENCES;\n\ntype DatePickerMode = typeof DATE_PICKER_MODES[number];\ntype DatePickerImplementation = typeof DATE_PICKER_IMPLEMENTATIONS[number];\ntype DatePickerVariant = ControlVariant;\ntype DatePickerClose = typeof DATE_PICKER_CLOSE[number];\ntype DatePickerColor = typeof DATE_PICKER_COLORS[number];\ntype DatePickerRadius = ComponentRadius;\ntype DatePickerPresetsPosition = typeof DATE_PICKER_PRESETS_POSITIONS[number];\ntype DatePickerSide = Position;\ntype DatePickerAlign = Alignment;\ntype DatePickerSurface = SurfaceReference;\ntype DatePickerElevation = ElevationReference;\n\ntype DatePickerPreset = {\n value: string;\n label: string;\n start: string;\n end: string;\n disabled?: boolean;\n};\n\nconst datePickerSchema = {\n name: string,\n value: string,\n startName: string,\n endName: string,\n mode: oneOf(DATE_PICKER_MODES, 'single' as DatePickerMode),\n placeholder: string,\n min: string,\n max: string,\n today: string,\n openTo: string,\n forceOpenTo: bool,\n months: number.clamp(0, 12).default(0),\n firstDayOfWeek: number.clamp(-1, 6).default(0),\n locale: string,\n format: string.default('%Y-%m-%d'),\n rangeSeparator: string.default('/'),\n showOutsideDays: bool,\n showWeekNumbers: bool,\n fixedWeeks: bool.default(true),\n selectableHeader: bool,\n withToday: bool,\n clearable: bool,\n disabled: bool,\n readonly: bool,\n required: bool,\n invalid: bool,\n side: oneOf(POSITIONS, 'bottom' as DatePickerSide),\n align: oneOf(ALIGNMENTS, 'start' as DatePickerAlign),\n offset: number.clamp(-100, 100).default(0),\n gap: number.clamp(0, 50).default(4),\n implementation: oneOf(DATE_PICKER_IMPLEMENTATIONS, 'enhanced' as DatePickerImplementation),\n variant: oneOf(DATE_PICKER_VARIANTS, 'outline' as DatePickerVariant),\n color: oneOf(DATE_PICKER_COLORS, 'neutral' as DatePickerColor),\n radius: oneOf(DATE_PICKER_RADII, 'md' as DatePickerRadius),\n surface: oneOf(DATE_PICKER_SURFACES, '+2' as DatePickerSurface),\n elevation: oneOf(DATE_PICKER_ELEVATIONS, '3' as DatePickerElevation),\n close: oneOf(DATE_PICKER_CLOSE, 'auto' as DatePickerClose),\n presets: json.array<DatePickerPreset>([]),\n presetsPosition: oneOf(DATE_PICKER_PRESETS_POSITIONS, 'left' as DatePickerPresetsPosition),\n preset: string,\n presetName: string,\n triggerClass: string,\n inputClass: string,\n popoverClass: string,\n calendarClass: string,\n presetsClass: string,\n presetClass: string,\n class: string,\n form: string,\n};\n\nconst datePickerPresetSchema = {\n value: string,\n label: string,\n start: string,\n end: string,\n disabled: bool,\n class: string,\n};\n\nconst datePickerTriggerSchema = {\n variant: oneOf(DATE_PICKER_VARIANTS, 'outline' as DatePickerVariant),\n radius: oneOf(DATE_PICKER_RADII, 'md' as DatePickerRadius),\n class: string,\n};\n\nconst datePickerPresetsSchema = {\n position: oneOf(DATE_PICKER_PRESETS_POSITIONS, 'left' as DatePickerPresetsPosition),\n class: string,\n};\n\ntype DatePickerProps = SchemaToProps<typeof datePickerSchema>;\ntype DatePickerPresetProps = SchemaToProps<typeof datePickerPresetSchema>;\ntype DatePickerPresetsProps = SchemaToProps<typeof datePickerPresetsSchema>;\ntype DatePickerTriggerProps = SchemaToProps<typeof datePickerTriggerSchema>;\n\nexport {\n DATE_PICKER_CLOSE,\n DATE_PICKER_COLORS,\n DATE_PICKER_ELEVATIONS,\n DATE_PICKER_IMPLEMENTATIONS,\n DATE_PICKER_MODES,\n DATE_PICKER_PRESETS_POSITIONS,\n DATE_PICKER_RADII,\n DATE_PICKER_SURFACES,\n DATE_PICKER_VARIANTS,\n datePickerPresetSchema,\n datePickerPresetsSchema,\n datePickerSchema,\n datePickerTriggerSchema,\n};\nexport type {\n DatePickerAlign,\n DatePickerClose,\n DatePickerColor,\n DatePickerElevation,\n DatePickerImplementation,\n DatePickerMode,\n DatePickerPreset,\n DatePickerPresetProps,\n DatePickerPresetsPosition,\n DatePickerPresetsProps,\n DatePickerProps,\n DatePickerRadius,\n DatePickerSide,\n DatePickerSurface,\n DatePickerTriggerProps,\n DatePickerVariant,\n};\n","import {\n createMachine,\n propsChanged,\n propsChangedEvent,\n type Machine,\n type MachineEventObject,\n type MachineScope,\n} from '../../runtime/state-machine';\nimport {defineHook, type TransitionHookDefinition} from '../../runtime/transition-coordinator';\nimport type {DatePickerProps} from './contract';\n\ntype SelectionSource = 'calendar' | 'input' | 'preset' | 'today' | 'clear' | 'props';\n\ntype DatePickerContext = {\n selection: {\n value: string;\n pendingValue: string;\n previousValue: string;\n source: SelectionSource;\n };\n input: {value: string; valid: boolean};\n preset: {value: string};\n};\n\ntype DatePickerMachineEffects = {\n prepareOpen(scope: MachineScope<DatePickerContext, DatePickerProps>): void;\n finishOpen(scope: MachineScope<DatePickerContext, DatePickerProps>): void;\n prepareClose(scope: MachineScope<DatePickerContext, DatePickerProps>): void;\n finishClose(scope: MachineScope<DatePickerContext, DatePickerProps>): void;\n syncInput(scope: MachineScope<DatePickerContext, DatePickerProps>): void;\n syncPending(scope: MachineScope<DatePickerContext, DatePickerProps>): void;\n markInvalid(scope: MachineScope<DatePickerContext, DatePickerProps>): void;\n commitSelection(scope: MachineScope<DatePickerContext, DatePickerProps>): void;\n syncProps(scope: MachineScope<DatePickerContext, DatePickerProps>): void;\n syncPresets(scope: MachineScope<DatePickerContext, DatePickerProps>): void;\n};\n\ntype CreateDatePickerMachineOptions = {\n props: DatePickerProps;\n context: DatePickerContext;\n effects: DatePickerMachineEffects;\n};\n\nconst openingHook = defineHook({\n name: 'opening',\n state: 'disclosure.opening',\n project: () => ({}),\n onDone: 'OPENING_DONE',\n onError: 'OPENING_ERROR',\n sends: {close: () => ({type: 'CLOSE'})},\n} satisfies TransitionHookDefinition<DatePickerContext, DatePickerProps, Record<string, never>, 'opening'>);\n\nconst closingHook = defineHook({\n name: 'closing',\n state: 'disclosure.closing',\n project: () => ({}),\n onDone: 'CLOSING_DONE',\n onError: 'CLOSING_ERROR',\n sends: {open: () => ({type: 'OPEN'})},\n} satisfies TransitionHookDefinition<DatePickerContext, DatePickerProps, Record<string, never>, 'closing'>);\n\nconst parsingHook = defineHook({\n name: 'parsing',\n state: 'feature.parsing',\n project: (snapshot) => ({input: snapshot.context.input.value}),\n onDone: 'PARSING_DONE',\n onError: 'PARSING_ERROR',\n sends: {\n select: (value: string) => ({type: 'SELECT', value, source: 'input'}),\n clear: () => ({type: 'CLEAR'}),\n },\n} satisfies TransitionHookDefinition<DatePickerContext, DatePickerProps, {input: string}, 'parsing'>);\n\nconst selectingHook = defineHook({\n name: 'selecting',\n state: 'feature.selecting',\n project: (snapshot) => ({\n value: snapshot.context.selection.value,\n previousValue: snapshot.context.selection.previousValue,\n source: snapshot.context.selection.source,\n preset: snapshot.context.preset.value,\n }),\n onDone: 'SELECTING_DONE',\n onError: 'SELECTING_ERROR',\n sends: {\n select: (value: string) => ({type: 'SELECT', value, source: 'input'}),\n clear: () => ({type: 'CLEAR'}),\n close: () => ({type: 'CLOSE'}),\n },\n} satisfies TransitionHookDefinition<DatePickerContext, DatePickerProps, {\n value: string;\n previousValue: string;\n source: SelectionSource;\n preset: string;\n}, 'selecting'>);\n\nconst datePickerHooks = [openingHook, closingHook, parsingHook, selectingHook] as const;\n\nconst nextProps = (event: MachineEventObject): DatePickerProps | null => propsChangedEvent<DatePickerProps>(event)?.props ?? null;\nconst blocked = (props: DatePickerProps): boolean => props.disabled || props.readonly;\nconst eventString = (event: MachineEventObject, key: string): string => (\n typeof event[key] === 'string' ? event[key] : ''\n);\nconst sourceFrom = (event: MachineEventObject): SelectionSource => {\n const source = eventString(event, 'source');\n return source === 'calendar' || source === 'input' || source === 'preset' || source === 'today' || source === 'props'\n ? source\n : 'clear';\n};\n\nconst shouldCloseFromProps = ({event}: MachineScope<DatePickerContext, DatePickerProps>): boolean => {\n const props = nextProps(event);\n return Boolean(props && (\n (propsChanged<DatePickerProps>(event, 'disabled') && props.disabled)\n || (propsChanged<DatePickerProps>(event, 'readonly') && props.readonly)\n ));\n};\n\nconst shouldAutoClose = ({props}: MachineScope<DatePickerContext, DatePickerProps>): boolean => props.close === 'auto';\n\nconst selectionUpdate = (\n context: DatePickerContext,\n event: MachineEventObject,\n value: string,\n): DatePickerContext => ({\n ...context,\n selection: {\n value,\n pendingValue: value,\n previousValue: context.selection.value,\n source: sourceFrom(event),\n },\n input: {value: eventString(event, 'input'), valid: true},\n preset: {value: eventString(event, 'preset')},\n});\n\nconst createDatePickerMachine = ({\n props,\n context,\n effects,\n}: CreateDatePickerMachineOptions): Machine<DatePickerContext, DatePickerProps> => createMachine({\n type: 'parallel',\n states: {\n disclosure: {\n initial: 'closed',\n states: {\n closed: {\n tags: ['closed'],\n on: {\n OPEN: {target: 'opening', guard: 'canOpen', reduce: 'beginOpen', effects: 'prepareOpen'},\n TOGGLE: {target: 'opening', guard: 'canOpen', reduce: 'beginOpen', effects: 'prepareOpen'},\n },\n },\n opening: {\n tags: ['visible', 'expanded', 'interactive', 'transitioning'],\n on: {\n OPENING_DONE: {target: 'open', effects: 'finishOpen'},\n OPENING_ERROR: {target: 'open', effects: 'finishOpen'},\n CLOSE: {target: 'closing', effects: 'prepareClose'},\n TOGGLE: {target: 'closing', effects: 'prepareClose'},\n SELECT: {target: 'closing', guard: shouldAutoClose, effects: 'prepareClose'},\n APPLY: {target: 'closing', effects: 'prepareClose'},\n PROPS_CHANGED: {target: 'closing', guard: shouldCloseFromProps, effects: 'prepareClose'},\n },\n },\n open: {\n tags: ['visible', 'expanded', 'interactive', 'open'],\n on: {\n CLOSE: {target: 'closing', effects: 'prepareClose'},\n TOGGLE: {target: 'closing', effects: 'prepareClose'},\n SELECT: {target: 'closing', guard: shouldAutoClose, effects: 'prepareClose'},\n APPLY: {target: 'closing', effects: 'prepareClose'},\n PROPS_CHANGED: {target: 'closing', guard: shouldCloseFromProps, effects: 'prepareClose'},\n },\n },\n closing: {\n tags: ['visible', 'transitioning'],\n on: {\n CLOSING_DONE: {target: 'closed', effects: 'finishClose'},\n CLOSING_ERROR: {target: 'closed', effects: 'finishClose'},\n OPEN: {target: 'opening', guard: 'canOpen', reduce: 'beginOpen', effects: 'prepareOpen'},\n TOGGLE: {target: 'opening', guard: 'canOpen', reduce: 'beginOpen', effects: 'prepareOpen'},\n },\n },\n },\n },\n feature: {\n initial: 'idle',\n states: {\n idle: {\n on: {\n INPUT: {target: 'editing', reduce: 'setInput', effects: 'syncInput'},\n PENDING: {target: 'editing', reduce: 'setPending', effects: 'syncPending'},\n PARSE: {target: 'parsing', reduce: 'setInvalidInput', effects: 'markInvalid'},\n SELECT: {target: 'selecting', reduce: 'select', effects: 'commitSelection'},\n CLEAR: {target: 'selecting', reduce: 'clear', effects: 'commitSelection'},\n APPLY: {target: 'selecting', reduce: 'apply', effects: 'commitSelection'},\n PROPS_CHANGED: [\n {target: 'selecting', guard: 'valueChanged', reduce: 'replaceProps', effects: 'commitSelection'},\n {reduce: 'replaceProps', effects: 'syncProps'},\n ],\n PRESETS_CHANGED: {effects: 'syncPresets'},\n },\n },\n editing: {\n tags: ['editing'],\n on: {\n INPUT: {target: 'editing', reduce: 'setInput', effects: 'syncInput'},\n PENDING: {target: 'editing', reduce: 'setPending', effects: 'syncPending'},\n PARSE: {target: 'parsing', reduce: 'setInvalidInput', effects: 'markInvalid'},\n SELECT: {target: 'selecting', reduce: 'select', effects: 'commitSelection'},\n CLEAR: {target: 'selecting', reduce: 'clear', effects: 'commitSelection'},\n APPLY: {target: 'selecting', reduce: 'apply', effects: 'commitSelection'},\n CANCEL: {target: 'idle', reduce: 'resetDraft', effects: 'syncPending'},\n CLOSE: {target: 'idle', reduce: 'resetDraft', effects: 'syncPending'},\n PROPS_CHANGED: [\n {target: 'selecting', guard: 'valueChanged', reduce: 'replaceProps', effects: 'commitSelection'},\n {reduce: 'replaceProps', effects: 'syncProps'},\n ],\n PRESETS_CHANGED: {effects: 'syncPresets'},\n },\n },\n parsing: {\n tags: ['editing', 'parsing'],\n on: {\n SELECT: {target: 'selecting', reduce: 'select', effects: 'commitSelection'},\n CLEAR: {target: 'selecting', reduce: 'clear', effects: 'commitSelection'},\n APPLY: {target: 'selecting', reduce: 'apply', effects: 'commitSelection'},\n INPUT: {target: 'editing', reduce: 'setInput', effects: 'syncInput'},\n PARSING_DONE: 'editing',\n PARSING_ERROR: 'editing',\n CLOSE: {target: 'idle', reduce: 'resetDraft', effects: 'syncPending'},\n PROPS_CHANGED: [\n {target: 'selecting', guard: 'valueChanged', reduce: 'replaceProps', effects: 'commitSelection'},\n {target: 'editing', reduce: 'replaceProps', effects: 'syncProps'},\n ],\n },\n },\n selecting: {\n tags: ['selecting'],\n on: {\n SELECT: {target: 'selecting', reduce: 'select', effects: 'commitSelection'},\n CLEAR: {target: 'selecting', reduce: 'clear', effects: 'commitSelection'},\n APPLY: {target: 'selecting', reduce: 'apply', effects: 'commitSelection'},\n SELECTING_DONE: 'idle',\n SELECTING_ERROR: 'idle',\n PROPS_CHANGED: [\n {target: 'selecting', guard: 'valueChanged', reduce: 'replaceProps', effects: 'commitSelection'},\n {reduce: 'replaceProps', effects: 'syncProps'},\n ],\n PRESETS_CHANGED: {effects: 'syncPresets'},\n },\n },\n },\n },\n },\n}, {\n context,\n props,\n reducers: {\n beginOpen: ({context: current}) => ({context: {\n ...current,\n selection: {...current.selection, pendingValue: current.selection.value},\n }}),\n setInput: ({context: current, event}) => ({context: {\n ...current,\n input: {value: eventString(event, 'input'), valid: true},\n }}),\n setInvalidInput: ({context: current, event}) => ({context: {\n ...current,\n input: {value: eventString(event, 'input'), valid: false},\n }}),\n setPending: ({context: current, event}) => ({context: {\n ...current,\n selection: {\n ...current.selection,\n pendingValue: eventString(event, 'value'),\n source: sourceFrom(event),\n },\n preset: {value: eventString(event, 'preset')},\n }}),\n select: ({context: current, event}) => ({context: selectionUpdate(\n current,\n event,\n eventString(event, 'value'),\n )}),\n clear: ({context: current}) => ({context: selectionUpdate(current, {type: 'CLEAR'}, '')}),\n apply: ({context: current}) => ({context: selectionUpdate(\n current,\n {type: 'SELECT', source: current.selection.source},\n current.selection.pendingValue,\n )}),\n resetDraft: ({context: current}) => ({context: {\n ...current,\n selection: {...current.selection, pendingValue: current.selection.value},\n input: {value: '', valid: true},\n }}),\n replaceProps: ({context: current, event}) => {\n const next = nextProps(event);\n if (!next) return undefined;\n if (!propsChanged<DatePickerProps>(event, 'value')) return {props: next};\n return {\n props: next,\n context: selectionUpdate(current, {type: 'PROPS_CHANGED', source: 'props'}, next.value),\n };\n },\n },\n guards: {\n canOpen: ({props: current}) => !blocked(current),\n valueChanged: ({event}) => propsChanged<DatePickerProps>(event, 'value'),\n },\n effects: {\n prepareOpen: effects.prepareOpen,\n finishOpen: effects.finishOpen,\n prepareClose: effects.prepareClose,\n finishClose: effects.finishClose,\n syncInput: effects.syncInput,\n syncPending: effects.syncPending,\n markInvalid: effects.markInvalid,\n commitSelection: effects.commitSelection,\n syncProps: effects.syncProps,\n syncPresets: effects.syncPresets,\n },\n});\n\nexport {createDatePickerMachine, datePickerHooks};\nexport type {\n CreateDatePickerMachineOptions,\n DatePickerContext,\n DatePickerMachineEffects,\n SelectionSource,\n};\n","import {defineStyles} from '../../runtime';\nimport {\n CONTROL_MIN_SIZE_CLASSES,\n CONTROL_RADIUS_CLASSES,\n FIELD_CONTROL_ACTION_CLASSES,\n FIELD_CONTROL_INPUT_CLASSES,\n FIELD_CONTROL_NATIVE_CLASSES,\n FIELD_CONTROL_ROOT_CLASSES,\n OPTION_ITEM_CLASSES,\n POPOVER_GEOMETRY_CLASSES,\n} from '../common';\n\nconst datePickerStyles = defineStyles({definition: {\n component: 'ui.date-picker',\n parts: {\n root: {\n base: 'relative inline-grid w-full min-w-0',\n },\n trigger: {\n base: [\n FIELD_CONTROL_ROOT_CLASSES,\n CONTROL_MIN_SIZE_CLASSES.lg,\n 'text-left',\n ],\n variants: {\n radius: CONTROL_RADIUS_CLASSES,\n },\n defaults: {\n radius: 'md',\n },\n },\n customTrigger: {\n base: [\n 'inline-flex min-h-control-lg min-w-control-lg shrink-0 items-center justify-center gap-control-gap px-2 text-sm outline-none',\n ],\n variants: {\n radius: CONTROL_RADIUS_CLASSES,\n },\n defaults: {\n radius: 'md',\n },\n },\n input: {\n base: [\n 'min-w-0 flex-1 text-sm',\n FIELD_CONTROL_INPUT_CLASSES,\n ],\n },\n icon: {\n base: 'size-icon shrink-0 fill-current text-surface-ink-muted',\n },\n action: {\n base: FIELD_CONTROL_ACTION_CLASSES,\n },\n popover: {\n base: [\n POPOVER_GEOMETRY_CLASSES,\n 'max-h-lg overflow-hidden rounded-overlay-sm',\n ],\n },\n panel: {\n base: 'grid min-w-72 max-w-[calc(100vw-2rem)] gap-0 overflow-hidden',\n variants: {\n hasPresets: {\n true: '',\n false: '',\n },\n presetsPosition: {\n left: '',\n right: '',\n top: '',\n bottom: '',\n },\n },\n compounds: [\n {when: {hasPresets: true, presetsPosition: 'left'}, class: 'sm:grid-cols-[minmax(9rem,11rem)_auto]'},\n {when: {hasPresets: true, presetsPosition: 'right'}, class: 'sm:grid-cols-[auto_minmax(9rem,11rem)]'},\n ],\n defaults: {\n hasPresets: false,\n presetsPosition: 'left',\n },\n },\n calendarWrap: {\n base: 'relative grid size-full place-items-center overflow-x-auto overflow-y-auto p-popover-padding',\n },\n calendar: {\n base: 'grid max-w-full gap-2 text-sm',\n },\n presets: {\n base: [\n 'grid content-start gap-1 p-popover-padding',\n ],\n },\n preset: {\n base: OPTION_ITEM_CLASSES,\n },\n footer: {\n base: 'flex items-center justify-end gap-2 p-popover-padding',\n },\n nativeWrapper: {\n base: 'relative w-full min-w-0',\n },\n native: {\n base: [\n FIELD_CONTROL_NATIVE_CLASSES,\n CONTROL_MIN_SIZE_CLASSES.lg,\n ],\n variants: {\n radius: CONTROL_RADIUS_CLASSES,\n },\n defaults: {\n radius: 'md',\n },\n },\n },\n}});\n\nexport {datePickerStyles};\n","type DateFormatToken = '%Y' | '%m' | '%d';\n\ntype CompiledFormat = {\n source: string;\n tokens: DateFormatToken[];\n};\n\nconst ISO_DATE = /^\\d{4}-\\d{2}-\\d{2}$/;\nconst ISO_RANGE = /^\\d{4}-\\d{2}-\\d{2}\\/\\d{4}-\\d{2}-\\d{2}$/;\nconst TOKEN_PATTERN = /%[Ymd]/g;\n\nconst escapeRegex = (value: string): string => value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\nconst compileLiteral = (value: string): string => {\n let cursor = 0;\n let source = '';\n for (const match of value.matchAll(/[\\s/-]+/g)) {\n source += escapeRegex(value.slice(cursor, match.index));\n source += '(?:\\\\s|[/-])+';\n cursor = (match.index ?? 0) + match[0].length;\n }\n return source + escapeRegex(value.slice(cursor));\n};\n\nconst compileFormat = (format: string): CompiledFormat => {\n const tokens: DateFormatToken[] = [];\n let cursor = 0;\n let source = '';\n for (const match of format.matchAll(TOKEN_PATTERN)) {\n source += compileLiteral(format.slice(cursor, match.index));\n const token = match[0] as DateFormatToken;\n tokens.push(token);\n source += token === '%Y' ? '(\\\\d{4})' : '(\\\\d{2})';\n cursor = (match.index ?? 0) + token.length;\n }\n source += compileLiteral(format.slice(cursor));\n return {source, tokens};\n};\n\nconst isoFromGroups = (groups: string[], tokens: DateFormatToken[]): string | null => {\n const values = Object.fromEntries(tokens.map((token, index) => [token, groups[index] ?? '']));\n const year = Number(values['%Y']);\n const month = Number(values['%m']);\n const day = Number(values['%d']);\n if (!year || !month || !day || new Set(tokens).size !== 3) return null;\n const date = new Date(Date.UTC(year, month - 1, day));\n if (date.getUTCFullYear() !== year || date.getUTCMonth() !== month - 1 || date.getUTCDate() !== day) return null;\n return `${String(year).padStart(4, '0')}-${String(month).padStart(2, '0')}-${String(day).padStart(2, '0')}`;\n};\n\nconst parseDateValue = ({\n input,\n format,\n range,\n separator,\n}: {\n input: string;\n format: string;\n range: boolean;\n separator: string;\n}): string | null => {\n const compiled = compileFormat(format);\n if (!range) {\n const match = input.trim().match(new RegExp(`^${compiled.source}$`));\n return match ? isoFromGroups(match.slice(1), compiled.tokens) : null;\n }\n const match = input.trim().match(new RegExp(\n `^${compiled.source}${compileLiteral(separator)}${compiled.source}$`,\n ));\n if (!match) return null;\n const width = compiled.tokens.length;\n const start = isoFromGroups(match.slice(1, width + 1), compiled.tokens);\n const end = isoFromGroups(match.slice(width + 1), compiled.tokens);\n return start && end && start <= end ? `${start}/${end}` : null;\n};\n\nconst formatIsoDate = (value: string, format: string): string => {\n if (!ISO_DATE.test(value)) return value;\n const [year = '', month = '', day = ''] = value.split('-');\n return format.replaceAll('%Y', year).replaceAll('%m', month).replaceAll('%d', day);\n};\n\nconst formatDatePlaceholder = (format: string): string => format\n .replaceAll('%Y', 'YYYY')\n .replaceAll('%m', 'MM')\n .replaceAll('%d', 'DD');\n\nconst sanitizeDateInput = ({\n input,\n format,\n separator,\n}: {\n input: string;\n format: string;\n separator: string;\n}): string => {\n const configuredLiterals = new Set(`${format.replace(TOKEN_PATTERN, '')}${separator}`);\n return Array.from(input).filter((character) => (\n /[0-9]/.test(character)\n || /[\\s/-]/.test(character)\n || configuredLiterals.has(character)\n )).join('');\n};\n\nconst maskDateInput = ({\n input,\n format,\n range,\n separator,\n}: {\n input: string;\n format: string;\n range: boolean;\n separator: string;\n}): string => {\n const endpointMask = format\n .replaceAll('%Y', '9999')\n .replaceAll('%m', '99')\n .replaceAll('%d', '99');\n const mask = range ? `${endpointMask}${separator}${endpointMask}` : endpointMask;\n const digits = input.match(/[0-9]/g) ?? [];\n let digitIndex = 0;\n let output = '';\n\n for (let index = 0; index < mask.length; index += 1) {\n const character = mask[index] ?? '';\n if (character === '9') {\n const digit = digits[digitIndex];\n if (digit === undefined) break;\n output += digit;\n digitIndex += 1;\n continue;\n }\n if (digitIndex > 0 && mask.slice(index + 1).includes('9')) output += character;\n }\n return output;\n};\n\nconst formatDateValue = ({\n value,\n format,\n range,\n separator,\n}: {\n value: string;\n format: string;\n range: boolean;\n separator: string;\n}): string => {\n if (!value) return '';\n if (!range) return formatIsoDate(value, format);\n if (!ISO_RANGE.test(value)) return value;\n const [start = '', end = ''] = value.split('/');\n return `${formatIsoDate(start, format)}${separator}${formatIsoDate(end, format)}`;\n};\n\nconst withinDateBounds = (value: string, min: string, max: string): boolean => {\n const dates = ISO_RANGE.test(value) ? value.split('/') : [value];\n return dates.every((date) => ISO_DATE.test(date) && (!min || date >= min) && (!max || date <= max));\n};\n\nexport {\n formatDatePlaceholder,\n formatDateValue,\n ISO_DATE,\n ISO_RANGE,\n maskDateInput,\n parseDateValue,\n sanitizeDateInput,\n withinDateBounds,\n};\n","import type Alpine from 'alpinejs';\n\nimport {\n type AlpineMachine,\n createAlpineMachine,\n defineAlpineData,\n type MachineSnapshot,\n reflectSchemaProp,\n type TransitionForHook,\n type TrellisAlpineComponent,\n} from '@client/runtime';\nimport {createAnchoredPopoverSurface, type AnchoredPopoverSurface} from '@client/runtime/anchored-popover';\nimport {addDismissableLayer} from '@client/runtime/dismissable-layer';\nimport {\n dispatchNativeControlChange,\n syncControlPresence,\n syncNativeControl,\n syncRepeatedHiddenInputs,\n} from '@client/runtime/form-control';\nimport {mergeBindings, type BindingObject} from '@client/runtime/merge-bindings';\nimport {resolveStyle} from '@client/runtime/styles';\nimport {addListener, asBool, dispatch, type CleanupStack, setPresence} from '@client/utils';\nimport {datePickerSchema, type DatePickerPreset, type DatePickerProps} from './contract';\nimport {\n createDatePickerMachine,\n type DatePickerContext,\n datePickerHooks,\n type SelectionSource,\n} from './machine';\nimport {datePickerStyles} from './styles';\nimport {\n formatDatePlaceholder,\n formatDateValue,\n ISO_DATE,\n ISO_RANGE,\n maskDateInput,\n parseDateValue,\n sanitizeDateInput,\n withinDateBounds,\n} from './value';\n\ntype DatePickerTransitionName = (typeof datePickerHooks)[number]['name'];\ntype DatePickerTransition<TName extends DatePickerTransitionName = DatePickerTransitionName> = TransitionForHook<\n Extract<(typeof datePickerHooks)[number], {name: TName}>,\n HTMLElement\n>;\n\ntype CalendarElement = HTMLElement & {\n value: string;\n focus(options?: FocusOptions & {target?: 'day' | 'next' | 'previous'}): void;\n};\n\ntype PopoverElement = HTMLElement & {showPopover(): void; hidePopover(): void};\n\n/**\n * Public Alpine API for `ui.datePicker`.\n *\n * @public\n */\ninterface UiDatePickerApi {\n /** Whether the picker is opening or fully open. */\n readonly isOpen: boolean;\n /** Whether the user is editing an uncommitted value. */\n readonly isEditing: boolean;\n /** Canonical ISO date or ISO date range. */\n readonly value: string;\n /** Canonical value currently staged in confirm mode. */\n readonly pendingValue: string;\n /** Identifier of the selected preset, when one matches. */\n readonly preset: string;\n /** Opens the calendar unless the picker is disabled or readonly. */\n open(event?: Event): void;\n /** Closes the calendar and restores focus after keyboard dismissal. */\n close(event?: Event): void;\n /** Reverses the current disclosure lifecycle. */\n toggle(event?: Event): void;\n /** Selects a canonical ISO date or ISO range. */\n select(value: string, event?: Event): void;\n /** Selects the preset identified by its stable value. */\n selectPreset(value: string, event?: Event): void;\n /** Selects the configured today value. */\n selectToday(event?: Event): void;\n /** Clears the committed date, preset, and submitted controls. */\n clear(event?: Event): void;\n /** Discards a pending confirm-mode selection and closes the calendar. */\n cancel(event?: Event): void;\n}\n\ntype DatePickerData = AlpineMachine<DatePickerContext, DatePickerProps, typeof datePickerHooks>\n & UiDatePickerApi\n & {\n readonly root: BindingObject;\n effectivePlaceholder(): string;\n init(): void;\n destroy(): void;\n };\n\nconst YEAR_OPTION_PAST_OFFSET = 100;\nconst YEAR_OPTION_FUTURE_OFFSET = 10;\n\nconst splitRange = (value: string): [string, string] => {\n const [start = '', end = ''] = value.split('/');\n return [start, end];\n};\nconst currentYear = (): number => new Date().getFullYear();\nconst defaultMinDate = (): string => `${currentYear() - YEAR_OPTION_PAST_OFFSET}-01-01`;\nconst defaultMaxDate = (): string => `${currentYear() + YEAR_OPTION_FUTURE_OFFSET}-12-31`;\nconst todayIsoDate = (): string => new Date().toISOString().slice(0, 10);\n\nconst formatMonthHeading = (value: string, locale: string): string => {\n if (!ISO_DATE.test(value)) return '';\n return new Intl.DateTimeFormat(locale || undefined, {\n month: 'long',\n timeZone: 'UTC',\n year: 'numeric',\n }).format(new Date(`${value}T00:00:00.000Z`));\n};\n\nconst presetFromElement = (el: HTMLElement): DatePickerPreset => ({\n value: el.dataset.value ?? '',\n label: el.dataset.label ?? el.textContent?.trim() ?? '',\n start: el.dataset.start ?? '',\n end: el.dataset.end ?? '',\n disabled: asBool({value: el.dataset.disabled}),\n});\n\nconst UiDatePicker = (): TrellisAlpineComponent<DatePickerData> => {\n let rootEl: (HTMLElement & Alpine.ElementWithXAttributes) | null = null;\n let triggerId = '';\n let popoverId = '';\n let popover: AnchoredPopoverSurface | null = null;\n let cleanup: CleanupStack = [];\n let hiddenInputsKey = '';\n let presetInputKey = '';\n let liveMessage = '';\n let lastInputValue = '';\n let restoreFocusAfterClose = false;\n\n const root = (): HTMLElement => {\n if (!rootEl) throw new Error('Date picker has not been initialized.');\n return rootEl;\n };\n const currentProps = (): Readonly<DatePickerProps> => bridge.getCommittedSnapshot().props;\n const currentContext = (): Readonly<DatePickerContext> => bridge.getCommittedSnapshot().context;\n const trigger = (): HTMLElement => {\n const el = root().querySelector<HTMLElement>('[data-ui-date-picker-trigger]');\n if (!el) throw new Error('Date picker requires a trigger.');\n return el;\n };\n const input = (): HTMLInputElement => {\n const el = root().querySelector<HTMLInputElement>('[data-ui-date-picker-input]');\n if (!el) throw new Error('Date picker requires an input.');\n return el;\n };\n const toggleButton = (): HTMLButtonElement | null => root().querySelector('[data-ui-date-picker-toggle]');\n const popoverEl = (): PopoverElement => {\n const el = root().querySelector<HTMLElement>('[data-ui-date-picker-popover]');\n if (!el) throw new Error('Date picker requires a popover.');\n return el as PopoverElement;\n };\n const calendar = (): CalendarElement | null => root().querySelector('[data-ui-date-picker-calendar]');\n const hiddenInputsEl = (): HTMLElement | null => root().querySelector('[data-ui-date-picker-hidden-inputs]');\n const presetInputsEl = (): HTMLElement | null => root().querySelector('[data-ui-date-picker-preset-inputs]');\n const isRange = (): boolean => currentProps().mode === 'range';\n const effectiveMonths = (): number => currentProps().months || (isRange() ? 2 : 1);\n const presetItems = (): DatePickerPreset[] => {\n const items = Array.from(root().querySelectorAll<HTMLElement>('[data-ui-date-picker-preset]'))\n .map(presetFromElement)\n .filter((preset) => preset.value && preset.start && preset.end);\n return items.length ? items : currentProps().presets;\n };\n const formatted = (value: string): string => formatDateValue({\n value,\n format: currentProps().format,\n range: isRange(),\n separator: currentProps().rangeSeparator,\n });\n const selectedPreset = (value: string): string => {\n const match = presetItems().find((preset) => (\n isRange() ? `${preset.start}/${preset.end}` : preset.start\n ) === value);\n const custom = presetItems().find((preset) => preset.value === 'custom');\n return match?.value ?? (value && custom ? 'custom' : '');\n };\n const syncCalendarHeading = (focusedDate?: string): void => {\n const heading = root().querySelector<HTMLElement>('[data-ui-date-picker-calendar-heading]');\n if (!heading) return;\n const props = currentProps();\n const value = focusedDate || splitRange(currentContext().selection.value || props.openTo || props.today || todayIsoDate())[0];\n heading.textContent = formatMonthHeading(value, props.locale);\n };\n const syncCalendar = (): void => {\n const el = calendar();\n if (!el) return;\n const props = currentProps();\n const context = currentContext();\n const value = context.selection.pendingValue;\n if (customElements.get('calendar-date')) el.value = value;\n el.setAttribute('value', value);\n setPresence({el, attr: 'tentative', present: isRange() && Boolean(value) && !ISO_RANGE.test(value)});\n el.setAttribute('months', String(effectiveMonths()));\n el.style.setProperty('--ui-date-picker-month-columns', String(effectiveMonths()));\n el.setAttribute('min', props.min || defaultMinDate());\n el.setAttribute('max', props.max || defaultMaxDate());\n if (props.today) el.setAttribute('today', props.today); else el.removeAttribute('today');\n const focused = props.forceOpenTo ? props.openTo : context.selection.value || props.openTo || props.today || todayIsoDate();\n el.setAttribute('focused-date', splitRange(focused)[0]);\n if (props.locale) el.setAttribute('locale', props.locale); else el.removeAttribute('locale');\n if (props.firstDayOfWeek >= 0) el.setAttribute('first-day-of-week', String(props.firstDayOfWeek));\n const inlineHeading = !props.selectableHeader && effectiveMonths() === 1;\n setPresence({el, attr: 'data-inline-heading', present: inlineHeading, value: 'true'});\n setPresence({el, attr: 'data-hide-month-heading', present: (props.selectableHeader && !isRange()) || inlineHeading, value: 'true'});\n setPresence({el, attr: 'data-fixed-weeks', present: props.fixedWeeks, value: 'true'});\n setPresence({el, attr: 'show-outside-days', present: props.showOutsideDays || props.fixedWeeks});\n setPresence({el, attr: 'show-week-numbers', present: props.showWeekNumbers});\n };\n const syncPresets = (): void => {\n const value = currentContext().selection.pendingValue || currentContext().selection.value;\n root().querySelectorAll<HTMLElement>('[data-ui-date-picker-preset]').forEach((el) => {\n const preset = presetFromElement(el);\n const presetValue = isRange() ? `${preset.start}/${preset.end}` : preset.start;\n setPresence({el, attr: 'data-selected', present: presetValue === value, value: 'true'});\n setPresence({el, attr: 'data-disabled', present: preset.disabled ?? false, value: 'true'});\n });\n };\n const syncHiddenInputs = (): void => {\n const container = hiddenInputsEl();\n if (!container) return;\n const props = currentProps();\n const value = currentContext().selection.value;\n if (!isRange()) {\n hiddenInputsKey = syncRepeatedHiddenInputs({container, currentKey: hiddenInputsKey, state: {\n name: props.name,\n values: value ? [value] : [],\n required: props.required,\n form: props.form,\n marker: 'data-ui-date-picker-hidden-input',\n }});\n return;\n }\n const [start, end] = splitRange(value);\n if (props.startName || props.endName) {\n const key = JSON.stringify({startName: props.startName, endName: props.endName, start, end, form: props.form});\n if (key === hiddenInputsKey) return;\n container.replaceChildren();\n [[props.startName, start], [props.endName, end]].forEach(([name, itemValue]) => {\n if (!name) return;\n const hidden = document.createElement('input');\n hidden.type = 'hidden'; hidden.name = name; hidden.value = itemValue ?? '';\n hidden.setAttribute('data-ui-date-picker-hidden-input', '');\n if (props.form) hidden.setAttribute('form', props.form);\n container.append(hidden);\n });\n hiddenInputsKey = key;\n return;\n }\n hiddenInputsKey = syncRepeatedHiddenInputs({container, currentKey: hiddenInputsKey, state: {\n name: props.name, values: value ? [value] : [], required: props.required, form: props.form,\n marker: 'data-ui-date-picker-hidden-input',\n }});\n };\n const syncPresetInput = (): void => {\n const container = presetInputsEl();\n if (!container) return;\n const props = currentProps();\n const value = selectedPreset(currentContext().selection.value);\n presetInputKey = syncRepeatedHiddenInputs({container, currentKey: presetInputKey, state: {\n name: props.presetName, values: value ? [value] : [], form: props.form,\n marker: 'data-ui-date-picker-preset-input',\n }});\n };\n const syncControl = (): void => {\n const props = currentProps();\n const context = currentContext();\n const visible = bridge.hasTag('visible');\n const expanded = bridge.hasTag('expanded');\n const triggerEl = trigger();\n const inputEl = input();\n const floating = popoverEl();\n triggerEl.id = triggerId;\n floating.id = popoverId;\n floating.dataset.state = expanded ? 'open' : 'closed';\n floating.hidden = !visible;\n triggerEl.dataset.state = expanded ? 'open' : 'closed';\n syncControlPresence({el: triggerEl, state: props, value: 'true'});\n const toggle = toggleButton();\n const ariaOwner = toggle ?? triggerEl;\n ariaOwner.setAttribute('aria-haspopup', 'dialog');\n ariaOwner.setAttribute('aria-expanded', expanded ? 'true' : 'false');\n ariaOwner.setAttribute('aria-controls', popoverId);\n if (triggerEl instanceof HTMLButtonElement) triggerEl.disabled = props.disabled;\n const displayValue = bridge.hasTag('editing')\n ? context.input.value\n : formatted(context.selection.value);\n syncNativeControl({input: inputEl, state: {\n name: '',\n value: displayValue,\n disabled: props.disabled,\n readonly: props.readonly,\n required: props.required && props.mode === 'single',\n invalid: props.invalid || !context.input.valid,\n }});\n inputEl.placeholder = component.effectivePlaceholder();\n root().querySelectorAll<HTMLButtonElement>('[data-ui-date-picker-clear], [data-ui-date-picker-toggle]')\n .forEach((button) => { button.disabled = props.disabled; });\n lastInputValue = displayValue;\n const live = root().querySelector<HTMLElement>('[data-ui-date-picker-live]');\n if (live) live.textContent = liveMessage;\n };\n const syncToday = (): void => {\n const button = root().querySelector<HTMLElement>('[data-ui-date-picker-calendar-today]');\n const dayEl = root().querySelector<HTMLElement>('[data-ui-date-picker-today-day]');\n if (!button || !dayEl) return;\n const today = currentProps().today || todayIsoDate();\n const day = ISO_DATE.test(today) ? String(Number(today.slice(-2))) : '';\n dayEl.textContent = day;\n button.setAttribute('aria-label', day ? `Go to today, ${today}` : 'Go to today');\n };\n const syncSurface = (): void => {\n const props = currentProps();\n const floating = popoverEl();\n floating.dataset.uiSurface = props.surface;\n floating.dataset.uiElevation = props.elevation;\n };\n const syncAll = (): void => {\n reflectSchemaProp({\n el: root(),\n schema: datePickerSchema,\n key: 'value',\n value: currentContext().selection.value,\n });\n syncControl(); syncCalendar(); syncCalendarHeading(); syncToday(); syncSurface();\n syncHiddenInputs(); syncPresetInput(); syncPresets();\n if (bridge.hasTag('visible')) popover?.sync();\n };\n const notifyChange = (): void => {\n dispatchNativeControlChange({\n container: hiddenInputsEl(), fallback: root(), marker: 'data-ui-date-picker-hidden-input',\n });\n dispatch({el: root(), name: 'ui:change'});\n };\n const commit = (value: string, source: SelectionSource, preset = ''): void => {\n if (currentProps().disabled || currentProps().readonly) return;\n bridge.send({type: 'SELECT', value, source, preset});\n };\n const parseInput = (raw: string): string | null => {\n const props = currentProps();\n const value = parseDateValue({input: raw, format: props.format, range: isRange(), separator: props.rangeSeparator});\n return value && withinDateBounds(value, props.min, props.max) ? value : null;\n };\n\n const bridge = createAlpineMachine({\n schema: datePickerSchema,\n hooks: datePickerHooks,\n createMachine: ({props}) => createDatePickerMachine({\n props,\n context: {\n selection: {value: props.value, pendingValue: props.value, previousValue: props.value, source: 'props'},\n input: {value: '', valid: true},\n preset: {value: props.preset},\n },\n effects: {\n prepareOpen: () => {\n const floating = popoverEl();\n floating.hidden = false;\n popover?.open();\n syncAll();\n },\n finishOpen: () => {\n if (restoreFocusAfterClose) calendar()?.focus({preventScroll: true});\n restoreFocusAfterClose = false;\n dispatch({el: root(), name: 'ui:open'});\n },\n prepareClose: syncAll,\n finishClose: () => {\n const floating = popoverEl();\n popover?.close();\n floating.hidden = true;\n if (restoreFocusAfterClose) trigger().focus({preventScroll: true});\n restoreFocusAfterClose = false;\n syncAll();\n dispatch({el: root(), name: 'ui:close'});\n },\n syncInput: syncControl,\n syncPending: () => { syncControl(); syncCalendar(); syncPresets(); },\n markInvalid: () => {\n input().setCustomValidity(`Enter a date in ${currentProps().format}`);\n syncControl();\n dispatch({el: root(), name: 'ui:invalid'});\n },\n commitSelection: () => {\n input().setCustomValidity('');\n const context = currentContext();\n liveMessage = context.selection.value ? (isRange() ? 'Range selected' : 'Date selected') : 'Date cleared';\n syncAll();\n notifyChange();\n dispatch({el: root(), name: context.selection.value ? 'ui:select' : 'ui:clear'});\n },\n syncProps: syncAll,\n syncPresets: () => { syncPresets(); syncPresetInput(); },\n },\n }),\n resolveTransitionElement: ({name, root: owner}) => {\n if (name === 'opening' || name === 'closing') return owner.querySelector('[data-ui-date-picker-popover]');\n if (name === 'parsing') return owner.querySelector('[data-ui-date-picker-input]');\n return owner;\n },\n });\n\n let component!: TrellisAlpineComponent<DatePickerData>;\n component = {\n ...bridge,\n get isOpen(): boolean { return bridge.hasTag('expanded'); },\n get isEditing(): boolean { return bridge.hasTag('editing'); },\n get value(): string { return bridge.getCommittedSnapshot().context.selection.value; },\n get pendingValue(): string { return bridge.getCommittedSnapshot().context.selection.pendingValue; },\n get preset(): string { return selectedPreset(bridge.getCommittedSnapshot().context.selection.value); },\n get root(): BindingObject {\n return mergeBindings({inputs: [resolveStyle({\n part: datePickerStyles.parts.root,\n props: bridge.getCommittedSnapshot().props,\n className: bridge.getCommittedSnapshot().props.class,\n }), {'data-ui-date-picker': '', ':data-state': () => (component.isOpen ? 'open' : 'closed')}]});\n },\n effectivePlaceholder(): string {\n const props = bridge.getCommittedSnapshot().props;\n if (props.placeholder) return props.placeholder;\n const placeholder = formatDatePlaceholder(props.format);\n return props.mode === 'range'\n ? `${placeholder}${props.rangeSeparator}${placeholder}`\n : placeholder;\n },\n open(event?: Event): void {\n event?.preventDefault();\n if (event instanceof KeyboardEvent) restoreFocusAfterClose = true;\n bridge.send('OPEN');\n },\n close(event?: Event): void {\n event?.preventDefault();\n if (event instanceof KeyboardEvent) restoreFocusAfterClose = true;\n bridge.send('CLOSE');\n },\n toggle(event?: Event): void {\n event?.preventDefault();\n bridge.send('TOGGLE');\n },\n select(value: string, event?: Event): void {\n event?.preventDefault();\n if (!withinDateBounds(value, currentProps().min, currentProps().max)) return;\n const valid = isRange() ? ISO_RANGE.test(value) : ISO_DATE.test(value);\n if (valid) commit(value, 'input');\n },\n selectPreset(value: string, event?: Event): void {\n event?.preventDefault();\n if (currentProps().disabled || currentProps().readonly) return;\n const preset = presetItems().find((item) => item.value === value);\n if (!preset || preset.disabled) return;\n const next = isRange() ? `${preset.start}/${preset.end}` : preset.start;\n if (currentProps().close === 'confirm') bridge.send({type: 'PENDING', value: next, source: 'preset', preset: value});\n else commit(next, 'preset', value);\n },\n selectToday(event?: Event): void {\n event?.preventDefault();\n if (currentProps().disabled || currentProps().readonly) return;\n const today = currentProps().today || todayIsoDate();\n const value = isRange() ? `${today}/${today}` : today;\n if (currentProps().close === 'confirm') bridge.send({type: 'PENDING', value, source: 'today'});\n else commit(value, 'today');\n },\n clear(event?: Event): void {\n event?.preventDefault();\n if (currentProps().disabled || currentProps().readonly) return;\n bridge.send('CLEAR');\n },\n cancel(event?: Event): void { event?.preventDefault(); bridge.send('CANCEL'); bridge.send('CLOSE'); },\n init(): void {\n rootEl = this.$el;\n triggerId = this.$id('date-picker-trigger');\n popoverId = this.$id('date-picker-popover');\n bridge.connect(this.$el, this.snapshot);\n popover = createAnchoredPopoverSurface({\n reference: trigger,\n floating: popoverEl,\n position: () => currentProps().side,\n align: () => currentProps().align,\n gap: () => currentProps().gap,\n offset: () => currentProps().offset,\n matchReferenceWidth: false,\n });\n const triggerEl = trigger();\n const inputEl = input();\n const floating = popoverEl();\n addListener({target: triggerEl, event: 'click', cleanup, handler: (event) => {\n const target = event.target;\n if (target instanceof Element && target.closest('[data-ui-date-picker-clear]')) component.clear(event);\n else component.toggle(event);\n }});\n addListener({target: triggerEl, event: 'keydown', cleanup, handler: (raw) => {\n const event = raw as KeyboardEvent;\n if ((event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') && !component.isOpen) component.open(event);\n else if (event.key === 'Escape' && component.isOpen) component.close(event);\n }});\n addListener({target: root(), event: 'keydown', cleanup, handler: (raw) => {\n const event = raw as KeyboardEvent;\n if (event.key === 'Escape' && component.isOpen) component.close(event);\n }});\n addListener({target: inputEl, event: 'input', cleanup, handler: () => {\n const cursor = inputEl.selectionStart ?? inputEl.value.length;\n const digitsBeforeCursor = (inputEl.value.slice(0, cursor).match(/[0-9]/g) ?? []).length;\n let raw = sanitizeDateInput({\n input: inputEl.value,\n format: currentProps().format,\n separator: currentProps().rangeSeparator,\n });\n const deleting = lastInputValue.length - raw.length === 1;\n if (!deleting) raw = maskDateInput({\n input: raw,\n format: currentProps().format,\n range: isRange(),\n separator: currentProps().rangeSeparator,\n });\n if (inputEl.value !== raw) {\n inputEl.value = raw;\n let digitsSeen = 0;\n let nextCursor = raw.length;\n for (let index = 0; index < raw.length; index += 1) {\n if (/[0-9]/.test(raw[index] ?? '')) digitsSeen += 1;\n if (digitsSeen !== digitsBeforeCursor) continue;\n nextCursor = index + 1;\n while (nextCursor < raw.length && !/[0-9]/.test(raw[nextCursor] ?? '')) nextCursor += 1;\n break;\n }\n inputEl.setSelectionRange(nextCursor, nextCursor);\n }\n lastInputValue = raw;\n bridge.send({type: 'INPUT', input: raw});\n const parsed = parseInput(raw);\n if (parsed) commit(parsed, 'input');\n }});\n addListener({target: inputEl, event: 'change', cleanup, handler: () => {\n const parsed = parseInput(inputEl.value);\n if (parsed) commit(parsed, 'input');\n else if (inputEl.value.trim()) bridge.send({type: 'PARSE', input: inputEl.value});\n else bridge.send('CLEAR');\n }});\n addListener({target: floating, event: 'pointerdown', cleanup, handler: (event) => event.stopPropagation()});\n addListener({target: floating, event: 'click', cleanup, handler: (event) => {\n const target = event.target;\n if (!(target instanceof Element)) return;\n const preset = target.closest<HTMLElement>('[data-ui-date-picker-preset]');\n if (preset) component.selectPreset(preset.dataset.value ?? '', event);\n else if (target.closest('[data-ui-date-picker-clear]')) component.clear(event);\n else if (target.closest('[data-ui-date-picker-cancel]')) component.cancel(event);\n else if (target.closest('[data-ui-date-picker-apply]')) bridge.send('APPLY');\n else if (target.closest('[data-ui-date-picker-today]')) component.selectToday(event);\n }});\n const calendarEl = calendar();\n if (calendarEl) {\n void customElements.whenDefined('calendar-date').then(() => {\n if (rootEl) syncCalendar();\n });\n addListener({target: calendarEl, event: 'change', cleanup, handler: () => {\n const value = calendarEl.value;\n if (isRange() && !ISO_RANGE.test(value)) {\n liveMessage = 'Start date selected';\n bridge.send({type: 'PENDING', value, source: 'calendar'});\n } else if (currentProps().close === 'confirm') {\n bridge.send({type: 'PENDING', value, source: 'calendar'});\n } else commit(value, 'calendar');\n }});\n addListener({target: calendarEl, event: 'focusday', cleanup, handler: (event) => {\n const detail = (event as CustomEvent<Date>).detail;\n if (detail instanceof Date) syncCalendarHeading(detail.toISOString().slice(0, 10));\n }});\n }\n cleanup.push(addDismissableLayer({\n isEnabled: () => component.isOpen,\n roots: () => [root(), floating],\n onDismiss: () => component.close(),\n }));\n const presetObserver = new MutationObserver(() => bridge.send('PRESETS_CHANGED'));\n presetObserver.observe(root(), {childList: true, subtree: true, attributes: true, attributeFilter: ['data-value', 'data-start', 'data-end', 'data-disabled']});\n cleanup.push(() => presetObserver.disconnect());\n syncAll();\n },\n destroy(): void {\n cleanup.forEach((dispose) => dispose());\n cleanup = [];\n popover?.destroy();\n popover = null;\n bridge.disconnect();\n rootEl = null;\n },\n };\n return component;\n};\n\nconst registerDatePicker = defineAlpineData('UiDatePicker', UiDatePicker);\n\nexport {registerDatePicker, UiDatePicker};\nexport type {DatePickerData, DatePickerTransition, UiDatePickerApi};\n","// Generated by scripts/generate_component_entries.mjs from packages/client/component-entries.json.\n// Do not edit by hand.\nimport type {Alpine as AlpineType} from 'alpinejs';\nimport {registerMotionCapability} from '../../capabilities/motion';\nimport {registerCalendarCapability} from '../../capabilities/calendar';\nimport {registerDatePicker as registerComponent} from './index';\n\nconst registered = new WeakSet<AlpineType>();\n\nconst registerDatePicker = (AlpineInstance: AlpineType): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n registerMotionCapability(AlpineInstance);\n registerCalendarCapability(AlpineInstance);\n registerComponent(AlpineInstance);\n};\n\nexport {registerDatePicker};\nexport default registerDatePicker;\nexport * from './index';\n"],"file":"entry.generated-D3w3QaSO.js"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{f as e,g as t,l as n,m as r,p as i,s as a,u as o}from"./motion-B4uuk1JX.js";import{t as s}from"./capability-motion-DRILCSFH.js";import{c,f as l,l as u,n as d,o as f}from"./codecs-Cb1ns_47.js";import{r as p,t as m}from"./dom-qAeVl7dc.js";import{i as h,t as g}from"./alpine-machine-BTDXpEr6.js";import{t as _}from"./alpine-data-CytyCyfk.js";import{n as v,t as y}from"./styles-TfvwVPGw.js";import{t as b}from"./machine-Dqut4h89.js";var x={x:!1,y:!1};function S(){return x.x||x.y}function C(e,t){let n=i(e),r=new AbortController;return[n,{passive:!0,...t,signal:r.signal},()=>r.abort()]}function w(e){return!(e.pointerType===`touch`||S())}function T(e,t,n={}){let[r,i,a]=C(e,n);return r.forEach(e=>{let n=!1,r=!1,a,o=()=>{e.removeEventListener(`pointerleave`,u)},s=e=>{a&&=(a(e),void 0),o()},c=e=>{n=!1,window.removeEventListener(`pointerup`,c),window.removeEventListener(`pointercancel`,c),r&&(r=!1,s(e))},l=()=>{n=!0,window.addEventListener(`pointerup`,c,i),window.addEventListener(`pointercancel`,c,i)},u=e=>{if(e.pointerType!==`touch`){if(n){r=!0;return}s(e)}};e.addEventListener(`pointerenter`,n=>{if(!w(n))return;r=!1;let o=t(e,n);typeof o==`function`&&(a=o,e.addEventListener(`pointerleave`,u,i))},i),e.addEventListener(`pointerdown`,l,i)}),a}var E=[`info`,`success`,`warning`,`danger`,`debug`],D=[`auto`,`neutral`,`accent`,`success`,`warning`,`danger`],O=[`default`,`soft`,`surface`,`solid`,`outline`],k=[`top-right`,`top-left`,`top-center`,`bottom-right`,`bottom-left`,`bottom-center`],A={level:u(E,`info`),color:u(D,`auto`),variant:u(O,`default`),title:l,description:l,duration:c.default(5e3).min(0),dismissible:d.default(!0),class:l,contentClass:l,closeClass:l},j={id:l.default(`ui-toast-root`),position:u(k,`top-right`),duration:c.default(5e3).min(0),includeMessages:d.default(!0),maxItems:c.default(3).min(0),class:l},M=[h({name:`opening`,state:`opening`,project:()=>({}),onDone:`OPENING_DONE`,onError:`OPENING_ERROR`}),h({name:`closing`,state:`closing`,project:({context:e})=>({reason:e.dismissal.reason}),onDone:`CLOSING_DONE`,onError:`CLOSING_ERROR`})],N=(e,t)=>b({initial:`idle`,on:{PROPS_CHANGED:{reduce:`replaceProps`,effects:`syncProps`}},states:{idle:{on:{OPEN:{target:`opening`,effects:`prepareOpen`}}},opening:{tags:[`visible`,`expanded`,`transitioning`],on:{OPENING_DONE:[{target:`open.persistent`,guard:`isPersistent`,effects:`finishOpen`},{target:`open.paused`,guard:`isPaused`,effects:`finishOpen`},{target:`open.running`,effects:`finishOpen`}],OPENING_ERROR:[{target:`open.persistent`,guard:`isPersistent`,effects:`finishOpen`},{target:`open.paused`,guard:`isPaused`,effects:`finishOpen`},{target:`open.running`,effects:`finishOpen`}],PAUSE:{reduce:`pause`},RESUME:{reduce:`resume`},DISMISS:{target:`closing`,reduce:`dismiss`,effects:`prepareClose`}}},open:{id:`open`,initial:`running`,tags:[`visible`,`expanded`,`open`],on:{DISMISS:{target:`closing`,reduce:`dismiss`,effects:`prepareClose`}},states:{persistent:{on:{PAUSE:{reduce:`pause`},RESUME:{reduce:`resume`},DURATION_CHANGED:{target:`running`,guard:`hasDuration`,reduce:`resetDuration`}}},running:{entry:`startTimer`,exit:`stopTimer`,on:{PAUSE:{target:`paused`,reduce:`pause`},TICK:{reduce:`tick`},DURATION_CHANGED:[{target:`persistent`,guard:`isPersistent`},{target:`running`,reduce:`resetDuration`}]}},paused:{tags:[`paused`],on:{RESUME:{target:`running`,reduce:`resume`},DURATION_CHANGED:[{target:`persistent`,guard:`isPersistent`},{reduce:`resetDuration`}]}}}},closing:{tags:[`visible`,`transitioning`],on:{CLOSING_DONE:{target:`removed`,effects:`finishClose`},CLOSING_ERROR:{target:`removed`,effects:`finishClose`}}},removed:{tags:[`removed`]}}},{context:{timer:{remaining:e.duration,paused:!1},dismissal:{reason:`api`}},props:e,reducers:{replaceProps:({context:e,event:t,props:n})=>({context:e,props:t.props??n}),pause:({context:e,event:t})=>({context:{...e,timer:{remaining:typeof t.remaining==`number`?t.remaining:e.timer.remaining,paused:!0}}}),resume:({context:e})=>({context:{...e,timer:{...e.timer,paused:!1}}}),tick:({context:e,event:t})=>({context:{...e,timer:{...e.timer,remaining:Math.max(0,Number(t.remaining)||0)}}}),resetDuration:({context:e,props:t})=>({context:{...e,timer:{...e.timer,remaining:t.duration}}}),dismiss:({context:e,event:t})=>({context:{...e,dismissal:{reason:t.reason===`timeout`||t.reason===`close`||t.reason===`swipe`?t.reason:`api`}}})},guards:{isPersistent:({props:e})=>e.duration===0,hasDuration:({props:e})=>e.duration>0,isPaused:({context:e})=>e.timer.paused},effects:{prepareOpen:t.prepareOpen,finishOpen:t.finishOpen,startTimer:t.startTimer,stopTimer:t.stopTimer,prepareClose:t.prepareClose,syncProps:t.syncProps,finishClose:({context:e})=>t.finishClose(e.dismissal.reason)}}),P=y({definition:{component:`ui.toast`,parts:{root:{base:[`group/toast pointer-events-auto relative grid w-full min-w-0 items-center gap-x-3 gap-y-1 overflow-hidden rounded-overlay-md px-3 py-2.5 outline-none`,`data-[state=closed]:pointer-events-none data-[state=closed]:opacity-0`],variants:{variant:{default:``,soft:``,surface:``,solid:``,outline:``},color:{neutral:``,accent:``,success:``,warning:``,danger:``},hasMarker:{true:`grid-cols-[auto_minmax(0,1fr)_auto]`,false:`grid-cols-[minmax(0,1fr)_auto]`},hasDescription:{true:``,false:``}},defaults:{variant:`default`,color:`neutral`,hasMarker:!1,hasDescription:!1}},marker:{base:`size-2 self-center rounded-full`,variants:{color:{neutral:`hidden`,accent:``,success:``,warning:``,danger:``},variant:{default:`hidden`,soft:``,surface:``,solid:`hidden`,outline:``}},defaults:{color:`neutral`,variant:`default`}},content:{base:`grid min-w-0 gap-0.5 self-center`},title:{base:`min-w-0`},description:{base:`min-w-0`},close:{base:[`-mr-1 inline-flex size-control-md shrink-0 items-center justify-center self-center rounded-full outline-none`]},closeIcon:{base:`size-icon fill-current`},outlet:{base:[`pointer-events-none fixed z-toast flex w-[min(24rem,calc(100vw-2rem))] flex-col gap-2`],variants:{position:{"top-right":`right-4 top-4 justify-items-end`,"top-left":`left-4 top-4 justify-items-start`,"top-center":`left-1/2 top-4 -translate-x-1/2 justify-items-center`,"bottom-right":`bottom-4 right-4 justify-items-end`,"bottom-left":`bottom-4 left-4 justify-items-start`,"bottom-center":`bottom-4 left-1/2 -translate-x-1/2 justify-items-center`}},defaults:{position:`top-right`}}}}}),F=e=>[`info`,`success`,`warning`,`danger`,`debug`].includes(String(e)),I=e=>[`auto`,`neutral`,`accent`,`success`,`warning`,`danger`].includes(String(e)),L=e=>[`default`,`soft`,`surface`,`solid`,`outline`].includes(String(e)),R=e=>e===`info`?`accent`:e===`success`||e===`warning`||e===`danger`?e:`neutral`,z=(e,t)=>I(e)&&e!==`auto`?e:R(t),B=(e,t)=>{let n=typeof e==`number`?e:Number(e);return Number.isFinite(n)&&n>=0?n:t},V=e=>{let t=e.style;return`translateY(${Number.parseFloat(t.getPropertyValue(`--ui-toast-stack-offset`))||0}px) scale(${Number.parseFloat(t.getPropertyValue(`--ui-toast-stack-scale`))||1})`},H=e=>Array.from(e.querySelectorAll(`:scope > [data-ui-toast]`)).filter(e=>e.dataset.state!==`closing`&&e.dataset.state!==`closed`),U=new WeakMap,W=e=>{let t=U.get(e);t&&(U.delete(e),t.handle.stop(),e.style.height=t.baseline)},G=(e,t=!1,r)=>{let i=r??e.getBoundingClientRect().height;W(e);let o=Array.from(e.querySelectorAll(`:scope > [data-ui-toast]`));e.dataset.stack=o.length>1?`collapsed`:`single`;let s=getComputedStyle(e),c=Number.parseFloat(s.rowGap||s.gap||`0`)||0,l=o.map(e=>Math.ceil(e.scrollHeight||e.getBoundingClientRect().height)),u=Number.parseFloat(s.getPropertyValue(`--ui-toast-stack-peek`))||8,d=e.dataset.position?.startsWith(`bottom`)?-1:1,f=e.dataset.stackExpanded===`true`,p=Math.min(Math.max(0,o.length-1),3);e.style.setProperty(`--ui-toast-front-height`,`${l[0]??0}px`),e.style.setProperty(`--ui-toast-stack-height`,`${(l[0]??0)+p*u}px`),e.style.setProperty(`--ui-toast-stack-expanded-height`,`${l.reduce((e,t)=>e+t,0)+Math.max(0,o.length-1)*c}px`);let m=e.getBoundingClientRect().height;if(t&&Math.abs(i-m)>=1){let t=e.style.height,r=n(e,{keyframes:{height:[`${i}px`,`${m}px`]},role:`layout`,cleanup:()=>{e.style.height=t}}),a={baseline:t,handle:r};U.set(e,a),r.finished.finally(()=>{U.get(e)===a&&(U.delete(e),e.style.height=t)})}let h=0;o.forEach((n,r)=>{let i=Math.min(r,3),s=f?h*d:i*u*d,p=f?1:Math.max(.91,1-i*.03),m=f?1:Math.max(.72,1-i*.08);f&&(h+=(l[r]??0)+c),n.dataset.stackIndex=String(r),n.dataset.swipeAxis=e.dataset.position?.endsWith(`left`)||e.dataset.position?.endsWith(`right`)?`x`:`y`,n.style.setProperty(`--ui-toast-stack-index`,String(r)),n.style.setProperty(`--ui-toast-stack-depth`,String(i)),n.style.setProperty(`--ui-toast-stack-direction`,String(d)),n.style.setProperty(`--ui-toast-outside`,d>0?`-100%`:`100%`),n.style.setProperty(`--ui-toast-stack-offset`,`${s}px`),n.style.setProperty(`--ui-toast-stack-scale`,String(p)),n.style.setProperty(`--ui-toast-stack-opacity`,String(m)),n.style.zIndex=String(o.length-r);let g=`translateY(${s}px) scale(${p})`;n.dataset.swiping!==`true`&&(t&&n.dataset.state===`open`?a(n).animate({opacity:m,transform:g}).role(`layout`).play():n.dataset.state===`open`&&(n.style.opacity=String(m),n.style.transform=g))})},K=(e,t)=>{e.dispatchEvent(new CustomEvent(`ui:toast-dismiss-request`,{detail:{reason:t}}))},q=(e,t)=>{t!==0&&H(e).slice(t).forEach(e=>K(e,`api`))},J=(e,t)=>{let n=z(t.color,t.level),r=e.dataset.description===`true`||!!t.description.trim(),i=n!==`neutral`&&t.variant!==`solid`&&t.variant!=="default",a=t.level===`danger`||t.level===`warning`;Object.assign(e.dataset,{level:t.level,color:n,variant:t.variant,duration:String(t.duration),dismissible:String(t.dismissible)}),e.setAttribute(`role`,a?`alert`:`status`),e.setAttribute(`aria-live`,a?`assertive`:`polite`),e.className=v({part:P.parts.root,props:{variant:t.variant,color:n,hasDescription:r,hasMarker:i},className:t.class}),e.querySelector(`[data-ui-toast-marker]`)?.setAttribute(`class`,v({part:P.parts.marker,props:{variant:t.variant,color:n}})),e.querySelectorAll(`[data-ui-toast-content]`).forEach(e=>{e.className=v({part:P.parts.content,className:t.contentClass})}),e.querySelectorAll(`[data-ui-toast-title]`).forEach(e=>{e.className=`text-sm font-medium ${v({part:P.parts.title})}`}),e.querySelectorAll(`[data-ui-toast-description]`).forEach(e=>{e.className=`text-sm ${v({part:P.parts.description})}`}),e.querySelectorAll(`[data-ui-toast-close]`).forEach(e=>{e.hidden=!t.dismissible,e.className=v({part:P.parts.close,className:t.closeClass})})},Y=()=>{let n=null,i=[],a=0,s=null,c=null,l=0,u=new Set,d=()=>{if(!n)throw Error(`Toast has not been initialized.`);return n},f=()=>d().parentElement?.matches(`[data-ui-toast-outlet]`)?d().parentElement:null,h=()=>s===null?v.getSnapshot().context.timer.remaining:Math.max(0,a-performance.now()),_=()=>{s!==null&&clearTimeout(s),c!==null&&clearInterval(c),s=c=null},v=g({schema:A,hooks:M,createMachine:({props:e})=>N(e,{prepareOpen:()=>{d().dataset.state=`opening`,J(d(),v.getSnapshot().props),f()&&G(f(),!0)},finishOpen:()=>{d().dataset.state=`open`,f()&&G(f(),!0)},startTimer:()=>{let e=v.getSnapshot().context.timer.remaining;e<=0||(a=performance.now()+e,s=window.setTimeout(()=>v.send({type:`DISMISS`,reason:`timeout`}),e),c=window.setInterval(()=>v.send({type:`TICK`,remaining:h()}),100))},stopTimer:_,prepareClose:()=>{_(),d().dataset.state=`closing`,f()&&G(f(),!0)},finishClose:e=>{let t=d(),n=f();t.dataset.state=`closed`,p({el:t,name:`ui:dismiss`,detail:{reason:e}}),t.remove(),n&&G(n,!0)},syncProps:()=>{let e=v.getSnapshot().props;J(d(),e),e.duration!==l&&(l=e.duration,v.send(`DURATION_CHANGED`)),f()&&G(f())}})}),y=e=>{let t=u.size===0;u.add(e),t&&v.send({type:`PAUSE`,remaining:h()})},b=e=>{u.delete(e),u.size===0&&v.send(`RESUME`)};return{...v,get isOpen(){return this.snapshot.current?.tags.includes(`open`)??!1},get isPaused(){return this.snapshot.current?.tags.includes(`paused`)??!1},get remaining(){return this.snapshot.current?.context.timer.remaining??0},init(){n=this.$el,v.connect(this.$el,this.snapshot),l=v.getSnapshot().props.duration,document.hidden&&u.add(`visibility`),m({target:d(),event:`click`,handler:e=>{let t=e.target;v.getSnapshot().props.dismissible&&t instanceof Element&&t.closest(`[data-ui-toast-close]`)&&v.send({type:`DISMISS`,reason:`close`})},cleanup:i}),m({target:d(),event:`ui:toast-dismiss-request`,handler:e=>{let t=e instanceof CustomEvent?e.detail?.reason:`api`;v.send({type:`DISMISS`,reason:t})},cleanup:i}),m({target:d(),event:`ui:toast-pause-request`,handler:e=>{e instanceof CustomEvent&&e.detail?.paused===!0?y(`outlet`):b(`outlet`)},cleanup:i}),m({target:document,event:`visibilitychange`,handler:()=>document.hidden?y(`visibility`):b(`visibility`),cleanup:i}),m({target:d(),event:`pointerdown`,handler:n=>{if(!(n instanceof PointerEvent)||!n.isPrimary||n.button!==0||!v.getSnapshot().props.dismissible||n.target instanceof Element&&n.target.closest(`button, a, input, select, textarea`))return;let i=d(),a=f()?.dataset.position??`bottom-right`,s=a.endsWith(`left`)||a.endsWith(`right`),c=s?a.endsWith(`left`)?-1:1:a.startsWith(`top`)?-1:1,l=s?n.clientX:n.clientY,u=performance.now(),p=V(i),m=Number.parseFloat(i.style.getPropertyValue(`--ui-toast-stack-opacity`))||1,h=r(0);o(i),y(`gesture`),i.dataset.swiping=`true`,i.setPointerCapture(n.pointerId);let g=h.on(`change`,e=>{let t=s?`translateX(${e}px)`:`translateY(${e}px)`;i.style.transform=`${p} ${t}`;let n=Math.abs(e),r=s?i.offsetWidth:i.offsetHeight;i.style.opacity=String(Math.max(.35,m*(1-n/Math.max(r*2,1))))}),_=e=>{if(e.pointerId!==n.pointerId)return;e.preventDefault();let t=(s?e.clientX:e.clientY)-l;h.set(t*c>=0?t:t*.2)},x=(r,a=!1)=>{if(r.pointerId!==n.pointerId)return;window.removeEventListener(`pointermove`,_),window.removeEventListener(`pointerup`,x),window.removeEventListener(`pointercancel`,S);let o=h.get(),l=Math.max(1,performance.now()-u),d=Math.abs(o)/l,f=!a&&o*c>0&&(Math.abs(o)>=45||d>.11),v=f?e(h,c*(s?window.innerWidth:window.innerHeight),t.gestureExit):e(h,0,{type:`spring`,...t.gestureSettle}),y=e(i,{opacity:f?0:m},t.gestureExit);Promise.allSettled([v.finished,y.finished]).then(()=>{g(),delete i.dataset.swiping,b(`gesture`),f?K(i,`swipe`):(i.style.opacity=String(m),i.style.transform=p)})},S=e=>x(e,!0);window.addEventListener(`pointermove`,_),window.addEventListener(`pointerup`,x),window.addEventListener(`pointercancel`,S)},cleanup:i}),v.send(`OPEN`)},destroy(){_(),i.forEach(e=>e()),i=[],v.disconnect(),n=null},dismiss(){v.send({type:`DISMISS`,reason:`api`})},pause(){y(`consumer`)},resume(){b(`consumer`)}}},X=e=>{let t=document.createElementNS(`http://www.w3.org/2000/svg`,`svg`);t.setAttribute(`viewBox`,`0 0 32 32`),t.setAttribute(`aria-hidden`,`true`),t.dataset.uiToastCloseIcon=``,t.setAttribute(`class`,e);let n=document.createElementNS(`http://www.w3.org/2000/svg`,`polygon`);return n.setAttribute(`points`,`17.4141 16 24 9.4141 22.5859 8 16 14.5859 9.4143 8 8 9.4141 14.5859 16 8 22.5859 9.4143 24 16 17.4141 22.5859 24 24 22.5859 17.4141 16`),t.append(n),t},Z=(e,t)=>{let n=F(e.level)?e.level:`info`,r=L(e.variant)?e.variant:`default`,i=typeof e.title==`string`?e.title:``,a=typeof e.description==`string`?e.description:``,o=B(e.duration,t),s=typeof e.dismissible==`boolean`?e.dismissible:!0,c=document.createElement(`div`);c.setAttribute(`x-data`,`UiToast`),c.setAttribute(`x-ui-transition:opening`,`$ui.motion($transition).animate($ui.motion.presets.toast.in).role('presence').play()`),c.setAttribute(`x-ui-transition:closing`,`$transition.data.reason === 'swipe' ? null : $ui.motion($transition).animate($ui.motion.presets.toast.out).role('presence').play()`),Object.assign(c.dataset,{uiToast:``,uiToastRecipe:``,uiSurface:`+3`,uiElevation:`4`,level:n,color:I(e.color)?e.color:`auto`,variant:r,duration:String(o),dismissible:String(s),description:String(!!a.trim()),state:`closed`}),c.setAttribute(`aria-atomic`,`true`),c.style.opacity=`0`;let l=document.createElement(`span`);l.dataset.uiToastMarker=``,l.setAttribute(`aria-hidden`,`true`),c.append(l);let u=document.createElement(`div`);if(u.dataset.uiToastContent=``,i){let e=document.createElement(`strong`);e.dataset.uiToastTitle=``,e.textContent=i,u.append(e)}if(a){let e=document.createElement(`div`);e.dataset.uiToastDescription=``,e.textContent=a,u.append(e)}if(c.append(u),s){let e=document.createElement(`button`);e.type=`button`,e.dataset.uiToastClose=``,e.setAttribute(`aria-label`,`Dismiss notification`),e.append(X(v({part:P.parts.closeIcon}))),c.append(e)}return c},Q=e=>{let t=new Set,n=null,r=e=>{n?.querySelectorAll(`:scope > [data-ui-toast]`).forEach(t=>{t.dispatchEvent(new CustomEvent(`ui:toast-pause-request`,{detail:{paused:e}}))})},i=e=>{let i=t.size===0;if(t.add(e),!n||!i)return;let a=n.getBoundingClientRect().height;n.dataset.stackExpanded=`true`,r(!0),G(n,!0,a)},a=e=>{if(t.delete(e),!n||t.size>0)return;let i=n.getBoundingClientRect().height;delete n.dataset.stackExpanded,r(!1),G(n,!0,i)};return{props:null,cleanup:[],init(){this.props=f({el:this.$el,schema:j,onChange:()=>this.sync()});let e=this.$el;n=e,this.sync(),this.cleanup.push(T(e,()=>(i(`pointer`),()=>a(`pointer`)))),m({target:e,event:`focusin`,handler:()=>i(`focus`),cleanup:this.cleanup}),m({target:e,event:`focusout`,handler:()=>queueMicrotask(()=>{e.contains(document.activeElement)||a(`focus`)}),cleanup:this.cleanup}),m({target:document,event:`ui:toast`,handler:e=>this.add(e instanceof CustomEvent?e.detail:{}),cleanup:this.cleanup}),queueMicrotask(()=>q(e,this.props.maxItems))},destroy(){n&&W(n),this.props.disconnect(),this.cleanup.forEach(e=>e()),this.cleanup=[],t.clear(),n=null},sync(){let e=this.$el;e.id=this.props.id,e.dataset.position=this.props.position,e.dataset.duration=String(this.props.duration),e.dataset.maxItems=String(this.props.maxItems),e.className=v({part:P.parts.outlet,props:{position:this.props.position},className:this.props.class}),G(e),q(e,this.props.maxItems)},add(n){let r=typeof n.title==`string`?n.title:``,i=typeof n.description==`string`?n.description:``;if(!r.trim()&&!i.trim())return;let a=this.$el,o=Z(n,this.props.duration);a.prepend(o),e.initTree(o),t.size>0&&o.dispatchEvent(new CustomEvent(`ui:toast-pause-request`,{detail:{paused:!0}})),G(a),q(a,this.props.maxItems)}}},ee=e=>{_(`UiToast`,Y)(e),_(`UiToastOutlet`,()=>Q(e))(e)},$=new WeakSet,te=e=>{$.has(e)||($.add(e),s(e),ee(e))};export{Y as n,Q as r,te as t};
|
|
2
|
-
//# sourceMappingURL=entry.generated-
|
|
1
|
+
import{f as e,g as t,l as n,m as r,p as i,s as a,u as o}from"./motion-BDQdr83d.js";import{t as s}from"./capability-motion-DQitxnHn.js";import{c,f as l,l as u,n as d,o as f}from"./codecs-Cb1ns_47.js";import{r as p,t as m}from"./dom-qAeVl7dc.js";import{i as h,t as g}from"./alpine-machine-BTDXpEr6.js";import{t as _}from"./alpine-data-CytyCyfk.js";import{n as v,t as y}from"./styles-TfvwVPGw.js";import{t as b}from"./machine-Dqut4h89.js";var x={x:!1,y:!1};function S(){return x.x||x.y}function C(e,t){let n=i(e),r=new AbortController;return[n,{passive:!0,...t,signal:r.signal},()=>r.abort()]}function w(e){return!(e.pointerType===`touch`||S())}function T(e,t,n={}){let[r,i,a]=C(e,n);return r.forEach(e=>{let n=!1,r=!1,a,o=()=>{e.removeEventListener(`pointerleave`,u)},s=e=>{a&&=(a(e),void 0),o()},c=e=>{n=!1,window.removeEventListener(`pointerup`,c),window.removeEventListener(`pointercancel`,c),r&&(r=!1,s(e))},l=()=>{n=!0,window.addEventListener(`pointerup`,c,i),window.addEventListener(`pointercancel`,c,i)},u=e=>{if(e.pointerType!==`touch`){if(n){r=!0;return}s(e)}};e.addEventListener(`pointerenter`,n=>{if(!w(n))return;r=!1;let o=t(e,n);typeof o==`function`&&(a=o,e.addEventListener(`pointerleave`,u,i))},i),e.addEventListener(`pointerdown`,l,i)}),a}var E=[`info`,`success`,`warning`,`danger`,`debug`],D=[`auto`,`neutral`,`accent`,`success`,`warning`,`danger`],O=[`default`,`soft`,`surface`,`solid`,`outline`],k=[`top-right`,`top-left`,`top-center`,`bottom-right`,`bottom-left`,`bottom-center`],A={level:u(E,`info`),color:u(D,`auto`),variant:u(O,`default`),title:l,description:l,duration:c.default(5e3).min(0),dismissible:d.default(!0),class:l,contentClass:l,closeClass:l},j={id:l.default(`ui-toast-root`),position:u(k,`top-right`),duration:c.default(5e3).min(0),includeMessages:d.default(!0),maxItems:c.default(3).min(0),class:l},M=[h({name:`opening`,state:`opening`,project:()=>({}),onDone:`OPENING_DONE`,onError:`OPENING_ERROR`}),h({name:`closing`,state:`closing`,project:({context:e})=>({reason:e.dismissal.reason}),onDone:`CLOSING_DONE`,onError:`CLOSING_ERROR`})],N=(e,t)=>b({initial:`idle`,on:{PROPS_CHANGED:{reduce:`replaceProps`,effects:`syncProps`}},states:{idle:{on:{OPEN:{target:`opening`,effects:`prepareOpen`}}},opening:{tags:[`visible`,`expanded`,`transitioning`],on:{OPENING_DONE:[{target:`open.persistent`,guard:`isPersistent`,effects:`finishOpen`},{target:`open.paused`,guard:`isPaused`,effects:`finishOpen`},{target:`open.running`,effects:`finishOpen`}],OPENING_ERROR:[{target:`open.persistent`,guard:`isPersistent`,effects:`finishOpen`},{target:`open.paused`,guard:`isPaused`,effects:`finishOpen`},{target:`open.running`,effects:`finishOpen`}],PAUSE:{reduce:`pause`},RESUME:{reduce:`resume`},DISMISS:{target:`closing`,reduce:`dismiss`,effects:`prepareClose`}}},open:{id:`open`,initial:`running`,tags:[`visible`,`expanded`,`open`],on:{DISMISS:{target:`closing`,reduce:`dismiss`,effects:`prepareClose`}},states:{persistent:{on:{PAUSE:{reduce:`pause`},RESUME:{reduce:`resume`},DURATION_CHANGED:{target:`running`,guard:`hasDuration`,reduce:`resetDuration`}}},running:{entry:`startTimer`,exit:`stopTimer`,on:{PAUSE:{target:`paused`,reduce:`pause`},TICK:{reduce:`tick`},DURATION_CHANGED:[{target:`persistent`,guard:`isPersistent`},{target:`running`,reduce:`resetDuration`}]}},paused:{tags:[`paused`],on:{RESUME:{target:`running`,reduce:`resume`},DURATION_CHANGED:[{target:`persistent`,guard:`isPersistent`},{reduce:`resetDuration`}]}}}},closing:{tags:[`visible`,`transitioning`],on:{CLOSING_DONE:{target:`removed`,effects:`finishClose`},CLOSING_ERROR:{target:`removed`,effects:`finishClose`}}},removed:{tags:[`removed`]}}},{context:{timer:{remaining:e.duration,paused:!1},dismissal:{reason:`api`}},props:e,reducers:{replaceProps:({context:e,event:t,props:n})=>({context:e,props:t.props??n}),pause:({context:e,event:t})=>({context:{...e,timer:{remaining:typeof t.remaining==`number`?t.remaining:e.timer.remaining,paused:!0}}}),resume:({context:e})=>({context:{...e,timer:{...e.timer,paused:!1}}}),tick:({context:e,event:t})=>({context:{...e,timer:{...e.timer,remaining:Math.max(0,Number(t.remaining)||0)}}}),resetDuration:({context:e,props:t})=>({context:{...e,timer:{...e.timer,remaining:t.duration}}}),dismiss:({context:e,event:t})=>({context:{...e,dismissal:{reason:t.reason===`timeout`||t.reason===`close`||t.reason===`swipe`?t.reason:`api`}}})},guards:{isPersistent:({props:e})=>e.duration===0,hasDuration:({props:e})=>e.duration>0,isPaused:({context:e})=>e.timer.paused},effects:{prepareOpen:t.prepareOpen,finishOpen:t.finishOpen,startTimer:t.startTimer,stopTimer:t.stopTimer,prepareClose:t.prepareClose,syncProps:t.syncProps,finishClose:({context:e})=>t.finishClose(e.dismissal.reason)}}),P=y({definition:{component:`ui.toast`,parts:{root:{base:[`group/toast pointer-events-auto relative grid w-full min-w-0 items-center gap-x-3 gap-y-1 overflow-hidden rounded-overlay-md px-3 py-2.5 outline-none`,`data-[state=closed]:pointer-events-none data-[state=closed]:opacity-0`],variants:{variant:{default:``,soft:``,surface:``,solid:``,outline:``},color:{neutral:``,accent:``,success:``,warning:``,danger:``},hasMarker:{true:`grid-cols-[auto_minmax(0,1fr)_auto]`,false:`grid-cols-[minmax(0,1fr)_auto]`},hasDescription:{true:``,false:``}},defaults:{variant:`default`,color:`neutral`,hasMarker:!1,hasDescription:!1}},marker:{base:`size-2 self-center rounded-full`,variants:{color:{neutral:`hidden`,accent:``,success:``,warning:``,danger:``},variant:{default:`hidden`,soft:``,surface:``,solid:`hidden`,outline:``}},defaults:{color:`neutral`,variant:`default`}},content:{base:`grid min-w-0 gap-0.5 self-center`},title:{base:`min-w-0`},description:{base:`min-w-0`},close:{base:[`-mr-1 inline-flex size-control-md shrink-0 items-center justify-center self-center rounded-full outline-none`]},closeIcon:{base:`size-icon fill-current`},outlet:{base:[`pointer-events-none fixed z-toast flex w-[min(24rem,calc(100vw-2rem))] flex-col gap-2`],variants:{position:{"top-right":`right-4 top-4 justify-items-end`,"top-left":`left-4 top-4 justify-items-start`,"top-center":`left-1/2 top-4 -translate-x-1/2 justify-items-center`,"bottom-right":`bottom-4 right-4 justify-items-end`,"bottom-left":`bottom-4 left-4 justify-items-start`,"bottom-center":`bottom-4 left-1/2 -translate-x-1/2 justify-items-center`}},defaults:{position:`top-right`}}}}}),F=e=>[`info`,`success`,`warning`,`danger`,`debug`].includes(String(e)),I=e=>[`auto`,`neutral`,`accent`,`success`,`warning`,`danger`].includes(String(e)),L=e=>[`default`,`soft`,`surface`,`solid`,`outline`].includes(String(e)),R=e=>e===`info`?`accent`:e===`success`||e===`warning`||e===`danger`?e:`neutral`,z=(e,t)=>I(e)&&e!==`auto`?e:R(t),B=(e,t)=>{let n=typeof e==`number`?e:Number(e);return Number.isFinite(n)&&n>=0?n:t},V=e=>{let t=e.style;return`translateY(${Number.parseFloat(t.getPropertyValue(`--ui-toast-stack-offset`))||0}px) scale(${Number.parseFloat(t.getPropertyValue(`--ui-toast-stack-scale`))||1})`},H=e=>Array.from(e.querySelectorAll(`:scope > [data-ui-toast]`)).filter(e=>e.dataset.state!==`closing`&&e.dataset.state!==`closed`),U=new WeakMap,W=e=>{let t=U.get(e);t&&(U.delete(e),t.handle.stop(),e.style.height=t.baseline)},G=(e,t=!1,r)=>{let i=r??e.getBoundingClientRect().height;W(e);let o=Array.from(e.querySelectorAll(`:scope > [data-ui-toast]`));e.dataset.stack=o.length>1?`collapsed`:`single`;let s=getComputedStyle(e),c=Number.parseFloat(s.rowGap||s.gap||`0`)||0,l=o.map(e=>Math.ceil(e.scrollHeight||e.getBoundingClientRect().height)),u=Number.parseFloat(s.getPropertyValue(`--ui-toast-stack-peek`))||8,d=e.dataset.position?.startsWith(`bottom`)?-1:1,f=e.dataset.stackExpanded===`true`,p=Math.min(Math.max(0,o.length-1),3);e.style.setProperty(`--ui-toast-front-height`,`${l[0]??0}px`),e.style.setProperty(`--ui-toast-stack-height`,`${(l[0]??0)+p*u}px`),e.style.setProperty(`--ui-toast-stack-expanded-height`,`${l.reduce((e,t)=>e+t,0)+Math.max(0,o.length-1)*c}px`);let m=e.getBoundingClientRect().height;if(t&&Math.abs(i-m)>=1){let t=e.style.height,r=n(e,{keyframes:{height:[`${i}px`,`${m}px`]},role:`layout`,cleanup:()=>{e.style.height=t}}),a={baseline:t,handle:r};U.set(e,a),r.finished.finally(()=>{U.get(e)===a&&(U.delete(e),e.style.height=t)})}let h=0;o.forEach((n,r)=>{let i=Math.min(r,3),s=f?h*d:i*u*d,p=f?1:Math.max(.91,1-i*.03),m=f?1:Math.max(.72,1-i*.08);f&&(h+=(l[r]??0)+c),n.dataset.stackIndex=String(r),n.dataset.swipeAxis=e.dataset.position?.endsWith(`left`)||e.dataset.position?.endsWith(`right`)?`x`:`y`,n.style.setProperty(`--ui-toast-stack-index`,String(r)),n.style.setProperty(`--ui-toast-stack-depth`,String(i)),n.style.setProperty(`--ui-toast-stack-direction`,String(d)),n.style.setProperty(`--ui-toast-outside`,d>0?`-100%`:`100%`),n.style.setProperty(`--ui-toast-stack-offset`,`${s}px`),n.style.setProperty(`--ui-toast-stack-scale`,String(p)),n.style.setProperty(`--ui-toast-stack-opacity`,String(m)),n.style.zIndex=String(o.length-r);let g=`translateY(${s}px) scale(${p})`;n.dataset.swiping!==`true`&&(t&&n.dataset.state===`open`?a(n).animate({opacity:m,transform:g}).role(`layout`).play():n.dataset.state===`open`&&(n.style.opacity=String(m),n.style.transform=g))})},K=(e,t)=>{e.dispatchEvent(new CustomEvent(`ui:toast-dismiss-request`,{detail:{reason:t}}))},q=(e,t)=>{t!==0&&H(e).slice(t).forEach(e=>K(e,`api`))},J=(e,t)=>{let n=z(t.color,t.level),r=e.dataset.description===`true`||!!t.description.trim(),i=n!==`neutral`&&t.variant!==`solid`&&t.variant!=="default",a=t.level===`danger`||t.level===`warning`;Object.assign(e.dataset,{level:t.level,color:n,variant:t.variant,duration:String(t.duration),dismissible:String(t.dismissible)}),e.setAttribute(`role`,a?`alert`:`status`),e.setAttribute(`aria-live`,a?`assertive`:`polite`),e.className=v({part:P.parts.root,props:{variant:t.variant,color:n,hasDescription:r,hasMarker:i},className:t.class}),e.querySelector(`[data-ui-toast-marker]`)?.setAttribute(`class`,v({part:P.parts.marker,props:{variant:t.variant,color:n}})),e.querySelectorAll(`[data-ui-toast-content]`).forEach(e=>{e.className=v({part:P.parts.content,className:t.contentClass})}),e.querySelectorAll(`[data-ui-toast-title]`).forEach(e=>{e.className=`text-sm font-medium ${v({part:P.parts.title})}`}),e.querySelectorAll(`[data-ui-toast-description]`).forEach(e=>{e.className=`text-sm ${v({part:P.parts.description})}`}),e.querySelectorAll(`[data-ui-toast-close]`).forEach(e=>{e.hidden=!t.dismissible,e.className=v({part:P.parts.close,className:t.closeClass})})},Y=()=>{let n=null,i=[],a=0,s=null,c=null,l=0,u=new Set,d=()=>{if(!n)throw Error(`Toast has not been initialized.`);return n},f=()=>d().parentElement?.matches(`[data-ui-toast-outlet]`)?d().parentElement:null,h=()=>s===null?v.getSnapshot().context.timer.remaining:Math.max(0,a-performance.now()),_=()=>{s!==null&&clearTimeout(s),c!==null&&clearInterval(c),s=c=null},v=g({schema:A,hooks:M,createMachine:({props:e})=>N(e,{prepareOpen:()=>{d().dataset.state=`opening`,J(d(),v.getSnapshot().props),f()&&G(f(),!0)},finishOpen:()=>{d().dataset.state=`open`,f()&&G(f(),!0)},startTimer:()=>{let e=v.getSnapshot().context.timer.remaining;e<=0||(a=performance.now()+e,s=window.setTimeout(()=>v.send({type:`DISMISS`,reason:`timeout`}),e),c=window.setInterval(()=>v.send({type:`TICK`,remaining:h()}),100))},stopTimer:_,prepareClose:()=>{_(),d().dataset.state=`closing`,f()&&G(f(),!0)},finishClose:e=>{let t=d(),n=f();t.dataset.state=`closed`,p({el:t,name:`ui:dismiss`,detail:{reason:e}}),t.remove(),n&&G(n,!0)},syncProps:()=>{let e=v.getSnapshot().props;J(d(),e),e.duration!==l&&(l=e.duration,v.send(`DURATION_CHANGED`)),f()&&G(f())}})}),y=e=>{let t=u.size===0;u.add(e),t&&v.send({type:`PAUSE`,remaining:h()})},b=e=>{u.delete(e),u.size===0&&v.send(`RESUME`)};return{...v,get isOpen(){return this.snapshot.current?.tags.includes(`open`)??!1},get isPaused(){return this.snapshot.current?.tags.includes(`paused`)??!1},get remaining(){return this.snapshot.current?.context.timer.remaining??0},init(){n=this.$el,v.connect(this.$el,this.snapshot),l=v.getSnapshot().props.duration,document.hidden&&u.add(`visibility`),m({target:d(),event:`click`,handler:e=>{let t=e.target;v.getSnapshot().props.dismissible&&t instanceof Element&&t.closest(`[data-ui-toast-close]`)&&v.send({type:`DISMISS`,reason:`close`})},cleanup:i}),m({target:d(),event:`ui:toast-dismiss-request`,handler:e=>{let t=e instanceof CustomEvent?e.detail?.reason:`api`;v.send({type:`DISMISS`,reason:t})},cleanup:i}),m({target:d(),event:`ui:toast-pause-request`,handler:e=>{e instanceof CustomEvent&&e.detail?.paused===!0?y(`outlet`):b(`outlet`)},cleanup:i}),m({target:document,event:`visibilitychange`,handler:()=>document.hidden?y(`visibility`):b(`visibility`),cleanup:i}),m({target:d(),event:`pointerdown`,handler:n=>{if(!(n instanceof PointerEvent)||!n.isPrimary||n.button!==0||!v.getSnapshot().props.dismissible||n.target instanceof Element&&n.target.closest(`button, a, input, select, textarea`))return;let i=d(),a=f()?.dataset.position??`bottom-right`,s=a.endsWith(`left`)||a.endsWith(`right`),c=s?a.endsWith(`left`)?-1:1:a.startsWith(`top`)?-1:1,l=s?n.clientX:n.clientY,u=performance.now(),p=V(i),m=Number.parseFloat(i.style.getPropertyValue(`--ui-toast-stack-opacity`))||1,h=r(0);o(i),y(`gesture`),i.dataset.swiping=`true`,i.setPointerCapture(n.pointerId);let g=h.on(`change`,e=>{let t=s?`translateX(${e}px)`:`translateY(${e}px)`;i.style.transform=`${p} ${t}`;let n=Math.abs(e),r=s?i.offsetWidth:i.offsetHeight;i.style.opacity=String(Math.max(.35,m*(1-n/Math.max(r*2,1))))}),_=e=>{if(e.pointerId!==n.pointerId)return;e.preventDefault();let t=(s?e.clientX:e.clientY)-l;h.set(t*c>=0?t:t*.2)},x=(r,a=!1)=>{if(r.pointerId!==n.pointerId)return;window.removeEventListener(`pointermove`,_),window.removeEventListener(`pointerup`,x),window.removeEventListener(`pointercancel`,S);let o=h.get(),l=Math.max(1,performance.now()-u),d=Math.abs(o)/l,f=!a&&o*c>0&&(Math.abs(o)>=45||d>.11),v=f?e(h,c*(s?window.innerWidth:window.innerHeight),t.gestureExit):e(h,0,{type:`spring`,...t.gestureSettle}),y=e(i,{opacity:f?0:m},t.gestureExit);Promise.allSettled([v.finished,y.finished]).then(()=>{g(),delete i.dataset.swiping,b(`gesture`),f?K(i,`swipe`):(i.style.opacity=String(m),i.style.transform=p)})},S=e=>x(e,!0);window.addEventListener(`pointermove`,_),window.addEventListener(`pointerup`,x),window.addEventListener(`pointercancel`,S)},cleanup:i}),v.send(`OPEN`)},destroy(){_(),i.forEach(e=>e()),i=[],v.disconnect(),n=null},dismiss(){v.send({type:`DISMISS`,reason:`api`})},pause(){y(`consumer`)},resume(){b(`consumer`)}}},X=e=>{let t=document.createElementNS(`http://www.w3.org/2000/svg`,`svg`);t.setAttribute(`viewBox`,`0 0 32 32`),t.setAttribute(`aria-hidden`,`true`),t.dataset.uiToastCloseIcon=``,t.setAttribute(`class`,e);let n=document.createElementNS(`http://www.w3.org/2000/svg`,`polygon`);return n.setAttribute(`points`,`17.4141 16 24 9.4141 22.5859 8 16 14.5859 9.4143 8 8 9.4141 14.5859 16 8 22.5859 9.4143 24 16 17.4141 22.5859 24 24 22.5859 17.4141 16`),t.append(n),t},Z=(e,t)=>{let n=F(e.level)?e.level:`info`,r=L(e.variant)?e.variant:`default`,i=typeof e.title==`string`?e.title:``,a=typeof e.description==`string`?e.description:``,o=B(e.duration,t),s=typeof e.dismissible==`boolean`?e.dismissible:!0,c=document.createElement(`div`);c.setAttribute(`x-data`,`UiToast`),c.setAttribute(`x-ui-transition:opening`,`$ui.motion($transition).animate($ui.motion.presets.toast.in).role('presence').play()`),c.setAttribute(`x-ui-transition:closing`,`$transition.data.reason === 'swipe' ? null : $ui.motion($transition).animate($ui.motion.presets.toast.out).role('presence').play()`),Object.assign(c.dataset,{uiToast:``,uiToastRecipe:``,uiSurface:`+3`,uiElevation:`4`,level:n,color:I(e.color)?e.color:`auto`,variant:r,duration:String(o),dismissible:String(s),description:String(!!a.trim()),state:`closed`}),c.setAttribute(`aria-atomic`,`true`),c.style.opacity=`0`;let l=document.createElement(`span`);l.dataset.uiToastMarker=``,l.setAttribute(`aria-hidden`,`true`),c.append(l);let u=document.createElement(`div`);if(u.dataset.uiToastContent=``,i){let e=document.createElement(`strong`);e.dataset.uiToastTitle=``,e.textContent=i,u.append(e)}if(a){let e=document.createElement(`div`);e.dataset.uiToastDescription=``,e.textContent=a,u.append(e)}if(c.append(u),s){let e=document.createElement(`button`);e.type=`button`,e.dataset.uiToastClose=``,e.setAttribute(`aria-label`,`Dismiss notification`),e.append(X(v({part:P.parts.closeIcon}))),c.append(e)}return c},Q=e=>{let t=new Set,n=null,r=e=>{n?.querySelectorAll(`:scope > [data-ui-toast]`).forEach(t=>{t.dispatchEvent(new CustomEvent(`ui:toast-pause-request`,{detail:{paused:e}}))})},i=e=>{let i=t.size===0;if(t.add(e),!n||!i)return;let a=n.getBoundingClientRect().height;n.dataset.stackExpanded=`true`,r(!0),G(n,!0,a)},a=e=>{if(t.delete(e),!n||t.size>0)return;let i=n.getBoundingClientRect().height;delete n.dataset.stackExpanded,r(!1),G(n,!0,i)};return{props:null,cleanup:[],init(){this.props=f({el:this.$el,schema:j,onChange:()=>this.sync()});let e=this.$el;n=e,this.sync(),this.cleanup.push(T(e,()=>(i(`pointer`),()=>a(`pointer`)))),m({target:e,event:`focusin`,handler:()=>i(`focus`),cleanup:this.cleanup}),m({target:e,event:`focusout`,handler:()=>queueMicrotask(()=>{e.contains(document.activeElement)||a(`focus`)}),cleanup:this.cleanup}),m({target:document,event:`ui:toast`,handler:e=>this.add(e instanceof CustomEvent?e.detail:{}),cleanup:this.cleanup}),queueMicrotask(()=>q(e,this.props.maxItems))},destroy(){n&&W(n),this.props.disconnect(),this.cleanup.forEach(e=>e()),this.cleanup=[],t.clear(),n=null},sync(){let e=this.$el;e.id=this.props.id,e.dataset.position=this.props.position,e.dataset.duration=String(this.props.duration),e.dataset.maxItems=String(this.props.maxItems),e.className=v({part:P.parts.outlet,props:{position:this.props.position},className:this.props.class}),G(e),q(e,this.props.maxItems)},add(n){let r=typeof n.title==`string`?n.title:``,i=typeof n.description==`string`?n.description:``;if(!r.trim()&&!i.trim())return;let a=this.$el,o=Z(n,this.props.duration);a.prepend(o),e.initTree(o),t.size>0&&o.dispatchEvent(new CustomEvent(`ui:toast-pause-request`,{detail:{paused:!0}})),G(a),q(a,this.props.maxItems)}}},ee=e=>{_(`UiToast`,Y)(e),_(`UiToastOutlet`,()=>Q(e))(e)},$=new WeakSet,te=e=>{$.has(e)||($.add(e),s(e),ee(e))};export{Y as n,Q as r,te as t};
|
|
2
|
+
//# sourceMappingURL=entry.generated-DCLIvEtJ.js.map
|