@skra/ui 0.4.0 → 0.5.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.
- package/fesm2022/skra-ui-accordion.mjs +2 -2
- package/fesm2022/skra-ui-accordion.mjs.map +1 -1
- package/fesm2022/skra-ui-alert.mjs +2 -2
- package/fesm2022/skra-ui-alert.mjs.map +1 -1
- package/fesm2022/skra-ui-avatar.mjs.map +1 -1
- package/fesm2022/skra-ui-badge.mjs.map +1 -1
- package/fesm2022/skra-ui-button.mjs +2 -2
- package/fesm2022/skra-ui-button.mjs.map +1 -1
- package/fesm2022/skra-ui-checkbox.mjs +2 -2
- package/fesm2022/skra-ui-checkbox.mjs.map +1 -1
- package/fesm2022/skra-ui-chip.mjs +2 -2
- package/fesm2022/skra-ui-chip.mjs.map +1 -1
- package/fesm2022/skra-ui-combobox.mjs +120 -120
- package/fesm2022/skra-ui-combobox.mjs.map +1 -1
- package/fesm2022/skra-ui-core.mjs +36 -36
- package/fesm2022/skra-ui-core.mjs.map +1 -1
- package/fesm2022/skra-ui-counter.mjs.map +1 -1
- package/fesm2022/skra-ui-datepicker.mjs +605 -190
- package/fesm2022/skra-ui-datepicker.mjs.map +1 -1
- package/fesm2022/skra-ui-dialog.mjs.map +1 -1
- package/fesm2022/skra-ui-field.mjs.map +1 -1
- package/fesm2022/skra-ui-icon.mjs.map +1 -1
- package/fesm2022/skra-ui-input.mjs +2 -2
- package/fesm2022/skra-ui-input.mjs.map +1 -1
- package/fesm2022/skra-ui-kbd.mjs.map +1 -1
- package/fesm2022/skra-ui-layout.mjs.map +1 -1
- package/fesm2022/skra-ui-link.mjs +2 -2
- package/fesm2022/skra-ui-link.mjs.map +1 -1
- package/fesm2022/skra-ui-loading-indicator.mjs.map +1 -1
- package/fesm2022/skra-ui-menu.mjs +2 -2
- package/fesm2022/skra-ui-menu.mjs.map +1 -1
- package/fesm2022/skra-ui-multi-select.mjs +94 -94
- package/fesm2022/skra-ui-multi-select.mjs.map +1 -1
- package/fesm2022/skra-ui-native-select.mjs +2 -2
- package/fesm2022/skra-ui-native-select.mjs.map +1 -1
- package/fesm2022/skra-ui-popover.mjs.map +1 -1
- package/fesm2022/skra-ui-progress.mjs.map +1 -1
- package/fesm2022/skra-ui-radio.mjs +2 -2
- package/fesm2022/skra-ui-radio.mjs.map +1 -1
- package/fesm2022/skra-ui-rating-display.mjs.map +1 -1
- package/fesm2022/skra-ui-select.mjs +92 -92
- package/fesm2022/skra-ui-select.mjs.map +1 -1
- package/fesm2022/skra-ui-skeleton.mjs +8 -8
- package/fesm2022/skra-ui-skeleton.mjs.map +1 -1
- package/fesm2022/skra-ui-star-rating.mjs +2 -2
- package/fesm2022/skra-ui-star-rating.mjs.map +1 -1
- package/fesm2022/skra-ui-status-dot.mjs.map +1 -1
- package/fesm2022/skra-ui-switch.mjs +2 -2
- package/fesm2022/skra-ui-switch.mjs.map +1 -1
- package/fesm2022/skra-ui-tabs.mjs +2 -2
- package/fesm2022/skra-ui-tabs.mjs.map +1 -1
- package/fesm2022/skra-ui-textarea.mjs +2 -2
- package/fesm2022/skra-ui-textarea.mjs.map +1 -1
- package/fesm2022/skra-ui-toast.mjs +2 -2
- package/fesm2022/skra-ui-toast.mjs.map +1 -1
- package/fesm2022/skra-ui-tooltip.mjs.map +1 -1
- package/fesm2022/skra-ui-typography.mjs.map +1 -1
- package/package.json +3 -3
- package/types/skra-ui-datepicker.d.ts +146 -46
- package/types/skra-ui-datepicker.d.ts.map +1 -1
|
@@ -10,40 +10,70 @@ interface WeekdayHeader {
|
|
|
10
10
|
readonly long: string;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
/** The granularity of the emitted value (ADR 0057 R1). `'year'` is reserved, not yet implemented. */
|
|
14
|
+
type SkraDatePrecision = 'day' | 'month';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* One cell of the calendar grid — a day in `day` view, a month in `month` view. ONE model for both
|
|
18
|
+
* (ADR 0057 R8): the views differ in what a cell means, never in how a cell behaves.
|
|
19
|
+
*/
|
|
20
|
+
interface GridCell {
|
|
14
21
|
readonly key: string;
|
|
22
|
+
/** The value this cell commits, at the active precision. `null` = layout padding (day view only). */
|
|
15
23
|
readonly iso: string | null;
|
|
16
|
-
|
|
17
|
-
readonly
|
|
24
|
+
/** Visible text — the localized day number, or the localized full month name. */
|
|
25
|
+
readonly label: string;
|
|
26
|
+
/**
|
|
27
|
+
* The ADR 033 Path-2 `[skra-sr-only]` extension, INCLUDING its leading separator, and never a
|
|
28
|
+
* restatement of `label` (ADR 0057 R6).
|
|
29
|
+
*/
|
|
30
|
+
readonly srExt: string;
|
|
18
31
|
readonly today: boolean;
|
|
19
32
|
readonly selected: boolean;
|
|
20
33
|
readonly disabled: boolean;
|
|
21
34
|
readonly focused: boolean;
|
|
22
35
|
}
|
|
23
|
-
interface
|
|
36
|
+
interface GridRow {
|
|
24
37
|
readonly key: number;
|
|
25
|
-
readonly
|
|
38
|
+
readonly cells: GridCell[];
|
|
26
39
|
}
|
|
27
40
|
/**
|
|
28
|
-
* SkraDatePicker — pick a
|
|
29
|
-
* Second Tier-3 component. A value-display **trigger** (`<button>`) opens a non-modal
|
|
30
|
-
* panel** (Popover API, `popover="auto"`, ADR 0044). The value is an **ISO 8601
|
|
31
|
-
* (`YYYY-MM-DD`), consumer-owned (ADR 0050/037 — NO
|
|
32
|
-
* UTC-calculator discipline in `calendar-math` (no date
|
|
33
|
-
* first-day-of-week, digits) is `Intl`-derived in
|
|
34
|
-
* hand-rolled `SkraCalendarKeyboard` (ADR 0044 §7 — roving
|
|
41
|
+
* SkraDatePicker — pick a **calendar date** or a **calendar month** from an APG Date Picker grid in the
|
|
42
|
+
* native top layer. Second Tier-3 component. A value-display **trigger** (`<button>`) opens a non-modal
|
|
43
|
+
* top-layer **calendar panel** (Popover API, `popover="auto"`, ADR 0044). The value is an **ISO 8601 string**
|
|
44
|
+
* truncated to the active `precision` (`YYYY-MM-DD` / `YYYY-MM`), consumer-owned (ADR 0050/0057/037 — NO
|
|
45
|
+
* `@angular/forms`); all date math is the zoneless UTC-calculator discipline in `calendar-math` (no date
|
|
46
|
+
* library). Localization (month/weekday names, first-day-of-week, digits) is `Intl`-derived in
|
|
47
|
+
* `calendar-intl`; the 2-D grid keyboard is the hand-rolled `SkraCalendarKeyboard` (ADR 0044 §7 — roving
|
|
48
|
+
* REAL focus, not aria-activedescendant).
|
|
49
|
+
*
|
|
50
|
+
* **Precision is a runtime axis, not a second component (ADR 0057).** `precision="month"` swaps the 7×N day
|
|
51
|
+
* grid for a 3×4 quarter-aligned month grid inside the SAME trigger, panel, positioner, field DI wiring,
|
|
52
|
+
* dismissal model, selection model and keyboard controller. The value channel does not widen — `YYYY-MM` is
|
|
53
|
+
* a truncation of `YYYY-MM-DD`, both `string` — which is exactly why this is an input and cardinality
|
|
54
|
+
* (ADR 0046) is not. `week` / `time` / `datetime-local` are excluded by rule (ADR 0057 R5): they need a
|
|
55
|
+
* second calendar coordinate system or are not grids at all, and stay the native `skraInput` path.
|
|
35
56
|
*
|
|
36
|
-
* No projected content: the
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
57
|
+
* No projected content: the cells are GENERATED (the structural divergence from select/combobox — there is
|
|
58
|
+
* no `skra-option` reuse). The only focusable element in the open panel is the roving cell; the period-nav
|
|
59
|
+
* buttons are pointer affordances (`tabindex="-1"`, driven by PageUp/PageDown on keyboard), and Tab
|
|
60
|
+
* dismisses — so no focus-containment machinery is needed (spec Q-1).
|
|
40
61
|
*
|
|
41
62
|
* Full contract: adr/specs/component-datepicker-spec.md.
|
|
42
63
|
*/
|
|
43
64
|
declare class SkraDatePicker {
|
|
44
|
-
/**
|
|
65
|
+
/**
|
|
66
|
+
* Consumer-owned value: an ISO 8601 key truncated to `precision` — `YYYY-MM-DD` (`day`) or `YYYY-MM`
|
|
67
|
+
* (`month`); `''` = unset. NEVER a Date (ADR 0050/0057/037).
|
|
68
|
+
*/
|
|
45
69
|
readonly value: _angular_core.InputSignal<string>;
|
|
46
|
-
/**
|
|
70
|
+
/**
|
|
71
|
+
* Value granularity (ADR 0057 R1). `'day'` (default) emits `YYYY-MM-DD` over a 7×N day grid; `'month'`
|
|
72
|
+
* emits `YYYY-MM` over a 3×4 quarter-aligned month grid. NOT a look input, NOT a cardinality flag, and
|
|
73
|
+
* NOT reflected to a `data-skra-*` attribute — precision is configuration, not state.
|
|
74
|
+
*/
|
|
75
|
+
readonly precision: _angular_core.InputSignal<SkraDatePrecision>;
|
|
76
|
+
/** Inclusive lower bound (ISO); `''` = unbounded (ADR 0050 §2, truncated to `precision` per ADR 0057 R4). */
|
|
47
77
|
readonly min: _angular_core.InputSignal<string>;
|
|
48
78
|
/** Inclusive upper bound (ISO); `''` = unbounded. */
|
|
49
79
|
readonly max: _angular_core.InputSignal<string>;
|
|
@@ -58,7 +88,7 @@ declare class SkraDatePicker {
|
|
|
58
88
|
/** Standalone availability source — `SkraFieldContext` wins when present. */
|
|
59
89
|
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
60
90
|
readonly readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
61
|
-
/** Fires ONLY on user
|
|
91
|
+
/** Fires ONLY on user selection — never on a programmatic `value()`/`precision()` change (ADR 037/0057 R3). */
|
|
62
92
|
readonly valueChange: _angular_core.OutputEmitterRef<string>;
|
|
63
93
|
private readonly triggerRef;
|
|
64
94
|
private readonly panelRef;
|
|
@@ -66,12 +96,28 @@ declare class SkraDatePicker {
|
|
|
66
96
|
private readonly injector;
|
|
67
97
|
private readonly keyboard;
|
|
68
98
|
readonly panelId: string;
|
|
69
|
-
readonly
|
|
99
|
+
readonly periodId: string;
|
|
70
100
|
protected readonly isOpen: _angular_core.WritableSignal<boolean>;
|
|
101
|
+
/**
|
|
102
|
+
* Which grid is on screen. Seeded from `precision` and writable in between (ADR 0057 R9) so the deferred
|
|
103
|
+
* month/year quick-pick — stepping UP from the day grid to pick a month, then back down — is an additive
|
|
104
|
+
* change rather than a rewrite. In MVP nothing writes it, so `view() === precision()` always.
|
|
105
|
+
*
|
|
106
|
+
* NOTE for whoever lands quick-pick: it adds a second focusable element to the open panel and therefore
|
|
107
|
+
* RE-OPENS spec Q-1, which was resolved on the premise that the panel holds exactly one focusable stop
|
|
108
|
+
* and Tab dismisses. Re-resolve Q-1 first.
|
|
109
|
+
*/
|
|
110
|
+
protected readonly view: _angular_core.WritableSignal<SkraDatePrecision>;
|
|
71
111
|
/** Today's LOCAL date (ADR 0050 §3) — stable for the session. */
|
|
72
112
|
private readonly todayIso;
|
|
73
|
-
/** The roving-focus
|
|
74
|
-
private readonly
|
|
113
|
+
/** The roving-focus cell; SINGLE source of truth for what the grid shows AND which cell is focusable. */
|
|
114
|
+
private readonly focusedKey;
|
|
115
|
+
/**
|
|
116
|
+
* The focused key re-keyed to the active view. A `precision` flip while the panel is closed leaves a key
|
|
117
|
+
* at the previous granularity behind; re-keying defensively keeps every downstream `computed` total
|
|
118
|
+
* without an effect or a reset cascade. `onOpen` re-seeds properly from the value.
|
|
119
|
+
*/
|
|
120
|
+
private readonly focusedAt;
|
|
75
121
|
private positioner?;
|
|
76
122
|
/** Set when a close should return focus to the trigger (keyboard/select), not on outside-click. */
|
|
77
123
|
private returnFocus;
|
|
@@ -81,50 +127,80 @@ declare class SkraDatePicker {
|
|
|
81
127
|
protected readonly isRequired: _angular_core.Signal<boolean>;
|
|
82
128
|
protected readonly triggerId: _angular_core.Signal<string | null>;
|
|
83
129
|
protected readonly describedBy: _angular_core.Signal<string | null>;
|
|
84
|
-
/**
|
|
85
|
-
|
|
130
|
+
/**
|
|
131
|
+
* The committed value, defensively normalized: wrong-format-for-precision, invalid or out-of-range → `''`
|
|
132
|
+
* for display (ADR 0050 §1 as amended by ADR 0057 R3). Keyed on `precision` (what the value IS), not on
|
|
133
|
+
* `view` (what is on screen) — the two only diverge once quick-pick lands.
|
|
134
|
+
*/
|
|
135
|
+
protected readonly selectedKey: _angular_core.Signal<string>;
|
|
86
136
|
protected readonly formattedValue: _angular_core.Signal<string>;
|
|
87
137
|
private readonly firstDow;
|
|
88
|
-
/**
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
138
|
+
/**
|
|
139
|
+
* The container the grid shows — the focused cell's MONTH in day view, its YEAR in month view (`m` is
|
|
140
|
+
* then meaningless). Always derived from the focused cell, which keeps the roving tabindex valid.
|
|
141
|
+
*/
|
|
142
|
+
private readonly displayed;
|
|
143
|
+
protected readonly periodLabel: _angular_core.Signal<string>;
|
|
144
|
+
protected readonly prevPeriodLabel: _angular_core.Signal<string>;
|
|
145
|
+
protected readonly nextPeriodLabel: _angular_core.Signal<string>;
|
|
146
|
+
/**
|
|
147
|
+
* `aria-current` token for the cell holding today. ARIA 1.2 has no `month` value, and `date` is
|
|
148
|
+
* defined as the current DATE within a collection of dates — accurate for a day cell, a stretch for a
|
|
149
|
+
* month cell, where the generic `true` ("current item within a set") is the honest mapping.
|
|
150
|
+
*/
|
|
151
|
+
protected readonly currentToken: _angular_core.Signal<"true" | "date">;
|
|
93
152
|
protected readonly weekdayHeadersView: _angular_core.Signal<WeekdayHeader[]>;
|
|
94
|
-
|
|
153
|
+
/** ONE grid renderer, parameterized by view — the ADR 0057 R8 claim, made structural. */
|
|
154
|
+
protected readonly rows: _angular_core.Signal<GridRow[]>;
|
|
95
155
|
constructor();
|
|
156
|
+
/**
|
|
157
|
+
* The dev-mode diagnostic, or `null` when the inputs are coherent. Split out of the constructor so it
|
|
158
|
+
* is a plain reactive expression rather than a closure buried in a lifecycle hook.
|
|
159
|
+
*/
|
|
160
|
+
private readonly devWarning;
|
|
96
161
|
protected onTriggerClick(event: MouseEvent): void;
|
|
97
162
|
protected onTriggerKeydown(event: KeyboardEvent): void;
|
|
98
163
|
protected onGridKeydown(event: KeyboardEvent): void;
|
|
99
|
-
protected
|
|
100
|
-
protected
|
|
101
|
-
|
|
164
|
+
protected goToPreviousPeriod(): void;
|
|
165
|
+
protected goToNextPeriod(): void;
|
|
166
|
+
/** One period = one month (day view) / one year (month view). */
|
|
167
|
+
private stepPeriod;
|
|
168
|
+
protected selectCell(iso: string): void;
|
|
102
169
|
protected onPanelToggle(event: Event): void;
|
|
103
170
|
private onOpen;
|
|
104
171
|
private onClose;
|
|
105
172
|
private open;
|
|
106
173
|
private close;
|
|
107
|
-
/** Seed the focused
|
|
174
|
+
/** Seed the focused cell on open: the valid current value, else today, clamped into `[min,max]`. */
|
|
108
175
|
private seedFocus;
|
|
109
|
-
private
|
|
176
|
+
private buildDayRows;
|
|
177
|
+
private buildMonthRows;
|
|
178
|
+
/**
|
|
179
|
+
* The accessible-name separator is baked into the extension rather than left to the template or to the
|
|
180
|
+
* engine: `[skra-sr-only]` is absolutely positioned, so whether the name computation inserts a space
|
|
181
|
+
* between the visible text and the extension is engine-dependent. One explicit space, asserted by test.
|
|
182
|
+
*/
|
|
183
|
+
private srExtension;
|
|
184
|
+
private periodOffsetLabel;
|
|
110
185
|
private emptyCell;
|
|
111
186
|
private scheduleFocus;
|
|
112
|
-
private
|
|
187
|
+
private focusActiveCell;
|
|
113
188
|
/** Read a length comp token (px/rem) off the panel computed style for the positioner. */
|
|
114
189
|
private cssLenPx;
|
|
115
190
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkraDatePicker, never>;
|
|
116
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkraDatePicker, "skra-datepicker", ["skraDatePicker"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
191
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkraDatePicker, "skra-datepicker", ["skraDatePicker"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "precision": { "alias": "precision"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
117
192
|
}
|
|
118
193
|
|
|
119
194
|
/**
|
|
120
195
|
* The intent a key produces in the calendar grid. The controller is PURE (no DOM, no focus, no signals);
|
|
121
|
-
* the `skra-datepicker` component applies the intent — sets `
|
|
122
|
-
* DOM focus (roving).
|
|
196
|
+
* the `skra-datepicker` component applies the intent — sets `focusedKey`/the displayed period and moves REAL
|
|
197
|
+
* DOM focus (roving). The component re-focuses unconditionally after a `focus` intent, so the intent
|
|
198
|
+
* carries no "did the period change" hint: a field nothing reads is public API that only costs (dropped
|
|
199
|
+
* in the ADR 0057 review, together with its `monthChanged` predecessor).
|
|
123
200
|
*/
|
|
124
201
|
type CalendarKeyIntent = {
|
|
125
202
|
readonly type: 'focus';
|
|
126
203
|
readonly iso: string;
|
|
127
|
-
readonly monthChanged: boolean;
|
|
128
204
|
} | {
|
|
129
205
|
readonly type: 'select';
|
|
130
206
|
} | {
|
|
@@ -133,20 +209,37 @@ type CalendarKeyIntent = {
|
|
|
133
209
|
readonly type: 'none';
|
|
134
210
|
};
|
|
135
211
|
interface CalendarKeyContext {
|
|
136
|
-
/** The currently focused
|
|
212
|
+
/** The currently focused cell, as an ISO key AT `view` precision (`YYYY-MM-DD` or `YYYY-MM`). */
|
|
137
213
|
readonly focusedIso: string;
|
|
138
|
-
/** First day of week, ISO 1=Mon … 7=Sun (already resolved by `calendar-intl`). */
|
|
214
|
+
/** First day of week, ISO 1=Mon … 7=Sun (already resolved by `calendar-intl`). Day view only. */
|
|
139
215
|
readonly firstDayOfWeek: number;
|
|
216
|
+
/** Which grid is on screen — the ADR 0057 precision axis. */
|
|
217
|
+
readonly view: SkraDatePrecision;
|
|
140
218
|
}
|
|
141
219
|
/**
|
|
142
220
|
* SkraCalendarKeyboard — the WAI-ARIA APG **Date Picker Dialog** grid keyboard model (2-D), confined to
|
|
143
221
|
* ONE file. The THIRD per-pattern keyboard controller and the FIRST that does NOT wrap a CDK key manager:
|
|
144
222
|
* neither `FocusKeyManager` (Menu) nor `ActiveDescendantKeyManager` (Select/Combobox) models a 2-D grid
|
|
145
|
-
* whose focusable cell set is recomputed on
|
|
223
|
+
* whose focusable cell set is recomputed on period change (ADR 0044 §7 note, 2026-06-14). Date arithmetic
|
|
146
224
|
* is delegated to `calendar-math` (the ADR 0050 single math site); this controller only maps keys to
|
|
147
225
|
* intents. Roving REAL focus (NOT `aria-activedescendant`) — the divergence from Select/Combobox.
|
|
148
226
|
*
|
|
149
|
-
*
|
|
227
|
+
* **One model, two unit sets (ADR 0057 R8).** The `day` and `month` views share every key, every intent and
|
|
228
|
+
* the whole `switch` below; they differ ONLY in what a step, a row and a page mean. That parameterization is
|
|
229
|
+
* the falsifiable claim behind treating precision as a runtime axis rather than a second component — if this
|
|
230
|
+
* ever needs a second `resolve`, the classification was wrong and the feature splits.
|
|
231
|
+
*
|
|
232
|
+
* | Key | `day` view | `month` view |
|
|
233
|
+
* | --------------------- | ----------------------------- | ----------------------------- |
|
|
234
|
+
* | Left / Right | ∓1 day | ∓1 month |
|
|
235
|
+
* | Up / Down | ∓7 days (one week row) | ∓3 months (one quarter row) |
|
|
236
|
+
* | Home / End | first / last day of the week | first / last month of the quarter |
|
|
237
|
+
* | PageUp / PageDown | ∓1 month (clamped) | ∓1 year |
|
|
238
|
+
* | Shift+PageUp / -Down | ∓1 year (clamped) | ∓10 years |
|
|
239
|
+
*
|
|
240
|
+
* Home/End stay ROW-scoped in both views — APG grid semantics, and one rule beats two.
|
|
241
|
+
*
|
|
242
|
+
* Navigation is unclamped (a user may move onto a disabled out-of-range cell — APG-discoverable); only
|
|
150
243
|
* SELECTION is range-guarded, and that guard lives in the component (one place, shared with pointer click).
|
|
151
244
|
*/
|
|
152
245
|
declare class SkraCalendarKeyboard {
|
|
@@ -154,11 +247,18 @@ declare class SkraCalendarKeyboard {
|
|
|
154
247
|
key: string;
|
|
155
248
|
shiftKey: boolean;
|
|
156
249
|
}, ctx: CalendarKeyContext): CalendarKeyIntent;
|
|
250
|
+
/** One cell = one day / one month. */
|
|
251
|
+
private step;
|
|
252
|
+
/** Row start: the week (day view) / the calendar quarter (month view). */
|
|
253
|
+
private rowStart;
|
|
254
|
+
/** Row end: last day of the week / last month of the quarter. */
|
|
255
|
+
private rowEnd;
|
|
256
|
+
/** Page = the next container up; Shift = the one above that. Day math stays clamped (ADR 0050 §4). */
|
|
257
|
+
private page;
|
|
157
258
|
private toFocus;
|
|
158
|
-
private monthChanged;
|
|
159
259
|
private weekStart;
|
|
160
260
|
}
|
|
161
261
|
|
|
162
262
|
export { SkraCalendarKeyboard, SkraDatePicker };
|
|
163
|
-
export type { CalendarKeyContext, CalendarKeyIntent };
|
|
263
|
+
export type { CalendarKeyContext, CalendarKeyIntent, SkraDatePrecision };
|
|
164
264
|
//# sourceMappingURL=skra-ui-datepicker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skra-ui-datepicker.d.ts","sources":["../../../../libs/ui/datepicker/src/lib/datepicker/calendar-intl.ts","../../../../libs/ui/datepicker/src/lib/datepicker/datepicker.ts","../../../../libs/ui/datepicker/src/lib/datepicker/calendar-keyboard.ts"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"skra-ui-datepicker.d.ts","sources":["../../../../libs/ui/datepicker/src/lib/datepicker/calendar-intl.ts","../../../../libs/ui/datepicker/src/lib/datepicker/calendar-math.ts","../../../../libs/ui/datepicker/src/lib/datepicker/datepicker.ts","../../../../libs/ui/datepicker/src/lib/datepicker/calendar-keyboard.ts"],"mappings":";;;;AA6BA;UACiB,aAAa;;AAE5B;AACA;AACA;AACD;;ACsID;KACY,iBAAiB;;AChH7B;;;AAGG;AACH,UAAU,QAAQ;AAChB;;AAEA;;AAEA;AACA;;;AAGG;AACH;AACA;AACA;AACA;AACA;AACD;AAED,UAAU,OAAO;AACf;AACA,oBAAgB,QAAQ;AACzB;AAID;;;;;;;;;;;;;;;;;;;;;;;AAuBG;AACH,cA+Ja,cAAc;AACzB;;;AAGG;oBACW,aAAA,CAAA,WAAA;AACd;;;;AAIG;wBACe,aAAA,CAAA,WAAA,CAAA,iBAAA;;kBAEN,aAAA,CAAA,WAAA;;kBAEA,aAAA,CAAA,WAAA;;qBAEG,aAAA,CAAA,WAAA;;6BAEQ,aAAA,CAAA,WAAA;;0BAEH,aAAA,CAAA,WAAA;;wBAEF,aAAA,CAAA,WAAA,CAAA,aAAA;;uBAED,aAAA,CAAA,wBAAA;uBACA,aAAA,CAAA,wBAAA;;0BAGG,aAAA,CAAA,gBAAA;AAEpB;AAEA;AAEA;AACA;AACA;;;AAIA,+BAAyB,aAAA,CAAA,cAAA;AAEzB;;;;;;;;AAQG;AACH,6BAAuB,aAAA,CAAA,cAAA,CAAA,iBAAA;;AAGvB;;AAEA;AACA;;;;AAIG;AACH;;;;AAUA,mCAA6B,aAAA,CAAA,MAAA;AAG7B,mCAA6B,aAAA,CAAA,MAAA;AAG7B,iCAA2B,aAAA,CAAA,MAAA;AAG3B,mCAA6B,aAAA,CAAA,MAAA;AAG7B,kCAA4B,aAAA,CAAA,MAAA;AAG5B,oCAA8B,aAAA,CAAA,MAAA;AAK9B;;;;AAIG;AACH,oCAA8B,aAAA,CAAA,MAAA;AAQ9B,uCAAiC,aAAA,CAAA,MAAA;AAKjC;AAGA;;;AAGG;AACH;AASA,oCAA8B,aAAA,CAAA,MAAA;AAM9B,wCAAkC,aAAA,CAAA,MAAA;AAGlC,wCAAkC,aAAA,CAAA,MAAA;AAGlC;;;;AAIG;AACH,qCAA+B,aAAA,CAAA,MAAA;AAG/B,2CAAqC,aAAA,CAAA,MAAA,CAAAA,aAAA;;AAIrC,6BAAuB,aAAA,CAAA,MAAA,CAAA,OAAA;;AAgCvB;;;AAGG;AACH;AAsCA,oCAAgC,UAAU;AAI1C,sCAAkC,aAAa;AAS/C,mCAA+B,aAAa;;;;AAwC5C;AAUA;AAuBA,mCAA+B,KAAK;AAOpC;AAiBA;AASA;AAGA;;AAKA;AAQA;AA0BA;AAwBA;;;;AAIG;AACH;AAIA;AAQA;AAaA;AAIA;;AASA;oDArcW,cAAc;sDAAd,cAAc;AAid1B;;ACjtBD;;;;;;AAMG;AACG,KAAM,iBAAiB;AAEvB;AACA;;AAEA;;AACA;;AACA;;UAEW,kBAAkB;;AAEjC;;AAEA;;AAEA,mBAAe,iBAAiB;AACjC;AAOD;;;;;;;;;;;;;;;;;;;;;;;;;AAyBG;AACH,cAAa,oBAAoB;;;;AAEY,YACpC,kBAAkB,GACtB,iBAAiB;;AA+BpB;;AAOA;;AAOA;;AAOA;AAYA;AAIA;AAMD;;;;","names":["__calendar_intl.WeekdayHeader"]}
|