opencode-usage 0.4.1 → 0.4.3
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/index.js +278 -160
- package/dist/index.js.map +4 -4
- package/package.json +5 -5
package/dist/index.js
CHANGED
|
@@ -28192,6 +28192,86 @@ import { join as join4 } from "path";
|
|
|
28192
28192
|
var isBun2 = typeof globalThis.Bun !== "undefined";
|
|
28193
28193
|
var CODEX_API_URL = "https://chatgpt.com/backend-api/wham/usage";
|
|
28194
28194
|
var CODEX_AUTH_PATH = join4(homedir3(), ".codex", "auth.json");
|
|
28195
|
+
var CODEX_MULTI_AUTH_DEFAULT_STORE_PATH = join4(homedir3(), ".config", "oc-codex-multi-account", "accounts.json");
|
|
28196
|
+
var CODEX_MULTI_AUTH_LEGACY_STORE_PATH = join4(homedir3(), ".config", "opencode-multi-auth", "accounts.json");
|
|
28197
|
+
var CODEX_MULTI_AUTH_STORE_FILE_ENV = "OPENCODE_MULTI_AUTH_STORE_FILE";
|
|
28198
|
+
var CODEX_MULTI_AUTH_STORE_DIR_ENV = "OPENCODE_MULTI_AUTH_STORE_DIR";
|
|
28199
|
+
function getCodexMultiAuthStorePaths() {
|
|
28200
|
+
const explicitFile = process.env[CODEX_MULTI_AUTH_STORE_FILE_ENV]?.trim();
|
|
28201
|
+
if (explicitFile)
|
|
28202
|
+
return [explicitFile];
|
|
28203
|
+
const explicitDir = process.env[CODEX_MULTI_AUTH_STORE_DIR_ENV]?.trim();
|
|
28204
|
+
if (explicitDir)
|
|
28205
|
+
return [join4(explicitDir, "accounts.json")];
|
|
28206
|
+
return [
|
|
28207
|
+
CODEX_MULTI_AUTH_DEFAULT_STORE_PATH,
|
|
28208
|
+
CODEX_MULTI_AUTH_LEGACY_STORE_PATH
|
|
28209
|
+
];
|
|
28210
|
+
}
|
|
28211
|
+
function windowToUsed(window) {
|
|
28212
|
+
if (!window)
|
|
28213
|
+
return;
|
|
28214
|
+
if (typeof window.limit !== "number" || typeof window.remaining !== "number") {
|
|
28215
|
+
return;
|
|
28216
|
+
}
|
|
28217
|
+
if (!Number.isFinite(window.limit) || !Number.isFinite(window.remaining)) {
|
|
28218
|
+
return;
|
|
28219
|
+
}
|
|
28220
|
+
if (window.limit <= 0)
|
|
28221
|
+
return;
|
|
28222
|
+
return Math.min(1, Math.max(0, (window.limit - window.remaining) / window.limit));
|
|
28223
|
+
}
|
|
28224
|
+
async function loadCodexMultiAuthQuota() {
|
|
28225
|
+
for (const storePath of getCodexMultiAuthStorePaths()) {
|
|
28226
|
+
try {
|
|
28227
|
+
const content = isBun2 ? await Bun.file(storePath).text() : await readFile2(storePath, "utf-8");
|
|
28228
|
+
const store = JSON.parse(content);
|
|
28229
|
+
if (!store.accounts || Object.keys(store.accounts).length === 0) {
|
|
28230
|
+
continue;
|
|
28231
|
+
}
|
|
28232
|
+
const results = [];
|
|
28233
|
+
for (const [alias, account] of Object.entries(store.accounts)) {
|
|
28234
|
+
const isActive = store.activeAlias === alias;
|
|
28235
|
+
const accountPrefix = isActive ? `${alias} [ACTIVE]` : alias;
|
|
28236
|
+
let hasAnyLimit = false;
|
|
28237
|
+
const usedFiveHour = windowToUsed(account.rateLimits?.fiveHour);
|
|
28238
|
+
if (usedFiveHour !== undefined) {
|
|
28239
|
+
hasAnyLimit = true;
|
|
28240
|
+
results.push({
|
|
28241
|
+
source: "codex",
|
|
28242
|
+
label: `${accountPrefix} - 5h Limit`,
|
|
28243
|
+
used: usedFiveHour,
|
|
28244
|
+
resetAt: typeof account.rateLimits?.fiveHour?.resetAt === "number" ? Math.floor(account.rateLimits.fiveHour.resetAt / 1000) : undefined
|
|
28245
|
+
});
|
|
28246
|
+
}
|
|
28247
|
+
const usedWeekly = windowToUsed(account.rateLimits?.weekly);
|
|
28248
|
+
if (usedWeekly !== undefined) {
|
|
28249
|
+
hasAnyLimit = true;
|
|
28250
|
+
results.push({
|
|
28251
|
+
source: "codex",
|
|
28252
|
+
label: `${accountPrefix} - Weekly`,
|
|
28253
|
+
used: usedWeekly,
|
|
28254
|
+
resetAt: typeof account.rateLimits?.weekly?.resetAt === "number" ? Math.floor(account.rateLimits.weekly.resetAt / 1000) : undefined
|
|
28255
|
+
});
|
|
28256
|
+
}
|
|
28257
|
+
if (!hasAnyLimit) {
|
|
28258
|
+
results.push({
|
|
28259
|
+
source: "codex",
|
|
28260
|
+
label: accountPrefix,
|
|
28261
|
+
used: 0,
|
|
28262
|
+
error: "No limit data yet"
|
|
28263
|
+
});
|
|
28264
|
+
}
|
|
28265
|
+
}
|
|
28266
|
+
if (results.length > 0) {
|
|
28267
|
+
return results;
|
|
28268
|
+
}
|
|
28269
|
+
} catch {
|
|
28270
|
+
continue;
|
|
28271
|
+
}
|
|
28272
|
+
}
|
|
28273
|
+
return null;
|
|
28274
|
+
}
|
|
28195
28275
|
async function readCodexAuthToken() {
|
|
28196
28276
|
try {
|
|
28197
28277
|
const content = isBun2 ? await Bun.file(CODEX_AUTH_PATH).text() : await readFile2(CODEX_AUTH_PATH, "utf-8");
|
|
@@ -28210,6 +28290,11 @@ async function resolveCodexToken(explicitToken) {
|
|
|
28210
28290
|
return readCodexAuthToken();
|
|
28211
28291
|
}
|
|
28212
28292
|
async function loadCodexQuota(token) {
|
|
28293
|
+
if (!token) {
|
|
28294
|
+
const multiAuthQuotas = await loadCodexMultiAuthQuota();
|
|
28295
|
+
if (multiAuthQuotas)
|
|
28296
|
+
return multiAuthQuotas;
|
|
28297
|
+
}
|
|
28213
28298
|
const resolvedToken = await resolveCodexToken(token);
|
|
28214
28299
|
if (!resolvedToken) {
|
|
28215
28300
|
return [
|
|
@@ -28602,7 +28687,7 @@ function QuotaPanel(props) {
|
|
|
28602
28687
|
return COLORS.accent.amber;
|
|
28603
28688
|
return COLORS.accent.teal;
|
|
28604
28689
|
};
|
|
28605
|
-
const formatResetTime = (resetAt) => {
|
|
28690
|
+
const formatResetTime = (resetAt, compact = false) => {
|
|
28606
28691
|
if (!resetAt)
|
|
28607
28692
|
return "";
|
|
28608
28693
|
const resetDate = new Date(resetAt * 1000);
|
|
@@ -28617,14 +28702,14 @@ function QuotaPanel(props) {
|
|
|
28617
28702
|
const hours = resetDate.getHours().toString().padStart(2, "0");
|
|
28618
28703
|
const mins = resetDate.getMinutes().toString().padStart(2, "0");
|
|
28619
28704
|
if (resetDate >= today && resetDate < tomorrow) {
|
|
28620
|
-
return `\u21BB today ${hours}:${mins}`;
|
|
28705
|
+
return compact ? `\u21BB ${hours}:${mins}` : `\u21BB today ${hours}:${mins}`;
|
|
28621
28706
|
}
|
|
28622
28707
|
if (resetDate >= tomorrow && resetDate < dayAfter) {
|
|
28623
|
-
return `\u21BB tomorrow ${hours}:${mins}`;
|
|
28708
|
+
return compact ? `\u21BB tmr ${hours}:${mins}` : `\u21BB tomorrow ${hours}:${mins}`;
|
|
28624
28709
|
}
|
|
28625
28710
|
const day = resetDate.getDate().toString().padStart(2, "0");
|
|
28626
28711
|
const month = (resetDate.getMonth() + 1).toString().padStart(2, "0");
|
|
28627
|
-
return `\u21BB ${day}.${month}. ${hours}:${mins}`;
|
|
28712
|
+
return compact ? `\u21BB ${day}.${month}` : `\u21BB ${day}.${month}. ${hours}:${mins}`;
|
|
28628
28713
|
};
|
|
28629
28714
|
const groupedQuotas = () => {
|
|
28630
28715
|
const groups = new Map;
|
|
@@ -28683,123 +28768,152 @@ function QuotaPanel(props) {
|
|
|
28683
28768
|
insert(_el$46, () => source.toUpperCase(), null);
|
|
28684
28769
|
insert(_el$43, createComponent2(For, {
|
|
28685
28770
|
get each() {
|
|
28686
|
-
|
|
28771
|
+
const entries = groupByAccount();
|
|
28772
|
+
if (!props.twoColumns) {
|
|
28773
|
+
return entries.map((entry) => [entry]);
|
|
28774
|
+
}
|
|
28775
|
+
const rows = [];
|
|
28776
|
+
for (let i = 0;i < entries.length; i += 2) {
|
|
28777
|
+
rows.push(entries.slice(i, i + 2));
|
|
28778
|
+
}
|
|
28779
|
+
return rows;
|
|
28687
28780
|
},
|
|
28688
|
-
children: (
|
|
28689
|
-
|
|
28690
|
-
|
|
28691
|
-
|
|
28692
|
-
|
|
28693
|
-
|
|
28694
|
-
|
|
28695
|
-
|
|
28696
|
-
|
|
28697
|
-
|
|
28698
|
-
|
|
28699
|
-
|
|
28700
|
-
|
|
28701
|
-
|
|
28702
|
-
|
|
28703
|
-
|
|
28704
|
-
|
|
28705
|
-
|
|
28706
|
-
|
|
28707
|
-
|
|
28708
|
-
|
|
28709
|
-
|
|
28710
|
-
|
|
28711
|
-
|
|
28712
|
-
|
|
28713
|
-
|
|
28714
|
-
|
|
28715
|
-
|
|
28716
|
-
|
|
28717
|
-
|
|
28718
|
-
|
|
28719
|
-
|
|
28720
|
-
|
|
28721
|
-
|
|
28722
|
-
|
|
28723
|
-
|
|
28724
|
-
|
|
28725
|
-
|
|
28726
|
-
|
|
28727
|
-
|
|
28728
|
-
|
|
28729
|
-
|
|
28730
|
-
|
|
28731
|
-
|
|
28732
|
-
|
|
28733
|
-
|
|
28734
|
-
|
|
28735
|
-
|
|
28736
|
-
|
|
28737
|
-
|
|
28738
|
-
|
|
28739
|
-
|
|
28740
|
-
|
|
28741
|
-
|
|
28742
|
-
|
|
28743
|
-
|
|
28744
|
-
|
|
28745
|
-
|
|
28746
|
-
|
|
28747
|
-
|
|
28748
|
-
|
|
28749
|
-
|
|
28750
|
-
|
|
28751
|
-
|
|
28752
|
-
|
|
28753
|
-
|
|
28754
|
-
|
|
28755
|
-
|
|
28756
|
-
|
|
28757
|
-
|
|
28758
|
-
|
|
28759
|
-
|
|
28760
|
-
|
|
28761
|
-
|
|
28762
|
-
|
|
28763
|
-
|
|
28764
|
-
|
|
28765
|
-
|
|
28766
|
-
|
|
28767
|
-
|
|
28768
|
-
|
|
28769
|
-
|
|
28770
|
-
|
|
28771
|
-
|
|
28772
|
-
|
|
28773
|
-
|
|
28774
|
-
|
|
28775
|
-
|
|
28776
|
-
|
|
28777
|
-
|
|
28778
|
-
|
|
28779
|
-
|
|
28780
|
-
|
|
28781
|
-
|
|
28782
|
-
|
|
28783
|
-
|
|
28784
|
-
|
|
28785
|
-
|
|
28786
|
-
|
|
28787
|
-
|
|
28788
|
-
|
|
28789
|
-
|
|
28790
|
-
|
|
28791
|
-
|
|
28792
|
-
|
|
28793
|
-
|
|
28781
|
+
children: (row) => (() => {
|
|
28782
|
+
var _el$48 = createElement("box");
|
|
28783
|
+
insert(_el$48, createComponent2(For, {
|
|
28784
|
+
each: row,
|
|
28785
|
+
children: ([accountName, accountQuotas]) => {
|
|
28786
|
+
const isActive = accountName.includes("[ACTIVE]");
|
|
28787
|
+
const cleanName = accountName.replace(" [ACTIVE]", "").trim();
|
|
28788
|
+
return (() => {
|
|
28789
|
+
var _el$49 = createElement("box"), _el$50 = createElement("box"), _el$51 = createElement("text");
|
|
28790
|
+
insertNode(_el$49, _el$50);
|
|
28791
|
+
setProp(_el$49, "flexDirection", "column");
|
|
28792
|
+
setProp(_el$49, "flexShrink", 0);
|
|
28793
|
+
setProp(_el$49, "marginBottom", 0);
|
|
28794
|
+
setProp(_el$49, "paddingTop", 0);
|
|
28795
|
+
setProp(_el$49, "paddingBottom", 0);
|
|
28796
|
+
setProp(_el$49, "paddingLeft", 1);
|
|
28797
|
+
setProp(_el$49, "paddingRight", 1);
|
|
28798
|
+
setProp(_el$49, "marginLeft", 0);
|
|
28799
|
+
setProp(_el$49, "marginRight", 0);
|
|
28800
|
+
setProp(_el$49, "border", true);
|
|
28801
|
+
setProp(_el$49, "borderStyle", "rounded");
|
|
28802
|
+
setProp(_el$49, "borderColor", isActive ? "#14b8a6" : "#334155");
|
|
28803
|
+
insertNode(_el$50, _el$51);
|
|
28804
|
+
setProp(_el$50, "paddingBottom", 0);
|
|
28805
|
+
setProp(_el$50, "flexShrink", 0);
|
|
28806
|
+
setProp(_el$51, "flexShrink", 0);
|
|
28807
|
+
setProp(_el$51, "wrapMode", "none");
|
|
28808
|
+
insert(_el$51, isActive ? [(() => {
|
|
28809
|
+
var _el$52 = createElement("span"), _el$53 = createTextNode(`\u25CF `);
|
|
28810
|
+
insertNode(_el$52, _el$53);
|
|
28811
|
+
insert(_el$52, cleanName, null);
|
|
28812
|
+
effect((_$p) => setProp(_el$52, "style", {
|
|
28813
|
+
fg: COLORS.accent.teal,
|
|
28814
|
+
bold: true
|
|
28815
|
+
}, _$p));
|
|
28816
|
+
return _el$52;
|
|
28817
|
+
})(), (() => {
|
|
28818
|
+
var _el$54 = createElement("span"), _el$55 = createTextNode(` (ACTIVE)`);
|
|
28819
|
+
insertNode(_el$54, _el$55);
|
|
28820
|
+
effect((_$p) => setProp(_el$54, "style", {
|
|
28821
|
+
fg: COLORS.accent.teal
|
|
28822
|
+
}, _$p));
|
|
28823
|
+
return _el$54;
|
|
28824
|
+
})()] : (() => {
|
|
28825
|
+
var _el$57 = createElement("span");
|
|
28826
|
+
insert(_el$57, cleanName);
|
|
28827
|
+
effect((_$p) => setProp(_el$57, "style", {
|
|
28828
|
+
fg: COLORS.text.primary,
|
|
28829
|
+
bold: true
|
|
28830
|
+
}, _$p));
|
|
28831
|
+
return _el$57;
|
|
28832
|
+
})());
|
|
28833
|
+
insert(_el$49, createComponent2(For, {
|
|
28834
|
+
each: accountQuotas,
|
|
28835
|
+
children: (quota) => {
|
|
28836
|
+
const rawDisplayLabel = quota.label.replace(accountName, "").replace(/^[\s-]+/, "").trim();
|
|
28837
|
+
const displayLabel = rawDisplayLabel || "Status";
|
|
28838
|
+
const compact = Boolean(props.twoColumns);
|
|
28839
|
+
const labelWidth = compact ? 12 : 15;
|
|
28840
|
+
const barWidth = compact ? 14 : 20;
|
|
28841
|
+
return createComponent2(Show, {
|
|
28842
|
+
get when() {
|
|
28843
|
+
return !quota.error;
|
|
28844
|
+
},
|
|
28845
|
+
get fallback() {
|
|
28846
|
+
return (() => {
|
|
28847
|
+
var _el$66 = createElement("box"), _el$67 = createElement("text"), _el$68 = createTextNode(`\u2717 `), _el$69 = createTextNode(`: `);
|
|
28848
|
+
insertNode(_el$66, _el$67);
|
|
28849
|
+
setProp(_el$66, "paddingLeft", 1);
|
|
28850
|
+
setProp(_el$66, "flexShrink", 0);
|
|
28851
|
+
insertNode(_el$67, _el$68);
|
|
28852
|
+
insertNode(_el$67, _el$69);
|
|
28853
|
+
insert(_el$67, displayLabel, _el$69);
|
|
28854
|
+
insert(_el$67, () => quota.error, null);
|
|
28855
|
+
effect((_$p) => setProp(_el$67, "fg", COLORS.accent.red, _$p));
|
|
28856
|
+
return _el$66;
|
|
28857
|
+
})();
|
|
28858
|
+
},
|
|
28859
|
+
get children() {
|
|
28860
|
+
var _el$58 = createElement("box"), _el$59 = createElement("text"), _el$60 = createElement("span"), _el$61 = createElement("span"), _el$62 = createElement("span"), _el$63 = createTextNode(` `), _el$64 = createElement("span"), _el$65 = createTextNode(` `);
|
|
28861
|
+
insertNode(_el$58, _el$59);
|
|
28862
|
+
setProp(_el$58, "paddingLeft", 1);
|
|
28863
|
+
setProp(_el$58, "flexShrink", 0);
|
|
28864
|
+
insertNode(_el$59, _el$60);
|
|
28865
|
+
insertNode(_el$59, _el$61);
|
|
28866
|
+
insertNode(_el$59, _el$62);
|
|
28867
|
+
insertNode(_el$59, _el$64);
|
|
28868
|
+
setProp(_el$59, "wrapMode", "none");
|
|
28869
|
+
insert(_el$60, () => padRight2(displayLabel, labelWidth));
|
|
28870
|
+
insert(_el$61, () => renderBar(quota.used, barWidth));
|
|
28871
|
+
insertNode(_el$62, _el$63);
|
|
28872
|
+
insert(_el$62, () => padLeft2((quota.used * 100).toFixed(0) + "%", 4), null);
|
|
28873
|
+
insertNode(_el$64, _el$65);
|
|
28874
|
+
insert(_el$64, () => formatResetTime(quota.resetAt, compact), null);
|
|
28875
|
+
effect((_p$) => {
|
|
28876
|
+
var _v$24 = {
|
|
28877
|
+
fg: COLORS.text.secondary
|
|
28878
|
+
}, _v$25 = {
|
|
28879
|
+
fg: getColor(quota.used)
|
|
28880
|
+
}, _v$26 = {
|
|
28881
|
+
fg: COLORS.text.primary
|
|
28882
|
+
}, _v$27 = {
|
|
28883
|
+
fg: COLORS.text.muted
|
|
28884
|
+
};
|
|
28885
|
+
_v$24 !== _p$.e && (_p$.e = setProp(_el$60, "style", _v$24, _p$.e));
|
|
28886
|
+
_v$25 !== _p$.t && (_p$.t = setProp(_el$61, "style", _v$25, _p$.t));
|
|
28887
|
+
_v$26 !== _p$.a && (_p$.a = setProp(_el$62, "style", _v$26, _p$.a));
|
|
28888
|
+
_v$27 !== _p$.o && (_p$.o = setProp(_el$64, "style", _v$27, _p$.o));
|
|
28889
|
+
return _p$;
|
|
28890
|
+
}, {
|
|
28891
|
+
e: undefined,
|
|
28892
|
+
t: undefined,
|
|
28893
|
+
a: undefined,
|
|
28894
|
+
o: undefined
|
|
28895
|
+
});
|
|
28896
|
+
return _el$58;
|
|
28897
|
+
}
|
|
28794
28898
|
});
|
|
28795
|
-
return _el$57;
|
|
28796
28899
|
}
|
|
28797
|
-
});
|
|
28798
|
-
|
|
28799
|
-
|
|
28800
|
-
|
|
28801
|
-
|
|
28802
|
-
|
|
28900
|
+
}), null);
|
|
28901
|
+
effect((_$p) => setProp(_el$49, "width", props.twoColumns ? "50%" : undefined, _$p));
|
|
28902
|
+
return _el$49;
|
|
28903
|
+
})();
|
|
28904
|
+
}
|
|
28905
|
+
}));
|
|
28906
|
+
effect((_p$) => {
|
|
28907
|
+
var _v$22 = props.twoColumns ? "row" : "column", _v$23 = props.twoColumns ? 1 : 0;
|
|
28908
|
+
_v$22 !== _p$.e && (_p$.e = setProp(_el$48, "flexDirection", _v$22, _p$.e));
|
|
28909
|
+
_v$23 !== _p$.t && (_p$.t = setProp(_el$48, "gap", _v$23, _p$.t));
|
|
28910
|
+
return _p$;
|
|
28911
|
+
}, {
|
|
28912
|
+
e: undefined,
|
|
28913
|
+
t: undefined
|
|
28914
|
+
});
|
|
28915
|
+
return _el$48;
|
|
28916
|
+
})()
|
|
28803
28917
|
}), null);
|
|
28804
28918
|
effect((_$p) => setProp(_el$45, "fg", COLORS.text.primary, _$p));
|
|
28805
28919
|
return _el$43;
|
|
@@ -28842,36 +28956,36 @@ function StatusBar(props) {
|
|
|
28842
28956
|
return days.toString();
|
|
28843
28957
|
};
|
|
28844
28958
|
return (() => {
|
|
28845
|
-
var _el$
|
|
28846
|
-
insertNode(_el$69, _el$70);
|
|
28847
|
-
setProp(_el$69, "height", 1);
|
|
28848
|
-
setProp(_el$69, "border-top", true);
|
|
28849
|
-
setProp(_el$69, "padding-left", 1);
|
|
28850
|
-
setProp(_el$69, "padding-right", 1);
|
|
28959
|
+
var _el$70 = createElement("box"), _el$71 = createElement("text"), _el$72 = createElement("span"), _el$73 = createTextNode(`\u27F3 `), _el$74 = createTextNode(` \u2502 DAYS: `), _el$76 = createElement("span"), _el$77 = createTextNode(` \u2502 `), _el$78 = createElement("span");
|
|
28851
28960
|
insertNode(_el$70, _el$71);
|
|
28852
|
-
|
|
28853
|
-
|
|
28854
|
-
|
|
28855
|
-
|
|
28856
|
-
setProp(_el$70, "wrapMode", "none");
|
|
28961
|
+
setProp(_el$70, "height", 1);
|
|
28962
|
+
setProp(_el$70, "border-top", true);
|
|
28963
|
+
setProp(_el$70, "padding-left", 1);
|
|
28964
|
+
setProp(_el$70, "padding-right", 1);
|
|
28857
28965
|
insertNode(_el$71, _el$72);
|
|
28858
|
-
|
|
28859
|
-
|
|
28860
|
-
insertNode(_el$
|
|
28966
|
+
insertNode(_el$71, _el$74);
|
|
28967
|
+
insertNode(_el$71, _el$76);
|
|
28968
|
+
insertNode(_el$71, _el$77);
|
|
28969
|
+
insertNode(_el$71, _el$78);
|
|
28970
|
+
setProp(_el$71, "wrapMode", "none");
|
|
28971
|
+
insertNode(_el$72, _el$73);
|
|
28972
|
+
insert(_el$72, () => formatTime(props.lastUpdate), null);
|
|
28973
|
+
insert(_el$76, daysLabel);
|
|
28974
|
+
insertNode(_el$78, createTextNode(`TAB:PANEL \u2191\u2193:SCROLL \u2190\u2192:DAYS t:TODAY w:WEEK m:MONTH a:ALL HOME:RESET ^C:EXIT`));
|
|
28861
28975
|
effect((_p$) => {
|
|
28862
|
-
var _v$
|
|
28976
|
+
var _v$28 = COLORS.border, _v$29 = COLORS.bg.accent, _v$30 = COLORS.text.secondary, _v$31 = {
|
|
28863
28977
|
fg: COLORS.accent.teal
|
|
28864
|
-
}, _v$
|
|
28978
|
+
}, _v$32 = {
|
|
28865
28979
|
fg: COLORS.accent.teal
|
|
28866
|
-
}, _v$
|
|
28980
|
+
}, _v$33 = {
|
|
28867
28981
|
fg: COLORS.text.muted
|
|
28868
28982
|
};
|
|
28869
|
-
_v$
|
|
28870
|
-
_v$
|
|
28871
|
-
_v$
|
|
28872
|
-
_v$
|
|
28873
|
-
_v$
|
|
28874
|
-
_v$
|
|
28983
|
+
_v$28 !== _p$.e && (_p$.e = setProp(_el$70, "border-color", _v$28, _p$.e));
|
|
28984
|
+
_v$29 !== _p$.t && (_p$.t = setProp(_el$70, "background-color", _v$29, _p$.t));
|
|
28985
|
+
_v$30 !== _p$.a && (_p$.a = setProp(_el$71, "fg", _v$30, _p$.a));
|
|
28986
|
+
_v$31 !== _p$.o && (_p$.o = setProp(_el$72, "style", _v$31, _p$.o));
|
|
28987
|
+
_v$32 !== _p$.i && (_p$.i = setProp(_el$76, "style", _v$32, _p$.i));
|
|
28988
|
+
_v$33 !== _p$.n && (_p$.n = setProp(_el$78, "style", _v$33, _p$.n));
|
|
28875
28989
|
return _p$;
|
|
28876
28990
|
}, {
|
|
28877
28991
|
e: undefined,
|
|
@@ -28881,7 +28995,7 @@ function StatusBar(props) {
|
|
|
28881
28995
|
i: undefined,
|
|
28882
28996
|
n: undefined
|
|
28883
28997
|
});
|
|
28884
|
-
return _el$
|
|
28998
|
+
return _el$70;
|
|
28885
28999
|
})();
|
|
28886
29000
|
}
|
|
28887
29001
|
function Dashboard(props) {
|
|
@@ -29037,16 +29151,17 @@ function Dashboard(props) {
|
|
|
29037
29151
|
}
|
|
29038
29152
|
});
|
|
29039
29153
|
const sideBySide = () => dimensions().width >= 168;
|
|
29154
|
+
const quotaTwoColumns = () => dimensions().width >= 150;
|
|
29040
29155
|
return (() => {
|
|
29041
|
-
var _el$
|
|
29042
|
-
insertNode(_el$
|
|
29043
|
-
setProp(_el$
|
|
29044
|
-
setProp(_el$
|
|
29045
|
-
setProp(_el$
|
|
29046
|
-
setProp(_el$
|
|
29047
|
-
setProp(_el$
|
|
29048
|
-
setProp(_el$
|
|
29049
|
-
insert(_el$
|
|
29156
|
+
var _el$80 = createElement("box"), _el$81 = createElement("box");
|
|
29157
|
+
insertNode(_el$80, _el$81);
|
|
29158
|
+
setProp(_el$80, "width", "100%");
|
|
29159
|
+
setProp(_el$80, "height", "100%");
|
|
29160
|
+
setProp(_el$80, "flex-direction", "column");
|
|
29161
|
+
setProp(_el$81, "flex-grow", 1);
|
|
29162
|
+
setProp(_el$81, "gap", 0);
|
|
29163
|
+
setProp(_el$81, "padding", 0);
|
|
29164
|
+
insert(_el$81, createComponent2(UsageTable, {
|
|
29050
29165
|
get stats() {
|
|
29051
29166
|
return displayedStats();
|
|
29052
29167
|
},
|
|
@@ -29069,10 +29184,10 @@ function Dashboard(props) {
|
|
|
29069
29184
|
return selectedPanel() === "usage";
|
|
29070
29185
|
},
|
|
29071
29186
|
get width() {
|
|
29072
|
-
return sideBySide() ?
|
|
29187
|
+
return sideBySide() ? "42%" : "100%";
|
|
29073
29188
|
}
|
|
29074
29189
|
}), null);
|
|
29075
|
-
insert(_el$
|
|
29190
|
+
insert(_el$81, createComponent2(QuotaPanel, {
|
|
29076
29191
|
get quotas() {
|
|
29077
29192
|
return quotas();
|
|
29078
29193
|
},
|
|
@@ -29080,10 +29195,13 @@ function Dashboard(props) {
|
|
|
29080
29195
|
return selectedPanel() === "quota";
|
|
29081
29196
|
},
|
|
29082
29197
|
get width() {
|
|
29083
|
-
return sideBySide() ?
|
|
29198
|
+
return sideBySide() ? "58%" : "100%";
|
|
29199
|
+
},
|
|
29200
|
+
get twoColumns() {
|
|
29201
|
+
return quotaTwoColumns();
|
|
29084
29202
|
}
|
|
29085
29203
|
}), null);
|
|
29086
|
-
insert(_el$
|
|
29204
|
+
insert(_el$80, createComponent2(StatusBar, {
|
|
29087
29205
|
get daysFilter() {
|
|
29088
29206
|
return daysFilter();
|
|
29089
29207
|
},
|
|
@@ -29092,15 +29210,15 @@ function Dashboard(props) {
|
|
|
29092
29210
|
}
|
|
29093
29211
|
}), null);
|
|
29094
29212
|
effect((_p$) => {
|
|
29095
|
-
var _v$
|
|
29096
|
-
_v$
|
|
29097
|
-
_v$
|
|
29213
|
+
var _v$34 = COLORS.bg.primary, _v$35 = sideBySide() ? "row" : "column";
|
|
29214
|
+
_v$34 !== _p$.e && (_p$.e = setProp(_el$80, "background-color", _v$34, _p$.e));
|
|
29215
|
+
_v$35 !== _p$.t && (_p$.t = setProp(_el$81, "flex-direction", _v$35, _p$.t));
|
|
29098
29216
|
return _p$;
|
|
29099
29217
|
}, {
|
|
29100
29218
|
e: undefined,
|
|
29101
29219
|
t: undefined
|
|
29102
29220
|
});
|
|
29103
|
-
return _el$
|
|
29221
|
+
return _el$80;
|
|
29104
29222
|
})();
|
|
29105
29223
|
}
|
|
29106
29224
|
async function runSolidDashboard(options) {
|
|
@@ -29245,4 +29363,4 @@ async function main2() {
|
|
|
29245
29363
|
}
|
|
29246
29364
|
main2().catch(console.error);
|
|
29247
29365
|
|
|
29248
|
-
//# debugId=
|
|
29366
|
+
//# debugId=7C5099D0AD55F0E564756E2164756E21
|