@cortexkit/opencode-openai-auth 1.3.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/dist/bin.js +8 -8
  2. package/dist/{codex-request-B9D0e97Q.d.ts → codex-request-BjGT9yWg.d.ts} +36 -28
  3. package/dist/index-2p3gcjsa.js +69 -0
  4. package/dist/{index-m3ctrabv.js → index-2rw81dtm.js} +1 -1
  5. package/dist/index-2yszc75z.js +2 -0
  6. package/dist/{index-gn2b097f.js → index-3y453wg4.js} +7 -7
  7. package/dist/{index-bc89akak.js → index-4w0nsq5s.js} +1 -1
  8. package/dist/index-6fdmqk6p.js +90 -0
  9. package/dist/{index-xwvze96g.js → index-7vkn2e46.js} +1 -1
  10. package/dist/{index-2pgkrebq.js → index-djnfq652.js} +2 -2
  11. package/dist/{index-tddr876f.js → index-e416r885.js} +2 -2
  12. package/dist/index-fztcacjr.js +65 -0
  13. package/dist/index-gmmakhbt.js +2 -0
  14. package/dist/{index-ftkhhr6d.js → index-krcqvyqf.js} +1 -1
  15. package/dist/index-mhfja8yr.js +2 -0
  16. package/dist/index.d.ts +11 -3
  17. package/dist/index.js +1 -1
  18. package/dist/{model-BdITTmeb.d.ts → model-BMq5SCUB.d.ts} +1 -1
  19. package/dist/{port-file-DbHIVC9a.d.ts → port-file-CjMFUWcX.d.ts} +1 -1
  20. package/dist/{protocol-MysYPAho.d.ts → protocol-BC3ndToM.d.ts} +1 -1
  21. package/dist/rpc/port-file.d.ts +1 -1
  22. package/dist/rpc/port-file.js +1 -1
  23. package/dist/rpc/protocol.d.ts +1 -1
  24. package/dist/rpc/protocol.js +1 -1
  25. package/dist/rpc/rpc-client.d.ts +3 -3
  26. package/dist/rpc/rpc-client.js +1 -1
  27. package/dist/rpc/rpc-dir.js +1 -1
  28. package/dist/{sidebar-state-CVSok7zv.d.ts → sidebar-state-DfYyqiOH.d.ts} +55 -7
  29. package/dist/sidebar-state.d.ts +2 -2
  30. package/dist/sidebar-state.js +1 -1
  31. package/dist/token-util-ed4az5gg.js +1 -0
  32. package/dist/{token-z6qq7a1d.js → token-ycw7dyev.js} +1 -1
  33. package/dist/tui-preferences.js +1 -1
  34. package/dist/tui.d.ts +30 -3
  35. package/dist/v2/server.d.ts +2 -2
  36. package/dist/v2/server.js +2 -2
  37. package/package.json +5 -5
  38. package/src/tui-compiled/raw/shared/0332701351b3eeec-format.js +50 -5
  39. package/src/tui-compiled/raw/shared/0f77ebc3c914c9c6-custody.js +70 -1
  40. package/src/tui-compiled/raw/shared/169b2b4bf30909bc-consumer.js +104 -62
  41. package/src/tui-compiled/raw/shared/2577ec69f9973ae9-quota-normalize.js +45 -1
  42. package/src/tui-compiled/raw/shared/30f5bc480f31f51c-roster.js +172 -43
  43. package/src/tui-compiled/raw/shared/375d9cca2def037d-private-files.js +49 -3
  44. package/src/tui-compiled/raw/shared/39c3cb05738fcf6d-projection.js +3 -1
  45. package/src/tui-compiled/raw/shared/42ae93ab554fcec2-open-url.js +7 -9
  46. package/src/tui-compiled/raw/shared/4825e03209d6ae3e-with-lock.js +2 -0
  47. package/src/tui-compiled/raw/shared/4f36d333d081d040-merge.js +17 -3
  48. package/src/tui-compiled/raw/shared/754d6017f8e419cf-builtins.js +95 -13
  49. package/src/tui-compiled/raw/shared/81dddd203f1b92a3-quota-writer.js +253 -0
  50. package/src/tui-compiled/raw/shared/905bffc0220f43d0-map.js +31 -6
  51. package/src/tui-compiled/raw/shared/abd062d633e29fd2-pool-routing.js +116 -12
  52. package/src/tui-compiled/raw/shared/b9588ad4725c1d10-enrollment.js +27 -0
  53. package/src/tui-compiled/raw/shared/bfbdd0f9aae56b47-pool-quota.js +15 -3
  54. package/src/tui-compiled/raw/shared/d0f0b6be200311af-insula.js +64 -2
  55. package/src/tui-compiled/raw/shared/d5a8f1061ee2f114-index.js +2 -2
  56. package/src/tui-compiled/raw/shared/dbc61cd405941828-accounts.js +5 -4
  57. package/src/tui-compiled/raw/shared/dc9290c2a7552ba6-watch.js +2 -1
  58. package/src/tui-compiled/raw/shared/e8d3c8da776ef9cd-index.js +2 -1
  59. package/src/tui-compiled/raw/sidebar-state.js +32 -3
  60. package/src/tui-compiled/raw/tui/v2-dialog.js +2 -1
  61. package/src/tui-compiled/raw/tui.tsx +170 -26
  62. package/src/tui-compiled/runtime/shared/0332701351b3eeec-format.js +50 -5
  63. package/src/tui-compiled/runtime/shared/0f77ebc3c914c9c6-custody.js +70 -1
  64. package/src/tui-compiled/runtime/shared/169b2b4bf30909bc-consumer.js +104 -62
  65. package/src/tui-compiled/runtime/shared/2577ec69f9973ae9-quota-normalize.js +45 -1
  66. package/src/tui-compiled/runtime/shared/30f5bc480f31f51c-roster.js +172 -43
  67. package/src/tui-compiled/runtime/shared/375d9cca2def037d-private-files.js +49 -3
  68. package/src/tui-compiled/runtime/shared/39c3cb05738fcf6d-projection.js +3 -1
  69. package/src/tui-compiled/runtime/shared/42ae93ab554fcec2-open-url.js +7 -9
  70. package/src/tui-compiled/runtime/shared/4825e03209d6ae3e-with-lock.js +2 -0
  71. package/src/tui-compiled/runtime/shared/4f36d333d081d040-merge.js +17 -3
  72. package/src/tui-compiled/runtime/shared/754d6017f8e419cf-builtins.js +95 -13
  73. package/src/tui-compiled/runtime/shared/81dddd203f1b92a3-quota-writer.js +253 -0
  74. package/src/tui-compiled/runtime/shared/905bffc0220f43d0-map.js +31 -6
  75. package/src/tui-compiled/runtime/shared/abd062d633e29fd2-pool-routing.js +116 -12
  76. package/src/tui-compiled/runtime/shared/b9588ad4725c1d10-enrollment.js +27 -0
  77. package/src/tui-compiled/runtime/shared/bfbdd0f9aae56b47-pool-quota.js +15 -3
  78. package/src/tui-compiled/runtime/shared/d0f0b6be200311af-insula.js +64 -2
  79. package/src/tui-compiled/runtime/shared/d5a8f1061ee2f114-index.js +2 -2
  80. package/src/tui-compiled/runtime/shared/dbc61cd405941828-accounts.js +5 -4
  81. package/src/tui-compiled/runtime/shared/dc9290c2a7552ba6-watch.js +2 -1
  82. package/src/tui-compiled/runtime/shared/e8d3c8da776ef9cd-index.js +2 -1
  83. package/src/tui-compiled/runtime/sidebar-state.js +32 -3
  84. package/src/tui-compiled/runtime/tui/v2-dialog.js +2 -1
  85. package/src/tui-compiled/runtime/tui.js +350 -219
  86. package/dist/index-1mbgsxsr.js +0 -2
  87. package/dist/index-4v2fs42x.js +0 -65
  88. package/dist/index-8x1aj7q3.js +0 -2
  89. package/dist/index-ex6nx3mq.js +0 -2
  90. package/dist/index-psjyexj3.js +0 -69
  91. package/dist/index-tn8x5tz8.js +0 -90
  92. package/dist/token-util-cf0nyh7n.js +0 -1
@@ -13,12 +13,12 @@ import { readFileSync } from "node:fs";
13
13
  import { dirname, join } from "node:path";
14
14
  import { fileURLToPath } from "node:url";
15
15
  import { formatQuota, quotaTextParts, quotaWindowParts } from "./shared/d5a8f1061ee2f114-index.js";
16
- import { createEffect, createSignal, For, Index, onCleanup, Show } from "opentui:runtime-module:solid-js";
16
+ import { createEffect, createMemo, createSignal, For, Index, onCleanup, Show } from "opentui:runtime-module:solid-js";
17
17
  import { createLogger } from "./logger.js";
18
18
  import { isNotifyPayload } from "./rpc/protocol.js";
19
19
  import { createRpcClient } from "./rpc/rpc-client.js";
20
20
  import { resolveRpcDir } from "./rpc/rpc-dir.js";
21
- import { computeQuotaPacing, DEFAULT_SIDEBAR_STATE, displayWidth, fitCollapsedLabel, getCollapsedAccountLines, getCollapsedQuotaSummary, getPresentQuotaWindows, getSidebarState, resolveActiveAccount, resolveSessionSidebarRouting, resolveSessionStickyAccount, sidebarQuotaProjection } from "./sidebar-state.js";
21
+ import { accountCreditsText, accountServesOnCredits, computeQuotaPacing, DEFAULT_SIDEBAR_STATE, displayWidth, fitCollapsedLabel, getCollapsedAccountLines, getCollapsedQuotaSummary, getPresentQuotaWindows, getSidebarState, resolveActiveAccount, resolveSessionSidebarRouting, resolveSessionStickyAccount, sidebarQuotaProjection } from "./sidebar-state.js";
22
22
  import { openCommandDialog } from "./tui/command-dialogs.js";
23
23
  import { setupTui } from "./tui/v2.js";
24
24
  import { computeEffectiveOrder, DEFAULT_SLOT_ORDER, PLUGIN_KEY, queueTuiPreferenceUpdate, readTuiPreferencesFile, resolveOpenaiAuthPrefs, watchTuiPreferences } from "./tui-preferences.js";
@@ -204,6 +204,53 @@ function StatRow(props) {
204
204
  })();
205
205
  }
206
206
 
207
+ // One of an account's own rows under its quota bars (budget amounts, prepaid
208
+ // credits, reset credits): muted label left, value right. Like the quota rows
209
+ // it stays on one line: it measures its own width and, when both do not fit,
210
+ // cuts only the label (with …), keeping one blank cell before the value.
211
+ function AccountMetaRow(props) {
212
+ const [width, setWidth] = createSignal(0);
213
+ let row;
214
+ const label = () => {
215
+ const columns = width();
216
+ if (columns <= 0) return props.label;
217
+ return fitCollapsedLabel(props.label, columns - displayWidth(props.value) - 1);
218
+ };
219
+ return (() => {
220
+ var _el$8 = _$createElement("box"),
221
+ _el$9 = _$createElement("text"),
222
+ _el$0 = _$createElement("text"),
223
+ _el$1 = _$createElement("b");
224
+ _$insertNode(_el$8, _el$9);
225
+ _$insertNode(_el$8, _el$0);
226
+ _$use(element => {
227
+ row = element;
228
+ }, _el$8);
229
+ _$setProp(_el$8, "onSizeChange", () => setWidth(row?.width ?? 0));
230
+ _$setProp(_el$8, "width", '100%');
231
+ _$setProp(_el$8, "flexDirection", 'row');
232
+ _$setProp(_el$8, "justifyContent", 'space-between');
233
+ _$setProp(_el$9, "wrapMode", 'none');
234
+ _$setProp(_el$9, "flexShrink", 1);
235
+ _$insert(_el$9, label);
236
+ _$insertNode(_el$0, _el$1);
237
+ _$setProp(_el$0, "wrapMode", 'none');
238
+ _$setProp(_el$0, "flexShrink", 0);
239
+ _$insert(_el$1, () => props.value);
240
+ _$effect(_p$ => {
241
+ var _v$5 = props.theme.textMuted,
242
+ _v$6 = props.theme.text;
243
+ _v$5 !== _p$.e && (_p$.e = _$setProp(_el$9, "fg", _v$5, _p$.e));
244
+ _v$6 !== _p$.t && (_p$.t = _$setProp(_el$0, "fg", _v$6, _p$.t));
245
+ return _p$;
246
+ }, {
247
+ e: undefined,
248
+ t: undefined
249
+ });
250
+ return _el$8;
251
+ })();
252
+ }
253
+
207
254
  // One account in the collapsed view: label left; narrow quota text and the
208
255
  // status dot right (red ⊘ when killed). The session's account keeps the
209
256
  // usage tone; other accounts, and any account whose reading is stale, are
@@ -222,65 +269,65 @@ function CollapsedAccountRow(props) {
222
269
  return fitCollapsedLabel(props.line.name, columns - value - 1);
223
270
  };
224
271
  return (() => {
225
- var _el$8 = _$createElement("box"),
226
- _el$9 = _$createElement("text");
227
- _$insertNode(_el$8, _el$9);
272
+ var _el$10 = _$createElement("box"),
273
+ _el$11 = _$createElement("text");
274
+ _$insertNode(_el$10, _el$11);
228
275
  _$use(element => {
229
276
  row = element;
230
- }, _el$8);
231
- _$setProp(_el$8, "onSizeChange", () => setWidth(row?.width ?? 0));
232
- _$setProp(_el$8, "width", '100%');
233
- _$setProp(_el$8, "flexDirection", 'row');
234
- _$setProp(_el$8, "justifyContent", 'space-between');
235
- _$setProp(_el$9, "wrapMode", 'none');
236
- _$setProp(_el$9, "flexShrink", 1);
237
- _$insert(_el$9, label);
238
- _$insert(_el$8, _$createComponent(Show, {
277
+ }, _el$10);
278
+ _$setProp(_el$10, "onSizeChange", () => setWidth(row?.width ?? 0));
279
+ _$setProp(_el$10, "width", '100%');
280
+ _$setProp(_el$10, "flexDirection", 'row');
281
+ _$setProp(_el$10, "justifyContent", 'space-between');
282
+ _$setProp(_el$11, "wrapMode", 'none');
283
+ _$setProp(_el$11, "flexShrink", 1);
284
+ _$insert(_el$11, label);
285
+ _$insert(_el$10, _$createComponent(Show, {
239
286
  get when() {
240
287
  return props.line.text !== null;
241
288
  },
242
289
  get fallback() {
243
290
  return (() => {
244
- var _el$12 = _$createElement("text");
245
- _$insertNode(_el$12, _$createTextNode(`—`));
246
- _$effect(_$p => _$setProp(_el$12, "fg", props.theme.textMuted, _$p));
247
- return _el$12;
291
+ var _el$16 = _$createElement("text");
292
+ _$insertNode(_el$16, _$createTextNode(`—`));
293
+ _$effect(_$p => _$setProp(_el$16, "fg", props.theme.textMuted, _$p));
294
+ return _el$16;
248
295
  })();
249
296
  },
250
297
  get children() {
251
- var _el$0 = _$createElement("box"),
252
- _el$11 = _$createElement("text");
253
- _$insertNode(_el$0, _el$11);
254
- _$setProp(_el$0, "flexDirection", 'row');
255
- _$setProp(_el$0, "flexShrink", 0);
256
- _$insert(_el$0, _$createComponent(Show, {
298
+ var _el$12 = _$createElement("box"),
299
+ _el$15 = _$createElement("text");
300
+ _$insertNode(_el$12, _el$15);
301
+ _$setProp(_el$12, "flexDirection", 'row');
302
+ _$setProp(_el$12, "flexShrink", 0);
303
+ _$insert(_el$12, _$createComponent(Show, {
257
304
  get when() {
258
305
  return !dim();
259
306
  },
260
307
  get fallback() {
261
308
  return (() => {
262
- var _el$14 = _$createElement("text");
263
- _$insert(_el$14, () => props.line.text);
264
- _$effect(_$p => _$setProp(_el$14, "fg", toneColor(props.theme, 'muted'), _$p));
265
- return _el$14;
309
+ var _el$18 = _$createElement("text");
310
+ _$insert(_el$18, () => props.line.text);
311
+ _$effect(_$p => _$setProp(_el$18, "fg", toneColor(props.theme, 'muted'), _$p));
312
+ return _el$18;
266
313
  })();
267
314
  },
268
315
  get children() {
269
- var _el$1 = _$createElement("text"),
270
- _el$10 = _$createElement("b");
271
- _$insertNode(_el$1, _el$10);
272
- _$insert(_el$10, () => props.line.text);
273
- _$effect(_$p => _$setProp(_el$1, "fg", toneColor(props.theme, props.tone), _$p));
274
- return _el$1;
316
+ var _el$13 = _$createElement("text"),
317
+ _el$14 = _$createElement("b");
318
+ _$insertNode(_el$13, _el$14);
319
+ _$insert(_el$14, () => props.line.text);
320
+ _$effect(_$p => _$setProp(_el$13, "fg", toneColor(props.theme, props.tone), _$p));
321
+ return _el$13;
275
322
  }
276
- }), _el$11);
277
- _$insert(_el$11, () => props.line.killed ? ' \u2298' : ' \u25cf');
278
- _$effect(_$p => _$setProp(_el$11, "fg", toneColor(props.theme, props.line.killed ? 'err' : dim() ? 'muted' : props.tone), _$p));
279
- return _el$0;
323
+ }), _el$15);
324
+ _$insert(_el$15, () => props.line.killed ? ' \u2298' : ' \u25cf');
325
+ _$effect(_$p => _$setProp(_el$15, "fg", toneColor(props.theme, props.line.killed ? 'err' : dim() ? 'muted' : props.tone), _$p));
326
+ return _el$12;
280
327
  }
281
328
  }), null);
282
- _$effect(_$p => _$setProp(_el$9, "fg", toneColor(props.theme, dim() ? 'muted' : 'text'), _$p));
283
- return _el$8;
329
+ _$effect(_$p => _$setProp(_el$11, "fg", toneColor(props.theme, dim() ? 'muted' : 'text'), _$p));
330
+ return _el$10;
284
331
  })();
285
332
  }
286
333
  const SPEND_CONTROL_LABEL = 'credits';
@@ -399,12 +446,6 @@ export function getQuotaMetadataRows(state) {
399
446
  label: 'Plan',
400
447
  value: state.planType
401
448
  });
402
- if (state.credits !== undefined) {
403
- rows.push({
404
- label: 'Credits',
405
- value: String(state.credits)
406
- });
407
- }
408
449
  return rows;
409
450
  }
410
451
  function formatGroupedAmount(value) {
@@ -421,7 +462,15 @@ export function formatSpendControlAmounts(spendControl) {
421
462
  const unit = pluralizeUnit(spendControl.unit ?? 'unit', spendControl.limit);
422
463
  return `${formatGroupedAmount(spendControl.used)} / ${formatGroupedAmount(spendControl.limit)} ${unit}`;
423
464
  }
424
- export function getAccountMetadataRows(resetCredits, spendControl) {
465
+
466
+ /**
467
+ * The account's own rows under its quota bars: the workspace budget's amounts
468
+ * (`credits`), the prepaid credits (`prepaid`, worded by `accountCreditsText`)
469
+ * and the reset-credit count (`resets`), each only when known. While the
470
+ * account is serving the session on its prepaid credits (its free quota is
471
+ * used up), the prepaid row says so in place of its `prepaid` label.
472
+ */
473
+ export function getAccountMetadataRows(resetCredits, spendControl, prepaidCredits, servingOnCredits = false) {
425
474
  const rows = [];
426
475
  if (spendControl) {
427
476
  rows.push({
@@ -429,6 +478,12 @@ export function getAccountMetadataRows(resetCredits, spendControl) {
429
478
  value: formatSpendControlAmounts(spendControl)
430
479
  });
431
480
  }
481
+ if (prepaidCredits !== undefined) {
482
+ rows.push({
483
+ label: servingOnCredits ? 'serving on credits' : 'prepaid',
484
+ value: prepaidCredits
485
+ });
486
+ }
432
487
  if (resetCredits !== undefined) {
433
488
  rows.push({
434
489
  label: 'resets',
@@ -438,12 +493,74 @@ export function getAccountMetadataRows(resetCredits, spendControl) {
438
493
  return rows;
439
494
  }
440
495
 
496
+ /** The fewest cells a shortened quota bar keeps; below this it is dropped. */
497
+ const MIN_QUOTA_BAR_CELLS = 3;
498
+ /**
499
+ * How an expanded quota row fits on one line `columns` cells wide. The row is
500
+ * the padded label, the bar, the " N% left" figure and, at the right edge, the
501
+ * reset time. When it does not fit, the reset time goes first, then the bar
502
+ * shrinks (to no fewer than MIN_QUOTA_BAR_CELLS cells, else it is dropped).
503
+ * The label and the figure are never cut. `columns` of 0 means the row has not
504
+ * been measured yet, and everything is drawn.
505
+ */
506
+ export function fitQuotaRow(input) {
507
+ const {
508
+ columns,
509
+ barWidth
510
+ } = input;
511
+ const reset = input.resetText ? displayWidth(input.resetText) : 0;
512
+ if (columns <= 0) return {
513
+ barCells: barWidth,
514
+ showReset: reset > 0
515
+ };
516
+ const fixed = displayWidth(input.label) + displayWidth(input.figure);
517
+ // The reset sits at the right edge with at least one blank cell before it,
518
+ // so it never runs into the figure.
519
+ if (reset > 0 && fixed + barWidth + 1 + reset <= columns) return {
520
+ barCells: barWidth,
521
+ showReset: true
522
+ };
523
+ const room = columns - fixed;
524
+ if (room >= barWidth) return {
525
+ barCells: barWidth,
526
+ showReset: false
527
+ };
528
+ return {
529
+ barCells: room >= MIN_QUOTA_BAR_CELLS ? room : 0,
530
+ showReset: false
531
+ };
532
+ }
533
+
441
534
  // Quota window row: muted label left, tone-colored usage bar and shared quota text.
442
535
  // When pacing data is present, the bar
443
536
  // gains a pace segment and an off-pace window adds a muted subline with the
444
537
  // reserve/deficit delta and the projected runout.
538
+ // The row measures its own width and never wraps: fitQuotaRow decides what is
539
+ // left out when it is too narrow, and the pacing subline is cut with ….
445
540
  function QuotaRow(props) {
446
541
  const used = () => props.window?.usedPercent ?? 0;
542
+ const [columns, setColumns] = createSignal(0);
543
+ let row;
544
+ const label = () => props.label.padEnd(props.labelWidth);
545
+ const figure = () => ` ${props.text.slice(props.label.length + 1)}`;
546
+ const fit = () => fitQuotaRow({
547
+ columns: columns(),
548
+ label: label(),
549
+ barWidth: props.appearance.barWidth,
550
+ figure: figure(),
551
+ resetText: props.resetText
552
+ });
553
+ // Memos, so a new measured width that leaves the fit unchanged (as the
554
+ // first measurement usually does) does not rebuild the bar's text nodes:
555
+ // rebuilt nodes are blank until the next frame is drawn.
556
+ const barCells = createMemo(() => fit().barCells);
557
+ const showReset = createMemo(() => fit().showReset);
558
+ const fittedPaceLine = () => {
559
+ const line = paceLine();
560
+ if (line === null || columns() <= 0) return line;
561
+ // The subline is indented by the label column; cut it to the rest.
562
+ return fitCollapsedLabel(line, columns() - props.labelWidth);
563
+ };
447
564
  const paceLine = () => {
448
565
  const pacing = props.pacing;
449
566
  if (!pacing || pacing.state === 'on-pace') return null;
@@ -457,102 +574,117 @@ function QuotaRow(props) {
457
574
  },
458
575
  get fallback() {
459
576
  return (() => {
460
- var _el$23 = _$createElement("box"),
461
- _el$24 = _$createElement("text"),
462
- _el$25 = _$createElement("text");
463
- _$insertNode(_el$23, _el$24);
464
- _$insertNode(_el$23, _el$25);
465
- _$setProp(_el$23, "width", '100%');
466
- _$setProp(_el$23, "flexDirection", 'row');
467
- _$insert(_el$24, () => props.label.padEnd(props.labelWidth));
468
- _$insertNode(_el$25, _$createTextNode(`—`));
577
+ var _el$24 = _$createElement("box"),
578
+ _el$25 = _$createElement("text"),
579
+ _el$26 = _$createElement("text");
580
+ _$insertNode(_el$24, _el$25);
581
+ _$insertNode(_el$24, _el$26);
582
+ _$setProp(_el$24, "width", '100%');
583
+ _$setProp(_el$24, "flexDirection", 'row');
584
+ _$insert(_el$25, () => props.label.padEnd(props.labelWidth));
585
+ _$insertNode(_el$26, _$createTextNode(`—`));
469
586
  _$effect(_p$ => {
470
587
  var _v$9 = props.theme.textMuted,
471
588
  _v$0 = props.theme.textMuted;
472
- _v$9 !== _p$.e && (_p$.e = _$setProp(_el$24, "fg", _v$9, _p$.e));
473
- _v$0 !== _p$.t && (_p$.t = _$setProp(_el$25, "fg", _v$0, _p$.t));
589
+ _v$9 !== _p$.e && (_p$.e = _$setProp(_el$25, "fg", _v$9, _p$.e));
590
+ _v$0 !== _p$.t && (_p$.t = _$setProp(_el$26, "fg", _v$0, _p$.t));
474
591
  return _p$;
475
592
  }, {
476
593
  e: undefined,
477
594
  t: undefined
478
595
  });
479
- return _el$23;
596
+ return _el$24;
480
597
  })();
481
598
  },
482
599
  get children() {
483
600
  return [(() => {
484
- var _el$15 = _$createElement("box"),
485
- _el$16 = _$createElement("box"),
486
- _el$17 = _$createElement("text"),
487
- _el$18 = _$createElement("text");
488
- _$insertNode(_el$15, _el$16);
489
- _$setProp(_el$15, "width", '100%');
490
- _$setProp(_el$15, "flexDirection", 'row');
491
- _$setProp(_el$15, "justifyContent", 'space-between');
492
- _$insertNode(_el$16, _el$17);
493
- _$insertNode(_el$16, _el$18);
494
- _$setProp(_el$16, "flexDirection", 'row');
495
- _$insert(_el$17, () => props.label.padEnd(props.labelWidth));
496
- _$insert(_el$16, _$createComponent(For, {
601
+ var _el$19 = _$createElement("box"),
602
+ _el$20 = _$createElement("box"),
603
+ _el$21 = _$createElement("text"),
604
+ _el$22 = _$createElement("text");
605
+ _$insertNode(_el$19, _el$20);
606
+ _$use(element => {
607
+ row = element;
608
+ }, _el$19);
609
+ _$setProp(_el$19, "onSizeChange", () => setColumns(row?.width ?? 0));
610
+ _$setProp(_el$19, "width", '100%');
611
+ _$setProp(_el$19, "flexDirection", 'row');
612
+ _$setProp(_el$19, "justifyContent", 'space-between');
613
+ _$insertNode(_el$20, _el$21);
614
+ _$insertNode(_el$20, _el$22);
615
+ _$setProp(_el$20, "flexDirection", 'row');
616
+ _$setProp(_el$20, "flexShrink", 0);
617
+ _$setProp(_el$21, "wrapMode", 'none');
618
+ _$insert(_el$21, label);
619
+ _$insert(_el$20, _$createComponent(For, {
497
620
  get each() {
498
- return quotaBarSegments(used(), props.appearance, props.pacing);
621
+ return quotaBarSegments(used(), {
622
+ ...props.appearance,
623
+ barWidth: barCells()
624
+ }, props.pacing);
499
625
  },
500
626
  children: segment => (() => {
501
- var _el$27 = _$createElement("text");
502
- _$insert(_el$27, () => segment.text);
503
- _$effect(_$p => _$setProp(_el$27, "fg", toneColor(props.theme, segment.tone), _$p));
504
- return _el$27;
627
+ var _el$28 = _$createElement("text");
628
+ _$setProp(_el$28, "wrapMode", 'none');
629
+ _$insert(_el$28, () => segment.text);
630
+ _$effect(_$p => _$setProp(_el$28, "fg", toneColor(props.theme, segment.tone), _$p));
631
+ return _el$28;
505
632
  })()
506
- }), _el$18);
507
- _$insert(_el$18, () => ` ${props.text.slice(props.label.length + 1)}`);
508
- _$insert(_el$15, _$createComponent(Show, {
633
+ }), _el$22);
634
+ _$setProp(_el$22, "wrapMode", 'none');
635
+ _$insert(_el$22, figure);
636
+ _$insert(_el$19, _$createComponent(Show, {
509
637
  get when() {
510
- return props.resetText;
638
+ return showReset();
511
639
  },
512
640
  get children() {
513
- var _el$19 = _$createElement("text");
514
- _$insert(_el$19, () => props.resetText);
515
- _$effect(_$p => _$setProp(_el$19, "fg", props.theme.textMuted, _$p));
516
- return _el$19;
641
+ var _el$23 = _$createElement("text");
642
+ _$setProp(_el$23, "wrapMode", 'none');
643
+ _$setProp(_el$23, "flexShrink", 0);
644
+ _$insert(_el$23, () => props.resetText);
645
+ _$effect(_$p => _$setProp(_el$23, "fg", props.theme.textMuted, _$p));
646
+ return _el$23;
517
647
  }
518
648
  }), null);
519
649
  _$effect(_p$ => {
520
- var _v$5 = props.theme.textMuted,
521
- _v$6 = toneColor(props.theme, usageTone(used(), props.appearance));
522
- _v$5 !== _p$.e && (_p$.e = _$setProp(_el$17, "fg", _v$5, _p$.e));
523
- _v$6 !== _p$.t && (_p$.t = _$setProp(_el$18, "fg", _v$6, _p$.t));
650
+ var _v$7 = props.theme.textMuted,
651
+ _v$8 = toneColor(props.theme, usageTone(used(), props.appearance));
652
+ _v$7 !== _p$.e && (_p$.e = _$setProp(_el$21, "fg", _v$7, _p$.e));
653
+ _v$8 !== _p$.t && (_p$.t = _$setProp(_el$22, "fg", _v$8, _p$.t));
524
654
  return _p$;
525
655
  }, {
526
656
  e: undefined,
527
657
  t: undefined
528
658
  });
529
- return _el$15;
659
+ return _el$19;
530
660
  })(), _$createComponent(Show, {
531
661
  get when() {
532
- return paceLine();
662
+ return fittedPaceLine();
533
663
  },
534
- get children() {
535
- var _el$20 = _$createElement("box"),
536
- _el$21 = _$createElement("text"),
537
- _el$22 = _$createElement("text");
538
- _$insertNode(_el$20, _el$21);
539
- _$insertNode(_el$20, _el$22);
540
- _$setProp(_el$20, "width", '100%');
541
- _$setProp(_el$20, "flexDirection", 'row');
542
- _$insert(_el$21, () => ''.padEnd(props.labelWidth));
543
- _$insert(_el$22, paceLine);
664
+ keyed: true,
665
+ children: line => (() => {
666
+ var _el$29 = _$createElement("box"),
667
+ _el$30 = _$createElement("text"),
668
+ _el$31 = _$createElement("text");
669
+ _$insertNode(_el$29, _el$30);
670
+ _$insertNode(_el$29, _el$31);
671
+ _$setProp(_el$29, "width", '100%');
672
+ _$setProp(_el$29, "flexDirection", 'row');
673
+ _$insert(_el$30, () => ''.padEnd(props.labelWidth));
674
+ _$setProp(_el$31, "wrapMode", 'none');
675
+ _$insert(_el$31, line);
544
676
  _$effect(_p$ => {
545
- var _v$7 = props.theme.textMuted,
546
- _v$8 = toneColor(props.theme, props.pacing?.state === 'deficit' ? 'warn' : 'muted');
547
- _v$7 !== _p$.e && (_p$.e = _$setProp(_el$21, "fg", _v$7, _p$.e));
548
- _v$8 !== _p$.t && (_p$.t = _$setProp(_el$22, "fg", _v$8, _p$.t));
677
+ var _v$1 = props.theme.textMuted,
678
+ _v$10 = toneColor(props.theme, props.pacing?.state === 'deficit' ? 'warn' : 'muted');
679
+ _v$1 !== _p$.e && (_p$.e = _$setProp(_el$30, "fg", _v$1, _p$.e));
680
+ _v$10 !== _p$.t && (_p$.t = _$setProp(_el$31, "fg", _v$10, _p$.t));
549
681
  return _p$;
550
682
  }, {
551
683
  e: undefined,
552
684
  t: undefined
553
685
  });
554
- return _el$20;
555
- }
686
+ return _el$29;
687
+ })()
556
688
  })];
557
689
  }
558
690
  });
@@ -566,56 +698,56 @@ function AccountBlock(props) {
566
698
  const statusTone = () => props.killed ? 'err' : props.active ? 'ok' : 'muted';
567
699
  const rows = () => buildQuotaRowsForDisplay(props.quota, Date.now(), props.pacingEnabled, props.labelWidth);
568
700
  return (() => {
569
- var _el$28 = _$createElement("box"),
570
- _el$29 = _$createElement("box"),
571
- _el$30 = _$createElement("text"),
572
- _el$31 = _$createElement("b"),
573
- _el$32 = _$createElement("text"),
574
- _el$33 = _$createElement("b");
575
- _$insertNode(_el$28, _el$29);
576
- _$setProp(_el$28, "width", '100%');
577
- _$setProp(_el$28, "flexDirection", 'column');
578
- _$insertNode(_el$29, _el$30);
579
- _$insertNode(_el$29, _el$32);
580
- _$setProp(_el$29, "width", '100%');
581
- _$setProp(_el$29, "flexDirection", 'row');
582
- _$setProp(_el$29, "justifyContent", 'space-between');
583
- _$insertNode(_el$30, _el$31);
584
- _$insert(_el$31, () => props.name);
701
+ var _el$32 = _$createElement("box"),
702
+ _el$33 = _$createElement("box"),
703
+ _el$34 = _$createElement("text"),
704
+ _el$35 = _$createElement("b"),
705
+ _el$36 = _$createElement("text"),
706
+ _el$37 = _$createElement("b");
585
707
  _$insertNode(_el$32, _el$33);
586
- _$insert(_el$33, statusWord);
587
- _$insert(_el$28, _$createComponent(Show, {
708
+ _$setProp(_el$32, "width", '100%');
709
+ _$setProp(_el$32, "flexDirection", 'column');
710
+ _$insertNode(_el$33, _el$34);
711
+ _$insertNode(_el$33, _el$36);
712
+ _$setProp(_el$33, "width", '100%');
713
+ _$setProp(_el$33, "flexDirection", 'row');
714
+ _$setProp(_el$33, "justifyContent", 'space-between');
715
+ _$insertNode(_el$34, _el$35);
716
+ _$insert(_el$35, () => props.name);
717
+ _$insertNode(_el$36, _el$37);
718
+ _$insert(_el$37, statusWord);
719
+ _$insert(_el$32, _$createComponent(Show, {
588
720
  get when() {
589
721
  return props.vaultState;
590
722
  },
591
723
  get children() {
592
- var _el$34 = _$createElement("text");
593
- _$insert(_el$34, () => props.vaultState);
594
- _$effect(_$p => _$setProp(_el$34, "fg", props.theme.warning, _$p));
595
- return _el$34;
724
+ var _el$38 = _$createElement("text");
725
+ _$insert(_el$38, () => props.vaultState);
726
+ _$effect(_$p => _$setProp(_el$38, "fg", props.theme.warning, _$p));
727
+ return _el$38;
596
728
  }
597
729
  }), null);
598
- _$insert(_el$28, _$createComponent(Show, {
730
+ _$insert(_el$32, _$createComponent(Show, {
599
731
  get when() {
600
732
  return props.hostDisabled;
601
733
  },
602
734
  get children() {
603
- var _el$35 = _$createElement("text");
604
- _$insertNode(_el$35, _$createTextNode(`off in /openai`));
605
- _$effect(_$p => _$setProp(_el$35, "fg", props.theme.textMuted, _$p));
606
- return _el$35;
735
+ var _el$39 = _$createElement("text");
736
+ _$insertNode(_el$39, _$createTextNode(`off in /openai`));
737
+ _$effect(_$p => _$setProp(_el$39, "fg", props.theme.textMuted, _$p));
738
+ return _el$39;
607
739
  }
608
740
  }), null);
609
- _$insert(_el$28, _$createComponent(Show, {
741
+ _$insert(_el$32, _$createComponent(Show, {
610
742
  get when() {
611
743
  return isQuotaLoaded(props.quota);
612
744
  },
613
745
  get fallback() {
614
746
  return (() => {
615
- var _el$37 = _$createElement("text");
616
- _$insertNode(_el$37, _$createTextNode(`checking…`));
617
- _$effect(_$p => _$setProp(_el$37, "fg", props.theme.textMuted, _$p));
618
- return _el$37;
747
+ var _el$41 = _$createElement("text");
748
+ _$insertNode(_el$41, _$createTextNode(`checking…`));
749
+ _$effect(_$p => _$setProp(_el$41, "fg", props.theme.textMuted, _$p));
750
+ return _el$41;
619
751
  })();
620
752
  },
621
753
  get children() {
@@ -625,10 +757,10 @@ function AccountBlock(props) {
625
757
  },
626
758
  get fallback() {
627
759
  return (() => {
628
- var _el$39 = _$createElement("text");
629
- _$insertNode(_el$39, _$createTextNode(`—`));
630
- _$effect(_$p => _$setProp(_el$39, "fg", props.theme.textMuted, _$p));
631
- return _el$39;
760
+ var _el$43 = _$createElement("text");
761
+ _$insertNode(_el$43, _$createTextNode(`—`));
762
+ _$effect(_$p => _$setProp(_el$43, "fg", props.theme.textMuted, _$p));
763
+ return _el$43;
632
764
  })();
633
765
  },
634
766
  get children() {
@@ -667,7 +799,7 @@ function AccountBlock(props) {
667
799
  });
668
800
  }
669
801
  }), null);
670
- _$insert(_el$28, _$createComponent(For, {
802
+ _$insert(_el$32, _$createComponent(For, {
671
803
  get each() {
672
804
  return quotaTextParts(sidebarQuotaProjection(props.quota, Date.now()), {
673
805
  now: Date.now(),
@@ -675,17 +807,17 @@ function AccountBlock(props) {
675
807
  }).filter(part => part.startsWith('checked '));
676
808
  },
677
809
  children: age => (() => {
678
- var _el$41 = _$createElement("text");
679
- _$insert(_el$41, age);
680
- _$effect(_$p => _$setProp(_el$41, "fg", props.theme.textMuted, _$p));
681
- return _el$41;
810
+ var _el$45 = _$createElement("text");
811
+ _$insert(_el$45, age);
812
+ _$effect(_$p => _$setProp(_el$45, "fg", props.theme.textMuted, _$p));
813
+ return _el$45;
682
814
  })()
683
815
  }), null);
684
- _$insert(_el$28, _$createComponent(For, {
816
+ _$insert(_el$32, _$createComponent(For, {
685
817
  get each() {
686
- return getAccountMetadataRows(props.resetCredits, props.quota?.spendControl);
818
+ return getAccountMetadataRows(props.resetCredits, props.quota?.spendControl, accountCreditsText(props.quota), props.active && accountServesOnCredits(props.quota, Date.now()));
687
819
  },
688
- children: row => _$createComponent(StatRow, {
820
+ children: row => _$createComponent(AccountMetaRow, {
689
821
  get theme() {
690
822
  return props.theme;
691
823
  },
@@ -694,24 +826,23 @@ function AccountBlock(props) {
694
826
  },
695
827
  get value() {
696
828
  return row.value;
697
- },
698
- tone: "text"
829
+ }
699
830
  })
700
831
  }), null);
701
832
  _$effect(_p$ => {
702
- var _v$1 = props.marginTop ?? 0,
703
- _v$10 = props.theme.text,
704
- _v$11 = toneColor(props.theme, statusTone());
705
- _v$1 !== _p$.e && (_p$.e = _$setProp(_el$28, "marginTop", _v$1, _p$.e));
706
- _v$10 !== _p$.t && (_p$.t = _$setProp(_el$30, "fg", _v$10, _p$.t));
707
- _v$11 !== _p$.a && (_p$.a = _$setProp(_el$32, "fg", _v$11, _p$.a));
833
+ var _v$11 = props.marginTop ?? 0,
834
+ _v$12 = props.theme.text,
835
+ _v$13 = toneColor(props.theme, statusTone());
836
+ _v$11 !== _p$.e && (_p$.e = _$setProp(_el$32, "marginTop", _v$11, _p$.e));
837
+ _v$12 !== _p$.t && (_p$.t = _$setProp(_el$34, "fg", _v$12, _p$.t));
838
+ _v$13 !== _p$.a && (_p$.a = _$setProp(_el$36, "fg", _v$13, _p$.a));
708
839
  return _p$;
709
840
  }, {
710
841
  e: undefined,
711
842
  t: undefined,
712
843
  a: undefined
713
844
  });
714
- return _el$28;
845
+ return _el$32;
715
846
  })();
716
847
  }
717
848
 
@@ -874,33 +1005,33 @@ function QuotaSidebar(props) {
874
1005
  const refreshBackedOff = () => state().main?.refreshBackedOff === true;
875
1006
  const degraded = () => killedNames().length > 0 || quotaBackedOff() || refreshBackedOff();
876
1007
  return (() => {
877
- var _el$42 = _$createElement("box"),
878
- _el$43 = _$createElement("box"),
879
- _el$44 = _$createElement("box"),
880
- _el$45 = _$createElement("text"),
881
- _el$46 = _$createElement("b");
882
- _$insertNode(_el$42, _el$43);
883
- _$setProp(_el$42, "width", '100%');
884
- _$setProp(_el$42, "flexDirection", 'column');
885
- _$setProp(_el$42, "border", SINGLE_BORDER);
886
- _$setProp(_el$42, "paddingTop", 1);
887
- _$setProp(_el$42, "paddingBottom", 1);
888
- _$setProp(_el$42, "paddingLeft", 1);
889
- _$setProp(_el$42, "paddingRight", 1);
890
- _$insertNode(_el$43, _el$44);
891
- _$setProp(_el$43, "width", '100%');
892
- _$setProp(_el$43, "flexDirection", 'row');
893
- _$setProp(_el$43, "justifyContent", 'space-between');
894
- _$setProp(_el$43, "alignItems", 'center');
895
- _$setProp(_el$43, "onMouseDown", () => {
1008
+ var _el$46 = _$createElement("box"),
1009
+ _el$47 = _$createElement("box"),
1010
+ _el$48 = _$createElement("box"),
1011
+ _el$49 = _$createElement("text"),
1012
+ _el$50 = _$createElement("b");
1013
+ _$insertNode(_el$46, _el$47);
1014
+ _$setProp(_el$46, "width", '100%');
1015
+ _$setProp(_el$46, "flexDirection", 'column');
1016
+ _$setProp(_el$46, "border", SINGLE_BORDER);
1017
+ _$setProp(_el$46, "paddingTop", 1);
1018
+ _$setProp(_el$46, "paddingBottom", 1);
1019
+ _$setProp(_el$46, "paddingLeft", 1);
1020
+ _$setProp(_el$46, "paddingRight", 1);
1021
+ _$insertNode(_el$47, _el$48);
1022
+ _$setProp(_el$47, "width", '100%');
1023
+ _$setProp(_el$47, "flexDirection", 'row');
1024
+ _$setProp(_el$47, "justifyContent", 'space-between');
1025
+ _$setProp(_el$47, "alignItems", 'center');
1026
+ _$setProp(_el$47, "onMouseDown", () => {
896
1027
  if (hasData()) props.controller.toggleCollapsed();
897
1028
  });
898
- _$insertNode(_el$44, _el$45);
899
- _$setProp(_el$44, "paddingLeft", 1);
900
- _$setProp(_el$44, "paddingRight", 1);
901
- _$insertNode(_el$45, _el$46);
902
- _$insert(_el$46, headerLabel);
903
- _$insert(_el$43, _$createComponent(Show, {
1029
+ _$insertNode(_el$48, _el$49);
1030
+ _$setProp(_el$48, "paddingLeft", 1);
1031
+ _$setProp(_el$48, "paddingRight", 1);
1032
+ _$insertNode(_el$49, _el$50);
1033
+ _$insert(_el$50, headerLabel);
1034
+ _$insert(_el$47, _$createComponent(Show, {
904
1035
  get when() {
905
1036
  return degraded();
906
1037
  },
@@ -910,36 +1041,36 @@ function QuotaSidebar(props) {
910
1041
  return prefs().header.showVersion && PLUGIN_VERSION !== '';
911
1042
  },
912
1043
  get children() {
913
- var _el$51 = _$createElement("text");
914
- _$insert(_el$51, `v${PLUGIN_VERSION}`);
915
- _$effect(_$p => _$setProp(_el$51, "fg", theme().textMuted, _$p));
916
- return _el$51;
1044
+ var _el$55 = _$createElement("text");
1045
+ _$insert(_el$55, `v${PLUGIN_VERSION}`);
1046
+ _$effect(_$p => _$setProp(_el$55, "fg", theme().textMuted, _$p));
1047
+ return _el$55;
917
1048
  }
918
1049
  });
919
1050
  },
920
1051
  get children() {
921
- var _el$47 = _$createElement("box"),
922
- _el$48 = _$createElement("text"),
923
- _el$49 = _$createElement("b");
924
- _$insertNode(_el$47, _el$48);
925
- _$setProp(_el$47, "paddingLeft", 1);
926
- _$setProp(_el$47, "paddingRight", 1);
927
- _$insertNode(_el$48, _el$49);
928
- _$insertNode(_el$49, _$createTextNode(`LIMITED`));
1052
+ var _el$51 = _$createElement("box"),
1053
+ _el$52 = _$createElement("text"),
1054
+ _el$53 = _$createElement("b");
1055
+ _$insertNode(_el$51, _el$52);
1056
+ _$setProp(_el$51, "paddingLeft", 1);
1057
+ _$setProp(_el$51, "paddingRight", 1);
1058
+ _$insertNode(_el$52, _el$53);
1059
+ _$insertNode(_el$53, _$createTextNode(`LIMITED`));
929
1060
  _$effect(_p$ => {
930
- var _v$12 = theme().warning,
931
- _v$13 = theme().background;
932
- _v$12 !== _p$.e && (_p$.e = _$setProp(_el$47, "backgroundColor", _v$12, _p$.e));
933
- _v$13 !== _p$.t && (_p$.t = _$setProp(_el$48, "fg", _v$13, _p$.t));
1061
+ var _v$14 = theme().warning,
1062
+ _v$15 = theme().background;
1063
+ _v$14 !== _p$.e && (_p$.e = _$setProp(_el$51, "backgroundColor", _v$14, _p$.e));
1064
+ _v$15 !== _p$.t && (_p$.t = _$setProp(_el$52, "fg", _v$15, _p$.t));
934
1065
  return _p$;
935
1066
  }, {
936
1067
  e: undefined,
937
1068
  t: undefined
938
1069
  });
939
- return _el$47;
1070
+ return _el$51;
940
1071
  }
941
1072
  }), null);
942
- _$insert(_el$42, _$createComponent(Show, {
1073
+ _$insert(_el$46, _$createComponent(Show, {
943
1074
  get when() {
944
1075
  return _$memo(() => !!collapsed())() && hasData();
945
1076
  },
@@ -962,7 +1093,7 @@ function QuotaSidebar(props) {
962
1093
  });
963
1094
  }
964
1095
  }), null);
965
- _$insert(_el$42, _$createComponent(Show, {
1096
+ _$insert(_el$46, _$createComponent(Show, {
966
1097
  get when() {
967
1098
  return !collapsed() || !hasData();
968
1099
  },
@@ -973,14 +1104,14 @@ function QuotaSidebar(props) {
973
1104
  },
974
1105
  get fallback() {
975
1106
  return (() => {
976
- var _el$52 = _$createElement("box"),
977
- _el$53 = _$createElement("text");
978
- _$insertNode(_el$52, _el$53);
979
- _$setProp(_el$52, "marginTop", 1);
980
- _$setProp(_el$52, "width", '100%');
981
- _$insertNode(_el$53, _$createTextNode(`Waiting for quota…`));
982
- _$effect(_$p => _$setProp(_el$53, "fg", theme().textMuted, _$p));
983
- return _el$52;
1107
+ var _el$56 = _$createElement("box"),
1108
+ _el$57 = _$createElement("text");
1109
+ _$insertNode(_el$56, _el$57);
1110
+ _$setProp(_el$56, "marginTop", 1);
1111
+ _$setProp(_el$56, "width", '100%');
1112
+ _$insertNode(_el$57, _$createTextNode(`Waiting for quota…`));
1113
+ _$effect(_$p => _$setProp(_el$57, "fg", theme().textMuted, _$p));
1114
+ return _el$56;
984
1115
  })();
985
1116
  },
986
1117
  get children() {
@@ -1227,19 +1358,19 @@ function QuotaSidebar(props) {
1227
1358
  }
1228
1359
  }), null);
1229
1360
  _$effect(_p$ => {
1230
- var _v$14 = theme().borderActive,
1231
- _v$15 = theme().accent,
1232
- _v$16 = theme().background;
1233
- _v$14 !== _p$.e && (_p$.e = _$setProp(_el$42, "borderColor", _v$14, _p$.e));
1234
- _v$15 !== _p$.t && (_p$.t = _$setProp(_el$44, "backgroundColor", _v$15, _p$.t));
1235
- _v$16 !== _p$.a && (_p$.a = _$setProp(_el$45, "fg", _v$16, _p$.a));
1361
+ var _v$16 = theme().borderActive,
1362
+ _v$17 = theme().accent,
1363
+ _v$18 = theme().background;
1364
+ _v$16 !== _p$.e && (_p$.e = _$setProp(_el$46, "borderColor", _v$16, _p$.e));
1365
+ _v$17 !== _p$.t && (_p$.t = _$setProp(_el$48, "backgroundColor", _v$17, _p$.t));
1366
+ _v$18 !== _p$.a && (_p$.a = _$setProp(_el$49, "fg", _v$18, _p$.a));
1236
1367
  return _p$;
1237
1368
  }, {
1238
1369
  e: undefined,
1239
1370
  t: undefined,
1240
1371
  a: undefined
1241
1372
  });
1242
- return _el$42;
1373
+ return _el$46;
1243
1374
  })();
1244
1375
  }
1245
1376
  const tui = async api => {