@codexhost/cli-darwin-x64 0.10.0 → 0.10.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.
@@ -16538,6 +16538,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16538
16538
  "settings",
16539
16539
  "close",
16540
16540
  "star",
16541
+ "github",
16541
16542
  "language",
16542
16543
  "connections",
16543
16544
  "accounts",
@@ -16574,6 +16575,16 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16574
16575
  settings: Settings,
16575
16576
  close: X,
16576
16577
  star: Star,
16578
+ github: [
16579
+ [
16580
+ "path",
16581
+ {
16582
+ fill: "currentColor",
16583
+ stroke: "none",
16584
+ d: "M12 .297C5.37.297 0 5.67 0 12.297c0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.043-1.61-4.043-1.61-.546-1.387-1.333-1.756-1.333-1.756-1.09-.745.083-.729.083-.729 1.205.084 1.838 1.237 1.838 1.237 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.467-1.334-5.467-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23a11.5 11.5 0 0 1 3-.405c1.02.005 2.045.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"
16585
+ }
16586
+ ]
16587
+ ],
16577
16588
  language: Languages,
16578
16589
  connections: PlugZap,
16579
16590
  accounts: Users,
@@ -16619,6 +16630,31 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16619
16630
  icon2.classList.add("codexhost-settings-icon");
16620
16631
  return icon2;
16621
16632
  }
16633
+ var SVG_NAMESPACE = "http://www.w3.org/2000/svg";
16634
+ function createRendererSettingsBrandGlyph(size = 20) {
16635
+ const svg = document.createElementNS(SVG_NAMESPACE, "svg");
16636
+ svg.setAttribute("viewBox", "12.8 12.2 40 40");
16637
+ svg.setAttribute("width", String(size));
16638
+ svg.setAttribute("height", String(size));
16639
+ svg.setAttribute("aria-hidden", "true");
16640
+ svg.setAttribute("focusable", "false");
16641
+ const ring = document.createElementNS(SVG_NAMESPACE, "path");
16642
+ ring.setAttribute("d", "M 44.55 23.97 A 14.35 14.35 0 1 0 44.55 40.43");
16643
+ ring.setAttribute("fill", "none");
16644
+ ring.setAttribute("stroke", "currentColor");
16645
+ ring.setAttribute("stroke-width", "4.4");
16646
+ ring.setAttribute("stroke-linecap", "round");
16647
+ const core = document.createElementNS(SVG_NAMESPACE, "rect");
16648
+ core.setAttribute("x", "27.6");
16649
+ core.setAttribute("y", "27");
16650
+ core.setAttribute("width", "10.4");
16651
+ core.setAttribute("height", "10.4");
16652
+ core.setAttribute("rx", "2.4");
16653
+ core.setAttribute("fill", "currentColor");
16654
+ svg.append(ring, core);
16655
+ svg.classList.add("codexhost-settings-icon");
16656
+ return svg;
16657
+ }
16622
16658
  function createRendererSettingsBrandIcon(size = 22) {
16623
16659
  const icon2 = document.createElement("img");
16624
16660
  icon2.src = codexhost_app_icon_default;
@@ -17817,7 +17853,7 @@ ${error51.stderrTail}`] : []
17817
17853
  locale: "en",
17818
17854
  title: "Settings",
17819
17855
  close: "Close settings",
17820
- starOnGitHub: "Give us a Star~",
17856
+ starOnGitHub: "Star to support",
17821
17857
  sectionsLabel: "Settings sections",
17822
17858
  generalSection: "General",
17823
17859
  otherSection: "Other",
@@ -17976,7 +18012,7 @@ ${error51.stderrTail}`] : []
17976
18012
  launchPathSaveError: "Could not save. Enter an existing absolute installation folder on this Host and check configuration permissions.",
17977
18013
  connectionOpenInstallation: "Show installation instructions",
17978
18014
  connectionOpenHarnessWeb: "Open DeepSeek Harness Web",
17979
- connectionDeepSeekTestedVersions: "Tested with DSH 0.1.2-rc.1, 0.1.5-rc.1 and 0.1.5-rc.2. Other versions may connect, but have not been verified.",
18015
+ connectionDeepSeekTestedVersions: "Supported DSH versions: 0.1.2-rc.1, 0.1.5-rc.1, 0.1.5-rc.2, 0.1.5-rc.3, 0.1.7-rc.1 and 0.1.7-rc.2. Other versions may connect after native protocol checks, but are not listed as supported.",
17980
18016
  connectionInstall: "Install",
17981
18017
  connectionInstallDescription: "This Harness was not detected.",
17982
18018
  connectionErrorTitle: "Connection check failed",
@@ -18033,6 +18069,8 @@ ${error51.stderrTail}`] : []
18033
18069
  updateCopyFailed: "Copy failed",
18034
18070
  updateDownloadFromReleases: "Download from GitHub Releases",
18035
18071
  updateDownloadWindowsInstaller: "Download Windows installer",
18072
+ updateStarCallout: "If CodexHost has helped you, please Star it on GitHub. It means a lot to us \u{1F449}",
18073
+ updateStarLink: "GitHub",
18036
18074
  aboutTagline: "Run Pi and other Harnesses in Codex Desktop",
18037
18075
  aboutParagraphs: Object.freeze([
18038
18076
  "We believe Codex Desktop offers the best desktop development experience available today.",
@@ -18056,7 +18094,7 @@ ${error51.stderrTail}`] : []
18056
18094
  locale: "zh-CN",
18057
18095
  title: "\u8BBE\u7F6E",
18058
18096
  close: "\u5173\u95ED\u8BBE\u7F6E",
18059
- starOnGitHub: "\u70B9\u4E2A Star~",
18097
+ starOnGitHub: "Star \u652F\u6301",
18060
18098
  sectionsLabel: "\u8BBE\u7F6E\u5206\u7C7B",
18061
18099
  generalSection: "\u901A\u7528",
18062
18100
  otherSection: "\u5176\u4ED6",
@@ -18215,7 +18253,7 @@ ${error51.stderrTail}`] : []
18215
18253
  launchPathSaveError: "\u4FDD\u5B58\u5931\u8D25\u3002\u8BF7\u586B\u5199\u6B64 Host \u4E0A\u5B9E\u9645\u5B58\u5728\u7684\u5B89\u88C5\u76EE\u5F55\u7EDD\u5BF9\u8DEF\u5F84\uFF0C\u5E76\u786E\u8BA4\u914D\u7F6E\u76EE\u5F55\u53EF\u5199\u3002",
18216
18254
  connectionOpenInstallation: "\u67E5\u770B\u5B89\u88C5\u6307\u5F15",
18217
18255
  connectionOpenHarnessWeb: "\u6253\u5F00 DeepSeek Harness Web",
18218
- connectionDeepSeekTestedVersions: "\u5DF2\u5728 DSH 0.1.2-rc.1\u30010.1.5-rc.1 \u548C 0.1.5-rc.2 \u4E0A\u6D4B\u8BD5\u3002\u5176\u4ED6\u7248\u672C\u53EF\u4EE5\u5C1D\u8BD5\u8FDE\u63A5\uFF0C\u4F46\u5C1A\u672A\u9A8C\u8BC1\u3002",
18256
+ connectionDeepSeekTestedVersions: "\u652F\u6301 DSH \u7248\u672C\uFF1A0.1.2-rc.1\u30010.1.5-rc.1\u30010.1.5-rc.2\u30010.1.5-rc.3\u30010.1.7-rc.1 \u548C 0.1.7-rc.2\u3002\u5176\u4ED6\u7248\u672C\u53EF\u4EE5\u5728\u901A\u8FC7\u539F\u751F\u534F\u8BAE\u68C0\u67E5\u540E\u5C1D\u8BD5\u8FDE\u63A5\uFF0C\u4F46\u5C1A\u672A\u5217\u5165\u652F\u6301\u5217\u8868\u3002",
18219
18257
  connectionInstall: "\u5B89\u88C5",
18220
18258
  connectionInstallDescription: "\u5C1A\u672A\u68C0\u6D4B\u5230\u8BE5 Harness\u3002",
18221
18259
  connectionErrorTitle: "\u8FDE\u63A5\u68C0\u67E5\u5931\u8D25",
@@ -18272,6 +18310,8 @@ ${error51.stderrTail}`] : []
18272
18310
  updateCopyFailed: "\u590D\u5236\u5931\u8D25",
18273
18311
  updateDownloadFromReleases: "\u524D\u5F80 GitHub Releases \u4E0B\u8F7D",
18274
18312
  updateDownloadWindowsInstaller: "\u4E0B\u8F7D Windows \u5B89\u88C5\u5305",
18313
+ updateStarCallout: "\u5982\u679C CodexHost \u5E2E\u5230\u4E86\u4F60\uFF0C\u8BF7\u5728 GitHub \u70B9\u4E2A Star\uFF0C\u8FD9\u5BF9\u6211\u4EEC\u610F\u4E49\u91CD\u5927 \u{1F449}",
18314
+ updateStarLink: "GitHub",
18275
18315
  aboutTagline: "\u5728 Codex Desktop \u4E2D\u8FD0\u884C Pi \u548C\u5176\u4ED6 Harness",
18276
18316
  aboutParagraphs: Object.freeze([
18277
18317
  "\u6211\u4EEC\u8BA4\u4E3A Codex Desktop \u63D0\u4F9B\u4E86\u76EE\u524D\u6700\u597D\u7684\u684C\u9762\u5F00\u53D1\u4EA4\u4E92\u4F53\u9A8C\u3002",
@@ -21752,7 +21792,7 @@ ${error51.stderrTail}`] : []
21752
21792
  ).filter(
21753
21793
  ({ memoizedProps: props }) => isRecord2(props) && "onLocalSubmitStart" in props && typeof props.submitDisabled === "boolean"
21754
21794
  );
21755
- return owners;
21795
+ return owners.filter((owner) => gateSubscriptions(owner).reserve.length > 0);
21756
21796
  }
21757
21797
  element = element.parentElement;
21758
21798
  }
@@ -26938,6 +26978,23 @@ ${error51.stderrTail}`] : []
26938
26978
  }
26939
26979
  });
26940
26980
  }
26981
+ function updateStarBanner(document2, messages) {
26982
+ const banner = document2.createElement("div");
26983
+ banner.className = "settings-update-star";
26984
+ const copy = document2.createElement("p");
26985
+ copy.className = "settings-update-star__copy";
26986
+ copy.textContent = messages.updateStarCallout;
26987
+ const link = document2.createElement("a");
26988
+ link.className = "settings-update-link settings-update-star__link";
26989
+ link.href = CODEXHOST_GITHUB_REPOSITORY_URL;
26990
+ link.target = "_blank";
26991
+ link.rel = "noopener noreferrer";
26992
+ const star = createRendererSettingsIcon("star", 14);
26993
+ star.classList.add("settings-update-star__mark");
26994
+ link.append(createRendererSettingsIcon("github", 15), messages.updateStarLink, star);
26995
+ banner.append(copy, link);
26996
+ return banner;
26997
+ }
26941
26998
  function updatesPage(messages, getClient) {
26942
26999
  return Object.freeze({
26943
27000
  id: "updates",
@@ -27044,7 +27101,8 @@ ${error51.stderrTail}`] : []
27044
27101
  controls.append(manualTitle, manualNpm, manualWindowsInstaller, actions);
27045
27102
  const notes = document2.createElement("div");
27046
27103
  notes.className = "settings-update-notes-section";
27047
- context.content.append(heading, metadata, panel, controls, notes);
27104
+ const starBanner = updateStarBanner(document2, messages);
27105
+ context.content.append(heading, metadata, panel, controls, starBanner, notes);
27048
27106
  const setManualFallback = (fallback) => {
27049
27107
  controls.className = !fallback && !windows ? "settings-update-controls is-quiet" : "settings-update-controls";
27050
27108
  manualNpmDescription.textContent = windows ? messages.updateWindowsNpmDescription : fallback ? messages.updateManualFallbackDescription : messages.updateManualNpmDescription;
@@ -27545,6 +27603,7 @@ ${error51.stderrTail}`] : []
27545
27603
  .settings-nav-star-link {
27546
27604
  margin-top: 0;
27547
27605
  color: var(--settings-text);
27606
+ font-weight: 600;
27548
27607
  text-decoration: none;
27549
27608
  }
27550
27609
 
@@ -29198,6 +29257,46 @@ ${error51.stderrTail}`] : []
29198
29257
  outline-offset: 2px;
29199
29258
  }
29200
29259
 
29260
+ .settings-update-star {
29261
+ display: flex;
29262
+ align-items: center;
29263
+ justify-content: space-between;
29264
+ flex-wrap: wrap;
29265
+ gap: 12px 16px;
29266
+ margin-top: 16px;
29267
+ padding: 12px 14px;
29268
+ background: var(--settings-panel);
29269
+ border: 1px solid var(--settings-border);
29270
+ border-radius: 12px;
29271
+ }
29272
+
29273
+ .settings-update-star__copy {
29274
+ margin: 0;
29275
+ min-width: min(100%, 16rem);
29276
+ flex: 1;
29277
+ color: var(--settings-focus);
29278
+ font-size: 13px;
29279
+ font-weight: 600;
29280
+ line-height: 20px;
29281
+ }
29282
+
29283
+ .settings-update-star__link {
29284
+ color: var(--settings-focus);
29285
+ background: light-dark(rgb(11 117 209 / 8%), rgb(102 170 249 / 12%));
29286
+ border-color: light-dark(rgb(11 117 209 / 22%), rgb(102 170 249 / 32%));
29287
+ }
29288
+
29289
+ .settings-update-star__link:hover {
29290
+ background: light-dark(rgb(11 117 209 / 14%), rgb(102 170 249 / 18%));
29291
+ border-color: light-dark(rgb(11 117 209 / 32%), rgb(102 170 249 / 42%));
29292
+ }
29293
+
29294
+ .settings-update-star__mark {
29295
+ color: light-dark(#f5b400, #ffd15c);
29296
+ fill: currentColor;
29297
+ stroke: none;
29298
+ }
29299
+
29201
29300
  .codexhost-settings-icon {
29202
29301
  display: block;
29203
29302
  flex: none;
@@ -30110,7 +30209,7 @@ ${error51.stderrTail}`] : []
30110
30209
  `;
30111
30210
 
30112
30211
  // src/settings/tailwind.css
30113
- var tailwind_default = '@layer properties, theme, base, components, utilities;\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-content:"";--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@layer theme{:root,:host{--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.relative{position:relative}.top-full{top:100%}.left-0{left:0}.z-20{z-index:20}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:0}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-7{margin-top:calc(var(--spacing) * 7)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-16{margin-top:calc(var(--spacing) * 16)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-1{margin-left:var(--spacing)}.ml-\\[45px\\]{margin-left:45px}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.list-item{display:list-item}.table{display:table}.size-1\\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-8{height:calc(var(--spacing) * 8)}.min-h-6{min-height:calc(var(--spacing) * 6)}.min-h-\\[60px\\]{min-height:60px}.w-9{width:calc(var(--spacing) * 9)}.w-14{width:calc(var(--spacing) * 14)}.w-80{width:calc(var(--spacing) * 80)}.w-full{width:100%}.w-px{width:1px}.max-w-64{max-width:calc(var(--spacing) * 64)}.min-w-0{min-width:0}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-help{cursor:help}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-disc{list-style-type:disc}.appearance-none{appearance:none}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0\\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.overflow-x-auto{overflow-x:auto}.rounded-\\[10px\\]{border-radius:10px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-settings-border{border-color:var(--settings-border)}.border-settings-divider{border-color:var(--settings-divider)}.bg-settings-panel{background-color:var(--settings-panel)}.bg-settings-subtle{background-color:var(--settings-subtle)}.bg-settings-surface{background-color:var(--settings-surface)}.bg-settings-surface-hover{background-color:var(--settings-surface-hover)}.bg-transparent{background-color:#0000}.p-0{padding:0}.p-4{padding:calc(var(--spacing) * 4)}.\\!px-0{padding-inline:0!important}.px-1{padding-inline:var(--spacing)}.px-2\\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pl-4{padding-left:calc(var(--spacing) * 4)}.\\!text-right{text-align:right!important}.text-left{text-align:left}.text-right{text-align:right}.align-top{vertical-align:top}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\\[11px\\]{font-size:11px}.text-\\[13px\\]{font-size:13px}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-7{--tw-leading:calc(var(--spacing) * 7);line-height:calc(var(--spacing) * 7)}.leading-\\[18px\\]{--tw-leading:18px;line-height:18px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.text-wrap{text-wrap:wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-pre-wrap{white-space:pre-wrap}.text-settings-muted{color:var(--settings-muted)}.text-settings-subtle{color:var(--settings-subtle)}.text-settings-text{color:var(--settings-text)}.lowercase{text-transform:lowercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.opacity-0{opacity:0}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\\[0_10px_30px_rgb\\(0_0_0\\/0\\.22\\)\\]{--tw-shadow:0 10px 30px var(--tw-shadow-color,#00000038);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-settings-border{--tw-ring-color:var(--settings-border)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.outline-none{--tw-outline-style:none;outline-style:none}.ring-inset{--tw-ring-inset:inset}.group-focus-within\\:visible:is(:where(.group):focus-within *){visibility:visible}.group-focus-within\\:opacity-100:is(:where(.group):focus-within *){opacity:1}@media (hover:hover){.group-hover\\:visible:is(:where(.group):hover *){visibility:visible}.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}}.group-data-\\[state\\=failed\\]\\/status\\:bg-settings-danger:is(:where(.group\\/status)[data-state=failed] *){background-color:var(--settings-danger)}.group-data-\\[state\\=unavailable\\]\\/status\\:bg-settings-warning:is(:where(.group\\/status)[data-state=unavailable] *){background-color:var(--settings-warning)}.marker\\:text-settings-subtle ::marker{color:var(--settings-subtle)}.marker\\:text-settings-subtle::marker{color:var(--settings-subtle)}.marker\\:text-settings-subtle ::-webkit-details-marker{color:var(--settings-subtle)}.marker\\:text-settings-subtle::-webkit-details-marker{color:var(--settings-subtle)}.before\\:absolute:before{content:var(--tw-content);position:absolute}.before\\:top-0\\.5:before{content:var(--tw-content);top:calc(var(--spacing) * .5)}.before\\:left-0\\.5:before{content:var(--tw-content);left:calc(var(--spacing) * .5)}.before\\:size-4:before{content:var(--tw-content);width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.before\\:rounded-full:before{content:var(--tw-content);border-radius:3.40282e38px}.before\\:bg-white:before{content:var(--tw-content);background-color:#fff}.before\\:shadow-\\[0_1px_2px_rgb\\(0_0_0\\/0\\.3\\)\\]:before{content:var(--tw-content);--tw-shadow:0 1px 2px var(--tw-shadow-color,#0000004d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.before\\:transition-transform:before{content:var(--tw-content);transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.first\\:border-t-0:first-child{border-top-style:var(--tw-border-style);border-top-width:0}.first-of-type\\:mt-0:first-of-type{margin-top:0}.checked\\:bg-settings-focus:checked{background-color:var(--settings-focus)}.checked\\:ring-transparent:checked{--tw-ring-color:transparent}.checked\\:before\\:translate-x-4:checked:before{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.focus-within\\:border-settings-focus:focus-within{border-color:var(--settings-focus)}@media (hover:hover){.hover\\:text-settings-text:hover{color:var(--settings-text)}}.focus-visible\\:text-settings-text:focus-visible{color:var(--settings-text)}.focus-visible\\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\\:outline-settings-focus:focus-visible{outline-color:var(--settings-focus)}.data-\\[invalid\\=true\\]\\:border-settings-danger[data-invalid=true]{border-color:var(--settings-danger)}.data-\\[invalid\\=true\\]\\:text-settings-danger[data-invalid=true],.data-\\[state\\=failed\\]\\:text-settings-danger[data-state=failed]{color:var(--settings-danger)}.data-\\[state\\=unavailable\\]\\:text-settings-warning[data-state=unavailable]{color:var(--settings-warning)}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@layer properties{\n *, ::before, ::after, ::backdrop{--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-alpha:100%;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-offset-width:0;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-drop-shadow-alpha:100%;--tw-content:"";--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}\n';
30212
+ var tailwind_default = '@layer properties, theme, base, components, utilities;\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-content:"";--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@layer theme{:root,:host{--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.relative{position:relative}.top-full{top:100%}.left-0{left:0}.z-20{z-index:20}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:0}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-7{margin-top:calc(var(--spacing) * 7)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-16{margin-top:calc(var(--spacing) * 16)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-1{margin-left:var(--spacing)}.ml-\\[45px\\]{margin-left:45px}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.list-item{display:list-item}.table{display:table}.size-1\\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-8{height:calc(var(--spacing) * 8)}.min-h-6{min-height:calc(var(--spacing) * 6)}.min-h-\\[60px\\]{min-height:60px}.w-9{width:calc(var(--spacing) * 9)}.w-14{width:calc(var(--spacing) * 14)}.w-80{width:calc(var(--spacing) * 80)}.w-full{width:100%}.w-px{width:1px}.max-w-64{max-width:calc(var(--spacing) * 64)}.min-w-0{min-width:0}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-help{cursor:help}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-disc{list-style-type:disc}.appearance-none{appearance:none}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0\\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.overflow-x-auto{overflow-x:auto}.rounded-\\[10px\\]{border-radius:10px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-settings-border{border-color:var(--settings-border)}.border-settings-divider{border-color:var(--settings-divider)}.bg-settings-panel{background-color:var(--settings-panel)}.bg-settings-subtle{background-color:var(--settings-subtle)}.bg-settings-surface{background-color:var(--settings-surface)}.bg-settings-surface-hover{background-color:var(--settings-surface-hover)}.bg-transparent{background-color:#0000}.p-0{padding:0}.p-4{padding:calc(var(--spacing) * 4)}.\\!px-0{padding-inline:0!important}.px-1{padding-inline:var(--spacing)}.px-2\\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pl-4{padding-left:calc(var(--spacing) * 4)}.\\!text-right{text-align:right!important}.text-left{text-align:left}.text-right{text-align:right}.align-top{vertical-align:top}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\\[11px\\]{font-size:11px}.text-\\[13px\\]{font-size:13px}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-7{--tw-leading:calc(var(--spacing) * 7);line-height:calc(var(--spacing) * 7)}.leading-\\[18px\\]{--tw-leading:18px;line-height:18px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.text-wrap{text-wrap:wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-pre-wrap{white-space:pre-wrap}.text-settings-muted{color:var(--settings-muted)}.text-settings-subtle{color:var(--settings-subtle)}.text-settings-text{color:var(--settings-text)}.lowercase{text-transform:lowercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.opacity-0{opacity:0}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\\[0_10px_30px_rgb\\(0_0_0\\/0\\.22\\)\\]{--tw-shadow:0 10px 30px var(--tw-shadow-color,#00000038);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-settings-border{--tw-ring-color:var(--settings-border)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.outline-none{--tw-outline-style:none;outline-style:none}.ring-inset{--tw-ring-inset:inset}.group-focus-within\\:visible:is(:where(.group):focus-within *){visibility:visible}.group-focus-within\\:opacity-100:is(:where(.group):focus-within *){opacity:1}@media (hover:hover){.group-hover\\:visible:is(:where(.group):hover *){visibility:visible}.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}}.group-data-\\[state\\=failed\\]\\/status\\:bg-settings-danger:is(:where(.group\\/status)[data-state=failed] *){background-color:var(--settings-danger)}.group-data-\\[state\\=unavailable\\]\\/status\\:bg-settings-warning:is(:where(.group\\/status)[data-state=unavailable] *){background-color:var(--settings-warning)}.marker\\:text-settings-subtle ::marker{color:var(--settings-subtle)}.marker\\:text-settings-subtle::marker{color:var(--settings-subtle)}.marker\\:text-settings-subtle ::-webkit-details-marker{color:var(--settings-subtle)}.marker\\:text-settings-subtle::-webkit-details-marker{color:var(--settings-subtle)}.before\\:absolute:before{content:var(--tw-content);position:absolute}.before\\:top-0\\.5:before{content:var(--tw-content);top:calc(var(--spacing) * .5)}.before\\:left-0\\.5:before{content:var(--tw-content);left:calc(var(--spacing) * .5)}.before\\:size-4:before{content:var(--tw-content);width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.before\\:rounded-full:before{content:var(--tw-content);border-radius:3.40282e38px}.before\\:bg-white:before{content:var(--tw-content);background-color:#fff}.before\\:shadow-\\[0_1px_2px_rgb\\(0_0_0\\/0\\.3\\)\\]:before{content:var(--tw-content);--tw-shadow:0 1px 2px var(--tw-shadow-color,#0000004d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.before\\:transition-transform:before{content:var(--tw-content);transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.first\\:border-t-0:first-child{border-top-style:var(--tw-border-style);border-top-width:0}.first-of-type\\:mt-0:first-of-type{margin-top:0}.checked\\:bg-settings-focus:checked{background-color:var(--settings-focus)}.checked\\:ring-transparent:checked{--tw-ring-color:transparent}.checked\\:before\\:translate-x-4:checked:before{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.focus-within\\:border-settings-focus:focus-within{border-color:var(--settings-focus)}@media (hover:hover){.hover\\:text-settings-text:hover{color:var(--settings-text)}}.focus-visible\\:text-settings-text:focus-visible{color:var(--settings-text)}.focus-visible\\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\\:outline-settings-focus:focus-visible{outline-color:var(--settings-focus)}.data-\\[invalid\\=true\\]\\:border-settings-danger[data-invalid=true]{border-color:var(--settings-danger)}.data-\\[invalid\\=true\\]\\:text-settings-danger[data-invalid=true],.data-\\[state\\=failed\\]\\:text-settings-danger[data-state=failed]{color:var(--settings-danger)}.data-\\[state\\=unavailable\\]\\:text-settings-warning[data-state=unavailable]{color:var(--settings-warning)}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@layer properties{\n *, ::before, ::after, ::backdrop{--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-alpha:100%;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-offset-width:0;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-drop-shadow-alpha:100%;--tw-content:"";--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}\n';
30114
30213
 
30115
30214
  // src/settings/shell.ts
30116
30215
  var SETTINGS_SHELL_ATTRIBUTE = "data-codexhost-settings-shell";
@@ -30266,7 +30365,7 @@ ${accounts_default}`;
30266
30365
  starLink.rel = "noopener noreferrer";
30267
30366
  starLink.setAttribute("aria-label", messages.starOnGitHub);
30268
30367
  starLink.title = messages.starOnGitHub;
30269
- starLink.append(createRendererSettingsIcon("star", 17));
30368
+ starLink.append(createRendererSettingsIcon("github", 17));
30270
30369
  const starLabel = ownerDocument.createElement("span");
30271
30370
  starLabel.textContent = messages.starOnGitHub;
30272
30371
  starLink.append(starLabel);
@@ -30366,160 +30465,117 @@ ${accounts_default}`;
30366
30465
 
30367
30466
  // src/settings/trigger.ts
30368
30467
  var SETTINGS_TRIGGER_ATTRIBUTE = "data-codexhost-settings-trigger";
30369
- var SETTINGS_HEADER_SURFACE_SELECTOR = '[data-testid="app-shell-header-context-menu-surface"]';
30370
- var SETTINGS_APPLICATION_HEADER_SELECTOR = 'header[data-pip-obstacle="app-shell-header"]';
30371
- var SETTINGS_HEADER_SLOT_SELECTOR = ':scope > [data-test-id="header-shell-slot"]';
30372
- var SETTINGS_HEADER_NATIVE_ACTION_GROUP_SELECTOR = ':scope > [data-app-shell-header-obstacle="true"]';
30468
+ var SETTINGS_RAIL_SELECTOR = "nav[data-app-navigation-rail]";
30469
+ var SETTINGS_RAIL_DESTINATION_SELECTOR = "[data-sidebar-destination]";
30373
30470
  var UPDATE_ACCENT = "#3b82f6";
30374
- function measuredBounds(element) {
30471
+ var RAIL_ICON_COLOR = "var(--color-text-secondary-ghost, rgba(26, 28, 31, 0.5))";
30472
+ var RAIL_ICON_HOVER_COLOR = "var(--color-text-secondary-ghost-hover, #1a1c1f)";
30473
+ var RAIL_ICON_HOVER_BACKGROUND = "var(--color-background-secondary-ghost-hover, rgba(26, 28, 31, 0.05))";
30474
+ function isVisible(element) {
30375
30475
  const bounds = element.getBoundingClientRect();
30376
- return {
30377
- left: bounds.left,
30378
- right: bounds.right,
30379
- top: bounds.top,
30380
- bottom: bounds.bottom,
30381
- width: bounds.width,
30382
- height: bounds.height
30383
- };
30384
- }
30385
- function findNativeHeaderActionGroup(header) {
30386
- const surface = header.querySelector(SETTINGS_HEADER_SURFACE_SELECTOR);
30387
- if (!surface) return null;
30388
- const groups = [
30389
- ...surface.querySelectorAll(SETTINGS_HEADER_NATIVE_ACTION_GROUP_SELECTOR)
30390
- ];
30391
- return groups.at(-1) ?? null;
30392
- }
30393
- function findRendererSettingsHeaderInsertionPoint(ownerDocument) {
30394
- const header = ownerDocument.querySelector(SETTINGS_APPLICATION_HEADER_SELECTOR);
30395
- if (!header) return null;
30396
- const headerBounds = measuredBounds(header);
30397
- if (headerBounds.width <= 0 || headerBounds.height <= 0) return null;
30398
- const nativeActionGroup = findNativeHeaderActionGroup(header);
30399
- if (nativeActionGroup?.parentElement) {
30400
- return { parent: nativeActionGroup.parentElement, before: nativeActionGroup };
30401
- }
30402
- const endSlot = [...header.querySelectorAll(SETTINGS_HEADER_SLOT_SELECTOR)].filter((slot) => {
30403
- const bounds = measuredBounds(slot);
30404
- return bounds.width > 0 && bounds.height > 0;
30405
- }).toSorted((left, right) => measuredBounds(right).left - measuredBounds(left).left)[0];
30406
- return endSlot ? { parent: header, before: endSlot } : null;
30476
+ return bounds.width > 0 && bounds.height > 0;
30477
+ }
30478
+ function hasDestination(element) {
30479
+ return element.matches(SETTINGS_RAIL_DESTINATION_SELECTOR) || element.querySelector(SETTINGS_RAIL_DESTINATION_SELECTOR) !== null;
30480
+ }
30481
+ function findRailInsertionPoint(rail) {
30482
+ const column = [...rail.children].find(hasDestination);
30483
+ if (!column) return null;
30484
+ const last = [...column.children].filter((child) => !child.hasAttribute(SETTINGS_TRIGGER_ATTRIBUTE)).at(-1);
30485
+ return { parent: column, before: last && !hasDestination(last) ? last : null };
30486
+ }
30487
+ function findRendererSettingsRailInsertionPoint(ownerDocument) {
30488
+ const rail = ownerDocument.querySelector(SETTINGS_RAIL_SELECTOR);
30489
+ return rail && isVisible(rail) ? findRailInsertionPoint(rail) : null;
30407
30490
  }
30408
30491
  function mountRendererSettingsTrigger(triggerId, available, onOpen, ownerDocument = document, messages = DEFAULT_RENDERER_SETTINGS_MESSAGES) {
30409
30492
  const root = ownerDocument.createElement("div");
30410
30493
  root.setAttribute(SETTINGS_TRIGGER_ATTRIBUTE, triggerId);
30411
- root.style.display = "inline-flex";
30494
+ root.style.display = "flex";
30412
30495
  root.style.alignItems = "center";
30413
30496
  root.style.justifyContent = "center";
30414
- root.style.alignSelf = "center";
30415
30497
  root.style.flex = "0 0 auto";
30416
- root.style.marginRight = "0";
30417
- root.style.color = "inherit";
30418
- root.style.pointerEvents = "auto";
30419
- root.style.setProperty("-webkit-app-region", "no-drag");
30420
30498
  const button = ownerDocument.createElement("button");
30421
30499
  button.type = "button";
30422
30500
  button.disabled = !available;
30423
30501
  button.setAttribute("aria-label", messages.openSettings);
30424
30502
  button.setAttribute("aria-haspopup", "dialog");
30425
- button.title = available ? messages.settingsButtonTitle : messages.settingsUnavailableTitle;
30503
+ button.style.position = "relative";
30426
30504
  button.style.display = "inline-flex";
30427
30505
  button.style.alignItems = "center";
30428
30506
  button.style.justifyContent = "center";
30429
- button.style.height = "28px";
30430
- button.style.padding = "0 12px";
30431
- button.style.gap = "6px";
30507
+ button.style.width = "36px";
30508
+ button.style.height = "36px";
30509
+ button.style.padding = "0";
30432
30510
  button.style.border = "0";
30433
- button.style.borderRadius = "8px";
30511
+ button.style.borderRadius = "12.5px";
30512
+ button.style.setProperty("corner-shape", "superellipse(1.5)");
30434
30513
  button.style.background = "transparent";
30435
- button.style.color = "inherit";
30514
+ button.style.color = RAIL_ICON_COLOR;
30436
30515
  button.style.cursor = available ? "pointer" : "not-allowed";
30437
30516
  button.style.opacity = available ? "1" : "0.5";
30438
30517
  button.style.outlineOffset = "2px";
30439
- button.style.setProperty("-webkit-app-region", "no-drag");
30440
- button.append(createRendererSettingsBrandIcon(24));
30441
- const brandLabel = ownerDocument.createElement("span");
30442
- brandLabel.textContent = "CodexHost";
30443
- brandLabel.style.fontSize = "13px";
30444
- brandLabel.style.fontWeight = "600";
30445
- brandLabel.style.lineHeight = "1";
30446
- brandLabel.style.whiteSpace = "nowrap";
30447
- button.append(brandLabel);
30448
- const updateButton = ownerDocument.createElement("button");
30449
- updateButton.type = "button";
30450
- updateButton.disabled = !available;
30451
- updateButton.setAttribute("aria-label", messages.updateAvailable);
30452
- updateButton.setAttribute("aria-haspopup", "dialog");
30453
- updateButton.title = messages.updateAvailable;
30454
- updateButton.style.display = "none";
30455
- updateButton.style.alignItems = "center";
30456
- updateButton.style.justifyContent = "center";
30457
- updateButton.style.width = "28px";
30458
- updateButton.style.height = "28px";
30459
- updateButton.style.padding = "0";
30460
- updateButton.style.border = "0";
30461
- updateButton.style.borderRadius = "8px";
30462
- updateButton.style.background = "transparent";
30463
- updateButton.style.color = UPDATE_ACCENT;
30464
- updateButton.style.cursor = available ? "pointer" : "not-allowed";
30465
- updateButton.style.opacity = available ? "1" : "0.5";
30466
- updateButton.style.outlineOffset = "2px";
30467
- updateButton.style.setProperty("-webkit-app-region", "no-drag");
30468
- updateButton.append(createRendererSettingsIcon("updates", 16));
30518
+ button.append(createRendererSettingsBrandGlyph(20));
30519
+ const updateBadge = ownerDocument.createElement("span");
30520
+ updateBadge.setAttribute("aria-hidden", "true");
30521
+ updateBadge.style.position = "absolute";
30522
+ updateBadge.style.top = "5px";
30523
+ updateBadge.style.right = "5px";
30524
+ updateBadge.style.width = "8px";
30525
+ updateBadge.style.height = "8px";
30526
+ updateBadge.style.borderRadius = "50%";
30527
+ updateBadge.style.background = UPDATE_ACCENT;
30528
+ updateBadge.style.display = "none";
30529
+ button.append(updateBadge);
30530
+ let updateAvailable = false;
30531
+ const renderTitle = () => {
30532
+ button.title = !available ? messages.settingsUnavailableTitle : updateAvailable ? `${messages.settingsButtonTitle} \xB7 ${messages.updateAvailable}` : messages.settingsButtonTitle;
30533
+ };
30534
+ renderTitle();
30469
30535
  const onPointerEnter = () => {
30470
- if (!button.disabled) button.style.background = "rgba(127, 127, 127, 0.16)";
30536
+ if (button.disabled) return;
30537
+ button.style.background = RAIL_ICON_HOVER_BACKGROUND;
30538
+ button.style.color = RAIL_ICON_HOVER_COLOR;
30471
30539
  };
30472
30540
  const onPointerLeave = () => {
30473
30541
  button.style.background = "transparent";
30542
+ button.style.color = RAIL_ICON_COLOR;
30474
30543
  };
30475
30544
  const onClick = (event) => {
30476
30545
  event.stopPropagation();
30477
- if (!button.disabled) onOpen(button);
30478
- };
30479
- const onUpdatePointerEnter = () => {
30480
- if (!updateButton.disabled) updateButton.style.background = "rgba(59, 130, 246, 0.14)";
30481
- };
30482
- const onUpdatePointerLeave = () => {
30483
- updateButton.style.background = "transparent";
30484
- };
30485
- const onUpdateClick = (event) => {
30486
- event.stopPropagation();
30487
- if (!updateButton.disabled) onOpen(updateButton, "updates");
30546
+ if (button.disabled) return;
30547
+ if (updateAvailable) onOpen(button, "updates");
30548
+ else onOpen(button);
30488
30549
  };
30489
30550
  button.addEventListener("pointerenter", onPointerEnter);
30490
30551
  button.addEventListener("pointerleave", onPointerLeave);
30491
30552
  button.addEventListener("click", onClick);
30492
- updateButton.addEventListener("pointerenter", onUpdatePointerEnter);
30493
- updateButton.addEventListener("pointerleave", onUpdatePointerLeave);
30494
- updateButton.addEventListener("click", onUpdateClick);
30495
- root.append(button, updateButton);
30553
+ root.append(button);
30496
30554
  return {
30497
30555
  root,
30498
30556
  button,
30499
- updateButton,
30500
- setUpdateAvailable(updateAvailable) {
30501
- root.toggleAttribute("data-update-available", updateAvailable);
30502
- updateButton.style.display = updateAvailable ? "inline-flex" : "none";
30557
+ setUpdateAvailable(next) {
30558
+ updateAvailable = next;
30559
+ root.toggleAttribute("data-update-available", next);
30560
+ updateBadge.style.display = next ? "block" : "none";
30561
+ renderTitle();
30503
30562
  },
30504
30563
  dispose() {
30505
30564
  button.removeEventListener("pointerenter", onPointerEnter);
30506
30565
  button.removeEventListener("pointerleave", onPointerLeave);
30507
30566
  button.removeEventListener("click", onClick);
30508
- updateButton.removeEventListener("pointerenter", onUpdatePointerEnter);
30509
- updateButton.removeEventListener("pointerleave", onUpdatePointerLeave);
30510
- updateButton.removeEventListener("click", onUpdateClick);
30511
30567
  root.remove();
30512
30568
  }
30513
30569
  };
30514
30570
  }
30515
- function installRendererSettingsHeaderTrigger(options) {
30571
+ function installRendererSettingsRailTrigger(options) {
30516
30572
  const ownerDocument = options.ownerDocument ?? document;
30517
30573
  let trigger = null;
30518
30574
  let updateAvailable = false;
30519
30575
  let disposed = false;
30520
30576
  const refresh = () => {
30521
30577
  if (disposed) return false;
30522
- const insertionPoint = findRendererSettingsHeaderInsertionPoint(ownerDocument);
30578
+ const insertionPoint = findRendererSettingsRailInsertionPoint(ownerDocument);
30523
30579
  if (!insertionPoint) {
30524
30580
  trigger?.root.remove();
30525
30581
  return false;
@@ -30529,7 +30585,7 @@ ${accounts_default}`;
30529
30585
  duplicate.remove();
30530
30586
  }
30531
30587
  trigger = mountRendererSettingsTrigger(
30532
- "application-header",
30588
+ "navigation-rail",
30533
30589
  options.available,
30534
30590
  options.onOpen,
30535
30591
  ownerDocument,
@@ -30596,7 +30652,7 @@ ${accounts_default}`;
30596
30652
  options.getLoadedSessionsClient ?? (() => null)
30597
30653
  );
30598
30654
  const nextShell = installRendererSettingsShell(definitions, messages, ownerWindow.document);
30599
- const nextTrigger = installRendererSettingsHeaderTrigger({
30655
+ const nextTrigger = installRendererSettingsRailTrigger({
30600
30656
  available: nextShell.supported,
30601
30657
  messages,
30602
30658
  ownerDocument: ownerWindow.document,
package/bin/codexhost CHANGED
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codexhost/cli-darwin-x64",
3
- "version": "0.10.0",
3
+ "version": "0.10.2",
4
4
  "description": "Run Pi and Claude Code as first-class external harnesses inside Codex Desktop.",
5
5
  "type": "module",
6
6
  "files": [