citadel_cli 1.1.3 → 1.1.4
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/citadel.es.js +732 -1371
- package/dist/citadel.umd.js +15 -50
- package/package.json +1 -1
package/dist/citadel.es.js
CHANGED
|
@@ -1,689 +1,47 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
*
|
|
13
|
-
* This source code is licensed under the MIT license found in the
|
|
14
|
-
* LICENSE file in the root directory of this source tree.
|
|
15
|
-
*/
|
|
16
|
-
var on;
|
|
17
|
-
function tt() {
|
|
18
|
-
if (on) return ae;
|
|
19
|
-
on = 1;
|
|
20
|
-
var o = Q, n = Symbol.for("react.element"), t = Symbol.for("react.fragment"), r = Object.prototype.hasOwnProperty, a = o.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, i = { key: !0, ref: !0, __self: !0, __source: !0 };
|
|
21
|
-
function u(f, c, m) {
|
|
22
|
-
var h, b = {}, _ = null, S = null;
|
|
23
|
-
m !== void 0 && (_ = "" + m), c.key !== void 0 && (_ = "" + c.key), c.ref !== void 0 && (S = c.ref);
|
|
24
|
-
for (h in c) r.call(c, h) && !i.hasOwnProperty(h) && (b[h] = c[h]);
|
|
25
|
-
if (f && f.defaultProps) for (h in c = f.defaultProps, c) b[h] === void 0 && (b[h] = c[h]);
|
|
26
|
-
return { $$typeof: n, type: f, key: _, ref: S, props: b, _owner: a.current };
|
|
27
|
-
}
|
|
28
|
-
return ae.Fragment = t, ae.jsx = u, ae.jsxs = u, ae;
|
|
29
|
-
}
|
|
30
|
-
var se = {};
|
|
31
|
-
/**
|
|
32
|
-
* @license React
|
|
33
|
-
* react-jsx-runtime.development.js
|
|
34
|
-
*
|
|
35
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
36
|
-
*
|
|
37
|
-
* This source code is licensed under the MIT license found in the
|
|
38
|
-
* LICENSE file in the root directory of this source tree.
|
|
39
|
-
*/
|
|
40
|
-
var an;
|
|
41
|
-
function rt() {
|
|
42
|
-
return an || (an = 1, process.env.NODE_ENV !== "production" && function() {
|
|
43
|
-
var o = Q, n = Symbol.for("react.element"), t = Symbol.for("react.portal"), r = Symbol.for("react.fragment"), a = Symbol.for("react.strict_mode"), i = Symbol.for("react.profiler"), u = Symbol.for("react.provider"), f = Symbol.for("react.context"), c = Symbol.for("react.forward_ref"), m = Symbol.for("react.suspense"), h = Symbol.for("react.suspense_list"), b = Symbol.for("react.memo"), _ = Symbol.for("react.lazy"), S = Symbol.for("react.offscreen"), U = Symbol.iterator, I = "@@iterator";
|
|
44
|
-
function d(e) {
|
|
45
|
-
if (e === null || typeof e != "object")
|
|
46
|
-
return null;
|
|
47
|
-
var s = U && e[U] || e[I];
|
|
48
|
-
return typeof s == "function" ? s : null;
|
|
49
|
-
}
|
|
50
|
-
var y = o.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
|
|
51
|
-
function w(e) {
|
|
52
|
-
{
|
|
53
|
-
for (var s = arguments.length, l = new Array(s > 1 ? s - 1 : 0), g = 1; g < s; g++)
|
|
54
|
-
l[g - 1] = arguments[g];
|
|
55
|
-
N("error", e, l);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
function N(e, s, l) {
|
|
59
|
-
{
|
|
60
|
-
var g = y.ReactDebugCurrentFrame, C = g.getStackAddendum();
|
|
61
|
-
C !== "" && (s += "%s", l = l.concat([C]));
|
|
62
|
-
var E = l.map(function(x) {
|
|
63
|
-
return String(x);
|
|
64
|
-
});
|
|
65
|
-
E.unshift("Warning: " + s), Function.prototype.apply.call(console[e], console, E);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
var k = !1, j = !1, P = !1, $ = !1, L = !1, ee;
|
|
69
|
-
ee = Symbol.for("react.module.reference");
|
|
70
|
-
function de(e) {
|
|
71
|
-
return !!(typeof e == "string" || typeof e == "function" || e === r || e === i || L || e === a || e === m || e === h || $ || e === S || k || j || P || typeof e == "object" && e !== null && (e.$$typeof === _ || e.$$typeof === b || e.$$typeof === u || e.$$typeof === f || e.$$typeof === c || // This needs to include all possible module reference object
|
|
72
|
-
// types supported by any Flight configuration anywhere since
|
|
73
|
-
// we don't know which Flight build this will end up being used
|
|
74
|
-
// with.
|
|
75
|
-
e.$$typeof === ee || e.getModuleId !== void 0));
|
|
76
|
-
}
|
|
77
|
-
function ne(e, s, l) {
|
|
78
|
-
var g = e.displayName;
|
|
79
|
-
if (g)
|
|
80
|
-
return g;
|
|
81
|
-
var C = s.displayName || s.name || "";
|
|
82
|
-
return C !== "" ? l + "(" + C + ")" : l;
|
|
83
|
-
}
|
|
84
|
-
function De(e) {
|
|
85
|
-
return e.displayName || "Context";
|
|
86
|
-
}
|
|
87
|
-
function V(e) {
|
|
88
|
-
if (e == null)
|
|
89
|
-
return null;
|
|
90
|
-
if (typeof e.tag == "number" && w("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."), typeof e == "function")
|
|
91
|
-
return e.displayName || e.name || null;
|
|
92
|
-
if (typeof e == "string")
|
|
93
|
-
return e;
|
|
94
|
-
switch (e) {
|
|
95
|
-
case r:
|
|
96
|
-
return "Fragment";
|
|
97
|
-
case t:
|
|
98
|
-
return "Portal";
|
|
99
|
-
case i:
|
|
100
|
-
return "Profiler";
|
|
101
|
-
case a:
|
|
102
|
-
return "StrictMode";
|
|
103
|
-
case m:
|
|
104
|
-
return "Suspense";
|
|
105
|
-
case h:
|
|
106
|
-
return "SuspenseList";
|
|
107
|
-
}
|
|
108
|
-
if (typeof e == "object")
|
|
109
|
-
switch (e.$$typeof) {
|
|
110
|
-
case f:
|
|
111
|
-
var s = e;
|
|
112
|
-
return De(s) + ".Consumer";
|
|
113
|
-
case u:
|
|
114
|
-
var l = e;
|
|
115
|
-
return De(l._context) + ".Provider";
|
|
116
|
-
case c:
|
|
117
|
-
return ne(e, e.render, "ForwardRef");
|
|
118
|
-
case b:
|
|
119
|
-
var g = e.displayName || null;
|
|
120
|
-
return g !== null ? g : V(e.type) || "Memo";
|
|
121
|
-
case _: {
|
|
122
|
-
var C = e, E = C._payload, x = C._init;
|
|
123
|
-
try {
|
|
124
|
-
return V(x(E));
|
|
125
|
-
} catch {
|
|
126
|
-
return null;
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
return null;
|
|
131
|
-
}
|
|
132
|
-
var K = Object.assign, te = 0, ze, Fe, Ue, He, Me, $e, We;
|
|
133
|
-
function Le() {
|
|
134
|
-
}
|
|
135
|
-
Le.__reactDisabledLog = !0;
|
|
136
|
-
function En() {
|
|
137
|
-
{
|
|
138
|
-
if (te === 0) {
|
|
139
|
-
ze = console.log, Fe = console.info, Ue = console.warn, He = console.error, Me = console.group, $e = console.groupCollapsed, We = console.groupEnd;
|
|
140
|
-
var e = {
|
|
141
|
-
configurable: !0,
|
|
142
|
-
enumerable: !0,
|
|
143
|
-
value: Le,
|
|
144
|
-
writable: !0
|
|
145
|
-
};
|
|
146
|
-
Object.defineProperties(console, {
|
|
147
|
-
info: e,
|
|
148
|
-
log: e,
|
|
149
|
-
warn: e,
|
|
150
|
-
error: e,
|
|
151
|
-
group: e,
|
|
152
|
-
groupCollapsed: e,
|
|
153
|
-
groupEnd: e
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
te++;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
function kn() {
|
|
160
|
-
{
|
|
161
|
-
if (te--, te === 0) {
|
|
162
|
-
var e = {
|
|
163
|
-
configurable: !0,
|
|
164
|
-
enumerable: !0,
|
|
165
|
-
writable: !0
|
|
166
|
-
};
|
|
167
|
-
Object.defineProperties(console, {
|
|
168
|
-
log: K({}, e, {
|
|
169
|
-
value: ze
|
|
170
|
-
}),
|
|
171
|
-
info: K({}, e, {
|
|
172
|
-
value: Fe
|
|
173
|
-
}),
|
|
174
|
-
warn: K({}, e, {
|
|
175
|
-
value: Ue
|
|
176
|
-
}),
|
|
177
|
-
error: K({}, e, {
|
|
178
|
-
value: He
|
|
179
|
-
}),
|
|
180
|
-
group: K({}, e, {
|
|
181
|
-
value: Me
|
|
182
|
-
}),
|
|
183
|
-
groupCollapsed: K({}, e, {
|
|
184
|
-
value: $e
|
|
185
|
-
}),
|
|
186
|
-
groupEnd: K({}, e, {
|
|
187
|
-
value: We
|
|
188
|
-
})
|
|
189
|
-
});
|
|
190
|
-
}
|
|
191
|
-
te < 0 && w("disabledDepth fell below zero. This is a bug in React. Please file an issue.");
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
var Ce = y.ReactCurrentDispatcher, Se;
|
|
195
|
-
function me(e, s, l) {
|
|
196
|
-
{
|
|
197
|
-
if (Se === void 0)
|
|
198
|
-
try {
|
|
199
|
-
throw Error();
|
|
200
|
-
} catch (C) {
|
|
201
|
-
var g = C.stack.trim().match(/\n( *(at )?)/);
|
|
202
|
-
Se = g && g[1] || "";
|
|
203
|
-
}
|
|
204
|
-
return `
|
|
205
|
-
` + Se + e;
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
var Ee = !1, pe;
|
|
209
|
-
{
|
|
210
|
-
var _n = typeof WeakMap == "function" ? WeakMap : Map;
|
|
211
|
-
pe = new _n();
|
|
212
|
-
}
|
|
213
|
-
function Ye(e, s) {
|
|
214
|
-
if (!e || Ee)
|
|
215
|
-
return "";
|
|
216
|
-
{
|
|
217
|
-
var l = pe.get(e);
|
|
218
|
-
if (l !== void 0)
|
|
219
|
-
return l;
|
|
220
|
-
}
|
|
221
|
-
var g;
|
|
222
|
-
Ee = !0;
|
|
223
|
-
var C = Error.prepareStackTrace;
|
|
224
|
-
Error.prepareStackTrace = void 0;
|
|
225
|
-
var E;
|
|
226
|
-
E = Ce.current, Ce.current = null, En();
|
|
227
|
-
try {
|
|
228
|
-
if (s) {
|
|
229
|
-
var x = function() {
|
|
230
|
-
throw Error();
|
|
231
|
-
};
|
|
232
|
-
if (Object.defineProperty(x.prototype, "props", {
|
|
233
|
-
set: function() {
|
|
234
|
-
throw Error();
|
|
235
|
-
}
|
|
236
|
-
}), typeof Reflect == "object" && Reflect.construct) {
|
|
237
|
-
try {
|
|
238
|
-
Reflect.construct(x, []);
|
|
239
|
-
} catch (H) {
|
|
240
|
-
g = H;
|
|
241
|
-
}
|
|
242
|
-
Reflect.construct(e, [], x);
|
|
243
|
-
} else {
|
|
244
|
-
try {
|
|
245
|
-
x.call();
|
|
246
|
-
} catch (H) {
|
|
247
|
-
g = H;
|
|
248
|
-
}
|
|
249
|
-
e.call(x.prototype);
|
|
250
|
-
}
|
|
251
|
-
} else {
|
|
252
|
-
try {
|
|
253
|
-
throw Error();
|
|
254
|
-
} catch (H) {
|
|
255
|
-
g = H;
|
|
256
|
-
}
|
|
257
|
-
e();
|
|
258
|
-
}
|
|
259
|
-
} catch (H) {
|
|
260
|
-
if (H && g && typeof H.stack == "string") {
|
|
261
|
-
for (var v = H.stack.split(`
|
|
262
|
-
`), F = g.stack.split(`
|
|
263
|
-
`), T = v.length - 1, O = F.length - 1; T >= 1 && O >= 0 && v[T] !== F[O]; )
|
|
264
|
-
O--;
|
|
265
|
-
for (; T >= 1 && O >= 0; T--, O--)
|
|
266
|
-
if (v[T] !== F[O]) {
|
|
267
|
-
if (T !== 1 || O !== 1)
|
|
268
|
-
do
|
|
269
|
-
if (T--, O--, O < 0 || v[T] !== F[O]) {
|
|
270
|
-
var W = `
|
|
271
|
-
` + v[T].replace(" at new ", " at ");
|
|
272
|
-
return e.displayName && W.includes("<anonymous>") && (W = W.replace("<anonymous>", e.displayName)), typeof e == "function" && pe.set(e, W), W;
|
|
273
|
-
}
|
|
274
|
-
while (T >= 1 && O >= 0);
|
|
275
|
-
break;
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
} finally {
|
|
279
|
-
Ee = !1, Ce.current = E, kn(), Error.prepareStackTrace = C;
|
|
280
|
-
}
|
|
281
|
-
var G = e ? e.displayName || e.name : "", B = G ? me(G) : "";
|
|
282
|
-
return typeof e == "function" && pe.set(e, B), B;
|
|
283
|
-
}
|
|
284
|
-
function Rn(e, s, l) {
|
|
285
|
-
return Ye(e, !1);
|
|
286
|
-
}
|
|
287
|
-
function jn(e) {
|
|
288
|
-
var s = e.prototype;
|
|
289
|
-
return !!(s && s.isReactComponent);
|
|
290
|
-
}
|
|
291
|
-
function fe(e, s, l) {
|
|
292
|
-
if (e == null)
|
|
293
|
-
return "";
|
|
294
|
-
if (typeof e == "function")
|
|
295
|
-
return Ye(e, jn(e));
|
|
296
|
-
if (typeof e == "string")
|
|
297
|
-
return me(e);
|
|
298
|
-
switch (e) {
|
|
299
|
-
case m:
|
|
300
|
-
return me("Suspense");
|
|
301
|
-
case h:
|
|
302
|
-
return me("SuspenseList");
|
|
303
|
-
}
|
|
304
|
-
if (typeof e == "object")
|
|
305
|
-
switch (e.$$typeof) {
|
|
306
|
-
case c:
|
|
307
|
-
return Rn(e.render);
|
|
308
|
-
case b:
|
|
309
|
-
return fe(e.type, s, l);
|
|
310
|
-
case _: {
|
|
311
|
-
var g = e, C = g._payload, E = g._init;
|
|
312
|
-
try {
|
|
313
|
-
return fe(E(C), s, l);
|
|
314
|
-
} catch {
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
return "";
|
|
319
|
-
}
|
|
320
|
-
var re = Object.prototype.hasOwnProperty, Ve = {}, Ke = y.ReactDebugCurrentFrame;
|
|
321
|
-
function he(e) {
|
|
322
|
-
if (e) {
|
|
323
|
-
var s = e._owner, l = fe(e.type, e._source, s ? s.type : null);
|
|
324
|
-
Ke.setExtraStackFrame(l);
|
|
325
|
-
} else
|
|
326
|
-
Ke.setExtraStackFrame(null);
|
|
327
|
-
}
|
|
328
|
-
function An(e, s, l, g, C) {
|
|
329
|
-
{
|
|
330
|
-
var E = Function.call.bind(re);
|
|
331
|
-
for (var x in e)
|
|
332
|
-
if (E(e, x)) {
|
|
333
|
-
var v = void 0;
|
|
334
|
-
try {
|
|
335
|
-
if (typeof e[x] != "function") {
|
|
336
|
-
var F = Error((g || "React class") + ": " + l + " type `" + x + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + typeof e[x] + "`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");
|
|
337
|
-
throw F.name = "Invariant Violation", F;
|
|
338
|
-
}
|
|
339
|
-
v = e[x](s, x, g, l, null, "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED");
|
|
340
|
-
} catch (T) {
|
|
341
|
-
v = T;
|
|
342
|
-
}
|
|
343
|
-
v && !(v instanceof Error) && (he(C), w("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).", g || "React class", l, x, typeof v), he(null)), v instanceof Error && !(v.message in Ve) && (Ve[v.message] = !0, he(C), w("Failed %s type: %s", l, v.message), he(null));
|
|
344
|
-
}
|
|
345
|
-
}
|
|
346
|
-
}
|
|
347
|
-
var Pn = Array.isArray;
|
|
348
|
-
function ke(e) {
|
|
349
|
-
return Pn(e);
|
|
350
|
-
}
|
|
351
|
-
function Tn(e) {
|
|
352
|
-
{
|
|
353
|
-
var s = typeof Symbol == "function" && Symbol.toStringTag, l = s && e[Symbol.toStringTag] || e.constructor.name || "Object";
|
|
354
|
-
return l;
|
|
355
|
-
}
|
|
356
|
-
}
|
|
357
|
-
function On(e) {
|
|
358
|
-
try {
|
|
359
|
-
return Be(e), !1;
|
|
360
|
-
} catch {
|
|
361
|
-
return !0;
|
|
362
|
-
}
|
|
363
|
-
}
|
|
364
|
-
function Be(e) {
|
|
365
|
-
return "" + e;
|
|
366
|
-
}
|
|
367
|
-
function qe(e) {
|
|
368
|
-
if (On(e))
|
|
369
|
-
return w("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.", Tn(e)), Be(e);
|
|
370
|
-
}
|
|
371
|
-
var oe = y.ReactCurrentOwner, Nn = {
|
|
372
|
-
key: !0,
|
|
373
|
-
ref: !0,
|
|
374
|
-
__self: !0,
|
|
375
|
-
__source: !0
|
|
376
|
-
}, Je, Ge, _e;
|
|
377
|
-
_e = {};
|
|
378
|
-
function In(e) {
|
|
379
|
-
if (re.call(e, "ref")) {
|
|
380
|
-
var s = Object.getOwnPropertyDescriptor(e, "ref").get;
|
|
381
|
-
if (s && s.isReactWarning)
|
|
382
|
-
return !1;
|
|
383
|
-
}
|
|
384
|
-
return e.ref !== void 0;
|
|
385
|
-
}
|
|
386
|
-
function Dn(e) {
|
|
387
|
-
if (re.call(e, "key")) {
|
|
388
|
-
var s = Object.getOwnPropertyDescriptor(e, "key").get;
|
|
389
|
-
if (s && s.isReactWarning)
|
|
390
|
-
return !1;
|
|
391
|
-
}
|
|
392
|
-
return e.key !== void 0;
|
|
393
|
-
}
|
|
394
|
-
function zn(e, s) {
|
|
395
|
-
if (typeof e.ref == "string" && oe.current && s && oe.current.stateNode !== s) {
|
|
396
|
-
var l = V(oe.current.type);
|
|
397
|
-
_e[l] || (w('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref', V(oe.current.type), e.ref), _e[l] = !0);
|
|
398
|
-
}
|
|
399
|
-
}
|
|
400
|
-
function Fn(e, s) {
|
|
401
|
-
{
|
|
402
|
-
var l = function() {
|
|
403
|
-
Je || (Je = !0, w("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", s));
|
|
404
|
-
};
|
|
405
|
-
l.isReactWarning = !0, Object.defineProperty(e, "key", {
|
|
406
|
-
get: l,
|
|
407
|
-
configurable: !0
|
|
408
|
-
});
|
|
409
|
-
}
|
|
410
|
-
}
|
|
411
|
-
function Un(e, s) {
|
|
412
|
-
{
|
|
413
|
-
var l = function() {
|
|
414
|
-
Ge || (Ge = !0, w("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", s));
|
|
415
|
-
};
|
|
416
|
-
l.isReactWarning = !0, Object.defineProperty(e, "ref", {
|
|
417
|
-
get: l,
|
|
418
|
-
configurable: !0
|
|
419
|
-
});
|
|
420
|
-
}
|
|
421
|
-
}
|
|
422
|
-
var Hn = function(e, s, l, g, C, E, x) {
|
|
423
|
-
var v = {
|
|
424
|
-
// This tag allows us to uniquely identify this as a React Element
|
|
425
|
-
$$typeof: n,
|
|
426
|
-
// Built-in properties that belong on the element
|
|
427
|
-
type: e,
|
|
428
|
-
key: s,
|
|
429
|
-
ref: l,
|
|
430
|
-
props: x,
|
|
431
|
-
// Record the component responsible for creating this element.
|
|
432
|
-
_owner: E
|
|
433
|
-
};
|
|
434
|
-
return v._store = {}, Object.defineProperty(v._store, "validated", {
|
|
435
|
-
configurable: !1,
|
|
436
|
-
enumerable: !1,
|
|
437
|
-
writable: !0,
|
|
438
|
-
value: !1
|
|
439
|
-
}), Object.defineProperty(v, "_self", {
|
|
440
|
-
configurable: !1,
|
|
441
|
-
enumerable: !1,
|
|
442
|
-
writable: !1,
|
|
443
|
-
value: g
|
|
444
|
-
}), Object.defineProperty(v, "_source", {
|
|
445
|
-
configurable: !1,
|
|
446
|
-
enumerable: !1,
|
|
447
|
-
writable: !1,
|
|
448
|
-
value: C
|
|
449
|
-
}), Object.freeze && (Object.freeze(v.props), Object.freeze(v)), v;
|
|
450
|
-
};
|
|
451
|
-
function Mn(e, s, l, g, C) {
|
|
452
|
-
{
|
|
453
|
-
var E, x = {}, v = null, F = null;
|
|
454
|
-
l !== void 0 && (qe(l), v = "" + l), Dn(s) && (qe(s.key), v = "" + s.key), In(s) && (F = s.ref, zn(s, C));
|
|
455
|
-
for (E in s)
|
|
456
|
-
re.call(s, E) && !Nn.hasOwnProperty(E) && (x[E] = s[E]);
|
|
457
|
-
if (e && e.defaultProps) {
|
|
458
|
-
var T = e.defaultProps;
|
|
459
|
-
for (E in T)
|
|
460
|
-
x[E] === void 0 && (x[E] = T[E]);
|
|
461
|
-
}
|
|
462
|
-
if (v || F) {
|
|
463
|
-
var O = typeof e == "function" ? e.displayName || e.name || "Unknown" : e;
|
|
464
|
-
v && Fn(x, O), F && Un(x, O);
|
|
465
|
-
}
|
|
466
|
-
return Hn(e, v, F, C, g, oe.current, x);
|
|
467
|
-
}
|
|
468
|
-
}
|
|
469
|
-
var Re = y.ReactCurrentOwner, Xe = y.ReactDebugCurrentFrame;
|
|
470
|
-
function J(e) {
|
|
471
|
-
if (e) {
|
|
472
|
-
var s = e._owner, l = fe(e.type, e._source, s ? s.type : null);
|
|
473
|
-
Xe.setExtraStackFrame(l);
|
|
474
|
-
} else
|
|
475
|
-
Xe.setExtraStackFrame(null);
|
|
476
|
-
}
|
|
477
|
-
var je;
|
|
478
|
-
je = !1;
|
|
479
|
-
function Ae(e) {
|
|
480
|
-
return typeof e == "object" && e !== null && e.$$typeof === n;
|
|
481
|
-
}
|
|
482
|
-
function Qe() {
|
|
483
|
-
{
|
|
484
|
-
if (Re.current) {
|
|
485
|
-
var e = V(Re.current.type);
|
|
486
|
-
if (e)
|
|
487
|
-
return `
|
|
488
|
-
|
|
489
|
-
Check the render method of \`` + e + "`.";
|
|
490
|
-
}
|
|
491
|
-
return "";
|
|
492
|
-
}
|
|
493
|
-
}
|
|
494
|
-
function $n(e) {
|
|
495
|
-
return "";
|
|
496
|
-
}
|
|
497
|
-
var Ze = {};
|
|
498
|
-
function Wn(e) {
|
|
499
|
-
{
|
|
500
|
-
var s = Qe();
|
|
501
|
-
if (!s) {
|
|
502
|
-
var l = typeof e == "string" ? e : e.displayName || e.name;
|
|
503
|
-
l && (s = `
|
|
504
|
-
|
|
505
|
-
Check the top-level render call using <` + l + ">.");
|
|
506
|
-
}
|
|
507
|
-
return s;
|
|
508
|
-
}
|
|
509
|
-
}
|
|
510
|
-
function en(e, s) {
|
|
511
|
-
{
|
|
512
|
-
if (!e._store || e._store.validated || e.key != null)
|
|
513
|
-
return;
|
|
514
|
-
e._store.validated = !0;
|
|
515
|
-
var l = Wn(s);
|
|
516
|
-
if (Ze[l])
|
|
517
|
-
return;
|
|
518
|
-
Ze[l] = !0;
|
|
519
|
-
var g = "";
|
|
520
|
-
e && e._owner && e._owner !== Re.current && (g = " It was passed a child from " + V(e._owner.type) + "."), J(e), w('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.', l, g), J(null);
|
|
521
|
-
}
|
|
522
|
-
}
|
|
523
|
-
function nn(e, s) {
|
|
524
|
-
{
|
|
525
|
-
if (typeof e != "object")
|
|
526
|
-
return;
|
|
527
|
-
if (ke(e))
|
|
528
|
-
for (var l = 0; l < e.length; l++) {
|
|
529
|
-
var g = e[l];
|
|
530
|
-
Ae(g) && en(g, s);
|
|
531
|
-
}
|
|
532
|
-
else if (Ae(e))
|
|
533
|
-
e._store && (e._store.validated = !0);
|
|
534
|
-
else if (e) {
|
|
535
|
-
var C = d(e);
|
|
536
|
-
if (typeof C == "function" && C !== e.entries)
|
|
537
|
-
for (var E = C.call(e), x; !(x = E.next()).done; )
|
|
538
|
-
Ae(x.value) && en(x.value, s);
|
|
539
|
-
}
|
|
540
|
-
}
|
|
541
|
-
}
|
|
542
|
-
function Ln(e) {
|
|
543
|
-
{
|
|
544
|
-
var s = e.type;
|
|
545
|
-
if (s == null || typeof s == "string")
|
|
546
|
-
return;
|
|
547
|
-
var l;
|
|
548
|
-
if (typeof s == "function")
|
|
549
|
-
l = s.propTypes;
|
|
550
|
-
else if (typeof s == "object" && (s.$$typeof === c || // Note: Memo only checks outer props here.
|
|
551
|
-
// Inner props are checked in the reconciler.
|
|
552
|
-
s.$$typeof === b))
|
|
553
|
-
l = s.propTypes;
|
|
554
|
-
else
|
|
555
|
-
return;
|
|
556
|
-
if (l) {
|
|
557
|
-
var g = V(s);
|
|
558
|
-
An(l, e.props, "prop", g, e);
|
|
559
|
-
} else if (s.PropTypes !== void 0 && !je) {
|
|
560
|
-
je = !0;
|
|
561
|
-
var C = V(s);
|
|
562
|
-
w("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?", C || "Unknown");
|
|
563
|
-
}
|
|
564
|
-
typeof s.getDefaultProps == "function" && !s.getDefaultProps.isReactClassApproved && w("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.");
|
|
565
|
-
}
|
|
566
|
-
}
|
|
567
|
-
function Yn(e) {
|
|
568
|
-
{
|
|
569
|
-
for (var s = Object.keys(e.props), l = 0; l < s.length; l++) {
|
|
570
|
-
var g = s[l];
|
|
571
|
-
if (g !== "children" && g !== "key") {
|
|
572
|
-
J(e), w("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.", g), J(null);
|
|
573
|
-
break;
|
|
574
|
-
}
|
|
575
|
-
}
|
|
576
|
-
e.ref !== null && (J(e), w("Invalid attribute `ref` supplied to `React.Fragment`."), J(null));
|
|
577
|
-
}
|
|
578
|
-
}
|
|
579
|
-
var tn = {};
|
|
580
|
-
function rn(e, s, l, g, C, E) {
|
|
581
|
-
{
|
|
582
|
-
var x = de(e);
|
|
583
|
-
if (!x) {
|
|
584
|
-
var v = "";
|
|
585
|
-
(e === void 0 || typeof e == "object" && e !== null && Object.keys(e).length === 0) && (v += " You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");
|
|
586
|
-
var F = $n();
|
|
587
|
-
F ? v += F : v += Qe();
|
|
588
|
-
var T;
|
|
589
|
-
e === null ? T = "null" : ke(e) ? T = "array" : e !== void 0 && e.$$typeof === n ? (T = "<" + (V(e.type) || "Unknown") + " />", v = " Did you accidentally export a JSX literal instead of a component?") : T = typeof e, w("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s", T, v);
|
|
590
|
-
}
|
|
591
|
-
var O = Mn(e, s, l, C, E);
|
|
592
|
-
if (O == null)
|
|
593
|
-
return O;
|
|
594
|
-
if (x) {
|
|
595
|
-
var W = s.children;
|
|
596
|
-
if (W !== void 0)
|
|
597
|
-
if (g)
|
|
598
|
-
if (ke(W)) {
|
|
599
|
-
for (var G = 0; G < W.length; G++)
|
|
600
|
-
nn(W[G], e);
|
|
601
|
-
Object.freeze && Object.freeze(W);
|
|
602
|
-
} else
|
|
603
|
-
w("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");
|
|
604
|
-
else
|
|
605
|
-
nn(W, e);
|
|
606
|
-
}
|
|
607
|
-
if (re.call(s, "key")) {
|
|
608
|
-
var B = V(e), H = Object.keys(s).filter(function(Gn) {
|
|
609
|
-
return Gn !== "key";
|
|
610
|
-
}), Pe = H.length > 0 ? "{key: someKey, " + H.join(": ..., ") + ": ...}" : "{key: someKey}";
|
|
611
|
-
if (!tn[B + Pe]) {
|
|
612
|
-
var Jn = H.length > 0 ? "{" + H.join(": ..., ") + ": ...}" : "{}";
|
|
613
|
-
w(`A props object containing a "key" prop is being spread into JSX:
|
|
614
|
-
let props = %s;
|
|
615
|
-
<%s {...props} />
|
|
616
|
-
React keys must be passed directly to JSX without using spread:
|
|
617
|
-
let props = %s;
|
|
618
|
-
<%s key={someKey} {...props} />`, Pe, B, Jn, B), tn[B + Pe] = !0;
|
|
619
|
-
}
|
|
620
|
-
}
|
|
621
|
-
return e === r ? Yn(O) : Ln(O), O;
|
|
622
|
-
}
|
|
623
|
-
}
|
|
624
|
-
function Vn(e, s, l) {
|
|
625
|
-
return rn(e, s, l, !0);
|
|
626
|
-
}
|
|
627
|
-
function Kn(e, s, l) {
|
|
628
|
-
return rn(e, s, l, !1);
|
|
629
|
-
}
|
|
630
|
-
var Bn = Kn, qn = Vn;
|
|
631
|
-
se.Fragment = r, se.jsx = Bn, se.jsxs = qn;
|
|
632
|
-
}()), se;
|
|
633
|
-
}
|
|
634
|
-
process.env.NODE_ENV === "production" ? Te.exports = tt() : Te.exports = rt();
|
|
635
|
-
var p = Te.exports, Oe, ge = nt;
|
|
636
|
-
if (process.env.NODE_ENV === "production")
|
|
637
|
-
Oe = ge.createRoot, ge.hydrateRoot;
|
|
638
|
-
else {
|
|
639
|
-
var sn = ge.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
|
|
640
|
-
Oe = function(o, n) {
|
|
641
|
-
sn.usingClientEntryPoint = !0;
|
|
642
|
-
try {
|
|
643
|
-
return ge.createRoot(o, n);
|
|
644
|
-
} finally {
|
|
645
|
-
sn.usingClientEntryPoint = !1;
|
|
646
|
-
}
|
|
647
|
-
};
|
|
648
|
-
}
|
|
649
|
-
const ot = ({ onOpen: o, onClose: n, isVisible: t, showCitadelKey: r }) => {
|
|
650
|
-
z(() => {
|
|
651
|
-
const a = (i) => {
|
|
652
|
-
var u, f;
|
|
653
|
-
!t && i.key === r && !["input", "textarea"].includes(((f = (u = i.target) == null ? void 0 : u.tagName) == null ? void 0 : f.toLowerCase()) || "") && (i.preventDefault(), o()), t && i.key === "Escape" && (i.preventDefault(), n());
|
|
1
|
+
var pe = Object.defineProperty;
|
|
2
|
+
var ge = (r, e, n) => e in r ? pe(r, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : r[e] = n;
|
|
3
|
+
var b = (r, e, n) => ge(r, typeof e != "symbol" ? e + "" : e, n);
|
|
4
|
+
import { jsx as m, jsxs as N, Fragment as he } from "react/jsx-runtime";
|
|
5
|
+
import L, { useEffect as _, useMemo as V, createContext as fe, useContext as Y, useState as R, useCallback as w, useReducer as we, useRef as U } from "react";
|
|
6
|
+
import { createRoot as be } from "react-dom/client";
|
|
7
|
+
const ye = ({ onOpen: r, onClose: e, isVisible: n, showCitadelKey: t }) => {
|
|
8
|
+
_(() => {
|
|
9
|
+
const o = (s) => {
|
|
10
|
+
var i, c;
|
|
11
|
+
!n && s.key === t && !["input", "textarea"].includes(((c = (i = s.target) == null ? void 0 : i.tagName) == null ? void 0 : c.toLowerCase()) || "") && (s.preventDefault(), r()), n && s.key === "Escape" && (s.preventDefault(), e());
|
|
654
12
|
};
|
|
655
|
-
return document.addEventListener("keydown",
|
|
656
|
-
}, [
|
|
657
|
-
},
|
|
658
|
-
container:
|
|
659
|
-
innerContainer:
|
|
660
|
-
inputSection:
|
|
661
|
-
resizeHandle:
|
|
662
|
-
citadel_slideUp:
|
|
663
|
-
citadel_slideDown:
|
|
664
|
-
},
|
|
665
|
-
const { isVisible:
|
|
666
|
-
return
|
|
667
|
-
if (
|
|
668
|
-
const
|
|
669
|
-
|
|
13
|
+
return document.addEventListener("keydown", o), () => document.removeEventListener("keydown", o);
|
|
14
|
+
}, [r, e, n, t]);
|
|
15
|
+
}, xe = "_container_141sr_3", ve = "_innerContainer_141sr_19", Ce = "_inputSection_141sr_28", Se = "_resizeHandle_141sr_35", ke = "_citadel_slideUp_141sr_64", Ee = "_citadel_slideDown_141sr_68", Q = {
|
|
16
|
+
container: xe,
|
|
17
|
+
innerContainer: ve,
|
|
18
|
+
inputSection: Ce,
|
|
19
|
+
resizeHandle: Se,
|
|
20
|
+
citadel_slideUp: ke,
|
|
21
|
+
citadel_slideDown: Ee
|
|
22
|
+
}, Ne = (r) => {
|
|
23
|
+
const { isVisible: e, isClosing: n, onAnimationComplete: t } = r, o = V(() => e ? n ? Q.slideDown : Q.slideUp : "", [e, n]);
|
|
24
|
+
return _(() => {
|
|
25
|
+
if (t) {
|
|
26
|
+
const i = setTimeout(() => {
|
|
27
|
+
t();
|
|
670
28
|
}, 200);
|
|
671
|
-
return () => clearTimeout(
|
|
29
|
+
return () => clearTimeout(i);
|
|
672
30
|
}
|
|
673
|
-
}, [
|
|
674
|
-
style:
|
|
675
|
-
opacity:
|
|
676
|
-
transform:
|
|
31
|
+
}, [n, t]), {
|
|
32
|
+
style: V(() => ({
|
|
33
|
+
opacity: e ? 1 : 0,
|
|
34
|
+
transform: e ? "translateY(0)" : n ? "translateY(100%)" : "translateY(-100%)",
|
|
677
35
|
transition: "opacity 200ms ease-in-out, transform 200ms ease-in-out"
|
|
678
|
-
}), [
|
|
679
|
-
animationClass:
|
|
36
|
+
}), [e, n]),
|
|
37
|
+
animationClass: o
|
|
680
38
|
};
|
|
681
39
|
};
|
|
682
|
-
var
|
|
683
|
-
class
|
|
684
|
-
constructor(
|
|
685
|
-
|
|
686
|
-
this.timestamp =
|
|
40
|
+
var M = /* @__PURE__ */ ((r) => (r.Pending = "pending", r.Success = "success", r.Failure = "failure", r.Timeout = "timeout", r))(M || {});
|
|
41
|
+
class F {
|
|
42
|
+
constructor(e = Date.now()) {
|
|
43
|
+
b(this, "_status", "pending");
|
|
44
|
+
this.timestamp = e;
|
|
687
45
|
}
|
|
688
46
|
get status() {
|
|
689
47
|
return this._status;
|
|
@@ -698,41 +56,41 @@ class Z {
|
|
|
698
56
|
this._status = "timeout";
|
|
699
57
|
}
|
|
700
58
|
}
|
|
701
|
-
class
|
|
702
|
-
constructor(
|
|
703
|
-
super(
|
|
59
|
+
class nn extends F {
|
|
60
|
+
constructor(e, n) {
|
|
61
|
+
super(n), this.data = e;
|
|
704
62
|
}
|
|
705
63
|
render() {
|
|
706
|
-
return /* @__PURE__ */
|
|
64
|
+
return /* @__PURE__ */ m("pre", { className: "text-gray-200", children: JSON.stringify(this.data, null, 2) });
|
|
707
65
|
}
|
|
708
66
|
}
|
|
709
|
-
class
|
|
710
|
-
constructor(
|
|
711
|
-
super(
|
|
67
|
+
class oe extends F {
|
|
68
|
+
constructor(e, n) {
|
|
69
|
+
super(n), this.text = e;
|
|
712
70
|
}
|
|
713
71
|
render() {
|
|
714
|
-
return /* @__PURE__ */
|
|
72
|
+
return /* @__PURE__ */ m("div", { className: "text-gray-200 whitespace-pre font-mono", children: this.text });
|
|
715
73
|
}
|
|
716
74
|
}
|
|
717
|
-
class
|
|
718
|
-
constructor(
|
|
719
|
-
super(
|
|
75
|
+
class _e extends F {
|
|
76
|
+
constructor(e, n) {
|
|
77
|
+
super(n), this.error = e, this.markFailure();
|
|
720
78
|
}
|
|
721
79
|
render() {
|
|
722
|
-
return /* @__PURE__ */
|
|
80
|
+
return /* @__PURE__ */ m("div", { className: "mt-1 text-red-400", children: this.error });
|
|
723
81
|
}
|
|
724
82
|
}
|
|
725
|
-
class
|
|
83
|
+
class Ae extends F {
|
|
726
84
|
render() {
|
|
727
|
-
return /* @__PURE__ */
|
|
85
|
+
return /* @__PURE__ */ m("div", { className: "text-gray-400", children: "..." });
|
|
728
86
|
}
|
|
729
87
|
}
|
|
730
|
-
class
|
|
731
|
-
constructor(
|
|
732
|
-
super(
|
|
88
|
+
class tn extends F {
|
|
89
|
+
constructor(e, n = "", t) {
|
|
90
|
+
super(t), this.imageUrl = e, this.altText = n;
|
|
733
91
|
}
|
|
734
92
|
render() {
|
|
735
|
-
return /* @__PURE__ */
|
|
93
|
+
return /* @__PURE__ */ m("div", { className: "my-2", children: /* @__PURE__ */ m(
|
|
736
94
|
"img",
|
|
737
95
|
{
|
|
738
96
|
src: this.imageUrl,
|
|
@@ -742,44 +100,44 @@ class Mt extends Z {
|
|
|
742
100
|
) });
|
|
743
101
|
}
|
|
744
102
|
}
|
|
745
|
-
const
|
|
746
|
-
const
|
|
747
|
-
return
|
|
748
|
-
|
|
749
|
-
` +
|
|
103
|
+
const ze = (r) => async function() {
|
|
104
|
+
const e = r.commands.filter((n) => n.fullPath[0] !== "help").map((n) => `${n.segments.map((o) => o.type === "argument" ? `<${o.name}>` : o.name).join(" ")} - ${n.description}`).sort();
|
|
105
|
+
return e.push("help - Show available commands"), new oe(
|
|
106
|
+
e.length > 0 ? `Available Commands:
|
|
107
|
+
` + e.join(`
|
|
750
108
|
`) : "No commands available yet. Add some commands to get started!"
|
|
751
109
|
);
|
|
752
110
|
};
|
|
753
|
-
var
|
|
754
|
-
class
|
|
755
|
-
static configure(
|
|
756
|
-
this.level =
|
|
111
|
+
var W = /* @__PURE__ */ ((r) => (r[r.NONE = 0] = "NONE", r[r.ERROR = 1] = "ERROR", r[r.WARN = 2] = "WARN", r[r.INFO = 3] = "INFO", r[r.DEBUG = 4] = "DEBUG", r[r.TRACE = 5] = "TRACE", r))(W || {});
|
|
112
|
+
class C {
|
|
113
|
+
static configure(e) {
|
|
114
|
+
this.level = e.level, this.prefix = e.prefix || "[Citadel]";
|
|
757
115
|
}
|
|
758
|
-
static trace(...
|
|
759
|
-
this.level >= 5 && process.env.NODE_ENV !== "production" && console.trace(this.prefix, ...
|
|
116
|
+
static trace(...e) {
|
|
117
|
+
this.level >= 5 && process.env.NODE_ENV !== "production" && console.trace(this.prefix, ...e);
|
|
760
118
|
}
|
|
761
|
-
static debug(...
|
|
762
|
-
this.level >= 4 && process.env.NODE_ENV !== "production" && console.debug(this.prefix, ...
|
|
119
|
+
static debug(...e) {
|
|
120
|
+
this.level >= 4 && process.env.NODE_ENV !== "production" && console.debug(this.prefix, ...e);
|
|
763
121
|
}
|
|
764
|
-
static info(...
|
|
765
|
-
this.level >= 3 && console.info(this.prefix, ...
|
|
122
|
+
static info(...e) {
|
|
123
|
+
this.level >= 3 && console.info(this.prefix, ...e);
|
|
766
124
|
}
|
|
767
|
-
static warn(...
|
|
768
|
-
this.level >= 2 && console.warn(this.prefix, ...
|
|
125
|
+
static warn(...e) {
|
|
126
|
+
this.level >= 2 && console.warn(this.prefix, ...e);
|
|
769
127
|
}
|
|
770
|
-
static error(...
|
|
771
|
-
this.level >= 1 && console.error(this.prefix, ...
|
|
128
|
+
static error(...e) {
|
|
129
|
+
this.level >= 1 && console.error(this.prefix, ...e);
|
|
772
130
|
}
|
|
773
131
|
}
|
|
774
|
-
|
|
775
|
-
const
|
|
132
|
+
b(C, "level", 0), b(C, "prefix", "");
|
|
133
|
+
const A = {
|
|
776
134
|
commandTimeoutMs: 1e4,
|
|
777
135
|
cursorColor: "var(--cursor-color, #fff)",
|
|
778
136
|
cursorSpeed: 530,
|
|
779
137
|
cursorType: "blink",
|
|
780
138
|
includeHelpCommand: !0,
|
|
781
139
|
initialHeight: "40vh",
|
|
782
|
-
logLevel: process.env.NODE_ENV === "production" ?
|
|
140
|
+
logLevel: process.env.NODE_ENV === "production" ? W.ERROR : W.DEBUG,
|
|
783
141
|
maxHeight: "80vh",
|
|
784
142
|
minHeight: "200",
|
|
785
143
|
outputFontSize: "0.875rem",
|
|
@@ -790,94 +148,94 @@ const M = {
|
|
|
790
148
|
maxCommands: 100
|
|
791
149
|
}
|
|
792
150
|
};
|
|
793
|
-
class
|
|
794
|
-
constructor(
|
|
795
|
-
|
|
151
|
+
class se {
|
|
152
|
+
constructor(e) {
|
|
153
|
+
b(this, "config");
|
|
796
154
|
this.config = {
|
|
797
155
|
type: "localStorage",
|
|
798
156
|
maxCommands: 100,
|
|
799
|
-
...
|
|
157
|
+
...e
|
|
800
158
|
};
|
|
801
159
|
}
|
|
802
160
|
/**
|
|
803
161
|
* Add a command to history, enforcing storage limits
|
|
804
162
|
*/
|
|
805
|
-
async addStoredCommand(
|
|
806
|
-
const
|
|
807
|
-
for (
|
|
808
|
-
|
|
809
|
-
await this.saveCommands(
|
|
163
|
+
async addStoredCommand(e) {
|
|
164
|
+
const n = await this.getStoredCommands();
|
|
165
|
+
for (n.push(e); n.length > this.config.maxCommands; )
|
|
166
|
+
n.shift();
|
|
167
|
+
await this.saveCommands(n);
|
|
810
168
|
}
|
|
811
169
|
}
|
|
812
|
-
class
|
|
813
|
-
constructor(
|
|
814
|
-
super(
|
|
815
|
-
|
|
170
|
+
class Ie extends se {
|
|
171
|
+
constructor(n) {
|
|
172
|
+
super(n);
|
|
173
|
+
b(this, "storageKey", "citadel_command_history");
|
|
816
174
|
}
|
|
817
175
|
async getStoredCommands() {
|
|
818
176
|
try {
|
|
819
|
-
const
|
|
820
|
-
return
|
|
821
|
-
commandSegments:
|
|
822
|
-
timestamp:
|
|
177
|
+
const n = window.localStorage.getItem(this.storageKey);
|
|
178
|
+
return n ? JSON.parse(n).map((o) => ({
|
|
179
|
+
commandSegments: o.commandSegments || [],
|
|
180
|
+
timestamp: o.timestamp
|
|
823
181
|
})) : [];
|
|
824
|
-
} catch (
|
|
825
|
-
return console.warn("Failed to load commands from localStorage:",
|
|
182
|
+
} catch (n) {
|
|
183
|
+
return console.warn("Failed to load commands from localStorage:", n), [];
|
|
826
184
|
}
|
|
827
185
|
}
|
|
828
186
|
async clear() {
|
|
829
187
|
try {
|
|
830
188
|
window.localStorage.removeItem(this.storageKey);
|
|
831
|
-
} catch (
|
|
832
|
-
console.warn("Failed to clear localStorage:",
|
|
189
|
+
} catch (n) {
|
|
190
|
+
console.warn("Failed to clear localStorage:", n);
|
|
833
191
|
}
|
|
834
192
|
}
|
|
835
|
-
async saveCommands(
|
|
193
|
+
async saveCommands(n) {
|
|
836
194
|
try {
|
|
837
|
-
const
|
|
838
|
-
commandSegments: Array.isArray(
|
|
839
|
-
timestamp:
|
|
195
|
+
const t = n.map((o) => ({
|
|
196
|
+
commandSegments: Array.isArray(o.commandSegments) ? [...o.commandSegments] : [],
|
|
197
|
+
timestamp: o.timestamp
|
|
840
198
|
}));
|
|
841
|
-
window.localStorage.setItem(this.storageKey, JSON.stringify(
|
|
842
|
-
} catch (
|
|
843
|
-
throw console.warn("Failed to save commands to localStorage:",
|
|
199
|
+
window.localStorage.setItem(this.storageKey, JSON.stringify(t));
|
|
200
|
+
} catch (t) {
|
|
201
|
+
throw console.warn("Failed to save commands to localStorage:", t), t;
|
|
844
202
|
}
|
|
845
203
|
}
|
|
846
204
|
}
|
|
847
|
-
class
|
|
848
|
-
constructor(
|
|
849
|
-
super(
|
|
850
|
-
|
|
205
|
+
class Re extends se {
|
|
206
|
+
constructor(n) {
|
|
207
|
+
super(n);
|
|
208
|
+
b(this, "storedCommands", []);
|
|
851
209
|
}
|
|
852
210
|
async getStoredCommands() {
|
|
853
|
-
return this.storedCommands.map((
|
|
854
|
-
commandSegments: Array.isArray(
|
|
855
|
-
timestamp:
|
|
211
|
+
return this.storedCommands.map((n) => ({
|
|
212
|
+
commandSegments: Array.isArray(n.commandSegments) ? [...n.commandSegments] : [],
|
|
213
|
+
timestamp: n.timestamp
|
|
856
214
|
}));
|
|
857
215
|
}
|
|
858
216
|
async clear() {
|
|
859
217
|
this.storedCommands = [];
|
|
860
218
|
}
|
|
861
|
-
async saveCommands(
|
|
862
|
-
this.storedCommands =
|
|
863
|
-
commandSegments: Array.isArray(
|
|
864
|
-
timestamp:
|
|
219
|
+
async saveCommands(n) {
|
|
220
|
+
this.storedCommands = n.map((t) => ({
|
|
221
|
+
commandSegments: Array.isArray(t.commandSegments) ? [...t.commandSegments] : [],
|
|
222
|
+
timestamp: t.timestamp
|
|
865
223
|
}));
|
|
866
224
|
}
|
|
867
225
|
}
|
|
868
|
-
const
|
|
226
|
+
const D = class D {
|
|
869
227
|
constructor() {
|
|
870
|
-
|
|
228
|
+
b(this, "currentStorage");
|
|
871
229
|
}
|
|
872
230
|
static getInstance() {
|
|
873
|
-
return
|
|
231
|
+
return D.instance || (D.instance = new D()), D.instance;
|
|
874
232
|
}
|
|
875
|
-
initializeStorage(
|
|
233
|
+
initializeStorage(e) {
|
|
876
234
|
if (!this.currentStorage)
|
|
877
235
|
try {
|
|
878
|
-
this.currentStorage = new
|
|
879
|
-
} catch (
|
|
880
|
-
console.warn("Failed to create storage, falling back to memory storage:",
|
|
236
|
+
this.currentStorage = new Ie(e);
|
|
237
|
+
} catch (n) {
|
|
238
|
+
console.warn("Failed to create storage, falling back to memory storage:", n), this.currentStorage = new Re(e);
|
|
881
239
|
}
|
|
882
240
|
}
|
|
883
241
|
getStorage() {
|
|
@@ -886,39 +244,39 @@ const q = class q {
|
|
|
886
244
|
return this.currentStorage;
|
|
887
245
|
}
|
|
888
246
|
};
|
|
889
|
-
|
|
890
|
-
let
|
|
891
|
-
const
|
|
892
|
-
class
|
|
893
|
-
constructor(n, t
|
|
894
|
-
this.type =
|
|
247
|
+
b(D, "instance");
|
|
248
|
+
let q = D;
|
|
249
|
+
const ae = async () => new oe("");
|
|
250
|
+
class G {
|
|
251
|
+
constructor(e, n, t) {
|
|
252
|
+
this.type = e, this.name = n, this.description = t;
|
|
895
253
|
}
|
|
896
254
|
toString() {
|
|
897
255
|
return this.name;
|
|
898
256
|
}
|
|
899
257
|
}
|
|
900
|
-
class
|
|
258
|
+
class ie extends G {
|
|
901
259
|
constructor() {
|
|
902
260
|
super("null", ">null<", "Empty segment");
|
|
903
261
|
}
|
|
904
262
|
}
|
|
905
|
-
class
|
|
906
|
-
constructor(
|
|
907
|
-
super("word",
|
|
263
|
+
class Pe extends G {
|
|
264
|
+
constructor(e, n) {
|
|
265
|
+
super("word", e, n);
|
|
908
266
|
}
|
|
909
267
|
}
|
|
910
|
-
class
|
|
911
|
-
constructor(n, t,
|
|
912
|
-
super("argument",
|
|
268
|
+
class He extends G {
|
|
269
|
+
constructor(e, n, t, o) {
|
|
270
|
+
super("argument", e, n), this.value = t, this.valid = o;
|
|
913
271
|
}
|
|
914
272
|
}
|
|
915
|
-
class
|
|
916
|
-
constructor(n, t
|
|
917
|
-
|
|
918
|
-
|
|
273
|
+
class De {
|
|
274
|
+
constructor(e, n, t = ae) {
|
|
275
|
+
b(this, "_segments");
|
|
276
|
+
b(this, "_description");
|
|
919
277
|
// Used by `Help` command, etc.
|
|
920
|
-
|
|
921
|
-
this._segments =
|
|
278
|
+
b(this, "_handler");
|
|
279
|
+
this._segments = e, this._description = n, this._handler = t;
|
|
922
280
|
}
|
|
923
281
|
get segments() {
|
|
924
282
|
return this._segments;
|
|
@@ -930,21 +288,21 @@ class yt {
|
|
|
930
288
|
return this._handler;
|
|
931
289
|
}
|
|
932
290
|
get hasArguments() {
|
|
933
|
-
return this.segments.some((
|
|
291
|
+
return this.segments.some((e) => e.type === "argument");
|
|
934
292
|
}
|
|
935
293
|
get fullPath() {
|
|
936
|
-
return this.segments.map((
|
|
294
|
+
return this.segments.map((e) => e.name);
|
|
937
295
|
}
|
|
938
296
|
get fullPath_s() {
|
|
939
297
|
return this.fullPath.join(" ");
|
|
940
298
|
}
|
|
941
|
-
equals(
|
|
942
|
-
return this.fullPath.join(" ") ===
|
|
299
|
+
equals(e) {
|
|
300
|
+
return this.fullPath.join(" ") === e.fullPath.join(" ");
|
|
943
301
|
}
|
|
944
302
|
}
|
|
945
|
-
class
|
|
303
|
+
class J {
|
|
946
304
|
constructor() {
|
|
947
|
-
|
|
305
|
+
b(this, "_commands", []);
|
|
948
306
|
}
|
|
949
307
|
get commands() {
|
|
950
308
|
return this._commands;
|
|
@@ -956,20 +314,20 @@ class Ie {
|
|
|
956
314
|
* @throws {Error} If attempting to add a duplicate leaf command or a subcommand to a leaf
|
|
957
315
|
*
|
|
958
316
|
*/
|
|
959
|
-
addCommand(n, t
|
|
960
|
-
if (
|
|
317
|
+
addCommand(e, n, t = ae) {
|
|
318
|
+
if (e === void 0 || e.length === 0)
|
|
961
319
|
throw new Error("Command path cannot be empty");
|
|
962
|
-
const
|
|
963
|
-
const
|
|
964
|
-
(
|
|
965
|
-
).join(" "),
|
|
966
|
-
(
|
|
320
|
+
const o = new De(e, n, t), s = this._commands.find((i) => {
|
|
321
|
+
const c = i.segments.map(
|
|
322
|
+
(l) => l.type === "argument" ? "*" : l.name
|
|
323
|
+
).join(" "), d = e.map(
|
|
324
|
+
(l) => l.type === "argument" ? "*" : l.name
|
|
967
325
|
).join(" ");
|
|
968
|
-
return
|
|
326
|
+
return c === d;
|
|
969
327
|
});
|
|
970
|
-
if (
|
|
971
|
-
throw new Error(`Duplicate commands: '${
|
|
972
|
-
this._commands.push(
|
|
328
|
+
if (s)
|
|
329
|
+
throw new Error(`Duplicate commands: '${s.fullPath_s}' and '${o.fullPath_s}'`);
|
|
330
|
+
this._commands.push(o);
|
|
973
331
|
}
|
|
974
332
|
/**
|
|
975
333
|
* Retrieves a command from the registry for the given path.
|
|
@@ -977,24 +335,27 @@ class Ie {
|
|
|
977
335
|
* @param path The path of the command.
|
|
978
336
|
* @returns The command node or undefined if not found.
|
|
979
337
|
*/
|
|
980
|
-
getCommand(
|
|
981
|
-
return this._commands.find((
|
|
982
|
-
const
|
|
983
|
-
|
|
338
|
+
getCommand(e) {
|
|
339
|
+
return this._commands.find((n) => {
|
|
340
|
+
const t = n.fullPath.join(" "), o = e.join(" ");
|
|
341
|
+
if (t === o)
|
|
342
|
+
return !0;
|
|
343
|
+
const i = n.segments.filter((c) => c.type === "word").map((c) => c.name);
|
|
344
|
+
return i.length === e.length && i.join(" ") === o;
|
|
984
345
|
});
|
|
985
346
|
}
|
|
986
|
-
commandExistsForPath(
|
|
987
|
-
const
|
|
988
|
-
(
|
|
989
|
-
(
|
|
347
|
+
commandExistsForPath(e) {
|
|
348
|
+
const n = this._commands.map(
|
|
349
|
+
(o) => o.segments.map(
|
|
350
|
+
(s) => s.type === "argument" ? "*" : s.name
|
|
990
351
|
).join(" ")
|
|
991
|
-
),
|
|
992
|
-
(
|
|
993
|
-
var
|
|
994
|
-
return ((
|
|
352
|
+
), t = e.map((o, s) => this._commands.some(
|
|
353
|
+
(c) => {
|
|
354
|
+
var d;
|
|
355
|
+
return ((d = c.segments[s]) == null ? void 0 : d.type) === "argument";
|
|
995
356
|
}
|
|
996
|
-
) ? "*" :
|
|
997
|
-
return
|
|
357
|
+
) ? "*" : o).join(" ");
|
|
358
|
+
return n.includes(t);
|
|
998
359
|
}
|
|
999
360
|
/**
|
|
1000
361
|
* Gets possible matches for a given path.
|
|
@@ -1003,8 +364,8 @@ class Ie {
|
|
|
1003
364
|
* @returns An array of completion strings.
|
|
1004
365
|
*/
|
|
1005
366
|
// used by AvailableCommands
|
|
1006
|
-
getCompletions_s(
|
|
1007
|
-
return this.getCompletions(
|
|
367
|
+
getCompletions_s(e) {
|
|
368
|
+
return this.getCompletions(e).map((n) => n.name);
|
|
1008
369
|
}
|
|
1009
370
|
/**
|
|
1010
371
|
* Gets an array of segments reachable from a given path
|
|
@@ -1012,51 +373,51 @@ class Ie {
|
|
|
1012
373
|
* @param path The path to get completions for.
|
|
1013
374
|
* @returns An array of completion strings.
|
|
1014
375
|
*/
|
|
1015
|
-
getCompletions(
|
|
1016
|
-
if (
|
|
1017
|
-
const
|
|
1018
|
-
return
|
|
1019
|
-
(
|
|
376
|
+
getCompletions(e) {
|
|
377
|
+
if (C.debug("[getCompletions] path: ", e), !e.length) {
|
|
378
|
+
const s = this._commands.map((d) => d.segments[0]), i = (d, l) => d.type === l.type && d.name === l.name;
|
|
379
|
+
return s.filter(
|
|
380
|
+
(d, l, u) => l === u.findIndex((p) => i(p, d))
|
|
1020
381
|
);
|
|
1021
382
|
}
|
|
1022
|
-
const
|
|
1023
|
-
return this._commands.filter((
|
|
1024
|
-
const
|
|
1025
|
-
if (
|
|
383
|
+
const n = e.length;
|
|
384
|
+
return this._commands.filter((s) => {
|
|
385
|
+
const i = s.segments;
|
|
386
|
+
if (i.length <= n - 1)
|
|
1026
387
|
return !1;
|
|
1027
|
-
for (let
|
|
1028
|
-
const
|
|
1029
|
-
if (!(
|
|
388
|
+
for (let c = 0; c < n; c++) {
|
|
389
|
+
const d = e[c], l = i[c];
|
|
390
|
+
if (!(d === "*" && l.type === "argument") && d !== l.name)
|
|
1030
391
|
return !1;
|
|
1031
392
|
}
|
|
1032
393
|
return !0;
|
|
1033
|
-
}).filter((
|
|
1034
|
-
const
|
|
1035
|
-
return new
|
|
394
|
+
}).filter((s) => s.segments.length > n).map((s) => {
|
|
395
|
+
const i = s.segments[n], c = i.type === "argument" ? He : Pe;
|
|
396
|
+
return new c(i.name, i.description);
|
|
1036
397
|
}).filter(
|
|
1037
|
-
(
|
|
1038
|
-
(
|
|
398
|
+
(s, i, c) => i === c.findIndex(
|
|
399
|
+
(d) => d.type === s.type && d.name === s.name
|
|
1039
400
|
)
|
|
1040
401
|
);
|
|
1041
402
|
}
|
|
1042
|
-
hasNextSegment(
|
|
1043
|
-
return this.getCompletions(
|
|
403
|
+
hasNextSegment(e) {
|
|
404
|
+
return this.getCompletions(e).length > 0;
|
|
1044
405
|
}
|
|
1045
406
|
}
|
|
1046
|
-
class
|
|
407
|
+
class le {
|
|
1047
408
|
constructor() {
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
409
|
+
b(this, "segments", []);
|
|
410
|
+
b(this, "nullSegment", new ie());
|
|
411
|
+
b(this, "observers", []);
|
|
1051
412
|
}
|
|
1052
|
-
subscribe(
|
|
1053
|
-
this.observers.push(
|
|
413
|
+
subscribe(e) {
|
|
414
|
+
this.observers.push(e);
|
|
1054
415
|
}
|
|
1055
|
-
unsubscribe(
|
|
1056
|
-
this.observers = this.observers.filter((
|
|
416
|
+
unsubscribe(e) {
|
|
417
|
+
this.observers = this.observers.filter((n) => n !== e);
|
|
1057
418
|
}
|
|
1058
419
|
notifyObservers() {
|
|
1059
|
-
this.observers.forEach((
|
|
420
|
+
this.observers.forEach((e) => e.update());
|
|
1060
421
|
}
|
|
1061
422
|
/**
|
|
1062
423
|
* Clears all segments from the stack
|
|
@@ -1067,22 +428,22 @@ class yn {
|
|
|
1067
428
|
/**
|
|
1068
429
|
* Pushes a new segment onto the stack
|
|
1069
430
|
*/
|
|
1070
|
-
push(
|
|
1071
|
-
this.segments.push(
|
|
431
|
+
push(e) {
|
|
432
|
+
this.segments.push(e), this.notifyObservers();
|
|
1072
433
|
}
|
|
1073
434
|
/**
|
|
1074
435
|
* Pushes an array of segments onto the stack
|
|
1075
436
|
*/
|
|
1076
|
-
pushAll(
|
|
1077
|
-
|
|
437
|
+
pushAll(e) {
|
|
438
|
+
e.forEach((n) => this.push(n));
|
|
1078
439
|
}
|
|
1079
440
|
/**
|
|
1080
441
|
* Removes and returns the top segment from the stack
|
|
1081
442
|
* Returns NullSegment if stack is empty
|
|
1082
443
|
*/
|
|
1083
444
|
pop() {
|
|
1084
|
-
const
|
|
1085
|
-
return this.notifyObservers(),
|
|
445
|
+
const e = this.segments.pop() || this.nullSegment;
|
|
446
|
+
return this.notifyObservers(), e;
|
|
1086
447
|
}
|
|
1087
448
|
/**
|
|
1088
449
|
* Returns the top segment without removing it
|
|
@@ -1107,21 +468,21 @@ class yn {
|
|
|
1107
468
|
* Returns true if any segment in the stack is an argument
|
|
1108
469
|
*/
|
|
1109
470
|
get hasArguments() {
|
|
1110
|
-
return this.segments.some((
|
|
471
|
+
return this.segments.some((e) => e.type === "argument");
|
|
1111
472
|
}
|
|
1112
473
|
/**
|
|
1113
474
|
* Returns all argument segments in the stack
|
|
1114
475
|
*/
|
|
1115
476
|
get arguments() {
|
|
1116
477
|
return this.segments.filter(
|
|
1117
|
-
(
|
|
478
|
+
(e) => e.type === "argument"
|
|
1118
479
|
);
|
|
1119
480
|
}
|
|
1120
481
|
/**
|
|
1121
482
|
* Returns the command path as an array of segment names
|
|
1122
483
|
*/
|
|
1123
484
|
path() {
|
|
1124
|
-
return this.segments.map((
|
|
485
|
+
return this.segments.map((e) => e.name);
|
|
1125
486
|
}
|
|
1126
487
|
/**
|
|
1127
488
|
* Returns a copy of the internal segments array
|
|
@@ -1130,240 +491,240 @@ class yn {
|
|
|
1130
491
|
return [...this.segments];
|
|
1131
492
|
}
|
|
1132
493
|
}
|
|
1133
|
-
const
|
|
1134
|
-
config:
|
|
1135
|
-
commands: new
|
|
1136
|
-
segmentStack: new
|
|
1137
|
-
},
|
|
1138
|
-
const [
|
|
1139
|
-
...
|
|
1140
|
-
...
|
|
494
|
+
const Ue = {
|
|
495
|
+
config: A,
|
|
496
|
+
commands: new J(),
|
|
497
|
+
segmentStack: new le()
|
|
498
|
+
}, O = fe(Ue), Fe = ({ config: r = A, commandRegistry: e, children: n }) => {
|
|
499
|
+
const [t, o] = L.useState(), s = {
|
|
500
|
+
...A,
|
|
501
|
+
...r,
|
|
1141
502
|
// Ensure nested objects are properly merged
|
|
1142
503
|
storage: {
|
|
1143
|
-
...
|
|
1144
|
-
...
|
|
504
|
+
...A.storage,
|
|
505
|
+
...r.storage
|
|
1145
506
|
},
|
|
1146
507
|
// Ensure explicit values from config take precedence
|
|
1147
|
-
cursorType:
|
|
1148
|
-
cursorColor:
|
|
1149
|
-
cursorSpeed:
|
|
1150
|
-
showCitadelKey:
|
|
508
|
+
cursorType: r.cursorType ?? A.cursorType,
|
|
509
|
+
cursorColor: r.cursorColor ?? A.cursorColor,
|
|
510
|
+
cursorSpeed: r.cursorSpeed ?? A.cursorSpeed,
|
|
511
|
+
showCitadelKey: r.showCitadelKey || "."
|
|
1151
512
|
};
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
),
|
|
1156
|
-
}, []),
|
|
1157
|
-
if (
|
|
1158
|
-
const
|
|
1159
|
-
|
|
513
|
+
_(() => {
|
|
514
|
+
q.getInstance().initializeStorage(
|
|
515
|
+
s.storage ?? A.storage
|
|
516
|
+
), o(q.getInstance().getStorage());
|
|
517
|
+
}, []), _(() => {
|
|
518
|
+
if (e && s.includeHelpCommand && !e.commandExistsForPath(["help"])) {
|
|
519
|
+
const c = ze(e);
|
|
520
|
+
e.addCommand(
|
|
1160
521
|
[{ type: "word", name: "help" }],
|
|
1161
522
|
"Show available commands",
|
|
1162
|
-
|
|
523
|
+
c
|
|
1163
524
|
);
|
|
1164
525
|
}
|
|
1165
|
-
}, [
|
|
1166
|
-
const
|
|
1167
|
-
config:
|
|
1168
|
-
commands:
|
|
1169
|
-
storage:
|
|
1170
|
-
segmentStack: new
|
|
526
|
+
}, [e, s.includeHelpCommand]);
|
|
527
|
+
const i = {
|
|
528
|
+
config: s,
|
|
529
|
+
commands: e || new J(),
|
|
530
|
+
storage: t,
|
|
531
|
+
segmentStack: new le()
|
|
1171
532
|
};
|
|
1172
|
-
return /* @__PURE__ */
|
|
1173
|
-
},
|
|
1174
|
-
const
|
|
1175
|
-
if (
|
|
533
|
+
return /* @__PURE__ */ m(O.Provider, { value: i, children: n });
|
|
534
|
+
}, $ = () => {
|
|
535
|
+
const r = Y(O);
|
|
536
|
+
if (r === void 0)
|
|
1176
537
|
throw new Error("useCitadelConfig must be used within a CitadelConfigProvider");
|
|
1177
|
-
return
|
|
1178
|
-
},
|
|
1179
|
-
const
|
|
1180
|
-
if (
|
|
538
|
+
return r.config;
|
|
539
|
+
}, B = () => {
|
|
540
|
+
const r = Y(O);
|
|
541
|
+
if (r === void 0)
|
|
1181
542
|
throw new Error("useCitadelCommands must be used within a CitadelConfigProvider");
|
|
1182
|
-
return
|
|
1183
|
-
},
|
|
1184
|
-
const
|
|
1185
|
-
if (
|
|
543
|
+
return r.commands;
|
|
544
|
+
}, ce = () => {
|
|
545
|
+
const r = Y(O);
|
|
546
|
+
if (r === void 0)
|
|
1186
547
|
throw new Error("useCitadelStorage must be used within a CitadelConfigProvider");
|
|
1187
|
-
return
|
|
1188
|
-
},
|
|
1189
|
-
const
|
|
1190
|
-
if (
|
|
548
|
+
return r.storage;
|
|
549
|
+
}, K = () => {
|
|
550
|
+
const r = Y(O);
|
|
551
|
+
if (r === void 0)
|
|
1191
552
|
throw new Error("useSegmentStack must be used within a CitadelConfigProvider");
|
|
1192
|
-
return
|
|
553
|
+
return r.segmentStack;
|
|
1193
554
|
};
|
|
1194
|
-
class
|
|
1195
|
-
constructor(
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
this.command =
|
|
555
|
+
class Te {
|
|
556
|
+
constructor(e, n) {
|
|
557
|
+
b(this, "timestamp");
|
|
558
|
+
b(this, "command");
|
|
559
|
+
b(this, "result");
|
|
560
|
+
this.command = e.toArray().map((t) => t.type === "argument" ? t.value || "" : t.name), this.timestamp = Date.now(), this.result = n ?? new Ae();
|
|
1200
561
|
}
|
|
1201
562
|
}
|
|
1202
|
-
function
|
|
563
|
+
function je(r) {
|
|
1203
564
|
return {
|
|
1204
|
-
commandSegments:
|
|
565
|
+
commandSegments: r,
|
|
1205
566
|
timestamp: Date.now()
|
|
1206
567
|
};
|
|
1207
568
|
}
|
|
1208
|
-
function
|
|
1209
|
-
const
|
|
569
|
+
function de() {
|
|
570
|
+
const r = ce(), [e, n] = R({
|
|
1210
571
|
storedCommands: [],
|
|
1211
572
|
position: null
|
|
1212
|
-
}),
|
|
1213
|
-
if (
|
|
573
|
+
}), t = w(async (c) => {
|
|
574
|
+
if (r)
|
|
1214
575
|
try {
|
|
1215
|
-
const
|
|
1216
|
-
await
|
|
1217
|
-
...
|
|
1218
|
-
storedCommands: [...
|
|
576
|
+
const d = je(c);
|
|
577
|
+
await r.addStoredCommand(d), n((l) => ({
|
|
578
|
+
...l,
|
|
579
|
+
storedCommands: [...l.storedCommands, d],
|
|
1219
580
|
position: null
|
|
1220
581
|
}));
|
|
1221
|
-
} catch (
|
|
1222
|
-
console.warn("Failed to save command to history:",
|
|
582
|
+
} catch (d) {
|
|
583
|
+
console.warn("Failed to save command to history:", d);
|
|
1223
584
|
}
|
|
1224
|
-
}, [
|
|
1225
|
-
|
|
1226
|
-
if (!
|
|
585
|
+
}, [r]), o = w(async () => r ? await r.getStoredCommands() : [], [r]);
|
|
586
|
+
_(() => {
|
|
587
|
+
if (!r) return;
|
|
1227
588
|
(async () => {
|
|
1228
589
|
try {
|
|
1229
|
-
const
|
|
1230
|
-
return
|
|
1231
|
-
...
|
|
1232
|
-
storedCommands:
|
|
1233
|
-
})),
|
|
1234
|
-
} catch (
|
|
1235
|
-
console.warn("Failed to load command history:",
|
|
590
|
+
const d = await r.getStoredCommands();
|
|
591
|
+
return n((l) => ({
|
|
592
|
+
...l,
|
|
593
|
+
storedCommands: d
|
|
594
|
+
})), d;
|
|
595
|
+
} catch (d) {
|
|
596
|
+
console.warn("Failed to load command history:", d);
|
|
1236
597
|
}
|
|
1237
598
|
})();
|
|
1238
|
-
}, [
|
|
1239
|
-
const
|
|
1240
|
-
if ((await
|
|
599
|
+
}, [r]);
|
|
600
|
+
const s = w(async (c) => {
|
|
601
|
+
if ((await o()).length === 0)
|
|
1241
602
|
return { segments: null, position: null };
|
|
1242
|
-
let
|
|
1243
|
-
return
|
|
1244
|
-
...
|
|
1245
|
-
position:
|
|
1246
|
-
})),
|
|
603
|
+
let l = null;
|
|
604
|
+
return c === "up" ? e.position === null ? l = e.storedCommands.length - 1 : e.position > 0 ? l = e.position - 1 : l = 0 : e.position === null || e.position >= e.storedCommands.length - 1 ? l = null : l = e.position + 1, n((p) => ({
|
|
605
|
+
...p,
|
|
606
|
+
position: l
|
|
607
|
+
})), l === null ? {
|
|
1247
608
|
segments: [],
|
|
1248
609
|
position: null
|
|
1249
610
|
} : {
|
|
1250
|
-
segments:
|
|
1251
|
-
position:
|
|
611
|
+
segments: l !== null ? e.storedCommands[l].commandSegments : null,
|
|
612
|
+
position: l
|
|
1252
613
|
};
|
|
1253
|
-
}, [
|
|
614
|
+
}, [e, o]), i = w(async () => {
|
|
1254
615
|
try {
|
|
1255
|
-
if (!
|
|
1256
|
-
await
|
|
616
|
+
if (!r) return;
|
|
617
|
+
await r.clear(), n({
|
|
1257
618
|
storedCommands: [],
|
|
1258
619
|
position: null
|
|
1259
620
|
});
|
|
1260
|
-
} catch (
|
|
1261
|
-
console.warn("Failed to clear command history:",
|
|
621
|
+
} catch (c) {
|
|
622
|
+
console.warn("Failed to clear command history:", c);
|
|
1262
623
|
}
|
|
1263
|
-
}, [
|
|
624
|
+
}, [r]);
|
|
1264
625
|
return {
|
|
1265
|
-
history:
|
|
1266
|
-
addStoredCommand:
|
|
1267
|
-
getStoredCommands:
|
|
1268
|
-
navigateHistory:
|
|
1269
|
-
clear:
|
|
626
|
+
history: e,
|
|
627
|
+
addStoredCommand: t,
|
|
628
|
+
getStoredCommands: o,
|
|
629
|
+
navigateHistory: s,
|
|
630
|
+
clear: i
|
|
1270
631
|
};
|
|
1271
632
|
}
|
|
1272
|
-
const
|
|
1273
|
-
const
|
|
633
|
+
const me = () => {
|
|
634
|
+
const r = $(), e = B(), n = de(), t = K(), o = ce(), [s, i] = R({
|
|
1274
635
|
currentInput: "",
|
|
1275
636
|
isEnteringArg: !1,
|
|
1276
637
|
output: [],
|
|
1277
638
|
history: {
|
|
1278
639
|
commands: [],
|
|
1279
640
|
position: null,
|
|
1280
|
-
storage:
|
|
641
|
+
storage: o
|
|
1281
642
|
}
|
|
1282
643
|
});
|
|
1283
|
-
|
|
1284
|
-
}, [
|
|
1285
|
-
|
|
1286
|
-
...
|
|
644
|
+
_(() => {
|
|
645
|
+
}, [o]), _(() => {
|
|
646
|
+
i((u) => ({
|
|
647
|
+
...u,
|
|
1287
648
|
history: {
|
|
1288
|
-
commands:
|
|
1289
|
-
position:
|
|
1290
|
-
storage:
|
|
649
|
+
commands: n.history.storedCommands,
|
|
650
|
+
position: n.history.position,
|
|
651
|
+
storage: o
|
|
1291
652
|
}
|
|
1292
653
|
}));
|
|
1293
|
-
}, [
|
|
1294
|
-
const
|
|
1295
|
-
setCurrentInput:
|
|
1296
|
-
|
|
654
|
+
}, [n.history, o]);
|
|
655
|
+
const c = {
|
|
656
|
+
setCurrentInput: w((u) => {
|
|
657
|
+
C.debug("[CitadelActions] setCurrentInput: ", u), i((p) => ({ ...p, currentInput: u }));
|
|
1297
658
|
}, []),
|
|
1298
|
-
setIsEnteringArg:
|
|
1299
|
-
|
|
659
|
+
setIsEnteringArg: w((u) => {
|
|
660
|
+
C.debug("[CitadelActions] setIsEnteringArg: ", u), i((p) => ({ ...p, isEnteringArg: u }));
|
|
1300
661
|
}, []),
|
|
1301
|
-
addOutput:
|
|
1302
|
-
|
|
1303
|
-
...
|
|
1304
|
-
output: [...
|
|
662
|
+
addOutput: w((u) => {
|
|
663
|
+
C.debug("[CitadelActions]addOutput: ", u), i((p) => ({
|
|
664
|
+
...p,
|
|
665
|
+
output: [...p.output, u]
|
|
1305
666
|
}));
|
|
1306
667
|
}, []),
|
|
1307
|
-
executeCommand:
|
|
1308
|
-
const
|
|
1309
|
-
if (!
|
|
1310
|
-
console.error("[CitadelActions][executeCommand] Cannot execute command because no command was found for the given path: ",
|
|
668
|
+
executeCommand: w(async () => {
|
|
669
|
+
const u = t.path(), p = e.getCommand(u);
|
|
670
|
+
if (!p) {
|
|
671
|
+
console.error("[CitadelActions][executeCommand] Cannot execute command because no command was found for the given path: ", u);
|
|
1311
672
|
return;
|
|
1312
673
|
}
|
|
1313
|
-
const
|
|
1314
|
-
|
|
1315
|
-
...
|
|
1316
|
-
output: [...
|
|
674
|
+
const S = new Te(t);
|
|
675
|
+
i((y) => ({
|
|
676
|
+
...y,
|
|
677
|
+
output: [...y.output, S]
|
|
1317
678
|
}));
|
|
1318
679
|
try {
|
|
1319
|
-
const
|
|
680
|
+
const y = new Promise((a, g) => {
|
|
1320
681
|
setTimeout(() => {
|
|
1321
|
-
|
|
1322
|
-
},
|
|
1323
|
-
}),
|
|
1324
|
-
|
|
1325
|
-
|
|
682
|
+
g(new Error("Request timed out"));
|
|
683
|
+
}, r.commandTimeoutMs);
|
|
684
|
+
}), z = t.arguments.map((a) => a.value || ""), E = await Promise.race([
|
|
685
|
+
p.handler(z),
|
|
686
|
+
y
|
|
1326
687
|
]);
|
|
1327
|
-
if (!(
|
|
688
|
+
if (!(E instanceof F))
|
|
1328
689
|
throw new Error(
|
|
1329
|
-
`The ${
|
|
690
|
+
`The ${u.join(".")} command returned an invalid result type. Commands must return an instance of a CommandResult.
|
|
1330
691
|
For example:
|
|
1331
692
|
return new JsonCommandResult({ text: "Hello World" });
|
|
1332
|
-
Check the definition of the ${
|
|
693
|
+
Check the definition of the ${u.join(".")} command and update the return type for its handler.`
|
|
1333
694
|
);
|
|
1334
|
-
|
|
1335
|
-
...
|
|
1336
|
-
output:
|
|
1337
|
-
(
|
|
695
|
+
E.markSuccess(), i((a) => ({
|
|
696
|
+
...a,
|
|
697
|
+
output: a.output.map(
|
|
698
|
+
(g) => g.timestamp === S.timestamp ? { ...g, result: E } : g
|
|
1338
699
|
)
|
|
1339
700
|
}));
|
|
1340
|
-
} catch (
|
|
1341
|
-
const
|
|
1342
|
-
|
|
701
|
+
} catch (y) {
|
|
702
|
+
const z = new _e(
|
|
703
|
+
y instanceof Error ? y.message : "Unknown error"
|
|
1343
704
|
);
|
|
1344
|
-
|
|
1345
|
-
...
|
|
1346
|
-
output:
|
|
1347
|
-
(
|
|
705
|
+
z.markFailure(), i((E) => ({
|
|
706
|
+
...E,
|
|
707
|
+
output: E.output.map(
|
|
708
|
+
(a) => a.timestamp === S.timestamp ? { ...a, result: z } : a
|
|
1348
709
|
)
|
|
1349
710
|
}));
|
|
1350
711
|
}
|
|
1351
|
-
}, [
|
|
1352
|
-
clearHistory:
|
|
712
|
+
}, [e, r.commandTimeoutMs, t]),
|
|
713
|
+
clearHistory: w(async () => {
|
|
1353
714
|
try {
|
|
1354
|
-
await
|
|
1355
|
-
} catch (
|
|
1356
|
-
console.warn("Failed to clear history:",
|
|
715
|
+
await n.clear();
|
|
716
|
+
} catch (u) {
|
|
717
|
+
console.warn("Failed to clear history:", u);
|
|
1357
718
|
}
|
|
1358
|
-
}, [
|
|
1359
|
-
},
|
|
719
|
+
}, [n])
|
|
720
|
+
}, d = w(() => e.getCompletions_s(t.path()), [t, e]), l = w(() => e.getCompletions(t.path()), [t, e]);
|
|
1360
721
|
return {
|
|
1361
|
-
state:
|
|
1362
|
-
actions:
|
|
1363
|
-
getAvailableCommands_s:
|
|
1364
|
-
getAvailableCommandSegments:
|
|
722
|
+
state: s,
|
|
723
|
+
actions: c,
|
|
724
|
+
getAvailableCommands_s: d,
|
|
725
|
+
getAvailableCommandSegments: l
|
|
1365
726
|
};
|
|
1366
|
-
},
|
|
727
|
+
}, Me = {
|
|
1367
728
|
blink: {
|
|
1368
729
|
character: "▋",
|
|
1369
730
|
speed: 530,
|
|
@@ -1384,301 +745,300 @@ Check the definition of the ${h.join(".")} command and update the return type fo
|
|
|
1384
745
|
speed: 120,
|
|
1385
746
|
color: "#fff"
|
|
1386
747
|
}
|
|
1387
|
-
},
|
|
1388
|
-
style:
|
|
1389
|
-
isValid:
|
|
1390
|
-
errorMessage:
|
|
748
|
+
}, X = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"], Z = ["|", "/", "-", "\\"], Oe = ({
|
|
749
|
+
style: r = { type: "blink" },
|
|
750
|
+
isValid: e = !0,
|
|
751
|
+
errorMessage: n
|
|
1391
752
|
}) => {
|
|
1392
|
-
const
|
|
1393
|
-
...
|
|
1394
|
-
...
|
|
1395
|
-
}), [
|
|
1396
|
-
|
|
1397
|
-
if (
|
|
1398
|
-
const
|
|
1399
|
-
|
|
1400
|
-
},
|
|
1401
|
-
return () => clearInterval(
|
|
1402
|
-
}, [
|
|
1403
|
-
const
|
|
1404
|
-
color:
|
|
753
|
+
const t = V(() => ({
|
|
754
|
+
...Me[r.type],
|
|
755
|
+
...r
|
|
756
|
+
}), [r]), [o, s] = R(!0), [i, c] = R(0);
|
|
757
|
+
_(() => {
|
|
758
|
+
if (t.speed === 0) return;
|
|
759
|
+
const u = setInterval(() => {
|
|
760
|
+
t.type === "blink" ? s((p) => !p) : ["spin", "bbs"].includes(t.type) && c((p) => (p + 1) % (t.type === "bbs" ? Z.length : X.length));
|
|
761
|
+
}, t.speed);
|
|
762
|
+
return () => clearInterval(u);
|
|
763
|
+
}, [t.type, t.speed]);
|
|
764
|
+
const d = V(() => ({
|
|
765
|
+
color: e ? t.color : "#ff4444",
|
|
1405
766
|
transition: "color 0.15s ease-in-out"
|
|
1406
|
-
}), [
|
|
1407
|
-
return /* @__PURE__ */
|
|
767
|
+
}), [e, t.color]);
|
|
768
|
+
return /* @__PURE__ */ m("div", { className: "relative inline-block", children: /* @__PURE__ */ m(
|
|
1408
769
|
"span",
|
|
1409
770
|
{
|
|
1410
|
-
className: `command-cursor ${
|
|
1411
|
-
style:
|
|
1412
|
-
title:
|
|
1413
|
-
children:
|
|
771
|
+
className: `command-cursor ${e ? "" : "animate-shake"}`,
|
|
772
|
+
style: d,
|
|
773
|
+
title: n,
|
|
774
|
+
children: !e && n ? "✗" : ["spin", "bbs"].includes(t.type) ? (t.type === "bbs" ? Z : X)[i] : t.type === "solid" || o ? t.character : " "
|
|
1414
775
|
}
|
|
1415
776
|
) });
|
|
1416
777
|
};
|
|
1417
|
-
function
|
|
1418
|
-
switch (
|
|
778
|
+
function $e(r, e) {
|
|
779
|
+
switch (e.type) {
|
|
1419
780
|
case "set":
|
|
1420
|
-
return
|
|
781
|
+
return C.debug(`[inputStateReducer] InputState changing from ${r} to ${e.state}`), e.state;
|
|
1421
782
|
default:
|
|
1422
|
-
return
|
|
1423
|
-
}
|
|
1424
|
-
}
|
|
1425
|
-
const
|
|
1426
|
-
const { state:
|
|
1427
|
-
|
|
1428
|
-
},
|
|
1429
|
-
const
|
|
1430
|
-
return
|
|
1431
|
-
}, [
|
|
1432
|
-
if (!
|
|
1433
|
-
const
|
|
1434
|
-
const
|
|
1435
|
-
return (
|
|
783
|
+
return r;
|
|
784
|
+
}
|
|
785
|
+
}
|
|
786
|
+
const Ke = () => {
|
|
787
|
+
const { state: r } = me(), e = B(), n = de(), t = K(), [o, s] = we($e, "idle"), i = (a) => {
|
|
788
|
+
s({ type: "set", state: a });
|
|
789
|
+
}, c = w(() => {
|
|
790
|
+
const g = e.getCompletions(t.path())[0] || t.nullSegment;
|
|
791
|
+
return C.debug("[getNextExpectedSegment] ", g), g;
|
|
792
|
+
}, [e, t]), d = w(() => e.getCompletions_s(t.path()).map((g) => e.getCommand([...t.path(), g])).filter((g) => g !== void 0), [e, t]), l = w((a, g) => {
|
|
793
|
+
if (!a) return g;
|
|
794
|
+
const h = g.reduce((f, x) => {
|
|
795
|
+
const v = c();
|
|
796
|
+
return (v == null ? void 0 : v.type) === "word" && f.set(v.name, x), f;
|
|
1436
797
|
}, /* @__PURE__ */ new Map());
|
|
1437
|
-
return Array.from(
|
|
1438
|
-
const
|
|
1439
|
-
return
|
|
798
|
+
return Array.from(h.values()).filter(() => {
|
|
799
|
+
const f = c();
|
|
800
|
+
return f.type !== "word" ? !1 : f.name.toLowerCase().startsWith(a.toLowerCase());
|
|
1440
801
|
});
|
|
1441
|
-
}, [
|
|
1442
|
-
const
|
|
1443
|
-
(
|
|
802
|
+
}, [c]), u = w((a) => {
|
|
803
|
+
const h = e.getCompletions(t.path()).filter((k) => k.type === "word").filter(
|
|
804
|
+
(k) => k.name.toLowerCase().startsWith(a.toLowerCase())
|
|
1444
805
|
);
|
|
1445
|
-
return
|
|
1446
|
-
}, [
|
|
1447
|
-
const
|
|
1448
|
-
return
|
|
1449
|
-
(
|
|
806
|
+
return h.length === 1 ? h[0] : t.nullSegment;
|
|
807
|
+
}, [e, t]), p = w((a) => {
|
|
808
|
+
const g = t.path(), h = e.getCompletions(g);
|
|
809
|
+
return h.length === 0 && a ? !1 : h.some((f) => f.type === "argument") ? !0 : h.some(
|
|
810
|
+
(f) => f.type === "word" && f.name.toLowerCase().startsWith(a.toLowerCase())
|
|
1450
811
|
);
|
|
1451
|
-
}, [
|
|
1452
|
-
|
|
1453
|
-
const
|
|
1454
|
-
return !
|
|
1455
|
-
}, [
|
|
1456
|
-
if (
|
|
1457
|
-
if (
|
|
1458
|
-
const
|
|
1459
|
-
if (
|
|
1460
|
-
if (
|
|
1461
|
-
const
|
|
1462
|
-
if (
|
|
1463
|
-
const
|
|
1464
|
-
|
|
812
|
+
}, [e, t]), S = w((a) => {
|
|
813
|
+
C.debug("[tryAutoComplete] input: ", a);
|
|
814
|
+
const g = u(a);
|
|
815
|
+
return !g || g.name === a ? new ie() : (C.debug("[tryAutoComplete] result: ", g), g);
|
|
816
|
+
}, [u]), y = w((a, g) => {
|
|
817
|
+
if (r.history.position === null) {
|
|
818
|
+
if (g.setCurrentInput(a), C.debug("[useCommandParser][handleInputChange] newValue: ", a), o === "entering_argument") {
|
|
819
|
+
const h = ee(a);
|
|
820
|
+
if (h.isQuoted)
|
|
821
|
+
if (h.isComplete) {
|
|
822
|
+
const k = c();
|
|
823
|
+
if (k.type === "argument") {
|
|
824
|
+
const f = k;
|
|
825
|
+
f.value = a.trim() || "", C.debug("[useCommandParser][handleInputChange][entering_command] pushing: ", f), t.push(f), g.setCurrentInput(""), i("idle");
|
|
1465
826
|
return;
|
|
1466
827
|
}
|
|
1467
828
|
} else
|
|
1468
829
|
return;
|
|
1469
|
-
else if (
|
|
1470
|
-
const
|
|
1471
|
-
|
|
830
|
+
else if (h.isComplete) {
|
|
831
|
+
const k = c();
|
|
832
|
+
k.value = a.trim() || "", C.debug("[useCommandParser][handleInputChange][entering_command] pushing: ", k), t.push(k), g.setCurrentInput(""), i("idle");
|
|
1472
833
|
return;
|
|
1473
834
|
} else
|
|
1474
835
|
return;
|
|
1475
836
|
}
|
|
1476
|
-
if (
|
|
1477
|
-
const
|
|
1478
|
-
if (
|
|
1479
|
-
|
|
837
|
+
if (o == "entering_command") {
|
|
838
|
+
const h = S(a);
|
|
839
|
+
if (h.type === "word") {
|
|
840
|
+
C.debug("[useCommandParser][handleInputChange][entering_command] pushing: ", h), t.push(h), g.setCurrentInput(""), i("idle");
|
|
1480
841
|
return;
|
|
1481
842
|
}
|
|
1482
843
|
}
|
|
1483
844
|
}
|
|
1484
|
-
}, [
|
|
1485
|
-
|
|
1486
|
-
}, [
|
|
1487
|
-
if (!(
|
|
845
|
+
}, [S, r, c, o, t]), z = w((a) => {
|
|
846
|
+
a.setCurrentInput(""), a.setIsEnteringArg(!1), t.clear(), i("idle");
|
|
847
|
+
}, [t]), E = w((a, g, h) => {
|
|
848
|
+
if (!(a.key === "Backspace" || a.key === "Enter" || a.key === "ArrowUp" || a.key === "ArrowDown" || a.key === "ArrowLeft" || a.key === "ArrowRight" || a.key === "Escape" || a.key === "Delete" || a.key === "Home" || a.key === "End" || a.key.length === 1))
|
|
1488
849
|
return !0;
|
|
1489
|
-
const { currentInput:
|
|
1490
|
-
switch (
|
|
850
|
+
const { currentInput: f, isEnteringArg: x } = g, v = ee(f);
|
|
851
|
+
switch (a.key) {
|
|
1491
852
|
case "Backspace":
|
|
1492
|
-
return
|
|
853
|
+
return f === "" && (a.preventDefault(), t.size() > 0 && t.pop(), i("idle")), !0;
|
|
1493
854
|
case "Enter": {
|
|
1494
|
-
if (
|
|
855
|
+
if (a.preventDefault(), v.isQuoted && !v.isComplete)
|
|
1495
856
|
return !0;
|
|
1496
|
-
if (
|
|
1497
|
-
const
|
|
1498
|
-
|
|
857
|
+
if (o === "entering_argument" || x && f.trim()) {
|
|
858
|
+
const H = c();
|
|
859
|
+
H.value = f, C.debug("[handleKeyDown][Enter]['entering_argument'] pushing: ", H), t.push(H);
|
|
860
|
+
}
|
|
861
|
+
const I = t.path(), P = e.getCommand(I);
|
|
862
|
+
if (P) {
|
|
863
|
+
const T = P.segments.filter((j) => j.type === "argument"), H = t.arguments;
|
|
864
|
+
if (T.length > H.length)
|
|
865
|
+
return !1;
|
|
1499
866
|
}
|
|
1500
|
-
return
|
|
867
|
+
return C.debug("[handleKeyDown][Enter] calling actions.executeCommand. segmentStack: ", t), h.executeCommand(), n.addStoredCommand(t.toArray()), z(h), !0;
|
|
1501
868
|
}
|
|
1502
869
|
case "ArrowUp":
|
|
1503
|
-
return
|
|
1504
|
-
const
|
|
1505
|
-
return
|
|
870
|
+
return a.preventDefault(), (async () => {
|
|
871
|
+
const I = await n.navigateHistory("up", t.toArray());
|
|
872
|
+
return I.segments && (t.clear(), t.pushAll(I.segments), h.setCurrentInput("")), !0;
|
|
1506
873
|
})();
|
|
1507
874
|
case "ArrowDown":
|
|
1508
|
-
return
|
|
1509
|
-
const
|
|
1510
|
-
return
|
|
875
|
+
return a.preventDefault(), (async () => {
|
|
876
|
+
const I = await n.navigateHistory("down", t.toArray());
|
|
877
|
+
return I.segments && (t.clear(), t.pushAll(I.segments), h.setCurrentInput("")), !0;
|
|
1511
878
|
})();
|
|
1512
879
|
default: {
|
|
1513
|
-
if (!
|
|
1514
|
-
const
|
|
1515
|
-
if (!
|
|
1516
|
-
return
|
|
880
|
+
if (!x && a.key.length === 1) {
|
|
881
|
+
const I = f + a.key;
|
|
882
|
+
if (!p(I))
|
|
883
|
+
return a.preventDefault(), !1;
|
|
1517
884
|
}
|
|
1518
885
|
return !0;
|
|
1519
886
|
}
|
|
1520
887
|
}
|
|
1521
888
|
}, [
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
|
|
889
|
+
o,
|
|
890
|
+
p,
|
|
891
|
+
c,
|
|
892
|
+
n,
|
|
893
|
+
z,
|
|
894
|
+
t
|
|
1528
895
|
]);
|
|
1529
896
|
return {
|
|
1530
|
-
handleInputChange:
|
|
1531
|
-
handleKeyDown:
|
|
1532
|
-
inputState:
|
|
1533
|
-
setInputStateWithLogging:
|
|
897
|
+
handleInputChange: y,
|
|
898
|
+
handleKeyDown: E,
|
|
899
|
+
inputState: o,
|
|
900
|
+
setInputStateWithLogging: i,
|
|
1534
901
|
// Expose internal functions for testing
|
|
1535
|
-
findMatchingCommands:
|
|
1536
|
-
getAutocompleteSuggestion:
|
|
1537
|
-
getAvailableNodes:
|
|
1538
|
-
getNextExpectedSegment:
|
|
1539
|
-
isValidCommandInput:
|
|
902
|
+
findMatchingCommands: l,
|
|
903
|
+
getAutocompleteSuggestion: u,
|
|
904
|
+
getAvailableNodes: d,
|
|
905
|
+
getNextExpectedSegment: c,
|
|
906
|
+
isValidCommandInput: p
|
|
1540
907
|
};
|
|
1541
908
|
};
|
|
1542
|
-
function
|
|
1543
|
-
const
|
|
1544
|
-
let
|
|
1545
|
-
for (let
|
|
1546
|
-
const
|
|
1547
|
-
(
|
|
909
|
+
function ee(r) {
|
|
910
|
+
const e = [];
|
|
911
|
+
let n = "", t = !1, o;
|
|
912
|
+
for (let s = 0; s < r.length; s++) {
|
|
913
|
+
const i = r[s];
|
|
914
|
+
(i === '"' || i === "'") && (!t || i === o) ? t ? (e.push(n), n = "", t = !1, o = void 0) : (n && (e.push(n), n = ""), t = !0, o = i) : !t && i === " " ? n && (e.push(n), n = "") : n += i;
|
|
1548
915
|
}
|
|
1549
916
|
return {
|
|
1550
|
-
words:
|
|
1551
|
-
currentWord:
|
|
1552
|
-
isQuoted:
|
|
1553
|
-
quoteChar:
|
|
1554
|
-
isComplete: !
|
|
917
|
+
words: e,
|
|
918
|
+
currentWord: n,
|
|
919
|
+
isQuoted: t,
|
|
920
|
+
quoteChar: o,
|
|
921
|
+
isComplete: !t && !n
|
|
1555
922
|
};
|
|
1556
923
|
}
|
|
1557
|
-
const
|
|
1558
|
-
const
|
|
1559
|
-
return
|
|
1560
|
-
const
|
|
924
|
+
const Le = () => {
|
|
925
|
+
const r = K(), [e, n] = R(0);
|
|
926
|
+
return _(() => {
|
|
927
|
+
const t = {
|
|
1561
928
|
update: () => {
|
|
1562
|
-
|
|
929
|
+
n((o) => o + 1);
|
|
1563
930
|
}
|
|
1564
931
|
};
|
|
1565
|
-
return
|
|
1566
|
-
|
|
932
|
+
return r.subscribe(t), () => {
|
|
933
|
+
r.unsubscribe(t);
|
|
1567
934
|
};
|
|
1568
|
-
}, [
|
|
1569
|
-
},
|
|
1570
|
-
state:
|
|
1571
|
-
actions:
|
|
935
|
+
}, [r]), e;
|
|
936
|
+
}, Ve = ({
|
|
937
|
+
state: r,
|
|
938
|
+
actions: e
|
|
1572
939
|
}) => {
|
|
1573
|
-
const
|
|
1574
|
-
handleKeyDown:
|
|
1575
|
-
handleInputChange:
|
|
1576
|
-
inputState:
|
|
1577
|
-
setInputStateWithLogging:
|
|
1578
|
-
getNextExpectedSegment:
|
|
1579
|
-
} =
|
|
1580
|
-
const
|
|
1581
|
-
await Promise.resolve(
|
|
1582
|
-
},
|
|
1583
|
-
|
|
1584
|
-
},
|
|
1585
|
-
|
|
1586
|
-
const
|
|
1587
|
-
|
|
940
|
+
const n = U(null), t = B(), o = K(), {
|
|
941
|
+
handleKeyDown: s,
|
|
942
|
+
handleInputChange: i,
|
|
943
|
+
inputState: c,
|
|
944
|
+
setInputStateWithLogging: d,
|
|
945
|
+
getNextExpectedSegment: l
|
|
946
|
+
} = Ke(), [u, p] = R(!1), S = $(), y = Le(), z = async (x) => {
|
|
947
|
+
const v = s(x, r, e);
|
|
948
|
+
await Promise.resolve(v) === !1 && (p(!0), setTimeout(() => p(!1), 500));
|
|
949
|
+
}, E = (x) => {
|
|
950
|
+
i(x.target.value, e);
|
|
951
|
+
}, a = (x) => {
|
|
952
|
+
x.preventDefault();
|
|
953
|
+
const v = x.clipboardData.getData("text");
|
|
954
|
+
i(v, e);
|
|
1588
955
|
};
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
}, [
|
|
1592
|
-
if (
|
|
1593
|
-
const
|
|
1594
|
-
let
|
|
1595
|
-
switch (
|
|
956
|
+
_(() => {
|
|
957
|
+
n.current && n.current.focus(), c !== "entering_command" && d("entering_command");
|
|
958
|
+
}, [c, d]), _(() => {
|
|
959
|
+
if (c !== "idle") return;
|
|
960
|
+
const x = l();
|
|
961
|
+
let v = "idle";
|
|
962
|
+
switch (x.type) {
|
|
1596
963
|
case "word":
|
|
1597
|
-
|
|
964
|
+
v = "entering_command", e.setIsEnteringArg(!1);
|
|
1598
965
|
break;
|
|
1599
966
|
case "argument":
|
|
1600
|
-
|
|
967
|
+
v = "entering_argument", e.setIsEnteringArg(!0);
|
|
1601
968
|
break;
|
|
1602
969
|
}
|
|
1603
|
-
|
|
1604
|
-
}, [
|
|
1605
|
-
const [
|
|
1606
|
-
|
|
1607
|
-
const
|
|
1608
|
-
|
|
1609
|
-
const
|
|
1610
|
-
if (
|
|
1611
|
-
const
|
|
1612
|
-
return /* @__PURE__ */
|
|
1613
|
-
/* @__PURE__ */
|
|
1614
|
-
|
|
1615
|
-
] }, "arg-" +
|
|
970
|
+
d(v);
|
|
971
|
+
}, [y, c, l, d, e]);
|
|
972
|
+
const [g, h] = R([]);
|
|
973
|
+
_(() => {
|
|
974
|
+
const x = [], v = o.toArray().map((P, T) => {
|
|
975
|
+
x.push(P.name);
|
|
976
|
+
const H = t.hasNextSegment(x);
|
|
977
|
+
if (P.type === "argument") {
|
|
978
|
+
const j = P;
|
|
979
|
+
return /* @__PURE__ */ N(L.Fragment, { children: [
|
|
980
|
+
/* @__PURE__ */ m("span", { className: "text-gray-200 whitespace-pre", children: j.value }),
|
|
981
|
+
T < o.size() && H && /* @__PURE__ */ m("span", { className: "text-gray-200 whitespace-pre", children: " " })
|
|
982
|
+
] }, "arg-" + j.name + j.value);
|
|
1616
983
|
}
|
|
1617
|
-
return /* @__PURE__ */
|
|
1618
|
-
/* @__PURE__ */
|
|
1619
|
-
|
|
1620
|
-
] }, "word-" +
|
|
984
|
+
return /* @__PURE__ */ N(L.Fragment, { children: [
|
|
985
|
+
/* @__PURE__ */ m("span", { className: "text-blue-400 whitespace-pre", children: P.name }),
|
|
986
|
+
T < o.size() && H && /* @__PURE__ */ m("span", { className: "text-blue-400 whitespace-pre", children: " " })
|
|
987
|
+
] }, "word-" + P.name);
|
|
1621
988
|
});
|
|
1622
|
-
|
|
1623
|
-
}, [
|
|
1624
|
-
const [
|
|
1625
|
-
return
|
|
1626
|
-
const
|
|
1627
|
-
|
|
1628
|
-
}, [
|
|
1629
|
-
/* @__PURE__ */
|
|
1630
|
-
@keyframes
|
|
1631
|
-
0%, 100% {
|
|
1632
|
-
|
|
1633
|
-
75% { transform: translateX(4px); }
|
|
1634
|
-
}
|
|
1635
|
-
@keyframes flashBorder {
|
|
1636
|
-
0%, 100% { border-color: transparent; }
|
|
1637
|
-
50% { border-color: rgb(239, 68, 68); }
|
|
989
|
+
h([/* @__PURE__ */ m("div", { className: "flex items-center gap-1", "data-testid": "user-input-area", children: v }, "{segmentStackVersion}")]);
|
|
990
|
+
}, [y, t, o]);
|
|
991
|
+
const [k, f] = R("");
|
|
992
|
+
return _(() => {
|
|
993
|
+
const x = l();
|
|
994
|
+
x.type === "argument" ? f(x.name) : f("");
|
|
995
|
+
}, [y, l]), /* @__PURE__ */ N("div", { className: "flex flex-col w-full bg-gray-900 rounded-lg p-4", children: [
|
|
996
|
+
/* @__PURE__ */ m("style", { children: `
|
|
997
|
+
@keyframes subtleGlow {
|
|
998
|
+
0%, 100% { box-shadow: 0 0 0 rgba(239, 68, 68, 0); }
|
|
999
|
+
50% { box-shadow: 0 0 8px rgba(239, 68, 68, 0.6); }
|
|
1638
1000
|
}
|
|
1639
1001
|
.invalid-input-animation {
|
|
1640
|
-
animation:
|
|
1641
|
-
border-width: 1px;
|
|
1642
|
-
border-style: solid;
|
|
1002
|
+
animation: subtleGlow 0.4s ease-in-out;
|
|
1643
1003
|
}
|
|
1644
1004
|
` }),
|
|
1645
|
-
/* @__PURE__ */
|
|
1646
|
-
/* @__PURE__ */
|
|
1647
|
-
/* @__PURE__ */
|
|
1648
|
-
|
|
1649
|
-
/* @__PURE__ */
|
|
1650
|
-
/* @__PURE__ */
|
|
1005
|
+
/* @__PURE__ */ N("div", { className: "flex items-center gap-2", children: [
|
|
1006
|
+
/* @__PURE__ */ m("div", { className: "text-gray-400 font-mono", children: ">" }),
|
|
1007
|
+
/* @__PURE__ */ N("div", { className: "flex-1 font-mono flex items-center", children: [
|
|
1008
|
+
g,
|
|
1009
|
+
/* @__PURE__ */ N("div", { className: "relative flex-1", children: [
|
|
1010
|
+
/* @__PURE__ */ m(
|
|
1651
1011
|
"input",
|
|
1652
1012
|
{
|
|
1653
|
-
ref:
|
|
1013
|
+
ref: n,
|
|
1654
1014
|
type: "text",
|
|
1655
1015
|
role: "textbox",
|
|
1656
|
-
value:
|
|
1657
|
-
onChange:
|
|
1658
|
-
onKeyDown:
|
|
1659
|
-
onPaste:
|
|
1016
|
+
value: r.currentInput,
|
|
1017
|
+
onChange: E,
|
|
1018
|
+
onKeyDown: z,
|
|
1019
|
+
onPaste: a,
|
|
1660
1020
|
"data-testid": "citadel-command-input",
|
|
1661
|
-
className: `w-full bg-transparent outline-none text-gray-200 caret-transparent ${
|
|
1021
|
+
className: `w-full bg-transparent outline-none text-gray-200 caret-transparent ${u ? "invalid-input-animation" : ""}`,
|
|
1662
1022
|
spellCheck: !1,
|
|
1663
1023
|
autoComplete: "off",
|
|
1664
|
-
placeholder:
|
|
1024
|
+
placeholder: k
|
|
1665
1025
|
}
|
|
1666
1026
|
),
|
|
1667
|
-
/* @__PURE__ */
|
|
1027
|
+
/* @__PURE__ */ m(
|
|
1668
1028
|
"div",
|
|
1669
1029
|
{
|
|
1670
1030
|
className: "absolute top-0 pointer-events-none",
|
|
1671
1031
|
style: {
|
|
1672
|
-
left: `${
|
|
1032
|
+
left: `${r.currentInput.length}ch`,
|
|
1673
1033
|
transition: "left 0.05s ease-out"
|
|
1674
1034
|
},
|
|
1675
|
-
children: /* @__PURE__ */
|
|
1676
|
-
|
|
1035
|
+
children: /* @__PURE__ */ m(
|
|
1036
|
+
Oe,
|
|
1677
1037
|
{
|
|
1678
1038
|
style: {
|
|
1679
|
-
type:
|
|
1680
|
-
color:
|
|
1681
|
-
speed:
|
|
1039
|
+
type: S.cursorType ?? A.cursorType,
|
|
1040
|
+
color: S.cursorColor || A.cursorColor,
|
|
1041
|
+
speed: S.cursorSpeed || A.cursorSpeed
|
|
1682
1042
|
}
|
|
1683
1043
|
}
|
|
1684
1044
|
)
|
|
@@ -1688,121 +1048,121 @@ const jt = () => {
|
|
|
1688
1048
|
] })
|
|
1689
1049
|
] })
|
|
1690
1050
|
] });
|
|
1691
|
-
},
|
|
1051
|
+
}, We = () => /* @__PURE__ */ m(
|
|
1692
1052
|
"div",
|
|
1693
1053
|
{
|
|
1694
1054
|
"data-testid": "spinner",
|
|
1695
1055
|
className: "animate-spin rounded-full h-4 w-4 border-2 border-gray-300 border-t-gray-600"
|
|
1696
1056
|
}
|
|
1697
|
-
),
|
|
1698
|
-
command:
|
|
1699
|
-
timestamp:
|
|
1700
|
-
status:
|
|
1701
|
-
}) => /* @__PURE__ */
|
|
1702
|
-
/* @__PURE__ */
|
|
1057
|
+
), qe = ({
|
|
1058
|
+
command: r,
|
|
1059
|
+
timestamp: e,
|
|
1060
|
+
status: n
|
|
1061
|
+
}) => /* @__PURE__ */ N("div", { className: "flex items-center gap-2 font-mono text-sm", children: [
|
|
1062
|
+
/* @__PURE__ */ N("span", { className: "text-gray-200", children: [
|
|
1703
1063
|
"> ",
|
|
1704
|
-
|
|
1705
|
-
const
|
|
1706
|
-
return /* @__PURE__ */
|
|
1064
|
+
r.split(" ").map((t, o) => {
|
|
1065
|
+
const s = t.startsWith("<") && t.endsWith(">");
|
|
1066
|
+
return /* @__PURE__ */ N(
|
|
1707
1067
|
"span",
|
|
1708
1068
|
{
|
|
1709
|
-
className:
|
|
1069
|
+
className: s ? "text-green-400" : "text-gray-200",
|
|
1710
1070
|
children: [
|
|
1711
|
-
|
|
1712
|
-
|
|
1071
|
+
o > 0 ? " " : "",
|
|
1072
|
+
t
|
|
1713
1073
|
]
|
|
1714
1074
|
},
|
|
1715
|
-
|
|
1075
|
+
o
|
|
1716
1076
|
);
|
|
1717
1077
|
})
|
|
1718
1078
|
] }),
|
|
1719
|
-
/* @__PURE__ */
|
|
1720
|
-
/* @__PURE__ */
|
|
1721
|
-
|
|
1722
|
-
|
|
1079
|
+
/* @__PURE__ */ m("span", { className: "text-gray-400", children: "·" }),
|
|
1080
|
+
/* @__PURE__ */ m("span", { className: "text-gray-500", children: e }),
|
|
1081
|
+
n === M.Pending && /* @__PURE__ */ m(We, {}),
|
|
1082
|
+
n === M.Success && /* @__PURE__ */ m(
|
|
1723
1083
|
"div",
|
|
1724
1084
|
{
|
|
1725
1085
|
"data-testid": "success-indicator",
|
|
1726
1086
|
className: "w-4 h-4 rounded-full bg-green-500"
|
|
1727
1087
|
}
|
|
1728
1088
|
),
|
|
1729
|
-
(
|
|
1089
|
+
(n === M.Timeout || n === M.Failure) && /* @__PURE__ */ m(
|
|
1730
1090
|
"div",
|
|
1731
1091
|
{
|
|
1732
1092
|
"data-testid": "success-indicator",
|
|
1733
1093
|
className: "w-4 h-4 rounded-full bg-red-500"
|
|
1734
1094
|
}
|
|
1735
1095
|
)
|
|
1736
|
-
] }),
|
|
1737
|
-
const
|
|
1738
|
-
if (
|
|
1739
|
-
const
|
|
1096
|
+
] }), Ye = ({ output: r, outputRef: e }) => {
|
|
1097
|
+
const n = $(), t = w(() => {
|
|
1098
|
+
if (e.current) {
|
|
1099
|
+
const o = e.current;
|
|
1740
1100
|
requestAnimationFrame(() => {
|
|
1741
|
-
|
|
1101
|
+
o.scrollTop = o.scrollHeight;
|
|
1742
1102
|
});
|
|
1743
1103
|
}
|
|
1744
|
-
}, [
|
|
1745
|
-
return
|
|
1746
|
-
if (
|
|
1747
|
-
const
|
|
1748
|
-
if (
|
|
1749
|
-
return
|
|
1104
|
+
}, [e]);
|
|
1105
|
+
return _(() => {
|
|
1106
|
+
if (t(), e.current) {
|
|
1107
|
+
const o = e.current.getElementsByTagName("img"), s = o[o.length - 1];
|
|
1108
|
+
if (s && !s.complete)
|
|
1109
|
+
return s.addEventListener("load", t), () => s.removeEventListener("load", t);
|
|
1750
1110
|
}
|
|
1751
|
-
}, [
|
|
1111
|
+
}, [r, t, e]), /* @__PURE__ */ m(
|
|
1752
1112
|
"div",
|
|
1753
1113
|
{
|
|
1754
|
-
ref:
|
|
1114
|
+
ref: e,
|
|
1755
1115
|
className: "h-full overflow-y-auto border border-gray-700 rounded-lg p-3 text-left",
|
|
1756
|
-
children:
|
|
1757
|
-
/* @__PURE__ */
|
|
1758
|
-
|
|
1116
|
+
children: r.map((o, s) => /* @__PURE__ */ N("div", { className: "mb-4 last:mb-0", children: [
|
|
1117
|
+
/* @__PURE__ */ m(
|
|
1118
|
+
qe,
|
|
1759
1119
|
{
|
|
1760
|
-
command:
|
|
1761
|
-
timestamp: new Date(
|
|
1762
|
-
status:
|
|
1120
|
+
command: o.command.join(" "),
|
|
1121
|
+
timestamp: new Date(o.timestamp).toLocaleTimeString(),
|
|
1122
|
+
status: o.result.status
|
|
1763
1123
|
}
|
|
1764
1124
|
),
|
|
1765
|
-
/* @__PURE__ */
|
|
1766
|
-
] },
|
|
1125
|
+
/* @__PURE__ */ m("pre", { className: `text-gray-200 whitespace-pre font-mono ${n.outputFontSize}`, children: o.result.render() })
|
|
1126
|
+
] }, s))
|
|
1767
1127
|
}
|
|
1768
1128
|
);
|
|
1769
|
-
},
|
|
1770
|
-
const
|
|
1771
|
-
|
|
1772
|
-
const
|
|
1773
|
-
if (
|
|
1774
|
-
const
|
|
1775
|
-
return [...
|
|
1129
|
+
}, Be = () => {
|
|
1130
|
+
const r = B(), e = $(), n = K(), t = "h-12 mt-2 border-t border-gray-700 px-4", o = "text-gray-300 pt-2", s = r.getCompletions(n.path());
|
|
1131
|
+
C.debug("[AvailableCommands] nextCommandSegments: ", s);
|
|
1132
|
+
const i = L.useMemo(() => {
|
|
1133
|
+
if (e.includeHelpCommand) {
|
|
1134
|
+
const l = s.filter((p) => p.name !== "help"), u = s.find((p) => p.name === "help");
|
|
1135
|
+
return [...l, ...u ? [u] : []];
|
|
1776
1136
|
}
|
|
1777
|
-
return
|
|
1778
|
-
}, [
|
|
1779
|
-
return /* @__PURE__ */
|
|
1780
|
-
/* @__PURE__ */
|
|
1781
|
-
|
|
1137
|
+
return s;
|
|
1138
|
+
}, [s, e.includeHelpCommand]), c = s.some((l) => l.type === "argument"), d = s[0];
|
|
1139
|
+
return /* @__PURE__ */ m("div", { className: t, "data-testid": "available-commands", children: /* @__PURE__ */ m("div", { className: o, children: c ? s.length > 0 ? /* @__PURE__ */ N(he, { children: [
|
|
1140
|
+
/* @__PURE__ */ m("span", { className: "text-blue-400", children: d.name }),
|
|
1141
|
+
d.description && /* @__PURE__ */ N("span", { className: "text-gray-400 ml-2", children: [
|
|
1782
1142
|
"- ",
|
|
1783
|
-
|
|
1143
|
+
d.description
|
|
1784
1144
|
] })
|
|
1785
|
-
] }) : null : /* @__PURE__ */
|
|
1786
|
-
const
|
|
1787
|
-
if (
|
|
1788
|
-
let
|
|
1789
|
-
for (;
|
|
1790
|
-
|
|
1791
|
-
return Math.max(
|
|
1145
|
+
] }) : null : /* @__PURE__ */ m("div", { className: "flex flex-wrap gap-2", children: i == null ? void 0 : i.map((l) => {
|
|
1146
|
+
const u = i == null ? void 0 : i.reduce((p, S) => {
|
|
1147
|
+
if (S === l) return p;
|
|
1148
|
+
let y = 0;
|
|
1149
|
+
for (; y < l.name.length && y < S.name.length && l.name[y].toLowerCase() === S.name[y].toLowerCase(); )
|
|
1150
|
+
y++;
|
|
1151
|
+
return Math.max(p, y + 1);
|
|
1792
1152
|
}, 1);
|
|
1793
|
-
return /* @__PURE__ */
|
|
1153
|
+
return /* @__PURE__ */ m(
|
|
1794
1154
|
"div",
|
|
1795
1155
|
{
|
|
1796
1156
|
className: "px-2 py-1 rounded bg-gray-800 mr-2 last:mr-0",
|
|
1797
|
-
children: /* @__PURE__ */
|
|
1798
|
-
/* @__PURE__ */
|
|
1799
|
-
|
|
1157
|
+
children: /* @__PURE__ */ N("span", { className: "font-mono text-white", children: [
|
|
1158
|
+
/* @__PURE__ */ m("strong", { className: "underline", children: l.name.slice(0, u) }),
|
|
1159
|
+
l.name.slice(u)
|
|
1800
1160
|
] })
|
|
1801
1161
|
},
|
|
1802
|
-
|
|
1162
|
+
l.name
|
|
1803
1163
|
);
|
|
1804
1164
|
}) }) }) });
|
|
1805
|
-
},
|
|
1165
|
+
}, ne = `:host {
|
|
1806
1166
|
--citadel-bg: rgb(17, 24, 39);
|
|
1807
1167
|
--citadel-text: rgba(255, 255, 255, 0.87);
|
|
1808
1168
|
--citadel-border: rgb(55, 65, 81);
|
|
@@ -1822,6 +1182,7 @@ const jt = () => {
|
|
|
1822
1182
|
bottom: 0;
|
|
1823
1183
|
left: 0;
|
|
1824
1184
|
right: 0;
|
|
1185
|
+
z-index: 2147483647; /* Maximum z-index value */
|
|
1825
1186
|
overflow: hidden;
|
|
1826
1187
|
|
|
1827
1188
|
pointer-events: auto;
|
|
@@ -1891,7 +1252,7 @@ a:hover {
|
|
|
1891
1252
|
text-align: left;
|
|
1892
1253
|
}
|
|
1893
1254
|
|
|
1894
|
-
`,
|
|
1255
|
+
`, te = `/* Keep only component-specific styles here */
|
|
1895
1256
|
|
|
1896
1257
|
.container {
|
|
1897
1258
|
position: fixed;
|
|
@@ -1961,10 +1322,10 @@ a:hover {
|
|
|
1961
1322
|
.citadel_slideDown {
|
|
1962
1323
|
animation: citadel_slideDown 0.2s ease-out forwards;
|
|
1963
1324
|
}
|
|
1964
|
-
`,
|
|
1325
|
+
`, re = `@tailwind base;
|
|
1965
1326
|
@tailwind components;
|
|
1966
1327
|
@tailwind utilities;
|
|
1967
|
-
`,
|
|
1328
|
+
`, Ge = `*, ::before, ::after {
|
|
1968
1329
|
--tw-border-spacing-x: 0;
|
|
1969
1330
|
--tw-border-spacing-y: 0;
|
|
1970
1331
|
--tw-translate-x: 0;
|
|
@@ -2781,96 +2142,96 @@ video {
|
|
|
2781
2142
|
.last\\:mr-0:last-child {
|
|
2782
2143
|
margin-right: 0px;
|
|
2783
2144
|
}
|
|
2784
|
-
`,
|
|
2785
|
-
config:
|
|
2786
|
-
commandRegistry:
|
|
2787
|
-
containerId:
|
|
2788
|
-
}) => (
|
|
2789
|
-
|
|
2790
|
-
level:
|
|
2145
|
+
`, rn = ({
|
|
2146
|
+
config: r = A,
|
|
2147
|
+
commandRegistry: e = new J(),
|
|
2148
|
+
containerId: n = null
|
|
2149
|
+
}) => (_(() => {
|
|
2150
|
+
C.configure({
|
|
2151
|
+
level: r.logLevel || A.logLevel || W.ERROR,
|
|
2791
2152
|
prefix: "[Citadel]"
|
|
2792
2153
|
});
|
|
2793
|
-
const
|
|
2794
|
-
return
|
|
2795
|
-
var
|
|
2796
|
-
(
|
|
2154
|
+
const t = new ue(e, r), o = n ? document.getElementById(n) : document.body;
|
|
2155
|
+
return o ? o.appendChild(t) : (console.warn(`Container with id "${n}" not found, falling back to body`), document.body.appendChild(t)), () => {
|
|
2156
|
+
var s;
|
|
2157
|
+
(s = t.parentElement) == null || s.removeChild(t);
|
|
2797
2158
|
};
|
|
2798
|
-
}, [
|
|
2799
|
-
class
|
|
2800
|
-
constructor(
|
|
2159
|
+
}, [e, n, r]), null);
|
|
2160
|
+
class ue extends HTMLElement {
|
|
2161
|
+
constructor(n, t) {
|
|
2801
2162
|
super();
|
|
2802
|
-
|
|
2803
|
-
|
|
2804
|
-
|
|
2805
|
-
|
|
2806
|
-
this.shadow = this.attachShadow({ mode: "open" }), this.commandRegistry =
|
|
2163
|
+
b(this, "shadow");
|
|
2164
|
+
b(this, "root", null);
|
|
2165
|
+
b(this, "commandRegistry");
|
|
2166
|
+
b(this, "config");
|
|
2167
|
+
this.shadow = this.attachShadow({ mode: "open" }), this.commandRegistry = n, this.config = t;
|
|
2807
2168
|
}
|
|
2808
2169
|
connectedCallback() {
|
|
2809
2170
|
try {
|
|
2810
|
-
const
|
|
2811
|
-
const
|
|
2812
|
-
return
|
|
2171
|
+
const t = [ne, te, re, Ge].map((o) => {
|
|
2172
|
+
const s = new CSSStyleSheet();
|
|
2173
|
+
return s.replaceSync(o), s;
|
|
2813
2174
|
});
|
|
2814
|
-
this.shadow.adoptedStyleSheets = [...
|
|
2175
|
+
this.shadow.adoptedStyleSheets = [...t];
|
|
2815
2176
|
} catch {
|
|
2816
|
-
const
|
|
2817
|
-
`),
|
|
2818
|
-
|
|
2177
|
+
const t = [ne, te, re].join(`
|
|
2178
|
+
`), o = document.createElement("style");
|
|
2179
|
+
o.textContent = t, this.shadow.appendChild(o);
|
|
2819
2180
|
}
|
|
2820
|
-
const
|
|
2821
|
-
|
|
2822
|
-
/* @__PURE__ */
|
|
2181
|
+
const n = document.createElement("div");
|
|
2182
|
+
n.id = "citadel-root", this.shadow.appendChild(n), this.root = be(n), this.root.render(
|
|
2183
|
+
/* @__PURE__ */ m(Fe, { config: this.config || A, commandRegistry: this.commandRegistry, children: /* @__PURE__ */ m(Je, {}) })
|
|
2823
2184
|
);
|
|
2824
2185
|
}
|
|
2825
2186
|
}
|
|
2826
|
-
customElements.define("citadel-element",
|
|
2827
|
-
const
|
|
2828
|
-
const [
|
|
2829
|
-
|
|
2830
|
-
onOpen: () =>
|
|
2831
|
-
onClose: () =>
|
|
2832
|
-
isVisible:
|
|
2833
|
-
showCitadelKey:
|
|
2187
|
+
customElements.define("citadel-element", ue);
|
|
2188
|
+
const Je = () => {
|
|
2189
|
+
const [r, e] = R(!1), [n, t] = R(!1), o = $(), [s, i] = R(() => o.initialHeight || null), c = U(null), d = U(null), l = U(!1), u = U(0), p = U(0), { state: S, actions: y } = me();
|
|
2190
|
+
ye({
|
|
2191
|
+
onOpen: () => e(!0),
|
|
2192
|
+
onClose: () => t(!0),
|
|
2193
|
+
isVisible: r,
|
|
2194
|
+
showCitadelKey: o.showCitadelKey || "."
|
|
2834
2195
|
});
|
|
2835
|
-
const
|
|
2836
|
-
|
|
2837
|
-
}, []),
|
|
2838
|
-
var
|
|
2839
|
-
if (!
|
|
2840
|
-
const
|
|
2841
|
-
Math.max(
|
|
2842
|
-
|
|
2196
|
+
const z = w((h) => {
|
|
2197
|
+
d.current && (l.current = !0, u.current = h.clientY, p.current = d.current.offsetHeight, document.documentElement.style.userSelect = "none", document.documentElement.style.webkitUserSelect = "none", document.documentElement.style.mozUserSelect = "none", document.documentElement.style.msUserSelect = "none", document.addEventListener("mousemove", E), document.addEventListener("mouseup", a));
|
|
2198
|
+
}, []), E = w((h) => {
|
|
2199
|
+
var v;
|
|
2200
|
+
if (!l.current) return;
|
|
2201
|
+
const k = h.clientY - u.current, f = (v = o.maxHeight) != null && v.endsWith("vh") ? window.innerHeight * parseInt(o.maxHeight, 10) / 100 : parseInt(o.maxHeight || "80vh", 10), x = Math.min(
|
|
2202
|
+
Math.max(p.current - k, parseInt(o.minHeight || "200", 10)),
|
|
2203
|
+
f
|
|
2843
2204
|
);
|
|
2844
|
-
|
|
2845
|
-
}, [
|
|
2846
|
-
|
|
2847
|
-
}, [
|
|
2848
|
-
|
|
2849
|
-
document.removeEventListener("mousemove",
|
|
2850
|
-
}, [
|
|
2851
|
-
const
|
|
2852
|
-
|
|
2853
|
-
}, [
|
|
2854
|
-
return
|
|
2855
|
-
isVisible:
|
|
2856
|
-
isClosing:
|
|
2857
|
-
onAnimationComplete:
|
|
2858
|
-
}),
|
|
2205
|
+
d.current && (d.current.style.height = `${x}px`, d.current.style.bottom = "0", i(`${x}px`));
|
|
2206
|
+
}, [o.maxHeight, o.minHeight]), a = w(() => {
|
|
2207
|
+
l.current = !1, document.documentElement.style.userSelect = "", document.documentElement.style.webkitUserSelect = "", document.documentElement.style.mozUserSelect = "", document.documentElement.style.msUserSelect = "", document.removeEventListener("mousemove", E), document.removeEventListener("mouseup", a);
|
|
2208
|
+
}, [E]);
|
|
2209
|
+
_(() => () => {
|
|
2210
|
+
document.removeEventListener("mousemove", E), document.removeEventListener("mouseup", a);
|
|
2211
|
+
}, [E, a]);
|
|
2212
|
+
const g = w(() => {
|
|
2213
|
+
n && (e(!1), t(!1));
|
|
2214
|
+
}, [n]);
|
|
2215
|
+
return Ne({
|
|
2216
|
+
isVisible: r,
|
|
2217
|
+
isClosing: n,
|
|
2218
|
+
onAnimationComplete: g
|
|
2219
|
+
}), r ? /* @__PURE__ */ N(
|
|
2859
2220
|
"div",
|
|
2860
2221
|
{
|
|
2861
|
-
ref:
|
|
2862
|
-
className: `container ${
|
|
2222
|
+
ref: d,
|
|
2223
|
+
className: `container ${r ? "citadel_slideUp" : ""} ${n ? "citadel_slideDown" : ""}`,
|
|
2863
2224
|
style: {
|
|
2864
|
-
...
|
|
2865
|
-
maxHeight:
|
|
2225
|
+
...s ? { height: s } : void 0,
|
|
2226
|
+
maxHeight: o.maxHeight
|
|
2866
2227
|
},
|
|
2867
2228
|
children: [
|
|
2868
|
-
/* @__PURE__ */
|
|
2869
|
-
/* @__PURE__ */
|
|
2870
|
-
/* @__PURE__ */
|
|
2871
|
-
/* @__PURE__ */
|
|
2872
|
-
/* @__PURE__ */
|
|
2873
|
-
/* @__PURE__ */
|
|
2229
|
+
/* @__PURE__ */ m("div", { className: "resizeHandle", onMouseDown: z }),
|
|
2230
|
+
/* @__PURE__ */ N("div", { className: "innerContainer", children: [
|
|
2231
|
+
/* @__PURE__ */ m("div", { className: "flex-1 min-h-0 pt-3 px-4", children: /* @__PURE__ */ m(Ye, { output: S.output, outputRef: c }) }),
|
|
2232
|
+
/* @__PURE__ */ N("div", { children: [
|
|
2233
|
+
/* @__PURE__ */ m(Ve, { state: S, actions: y }),
|
|
2234
|
+
/* @__PURE__ */ m(Be, {})
|
|
2874
2235
|
] })
|
|
2875
2236
|
] })
|
|
2876
2237
|
]
|
|
@@ -2878,15 +2239,15 @@ const Dt = () => {
|
|
|
2878
2239
|
) : null;
|
|
2879
2240
|
};
|
|
2880
2241
|
export {
|
|
2881
|
-
|
|
2882
|
-
|
|
2883
|
-
|
|
2884
|
-
|
|
2885
|
-
|
|
2886
|
-
|
|
2887
|
-
|
|
2888
|
-
|
|
2889
|
-
|
|
2890
|
-
|
|
2891
|
-
|
|
2242
|
+
rn as Citadel,
|
|
2243
|
+
J as CommandRegistry,
|
|
2244
|
+
F as CommandResult,
|
|
2245
|
+
M as CommandStatus,
|
|
2246
|
+
Me as DEFAULT_CURSOR_CONFIGS,
|
|
2247
|
+
_e as ErrorCommandResult,
|
|
2248
|
+
tn as ImageCommandResult,
|
|
2249
|
+
nn as JsonCommandResult,
|
|
2250
|
+
Te as OutputItem,
|
|
2251
|
+
Ae as PendingCommandResult,
|
|
2252
|
+
oe as TextCommandResult
|
|
2892
2253
|
};
|