eidotter 0.33.0 → 0.35.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/dist/components/EmptyState/components/EmptyState.d.ts +26 -0
- package/dist/components/EmptyState/components/index.d.ts +2 -0
- package/dist/components/EmptyState/index.d.ts +2 -0
- package/dist/components/SectionHeading/components/SectionHeading.d.ts +26 -0
- package/dist/components/SectionHeading/components/index.d.ts +2 -0
- package/dist/components/SectionHeading/index.d.ts +2 -0
- package/dist/components/TimelineContainer/components/MasterDetailLayout.d.ts +32 -0
- package/dist/components/TimelineContainer/components/TimelineContainer.d.ts +4 -1
- package/dist/eidotter.css +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.es.js +1096 -943
- package/dist/index.umd.js +3 -3
- package/package.json +1 -1
- package/src/styles/theme.amber-mono.css +1 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface EmptyStateProps {
|
|
3
|
+
/** Primary message (e.g. "No documents yet"). */
|
|
4
|
+
title: string;
|
|
5
|
+
/** Optional supporting line below the title. */
|
|
6
|
+
description?: React.ReactNode;
|
|
7
|
+
/**
|
|
8
|
+
* Tone-driven colour for the title. Routes through semantic roles so it
|
|
9
|
+
* re-themes: amber-family under amber-mono, honest under colour themes.
|
|
10
|
+
* @default 'default'
|
|
11
|
+
*/
|
|
12
|
+
tone?: 'default' | 'error' | 'warning' | 'info';
|
|
13
|
+
/** Optional action slot (e.g. a Button), rendered below the description. */
|
|
14
|
+
action?: React.ReactNode;
|
|
15
|
+
/** Additional CSS class name. */
|
|
16
|
+
className?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* DOS-styled empty / zero-state — a centred title, optional description, and an
|
|
20
|
+
* optional action slot. Pure presentational.
|
|
21
|
+
*
|
|
22
|
+
* Ported from Steuerdash (DMNC-859); tones and the description route through
|
|
23
|
+
* `text-dos-*` semantic roles (not raw `cga-*`) so it re-themes and the
|
|
24
|
+
* description stays AA-safe (`text-muted` → lightGray under amber-mono).
|
|
25
|
+
*/
|
|
26
|
+
export declare const EmptyState: React.FC<EmptyStateProps>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface SectionHeadingProps {
|
|
3
|
+
/** Heading text. */
|
|
4
|
+
title: string;
|
|
5
|
+
/** Optional trailing count, rendered as " (count)". */
|
|
6
|
+
count?: string | number;
|
|
7
|
+
/**
|
|
8
|
+
* Tone-driven colour. Routes through semantic roles so it re-themes:
|
|
9
|
+
* amber-family under amber-mono, honest under colour themes.
|
|
10
|
+
* @default 'default'
|
|
11
|
+
*/
|
|
12
|
+
tone?: 'default' | 'error' | 'warning' | 'info';
|
|
13
|
+
/** Additional content rendered after the title/count (e.g. an action). */
|
|
14
|
+
children?: React.ReactNode;
|
|
15
|
+
/** Additional CSS class name. */
|
|
16
|
+
className?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* DOS-styled section heading — an uppercase `<h3>` label with an optional
|
|
20
|
+
* trailing `(count)` and tone-driven colour. Pure presentational.
|
|
21
|
+
*
|
|
22
|
+
* Ported from Steuerdash (DMNC-855); the steuerdash version hardcoded
|
|
23
|
+
* `text-cga-*` — this routes tones through `text-dos-*` semantic roles instead
|
|
24
|
+
* so the heading re-themes and stays AA-safe under amber-mono.
|
|
25
|
+
*/
|
|
26
|
+
export declare const SectionHeading: React.FC<SectionHeadingProps>;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { TimelineEntryData, TimelineRenderEntry } from './types';
|
|
3
|
+
import '../../../styles/keyframes.css';
|
|
4
|
+
import './MasterDetailLayout.css';
|
|
5
|
+
export interface MasterDetailLayoutProps {
|
|
6
|
+
/** Pre-sorted entries (the orchestrator sorts; the rail renders in order). */
|
|
7
|
+
entries: TimelineEntryData[];
|
|
8
|
+
/** The entry currently filling the detail pane, or null for none. */
|
|
9
|
+
selectedEntryId: string | null;
|
|
10
|
+
/** Open an entry in the detail pane (set semantics). */
|
|
11
|
+
onSelect: (id: string) => void;
|
|
12
|
+
/** Return to the rail (close the detail pane). */
|
|
13
|
+
onDeselect: () => void;
|
|
14
|
+
/** Optional pluggable entry renderer, used for the detail body. */
|
|
15
|
+
renderEntry?: TimelineRenderEntry;
|
|
16
|
+
/** Date formatter shared with the orchestrator. */
|
|
17
|
+
formatDate: (iso: string) => string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Level-3 "master-detail" timeline layout (DMNC-878).
|
|
21
|
+
*
|
|
22
|
+
* A split view: a navigable timeline rail (left) plus a detail pane (right)
|
|
23
|
+
* that renders the selected entry in full. Switching entries swaps the detail
|
|
24
|
+
* pane without remounting the rail, so rail scroll position is preserved.
|
|
25
|
+
*
|
|
26
|
+
* Selection is owned by the orchestrator (controlled/uncontrolled via
|
|
27
|
+
* `useSelection`), so the open entry is deep-linkable by consumers. The rail
|
|
28
|
+
* uses navigation semantics (`aria-current`), arrow keys walk entries, and
|
|
29
|
+
* focus moves into the pane on open and back to the rail on close — without a
|
|
30
|
+
* focus trap, so both panes stay reachable.
|
|
31
|
+
*/
|
|
32
|
+
export declare const MasterDetailLayout: React.FC<MasterDetailLayoutProps>;
|
|
@@ -12,9 +12,12 @@ export interface TimelineContainerProps extends React.HTMLAttributes<HTMLDivElem
|
|
|
12
12
|
* - "feed": paginated vertical list with collapsed-by-default entries that
|
|
13
13
|
* expand on selection. Renders a DOS-style "LOAD MORE..." button while
|
|
14
14
|
* more entries are available. No zoom controls.
|
|
15
|
+
* - "master-detail": level-3 split view — a navigable timeline rail plus a
|
|
16
|
+
* detail pane that renders the selected entry in full (DMNC-878). The open
|
|
17
|
+
* entry is the `selectedEntryId`, so it is deep-linkable. No zoom controls.
|
|
15
18
|
* @default 'interactive'
|
|
16
19
|
*/
|
|
17
|
-
mode?: 'interactive' | 'static' | 'feed';
|
|
20
|
+
mode?: 'interactive' | 'static' | 'feed' | 'master-detail';
|
|
18
21
|
/**
|
|
19
22
|
* Controlled zoom level — overrides internal state when provided.
|
|
20
23
|
* Use with `onZoomChange` for full control. Disables drill-down navigation.
|