eidotter 0.3.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 (61) hide show
  1. package/LICENSE.md +67 -0
  2. package/README.md +234 -0
  3. package/dist/components/Accordion/components/AccordionFill.d.ts +10 -0
  4. package/dist/components/Accordion/components/Section.d.ts +29 -0
  5. package/dist/components/Accordion/components/index.d.ts +2 -0
  6. package/dist/components/Accordion/index.d.ts +1 -0
  7. package/dist/components/Alert/components/Alert.d.ts +33 -0
  8. package/dist/components/Alert/components/index.d.ts +1 -0
  9. package/dist/components/Alert/index.d.ts +1 -0
  10. package/dist/components/Badge/components/Badge.d.ts +39 -0
  11. package/dist/components/Badge/components/index.d.ts +2 -0
  12. package/dist/components/Badge/index.d.ts +2 -0
  13. package/dist/components/Breadcrumb/components/Breadcrumb.d.ts +55 -0
  14. package/dist/components/Breadcrumb/components/index.d.ts +2 -0
  15. package/dist/components/Breadcrumb/index.d.ts +2 -0
  16. package/dist/components/Button/components/Button.d.ts +56 -0
  17. package/dist/components/Button/components/index.d.ts +2 -0
  18. package/dist/components/Button/index.d.ts +2 -0
  19. package/dist/components/Card/components/Card.d.ts +25 -0
  20. package/dist/components/Card/components/index.d.ts +2 -0
  21. package/dist/components/Card/index.d.ts +2 -0
  22. package/dist/components/Checkbox/components/Checkbox.d.ts +41 -0
  23. package/dist/components/Checkbox/components/index.d.ts +2 -0
  24. package/dist/components/Checkbox/index.d.ts +2 -0
  25. package/dist/components/CommandPrompt/components/CommandPrompt.d.ts +40 -0
  26. package/dist/components/CommandPrompt/components/index.d.ts +1 -0
  27. package/dist/components/CommandPrompt/index.d.ts +1 -0
  28. package/dist/components/Icon/components/Icon.d.ts +41 -0
  29. package/dist/components/Icon/components/index.d.ts +1 -0
  30. package/dist/components/Icon/index.d.ts +1 -0
  31. package/dist/components/Input/components/Input.d.ts +22 -0
  32. package/dist/components/Input/components/index.d.ts +1 -0
  33. package/dist/components/Input/index.d.ts +1 -0
  34. package/dist/components/Modal/components/Modal.d.ts +29 -0
  35. package/dist/components/Modal/components/index.d.ts +2 -0
  36. package/dist/components/Modal/index.d.ts +2 -0
  37. package/dist/components/Progress/components/Progress.d.ts +33 -0
  38. package/dist/components/Progress/components/index.d.ts +2 -0
  39. package/dist/components/Progress/index.d.ts +2 -0
  40. package/dist/components/RetroEffects/components/RetroEffects.d.ts +35 -0
  41. package/dist/components/RetroEffects/components/index.d.ts +2 -0
  42. package/dist/components/RetroEffects/index.d.ts +2 -0
  43. package/dist/components/Switch/components/Switch.d.ts +51 -0
  44. package/dist/components/Switch/components/index.d.ts +2 -0
  45. package/dist/components/Switch/index.d.ts +2 -0
  46. package/dist/components/Tabs/components/Tabs.d.ts +62 -0
  47. package/dist/components/Tabs/components/index.d.ts +2 -0
  48. package/dist/components/Tabs/index.d.ts +2 -0
  49. package/dist/components/Terminal/components/Terminal.d.ts +61 -0
  50. package/dist/components/Terminal/components/index.d.ts +1 -0
  51. package/dist/components/Terminal/index.d.ts +1 -0
  52. package/dist/components/TimelineNode/components/TimelineNode.d.ts +52 -0
  53. package/dist/components/TimelineNode/components/index.d.ts +2 -0
  54. package/dist/components/TimelineNode/index.d.ts +2 -0
  55. package/dist/index.d.ts +34 -0
  56. package/dist/index.es.js +1395 -0
  57. package/dist/index.umd.js +37 -0
  58. package/dist/style.css +1 -0
  59. package/package.json +106 -0
  60. package/src/styles/tokens.css +92 -0
  61. package/tailwind.preset.cjs +124 -0
@@ -0,0 +1,40 @@
1
+ import React from 'react';
2
+ import './CommandPrompt.css';
3
+ export interface CommandPromptProps {
4
+ /**
5
+ * The prompt string displayed before cursor
6
+ * @default "C:\>"
7
+ */
8
+ prompt?: string;
9
+ /**
10
+ * Called when user presses Enter with command text
11
+ */
12
+ onCommand: (command: string) => void;
13
+ /**
14
+ * Auto-focus the input on mount
15
+ */
16
+ autoFocus?: boolean;
17
+ /**
18
+ * Optional class name
19
+ */
20
+ className?: string;
21
+ /**
22
+ * Placeholder text when input is empty
23
+ */
24
+ placeholder?: string;
25
+ /**
26
+ * Whether the command prompt is disabled
27
+ */
28
+ disabled?: boolean;
29
+ }
30
+ /**
31
+ * DOS-styled CommandPrompt component with authentic terminal aesthetics
32
+ *
33
+ * Features:
34
+ * - Configurable prompt string (e.g., "C:\>", "$")
35
+ * - Enter key triggers onCommand callback
36
+ * - Blinking cursor for DOS feel
37
+ * - Auto-focus support
38
+ * - WCAG 2.1 AA compliant
39
+ */
40
+ export declare const CommandPrompt: React.FC<CommandPromptProps>;
@@ -0,0 +1 @@
1
+ export * from './CommandPrompt';
@@ -0,0 +1 @@
1
+ export * from './components';
@@ -0,0 +1,41 @@
1
+ import { FC } from 'react';
2
+ import './Icon.css';
3
+ import manifest from '../../../assets/icons/manifest.json';
4
+ export type IconName = keyof typeof manifest;
5
+ export type IconSize = 'L' | 'S';
6
+ export interface IconProps {
7
+ /**
8
+ * The name of the icon to display
9
+ */
10
+ name: IconName;
11
+ /**
12
+ * Size of the icon
13
+ * @default 'L'
14
+ */
15
+ size?: IconSize;
16
+ /**
17
+ * Optional CSS class name
18
+ */
19
+ className?: string;
20
+ /**
21
+ * Optional click handler
22
+ */
23
+ onClick?: () => void;
24
+ /**
25
+ * Optional color override. If not provided, inherits from parent or uses system foreground color
26
+ */
27
+ color?: string;
28
+ /**
29
+ * Optional role for accessibility
30
+ */
31
+ role?: 'button';
32
+ }
33
+ /**
34
+ * Icon component that renders SVG icons from our spritesheet
35
+ * Usage:
36
+ * ```tsx
37
+ * <Icon name="Warning" size="base" />
38
+ * <Icon name="Close" size={24} color="var(--color-system-link-default)" />
39
+ * ```
40
+ */
41
+ export declare const Icon: FC<IconProps>;
@@ -0,0 +1 @@
1
+ export { Icon } from './Icon';
@@ -0,0 +1 @@
1
+ export * from './components';
@@ -0,0 +1,22 @@
1
+ import React from 'react';
2
+ import './Input.css';
3
+ export interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'> {
4
+ /**
5
+ * Visual variant for validation states
6
+ */
7
+ variant?: 'default' | 'error';
8
+ /**
9
+ * Optional class name
10
+ */
11
+ className?: string;
12
+ }
13
+ /**
14
+ * DOS-styled Input component with authentic terminal aesthetics
15
+ *
16
+ * Features:
17
+ * - Extends native HTML input attributes
18
+ * - Error variant for validation states
19
+ * - DOS-authentic styling with CGA colors
20
+ * - WCAG 2.1 AA compliant focus states
21
+ */
22
+ export declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
@@ -0,0 +1 @@
1
+ export * from './Input';
@@ -0,0 +1 @@
1
+ export * from './components';
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+ import './Modal.css';
3
+ export interface ModalProps {
4
+ /**
5
+ * Whether the modal is open
6
+ */
7
+ isOpen: boolean;
8
+ /**
9
+ * Called when modal should close (escape, backdrop, close button)
10
+ */
11
+ onClose: () => void;
12
+ /**
13
+ * Modal title (required for accessibility)
14
+ */
15
+ title: string;
16
+ /**
17
+ * Modal body content
18
+ */
19
+ children: React.ReactNode;
20
+ /**
21
+ * Footer content, typically action buttons
22
+ */
23
+ footer?: React.ReactNode;
24
+ /**
25
+ * Optional CSS class name
26
+ */
27
+ className?: string;
28
+ }
29
+ export declare const Modal: React.FC<ModalProps>;
@@ -0,0 +1,2 @@
1
+ export { Modal } from './Modal';
2
+ export type { ModalProps } from './Modal';
@@ -0,0 +1,2 @@
1
+ export { Modal } from './components';
2
+ export type { ModalProps } from './components';
@@ -0,0 +1,33 @@
1
+ import React from 'react';
2
+ import './Progress.css';
3
+ export interface ProgressProps {
4
+ /**
5
+ * Progress value from 0 to 100
6
+ */
7
+ value: number;
8
+ /**
9
+ * Maximum value (default 100)
10
+ */
11
+ max?: number;
12
+ /**
13
+ * Visual variant
14
+ */
15
+ variant?: 'default' | 'success' | 'warning' | 'error';
16
+ /**
17
+ * Size of the progress bar
18
+ */
19
+ size?: 'small' | 'medium' | 'large';
20
+ /**
21
+ * Show percentage label
22
+ */
23
+ showLabel?: boolean;
24
+ /**
25
+ * Additional CSS class name
26
+ */
27
+ className?: string;
28
+ /**
29
+ * Accessible label for screen readers
30
+ */
31
+ 'aria-label'?: string;
32
+ }
33
+ export declare const Progress: React.FC<ProgressProps>;
@@ -0,0 +1,2 @@
1
+ export { Progress } from './Progress';
2
+ export type { ProgressProps } from './Progress';
@@ -0,0 +1,2 @@
1
+ export { Progress } from './components';
2
+ export type { ProgressProps } from './components';
@@ -0,0 +1,35 @@
1
+ import React from 'react';
2
+ import './RetroEffects.css';
3
+ export interface RetroEffectsProps {
4
+ /**
5
+ * Enable scanline overlay effect
6
+ */
7
+ scanlines?: boolean;
8
+ /**
9
+ * Enable glow vignette effect
10
+ */
11
+ glow?: boolean;
12
+ /**
13
+ * Enable CRT flicker effect
14
+ */
15
+ flicker?: boolean;
16
+ /**
17
+ * Intensity of the effects (0-1)
18
+ */
19
+ intensity?: number;
20
+ /**
21
+ * Additional CSS class name
22
+ */
23
+ className?: string;
24
+ }
25
+ /**
26
+ * CRT Monitor Effects component for authentic DOS terminal aesthetics
27
+ *
28
+ * Features:
29
+ * - Scanline overlay (horizontal lines)
30
+ * - Glow vignette (phosphor edge darkening)
31
+ * - Subtle CRT flicker animation
32
+ * - Configurable intensity
33
+ * - Respects reduced motion preferences
34
+ */
35
+ export declare const RetroEffects: React.FC<RetroEffectsProps>;
@@ -0,0 +1,2 @@
1
+ export { RetroEffects } from './RetroEffects';
2
+ export type { RetroEffectsProps } from './RetroEffects';
@@ -0,0 +1,2 @@
1
+ export { RetroEffects } from './components';
2
+ export type { RetroEffectsProps } from './components';
@@ -0,0 +1,51 @@
1
+ import React from 'react';
2
+ import './Switch.css';
3
+ export interface SwitchProps {
4
+ /**
5
+ * Whether the switch is checked
6
+ */
7
+ checked?: boolean;
8
+ /**
9
+ * Default checked state (uncontrolled)
10
+ */
11
+ defaultChecked?: boolean;
12
+ /**
13
+ * Callback when the switch state changes
14
+ */
15
+ onCheckedChange?: (checked: boolean) => void;
16
+ /**
17
+ * Whether the switch is disabled
18
+ */
19
+ disabled?: boolean;
20
+ /**
21
+ * Name for form submission
22
+ */
23
+ name?: string;
24
+ /**
25
+ * Value for form submission
26
+ */
27
+ value?: string;
28
+ /**
29
+ * Additional CSS class name
30
+ */
31
+ className?: string;
32
+ /**
33
+ * Accessible label for screen readers
34
+ */
35
+ 'aria-label'?: string;
36
+ /**
37
+ * ID of element that labels this switch
38
+ */
39
+ 'aria-labelledby'?: string;
40
+ }
41
+ /**
42
+ * DOS-styled Switch component with authentic terminal aesthetics
43
+ *
44
+ * Features:
45
+ * - Controlled and uncontrolled modes
46
+ * - Disabled state
47
+ * - Full keyboard accessibility
48
+ * - WCAG 2.1 AA compliant
49
+ * - DOS-authentic styling with CGA colors
50
+ */
51
+ export declare const Switch: React.FC<SwitchProps>;
@@ -0,0 +1,2 @@
1
+ export { Switch } from './Switch';
2
+ export type { SwitchProps } from './Switch';
@@ -0,0 +1,2 @@
1
+ export { Switch } from './components';
2
+ export type { SwitchProps } from './components';
@@ -0,0 +1,62 @@
1
+ import React from 'react';
2
+ import './Tabs.css';
3
+ export interface TabItem {
4
+ /**
5
+ * Unique identifier for the tab
6
+ */
7
+ id: string;
8
+ /**
9
+ * Display label for the tab
10
+ */
11
+ label: string;
12
+ /**
13
+ * Whether the tab is disabled
14
+ */
15
+ disabled?: boolean;
16
+ }
17
+ export interface TabsProps {
18
+ /**
19
+ * Array of tab items to display
20
+ */
21
+ tabs: TabItem[];
22
+ /**
23
+ * The variant determines the tab styling
24
+ */
25
+ variant?: 'underline' | 'pills';
26
+ /**
27
+ * The size of the tabs
28
+ */
29
+ size?: 'small' | 'medium' | 'large';
30
+ /**
31
+ * Currently active tab ID (controlled mode)
32
+ */
33
+ activeTab?: string;
34
+ /**
35
+ * Default active tab ID (uncontrolled mode)
36
+ */
37
+ defaultActiveTab?: string;
38
+ /**
39
+ * Callback when tab changes
40
+ */
41
+ onTabChange?: (tabId: string) => void;
42
+ /**
43
+ * Optional CSS class name
44
+ */
45
+ className?: string;
46
+ /**
47
+ * Accessible label for the tab list
48
+ */
49
+ 'aria-label'?: string;
50
+ }
51
+ /**
52
+ * DOS-styled Tabs component for navigation and content switching
53
+ *
54
+ * Features:
55
+ * - Two variants: underline (minimal) and pills (contained)
56
+ * - Three sizes (small, medium, large)
57
+ * - Controlled and uncontrolled modes
58
+ * - Full keyboard navigation (Arrow keys, Home, End)
59
+ * - DOS-authentic styling with CGA colors
60
+ * - WCAG 2.1 AA compliant
61
+ */
62
+ export declare const Tabs: React.FC<TabsProps>;
@@ -0,0 +1,2 @@
1
+ export { Tabs } from './Tabs';
2
+ export type { TabsProps, TabItem } from './Tabs';
@@ -0,0 +1,2 @@
1
+ export { Tabs } from './components';
2
+ export type { TabsProps, TabItem } from './components';
@@ -0,0 +1,61 @@
1
+ import React from 'react';
2
+ import './Terminal.css';
3
+ export interface TerminalProps {
4
+ /**
5
+ * The size variant of the terminal window
6
+ */
7
+ size?: 'small' | 'medium' | 'large';
8
+ /**
9
+ * The title displayed in the terminal title bar
10
+ */
11
+ title?: string;
12
+ /**
13
+ * The initial state of the terminal window
14
+ */
15
+ state?: 'active' | 'inactive' | 'minimized';
16
+ /**
17
+ * Whether the terminal window can be resized
18
+ */
19
+ resizable?: boolean;
20
+ /**
21
+ * Whether the terminal window can be minimized
22
+ */
23
+ minimizable?: boolean;
24
+ /**
25
+ * Whether the terminal window can be maximized
26
+ */
27
+ maximizable?: boolean;
28
+ /**
29
+ * Whether the terminal window can be closed
30
+ */
31
+ closeable?: boolean;
32
+ /**
33
+ * The content to display inside the terminal
34
+ */
35
+ children?: React.ReactNode;
36
+ /**
37
+ * Callback when the terminal is minimized
38
+ */
39
+ onMinimize?: () => void;
40
+ /**
41
+ * Callback when the terminal is maximized
42
+ */
43
+ onMaximize?: () => void;
44
+ /**
45
+ * Callback when the terminal is closed
46
+ */
47
+ onClose?: () => void;
48
+ /**
49
+ * Callback when the terminal gains focus
50
+ */
51
+ onFocus?: () => void;
52
+ /**
53
+ * Optional CSS class name
54
+ */
55
+ className?: string;
56
+ /**
57
+ * Whether the terminal should auto-focus on mount
58
+ */
59
+ autoFocus?: boolean;
60
+ }
61
+ export declare const Terminal: React.FC<TerminalProps>;
@@ -0,0 +1 @@
1
+ export * from './Terminal';
@@ -0,0 +1 @@
1
+ export * from './components';
@@ -0,0 +1,52 @@
1
+ import React from 'react';
2
+ import './TimelineNode.css';
3
+ export type TimelineNodeShape = 'circle' | 'square' | 'diamond';
4
+ export type TimelineNodeVariant = 'default' | 'primary' | 'secondary' | 'accent';
5
+ export interface TimelineNodeProps {
6
+ /**
7
+ * Shape of the node marker
8
+ * @default 'circle'
9
+ */
10
+ shape?: TimelineNodeShape;
11
+ /**
12
+ * Visual variant of the node
13
+ * @default 'default'
14
+ */
15
+ variant?: TimelineNodeVariant;
16
+ /**
17
+ * Whether this node is in active/selected state
18
+ * @default false
19
+ */
20
+ isActive?: boolean;
21
+ /**
22
+ * Optional label to display next to the node (e.g., date, time)
23
+ */
24
+ label?: string;
25
+ /**
26
+ * Position of the label relative to the node
27
+ * @default 'left'
28
+ */
29
+ labelPosition?: 'left' | 'right' | 'top' | 'bottom';
30
+ /**
31
+ * Size of the node
32
+ * @default 'medium'
33
+ */
34
+ size?: 'small' | 'medium' | 'large';
35
+ /**
36
+ * Additional CSS class name
37
+ */
38
+ className?: string;
39
+ /**
40
+ * Click handler for interactive nodes
41
+ */
42
+ onClick?: () => void;
43
+ }
44
+ /**
45
+ * TimelineNode - Axis marker for timeline/stepper interfaces
46
+ *
47
+ * A versatile node component for timelines, steppers, and progress indicators.
48
+ * Features multiple shapes, glow effects on hover/active states, and optional labels.
49
+ *
50
+ * Uses DOS/CGA aesthetic with amber phosphor glow effects.
51
+ */
52
+ export declare const TimelineNode: React.FC<TimelineNodeProps>;
@@ -0,0 +1,2 @@
1
+ export { TimelineNode } from './TimelineNode';
2
+ export type { TimelineNodeProps, TimelineNodeShape, TimelineNodeVariant } from './TimelineNode';
@@ -0,0 +1,2 @@
1
+ export { TimelineNode } from './components';
2
+ export type { TimelineNodeProps, TimelineNodeShape, TimelineNodeVariant } from './components';
@@ -0,0 +1,34 @@
1
+ export { Alert } from './components/Alert';
2
+ export { Section, AccordionFill } from './components/Accordion';
3
+ export { Button } from './components/Button';
4
+ export { Card } from './components/Card';
5
+ export { Checkbox } from './components/Checkbox';
6
+ export { CommandPrompt } from './components/CommandPrompt';
7
+ export { Progress } from './components/Progress';
8
+ export { Icon } from './components/Icon';
9
+ export { Input } from './components/Input';
10
+ export { Terminal } from './components/Terminal';
11
+ export { Tabs } from './components/Tabs';
12
+ export { Badge } from './components/Badge';
13
+ export { Switch } from './components/Switch';
14
+ export { Breadcrumb } from './components/Breadcrumb';
15
+ export { RetroEffects } from './components/RetroEffects';
16
+ export { TimelineNode } from './components/TimelineNode';
17
+ export { Modal } from './components/Modal';
18
+ export type { AlertProps } from './components/Alert';
19
+ export type { SectionProps, AccordionFillProps } from './components/Accordion';
20
+ export type { ButtonProps } from './components/Button';
21
+ export type { CardProps } from './components/Card';
22
+ export type { CheckboxProps } from './components/Checkbox';
23
+ export type { CommandPromptProps } from './components/CommandPrompt';
24
+ export type { ProgressProps } from './components/Progress';
25
+ export type { InputProps } from './components/Input';
26
+ export type { TerminalProps } from './components/Terminal';
27
+ export type { TabsProps, TabItem } from './components/Tabs';
28
+ export type { BadgeProps } from './components/Badge';
29
+ export type { SwitchProps } from './components/Switch';
30
+ export type { BreadcrumbProps, BreadcrumbItem } from './components/Breadcrumb';
31
+ export type { RetroEffectsProps } from './components/RetroEffects';
32
+ export type { TimelineNodeProps, TimelineNodeShape, TimelineNodeVariant } from './components/TimelineNode';
33
+ export type { ModalProps } from './components/Modal';
34
+ export declare const version = "0.3.0";