@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.
Files changed (45) hide show
  1. package/dist/app.js +17 -15
  2. package/dist/app.jsx.map +1 -0
  3. package/dist/components/badge.js +60 -24
  4. package/dist/components/{badge.js.map → badge.jsx.map} +1 -1
  5. package/dist/components/code-block.js +110 -17
  6. package/dist/components/code-block.jsx.map +1 -0
  7. package/dist/components/dialog.js +86 -10
  8. package/dist/components/dialog.jsx.map +1 -0
  9. package/dist/components/diff.js +79 -13
  10. package/dist/components/diff.jsx.map +1 -0
  11. package/dist/components/divider.js +44 -11
  12. package/dist/components/divider.jsx.map +1 -0
  13. package/dist/components/editor.js +174 -127
  14. package/dist/components/{editor.js.map → editor.jsx.map} +1 -1
  15. package/dist/components/image.js +292 -228
  16. package/dist/components/{image.js.map → image.jsx.map} +1 -1
  17. package/dist/components/loader.js +50 -6
  18. package/dist/components/loader.jsx.map +1 -0
  19. package/dist/components/markdown.js +35 -18
  20. package/dist/components/markdown.jsx.map +1 -0
  21. package/dist/components/panel.js +86 -42
  22. package/dist/components/{panel.js.map → panel.jsx.map} +1 -1
  23. package/dist/components/select-list.js +193 -103
  24. package/dist/components/select-list.jsx.map +1 -0
  25. package/dist/components/spacer.js +17 -12
  26. package/dist/components/spacer.jsx.map +1 -0
  27. package/dist/components/toast.js +115 -34
  28. package/dist/components/toast.jsx.map +1 -0
  29. package/dist/context/terminal.js +1 -2
  30. package/dist/context/terminal.jsx.map +1 -0
  31. package/dist/context/theme.js +779 -555
  32. package/dist/context/theme.jsx.map +1 -0
  33. package/package.json +4 -4
  34. package/dist/app.js.map +0 -1
  35. package/dist/components/code-block.js.map +0 -1
  36. package/dist/components/dialog.js.map +0 -1
  37. package/dist/components/diff.js.map +0 -1
  38. package/dist/components/divider.js.map +0 -1
  39. package/dist/components/loader.js.map +0 -1
  40. package/dist/components/markdown.js.map +0 -1
  41. package/dist/components/select-list.js.map +0 -1
  42. package/dist/components/spacer.js.map +0 -1
  43. package/dist/components/toast.js.map +0 -1
  44. package/dist/context/terminal.js.map +0 -1
  45. 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
- return new Promise((resolve) => {
14
- const { onExit, ...renderConfig } = config;
15
- render(rootComponent, {
16
- targetFps: 30,
17
- exitOnCtrlC: false,
18
- useKittyKeyboard: {},
19
- ...renderConfig,
20
- onDestroy: async () => {
21
- renderConfig.onDestroy?.();
22
- await onExit?.();
23
- resolve();
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
- //# sourceMappingURL=app.js.map
29
+ });
30
+ }
@@ -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"}
@@ -1,28 +1,64 @@
1
- import { jsx as _jsx } from "solid-js/h/jsx-runtime";
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
- const { theme } = useTheme();
7
- const [local, rest] = splitProps(props, ["label", "variant", "fg", "bg"]);
8
- const resolvedFg = () => {
9
- if (local.fg)
10
- return local.fg;
11
- switch (local.variant ?? "neutral") {
12
- case "info":
13
- return theme.info;
14
- case "success":
15
- return theme.success;
16
- case "warning":
17
- return theme.warning;
18
- case "error":
19
- return theme.error;
20
- case "neutral":
21
- default:
22
- return theme.textMuted;
23
- }
24
- };
25
- const resolvedBg = () => local.bg ?? theme.backgroundElement;
26
- return (_jsx("box", { backgroundColor: resolvedBg(), border: true, borderColor: theme.borderSubtle, paddingLeft: 1, paddingRight: 1, paddingTop: 0, paddingBottom: 0, flexShrink: 0, ...rest, children: _jsx("text", { fg: resolvedFg(), attributes: TextAttributes.BOLD, children: local.label }) }));
27
- }
28
- //# sourceMappingURL=badge.js.map
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.js","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,cACC,eAAe,EAAE,UAAU,EAAE,EAC7B,MAAM,QACN,WAAW,EAAE,KAAK,CAAC,YAAY,EAC/B,WAAW,EAAE,CAAC,EACd,YAAY,EAAE,CAAC,EACf,UAAU,EAAE,CAAC,EACb,aAAa,EAAE,CAAC,EAChB,UAAU,EAAE,CAAC,KACT,IAAI,YAER,eAAM,EAAE,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,cAAc,CAAC,IAAI,YACrD,KAAK,CAAC,KAAK,GACN,GACF,CACN,CAAA;AACF,CAAC"}
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 { jsx as _jsx, jsxs as _jsxs } from "solid-js/h/jsx-runtime";
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
- const { theme, syntaxStyle } = useTheme();
7
- const [local, rest] = splitProps(props, [
8
- "content",
9
- "filetype",
10
- "title",
11
- "showLineNumbers",
12
- "wrapMode",
13
- "streaming",
14
- "conceal",
15
- ]);
16
- const [codeRef, setCodeRef] = createSignal(undefined);
17
- const showLineNumbers = () => local.showLineNumbers ?? true;
18
- // Minimal: no border, subtle bg tint
19
- return (_jsxs("box", { flexDirection: "column", backgroundColor: theme.backgroundElement, paddingLeft: 1, paddingRight: 1, ...rest, children: [_jsx(Show, { when: local.title, children: _jsx("box", { flexDirection: "row", alignItems: "center", gap: 1, paddingBottom: 1, children: _jsx("text", { fg: theme.textMuted, children: local.title }) }) }), _jsxs("box", { flexDirection: "row", children: [_jsx(Show, { when: showLineNumbers() && codeRef(), children: (ref) => (_jsx("line_number", { target: ref(), fg: theme.diffLineNumberFg, bg: theme.diffLineNumberBg, paddingRight: 1, flexShrink: 0 })) }), _jsx("code", { ref: setCodeRef, content: local.content, filetype: local.filetype ?? "text", syntaxStyle: syntaxStyle, treeSitterClient: getTreeSitterClient(), wrapMode: local.wrapMode ?? "word", streaming: local.streaming ?? false, conceal: local.conceal ?? false, drawUnstyledText: true, selectionBg: theme.selectionBg, selectionFg: theme.selectionFg, width: "100%", height: "100%" })] })] }));
20
- }
21
- //# sourceMappingURL=code-block.js.map
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 { jsx as _jsx, jsxs as _jsxs } from "solid-js/h/jsx-runtime";
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
- const { theme } = useTheme();
8
- const [local, rest] = splitProps(props, ["open", "title", "borderColor", "closeOnOverlayClick", "onClose", "children"]);
9
- return (_jsx(Show, { when: local.open, children: _jsxs("box", { position: "absolute", top: 0, left: 0, width: "100%", height: "100%", zIndex: 900, children: [_jsx("box", { position: "absolute", top: 0, left: 0, width: "100%", height: "100%", backgroundColor: theme.background, opacity: 0.8, onMouseUp: () => {
10
- if (local.closeOnOverlayClick === false)
11
- return;
12
- local.onClose?.();
13
- } }), _jsx("box", { position: "absolute", top: "15%", left: "15%", width: "70%", maxHeight: "70%", zIndex: 901, ...rest, children: _jsxs(Panel, { variant: "panel", borderColor: local.borderColor ?? theme.borderActive, paddingX: 2, paddingY: 1, children: [_jsxs(Show, { when: local.title, children: [_jsx("text", { fg: theme.text, attributes: TextAttributes.BOLD, children: local.title }), _jsx("box", { height: 1 })] }), local.children] }) })] }) }));
14
- }
15
- //# sourceMappingURL=dialog.js.map
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"}
@@ -1,18 +1,84 @@
1
- import { jsx as _jsx } from "solid-js/h/jsx-runtime";
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
- const dimensions = useTerminalDimensions();
8
- const { theme, syntaxStyle } = useTheme();
9
- const [local, rest] = splitProps(props, ["diffText", "filetype", "view", "wrapMode"]);
10
- const computedView = () => {
11
- const requested = local.view ?? "auto";
12
- if (requested === "unified" || requested === "split")
13
- return requested;
14
- return dimensions().width > 120 ? "split" : "unified";
15
- };
16
- return (_jsx("diff", { diff: local.diffText, view: computedView(), filetype: local.filetype ?? "text", wrapMode: local.wrapMode ?? "word", syntaxStyle: syntaxStyle, treeSitterClient: getTreeSitterClient(), showLineNumbers: true, lineNumberFg: theme.diffLineNumberFg, lineNumberBg: theme.diffLineNumberBg, addedBg: theme.diffAddedBg, removedBg: theme.diffRemovedBg, contextBg: theme.diffContextBg, addedContentBg: theme.diffHighlightAddedBg, removedContentBg: theme.diffHighlightRemovedBg, addedSignColor: theme.diffAddedSign, removedSignColor: theme.diffRemovedSign, addedLineNumberBg: theme.diffAddedLineNumberBg, removedLineNumberBg: theme.diffRemovedLineNumberBg, selectionBg: theme.selectionBg, selectionFg: theme.selectionFg, ...rest }));
17
- }
18
- //# sourceMappingURL=diff.js.map
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 { jsx as _jsx } from "solid-js/h/jsx-runtime";
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
- const { theme } = useTheme();
6
- const [local, rest] = splitProps(props, ["orientation", "color"]);
7
- const color = () => local.color ?? theme.borderSubtle;
8
- const orientation = () => local.orientation ?? "horizontal";
9
- if (orientation() === "vertical") {
10
- return _jsx("box", { border: ["left"], borderColor: color(), width: 1, height: rest.height ?? "100%", flexShrink: 0, ...rest });
11
- }
12
- return _jsx("box", { border: ["top"], borderColor: color(), height: 1, width: rest.width ?? "100%", flexShrink: 0, ...rest });
13
- }
14
- //# sourceMappingURL=divider.js.map
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"}