wepscli 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/README.md +293 -0
  2. package/dist/WEPSCLI-shell/agent-runtime.js +824 -0
  3. package/dist/WEPSCLI-shell/agent-runtime.js.map +1 -0
  4. package/dist/WEPSCLI-shell/approval-overlay.js +275 -0
  5. package/dist/WEPSCLI-shell/approval-overlay.js.map +1 -0
  6. package/dist/WEPSCLI-shell/chat-components.js +760 -0
  7. package/dist/WEPSCLI-shell/chat-components.js.map +1 -0
  8. package/dist/WEPSCLI-shell/components.js +850 -0
  9. package/dist/WEPSCLI-shell/components.js.map +1 -0
  10. package/dist/WEPSCLI-shell/config-overlays.js +205 -0
  11. package/dist/WEPSCLI-shell/config-overlays.js.map +1 -0
  12. package/dist/WEPSCLI-shell/debug-log.js +16 -0
  13. package/dist/WEPSCLI-shell/debug-log.js.map +1 -0
  14. package/dist/WEPSCLI-shell/file-change-preview.js +261 -0
  15. package/dist/WEPSCLI-shell/file-change-preview.js.map +1 -0
  16. package/dist/WEPSCLI-shell/helpers.js +112 -0
  17. package/dist/WEPSCLI-shell/helpers.js.map +1 -0
  18. package/dist/WEPSCLI-shell/index.js +3 -0
  19. package/dist/WEPSCLI-shell/index.js.map +1 -0
  20. package/dist/WEPSCLI-shell/provider-add-flow.js +406 -0
  21. package/dist/WEPSCLI-shell/provider-add-flow.js.map +1 -0
  22. package/dist/WEPSCLI-shell/run-wepscli-shell.js +21 -0
  23. package/dist/WEPSCLI-shell/run-wepscli-shell.js.map +1 -0
  24. package/dist/WEPSCLI-shell/runtime-recovery.js +37 -0
  25. package/dist/WEPSCLI-shell/runtime-recovery.js.map +1 -0
  26. package/dist/WEPSCLI-shell/runtime-status.js +66 -0
  27. package/dist/WEPSCLI-shell/runtime-status.js.map +1 -0
  28. package/dist/WEPSCLI-shell/shell-app.js +1047 -0
  29. package/dist/WEPSCLI-shell/shell-app.js.map +1 -0
  30. package/dist/WEPSCLI-shell/shell-modes.js +77 -0
  31. package/dist/WEPSCLI-shell/shell-modes.js.map +1 -0
  32. package/dist/WEPSCLI-shell/slash-commands.js +135 -0
  33. package/dist/WEPSCLI-shell/slash-commands.js.map +1 -0
  34. package/dist/WEPSCLI-shell/theme.js +19 -0
  35. package/dist/WEPSCLI-shell/theme.js.map +1 -0
  36. package/dist/WEPSCLI-shell/tool-approval.js +85 -0
  37. package/dist/WEPSCLI-shell/tool-approval.js.map +1 -0
  38. package/dist/WEPSCLI-shell/tool-diff.js +76 -0
  39. package/dist/WEPSCLI-shell/tool-diff.js.map +1 -0
  40. package/dist/WEPSCLI-shell/tool-file-changes.js +268 -0
  41. package/dist/WEPSCLI-shell/tool-file-changes.js.map +1 -0
  42. package/dist/WEPSCLI-shell/tool-message-detail.js +138 -0
  43. package/dist/WEPSCLI-shell/tool-message-detail.js.map +1 -0
  44. package/dist/WEPSCLI-shell/tool-messages.js +145 -0
  45. package/dist/WEPSCLI-shell/tool-messages.js.map +1 -0
  46. package/dist/WEPSCLI-shell/transcript-panel.js +372 -0
  47. package/dist/WEPSCLI-shell/transcript-panel.js.map +1 -0
  48. package/dist/WEPSCLI-shell/transcript-state.js +62 -0
  49. package/dist/WEPSCLI-shell/transcript-state.js.map +1 -0
  50. package/dist/WEPSCLI-shell/types.js +1 -0
  51. package/dist/WEPSCLI-shell/types.js.map +1 -0
  52. package/dist/cli.js +11 -0
  53. package/dist/cli.js.map +1 -0
  54. package/dist/config.js +40 -0
  55. package/dist/config.js.map +1 -0
  56. package/dist/index.js +4 -0
  57. package/dist/index.js.map +1 -0
  58. package/dist/main.js +140 -0
  59. package/dist/main.js.map +1 -0
  60. package/dist/onboarding/action-screen.js +90 -0
  61. package/dist/onboarding/action-screen.js.map +1 -0
  62. package/dist/onboarding/framed-screen.js +35 -0
  63. package/dist/onboarding/framed-screen.js.map +1 -0
  64. package/dist/onboarding/onboarding-app.js +312 -0
  65. package/dist/onboarding/onboarding-app.js.map +1 -0
  66. package/dist/onboarding/run-onboarding.js +23 -0
  67. package/dist/onboarding/run-onboarding.js.map +1 -0
  68. package/dist/onboarding/select-screen.js +21 -0
  69. package/dist/onboarding/select-screen.js.map +1 -0
  70. package/dist/onboarding/summary-screen.js +23 -0
  71. package/dist/onboarding/summary-screen.js.map +1 -0
  72. package/dist/onboarding/text-input-screen.js +55 -0
  73. package/dist/onboarding/text-input-screen.js.map +1 -0
  74. package/dist/onboarding/theme.js +26 -0
  75. package/dist/onboarding/theme.js.map +1 -0
  76. package/dist/provider-profiles/api-key-store.js +51 -0
  77. package/dist/provider-profiles/api-key-store.js.map +1 -0
  78. package/dist/provider-profiles/defaults.js +18 -0
  79. package/dist/provider-profiles/defaults.js.map +1 -0
  80. package/dist/provider-profiles/fetch-models.js +53 -0
  81. package/dist/provider-profiles/fetch-models.js.map +1 -0
  82. package/dist/provider-profiles/index.js +6 -0
  83. package/dist/provider-profiles/index.js.map +1 -0
  84. package/dist/provider-profiles/provider-profile-service.js +223 -0
  85. package/dist/provider-profiles/provider-profile-service.js.map +1 -0
  86. package/dist/provider-profiles/providers-config-store.js +17 -0
  87. package/dist/provider-profiles/providers-config-store.js.map +1 -0
  88. package/dist/provider-profiles/types.js +1 -0
  89. package/dist/provider-profiles/types.js.map +1 -0
  90. package/dist/session-history/session-history-service.js +142 -0
  91. package/dist/session-history/session-history-service.js.map +1 -0
  92. package/dist/shell/animator.js +30 -0
  93. package/dist/shell/animator.js.map +1 -0
  94. package/dist/shell/clickables.js +101 -0
  95. package/dist/shell/clickables.js.map +1 -0
  96. package/dist/shell/dashboard-shell.js +292 -0
  97. package/dist/shell/dashboard-shell.js.map +1 -0
  98. package/dist/shell/index.js +5 -0
  99. package/dist/shell/index.js.map +1 -0
  100. package/dist/shell/keymap.js +14 -0
  101. package/dist/shell/keymap.js.map +1 -0
  102. package/dist/shell/mouse.js +39 -0
  103. package/dist/shell/mouse.js.map +1 -0
  104. package/dist/shell/render.js +122 -0
  105. package/dist/shell/render.js.map +1 -0
  106. package/dist/shell/run-shell.js +36 -0
  107. package/dist/shell/run-shell.js.map +1 -0
  108. package/dist/shell/theme.js +56 -0
  109. package/dist/shell/theme.js.map +1 -0
  110. package/dist/storage/locked-json-file.js +88 -0
  111. package/dist/storage/locked-json-file.js.map +1 -0
  112. package/dist/workbench/animator.js +30 -0
  113. package/dist/workbench/animator.js.map +1 -0
  114. package/dist/workbench/index.js +6 -0
  115. package/dist/workbench/index.js.map +1 -0
  116. package/dist/workbench/mouse.js +39 -0
  117. package/dist/workbench/mouse.js.map +1 -0
  118. package/dist/workbench/render.js +82 -0
  119. package/dist/workbench/render.js.map +1 -0
  120. package/dist/workbench/renderer.js +364 -0
  121. package/dist/workbench/renderer.js.map +1 -0
  122. package/dist/workbench/run-workbench.js +36 -0
  123. package/dist/workbench/run-workbench.js.map +1 -0
  124. package/dist/workbench/theme.js +63 -0
  125. package/dist/workbench/theme.js.map +1 -0
  126. package/dist/workbench/types.js +1 -0
  127. package/dist/workbench/types.js.map +1 -0
  128. package/dist/workbench/workbench-shell.js +649 -0
  129. package/dist/workbench/workbench-shell.js.map +1 -0
  130. package/package.json +65 -0
@@ -0,0 +1,850 @@
1
+ import { use as _$use } from "@opentui/solid";
2
+ import { effect as _$effect } from "@opentui/solid";
3
+ import { insert as _$insert } from "@opentui/solid";
4
+ import { createComponent as _$createComponent } from "@opentui/solid";
5
+ import { memo as _$memo } from "@opentui/solid";
6
+ import { createTextNode as _$createTextNode } from "@opentui/solid";
7
+ import { insertNode as _$insertNode } from "@opentui/solid";
8
+ import { setProp as _$setProp } from "@opentui/solid";
9
+ import { createElement as _$createElement } from "@opentui/solid";
10
+ import { useKeyboard } from "@opentui/solid";
11
+ import { For, Show, createEffect, createMemo, createSignal } from "solid-js";
12
+ import { getSlashCommands } from "./slash-commands.js";
13
+ import { wepscliShellTheme as theme } from "./theme.js";
14
+ export function HeaderBar(props) {
15
+ return (() => {
16
+ var _el$ = _$createElement("box"),
17
+ _el$2 = _$createElement("box"),
18
+ _el$3 = _$createElement("text"),
19
+ _el$5 = _$createElement("text"),
20
+ _el$7 = _$createElement("box");
21
+ _$insertNode(_el$, _el$2);
22
+ _$insertNode(_el$, _el$7);
23
+ _$setProp(_el$, "flexShrink", 0);
24
+ _$setProp(_el$, "paddingLeft", 2);
25
+ _$setProp(_el$, "paddingRight", 2);
26
+ _$setProp(_el$, "paddingTop", 1);
27
+ _$setProp(_el$, "paddingBottom", 1);
28
+ _$setProp(_el$, "flexDirection", "column");
29
+ _$setProp(_el$, "gap", 1);
30
+ _$insertNode(_el$2, _el$3);
31
+ _$insertNode(_el$2, _el$5);
32
+ _$setProp(_el$2, "flexDirection", "row");
33
+ _$setProp(_el$2, "justifyContent", "space-between");
34
+ _$insertNode(_el$3, _$createTextNode(`WEPSCLI-SHELL`));
35
+ _$insertNode(_el$5, _$createTextNode(`Tab focus | h home | p providers | m models | s sessions`));
36
+ _$setProp(_el$7, "flexDirection", "row");
37
+ _$setProp(_el$7, "gap", 1);
38
+ _$insert(_el$7, _$createComponent(HeaderChip, {
39
+ label: "Home",
40
+ get tone() {
41
+ return props.activeView === "home" ? "accent" : "muted";
42
+ },
43
+ onClick: () => props.onNavigate("home")
44
+ }), null);
45
+ _$insert(_el$7, _$createComponent(HeaderChip, {
46
+ label: "Providers",
47
+ get tone() {
48
+ return props.activeView === "providers" ? "accent" : "muted";
49
+ },
50
+ onClick: () => props.onNavigate("providers")
51
+ }), null);
52
+ _$insert(_el$7, _$createComponent(HeaderChip, {
53
+ label: "History",
54
+ get tone() {
55
+ return props.activeView === "history" ? "accent" : "muted";
56
+ },
57
+ onClick: () => props.onNavigate("history")
58
+ }), null);
59
+ _$insert(_el$7, _$createComponent(HeaderSpacer, {}), null);
60
+ _$insert(_el$7, _$createComponent(HeaderChip, {
61
+ label: "New Session",
62
+ tone: "accent",
63
+ onClick: () => props.onAction("session:new")
64
+ }), null);
65
+ _$insert(_el$7, _$createComponent(HeaderChip, {
66
+ get label() {
67
+ return `Provider ${props.providerLabel}`;
68
+ },
69
+ tone: "accent",
70
+ onClick: () => props.onAction("overlay:provider")
71
+ }), null);
72
+ _$insert(_el$7, _$createComponent(HeaderChip, {
73
+ get label() {
74
+ return `Model ${props.modelLabel}`;
75
+ },
76
+ tone: "muted",
77
+ onClick: () => props.onAction("overlay:model")
78
+ }), null);
79
+ _$insert(_el$7, _$createComponent(HeaderChip, {
80
+ label: "Sessions",
81
+ tone: "muted",
82
+ onClick: () => props.onAction("overlay:session")
83
+ }), null);
84
+ _$effect(_p$ => {
85
+ var _v$ = theme.header,
86
+ _v$2 = theme.accentStrong,
87
+ _v$3 = theme.muted;
88
+ _v$ !== _p$.e && (_p$.e = _$setProp(_el$, "backgroundColor", _v$, _p$.e));
89
+ _v$2 !== _p$.t && (_p$.t = _$setProp(_el$3, "fg", _v$2, _p$.t));
90
+ _v$3 !== _p$.a && (_p$.a = _$setProp(_el$5, "fg", _v$3, _p$.a));
91
+ return _p$;
92
+ }, {
93
+ e: undefined,
94
+ t: undefined,
95
+ a: undefined
96
+ });
97
+ return _el$;
98
+ })();
99
+ }
100
+ export function MainPanel(props) {
101
+ return (() => {
102
+ var _el$8 = _$createElement("box"),
103
+ _el$9 = _$createElement("text"),
104
+ _el$0 = _$createTextNode(`Workspace [`),
105
+ _el$1 = _$createTextNode(`]`),
106
+ _el$10 = _$createElement("text"),
107
+ _el$11 = _$createElement("scrollbox"),
108
+ _el$12 = _$createElement("box"),
109
+ _el$13 = _$createElement("box"),
110
+ _el$14 = _$createElement("text");
111
+ _$insertNode(_el$8, _el$9);
112
+ _$insertNode(_el$8, _el$10);
113
+ _$insertNode(_el$8, _el$11);
114
+ _$setProp(_el$8, "flexGrow", 1);
115
+ _$setProp(_el$8, "minWidth", 0);
116
+ _$setProp(_el$8, "border", ["top", "right", "bottom", "left"]);
117
+ _$setProp(_el$8, "padding", 1);
118
+ _$setProp(_el$8, "flexDirection", "column");
119
+ _$setProp(_el$8, "gap", 1);
120
+ _$insertNode(_el$9, _el$0);
121
+ _$insertNode(_el$9, _el$1);
122
+ _$insert(_el$9, () => props.viewLabel, _el$1);
123
+ _$insert(_el$10, () => props.sectionLabel ?? "Primary actions and timeline live here.");
124
+ _$insertNode(_el$11, _el$12);
125
+ _$setProp(_el$11, "flexGrow", 1);
126
+ _$setProp(_el$11, "minHeight", 0);
127
+ _$setProp(_el$11, "scrollbarOptions", {
128
+ visible: false
129
+ });
130
+ _$insertNode(_el$12, _el$13);
131
+ _$setProp(_el$12, "flexDirection", "column");
132
+ _$setProp(_el$12, "gap", 1);
133
+ _$insert(_el$12, (() => {
134
+ var _c$ = _$memo(() => !!props.hero);
135
+ return () => _c$() ? (() => {
136
+ var _el$16 = _$createElement("box"),
137
+ _el$17 = _$createElement("text"),
138
+ _el$18 = _$createElement("text"),
139
+ _el$19 = _$createElement("box");
140
+ _$insertNode(_el$16, _el$17);
141
+ _$insertNode(_el$16, _el$18);
142
+ _$insertNode(_el$16, _el$19);
143
+ _$setProp(_el$16, "border", ["top", "right", "bottom", "left"]);
144
+ _$setProp(_el$16, "padding", 1);
145
+ _$setProp(_el$16, "flexDirection", "column");
146
+ _$setProp(_el$16, "gap", 1);
147
+ _$insert(_el$17, () => props.hero.title);
148
+ _$insert(_el$18, () => props.hero.subtitle);
149
+ _$setProp(_el$19, "flexDirection", "row");
150
+ _$setProp(_el$19, "gap", 1);
151
+ _$insert(_el$19, _$createComponent(For, {
152
+ get each() {
153
+ return props.hero.tags;
154
+ },
155
+ children: tag => _$createComponent(TagPill, {
156
+ tag: tag
157
+ })
158
+ }));
159
+ _$insert(_el$16, _$createComponent(For, {
160
+ get each() {
161
+ return props.hero.lines;
162
+ },
163
+ children: (line, index) => (() => {
164
+ var _el$20 = _$createElement("text");
165
+ _$insert(_el$20, line);
166
+ _$effect(_$p => _$setProp(_el$20, "fg", index() === 0 ? theme.text : theme.muted, _$p));
167
+ return _el$20;
168
+ })()
169
+ }), null);
170
+ _$effect(_p$ => {
171
+ var _v$1 = theme.panelAlt,
172
+ _v$10 = theme.accent,
173
+ _v$11 = theme.accentStrong,
174
+ _v$12 = theme.muted;
175
+ _v$1 !== _p$.e && (_p$.e = _$setProp(_el$16, "backgroundColor", _v$1, _p$.e));
176
+ _v$10 !== _p$.t && (_p$.t = _$setProp(_el$16, "borderColor", _v$10, _p$.t));
177
+ _v$11 !== _p$.a && (_p$.a = _$setProp(_el$17, "fg", _v$11, _p$.a));
178
+ _v$12 !== _p$.o && (_p$.o = _$setProp(_el$18, "fg", _v$12, _p$.o));
179
+ return _p$;
180
+ }, {
181
+ e: undefined,
182
+ t: undefined,
183
+ a: undefined,
184
+ o: undefined
185
+ });
186
+ return _el$16;
187
+ })() : null;
188
+ })(), _el$13);
189
+ _$insert(_el$12, _$createComponent(For, {
190
+ get each() {
191
+ return props.cards;
192
+ },
193
+ children: (card, index) => _$createComponent(CardButton, {
194
+ card: card,
195
+ get selected() {
196
+ return _$memo(() => !!props.focused)() && props.selectedIndex === index();
197
+ },
198
+ onClick: () => props.onSelect(card.id, index())
199
+ })
200
+ }), _el$13);
201
+ _$insertNode(_el$13, _el$14);
202
+ _$setProp(_el$13, "border", ["top", "right", "bottom", "left"]);
203
+ _$setProp(_el$13, "padding", 1);
204
+ _$setProp(_el$13, "flexDirection", "column");
205
+ _$setProp(_el$13, "gap", 1);
206
+ _$insertNode(_el$14, _$createTextNode(`Conversation / Activity`));
207
+ _$insert(_el$13, _$createComponent(For, {
208
+ get each() {
209
+ return props.timeline;
210
+ },
211
+ children: line => (() => {
212
+ var _el$21 = _$createElement("text");
213
+ _$insert(_el$21, line);
214
+ _$effect(_$p => _$setProp(_el$21, "fg", theme.text, _$p));
215
+ return _el$21;
216
+ })()
217
+ }), null);
218
+ _$effect(_p$ => {
219
+ var _v$4 = theme.panel,
220
+ _v$5 = theme.border,
221
+ _v$6 = theme.accent,
222
+ _v$7 = theme.muted,
223
+ _v$8 = theme.panelAlt,
224
+ _v$9 = theme.border,
225
+ _v$0 = theme.accent;
226
+ _v$4 !== _p$.e && (_p$.e = _$setProp(_el$8, "backgroundColor", _v$4, _p$.e));
227
+ _v$5 !== _p$.t && (_p$.t = _$setProp(_el$8, "borderColor", _v$5, _p$.t));
228
+ _v$6 !== _p$.a && (_p$.a = _$setProp(_el$9, "fg", _v$6, _p$.a));
229
+ _v$7 !== _p$.o && (_p$.o = _$setProp(_el$10, "fg", _v$7, _p$.o));
230
+ _v$8 !== _p$.i && (_p$.i = _$setProp(_el$13, "backgroundColor", _v$8, _p$.i));
231
+ _v$9 !== _p$.n && (_p$.n = _$setProp(_el$13, "borderColor", _v$9, _p$.n));
232
+ _v$0 !== _p$.s && (_p$.s = _$setProp(_el$14, "fg", _v$0, _p$.s));
233
+ return _p$;
234
+ }, {
235
+ e: undefined,
236
+ t: undefined,
237
+ a: undefined,
238
+ o: undefined,
239
+ i: undefined,
240
+ n: undefined,
241
+ s: undefined
242
+ });
243
+ return _el$8;
244
+ })();
245
+ }
246
+ export function InspectorPanel(props) {
247
+ return (() => {
248
+ var _el$22 = _$createElement("box"),
249
+ _el$23 = _$createElement("text"),
250
+ _el$25 = _$createElement("text"),
251
+ _el$26 = _$createElement("text");
252
+ _$insertNode(_el$22, _el$23);
253
+ _$insertNode(_el$22, _el$25);
254
+ _$insertNode(_el$22, _el$26);
255
+ _$setProp(_el$22, "width", 34);
256
+ _$setProp(_el$22, "border", ["top", "right", "bottom", "left"]);
257
+ _$setProp(_el$22, "padding", 1);
258
+ _$setProp(_el$22, "flexDirection", "column");
259
+ _$setProp(_el$22, "gap", 1);
260
+ _$insertNode(_el$23, _$createTextNode(`Inspector`));
261
+ _$insert(_el$22, _$createComponent(InspectorLine, {
262
+ label: "Onboarding",
263
+ get value() {
264
+ return props.onboardingComplete ? "Complete" : "Pending";
265
+ }
266
+ }), _el$25);
267
+ _$insert(_el$22, _$createComponent(InspectorLine, {
268
+ label: "Profiles",
269
+ get value() {
270
+ return String(props.profilesCount);
271
+ }
272
+ }), _el$25);
273
+ _$insert(_el$22, _$createComponent(InspectorLine, {
274
+ label: "Provider",
275
+ get value() {
276
+ return props.activeProvider ?? "none";
277
+ }
278
+ }), _el$25);
279
+ _$insert(_el$22, _$createComponent(InspectorLine, {
280
+ label: "Model",
281
+ get value() {
282
+ return props.activeModel ?? "none";
283
+ }
284
+ }), _el$25);
285
+ _$insert(_el$22, _$createComponent(InspectorLine, {
286
+ label: "Focus",
287
+ get value() {
288
+ return props.focusLabel;
289
+ }
290
+ }), _el$25);
291
+ _$insert(_el$25, () => props.detailTitle);
292
+ _$insert(_el$22, _$createComponent(For, {
293
+ get each() {
294
+ return props.detailLines;
295
+ },
296
+ children: (line, index) => (() => {
297
+ var _el$28 = _$createElement("text");
298
+ _$insert(_el$28, line);
299
+ _$effect(_$p => _$setProp(_el$28, "fg", index() === 0 ? theme.text : theme.muted, _$p));
300
+ return _el$28;
301
+ })()
302
+ }), _el$26);
303
+ _$insertNode(_el$26, _$createTextNode(`Todo`));
304
+ _$insert(_el$22, _$createComponent(For, {
305
+ get each() {
306
+ return props.todoLines;
307
+ },
308
+ children: line => (() => {
309
+ var _el$29 = _$createElement("text");
310
+ _$insert(_el$29, line);
311
+ _$effect(_$p => _$setProp(_el$29, "fg", theme.muted, _$p));
312
+ return _el$29;
313
+ })()
314
+ }), null);
315
+ _$effect(_p$ => {
316
+ var _v$13 = theme.panelMuted,
317
+ _v$14 = theme.border,
318
+ _v$15 = theme.accent,
319
+ _v$16 = theme.accent,
320
+ _v$17 = theme.accent;
321
+ _v$13 !== _p$.e && (_p$.e = _$setProp(_el$22, "backgroundColor", _v$13, _p$.e));
322
+ _v$14 !== _p$.t && (_p$.t = _$setProp(_el$22, "borderColor", _v$14, _p$.t));
323
+ _v$15 !== _p$.a && (_p$.a = _$setProp(_el$23, "fg", _v$15, _p$.a));
324
+ _v$16 !== _p$.o && (_p$.o = _$setProp(_el$25, "fg", _v$16, _p$.o));
325
+ _v$17 !== _p$.i && (_p$.i = _$setProp(_el$26, "fg", _v$17, _p$.i));
326
+ return _p$;
327
+ }, {
328
+ e: undefined,
329
+ t: undefined,
330
+ a: undefined,
331
+ o: undefined,
332
+ i: undefined
333
+ });
334
+ return _el$22;
335
+ })();
336
+ }
337
+ export function DockPanel(props) {
338
+ const [draftValue, setDraftValue] = createSignal(props.value);
339
+ const [slashIndex, setSlashIndex] = createSignal(0);
340
+ const slashOptions = createMemo(() => getSlashCommands(draftValue()));
341
+ createEffect(() => {
342
+ setDraftValue(props.value);
343
+ if (!props.value.trim().startsWith("/")) {
344
+ setSlashIndex(0);
345
+ }
346
+ });
347
+ useKeyboard(evt => {
348
+ if (!props.focused || slashOptions().length === 0) {
349
+ return;
350
+ }
351
+ if (evt.name === "up") {
352
+ evt.preventDefault();
353
+ setSlashIndex(current => current <= 0 ? slashOptions().length - 1 : current - 1);
354
+ return;
355
+ }
356
+ if (evt.name === "down") {
357
+ evt.preventDefault();
358
+ setSlashIndex(current => (current + 1) % slashOptions().length);
359
+ return;
360
+ }
361
+ if (evt.name === "return" && draftValue().trim().startsWith("/")) {
362
+ const command = slashOptions()[slashIndex()] ?? slashOptions()[0];
363
+ if (!command) {
364
+ return;
365
+ }
366
+ evt.preventDefault();
367
+ props.onSelectSlashCommand(command.id);
368
+ }
369
+ });
370
+ return (() => {
371
+ var _el$30 = _$createElement("box"),
372
+ _el$31 = _$createElement("box"),
373
+ _el$32 = _$createElement("box"),
374
+ _el$33 = _$createElement("box"),
375
+ _el$34 = _$createElement("input"),
376
+ _el$35 = _$createElement("text");
377
+ _$insertNode(_el$30, _el$31);
378
+ _$insertNode(_el$30, _el$32);
379
+ _$setProp(_el$30, "flexShrink", 0);
380
+ _$setProp(_el$30, "border", ["top", "right", "bottom", "left"]);
381
+ _$setProp(_el$30, "paddingLeft", 2);
382
+ _$setProp(_el$30, "paddingRight", 2);
383
+ _$setProp(_el$30, "paddingTop", 1);
384
+ _$setProp(_el$30, "paddingBottom", 1);
385
+ _$setProp(_el$30, "flexDirection", "column");
386
+ _$setProp(_el$30, "gap", 1);
387
+ _$setProp(_el$30, "marginLeft", 1);
388
+ _$setProp(_el$30, "marginRight", 1);
389
+ _$setProp(_el$31, "flexDirection", "row");
390
+ _$setProp(_el$31, "gap", 1);
391
+ _$insert(_el$31, _$createComponent(HeaderChip, {
392
+ get label() {
393
+ return `Provider ${props.activeProvider}`;
394
+ },
395
+ tone: "accent",
396
+ onClick: () => props.onAction("overlay:provider")
397
+ }), null);
398
+ _$insert(_el$31, _$createComponent(HeaderChip, {
399
+ get label() {
400
+ return `Model ${props.activeModel}`;
401
+ },
402
+ tone: "muted",
403
+ onClick: () => props.onAction("overlay:model")
404
+ }), null);
405
+ _$insert(_el$31, _$createComponent(HeaderChip, {
406
+ label: "Sessions",
407
+ tone: "muted",
408
+ onClick: () => props.onAction("overlay:session")
409
+ }), null);
410
+ _$insert(_el$31, _$createComponent(HeaderChip, {
411
+ label: "Commands",
412
+ tone: "muted",
413
+ onClick: () => props.onAction("command-menu")
414
+ }), null);
415
+ _$insertNode(_el$32, _el$33);
416
+ _$setProp(_el$32, "flexDirection", "column");
417
+ _$setProp(_el$32, "gap", 1);
418
+ _$insert(_el$32, (() => {
419
+ var _c$2 = _$memo(() => slashOptions().length > 0);
420
+ return () => _c$2() ? (() => {
421
+ var _el$36 = _$createElement("box"),
422
+ _el$37 = _$createElement("text");
423
+ _$insertNode(_el$36, _el$37);
424
+ _$setProp(_el$36, "border", ["top", "right", "bottom", "left"]);
425
+ _$setProp(_el$36, "padding", 1);
426
+ _$setProp(_el$36, "flexDirection", "column");
427
+ _$setProp(_el$36, "gap", 1);
428
+ _$insertNode(_el$37, _$createTextNode(`Slash Commands`));
429
+ _$insert(_el$36, _$createComponent(For, {
430
+ get each() {
431
+ return slashOptions();
432
+ },
433
+ children: (option, index) => (() => {
434
+ var _el$39 = _$createElement("box"),
435
+ _el$40 = _$createElement("box"),
436
+ _el$41 = _$createElement("text"),
437
+ _el$42 = _$createElement("text");
438
+ _$insertNode(_el$39, _el$40);
439
+ _$insertNode(_el$39, _el$42);
440
+ _$setProp(_el$39, "paddingLeft", 1);
441
+ _$setProp(_el$39, "paddingRight", 1);
442
+ _$setProp(_el$39, "paddingTop", 1);
443
+ _$setProp(_el$39, "paddingBottom", 1);
444
+ _$setProp(_el$39, "flexDirection", "column");
445
+ _$setProp(_el$39, "onMouseUp", () => props.onSelectSlashCommand(option.id));
446
+ _$insertNode(_el$40, _el$41);
447
+ _$setProp(_el$40, "flexDirection", "row");
448
+ _$setProp(_el$40, "justifyContent", "space-between");
449
+ _$insert(_el$41, () => option.label);
450
+ _$insert(_el$40, (() => {
451
+ var _c$3 = _$memo(() => !!option.keyHint);
452
+ return () => _c$3() ? (() => {
453
+ var _el$43 = _$createElement("text");
454
+ _$insert(_el$43, () => option.keyHint);
455
+ _$effect(_$p => _$setProp(_el$43, "fg", slashIndex() === index() ? theme.background : theme.muted, _$p));
456
+ return _el$43;
457
+ })() : null;
458
+ })(), null);
459
+ _$insert(_el$42, () => option.description);
460
+ _$effect(_p$ => {
461
+ var _v$35 = slashIndex() === index() ? theme.accent : theme.panelMuted,
462
+ _v$36 = slashIndex() === index() ? theme.background : theme.text,
463
+ _v$37 = slashIndex() === index() ? theme.background : theme.muted;
464
+ _v$35 !== _p$.e && (_p$.e = _$setProp(_el$39, "backgroundColor", _v$35, _p$.e));
465
+ _v$36 !== _p$.t && (_p$.t = _$setProp(_el$41, "fg", _v$36, _p$.t));
466
+ _v$37 !== _p$.a && (_p$.a = _$setProp(_el$42, "fg", _v$37, _p$.a));
467
+ return _p$;
468
+ }, {
469
+ e: undefined,
470
+ t: undefined,
471
+ a: undefined
472
+ });
473
+ return _el$39;
474
+ })()
475
+ }), null);
476
+ _$effect(_p$ => {
477
+ var _v$32 = theme.panel,
478
+ _v$33 = theme.accent,
479
+ _v$34 = theme.accent;
480
+ _v$32 !== _p$.e && (_p$.e = _$setProp(_el$36, "backgroundColor", _v$32, _p$.e));
481
+ _v$33 !== _p$.t && (_p$.t = _$setProp(_el$36, "borderColor", _v$33, _p$.t));
482
+ _v$34 !== _p$.a && (_p$.a = _$setProp(_el$37, "fg", _v$34, _p$.a));
483
+ return _p$;
484
+ }, {
485
+ e: undefined,
486
+ t: undefined,
487
+ a: undefined
488
+ });
489
+ return _el$36;
490
+ })() : null;
491
+ })(), _el$33);
492
+ _$insertNode(_el$33, _el$34);
493
+ _$insertNode(_el$33, _el$35);
494
+ _$setProp(_el$33, "border", ["top", "right", "bottom", "left"]);
495
+ _$setProp(_el$33, "paddingLeft", 1);
496
+ _$setProp(_el$33, "paddingRight", 1);
497
+ _$setProp(_el$33, "paddingTop", 1);
498
+ _$setProp(_el$33, "paddingBottom", 1);
499
+ _$setProp(_el$33, "flexDirection", "column");
500
+ _$setProp(_el$33, "gap", 1);
501
+ _$use(ref => props.inputRef(ref), _el$34);
502
+ _$setProp(_el$34, "placeholder", "Ask, edit, review, or type / for commands");
503
+ _$setProp(_el$34, "onInput", value => {
504
+ setDraftValue(value);
505
+ if (!value.trim().startsWith("/")) {
506
+ setSlashIndex(0);
507
+ }
508
+ props.onInput(value);
509
+ });
510
+ _$setProp(_el$34, "onSubmit", value => {
511
+ const matchingCommands = getSlashCommands(value);
512
+ if (value.trim().startsWith("/") && matchingCommands.length > 0) {
513
+ const command = matchingCommands[slashIndex()] ?? matchingCommands[0];
514
+ if (command) {
515
+ props.onSelectSlashCommand(command.id);
516
+ return;
517
+ }
518
+ }
519
+ props.onSubmit(value);
520
+ });
521
+ _$insert(_el$35, () => props.focused ? "Enter submit | Up/Down command menu | Esc exit when empty" : "Press Tab to focus composer");
522
+ _$effect(_p$ => {
523
+ var _v$18 = theme.panelAlt,
524
+ _v$19 = theme.border,
525
+ _v$20 = theme.panel,
526
+ _v$21 = props.focused ? theme.accent : theme.border,
527
+ _v$22 = props.onFocusComposer,
528
+ _v$23 = props.focused,
529
+ _v$24 = draftValue(),
530
+ _v$25 = theme.panel,
531
+ _v$26 = theme.text,
532
+ _v$27 = theme.panel,
533
+ _v$28 = theme.text,
534
+ _v$29 = theme.accent,
535
+ _v$30 = props.onFocusComposer,
536
+ _v$31 = props.focused ? theme.accentStrong : theme.muted;
537
+ _v$18 !== _p$.e && (_p$.e = _$setProp(_el$30, "backgroundColor", _v$18, _p$.e));
538
+ _v$19 !== _p$.t && (_p$.t = _$setProp(_el$30, "borderColor", _v$19, _p$.t));
539
+ _v$20 !== _p$.a && (_p$.a = _$setProp(_el$33, "backgroundColor", _v$20, _p$.a));
540
+ _v$21 !== _p$.o && (_p$.o = _$setProp(_el$33, "borderColor", _v$21, _p$.o));
541
+ _v$22 !== _p$.i && (_p$.i = _$setProp(_el$33, "onMouseUp", _v$22, _p$.i));
542
+ _v$23 !== _p$.n && (_p$.n = _$setProp(_el$34, "focused", _v$23, _p$.n));
543
+ _v$24 !== _p$.s && (_p$.s = _$setProp(_el$34, "value", _v$24, _p$.s));
544
+ _v$25 !== _p$.h && (_p$.h = _$setProp(_el$34, "backgroundColor", _v$25, _p$.h));
545
+ _v$26 !== _p$.r && (_p$.r = _$setProp(_el$34, "textColor", _v$26, _p$.r));
546
+ _v$27 !== _p$.d && (_p$.d = _$setProp(_el$34, "focusedBackgroundColor", _v$27, _p$.d));
547
+ _v$28 !== _p$.l && (_p$.l = _$setProp(_el$34, "focusedTextColor", _v$28, _p$.l));
548
+ _v$29 !== _p$.u && (_p$.u = _$setProp(_el$34, "cursorColor", _v$29, _p$.u));
549
+ _v$30 !== _p$.c && (_p$.c = _$setProp(_el$34, "onMouseUp", _v$30, _p$.c));
550
+ _v$31 !== _p$.w && (_p$.w = _$setProp(_el$35, "fg", _v$31, _p$.w));
551
+ return _p$;
552
+ }, {
553
+ e: undefined,
554
+ t: undefined,
555
+ a: undefined,
556
+ o: undefined,
557
+ i: undefined,
558
+ n: undefined,
559
+ s: undefined,
560
+ h: undefined,
561
+ r: undefined,
562
+ d: undefined,
563
+ l: undefined,
564
+ u: undefined,
565
+ c: undefined,
566
+ w: undefined
567
+ });
568
+ return _el$30;
569
+ })();
570
+ }
571
+ export function PickerOverlay(props) {
572
+ return (() => {
573
+ var _el$44 = _$createElement("box"),
574
+ _el$45 = _$createElement("box"),
575
+ _el$46 = _$createElement("box"),
576
+ _el$47 = _$createElement("text"),
577
+ _el$48 = _$createElement("text"),
578
+ _el$50 = _$createElement("text");
579
+ _$insertNode(_el$44, _el$45);
580
+ _$setProp(_el$44, "position", "absolute");
581
+ _$setProp(_el$44, "width", "100%");
582
+ _$setProp(_el$44, "height", "100%");
583
+ _$setProp(_el$44, "alignItems", "center");
584
+ _$setProp(_el$44, "justifyContent", "center");
585
+ _$insertNode(_el$45, _el$46);
586
+ _$insertNode(_el$45, _el$50);
587
+ _$setProp(_el$45, "width", "70%");
588
+ _$setProp(_el$45, "maxWidth", 80);
589
+ _$setProp(_el$45, "border", ["top", "right", "bottom", "left"]);
590
+ _$setProp(_el$45, "padding", 1);
591
+ _$setProp(_el$45, "flexDirection", "column");
592
+ _$setProp(_el$45, "gap", 1);
593
+ _$insertNode(_el$46, _el$47);
594
+ _$insertNode(_el$46, _el$48);
595
+ _$setProp(_el$46, "flexDirection", "row");
596
+ _$setProp(_el$46, "justifyContent", "space-between");
597
+ _$insert(_el$47, () => props.title);
598
+ _$insertNode(_el$48, _$createTextNode(`esc`));
599
+ _$insert(_el$50, () => props.description);
600
+ _$insert(_el$45, _$createComponent(Show, {
601
+ get when() {
602
+ return props.options.length > 0;
603
+ },
604
+ get fallback() {
605
+ return (() => {
606
+ var _el$53 = _$createElement("text");
607
+ _$insertNode(_el$53, _$createTextNode(`No options are available for this picker yet.`));
608
+ _$effect(_$p => _$setProp(_el$53, "fg", theme.warning, _$p));
609
+ return _el$53;
610
+ })();
611
+ },
612
+ get children() {
613
+ var _el$51 = _$createElement("scrollbox"),
614
+ _el$52 = _$createElement("box");
615
+ _$insertNode(_el$51, _el$52);
616
+ _$setProp(_el$51, "maxHeight", 12);
617
+ _$setProp(_el$51, "scrollbarOptions", {
618
+ visible: false
619
+ });
620
+ _$setProp(_el$52, "flexDirection", "column");
621
+ _$setProp(_el$52, "gap", 1);
622
+ _$insert(_el$52, _$createComponent(For, {
623
+ get each() {
624
+ return props.options;
625
+ },
626
+ children: (option, index) => (() => {
627
+ var _el$55 = _$createElement("box"),
628
+ _el$56 = _$createElement("box"),
629
+ _el$57 = _$createElement("text"),
630
+ _el$58 = _$createElement("text");
631
+ _$insertNode(_el$55, _el$56);
632
+ _$insertNode(_el$55, _el$58);
633
+ _$setProp(_el$55, "paddingLeft", 1);
634
+ _$setProp(_el$55, "paddingRight", 1);
635
+ _$setProp(_el$55, "paddingTop", 1);
636
+ _$setProp(_el$55, "paddingBottom", 1);
637
+ _$setProp(_el$55, "flexDirection", "column");
638
+ _$setProp(_el$55, "onMouseUp", () => props.onSelect(option.id, index()));
639
+ _$insertNode(_el$56, _el$57);
640
+ _$setProp(_el$56, "flexDirection", "row");
641
+ _$setProp(_el$56, "justifyContent", "space-between");
642
+ _$insert(_el$57, () => option.label);
643
+ _$insert(_el$56, (() => {
644
+ var _c$4 = _$memo(() => !!option.badge);
645
+ return () => _c$4() ? (() => {
646
+ var _el$59 = _$createElement("text");
647
+ _$insert(_el$59, () => option.badge);
648
+ _$effect(_$p => _$setProp(_el$59, "fg", props.selectedIndex === index() ? theme.background : theme.success, _$p));
649
+ return _el$59;
650
+ })() : null;
651
+ })(), null);
652
+ _$insert(_el$58, () => option.description);
653
+ _$effect(_p$ => {
654
+ var _v$44 = props.selectedIndex === index() ? theme.accent : theme.panel,
655
+ _v$45 = props.selectedIndex === index() ? theme.background : theme.text,
656
+ _v$46 = props.selectedIndex === index() ? theme.background : theme.muted;
657
+ _v$44 !== _p$.e && (_p$.e = _$setProp(_el$55, "backgroundColor", _v$44, _p$.e));
658
+ _v$45 !== _p$.t && (_p$.t = _$setProp(_el$57, "fg", _v$45, _p$.t));
659
+ _v$46 !== _p$.a && (_p$.a = _$setProp(_el$58, "fg", _v$46, _p$.a));
660
+ return _p$;
661
+ }, {
662
+ e: undefined,
663
+ t: undefined,
664
+ a: undefined
665
+ });
666
+ return _el$55;
667
+ })()
668
+ }));
669
+ return _el$51;
670
+ }
671
+ }), null);
672
+ _$effect(_p$ => {
673
+ var _v$38 = theme.panelAlt,
674
+ _v$39 = theme.accent,
675
+ _v$40 = theme.accentStrong,
676
+ _v$41 = theme.muted,
677
+ _v$42 = props.onClose,
678
+ _v$43 = theme.muted;
679
+ _v$38 !== _p$.e && (_p$.e = _$setProp(_el$45, "backgroundColor", _v$38, _p$.e));
680
+ _v$39 !== _p$.t && (_p$.t = _$setProp(_el$45, "borderColor", _v$39, _p$.t));
681
+ _v$40 !== _p$.a && (_p$.a = _$setProp(_el$47, "fg", _v$40, _p$.a));
682
+ _v$41 !== _p$.o && (_p$.o = _$setProp(_el$48, "fg", _v$41, _p$.o));
683
+ _v$42 !== _p$.i && (_p$.i = _$setProp(_el$48, "onMouseUp", _v$42, _p$.i));
684
+ _v$43 !== _p$.n && (_p$.n = _$setProp(_el$50, "fg", _v$43, _p$.n));
685
+ return _p$;
686
+ }, {
687
+ e: undefined,
688
+ t: undefined,
689
+ a: undefined,
690
+ o: undefined,
691
+ i: undefined,
692
+ n: undefined
693
+ });
694
+ return _el$44;
695
+ })();
696
+ }
697
+ function HeaderChip(props) {
698
+ const backgroundColor = props.tone === "accent" ? theme.accent : theme.panel;
699
+ const foregroundColor = props.tone === "accent" ? theme.background : theme.text;
700
+ return (() => {
701
+ var _el$60 = _$createElement("box"),
702
+ _el$61 = _$createElement("text");
703
+ _$insertNode(_el$60, _el$61);
704
+ _$setProp(_el$60, "backgroundColor", backgroundColor);
705
+ _$setProp(_el$60, "paddingLeft", 1);
706
+ _$setProp(_el$60, "paddingRight", 1);
707
+ _$setProp(_el$61, "fg", foregroundColor);
708
+ _$insert(_el$61, () => props.label);
709
+ _$effect(_$p => _$setProp(_el$60, "onMouseUp", props.onClick, _$p));
710
+ return _el$60;
711
+ })();
712
+ }
713
+ function HeaderSpacer() {
714
+ return (() => {
715
+ var _el$62 = _$createElement("box");
716
+ _$setProp(_el$62, "flexGrow", 1);
717
+ return _el$62;
718
+ })();
719
+ }
720
+ function ChipButton(props) {
721
+ const backgroundColor = props.active ? theme.accent : props.selected ? theme.panelAlt : theme.panel;
722
+ const foregroundColor = props.active ? theme.background : theme.text;
723
+ return (() => {
724
+ var _el$63 = _$createElement("box"),
725
+ _el$64 = _$createElement("text");
726
+ _$insertNode(_el$63, _el$64);
727
+ _$setProp(_el$63, "backgroundColor", backgroundColor);
728
+ _$setProp(_el$63, "paddingLeft", 1);
729
+ _$setProp(_el$63, "paddingRight", 1);
730
+ _$setProp(_el$64, "fg", foregroundColor);
731
+ _$insert(_el$64, () => props.label);
732
+ return _el$63;
733
+ })();
734
+ }
735
+ function CardButton(props) {
736
+ const accentColor = props.card.tone === "success" ? theme.success : props.card.tone === "muted" ? theme.muted : theme.accent;
737
+ return (() => {
738
+ var _el$65 = _$createElement("box"),
739
+ _el$66 = _$createElement("text"),
740
+ _el$67 = _$createElement("text");
741
+ _$insertNode(_el$65, _el$66);
742
+ _$insertNode(_el$65, _el$67);
743
+ _$setProp(_el$65, "border", ["top", "right", "bottom", "left"]);
744
+ _$setProp(_el$65, "padding", 1);
745
+ _$setProp(_el$65, "flexDirection", "column");
746
+ _$setProp(_el$65, "gap", 1);
747
+ _$insert(_el$66, () => props.card.title);
748
+ _$insert(_el$65, (() => {
749
+ var _c$5 = _$memo(() => !!props.card.tags?.length);
750
+ return () => _c$5() ? (() => {
751
+ var _el$68 = _$createElement("box");
752
+ _$setProp(_el$68, "flexDirection", "row");
753
+ _$setProp(_el$68, "gap", 1);
754
+ _$insert(_el$68, _$createComponent(For, {
755
+ get each() {
756
+ return props.card.tags;
757
+ },
758
+ children: tag => _$createComponent(TagPill, {
759
+ tag: tag,
760
+ compact: true
761
+ })
762
+ }));
763
+ return _el$68;
764
+ })() : null;
765
+ })(), _el$67);
766
+ _$insert(_el$65, _$createComponent(For, {
767
+ get each() {
768
+ return props.card.lines;
769
+ },
770
+ children: (line, index) => (() => {
771
+ var _el$69 = _$createElement("text");
772
+ _$insert(_el$69, line);
773
+ _$effect(_$p => _$setProp(_el$69, "fg", index() === 0 ? theme.text : theme.muted, _$p));
774
+ return _el$69;
775
+ })()
776
+ }), _el$67);
777
+ _$setProp(_el$67, "fg", accentColor);
778
+ _$insert(_el$67, () => props.card.actionLabel);
779
+ _$effect(_p$ => {
780
+ var _v$47 = props.selected ? theme.panelAlt : theme.panelMuted,
781
+ _v$48 = props.selected ? accentColor : theme.border,
782
+ _v$49 = props.onClick,
783
+ _v$50 = theme.text;
784
+ _v$47 !== _p$.e && (_p$.e = _$setProp(_el$65, "backgroundColor", _v$47, _p$.e));
785
+ _v$48 !== _p$.t && (_p$.t = _$setProp(_el$65, "borderColor", _v$48, _p$.t));
786
+ _v$49 !== _p$.a && (_p$.a = _$setProp(_el$65, "onMouseUp", _v$49, _p$.a));
787
+ _v$50 !== _p$.o && (_p$.o = _$setProp(_el$66, "fg", _v$50, _p$.o));
788
+ return _p$;
789
+ }, {
790
+ e: undefined,
791
+ t: undefined,
792
+ a: undefined,
793
+ o: undefined
794
+ });
795
+ return _el$65;
796
+ })();
797
+ }
798
+ function TagPill(props) {
799
+ const backgroundColor = props.tag.color ?? toneColor(props.tag.tone);
800
+ const foregroundColor = props.tag.tone === "muted" ? theme.text : theme.background;
801
+ return (() => {
802
+ var _el$70 = _$createElement("box"),
803
+ _el$71 = _$createElement("text");
804
+ _$insertNode(_el$70, _el$71);
805
+ _$setProp(_el$70, "backgroundColor", backgroundColor);
806
+ _$setProp(_el$70, "paddingLeft", 1);
807
+ _$setProp(_el$70, "paddingRight", 1);
808
+ _$setProp(_el$71, "fg", foregroundColor);
809
+ _$insert(_el$71, () => props.tag.label);
810
+ return _el$70;
811
+ })();
812
+ }
813
+ function InspectorLine(props) {
814
+ return (() => {
815
+ var _el$72 = _$createElement("box"),
816
+ _el$73 = _$createElement("text"),
817
+ _el$74 = _$createElement("text");
818
+ _$insertNode(_el$72, _el$73);
819
+ _$insertNode(_el$72, _el$74);
820
+ _$setProp(_el$72, "flexDirection", "row");
821
+ _$setProp(_el$72, "justifyContent", "space-between");
822
+ _$insert(_el$73, () => props.label);
823
+ _$insert(_el$74, () => props.value);
824
+ _$effect(_p$ => {
825
+ var _v$51 = theme.muted,
826
+ _v$52 = theme.text;
827
+ _v$51 !== _p$.e && (_p$.e = _$setProp(_el$73, "fg", _v$51, _p$.e));
828
+ _v$52 !== _p$.t && (_p$.t = _$setProp(_el$74, "fg", _v$52, _p$.t));
829
+ return _p$;
830
+ }, {
831
+ e: undefined,
832
+ t: undefined
833
+ });
834
+ return _el$72;
835
+ })();
836
+ }
837
+ function toneColor(tone) {
838
+ switch (tone) {
839
+ case "accent":
840
+ return theme.accent;
841
+ case "success":
842
+ return theme.success;
843
+ case "warning":
844
+ return theme.warning;
845
+ case "danger":
846
+ return theme.danger;
847
+ case "muted":
848
+ return theme.border;
849
+ }
850
+ }