zard-cli 1.0.0-beta.99 → 1.0.1
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/README.md +98 -36
- package/commands/add/component-installer.d.ts +3 -0
- package/commands/add/component-installer.d.ts.map +1 -1
- package/commands/add/component-installer.js +31 -8
- package/commands/add/component-installer.js.map +1 -1
- package/commands/add/component-selector.d.ts +6 -0
- package/commands/add/component-selector.d.ts.map +1 -1
- package/commands/add/component-selector.js +9 -27
- package/commands/add/component-selector.js.map +1 -1
- package/commands/add/dark-mode-setup.d.ts +2 -0
- package/commands/add/dark-mode-setup.d.ts.map +1 -1
- package/commands/add/dark-mode-setup.js +16 -11
- package/commands/add/dark-mode-setup.js.map +1 -1
- package/commands/add/dependency-resolver.d.ts +8 -1
- package/commands/add/dependency-resolver.d.ts.map +1 -1
- package/commands/add/dependency-resolver.js +87 -16
- package/commands/add/dependency-resolver.js.map +1 -1
- package/commands/add/index.d.ts.map +1 -1
- package/commands/add/index.js +142 -96
- package/commands/add/index.js.map +1 -1
- package/commands/add/stylesheet-setup.d.ts +3 -0
- package/commands/add/stylesheet-setup.d.ts.map +1 -0
- package/commands/add/stylesheet-setup.js +92 -0
- package/commands/add/stylesheet-setup.js.map +1 -0
- package/commands/add/wizard.d.ts +35 -0
- package/commands/add/wizard.d.ts.map +1 -0
- package/commands/add/wizard.js +299 -0
- package/commands/add/wizard.js.map +1 -0
- package/commands/init/config-prompter.d.ts +65 -3
- package/commands/init/config-prompter.d.ts.map +1 -1
- package/commands/init/config-prompter.js +93 -74
- package/commands/init/config-prompter.js.map +1 -1
- package/commands/init/dependencies.d.ts +1 -8
- package/commands/init/dependencies.d.ts.map +1 -1
- package/commands/init/dependencies.js +54 -24
- package/commands/init/dependencies.js.map +1 -1
- package/commands/init/index.d.ts.map +1 -1
- package/commands/init/index.js +175 -81
- package/commands/init/index.js.map +1 -1
- package/commands/init/library-peers.d.ts +28 -0
- package/commands/init/library-peers.d.ts.map +1 -0
- package/commands/init/library-peers.js +61 -0
- package/commands/init/library-peers.js.map +1 -0
- package/commands/init/project-kind.d.ts +82 -0
- package/commands/init/project-kind.d.ts.map +1 -0
- package/commands/init/project-kind.js +166 -0
- package/commands/init/project-kind.js.map +1 -0
- package/commands/init/steps.d.ts +15 -0
- package/commands/init/steps.d.ts.map +1 -0
- package/commands/init/steps.js +188 -0
- package/commands/init/steps.js.map +1 -0
- package/commands/init/tailwind-setup.d.ts +9 -2
- package/commands/init/tailwind-setup.d.ts.map +1 -1
- package/commands/init/tailwind-setup.js +47 -12
- package/commands/init/tailwind-setup.js.map +1 -1
- package/commands/init/tsconfig-updater.d.ts +8 -1
- package/commands/init/tsconfig-updater.d.ts.map +1 -1
- package/commands/init/tsconfig-updater.js +30 -11
- package/commands/init/tsconfig-updater.js.map +1 -1
- package/commands/init/update-angular-config.d.ts.map +1 -1
- package/commands/init/update-angular-config.js +28 -50
- package/commands/init/update-angular-config.js.map +1 -1
- package/commands/init/vite-setup.d.ts +11 -0
- package/commands/init/vite-setup.d.ts.map +1 -0
- package/commands/init/vite-setup.js +61 -0
- package/commands/init/vite-setup.js.map +1 -0
- package/commands/init/wizard.d.ts +33 -0
- package/commands/init/wizard.d.ts.map +1 -0
- package/commands/init/wizard.js +561 -0
- package/commands/init/wizard.js.map +1 -0
- package/constants/app.constants.d.ts +17 -0
- package/constants/app.constants.d.ts.map +1 -1
- package/constants/app.constants.js +39 -16
- package/constants/app.constants.js.map +1 -1
- package/core/icons/families.d.ts +38 -0
- package/core/icons/families.d.ts.map +1 -0
- package/core/icons/families.js +26 -0
- package/core/icons/families.js.map +1 -0
- package/core/icons/icon-map.d.ts +24 -0
- package/core/icons/icon-map.d.ts.map +1 -0
- package/core/icons/icon-map.js +141 -0
- package/core/icons/icon-map.js.map +1 -0
- package/core/icons/index.d.ts +107 -0
- package/core/icons/index.d.ts.map +1 -0
- package/core/icons/index.js +183 -0
- package/core/icons/index.js.map +1 -0
- package/core/registry/registry-data.d.ts.map +1 -1
- package/core/registry/registry-data.js +498 -36
- package/core/registry/registry-data.js.map +1 -1
- package/core/themes/theme-definitions.d.ts.map +1 -1
- package/core/themes/theme-definitions.js +61 -72
- package/core/themes/theme-definitions.js.map +1 -1
- package/index.js +6 -3
- package/index.js.map +1 -1
- package/package.json +6 -11
- package/ui/blocks.d.ts +71 -0
- package/ui/blocks.d.ts.map +1 -0
- package/ui/blocks.js +116 -0
- package/ui/blocks.js.map +1 -0
- package/ui/brand.d.ts +14 -0
- package/ui/brand.d.ts.map +1 -0
- package/ui/brand.js +35 -0
- package/ui/brand.js.map +1 -0
- package/ui/engine/animation/index.d.ts +38 -0
- package/ui/engine/animation/index.d.ts.map +1 -0
- package/ui/engine/animation/index.js +102 -0
- package/ui/engine/animation/index.js.map +1 -0
- package/ui/engine/ansi/index.d.ts +51 -0
- package/ui/engine/ansi/index.d.ts.map +1 -0
- package/ui/engine/ansi/index.js +116 -0
- package/ui/engine/ansi/index.js.map +1 -0
- package/ui/engine/components/index.d.ts +211 -0
- package/ui/engine/components/index.d.ts.map +1 -0
- package/ui/engine/components/index.js +109 -0
- package/ui/engine/components/index.js.map +1 -0
- package/ui/engine/cursor/index.d.ts +16 -0
- package/ui/engine/cursor/index.d.ts.map +1 -0
- package/ui/engine/cursor/index.js +40 -0
- package/ui/engine/cursor/index.js.map +1 -0
- package/ui/engine/diff/index.d.ts +26 -0
- package/ui/engine/diff/index.d.ts.map +1 -0
- package/ui/engine/diff/index.js +56 -0
- package/ui/engine/diff/index.js.map +1 -0
- package/ui/engine/events/index.d.ts +24 -0
- package/ui/engine/events/index.d.ts.map +1 -0
- package/ui/engine/events/index.js +60 -0
- package/ui/engine/events/index.js.map +1 -0
- package/ui/engine/focus/index.d.ts +25 -0
- package/ui/engine/focus/index.d.ts.map +1 -0
- package/ui/engine/focus/index.js +77 -0
- package/ui/engine/focus/index.js.map +1 -0
- package/ui/engine/frame/index.d.ts +48 -0
- package/ui/engine/frame/index.d.ts.map +1 -0
- package/ui/engine/frame/index.js +0 -0
- package/ui/engine/frame/index.js.map +1 -0
- package/ui/engine/index.d.ts +28 -0
- package/ui/engine/index.d.ts.map +1 -0
- package/ui/engine/index.js +28 -0
- package/ui/engine/index.js.map +1 -0
- package/ui/engine/input/index.d.ts +36 -0
- package/ui/engine/input/index.d.ts.map +1 -0
- package/ui/engine/input/index.js +224 -0
- package/ui/engine/input/index.js.map +1 -0
- package/ui/engine/layout/index.d.ts +42 -0
- package/ui/engine/layout/index.d.ts.map +1 -0
- package/ui/engine/layout/index.js +241 -0
- package/ui/engine/layout/index.js.map +1 -0
- package/ui/engine/renderer/index.d.ts +43 -0
- package/ui/engine/renderer/index.d.ts.map +1 -0
- package/ui/engine/renderer/index.js +619 -0
- package/ui/engine/renderer/index.js.map +1 -0
- package/ui/engine/scheduler/index.d.ts +22 -0
- package/ui/engine/scheduler/index.d.ts.map +1 -0
- package/ui/engine/scheduler/index.js +77 -0
- package/ui/engine/scheduler/index.js.map +1 -0
- package/ui/engine/screen/index.d.ts +39 -0
- package/ui/engine/screen/index.d.ts.map +1 -0
- package/ui/engine/screen/index.js +255 -0
- package/ui/engine/screen/index.js.map +1 -0
- package/ui/engine/terminal/index.d.ts +84 -0
- package/ui/engine/terminal/index.d.ts.map +1 -0
- package/ui/engine/terminal/index.js +235 -0
- package/ui/engine/terminal/index.js.map +1 -0
- package/ui/engine/testing/index.d.ts +27 -0
- package/ui/engine/testing/index.d.ts.map +1 -0
- package/ui/engine/testing/index.js +63 -0
- package/ui/engine/testing/index.js.map +1 -0
- package/ui/engine/theme/index.d.ts +26 -0
- package/ui/engine/theme/index.d.ts.map +1 -0
- package/ui/engine/theme/index.js +128 -0
- package/ui/engine/theme/index.js.map +1 -0
- package/ui/engine/utils/index.d.ts +12 -0
- package/ui/engine/utils/index.d.ts.map +1 -0
- package/ui/engine/utils/index.js +143 -0
- package/ui/engine/utils/index.js.map +1 -0
- package/ui/gate.d.ts +19 -0
- package/ui/gate.d.ts.map +1 -0
- package/ui/gate.js +36 -0
- package/ui/gate.js.map +1 -0
- package/ui/index.d.ts +18 -0
- package/ui/index.d.ts.map +1 -0
- package/ui/index.js +18 -0
- package/ui/index.js.map +1 -0
- package/ui/log-sink.d.ts +24 -0
- package/ui/log-sink.d.ts.map +1 -0
- package/ui/log-sink.js +35 -0
- package/ui/log-sink.js.map +1 -0
- package/ui/output.d.ts +14 -0
- package/ui/output.d.ts.map +1 -0
- package/ui/output.js +28 -0
- package/ui/output.js.map +1 -0
- package/ui/report.d.ts +30 -0
- package/ui/report.d.ts.map +1 -0
- package/ui/report.js +45 -0
- package/ui/report.js.map +1 -0
- package/ui/runner.d.ts +66 -0
- package/ui/runner.d.ts.map +1 -0
- package/ui/runner.js +135 -0
- package/ui/runner.js.map +1 -0
- package/ui/style.d.ts +24 -0
- package/ui/style.d.ts.map +1 -0
- package/ui/style.js +44 -0
- package/ui/style.js.map +1 -0
- package/ui/testing/fake-tty.d.ts +26 -0
- package/ui/testing/fake-tty.d.ts.map +1 -0
- package/ui/testing/fake-tty.js +61 -0
- package/ui/testing/fake-tty.js.map +1 -0
- package/ui/text-input.d.ts +31 -0
- package/ui/text-input.d.ts.map +1 -0
- package/ui/text-input.js +89 -0
- package/ui/text-input.js.map +1 -0
- package/ui/theme.d.ts +10 -0
- package/ui/theme.d.ts.map +1 -0
- package/ui/theme.js +20 -0
- package/ui/theme.js.map +1 -0
- package/utils/angular-compat.d.ts +21 -0
- package/utils/angular-compat.d.ts.map +1 -0
- package/utils/angular-compat.js +52 -0
- package/utils/angular-compat.js.map +1 -0
- package/utils/config.d.ts +29 -0
- package/utils/config.d.ts.map +1 -1
- package/utils/config.js +50 -4
- package/utils/config.js.map +1 -1
- package/utils/errors.d.ts +11 -0
- package/utils/errors.d.ts.map +1 -1
- package/utils/errors.js +14 -0
- package/utils/errors.js.map +1 -1
- package/utils/get-project-info.d.ts +29 -0
- package/utils/get-project-info.d.ts.map +1 -1
- package/utils/get-project-info.js +246 -1
- package/utils/get-project-info.js.map +1 -1
- package/utils/http-client.d.ts.map +1 -1
- package/utils/http-client.js +18 -3
- package/utils/http-client.js.map +1 -1
- package/utils/icon-catalog.d.ts +34 -0
- package/utils/icon-catalog.d.ts.map +1 -0
- package/utils/icon-catalog.js +63 -0
- package/utils/icon-catalog.js.map +1 -0
- package/utils/logger.d.ts +13 -1
- package/utils/logger.d.ts.map +1 -1
- package/utils/logger.js +95 -15
- package/utils/logger.js.map +1 -1
- package/utils/package-manager.d.ts +42 -1
- package/utils/package-manager.d.ts.map +1 -1
- package/utils/package-manager.js +204 -11
- package/utils/package-manager.js.map +1 -1
- package/utils/registry.d.ts +106 -2
- package/utils/registry.d.ts.map +1 -1
- package/utils/registry.js +155 -21
- package/utils/registry.js.map +1 -1
- package/utils/schema-version.d.ts +21 -0
- package/utils/schema-version.d.ts.map +1 -0
- package/utils/schema-version.js +28 -0
- package/utils/schema-version.js.map +1 -0
- package/utils/source-file.d.ts +40 -0
- package/utils/source-file.d.ts.map +1 -0
- package/utils/source-file.js +104 -0
- package/utils/source-file.js.map +1 -0
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* components — pure factories returning an immutable `Node` (declarative
|
|
3
|
+
* immediate mode, ADR-0002). No JSX, no classes, no hidden state. Painting each
|
|
4
|
+
* type lives in the renderer.
|
|
5
|
+
*/
|
|
6
|
+
import type { Attr } from '../ansi/index.js';
|
|
7
|
+
import type { ColorRef } from '../frame/index.js';
|
|
8
|
+
import type { LayoutProps } from '../layout/index.js';
|
|
9
|
+
export interface Node {
|
|
10
|
+
readonly type: string;
|
|
11
|
+
readonly props: Readonly<Record<string, unknown>>;
|
|
12
|
+
readonly children: readonly Node[];
|
|
13
|
+
readonly key?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface TextStyle {
|
|
16
|
+
readonly color?: ColorRef;
|
|
17
|
+
readonly background?: ColorRef;
|
|
18
|
+
readonly attrs?: Attr;
|
|
19
|
+
readonly bold?: boolean;
|
|
20
|
+
readonly dim?: boolean;
|
|
21
|
+
readonly italic?: boolean;
|
|
22
|
+
readonly underline?: boolean;
|
|
23
|
+
readonly inverse?: boolean;
|
|
24
|
+
readonly wrap?: boolean;
|
|
25
|
+
readonly align?: 'left' | 'center' | 'right';
|
|
26
|
+
}
|
|
27
|
+
export type BorderStyle = 'none' | 'single' | 'double' | 'round' | 'bold' | 'ascii';
|
|
28
|
+
export interface BoxProps extends LayoutProps {
|
|
29
|
+
readonly border?: BorderStyle;
|
|
30
|
+
readonly borderColor?: ColorRef;
|
|
31
|
+
readonly title?: string;
|
|
32
|
+
readonly background?: ColorRef;
|
|
33
|
+
}
|
|
34
|
+
export interface PanelProps extends BoxProps {
|
|
35
|
+
readonly footer?: string;
|
|
36
|
+
}
|
|
37
|
+
export interface CardProps extends BoxProps {
|
|
38
|
+
readonly subtitle?: string;
|
|
39
|
+
}
|
|
40
|
+
export interface SeparatorProps {
|
|
41
|
+
readonly orientation?: 'horizontal' | 'vertical';
|
|
42
|
+
readonly char?: string;
|
|
43
|
+
readonly color?: ColorRef;
|
|
44
|
+
readonly label?: string;
|
|
45
|
+
}
|
|
46
|
+
export interface HeaderProps {
|
|
47
|
+
readonly title: string;
|
|
48
|
+
readonly subtitle?: string;
|
|
49
|
+
readonly badge?: string;
|
|
50
|
+
readonly align?: 'left' | 'center' | 'right';
|
|
51
|
+
}
|
|
52
|
+
export interface FooterProps {
|
|
53
|
+
readonly items: readonly string[];
|
|
54
|
+
readonly color?: ColorRef;
|
|
55
|
+
}
|
|
56
|
+
export interface EmptyStateProps {
|
|
57
|
+
readonly icon?: string;
|
|
58
|
+
readonly title: string;
|
|
59
|
+
readonly description?: string;
|
|
60
|
+
readonly hint?: string;
|
|
61
|
+
}
|
|
62
|
+
export interface BannerProps {
|
|
63
|
+
readonly lines: readonly string[];
|
|
64
|
+
readonly colors?: readonly string[];
|
|
65
|
+
readonly align?: 'left' | 'center';
|
|
66
|
+
}
|
|
67
|
+
export interface GradientTextProps {
|
|
68
|
+
readonly content: string;
|
|
69
|
+
readonly colors?: readonly string[];
|
|
70
|
+
readonly align?: 'left' | 'center' | 'right';
|
|
71
|
+
readonly bold?: boolean;
|
|
72
|
+
}
|
|
73
|
+
export interface SpinnerProps {
|
|
74
|
+
readonly variant?: 'dots' | 'line' | 'arc' | 'bounce';
|
|
75
|
+
readonly label?: string;
|
|
76
|
+
readonly color?: ColorRef;
|
|
77
|
+
readonly frame?: number;
|
|
78
|
+
readonly glyph?: string;
|
|
79
|
+
readonly key?: string;
|
|
80
|
+
}
|
|
81
|
+
export interface ProgressProps {
|
|
82
|
+
readonly value: number;
|
|
83
|
+
readonly width?: number;
|
|
84
|
+
readonly label?: string;
|
|
85
|
+
readonly showPercent?: boolean;
|
|
86
|
+
readonly color?: ColorRef;
|
|
87
|
+
}
|
|
88
|
+
export type StatusKind = 'ok' | 'warn' | 'error' | 'info' | 'pending';
|
|
89
|
+
export interface BadgeProps {
|
|
90
|
+
readonly text: string;
|
|
91
|
+
readonly kind?: StatusKind;
|
|
92
|
+
readonly color?: ColorRef;
|
|
93
|
+
}
|
|
94
|
+
export interface StatusProps {
|
|
95
|
+
readonly kind: StatusKind;
|
|
96
|
+
readonly label: string;
|
|
97
|
+
}
|
|
98
|
+
export interface LogEntry {
|
|
99
|
+
readonly level?: 'debug' | 'info' | 'warn' | 'error';
|
|
100
|
+
readonly text: string;
|
|
101
|
+
}
|
|
102
|
+
export interface LogsProps {
|
|
103
|
+
readonly source: readonly LogEntry[] | readonly string[];
|
|
104
|
+
readonly max?: number;
|
|
105
|
+
readonly follow?: boolean;
|
|
106
|
+
}
|
|
107
|
+
export interface TreeNodeData {
|
|
108
|
+
readonly label: string;
|
|
109
|
+
readonly children?: readonly TreeNodeData[];
|
|
110
|
+
readonly expanded?: boolean;
|
|
111
|
+
}
|
|
112
|
+
export interface TreeProps {
|
|
113
|
+
readonly root: TreeNodeData;
|
|
114
|
+
readonly indent?: number;
|
|
115
|
+
}
|
|
116
|
+
export interface TableColumn {
|
|
117
|
+
readonly header: string;
|
|
118
|
+
readonly width?: number;
|
|
119
|
+
readonly align?: 'left' | 'center' | 'right';
|
|
120
|
+
}
|
|
121
|
+
export interface TableProps {
|
|
122
|
+
readonly columns: readonly TableColumn[];
|
|
123
|
+
readonly rows: readonly (readonly string[])[];
|
|
124
|
+
readonly border?: BorderStyle;
|
|
125
|
+
}
|
|
126
|
+
export interface ListProps {
|
|
127
|
+
readonly items: readonly string[];
|
|
128
|
+
readonly bullet?: string;
|
|
129
|
+
readonly ordered?: boolean;
|
|
130
|
+
}
|
|
131
|
+
export interface InputProps {
|
|
132
|
+
readonly key: string;
|
|
133
|
+
readonly value: string;
|
|
134
|
+
readonly placeholder?: string;
|
|
135
|
+
readonly label?: string;
|
|
136
|
+
readonly onChange?: (value: string) => void;
|
|
137
|
+
readonly onSubmit?: (value: string) => void;
|
|
138
|
+
}
|
|
139
|
+
export interface PasswordProps extends InputProps {
|
|
140
|
+
readonly mask?: string;
|
|
141
|
+
}
|
|
142
|
+
export interface SelectOption {
|
|
143
|
+
readonly label: string;
|
|
144
|
+
readonly value: string;
|
|
145
|
+
readonly disabled?: boolean;
|
|
146
|
+
}
|
|
147
|
+
export interface SelectProps {
|
|
148
|
+
readonly key: string;
|
|
149
|
+
readonly options: readonly SelectOption[];
|
|
150
|
+
readonly value?: string;
|
|
151
|
+
readonly label?: string;
|
|
152
|
+
readonly onChange?: (value: string) => void;
|
|
153
|
+
}
|
|
154
|
+
export interface ConfirmProps {
|
|
155
|
+
readonly key: string;
|
|
156
|
+
readonly message: string;
|
|
157
|
+
readonly value?: boolean;
|
|
158
|
+
readonly onChange?: (value: boolean) => void;
|
|
159
|
+
}
|
|
160
|
+
export interface CheckboxProps {
|
|
161
|
+
readonly key: string;
|
|
162
|
+
readonly label: string;
|
|
163
|
+
readonly checked: boolean;
|
|
164
|
+
readonly onChange?: (checked: boolean) => void;
|
|
165
|
+
}
|
|
166
|
+
export interface TextareaProps {
|
|
167
|
+
readonly key: string;
|
|
168
|
+
readonly value: string;
|
|
169
|
+
readonly rows?: number;
|
|
170
|
+
readonly placeholder?: string;
|
|
171
|
+
readonly onChange?: (value: string) => void;
|
|
172
|
+
}
|
|
173
|
+
export declare function text(content: string, style?: TextStyle): Node;
|
|
174
|
+
export declare function box(props?: BoxProps, ...children: Node[]): Node;
|
|
175
|
+
export declare function panel(props?: PanelProps, ...children: Node[]): Node;
|
|
176
|
+
export declare function card(props?: CardProps, ...children: Node[]): Node;
|
|
177
|
+
export declare function separator(props?: SeparatorProps): Node;
|
|
178
|
+
export declare function header(props: HeaderProps): Node;
|
|
179
|
+
export declare function footer(props: FooterProps): Node;
|
|
180
|
+
export declare function emptyState(props: EmptyStateProps): Node;
|
|
181
|
+
export declare function banner(props: BannerProps): Node;
|
|
182
|
+
export declare function gradientText(content: string, colors?: readonly string[], opts?: {
|
|
183
|
+
align?: 'left' | 'center' | 'right';
|
|
184
|
+
bold?: boolean;
|
|
185
|
+
}): Node;
|
|
186
|
+
export declare function stack(props?: LayoutProps, ...children: Node[]): Node;
|
|
187
|
+
export declare function row(props?: LayoutProps, ...children: Node[]): Node;
|
|
188
|
+
export declare function column(props?: LayoutProps, ...children: Node[]): Node;
|
|
189
|
+
export declare function center(props?: LayoutProps, ...children: Node[]): Node;
|
|
190
|
+
export declare function spacer(props?: {
|
|
191
|
+
readonly flexGrow?: number;
|
|
192
|
+
}): Node;
|
|
193
|
+
export declare function grid(props?: LayoutProps & {
|
|
194
|
+
readonly columns: number;
|
|
195
|
+
}, ...children: Node[]): Node;
|
|
196
|
+
export declare function spinner(props?: SpinnerProps): Node;
|
|
197
|
+
export declare function progressBar(props: ProgressProps): Node;
|
|
198
|
+
export declare function badge(props: BadgeProps): Node;
|
|
199
|
+
export declare function status(props: StatusProps): Node;
|
|
200
|
+
export declare function logs(props: LogsProps): Node;
|
|
201
|
+
export declare function tree(props: TreeProps): Node;
|
|
202
|
+
export declare function table(props: TableProps): Node;
|
|
203
|
+
export declare function list(props: ListProps): Node;
|
|
204
|
+
export declare function input(props: InputProps): Node;
|
|
205
|
+
export declare function password(props: PasswordProps): Node;
|
|
206
|
+
export declare function select(props: SelectProps): Node;
|
|
207
|
+
export declare function confirm(props: ConfirmProps): Node;
|
|
208
|
+
export declare function checkbox(props: CheckboxProps): Node;
|
|
209
|
+
export declare function textarea(props: TextareaProps): Node;
|
|
210
|
+
export declare function screen(...children: Node[]): Node;
|
|
211
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ui/engine/components/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* components — pure factories returning an immutable `Node` (declarative
|
|
3
|
+
* immediate mode, ADR-0002). No JSX, no classes, no hidden state. Painting each
|
|
4
|
+
* type lives in the renderer.
|
|
5
|
+
*/
|
|
6
|
+
function node(type, props = {}, children = [], key) {
|
|
7
|
+
const p = props;
|
|
8
|
+
return key === undefined ? { type, props: p, children } : { type, props: p, children, key };
|
|
9
|
+
}
|
|
10
|
+
// text and containers
|
|
11
|
+
export function text(content, style = {}) {
|
|
12
|
+
return node('text', { content, ...style });
|
|
13
|
+
}
|
|
14
|
+
export function box(props = {}, ...children) {
|
|
15
|
+
return node('box', props, children);
|
|
16
|
+
}
|
|
17
|
+
export function panel(props = {}, ...children) {
|
|
18
|
+
return node('panel', props, children);
|
|
19
|
+
}
|
|
20
|
+
export function card(props = {}, ...children) {
|
|
21
|
+
return node('card', props, children);
|
|
22
|
+
}
|
|
23
|
+
export function separator(props = {}) {
|
|
24
|
+
return node('separator', props);
|
|
25
|
+
}
|
|
26
|
+
export function header(props) {
|
|
27
|
+
return node('header', props);
|
|
28
|
+
}
|
|
29
|
+
export function footer(props) {
|
|
30
|
+
return node('footer', props);
|
|
31
|
+
}
|
|
32
|
+
export function emptyState(props) {
|
|
33
|
+
return node('emptyState', props);
|
|
34
|
+
}
|
|
35
|
+
export function banner(props) {
|
|
36
|
+
return node('banner', props);
|
|
37
|
+
}
|
|
38
|
+
export function gradientText(content, colors, opts = {}) {
|
|
39
|
+
return node('gradientText', { content, colors, ...opts });
|
|
40
|
+
}
|
|
41
|
+
// layout
|
|
42
|
+
export function stack(props = {}, ...children) {
|
|
43
|
+
return node('stack', props, children);
|
|
44
|
+
}
|
|
45
|
+
export function row(props = {}, ...children) {
|
|
46
|
+
return node('row', props, children);
|
|
47
|
+
}
|
|
48
|
+
export function column(props = {}, ...children) {
|
|
49
|
+
return node('column', props, children);
|
|
50
|
+
}
|
|
51
|
+
export function center(props = {}, ...children) {
|
|
52
|
+
return node('center', props, children);
|
|
53
|
+
}
|
|
54
|
+
export function spacer(props = {}) {
|
|
55
|
+
return node('spacer', props);
|
|
56
|
+
}
|
|
57
|
+
export function grid(props = { columns: 1 }, ...children) {
|
|
58
|
+
return node('grid', props, children);
|
|
59
|
+
}
|
|
60
|
+
// feedback / status
|
|
61
|
+
export function spinner(props = {}) {
|
|
62
|
+
return node('spinner', props, [], props.key);
|
|
63
|
+
}
|
|
64
|
+
export function progressBar(props) {
|
|
65
|
+
return node('progressBar', props);
|
|
66
|
+
}
|
|
67
|
+
export function badge(props) {
|
|
68
|
+
return node('badge', props);
|
|
69
|
+
}
|
|
70
|
+
export function status(props) {
|
|
71
|
+
return node('status', props);
|
|
72
|
+
}
|
|
73
|
+
export function logs(props) {
|
|
74
|
+
return node('logs', props);
|
|
75
|
+
}
|
|
76
|
+
// dados
|
|
77
|
+
export function tree(props) {
|
|
78
|
+
return node('tree', props);
|
|
79
|
+
}
|
|
80
|
+
export function table(props) {
|
|
81
|
+
return node('table', props);
|
|
82
|
+
}
|
|
83
|
+
export function list(props) {
|
|
84
|
+
return node('list', props);
|
|
85
|
+
}
|
|
86
|
+
// interativos
|
|
87
|
+
export function input(props) {
|
|
88
|
+
return node('input', props, [], props.key);
|
|
89
|
+
}
|
|
90
|
+
export function password(props) {
|
|
91
|
+
return node('password', props, [], props.key);
|
|
92
|
+
}
|
|
93
|
+
export function select(props) {
|
|
94
|
+
return node('select', props, [], props.key);
|
|
95
|
+
}
|
|
96
|
+
export function confirm(props) {
|
|
97
|
+
return node('confirm', props, [], props.key);
|
|
98
|
+
}
|
|
99
|
+
export function checkbox(props) {
|
|
100
|
+
return node('checkbox', props, [], props.key);
|
|
101
|
+
}
|
|
102
|
+
export function textarea(props) {
|
|
103
|
+
return node('textarea', props, [], props.key);
|
|
104
|
+
}
|
|
105
|
+
// raiz
|
|
106
|
+
export function screen(...children) {
|
|
107
|
+
return node('screen', {}, children);
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/engine/components/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* cursor — generates cursor positioning and visibility sequences.
|
|
3
|
+
* Pure functions returning bytes; `terminal` is what writes them.
|
|
4
|
+
*/
|
|
5
|
+
/** Cursor sequence factory. Coordinates are 0-based in the API, 1-based in CSI. */
|
|
6
|
+
export interface Cursor {
|
|
7
|
+
moveTo(x: number, y: number): string;
|
|
8
|
+
moveBy(dx: number, dy: number): string;
|
|
9
|
+
hide(): string;
|
|
10
|
+
show(): string;
|
|
11
|
+
save(): string;
|
|
12
|
+
restore(): string;
|
|
13
|
+
toColumnStart(): string;
|
|
14
|
+
}
|
|
15
|
+
export declare function createCursor(): Cursor;
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ui/engine/cursor/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,mFAAmF;AACnF,MAAM,WAAW,MAAM;IACrB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACvC,IAAI,IAAI,MAAM,CAAC;IACf,IAAI,IAAI,MAAM,CAAC;IACf,IAAI,IAAI,MAAM,CAAC;IACf,OAAO,IAAI,MAAM,CAAC;IAClB,aAAa,IAAI,MAAM,CAAC;CACzB;AAED,wBAAgB,YAAY,IAAI,MAAM,CA6BrC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* cursor — generates cursor positioning and visibility sequences.
|
|
3
|
+
* Pure functions returning bytes; `terminal` is what writes them.
|
|
4
|
+
*/
|
|
5
|
+
import { csi } from '../ansi/index.js';
|
|
6
|
+
export function createCursor() {
|
|
7
|
+
return {
|
|
8
|
+
moveTo(x, y) {
|
|
9
|
+
return csi(`${y + 1};${x + 1}H`);
|
|
10
|
+
},
|
|
11
|
+
moveBy(dx, dy) {
|
|
12
|
+
let out = '';
|
|
13
|
+
if (dy < 0)
|
|
14
|
+
out += csi(`${-dy}A`);
|
|
15
|
+
else if (dy > 0)
|
|
16
|
+
out += csi(`${dy}B`);
|
|
17
|
+
if (dx > 0)
|
|
18
|
+
out += csi(`${dx}C`);
|
|
19
|
+
else if (dx < 0)
|
|
20
|
+
out += csi(`${-dx}D`);
|
|
21
|
+
return out;
|
|
22
|
+
},
|
|
23
|
+
hide() {
|
|
24
|
+
return csi('?25l');
|
|
25
|
+
},
|
|
26
|
+
show() {
|
|
27
|
+
return csi('?25h');
|
|
28
|
+
},
|
|
29
|
+
save() {
|
|
30
|
+
return csi('s');
|
|
31
|
+
},
|
|
32
|
+
restore() {
|
|
33
|
+
return csi('u');
|
|
34
|
+
},
|
|
35
|
+
toColumnStart() {
|
|
36
|
+
return '\r';
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/engine/cursor/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAavC,MAAM,UAAU,YAAY;IAC1B,OAAO;QACL,MAAM,CAAC,CAAC,EAAE,CAAC;YACT,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,CAAC,EAAE,EAAE,EAAE;YACX,IAAI,GAAG,GAAG,EAAE,CAAC;YACb,IAAI,EAAE,GAAG,CAAC;gBAAE,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;iBAC7B,IAAI,EAAE,GAAG,CAAC;gBAAE,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACtC,IAAI,EAAE,GAAG,CAAC;gBAAE,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;iBAC5B,IAAI,EAAE,GAAG,CAAC;gBAAE,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;YACvC,OAAO,GAAG,CAAC;QACb,CAAC;QACD,IAAI;YACF,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC;QACrB,CAAC;QACD,IAAI;YACF,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC;QACrB,CAAC;QACD,IAAI;YACF,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;QACD,OAAO;YACL,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;QACD,aAAa;YACX,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* diff — compares two Frames and emits the MINIMAL set of changes, as runs
|
|
3
|
+
* (contiguous segments) per changed line. A pure function (ADR-0001).
|
|
4
|
+
*/
|
|
5
|
+
import type { Cell, Frame, Size } from '../frame/index.js';
|
|
6
|
+
export interface Run {
|
|
7
|
+
readonly x: number;
|
|
8
|
+
readonly cells: readonly Cell[];
|
|
9
|
+
}
|
|
10
|
+
export interface LinePatch {
|
|
11
|
+
readonly y: number;
|
|
12
|
+
readonly runs: readonly Run[];
|
|
13
|
+
}
|
|
14
|
+
export interface Patch {
|
|
15
|
+
readonly size: Size;
|
|
16
|
+
readonly lines: readonly LinePatch[];
|
|
17
|
+
readonly isEmpty: boolean;
|
|
18
|
+
}
|
|
19
|
+
export interface DifferOptions {
|
|
20
|
+
readonly minGap?: number;
|
|
21
|
+
}
|
|
22
|
+
export interface Differ {
|
|
23
|
+
diff(prev: Frame, next: Frame): Patch;
|
|
24
|
+
}
|
|
25
|
+
export declare function createDiffer(options?: DifferOptions): Differ;
|
|
26
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ui/engine/diff/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE3D,MAAM,WAAW,GAAG;IAClB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC;CACjC;AACD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,CAAC;CAC/B;AACD,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AACD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AACD,MAAM,WAAW,MAAM;IACrB,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK,CAAC;CACvC;AASD,wBAAgB,YAAY,CAAC,OAAO,GAAE,aAAkB,GAAG,MAAM,CA4ChE"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* diff — compares two Frames and emits the MINIMAL set of changes, as runs
|
|
3
|
+
* (contiguous segments) per changed line. A pure function (ADR-0001).
|
|
4
|
+
*/
|
|
5
|
+
function styleEquals(a, b) {
|
|
6
|
+
return a.fg === b.fg && a.bg === b.bg && a.attrs === b.attrs;
|
|
7
|
+
}
|
|
8
|
+
function cellEquals(a, b) {
|
|
9
|
+
return a.char === b.char && a.width === b.width && styleEquals(a.style, b.style);
|
|
10
|
+
}
|
|
11
|
+
export function createDiffer(options = {}) {
|
|
12
|
+
const minGap = Math.max(1, options.minGap ?? 3);
|
|
13
|
+
return {
|
|
14
|
+
diff(prev, next) {
|
|
15
|
+
const { cols, rows } = next.size;
|
|
16
|
+
const lines = [];
|
|
17
|
+
const sameSize = prev.size.cols === cols && prev.size.rows === rows;
|
|
18
|
+
for (let y = 0; y < rows; y++) {
|
|
19
|
+
// Skip O(1) por hash de linha (o retido tem hash em cache).
|
|
20
|
+
if (sameSize && prev.rowHash(y) === next.rowHash(y))
|
|
21
|
+
continue;
|
|
22
|
+
const a = prev.rowSlice(y);
|
|
23
|
+
const b = next.rowSlice(y);
|
|
24
|
+
const runs = [];
|
|
25
|
+
let x = 0;
|
|
26
|
+
while (x < cols) {
|
|
27
|
+
// skip over identical cells
|
|
28
|
+
while (x < cols && cellEquals(a[x], b[x]))
|
|
29
|
+
x++;
|
|
30
|
+
if (x >= cols)
|
|
31
|
+
break;
|
|
32
|
+
const start = x;
|
|
33
|
+
while (x < cols) {
|
|
34
|
+
if (cellEquals(a[x], b[x])) {
|
|
35
|
+
// coalescing: only end the run when the identical stretch is >= minGap
|
|
36
|
+
let k = x;
|
|
37
|
+
while (k < cols && cellEquals(a[k], b[k]))
|
|
38
|
+
k++;
|
|
39
|
+
if (k >= cols || k - x >= minGap)
|
|
40
|
+
break;
|
|
41
|
+
x = k; // fold the short identical stretch into the run
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
x++;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
runs.push({ x: start, cells: b.slice(start, x) });
|
|
48
|
+
}
|
|
49
|
+
if (runs.length)
|
|
50
|
+
lines.push({ y, runs });
|
|
51
|
+
}
|
|
52
|
+
return { size: next.size, lines, isEmpty: lines.length === 0 };
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/engine/diff/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* events — typed event primitives. The basis of input/focus/scheduler.
|
|
3
|
+
* No dependencies. No I/O.
|
|
4
|
+
*/
|
|
5
|
+
export interface Disposable {
|
|
6
|
+
dispose(): void;
|
|
7
|
+
}
|
|
8
|
+
export interface EventEmitter<T> {
|
|
9
|
+
on(listener: (payload: T) => void): Disposable;
|
|
10
|
+
once(listener: (payload: T) => void): Disposable;
|
|
11
|
+
emit(payload: T): void;
|
|
12
|
+
clear(): void;
|
|
13
|
+
readonly size: number;
|
|
14
|
+
}
|
|
15
|
+
export declare function createEmitter<T>(): EventEmitter<T>;
|
|
16
|
+
export interface Signal<T> {
|
|
17
|
+
get(): T;
|
|
18
|
+
set(value: T): void;
|
|
19
|
+
update(fn: (prev: T) => T): void;
|
|
20
|
+
subscribe(listener: (value: T) => void): Disposable;
|
|
21
|
+
}
|
|
22
|
+
export declare function signal<T>(initial: T): Signal<T>;
|
|
23
|
+
export declare function combine(...disposables: Disposable[]): Disposable;
|
|
24
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ui/engine/events/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,UAAU;IACzB,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,GAAG,UAAU,CAAC;IAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,GAAG,UAAU,CAAC;IACjD,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;IACvB,KAAK,IAAI,IAAI,CAAC;IACd,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,aAAa,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,CA0BlD;AAED,MAAM,WAAW,MAAM,CAAC,CAAC;IACvB,GAAG,IAAI,CAAC,CAAC;IACT,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IACjC,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,UAAU,CAAC;CACrD;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAiB/C;AAED,wBAAgB,OAAO,CAAC,GAAG,WAAW,EAAE,UAAU,EAAE,GAAG,UAAU,CAMhE"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* events — typed event primitives. The basis of input/focus/scheduler.
|
|
3
|
+
* No dependencies. No I/O.
|
|
4
|
+
*/
|
|
5
|
+
export function createEmitter() {
|
|
6
|
+
const listeners = new Set();
|
|
7
|
+
return {
|
|
8
|
+
on(listener) {
|
|
9
|
+
listeners.add(listener);
|
|
10
|
+
return { dispose: () => listeners.delete(listener) };
|
|
11
|
+
},
|
|
12
|
+
once(listener) {
|
|
13
|
+
const wrap = (payload) => {
|
|
14
|
+
listeners.delete(wrap);
|
|
15
|
+
listener(payload);
|
|
16
|
+
};
|
|
17
|
+
listeners.add(wrap);
|
|
18
|
+
return { dispose: () => listeners.delete(wrap) };
|
|
19
|
+
},
|
|
20
|
+
emit(payload) {
|
|
21
|
+
// iterate over a copy: listeners may remove themselves during the emit
|
|
22
|
+
for (const l of [...listeners])
|
|
23
|
+
l(payload);
|
|
24
|
+
},
|
|
25
|
+
clear() {
|
|
26
|
+
listeners.clear();
|
|
27
|
+
},
|
|
28
|
+
get size() {
|
|
29
|
+
return listeners.size;
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export function signal(initial) {
|
|
34
|
+
let value = initial;
|
|
35
|
+
const emitter = createEmitter();
|
|
36
|
+
return {
|
|
37
|
+
get: () => value,
|
|
38
|
+
set(next) {
|
|
39
|
+
if (Object.is(next, value))
|
|
40
|
+
return;
|
|
41
|
+
value = next;
|
|
42
|
+
emitter.emit(value);
|
|
43
|
+
},
|
|
44
|
+
update(fn) {
|
|
45
|
+
this.set(fn(value));
|
|
46
|
+
},
|
|
47
|
+
subscribe(listener) {
|
|
48
|
+
return emitter.on(listener);
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
export function combine(...disposables) {
|
|
53
|
+
return {
|
|
54
|
+
dispose() {
|
|
55
|
+
for (const d of disposables)
|
|
56
|
+
d.dispose();
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/engine/events/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,MAAM,UAAU,aAAa;IAC3B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAwB,CAAC;IAClD,OAAO;QACL,EAAE,CAAC,QAAQ;YACT,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxB,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvD,CAAC;QACD,IAAI,CAAC,QAAQ;YACX,MAAM,IAAI,GAAG,CAAC,OAAU,EAAQ,EAAE;gBAChC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACvB,QAAQ,CAAC,OAAO,CAAC,CAAC;YACpB,CAAC,CAAC;YACF,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,OAAO;YACV,uEAAuE;YACvE,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;gBAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;QACD,KAAK;YACH,SAAS,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;QACD,IAAI,IAAI;YACN,OAAO,SAAS,CAAC,IAAI,CAAC;QACxB,CAAC;KACF,CAAC;AACJ,CAAC;AASD,MAAM,UAAU,MAAM,CAAI,OAAU;IAClC,IAAI,KAAK,GAAG,OAAO,CAAC;IACpB,MAAM,OAAO,GAAG,aAAa,EAAK,CAAC;IACnC,OAAO;QACL,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK;QAChB,GAAG,CAAC,IAAI;YACN,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;gBAAE,OAAO;YACnC,KAAK,GAAG,IAAI,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QACD,MAAM,CAAC,EAAE;YACP,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QACtB,CAAC;QACD,SAAS,CAAC,QAAQ;YAChB,OAAO,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAG,WAAyB;IAClD,OAAO;QACL,OAAO;YACL,KAAK,MAAM,CAAC,IAAI,WAAW;gBAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAC3C,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* focus — focus management as RETAINED STATE, keyed by a stable component
|
|
3
|
+
* identity. Tab order and keyboard routing.
|
|
4
|
+
*/
|
|
5
|
+
import { type Disposable } from '../events/index.js';
|
|
6
|
+
import type { KeyEvent } from '../input/index.js';
|
|
7
|
+
export interface Focusable {
|
|
8
|
+
readonly key: string;
|
|
9
|
+
readonly tabIndex: number;
|
|
10
|
+
readonly disabled?: boolean;
|
|
11
|
+
onKey?(e: KeyEvent): boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface FocusManager {
|
|
14
|
+
register(entry: Focusable): Disposable;
|
|
15
|
+
focus(key: string): void;
|
|
16
|
+
focusNext(): void;
|
|
17
|
+
focusPrev(): void;
|
|
18
|
+
blur(): void;
|
|
19
|
+
isFocused(key: string): boolean;
|
|
20
|
+
readonly activeKey: string | undefined;
|
|
21
|
+
onChange(cb: (key: string | undefined) => void): Disposable;
|
|
22
|
+
routeKey(e: KeyEvent): boolean;
|
|
23
|
+
}
|
|
24
|
+
export declare function createFocusManager(): FocusManager;
|
|
25
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ui/engine/focus/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,CAAC;IACvC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,IAAI,IAAI,CAAC;IAClB,SAAS,IAAI,IAAI,CAAC;IAClB,IAAI,IAAI,IAAI,CAAC;IACb,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,GAAG,UAAU,CAAC;IAC5D,QAAQ,CAAC,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CAChC;AAED,wBAAgB,kBAAkB,IAAI,YAAY,CAoEjD"}
|