eidotter 0.17.2 → 0.19.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 (39) hide show
  1. package/LICENSE.md +41 -1
  2. package/README.md +20 -7
  3. package/dist/components/Alert/components/Alert.d.ts +1 -1
  4. package/dist/components/Badge/components/Badge.d.ts +2 -2
  5. package/dist/components/Button/components/Button.d.ts +6 -1
  6. package/dist/components/Card/components/Card.d.ts +1 -1
  7. package/dist/components/Chat/components/ChatContainer.d.ts +0 -1
  8. package/dist/components/Checkbox/components/Checkbox.d.ts +1 -1
  9. package/dist/components/FilterBar/components/FilterBar.d.ts +1 -1
  10. package/dist/components/Header/components/Header.d.ts +24 -0
  11. package/dist/components/Header/components/index.d.ts +2 -0
  12. package/dist/components/Header/index.d.ts +2 -0
  13. package/dist/components/Icon/components/Icon.d.ts +18 -7
  14. package/dist/components/Modal/components/Modal.d.ts +5 -7
  15. package/dist/components/Progress/components/Progress.d.ts +2 -2
  16. package/dist/components/Stat/components/Stat.d.ts +2 -2
  17. package/dist/components/Switch/components/Switch.d.ts +3 -1
  18. package/dist/components/Tabs/components/Tabs.d.ts +9 -3
  19. package/dist/components/Tag/components/Tag.d.ts +1 -1
  20. package/dist/components/Terminal/components/Terminal.d.ts +2 -4
  21. package/dist/components/TextScramble/components/TextScramble.d.ts +1 -1
  22. package/dist/components/TimelineNode/components/TimelineNode.d.ts +4 -4
  23. package/dist/eidotter.css +1 -1
  24. package/dist/index.d.ts +6 -2
  25. package/dist/index.es.js +3539 -3374
  26. package/dist/index.umd.js +6 -6
  27. package/guidelines/README.md +8 -4
  28. package/guidelines/components.md +40 -1
  29. package/package.json +7 -3
  30. package/src/styles/fonts/Flexi_IBM_VGA_LICENSE.txt +428 -0
  31. package/src/styles/fonts/Flexi_IBM_VGA_True.ttf +0 -0
  32. package/src/styles/fonts.css +17 -0
  33. package/src/styles/theme.amber-mono.css +34 -24
  34. package/src/styles/theme.cga-amber.css +41 -31
  35. package/src/styles/theme.cga-mode4-p0.css +44 -34
  36. package/src/styles/theme.cga-mode4-p1.css +52 -42
  37. package/src/styles/theme.cga-mode5.css +53 -43
  38. package/src/styles/tokens.css +37 -27
  39. package/tailwind.preset.cjs +32 -18
package/LICENSE.md CHANGED
@@ -64,4 +64,44 @@ For the avoidance of doubt, Section 5(b) does not affect any right the Licensor
64
64
 
65
65
  ---
66
66
 
67
- For more information about the license, visit: https://creativecommons.org/licenses/by-nc/4.0/
67
+ For more information about the license, visit: https://creativecommons.org/licenses/by-nc/4.0/
68
+
69
+ ---
70
+
71
+ # Third-Party Licenses
72
+
73
+ eidotter bundles the following third-party software into its distributed package. Each third-party component retains its original license, reproduced below in full as required by that license.
74
+
75
+ ## pixelarticons
76
+
77
+ [pixelarticons](https://github.com/halfmage/pixelarticons) — authentic DOS pixel art icons. Bundled into `dist/index.es.js` and `dist/index.umd.js` via `src/components/Icon/components/Icon.tsx`.
78
+
79
+ ```
80
+ MIT License
81
+
82
+ Copyright (c) 2019 Gerrit Halfmann
83
+
84
+ Permission is hereby granted, free of charge, to any person obtaining a copy
85
+ of this software and associated documentation files (the "Software"), to deal
86
+ in the Software without restriction, including without limitation the rights
87
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
88
+ copies of the Software, and to permit persons to whom the Software is
89
+ furnished to do so, subject to the following conditions:
90
+
91
+ The above copyright notice and this permission notice shall be included in all
92
+ copies or substantial portions of the Software.
93
+
94
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
95
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
96
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
97
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
98
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
99
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
100
+ SOFTWARE.
101
+ ```
102
+
103
+ ## Flexi IBM VGA True
104
+
105
+ Flexi IBM VGA True v2 — bitmap-style remake of the IBM VGA BIOS font by VileR (int10h.org). Bundled as `src/styles/fonts/Flexi_IBM_VGA_True.ttf` and loaded via `src/styles/fonts.css`.
106
+
107
+ Licensed under [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/). Full license text and attribution notice: `src/styles/fonts/Flexi_IBM_VGA_LICENSE.txt`.
package/README.md CHANGED
@@ -12,6 +12,7 @@ npm install eidotter
12
12
 
13
13
  ```tsx
14
14
  import { Terminal, Button, Alert } from 'eidotter';
15
+ import 'eidotter/fonts.css'; // Flexi IBM VGA True @font-face (required)
15
16
  import 'eidotter/styles'; // Component CSS (includes Tailwind utilities)
16
17
  import 'eidotter/tokens.css'; // Design token CSS variables (required)
17
18
 
@@ -31,16 +32,19 @@ function App() {
31
32
 
32
33
  ### Basic (no Tailwind needed)
33
34
 
34
- Import the styles and tokens. All component styling is pre-compiled — no build tools required.
35
+ Import the styles, tokens, and font. All component styling is pre-compiled — no build tools required.
35
36
 
36
37
  ```tsx
37
- import 'eidotter/styles'; // Component CSS
38
+ import 'eidotter/fonts.css'; // Flexi IBM VGA True @font-face (required)
39
+ import 'eidotter/styles'; // Component CSS (includes Tailwind utilities)
38
40
  import 'eidotter/tokens.css'; // CSS variable definitions
39
41
 
40
42
  // Optional: import a theme
41
43
  import 'eidotter/themes/amber-mono.css';
42
44
  ```
43
45
 
46
+ **Font:** eiDotter uses [Flexi IBM VGA True v2](https://int10h.org/blog/2018/05/flexi-ibm-vga-scalable-truetype-font/) — an aspect-corrected vector remake of the IBM VGA BIOS font (CC BY-SA 4.0). The "True" variant matches authentic 4:3 VGA proportions with an extended character set (Greek, Cyrillic, Hebrew, Latin). The `fonts.css` import loads the bundled TTF via `@font-face`. No fallback fonts are configured so you'll immediately see if the font isn't loading.
47
+
44
48
  ### With Tailwind CSS
45
49
 
46
50
  Use eidotter's design tokens as Tailwind utility classes in your own code.
@@ -70,7 +74,7 @@ For React Aria state variants and animations, use the enhanced preset:
70
74
  presets: [require('eidotter/tailwind.preset.enhanced')],
71
75
  ```
72
76
 
73
- ## Available Components (v0.17.1)
77
+ ## Available Components (33)
74
78
 
75
79
  | Component | Description |
76
80
  |-----------|-------------|
@@ -88,7 +92,8 @@ presets: [require('eidotter/tailwind.preset.enhanced')],
88
92
  | CommandPrompt | Interactive command-line input with blinking cursor |
89
93
  | FilterBar | Multi-select toggle group for faceted filtering |
90
94
  | Footer | Site footer with legal links (Impressum + Datenschutz) |
91
- | Icon | SVG icons backed by @untitledui/icons |
95
+ | Header | Sticky site header composing branding + Nav — retro/modern variants |
96
+ | Icon | SVG icons backed by pixelarticons (MIT) — authentic DOS pixel art |
92
97
  | InlineExpand | Inline disclosure widget for expanding text within prose |
93
98
  | Input | Text input with DOS styling and error variant |
94
99
  | Modal | Dialog overlay with title bar and close button |
@@ -109,6 +114,14 @@ presets: [require('eidotter/tailwind.preset.enhanced')],
109
114
 
110
115
  ## Component Examples
111
116
 
117
+ ### Header
118
+
119
+ ```tsx
120
+ <Header brandName="DMNC.TECH" items={navItems} variant="retro">
121
+ {/* or use children for custom branding */}
122
+ </Header>
123
+ ```
124
+
112
125
  ### Terminal
113
126
 
114
127
  ```tsx
@@ -209,11 +222,11 @@ Available themes: `amber-mono`, `cga-amber`, `cga-mode4-p0`, `cga-mode4-p1`, `cg
209
222
 
210
223
  **Semantic Colors:** `dos-bg-primary`, `dos-bg-secondary`, `dos-text-primary`, `dos-text-accent`, `dos-border-default`, `dos-border-focus`, `dos-success`, `dos-warning`, `dos-error`, `dos-info`
211
224
 
212
- **Typography:** `font-dos`, `text-dos-xs` through `text-dos-4xl`, `leading-dos-tight/normal/loose`
225
+ **Typography:** `font-dos` (Flexi IBM VGA True v2), `text-dos-text-xs` through `text-dos-display-2xl`, `leading-dos-text-xs` through `leading-dos-display-2xl`
213
226
 
214
- **Spacing:** `dos-0` through `dos-16` (4px grid)
227
+ **Spacing:** 4px grid via design tokens
215
228
 
216
- **Border Radius:** `rounded-dos-none` (0), `rounded-dos-sm` (2px), `rounded-dos-base` (4px max)
229
+ **Border Radius:** `rounded-dos-sm` (2px), `rounded-dos-base` (4px max)
217
230
 
218
231
  ## Development
219
232
 
@@ -35,4 +35,4 @@ export interface AlertProps {
35
35
  *
36
36
  * Backward-compatible with `type` and `onClickHere` props from pre-V.37.
37
37
  */
38
- export declare const Alert: React.FC<AlertProps>;
38
+ export declare const Alert: React.ForwardRefExoticComponent<AlertProps & React.RefAttributes<HTMLDivElement>>;
@@ -3,7 +3,7 @@ import './Badge.css';
3
3
  export interface BadgeProps {
4
4
  /** The variant determines the badge's color scheme */
5
5
  variant?: 'default' | 'success' | 'warning' | 'error' | 'info' | 'accent' | 'brand' | 'gray' | 'blue' | 'indigo' | 'purple' | 'pink' | 'orange';
6
- /** The size of the badge */
6
+ /** Size variant. Use sm/md/lg — small/medium are @deprecated aliases. */
7
7
  size?: 'sm' | 'md' | 'lg' | 'small' | 'medium';
8
8
  /** Show a dot indicator before the text */
9
9
  dot?: boolean;
@@ -18,4 +18,4 @@ export interface BadgeProps {
18
18
  * DOS-styled Badge for status indicators, labels, and counts.
19
19
  * Pure presentational — no React Aria needed.
20
20
  */
21
- export declare const Badge: React.FC<BadgeProps>;
21
+ export declare const Badge: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<HTMLSpanElement>>;
@@ -1,17 +1,22 @@
1
1
  import React from 'react';
2
+ import { type PressEvent } from 'react-aria-components';
2
3
  import '../../../styles/keyframes.css';
3
4
  import './Button.css';
4
5
  export interface ButtonProps {
5
6
  variant?: 'primary' | 'secondary' | 'tertiary' | 'destructive' | 'ghost' | 'link';
7
+ /** Size variant. Use xs/sm/md/lg/xl — small/medium/large are @deprecated aliases. */
6
8
  size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'small' | 'medium' | 'large';
7
9
  type?: 'button' | 'submit' | 'reset';
8
10
  disabled?: boolean;
9
11
  loading?: boolean;
10
12
  children: React.ReactNode;
13
+ /** Press handler — receives React Aria PressEvent with pointer type info */
14
+ onPress?: (e: PressEvent) => void;
15
+ /** @deprecated Use `onPress` instead. onClick receives a minimal synthetic event that lacks most MouseEvent properties. */
11
16
  onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;
12
17
  className?: string;
13
18
  'aria-label'?: string;
14
19
  fullWidth?: boolean;
15
20
  iconOnly?: boolean;
16
21
  }
17
- export declare const Button: React.FC<ButtonProps>;
22
+ export declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
@@ -22,4 +22,4 @@ export interface CardProps {
22
22
  */
23
23
  className?: string;
24
24
  }
25
- export declare const Card: React.FC<CardProps>;
25
+ export declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttributes<HTMLDivElement>>;
@@ -1,5 +1,4 @@
1
1
  import React from 'react';
2
- import './ChatContainer.css';
3
2
  import { ChatMessageEntry } from './ChatHistory';
4
3
  export interface ChatContainerProps {
5
4
  /** Array of messages to display */
@@ -29,4 +29,4 @@ export interface CheckboxProps {
29
29
  * DOS-styled Checkbox with bracket text indicator [ ] / [X].
30
30
  * Built on React Aria for accessible keyboard/focus handling.
31
31
  */
32
- export declare const Checkbox: React.FC<CheckboxProps>;
32
+ export declare const Checkbox: React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<HTMLLabelElement>>;
@@ -28,7 +28,7 @@ export interface FilterBarProps {
28
28
  showAll?: boolean;
29
29
  /** Label for the "All" toggle. Default: 'All' */
30
30
  allLabel?: string;
31
- /** The size of the filter bar */
31
+ /** Size variant. Use sm/md/lg — small/medium/large are @deprecated aliases. */
32
32
  size?: 'sm' | 'md' | 'lg' | 'small' | 'medium' | 'large';
33
33
  /**
34
34
  * Callback when selection changes.
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ import type { NavItem, NavProps } from '../../Nav';
3
+ import './Header.css';
4
+ export interface HeaderProps extends React.HTMLAttributes<HTMLElement> {
5
+ /** Site brand name displayed in the header */
6
+ brandName?: string;
7
+ /** Href for the brand link (default: "/") */
8
+ brandHref?: string;
9
+ /** Navigation items passed through to Nav */
10
+ items: NavItem[];
11
+ /** Currently active href (highlights matching nav link) */
12
+ activeHref?: string;
13
+ /** Visual variant applied to both header and nav */
14
+ variant?: 'retro' | 'modern';
15
+ /** Whether the header sticks to viewport top */
16
+ sticky?: boolean;
17
+ /** Custom link component for framework routing (Next.js Link, React Router Link, etc.) */
18
+ linkComponent?: NavProps['linkComponent'];
19
+ /** Custom branding content — replaces brandName when provided */
20
+ children?: React.ReactNode;
21
+ /** Additional CSS class name */
22
+ className?: string;
23
+ }
24
+ export declare const Header: React.ForwardRefExoticComponent<HeaderProps & React.RefAttributes<HTMLElement>>;
@@ -0,0 +1,2 @@
1
+ export { Header } from './Header';
2
+ export type { HeaderProps } from './Header';
@@ -0,0 +1,2 @@
1
+ export { Header } from './components';
2
+ export type { HeaderProps } from './components';
@@ -1,10 +1,20 @@
1
- import { FC } from 'react';
1
+ import React, { FC } from 'react';
2
2
  import './Icon.css';
3
- type UTIIcon = FC<{
4
- size?: number;
5
- className?: string;
6
- }>;
7
- declare const ICON_MAP: Record<string, UTIIcon>;
3
+ type PixelIcon = FC<React.SVGProps<SVGSVGElement>>;
4
+ declare const ICON_MAP: {
5
+ Info: (props: React.SVGProps<SVGSVGElement>) => JSX.Element;
6
+ Warning: (props: React.SVGProps<SVGSVGElement>) => JSX.Element;
7
+ Error: (props: React.SVGProps<SVGSVGElement>) => JSX.Element;
8
+ Done: (props: React.SVGProps<SVGSVGElement>) => JSX.Element;
9
+ Check: (props: React.SVGProps<SVGSVGElement>) => JSX.Element;
10
+ Close: PixelIcon;
11
+ 'Chevron Up': (props: React.SVGProps<SVGSVGElement>) => JSX.Element;
12
+ 'Chevron Down': (props: React.SVGProps<SVGSVGElement>) => JSX.Element;
13
+ App: (props: React.SVGProps<SVGSVGElement>) => JSX.Element;
14
+ Cancel: (props: React.SVGProps<SVGSVGElement>) => JSX.Element;
15
+ Fullscreen: (props: React.SVGProps<SVGSVGElement>) => JSX.Element;
16
+ Add: (props: React.SVGProps<SVGSVGElement>) => JSX.Element;
17
+ };
8
18
  export type IconName = keyof typeof ICON_MAP;
9
19
  export type IconSize = 'L' | 'S';
10
20
  export interface IconProps {
@@ -24,8 +34,9 @@ export interface IconProps {
24
34
  'aria-label'?: string;
25
35
  }
26
36
  /**
27
- * Icon component backed by @untitledui/icons.
37
+ * Icon component backed by pixelarticons (MIT licensed).
28
38
  * Renders inline SVG with proper viewBox scaling at any size.
39
+ * The DOS pixel aesthetic matches eidotter's design language.
29
40
  */
30
41
  export declare const Icon: FC<IconProps>;
31
42
  export {};
@@ -3,13 +3,10 @@ import './Modal.css';
3
3
  export interface ModalProps {
4
4
  /** Whether the modal is open */
5
5
  isOpen: boolean;
6
- /** Called when modal should close (escape, backdrop, close button) */
7
- onClose: () => void;
8
- /**
9
- * Called when the modal's open state changes.
10
- * Enables agents to observe state transitions.
11
- */
6
+ /** Called when the modal's open state changes (React Aria convention) */
12
7
  onOpenChange?: (isOpen: boolean) => void;
8
+ /** @deprecated Use `onOpenChange` instead. Called when modal should close. */
9
+ onClose?: () => void;
13
10
  /** Modal title (required for accessibility) */
14
11
  title: string;
15
12
  /** Modal body content */
@@ -23,5 +20,6 @@ export interface ModalProps {
23
20
  * DOS-styled Modal with React Aria Dialog.
24
21
  * React Aria provides focus trapping, scroll lock, backdrop dismiss, and escape handling.
25
22
  * CRT phosphor enter/exit animations via isEntering/isExiting render props.
23
+ * Ref forwards to the inner AriaDialog element (not the overlay).
26
24
  */
27
- export declare const Modal: React.FC<ModalProps>;
25
+ export declare const Modal: React.ForwardRefExoticComponent<ModalProps & React.RefAttributes<HTMLElement>>;
@@ -9,7 +9,7 @@ export interface ProgressProps {
9
9
  indeterminate?: boolean;
10
10
  /** Visual variant */
11
11
  variant?: 'default' | 'success' | 'warning' | 'error';
12
- /** Size of the progress bar */
12
+ /** Size variant. Use sm/md/lg — small/medium/large are @deprecated aliases. */
13
13
  size?: 'sm' | 'md' | 'lg' | 'small' | 'medium' | 'large';
14
14
  /** Track display style */
15
15
  trackStyle?: 'block' | 'bordered' | 'gradient';
@@ -32,4 +32,4 @@ export interface ProgressProps {
32
32
  * DOS-styled Progress bar with block characters, phosphor glow, and track styles.
33
33
  * Pure presentational — no React Aria needed.
34
34
  */
35
- export declare const Progress: React.FC<ProgressProps>;
35
+ export declare const Progress: React.ForwardRefExoticComponent<ProgressProps & React.RefAttributes<HTMLDivElement>>;
@@ -9,7 +9,7 @@ export interface StatProps {
9
9
  trend?: 'up' | 'down' | 'neutral';
10
10
  /** Optional trend value (e.g., "+5%", "-12") */
11
11
  trendValue?: string;
12
- /** Size variant */
12
+ /** Size variant. Use sm/md/lg — small/medium/large are @deprecated aliases. */
13
13
  size?: 'sm' | 'md' | 'lg' | 'small' | 'medium' | 'large';
14
14
  /** Whether to animate value changes with a text scramble effect */
15
15
  scramble?: boolean;
@@ -20,4 +20,4 @@ export interface StatProps {
20
20
  * DOS-styled Stat component for displaying metrics with optional trends.
21
21
  * Pure presentational — no React Aria needed.
22
22
  */
23
- export declare const Stat: React.FC<StatProps>;
23
+ export declare const Stat: React.ForwardRefExoticComponent<StatProps & React.RefAttributes<HTMLDivElement>>;
@@ -6,6 +6,8 @@ export interface SwitchProps {
6
6
  /** Default state (uncontrolled) */
7
7
  defaultChecked?: boolean;
8
8
  /** Callback when state changes */
9
+ onChange?: (checked: boolean) => void;
10
+ /** @deprecated Use `onChange` instead */
9
11
  onCheckedChange?: (checked: boolean) => void;
10
12
  /** Whether the switch is disabled */
11
13
  disabled?: boolean;
@@ -28,4 +30,4 @@ export interface SwitchProps {
28
30
  * DOS-styled Switch with phosphor glow toggle effect.
29
31
  * Built on React Aria for accessible toggle behavior.
30
32
  */
31
- export declare const Switch: React.FC<SwitchProps>;
33
+ export declare const Switch: React.ForwardRefExoticComponent<SwitchProps & React.RefAttributes<HTMLLabelElement>>;
@@ -13,13 +13,19 @@ export interface TabsProps {
13
13
  tabs: TabItem[];
14
14
  /** The variant determines the tab styling */
15
15
  variant?: 'underline' | 'pills';
16
- /** The size of the tabs */
16
+ /** Size variant. Use sm/md/lg — small/medium/large are @deprecated aliases. */
17
17
  size?: 'sm' | 'md' | 'lg' | 'small' | 'medium' | 'large';
18
18
  /** Currently active tab ID (controlled mode) */
19
19
  activeTab?: string;
20
20
  /** Default active tab ID (uncontrolled mode) */
21
21
  defaultActiveTab?: string;
22
- /** Callback when active tab changes */
22
+ /**
23
+ * Callback when active tab changes. Receives new and previous tab IDs.
24
+ * Note: differs from React Aria's native onSelectionChange(key: Key) — this
25
+ * wraps it with eidotter's two-arg signature for backward compatibility.
26
+ */
27
+ onSelectionChange?: (tabId: string, previousTabId: string) => void;
28
+ /** @deprecated Use `onSelectionChange` instead */
23
29
  onTabChange?: (tabId: string, previousTabId: string) => void;
24
30
  /** Optional CSS class name */
25
31
  className?: string;
@@ -30,4 +36,4 @@ export interface TabsProps {
30
36
  * DOS-styled Tabs with React Aria keyboard navigation and phosphor indicator.
31
37
  * React Aria handles arrow keys, Home, End, roving tabindex, and ARIA roles.
32
38
  */
33
- export declare const Tabs: React.FC<TabsProps>;
39
+ export declare const Tabs: React.ForwardRefExoticComponent<TabsProps & React.RefAttributes<HTMLDivElement>>;
@@ -5,7 +5,7 @@ export interface TagProps {
5
5
  children: React.ReactNode;
6
6
  /** Visual variant */
7
7
  variant?: 'default' | 'outlined' | 'filled';
8
- /** Size */
8
+ /** Size variant. Use sm/md/lg — small/medium are @deprecated aliases. */
9
9
  size?: 'sm' | 'md' | 'lg' | 'small' | 'medium';
10
10
  /** CGA color token for border and text */
11
11
  color?: string;
@@ -2,10 +2,8 @@ import React from 'react';
2
2
  import '../../../styles/keyframes.css';
3
3
  import './Terminal.css';
4
4
  export interface TerminalProps {
5
- /**
6
- * The size variant of the terminal window
7
- */
8
- size?: 'small' | 'medium' | 'large';
5
+ /** Size variant. Use sm/md/lg — small/medium/large are @deprecated aliases. */
6
+ size?: 'sm' | 'md' | 'lg' | 'small' | 'medium' | 'large';
9
7
  /**
10
8
  * The title displayed in the terminal title bar
11
9
  */
@@ -10,4 +10,4 @@ export interface TextScrambleProps extends Omit<React.HTMLAttributes<HTMLSpanEle
10
10
  /** Milliseconds before scramble starts (default: 0) */
11
11
  delay?: number;
12
12
  }
13
- export declare const TextScramble: React.FC<TextScrambleProps>;
13
+ export declare const TextScramble: React.ForwardRefExoticComponent<TextScrambleProps & React.RefAttributes<HTMLSpanElement>>;
@@ -28,10 +28,10 @@ export interface TimelineNodeProps {
28
28
  */
29
29
  labelPosition?: 'left' | 'right' | 'top' | 'bottom';
30
30
  /**
31
- * Size of the node
32
- * @default 'medium'
31
+ * Size variant. Use sm/md/lg — small/medium/large are @deprecated aliases.
32
+ * @default 'md'
33
33
  */
34
- size?: 'small' | 'medium' | 'large';
34
+ size?: 'sm' | 'md' | 'lg' | 'small' | 'medium' | 'large';
35
35
  /**
36
36
  * Additional CSS class name
37
37
  */
@@ -49,4 +49,4 @@ export interface TimelineNodeProps {
49
49
  *
50
50
  * Uses DOS/CGA aesthetic with amber phosphor glow effects.
51
51
  */
52
- export declare const TimelineNode: React.FC<TimelineNodeProps>;
52
+ export declare const TimelineNode: React.ForwardRefExoticComponent<TimelineNodeProps & React.RefAttributes<HTMLDivElement>>;