@cocoar/vue-calendar 1.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/README.md +257 -0
  2. package/dist/__test-utils__/event-fixtures.d.ts +4 -0
  3. package/dist/__test-utils__/event-fixtures.d.ts.map +1 -0
  4. package/dist/builders/calendar-builder-internals.d.ts +14 -0
  5. package/dist/builders/calendar-builder-internals.d.ts.map +1 -0
  6. package/dist/builders/calendar-builder.d.ts +296 -0
  7. package/dist/builders/calendar-builder.d.ts.map +1 -0
  8. package/dist/builders/event-zone-hints.d.ts +20 -0
  9. package/dist/builders/event-zone-hints.d.ts.map +1 -0
  10. package/dist/builders/render-helpers.d.ts +19 -0
  11. package/dist/builders/render-helpers.d.ts.map +1 -0
  12. package/dist/builders/types.d.ts +175 -0
  13. package/dist/builders/types.d.ts.map +1 -0
  14. package/dist/components/CoarCalendar.vue.d.ts +150 -0
  15. package/dist/components/CoarCalendar.vue.d.ts.map +1 -0
  16. package/dist/components/CoarDisplayZoneSwitcher.vue.d.ts +28 -0
  17. package/dist/components/CoarDisplayZoneSwitcher.vue.d.ts.map +1 -0
  18. package/dist/components/VirtualizedSurface1DY.vue.d.ts +90 -0
  19. package/dist/components/VirtualizedSurface1DY.vue.d.ts.map +1 -0
  20. package/dist/components/VirtualizedSurface2D.vue.d.ts +71 -0
  21. package/dist/components/VirtualizedSurface2D.vue.d.ts.map +1 -0
  22. package/dist/components/internal/CoarEventDecorations.vue.d.ts +13 -0
  23. package/dist/components/internal/CoarEventDecorations.vue.d.ts.map +1 -0
  24. package/dist/components/internal/RenderEventFallback.d.ts +17 -0
  25. package/dist/components/internal/RenderEventFallback.d.ts.map +1 -0
  26. package/dist/components/internal/agenda/CoarAgendaDayHeader.vue.d.ts +54 -0
  27. package/dist/components/internal/agenda/CoarAgendaDayHeader.vue.d.ts.map +1 -0
  28. package/dist/components/internal/month/CoarMonthBar.vue.d.ts +80 -0
  29. package/dist/components/internal/month/CoarMonthBar.vue.d.ts.map +1 -0
  30. package/dist/components/internal/month/CoarMonthCell.vue.d.ts +74 -0
  31. package/dist/components/internal/month/CoarMonthCell.vue.d.ts.map +1 -0
  32. package/dist/components/internal/month/CoarMonthGrid.vue.d.ts +50 -0
  33. package/dist/components/internal/month/CoarMonthGrid.vue.d.ts.map +1 -0
  34. package/dist/components/internal/month/CoarMonthPill.vue.d.ts +83 -0
  35. package/dist/components/internal/month/CoarMonthPill.vue.d.ts.map +1 -0
  36. package/dist/components/internal/month/CoarMonthRow.vue.d.ts +44 -0
  37. package/dist/components/internal/month/CoarMonthRow.vue.d.ts.map +1 -0
  38. package/dist/components/internal/time-grid/CoarTimeGridAllDayBand.vue.d.ts +39 -0
  39. package/dist/components/internal/time-grid/CoarTimeGridAllDayBand.vue.d.ts.map +1 -0
  40. package/dist/components/internal/time-grid/CoarTimeGridColumn.vue.d.ts +44 -0
  41. package/dist/components/internal/time-grid/CoarTimeGridColumn.vue.d.ts.map +1 -0
  42. package/dist/components/internal/time-grid/CoarTimeGridHeader.vue.d.ts +44 -0
  43. package/dist/components/internal/time-grid/CoarTimeGridHeader.vue.d.ts.map +1 -0
  44. package/dist/components/internal/time-grid/CoarTimeGridNowMarker.vue.d.ts +18 -0
  45. package/dist/components/internal/time-grid/CoarTimeGridNowMarker.vue.d.ts.map +1 -0
  46. package/dist/composables/useA11yAnnouncer.d.ts +9 -0
  47. package/dist/composables/useA11yAnnouncer.d.ts.map +1 -0
  48. package/dist/composables/useCalendarDnd.d.ts +212 -0
  49. package/dist/composables/useCalendarDnd.d.ts.map +1 -0
  50. package/dist/composables/useCoarDrag.d.ts +97 -0
  51. package/dist/composables/useCoarDrag.d.ts.map +1 -0
  52. package/dist/composables/useMonthDnd.d.ts +89 -0
  53. package/dist/composables/useMonthDnd.d.ts.map +1 -0
  54. package/dist/composables/useMonthExpansion.d.ts +35 -0
  55. package/dist/composables/useMonthExpansion.d.ts.map +1 -0
  56. package/dist/composables/useTimeGridDnd.d.ts +104 -0
  57. package/dist/composables/useTimeGridDnd.d.ts.map +1 -0
  58. package/dist/composables/useViewWindow.d.ts +14 -0
  59. package/dist/composables/useViewWindow.d.ts.map +1 -0
  60. package/dist/core/agendaLayout.d.ts +47 -0
  61. package/dist/core/agendaLayout.d.ts.map +1 -0
  62. package/dist/core/dnd/move-math.d.ts +136 -0
  63. package/dist/core/dnd/move-math.d.ts.map +1 -0
  64. package/dist/core/dragHitTest.d.ts +74 -0
  65. package/dist/core/dragHitTest.d.ts.map +1 -0
  66. package/dist/core/eventIndex.d.ts +106 -0
  67. package/dist/core/eventIndex.d.ts.map +1 -0
  68. package/dist/core/index.d.ts +32 -0
  69. package/dist/core/index.d.ts.map +1 -0
  70. package/dist/core/measurementCache.d.ts +87 -0
  71. package/dist/core/measurementCache.d.ts.map +1 -0
  72. package/dist/core/monthGridLayout.d.ts +68 -0
  73. package/dist/core/monthGridLayout.d.ts.map +1 -0
  74. package/dist/core/overlapLayout.d.ts +88 -0
  75. package/dist/core/overlapLayout.d.ts.map +1 -0
  76. package/dist/core/recurrence-public.d.ts +59 -0
  77. package/dist/core/recurrence-public.d.ts.map +1 -0
  78. package/dist/core/recurrence.d.ts +112 -0
  79. package/dist/core/recurrence.d.ts.map +1 -0
  80. package/dist/core/recurrenceWorker.d.ts +62 -0
  81. package/dist/core/recurrenceWorker.d.ts.map +1 -0
  82. package/dist/core/temporal.d.ts +214 -0
  83. package/dist/core/temporal.d.ts.map +1 -0
  84. package/dist/core/timeGridLayout.d.ts +109 -0
  85. package/dist/core/timeGridLayout.d.ts.map +1 -0
  86. package/dist/core/types.d.ts +211 -0
  87. package/dist/core/types.d.ts.map +1 -0
  88. package/dist/core/viewWindow.d.ts +53 -0
  89. package/dist/core/viewWindow.d.ts.map +1 -0
  90. package/dist/core/virtualScroll.d.ts +91 -0
  91. package/dist/core/virtualScroll.d.ts.map +1 -0
  92. package/dist/core-DK63eHat.js +959 -0
  93. package/dist/core.js +2 -0
  94. package/dist/index.d.ts +40 -0
  95. package/dist/index.d.ts.map +1 -0
  96. package/dist/index.js +4221 -0
  97. package/dist/useAgendaView.d.ts +6 -0
  98. package/dist/useAgendaView.d.ts.map +1 -0
  99. package/dist/useCalendar.d.ts +6 -0
  100. package/dist/useCalendar.d.ts.map +1 -0
  101. package/dist/useDayView.d.ts +6 -0
  102. package/dist/useDayView.d.ts.map +1 -0
  103. package/dist/useMonthView.d.ts +6 -0
  104. package/dist/useMonthView.d.ts.map +1 -0
  105. package/dist/useWeekView.d.ts +6 -0
  106. package/dist/useWeekView.d.ts.map +1 -0
  107. package/dist/vue-calendar.css +2 -0
  108. package/package.json +68 -0
@@ -0,0 +1,175 @@
1
+ import { Component, VNode } from 'vue';
2
+ import { Temporal, AllDayBar, CalendarEvent, CalendarView, MonthCellPill, MonthMultiDayBar, PositionedEvent, ViewWindow } from '../core';
3
+ /**
4
+ * Re-export of `DstPolicy`. Single source of truth lives in
5
+ * `../core/temporal.ts` (audit Session 2, finding #14 closure: three
6
+ * identical declarations across files were a drift hazard). Re-
7
+ * exported here so consumers can `import { DstPolicy } from '@cocoar/vue-calendar'`
8
+ * without a deep path.
9
+ *
10
+ * Semantics (Article 5 — "you need to decide, and your code needs to
11
+ * handle it explicitly"):
12
+ * - `'compatible'` — gaps shift forward; overlaps pick earlier.
13
+ * - `'reject'` — throw on gap (drop suppressed by the pipeline).
14
+ * - `'earlier'` — pick earlier in an overlap.
15
+ * - `'later'` — pick later in an overlap.
16
+ */
17
+ export type { DstPolicy } from '../core/temporal';
18
+ /**
19
+ * Calendar-managed events loader. The calendar calls this whenever
20
+ * the visible window changes and caches results per-window so
21
+ * navigating back to a previously-seen window doesn't re-fetch.
22
+ *
23
+ * Mutually exclusive with `events()`: setting one drops the other.
24
+ */
25
+ export type EventsLoader<TMeta extends Record<string, unknown> = Record<string, unknown>> = (window: ViewWindow) => CalendarEvent<TMeta>[] | Promise<CalendarEvent<TMeta>[]>;
26
+ /** Layout payload passed to a renderer alongside the event itself. */
27
+ export type EventLayoutCtx = {
28
+ kind: 'timed';
29
+ layout: PositionedEvent;
30
+ } | {
31
+ kind: 'allDay';
32
+ layout: AllDayBar;
33
+ } | {
34
+ kind: 'monthBar';
35
+ layout: MonthMultiDayBar;
36
+ } | {
37
+ kind: 'monthPill';
38
+ layout: MonthCellPill;
39
+ };
40
+ export interface EventRendererCtx<TMeta extends Record<string, unknown> = Record<string, unknown>> {
41
+ event: CalendarEvent<TMeta>;
42
+ view: CalendarView;
43
+ /** Present for variant-specific layouts; absent for the universal
44
+ * `eventRenderer` fallback that fires across all views. */
45
+ layout?: EventLayoutCtx;
46
+ }
47
+ /**
48
+ * Renderer for an event. Three forms supported by the same setter:
49
+ * - a Vue component → instantiated for every event with
50
+ * `EventRendererCtx` flowing through props;
51
+ * - a function returning a component → choose component per event
52
+ * (e.g. by `event.meta.type`);
53
+ * - a function returning a VNode → fully custom render.
54
+ *
55
+ * Slot priority: a `<template #event>` slot on `<CoarCalendar>`
56
+ * overrides the builder renderer (Vue convention).
57
+ */
58
+ export type EventRenderer<TMeta extends Record<string, unknown> = Record<string, unknown>> = Component | ((ctx: EventRendererCtx<TMeta>) => Component | VNode);
59
+ /** Renderer for a per-day column header (week / month). */
60
+ export type DayHeaderRenderer = Component | ((ctx: {
61
+ date: Temporal.PlainDate;
62
+ isToday: boolean;
63
+ isWeekend: boolean;
64
+ }) => Component | VNode);
65
+ export type EventClickHandler<TMeta extends Record<string, unknown> = Record<string, unknown>> = (payload: {
66
+ event: CalendarEvent<TMeta>;
67
+ native: PointerEvent;
68
+ }) => void;
69
+ export type EventDoubleClickHandler<TMeta extends Record<string, unknown> = Record<string, unknown>> = (payload: {
70
+ event: CalendarEvent<TMeta>;
71
+ native: MouseEvent;
72
+ }) => void;
73
+ /**
74
+ * Drop payload — the result of a successful drag/resize/keyboard
75
+ * operation, after `applyMoveToEvent` resolved the new endpoints
76
+ * against the active `DstPolicy`.
77
+ *
78
+ * Three invariants are enforced by the type:
79
+ *
80
+ * - **C3 — source zone preserved per-endpoint.** `next.start` and
81
+ * `next.end` carry their own `timeZoneId` independently.
82
+ * Cross-zone events (e.g. Tokyo → Vienna flight) keep both ends
83
+ * in their original zones unless the user moved that specific
84
+ * endpoint — in which case the moved endpoint is reported in ITS
85
+ * OWN source zone, never collapsed to the display zone.
86
+ *
87
+ * - **C5 — display zone vs source zone are separate.**
88
+ * `original.displayZone` and `target.displayZone` capture the zone
89
+ * the user's eyes saw at drag-start and at drop. They may differ
90
+ * (mid-drag `.timezone()` toggle). `next.start.timeZoneId`
91
+ * captures source zone — the article-4 "store intent" value.
92
+ *
93
+ * - **C4 — DST disambiguation is reported.**
94
+ * `target.disambiguation` is `'gap'` if the wall-time landed in a
95
+ * spring-forward gap, `'overlap'` for a fall-back overlap, `null`
96
+ * for clean drops. Resolution is governed by the active policy.
97
+ */
98
+ export interface EventDropPayload<TMeta extends Record<string, unknown> = Record<string, unknown>> {
99
+ event: CalendarEvent<TMeta>;
100
+ original: {
101
+ /** Source zone preserved (C3) — pre-drag value. */
102
+ start: Temporal.ZonedDateTime | Temporal.PlainDate;
103
+ /** Source zone preserved (C3) — pre-drag value, may differ from
104
+ * `start.timeZoneId` for cross-zone events. */
105
+ end?: Temporal.ZonedDateTime | Temporal.PlainDate;
106
+ /** Display zone snapshotted at drag-start (C5). */
107
+ displayZone: string;
108
+ };
109
+ next: {
110
+ /** Source zone preserved per-endpoint (C3). */
111
+ start: Temporal.ZonedDateTime | Temporal.PlainDate;
112
+ /** Source zone preserved per-endpoint (C3). */
113
+ end?: Temporal.ZonedDateTime | Temporal.PlainDate;
114
+ };
115
+ target: {
116
+ /** ISO date of the day the user dropped on, IN THE DISPLAY ZONE. */
117
+ date: string;
118
+ /** Minute-of-day in the display zone, or `null` for all-day /
119
+ * month-cell drops. */
120
+ minutes: number | null;
121
+ /** The display zone the calendar was rendering in at drop time
122
+ * (C5). May differ from `original.displayZone` if the user
123
+ * toggled timezone mid-drag. */
124
+ displayZone: string;
125
+ /** DST disambiguation outcome (C4). `null` for clean drops. */
126
+ disambiguation: 'gap' | 'overlap' | null;
127
+ };
128
+ native: PointerEvent | null;
129
+ }
130
+ export type EventDropHandler<TMeta extends Record<string, unknown> = Record<string, unknown>> = (payload: EventDropPayload<TMeta>) => void;
131
+ export type DateClickHandler = (payload: {
132
+ date: Temporal.PlainDate;
133
+ native: PointerEvent;
134
+ }) => void;
135
+ export type TimeClickHandler = (payload: {
136
+ date: Temporal.PlainDate;
137
+ time: Temporal.PlainTime;
138
+ native: PointerEvent;
139
+ }) => void;
140
+ export type MoreClickHandler<TMeta extends Record<string, unknown> = Record<string, unknown>> = (payload: {
141
+ date: Temporal.PlainDate;
142
+ events: CalendarEvent<TMeta>[];
143
+ native: PointerEvent;
144
+ }) => void;
145
+ export type RangeChangeHandler = (window: ViewWindow) => void;
146
+ /**
147
+ * Drop-target context handed to `canDrop` validators.
148
+ *
149
+ * `displayZone` was added in Session 2 (audit finding #8 closure):
150
+ * without it, consumers writing rules like "no drops in business
151
+ * hours of the user's local zone" had to close over `state.timezone`
152
+ * separately — works because of C7 but hides which zone the
153
+ * `date+minutes` is anchored in. Now explicit.
154
+ */
155
+ export interface CanDropTarget {
156
+ /** ISO date `'YYYY-MM-DD'` of the drop slot, IN THE DISPLAY ZONE. */
157
+ date: string;
158
+ /** Minute-of-day in the display zone, or `null` for all-day /
159
+ * month-cell drops. */
160
+ minutes: number | null;
161
+ /** The display zone the calendar was rendering in when the
162
+ * hit-test fired. */
163
+ displayZone: string;
164
+ }
165
+ export type CanDropFn<TMeta extends Record<string, unknown> = Record<string, unknown>> = (event: CalendarEvent<TMeta>, target: CanDropTarget) => boolean;
166
+ /** Visual density. */
167
+ export type CalendarDensity = 'compact' | 'comfortable' | 'spacious';
168
+ /** Time-grid time range. Both bounds are minute-of-day, inclusive. */
169
+ export interface TimeRange {
170
+ /** Minute-of-day, inclusive (e.g. `0` for midnight, `6 * 60` for 06:00). */
171
+ startMinutes: number;
172
+ /** Minute-of-day, inclusive (e.g. `22 * 60` for 22:00). */
173
+ endMinutes: number;
174
+ }
175
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/builders/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,150 @@
1
+ import { Temporal, CalendarEvent, CalendarView, MonthCellPill, MonthMultiDayBar, AllDayBar, PositionedEvent, ViewWindow, AgendaEventItem } from '../core';
2
+ import { CalendarBuilder } from '../builders/calendar-builder';
3
+ interface Props {
4
+ builder: CalendarBuilder<Record<string, unknown>>;
5
+ }
6
+ interface HeaderSlotScope {
7
+ view: CalendarView;
8
+ cursor: Temporal.PlainDate;
9
+ range: ViewWindow;
10
+ controls: HeaderControls;
11
+ }
12
+ interface HeaderControls {
13
+ prev: () => void;
14
+ next: () => void;
15
+ goToToday: () => void;
16
+ setView: (v: CalendarView) => void;
17
+ rangeLabel: string;
18
+ view: CalendarView;
19
+ available: ReadonlyArray<CalendarView>;
20
+ }
21
+ declare function __VLS_template(): {
22
+ attrs: Partial<{}>;
23
+ slots: Readonly<{
24
+ /** Replace the entire header bar. Overrides headerStart/End/viewSwitcher. */
25
+ header(props: HeaderSlotScope): unknown;
26
+ /** Prepend before the prev/today/next buttons. */
27
+ headerStart(props: {
28
+ controls: HeaderControls;
29
+ }): unknown;
30
+ /** Append after the view-switcher. */
31
+ headerEnd(props: {
32
+ controls: HeaderControls;
33
+ }): unknown;
34
+ /** Replace just the view-switcher. */
35
+ viewSwitcher(props: {
36
+ view: CalendarView;
37
+ available: ReadonlyArray<CalendarView>;
38
+ setView: (v: CalendarView) => void;
39
+ }): unknown;
40
+ /** Per-event renderer — forwarded to whichever view is active.
41
+ * This is the universal event slot; on month view it falls back
42
+ * to `pill` / `multiDayBar` for cell entries that have a more-
43
+ * specific renderer. */
44
+ event(props: {
45
+ event: CalendarEvent;
46
+ view: CalendarView;
47
+ layout?: PositionedEvent | AllDayBar | MonthCellPill | MonthMultiDayBar;
48
+ item?: AgendaEventItem;
49
+ }): unknown;
50
+ /** All-day-band renderer (week / day). Falls back to `event` if
51
+ * not provided. */
52
+ allDayEvent(props: {
53
+ event: CalendarEvent;
54
+ layout: AllDayBar;
55
+ }): unknown;
56
+ /** Single-day month-cell pill renderer. Falls back to `event` if
57
+ * not provided. */
58
+ pill(props: {
59
+ event: CalendarEvent;
60
+ pill: MonthCellPill;
61
+ }): unknown;
62
+ /** Multi-day month-cell bar renderer. Falls back to `event` if not
63
+ * provided. */
64
+ multiDayBar(props: {
65
+ event: CalendarEvent;
66
+ bar: MonthMultiDayBar;
67
+ }): unknown;
68
+ /** Per-day-column header (week / month). */
69
+ dayHeader(props: {
70
+ date: Temporal.PlainDate;
71
+ isToday: boolean;
72
+ isWeekend: boolean;
73
+ }): unknown;
74
+ }> & {
75
+ /** Replace the entire header bar. Overrides headerStart/End/viewSwitcher. */
76
+ header(props: HeaderSlotScope): unknown;
77
+ /** Prepend before the prev/today/next buttons. */
78
+ headerStart(props: {
79
+ controls: HeaderControls;
80
+ }): unknown;
81
+ /** Append after the view-switcher. */
82
+ headerEnd(props: {
83
+ controls: HeaderControls;
84
+ }): unknown;
85
+ /** Replace just the view-switcher. */
86
+ viewSwitcher(props: {
87
+ view: CalendarView;
88
+ available: ReadonlyArray<CalendarView>;
89
+ setView: (v: CalendarView) => void;
90
+ }): unknown;
91
+ /** Per-event renderer — forwarded to whichever view is active.
92
+ * This is the universal event slot; on month view it falls back
93
+ * to `pill` / `multiDayBar` for cell entries that have a more-
94
+ * specific renderer. */
95
+ event(props: {
96
+ event: CalendarEvent;
97
+ view: CalendarView;
98
+ layout?: PositionedEvent | AllDayBar | MonthCellPill | MonthMultiDayBar;
99
+ item?: AgendaEventItem;
100
+ }): unknown;
101
+ /** All-day-band renderer (week / day). Falls back to `event` if
102
+ * not provided. */
103
+ allDayEvent(props: {
104
+ event: CalendarEvent;
105
+ layout: AllDayBar;
106
+ }): unknown;
107
+ /** Single-day month-cell pill renderer. Falls back to `event` if
108
+ * not provided. */
109
+ pill(props: {
110
+ event: CalendarEvent;
111
+ pill: MonthCellPill;
112
+ }): unknown;
113
+ /** Multi-day month-cell bar renderer. Falls back to `event` if not
114
+ * provided. */
115
+ multiDayBar(props: {
116
+ event: CalendarEvent;
117
+ bar: MonthMultiDayBar;
118
+ }): unknown;
119
+ /** Per-day-column header (week / month). */
120
+ dayHeader(props: {
121
+ date: Temporal.PlainDate;
122
+ isToday: boolean;
123
+ isWeekend: boolean;
124
+ }): unknown;
125
+ };
126
+ refs: {
127
+ bodyEl: HTMLDivElement;
128
+ agendaView: {
129
+ getItems: () => import('..').AgendaItem[];
130
+ scrollToDate: (dateIso: string) => void;
131
+ } | null;
132
+ };
133
+ rootEl: HTMLDivElement;
134
+ };
135
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
136
+ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
137
+ bodyEl: HTMLDivElement;
138
+ agendaView: {
139
+ getItems: () => import('..').AgendaItem[];
140
+ scrollToDate: (dateIso: string) => void;
141
+ } | null;
142
+ }, HTMLDivElement>;
143
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
144
+ export default _default;
145
+ type __VLS_WithTemplateSlots<T, S> = T & {
146
+ new (): {
147
+ $slots: S;
148
+ };
149
+ };
150
+ //# sourceMappingURL=CoarCalendar.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CoarCalendar.vue.d.ts","sourceRoot":"","sources":["../../src/components/CoarCalendar.vue"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { CoarSelectOption, CoarSelectSize } from '@cocoar/vue-ui';
2
+ interface Props {
3
+ /** Current display zone (IANA id). */
4
+ modelValue: string;
5
+ /**
6
+ * Override the curated list. When omitted, a small built-in list of
7
+ * common zones is used, with the browser-detected zone prepended if
8
+ * it isn't already in the list.
9
+ */
10
+ options?: CoarSelectOption<string>[];
11
+ size?: CoarSelectSize;
12
+ /** Forwarded to the underlying `<CoarSelect>` for layout flows. */
13
+ fullWidth?: boolean;
14
+ /** Disabled state — no selection mutation. */
15
+ disabled?: boolean;
16
+ }
17
+ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
18
+ "update:modelValue": (value: string) => any;
19
+ }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
20
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
21
+ }>, {
22
+ size: CoarSelectSize;
23
+ disabled: boolean;
24
+ fullWidth: boolean;
25
+ options: CoarSelectOption<string>[];
26
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
27
+ export default _default;
28
+ //# sourceMappingURL=CoarDisplayZoneSwitcher.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CoarDisplayZoneSwitcher.vue.d.ts","sourceRoot":"","sources":["../../src/components/CoarDisplayZoneSwitcher.vue"],"names":[],"mappings":"AAoJA,OAAO,EAAc,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGxF,UAAU,KAAK;IACb,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;IACrC,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,mEAAmE;IACnE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;;;;;;UALQ,cAAc;cAIV,OAAO;eAFN,OAAO;aAHT,gBAAgB,CAAC,MAAM,CAAC,EAAE;;AAuJtC,wBASG"}
@@ -0,0 +1,90 @@
1
+ import { MeasurementCache, Range1D } from '../core';
2
+ type __VLS_Props = {
3
+ /** Total number of items in the virtual list. */
4
+ itemCount: number;
5
+ /** Initial estimate for an item's height before it is measured. */
6
+ estimatedItemSize: number;
7
+ /**
8
+ * Fixed item size, when known. If provided, the measurement cache
9
+ * is skipped entirely and items are positioned by simple
10
+ * arithmetic. Use this for grids with known cell heights.
11
+ */
12
+ fixedItemSize?: number;
13
+ /**
14
+ * Items beyond the viewport rendered in each direction. Default 3
15
+ * is a reasonable balance between scroll smoothness (more = better)
16
+ * and memory (more = more DOM).
17
+ */
18
+ overscan?: number;
19
+ /**
20
+ * Anchor item for scroll-position restoration when sizes change.
21
+ * `'auto'` (default) = first visible item. `null` = disabled.
22
+ */
23
+ anchor?: number | 'auto' | null;
24
+ };
25
+ declare function __VLS_template(): {
26
+ attrs: Partial<{}>;
27
+ slots: {
28
+ item?(_: {
29
+ y: number;
30
+ }): any;
31
+ };
32
+ refs: {
33
+ containerRef: HTMLDivElement;
34
+ };
35
+ rootEl: HTMLDivElement;
36
+ };
37
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
38
+ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {
39
+ /**
40
+ * The actual scroll container element (the `<div>` with
41
+ * `overflow-y: auto` and `class="coar-virtualized-surface-1dy"`).
42
+ * Consumers passing this ref into `useCoarDrag` get auto-scroll
43
+ * for free without having to re-query the DOM.
44
+ *
45
+ * Returns `null` before mount.
46
+ */
47
+ getContainerElement: () => HTMLElement | null;
48
+ /** Current rendered range (a snapshot of `range.value`). Includes overscan. */
49
+ getRange: () => Range1D;
50
+ /**
51
+ * Index of the topmost item whose top edge is at or above the
52
+ * current scrollTop — i.e. the first item the user actually sees.
53
+ * Different from `getRange().startIndex`, which includes overscan
54
+ * above the viewport.
55
+ */
56
+ getFirstVisibleIndex(): number;
57
+ /** Scroll the surface so item `index` is at the top of the viewport. */
58
+ scrollToIndex(index: number, behavior?: ScrollBehavior): void;
59
+ /**
60
+ * Direct access to the underlying measurement cache. In variable-
61
+ * size mode this is the live cache that fills as items are
62
+ * measured; in fixed-size mode it's a synthetic cache backed by
63
+ * the fixed size, lazily created on first access.
64
+ *
65
+ * Either way, `cache.indexAtOffset` and `cache.prefixSum` give
66
+ * correct answers — useful for hit-testing (`hitTestVerticalSurface`)
67
+ * and other consumer-side virtualization math.
68
+ */
69
+ getCache: () => MeasurementCache;
70
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
71
+ scroll: (scrollTop: number) => any;
72
+ rangeChange: (range: Range1D) => any;
73
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
74
+ onScroll?: ((scrollTop: number) => any) | undefined;
75
+ onRangeChange?: ((range: Range1D) => any) | undefined;
76
+ }>, {
77
+ anchor: number | "auto" | null;
78
+ fixedItemSize: number;
79
+ overscan: number;
80
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
81
+ containerRef: HTMLDivElement;
82
+ }, HTMLDivElement>;
83
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
84
+ export default _default;
85
+ type __VLS_WithTemplateSlots<T, S> = T & {
86
+ new (): {
87
+ $slots: S;
88
+ };
89
+ };
90
+ //# sourceMappingURL=VirtualizedSurface1DY.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VirtualizedSurface1DY.vue.d.ts","sourceRoot":"","sources":["../../src/components/VirtualizedSurface1DY.vue"],"names":[],"mappings":"AA8kBA,OAAO,EACL,gBAAgB,EAGhB,KAAK,OAAO,EACb,MAAM,SAAS,CAAC;AAIjB,KAAK,WAAW,GAAG;IACf,iDAAiD;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACjC,CAAC;AAicJ,iBAAS,cAAc;WAgDT,OAAO,IAA6B;;;;YAXxB,GAAG;;;;;;EAgB5B;AAgBD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;IAvMnB;;;;;;;OAOG;;IAEH,+EAA+E;;IAE/E;;;;;OAKG;4BACqB,MAAM;IAW9B,wEAAwE;yBACnD,MAAM,aAAY,cAAc;IAMrD;;;;;;;;;OASG;oBACW,gBAAgB;;;;;;;;YA9WnB,MAAM,GAAG,MAAM,GAAG,IAAI;mBAXf,MAAM;cAMX,MAAM;;;kBAwhBnB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -0,0 +1,71 @@
1
+ import { Range2D } from '../core';
2
+ type __VLS_Props = {
3
+ /** Number of items along the X axis (columns). */
4
+ itemCountX: number;
5
+ /** Number of items along the Y axis (rows). */
6
+ itemCountY: number;
7
+ /** Fixed cell width in px. Required in Phase 0 fixed-size mode. */
8
+ cellWidth: number;
9
+ /** Fixed cell height in px. Required in Phase 0 fixed-size mode. */
10
+ cellHeight: number;
11
+ /** Items beyond the X-axis viewport rendered each direction. */
12
+ overscanX?: number;
13
+ /** Items beyond the Y-axis viewport rendered each direction. */
14
+ overscanY?: number;
15
+ };
16
+ declare function __VLS_template(): {
17
+ attrs: Partial<{}>;
18
+ slots: {
19
+ cell?(_: {
20
+ x: number;
21
+ y: number;
22
+ }): any;
23
+ };
24
+ refs: {
25
+ containerRef: HTMLDivElement;
26
+ };
27
+ rootEl: HTMLDivElement;
28
+ };
29
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
30
+ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {
31
+ /** Current rendered range (both axes, includes overscan). */
32
+ getRange: () => Range2D;
33
+ /** First fully-or-partially visible cell at the top-left. */
34
+ getFirstVisibleCell: () => {
35
+ x: number;
36
+ y: number;
37
+ };
38
+ /**
39
+ * Scroll so the cell at `(x, y)` is at the top-left of the viewport.
40
+ * Either axis may be omitted to leave that axis untouched.
41
+ */
42
+ scrollToCell(coord: {
43
+ x?: number;
44
+ y?: number;
45
+ }, behavior?: ScrollBehavior): void;
46
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
47
+ scroll: (pos: {
48
+ scrollX: number;
49
+ scrollY: number;
50
+ }) => any;
51
+ rangeChange: (range: Range2D) => any;
52
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
53
+ onScroll?: ((pos: {
54
+ scrollX: number;
55
+ scrollY: number;
56
+ }) => any) | undefined;
57
+ onRangeChange?: ((range: Range2D) => any) | undefined;
58
+ }>, {
59
+ overscanX: number;
60
+ overscanY: number;
61
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
62
+ containerRef: HTMLDivElement;
63
+ }, HTMLDivElement>;
64
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
65
+ export default _default;
66
+ type __VLS_WithTemplateSlots<T, S> = T & {
67
+ new (): {
68
+ $slots: S;
69
+ };
70
+ };
71
+ //# sourceMappingURL=VirtualizedSurface2D.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VirtualizedSurface2D.vue.d.ts","sourceRoot":"","sources":["../../src/components/VirtualizedSurface2D.vue"],"names":[],"mappings":"AAoUA,OAAO,EAGL,KAAK,OAAO,EACb,MAAM,SAAS,CAAC;AAIjB,KAAK,WAAW,GAAG;IACf,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAgLJ,iBAAS,cAAc;WAwDT,OAAO,IAA6B;;;;;YAXxB,GAAG;;;;;;EAgB5B;AAeD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;IAzInB,6DAA6D;;IAE7D,6DAA6D;;;;;IAW7D;;;OAGG;wBACiB;QAAE,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,aAAY,cAAc;;;iBA1H/C,MAAM;iBAAW,MAAM;;;;;iBAAvB,MAAM;iBAAW,MAAM;;;;eAdlC,MAAM;eAEN,MAAM;;;kBAyQpB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { CalendarEvent } from '../../core';
2
+ interface Props {
3
+ event: CalendarEvent;
4
+ /** The calendar's display zone — `state.timezone` resolved at the parent. */
5
+ displayZone?: string;
6
+ /** Visual size of the icon. `xs` for pills/bars, `s` for cards/agenda rows. */
7
+ size?: 'xs' | 's';
8
+ }
9
+ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
10
+ size: "xs" | "s";
11
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
12
+ export default _default;
13
+ //# sourceMappingURL=CoarEventDecorations.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CoarEventDecorations.vue.d.ts","sourceRoot":"","sources":["../../../src/components/internal/CoarEventDecorations.vue"],"names":[],"mappings":"AAiJA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,UAAU,KAAK;IACb,KAAK,EAAE,aAAa,CAAC;IACrB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,IAAI,GAAG,GAAG,CAAC;CACnB;;UADQ,IAAI,GAAG,GAAG;;AA6HnB,wBAOG"}
@@ -0,0 +1,17 @@
1
+ import { VNode } from 'vue';
2
+ import { CalendarBuilder } from '../../builders/calendar-builder';
3
+ import { EventRendererCtx } from '../../builders/types';
4
+ import { CalendarEvent } from '../../core';
5
+ /**
6
+ * Resolve the universal renderer (if any) into a VNode for the
7
+ * given event + layout context. Returns `null` if no universal
8
+ * renderer is registered — caller falls through to the sub-view
9
+ * default.
10
+ */
11
+ export declare function resolveUniversalEventRenderer<TMeta extends Record<string, unknown>>(builder: CalendarBuilder<TMeta>, ctx: EventRendererCtx<TMeta>): VNode | null;
12
+ /**
13
+ * Default title-only fallback used by every sub-view when no
14
+ * universal renderer + no template slot fires.
15
+ */
16
+ export declare function defaultEventTitle<TMeta extends Record<string, unknown>>(event: CalendarEvent<TMeta>): string;
17
+ //# sourceMappingURL=RenderEventFallback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RenderEventFallback.d.ts","sourceRoot":"","sources":["../../../src/components/internal/RenderEventFallback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAkB,KAAK,KAAK,EAAc,MAAM,KAAK,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAiB,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjF,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,EAC/B,GAAG,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAC3B,KAAK,GAAG,IAAI,CASd;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrE,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,GAC1B,MAAM,CAER"}
@@ -0,0 +1,54 @@
1
+ import { Temporal, AgendaHeaderItem } from '../../../core';
2
+ interface Props {
3
+ /** Plain calendar date (no zone). */
4
+ date: Temporal.PlainDate;
5
+ /** Original AgendaHeaderItem (passed back through the slot). */
6
+ item: AgendaHeaderItem;
7
+ isToday?: boolean;
8
+ /** Locale-aware label, e.g. "Wed, April 15" or "Mittwoch, 15. April". */
9
+ label: string;
10
+ /** Localised "today" badge text. */
11
+ todayLabel: string;
12
+ /** When true, makes the row a sticky overlay (used by the float). */
13
+ floating?: boolean;
14
+ /** CSS `transform` value for the floating push-out animation. */
15
+ transform?: string;
16
+ }
17
+ declare function __VLS_template(): {
18
+ attrs: Partial<{}>;
19
+ slots: Readonly<{
20
+ /** Custom header content. Receives `date` + `item` + `isToday`. */
21
+ default(props: {
22
+ date: Temporal.PlainDate;
23
+ item: AgendaHeaderItem;
24
+ isToday: boolean;
25
+ }): unknown;
26
+ }> & {
27
+ /** Custom header content. Receives `date` + `item` + `isToday`. */
28
+ default(props: {
29
+ date: Temporal.PlainDate;
30
+ item: AgendaHeaderItem;
31
+ isToday: boolean;
32
+ }): unknown;
33
+ };
34
+ refs: {};
35
+ rootEl: HTMLDivElement;
36
+ };
37
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
38
+ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
39
+ pointerdown: (native: PointerEvent) => any;
40
+ }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
41
+ onPointerdown?: ((native: PointerEvent) => any) | undefined;
42
+ }>, {
43
+ isToday: boolean;
44
+ transform: string;
45
+ floating: boolean;
46
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
47
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
48
+ export default _default;
49
+ type __VLS_WithTemplateSlots<T, S> = T & {
50
+ new (): {
51
+ $slots: S;
52
+ };
53
+ };
54
+ //# sourceMappingURL=CoarAgendaDayHeader.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CoarAgendaDayHeader.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/internal/agenda/CoarAgendaDayHeader.vue"],"names":[],"mappings":"AAgIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEhE,UAAU,KAAK;IACb,qCAAqC;IACrC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC;IACzB,gEAAgE;IAChE,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAkCD,iBAAS,cAAc;WAkDT,OAAO,IAA6B;;QArEhD,mEAAmE;uBACpD;YACb,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC;YACzB,IAAI,EAAE,gBAAgB,CAAC;YACvB,OAAO,EAAE,OAAO,CAAC;SAClB,GAAG,OAAO;;QALX,mEAAmE;uBACpD;YACb,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC;YACzB,IAAI,EAAE,gBAAgB,CAAC;YACvB,OAAO,EAAE,OAAO,CAAC;SAClB,GAAG,OAAO;;;;EAqEZ;AAWD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;aA9GT,OAAO;eAQL,MAAM;cAFP,OAAO;wFAiHlB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}