zard-cli 1.0.0-beta.9 → 1.1.0-alpha.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/README.md +60 -188
- package/commands/add/component-installer.d.ts +4 -1
- package/commands/add/component-installer.d.ts.map +1 -1
- package/commands/add/component-installer.js +33 -5
- 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 +5 -11
- package/commands/add/dark-mode-setup.js.map +1 -1
- package/commands/add/dependency-resolver.d.ts +1 -1
- package/commands/add/dependency-resolver.d.ts.map +1 -1
- package/commands/add/dependency-resolver.js +5 -6
- package/commands/add/dependency-resolver.js.map +1 -1
- package/commands/add/index.d.ts.map +1 -1
- package/commands/add/index.js +127 -85
- package/commands/add/index.js.map +1 -1
- package/commands/add/wizard.d.ts +31 -0
- package/commands/add/wizard.d.ts.map +1 -0
- package/commands/add/wizard.js +289 -0
- package/commands/add/wizard.js.map +1 -0
- package/commands/init/config-prompter.d.ts +59 -56
- package/commands/init/config-prompter.d.ts.map +1 -1
- package/commands/init/config-prompter.js +76 -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 +36 -16
- package/commands/init/dependencies.js.map +1 -1
- package/commands/init/index.d.ts.map +1 -1
- package/commands/init/index.js +132 -86
- package/commands/init/index.js.map +1 -1
- 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 +16 -0
- package/commands/init/steps.d.ts.map +1 -0
- package/commands/init/steps.js +151 -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 +33 -9
- package/commands/init/tailwind-setup.js.map +1 -1
- package/commands/init/theme-loader.d.ts.map +1 -1
- package/commands/init/theme-loader.js +1 -3
- package/commands/init/theme-loader.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 -47
- package/commands/init/update-angular-config.js.map +1 -1
- package/commands/init/vite-setup.d.ts +10 -0
- package/commands/init/vite-setup.d.ts.map +1 -0
- package/commands/init/vite-setup.js +60 -0
- package/commands/init/vite-setup.js.map +1 -0
- package/commands/init/wizard.d.ts +30 -0
- package/commands/init/wizard.d.ts.map +1 -0
- package/commands/init/wizard.js +560 -0
- package/commands/init/wizard.js.map +1 -0
- package/core/registry/registry-data.d.ts.map +1 -1
- package/core/registry/registry-data.js +359 -61
- package/core/registry/registry-data.js.map +1 -1
- package/core/themes/theme-definitions.d.ts +5 -5
- package/core/themes/theme-definitions.d.ts.map +1 -1
- package/core/themes/theme-definitions.js +15 -11
- package/core/themes/theme-definitions.js.map +1 -1
- package/index.js +40 -4
- package/index.js.map +1 -1
- package/package.json +58 -61
- package/ui/blocks.d.ts +70 -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 +39 -0
- package/ui/engine/animation/index.d.ts.map +1 -0
- package/ui/engine/animation/index.js +103 -0
- package/ui/engine/animation/index.js.map +1 -0
- package/ui/engine/ansi/index.d.ts +52 -0
- package/ui/engine/ansi/index.d.ts.map +1 -0
- package/ui/engine/ansi/index.js +117 -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 +17 -0
- package/ui/engine/cursor/index.d.ts.map +1 -0
- package/ui/engine/cursor/index.js +41 -0
- package/ui/engine/cursor/index.js.map +1 -0
- package/ui/engine/diff/index.d.ts +27 -0
- package/ui/engine/diff/index.d.ts.map +1 -0
- package/ui/engine/diff/index.js +57 -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 +38 -0
- package/ui/engine/terminal/index.d.ts.map +1 -0
- package/ui/engine/terminal/index.js +104 -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 +27 -0
- package/ui/engine/theme/index.d.ts.map +1 -0
- package/ui/engine/theme/index.js +129 -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 +57 -0
- package/ui/runner.d.ts.map +1 -0
- package/ui/runner.js +119 -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 +30 -0
- package/ui/text-input.d.ts.map +1 -0
- package/ui/text-input.js +87 -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/config.d.ts +48 -69
- package/utils/config.d.ts.map +1 -1
- package/utils/config.js +43 -7
- package/utils/config.js.map +1 -1
- package/utils/errors.d.ts +16 -0
- package/utils/errors.d.ts.map +1 -0
- package/utils/errors.js +31 -0
- package/utils/errors.js.map +1 -0
- package/utils/get-package-info.js +4 -4
- package/utils/get-package-info.js.map +1 -1
- package/utils/get-project-info.d.ts +30 -0
- package/utils/get-project-info.d.ts.map +1 -1
- package/utils/get-project-info.js +195 -6
- package/utils/get-project-info.js.map +1 -1
- package/utils/http-client.d.ts +8 -0
- package/utils/http-client.d.ts.map +1 -0
- package/utils/http-client.js +68 -0
- package/utils/http-client.js.map +1 -0
- package/utils/logger.d.ts +16 -1
- package/utils/logger.d.ts.map +1 -1
- package/utils/logger.js +104 -12
- package/utils/logger.js.map +1 -1
- package/utils/package-manager.d.ts +44 -1
- package/utils/package-manager.d.ts.map +1 -1
- package/utils/package-manager.js +210 -14
- package/utils/package-manager.js.map +1 -1
- package/utils/registry.d.ts +14 -2
- package/utils/registry.d.ts.map +1 -1
- package/utils/registry.js +52 -24
- package/utils/registry.js.map +1 -1
- 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
- package/utils/theme-selector.d.ts +1 -1
- package/utils/theme-selector.d.ts.map +1 -1
- package/utils/theme-selector.js +6 -6
- package/utils/theme-selector.js.map +1 -1
- package/utils/fetch-component.d.ts +0 -3
- package/utils/fetch-component.d.ts.map +0 -1
- package/utils/fetch-component.js +0 -75
- package/utils/fetch-component.js.map +0 -1
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* components — fábricas puras que retornam `Node` imutável (immediate-mode
|
|
3
|
+
* declarativo, ADR-0002). Sem JSX, sem classes, sem estado oculto.
|
|
4
|
+
* (Fatia vertical / PoC: fábricas reais. A pintura de cada tipo vive no 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
|
+
// texto e contêineres
|
|
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":"AAAA;;;;GAIG;AA8KH,SAAS,IAAI,CAAC,IAAY,EAAE,QAAgB,EAAE,EAAE,WAA4B,EAAE,EAAE,GAAY;IAC1F,MAAM,CAAC,GAAG,KAA0C,CAAC;IACrD,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;AAC9F,CAAC;AAED,sBAAsB;AACtB,MAAM,UAAU,IAAI,CAAC,OAAe,EAAE,QAAmB,EAAE;IACzD,OAAO,IAAI,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;AAC7C,CAAC;AACD,MAAM,UAAU,GAAG,CAAC,QAAkB,EAAE,EAAE,GAAG,QAAgB;IAC3D,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACtC,CAAC;AACD,MAAM,UAAU,KAAK,CAAC,QAAoB,EAAE,EAAE,GAAG,QAAgB;IAC/D,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACxC,CAAC;AACD,MAAM,UAAU,IAAI,CAAC,QAAmB,EAAE,EAAE,GAAG,QAAgB;IAC7D,OAAO,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACvC,CAAC;AACD,MAAM,UAAU,SAAS,CAAC,QAAwB,EAAE;IAClD,OAAO,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AAClC,CAAC;AACD,MAAM,UAAU,MAAM,CAAC,KAAkB;IACvC,OAAO,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC/B,CAAC;AACD,MAAM,UAAU,MAAM,CAAC,KAAkB;IACvC,OAAO,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC/B,CAAC;AACD,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,OAAO,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC;AACD,MAAM,UAAU,MAAM,CAAC,KAAkB;IACvC,OAAO,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC/B,CAAC;AACD,MAAM,UAAU,YAAY,CAC1B,OAAe,EACf,MAA0B,EAC1B,OAAgE,EAAE;IAElE,OAAO,IAAI,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS;AACT,MAAM,UAAU,KAAK,CAAC,QAAqB,EAAE,EAAE,GAAG,QAAgB;IAChE,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACxC,CAAC;AACD,MAAM,UAAU,GAAG,CAAC,QAAqB,EAAE,EAAE,GAAG,QAAgB;IAC9D,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACtC,CAAC;AACD,MAAM,UAAU,MAAM,CAAC,QAAqB,EAAE,EAAE,GAAG,QAAgB;IACjE,OAAO,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AACD,MAAM,UAAU,MAAM,CAAC,QAAqB,EAAE,EAAE,GAAG,QAAgB;IACjE,OAAO,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AACD,MAAM,UAAU,MAAM,CAAC,QAAwC,EAAE;IAC/D,OAAO,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC/B,CAAC;AACD,MAAM,UAAU,IAAI,CAAC,QAAoD,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,GAAG,QAAgB;IAC1G,OAAO,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACvC,CAAC;AAED,oBAAoB;AACpB,MAAM,UAAU,OAAO,CAAC,QAAsB,EAAE;IAC9C,OAAO,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AAC/C,CAAC;AACD,MAAM,UAAU,WAAW,CAAC,KAAoB;IAC9C,OAAO,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC;AACD,MAAM,UAAU,KAAK,CAAC,KAAiB;IACrC,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAC9B,CAAC;AACD,MAAM,UAAU,MAAM,CAAC,KAAkB;IACvC,OAAO,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC/B,CAAC;AACD,MAAM,UAAU,IAAI,CAAC,KAAgB;IACnC,OAAO,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,QAAQ;AACR,MAAM,UAAU,IAAI,CAAC,KAAgB;IACnC,OAAO,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC7B,CAAC;AACD,MAAM,UAAU,KAAK,CAAC,KAAiB;IACrC,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAC9B,CAAC;AACD,MAAM,UAAU,IAAI,CAAC,KAAgB;IACnC,OAAO,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,cAAc;AACd,MAAM,UAAU,KAAK,CAAC,KAAiB;IACrC,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AAC7C,CAAC;AACD,MAAM,UAAU,QAAQ,CAAC,KAAoB;IAC3C,OAAO,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AAChD,CAAC;AACD,MAAM,UAAU,MAAM,CAAC,KAAkB;IACvC,OAAO,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AAC9C,CAAC;AACD,MAAM,UAAU,OAAO,CAAC,KAAmB;IACzC,OAAO,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AAC/C,CAAC;AACD,MAAM,UAAU,QAAQ,CAAC,KAAoB;IAC3C,OAAO,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AAChD,CAAC;AACD,MAAM,UAAU,QAAQ,CAAC,KAAoB;IAC3C,OAAO,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AAChD,CAAC;AAED,OAAO;AACP,MAAM,UAAU,MAAM,CAAC,GAAG,QAAgB;IACxC,OAAO,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* cursor — geração de sequências de posicionamento/visibilidade do cursor.
|
|
3
|
+
* Funções puras (retornam bytes); quem escreve é o `terminal`.
|
|
4
|
+
* (Fatia vertical / PoC: implementação real.)
|
|
5
|
+
*/
|
|
6
|
+
/** Fábrica de sequências de cursor. Coordenadas base 0 na API; 1-based no CSI. */
|
|
7
|
+
export interface Cursor {
|
|
8
|
+
moveTo(x: number, y: number): string;
|
|
9
|
+
moveBy(dx: number, dy: number): string;
|
|
10
|
+
hide(): string;
|
|
11
|
+
show(): string;
|
|
12
|
+
save(): string;
|
|
13
|
+
restore(): string;
|
|
14
|
+
toColumnStart(): string;
|
|
15
|
+
}
|
|
16
|
+
export declare function createCursor(): Cursor;
|
|
17
|
+
//# 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;;;;GAIG;AAIH,kFAAkF;AAClF,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,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* cursor — geração de sequências de posicionamento/visibilidade do cursor.
|
|
3
|
+
* Funções puras (retornam bytes); quem escreve é o `terminal`.
|
|
4
|
+
* (Fatia vertical / PoC: implementação real.)
|
|
5
|
+
*/
|
|
6
|
+
import { csi } from '../ansi/index.js';
|
|
7
|
+
export function createCursor() {
|
|
8
|
+
return {
|
|
9
|
+
moveTo(x, y) {
|
|
10
|
+
return csi(`${y + 1};${x + 1}H`);
|
|
11
|
+
},
|
|
12
|
+
moveBy(dx, dy) {
|
|
13
|
+
let out = '';
|
|
14
|
+
if (dy < 0)
|
|
15
|
+
out += csi(`${-dy}A`);
|
|
16
|
+
else if (dy > 0)
|
|
17
|
+
out += csi(`${dy}B`);
|
|
18
|
+
if (dx > 0)
|
|
19
|
+
out += csi(`${dx}C`);
|
|
20
|
+
else if (dx < 0)
|
|
21
|
+
out += csi(`${-dx}D`);
|
|
22
|
+
return out;
|
|
23
|
+
},
|
|
24
|
+
hide() {
|
|
25
|
+
return csi('?25l');
|
|
26
|
+
},
|
|
27
|
+
show() {
|
|
28
|
+
return csi('?25h');
|
|
29
|
+
},
|
|
30
|
+
save() {
|
|
31
|
+
return csi('s');
|
|
32
|
+
},
|
|
33
|
+
restore() {
|
|
34
|
+
return csi('u');
|
|
35
|
+
},
|
|
36
|
+
toColumnStart() {
|
|
37
|
+
return '\r';
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/engine/cursor/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;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,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* diff — compara dois Frames e emite o conjunto MÍNIMO de mudanças, como
|
|
3
|
+
* runs (segmentos contíguos) por linha alterada. Função pura (ADR-0001).
|
|
4
|
+
* (Fatia vertical / PoC: implementação real.)
|
|
5
|
+
*/
|
|
6
|
+
import type { Cell, Frame, Size } from '../frame/index.js';
|
|
7
|
+
export interface Run {
|
|
8
|
+
readonly x: number;
|
|
9
|
+
readonly cells: readonly Cell[];
|
|
10
|
+
}
|
|
11
|
+
export interface LinePatch {
|
|
12
|
+
readonly y: number;
|
|
13
|
+
readonly runs: readonly Run[];
|
|
14
|
+
}
|
|
15
|
+
export interface Patch {
|
|
16
|
+
readonly size: Size;
|
|
17
|
+
readonly lines: readonly LinePatch[];
|
|
18
|
+
readonly isEmpty: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface DifferOptions {
|
|
21
|
+
readonly minGap?: number;
|
|
22
|
+
}
|
|
23
|
+
export interface Differ {
|
|
24
|
+
diff(prev: Frame, next: Frame): Patch;
|
|
25
|
+
}
|
|
26
|
+
export declare function createDiffer(options?: DifferOptions): Differ;
|
|
27
|
+
//# 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;;;;GAIG;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,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* diff — compara dois Frames e emite o conjunto MÍNIMO de mudanças, como
|
|
3
|
+
* runs (segmentos contíguos) por linha alterada. Função pura (ADR-0001).
|
|
4
|
+
* (Fatia vertical / PoC: implementação real.)
|
|
5
|
+
*/
|
|
6
|
+
function styleEquals(a, b) {
|
|
7
|
+
return a.fg === b.fg && a.bg === b.bg && a.attrs === b.attrs;
|
|
8
|
+
}
|
|
9
|
+
function cellEquals(a, b) {
|
|
10
|
+
return a.char === b.char && a.width === b.width && styleEquals(a.style, b.style);
|
|
11
|
+
}
|
|
12
|
+
export function createDiffer(options = {}) {
|
|
13
|
+
const minGap = Math.max(1, options.minGap ?? 3);
|
|
14
|
+
return {
|
|
15
|
+
diff(prev, next) {
|
|
16
|
+
const { cols, rows } = next.size;
|
|
17
|
+
const lines = [];
|
|
18
|
+
const sameSize = prev.size.cols === cols && prev.size.rows === rows;
|
|
19
|
+
for (let y = 0; y < rows; y++) {
|
|
20
|
+
// Skip O(1) por hash de linha (o retido tem hash em cache).
|
|
21
|
+
if (sameSize && prev.rowHash(y) === next.rowHash(y))
|
|
22
|
+
continue;
|
|
23
|
+
const a = prev.rowSlice(y);
|
|
24
|
+
const b = next.rowSlice(y);
|
|
25
|
+
const runs = [];
|
|
26
|
+
let x = 0;
|
|
27
|
+
while (x < cols) {
|
|
28
|
+
// avança sobre células iguais
|
|
29
|
+
while (x < cols && cellEquals(a[x], b[x]))
|
|
30
|
+
x++;
|
|
31
|
+
if (x >= cols)
|
|
32
|
+
break;
|
|
33
|
+
const start = x;
|
|
34
|
+
while (x < cols) {
|
|
35
|
+
if (cellEquals(a[x], b[x])) {
|
|
36
|
+
// coalescing: só encerra o run se o trecho igual for >= minGap
|
|
37
|
+
let k = x;
|
|
38
|
+
while (k < cols && cellEquals(a[k], b[k]))
|
|
39
|
+
k++;
|
|
40
|
+
if (k >= cols || k - x >= minGap)
|
|
41
|
+
break;
|
|
42
|
+
x = k; // funde o trecho igual curto dentro do run
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
x++;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
runs.push({ x: start, cells: b.slice(start, x) });
|
|
49
|
+
}
|
|
50
|
+
if (runs.length)
|
|
51
|
+
lines.push({ y, runs });
|
|
52
|
+
}
|
|
53
|
+
return { size: next.size, lines, isEmpty: lines.length === 0 };
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
//# 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 — primitivas de eventos tipadas. Base de input/focus/scheduler.
|
|
3
|
+
* Sem dependências. Sem I/O. (Implementação real.)
|
|
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 — primitivas de eventos tipadas. Base de input/focus/scheduler.
|
|
3
|
+
* Sem dependências. Sem I/O. (Implementação real.)
|
|
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
|
+
// itera sobre cópia: listeners podem se remover durante o 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,+DAA+D;YAC/D,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 — gerenciamento de foco como ESTADO RETIDO, keyed por identidade
|
|
3
|
+
* estável de componente. Ordem de tabulação e roteamento de teclado. (Real.)
|
|
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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* focus — gerenciamento de foco como ESTADO RETIDO, keyed por identidade
|
|
3
|
+
* estável de componente. Ordem de tabulação e roteamento de teclado. (Real.)
|
|
4
|
+
*/
|
|
5
|
+
import { createEmitter } from '../events/index.js';
|
|
6
|
+
export function createFocusManager() {
|
|
7
|
+
const entries = [];
|
|
8
|
+
const changed = createEmitter();
|
|
9
|
+
let activeKey;
|
|
10
|
+
const eligible = () => entries.filter(e => !e.disabled && e.tabIndex >= 0).sort((a, b) => a.tabIndex - b.tabIndex);
|
|
11
|
+
const setActive = (key) => {
|
|
12
|
+
if (key === activeKey)
|
|
13
|
+
return;
|
|
14
|
+
activeKey = key;
|
|
15
|
+
changed.emit(key);
|
|
16
|
+
};
|
|
17
|
+
const move = (delta) => {
|
|
18
|
+
const ring = eligible();
|
|
19
|
+
if (ring.length === 0) {
|
|
20
|
+
setActive(undefined);
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const idx = ring.findIndex(e => e.key === activeKey);
|
|
24
|
+
const next = idx < 0 ? (delta > 0 ? 0 : ring.length - 1) : (idx + delta + ring.length) % ring.length;
|
|
25
|
+
setActive(ring[next].key);
|
|
26
|
+
};
|
|
27
|
+
return {
|
|
28
|
+
register(entry) {
|
|
29
|
+
entries.push(entry);
|
|
30
|
+
if (activeKey === undefined && !entry.disabled && entry.tabIndex >= 0)
|
|
31
|
+
setActive(entry.key);
|
|
32
|
+
return {
|
|
33
|
+
dispose: () => {
|
|
34
|
+
const i = entries.indexOf(entry);
|
|
35
|
+
if (i >= 0)
|
|
36
|
+
entries.splice(i, 1);
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
},
|
|
40
|
+
focus(key) {
|
|
41
|
+
if (entries.some(e => e.key === key))
|
|
42
|
+
setActive(key);
|
|
43
|
+
},
|
|
44
|
+
focusNext() {
|
|
45
|
+
move(1);
|
|
46
|
+
},
|
|
47
|
+
focusPrev() {
|
|
48
|
+
move(-1);
|
|
49
|
+
},
|
|
50
|
+
blur() {
|
|
51
|
+
setActive(undefined);
|
|
52
|
+
},
|
|
53
|
+
isFocused(key) {
|
|
54
|
+
return activeKey === key;
|
|
55
|
+
},
|
|
56
|
+
get activeKey() {
|
|
57
|
+
return activeKey;
|
|
58
|
+
},
|
|
59
|
+
onChange(cb) {
|
|
60
|
+
return changed.on(cb);
|
|
61
|
+
},
|
|
62
|
+
routeKey(e) {
|
|
63
|
+
const active = entries.find(x => x.key === activeKey);
|
|
64
|
+
if (active?.onKey?.(e))
|
|
65
|
+
return true;
|
|
66
|
+
if (e.key === 'tab') {
|
|
67
|
+
if (e.shift)
|
|
68
|
+
this.focusPrev();
|
|
69
|
+
else
|
|
70
|
+
this.focusNext();
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
return false;
|
|
74
|
+
},
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/engine/focus/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* frame — o modelo de dados central: Cell, CellStyle e Frame (grade 2D).
|
|
3
|
+
* É o ALVO do diff. Escrita sem I/O.
|
|
4
|
+
*
|
|
5
|
+
* (Fatia vertical / PoC): buffers paralelos + string interning de estilo
|
|
6
|
+
* (ADR-0005) e hash de linha lazy com dirty flags (ADR-0001).
|
|
7
|
+
*/
|
|
8
|
+
import { Attr } from '../ansi/index.js';
|
|
9
|
+
export interface Size {
|
|
10
|
+
readonly cols: number;
|
|
11
|
+
readonly rows: number;
|
|
12
|
+
}
|
|
13
|
+
export interface Point {
|
|
14
|
+
readonly x: number;
|
|
15
|
+
readonly y: number;
|
|
16
|
+
}
|
|
17
|
+
export interface Rect {
|
|
18
|
+
readonly x: number;
|
|
19
|
+
readonly y: number;
|
|
20
|
+
readonly w: number;
|
|
21
|
+
readonly h: number;
|
|
22
|
+
}
|
|
23
|
+
export type ColorRef = string;
|
|
24
|
+
export interface CellStyle {
|
|
25
|
+
readonly fg?: ColorRef;
|
|
26
|
+
readonly bg?: ColorRef;
|
|
27
|
+
readonly attrs: Attr;
|
|
28
|
+
}
|
|
29
|
+
export interface Cell {
|
|
30
|
+
readonly char: string;
|
|
31
|
+
readonly width: 0 | 1 | 2;
|
|
32
|
+
readonly style: CellStyle;
|
|
33
|
+
}
|
|
34
|
+
export declare const DEFAULT_STYLE: CellStyle;
|
|
35
|
+
export declare const BLANK_CELL: Cell;
|
|
36
|
+
export interface Frame {
|
|
37
|
+
readonly size: Size;
|
|
38
|
+
cellAt(x: number, y: number): Cell;
|
|
39
|
+
rowSlice(y: number): readonly Cell[];
|
|
40
|
+
rowHash(y: number): number;
|
|
41
|
+
set(x: number, y: number, cell: Cell): void;
|
|
42
|
+
putText(x: number, y: number, text: string, style: CellStyle, clip: Rect): number;
|
|
43
|
+
fillRect(rect: Rect, cell: Cell): void;
|
|
44
|
+
invalidate(): void;
|
|
45
|
+
clearTo(style: CellStyle): void;
|
|
46
|
+
}
|
|
47
|
+
export declare function createFrame(size: Size): Frame;
|
|
48
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ui/engine/frame/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAGxC,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AACD,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;CACpB;AACD,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC;IACvB,QAAQ,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;CAC3B;AAED,eAAO,MAAM,aAAa,EAAE,SAAgC,CAAC;AAC7D,eAAO,MAAM,UAAU,EAAE,IAAoD,CAAC;AAE9E,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,IAAI,EAAE,CAAC;IACrC,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAC5C,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC;IAClF,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IACvC,UAAU,IAAI,IAAI,CAAC;IACnB,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;CACjC;AA0ID,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,KAAK,CAE7C"}
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/engine/frame/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* terminal-engine — superfície pública da engine de renderização do terminal.
|
|
3
|
+
*
|
|
4
|
+
* Engine orientada a diff sobre Node.js + ANSI puro: sem React, sem Ink, sem
|
|
5
|
+
* Virtual DOM e sem dependências externas. A aplicação descreve o que aparece
|
|
6
|
+
* a cada frame; a engine descobre o que mudou e escreve o mínimo de bytes.
|
|
7
|
+
*
|
|
8
|
+
* Este diretório é código vendorizado — a fonte original vive no pacote
|
|
9
|
+
* `@zardui/terminal-engine`. Ajustes de comportamento devem ser feitos lá e
|
|
10
|
+
* ressincronizados aqui, para que os dois lados não divirjam.
|
|
11
|
+
*/
|
|
12
|
+
export * from './utils/index.js';
|
|
13
|
+
export * from './ansi/index.js';
|
|
14
|
+
export * from './cursor/index.js';
|
|
15
|
+
export * from './events/index.js';
|
|
16
|
+
export * from './frame/index.js';
|
|
17
|
+
export * from './diff/index.js';
|
|
18
|
+
export * from './theme/index.js';
|
|
19
|
+
export * from './layout/index.js';
|
|
20
|
+
export * from './terminal/index.js';
|
|
21
|
+
export * from './input/index.js';
|
|
22
|
+
export * from './focus/index.js';
|
|
23
|
+
export * from './scheduler/index.js';
|
|
24
|
+
export * from './animation/index.js';
|
|
25
|
+
export * from './components/index.js';
|
|
26
|
+
export * from './renderer/index.js';
|
|
27
|
+
export * from './screen/index.js';
|
|
28
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/engine/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* terminal-engine — superfície pública da engine de renderização do terminal.
|
|
3
|
+
*
|
|
4
|
+
* Engine orientada a diff sobre Node.js + ANSI puro: sem React, sem Ink, sem
|
|
5
|
+
* Virtual DOM e sem dependências externas. A aplicação descreve o que aparece
|
|
6
|
+
* a cada frame; a engine descobre o que mudou e escreve o mínimo de bytes.
|
|
7
|
+
*
|
|
8
|
+
* Este diretório é código vendorizado — a fonte original vive no pacote
|
|
9
|
+
* `@zardui/terminal-engine`. Ajustes de comportamento devem ser feitos lá e
|
|
10
|
+
* ressincronizados aqui, para que os dois lados não divirjam.
|
|
11
|
+
*/
|
|
12
|
+
export * from './utils/index.js';
|
|
13
|
+
export * from './ansi/index.js';
|
|
14
|
+
export * from './cursor/index.js';
|
|
15
|
+
export * from './events/index.js';
|
|
16
|
+
export * from './frame/index.js';
|
|
17
|
+
export * from './diff/index.js';
|
|
18
|
+
export * from './theme/index.js';
|
|
19
|
+
export * from './layout/index.js';
|
|
20
|
+
export * from './terminal/index.js';
|
|
21
|
+
export * from './input/index.js';
|
|
22
|
+
export * from './focus/index.js';
|
|
23
|
+
export * from './scheduler/index.js';
|
|
24
|
+
export * from './animation/index.js';
|
|
25
|
+
export * from './components/index.js';
|
|
26
|
+
export * from './renderer/index.js';
|
|
27
|
+
export * from './screen/index.js';
|
|
28
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/engine/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC"}
|