import { type SlotNames, type VariantProps } from '../../utils/variants.js'; /** * The week view's stacking rules — structure, not decoration. * * Below `md` the weekday row is dropped and each week row collapses to one * column, so the weekday and the date move into every cell; from `md` up the * cell header hides again because the row above carries them. Take any one of * the three away and both copies print at once, at every width. * * `unstyled` keeps exactly this map (`Planner.svelte` indexes it) and the * `view: 'week'` axis is assembled from it below, so a key added here reaches * both paths. That assembly is also what checks the keys: they land in the * axis, where the engine's `ValidSlotVariants` rejects a name that is not a * slot. The widening assignment in `Planner.svelte` checks nothing — a named * constant gets no excess-property check — so keep the assembly, not a second * assertion, as the thing that holds the keys to the slot roster. */ export declare const plannerWeekStacking: Record<'weekdayHeader' | 'week' | 'cellHeader', string>; /** * Planner styling — the visible chrome layered over the headless `DateGridScaffold`. * * Slots cover the toolbar, the weekday header, week rows and the day cell. * * Every class that lands on a slot is declared here, the view-conditional and * the per-cell-state ones included. A conditional class written in the markup * instead lands in one of two positions where nothing strips it — after the * fold, or inside the consumer's own source — so it and a colliding consumer * entry both survive and the stylesheet picks the winner (#349). Five class * strings in `Planner.svelte` sit on elements no slot addresses (the live * region, the day-header wrapper and its date, the gridcell, the item-count * badge); an element with no slot has no consumer entry to collide with, and * giving it one is an API decision, not a fold repair. * * Three axes are props (`view`, `variant`, `size`). The four cell-state axes * are passed per cell to the slot function and are `Omit`ted from * `PlannerProps` — a prop for them would offer the consumer a whole-grid switch * for something that differs per day. */ export declare const plannerVariants: ((props?: { view?: "week" | "month" | "range" | undefined; variant?: "default" | "bordered" | "ghost" | undefined; size?: "sm" | "md" | "lg" | undefined; dayState?: "default" | "today" | "disabled" | undefined; selected?: boolean | undefined; weekend?: boolean | undefined; outside?: boolean | undefined; } | undefined) => { grid: (props?: ({ view?: "week" | "month" | "range" | undefined; variant?: "default" | "bordered" | "ghost" | undefined; size?: "sm" | "md" | "lg" | undefined; dayState?: "default" | "today" | "disabled" | undefined; selected?: boolean | undefined; weekend?: boolean | undefined; outside?: boolean | undefined; } & { class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined; }) | undefined) => string; weekdayHeader: (props?: ({ view?: "week" | "month" | "range" | undefined; variant?: "default" | "bordered" | "ghost" | undefined; size?: "sm" | "md" | "lg" | undefined; dayState?: "default" | "today" | "disabled" | undefined; selected?: boolean | undefined; weekend?: boolean | undefined; outside?: boolean | undefined; } & { class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined; }) | undefined) => string; weekday: (props?: ({ view?: "week" | "month" | "range" | undefined; variant?: "default" | "bordered" | "ghost" | undefined; size?: "sm" | "md" | "lg" | undefined; dayState?: "default" | "today" | "disabled" | undefined; selected?: boolean | undefined; weekend?: boolean | undefined; outside?: boolean | undefined; } & { class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined; }) | undefined) => string; weekNumber: (props?: ({ view?: "week" | "month" | "range" | undefined; variant?: "default" | "bordered" | "ghost" | undefined; size?: "sm" | "md" | "lg" | undefined; dayState?: "default" | "today" | "disabled" | undefined; selected?: boolean | undefined; weekend?: boolean | undefined; outside?: boolean | undefined; } & { class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined; }) | undefined) => string; week: (props?: ({ view?: "week" | "month" | "range" | undefined; variant?: "default" | "bordered" | "ghost" | undefined; size?: "sm" | "md" | "lg" | undefined; dayState?: "default" | "today" | "disabled" | undefined; selected?: boolean | undefined; weekend?: boolean | undefined; outside?: boolean | undefined; } & { class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined; }) | undefined) => string; cell: (props?: ({ view?: "week" | "month" | "range" | undefined; variant?: "default" | "bordered" | "ghost" | undefined; size?: "sm" | "md" | "lg" | undefined; dayState?: "default" | "today" | "disabled" | undefined; selected?: boolean | undefined; weekend?: boolean | undefined; outside?: boolean | undefined; } & { class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined; }) | undefined) => string; cellHeader: (props?: ({ view?: "week" | "month" | "range" | undefined; variant?: "default" | "bordered" | "ghost" | undefined; size?: "sm" | "md" | "lg" | undefined; dayState?: "default" | "today" | "disabled" | undefined; selected?: boolean | undefined; weekend?: boolean | undefined; outside?: boolean | undefined; } & { class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined; }) | undefined) => string; cellWeekday: (props?: ({ view?: "week" | "month" | "range" | undefined; variant?: "default" | "bordered" | "ghost" | undefined; size?: "sm" | "md" | "lg" | undefined; dayState?: "default" | "today" | "disabled" | undefined; selected?: boolean | undefined; weekend?: boolean | undefined; outside?: boolean | undefined; } & { class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined; }) | undefined) => string; cellDate: (props?: ({ view?: "week" | "month" | "range" | undefined; variant?: "default" | "bordered" | "ghost" | undefined; size?: "sm" | "md" | "lg" | undefined; dayState?: "default" | "today" | "disabled" | undefined; selected?: boolean | undefined; weekend?: boolean | undefined; outside?: boolean | undefined; } & { class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined; }) | undefined) => string; cellItems: (props?: ({ view?: "week" | "month" | "range" | undefined; variant?: "default" | "bordered" | "ghost" | undefined; size?: "sm" | "md" | "lg" | undefined; dayState?: "default" | "today" | "disabled" | undefined; selected?: boolean | undefined; weekend?: boolean | undefined; outside?: boolean | undefined; } & { class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined; }) | undefined) => string; empty: (props?: ({ view?: "week" | "month" | "range" | undefined; variant?: "default" | "bordered" | "ghost" | undefined; size?: "sm" | "md" | "lg" | undefined; dayState?: "default" | "today" | "disabled" | undefined; selected?: boolean | undefined; weekend?: boolean | undefined; outside?: boolean | undefined; } & { class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined; }) | undefined) => string; header: (props?: ({ view?: "week" | "month" | "range" | undefined; variant?: "default" | "bordered" | "ghost" | undefined; size?: "sm" | "md" | "lg" | undefined; dayState?: "default" | "today" | "disabled" | undefined; selected?: boolean | undefined; weekend?: boolean | undefined; outside?: boolean | undefined; } & { class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined; }) | undefined) => string; headerTitle: (props?: ({ view?: "week" | "month" | "range" | undefined; variant?: "default" | "bordered" | "ghost" | undefined; size?: "sm" | "md" | "lg" | undefined; dayState?: "default" | "today" | "disabled" | undefined; selected?: boolean | undefined; weekend?: boolean | undefined; outside?: boolean | undefined; } & { class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined; }) | undefined) => string; nav: (props?: ({ view?: "week" | "month" | "range" | undefined; variant?: "default" | "bordered" | "ghost" | undefined; size?: "sm" | "md" | "lg" | undefined; dayState?: "default" | "today" | "disabled" | undefined; selected?: boolean | undefined; weekend?: boolean | undefined; outside?: boolean | undefined; } & { class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined; }) | undefined) => string; navButton: (props?: ({ view?: "week" | "month" | "range" | undefined; variant?: "default" | "bordered" | "ghost" | undefined; size?: "sm" | "md" | "lg" | undefined; dayState?: "default" | "today" | "disabled" | undefined; selected?: boolean | undefined; weekend?: boolean | undefined; outside?: boolean | undefined; } & { class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined; }) | undefined) => string; base: (props?: ({ view?: "week" | "month" | "range" | undefined; variant?: "default" | "bordered" | "ghost" | undefined; size?: "sm" | "md" | "lg" | undefined; dayState?: "default" | "today" | "disabled" | undefined; selected?: boolean | undefined; weekend?: boolean | undefined; outside?: boolean | undefined; } & { class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined)[] | Record | null | undefined; }) | undefined) => string; }) & { readonly config: import("../../utils/variants.js").TVConfig; }; export type PlannerVariants = VariantProps; /** * The axes a single day cell varies on, resolved at the slot call rather than * from a prop. `PlannerProps` subtracts `keyof PlannerCellState` from what it * inherits off this config, which is what keeps these axes out of the * catalogue's variant list. * * The subtraction reaches the inherited surface and nothing else. `PlannerProps` * declares `view`, `variant` and `size` in its own body, so naming one of those * here strips its variant metadata while the prop stays writable — measured with * `'size'` added: the catalogue drops to `variants: ['variant']`, losing the * options and the playground knob, and `` still type-checks. * Adding a key here is therefore half a move; the other half is that no member * of the interface body declares it. */ export type PlannerCellState = Pick; /** Slot names derived from the tv() config — single source of truth for slotClasses. */ export type PlannerSlots = SlotNames;