boo-flash 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -289
- package/THIRD_PARTY_NOTICES +24 -0
- package/dist/{app-node.js → app.js} +863 -36
- package/dist/boo-flash +2 -2
- package/package.json +3 -3
- package/dist/app-bun.js +0 -3890
|
@@ -3,8 +3,841 @@ import { CliRenderer, createCliRenderer, engine as engine2 } from "@opentui/core
|
|
|
3
3
|
import { createTestRenderer } from "@opentui/core/testing";
|
|
4
4
|
import { ASCIIFontRenderable, BoxRenderable, CodeRenderable, DiffRenderable, ImageRenderable, InputRenderable, LineNumberRenderable, MarkdownRenderable, ScrollBoxRenderable, SelectRenderable, TabSelectRenderable, TextareaRenderable, TextAttributes, TextNodeRenderable, TextRenderable } from "@opentui/core";
|
|
5
5
|
import { engine, Timeline } from "@opentui/core";
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
|
|
7
|
+
// node_modules/solid-js/dist/solid.js
|
|
8
|
+
var sharedConfig = {
|
|
9
|
+
context: void 0,
|
|
10
|
+
registry: void 0,
|
|
11
|
+
effects: void 0,
|
|
12
|
+
done: false,
|
|
13
|
+
getContextId() {
|
|
14
|
+
return getContextId(this.context.count);
|
|
15
|
+
},
|
|
16
|
+
getNextContextId() {
|
|
17
|
+
return getContextId(this.context.count++);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
function getContextId(count) {
|
|
21
|
+
const num = String(count), len = num.length - 1;
|
|
22
|
+
return sharedConfig.context.id + (len ? String.fromCharCode(96 + len) : "") + num;
|
|
23
|
+
}
|
|
24
|
+
function setHydrateContext(context) {
|
|
25
|
+
sharedConfig.context = context;
|
|
26
|
+
}
|
|
27
|
+
function nextHydrateContext() {
|
|
28
|
+
return {
|
|
29
|
+
...sharedConfig.context,
|
|
30
|
+
id: sharedConfig.getNextContextId(),
|
|
31
|
+
count: 0
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
var IS_DEV = false;
|
|
35
|
+
var equalFn = (a, b) => a === b;
|
|
36
|
+
var $PROXY = /* @__PURE__ */ Symbol("solid-proxy");
|
|
37
|
+
var SUPPORTS_PROXY = typeof Proxy === "function";
|
|
38
|
+
var $TRACK = /* @__PURE__ */ Symbol("solid-track");
|
|
39
|
+
var signalOptions = {
|
|
40
|
+
equals: equalFn
|
|
41
|
+
};
|
|
42
|
+
var ERROR = null;
|
|
43
|
+
var runEffects = runQueue;
|
|
44
|
+
var STALE = 1;
|
|
45
|
+
var PENDING = 2;
|
|
46
|
+
var UNOWNED = {
|
|
47
|
+
owned: null,
|
|
48
|
+
cleanups: null,
|
|
49
|
+
context: null,
|
|
50
|
+
owner: null
|
|
51
|
+
};
|
|
52
|
+
var Owner = null;
|
|
53
|
+
var Transition = null;
|
|
54
|
+
var Scheduler = null;
|
|
55
|
+
var ExternalSourceConfig = null;
|
|
56
|
+
var Listener = null;
|
|
57
|
+
var Updates = null;
|
|
58
|
+
var Effects = null;
|
|
59
|
+
var ExecCount = 0;
|
|
60
|
+
function createRoot(fn, detachedOwner) {
|
|
61
|
+
const listener = Listener, owner = Owner, unowned = fn.length === 0, current = detachedOwner === void 0 ? owner : detachedOwner, root = unowned ? UNOWNED : {
|
|
62
|
+
owned: null,
|
|
63
|
+
cleanups: null,
|
|
64
|
+
context: current ? current.context : null,
|
|
65
|
+
owner: current
|
|
66
|
+
}, updateFn = unowned ? fn : () => fn(() => untrack(() => cleanNode(root)));
|
|
67
|
+
Owner = root;
|
|
68
|
+
Listener = null;
|
|
69
|
+
try {
|
|
70
|
+
return runUpdates(updateFn, true);
|
|
71
|
+
} finally {
|
|
72
|
+
Listener = listener;
|
|
73
|
+
Owner = owner;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
function createSignal(value, options) {
|
|
77
|
+
options = options ? Object.assign({}, signalOptions, options) : signalOptions;
|
|
78
|
+
const s = {
|
|
79
|
+
value,
|
|
80
|
+
observers: null,
|
|
81
|
+
observerSlots: null,
|
|
82
|
+
comparator: options.equals || void 0
|
|
83
|
+
};
|
|
84
|
+
const setter = (value2) => {
|
|
85
|
+
if (typeof value2 === "function") {
|
|
86
|
+
if (Transition && Transition.running && Transition.sources.has(s)) value2 = value2(s.tValue);
|
|
87
|
+
else value2 = value2(s.value);
|
|
88
|
+
}
|
|
89
|
+
return writeSignal(s, value2);
|
|
90
|
+
};
|
|
91
|
+
return [readSignal.bind(s), setter];
|
|
92
|
+
}
|
|
93
|
+
function createRenderEffect(fn, value, options) {
|
|
94
|
+
const c = createComputation(fn, value, false, STALE);
|
|
95
|
+
if (Scheduler && Transition && Transition.running) Updates.push(c);
|
|
96
|
+
else updateComputation(c);
|
|
97
|
+
}
|
|
98
|
+
function createEffect(fn, value, options) {
|
|
99
|
+
runEffects = runUserEffects;
|
|
100
|
+
const c = createComputation(fn, value, false, STALE), s = SuspenseContext && useContext(SuspenseContext);
|
|
101
|
+
if (s) c.suspense = s;
|
|
102
|
+
if (!options || !options.render) c.user = true;
|
|
103
|
+
Effects ? Effects.push(c) : updateComputation(c);
|
|
104
|
+
}
|
|
105
|
+
function createMemo(fn, value, options) {
|
|
106
|
+
options = options ? Object.assign({}, signalOptions, options) : signalOptions;
|
|
107
|
+
const c = createComputation(fn, value, true, 0);
|
|
108
|
+
c.observers = null;
|
|
109
|
+
c.observerSlots = null;
|
|
110
|
+
c.comparator = options.equals || void 0;
|
|
111
|
+
if (Scheduler && Transition && Transition.running) {
|
|
112
|
+
c.tState = STALE;
|
|
113
|
+
Updates.push(c);
|
|
114
|
+
} else updateComputation(c);
|
|
115
|
+
return readSignal.bind(c);
|
|
116
|
+
}
|
|
117
|
+
function untrack(fn) {
|
|
118
|
+
if (!ExternalSourceConfig && Listener === null) return fn();
|
|
119
|
+
const listener = Listener;
|
|
120
|
+
Listener = null;
|
|
121
|
+
try {
|
|
122
|
+
if (ExternalSourceConfig) return ExternalSourceConfig.untrack(fn);
|
|
123
|
+
return fn();
|
|
124
|
+
} finally {
|
|
125
|
+
Listener = listener;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
function onMount(fn) {
|
|
129
|
+
createEffect(() => untrack(fn));
|
|
130
|
+
}
|
|
131
|
+
function onCleanup(fn) {
|
|
132
|
+
if (Owner === null) ;
|
|
133
|
+
else if (Owner.cleanups === null) Owner.cleanups = [fn];
|
|
134
|
+
else Owner.cleanups.push(fn);
|
|
135
|
+
return fn;
|
|
136
|
+
}
|
|
137
|
+
function startTransition(fn) {
|
|
138
|
+
if (Transition && Transition.running) {
|
|
139
|
+
fn();
|
|
140
|
+
return Transition.done;
|
|
141
|
+
}
|
|
142
|
+
const l = Listener;
|
|
143
|
+
const o = Owner;
|
|
144
|
+
return Promise.resolve().then(() => {
|
|
145
|
+
Listener = l;
|
|
146
|
+
Owner = o;
|
|
147
|
+
let t;
|
|
148
|
+
if (Scheduler || SuspenseContext) {
|
|
149
|
+
t = Transition || (Transition = {
|
|
150
|
+
sources: /* @__PURE__ */ new Set(),
|
|
151
|
+
effects: [],
|
|
152
|
+
promises: /* @__PURE__ */ new Set(),
|
|
153
|
+
disposed: /* @__PURE__ */ new Set(),
|
|
154
|
+
queue: /* @__PURE__ */ new Set(),
|
|
155
|
+
running: true
|
|
156
|
+
});
|
|
157
|
+
t.done || (t.done = new Promise((res) => t.resolve = res));
|
|
158
|
+
t.running = true;
|
|
159
|
+
}
|
|
160
|
+
runUpdates(fn, false);
|
|
161
|
+
Listener = Owner = null;
|
|
162
|
+
return t ? t.done : void 0;
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
var [transPending, setTransPending] = /* @__PURE__ */ createSignal(false);
|
|
166
|
+
function createContext(defaultValue, options) {
|
|
167
|
+
const id = /* @__PURE__ */ Symbol("context");
|
|
168
|
+
return {
|
|
169
|
+
id,
|
|
170
|
+
Provider: createProvider(id),
|
|
171
|
+
defaultValue
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
function useContext(context) {
|
|
175
|
+
let value;
|
|
176
|
+
return Owner && Owner.context && (value = Owner.context[context.id]) !== void 0 ? value : context.defaultValue;
|
|
177
|
+
}
|
|
178
|
+
function children(fn) {
|
|
179
|
+
const children2 = createMemo(fn);
|
|
180
|
+
const memo3 = createMemo(() => resolveChildren(children2()));
|
|
181
|
+
memo3.toArray = () => {
|
|
182
|
+
const c = memo3();
|
|
183
|
+
return Array.isArray(c) ? c : c != null ? [c] : [];
|
|
184
|
+
};
|
|
185
|
+
return memo3;
|
|
186
|
+
}
|
|
187
|
+
var SuspenseContext;
|
|
188
|
+
function readSignal() {
|
|
189
|
+
const runningTransition = Transition && Transition.running;
|
|
190
|
+
if (this.sources && (runningTransition ? this.tState : this.state)) {
|
|
191
|
+
if ((runningTransition ? this.tState : this.state) === STALE) updateComputation(this);
|
|
192
|
+
else {
|
|
193
|
+
const updates = Updates;
|
|
194
|
+
Updates = null;
|
|
195
|
+
runUpdates(() => lookUpstream(this), false);
|
|
196
|
+
Updates = updates;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
if (Listener) {
|
|
200
|
+
const sSlot = this.observers ? this.observers.length : 0;
|
|
201
|
+
if (!Listener.sources) {
|
|
202
|
+
Listener.sources = [this];
|
|
203
|
+
Listener.sourceSlots = [sSlot];
|
|
204
|
+
} else {
|
|
205
|
+
Listener.sources.push(this);
|
|
206
|
+
Listener.sourceSlots.push(sSlot);
|
|
207
|
+
}
|
|
208
|
+
if (!this.observers) {
|
|
209
|
+
this.observers = [Listener];
|
|
210
|
+
this.observerSlots = [Listener.sources.length - 1];
|
|
211
|
+
} else {
|
|
212
|
+
this.observers.push(Listener);
|
|
213
|
+
this.observerSlots.push(Listener.sources.length - 1);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
if (runningTransition && Transition.sources.has(this)) return this.tValue;
|
|
217
|
+
return this.value;
|
|
218
|
+
}
|
|
219
|
+
function writeSignal(node, value, isComp) {
|
|
220
|
+
let current = Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value;
|
|
221
|
+
if (!node.comparator || !node.comparator(current, value)) {
|
|
222
|
+
if (Transition) {
|
|
223
|
+
const TransitionRunning = Transition.running;
|
|
224
|
+
if (TransitionRunning || !isComp && Transition.sources.has(node)) {
|
|
225
|
+
Transition.sources.add(node);
|
|
226
|
+
node.tValue = value;
|
|
227
|
+
}
|
|
228
|
+
if (!TransitionRunning) node.value = value;
|
|
229
|
+
} else node.value = value;
|
|
230
|
+
if (node.observers && node.observers.length) {
|
|
231
|
+
runUpdates(() => {
|
|
232
|
+
for (let i = 0; i < node.observers.length; i += 1) {
|
|
233
|
+
const o = node.observers[i];
|
|
234
|
+
const TransitionRunning = Transition && Transition.running;
|
|
235
|
+
if (TransitionRunning && Transition.disposed.has(o)) continue;
|
|
236
|
+
if (TransitionRunning ? !o.tState : !o.state) {
|
|
237
|
+
if (o.pure) Updates.push(o);
|
|
238
|
+
else Effects.push(o);
|
|
239
|
+
if (o.observers) markDownstream(o);
|
|
240
|
+
}
|
|
241
|
+
if (!TransitionRunning) o.state = STALE;
|
|
242
|
+
else o.tState = STALE;
|
|
243
|
+
}
|
|
244
|
+
if (Updates.length > 1e6) {
|
|
245
|
+
Updates = [];
|
|
246
|
+
if (IS_DEV) ;
|
|
247
|
+
throw new Error();
|
|
248
|
+
}
|
|
249
|
+
}, false);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
return value;
|
|
253
|
+
}
|
|
254
|
+
function updateComputation(node) {
|
|
255
|
+
if (!node.fn) return;
|
|
256
|
+
cleanNode(node);
|
|
257
|
+
const time = ExecCount;
|
|
258
|
+
runComputation(node, Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value, time);
|
|
259
|
+
if (Transition && !Transition.running && Transition.sources.has(node)) {
|
|
260
|
+
queueMicrotask(() => {
|
|
261
|
+
runUpdates(() => {
|
|
262
|
+
Transition && (Transition.running = true);
|
|
263
|
+
Listener = Owner = node;
|
|
264
|
+
runComputation(node, node.tValue, time);
|
|
265
|
+
Listener = Owner = null;
|
|
266
|
+
}, false);
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
function runComputation(node, value, time) {
|
|
271
|
+
let nextValue;
|
|
272
|
+
const owner = Owner, listener = Listener;
|
|
273
|
+
Listener = Owner = node;
|
|
274
|
+
try {
|
|
275
|
+
nextValue = node.fn(value);
|
|
276
|
+
} catch (err) {
|
|
277
|
+
if (node.pure) {
|
|
278
|
+
if (Transition && Transition.running) {
|
|
279
|
+
node.tState = STALE;
|
|
280
|
+
node.tOwned && node.tOwned.forEach(cleanNode);
|
|
281
|
+
node.tOwned = void 0;
|
|
282
|
+
} else {
|
|
283
|
+
node.state = STALE;
|
|
284
|
+
node.owned && node.owned.forEach(cleanNode);
|
|
285
|
+
node.owned = null;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
node.updatedAt = time + 1;
|
|
289
|
+
return handleError(err);
|
|
290
|
+
} finally {
|
|
291
|
+
Listener = listener;
|
|
292
|
+
Owner = owner;
|
|
293
|
+
}
|
|
294
|
+
if (!node.updatedAt || node.updatedAt <= time) {
|
|
295
|
+
if (node.updatedAt != null && "observers" in node) {
|
|
296
|
+
writeSignal(node, nextValue, true);
|
|
297
|
+
} else if (Transition && Transition.running && node.pure) {
|
|
298
|
+
if (!Transition.sources.has(node)) node.value = nextValue;
|
|
299
|
+
Transition.sources.add(node);
|
|
300
|
+
node.tValue = nextValue;
|
|
301
|
+
} else node.value = nextValue;
|
|
302
|
+
node.updatedAt = time;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
function createComputation(fn, init, pure, state = STALE, options) {
|
|
306
|
+
const c = {
|
|
307
|
+
fn,
|
|
308
|
+
state,
|
|
309
|
+
updatedAt: null,
|
|
310
|
+
owned: null,
|
|
311
|
+
sources: null,
|
|
312
|
+
sourceSlots: null,
|
|
313
|
+
cleanups: null,
|
|
314
|
+
value: init,
|
|
315
|
+
owner: Owner,
|
|
316
|
+
context: Owner ? Owner.context : null,
|
|
317
|
+
pure
|
|
318
|
+
};
|
|
319
|
+
if (Transition && Transition.running) {
|
|
320
|
+
c.state = 0;
|
|
321
|
+
c.tState = state;
|
|
322
|
+
}
|
|
323
|
+
if (Owner === null) ;
|
|
324
|
+
else if (Owner !== UNOWNED) {
|
|
325
|
+
if (Transition && Transition.running && Owner.pure) {
|
|
326
|
+
if (!Owner.tOwned) Owner.tOwned = [c];
|
|
327
|
+
else Owner.tOwned.push(c);
|
|
328
|
+
} else {
|
|
329
|
+
if (!Owner.owned) Owner.owned = [c];
|
|
330
|
+
else Owner.owned.push(c);
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
if (ExternalSourceConfig && c.fn) {
|
|
334
|
+
const sourceFn = c.fn;
|
|
335
|
+
const [track, trigger] = createSignal(void 0, {
|
|
336
|
+
equals: false
|
|
337
|
+
});
|
|
338
|
+
const ordinary = ExternalSourceConfig.factory(sourceFn, trigger);
|
|
339
|
+
onCleanup(() => ordinary.dispose());
|
|
340
|
+
let inTransition;
|
|
341
|
+
const triggerInTransition = () => startTransition(trigger).then(() => {
|
|
342
|
+
if (inTransition) {
|
|
343
|
+
inTransition.dispose();
|
|
344
|
+
inTransition = void 0;
|
|
345
|
+
}
|
|
346
|
+
});
|
|
347
|
+
c.fn = (x) => {
|
|
348
|
+
track();
|
|
349
|
+
if (Transition && Transition.running) {
|
|
350
|
+
if (!inTransition) inTransition = ExternalSourceConfig.factory(sourceFn, triggerInTransition);
|
|
351
|
+
return inTransition.track(x);
|
|
352
|
+
}
|
|
353
|
+
return ordinary.track(x);
|
|
354
|
+
};
|
|
355
|
+
}
|
|
356
|
+
return c;
|
|
357
|
+
}
|
|
358
|
+
function runTop(node) {
|
|
359
|
+
const runningTransition = Transition && Transition.running;
|
|
360
|
+
if ((runningTransition ? node.tState : node.state) === 0) return;
|
|
361
|
+
if ((runningTransition ? node.tState : node.state) === PENDING) return lookUpstream(node);
|
|
362
|
+
if (node.suspense && untrack(node.suspense.inFallback)) return node.suspense.effects.push(node);
|
|
363
|
+
const ancestors = [node];
|
|
364
|
+
while ((node = node.owner) && (!node.updatedAt || node.updatedAt < ExecCount)) {
|
|
365
|
+
if (runningTransition && Transition.disposed.has(node)) return;
|
|
366
|
+
if (runningTransition ? node.tState : node.state) ancestors.push(node);
|
|
367
|
+
}
|
|
368
|
+
for (let i = ancestors.length - 1; i >= 0; i--) {
|
|
369
|
+
node = ancestors[i];
|
|
370
|
+
if (runningTransition) {
|
|
371
|
+
let top = node, prev = ancestors[i + 1];
|
|
372
|
+
while ((top = top.owner) && top !== prev) {
|
|
373
|
+
if (Transition.disposed.has(top)) return;
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
if ((runningTransition ? node.tState : node.state) === STALE) {
|
|
377
|
+
updateComputation(node);
|
|
378
|
+
} else if ((runningTransition ? node.tState : node.state) === PENDING) {
|
|
379
|
+
const updates = Updates;
|
|
380
|
+
Updates = null;
|
|
381
|
+
runUpdates(() => lookUpstream(node, ancestors[0]), false);
|
|
382
|
+
Updates = updates;
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
function runUpdates(fn, init) {
|
|
387
|
+
if (Updates) return fn();
|
|
388
|
+
let wait = false;
|
|
389
|
+
if (!init) Updates = [];
|
|
390
|
+
if (Effects) wait = true;
|
|
391
|
+
else Effects = [];
|
|
392
|
+
ExecCount++;
|
|
393
|
+
try {
|
|
394
|
+
const res = fn();
|
|
395
|
+
completeUpdates(wait);
|
|
396
|
+
return res;
|
|
397
|
+
} catch (err) {
|
|
398
|
+
if (!wait) Effects = null;
|
|
399
|
+
Updates = null;
|
|
400
|
+
handleError(err);
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
function completeUpdates(wait) {
|
|
404
|
+
if (Updates) {
|
|
405
|
+
if (Scheduler && Transition && Transition.running) scheduleQueue(Updates);
|
|
406
|
+
else runQueue(Updates);
|
|
407
|
+
Updates = null;
|
|
408
|
+
}
|
|
409
|
+
if (wait) return;
|
|
410
|
+
let res;
|
|
411
|
+
if (Transition) {
|
|
412
|
+
if (!Transition.promises.size && !Transition.queue.size) {
|
|
413
|
+
const sources = Transition.sources;
|
|
414
|
+
const disposed = Transition.disposed;
|
|
415
|
+
Effects.push.apply(Effects, Transition.effects);
|
|
416
|
+
res = Transition.resolve;
|
|
417
|
+
for (const e2 of Effects) {
|
|
418
|
+
"tState" in e2 && (e2.state = e2.tState);
|
|
419
|
+
delete e2.tState;
|
|
420
|
+
}
|
|
421
|
+
Transition = null;
|
|
422
|
+
runUpdates(() => {
|
|
423
|
+
for (const d of disposed) cleanNode(d);
|
|
424
|
+
for (const v of sources) {
|
|
425
|
+
v.value = v.tValue;
|
|
426
|
+
if (v.owned) {
|
|
427
|
+
for (let i = 0, len = v.owned.length; i < len; i++) cleanNode(v.owned[i]);
|
|
428
|
+
}
|
|
429
|
+
if (v.tOwned) v.owned = v.tOwned;
|
|
430
|
+
delete v.tValue;
|
|
431
|
+
delete v.tOwned;
|
|
432
|
+
v.tState = 0;
|
|
433
|
+
}
|
|
434
|
+
setTransPending(false);
|
|
435
|
+
}, false);
|
|
436
|
+
} else if (Transition.running) {
|
|
437
|
+
Transition.running = false;
|
|
438
|
+
Transition.effects.push.apply(Transition.effects, Effects);
|
|
439
|
+
Effects = null;
|
|
440
|
+
setTransPending(true);
|
|
441
|
+
return;
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
const e = Effects;
|
|
445
|
+
Effects = null;
|
|
446
|
+
if (e.length) runUpdates(() => runEffects(e), false);
|
|
447
|
+
if (res) res();
|
|
448
|
+
}
|
|
449
|
+
function runQueue(queue) {
|
|
450
|
+
for (let i = 0; i < queue.length; i++) runTop(queue[i]);
|
|
451
|
+
}
|
|
452
|
+
function scheduleQueue(queue) {
|
|
453
|
+
for (let i = 0; i < queue.length; i++) {
|
|
454
|
+
const item = queue[i];
|
|
455
|
+
const tasks = Transition.queue;
|
|
456
|
+
if (!tasks.has(item)) {
|
|
457
|
+
tasks.add(item);
|
|
458
|
+
Scheduler(() => {
|
|
459
|
+
tasks.delete(item);
|
|
460
|
+
runUpdates(() => {
|
|
461
|
+
Transition.running = true;
|
|
462
|
+
runTop(item);
|
|
463
|
+
}, false);
|
|
464
|
+
Transition && (Transition.running = false);
|
|
465
|
+
});
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
function runUserEffects(queue) {
|
|
470
|
+
let i, userLength = 0;
|
|
471
|
+
for (i = 0; i < queue.length; i++) {
|
|
472
|
+
const e = queue[i];
|
|
473
|
+
if (!e.user) runTop(e);
|
|
474
|
+
else queue[userLength++] = e;
|
|
475
|
+
}
|
|
476
|
+
if (sharedConfig.context) {
|
|
477
|
+
if (sharedConfig.count) {
|
|
478
|
+
sharedConfig.effects || (sharedConfig.effects = []);
|
|
479
|
+
sharedConfig.effects.push(...queue.slice(0, userLength));
|
|
480
|
+
return;
|
|
481
|
+
}
|
|
482
|
+
setHydrateContext();
|
|
483
|
+
}
|
|
484
|
+
if (sharedConfig.effects && (sharedConfig.done || !sharedConfig.count)) {
|
|
485
|
+
queue = [...sharedConfig.effects, ...queue];
|
|
486
|
+
userLength += sharedConfig.effects.length;
|
|
487
|
+
delete sharedConfig.effects;
|
|
488
|
+
}
|
|
489
|
+
for (i = 0; i < userLength; i++) runTop(queue[i]);
|
|
490
|
+
}
|
|
491
|
+
function lookUpstream(node, ignore) {
|
|
492
|
+
const runningTransition = Transition && Transition.running;
|
|
493
|
+
if (runningTransition) node.tState = 0;
|
|
494
|
+
else node.state = 0;
|
|
495
|
+
for (let i = 0; i < node.sources.length; i += 1) {
|
|
496
|
+
const source = node.sources[i];
|
|
497
|
+
if (source.sources) {
|
|
498
|
+
const state = runningTransition ? source.tState : source.state;
|
|
499
|
+
if (state === STALE) {
|
|
500
|
+
if (source !== ignore && (!source.updatedAt || source.updatedAt < ExecCount)) runTop(source);
|
|
501
|
+
} else if (state === PENDING) lookUpstream(source, ignore);
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
function markDownstream(node) {
|
|
506
|
+
const runningTransition = Transition && Transition.running;
|
|
507
|
+
for (let i = 0; i < node.observers.length; i += 1) {
|
|
508
|
+
const o = node.observers[i];
|
|
509
|
+
if (runningTransition ? !o.tState : !o.state) {
|
|
510
|
+
if (runningTransition) o.tState = PENDING;
|
|
511
|
+
else o.state = PENDING;
|
|
512
|
+
if (o.pure) Updates.push(o);
|
|
513
|
+
else Effects.push(o);
|
|
514
|
+
o.observers && markDownstream(o);
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
function cleanNode(node) {
|
|
519
|
+
let i;
|
|
520
|
+
if (node.sources) {
|
|
521
|
+
while (node.sources.length) {
|
|
522
|
+
const source = node.sources.pop(), index = node.sourceSlots.pop(), obs = source.observers;
|
|
523
|
+
if (obs && obs.length) {
|
|
524
|
+
const n = obs.pop(), s = source.observerSlots.pop();
|
|
525
|
+
if (index < obs.length) {
|
|
526
|
+
n.sourceSlots[s] = index;
|
|
527
|
+
obs[index] = n;
|
|
528
|
+
source.observerSlots[index] = s;
|
|
529
|
+
}
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
if (node.tOwned) {
|
|
534
|
+
for (i = node.tOwned.length - 1; i >= 0; i--) cleanNode(node.tOwned[i]);
|
|
535
|
+
delete node.tOwned;
|
|
536
|
+
}
|
|
537
|
+
if (Transition && Transition.running && node.pure) {
|
|
538
|
+
reset(node, true);
|
|
539
|
+
} else if (node.owned) {
|
|
540
|
+
for (i = node.owned.length - 1; i >= 0; i--) cleanNode(node.owned[i]);
|
|
541
|
+
node.owned = null;
|
|
542
|
+
}
|
|
543
|
+
if (node.cleanups) {
|
|
544
|
+
for (i = node.cleanups.length - 1; i >= 0; i--) node.cleanups[i]();
|
|
545
|
+
node.cleanups = null;
|
|
546
|
+
}
|
|
547
|
+
if (Transition && Transition.running) node.tState = 0;
|
|
548
|
+
else node.state = 0;
|
|
549
|
+
}
|
|
550
|
+
function reset(node, top) {
|
|
551
|
+
if (!top) {
|
|
552
|
+
node.tState = 0;
|
|
553
|
+
Transition.disposed.add(node);
|
|
554
|
+
}
|
|
555
|
+
if (node.owned) {
|
|
556
|
+
for (let i = 0; i < node.owned.length; i++) reset(node.owned[i]);
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
function castError(err) {
|
|
560
|
+
if (err instanceof Error) return err;
|
|
561
|
+
return new Error(typeof err === "string" ? err : "Unknown error", {
|
|
562
|
+
cause: err
|
|
563
|
+
});
|
|
564
|
+
}
|
|
565
|
+
function runErrors(err, fns, owner) {
|
|
566
|
+
try {
|
|
567
|
+
for (const f of fns) f(err);
|
|
568
|
+
} catch (e) {
|
|
569
|
+
handleError(e, owner && owner.owner || null);
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
function handleError(err, owner = Owner) {
|
|
573
|
+
const fns = ERROR && owner && owner.context && owner.context[ERROR];
|
|
574
|
+
const error = castError(err);
|
|
575
|
+
if (!fns) throw error;
|
|
576
|
+
if (Effects) Effects.push({
|
|
577
|
+
fn() {
|
|
578
|
+
runErrors(error, fns, owner);
|
|
579
|
+
},
|
|
580
|
+
state: STALE
|
|
581
|
+
});
|
|
582
|
+
else runErrors(error, fns, owner);
|
|
583
|
+
}
|
|
584
|
+
function resolveChildren(children2) {
|
|
585
|
+
if (typeof children2 === "function" && !children2.length) return resolveChildren(children2());
|
|
586
|
+
if (Array.isArray(children2)) {
|
|
587
|
+
const results = [];
|
|
588
|
+
for (let i = 0; i < children2.length; i++) {
|
|
589
|
+
const result = resolveChildren(children2[i]);
|
|
590
|
+
Array.isArray(result) ? results.push.apply(results, result) : results.push(result);
|
|
591
|
+
}
|
|
592
|
+
return results;
|
|
593
|
+
}
|
|
594
|
+
return children2;
|
|
595
|
+
}
|
|
596
|
+
function createProvider(id, options) {
|
|
597
|
+
return function provider(props) {
|
|
598
|
+
let res;
|
|
599
|
+
createRenderEffect(() => res = untrack(() => {
|
|
600
|
+
Owner.context = {
|
|
601
|
+
...Owner.context,
|
|
602
|
+
[id]: props.value
|
|
603
|
+
};
|
|
604
|
+
return children(() => props.children);
|
|
605
|
+
}), void 0);
|
|
606
|
+
return res;
|
|
607
|
+
};
|
|
608
|
+
}
|
|
609
|
+
var FALLBACK = /* @__PURE__ */ Symbol("fallback");
|
|
610
|
+
function dispose(d) {
|
|
611
|
+
for (let i = 0; i < d.length; i++) d[i]();
|
|
612
|
+
}
|
|
613
|
+
function mapArray(list, mapFn, options = {}) {
|
|
614
|
+
let items = [], mapped = [], disposers = [], len = 0, indexes = mapFn.length > 1 ? [] : null;
|
|
615
|
+
onCleanup(() => dispose(disposers));
|
|
616
|
+
return () => {
|
|
617
|
+
let newItems = list() || [], newLen = newItems.length, i, j;
|
|
618
|
+
newItems[$TRACK];
|
|
619
|
+
return untrack(() => {
|
|
620
|
+
let newIndices, newIndicesNext, temp, tempdisposers, tempIndexes, start, end, newEnd, item;
|
|
621
|
+
if (newLen === 0) {
|
|
622
|
+
if (len !== 0) {
|
|
623
|
+
dispose(disposers);
|
|
624
|
+
disposers = [];
|
|
625
|
+
items = [];
|
|
626
|
+
mapped = [];
|
|
627
|
+
len = 0;
|
|
628
|
+
indexes && (indexes = []);
|
|
629
|
+
}
|
|
630
|
+
if (options.fallback) {
|
|
631
|
+
items = [FALLBACK];
|
|
632
|
+
mapped[0] = createRoot((disposer) => {
|
|
633
|
+
disposers[0] = disposer;
|
|
634
|
+
return options.fallback();
|
|
635
|
+
});
|
|
636
|
+
len = 1;
|
|
637
|
+
}
|
|
638
|
+
} else if (len === 0) {
|
|
639
|
+
mapped = new Array(newLen);
|
|
640
|
+
for (j = 0; j < newLen; j++) {
|
|
641
|
+
items[j] = newItems[j];
|
|
642
|
+
mapped[j] = createRoot(mapper);
|
|
643
|
+
}
|
|
644
|
+
len = newLen;
|
|
645
|
+
} else {
|
|
646
|
+
temp = new Array(newLen);
|
|
647
|
+
tempdisposers = new Array(newLen);
|
|
648
|
+
indexes && (tempIndexes = new Array(newLen));
|
|
649
|
+
for (start = 0, end = Math.min(len, newLen); start < end && items[start] === newItems[start]; start++) ;
|
|
650
|
+
for (end = len - 1, newEnd = newLen - 1; end >= start && newEnd >= start && items[end] === newItems[newEnd]; end--, newEnd--) {
|
|
651
|
+
temp[newEnd] = mapped[end];
|
|
652
|
+
tempdisposers[newEnd] = disposers[end];
|
|
653
|
+
indexes && (tempIndexes[newEnd] = indexes[end]);
|
|
654
|
+
}
|
|
655
|
+
newIndices = /* @__PURE__ */ new Map();
|
|
656
|
+
newIndicesNext = new Array(newEnd + 1);
|
|
657
|
+
for (j = newEnd; j >= start; j--) {
|
|
658
|
+
item = newItems[j];
|
|
659
|
+
i = newIndices.get(item);
|
|
660
|
+
newIndicesNext[j] = i === void 0 ? -1 : i;
|
|
661
|
+
newIndices.set(item, j);
|
|
662
|
+
}
|
|
663
|
+
for (i = start; i <= end; i++) {
|
|
664
|
+
item = items[i];
|
|
665
|
+
j = newIndices.get(item);
|
|
666
|
+
if (j !== void 0 && j !== -1) {
|
|
667
|
+
temp[j] = mapped[i];
|
|
668
|
+
tempdisposers[j] = disposers[i];
|
|
669
|
+
indexes && (tempIndexes[j] = indexes[i]);
|
|
670
|
+
j = newIndicesNext[j];
|
|
671
|
+
newIndices.set(item, j);
|
|
672
|
+
} else disposers[i]();
|
|
673
|
+
}
|
|
674
|
+
for (j = start; j < newLen; j++) {
|
|
675
|
+
if (j in temp) {
|
|
676
|
+
mapped[j] = temp[j];
|
|
677
|
+
disposers[j] = tempdisposers[j];
|
|
678
|
+
if (indexes) {
|
|
679
|
+
indexes[j] = tempIndexes[j];
|
|
680
|
+
indexes[j](j);
|
|
681
|
+
}
|
|
682
|
+
} else mapped[j] = createRoot(mapper);
|
|
683
|
+
}
|
|
684
|
+
mapped = mapped.slice(0, len = newLen);
|
|
685
|
+
items = newItems.slice(0);
|
|
686
|
+
}
|
|
687
|
+
return mapped;
|
|
688
|
+
});
|
|
689
|
+
function mapper(disposer) {
|
|
690
|
+
disposers[j] = disposer;
|
|
691
|
+
if (indexes) {
|
|
692
|
+
const [s, set] = createSignal(j);
|
|
693
|
+
indexes[j] = set;
|
|
694
|
+
return mapFn(newItems[j], s);
|
|
695
|
+
}
|
|
696
|
+
return mapFn(newItems[j]);
|
|
697
|
+
}
|
|
698
|
+
};
|
|
699
|
+
}
|
|
700
|
+
var hydrationEnabled = false;
|
|
701
|
+
function createComponent(Comp, props) {
|
|
702
|
+
if (hydrationEnabled) {
|
|
703
|
+
if (sharedConfig.context) {
|
|
704
|
+
const c = sharedConfig.context;
|
|
705
|
+
setHydrateContext(nextHydrateContext());
|
|
706
|
+
const r = untrack(() => Comp(props || {}));
|
|
707
|
+
setHydrateContext(c);
|
|
708
|
+
return r;
|
|
709
|
+
}
|
|
710
|
+
}
|
|
711
|
+
return untrack(() => Comp(props || {}));
|
|
712
|
+
}
|
|
713
|
+
function trueFn() {
|
|
714
|
+
return true;
|
|
715
|
+
}
|
|
716
|
+
var propTraps = {
|
|
717
|
+
get(_, property, receiver) {
|
|
718
|
+
if (property === $PROXY) return receiver;
|
|
719
|
+
return _.get(property);
|
|
720
|
+
},
|
|
721
|
+
has(_, property) {
|
|
722
|
+
if (property === $PROXY) return true;
|
|
723
|
+
return _.has(property);
|
|
724
|
+
},
|
|
725
|
+
set: trueFn,
|
|
726
|
+
deleteProperty: trueFn,
|
|
727
|
+
getOwnPropertyDescriptor(_, property) {
|
|
728
|
+
return {
|
|
729
|
+
configurable: true,
|
|
730
|
+
enumerable: true,
|
|
731
|
+
get() {
|
|
732
|
+
return _.get(property);
|
|
733
|
+
},
|
|
734
|
+
set: trueFn,
|
|
735
|
+
deleteProperty: trueFn
|
|
736
|
+
};
|
|
737
|
+
},
|
|
738
|
+
ownKeys(_) {
|
|
739
|
+
return _.keys();
|
|
740
|
+
}
|
|
741
|
+
};
|
|
742
|
+
function resolveSource(s) {
|
|
743
|
+
return !(s = typeof s === "function" ? s() : s) ? {} : s;
|
|
744
|
+
}
|
|
745
|
+
function resolveSources() {
|
|
746
|
+
for (let i = 0, length = this.length; i < length; ++i) {
|
|
747
|
+
const v = this[i]();
|
|
748
|
+
if (v !== void 0) return v;
|
|
749
|
+
}
|
|
750
|
+
}
|
|
751
|
+
function mergeProps(...sources) {
|
|
752
|
+
let proxy = false;
|
|
753
|
+
for (let i = 0; i < sources.length; i++) {
|
|
754
|
+
const s = sources[i];
|
|
755
|
+
proxy = proxy || !!s && $PROXY in s;
|
|
756
|
+
sources[i] = typeof s === "function" ? (proxy = true, createMemo(s)) : s;
|
|
757
|
+
}
|
|
758
|
+
if (SUPPORTS_PROXY && proxy) {
|
|
759
|
+
return new Proxy({
|
|
760
|
+
get(property) {
|
|
761
|
+
for (let i = sources.length - 1; i >= 0; i--) {
|
|
762
|
+
const v = resolveSource(sources[i])[property];
|
|
763
|
+
if (v !== void 0) return v;
|
|
764
|
+
}
|
|
765
|
+
},
|
|
766
|
+
has(property) {
|
|
767
|
+
for (let i = sources.length - 1; i >= 0; i--) {
|
|
768
|
+
if (property in resolveSource(sources[i])) return true;
|
|
769
|
+
}
|
|
770
|
+
return false;
|
|
771
|
+
},
|
|
772
|
+
keys() {
|
|
773
|
+
const keys = [];
|
|
774
|
+
for (let i = 0; i < sources.length; i++) keys.push(...Object.keys(resolveSource(sources[i])));
|
|
775
|
+
return [...new Set(keys)];
|
|
776
|
+
}
|
|
777
|
+
}, propTraps);
|
|
778
|
+
}
|
|
779
|
+
const sourcesMap = {};
|
|
780
|
+
const defined = /* @__PURE__ */ Object.create(null);
|
|
781
|
+
for (let i = sources.length - 1; i >= 0; i--) {
|
|
782
|
+
const source = sources[i];
|
|
783
|
+
if (!source) continue;
|
|
784
|
+
const sourceKeys = Object.getOwnPropertyNames(source);
|
|
785
|
+
for (let i2 = sourceKeys.length - 1; i2 >= 0; i2--) {
|
|
786
|
+
const key = sourceKeys[i2];
|
|
787
|
+
if (key === "__proto__" || key === "constructor") continue;
|
|
788
|
+
const desc = Object.getOwnPropertyDescriptor(source, key);
|
|
789
|
+
if (!defined[key]) {
|
|
790
|
+
defined[key] = desc.get ? {
|
|
791
|
+
enumerable: true,
|
|
792
|
+
configurable: true,
|
|
793
|
+
get: resolveSources.bind(sourcesMap[key] = [desc.get.bind(source)])
|
|
794
|
+
} : desc.value !== void 0 ? desc : void 0;
|
|
795
|
+
} else {
|
|
796
|
+
const sources2 = sourcesMap[key];
|
|
797
|
+
if (sources2) {
|
|
798
|
+
if (desc.get) sources2.push(desc.get.bind(source));
|
|
799
|
+
else if (desc.value !== void 0) sources2.push(() => desc.value);
|
|
800
|
+
}
|
|
801
|
+
}
|
|
802
|
+
}
|
|
803
|
+
}
|
|
804
|
+
const target = {};
|
|
805
|
+
const definedKeys = Object.keys(defined);
|
|
806
|
+
for (let i = definedKeys.length - 1; i >= 0; i--) {
|
|
807
|
+
const key = definedKeys[i], desc = defined[key];
|
|
808
|
+
if (desc && desc.get) Object.defineProperty(target, key, desc);
|
|
809
|
+
else target[key] = desc ? desc.value : void 0;
|
|
810
|
+
}
|
|
811
|
+
return target;
|
|
812
|
+
}
|
|
813
|
+
var narrowedError = (name2) => `Stale read from <${name2}>.`;
|
|
814
|
+
function For(props) {
|
|
815
|
+
const fallback = "fallback" in props && {
|
|
816
|
+
fallback: () => props.fallback
|
|
817
|
+
};
|
|
818
|
+
return createMemo(mapArray(() => props.each, props.children, fallback || void 0));
|
|
819
|
+
}
|
|
820
|
+
function Show(props) {
|
|
821
|
+
const keyed = props.keyed;
|
|
822
|
+
const conditionValue = createMemo(() => props.when, void 0, void 0);
|
|
823
|
+
const condition = keyed ? conditionValue : createMemo(conditionValue, void 0, {
|
|
824
|
+
equals: (a, b) => !a === !b
|
|
825
|
+
});
|
|
826
|
+
return createMemo(() => {
|
|
827
|
+
const c = condition();
|
|
828
|
+
if (c) {
|
|
829
|
+
const child = props.children;
|
|
830
|
+
const fn = typeof child === "function" && child.length > 0;
|
|
831
|
+
return fn ? untrack(() => child(keyed ? c : () => {
|
|
832
|
+
if (!untrack(condition)) throw narrowedError("Show");
|
|
833
|
+
return conditionValue();
|
|
834
|
+
})) : child;
|
|
835
|
+
}
|
|
836
|
+
return props.fallback;
|
|
837
|
+
}, void 0, void 0);
|
|
838
|
+
}
|
|
839
|
+
|
|
840
|
+
// node_modules/@opentui/solid/index.js
|
|
8
841
|
import { BaseRenderable, createTextAttributes, ImageRenderable as ImageRenderable2, InputRenderable as InputRenderable2, InputRenderableEvents, isTextNodeRenderable, isEditBufferRenderable, parseColor, Renderable, RootTextNodeRenderable, ScrollBoxRenderable as ScrollBoxRenderable2, SelectRenderable as SelectRenderable2, SelectRenderableEvents, TabSelectRenderable as TabSelectRenderable2, TabSelectRenderableEvents, TextNodeRenderable as TextNodeRenderable2, TextRenderable as TextRenderable2 } from "@opentui/core";
|
|
9
842
|
|
|
10
843
|
// node_modules/entities/dist/esm/decode-codepoint.js
|
|
@@ -523,15 +1356,10 @@ var EncodingMode;
|
|
|
523
1356
|
})(EncodingMode || (EncodingMode = {}));
|
|
524
1357
|
|
|
525
1358
|
// node_modules/@opentui/solid/index.js
|
|
526
|
-
import { onCleanup as onCleanup2, useContext as useContext2 } from "solid-js/dist/solid.js";
|
|
527
|
-
import { createRoot, createRenderEffect, createMemo, createComponent, untrack, mergeProps } from "solid-js/dist/solid.js";
|
|
528
|
-
import { mergeProps as mergeProps2 } from "solid-js/dist/solid.js";
|
|
529
1359
|
import { BaseRenderable as BaseRenderable2, isTextNodeRenderable as isTextNodeRenderable2, TextNodeRenderable as TextNodeRenderable3, TextRenderable as TextRenderable3, Yoga } from "@opentui/core";
|
|
530
1360
|
import { BoxRenderable as BoxRenderable2, RootRenderable } from "@opentui/core";
|
|
531
|
-
import { createSignal as createSignal2 } from "solid-js/dist/solid.js";
|
|
532
1361
|
import { TimeToFirstDrawRenderable } from "@opentui/core";
|
|
533
1362
|
import { createSlotRegistry } from "@opentui/core";
|
|
534
|
-
import { children, createMemo as createMemo3, createSignal as createSignal3, ErrorBoundary, For, onCleanup as onCleanup4, splitProps as splitProps2 } from "solid-js/dist/solid.js";
|
|
535
1363
|
var SpanRenderable = class extends TextNodeRenderable {
|
|
536
1364
|
constructor(_ctx, options) {
|
|
537
1365
|
super(options);
|
|
@@ -908,8 +1736,8 @@ function createRenderer({
|
|
|
908
1736
|
return {
|
|
909
1737
|
render(code2, element) {
|
|
910
1738
|
let disposer;
|
|
911
|
-
createRoot((
|
|
912
|
-
disposer =
|
|
1739
|
+
createRoot((dispose2) => {
|
|
1740
|
+
disposer = dispose2;
|
|
913
1741
|
insert2(element, code2());
|
|
914
1742
|
});
|
|
915
1743
|
return disposer;
|
|
@@ -939,7 +1767,7 @@ function createRenderer({
|
|
|
939
1767
|
}
|
|
940
1768
|
function createRenderer2(options) {
|
|
941
1769
|
const renderer = createRenderer(options);
|
|
942
|
-
renderer.mergeProps =
|
|
1770
|
+
renderer.mergeProps = mergeProps;
|
|
943
1771
|
return renderer;
|
|
944
1772
|
}
|
|
945
1773
|
var idCounter = /* @__PURE__ */ new Map();
|
|
@@ -1073,7 +1901,7 @@ var {
|
|
|
1073
1901
|
createElement(tagName) {
|
|
1074
1902
|
log("Creating element:", tagName);
|
|
1075
1903
|
const id = getNextId(tagName);
|
|
1076
|
-
const solidRenderer =
|
|
1904
|
+
const solidRenderer = useContext(RendererContext);
|
|
1077
1905
|
if (!solidRenderer) {
|
|
1078
1906
|
throw new Error("No renderer found");
|
|
1079
1907
|
}
|
|
@@ -1085,7 +1913,7 @@ var {
|
|
|
1085
1913
|
id
|
|
1086
1914
|
});
|
|
1087
1915
|
if (element instanceof ImageRenderable2) {
|
|
1088
|
-
|
|
1916
|
+
onCleanup(() => {
|
|
1089
1917
|
element.source = void 0;
|
|
1090
1918
|
});
|
|
1091
1919
|
}
|
|
@@ -1577,7 +2405,7 @@ extend({
|
|
|
1577
2405
|
time_to_first_draw: TimeToFirstDrawRenderable
|
|
1578
2406
|
});
|
|
1579
2407
|
var mountSolidRoot = (renderer, node) => {
|
|
1580
|
-
let
|
|
2408
|
+
let dispose2;
|
|
1581
2409
|
let disposeRequested = false;
|
|
1582
2410
|
let disposed = false;
|
|
1583
2411
|
let mounting = true;
|
|
@@ -1587,12 +2415,12 @@ var mountSolidRoot = (renderer, node) => {
|
|
|
1587
2415
|
if (disposed) {
|
|
1588
2416
|
return;
|
|
1589
2417
|
}
|
|
1590
|
-
if (!
|
|
2418
|
+
if (!dispose2) {
|
|
1591
2419
|
disposeRequested = true;
|
|
1592
2420
|
return;
|
|
1593
2421
|
}
|
|
1594
2422
|
disposed = true;
|
|
1595
|
-
|
|
2423
|
+
dispose2();
|
|
1596
2424
|
};
|
|
1597
2425
|
renderer.once("destroy", runDispose);
|
|
1598
2426
|
renderer.destroy = () => {
|
|
@@ -1603,7 +2431,7 @@ var mountSolidRoot = (renderer, node) => {
|
|
|
1603
2431
|
originalDestroy();
|
|
1604
2432
|
};
|
|
1605
2433
|
try {
|
|
1606
|
-
|
|
2434
|
+
dispose2 = _render(() => createComponent2(RendererContext.Provider, {
|
|
1607
2435
|
get value() {
|
|
1608
2436
|
return renderer;
|
|
1609
2437
|
},
|
|
@@ -1718,7 +2546,6 @@ var palette = (() => {
|
|
|
1718
2546
|
|
|
1719
2547
|
// src/App.tsx
|
|
1720
2548
|
import { TextAttributes as TextAttributes2 } from "@opentui/core";
|
|
1721
|
-
import { For as For2, Show, createSignal as createSignal4, onMount as onMount2 } from "solid-js/dist/solid.js";
|
|
1722
2549
|
|
|
1723
2550
|
// src/backend.ts
|
|
1724
2551
|
import { createHash as createHash2 } from "node:crypto";
|
|
@@ -2967,28 +3794,28 @@ var FlashBackend = class {
|
|
|
2967
3794
|
function App(props) {
|
|
2968
3795
|
const renderer = useRenderer();
|
|
2969
3796
|
const dimensions = useTerminalDimensions();
|
|
2970
|
-
const [screen, setScreen] =
|
|
2971
|
-
const [catalog, setCatalog] =
|
|
2972
|
-
const [candidates, setCandidates] =
|
|
2973
|
-
const [image, setImage] =
|
|
2974
|
-
const [disks3, setDisks] =
|
|
2975
|
-
const [disk, setDisk] =
|
|
2976
|
-
const [cursor, setCursor] =
|
|
2977
|
-
const [loading, setLoading] =
|
|
2978
|
-
const [stopping, setStopping] =
|
|
2979
|
-
const [error, setError] =
|
|
2980
|
-
const [notice, setNotice] =
|
|
2981
|
-
const [dependencies3, setDependencies] =
|
|
3797
|
+
const [screen, setScreen] = createSignal("profile");
|
|
3798
|
+
const [catalog, setCatalog] = createSignal();
|
|
3799
|
+
const [candidates, setCandidates] = createSignal([]);
|
|
3800
|
+
const [image, setImage] = createSignal();
|
|
3801
|
+
const [disks3, setDisks] = createSignal([]);
|
|
3802
|
+
const [disk, setDisk] = createSignal();
|
|
3803
|
+
const [cursor, setCursor] = createSignal(0);
|
|
3804
|
+
const [loading, setLoading] = createSignal(true);
|
|
3805
|
+
const [stopping, setStopping] = createSignal(false);
|
|
3806
|
+
const [error, setError] = createSignal("");
|
|
3807
|
+
const [notice, setNotice] = createSignal("");
|
|
3808
|
+
const [dependencies3, setDependencies] = createSignal({
|
|
2982
3809
|
missing: [],
|
|
2983
3810
|
installer: null,
|
|
2984
3811
|
guidance: ""
|
|
2985
3812
|
});
|
|
2986
|
-
const [setupCandidates, setSetupCandidates] =
|
|
2987
|
-
const [progress, setProgress] =
|
|
3813
|
+
const [setupCandidates, setSetupCandidates] = createSignal(false);
|
|
3814
|
+
const [progress, setProgress] = createSignal({
|
|
2988
3815
|
stage: "Preparing",
|
|
2989
3816
|
detail: ""
|
|
2990
3817
|
});
|
|
2991
|
-
const [frame, setFrame] =
|
|
3818
|
+
const [frame, setFrame] = createSignal(0);
|
|
2992
3819
|
let controller = new AbortController();
|
|
2993
3820
|
let pending = Promise.resolve();
|
|
2994
3821
|
let closing = false;
|
|
@@ -3090,7 +3917,7 @@ function App(props) {
|
|
|
3090
3917
|
await pending;
|
|
3091
3918
|
};
|
|
3092
3919
|
props.registerStop(stop);
|
|
3093
|
-
|
|
3920
|
+
onMount(refresh);
|
|
3094
3921
|
const activate = () => {
|
|
3095
3922
|
if (busy() || !visible()) return;
|
|
3096
3923
|
if (screen() === "setup") {
|
|
@@ -3326,7 +4153,7 @@ function App(props) {
|
|
|
3326
4153
|
})(), (() => {
|
|
3327
4154
|
var _el$14 = createElement("box");
|
|
3328
4155
|
setProp(_el$14, "gap", 0);
|
|
3329
|
-
insert(_el$14, createComponent2(
|
|
4156
|
+
insert(_el$14, createComponent2(For, {
|
|
3330
4157
|
each: profiles,
|
|
3331
4158
|
children: (profile, index) => row(profile.toUpperCase(), profile === "nvidia" ? "NVIDIA graphics" : `${profile === "intel" ? "Intel" : "AMD Radeon"} graphics`, index())
|
|
3332
4159
|
}), null);
|
|
@@ -3454,7 +4281,7 @@ function App(props) {
|
|
|
3454
4281
|
return [(() => {
|
|
3455
4282
|
var _el$31 = createElement("box");
|
|
3456
4283
|
setProp(_el$31, "gap", 0);
|
|
3457
|
-
insert(_el$31, createComponent2(
|
|
4284
|
+
insert(_el$31, createComponent2(For, {
|
|
3458
4285
|
get each() {
|
|
3459
4286
|
return candidates().slice(Math.max(0, cursor() - 2), Math.max(3, cursor() + 1));
|
|
3460
4287
|
},
|
|
@@ -3640,7 +4467,7 @@ function App(props) {
|
|
|
3640
4467
|
return [(() => {
|
|
3641
4468
|
var _el$55 = createElement("box");
|
|
3642
4469
|
setProp(_el$55, "gap", 0);
|
|
3643
|
-
insert(_el$55, createComponent2(
|
|
4470
|
+
insert(_el$55, createComponent2(For, {
|
|
3644
4471
|
get each() {
|
|
3645
4472
|
return disks3().slice(Math.max(0, cursor() - 2), Math.max(3, cursor() + 1));
|
|
3646
4473
|
},
|