courthive-components 1.10.1 → 2.0.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 (29) hide show
  1. package/dist/components/editor/notesEditor.d.ts +13 -0
  2. package/dist/components/hive-id-login/buildHiveIDLogin.d.ts +4 -0
  3. package/dist/components/hive-id-login/hiveIDClient.d.ts +14 -0
  4. package/dist/components/hive-id-login/index.d.ts +3 -0
  5. package/dist/components/hive-id-login/styles.d.ts +16 -0
  6. package/dist/components/hive-id-login/types.d.ts +115 -0
  7. package/dist/components/interactive-scoring/types.d.ts +8 -0
  8. package/dist/components/schedule-page/domain/matchUpCatalogProjections.d.ts +11 -0
  9. package/dist/components/schedule-page/index.d.ts +1 -1
  10. package/dist/components/schedule-page/types.d.ts +5 -0
  11. package/dist/components/schedule-page/ui/matchUpCard.d.ts +8 -0
  12. package/dist/components/scoring/logic/dynamicSetsLogic.d.ts +2 -0
  13. package/dist/components/team-card/buildTeamCard.d.ts +2 -0
  14. package/dist/components/team-card/index.d.ts +2 -0
  15. package/dist/components/team-card/styles.d.ts +13 -0
  16. package/dist/components/team-card/types.d.ts +27 -0
  17. package/dist/components/temporal-grid/controller/temporalGridControl.d.ts +21 -8
  18. package/dist/components/temporal-grid/controller/viewProjections.d.ts +5 -5
  19. package/dist/components/temporal-grid/engine/viewState.d.ts +3 -3
  20. package/dist/components/temporal-grid/index.d.ts +1 -1
  21. package/dist/components/temporal-grid/timeline/types.d.ts +2 -2
  22. package/dist/components/temporal-grid/ui/blockPopover.d.ts +2 -2
  23. package/dist/components/temporal-grid/ui/temporalGrid.d.ts +3 -3
  24. package/dist/courthive-components.css +1 -1
  25. package/dist/courthive-components.es.js +5900 -5483
  26. package/dist/courthive-components.umd.js +47 -47
  27. package/dist/index.d.ts +7 -1
  28. package/dist/types.d.ts +3 -3
  29. package/package.json +10 -3
@@ -0,0 +1,13 @@
1
+ import { Editor } from '@tiptap/core';
2
+ export interface NotesEditorOptions {
3
+ initialHtml?: string;
4
+ }
5
+ export interface NotesEditorHandle {
6
+ toolbar: HTMLElement;
7
+ editorElement: HTMLElement;
8
+ editor: Editor | undefined;
9
+ getHtml(): string;
10
+ isEmpty(): boolean;
11
+ destroy(): void;
12
+ }
13
+ export declare function createNotesEditor(options?: NotesEditorOptions): NotesEditorHandle;
@@ -0,0 +1,4 @@
1
+ import { HiveIDAuthenticatedDetail, HiveIDLoginConfig, HiveIDLoginShell } from './types';
2
+ export declare function buildHiveIDLogin(config: HiveIDLoginConfig): HiveIDLoginShell;
3
+ /** Magic-link consume helper for the courthive-public landing route. */
4
+ export declare function completeMagicLink(cfsBaseUrl: string, code: string, fetchImpl?: typeof fetch): Promise<HiveIDAuthenticatedDetail>;
@@ -0,0 +1,14 @@
1
+ import { HiveIDClientError, MagicLinkConsumeRequest, MagicLinkConsumeResponse, MagicLinkRequest, MagicLinkResponse, SignupRequest, SignupResponse, VerifyExistingRequest, VerifyExistingResponse } from './types';
2
+ type FetchLike = typeof fetch;
3
+ export declare function signup(baseUrl: string, body: SignupRequest, fetchImpl?: FetchLike): Promise<SignupResponse>;
4
+ export declare function verifyExisting(baseUrl: string, body: VerifyExistingRequest, fetchImpl?: FetchLike): Promise<VerifyExistingResponse>;
5
+ export declare function requestMagicLink(baseUrl: string, body: MagicLinkRequest, fetchImpl?: FetchLike): Promise<MagicLinkResponse>;
6
+ export declare function consumeMagicLink(baseUrl: string, body: MagicLinkConsumeRequest, fetchImpl?: FetchLike): Promise<MagicLinkConsumeResponse>;
7
+ /**
8
+ * Helper: returns true when the error is a 409 with the existing-user
9
+ * redirect shape from CFS (`{ code: 'EXISTING_USER', ... }`). The
10
+ * component uses this to swap signup mode → verify-existing without
11
+ * re-typing the email.
12
+ */
13
+ export declare function isExistingUserConflict(err: unknown): err is HiveIDClientError;
14
+ export {};
@@ -0,0 +1,3 @@
1
+ export { buildHiveIDLogin, completeMagicLink } from './buildHiveIDLogin';
2
+ export { consumeMagicLink, isExistingUserConflict, requestMagicLink, signup, verifyExisting } from './hiveIDClient';
3
+ export type { CachedPersonFields, HiveIDAuthenticatedDetail, HiveIDClientError, HiveIDFederationId, HiveIDLoginConfig, HiveIDLoginShell, HiveIDMode, MagicLinkConsumeRequest, MagicLinkConsumeResponse, MagicLinkRequest, MagicLinkResponse, SignupCandidate, SignupRequest, SignupResolved, SignupResponse, VerifyExistingRequest, VerifyExistingResponse } from './types';
@@ -0,0 +1,16 @@
1
+ export declare const hilContainerStyle: () => string;
2
+ export declare const hilFormStyle: () => string;
3
+ export declare const hilHeaderStyle: () => string;
4
+ export declare const hilTitleStyle: () => string;
5
+ export declare const hilTabsStyle: () => string;
6
+ export declare const hilTabStyle: () => string;
7
+ export declare const hilTabActiveStyle: () => string;
8
+ export declare const hilFieldStyle: () => string;
9
+ export declare const hilLabelStyle: () => string;
10
+ export declare const hilInputStyle: () => string;
11
+ export declare const hilRowStyle: () => string;
12
+ export declare const hilSubmitStyle: () => string;
13
+ export declare const hilMessageStyle: () => string;
14
+ export declare const hilMessageErrorStyle: () => string;
15
+ export declare const hilMessageSuccessStyle: () => string;
16
+ export declare const hilSwitchModeStyle: () => string;
@@ -0,0 +1,115 @@
1
+ /**
2
+ * HiveID Login — types.
3
+ *
4
+ * Mirrors the response shapes from CFS `/auth/hiveid/*` (PR-G):
5
+ * - POST /auth/hiveid/signup
6
+ * - POST /auth/hiveid/verify-existing
7
+ * - POST /auth/hiveid/magic-link
8
+ * - POST /auth/hiveid/magic-link/consume
9
+ */
10
+ export type HiveIDMode = 'signup' | 'login' | 'magic-link';
11
+ export interface CachedPersonFields {
12
+ standardFamilyName: string | null;
13
+ standardGivenName: string | null;
14
+ birthDate: string | null;
15
+ sex: string | null;
16
+ nationalityCode: string | null;
17
+ }
18
+ export interface HiveIDFederationId {
19
+ provider: string;
20
+ externalId: string;
21
+ }
22
+ export interface HiveIDAuthenticatedDetail {
23
+ token: string;
24
+ refreshToken: string;
25
+ personId: string | null;
26
+ cached: CachedPersonFields;
27
+ }
28
+ export interface SignupRequest {
29
+ email: string;
30
+ firstName: string;
31
+ lastName: string;
32
+ federationIds?: HiveIDFederationId[];
33
+ }
34
+ export interface VerifyExistingRequest {
35
+ email: string;
36
+ password: string;
37
+ }
38
+ export interface MagicLinkRequest {
39
+ email: string;
40
+ }
41
+ export interface MagicLinkConsumeRequest {
42
+ code: string;
43
+ }
44
+ export interface SignupResolved {
45
+ status: 'created';
46
+ token: string;
47
+ refreshToken: string;
48
+ personId: string;
49
+ personRevision: number;
50
+ cached: CachedPersonFields;
51
+ }
52
+ export interface SignupCandidate {
53
+ status: 'candidate';
54
+ candidates: {
55
+ personId: string;
56
+ confidence: number;
57
+ }[];
58
+ }
59
+ export type SignupResponse = SignupResolved | SignupCandidate;
60
+ export interface VerifyExistingResponse {
61
+ status: 'verified';
62
+ token: string;
63
+ refreshToken: string;
64
+ personId: string | null;
65
+ personRevision: number | null;
66
+ cached: CachedPersonFields | null;
67
+ }
68
+ export interface MagicLinkResponse {
69
+ ok: true;
70
+ }
71
+ export interface MagicLinkConsumeResponse {
72
+ status: 'authenticated';
73
+ token: string;
74
+ refreshToken: string;
75
+ personId: string | null;
76
+ personRevision: number | null;
77
+ cached: CachedPersonFields;
78
+ }
79
+ export interface HiveIDLoginConfig {
80
+ /** Which CFS instance to talk to (no trailing slash). */
81
+ cfsBaseUrl: string;
82
+ /** Starting mode. Defaults to 'signup'. The user can toggle inside the component. */
83
+ mode?: HiveIDMode;
84
+ /** Pre-fill email — useful when the consumer already knows the user. */
85
+ defaultEmail?: string;
86
+ /**
87
+ * Optional pre-existing federation IDs (e.g. a USTA id known to the
88
+ * consumer) appended to the signup resolve fragment to bump
89
+ * strong-match likelihood. Most callers leave this empty.
90
+ */
91
+ federationIds?: HiveIDFederationId[];
92
+ /** Optional fetch implementation (tests stub this). */
93
+ fetchImpl?: typeof fetch;
94
+ }
95
+ export interface HiveIDLoginShell {
96
+ /** Root DOM node — append to your container. */
97
+ root: HTMLElement;
98
+ /** Programmatically swap modes (signup ⇄ login ⇄ magic-link). */
99
+ setMode(mode: HiveIDMode): void;
100
+ /** Current mode. */
101
+ getMode(): HiveIDMode;
102
+ /** Convenience: subscribe to the success event without addEventListener. */
103
+ onAuthenticated(handler: (detail: HiveIDAuthenticatedDetail) => void): () => void;
104
+ }
105
+ export type HiveIDClientError = {
106
+ kind: 'http';
107
+ status: number;
108
+ body: any;
109
+ } | {
110
+ kind: 'network';
111
+ cause: Error;
112
+ } | {
113
+ kind: 'parse';
114
+ cause: Error;
115
+ };
@@ -30,6 +30,14 @@ export interface InteractiveScoringShellConfig {
30
30
  * IndexedDB. If omitted, the shell starts at 0-0.
31
31
  */
32
32
  initialMatchUp?: MatchUp;
33
+ /**
34
+ * Hook to confirm a reset before the engine clears the matchUp. Return
35
+ * `true` to proceed, `false` to abort. Consumers wire this to whatever
36
+ * themed-modal primitive their app uses (e.g. cModal in
37
+ * courthive-public). When omitted, Reset fires immediately without any
38
+ * prompt — the shell NEVER falls back to a native browser dialog.
39
+ */
40
+ confirmReset?: () => boolean | Promise<boolean>;
33
41
  }
34
42
  /**
35
43
  * Detail payload for the `stateChanged` CustomEvent.
@@ -1,4 +1,15 @@
1
1
  import { CatalogMatchUpItem, CatalogFilters, MatchUpCatalogGroupBy, ScheduledBehavior } from '../types';
2
2
  export declare function isCompletedStatus(status?: string): boolean;
3
3
  export declare function filterMatchUpCatalog(catalog: CatalogMatchUpItem[], query: string, behavior?: ScheduledBehavior, filters?: CatalogFilters, showCompleted?: boolean): CatalogMatchUpItem[];
4
+ /**
5
+ * For each event, returns the lowest `roundNumber` among items that are
6
+ * unscheduled and not completed. Drives the round-emphasis tier on each
7
+ * catalog card — offset 0 means "this round is what should be scheduled
8
+ * next within its event," offset >= 1 deemphasizes future rounds.
9
+ *
10
+ * Computed against the FULL catalog (not the filtered set) by the catalog
11
+ * widget's `update()` so a search / filter that narrows the visible items
12
+ * doesn't shift the priority assignment underneath the operator.
13
+ */
14
+ export declare function computeBaseRoundByEvent(catalog: CatalogMatchUpItem[]): Map<string, number>;
4
15
  export declare function groupMatchUpCatalog(items: CatalogMatchUpItem[], mode: MatchUpCatalogGroupBy): Map<string, CatalogMatchUpItem[]>;
@@ -7,7 +7,7 @@ import { SchedulePageControl } from './controller/schedulePageControl';
7
7
  */
8
8
  export { SchedulePageControl } from './controller/schedulePageControl';
9
9
  export { SchedulePageStore } from './engine/schedulePageStore';
10
- export { filterMatchUpCatalog, groupMatchUpCatalog, isCompletedStatus } from './domain/matchUpCatalogProjections';
10
+ export { filterMatchUpCatalog, groupMatchUpCatalog, computeBaseRoundByEvent, isCompletedStatus } from './domain/matchUpCatalogProjections';
11
11
  export { buildScheduleIssueIndex } from './domain/scheduleIssues';
12
12
  export { matchUpLabel, participantLabel, matchUpSearchKey, deepClone } from './domain/utils';
13
13
  export { computeActiveStrip, computeActiveStripCell, computeActiveStripDropTarget } from './domain/activeStrip';
@@ -17,6 +17,11 @@ export interface CatalogMatchUpItem {
17
17
  drawId: string;
18
18
  drawName?: string;
19
19
  structureId: string;
20
+ /** Draw stage — MAIN / CONSOLATION / PLAYOFF / QUALIFYING / ROUND_ROBIN /
21
+ * etc. Rendered as a chip when present and not MAIN so a Quarterfinal in
22
+ * the consolation bracket reads distinctly from a Quarterfinal in the
23
+ * main draw of the same event. */
24
+ stage?: string;
20
25
  roundNumber: number;
21
26
  roundName?: string;
22
27
  matchUpFormat?: string;
@@ -7,5 +7,13 @@ export interface MatchUpCardOptions {
7
7
  * (top-right) and suppress the standard time chip. Used by the schedule
8
8
  * grid's Scheduled tab where the time is the card's primary signal. */
9
9
  prominentTime?: boolean;
10
+ /** Distance from the earliest unscheduled round within this card's event.
11
+ * 0 = this round is the next-to-schedule (highest emphasis on the title),
12
+ * 1 = one round behind, ≥ 2 = further out (lowest emphasis). Mapped to
13
+ * `spl-card-title--round-current / next / later` classes so consumers can
14
+ * re-theme via CSS without touching the JS. Omit to leave the title at
15
+ * its default styling (used for non-catalog renders + scheduled / completed
16
+ * cards where round priority is meaningless). */
17
+ roundOffset?: number;
10
18
  }
11
19
  export declare function buildMatchUpCard(item: CatalogMatchUpItem, callbacks: MatchUpCardCallbacks, options?: MatchUpCardOptions): HTMLElement;
@@ -15,6 +15,8 @@ export type SetFormat = {
15
15
  };
16
16
  timed?: boolean;
17
17
  minutes?: number;
18
+ noTiebreak?: boolean;
19
+ winBy?: number;
18
20
  };
19
21
  /**
20
22
  * Configuration for a matchUp
@@ -0,0 +1,2 @@
1
+ import { TeamCardCallbacks, TeamCardData } from './types';
2
+ export declare function buildTeamCard(data: TeamCardData, callbacks?: TeamCardCallbacks): HTMLElement;
@@ -0,0 +1,2 @@
1
+ export { buildTeamCard } from './buildTeamCard';
2
+ export type { TeamCardCallbacks, TeamCardData } from './types';
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Team Card — Class-name constants.
3
+ *
4
+ * One class per zone. CSS lives in `team-card.css` and is themed via
5
+ * `--chc-*` custom properties so consumers can re-skin without touching
6
+ * the primitive.
7
+ */
8
+ export declare const tcCardClass: () => string;
9
+ export declare const tcCardClickableClass: () => string;
10
+ export declare const tcTitleRowClass: () => string;
11
+ export declare const tcNameClass: () => string;
12
+ export declare const tcNicknameClass: () => string;
13
+ export declare const tcCountsClass: () => string;
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Team Card — Type Definitions
3
+ *
4
+ * Flat data + JSON-serializable config consumed by `buildTeamCard`.
5
+ *
6
+ * v1 surface is intentionally minimal: a card header that renders a team
7
+ * name, an optional nickname, and a `·`-separated summary line of
8
+ * pre-formatted count segments (e.g. "9 players · 1 coach · 1 physio").
9
+ * i18n / pluralization is the consumer's responsibility — the primitive
10
+ * stays locale-agnostic so it can ship in any CourtHive surface.
11
+ */
12
+ export interface TeamCardData {
13
+ teamId?: string;
14
+ teamName: string;
15
+ /** Short alias shown in italic quotes next to the name. */
16
+ nickname?: string;
17
+ /**
18
+ * Pre-formatted summary segments joined with " · ".
19
+ * Empty values are dropped; falsy array → segment line is omitted entirely.
20
+ */
21
+ countSegments?: string[];
22
+ }
23
+ export interface TeamCardCallbacks {
24
+ /** Click handler. Mirrors the other card primitives' contract — sets
25
+ * `tabindex` / `role=button` / keyboard activation automatically. */
26
+ onClick?: (data: TeamCardData) => void;
27
+ }
@@ -1,11 +1,11 @@
1
- import { temporal, TemporalEngine } from 'tods-competition-factory';
1
+ import { availability, AvailabilityEngine } from 'tods-competition-factory';
2
2
  import { TemporalViewState } from '../engine/viewState';
3
3
  import { DEFAULT_COLOR_SCHEME, ResourceGroupingMode } from './viewProjections';
4
4
  import { BlockPopoverManager } from '../ui/blockPopover';
5
5
  import { CourtTimeline } from '../timeline/CourtTimeline';
6
- type BlockType = temporal.BlockType;
7
- type CourtRef = temporal.CourtRef;
8
- type DayId = temporal.DayId;
6
+ type BlockType = availability.BlockType;
7
+ type CourtRef = availability.CourtRef;
8
+ type DayId = availability.DayId;
9
9
  export interface TemporalGridControlConfig {
10
10
  /** Container element for the timeline */
11
11
  container: HTMLElement;
@@ -35,6 +35,14 @@ export interface TemporalGridControlConfig {
35
35
  onBlocksChanged?: () => void;
36
36
  /** Callback when a day label is double-clicked (for navigating to 1-Day view) */
37
37
  onDayNavigate?: (day: string) => void;
38
+ /**
39
+ * Callback invoked when an action can't complete because of scheduling
40
+ * conflicts. The controller never opens a dialog itself — the consumer
41
+ * wires this hook to its own themed-toast / modal system. When omitted,
42
+ * conflicts are written to console.warn only (NEVER falls back to a
43
+ * native browser alert).
44
+ */
45
+ onConflict?: (conflicts: any[]) => void;
38
46
  }
39
47
  export declare class TemporalGridControl {
40
48
  private readonly engine;
@@ -49,7 +57,7 @@ export declare class TemporalGridControl {
49
57
  private currentView;
50
58
  private selectedCourts;
51
59
  private visibleCourts;
52
- constructor(engine: TemporalEngine, config: TemporalGridControlConfig);
60
+ constructor(engine: AvailabilityEngine, config: TemporalGridControlConfig);
53
61
  private initialize;
54
62
  /**
55
63
  * Ensure timeline exists. Defers creation to the next macro-task so the
@@ -123,15 +131,20 @@ export declare class TemporalGridControl {
123
131
  * toISOString() converts to UTC which shifts the time by the local offset.
124
132
  */
125
133
  private toLocalISO;
126
- /** Show conflict dialog */
134
+ /**
135
+ * Surface scheduling conflicts to the consumer. We never open a dialog
136
+ * here — the consumer's `onConflict` hook routes them to whatever themed
137
+ * notification system the host app uses (TMX toast, AMS console modal,
138
+ * etc.). When no hook is wired, conflicts go to console.warn only.
139
+ */
127
140
  private showConflictDialog;
128
141
  /** Get timeline instance (for advanced usage) */
129
142
  getTimeline(): CourtTimeline | null;
130
143
  /** Get engine instance */
131
- getEngine(): TemporalEngine;
144
+ getEngine(): AvailabilityEngine;
132
145
  /** Get view state (for external consumers to subscribe to view changes) */
133
146
  getViewState(): TemporalViewState;
134
147
  }
135
148
  /** Create a temporal grid controller */
136
- export declare function createTemporalGridControl(engine: TemporalEngine, config: TemporalGridControlConfig): TemporalGridControl;
149
+ export declare function createTemporalGridControl(engine: AvailabilityEngine, config: TemporalGridControlConfig): TemporalGridControl;
137
150
  export {};
@@ -1,8 +1,8 @@
1
- import { temporal } from 'tods-competition-factory';
2
- type BlockType = temporal.BlockType;
3
- type CourtMeta = temporal.CourtMeta;
4
- type CourtRef = temporal.CourtRef;
5
- type VenueDayTimeline = temporal.VenueDayTimeline;
1
+ import { availability } from 'tods-competition-factory';
2
+ type BlockType = availability.BlockType;
3
+ type CourtMeta = availability.CourtMeta;
4
+ type CourtRef = availability.CourtRef;
5
+ type VenueDayTimeline = availability.VenueDayTimeline;
6
6
  /**
7
7
  * Timeline Group (represents a court or facility group header)
8
8
  */
@@ -1,6 +1,6 @@
1
- import { temporal } from 'tods-competition-factory';
2
- type BlockType = temporal.BlockType;
3
- type DayId = temporal.DayId;
1
+ import { availability } from 'tods-competition-factory';
2
+ type BlockType = availability.BlockType;
3
+ type DayId = availability.DayId;
4
4
  export interface ViewStateSnapshot {
5
5
  selectedDay: DayId | null;
6
6
  selectedVenue: string | null;
@@ -4,7 +4,7 @@
4
4
  * Engine modules re-exported from tods-competition-factory via `temporal` namespace.
5
5
  * Controller, UI, and view state are local to courthive-components.
6
6
  */
7
- export { TemporalEngine, TemporalEngine as TemporalGridEngine, temporal } from 'tods-competition-factory';
7
+ export { AvailabilityEngine, AvailabilityEngine as TemporalGridEngine, availability } from 'tods-competition-factory';
8
8
  export { TemporalViewState, type ViewChangeEvent, type ViewChangeListener, type ViewStateSnapshot } from './engine/viewState';
9
9
  export { createTemporalGridControl, TemporalGridControl, type TemporalGridControlConfig } from './controller/temporalGridControl';
10
10
  export { buildBlockEvents, buildCapacityVisualization, buildConflictEvents, buildEventsFromTimelines, buildVenueGroups, buildHiddenDates, buildResourcesFromTimelines, buildTimeSlotConfig, buildTimelineWindowConfig, DEFAULT_COLOR_SCHEME, filterEventsByTimeRange, filterResourcesByVenue, generateBlockPatternCSS, isBlockEvent, isConflictEvent, isSegmentEvent, parseBlockEventId, parseResourceId, sortResources, type BlockColorScheme, type CalendarEvent, type CalendarResource, type TimelineGroup, type TimelineItem, type ProjectionConfig, type ResourceGroupingMode } from './controller/viewProjections';
@@ -1,5 +1,5 @@
1
- import { temporal } from 'tods-competition-factory';
2
- type CourtRef = temporal.CourtRef;
1
+ import { availability } from 'tods-competition-factory';
2
+ type CourtRef = availability.CourtRef;
3
3
  export interface TimelineGroupData {
4
4
  id: string;
5
5
  content: string;
@@ -1,4 +1,4 @@
1
- import { TemporalEngine } from 'tods-competition-factory';
1
+ import { AvailabilityEngine } from 'tods-competition-factory';
2
2
  export interface BlockPopoverOptions {
3
3
  itemId: string;
4
4
  blockTypes: Array<{
@@ -16,7 +16,7 @@ export interface BlockPopoverOptions {
16
16
  export interface EngineBlockPopoverOptions {
17
17
  itemId: string;
18
18
  blockId: string;
19
- engine: TemporalEngine;
19
+ engine: AvailabilityEngine;
20
20
  day: string;
21
21
  onBlockChanged: () => void;
22
22
  }
@@ -1,6 +1,6 @@
1
- import { TemporalEngine, temporal } from 'tods-competition-factory';
1
+ import { AvailabilityEngine, availability } from 'tods-competition-factory';
2
2
  import { TemporalGridControl, TemporalGridControlConfig } from '../controller/temporalGridControl';
3
- type DayId = temporal.DayId;
3
+ type DayId = availability.DayId;
4
4
  /**
5
5
  * i18n labels for the temporal grid component.
6
6
  * All fields are optional — English defaults are used when omitted.
@@ -128,7 +128,7 @@ export declare class TemporalGrid {
128
128
  /**
129
129
  * Get the engine instance
130
130
  */
131
- getEngine(): TemporalEngine;
131
+ getEngine(): AvailabilityEngine;
132
132
  /**
133
133
  * Get the controller instance
134
134
  */