@orbit-work/ui 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/appearance.cjs +4 -2
  2. package/dist/appearance.cjs.map +1 -1
  3. package/dist/appearance.d.cts +7 -1
  4. package/dist/appearance.d.ts +7 -1
  5. package/dist/appearance.js +5 -3
  6. package/dist/brand-preview.cjs +14 -0
  7. package/dist/brand-preview.cjs.map +1 -0
  8. package/dist/brand-preview.d.cts +13 -0
  9. package/dist/brand-preview.d.ts +13 -0
  10. package/dist/brand-preview.js +14 -0
  11. package/dist/brand-preview.js.map +1 -0
  12. package/dist/{chunk-KRP43SUA.cjs → chunk-JC7BHKS4.cjs} +2 -398
  13. package/dist/chunk-JC7BHKS4.cjs.map +1 -0
  14. package/dist/chunk-K7ONUTLA.cjs +240 -0
  15. package/dist/chunk-K7ONUTLA.cjs.map +1 -0
  16. package/dist/chunk-KTNWR3H5.js +399 -0
  17. package/dist/chunk-KTNWR3H5.js.map +1 -0
  18. package/dist/{chunk-S3R5QFO4.js → chunk-LSGO6AQR.js} +2 -398
  19. package/dist/chunk-LSGO6AQR.js.map +1 -0
  20. package/dist/chunk-Q7B4M5GC.cjs +399 -0
  21. package/dist/chunk-Q7B4M5GC.cjs.map +1 -0
  22. package/dist/chunk-ZXMHCL6D.js +240 -0
  23. package/dist/chunk-ZXMHCL6D.js.map +1 -0
  24. package/dist/core.css +12 -3
  25. package/dist/core.scoped.css +7888 -0
  26. package/dist/index.cjs +212 -377
  27. package/dist/index.cjs.map +1 -1
  28. package/dist/index.d.cts +37 -4
  29. package/dist/index.d.ts +37 -4
  30. package/dist/index.js +191 -356
  31. package/dist/index.js.map +1 -1
  32. package/dist/{appearance-D7uh_ZTy.d.cts → unifiedTheme-DQ-sETKO.d.cts} +13 -4
  33. package/dist/{appearance-D7uh_ZTy.d.ts → unifiedTheme-DQ-sETKO.d.ts} +13 -4
  34. package/dist/workbench.css +12 -3
  35. package/package.json +16 -2
  36. package/dist/chunk-KRP43SUA.cjs.map +0 -1
  37. package/dist/chunk-S3R5QFO4.js.map +0 -1
package/dist/index.cjs CHANGED
@@ -8,11 +8,13 @@ var _chunkZZTEY4YXcjs = require('./chunk-ZZTEY4YX.cjs');
8
8
 
9
9
 
10
10
 
11
+ var _chunkQ7B4M5GCcjs = require('./chunk-Q7B4M5GC.cjs');
11
12
 
12
13
 
13
14
 
14
15
 
15
16
 
17
+ var _chunkK7ONUTLAcjs = require('./chunk-K7ONUTLA.cjs');
16
18
 
17
19
 
18
20
 
@@ -23,7 +25,10 @@ var _chunkZZTEY4YXcjs = require('./chunk-ZZTEY4YX.cjs');
23
25
 
24
26
 
25
27
 
26
- var _chunkKRP43SUAcjs = require('./chunk-KRP43SUA.cjs');
28
+
29
+
30
+
31
+ var _chunkJC7BHKS4cjs = require('./chunk-JC7BHKS4.cjs');
27
32
 
28
33
 
29
34
 
@@ -26717,7 +26722,7 @@ function DesktopAboutSettingsView({
26717
26722
  className: "flex flex-col items-center py-10 text-center text-[color:var(--ow-text)]",
26718
26723
  "aria-labelledby": "desktop-about-product-name",
26719
26724
  children: [
26720
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "img", { "data-ow-part": "logo", src: logoSrc, alt: "", className: "size-16" }),
26725
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "img", { "data-ow-part": "logo", src: logoSrc, alt: "", className: "size-16 object-contain" }),
26721
26726
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26722
26727
  "h2",
26723
26728
  {
@@ -26902,7 +26907,7 @@ function FontScaleControl({
26902
26907
  className: "ow-focus-ring relative m-0 h-8 w-full cursor-pointer appearance-none bg-transparent disabled:cursor-not-allowed",
26903
26908
  onChange: (event) => {
26904
26909
  const scale = Number(event.currentTarget.value) / 100;
26905
- if (_chunkKRP43SUAcjs.isOrbitworkFontScale.call(void 0, scale)) onChange(scale);
26910
+ if (_chunkJC7BHKS4cjs.isOrbitworkFontScale.call(void 0, scale)) onChange(scale);
26906
26911
  }
26907
26912
  }
26908
26913
  )
@@ -27010,9 +27015,9 @@ function DesktopAppearanceSettings({
27010
27015
  const customIds = new Set(customSkinIds);
27011
27016
  const activeSkin = _nullishCoalesce(skins.find((skin) => skin.id === skinId), () => ( null));
27012
27017
  const activeTokens = _optionalChain([desktopBackground, 'optionalAccess', _530 => _530.modes, 'access', _531 => _531[resolvedTheme]]);
27013
- const backgroundImage = _chunkKRP43SUAcjs.orbitworkSkinImageCssValue.call(void 0, _optionalChain([activeTokens, 'optionalAccess', _532 => _532.chatBackgroundImage]));
27018
+ const backgroundImage = _chunkJC7BHKS4cjs.orbitworkSkinImageCssValue.call(void 0, _optionalChain([activeTokens, 'optionalAccess', _532 => _532.chatBackgroundImage]));
27014
27019
  const activeIsCustom = customIds.has(skinId);
27015
- const builtinDescription = _optionalChain([_chunkKRP43SUAcjs.BUILTIN_ORBITWORK_SKINS, 'access', _533 => _533.find, 'call', _534 => _534((skin) => skin.id === skinId), 'optionalAccess', _535 => _535.description]);
27020
+ const builtinDescription = _optionalChain([_chunkQ7B4M5GCcjs.BUILTIN_ORBITWORK_SKINS, 'access', _533 => _533.find, 'call', _534 => _534((skin) => skin.id === skinId), 'optionalAccess', _535 => _535.description]);
27016
27021
  const skinDescription = !activeIsCustom && builtinDescription ? localizeUiCopy(builtinDescription, t) : _optionalChain([activeSkin, 'optionalAccess', _536 => _536.description]);
27017
27022
  const skinOptions = skins.map((skin) => {
27018
27023
  const builtinNameKey = BUILTIN_SKIN_NAME_KEYS[skin.id];
@@ -27021,7 +27026,7 @@ function DesktopAppearanceSettings({
27021
27026
  label: customIds.has(skin.id) ? `${copy.customSkinSuffix} \xB7 ${skin.name.replace(/(?:\s*·\s*(?:自定义|Custom))+$/i, "")}` : builtinNameKey ? t(builtinNameKey) : skin.name
27022
27027
  };
27023
27028
  });
27024
- const backgroundMask = _chunkKRP43SUAcjs.resolveOrbitworkSkinChatBackgroundMask.call(void 0,
27029
+ const backgroundMask = _chunkJC7BHKS4cjs.resolveOrbitworkSkinChatBackgroundMask.call(void 0,
27025
27030
  _nullishCoalesce(_optionalChain([activeTokens, 'optionalAccess', _537 => _537.chatBackgroundMaskColor]), () => ( (resolvedTheme === "dark" ? "#1e1f2200" : "#ffffff00")))
27026
27031
  );
27027
27032
  const imageOpacity = Math.round(Number(_nullishCoalesce(_optionalChain([activeTokens, 'optionalAccess', _538 => _538.chatBackgroundImageOpacity]), () => ( "0.9"))) * 100);
@@ -27048,7 +27053,7 @@ function DesktopAppearanceSettings({
27048
27053
  if (!onChatBackgroundMaskColorChange) return;
27049
27054
  if (maskTimerRef.current) clearTimeout(maskTimerRef.current);
27050
27055
  maskTimerRef.current = setTimeout(() => {
27051
- onChatBackgroundMaskColorChange(_chunkKRP43SUAcjs.orbitworkSkinChatBackgroundMaskColor.call(void 0, color, strength));
27056
+ onChatBackgroundMaskColorChange(_chunkJC7BHKS4cjs.orbitworkSkinChatBackgroundMaskColor.call(void 0, color, strength));
27052
27057
  }, 120);
27053
27058
  };
27054
27059
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { "data-slot": "desktop-appearance-settings", className: "flex flex-col gap-5", children: [
@@ -28453,9 +28458,9 @@ function DesktopConnectorCardView({
28453
28458
  }
28454
28459
 
28455
28460
  // src/theme/core/tenantTheme.ts
28456
- var ROOT_KEYS = /* @__PURE__ */ new Set(["name", "logo", "favicon", "modes", "typography", "branding"]);
28461
+ var ROOT_KEYS = /* @__PURE__ */ new Set(["name", "logo", "loginKV", "favicon", "modes", "typography", "branding"]);
28457
28462
  var MODE_KEYS = /* @__PURE__ */ new Set(["light", "dark"]);
28458
- var COLOR_KEYS = new Set(_chunkKRP43SUAcjs.TENANT_THEME_COLOR_KEYS);
28463
+ var COLOR_KEYS = new Set(_chunkQ7B4M5GCcjs.TENANT_THEME_COLOR_KEYS);
28459
28464
  var TYPOGRAPHY_KEYS = /* @__PURE__ */ new Set(["fontSans", "fontMono"]);
28460
28465
  var BRANDING_KEYS = /* @__PURE__ */ new Set(["productName", "companyName", "claim", "claimNote", "slogan"]);
28461
28466
  var CONTRAST_PAIRS = [
@@ -28502,8 +28507,8 @@ function parseLimitedText(value, path, limit, required) {
28502
28507
  return text;
28503
28508
  }
28504
28509
  function parseBranding(input, path) {
28505
- if (!_chunkKRP43SUAcjs.isRecord.call(void 0, input)) throw new Error(`${path} \u5FC5\u987B\u662F\u5BF9\u8C61`);
28506
- _chunkKRP43SUAcjs.assertKnownKeys.call(void 0, input, BRANDING_KEYS, path);
28510
+ if (!_chunkJC7BHKS4cjs.isRecord.call(void 0, input)) throw new Error(`${path} \u5FC5\u987B\u662F\u5BF9\u8C61`);
28511
+ _chunkJC7BHKS4cjs.assertKnownKeys.call(void 0, input, BRANDING_KEYS, path);
28507
28512
  const productName = parseLimitedText(input.productName, `${path}.productName`, LENGTH_LIMITS.productName, true);
28508
28513
  const companyName = parseLimitedText(input.companyName, `${path}.companyName`, LENGTH_LIMITS.companyName, true);
28509
28514
  const result = { productName, companyName };
@@ -28523,7 +28528,7 @@ function canonicalLocale(value) {
28523
28528
  }
28524
28529
  }
28525
28530
  function parseLocalizedBranding(input) {
28526
- if (!_chunkKRP43SUAcjs.isRecord.call(void 0, input)) throw new Error("branding \u5FC5\u987B\u662F locale \u2192 \u54C1\u724C\u6587\u6848\u5BF9\u8C61");
28531
+ if (!_chunkJC7BHKS4cjs.isRecord.call(void 0, input)) throw new Error("branding \u5FC5\u987B\u662F locale \u2192 \u54C1\u724C\u6587\u6848\u5BF9\u8C61");
28527
28532
  const entries = Object.entries(input);
28528
28533
  if (entries.length === 0) throw new Error("branding \u81F3\u5C11\u9700\u8981 en-US \u57FA\u51C6\u6587\u6848");
28529
28534
  const result = {};
@@ -28535,18 +28540,18 @@ function parseLocalizedBranding(input) {
28535
28540
  return result;
28536
28541
  }
28537
28542
  function parseMode(input, path) {
28538
- if (!_chunkKRP43SUAcjs.isRecord.call(void 0, input)) throw new Error(`${path} \u5FC5\u987B\u662F\u5BF9\u8C61`);
28539
- _chunkKRP43SUAcjs.assertKnownKeys.call(void 0, input, COLOR_KEYS, path);
28540
- const missing = _chunkKRP43SUAcjs.TENANT_THEME_COLOR_KEYS.filter((key) => input[key] === void 0);
28543
+ if (!_chunkJC7BHKS4cjs.isRecord.call(void 0, input)) throw new Error(`${path} \u5FC5\u987B\u662F\u5BF9\u8C61`);
28544
+ _chunkJC7BHKS4cjs.assertKnownKeys.call(void 0, input, COLOR_KEYS, path);
28545
+ const missing = _chunkQ7B4M5GCcjs.TENANT_THEME_COLOR_KEYS.filter((key) => input[key] === void 0);
28541
28546
  if (missing.length > 0) throw new Error(`${path} \u4E2D\u6027\u68AF\u5EA6\u987B\u6574\u7EC4\u63D0\u4EA4\uFF0C\u7F3A\u5C11\uFF1A${missing.join("\u3001")}`);
28542
28547
  const result = {};
28543
- for (const key of _chunkKRP43SUAcjs.TENANT_THEME_COLOR_KEYS) {
28548
+ for (const key of _chunkQ7B4M5GCcjs.TENANT_THEME_COLOR_KEYS) {
28544
28549
  const value = input[key];
28545
- if (typeof value !== "string" || !_chunkKRP43SUAcjs.HEX_COLOR.test(value)) throw new Error(`${path}.${key} \u5FC5\u987B\u662F\u5341\u516D\u8FDB\u5236\u989C\u8272`);
28550
+ if (typeof value !== "string" || !_chunkJC7BHKS4cjs.HEX_COLOR.test(value)) throw new Error(`${path}.${key} \u5FC5\u987B\u662F\u5341\u516D\u8FDB\u5236\u989C\u8272`);
28546
28551
  result[key] = value.toLowerCase();
28547
28552
  }
28548
28553
  for (const [textKey, surfaceKey] of CONTRAST_PAIRS) {
28549
- const ratio = _chunkKRP43SUAcjs.ds2ContrastRatio.call(void 0, result[textKey], result[surfaceKey]);
28554
+ const ratio = _chunkJC7BHKS4cjs.ds2ContrastRatio.call(void 0, result[textKey], result[surfaceKey]);
28550
28555
  if (ratio < 4.5) {
28551
28556
  throw new Error(`${path} \u5BF9\u6BD4\u5EA6\u4E0D\u8FBE\u6807\uFF1A${textKey} \u5728 ${surfaceKey} \u4E0A\u4E3A ${ratio.toFixed(2)}:1\uFF0C\u8981\u6C42 \u2265 4.5:1`);
28552
28557
  }
@@ -28555,18 +28560,19 @@ function parseMode(input, path) {
28555
28560
  }
28556
28561
  function parseTenantTheme(input) {
28557
28562
  try {
28558
- if (!_chunkKRP43SUAcjs.isRecord.call(void 0, input)) throw new Error("\u79DF\u6237\u4E3B\u9898\u5FC5\u987B\u662F JSON \u5BF9\u8C61");
28559
- _chunkKRP43SUAcjs.assertKnownKeys.call(void 0, input, ROOT_KEYS, "\u79DF\u6237\u4E3B\u9898");
28563
+ if (!_chunkJC7BHKS4cjs.isRecord.call(void 0, input)) throw new Error("\u79DF\u6237\u4E3B\u9898\u5FC5\u987B\u662F JSON \u5BF9\u8C61");
28564
+ _chunkJC7BHKS4cjs.assertKnownKeys.call(void 0, input, ROOT_KEYS, "\u79DF\u6237\u4E3B\u9898");
28560
28565
  const name = parseLimitedText(input.name, "name", LENGTH_LIMITS.name, true);
28561
28566
  const logo = parseAsset(input.logo, "logo", true);
28567
+ const loginKV = parseAsset(input.loginKV, "loginKV", false);
28562
28568
  const favicon = parseAsset(input.favicon, "favicon", false);
28563
- if (!_chunkKRP43SUAcjs.isRecord.call(void 0, input.modes)) throw new Error("modes \u5FC5\u987B\u662F\u5BF9\u8C61");
28564
- _chunkKRP43SUAcjs.assertKnownKeys.call(void 0, input.modes, MODE_KEYS, "modes");
28569
+ if (!_chunkJC7BHKS4cjs.isRecord.call(void 0, input.modes)) throw new Error("modes \u5FC5\u987B\u662F\u5BF9\u8C61");
28570
+ _chunkJC7BHKS4cjs.assertKnownKeys.call(void 0, input.modes, MODE_KEYS, "modes");
28565
28571
  const light = input.modes.light === void 0 ? void 0 : parseMode(input.modes.light, "modes.light");
28566
28572
  const dark = input.modes.dark === void 0 ? void 0 : parseMode(input.modes.dark, "modes.dark");
28567
28573
  if (!light && !dark) throw new Error("modes \u81F3\u5C11\u9700\u8981 light \u6216 dark");
28568
- if (!_chunkKRP43SUAcjs.isRecord.call(void 0, input.typography)) throw new Error("typography \u5FC5\u987B\u662F\u5BF9\u8C61");
28569
- _chunkKRP43SUAcjs.assertKnownKeys.call(void 0, input.typography, TYPOGRAPHY_KEYS, "typography");
28574
+ if (!_chunkJC7BHKS4cjs.isRecord.call(void 0, input.typography)) throw new Error("typography \u5FC5\u987B\u662F\u5BF9\u8C61");
28575
+ _chunkJC7BHKS4cjs.assertKnownKeys.call(void 0, input.typography, TYPOGRAPHY_KEYS, "typography");
28570
28576
  const fontSans = input.typography.fontSans;
28571
28577
  const fontMono = input.typography.fontMono;
28572
28578
  if (typeof fontSans !== "string" || !fontSans.trim() || fontSans.length > FONT_STACK_LIMIT)
@@ -28578,6 +28584,7 @@ function parseTenantTheme(input) {
28578
28584
  theme: {
28579
28585
  name,
28580
28586
  logo,
28587
+ ...loginKV !== void 0 ? { loginKV } : {},
28581
28588
  ...favicon !== void 0 ? { favicon } : {},
28582
28589
  modes: { ...light ? { light } : {}, ...dark ? { dark } : {} },
28583
28590
  typography: { fontSans: fontSans.trim(), fontMono: fontMono.trim() },
@@ -28589,229 +28596,9 @@ function parseTenantTheme(input) {
28589
28596
  }
28590
28597
  }
28591
28598
 
28592
- // src/theme/core/unifiedTheme.ts
28593
- var TENANT_TOKEN_MAP = {
28594
- bg: "--ow-bg",
28595
- surface: "--ow-surface",
28596
- surface2: "--ow-surface-2",
28597
- text: "--ow-text",
28598
- text2: "--ow-text-2",
28599
- text3: "--ow-text-3",
28600
- border: "--ow-border",
28601
- borderStrong: "--ow-border-strong"
28602
- };
28603
- function tenantTokens(theme, mode) {
28604
- const colors = _optionalChain([theme, 'optionalAccess', _553 => _553.modes, 'access', _554 => _554[mode]]);
28605
- if (!colors) return {};
28606
- return Object.fromEntries(
28607
- Object.entries(TENANT_TOKEN_MAP).map(([key, token]) => [token, colors[key]])
28608
- );
28609
- }
28610
- function skinTokens(skin, mode) {
28611
- const values = _optionalChain([skin, 'optionalAccess', _555 => _555.modes, 'access', _556 => _556[mode]]);
28612
- if (!values) return {};
28613
- const tokens = {};
28614
- for (const [rawKey, value] of Object.entries(values)) {
28615
- const key = rawKey;
28616
- const property = _chunkKRP43SUAcjs.ORBITWORK_SKIN_CSS_VARIABLES[key];
28617
- if (!property || !value) continue;
28618
- if (key === "chatBackgroundImage") {
28619
- const image = _chunkKRP43SUAcjs.orbitworkSkinImageCssValue.call(void 0, value);
28620
- if (image) tokens[property] = image;
28621
- continue;
28622
- }
28623
- if (key === "chatBackgroundMaskColor") {
28624
- const mask = _chunkKRP43SUAcjs.resolveOrbitworkSkinChatBackgroundMask.call(void 0, value);
28625
- tokens[property] = mask.color;
28626
- tokens["--ow-chat-bg-mask-start-opacity"] = `${mask.startOpacity}%`;
28627
- tokens["--ow-chat-bg-mask-end-opacity"] = `${mask.endOpacity}%`;
28628
- continue;
28629
- }
28630
- if (key === "chatBackgroundOverlay" && values.chatBackgroundMaskColor) continue;
28631
- tokens[property] = value;
28632
- }
28633
- return tokens;
28634
- }
28635
- function localeCandidates(locale) {
28636
- let canonical = "en-US";
28637
- try {
28638
- canonical = _nullishCoalesce(Intl.getCanonicalLocales(locale)[0], () => ( "en-US"));
28639
- } catch (e13) {
28640
- }
28641
- const language = _nullishCoalesce(canonical.split("-")[0], () => ( "en"));
28642
- return [.../* @__PURE__ */ new Set([canonical, language, "en-US"])];
28643
- }
28644
- function localizedCopy(source, locale) {
28645
- if (!source) return void 0;
28646
- for (const candidate of localeCandidates(locale)) {
28647
- if (source[candidate]) return source[candidate];
28648
- }
28649
- return void 0;
28650
- }
28651
- function mergeUnifiedTheme(brand, tenant, userSkin, mode, locale = "en-US", appearanceOverlaySkin = null, fontScalePreference = null) {
28652
- const chatBackgroundImage = _nullishCoalesce(_optionalChain([appearanceOverlaySkin, 'optionalAccess', _557 => _557.modes, 'access', _558 => _558[mode], 'optionalAccess', _559 => _559.chatBackgroundImage]), () => ( _optionalChain([userSkin, 'optionalAccess', _560 => _560.modes, 'access', _561 => _561[mode], 'optionalAccess', _562 => _562.chatBackgroundImage])));
28653
- const tokens = {
28654
- ..._nullishCoalesce(_optionalChain([brand, 'optionalAccess', _563 => _563.modes, 'access', _564 => _564[mode]]), () => ( {})),
28655
- ...tenantTokens(tenant, mode),
28656
- ...skinTokens(userSkin, mode),
28657
- ...skinTokens(appearanceOverlaySkin, mode),
28658
- ..._chunkKRP43SUAcjs.fontScaleTokens.call(void 0, _chunkKRP43SUAcjs.resolveOrbitworkFontScale.call(void 0, fontScalePreference, _optionalChain([userSkin, 'optionalAccess', _565 => _565.fontScale])))
28659
- };
28660
- const typography = _nullishCoalesce(_optionalChain([tenant, 'optionalAccess', _566 => _566.typography]), () => ( _optionalChain([brand, 'optionalAccess', _567 => _567.typography])));
28661
- if (typography) {
28662
- tokens["--ow-font-sans"] = typography.fontSans;
28663
- tokens["--ow-font-mono"] = typography.fontMono;
28664
- }
28665
- const brandCopy = localizedCopy(_optionalChain([brand, 'optionalAccess', _568 => _568.branding]), locale);
28666
- const tenantCopy = localizedCopy(_optionalChain([tenant, 'optionalAccess', _569 => _569.branding]), locale);
28667
- const copy = tenantCopy ? { ..._nullishCoalesce(brandCopy, () => ( {})), ...tenantCopy } : _nullishCoalesce(brandCopy, () => ( null));
28668
- const logo = _optionalChain([tenant, 'optionalAccess', _570 => _570.logo]) || _optionalChain([brand, 'optionalAccess', _571 => _571.logo]);
28669
- const favicon = _optionalChain([tenant, 'optionalAccess', _572 => _572.favicon]) || _optionalChain([brand, 'optionalAccess', _573 => _573.favicon]);
28670
- const branding = copy ? {
28671
- ...copy,
28672
- ...logo ? { logo } : {},
28673
- ...favicon ? { favicon } : {}
28674
- } : null;
28675
- return {
28676
- mode,
28677
- tokens,
28678
- branding,
28679
- skin: _optionalChain([userSkin, 'optionalAccess', _574 => _574.modes, 'access', _575 => _575[mode]]) || _optionalChain([appearanceOverlaySkin, 'optionalAccess', _576 => _576.modes, 'access', _577 => _577[mode]]) ? {
28680
- id: _nullishCoalesce(_nullishCoalesce(_optionalChain([userSkin, 'optionalAccess', _578 => _578.id]), () => ( _optionalChain([appearanceOverlaySkin, 'optionalAccess', _579 => _579.id]))), () => ( "default")),
28681
- ..._optionalChain([userSkin, 'optionalAccess', _580 => _580.contributes, 'optionalAccess', _581 => _581.publicPartStyles]) ? { publicPartStyles: userSkin.contributes.publicPartStyles } : {},
28682
- ...chatBackgroundImage ? { chatBackgroundImage } : {},
28683
- hasChatBackgroundImage: Boolean(chatBackgroundImage),
28684
- hasUserBubbleStyle: Boolean(
28685
- _optionalChain([userSkin, 'optionalAccess', _582 => _582.modes, 'access', _583 => _583[mode], 'optionalAccess', _584 => _584.userBubbleBackground]) || _optionalChain([userSkin, 'optionalAccess', _585 => _585.modes, 'access', _586 => _586[mode], 'optionalAccess', _587 => _587.userBubbleForeground]) || _optionalChain([userSkin, 'optionalAccess', _588 => _588.modes, 'access', _589 => _589[mode], 'optionalAccess', _590 => _590.userBubbleBorder])
28686
- )
28687
- } : null,
28688
- sources: {
28689
- brand: _nullishCoalesce(_optionalChain([brand, 'optionalAccess', _591 => _591.id]), () => ( null)),
28690
- tenant: _nullishCoalesce(_optionalChain([tenant, 'optionalAccess', _592 => _592.name]), () => ( null)),
28691
- user: _nullishCoalesce(_optionalChain([userSkin, 'optionalAccess', _593 => _593.id]), () => ( null))
28692
- }
28693
- };
28694
- }
28695
-
28696
28599
  // src/theme/providers/ThemeProvider.tsx
28697
28600
 
28698
28601
 
28699
- // src/theme/utils/themeApplier.ts
28700
- var managedProperties = /* @__PURE__ */ new WeakMap();
28701
- var managedPublicPartStyles = /* @__PURE__ */ new WeakMap();
28702
- var managedPublicPartScopes = /* @__PURE__ */ new WeakMap();
28703
- var managedChatBackgroundImages = /* @__PURE__ */ new WeakMap();
28704
- var nextPublicPartScope = 0;
28705
- var CHAT_BACKGROUND_IMAGE_PROPERTY = "--ow-chat-bg-image";
28706
- function applyUnifiedTheme(theme, target = document.documentElement) {
28707
- const previous = _nullishCoalesce(managedProperties.get(target), () => ( /* @__PURE__ */ new Set()));
28708
- const next = new Set(Object.keys(theme.tokens));
28709
- for (const property of previous) {
28710
- if (!next.has(property)) target.style.removeProperty(property);
28711
- }
28712
- for (const [property, value] of Object.entries(theme.tokens)) {
28713
- if (value === void 0) continue;
28714
- const appliedValue = property === CHAT_BACKGROUND_IMAGE_PROPERTY && _optionalChain([theme, 'access', _594 => _594.skin, 'optionalAccess', _595 => _595.chatBackgroundImage]) ? chatBackgroundImageCssValue(target, theme.skin.chatBackgroundImage, value) : value;
28715
- target.style.setProperty(property, appliedValue);
28716
- }
28717
- if (!next.has(CHAT_BACKGROUND_IMAGE_PROPERTY) || !_optionalChain([theme, 'access', _596 => _596.skin, 'optionalAccess', _597 => _597.chatBackgroundImage])) {
28718
- releaseChatBackgroundImage(target);
28719
- }
28720
- managedProperties.set(target, next);
28721
- setOptionalAttribute(target, "data-ow-brand-theme", theme.sources.brand);
28722
- setOptionalAttribute(target, "data-tenant-theme", theme.sources.tenant);
28723
- setOptionalAttribute(target, "data-ow-skin", _nullishCoalesce(_optionalChain([theme, 'access', _598 => _598.skin, 'optionalAccess', _599 => _599.id]), () => ( null)));
28724
- if (_optionalChain([theme, 'access', _600 => _600.skin, 'optionalAccess', _601 => _601.hasChatBackgroundImage])) target.setAttribute("data-desktop-background-image", "");
28725
- else target.removeAttribute("data-desktop-background-image");
28726
- if (_optionalChain([theme, 'access', _602 => _602.skin, 'optionalAccess', _603 => _603.hasUserBubbleStyle])) target.setAttribute("data-chat-user-bubble-skin", "");
28727
- else target.removeAttribute("data-chat-user-bubble-skin");
28728
- const targetDocument = _nullishCoalesce(target.ownerDocument, () => ( (typeof document === "undefined" ? null : document)));
28729
- if (targetDocument) applyPublicPartStyles(target, targetDocument, theme.skin);
28730
- }
28731
- function removeUnifiedTheme(target = document.documentElement) {
28732
- for (const property of _nullishCoalesce(managedProperties.get(target), () => ( []))) target.style.removeProperty(property);
28733
- managedProperties.delete(target);
28734
- releaseChatBackgroundImage(target);
28735
- target.removeAttribute("data-ow-brand-theme");
28736
- target.removeAttribute("data-tenant-theme");
28737
- target.removeAttribute("data-ow-skin");
28738
- target.removeAttribute("data-desktop-background-image");
28739
- target.removeAttribute("data-chat-user-bubble-skin");
28740
- removePublicPartStyles(target);
28741
- }
28742
- function chatBackgroundImageCssValue(target, dataUrl, fallback) {
28743
- const current = managedChatBackgroundImages.get(target);
28744
- if (_optionalChain([current, 'optionalAccess', _604 => _604.dataUrl]) === dataUrl) return `url("${current.objectUrl}")`;
28745
- const separator = dataUrl.indexOf(",");
28746
- const header = separator >= 0 ? dataUrl.slice(0, separator) : "";
28747
- if (!/^data:image\/(?:png|jpeg|webp);base64$/i.test(header)) {
28748
- releaseChatBackgroundImage(target);
28749
- return fallback;
28750
- }
28751
- try {
28752
- const binary = globalThis.atob(dataUrl.slice(separator + 1));
28753
- const bytes = new Uint8Array(binary.length);
28754
- for (let index = 0; index < binary.length; index += 1) bytes[index] = binary.charCodeAt(index);
28755
- const objectUrl = globalThis.URL.createObjectURL(new Blob([bytes], { type: header.slice(5, -7) }));
28756
- releaseChatBackgroundImage(target);
28757
- managedChatBackgroundImages.set(target, { dataUrl, objectUrl });
28758
- return `url("${objectUrl}")`;
28759
- } catch (e14) {
28760
- releaseChatBackgroundImage(target);
28761
- return fallback;
28762
- }
28763
- }
28764
- function releaseChatBackgroundImage(target) {
28765
- const current = managedChatBackgroundImages.get(target);
28766
- if (!current) return;
28767
- globalThis.URL.revokeObjectURL(current.objectUrl);
28768
- managedChatBackgroundImages.delete(target);
28769
- }
28770
- function setOptionalAttribute(target, name, value) {
28771
- if (value) target.setAttribute(name, value);
28772
- else target.removeAttribute(name);
28773
- }
28774
- function removePublicPartStyles(target) {
28775
- _optionalChain([managedPublicPartStyles, 'access', _605 => _605.get, 'call', _606 => _606(target), 'optionalAccess', _607 => _607.remove, 'call', _608 => _608()]);
28776
- managedPublicPartStyles.delete(target);
28777
- target.removeAttribute("data-ow-skin-scope");
28778
- }
28779
- function applyPublicPartStyles(target, document2, skin) {
28780
- const previous = managedPublicPartStyles.get(target);
28781
- if (!_optionalChain([skin, 'optionalAccess', _609 => _609.publicPartStyles])) {
28782
- removePublicPartStyles(target);
28783
- return;
28784
- }
28785
- let normalized;
28786
- try {
28787
- normalized = _chunkKRP43SUAcjs.normalizeOrbitworkSkinPublicPartStyles.call(void 0, skin.publicPartStyles);
28788
- } catch (error) {
28789
- console.error("[theme] rejected invalid public-part styles at apply time:", error);
28790
- removePublicPartStyles(target);
28791
- return;
28792
- }
28793
- let scopeId = managedPublicPartScopes.get(target);
28794
- if (!scopeId) {
28795
- scopeId = `ow-skin-${++nextPublicPartScope}`;
28796
- managedPublicPartScopes.set(target, scopeId);
28797
- }
28798
- target.setAttribute("data-ow-skin-scope", scopeId);
28799
- const scope = `[data-ow-skin-scope="${scopeId}"]`;
28800
- const scopedCss = normalized.replace(/([^{}]+)\{/g, (_match, selector) => {
28801
- const selectors = selector.split(",").map((item) => `${scope} ${item.trim()}`).join(", ");
28802
- return `${selectors} {`;
28803
- });
28804
- const style = _nullishCoalesce(previous, () => ( document2.createElement("style")));
28805
- style.setAttribute("data-ow-skin-style", scopeId);
28806
- style.textContent = scopedCss;
28807
- if (!previous) {
28808
- managedPublicPartStyles.set(target, style);
28809
- document2.head.appendChild(style);
28810
- }
28811
- }
28812
-
28813
- // src/theme/providers/ThemeProvider.tsx
28814
-
28815
28602
  var STORAGE_KEY = "ow-theme";
28816
28603
  var SKIN_STORAGE_KEY = "ow-skin-id";
28817
28604
  var ThemeContext = _react.createContext.call(void 0, null);
@@ -28828,19 +28615,19 @@ function readInitialTheme(fallback) {
28828
28615
  try {
28829
28616
  const stored = window.localStorage.getItem(STORAGE_KEY);
28830
28617
  if (stored === "light" || stored === "dark" || stored === "system") return stored;
28831
- } catch (e15) {
28618
+ } catch (e13) {
28832
28619
  }
28833
28620
  return fallback;
28834
28621
  }
28835
28622
  function readStoredSkinId() {
28836
28623
  try {
28837
28624
  return window.localStorage.getItem(SKIN_STORAGE_KEY);
28838
- } catch (e16) {
28625
+ } catch (e14) {
28839
28626
  return null;
28840
28627
  }
28841
28628
  }
28842
28629
  function validateSkin(skin) {
28843
- const result = _chunkKRP43SUAcjs.parseOrbitworkSkin.call(void 0, skin);
28630
+ const result = _chunkJC7BHKS4cjs.parseOrbitworkSkin.call(void 0, skin);
28844
28631
  if (!result.ok) throw new Error(`Invalid Orbitwork skin: ${result.error}`);
28845
28632
  return result.skin;
28846
28633
  }
@@ -28862,10 +28649,10 @@ function ThemeProvider({
28862
28649
  locale = "en-US"
28863
28650
  }) {
28864
28651
  const [fontScalePreference, setFontScalePreference] = _react.useState.call(void 0,
28865
- _chunkKRP43SUAcjs.isOrbitworkFontScale.call(void 0, initialFontScale) ? initialFontScale : null
28652
+ _chunkJC7BHKS4cjs.isOrbitworkFontScale.call(void 0, initialFontScale) ? initialFontScale : null
28866
28653
  );
28867
28654
  const setFontScale = _react.useCallback.call(void 0, (scale) => {
28868
- setFontScalePreference(_chunkKRP43SUAcjs.isOrbitworkFontScale.call(void 0, scale) ? scale : null);
28655
+ setFontScalePreference(_chunkJC7BHKS4cjs.isOrbitworkFontScale.call(void 0, scale) ? scale : null);
28869
28656
  }, []);
28870
28657
  const [theme, setThemeState] = _react.useState.call(void 0, () => _nullishCoalesce(initialTheme, () => ( readInitialTheme(defaultTheme))));
28871
28658
  const [resolvedTheme, setResolvedTheme] = _react.useState.call(void 0,
@@ -28878,16 +28665,16 @@ function ThemeProvider({
28878
28665
  const [skin, setSkinState] = _react.useState.call(void 0, () => {
28879
28666
  const id = _nullishCoalesce(initialSkinId, () => ( readStoredSkinId()));
28880
28667
  if (!id || id === "default") return null;
28881
- return _nullishCoalesce(_nullishCoalesce(_chunkKRP43SUAcjs.BUILTIN_ORBITWORK_SKINS.find((item) => item.id === id), () => ( customSkins.find((item) => item.id === id))), () => ( null));
28668
+ return _nullishCoalesce(_nullishCoalesce(_chunkQ7B4M5GCcjs.BUILTIN_ORBITWORK_SKINS.find((item) => item.id === id), () => ( customSkins.find((item) => item.id === id))), () => ( null));
28882
28669
  });
28883
28670
  const [tryOnSkin, setTryOnSkin] = _react.useState.call(void 0, null);
28884
28671
  const isTryingOn = tryOnSkin !== null;
28885
- const builtinSkins = _chunkKRP43SUAcjs.BUILTIN_ORBITWORK_SKINS;
28886
- const skins = _react.useMemo.call(void 0, () => [..._chunkKRP43SUAcjs.BUILTIN_ORBITWORK_SKINS, ...customSkins], [customSkins]);
28672
+ const builtinSkins = _chunkQ7B4M5GCcjs.BUILTIN_ORBITWORK_SKINS;
28673
+ const skins = _react.useMemo.call(void 0, () => [..._chunkQ7B4M5GCcjs.BUILTIN_ORBITWORK_SKINS, ...customSkins], [customSkins]);
28887
28674
  const activeSkin = _nullishCoalesce(tryOnSkin, () => ( skin));
28888
- const fontScale = _chunkKRP43SUAcjs.resolveOrbitworkFontScale.call(void 0, fontScalePreference, _optionalChain([activeSkin, 'optionalAccess', _610 => _610.fontScale]));
28675
+ const fontScale = _chunkJC7BHKS4cjs.resolveOrbitworkFontScale.call(void 0, fontScalePreference, _nullishCoalesce(_optionalChain([activeSkin, 'optionalAccess', _553 => _553.fontScale]), () => ( _optionalChain([brandTheme, 'optionalAccess', _554 => _554.fontScale]))));
28889
28676
  const unifiedTheme = _react.useMemo.call(void 0,
28890
- () => mergeUnifiedTheme(
28677
+ () => _chunkK7ONUTLAcjs.mergeUnifiedTheme.call(void 0,
28891
28678
  brandTheme,
28892
28679
  tenantTheme,
28893
28680
  activeSkin,
@@ -28913,14 +28700,14 @@ function ThemeProvider({
28913
28700
  document.documentElement.setAttribute("data-theme", resolvedTheme);
28914
28701
  }, [resolvedTheme]);
28915
28702
  _react.useEffect.call(void 0, () => {
28916
- applyUnifiedTheme(unifiedTheme);
28917
- return () => removeUnifiedTheme();
28703
+ _chunkK7ONUTLAcjs.applyUnifiedTheme.call(void 0, unifiedTheme);
28704
+ return () => _chunkK7ONUTLAcjs.removeUnifiedTheme.call(void 0, );
28918
28705
  }, [unifiedTheme]);
28919
28706
  const setTheme = _react.useCallback.call(void 0, (next) => {
28920
28707
  setThemeState(next);
28921
28708
  try {
28922
28709
  window.localStorage.setItem(STORAGE_KEY, next);
28923
- } catch (e17) {
28710
+ } catch (e15) {
28924
28711
  }
28925
28712
  }, []);
28926
28713
  const setSkin = _react.useCallback.call(void 0, (next) => {
@@ -28933,7 +28720,7 @@ function ThemeProvider({
28933
28720
  } else {
28934
28721
  window.localStorage.removeItem(SKIN_STORAGE_KEY);
28935
28722
  }
28936
- } catch (e18) {
28723
+ } catch (e16) {
28937
28724
  }
28938
28725
  }, []);
28939
28726
  const tryOn = _react.useCallback.call(void 0, (targetSkin) => {
@@ -28962,7 +28749,7 @@ function ThemeProvider({
28962
28749
  resolvedTheme,
28963
28750
  setTheme,
28964
28751
  skin,
28965
- skinId: _nullishCoalesce(_optionalChain([skin, 'optionalAccess', _611 => _611.id]), () => ( "default")),
28752
+ skinId: _nullishCoalesce(_optionalChain([skin, 'optionalAccess', _555 => _555.id]), () => ( "default")),
28966
28753
  setSkin,
28967
28754
  builtinSkins,
28968
28755
  customSkins,
@@ -29029,7 +28816,7 @@ function DesktopChatEmptyStateView({
29029
28816
  if (title === void 0) title = t("chat.ready");
29030
28817
  const { resolvedTheme, skin } = useTheme();
29031
28818
  const activeSkin = skin;
29032
- const hasChatBackgroundImage = _chunkKRP43SUAcjs.hasOrbitworkSkinChatBackground.call(void 0, activeSkin, resolvedTheme);
28819
+ const hasChatBackgroundImage = _chunkJC7BHKS4cjs.hasOrbitworkSkinChatBackground.call(void 0, activeSkin, resolvedTheme);
29033
28820
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { "data-slot": "desktop-chat-empty-state", className: "flex h-full flex-col items-center justify-center px-7", children: [
29034
28821
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
29035
28822
  EmptyState,
@@ -29081,7 +28868,7 @@ var DesktopChatHeaderView = _react.forwardRef.call(void 0,
29081
28868
  if (shareLabel === void 0) shareLabel = t("interface.shareThisConversation12b03");
29082
28869
  if (panelLabel === void 0) panelLabel = t("interface.openSidePanel92608");
29083
28870
  if (contextLabel === void 0) contextLabel = t("chat.subtasks");
29084
- const label = _nullishCoalesce(runLabel, () => ( (runState ? _nullishCoalesce(_optionalChain([runStateLabels, 'optionalAccess', _612 => _612[runState]]), () => ( localizeUiCopy(RUN_STATE_LABELS, t)[runState])) : "")));
28871
+ const label = _nullishCoalesce(runLabel, () => ( (runState ? _nullishCoalesce(_optionalChain([runStateLabels, 'optionalAccess', _556 => _556[runState]]), () => ( localizeUiCopy(RUN_STATE_LABELS, t)[runState])) : "")));
29085
28872
  const elapsedText = typeof elapsedSeconds === "number" && Number.isFinite(elapsedSeconds) && elapsedSeconds >= 1 ? ` \xB7 ${Math.floor(elapsedSeconds)}s` : "";
29086
28873
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
29087
28874
  "div",
@@ -29225,7 +29012,7 @@ function FilePreviewDialog({
29225
29012
  if (emptyMessage === void 0) emptyMessage = t("browser.noPreview");
29226
29013
  if (openWithLabel === void 0) openWithLabel = t("browser.openWith");
29227
29014
  const titleId = _react.useId.call(void 0, );
29228
- const hasOpenWith = !!_optionalChain([openWithOptions, 'optionalAccess', _613 => _613.length]);
29015
+ const hasOpenWith = !!_optionalChain([openWithOptions, 'optionalAccess', _557 => _557.length]);
29229
29016
  const menuEntries = (_nullishCoalesce(openWithOptions, () => ( []))).map((option) => {
29230
29017
  if (option.kind === "divider") return { ...MENU_SEPARATOR, key: option.id };
29231
29018
  if (option.kind === "header") return { type: "group", key: option.id, label: option.name };
@@ -29311,8 +29098,8 @@ function FilePreviewDialog({
29311
29098
  width: 220,
29312
29099
  ariaLabel: openWithLabel,
29313
29100
  onSelect: (key) => {
29314
- const option = _optionalChain([openWithOptions, 'optionalAccess', _614 => _614.find, 'call', _615 => _615((o) => o.id === key)]);
29315
- if (option) _optionalChain([onOpenWith, 'optionalCall', _616 => _616(option)]);
29101
+ const option = _optionalChain([openWithOptions, 'optionalAccess', _558 => _558.find, 'call', _559 => _559((o) => o.id === key)]);
29102
+ if (option) _optionalChain([onOpenWith, 'optionalCall', _560 => _560(option)]);
29316
29103
  },
29317
29104
  trigger: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Button, { type: "button", variant: "ghost", size: "sm", className: ICON_BTN, children: openWithLabel })
29318
29105
  }
@@ -29412,7 +29199,7 @@ function MarkdownPreviewDialog({
29412
29199
  else await navigator.clipboard.writeText(source);
29413
29200
  setCopied(true);
29414
29201
  window.setTimeout(() => setCopied(false), 2e3);
29415
- } catch (e19) {
29202
+ } catch (e17) {
29416
29203
  }
29417
29204
  };
29418
29205
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -29483,7 +29270,7 @@ function DesktopChatMessageView({
29483
29270
  onRunCommand
29484
29271
  }) {
29485
29272
  const { t } = useUiLocale();
29486
- const showActions = actions && !streaming && Boolean(_optionalChain([source, 'optionalAccess', _617 => _617.trim, 'call', _618 => _618()]));
29273
+ const showActions = actions && !streaming && Boolean(_optionalChain([source, 'optionalAccess', _561 => _561.trim, 'call', _562 => _562()]));
29487
29274
  const markdownProps = {
29488
29275
  onLocalPathClick,
29489
29276
  onLocalFileCardOpen,
@@ -29573,18 +29360,18 @@ function DesktopChatMessageActions({
29573
29360
  const [copied, setCopied] = _react.useState.call(void 0, false);
29574
29361
  const [previewOpen, setPreviewOpen] = _react.useState.call(void 0, false);
29575
29362
  const [dislikeOpen, setDislikeOpen] = _react.useState.call(void 0, false);
29576
- const vote = _nullishCoalesce(_optionalChain([feedback, 'optionalAccess', _619 => _619.vote]), () => ( null));
29363
+ const vote = _nullishCoalesce(_optionalChain([feedback, 'optionalAccess', _563 => _563.vote]), () => ( null));
29577
29364
  const copy = _react.useCallback.call(void 0, async () => {
29578
29365
  try {
29579
29366
  if (onCopy) await onCopy(source);
29580
29367
  else await navigator.clipboard.writeText(source);
29581
29368
  setCopied(true);
29582
29369
  window.setTimeout(() => setCopied(false), 2e3);
29583
- } catch (e20) {
29370
+ } catch (e18) {
29584
29371
  }
29585
29372
  }, [onCopy, source]);
29586
29373
  const submitDislike = (submission) => {
29587
- _optionalChain([onFeedbackChange, 'optionalCall', _620 => _620({
29374
+ _optionalChain([onFeedbackChange, 'optionalCall', _564 => _564({
29588
29375
  vote: "down",
29589
29376
  reasons: submission.reasons,
29590
29377
  ...submission.detail ? { detail: submission.detail } : {}
@@ -29605,18 +29392,18 @@ function DesktopChatMessageActions({
29605
29392
  // active 只再管 aria-pressed 与色。
29606
29393
  icon: vote === "up" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LikeFill, {}) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Like, {}),
29607
29394
  active: vote === "up",
29608
- onSelect: () => _optionalChain([onFeedbackChange, 'optionalCall', _621 => _621(vote === "up" ? null : { vote: "up" })])
29395
+ onSelect: () => _optionalChain([onFeedbackChange, 'optionalCall', _565 => _565(vote === "up" ? null : { vote: "up" })])
29609
29396
  },
29610
29397
  {
29611
29398
  key: "dislike",
29612
29399
  label: t("chat.dislike"),
29613
29400
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Dislike, {}),
29614
29401
  active: vote === "down",
29615
- onSelect: () => vote === "down" ? _optionalChain([onFeedbackChange, 'optionalCall', _622 => _622(null)]) : setDislikeOpen(true)
29402
+ onSelect: () => vote === "down" ? _optionalChain([onFeedbackChange, 'optionalCall', _566 => _566(null)]) : setDislikeOpen(true)
29616
29403
  },
29617
29404
  { key: "copy", label: t("common.copy"), icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Copy, {}), done: copied, onSelect: copy },
29618
- { key: "branch", label: t("chat.branch"), icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Branch, {}), onSelect: () => _optionalChain([onBranch, 'optionalCall', _623 => _623()]) },
29619
- { key: "share", label: t("common.share"), icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Share, {}), onSelect: () => _optionalChain([onShare, 'optionalCall', _624 => _624()]) },
29405
+ { key: "branch", label: t("chat.branch"), icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Branch, {}), onSelect: () => _optionalChain([onBranch, 'optionalCall', _567 => _567()]) },
29406
+ { key: "share", label: t("common.share"), icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Share, {}), onSelect: () => _optionalChain([onShare, 'optionalCall', _568 => _568()]) },
29620
29407
  { key: "preview", label: t("chat.markdown"), icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Doc, {}), onSelect: () => setPreviewOpen(true) }
29621
29408
  ],
29622
29409
  trailing: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
@@ -29715,10 +29502,10 @@ function DesktopChatUserTurnView({
29715
29502
  className: attachment.kind === "image" && attachment.previewUrl ? "cursor-zoom-in gap-0 border-0 bg-transparent p-0 hover:border-0 hover:bg-transparent" : `flex items-center gap-2 rounded-[var(--ow-radius-md)] border border-[color:var(--ow-border-strong)] bg-[var(--ow-bg)] px-[11px] py-[7px] text-left font-normal text-ow-fs-ui leading-[1.2] text-[color:var(--ow-text-2)] ow-focus-ring${attachment.openable ? " cursor-pointer hover:border-[color:var(--ow-info)] hover:bg-[var(--ow-info-tint)]" : ""}`,
29716
29503
  title: _nullishCoalesce(attachment.title, () => ( attachment.name)),
29717
29504
  draggable: attachment.draggable,
29718
- onDragStart: (event) => _optionalChain([onAttachmentDragStart, 'optionalCall', _625 => _625(event, attachment, index)]),
29719
- onClick: () => _optionalChain([onAttachmentClick, 'optionalCall', _626 => _626(attachment, index)]),
29720
- onDoubleClick: () => _optionalChain([onAttachmentDoubleClick, 'optionalCall', _627 => _627(attachment, index)]),
29721
- onKeyDown: (event) => _optionalChain([onAttachmentKeyDown, 'optionalCall', _628 => _628(event, attachment, index)]),
29505
+ onDragStart: (event) => _optionalChain([onAttachmentDragStart, 'optionalCall', _569 => _569(event, attachment, index)]),
29506
+ onClick: () => _optionalChain([onAttachmentClick, 'optionalCall', _570 => _570(attachment, index)]),
29507
+ onDoubleClick: () => _optionalChain([onAttachmentDoubleClick, 'optionalCall', _571 => _571(attachment, index)]),
29508
+ onKeyDown: (event) => _optionalChain([onAttachmentKeyDown, 'optionalCall', _572 => _572(event, attachment, index)]),
29722
29509
  children: attachment.kind === "image" && attachment.previewUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
29723
29510
  "img",
29724
29511
  {
@@ -29765,7 +29552,7 @@ function DesktopChatCompressionDivider({
29765
29552
  const handleExpandedChange = _react.useCallback.call(void 0,
29766
29553
  (next) => {
29767
29554
  setExpanded(next);
29768
- _optionalChain([onExpandedChange, 'optionalCall', _629 => _629(next)]);
29555
+ _optionalChain([onExpandedChange, 'optionalCall', _573 => _573(next)]);
29769
29556
  },
29770
29557
  [onExpandedChange]
29771
29558
  );
@@ -29822,7 +29609,7 @@ function DesktopChatReconnectDivider({
29822
29609
  const toggle = _react.useCallback.call(void 0, () => {
29823
29610
  setExpanded((value) => {
29824
29611
  const next = !value;
29825
- _optionalChain([onExpandedChange, 'optionalCall', _630 => _630(next)]);
29612
+ _optionalChain([onExpandedChange, 'optionalCall', _574 => _574(next)]);
29826
29613
  return next;
29827
29614
  });
29828
29615
  }, [onExpandedChange]);
@@ -29880,7 +29667,7 @@ function DesktopChatReconnectDivider({
29880
29667
  title: errorTitle,
29881
29668
  meta: errorVersion,
29882
29669
  detail: detail.trim() || void 0,
29883
- children: _optionalChain([errorMessage, 'optionalAccess', _631 => _631.trim, 'call', _632 => _632()]) || detail.trim() || "Backend chat stream returned an invalid response."
29670
+ children: _optionalChain([errorMessage, 'optionalAccess', _575 => _575.trim, 'call', _576 => _576()]) || detail.trim() || "Backend chat stream returned an invalid response."
29884
29671
  }
29885
29672
  )
29886
29673
  }
@@ -29902,7 +29689,7 @@ function DesktopChatUserMeta({
29902
29689
  else await navigator.clipboard.writeText(text);
29903
29690
  setCopied(true);
29904
29691
  window.setTimeout(() => setCopied(false), 1600);
29905
- } catch (e21) {
29692
+ } catch (e19) {
29906
29693
  }
29907
29694
  }, [onCopy, text]);
29908
29695
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -30211,7 +29998,7 @@ function DesktopConnectorDetailView({
30211
29998
  danger: action.variant === "danger",
30212
29999
  disabled: action.disabled
30213
30000
  })),
30214
- onMenuSelect: (key) => _optionalChain([overflowActions, 'access', _633 => _633.find, 'call', _634 => _634((action) => action.id === key), 'optionalAccess', _635 => _635.onAction, 'optionalCall', _636 => _636()])
30001
+ onMenuSelect: (key) => _optionalChain([overflowActions, 'access', _577 => _577.find, 'call', _578 => _578((action) => action.id === key), 'optionalAccess', _579 => _579.onAction, 'optionalCall', _580 => _580()])
30215
30002
  }
30216
30003
  ),
30217
30004
  backLabel,
@@ -30336,6 +30123,7 @@ function DesktopConnectorDetailView({
30336
30123
 
30337
30124
  function DesktopHomeView({
30338
30125
  title = void 0,
30126
+ brandLogoSrc,
30339
30127
  backdrop,
30340
30128
  capsules,
30341
30129
  mounts,
@@ -30358,7 +30146,15 @@ function DesktopHomeView({
30358
30146
  ),
30359
30147
  children: [
30360
30148
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { "data-slot": "desktop-home-hero", className: "flex items-center gap-[14px]", children: [
30361
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, OrbitworkMark, { variant: "auto", size: 34 }),
30149
+ brandLogoSrc ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30150
+ "img",
30151
+ {
30152
+ "data-ow-part": "brand-logo",
30153
+ src: brandLogoSrc,
30154
+ alt: "",
30155
+ className: "h-[34px] w-[34px] object-contain"
30156
+ }
30157
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, OrbitworkMark, { variant: "auto", size: 34 }),
30362
30158
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30363
30159
  "h1",
30364
30160
  {
@@ -30462,7 +30258,7 @@ function defaultLoginLabels(t) {
30462
30258
  };
30463
30259
  }
30464
30260
  var LOGIN_PANE = "flex w-full max-w-[320px] flex-col";
30465
- var LOGIN_MARK = "mx-auto mb-10 block w-[46px] [aspect-ratio:73.4/45.3]";
30261
+ var LOGIN_MARK = "mx-auto mb-10 block h-[46px] w-[46px] object-contain";
30466
30262
  var LOGIN_HEADING = "mb-3 text-center font-[family-name:var(--ow-font-sans)] text-ow-fs-title font-bold text-[color:var(--ow-text)]";
30467
30263
  var LOGIN_SUBTITLE = "mx-auto mb-8 max-w-[320px] text-pretty text-center font-[family-name:var(--ow-font-sans)] text-ow-fs-ui font-normal leading-[1.6] text-[color:var(--ow-text-3)]";
30468
30264
  var LOGIN_LINK = "cursor-pointer rounded-[var(--ow-radius-xs)] border-0 bg-transparent p-0 font-[family-name:var(--ow-font-sans)] text-ow-fs-body-sm font-normal leading-none text-[color:var(--ow-link)] transition-[color] duration-[var(--ow-dur-1)] ease-[var(--ow-ease-beacon)] hover:text-[color:var(--ow-link-hover)] hover:underline active:text-[color:var(--ow-link-hover)] focus-visible:[outline:var(--ow-focus-ring-w)_solid_var(--ow-focus-ring)] focus-visible:outline-offset-[var(--ow-focus-ring-offset)]";
@@ -30517,14 +30313,14 @@ var DesktopLoginView = _react.forwardRef.call(void 0, function DesktopLoginView2
30517
30313
  const providersEnabled = Boolean(onQrLogin) && visibleProviders.length > 0;
30518
30314
  const submitPassword = () => {
30519
30315
  if (!canSubmitPassword) return;
30520
- _optionalChain([onPasswordLogin, 'optionalCall', _637 => _637(identifier.trim(), password)]);
30316
+ _optionalChain([onPasswordLogin, 'optionalCall', _581 => _581(identifier.trim(), password)]);
30521
30317
  };
30522
30318
  const submitMfa = () => {
30523
30319
  if (!onCompleteMfa || mfaCode.trim().length === 0 || mfaSubmitting) return;
30524
30320
  onCompleteMfa(mfaCode.trim());
30525
30321
  };
30526
30322
  const retryLogin = () => {
30527
- if (qr) _optionalChain([onQrLogin, 'optionalCall', _638 => _638(qr.providerId)]);
30323
+ if (qr) _optionalChain([onQrLogin, 'optionalCall', _582 => _582(qr.providerId)]);
30528
30324
  };
30529
30325
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
30530
30326
  "div",
@@ -30673,7 +30469,7 @@ var DesktopLoginView = _react.forwardRef.call(void 0, function DesktopLoginView2
30673
30469
  disabled: loading,
30674
30470
  "aria-label": copy.providerLogin(provider.displayName),
30675
30471
  "aria-busy": loading || void 0,
30676
- onClick: () => _optionalChain([onQrLogin, 'optionalCall', _639 => _639(provider.id)]),
30472
+ onClick: () => _optionalChain([onQrLogin, 'optionalCall', _583 => _583(provider.id)]),
30677
30473
  children: Icon2 === Globe ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: provider.displayName }) : null
30678
30474
  }
30679
30475
  )
@@ -30765,7 +30561,7 @@ var DesktopLoginView = _react.forwardRef.call(void 0, function DesktopLoginView2
30765
30561
  {
30766
30562
  "data-ow-part": "title",
30767
30563
  className: "font-[family-name:var(--ow-font-sans)] text-ow-fs-ui font-semibold leading-none text-[color:var(--ow-text)]",
30768
- children: copy.qrTitle(_optionalChain([qr, 'optionalAccess', _640 => _640.providerName]))
30564
+ children: copy.qrTitle(_optionalChain([qr, 'optionalAccess', _584 => _584.providerName]))
30769
30565
  }
30770
30566
  ),
30771
30567
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { "aria-hidden": "true", className: "w-[52px]" })
@@ -30831,7 +30627,7 @@ var DesktopLoginView = _react.forwardRef.call(void 0, function DesktopLoginView2
30831
30627
  children: copy.openDesktopClient
30832
30628
  }
30833
30629
  ),
30834
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "data-ow-part": "hint", className: cn(QR_HINT, "[&_b]:font-semibold"), children: copy.mobilePrompt(_nullishCoalesce(_optionalChain([qr, 'optionalAccess', _641 => _641.providerName]), () => ( copy.defaultMobileApp)), Boolean(_optionalChain([qr, 'optionalAccess', _642 => _642.desktopOpenUrl]))) }),
30630
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "data-ow-part": "hint", className: cn(QR_HINT, "[&_b]:font-semibold"), children: copy.mobilePrompt(_nullishCoalesce(_optionalChain([qr, 'optionalAccess', _585 => _585.providerName]), () => ( copy.defaultMobileApp)), Boolean(_optionalChain([qr, 'optionalAccess', _586 => _586.desktopOpenUrl]))) }),
30835
30631
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30836
30632
  "div",
30837
30633
  {
@@ -30917,7 +30713,7 @@ var DesktopLibraryAuthorizationDialog = _react.forwardRef.call(void 0,
30917
30713
  if (appName === void 0) appName = t("common.library");
30918
30714
  const webviewHostRef = _react.useRef.call(void 0, null);
30919
30715
  const [appIconFailed, setAppIconFailed] = _react.useState.call(void 0, false);
30920
- const appIconSource = _optionalChain([appIcon, 'optionalAccess', _643 => _643.trim, 'call', _644 => _644()]) && !appIconFailed ? appIcon.trim() : null;
30716
+ const appIconSource = _optionalChain([appIcon, 'optionalAccess', _587 => _587.trim, 'call', _588 => _588()]) && !appIconFailed ? appIcon.trim() : null;
30921
30717
  const copy = {
30922
30718
  dialogTitle: t("interface.authorizeAccesse9081"),
30923
30719
  dialogSubtitle: t("authorization.secureNamed", { value0: appName, value1: hostName }),
@@ -31558,7 +31354,7 @@ var DesktopPet = _react.forwardRef.call(void 0, function DesktopPet2({
31558
31354
  try {
31559
31355
  const saved = localStorage.getItem(persistKey);
31560
31356
  if (saved) return JSON.parse(saved);
31561
- } catch (e22) {
31357
+ } catch (e20) {
31562
31358
  }
31563
31359
  }
31564
31360
  return initialPosition;
@@ -31574,7 +31370,7 @@ var DesktopPet = _react.forwardRef.call(void 0, function DesktopPet2({
31574
31370
  fetch(`${petBaseUrl}/pet.json`).then((response) => {
31575
31371
  if (!response.ok) throw new Error(uiMessage("error.desktopPetManifestLoadFailed"));
31576
31372
  return response.json();
31577
- }).then(setManifest).catch((error) => _optionalChain([onError, 'optionalCall', _645 => _645(error instanceof Error ? error : new Error(String(error)))]));
31373
+ }).then(setManifest).catch((error) => _optionalChain([onError, 'optionalCall', _589 => _589(error instanceof Error ? error : new Error(String(error)))]));
31578
31374
  }, [manifestProp, petBaseUrl, onError]);
31579
31375
  _react.useEffect.call(void 0, () => setState(animation), [animation]);
31580
31376
  _react.useEffect.call(void 0, () => {
@@ -31614,7 +31410,7 @@ var DesktopPet = _react.forwardRef.call(void 0, function DesktopPet2({
31614
31410
  }, []);
31615
31411
  const lookAt = _react.useCallback.call(void 0,
31616
31412
  (degrees) => {
31617
- if (degrees === null || !_optionalChain([manifest, 'optionalAccess', _646 => _646.lookDirections, 'optionalAccess', _647 => _647.length])) return setLookCell(null);
31413
+ if (degrees === null || !_optionalChain([manifest, 'optionalAccess', _590 => _590.lookDirections, 'optionalAccess', _591 => _591.length])) return setLookCell(null);
31618
31414
  const normalized = (degrees % 360 + 360) % 360;
31619
31415
  const distance = (degree) => Math.min(Math.abs(degree - normalized), 360 - Math.abs(degree - normalized));
31620
31416
  const nearest = manifest.lookDirections.reduce(
@@ -31638,7 +31434,7 @@ var DesktopPet = _react.forwardRef.call(void 0, function DesktopPet2({
31638
31434
  lookAt,
31639
31435
  say,
31640
31436
  hide: () => {
31641
- if (nativeWindow) _optionalChain([onHideRequest, 'optionalCall', _648 => _648()]);
31437
+ if (nativeWindow) _optionalChain([onHideRequest, 'optionalCall', _592 => _592()]);
31642
31438
  else setHidden(true);
31643
31439
  },
31644
31440
  show: () => setHidden(false),
@@ -31648,7 +31444,7 @@ var DesktopPet = _react.forwardRef.call(void 0, function DesktopPet2({
31648
31444
  );
31649
31445
  _react.useImperativeHandle.call(void 0, ref, () => handle, [handle]);
31650
31446
  _react.useEffect.call(void 0, () => {
31651
- if (manifest) _optionalChain([onReady, 'optionalCall', _649 => _649(handle, manifest)]);
31447
+ if (manifest) _optionalChain([onReady, 'optionalCall', _593 => _593(handle, manifest)]);
31652
31448
  }, [manifest, handle, onReady]);
31653
31449
  _react.useEffect.call(void 0, () => {
31654
31450
  const root = rootRef.current;
@@ -31675,16 +31471,16 @@ var DesktopPet = _react.forwardRef.call(void 0, function DesktopPet2({
31675
31471
  return;
31676
31472
  }
31677
31473
  const root = rootRef.current;
31678
- const rect = _optionalChain([root, 'optionalAccess', _650 => _650.getBoundingClientRect, 'call', _651 => _651()]);
31474
+ const rect = _optionalChain([root, 'optionalAccess', _594 => _594.getBoundingClientRect, 'call', _595 => _595()]);
31679
31475
  if (!root || !rect) return;
31680
31476
  const parent = root.offsetParent;
31681
- const parentRect = _optionalChain([parent, 'optionalAccess', _652 => _652.getBoundingClientRect, 'call', _653 => _653()]);
31477
+ const parentRect = _optionalChain([parent, 'optionalAccess', _596 => _596.getBoundingClientRect, 'call', _597 => _597()]);
31682
31478
  const fixed = window.getComputedStyle(root).position === "fixed";
31683
31479
  drag.current = {
31684
31480
  x: event.clientX,
31685
31481
  y: event.clientY,
31686
- left: fixed ? rect.left : rect.left - (_nullishCoalesce(_optionalChain([parentRect, 'optionalAccess', _654 => _654.left]), () => ( 0))) - (_nullishCoalesce(_optionalChain([parent, 'optionalAccess', _655 => _655.clientLeft]), () => ( 0))) + (_nullishCoalesce(_optionalChain([parent, 'optionalAccess', _656 => _656.scrollLeft]), () => ( 0))),
31687
- top: fixed ? rect.top : rect.top - (_nullishCoalesce(_optionalChain([parentRect, 'optionalAccess', _657 => _657.top]), () => ( 0))) - (_nullishCoalesce(_optionalChain([parent, 'optionalAccess', _658 => _658.clientTop]), () => ( 0))) + (_nullishCoalesce(_optionalChain([parent, 'optionalAccess', _659 => _659.scrollTop]), () => ( 0)))
31482
+ left: fixed ? rect.left : rect.left - (_nullishCoalesce(_optionalChain([parentRect, 'optionalAccess', _598 => _598.left]), () => ( 0))) - (_nullishCoalesce(_optionalChain([parent, 'optionalAccess', _599 => _599.clientLeft]), () => ( 0))) + (_nullishCoalesce(_optionalChain([parent, 'optionalAccess', _600 => _600.scrollLeft]), () => ( 0))),
31483
+ top: fixed ? rect.top : rect.top - (_nullishCoalesce(_optionalChain([parentRect, 'optionalAccess', _601 => _601.top]), () => ( 0))) - (_nullishCoalesce(_optionalChain([parent, 'optionalAccess', _602 => _602.clientTop]), () => ( 0))) + (_nullishCoalesce(_optionalChain([parent, 'optionalAccess', _603 => _603.scrollTop]), () => ( 0)))
31688
31484
  };
31689
31485
  event.currentTarget.setPointerCapture(event.pointerId);
31690
31486
  };
@@ -31694,9 +31490,9 @@ var DesktopPet = _react.forwardRef.call(void 0, function DesktopPet2({
31694
31490
  if (!native.started && Math.hypot(event.screenX - native.startX, event.screenY - native.startY) >= 4) {
31695
31491
  native.started = true;
31696
31492
  suppressActivation.current = true;
31697
- _optionalChain([onNativeDrag, 'optionalCall', _660 => _660({ phase: "start", screenX: native.startX, screenY: native.startY })]);
31493
+ _optionalChain([onNativeDrag, 'optionalCall', _604 => _604({ phase: "start", screenX: native.startX, screenY: native.startY })]);
31698
31494
  }
31699
- if (native.started) _optionalChain([onNativeDrag, 'optionalCall', _661 => _661({ phase: "move", screenX: event.screenX, screenY: event.screenY })]);
31495
+ if (native.started) _optionalChain([onNativeDrag, 'optionalCall', _605 => _605({ phase: "move", screenX: event.screenX, screenY: event.screenY })]);
31700
31496
  return;
31701
31497
  }
31702
31498
  if (drag.current) {
@@ -31717,7 +31513,7 @@ var DesktopPet = _react.forwardRef.call(void 0, function DesktopPet2({
31717
31513
  const pointerUp = (event) => {
31718
31514
  const native = nativeDrag.current;
31719
31515
  if (native && native.pointerId === event.pointerId) {
31720
- if (native.started) _optionalChain([onNativeDrag, 'optionalCall', _662 => _662({ phase: "end", screenX: event.screenX, screenY: event.screenY })]);
31516
+ if (native.started) _optionalChain([onNativeDrag, 'optionalCall', _606 => _606({ phase: "end", screenX: event.screenX, screenY: event.screenY })]);
31721
31517
  nativeDrag.current = null;
31722
31518
  return;
31723
31519
  }
@@ -31725,7 +31521,7 @@ var DesktopPet = _react.forwardRef.call(void 0, function DesktopPet2({
31725
31521
  drag.current = null;
31726
31522
  };
31727
31523
  const activate = (callback) => {
31728
- if (!suppressActivation.current) _optionalChain([callback, 'optionalCall', _663 => _663()]);
31524
+ if (!suppressActivation.current) _optionalChain([callback, 'optionalCall', _607 => _607()]);
31729
31525
  };
31730
31526
  const rootPosition = nativeWindow ? {} : pos;
31731
31527
  const anchor = nativeWindow ? nativeAnchor : resolveAnchor(pos);
@@ -31792,7 +31588,7 @@ var DesktopPet = _react.forwardRef.call(void 0, function DesktopPet2({
31792
31588
  const submitFeedback = (sessionId) => {
31793
31589
  const text = feedbackText.trim();
31794
31590
  if (!text) return;
31795
- _optionalChain([onSessionFeedback, 'optionalCall', _664 => _664(sessionId, text)]);
31591
+ _optionalChain([onSessionFeedback, 'optionalCall', _608 => _608(sessionId, text)]);
31796
31592
  setFeedbackText("");
31797
31593
  setFeedbackSessionId(null);
31798
31594
  };
@@ -31892,7 +31688,7 @@ var DesktopPet = _react.forwardRef.call(void 0, function DesktopPet2({
31892
31688
  title: t("common.stop"),
31893
31689
  "aria-label": t("common.stop"),
31894
31690
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Stop, { "aria-hidden": "true" }),
31895
- onClick: () => _optionalChain([onSessionStop, 'optionalCall', _665 => _665(session.sessionId)])
31691
+ onClick: () => _optionalChain([onSessionStop, 'optionalCall', _609 => _609(session.sessionId)])
31896
31692
  }
31897
31693
  )
31898
31694
  ] })
@@ -31969,7 +31765,7 @@ var DesktopPet = _react.forwardRef.call(void 0, function DesktopPet2({
31969
31765
  onPointerDown: pointerDown,
31970
31766
  onContextMenu: (event) => {
31971
31767
  event.preventDefault();
31972
- _optionalChain([onContextMenuRequest, 'optionalCall', _666 => _666()]);
31768
+ _optionalChain([onContextMenuRequest, 'optionalCall', _610 => _610()]);
31973
31769
  },
31974
31770
  onClick: () => activate(onClick),
31975
31771
  onDoubleClick: () => activate(onDoubleClick),
@@ -32085,7 +31881,7 @@ function CompletedProcessDetails({
32085
31881
  onClick: () => {
32086
31882
  const next = !open;
32087
31883
  setOpen(next);
32088
- _optionalChain([onOpenChange, 'optionalCall', _667 => _667(next)]);
31884
+ _optionalChain([onOpenChange, 'optionalCall', _611 => _611(next)]);
32089
31885
  },
32090
31886
  children: [
32091
31887
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: title }),
@@ -32304,10 +32100,10 @@ function DesktopSettingsMemorySection({
32304
32100
  const activeEditingId = editingId !== void 0 ? editingId : innerEditingId;
32305
32101
  const total = sections.reduce((sum, section) => sum + section.items.length, 0);
32306
32102
  const editingItem = activeEditingId ? sections.flatMap((section) => section.items).find((item) => item.id === activeEditingId) : void 0;
32307
- const draft = draftState.id === activeEditingId ? draftState.text : _nullishCoalesce(_optionalChain([editingItem, 'optionalAccess', _668 => _668.text]), () => ( ""));
32103
+ const draft = draftState.id === activeEditingId ? draftState.text : _nullishCoalesce(_optionalChain([editingItem, 'optionalAccess', _612 => _612.text]), () => ( ""));
32308
32104
  const setQuery = (value) => {
32309
32105
  if (query === void 0) setInnerQuery(value);
32310
- _optionalChain([onQueryChange, 'optionalCall', _669 => _669(value)]);
32106
+ _optionalChain([onQueryChange, 'optionalCall', _613 => _613(value)]);
32311
32107
  };
32312
32108
  const setDraft = (value) => {
32313
32109
  setSaveError(null);
@@ -32317,13 +32113,13 @@ function DesktopSettingsMemorySection({
32317
32113
  setSaveError(null);
32318
32114
  setDraftState({ id: item.id, text: item.text });
32319
32115
  if (editingId === void 0) setInnerEditingId(item.id);
32320
- _optionalChain([onEdit, 'optionalCall', _670 => _670(item)]);
32116
+ _optionalChain([onEdit, 'optionalCall', _614 => _614(item)]);
32321
32117
  };
32322
32118
  const cancelEdit = () => {
32323
32119
  setSaveError(null);
32324
32120
  setDraftState({ id: null, text: "" });
32325
32121
  if (editingId === void 0) setInnerEditingId(null);
32326
- _optionalChain([onCancelEdit, 'optionalCall', _671 => _671()]);
32122
+ _optionalChain([onCancelEdit, 'optionalCall', _615 => _615()]);
32327
32123
  };
32328
32124
  const commit = async (item) => {
32329
32125
  const next = draft.trim();
@@ -32331,12 +32127,12 @@ function DesktopSettingsMemorySection({
32331
32127
  setSaving(true);
32332
32128
  setSaveError(null);
32333
32129
  try {
32334
- await _optionalChain([onSave, 'optionalCall', _672 => _672(item, next)]);
32130
+ await _optionalChain([onSave, 'optionalCall', _616 => _616(item, next)]);
32335
32131
  setDraftState({ id: null, text: "" });
32336
32132
  if (editingId === void 0) setInnerEditingId(null);
32337
32133
  } catch (error) {
32338
32134
  const detail = error instanceof Error ? error.message : typeof error === "string" ? error : void 0;
32339
- setSaveError({ id: item.id, detail: _optionalChain([detail, 'optionalAccess', _673 => _673.trim, 'call', _674 => _674()]) || void 0 });
32135
+ setSaveError({ id: item.id, detail: _optionalChain([detail, 'optionalAccess', _617 => _617.trim, 'call', _618 => _618()]) || void 0 });
32340
32136
  } finally {
32341
32137
  setSaving(false);
32342
32138
  }
@@ -32401,7 +32197,7 @@ function DesktopSettingsMemorySection({
32401
32197
  className: "[&_[data-ow-part=shell]]:[border-radius:var(--ow-radius-sm)] [&_textarea]:resize-none [&_textarea]:min-h-0 [&_textarea]:leading-[1.6]"
32402
32198
  }
32403
32199
  ),
32404
- _optionalChain([saveError, 'optionalAccess', _675 => _675.id]) === item.id && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "data-ow-part": "save-error", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InlineMessage, { variant: "error", detail: saveError.detail, children: saveErrorMessage }) }),
32200
+ _optionalChain([saveError, 'optionalAccess', _619 => _619.id]) === item.id && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "data-ow-part": "save-error", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InlineMessage, { variant: "error", detail: saveError.detail, children: saveErrorMessage }) }),
32405
32201
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-2 pt-0.5", children: [
32406
32202
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32407
32203
  Button,
@@ -32410,7 +32206,7 @@ function DesktopSettingsMemorySection({
32410
32206
  size: "sm",
32411
32207
  disabled: !draft.trim() || saving,
32412
32208
  onClick: () => void commit(item),
32413
- children: _optionalChain([saveError, 'optionalAccess', _676 => _676.id]) === item.id ? t("common.retry") : t("common.save")
32209
+ children: _optionalChain([saveError, 'optionalAccess', _620 => _620.id]) === item.id ? t("common.retry") : t("common.save")
32414
32210
  }
32415
32211
  ),
32416
32212
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Button, { variant: "secondary", size: "sm", disabled: saving, onClick: cancelEdit, children: t("common.cancel") })
@@ -32451,7 +32247,7 @@ function DesktopSettingsMemorySection({
32451
32247
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Trash, {}),
32452
32248
  title: t("common.delete"),
32453
32249
  "aria-label": t("common.delete"),
32454
- onClick: () => _optionalChain([onDelete, 'optionalCall', _677 => _677(item)])
32250
+ onClick: () => _optionalChain([onDelete, 'optionalCall', _621 => _621(item)])
32455
32251
  }
32456
32252
  )
32457
32253
  ] })
@@ -32482,7 +32278,7 @@ function DesktopSettingsView({
32482
32278
  }) {
32483
32279
  const { t } = useUiLocale();
32484
32280
  const active = items.find((item) => item.id === activeId);
32485
- const desc = _nullishCoalesce(description, () => ( _optionalChain([active, 'optionalAccess', _678 => _678.description])));
32281
+ const desc = _nullishCoalesce(description, () => ( _optionalChain([active, 'optionalAccess', _622 => _622.description])));
32486
32282
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
32487
32283
  Dialog,
32488
32284
  {
@@ -32551,7 +32347,7 @@ function DesktopSettingsView({
32551
32347
  {
32552
32348
  "data-ow-part": "title",
32553
32349
  className: "m-0 font-display text-ow-fs-title font-medium leading-[var(--ow-lh-title)] tracking-[var(--ow-ls-title)] text-ow-text",
32554
- children: _nullishCoalesce(title, () => ( _optionalChain([active, 'optionalAccess', _679 => _679.label])))
32350
+ children: _nullishCoalesce(title, () => ( _optionalChain([active, 'optionalAccess', _623 => _623.label])))
32555
32351
  }
32556
32352
  ),
32557
32353
  desc && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -32750,7 +32546,7 @@ var SidebarShell = _react.forwardRef.call(void 0, function SidebarShell2({
32750
32546
  const handleMouseMove = (e) => {
32751
32547
  const delta = e.clientX - startX.current;
32752
32548
  const newWidth = Math.min(maxWidth, Math.max(minWidth, startWidth.current + delta));
32753
- _optionalChain([onWidthChange, 'optionalCall', _680 => _680(newWidth)]);
32549
+ _optionalChain([onWidthChange, 'optionalCall', _624 => _624(newWidth)]);
32754
32550
  };
32755
32551
  const handleMouseUp = () => setDragging(false);
32756
32552
  document.addEventListener("mousemove", handleMouseMove);
@@ -32822,7 +32618,7 @@ var SidebarShell = _react.forwardRef.call(void 0, function SidebarShell2({
32822
32618
  className: "w-[var(--ow-traffic-inset)] h-full flex-shrink-0"
32823
32619
  }
32824
32620
  ),
32825
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SidebarToggle, { collapsed, onToggle: () => _optionalChain([onCollapsedChange, 'optionalCall', _681 => _681(!collapsed)]) })
32621
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SidebarToggle, { collapsed, onToggle: () => _optionalChain([onCollapsedChange, 'optionalCall', _625 => _625(!collapsed)]) })
32826
32622
  ]
32827
32623
  }
32828
32624
  ),
@@ -32857,6 +32653,7 @@ var SidebarShell = _react.forwardRef.call(void 0, function SidebarShell2({
32857
32653
 
32858
32654
  function DesktopSidebarView(props) {
32859
32655
  const { t } = useUiLocale();
32656
+ const { branding } = useBranding();
32860
32657
  const { projects } = props;
32861
32658
  const projectsLabel = _nullishCoalesce(props.projectsLabel, () => ( t("sidebar.projects")));
32862
32659
  const { isImeEnter, onCompositionStart, onCompositionEnd } = useImeAwareEnter();
@@ -32865,7 +32662,7 @@ function DesktopSidebarView(props) {
32865
32662
  const userMenuTrigger = _react.useRef.call(void 0, null);
32866
32663
  const closeUserMenu = (restoreFocus) => {
32867
32664
  setUserMenu(null);
32868
- if (restoreFocus) _optionalChain([userMenuTrigger, 'access', _682 => _682.current, 'optionalAccess', _683 => _683.focus, 'call', _684 => _684()]);
32665
+ if (restoreFocus) _optionalChain([userMenuTrigger, 'access', _626 => _626.current, 'optionalAccess', _627 => _627.focus, 'call', _628 => _628()]);
32869
32666
  };
32870
32667
  const [threadMenu, setThreadMenu] = _react.useState.call(void 0, null);
32871
32668
  const [projectMenu, setProjectMenu] = _react.useState.call(void 0, null);
@@ -32910,7 +32707,7 @@ function DesktopSidebarView(props) {
32910
32707
  }, [userMenu]);
32911
32708
  const autoInstallShownFor = _react.useRef.call(void 0, null);
32912
32709
  _react.useEffect.call(void 0, () => {
32913
- if (_optionalChain([props, 'access', _685 => _685.update, 'optionalAccess', _686 => _686.state]) !== "ready") {
32710
+ if (_optionalChain([props, 'access', _629 => _629.update, 'optionalAccess', _630 => _630.state]) !== "ready") {
32914
32711
  setShowInstallUpdate(false);
32915
32712
  return;
32916
32713
  }
@@ -32919,7 +32716,7 @@ function DesktopSidebarView(props) {
32919
32716
  autoInstallShownFor.current = key;
32920
32717
  setShowInstallUpdate(true);
32921
32718
  }
32922
- }, [_optionalChain([props, 'access', _687 => _687.update, 'optionalAccess', _688 => _688.state]), _optionalChain([props, 'access', _689 => _689.update, 'optionalAccess', _690 => _690.version])]);
32719
+ }, [_optionalChain([props, 'access', _631 => _631.update, 'optionalAccess', _632 => _632.state]), _optionalChain([props, 'access', _633 => _633.update, 'optionalAccess', _634 => _634.version])]);
32923
32720
  const threadById = (id) => projects.flatMap((project) => project.threads).find((thread) => thread.id === id);
32924
32721
  const clearDrag = () => {
32925
32722
  setDraggingThreadId(null);
@@ -32933,7 +32730,7 @@ function DesktopSidebarView(props) {
32933
32730
  if (!value) return;
32934
32731
  try {
32935
32732
  await props.onRenameThread(pending.id, value);
32936
- } catch (e23) {
32733
+ } catch (e21) {
32937
32734
  setRenamingThread(pending);
32938
32735
  }
32939
32736
  };
@@ -32945,7 +32742,7 @@ function DesktopSidebarView(props) {
32945
32742
  if (!value) return;
32946
32743
  try {
32947
32744
  await props.onRenameProject(pending.id, value);
32948
- } catch (e24) {
32745
+ } catch (e22) {
32949
32746
  setRenamingProject(pending);
32950
32747
  }
32951
32748
  };
@@ -32969,7 +32766,7 @@ function DesktopSidebarView(props) {
32969
32766
  );
32970
32767
  const regularProjects = projects.filter((project) => !pinnedProjectIds.has(project.id)).map((project) => ({ ...project, threads: project.threads.filter((thread) => !thread.pinnedAt) }));
32971
32768
  const hasPinnedItems = pinnedItems.length > 0;
32972
- const renderPinnedThread = (thread, nested = false) => _optionalChain([renamingThread, 'optionalAccess', _691 => _691.id]) === thread.id ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32769
+ const renderPinnedThread = (thread, nested = false) => _optionalChain([renamingThread, 'optionalAccess', _635 => _635.id]) === thread.id ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32973
32770
  "div",
32974
32771
  {
32975
32772
  "data-slot": "sidebar-pinned-thread",
@@ -33065,7 +32862,25 @@ function DesktopSidebarView(props) {
33065
32862
  {
33066
32863
  "data-ow-part": "brand",
33067
32864
  className: cn("flex items-center gap-1.5 px-[9px] pb-5", props.platform === "windows" && "mt-2"),
33068
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, OrbitworkLockup, { theme: "auto", size: 20 })
32865
+ children: props.brandLogoSrc ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
32866
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32867
+ "img",
32868
+ {
32869
+ "data-ow-part": "brand-logo",
32870
+ src: props.brandLogoSrc,
32871
+ alt: "",
32872
+ className: "h-5 w-5 flex-none object-contain"
32873
+ }
32874
+ ),
32875
+ _optionalChain([branding, 'optionalAccess', _636 => _636.productName]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32876
+ "span",
32877
+ {
32878
+ "data-ow-part": "brand-name",
32879
+ className: "truncate font-[family-name:var(--ow-font-display,'Space_Grotesk',sans-serif)] text-[20px] font-medium leading-none tracking-[-0.01em] text-[color:var(--ow-text)]",
32880
+ children: branding.productName
32881
+ }
32882
+ ) : null
32883
+ ] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, OrbitworkLockup, { theme: "auto", size: 20 })
33069
32884
  }
33070
32885
  ),
33071
32886
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "nav", { "data-ow-part": "navigation", className: "flex flex-col gap-0.5", children: [
@@ -33123,7 +32938,7 @@ function DesktopSidebarView(props) {
33123
32938
  if (item.kind === "thread") return renderPinnedThread(item.thread);
33124
32939
  const { project } = item;
33125
32940
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { "data-slot": "sidebar-pinned-project", className: "flex flex-none flex-col", children: [
33126
- _optionalChain([renamingProject, 'optionalAccess', _692 => _692.id]) === project.id ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-8 items-center gap-[7px] pl-2 pr-1.5", children: [
32941
+ _optionalChain([renamingProject, 'optionalAccess', _637 => _637.id]) === project.id ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-8 items-center gap-[7px] pl-2 pr-1.5", children: [
33127
32942
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Folder, { className: "size-[15px] flex-none" }),
33128
32943
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33129
32944
  Field,
@@ -33266,7 +33081,7 @@ function DesktopSidebarView(props) {
33266
33081
  "data-ow-part": "projects",
33267
33082
  className: "flex min-h-0 flex-1 flex-col gap-1 overflow-x-hidden overflow-y-auto pt-0.5 [&::-webkit-scrollbar]:w-0 group-data-[ow-platform=windows]/sidebar:[scrollbar-color:var(--ow-scrollbar)_transparent] group-data-[ow-platform=windows]/sidebar:[scrollbar-width:thin] group-data-[ow-platform=windows]/sidebar:[&::-webkit-scrollbar]:w-1.5 group-data-[ow-platform=windows]/sidebar:[&::-webkit-scrollbar-thumb]:rounded-[var(--ow-radius-pill)] group-data-[ow-platform=windows]/sidebar:[&::-webkit-scrollbar-thumb]:bg-[var(--ow-scrollbar)] group-data-[ow-platform=windows]/sidebar:[&::-webkit-scrollbar-track]:bg-transparent",
33268
33083
  children: props.sessionsLoading && projects.every((project) => project.threads.length === 0) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "data-slot": "sidebar-projects-loading", className: "flex min-h-[120px] flex-1 items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, BeaconSpinner, { size: 40, "aria-label": t("sidebar.loading") }) }) : regularProjects.map((project) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { "data-slot": "sidebar-project-group", className: "flex flex-none flex-col", children: [
33269
- _optionalChain([renamingProject, 'optionalAccess', _693 => _693.id]) === project.id ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
33084
+ _optionalChain([renamingProject, 'optionalAccess', _638 => _638.id]) === project.id ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
33270
33085
  "div",
33271
33086
  {
33272
33087
  "data-slot": "sidebar-project-row",
@@ -33373,7 +33188,7 @@ function DesktopSidebarView(props) {
33373
33188
  ),
33374
33189
  project.open && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { "data-ow-part": "threads", className: "flex flex-none flex-col gap-px overflow-visible p-0", children: [
33375
33190
  project.threads.map(
33376
- (thread) => _optionalChain([renamingThread, 'optionalAccess', _694 => _694.id]) === thread.id ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33191
+ (thread) => _optionalChain([renamingThread, 'optionalAccess', _639 => _639.id]) === thread.id ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33377
33192
  "div",
33378
33193
  {
33379
33194
  "data-slot": "sidebar-thread",
@@ -33611,29 +33426,29 @@ function DesktopSidebarView(props) {
33611
33426
  items: [
33612
33427
  {
33613
33428
  key: "pin",
33614
- label: _optionalChain([threadById, 'call', _695 => _695(threadMenu.id), 'optionalAccess', _696 => _696.pinnedAt]) ? t("sidebar.unpin") : t("sidebar.pin"),
33429
+ label: _optionalChain([threadById, 'call', _640 => _640(threadMenu.id), 'optionalAccess', _641 => _641.pinnedAt]) ? t("sidebar.unpin") : t("sidebar.pin"),
33615
33430
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Pin, {}),
33616
- disabled: Boolean(_optionalChain([threadById, 'call', _697 => _697(threadMenu.id), 'optionalAccess', _698 => _698.archived]))
33431
+ disabled: Boolean(_optionalChain([threadById, 'call', _642 => _642(threadMenu.id), 'optionalAccess', _643 => _643.archived]))
33617
33432
  },
33618
33433
  {
33619
33434
  key: "rename",
33620
33435
  label: t("common.rename"),
33621
33436
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Edit, {}),
33622
- disabled: Boolean(_optionalChain([threadById, 'call', _699 => _699(threadMenu.id), 'optionalAccess', _700 => _700.archived]))
33437
+ disabled: Boolean(_optionalChain([threadById, 'call', _644 => _644(threadMenu.id), 'optionalAccess', _645 => _645.archived]))
33623
33438
  },
33624
33439
  { key: "share", label: t("common.share"), icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Share, {}) },
33625
33440
  {
33626
33441
  key: "move",
33627
33442
  label: t("sidebar.move"),
33628
33443
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Folder, {}),
33629
- disabled: Boolean(_optionalChain([threadById, 'call', _701 => _701(threadMenu.id), 'optionalAccess', _702 => _702.running]))
33444
+ disabled: Boolean(_optionalChain([threadById, 'call', _646 => _646(threadMenu.id), 'optionalAccess', _647 => _647.running]))
33630
33445
  },
33631
- ...!_optionalChain([threadById, 'call', _703 => _703(threadMenu.id), 'optionalAccess', _704 => _704.archived]) ? [
33446
+ ...!_optionalChain([threadById, 'call', _648 => _648(threadMenu.id), 'optionalAccess', _649 => _649.archived]) ? [
33632
33447
  {
33633
33448
  key: "archive",
33634
33449
  label: t("sidebar.archive"),
33635
33450
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Archive, {}),
33636
- disabled: _optionalChain([threadById, 'call', _705 => _705(threadMenu.id), 'optionalAccess', _706 => _706.canArchive]) === false
33451
+ disabled: _optionalChain([threadById, 'call', _650 => _650(threadMenu.id), 'optionalAccess', _651 => _651.canArchive]) === false
33637
33452
  }
33638
33453
  ] : [],
33639
33454
  { key: "delete", label: t("common.delete"), icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Trash, {}), danger: true }
@@ -33659,7 +33474,7 @@ function DesktopSidebarView(props) {
33659
33474
  autoAdjust: true,
33660
33475
  items: projectMenuItems(
33661
33476
  projectMenu.isDefault,
33662
- Boolean(_optionalChain([projects, 'access', _707 => _707.find, 'call', _708 => _708((item) => item.id === projectMenu.id), 'optionalAccess', _709 => _709.pinnedAt])),
33477
+ Boolean(_optionalChain([projects, 'access', _652 => _652.find, 'call', _653 => _653((item) => item.id === projectMenu.id), 'optionalAccess', _654 => _654.pinnedAt])),
33663
33478
  t
33664
33479
  ),
33665
33480
  onSelect: (key) => {
@@ -33724,8 +33539,8 @@ function DesktopSidebarView(props) {
33724
33539
  {
33725
33540
  update: props.update,
33726
33541
  onClick: () => {
33727
- if (_optionalChain([props, 'access', _710 => _710.update, 'optionalAccess', _711 => _711.state]) === "ready") setShowInstallUpdate(true);
33728
- else if (_optionalChain([props, 'access', _712 => _712.update, 'optionalAccess', _713 => _713.state]) !== "downloading") _optionalChain([props, 'access', _714 => _714.onUpdateClick, 'optionalCall', _715 => _715()]);
33542
+ if (_optionalChain([props, 'access', _655 => _655.update, 'optionalAccess', _656 => _656.state]) === "ready") setShowInstallUpdate(true);
33543
+ else if (_optionalChain([props, 'access', _657 => _657.update, 'optionalAccess', _658 => _658.state]) !== "downloading") _optionalChain([props, 'access', _659 => _659.onUpdateClick, 'optionalCall', _660 => _660()]);
33729
33544
  }
33730
33545
  }
33731
33546
  )
@@ -33768,11 +33583,11 @@ function DesktopSidebarView(props) {
33768
33583
  onOpenMemory: props.onOpenMemory,
33769
33584
  onCopyUserId: props.onCopyUserId,
33770
33585
  onCheckUpdate: () => {
33771
- const state = _optionalChain([props, 'access', _716 => _716.update, 'optionalAccess', _717 => _717.state]);
33586
+ const state = _optionalChain([props, 'access', _661 => _661.update, 'optionalAccess', _662 => _662.state]);
33772
33587
  if (state === "ready") return setShowInstallUpdate(true);
33773
33588
  if (state === "downloading") return;
33774
- if (props.update) return _optionalChain([props, 'access', _718 => _718.onUpdateClick, 'optionalCall', _719 => _719()]);
33775
- _optionalChain([(_nullishCoalesce(props.onCheckUpdate, () => ( props.onUpdateClick))), 'optionalCall', _720 => _720()]);
33589
+ if (props.update) return _optionalChain([props, 'access', _663 => _663.onUpdateClick, 'optionalCall', _664 => _664()]);
33590
+ _optionalChain([(_nullishCoalesce(props.onCheckUpdate, () => ( props.onUpdateClick))), 'optionalCall', _665 => _665()]);
33776
33591
  },
33777
33592
  onFeedback: props.onFeedback,
33778
33593
  onLogout: props.onLogout,
@@ -33811,7 +33626,7 @@ function DesktopSidebarView(props) {
33811
33626
  }
33812
33627
  }
33813
33628
  ),
33814
- showInstallUpdate && _optionalChain([props, 'access', _721 => _721.update, 'optionalAccess', _722 => _722.state]) === "ready" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33629
+ showInstallUpdate && _optionalChain([props, 'access', _666 => _666.update, 'optionalAccess', _667 => _667.state]) === "ready" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33815
33630
  UpdateInstallDialog,
33816
33631
  {
33817
33632
  version: props.update.version,
@@ -33819,7 +33634,7 @@ function DesktopSidebarView(props) {
33819
33634
  onCancel: () => setShowInstallUpdate(false),
33820
33635
  onConfirm: () => {
33821
33636
  setInstallingUpdate(true);
33822
- Promise.resolve().then(() => _optionalChain([props, 'access', _723 => _723.onInstallUpdate, 'optionalCall', _724 => _724()])).catch(() => setInstallingUpdate(false));
33637
+ Promise.resolve().then(() => _optionalChain([props, 'access', _668 => _668.onInstallUpdate, 'optionalCall', _669 => _669()])).catch(() => setInstallingUpdate(false));
33823
33638
  }
33824
33639
  }
33825
33640
  ),
@@ -34090,7 +33905,7 @@ function ResourceWorkbenchView({
34090
33905
  element.scrollTop = _nullishCoalesce(_nullishCoalesce(position.current, () => ( positions.current.get(navigationKey))), () => ( 0));
34091
33906
  return () => {
34092
33907
  positions.current.set(navigationKey, element.scrollTop);
34093
- _optionalChain([onSave, 'optionalCall', _725 => _725(element.scrollTop)]);
33908
+ _optionalChain([onSave, 'optionalCall', _670 => _670(element.scrollTop)]);
34094
33909
  };
34095
33910
  }, [navigationKey]);
34096
33911
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -34293,7 +34108,7 @@ function ResourceListView(props) {
34293
34108
  },
34294
34109
  { key: "delete", label: t("common.delete"), danger: true, icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Trash, {}) }
34295
34110
  ],
34296
- onSelect: (key) => _optionalChain([props, 'access', _726 => _726.onAction, 'optionalCall', _727 => _727(row.id, key)])
34111
+ onSelect: (key) => _optionalChain([props, 'access', _671 => _671.onAction, 'optionalCall', _672 => _672(row.id, key)])
34297
34112
  }
34298
34113
  )
34299
34114
  ] })
@@ -34733,7 +34548,7 @@ function DesktopSiteReleasesView({
34733
34548
  );
34734
34549
  const handleCopyUrl = () => {
34735
34550
  if (!available) return;
34736
- const write = onCopySite ? onCopySite() : _optionalChain([navigator, 'access', _728 => _728.clipboard, 'optionalAccess', _729 => _729.writeText, 'call', _730 => _730(site.baseUrl)]);
34551
+ const write = onCopySite ? onCopySite() : _optionalChain([navigator, 'access', _673 => _673.clipboard, 'optionalAccess', _674 => _674.writeText, 'call', _675 => _675(site.baseUrl)]);
34737
34552
  if (!write) return;
34738
34553
  void write.then(() => {
34739
34554
  setCopied(true);
@@ -34751,7 +34566,7 @@ function DesktopSiteReleasesView({
34751
34566
  onRetry();
34752
34567
  return;
34753
34568
  }
34754
- _optionalChain([onMenuSelect, 'optionalCall', _731 => _731(key)]);
34569
+ _optionalChain([onMenuSelect, 'optionalCall', _676 => _676(key)]);
34755
34570
  };
34756
34571
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative flex h-full min-h-0 flex-col overflow-hidden", "data-slot": "site-releases", children: [
34757
34572
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "header", { "data-ow-part": "header", className: "shrink-0 px-7 pt-5 max-[720px]:px-5", children: [
@@ -35003,7 +34818,7 @@ function formatRelativeTime(value) {
35003
34818
  if (diff < 864e5) return `${Math.floor(diff / 36e5)} \u5C0F\u65F6\u524D`;
35004
34819
  if (diff < 6048e5) return `${Math.floor(diff / 864e5)} \u5929\u524D`;
35005
34820
  return date.toLocaleDateString("zh-CN");
35006
- } catch (e25) {
34821
+ } catch (e23) {
35007
34822
  return "";
35008
34823
  }
35009
34824
  }
@@ -35043,7 +34858,7 @@ function DesktopSitesListView({
35043
34858
  const query = _nullishCoalesce(queryProp, () => ( queryState));
35044
34859
  const setQuery = (value) => {
35045
34860
  if (queryProp === void 0) setQueryState(value);
35046
- _optionalChain([onQueryChange, 'optionalCall', _732 => _732(value)]);
34861
+ _optionalChain([onQueryChange, 'optionalCall', _677 => _677(value)]);
35047
34862
  };
35048
34863
  const grid = _react.useRef.call(void 0, null);
35049
34864
  _react.useLayoutEffect.call(void 0, () => {
@@ -35055,13 +34870,13 @@ function DesktopSitesListView({
35055
34870
  const toggleDense = () => {
35056
34871
  const next = !dense;
35057
34872
  if (denseProp === void 0) setDenseState(next);
35058
- _optionalChain([onDenseChange, 'optionalCall', _733 => _733(next)]);
34873
+ _optionalChain([onDenseChange, 'optionalCall', _678 => _678(next)]);
35059
34874
  };
35060
34875
  const keyword = query.trim().toLowerCase();
35061
34876
  let filtered = sites;
35062
34877
  if (keyword && queryProp === void 0) {
35063
34878
  filtered = filtered.filter(
35064
- (site) => [site.name, site.description, site.baseUrl].some((f) => _optionalChain([f, 'optionalAccess', _734 => _734.toLowerCase, 'call', _735 => _735(), 'access', _736 => _736.includes, 'call', _737 => _737(keyword)]))
34879
+ (site) => [site.name, site.description, site.baseUrl].some((f) => _optionalChain([f, 'optionalAccess', _679 => _679.toLowerCase, 'call', _680 => _680(), 'access', _681 => _681.includes, 'call', _682 => _682(keyword)]))
35065
34880
  );
35066
34881
  }
35067
34882
  const head = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -35144,7 +34959,7 @@ function DesktopSitesListView({
35144
34959
  "data-slot": "sites-grid",
35145
34960
  "data-density": gridDensity,
35146
34961
  className: sitesGridClass(dense),
35147
- onScroll: (event) => _optionalChain([onScrollTopChange, 'optionalCall', _738 => _738(event.currentTarget.scrollTop)]),
34962
+ onScroll: (event) => _optionalChain([onScrollTopChange, 'optionalCall', _683 => _683(event.currentTarget.scrollTop)]),
35148
34963
  children: [
35149
34964
  filtered.map((site) => {
35150
34965
  const status = statusTag(site.status);
@@ -35581,12 +35396,12 @@ function DesktopSkillsPageView({
35581
35396
  const hasMore = loadedItems < totalItems;
35582
35397
  _react.useEffect.call(void 0, () => {
35583
35398
  if (stateSlot || loadingMore || !hasMore) return;
35584
- const grid = _optionalChain([pageRef, 'access', _739 => _739.current, 'optionalAccess', _740 => _740.querySelector, 'call', _741 => _741('[data-slot="catalog-grid"]')]);
35585
- const target = _optionalChain([grid, 'optionalAccess', _742 => _742.lastElementChild]);
35399
+ const grid = _optionalChain([pageRef, 'access', _684 => _684.current, 'optionalAccess', _685 => _685.querySelector, 'call', _686 => _686('[data-slot="catalog-grid"]')]);
35400
+ const target = _optionalChain([grid, 'optionalAccess', _687 => _687.lastElementChild]);
35586
35401
  if (!grid || !target) return;
35587
35402
  const observer = new IntersectionObserver(
35588
35403
  ([entry]) => {
35589
- if (!_optionalChain([entry, 'optionalAccess', _743 => _743.isIntersecting])) return;
35404
+ if (!_optionalChain([entry, 'optionalAccess', _688 => _688.isIntersecting])) return;
35590
35405
  observer.disconnect();
35591
35406
  onLoadMore();
35592
35407
  },
@@ -35964,7 +35779,7 @@ function desktopToolStatusLabel(kind, status, fallbackLabel) {
35964
35779
  function desktopToolListStatusLabel(kind, running, label) {
35965
35780
  const fallbackLabel = typeof label === "string" ? label : "\u6267\u884C\u64CD\u4F5C";
35966
35781
  const statusLabel = desktopToolStatusLabel(kind, running ? "running" : "completed", fallbackLabel);
35967
- const count = typeof label === "string" ? _optionalChain([label, 'access', _744 => _744.match, 'call', _745 => _745(/等 (\d+) 项操作$/), 'optionalAccess', _746 => _746[1]]) : void 0;
35782
+ const count = typeof label === "string" ? _optionalChain([label, 'access', _689 => _689.match, 'call', _690 => _690(/等 (\d+) 项操作$/), 'optionalAccess', _691 => _691[1]]) : void 0;
35968
35783
  if (!count) return statusLabel;
35969
35784
  return `${TOOL_STATUS_WORDS[kind][running ? "running" : "completed"]} ${count} ${TOOL_STATUS_WORDS[kind].groupUnit}`;
35970
35785
  }
@@ -36032,7 +35847,7 @@ function toExecutionSummaryTool(item) {
36032
35847
  statusText: item.statusText,
36033
35848
  input: item.input,
36034
35849
  output: item.output,
36035
- artifacts: _optionalChain([item, 'access', _747 => _747.artifacts, 'optionalAccess', _748 => _748.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DesktopToolArtifacts, { artifacts: item.artifacts }) : void 0,
35850
+ artifacts: _optionalChain([item, 'access', _692 => _692.artifacts, 'optionalAccess', _693 => _693.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DesktopToolArtifacts, { artifacts: item.artifacts }) : void 0,
36036
35851
  defaultDetailOpen: item.defaultDetailOpen,
36037
35852
  detailOpen: item.detailOpen,
36038
35853
  onDetailOpenChange: item.onDetailOpenChange
@@ -36417,7 +36232,7 @@ function SidePanelEmpty({
36417
36232
  size: "md",
36418
36233
  icon: action.icon,
36419
36234
  "data-slot": "side-panel-empty-action",
36420
- onClick: () => action.onSelect ? action.onSelect() : _optionalChain([onSelect, 'optionalCall', _749 => _749(action)]),
36235
+ onClick: () => action.onSelect ? action.onSelect() : _optionalChain([onSelect, 'optionalCall', _694 => _694(action)]),
36421
36236
  className: cn(
36422
36237
  "flex h-9 w-full cursor-pointer items-center gap-2.5 px-3 text-left",
36423
36238
  "justify-start [&>[data-ow-part=label]]:flex-1"
@@ -36469,7 +36284,7 @@ function StarterCapsules({
36469
36284
  type: "button",
36470
36285
  "data-slot": "starter-capsule",
36471
36286
  "aria-pressed": pressed,
36472
- onClick: () => _optionalChain([onSelect, 'optionalCall', _750 => _750(option)]),
36287
+ onClick: () => _optionalChain([onSelect, 'optionalCall', _695 => _695(option)]),
36473
36288
  className: cn(
36474
36289
  "inline-flex items-center justify-center h-8 px-[14px] cursor-pointer whitespace-nowrap",
36475
36290
  "border border-[color:var(--ow-border)] [border-radius:var(--ow-radius-sm)]",
@@ -36519,7 +36334,7 @@ function WorkbenchSidePanel({
36519
36334
  const rootRef = _react.useRef.call(void 0, null);
36520
36335
  const [resizing, setResizing] = _react.useState.call(void 0, false);
36521
36336
  const getMaximumWidth = _react.useCallback.call(void 0, () => {
36522
- const parentWidth = _nullishCoalesce(_optionalChain([rootRef, 'access', _751 => _751.current, 'optionalAccess', _752 => _752.parentElement, 'optionalAccess', _753 => _753.getBoundingClientRect, 'call', _754 => _754(), 'access', _755 => _755.width]), () => ( minWidth + minSiblingWidth));
36337
+ const parentWidth = _nullishCoalesce(_optionalChain([rootRef, 'access', _696 => _696.current, 'optionalAccess', _697 => _697.parentElement, 'optionalAccess', _698 => _698.getBoundingClientRect, 'call', _699 => _699(), 'access', _700 => _700.width]), () => ( minWidth + minSiblingWidth));
36523
36338
  return Math.max(minWidth, parentWidth - minSiblingWidth);
36524
36339
  }, [minSiblingWidth, minWidth]);
36525
36340
  const handleResizeStart = _react.useCallback.call(void 0,
@@ -36553,7 +36368,7 @@ function WorkbenchSidePanel({
36553
36368
  if (finished) return;
36554
36369
  const nextWidth = Number.parseFloat(root.style.width);
36555
36370
  cleanup();
36556
- if (Number.isFinite(nextWidth) && nextWidth > 0) _optionalChain([onWidthCommit, 'optionalCall', _756 => _756(nextWidth)]);
36371
+ if (Number.isFinite(nextWidth) && nextWidth > 0) _optionalChain([onWidthCommit, 'optionalCall', _701 => _701(nextWidth)]);
36557
36372
  };
36558
36373
  const handlePointerMove = (moveEvent) => {
36559
36374
  const parentRect = parent.getBoundingClientRect();
@@ -36565,7 +36380,7 @@ function WorkbenchSidePanel({
36565
36380
  } else if (moveEvent.clientX - overdragStart >= collapseOverdrag) {
36566
36381
  cleanup();
36567
36382
  root.style.width = `${startingWidth}px`;
36568
- _optionalChain([onRequestClose, 'optionalCall', _757 => _757()]);
36383
+ _optionalChain([onRequestClose, 'optionalCall', _702 => _702()]);
36569
36384
  }
36570
36385
  return;
36571
36386
  }
@@ -36592,7 +36407,7 @@ function WorkbenchSidePanel({
36592
36407
  if (nextWidth === null) return;
36593
36408
  event.preventDefault();
36594
36409
  root.style.width = `${nextWidth}px`;
36595
- _optionalChain([onWidthCommit, 'optionalCall', _758 => _758(nextWidth)]);
36410
+ _optionalChain([onWidthCommit, 'optionalCall', _703 => _703(nextWidth)]);
36596
36411
  },
36597
36412
  [getMaximumWidth, minWidth, onWidthCommit]
36598
36413
  );
@@ -36939,10 +36754,10 @@ function FileTree({
36939
36754
  treeData: rcTreeData,
36940
36755
  fieldNames: { key: "key", title: "title", children: "children" },
36941
36756
  expandedKeys,
36942
- onExpand: (keys) => _optionalChain([onExpand, 'optionalCall', _759 => _759(keys)]),
36757
+ onExpand: (keys) => _optionalChain([onExpand, 'optionalCall', _704 => _704(keys)]),
36943
36758
  selectedKeys: selectedKey ? [selectedKey] : [],
36944
36759
  onSelect: (keys, info) => {
36945
- if (keys.length > 0) _optionalChain([onSelect, 'optionalCall', _760 => _760(info.node)]);
36760
+ if (keys.length > 0) _optionalChain([onSelect, 'optionalCall', _705 => _705(info.node)]);
36946
36761
  },
36947
36762
  loadData: loadData ? async (node) => {
36948
36763
  await loadData(node);
@@ -37037,7 +36852,7 @@ function FileBrowser({
37037
36852
  selectedKey,
37038
36853
  onSelect: (node) => {
37039
36854
  if (node.isLeaf) {
37040
- _optionalChain([onSelectFile, 'optionalCall', _761 => _761(node)]);
36855
+ _optionalChain([onSelectFile, 'optionalCall', _706 => _706(node)]);
37041
36856
  return;
37042
36857
  }
37043
36858
  if (!onExpand) return;
@@ -37089,7 +36904,7 @@ function FileBrowser({
37089
36904
  "ow-focus-ring border-0 bg-transparent px-1 py-0 [border-radius:var(--ow-radius-xs)] font-normal text-ow-fs-caption leading-[1.4] [font-family:var(--ow-font-mono)] [font-variant-numeric:tabular-nums] text-ow-text-3 cursor-pointer whitespace-nowrap overflow-hidden text-ellipsis hover:bg-[var(--ow-hover)] hover:text-ow-text active:bg-[var(--ow-press)]",
37090
36905
  isLast && "text-ow-text"
37091
36906
  ),
37092
- onClick: () => _optionalChain([onBreadcrumbClick, 'optionalCall', _762 => _762(segment.key)]),
36907
+ onClick: () => _optionalChain([onBreadcrumbClick, 'optionalCall', _707 => _707(segment.key)]),
37093
36908
  children: segment.label
37094
36909
  }
37095
36910
  )
@@ -37117,7 +36932,7 @@ function FileBrowser({
37117
36932
  type: "text",
37118
36933
  value: _nullishCoalesce(filterText, () => ( "")),
37119
36934
  placeholder: filterPlaceholder,
37120
- onChange: (next) => _optionalChain([onFilterChange, 'optionalCall', _763 => _763(next)]),
36935
+ onChange: (next) => _optionalChain([onFilterChange, 'optionalCall', _708 => _708(next)]),
37121
36936
  className: "flex-1 min-w-0 [&_[data-slot=field-control]]:[font-size:var(--ow-fs-caption)]",
37122
36937
  "aria-label": t("browser.filterFiles")
37123
36938
  }
@@ -37355,7 +37170,7 @@ var FilePreviewContentView = _react.forwardRef.call(void 0,
37355
37170
  const rawMarkdown = _nullishCoalesce(controlledRawMarkdown, () => ( uncontrolledRaw));
37356
37171
  const setRawMarkdown = (next) => {
37357
37172
  if (controlledRawMarkdown === void 0) setUncontrolledRaw(next);
37358
- _optionalChain([onRawMarkdownChange, 'optionalCall', _764 => _764(next)]);
37173
+ _optionalChain([onRawMarkdownChange, 'optionalCall', _709 => _709(next)]);
37359
37174
  };
37360
37175
  const labels = { ...localizeUiCopy(DEFAULT_LABELS7, t), ...labelsProp };
37361
37176
  let preview;
@@ -37401,7 +37216,7 @@ var FilePreviewContentView = _react.forwardRef.call(void 0,
37401
37216
  {
37402
37217
  "data-ow-part": "markdown-rendered",
37403
37218
  className: "text-ow-fs-ui font-normal leading-[1.6] text-[color:var(--ow-text)]",
37404
- children: _optionalChain([renderMarkdown, 'optionalCall', _765 => _765(content)])
37219
+ children: _optionalChain([renderMarkdown, 'optionalCall', _710 => _710(content)])
37405
37220
  }
37406
37221
  )
37407
37222
  }
@@ -37531,7 +37346,7 @@ function PdfPreviewDialog({
37531
37346
  const handlePageChange = (next) => {
37532
37347
  if (next < 1 || totalPages && next > totalPages) return;
37533
37348
  setInnerPage(next);
37534
- _optionalChain([onPageChange, 'optionalCall', _766 => _766(next)]);
37349
+ _optionalChain([onPageChange, 'optionalCall', _711 => _711(next)]);
37535
37350
  };
37536
37351
  const nav = totalPages ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PdfPageNav, { page: activePage, totalPages, onPageChange: handlePageChange }) : null;
37537
37352
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -37549,6 +37364,25 @@ function PdfPreviewDialog({
37549
37364
  );
37550
37365
  }
37551
37366
 
37367
+ // src/components/domain/preview/BrandPreviewScope.tsx
37368
+
37369
+
37370
+ function BrandPreviewScope({ brandTheme, mode, locale = "zh-CN", className, children }) {
37371
+ const rootRef = _react.useRef.call(void 0, null);
37372
+ const unified = _react.useMemo.call(void 0, () => _chunkK7ONUTLAcjs.mergeUnifiedTheme.call(void 0, brandTheme, null, null, mode, locale), [brandTheme, mode, locale]);
37373
+ _react.useLayoutEffect.call(void 0, () => {
37374
+ const el = rootRef.current;
37375
+ if (!el) return;
37376
+ _chunkK7ONUTLAcjs.applyUnifiedTheme.call(void 0, unified, el);
37377
+ return () => _chunkK7ONUTLAcjs.removeUnifiedTheme.call(void 0, el);
37378
+ }, [unified]);
37379
+ const brandingValue = _react.useMemo.call(void 0,
37380
+ () => ({ branding: unified.branding, tenantLoading: false, tenantError: null }),
37381
+ [unified]
37382
+ );
37383
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, BrandingContext.Provider, { value: brandingValue, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: rootRef, className: cn("ow-ui-scope", className), "data-theme": mode, children }) });
37384
+ }
37385
+
37552
37386
  // src/components/domain/skills/McpServerListView/index.tsx
37553
37387
 
37554
37388
 
@@ -37924,7 +37758,7 @@ function SkillDetailView(props) {
37924
37758
  primaryDisabled: props.actionDisabled,
37925
37759
  onInstall: props.onInstall,
37926
37760
  onUpdate: props.onUpdate,
37927
- onPrimaryAction: () => _optionalChain([props, 'access', _767 => _767.onUse, 'optionalCall', _768 => _768()]),
37761
+ onPrimaryAction: () => _optionalChain([props, 'access', _712 => _712.onUse, 'optionalCall', _713 => _713()]),
37928
37762
  menuItems: [
37929
37763
  ..._nullishCoalesce(props.menuItems, () => ( [])),
37930
37764
  ...props.onOpenDir ? [{ key: "openDir", label: t("interface.openFolder031c1"), icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Folder, {}) }] : [],
@@ -37939,8 +37773,8 @@ function SkillDetailView(props) {
37939
37773
  ] : []
37940
37774
  ],
37941
37775
  onMenuSelect: (key) => {
37942
- _optionalChain([props, 'access', _769 => _769.onMenuSelect, 'optionalCall', _770 => _770(key)]);
37943
- if (key === "openDir") _optionalChain([props, 'access', _771 => _771.onOpenDir, 'optionalCall', _772 => _772()]);
37776
+ _optionalChain([props, 'access', _714 => _714.onMenuSelect, 'optionalCall', _715 => _715(key)]);
37777
+ if (key === "openDir") _optionalChain([props, 'access', _716 => _716.onOpenDir, 'optionalCall', _717 => _717()]);
37944
37778
  if (key === "uninstall") setConfirmUninstall(true);
37945
37779
  }
37946
37780
  }
@@ -37978,7 +37812,7 @@ function SkillDetailView(props) {
37978
37812
  onCancel: () => setConfirmUninstall(false),
37979
37813
  onConfirm: () => {
37980
37814
  setConfirmUninstall(false);
37981
- _optionalChain([props, 'access', _773 => _773.onUninstall, 'optionalCall', _774 => _774()]);
37815
+ _optionalChain([props, 'access', _718 => _718.onUninstall, 'optionalCall', _719 => _719()]);
37982
37816
  }
37983
37817
  }
37984
37818
  )
@@ -39163,5 +38997,6 @@ function ScheduledTasksSpaceView({
39163
38997
 
39164
38998
 
39165
38999
 
39166
- exports.ACCOUNT_CREDITS_WARN_RATIO = ACCOUNT_CREDITS_WARN_RATIO; exports.ActionStatus = ActionStatus; exports.AgentLoopSegment = AgentLoopSegment; exports.AgentTurn = AgentTurn; exports.AppLayout = AppLayout; exports.Archive = Archive; exports.Arrow = Arrow; exports.ArrowDown = ArrowDown; exports.ArtifactCard = ArtifactCard; exports.ArtifactPreviewCard = ArtifactPreviewCard; exports.ArtifactPreviewSidebarView = ArtifactPreviewSidebarView; exports.ArtifactTrail = ArtifactTrail; exports.AskQuestionCardView = AskQuestionCardView; exports.AssistantChannelCard = AssistantChannelCard; exports.Atom = Atom; exports.Attachment = Attachment; exports.AttachmentList = AttachmentList; exports.AuthorizationCard = AuthorizationCard; exports.Avatar = Avatar; exports.BEACON_ICON_NAMES = BEACON_ICON_NAMES; exports.BUILTIN_ORBITWORK_SKINS = _chunkKRP43SUAcjs.BUILTIN_ORBITWORK_SKINS; exports.BackButton = BackButton; exports.BackTop = BackTop; exports.Badge = Badge; exports.Banner = Banner; exports.BarChart = BarChart; exports.BeaconIcon = BeaconIcon; exports.BeaconSpinner = BeaconSpinner; exports.Bell = Bell; exports.Bolt = Bolt; exports.Brain = Brain; exports.Branch = Branch; exports.BranchDivider = BranchDivider; exports.BrowserAnnotationPopupView = BrowserAnnotationPopupView; exports.BrowserDeviceToolbarView = BrowserDeviceToolbarView; exports.BrowserFindBarView = BrowserFindBarView; exports.BrowserImportDialogView = BrowserImportDialogView; exports.BrowserLoadErrorView = BrowserLoadErrorView; exports.BrowserMoreMenuView = BrowserMoreMenuView; exports.BrowserNavBarView = BrowserNavBarView; exports.Button = Button; exports.Card = Card; exports.CardGridSkeleton = CardGridSkeleton; exports.CatalogEmptyState = CatalogEmptyState; exports.Check = Check; exports.Checkbox = Checkbox; exports.ChevDown = ChevDown; exports.ChevLeft = ChevLeft; exports.ChevRight = ChevRight; exports.ChevUp = ChevUp; exports.Chip = Chip; exports.Circle = Circle; exports.ClipboardList = ClipboardList; exports.Clock = Clock; exports.Close = Close; exports.CodeBlock = CodeBlock; exports.CodeDiff = CodeDiff; exports.CodePreview = CodePreview; exports.CommandPalette = CommandPalette; exports.CommentPlus = CommentPlus; exports.Compass = Compass; exports.Composer = Composer; exports.ComposerAudioSpectrum = ComposerAudioSpectrum; exports.ComposerAuthorization = ComposerAuthorization; exports.ComposerMentions = ComposerMentions; exports.ComposerMenu = ComposerMenu; exports.ComposerMenuPopover = ComposerMenuPopover; exports.ComposerPopover = ComposerPopover; exports.ComposerProjectPicker = ComposerProjectPicker; exports.ComposerQueue = ComposerQueue; exports.ComposerVoiceInput = ComposerVoiceInput; exports.CompressionDivider = CompressionDivider; exports.ComputerUseWindowOverlayView = ComputerUseWindowOverlayView; exports.ContentRecommendation = ContentRecommendation; exports.ContextUsage = ContextUsage; exports.ContextUsageIndicatorView = ContextUsageIndicatorView; exports.Copy = Copy; exports.Cpu = Cpu; exports.CreateProjectDialog = CreateProjectDialog; exports.CsvPreview = CsvPreview; exports.Cut = Cut; exports.DEFAULT_ORBITWORK_SKIN_ID = _chunkKRP43SUAcjs.DEFAULT_ORBITWORK_SKIN_ID; exports.DEFAULT_UI_LOCALE = _chunkZZTEY4YXcjs.DEFAULT_UI_LOCALE; exports.DESKTOP_ACCOUNT_MENU_WIDTH = DESKTOP_ACCOUNT_MENU_WIDTH; exports.DESKTOP_LOGIN_CLAIM = DESKTOP_LOGIN_CLAIM; exports.DESKTOP_LOGIN_CLAIM_NOTE = DESKTOP_LOGIN_CLAIM_NOTE; exports.DataManagementSectionView = DataManagementSectionView; exports.DataTable = DataTable; exports.DataTableToolbar = DataTableToolbar; exports.DateDivider = DateDivider; exports.DesktopAboutSettingsView = DesktopAboutSettingsView; exports.DesktopAccountMenuView = DesktopAccountMenuView; exports.DesktopAgentCardView = DesktopAgentCardView; exports.DesktopAgentDetailActions = DesktopAgentDetailActions; exports.DesktopAgentDetailView = DesktopAgentDetailView; exports.DesktopAgentOverviewView = DesktopAgentOverviewView; exports.DesktopAgentRosterView = DesktopAgentRosterView; exports.DesktopAppearanceSettings = DesktopAppearanceSettings; exports.DesktopAssistantAdvanced = DesktopAssistantAdvanced; exports.DesktopAssistantBindCard = DesktopAssistantBindCard; exports.DesktopAssistantConfigActions = DesktopAssistantConfigActions; exports.DesktopAssistantConfigContent = DesktopAssistantConfigContent; exports.DesktopAssistantConfigFields = DesktopAssistantConfigFields; exports.DesktopAssistantConfigLayout = DesktopAssistantConfigLayout; exports.DesktopAssistantConfigView = DesktopAssistantConfigView; exports.DesktopAssistantField = DesktopAssistantField; exports.DesktopAssistantFieldState = DesktopAssistantFieldState; exports.DesktopAssistantFooterHint = DesktopAssistantFooterHint; exports.DesktopAssistantQr = DesktopAssistantQr; exports.DesktopAssistantScanHint = DesktopAssistantScanHint; exports.DesktopAssistantScanPanel = DesktopAssistantScanPanel; exports.DesktopCatalogCardView = DesktopCatalogCardView; exports.DesktopCatalogDetailActions = DesktopCatalogDetailActions; exports.DesktopCatalogDetailShell = DesktopCatalogDetailShell; exports.DesktopCatalogGridView = DesktopCatalogGridView; exports.DesktopCatalogToolbarView = DesktopCatalogToolbarView; exports.DesktopChatAgentTurnView = DesktopChatAgentTurnView; exports.DesktopChatCompressionDivider = DesktopChatCompressionDivider; exports.DesktopChatEmptyStateView = DesktopChatEmptyStateView; exports.DesktopChatHeaderView = DesktopChatHeaderView; exports.DesktopChatHistoryEmptyStateView = DesktopChatHistoryEmptyStateView; exports.DesktopChatMessageView = DesktopChatMessageView; exports.DesktopChatReconnectDivider = DesktopChatReconnectDivider; exports.DesktopChatUserTurnView = DesktopChatUserTurnView; exports.DesktopComposer = DesktopComposer; exports.DesktopComposerModelButton = DesktopComposerModelButton; exports.DesktopConnectorCardView = DesktopConnectorCardView; exports.DesktopConnectorDetailView = DesktopConnectorDetailView; exports.DesktopConversationView = DesktopConversationView; exports.DesktopDetailChips = DesktopDetailChips; exports.DesktopDetailList = DesktopDetailList; exports.DesktopDetailRows = DesktopDetailRows; exports.DesktopDetailSection = DesktopDetailSection; exports.DesktopDetailText = DesktopDetailText; exports.DesktopHomeView = DesktopHomeView; exports.DesktopLibraryAuthorizationDialog = DesktopLibraryAuthorizationDialog; exports.DesktopLibraryPageView = DesktopLibraryPageView; exports.DesktopLoginView = DesktopLoginView; exports.DesktopOnboardingTourView = DesktopOnboardingTourView; exports.DesktopPet = DesktopPet; exports.DesktopProcessStepGroupView = DesktopProcessStepGroupView; exports.DesktopProcessTimelineView = DesktopProcessTimelineView; exports.DesktopRuntimeSettingsView = DesktopRuntimeSettingsView; exports.DesktopSettingsMemorySection = DesktopSettingsMemorySection; exports.DesktopSettingsView = DesktopSettingsView; exports.DesktopShareSelectionBarView = DesktopShareSelectionBarView; exports.DesktopSidebarView = DesktopSidebarView; exports.DesktopSiteReleasesView = DesktopSiteReleasesView; exports.DesktopSitesListView = DesktopSitesListView; exports.DesktopSkillsPageView = DesktopSkillsPageView; exports.DesktopTaskDetailView = DesktopTaskDetailView; exports.DesktopToolCallListView = DesktopToolCallListView; exports.DesktopToolCallView = DesktopToolCallView; exports.DesktopWorkbenchShell = DesktopWorkbenchShell; exports.DetailOverflowMenu = DetailOverflowMenu; exports.DetailPanel = DetailPanel; exports.DetailScaffold = DetailScaffold; exports.Device = Device; exports.Dialog = Dialog; exports.DingTalk = DingTalk; exports.DingTalkAi = DingTalkAi; exports.Dislike = Dislike; exports.Divider = Divider; exports.Doc = Doc; exports.Download = Download; exports.DropZone = DropZone; exports.Edit = Edit; exports.ElementDispatcher = ElementDispatcher; exports.EmptyState = EmptyState; exports.ErrorCircle = ErrorCircle; exports.ExecutionDetail = ExecutionDetail; exports.ExecutionSummary = ExecutionSummary; exports.ExecutionSummaryRow = ExecutionSummaryRow; exports.FeedbackContextMenuView = FeedbackContextMenuView; exports.FeedbackDialogView = FeedbackDialogView; exports.Feishu = Feishu; exports.Field = Field; exports.FileBrowser = FileBrowser; exports.FileBrowserPreviewState = FileBrowserPreviewState; exports.FileIcon = FileIcon; exports.FilePreviewContentView = FilePreviewContentView; exports.FilePreviewDialog = FilePreviewDialog; exports.FileTree = FileTree; exports.Filter = Filter; exports.FilterBar = FilterBar; exports.Folder = Folder; exports.FormField = FormField; exports.Gauge = Gauge; exports.Globe = Globe; exports.GlyphToneProvider = GlyphToneProvider; exports.Grid = Grid; exports.HOME_STARTER_CAPSULES = HOME_STARTER_CAPSULES; exports.Hand = Hand; exports.Help = Help; exports.HomeBackdrop = HomeBackdrop; exports.IME_COMMIT_GUARD_MS = IME_COMMIT_GUARD_MS; exports.Icon = Icon; exports.Icons = Icons; exports.Image = Image; exports.ImagePreview = ImagePreview; exports.InfoCircle = InfoCircle; exports.InlineAttachment = InlineAttachment; exports.InlineMessage = InlineMessage; exports.JumpToLatest = JumpToLatest; exports.Key = Key; exports.KeyValueField = KeyValueField; exports.Keyboard = Keyboard; exports.Keycap = Keycap; exports.KeycapCombo = KeycapCombo; exports.Layers = Layers; exports.Like = Like; exports.LikeFill = LikeFill; exports.ListRow = ListRow; exports.ListRowGroup = ListRowGroup; exports.Loader = Loader; exports.Lock = Lock; exports.Logout = Logout; exports.MENU_SEPARATOR = MENU_SEPARATOR; exports.Mail = Mail; exports.Markdown = Markdown; exports.MarkdownPreview = MarkdownPreview; exports.MarkdownPreviewDialog = MarkdownPreviewDialog; exports.Maximize = Maximize; exports.McpServerListView = McpServerListView; exports.Memo = Memo; exports.Menu = Menu; exports.MenuSurface = MenuSurface; exports.MessageActions = MessageActions; exports.MessageFeedbackDialog = MessageFeedbackDialog; exports.Mic = Mic; exports.ModalityAudio = ModalityAudio; exports.ModalityImage = ModalityImage; exports.ModalityText = ModalityText; exports.ModalityVideo = ModalityVideo; exports.ModelCatalogErrorState = ModelCatalogErrorState; exports.ModelModalityFlow = ModelModalityFlow; exports.ModelPickerList = ModelPickerList; exports.ModelSelect = ModelSelect; exports.ModelsSettingsSectionView = ModelsSettingsSectionView; exports.Moon = Moon; exports.More = More; exports.NAV_MENU_DIVIDER = NAV_MENU_DIVIDER; exports.NavMenu = NavMenu; exports.NewTask = NewTask; exports.NoPlanPanelView = NoPlanPanelView; exports.ORBITWORK_FONT_SCALES = _chunkKRP43SUAcjs.ORBITWORK_FONT_SCALES; exports.OfficePreview = OfficePreview; exports.OfficePreviewDialog = OfficePreviewDialog; exports.OpenWithMenu = OpenWithMenu; exports.OrbitworkLockup = OrbitworkLockup; exports.OrbitworkMark = OrbitworkMark; exports.PT_TO_PX = PT_TO_PX; exports.Package = Package; exports.PageHead = PageHead; exports.Pagination = Pagination; exports.PanelFold = PanelFold; exports.PanelSidebar = PanelSidebar; exports.PanelSidebarCollapse = PanelSidebarCollapse; exports.Paperclip = Paperclip; exports.Pause = Pause; exports.PdfPageNav = PdfPageNav; exports.PdfPreview = PdfPreview; exports.PdfPreviewDialog = PdfPreviewDialog; exports.Pin = Pin; exports.PlanCard = PlanCard; exports.PlanEntitlementCard = PlanEntitlementCard; exports.PlanEntitlementGrid = PlanEntitlementGrid; exports.PlanFeatureIcon = PlanFeatureIcon; exports.PlanSettingsSectionView = PlanSettingsSectionView; exports.Play = Play; exports.Plus = Plus; exports.Popover = Popover; exports.PptxSlide = PptxSlide; exports.PreviewSurfaceArea = PreviewSurfaceArea; exports.ProgressBar = ProgressBar; exports.ProjectSelect = ProjectSelect; exports.Quote = Quote; exports.Radio = Radio; exports.RadioCardGroup = RadioCardGroup; exports.RadioGroup = RadioGroup; exports.Refresh = Refresh; exports.ResourceConfirmation = ResourceConfirmation; exports.ResourceDetailView = ResourceDetailView; exports.ResourceListView = ResourceListView; exports.ResourceNotice = ResourceNotice; exports.ResourceOverviewView = ResourceOverviewView; exports.ResourceReleasesView = ResourceReleasesView; exports.ResourceRowActionDialog = ResourceRowActionDialog; exports.ResourceWorkbenchView = ResourceWorkbenchView; exports.RichCard = RichCard; exports.RichLink = RichLink; exports.RichList = RichList; exports.Rotate = Rotate; exports.RowOverflowMenu = RowOverflowMenu; exports.SIDE_PANEL_EMPTY_ACTIONS = SIDE_PANEL_EMPTY_ACTIONS; exports.STATUS_TAG_PRESETS = STATUS_TAG_PRESETS; exports.SandboxPermissionPrompt = SandboxPermissionPrompt; exports.ScheduledTaskCardView = ScheduledTaskCardView; exports.ScheduledTaskDeleteDialog = ScheduledTaskDeleteDialog; exports.ScheduledTaskDetailView = ScheduledTaskDetailView; exports.ScheduledTasksSpaceView = ScheduledTasksSpaceView; exports.Search = Search; exports.SearchInput = SearchInput; exports.SearchResult = SearchResult; exports.Section = Section; exports.SegmentedControl = SegmentedControl; exports.Select = Select; exports.SelectTrigger = SelectTrigger; exports.SelectionBulkBar = SelectionBulkBar; exports.SeriesChart = SeriesChart; exports.Server = Server; exports.SessionContextAgentView = SessionContextAgentView; exports.SessionContextMenuView = SessionContextMenuView; exports.SessionContextPanelView = SessionContextPanelView; exports.Settings = Settings; exports.SettingsPathDescription = SettingsPathDescription; exports.SettingsRow = SettingsRow; exports.Share = Share; exports.ShareSettingsDialogView = ShareSettingsDialogView; exports.ShareSettingsEditorView = ShareSettingsEditorView; exports.ShareStrip = ShareStrip; exports.Shield = Shield; exports.ShortcutGroupTable = ShortcutGroupTable; exports.ShortcutSheet = ShortcutSheet; exports.SidePanelEmpty = SidePanelEmpty; exports.SidebarIcon = SidebarIcon; exports.SidebarShell = SidebarShell; exports.SidebarToggle = SidebarToggle; exports.SitesArtifactCardView = SitesArtifactCardView; exports.Skeleton = Skeleton; exports.SkillAvatarView = SkillAvatarView; exports.SkillCardView = SkillCardView; exports.SkillDetailPanelView = SkillDetailPanelView; exports.SkillDetailView = SkillDetailView; exports.SkillImportDialogView = SkillImportDialogView; exports.SkillImportResultDialogView = SkillImportResultDialogView; exports.Skills = Skills; exports.SnapshotContentView = SnapshotContentView; exports.SnapshotImageExportView = SnapshotImageExportView; exports.Sort = Sort; exports.Sparkles = Sparkles; exports.Spinner = Spinner; exports.Splash = Splash; exports.StarterCapsules = StarterCapsules; exports.StatusTag = StatusTag; exports.Stop = Stop; exports.SubAgentPane = SubAgentPane; exports.SubAgentThread = SubAgentThread; exports.SuccessCircle = SuccessCircle; exports.Sun = Sun; exports.Switch = Switch; exports.Tabs = Tabs; exports.Tag = Tag; exports.Terminal = Terminal; exports.TerminalPane = TerminalPane; exports.ThemeProvider = ThemeProvider; exports.Thinking = Thinking; exports.ThreadDot = ThreadDot; exports.TimePicker = TimePicker; exports.TitleBar = TitleBar; exports.Toast = Toast; exports.ToastRegion = ToastRegion; exports.ToolCallRow = ToolCallRow; exports.ToolDetailModalView = ToolDetailModalView; exports.Tooltip = Tooltip; exports.TraceDot = TraceDot; exports.Transcript = Transcript; exports.TranscriptSpine = TranscriptSpine; exports.Trash = Trash; exports.UI_LOCALES = _chunkZZTEY4YXcjs.UI_LOCALES; exports.UiLocaleProvider = UiLocaleProvider; exports.UninstallConfirmDialog = UninstallConfirmDialog; exports.UnreadDivider = UnreadDivider; exports.Usage = Usage; exports.UserTurn = UserTurn; exports.Volume = Volume; exports.WORKBENCH_SIDE_PANEL_WIDTH = WORKBENCH_SIDE_PANEL_WIDTH; exports.WarningTriangle = WarningTriangle; exports.WeCom = WeCom; exports.WebPreviewConsole = WebPreviewConsole; exports.WebPreviewDialog = WebPreviewDialog; exports.WebPreviewNav = WebPreviewNav; exports.WebPreviewShell = WebPreviewShell; exports.WindowBand = WindowBand; exports.WindowChrome = WindowChrome; exports.WindowTrafficLightGhost = WindowTrafficLightGhost; exports.WorkbenchPreviewLayout = WorkbenchPreviewLayout; exports.WorkbenchSidePanel = WorkbenchSidePanel; exports.WorkbenchSidePanelBody = WorkbenchSidePanelBody; exports.WorkspaceMigrateConfirm = WorkspaceMigrateConfirm; exports.Zap = Zap; exports.ZoomIn = ZoomIn; exports.ZoomOut = ZoomOut; exports.basenameFromLocalPath = basenameFromLocalPath; exports.catalogInstallStatus = catalogInstallStatus; exports.collectMarkdownFileRefs = collectMarkdownFileRefs; exports.configureUiMessageTranslator = configureUiMessageTranslator; exports.createUiTranslator = createUiTranslator; exports.dataSeriesColor = dataSeriesColor; exports.desktopToolStatusLabel = desktopToolStatusLabel; exports.findFixedOffsetAncestor = findFixedOffsetAncestor; exports.formatExecutionFailure = formatExecutionFailure; exports.formatExecutionMeta = formatExecutionMeta; exports.formatProcessDuration = formatProcessDuration; exports.formatShortcut = formatShortcut; exports.formatShortcutKeys = formatShortcutKeys; exports.formatToolMetrics = formatToolMetrics; exports.hasOrbitworkSkinChatBackground = _chunkKRP43SUAcjs.hasOrbitworkSkinChatBackground; exports.hashToDataColor = hashToDataColor; exports.inferAttachmentMeta = inferAttachmentMeta; exports.isImeCommitEnter = isImeCommitEnter; exports.isMacHostPlatform = isMacHostPlatform; exports.isOrbitworkFontScale = _chunkKRP43SUAcjs.isOrbitworkFontScale; exports.isUiLocale = _chunkZZTEY4YXcjs.isUiLocale; exports.localizeUiCopy = localizeUiCopy; exports.localizedCopy = localizedCopy; exports.normalizePreviewUrl = normalizePreviewUrl; exports.orbitworkSkinChatBackgroundMaskColor = _chunkKRP43SUAcjs.orbitworkSkinChatBackgroundMaskColor; exports.owFloatingActionClass = owFloatingActionClass; exports.parseOrbitworkSkin = _chunkKRP43SUAcjs.parseOrbitworkSkin; exports.parseTenantTheme = parseTenantTheme; exports.ptToPx = ptToPx; exports.resolveFileIcon = resolveFileIcon; exports.resolveOrbitworkFontScale = _chunkKRP43SUAcjs.resolveOrbitworkFontScale; exports.resolveOrbitworkSkinChatBackgroundMask = _chunkKRP43SUAcjs.resolveOrbitworkSkinChatBackgroundMask; exports.skillAvatarTone = skillAvatarTone; exports.skillGlyph = skillGlyph; exports.uiMessage = uiMessage; exports.updateRowText = updateRowText; exports.useBranding = useBranding; exports.useImeAwareEnter = useImeAwareEnter; exports.useSelectedOptionLocator = useSelectedOptionLocator; exports.useTheme = useTheme; exports.useUiLocale = useUiLocale;
39000
+
39001
+ exports.ACCOUNT_CREDITS_WARN_RATIO = ACCOUNT_CREDITS_WARN_RATIO; exports.ActionStatus = ActionStatus; exports.AgentLoopSegment = AgentLoopSegment; exports.AgentTurn = AgentTurn; exports.AppLayout = AppLayout; exports.Archive = Archive; exports.Arrow = Arrow; exports.ArrowDown = ArrowDown; exports.ArtifactCard = ArtifactCard; exports.ArtifactPreviewCard = ArtifactPreviewCard; exports.ArtifactPreviewSidebarView = ArtifactPreviewSidebarView; exports.ArtifactTrail = ArtifactTrail; exports.AskQuestionCardView = AskQuestionCardView; exports.AssistantChannelCard = AssistantChannelCard; exports.Atom = Atom; exports.Attachment = Attachment; exports.AttachmentList = AttachmentList; exports.AuthorizationCard = AuthorizationCard; exports.Avatar = Avatar; exports.BEACON_ICON_NAMES = BEACON_ICON_NAMES; exports.BUILTIN_ORBITWORK_SKINS = _chunkQ7B4M5GCcjs.BUILTIN_ORBITWORK_SKINS; exports.BackButton = BackButton; exports.BackTop = BackTop; exports.Badge = Badge; exports.Banner = Banner; exports.BarChart = BarChart; exports.BeaconIcon = BeaconIcon; exports.BeaconSpinner = BeaconSpinner; exports.Bell = Bell; exports.Bolt = Bolt; exports.Brain = Brain; exports.Branch = Branch; exports.BranchDivider = BranchDivider; exports.BrandPreviewScope = BrandPreviewScope; exports.BrowserAnnotationPopupView = BrowserAnnotationPopupView; exports.BrowserDeviceToolbarView = BrowserDeviceToolbarView; exports.BrowserFindBarView = BrowserFindBarView; exports.BrowserImportDialogView = BrowserImportDialogView; exports.BrowserLoadErrorView = BrowserLoadErrorView; exports.BrowserMoreMenuView = BrowserMoreMenuView; exports.BrowserNavBarView = BrowserNavBarView; exports.Button = Button; exports.Card = Card; exports.CardGridSkeleton = CardGridSkeleton; exports.CatalogEmptyState = CatalogEmptyState; exports.Check = Check; exports.Checkbox = Checkbox; exports.ChevDown = ChevDown; exports.ChevLeft = ChevLeft; exports.ChevRight = ChevRight; exports.ChevUp = ChevUp; exports.Chip = Chip; exports.Circle = Circle; exports.ClipboardList = ClipboardList; exports.Clock = Clock; exports.Close = Close; exports.CodeBlock = CodeBlock; exports.CodeDiff = CodeDiff; exports.CodePreview = CodePreview; exports.CommandPalette = CommandPalette; exports.CommentPlus = CommentPlus; exports.Compass = Compass; exports.Composer = Composer; exports.ComposerAudioSpectrum = ComposerAudioSpectrum; exports.ComposerAuthorization = ComposerAuthorization; exports.ComposerMentions = ComposerMentions; exports.ComposerMenu = ComposerMenu; exports.ComposerMenuPopover = ComposerMenuPopover; exports.ComposerPopover = ComposerPopover; exports.ComposerProjectPicker = ComposerProjectPicker; exports.ComposerQueue = ComposerQueue; exports.ComposerVoiceInput = ComposerVoiceInput; exports.CompressionDivider = CompressionDivider; exports.ComputerUseWindowOverlayView = ComputerUseWindowOverlayView; exports.ContentRecommendation = ContentRecommendation; exports.ContextUsage = ContextUsage; exports.ContextUsageIndicatorView = ContextUsageIndicatorView; exports.Copy = Copy; exports.Cpu = Cpu; exports.CreateProjectDialog = CreateProjectDialog; exports.CsvPreview = CsvPreview; exports.Cut = Cut; exports.DEFAULT_ORBITWORK_SKIN_ID = _chunkQ7B4M5GCcjs.DEFAULT_ORBITWORK_SKIN_ID; exports.DEFAULT_UI_LOCALE = _chunkZZTEY4YXcjs.DEFAULT_UI_LOCALE; exports.DESKTOP_ACCOUNT_MENU_WIDTH = DESKTOP_ACCOUNT_MENU_WIDTH; exports.DESKTOP_LOGIN_CLAIM = DESKTOP_LOGIN_CLAIM; exports.DESKTOP_LOGIN_CLAIM_NOTE = DESKTOP_LOGIN_CLAIM_NOTE; exports.DataManagementSectionView = DataManagementSectionView; exports.DataTable = DataTable; exports.DataTableToolbar = DataTableToolbar; exports.DateDivider = DateDivider; exports.DesktopAboutSettingsView = DesktopAboutSettingsView; exports.DesktopAccountMenuView = DesktopAccountMenuView; exports.DesktopAgentCardView = DesktopAgentCardView; exports.DesktopAgentDetailActions = DesktopAgentDetailActions; exports.DesktopAgentDetailView = DesktopAgentDetailView; exports.DesktopAgentOverviewView = DesktopAgentOverviewView; exports.DesktopAgentRosterView = DesktopAgentRosterView; exports.DesktopAppearanceSettings = DesktopAppearanceSettings; exports.DesktopAssistantAdvanced = DesktopAssistantAdvanced; exports.DesktopAssistantBindCard = DesktopAssistantBindCard; exports.DesktopAssistantConfigActions = DesktopAssistantConfigActions; exports.DesktopAssistantConfigContent = DesktopAssistantConfigContent; exports.DesktopAssistantConfigFields = DesktopAssistantConfigFields; exports.DesktopAssistantConfigLayout = DesktopAssistantConfigLayout; exports.DesktopAssistantConfigView = DesktopAssistantConfigView; exports.DesktopAssistantField = DesktopAssistantField; exports.DesktopAssistantFieldState = DesktopAssistantFieldState; exports.DesktopAssistantFooterHint = DesktopAssistantFooterHint; exports.DesktopAssistantQr = DesktopAssistantQr; exports.DesktopAssistantScanHint = DesktopAssistantScanHint; exports.DesktopAssistantScanPanel = DesktopAssistantScanPanel; exports.DesktopCatalogCardView = DesktopCatalogCardView; exports.DesktopCatalogDetailActions = DesktopCatalogDetailActions; exports.DesktopCatalogDetailShell = DesktopCatalogDetailShell; exports.DesktopCatalogGridView = DesktopCatalogGridView; exports.DesktopCatalogToolbarView = DesktopCatalogToolbarView; exports.DesktopChatAgentTurnView = DesktopChatAgentTurnView; exports.DesktopChatCompressionDivider = DesktopChatCompressionDivider; exports.DesktopChatEmptyStateView = DesktopChatEmptyStateView; exports.DesktopChatHeaderView = DesktopChatHeaderView; exports.DesktopChatHistoryEmptyStateView = DesktopChatHistoryEmptyStateView; exports.DesktopChatMessageView = DesktopChatMessageView; exports.DesktopChatReconnectDivider = DesktopChatReconnectDivider; exports.DesktopChatUserTurnView = DesktopChatUserTurnView; exports.DesktopComposer = DesktopComposer; exports.DesktopComposerModelButton = DesktopComposerModelButton; exports.DesktopConnectorCardView = DesktopConnectorCardView; exports.DesktopConnectorDetailView = DesktopConnectorDetailView; exports.DesktopConversationView = DesktopConversationView; exports.DesktopDetailChips = DesktopDetailChips; exports.DesktopDetailList = DesktopDetailList; exports.DesktopDetailRows = DesktopDetailRows; exports.DesktopDetailSection = DesktopDetailSection; exports.DesktopDetailText = DesktopDetailText; exports.DesktopHomeView = DesktopHomeView; exports.DesktopLibraryAuthorizationDialog = DesktopLibraryAuthorizationDialog; exports.DesktopLibraryPageView = DesktopLibraryPageView; exports.DesktopLoginView = DesktopLoginView; exports.DesktopOnboardingTourView = DesktopOnboardingTourView; exports.DesktopPet = DesktopPet; exports.DesktopProcessStepGroupView = DesktopProcessStepGroupView; exports.DesktopProcessTimelineView = DesktopProcessTimelineView; exports.DesktopRuntimeSettingsView = DesktopRuntimeSettingsView; exports.DesktopSettingsMemorySection = DesktopSettingsMemorySection; exports.DesktopSettingsView = DesktopSettingsView; exports.DesktopShareSelectionBarView = DesktopShareSelectionBarView; exports.DesktopSidebarView = DesktopSidebarView; exports.DesktopSiteReleasesView = DesktopSiteReleasesView; exports.DesktopSitesListView = DesktopSitesListView; exports.DesktopSkillsPageView = DesktopSkillsPageView; exports.DesktopTaskDetailView = DesktopTaskDetailView; exports.DesktopToolCallListView = DesktopToolCallListView; exports.DesktopToolCallView = DesktopToolCallView; exports.DesktopWorkbenchShell = DesktopWorkbenchShell; exports.DetailOverflowMenu = DetailOverflowMenu; exports.DetailPanel = DetailPanel; exports.DetailScaffold = DetailScaffold; exports.Device = Device; exports.Dialog = Dialog; exports.DingTalk = DingTalk; exports.DingTalkAi = DingTalkAi; exports.Dislike = Dislike; exports.Divider = Divider; exports.Doc = Doc; exports.Download = Download; exports.DropZone = DropZone; exports.Edit = Edit; exports.ElementDispatcher = ElementDispatcher; exports.EmptyState = EmptyState; exports.ErrorCircle = ErrorCircle; exports.ExecutionDetail = ExecutionDetail; exports.ExecutionSummary = ExecutionSummary; exports.ExecutionSummaryRow = ExecutionSummaryRow; exports.FeedbackContextMenuView = FeedbackContextMenuView; exports.FeedbackDialogView = FeedbackDialogView; exports.Feishu = Feishu; exports.Field = Field; exports.FileBrowser = FileBrowser; exports.FileBrowserPreviewState = FileBrowserPreviewState; exports.FileIcon = FileIcon; exports.FilePreviewContentView = FilePreviewContentView; exports.FilePreviewDialog = FilePreviewDialog; exports.FileTree = FileTree; exports.Filter = Filter; exports.FilterBar = FilterBar; exports.Folder = Folder; exports.FormField = FormField; exports.Gauge = Gauge; exports.Globe = Globe; exports.GlyphToneProvider = GlyphToneProvider; exports.Grid = Grid; exports.HOME_STARTER_CAPSULES = HOME_STARTER_CAPSULES; exports.Hand = Hand; exports.Help = Help; exports.HomeBackdrop = HomeBackdrop; exports.IME_COMMIT_GUARD_MS = IME_COMMIT_GUARD_MS; exports.Icon = Icon; exports.Icons = Icons; exports.Image = Image; exports.ImagePreview = ImagePreview; exports.InfoCircle = InfoCircle; exports.InlineAttachment = InlineAttachment; exports.InlineMessage = InlineMessage; exports.JumpToLatest = JumpToLatest; exports.Key = Key; exports.KeyValueField = KeyValueField; exports.Keyboard = Keyboard; exports.Keycap = Keycap; exports.KeycapCombo = KeycapCombo; exports.Layers = Layers; exports.Like = Like; exports.LikeFill = LikeFill; exports.ListRow = ListRow; exports.ListRowGroup = ListRowGroup; exports.Loader = Loader; exports.Lock = Lock; exports.Logout = Logout; exports.MENU_SEPARATOR = MENU_SEPARATOR; exports.Mail = Mail; exports.Markdown = Markdown; exports.MarkdownPreview = MarkdownPreview; exports.MarkdownPreviewDialog = MarkdownPreviewDialog; exports.Maximize = Maximize; exports.McpServerListView = McpServerListView; exports.Memo = Memo; exports.Menu = Menu; exports.MenuSurface = MenuSurface; exports.MessageActions = MessageActions; exports.MessageFeedbackDialog = MessageFeedbackDialog; exports.Mic = Mic; exports.ModalityAudio = ModalityAudio; exports.ModalityImage = ModalityImage; exports.ModalityText = ModalityText; exports.ModalityVideo = ModalityVideo; exports.ModelCatalogErrorState = ModelCatalogErrorState; exports.ModelModalityFlow = ModelModalityFlow; exports.ModelPickerList = ModelPickerList; exports.ModelSelect = ModelSelect; exports.ModelsSettingsSectionView = ModelsSettingsSectionView; exports.Moon = Moon; exports.More = More; exports.NAV_MENU_DIVIDER = NAV_MENU_DIVIDER; exports.NavMenu = NavMenu; exports.NewTask = NewTask; exports.NoPlanPanelView = NoPlanPanelView; exports.ORBITWORK_FONT_SCALES = _chunkJC7BHKS4cjs.ORBITWORK_FONT_SCALES; exports.OfficePreview = OfficePreview; exports.OfficePreviewDialog = OfficePreviewDialog; exports.OpenWithMenu = OpenWithMenu; exports.OrbitworkLockup = OrbitworkLockup; exports.OrbitworkMark = OrbitworkMark; exports.PT_TO_PX = PT_TO_PX; exports.Package = Package; exports.PageHead = PageHead; exports.Pagination = Pagination; exports.PanelFold = PanelFold; exports.PanelSidebar = PanelSidebar; exports.PanelSidebarCollapse = PanelSidebarCollapse; exports.Paperclip = Paperclip; exports.Pause = Pause; exports.PdfPageNav = PdfPageNav; exports.PdfPreview = PdfPreview; exports.PdfPreviewDialog = PdfPreviewDialog; exports.Pin = Pin; exports.PlanCard = PlanCard; exports.PlanEntitlementCard = PlanEntitlementCard; exports.PlanEntitlementGrid = PlanEntitlementGrid; exports.PlanFeatureIcon = PlanFeatureIcon; exports.PlanSettingsSectionView = PlanSettingsSectionView; exports.Play = Play; exports.Plus = Plus; exports.Popover = Popover; exports.PptxSlide = PptxSlide; exports.PreviewSurfaceArea = PreviewSurfaceArea; exports.ProgressBar = ProgressBar; exports.ProjectSelect = ProjectSelect; exports.Quote = Quote; exports.Radio = Radio; exports.RadioCardGroup = RadioCardGroup; exports.RadioGroup = RadioGroup; exports.Refresh = Refresh; exports.ResourceConfirmation = ResourceConfirmation; exports.ResourceDetailView = ResourceDetailView; exports.ResourceListView = ResourceListView; exports.ResourceNotice = ResourceNotice; exports.ResourceOverviewView = ResourceOverviewView; exports.ResourceReleasesView = ResourceReleasesView; exports.ResourceRowActionDialog = ResourceRowActionDialog; exports.ResourceWorkbenchView = ResourceWorkbenchView; exports.RichCard = RichCard; exports.RichLink = RichLink; exports.RichList = RichList; exports.Rotate = Rotate; exports.RowOverflowMenu = RowOverflowMenu; exports.SIDE_PANEL_EMPTY_ACTIONS = SIDE_PANEL_EMPTY_ACTIONS; exports.STATUS_TAG_PRESETS = STATUS_TAG_PRESETS; exports.SandboxPermissionPrompt = SandboxPermissionPrompt; exports.ScheduledTaskCardView = ScheduledTaskCardView; exports.ScheduledTaskDeleteDialog = ScheduledTaskDeleteDialog; exports.ScheduledTaskDetailView = ScheduledTaskDetailView; exports.ScheduledTasksSpaceView = ScheduledTasksSpaceView; exports.Search = Search; exports.SearchInput = SearchInput; exports.SearchResult = SearchResult; exports.Section = Section; exports.SegmentedControl = SegmentedControl; exports.Select = Select; exports.SelectTrigger = SelectTrigger; exports.SelectionBulkBar = SelectionBulkBar; exports.SeriesChart = SeriesChart; exports.Server = Server; exports.SessionContextAgentView = SessionContextAgentView; exports.SessionContextMenuView = SessionContextMenuView; exports.SessionContextPanelView = SessionContextPanelView; exports.Settings = Settings; exports.SettingsPathDescription = SettingsPathDescription; exports.SettingsRow = SettingsRow; exports.Share = Share; exports.ShareSettingsDialogView = ShareSettingsDialogView; exports.ShareSettingsEditorView = ShareSettingsEditorView; exports.ShareStrip = ShareStrip; exports.Shield = Shield; exports.ShortcutGroupTable = ShortcutGroupTable; exports.ShortcutSheet = ShortcutSheet; exports.SidePanelEmpty = SidePanelEmpty; exports.SidebarIcon = SidebarIcon; exports.SidebarShell = SidebarShell; exports.SidebarToggle = SidebarToggle; exports.SitesArtifactCardView = SitesArtifactCardView; exports.Skeleton = Skeleton; exports.SkillAvatarView = SkillAvatarView; exports.SkillCardView = SkillCardView; exports.SkillDetailPanelView = SkillDetailPanelView; exports.SkillDetailView = SkillDetailView; exports.SkillImportDialogView = SkillImportDialogView; exports.SkillImportResultDialogView = SkillImportResultDialogView; exports.Skills = Skills; exports.SnapshotContentView = SnapshotContentView; exports.SnapshotImageExportView = SnapshotImageExportView; exports.Sort = Sort; exports.Sparkles = Sparkles; exports.Spinner = Spinner; exports.Splash = Splash; exports.StarterCapsules = StarterCapsules; exports.StatusTag = StatusTag; exports.Stop = Stop; exports.SubAgentPane = SubAgentPane; exports.SubAgentThread = SubAgentThread; exports.SuccessCircle = SuccessCircle; exports.Sun = Sun; exports.Switch = Switch; exports.Tabs = Tabs; exports.Tag = Tag; exports.Terminal = Terminal; exports.TerminalPane = TerminalPane; exports.ThemeProvider = ThemeProvider; exports.Thinking = Thinking; exports.ThreadDot = ThreadDot; exports.TimePicker = TimePicker; exports.TitleBar = TitleBar; exports.Toast = Toast; exports.ToastRegion = ToastRegion; exports.ToolCallRow = ToolCallRow; exports.ToolDetailModalView = ToolDetailModalView; exports.Tooltip = Tooltip; exports.TraceDot = TraceDot; exports.Transcript = Transcript; exports.TranscriptSpine = TranscriptSpine; exports.Trash = Trash; exports.UI_LOCALES = _chunkZZTEY4YXcjs.UI_LOCALES; exports.UiLocaleProvider = UiLocaleProvider; exports.UninstallConfirmDialog = UninstallConfirmDialog; exports.UnreadDivider = UnreadDivider; exports.Usage = Usage; exports.UserTurn = UserTurn; exports.Volume = Volume; exports.WORKBENCH_SIDE_PANEL_WIDTH = WORKBENCH_SIDE_PANEL_WIDTH; exports.WarningTriangle = WarningTriangle; exports.WeCom = WeCom; exports.WebPreviewConsole = WebPreviewConsole; exports.WebPreviewDialog = WebPreviewDialog; exports.WebPreviewNav = WebPreviewNav; exports.WebPreviewShell = WebPreviewShell; exports.WindowBand = WindowBand; exports.WindowChrome = WindowChrome; exports.WindowTrafficLightGhost = WindowTrafficLightGhost; exports.WorkbenchPreviewLayout = WorkbenchPreviewLayout; exports.WorkbenchSidePanel = WorkbenchSidePanel; exports.WorkbenchSidePanelBody = WorkbenchSidePanelBody; exports.WorkspaceMigrateConfirm = WorkspaceMigrateConfirm; exports.Zap = Zap; exports.ZoomIn = ZoomIn; exports.ZoomOut = ZoomOut; exports.basenameFromLocalPath = basenameFromLocalPath; exports.catalogInstallStatus = catalogInstallStatus; exports.collectMarkdownFileRefs = collectMarkdownFileRefs; exports.configureUiMessageTranslator = configureUiMessageTranslator; exports.createUiTranslator = createUiTranslator; exports.dataSeriesColor = dataSeriesColor; exports.desktopToolStatusLabel = desktopToolStatusLabel; exports.findFixedOffsetAncestor = findFixedOffsetAncestor; exports.formatExecutionFailure = formatExecutionFailure; exports.formatExecutionMeta = formatExecutionMeta; exports.formatProcessDuration = formatProcessDuration; exports.formatShortcut = formatShortcut; exports.formatShortcutKeys = formatShortcutKeys; exports.formatToolMetrics = formatToolMetrics; exports.hasOrbitworkSkinChatBackground = _chunkJC7BHKS4cjs.hasOrbitworkSkinChatBackground; exports.hashToDataColor = hashToDataColor; exports.inferAttachmentMeta = inferAttachmentMeta; exports.isImeCommitEnter = isImeCommitEnter; exports.isMacHostPlatform = isMacHostPlatform; exports.isOrbitworkFontScale = _chunkJC7BHKS4cjs.isOrbitworkFontScale; exports.isUiLocale = _chunkZZTEY4YXcjs.isUiLocale; exports.localizeUiCopy = localizeUiCopy; exports.localizedCopy = _chunkK7ONUTLAcjs.localizedCopy; exports.normalizePreviewUrl = normalizePreviewUrl; exports.orbitworkSkinChatBackgroundMaskColor = _chunkJC7BHKS4cjs.orbitworkSkinChatBackgroundMaskColor; exports.owFloatingActionClass = owFloatingActionClass; exports.parseOrbitworkSkin = _chunkJC7BHKS4cjs.parseOrbitworkSkin; exports.parseTenantTheme = parseTenantTheme; exports.ptToPx = ptToPx; exports.resolveFileIcon = resolveFileIcon; exports.resolveOrbitworkFontScale = _chunkJC7BHKS4cjs.resolveOrbitworkFontScale; exports.resolveOrbitworkSkinChatBackgroundMask = _chunkJC7BHKS4cjs.resolveOrbitworkSkinChatBackgroundMask; exports.skillAvatarTone = skillAvatarTone; exports.skillGlyph = skillGlyph; exports.uiMessage = uiMessage; exports.updateRowText = updateRowText; exports.useBranding = useBranding; exports.useImeAwareEnter = useImeAwareEnter; exports.useSelectedOptionLocator = useSelectedOptionLocator; exports.useTheme = useTheme; exports.useUiLocale = useUiLocale;
39167
39002
  //# sourceMappingURL=index.cjs.map