@yeshwanthyk/open-tui 0.1.4 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app.js +17 -15
- package/dist/app.jsx.map +1 -0
- package/dist/components/badge.js +60 -24
- package/dist/components/{badge.js.map → badge.jsx.map} +1 -1
- package/dist/components/code-block.js +110 -17
- package/dist/components/code-block.jsx.map +1 -0
- package/dist/components/dialog.js +86 -10
- package/dist/components/dialog.jsx.map +1 -0
- package/dist/components/diff.js +79 -13
- package/dist/components/diff.jsx.map +1 -0
- package/dist/components/divider.js +44 -11
- package/dist/components/divider.jsx.map +1 -0
- package/dist/components/editor.js +174 -127
- package/dist/components/{editor.js.map → editor.jsx.map} +1 -1
- package/dist/components/image.js +292 -228
- package/dist/components/{image.js.map → image.jsx.map} +1 -1
- package/dist/components/loader.js +50 -6
- package/dist/components/loader.jsx.map +1 -0
- package/dist/components/markdown.js +35 -18
- package/dist/components/markdown.jsx.map +1 -0
- package/dist/components/panel.js +86 -42
- package/dist/components/{panel.js.map → panel.jsx.map} +1 -1
- package/dist/components/select-list.js +193 -103
- package/dist/components/select-list.jsx.map +1 -0
- package/dist/components/spacer.js +17 -12
- package/dist/components/spacer.jsx.map +1 -0
- package/dist/components/toast.js +115 -34
- package/dist/components/toast.jsx.map +1 -0
- package/dist/context/terminal.js +1 -2
- package/dist/context/terminal.jsx.map +1 -0
- package/dist/context/theme.js +779 -555
- package/dist/context/theme.jsx.map +1 -0
- package/package.json +4 -4
- package/dist/app.js.map +0 -1
- package/dist/components/code-block.js.map +0 -1
- package/dist/components/dialog.js.map +0 -1
- package/dist/components/diff.js.map +0 -1
- package/dist/components/divider.js.map +0 -1
- package/dist/components/loader.js.map +0 -1
- package/dist/components/markdown.js.map +0 -1
- package/dist/components/select-list.js.map +0 -1
- package/dist/components/spacer.js.map +0 -1
- package/dist/components/toast.js.map +0 -1
- package/dist/context/terminal.js.map +0 -1
- package/dist/context/theme.js.map +0 -1
package/dist/app.js
CHANGED
|
@@ -10,19 +10,21 @@ import { render } from "@opentui/solid";
|
|
|
10
10
|
* @returns Promise that resolves when the app exits
|
|
11
11
|
*/
|
|
12
12
|
export function startApp(rootComponent, config = {}) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
13
|
+
return new Promise(resolve => {
|
|
14
|
+
const {
|
|
15
|
+
onExit,
|
|
16
|
+
...renderConfig
|
|
17
|
+
} = config;
|
|
18
|
+
render(rootComponent, {
|
|
19
|
+
targetFps: 30,
|
|
20
|
+
exitOnCtrlC: false,
|
|
21
|
+
useKittyKeyboard: {},
|
|
22
|
+
...renderConfig,
|
|
23
|
+
onDestroy: async () => {
|
|
24
|
+
renderConfig.onDestroy?.();
|
|
25
|
+
await onExit?.();
|
|
26
|
+
resolve();
|
|
27
|
+
}
|
|
26
28
|
});
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
+
});
|
|
30
|
+
}
|
package/dist/app.jsx.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.jsx","sourceRoot":"","sources":["../src/app.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAQvC;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,aAAgC,EAAE,SAAoB,EAAE;IAChF,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QACpC,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,GAAG,MAAM,CAAA;QAE1C,MAAM,CAAC,aAAa,EAAE;YACrB,SAAS,EAAE,EAAE;YACb,WAAW,EAAE,KAAK;YAClB,gBAAgB,EAAE,EAAE;YACpB,GAAG,YAAY;YACf,SAAS,EAAE,KAAK,IAAI,EAAE;gBACrB,YAAY,CAAC,SAAS,EAAE,EAAE,CAAA;gBAC1B,MAAM,MAAM,EAAE,EAAE,CAAA;gBAChB,OAAO,EAAE,CAAA;YACV,CAAC;SACD,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;AACH,CAAC"}
|
package/dist/components/badge.js
CHANGED
|
@@ -1,28 +1,64 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { effect as _$effect } from "@opentui/solid";
|
|
2
|
+
import { insertNode as _$insertNode } from "@opentui/solid";
|
|
3
|
+
import { insert as _$insert } from "@opentui/solid";
|
|
4
|
+
import { setProp as _$setProp } from "@opentui/solid";
|
|
5
|
+
import { spread as _$spread } from "@opentui/solid";
|
|
6
|
+
import { mergeProps as _$mergeProps } from "@opentui/solid";
|
|
7
|
+
import { createElement as _$createElement } from "@opentui/solid";
|
|
2
8
|
import { splitProps } from "solid-js";
|
|
3
9
|
import { TextAttributes } from "@opentui/core";
|
|
4
10
|
import { useTheme } from "../context/theme.js";
|
|
5
11
|
export function Badge(props) {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
12
|
+
const {
|
|
13
|
+
theme
|
|
14
|
+
} = useTheme();
|
|
15
|
+
const [local, rest] = splitProps(props, ["label", "variant", "fg", "bg"]);
|
|
16
|
+
const resolvedFg = () => {
|
|
17
|
+
if (local.fg) return local.fg;
|
|
18
|
+
switch (local.variant ?? "neutral") {
|
|
19
|
+
case "info":
|
|
20
|
+
return theme.info;
|
|
21
|
+
case "success":
|
|
22
|
+
return theme.success;
|
|
23
|
+
case "warning":
|
|
24
|
+
return theme.warning;
|
|
25
|
+
case "error":
|
|
26
|
+
return theme.error;
|
|
27
|
+
case "neutral":
|
|
28
|
+
default:
|
|
29
|
+
return theme.textMuted;
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
const resolvedBg = () => local.bg ?? theme.backgroundElement;
|
|
33
|
+
return (() => {
|
|
34
|
+
var _el$ = _$createElement("box"),
|
|
35
|
+
_el$2 = _$createElement("text");
|
|
36
|
+
_$insertNode(_el$, _el$2);
|
|
37
|
+
_$setProp(_el$, "border", true);
|
|
38
|
+
_$setProp(_el$, "paddingLeft", 1);
|
|
39
|
+
_$setProp(_el$, "paddingRight", 1);
|
|
40
|
+
_$setProp(_el$, "paddingTop", 0);
|
|
41
|
+
_$setProp(_el$, "paddingBottom", 0);
|
|
42
|
+
_$setProp(_el$, "flexShrink", 0);
|
|
43
|
+
_$spread(_el$, _$mergeProps({
|
|
44
|
+
get backgroundColor() {
|
|
45
|
+
return resolvedBg();
|
|
46
|
+
},
|
|
47
|
+
get borderColor() {
|
|
48
|
+
return theme.borderSubtle;
|
|
49
|
+
}
|
|
50
|
+
}, rest), true);
|
|
51
|
+
_$insert(_el$2, () => local.label);
|
|
52
|
+
_$effect(_p$ => {
|
|
53
|
+
var _v$ = resolvedFg(),
|
|
54
|
+
_v$2 = TextAttributes.BOLD;
|
|
55
|
+
_v$ !== _p$.e && (_p$.e = _$setProp(_el$2, "fg", _v$, _p$.e));
|
|
56
|
+
_v$2 !== _p$.t && (_p$.t = _$setProp(_el$2, "attributes", _v$2, _p$.t));
|
|
57
|
+
return _p$;
|
|
58
|
+
}, {
|
|
59
|
+
e: undefined,
|
|
60
|
+
t: undefined
|
|
61
|
+
});
|
|
62
|
+
return _el$;
|
|
63
|
+
})();
|
|
64
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"badge.
|
|
1
|
+
{"version":3,"file":"badge.jsx","sourceRoot":"","sources":["../../src/components/badge.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAa,MAAM,qBAAqB,CAAA;AAWzD,MAAM,UAAU,KAAK,CAAC,KAAiB;IACtC,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAA;IAC5B,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;IAEzE,MAAM,UAAU,GAAG,GAAS,EAAE;QAC7B,IAAI,KAAK,CAAC,EAAE;YAAE,OAAO,KAAK,CAAC,EAAE,CAAA;QAC7B,QAAQ,KAAK,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC;YACpC,KAAK,MAAM;gBACV,OAAO,KAAK,CAAC,IAAI,CAAA;YAClB,KAAK,SAAS;gBACb,OAAO,KAAK,CAAC,OAAO,CAAA;YACrB,KAAK,SAAS;gBACb,OAAO,KAAK,CAAC,OAAO,CAAA;YACrB,KAAK,OAAO;gBACX,OAAO,KAAK,CAAC,KAAK,CAAA;YACnB,KAAK,SAAS,CAAC;YACf;gBACC,OAAO,KAAK,CAAC,SAAS,CAAA;QACxB,CAAC;IACF,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,GAAS,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,iBAAiB,CAAA;IAElE,OAAO,CACN,CAAC,GAAG,CACH,eAAe,CAAC,CAAC,UAAU,EAAE,CAAC,CAC9B,MAAM,CACN,WAAW,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAChC,WAAW,CAAC,CAAC,CAAC,CAAC,CACf,YAAY,CAAC,CAAC,CAAC,CAAC,CAChB,UAAU,CAAC,CAAC,CAAC,CAAC,CACd,aAAa,CAAC,CAAC,CAAC,CAAC,CACjB,UAAU,CAAC,CAAC,CAAC,CAAC,CACd,IAAI,IAAI,CAAC,CAET;GAAA,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CACvD;IAAA,CAAC,KAAK,CAAC,KAAK,CACb;GAAA,EAAE,IAAI,CACP;EAAA,EAAE,GAAG,CAAC,CACN,CAAA;AACF,CAAC"}
|
|
@@ -1,21 +1,114 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { use as _$use } from "@opentui/solid";
|
|
2
|
+
import { memo as _$memo } from "@opentui/solid";
|
|
3
|
+
import { createComponent as _$createComponent } from "@opentui/solid";
|
|
4
|
+
import { effect as _$effect } from "@opentui/solid";
|
|
5
|
+
import { insertNode as _$insertNode } from "@opentui/solid";
|
|
6
|
+
import { insert as _$insert } from "@opentui/solid";
|
|
7
|
+
import { setProp as _$setProp } from "@opentui/solid";
|
|
8
|
+
import { spread as _$spread } from "@opentui/solid";
|
|
9
|
+
import { mergeProps as _$mergeProps } from "@opentui/solid";
|
|
10
|
+
import { createElement as _$createElement } from "@opentui/solid";
|
|
2
11
|
import { getTreeSitterClient } from "@opentui/core";
|
|
3
12
|
import { Show, createSignal, splitProps } from "solid-js";
|
|
4
13
|
import { useTheme } from "../context/theme.js";
|
|
5
14
|
export function CodeBlock(props) {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
15
|
+
const {
|
|
16
|
+
theme,
|
|
17
|
+
syntaxStyle
|
|
18
|
+
} = useTheme();
|
|
19
|
+
const [local, rest] = splitProps(props, ["content", "filetype", "title", "showLineNumbers", "wrapMode", "streaming", "conceal"]);
|
|
20
|
+
const [codeRef, setCodeRef] = createSignal(undefined);
|
|
21
|
+
const showLineNumbers = () => local.showLineNumbers ?? true;
|
|
22
|
+
// Minimal: no border, subtle bg tint
|
|
23
|
+
return (() => {
|
|
24
|
+
var _el$ = _$createElement("box"),
|
|
25
|
+
_el$4 = _$createElement("box"),
|
|
26
|
+
_el$5 = _$createElement("code");
|
|
27
|
+
_$insertNode(_el$, _el$4);
|
|
28
|
+
_$setProp(_el$, "flexDirection", "column");
|
|
29
|
+
_$setProp(_el$, "paddingLeft", 1);
|
|
30
|
+
_$setProp(_el$, "paddingRight", 1);
|
|
31
|
+
_$spread(_el$, _$mergeProps({
|
|
32
|
+
get backgroundColor() {
|
|
33
|
+
return theme.backgroundElement;
|
|
34
|
+
}
|
|
35
|
+
}, rest), true);
|
|
36
|
+
_$insert(_el$, _$createComponent(Show, {
|
|
37
|
+
get when() {
|
|
38
|
+
return local.title;
|
|
39
|
+
},
|
|
40
|
+
get children() {
|
|
41
|
+
var _el$2 = _$createElement("box"),
|
|
42
|
+
_el$3 = _$createElement("text");
|
|
43
|
+
_$insertNode(_el$2, _el$3);
|
|
44
|
+
_$setProp(_el$2, "flexDirection", "row");
|
|
45
|
+
_$setProp(_el$2, "alignItems", "center");
|
|
46
|
+
_$setProp(_el$2, "gap", 1);
|
|
47
|
+
_$setProp(_el$2, "paddingBottom", 1);
|
|
48
|
+
_$insert(_el$3, () => local.title);
|
|
49
|
+
_$effect(_$p => _$setProp(_el$3, "fg", theme.textMuted, _$p));
|
|
50
|
+
return _el$2;
|
|
51
|
+
}
|
|
52
|
+
}), _el$4);
|
|
53
|
+
_$insertNode(_el$4, _el$5);
|
|
54
|
+
_$setProp(_el$4, "flexDirection", "row");
|
|
55
|
+
_$insert(_el$4, _$createComponent(Show, {
|
|
56
|
+
get when() {
|
|
57
|
+
return _$memo(() => !!showLineNumbers())() && codeRef();
|
|
58
|
+
},
|
|
59
|
+
children: ref => (() => {
|
|
60
|
+
var _el$6 = _$createElement("line_number");
|
|
61
|
+
_$setProp(_el$6, "paddingRight", 1);
|
|
62
|
+
_$setProp(_el$6, "flexShrink", 0);
|
|
63
|
+
_$effect(_p$ => {
|
|
64
|
+
var _v$9 = ref(),
|
|
65
|
+
_v$0 = theme.diffLineNumberFg,
|
|
66
|
+
_v$1 = theme.diffLineNumberBg;
|
|
67
|
+
_v$9 !== _p$.e && (_p$.e = _$setProp(_el$6, "target", _v$9, _p$.e));
|
|
68
|
+
_v$0 !== _p$.t && (_p$.t = _$setProp(_el$6, "fg", _v$0, _p$.t));
|
|
69
|
+
_v$1 !== _p$.a && (_p$.a = _$setProp(_el$6, "bg", _v$1, _p$.a));
|
|
70
|
+
return _p$;
|
|
71
|
+
}, {
|
|
72
|
+
e: undefined,
|
|
73
|
+
t: undefined,
|
|
74
|
+
a: undefined
|
|
75
|
+
});
|
|
76
|
+
return _el$6;
|
|
77
|
+
})()
|
|
78
|
+
}), _el$5);
|
|
79
|
+
_$use(setCodeRef, _el$5);
|
|
80
|
+
_$setProp(_el$5, "syntaxStyle", syntaxStyle);
|
|
81
|
+
_$setProp(_el$5, "drawUnstyledText", true);
|
|
82
|
+
_$setProp(_el$5, "width", "100%");
|
|
83
|
+
_$setProp(_el$5, "height", "100%");
|
|
84
|
+
_$effect(_p$ => {
|
|
85
|
+
var _v$ = local.content,
|
|
86
|
+
_v$2 = local.filetype ?? "text",
|
|
87
|
+
_v$3 = getTreeSitterClient(),
|
|
88
|
+
_v$4 = local.wrapMode ?? "word",
|
|
89
|
+
_v$5 = local.streaming ?? false,
|
|
90
|
+
_v$6 = local.conceal ?? false,
|
|
91
|
+
_v$7 = theme.selectionBg,
|
|
92
|
+
_v$8 = theme.selectionFg;
|
|
93
|
+
_v$ !== _p$.e && (_p$.e = _$setProp(_el$5, "content", _v$, _p$.e));
|
|
94
|
+
_v$2 !== _p$.t && (_p$.t = _$setProp(_el$5, "filetype", _v$2, _p$.t));
|
|
95
|
+
_v$3 !== _p$.a && (_p$.a = _$setProp(_el$5, "treeSitterClient", _v$3, _p$.a));
|
|
96
|
+
_v$4 !== _p$.o && (_p$.o = _$setProp(_el$5, "wrapMode", _v$4, _p$.o));
|
|
97
|
+
_v$5 !== _p$.i && (_p$.i = _$setProp(_el$5, "streaming", _v$5, _p$.i));
|
|
98
|
+
_v$6 !== _p$.n && (_p$.n = _$setProp(_el$5, "conceal", _v$6, _p$.n));
|
|
99
|
+
_v$7 !== _p$.s && (_p$.s = _$setProp(_el$5, "selectionBg", _v$7, _p$.s));
|
|
100
|
+
_v$8 !== _p$.h && (_p$.h = _$setProp(_el$5, "selectionFg", _v$8, _p$.h));
|
|
101
|
+
return _p$;
|
|
102
|
+
}, {
|
|
103
|
+
e: undefined,
|
|
104
|
+
t: undefined,
|
|
105
|
+
a: undefined,
|
|
106
|
+
o: undefined,
|
|
107
|
+
i: undefined,
|
|
108
|
+
n: undefined,
|
|
109
|
+
s: undefined,
|
|
110
|
+
h: undefined
|
|
111
|
+
});
|
|
112
|
+
return _el$;
|
|
113
|
+
})();
|
|
114
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-block.jsx","sourceRoot":"","sources":["../../src/components/code-block.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAEnD,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAiB,MAAM,UAAU,CAAA;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAY9C,MAAM,UAAU,SAAS,CAAC,KAAqB;IAC9C,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,QAAQ,EAAE,CAAA;IACzC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE;QACvC,SAAS;QACT,UAAU;QACV,OAAO;QACP,iBAAiB;QACjB,UAAU;QACV,WAAW;QACX,SAAS;KACT,CAAC,CAAA;IAEF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,YAAY,CAA6B,SAAS,CAAC,CAAA;IAEjF,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,eAAe,IAAI,IAAI,CAAA;IAE3D,qCAAqC;IACrC,OAAO,CACN,CAAC,GAAG,CACH,aAAa,CAAC,QAAQ,CACtB,eAAe,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CACzC,WAAW,CAAC,CAAC,CAAC,CAAC,CACf,YAAY,CAAC,CAAC,CAAC,CAAC,CAChB,IAAI,IAAI,CAAC,CAET;GAAA,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CACvB;IAAA,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CACrE;KAAA,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CACzB;MAAA,CAAC,KAAK,CAAC,KAAK,CACb;KAAA,EAAE,IAAI,CACP;IAAA,EAAE,GAAG,CACN;GAAA,EAAE,IAAI,CACN;GAAA,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CACvB;IAAA,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,IAAI,OAAO,EAAE,CAAC,CAC1C;KAAA,CAAC,CAAC,GAA6B,EAAE,EAAE,CAAC,CACnC,CAAC,WAAW,CACX,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,CACd,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAC3B,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAC3B,YAAY,CAAC,CAAC,CAAC,CAAC,CAChB,UAAU,CAAC,CAAC,CAAC,CAAC,EACb,CACF,CACF;IAAA,EAAE,IAAI,CACN;IAAA,CAAC,IAAI,CACJ,GAAG,CAAC,CAAC,UAAU,CAAC,CAChB,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CACvB,QAAQ,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,CACnC,WAAW,CAAC,CAAC,WAAW,CAAC,CACzB,gBAAgB,CAAC,CAAC,mBAAmB,EAAE,CAAC,CACxC,QAAQ,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,CACnC,SAAS,CAAC,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,CACpC,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,CAChC,gBAAgB,CAChB,WAAW,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAC/B,WAAW,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAC/B,KAAK,CAAC,MAAM,CACZ,MAAM,CAAC,MAAM,EAEf;GAAA,EAAE,GAAG,CACN;EAAA,EAAE,GAAG,CAAC,CACN,CAAA;AACF,CAAC"}
|
|
@@ -1,15 +1,91 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { insertNode as _$insertNode } from "@opentui/solid";
|
|
2
|
+
import { createComponent as _$createComponent } from "@opentui/solid";
|
|
3
|
+
import { effect as _$effect } from "@opentui/solid";
|
|
4
|
+
import { insert as _$insert } from "@opentui/solid";
|
|
5
|
+
import { memo as _$memo } from "@opentui/solid";
|
|
6
|
+
import { spread as _$spread } from "@opentui/solid";
|
|
7
|
+
import { setProp as _$setProp } from "@opentui/solid";
|
|
8
|
+
import { createElement as _$createElement } from "@opentui/solid";
|
|
2
9
|
import { Show, splitProps } from "solid-js";
|
|
3
10
|
import { TextAttributes } from "@opentui/core";
|
|
4
11
|
import { useTheme } from "../context/theme.js";
|
|
5
12
|
import { Panel } from "./panel.js";
|
|
6
13
|
export function Dialog(props) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
|
|
14
|
+
const {
|
|
15
|
+
theme
|
|
16
|
+
} = useTheme();
|
|
17
|
+
const [local, rest] = splitProps(props, ["open", "title", "borderColor", "closeOnOverlayClick", "onClose", "children"]);
|
|
18
|
+
return _$createComponent(Show, {
|
|
19
|
+
get when() {
|
|
20
|
+
return local.open;
|
|
21
|
+
},
|
|
22
|
+
get children() {
|
|
23
|
+
var _el$ = _$createElement("box"),
|
|
24
|
+
_el$2 = _$createElement("box"),
|
|
25
|
+
_el$3 = _$createElement("box");
|
|
26
|
+
_$insertNode(_el$, _el$2);
|
|
27
|
+
_$insertNode(_el$, _el$3);
|
|
28
|
+
_$setProp(_el$, "position", "absolute");
|
|
29
|
+
_$setProp(_el$, "top", 0);
|
|
30
|
+
_$setProp(_el$, "left", 0);
|
|
31
|
+
_$setProp(_el$, "width", "100%");
|
|
32
|
+
_$setProp(_el$, "height", "100%");
|
|
33
|
+
_$setProp(_el$, "zIndex", 900);
|
|
34
|
+
_$setProp(_el$2, "position", "absolute");
|
|
35
|
+
_$setProp(_el$2, "top", 0);
|
|
36
|
+
_$setProp(_el$2, "left", 0);
|
|
37
|
+
_$setProp(_el$2, "width", "100%");
|
|
38
|
+
_$setProp(_el$2, "height", "100%");
|
|
39
|
+
_$setProp(_el$2, "opacity", 0.8);
|
|
40
|
+
_$setProp(_el$2, "onMouseUp", () => {
|
|
41
|
+
if (local.closeOnOverlayClick === false) return;
|
|
42
|
+
local.onClose?.();
|
|
43
|
+
});
|
|
44
|
+
_$setProp(_el$3, "position", "absolute");
|
|
45
|
+
_$setProp(_el$3, "top", "15%");
|
|
46
|
+
_$setProp(_el$3, "left", "15%");
|
|
47
|
+
_$setProp(_el$3, "width", "70%");
|
|
48
|
+
_$setProp(_el$3, "maxHeight", "70%");
|
|
49
|
+
_$setProp(_el$3, "zIndex", 901);
|
|
50
|
+
_$spread(_el$3, rest, true);
|
|
51
|
+
_$insert(_el$3, _$createComponent(Panel, {
|
|
52
|
+
variant: "panel",
|
|
53
|
+
get borderColor() {
|
|
54
|
+
return local.borderColor ?? theme.borderActive;
|
|
55
|
+
},
|
|
56
|
+
paddingX: 2,
|
|
57
|
+
paddingY: 1,
|
|
58
|
+
get children() {
|
|
59
|
+
return [_$createComponent(Show, {
|
|
60
|
+
get when() {
|
|
61
|
+
return local.title;
|
|
62
|
+
},
|
|
63
|
+
get children() {
|
|
64
|
+
return [(() => {
|
|
65
|
+
var _el$4 = _$createElement("text");
|
|
66
|
+
_$insert(_el$4, () => local.title);
|
|
67
|
+
_$effect(_p$ => {
|
|
68
|
+
var _v$ = theme.text,
|
|
69
|
+
_v$2 = TextAttributes.BOLD;
|
|
70
|
+
_v$ !== _p$.e && (_p$.e = _$setProp(_el$4, "fg", _v$, _p$.e));
|
|
71
|
+
_v$2 !== _p$.t && (_p$.t = _$setProp(_el$4, "attributes", _v$2, _p$.t));
|
|
72
|
+
return _p$;
|
|
73
|
+
}, {
|
|
74
|
+
e: undefined,
|
|
75
|
+
t: undefined
|
|
76
|
+
});
|
|
77
|
+
return _el$4;
|
|
78
|
+
})(), (() => {
|
|
79
|
+
var _el$5 = _$createElement("box");
|
|
80
|
+
_$setProp(_el$5, "height", 1);
|
|
81
|
+
return _el$5;
|
|
82
|
+
})()];
|
|
83
|
+
}
|
|
84
|
+
}), _$memo(() => local.children)];
|
|
85
|
+
}
|
|
86
|
+
}));
|
|
87
|
+
_$effect(_$p => _$setProp(_el$2, "backgroundColor", theme.background, _$p));
|
|
88
|
+
return _el$;
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialog.jsx","sourceRoot":"","sources":["../../src/components/dialog.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAa,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAWlC,MAAM,UAAU,MAAM,CAAC,KAAkB;IACxC,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAA;IAC5B,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAA;IAEvH,OAAO,CACN,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CACtB;GAAA,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAChF;IAAA,CAAC,GAAG,CACH,QAAQ,CAAC,UAAU,CACnB,GAAG,CAAC,CAAC,CAAC,CAAC,CACP,IAAI,CAAC,CAAC,CAAC,CAAC,CACR,KAAK,CAAC,MAAM,CACZ,MAAM,CAAC,MAAM,CACb,eAAe,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAClC,OAAO,CAAC,CAAC,GAAG,CAAC,CACb,SAAS,CAAC,CAAC,GAAG,EAAE;YACf,IAAI,KAAK,CAAC,mBAAmB,KAAK,KAAK;gBAAE,OAAM;YAC/C,KAAK,CAAC,OAAO,EAAE,EAAE,CAAA;QAClB,CAAC,CAAC,EAEH;IAAA,CAAC,GAAG,CACH,QAAQ,CAAC,UAAU,CACnB,GAAG,CAAC,KAAK,CACT,IAAI,CAAC,KAAK,CACV,KAAK,CAAC,KAAK,CACX,SAAS,CAAC,KAAK,CACf,MAAM,CAAC,CAAC,GAAG,CAAC,CACZ,IAAI,IAAI,CAAC,CAET;KAAA,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CACrG;MAAA,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CACvB;OAAA,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CACrD;QAAA,CAAC,KAAK,CAAC,KAAK,CACb;OAAA,EAAE,IAAI,CACN;OAAA,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAChB;MAAA,EAAE,IAAI,CACN;MAAA,CAAC,KAAK,CAAC,QAAQ,CAChB;KAAA,EAAE,KAAK,CACR;IAAA,EAAE,GAAG,CACN;GAAA,EAAE,GAAG,CACN;EAAA,EAAE,IAAI,CAAC,CACP,CAAA;AACF,CAAC"}
|
package/dist/components/diff.js
CHANGED
|
@@ -1,18 +1,84 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { setProp as _$setProp } from "@opentui/solid";
|
|
2
|
+
import { spread as _$spread } from "@opentui/solid";
|
|
3
|
+
import { mergeProps as _$mergeProps } from "@opentui/solid";
|
|
4
|
+
import { memo as _$memo } from "@opentui/solid";
|
|
5
|
+
import { createElement as _$createElement } from "@opentui/solid";
|
|
2
6
|
import { splitProps } from "solid-js";
|
|
3
7
|
import { getTreeSitterClient } from "@opentui/core";
|
|
4
8
|
import { useTerminalDimensions } from "../context/terminal.js";
|
|
5
9
|
import { useTheme } from "../context/theme.js";
|
|
6
10
|
export function Diff(props) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
return (
|
|
17
|
-
}
|
|
18
|
-
|
|
11
|
+
const dimensions = useTerminalDimensions();
|
|
12
|
+
const {
|
|
13
|
+
theme,
|
|
14
|
+
syntaxStyle
|
|
15
|
+
} = useTheme();
|
|
16
|
+
const [local, rest] = splitProps(props, ["diffText", "filetype", "view", "wrapMode"]);
|
|
17
|
+
const computedView = () => {
|
|
18
|
+
const requested = local.view ?? "auto";
|
|
19
|
+
if (requested === "unified" || requested === "split") return requested;
|
|
20
|
+
return dimensions().width > 120 ? "split" : "unified";
|
|
21
|
+
};
|
|
22
|
+
return (() => {
|
|
23
|
+
var _el$ = _$createElement("diff");
|
|
24
|
+
_$setProp(_el$, "syntaxStyle", syntaxStyle);
|
|
25
|
+
_$setProp(_el$, "showLineNumbers", true);
|
|
26
|
+
_$spread(_el$, _$mergeProps({
|
|
27
|
+
get diff() {
|
|
28
|
+
return local.diffText;
|
|
29
|
+
},
|
|
30
|
+
get view() {
|
|
31
|
+
return computedView();
|
|
32
|
+
},
|
|
33
|
+
get filetype() {
|
|
34
|
+
return local.filetype ?? "text";
|
|
35
|
+
},
|
|
36
|
+
get wrapMode() {
|
|
37
|
+
return local.wrapMode ?? "word";
|
|
38
|
+
},
|
|
39
|
+
get treeSitterClient() {
|
|
40
|
+
return getTreeSitterClient();
|
|
41
|
+
},
|
|
42
|
+
get lineNumberFg() {
|
|
43
|
+
return theme.diffLineNumberFg;
|
|
44
|
+
},
|
|
45
|
+
get lineNumberBg() {
|
|
46
|
+
return theme.diffLineNumberBg;
|
|
47
|
+
},
|
|
48
|
+
get addedBg() {
|
|
49
|
+
return theme.diffAddedBg;
|
|
50
|
+
},
|
|
51
|
+
get removedBg() {
|
|
52
|
+
return theme.diffRemovedBg;
|
|
53
|
+
},
|
|
54
|
+
get contextBg() {
|
|
55
|
+
return theme.diffContextBg;
|
|
56
|
+
},
|
|
57
|
+
get addedContentBg() {
|
|
58
|
+
return theme.diffHighlightAddedBg;
|
|
59
|
+
},
|
|
60
|
+
get removedContentBg() {
|
|
61
|
+
return theme.diffHighlightRemovedBg;
|
|
62
|
+
},
|
|
63
|
+
get addedSignColor() {
|
|
64
|
+
return theme.diffAddedSign;
|
|
65
|
+
},
|
|
66
|
+
get removedSignColor() {
|
|
67
|
+
return theme.diffRemovedSign;
|
|
68
|
+
},
|
|
69
|
+
get addedLineNumberBg() {
|
|
70
|
+
return theme.diffAddedLineNumberBg;
|
|
71
|
+
},
|
|
72
|
+
get removedLineNumberBg() {
|
|
73
|
+
return theme.diffRemovedLineNumberBg;
|
|
74
|
+
},
|
|
75
|
+
get selectionBg() {
|
|
76
|
+
return theme.selectionBg;
|
|
77
|
+
},
|
|
78
|
+
get selectionFg() {
|
|
79
|
+
return theme.selectionFg;
|
|
80
|
+
}
|
|
81
|
+
}, rest), false);
|
|
82
|
+
return _el$;
|
|
83
|
+
})();
|
|
84
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff.jsx","sourceRoot":"","sources":["../../src/components/diff.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAa9C,MAAM,UAAU,IAAI,CAAC,KAAgB;IACpC,MAAM,UAAU,GAAG,qBAAqB,EAAE,CAAA;IAC1C,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,QAAQ,EAAE,CAAA;IAEzC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAA;IAErF,MAAM,YAAY,GAAG,GAAwB,EAAE;QAC9C,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,IAAI,MAAM,CAAA;QACtC,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,OAAO;YAAE,OAAO,SAAS,CAAA;QACtE,OAAO,UAAU,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;IACtD,CAAC,CAAA;IAED,OAAO,CACN,CAAC,IAAI,CACJ,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CACrB,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC,CACrB,QAAQ,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,CACnC,QAAQ,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,CACnC,WAAW,CAAC,CAAC,WAAW,CAAC,CACzB,gBAAgB,CAAC,CAAC,mBAAmB,EAAE,CAAC,CACxC,eAAe,CACf,YAAY,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CACrC,YAAY,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CACrC,OAAO,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAC3B,SAAS,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAC/B,SAAS,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAC/B,cAAc,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAC3C,gBAAgB,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAC/C,cAAc,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CACpC,gBAAgB,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CACxC,iBAAiB,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAC/C,mBAAmB,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,CACnD,WAAW,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAC/B,WAAW,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAC/B,IAAI,IAAI,CAAC,EACR,CACF,CAAA;AACF,CAAC"}
|
|
@@ -1,14 +1,47 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { setProp as _$setProp } from "@opentui/solid";
|
|
2
|
+
import { spread as _$spread } from "@opentui/solid";
|
|
3
|
+
import { mergeProps as _$mergeProps } from "@opentui/solid";
|
|
4
|
+
import { memo as _$memo } from "@opentui/solid";
|
|
5
|
+
import { createElement as _$createElement } from "@opentui/solid";
|
|
2
6
|
import { splitProps } from "solid-js";
|
|
3
7
|
import { useTheme } from "../context/theme.js";
|
|
4
8
|
export function Divider(props) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
return
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
const {
|
|
10
|
+
theme
|
|
11
|
+
} = useTheme();
|
|
12
|
+
const [local, rest] = splitProps(props, ["orientation", "color"]);
|
|
13
|
+
const color = () => local.color ?? theme.borderSubtle;
|
|
14
|
+
const orientation = () => local.orientation ?? "horizontal";
|
|
15
|
+
if (orientation() === "vertical") {
|
|
16
|
+
return (() => {
|
|
17
|
+
var _el$ = _$createElement("box");
|
|
18
|
+
_$setProp(_el$, "border", ["left"]);
|
|
19
|
+
_$setProp(_el$, "width", 1);
|
|
20
|
+
_$setProp(_el$, "flexShrink", 0);
|
|
21
|
+
_$spread(_el$, _$mergeProps({
|
|
22
|
+
get borderColor() {
|
|
23
|
+
return color();
|
|
24
|
+
},
|
|
25
|
+
get height() {
|
|
26
|
+
return rest.height ?? "100%";
|
|
27
|
+
}
|
|
28
|
+
}, rest), false);
|
|
29
|
+
return _el$;
|
|
30
|
+
})();
|
|
31
|
+
}
|
|
32
|
+
return (() => {
|
|
33
|
+
var _el$2 = _$createElement("box");
|
|
34
|
+
_$setProp(_el$2, "border", ["top"]);
|
|
35
|
+
_$setProp(_el$2, "height", 1);
|
|
36
|
+
_$setProp(_el$2, "flexShrink", 0);
|
|
37
|
+
_$spread(_el$2, _$mergeProps({
|
|
38
|
+
get borderColor() {
|
|
39
|
+
return color();
|
|
40
|
+
},
|
|
41
|
+
get width() {
|
|
42
|
+
return rest.width ?? "100%";
|
|
43
|
+
}
|
|
44
|
+
}, rest), false);
|
|
45
|
+
return _el$2;
|
|
46
|
+
})();
|
|
47
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"divider.jsx","sourceRoot":"","sources":["../../src/components/divider.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAa,MAAM,qBAAqB,CAAA;AASzD,MAAM,UAAU,OAAO,CAAC,KAAmB;IAC1C,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAA;IAC5B,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAA;IAEjE,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,YAAY,CAAA;IACrD,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,WAAW,IAAI,YAAY,CAAA;IAE3D,IAAI,WAAW,EAAE,KAAK,UAAU,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,EAAG,CAAA;IACzH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,EAAG,CAAA;AACvH,CAAC"}
|