courthive-components 3.13.2 → 3.14.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.
@@ -14,6 +14,9 @@ export declare class SchedulePageControl {
14
14
  setActiveStripVisible(visible: boolean): void;
15
15
  toggleActiveStrip(): void;
16
16
  get activeStripVisible(): boolean;
17
+ setInspectorVisible(visible: boolean): void;
18
+ toggleInspector(): void;
19
+ get inspectorVisible(): boolean;
17
20
  save(): PendingScheduleAction[];
18
21
  discardPending(): void;
19
22
  get hasUnsavedChanges(): boolean;
@@ -30,6 +30,8 @@ export declare class SchedulePageStore {
30
30
  toggleLeftPanel(): void;
31
31
  setActiveStripVisible(visible: boolean): void;
32
32
  toggleActiveStrip(): void;
33
+ setInspectorVisible(visible: boolean): void;
34
+ toggleInspector(): void;
33
35
  subscribe(listener: SchedulePageChangeListener): () => void;
34
36
  private setState;
35
37
  private emit;
@@ -17,6 +17,7 @@ export { buildScheduleIssuesPanel } from './ui/issuesPanel';
17
17
  export { buildMatchUpCatalog } from './ui/matchUpCatalog';
18
18
  export { buildMatchUpCard } from './ui/matchUpCard';
19
19
  export { buildScheduleInspectorPanel } from './ui/inspectorPanel';
20
+ export type { ScheduleInspectorPanelOptions } from './ui/inspectorPanel';
20
21
  export { buildCourtGridSlot } from './ui/courtGridSlot';
21
22
  export { buildSchedulePageLayout } from './ui/schedulePageLayout';
22
23
  export { buildActiveStripPanel } from './ui/activeStrip';
@@ -125,6 +125,15 @@ export interface SchedulePageConfig {
125
125
  schedulingMode?: SchedulingMode;
126
126
  /** Initial visibility of the active strip (one-row court summary above the grid). Defaults to true. */
127
127
  activeStripVisible?: boolean;
128
+ /** Initial visibility of the inspector panel beneath the matchUp catalog. Defaults to true.
129
+ * Seed this from persisted consumer state so the first toggle dispatches a real change
130
+ * rather than a no-op against the default. */
131
+ inspectorVisible?: boolean;
132
+ /** Consumer-supplied detail appended below the inspector's built-in fields for the
133
+ * selected matchUp. Called on every inspector render — the panel rebuilds its body
134
+ * from scratch on each state change — so return a freshly created element rather than
135
+ * a cached one. Return null to render nothing. Not called when no matchUp is selected. */
136
+ renderInspectorExtra?: (matchUp: CatalogMatchUpItem, state: SchedulePageState) => HTMLElement | null;
128
137
  /** Consumer-owned buttons rendered right-aligned in the court grid header.
129
138
  * Consumer keeps live refs and mutates state (visibility, disabled, label) directly. */
130
139
  headerActions?: HTMLElement | HTMLElement[];
@@ -162,6 +171,7 @@ export interface SchedulePageState {
162
171
  leftCollapsed: boolean;
163
172
  hideLeft: boolean;
164
173
  activeStripVisible: boolean;
174
+ inspectorVisible: boolean;
165
175
  }
166
176
  export type SchedulePageChangeListener = (state: SchedulePageState) => void;
167
177
  export interface ScheduleIssueCounts {
@@ -1,2 +1,8 @@
1
- import { SchedulePageState, UIPanel } from '../types';
2
- export declare function buildScheduleInspectorPanel(): UIPanel<SchedulePageState>;
1
+ import { CatalogMatchUpItem, SchedulePageState, UIPanel } from '../types';
2
+ export interface ScheduleInspectorPanelOptions {
3
+ /** Consumer-supplied detail rendered below the built-in fields, for the selected
4
+ * matchUp only. Must return a freshly created element (or null) — the body is
5
+ * rebuilt on every render, so a cached node would be re-parented, not reused. */
6
+ renderExtra?: (matchUp: CatalogMatchUpItem, state: SchedulePageState) => HTMLElement | null;
7
+ }
8
+ export declare function buildScheduleInspectorPanel(options?: ScheduleInspectorPanelOptions): UIPanel<SchedulePageState>;