@zerwiz/sessrumnir 0.1.16 → 0.1.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/out/main/index.js CHANGED
@@ -7302,13 +7302,6 @@ function themeIdFromName(name) {
7302
7302
  return name.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
7303
7303
  }
7304
7304
  const BUILTIN_THEME_IDS = [
7305
- "dark",
7306
- "light",
7307
- "nord",
7308
- "gruvbox",
7309
- "breeze-dark",
7310
- "breeze-light",
7311
- "breeze-claudius",
7312
7305
  "sessrumnir",
7313
7306
  "fensalir"
7314
7307
  ];
@@ -16426,110 +16426,9 @@ function resolveThemeVars(file) {
16426
16426
  return vars;
16427
16427
  }
16428
16428
  const BUILTIN_THEME_IDS$1 = [
16429
- "dark",
16430
- "light",
16431
- "nord",
16432
- "gruvbox",
16433
- "breeze-dark",
16434
- "breeze-light",
16435
- "breeze-claudius",
16436
16429
  "sessrumnir",
16437
16430
  "fensalir"
16438
16431
  ];
16439
- const $schema$8 = "pi-theme/v1";
16440
- const name$a = "Dark";
16441
- const kind$8 = "dark";
16442
- const seeds$8 = { "app": "#0a0a0a", "surface": "#171717", "text": "#f5f5f5", "accent": "#2563eb", "success": "#34d399", "warning": "#facc15", "error": "#f87171" };
16443
- const overrides$9 = { "surface-hover": "#262626", "card": "#262626", "elevated": "#404040", "highlight": "#171717", "highlight-strong": "#262626", "secondary": "#d4d4d4", "muted": "#a3a3a3", "dim": "#737373", "faint": "#525252", "ghost": "#404040", "inverse": "#0a0a0a", "border": "#262626", "border-strong": "#404040", "focus": "#3b82f6", "accent-hover": "#1d4ed8", "accent-fg": "#60a5fa", "accent-bg": "rgba(30, 58, 138, 0.3)", "success-bg": "rgba(6, 78, 59, 0.3)", "warning-bg": "rgba(113, 63, 18, 0.3)", "error-bg": "rgba(127, 29, 29, 0.3)", "info": "#60a5fa", "info-bg": "rgba(30, 58, 138, 0.3)", "special": "#c084fc", "special-bg": "rgba(88, 28, 135, 0.3)", "chat-column": "#0a0a0a", "chat-column-border": "#262626", "scrollbar": "#2a2a2a", "scrollbar-hover": "#3a3a3a", "md-code": "#60a5fa", "md-pre-bg": "#0d1117" };
16444
- const dark = {
16445
- $schema: $schema$8,
16446
- name: name$a,
16447
- kind: kind$8,
16448
- seeds: seeds$8,
16449
- overrides: overrides$9
16450
- };
16451
- const $schema$7 = "pi-theme/v1";
16452
- const name$9 = "Light";
16453
- const kind$7 = "light";
16454
- const seeds$7 = { "app": "#ffffff", "surface": "#f5f5f5", "text": "#171717", "accent": "#2563eb", "success": "#10b981", "warning": "#f59e0b", "error": "#ef4444" };
16455
- const overrides$8 = { "surface-hover": "#e5e5e5", "card": "#e5e5e5", "elevated": "#d4d4d4", "highlight": "#f5f5f5", "highlight-strong": "#e5e5e5", "secondary": "#404040", "muted": "#525252", "dim": "#737373", "faint": "#a3a3a3", "ghost": "#d4d4d4", "inverse": "#ffffff", "border": "#e5e5e5", "border-strong": "#d4d4d4", "focus": "#3b82f6", "accent-hover": "#1d4ed8", "accent-fg": "#3b82f6", "accent-bg": "rgba(30, 64, 175, 0.15)", "success-bg": "rgba(6, 95, 70, 0.15)", "warning-bg": "rgba(113, 63, 18, 0.15)", "error-bg": "rgba(153, 27, 27, 0.15)", "info": "#3b82f6", "info-bg": "rgba(30, 64, 175, 0.15)", "special": "#a855f7", "special-bg": "rgba(88, 28, 135, 0.15)", "chat-column": "#ffffff", "chat-column-border": "#e5e5e5", "scrollbar": "#d4d4d4", "scrollbar-hover": "#a3a3a3", "md-code": "#a855f7", "md-pre-bg": "#f8f9fa" };
16456
- const light = {
16457
- $schema: $schema$7,
16458
- name: name$9,
16459
- kind: kind$7,
16460
- seeds: seeds$7,
16461
- overrides: overrides$8
16462
- };
16463
- const $schema$6 = "pi-theme/v1";
16464
- const name$8 = "Nord";
16465
- const kind$6 = "dark";
16466
- const seeds$6 = { "app": "#2E3440", "surface": "#3B4252", "text": "#ECEFF4", "accent": "#5E81AC", "success": "#A3BE8C", "warning": "#EBCB8B", "error": "#BF616A" };
16467
- const overrides$7 = { "surface-hover": "#434C5E", "card": "#434C5E", "elevated": "#4C566A", "highlight": "#3B4252", "highlight-strong": "#434C5E", "secondary": "#D8DEE9", "muted": "#9599A3", "dim": "#616E88", "faint": "#4C566A", "ghost": "#434C5E", "inverse": "#2E3440", "border": "#434C5E", "border-strong": "#4C566A", "focus": "#88C0D0", "accent-hover": "#81A1C1", "accent-fg": "#81A1C1", "accent-bg": "rgba(46, 52, 64, 0.5)", "success-bg": "rgba(163, 190, 140, 0.15)", "warning-bg": "rgba(235, 203, 139, 0.15)", "error-bg": "rgba(191, 97, 106, 0.15)", "info": "#81A1C1", "info-bg": "rgba(46, 52, 64, 0.5)", "special": "#B48EAD", "special-bg": "rgba(180, 142, 173, 0.15)", "chat-column": "#2E3440", "chat-column-border": "#434C5E", "scrollbar": "#434C5E", "scrollbar-hover": "#4C566A", "md-code": "#B48EAD", "md-pre-bg": "#242932" };
16468
- const syntax$6 = { "keyword": "#C792EA", "string": "#C3E88D", "comment": "#7B88A1", "function": "#82AAFF", "type": "#FFCB6B", "number": "#F78C6C", "operator": "#89DDFF", "property": "#F78C6C", "tag": "#F07178", "variable": "#EEFFFF", "constant": "#F78C6C", "heading": "#C792EA", "link": "#C3E88D", "list": "#F78C6C", "quote": "#7B88A1", "meta": "#B2CCD6", "mark": "#C792EA", "invalid": "#F07178", "active-line-bg": "rgba(216, 222, 233, 0.05)", "selection-bg": "rgba(94, 129, 172, 0.40)", "selection-match-bg": "rgba(216, 222, 233, 0.08)" };
16469
- const nord = {
16470
- $schema: $schema$6,
16471
- name: name$8,
16472
- kind: kind$6,
16473
- seeds: seeds$6,
16474
- overrides: overrides$7,
16475
- syntax: syntax$6
16476
- };
16477
- const $schema$5 = "pi-theme/v1";
16478
- const name$7 = "Gruvbox";
16479
- const kind$5 = "dark";
16480
- const seeds$5 = { "app": "#282828", "surface": "#3C3836", "text": "#EBDBB2", "accent": "#458588", "success": "#B8BB26", "warning": "#FABD2F", "error": "#FB4934" };
16481
- const overrides$6 = { "surface-hover": "#504945", "card": "#504945", "elevated": "#665C54", "highlight": "#3C3836", "highlight-strong": "#504945", "secondary": "#BDAE93", "muted": "#A89984", "dim": "#928374", "faint": "#7C6F64", "ghost": "#665C54", "inverse": "#282828", "border": "#504945", "border-strong": "#665C54", "focus": "#D79921", "accent-hover": "#689D6A", "accent-fg": "#83A598", "accent-bg": "rgba(40, 40, 40, 0.5)", "success-bg": "rgba(152, 151, 26, 0.15)", "warning-bg": "rgba(215, 153, 33, 0.15)", "error-bg": "rgba(204, 36, 29, 0.15)", "info": "#83A598", "info-bg": "rgba(40, 40, 40, 0.5)", "special": "#D3869B", "special-bg": "rgba(177, 98, 134, 0.15)", "chat-column": "#282828", "chat-column-border": "#504945", "scrollbar": "#504945", "scrollbar-hover": "#665C54", "md-code": "#D3869B", "md-pre-bg": "#1D2021" };
16482
- const syntax$5 = { "keyword": "#D3869B", "string": "#B8BB26", "comment": "#A89984", "function": "#FABD2F", "type": "#FABD2F", "number": "#FE8019", "operator": "#83A598", "property": "#FE8019", "tag": "#FB4934", "variable": "#EBDBB2", "constant": "#FE8019", "heading": "#D3869B", "link": "#B8BB26", "list": "#FE8019", "quote": "#A89984", "meta": "#BDAE93", "mark": "#D3869B", "invalid": "#FB4934", "active-line-bg": "rgba(235, 219, 178, 0.04)", "selection-bg": "rgba(69, 133, 136, 0.40)", "selection-match-bg": "rgba(235, 219, 178, 0.08)" };
16483
- const gruvbox = {
16484
- $schema: $schema$5,
16485
- name: name$7,
16486
- kind: kind$5,
16487
- seeds: seeds$5,
16488
- overrides: overrides$6,
16489
- syntax: syntax$5
16490
- };
16491
- const $schema$4 = "pi-theme/v1";
16492
- const name$6 = "Breeze Dark";
16493
- const kind$4 = "dark";
16494
- const seeds$4 = { "app": "#232629", "surface": "#31363b", "text": "#cfcfc2", "accent": "#2980b9", "success": "#1c8042", "warning": "#fdbc4b", "error": "#da4453" };
16495
- const overrides$5 = { "surface-hover": "#3f4347", "card": "#3f4347", "elevated": "#4d5358", "highlight": "#31363b", "highlight-strong": "#3f4347", "secondary": "#a5a6a8", "muted": "#898a8c", "dim": "#7a7c7d", "faint": "#5f6266", "ghost": "#4d5358", "inverse": "#232629", "border": "#3f4347", "border-strong": "#4d5358", "focus": "#3daee9", "accent-hover": "#3daee9", "accent-fg": "#3daee9", "accent-bg": "rgba(45, 92, 118, 0.5)", "success-bg": "rgba(28, 128, 66, 0.15)", "warning-bg": "rgba(246, 116, 0, 0.15)", "error-bg": "rgba(218, 68, 83, 0.15)", "info": "#3daee9", "info-bg": "rgba(45, 92, 118, 0.5)", "special": "#8e44ad", "special-bg": "rgba(142, 68, 173, 0.15)", "chat-column": "#232629", "chat-column-border": "#3f4347", "scrollbar": "#3f4347", "scrollbar-hover": "#4d5358", "md-code": "#60a5fa", "md-pre-bg": "#1d2024" };
16496
- const syntax$4 = { "keyword": "#fdbc4b", "string": "#f44f4f", "comment": "#7a7c7d", "function": "#8e44ad", "type": "#2980b9", "number": "#f67400", "operator": "#3f8058", "property": "#27aeae", "tag": "#2980b9", "variable": "#cfcfc2", "constant": "#27aeae", "heading": "#8e44ad", "link": "#0099ff", "list": "#da4453", "quote": "#7a7c7d", "meta": "#a5a6a8", "mark": "#8e44ad", "invalid": "#da4453", "active-line-bg": "#2A2E32", "selection-bg": "rgba(45, 92, 118, 0.65)", "selection-match-bg": "rgba(65, 72, 87, 0.5)" };
16497
- const breezeDark = {
16498
- $schema: $schema$4,
16499
- name: name$6,
16500
- kind: kind$4,
16501
- seeds: seeds$4,
16502
- overrides: overrides$5,
16503
- syntax: syntax$4
16504
- };
16505
- const $schema$3 = "pi-theme/v1";
16506
- const name$5 = "Breeze Light";
16507
- const kind$3 = "light";
16508
- const seeds$3 = { "app": "#ffffff", "surface": "#f8f7f6", "text": "#1f1c1b", "accent": "#0057ae", "success": "#006e28", "warning": "#b08000", "error": "#bf0303" };
16509
- const overrides$4 = { "surface-hover": "#ebebeb", "card": "#ebebeb", "elevated": "#d8d8d8", "highlight": "#f8f7f6", "highlight-strong": "#ebebeb", "secondary": "#444444", "muted": "#5d5d5d", "dim": "#7a7c7d", "faint": "#898887", "ghost": "#d8d8d8", "inverse": "#ffffff", "border": "#d8d8d8", "border-strong": "#c0c0bf", "focus": "#0057ae", "accent-hover": "#2980b9", "accent-fg": "#0057ae", "accent-bg": "rgba(0, 87, 174, 0.12)", "success-bg": "rgba(0, 110, 40, 0.12)", "warning-bg": "rgba(176, 128, 0, 0.12)", "error-bg": "rgba(191, 3, 3, 0.12)", "info": "#0057ae", "info-bg": "rgba(0, 87, 174, 0.12)", "special": "#644a9b", "special-bg": "rgba(100, 74, 155, 0.12)", "chat-column": "#ffffff", "chat-column-border": "#d8d8d8", "scrollbar": "#d8d8d8", "scrollbar-hover": "#898887", "md-code": "#644a9b", "md-pre-bg": "#f8f7f6" };
16510
- const syntax$3 = { "keyword": "#b08000", "string": "#bf0303", "comment": "#898887", "function": "#644a9b", "type": "#0057ae", "number": "#b08000", "operator": "#ca60ca", "property": "#0057ae", "tag": "#0057ae", "variable": "#1f1c1b", "constant": "#aa5500", "heading": "#644a9b", "link": "#0095ff", "list": "#bf0303", "quote": "#898887", "meta": "#898887", "mark": "#644a9b", "invalid": "#bf0303", "active-line-bg": "#f8f7f6", "selection-bg": "rgba(148, 202, 239, 0.6)", "selection-match-bg": "rgba(0, 0, 0, 0.05)" };
16511
- const breezeLight = {
16512
- $schema: $schema$3,
16513
- name: name$5,
16514
- kind: kind$3,
16515
- seeds: seeds$3,
16516
- overrides: overrides$4,
16517
- syntax: syntax$3
16518
- };
16519
- const $schema$2 = "pi-theme/v1";
16520
- const name$4 = "Breeze Claudius";
16521
- const kind$2 = "dark";
16522
- const seeds$2 = { "app": "#232629", "surface": "#31363b", "text": "#cfcfc2", "accent": "#2980b9", "success": "#1c8042", "warning": "#fdbc4b", "error": "#da4453" };
16523
- const overrides$3 = { "surface-hover": "#3f4347", "card": "#3f4347", "elevated": "#4d5358", "highlight": "#31363b", "highlight-strong": "#3f4347", "secondary": "#a5a6a8", "muted": "#898a8c", "dim": "#7a7c7d", "faint": "#5f6266", "ghost": "#4d5358", "inverse": "#232629", "border": "#3f4347", "border-strong": "#4d5358", "focus": "#3daee9", "accent-hover": "#3daee9", "accent-fg": "#3daee9", "accent-bg": "rgba(45, 92, 118, 0.5)", "success-bg": "rgba(28, 128, 66, 0.15)", "warning-bg": "rgba(246, 116, 0, 0.15)", "error-bg": "rgba(218, 68, 83, 0.15)", "info": "#3daee9", "info-bg": "rgba(45, 92, 118, 0.5)", "special": "#8e44ad", "special-bg": "rgba(142, 68, 173, 0.15)", "chat-column": "#1e1e1e", "chat-column-border": "transparent", "scrollbar": "#3f4347", "scrollbar-hover": "#4d5358", "md-code": "#60a5fa", "md-pre-bg": "#1d2024" };
16524
- const syntax$2 = { "keyword": "#fdbc4b", "string": "#f44f4f", "comment": "#7a7c7d", "function": "#8e44ad", "type": "#2980b9", "number": "#f67400", "operator": "#3f8058", "property": "#27aeae", "tag": "#2980b9", "variable": "#cfcfc2", "constant": "#27aeae", "heading": "#8e44ad", "link": "#0099ff", "list": "#da4453", "quote": "#7a7c7d", "meta": "#a5a6a8", "mark": "#8e44ad", "invalid": "#da4453", "active-line-bg": "#2A2E32", "selection-bg": "rgba(45, 92, 118, 0.65)", "selection-match-bg": "rgba(65, 72, 87, 0.5)" };
16525
- const breezeClaudius = {
16526
- $schema: $schema$2,
16527
- name: name$4,
16528
- kind: kind$2,
16529
- seeds: seeds$2,
16530
- overrides: overrides$3,
16531
- syntax: syntax$2
16532
- };
16533
16432
  const $schema$1 = "pi-theme/v1";
16534
16433
  const name$3 = "Sessrúmnir";
16535
16434
  const kind$1 = "dark";
@@ -16568,27 +16467,13 @@ const fensalir = {
16568
16467
  };
16569
16468
  const BUILTIN_THEMES = [
16570
16469
  { id: "sessrumnir", file: sessrumnir },
16571
- { id: "fensalir", file: fensalir },
16572
- { id: "dark", file: dark },
16573
- { id: "light", file: light },
16574
- { id: "nord", file: nord },
16575
- { id: "gruvbox", file: gruvbox },
16576
- { id: "breeze-dark", file: breezeDark },
16577
- { id: "breeze-light", file: breezeLight },
16578
- { id: "breeze-claudius", file: breezeClaudius }
16470
+ { id: "fensalir", file: fensalir }
16579
16471
  ];
16580
16472
  const BUILTIN_THEME_IDS = BUILTIN_THEMES.map((t2) => t2.id);
16581
16473
  function isBuiltinThemeId(id2) {
16582
16474
  return BUILTIN_THEME_IDS$1.includes(id2);
16583
16475
  }
16584
16476
  const BUILTIN_THEME_NAME_KEYS = {
16585
- dark: "themes.builtin.dark",
16586
- light: "themes.builtin.light",
16587
- nord: "themes.builtin.nord",
16588
- gruvbox: "themes.builtin.gruvbox",
16589
- "breeze-dark": "themes.builtin.breeze-dark",
16590
- "breeze-light": "themes.builtin.breeze-light",
16591
- "breeze-claudius": "themes.builtin.breeze-claudius",
16592
16477
  sessrumnir: "themes.builtin.sessrumnir",
16593
16478
  fensalir: "themes.builtin.fensalir"
16594
16479
  };
@@ -16605,7 +16490,7 @@ function applyThemeVars(target, vars, previous2) {
16605
16490
  return next;
16606
16491
  }
16607
16492
  const SYSTEM_THEME_ID = "system";
16608
- const FALLBACK_THEME_ID = "dark";
16493
+ const FALLBACK_THEME_ID = "fensalir";
16609
16494
  const DARK_SCHEME_QUERY = "(prefers-color-scheme: dark)";
16610
16495
  const SYSTEM_THEME_DEFAULTS = {
16611
16496
  light: DEFAULT_SETTINGS.systemLightTheme,
@@ -21272,7 +21157,7 @@ function StatusPopover() {
21272
21157
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "px-4 py-2 border-t border-border flex items-center justify-between text-[10px] text-faint", children: [
21273
21158
  /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { children: [
21274
21159
  "v",
21275
- "0.1.16"
21160
+ "0.1.17"
21276
21161
  ] }),
21277
21162
  /* @__PURE__ */ jsxRuntimeExports.jsxs(
21278
21163
  "button",
@@ -89204,7 +89089,7 @@ function TerminalPanel() {
89204
89089
  }
89205
89090
  );
89206
89091
  }
89207
- const piLogo = "" + new URL("pi-logo-B48rElrT.svg", import.meta.url).href;
89092
+ const ymirMark = "" + new URL("ymir-mark-kY-7e1x6.svg", import.meta.url).href;
89208
89093
  const DEFAULT_COMPOSER_PAD_PX = 144;
89209
89094
  function ChatPanel() {
89210
89095
  const { t: t2 } = useTranslation();
@@ -89383,7 +89268,7 @@ function ChatPanel() {
89383
89268
  /* @__PURE__ */ jsxRuntimeExports.jsx(
89384
89269
  "img",
89385
89270
  {
89386
- src: piLogo,
89271
+ src: ymirMark,
89387
89272
  alt: PI_DESKTOP_PRODUCT_NAME,
89388
89273
  className: "mx-auto mb-4 block h-14 w-14"
89389
89274
  }
@@ -94119,7 +94004,7 @@ function HomeScreenInfo() {
94119
94004
  return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-1 overflow-y-auto", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: clsx("mx-auto max-w-[952px] px-8 py-12", busy && "pointer-events-none opacity-60"), children: [
94120
94005
  /* @__PURE__ */ jsxRuntimeExports.jsx(PiErrorBanner, {}),
94121
94006
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "mb-6 flex flex-col items-center text-center", children: [
94122
- /* @__PURE__ */ jsxRuntimeExports.jsx("img", { src: piLogo, alt: PI_DESKTOP_PRODUCT_NAME, className: "h-16 w-16" }),
94007
+ /* @__PURE__ */ jsxRuntimeExports.jsx("img", { src: ymirMark, alt: PI_DESKTOP_PRODUCT_NAME, className: "h-16 w-16" }),
94123
94008
  /* @__PURE__ */ jsxRuntimeExports.jsx("h1", { className: "mt-4 text-2xl font-semibold text-primary", children: PI_DESKTOP_PRODUCT_NAME }),
94124
94009
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "mt-1 text-sm text-dim", children: t2("home.subtitle") })
94125
94010
  ] }),
@@ -97261,7 +97146,7 @@ function App() {
97261
97146
  const showChrome = !isHome;
97262
97147
  const showUpdateBanner = !!updateInfo?.updateAvailable && !updateDismissed;
97263
97148
  const globalWorkflowOpen = showChrome && workflowPanelOpen && !workflowPanelFilter && workflowPanelWorkspaceId === null;
97264
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative flex h-screen flex-col bg-app text-primary", children: [
97149
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative flex h-screen flex-col text-primary", children: [
97265
97150
  /* @__PURE__ */ jsxRuntimeExports.jsx(EmberBackground, {}),
97266
97151
  isDraggingFolder && /* @__PURE__ */ jsxRuntimeExports.jsx(
97267
97152
  "div",
@@ -3391,6 +3391,11 @@
3391
3391
  opacity: .9;
3392
3392
  }
3393
3393
 
3394
+ .shadow {
3395
+ --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, #0000001a), 0 1px 2px -1px var(--tw-shadow-color, #0000001a);
3396
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
3397
+ }
3398
+
3394
3399
  .shadow-2xl {
3395
3400
  --tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, #00000040);
3396
3401
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
@@ -4107,14 +4112,18 @@
4107
4112
  }
4108
4113
 
4109
4114
  .ember-bg {
4110
- z-index: 0;
4115
+ z-index: -1;
4111
4116
  pointer-events: none;
4112
- opacity: .5;
4117
+ opacity: .55;
4113
4118
  mix-blend-mode: screen;
4114
4119
  position: fixed;
4115
4120
  inset: 0;
4116
4121
  }
4117
4122
 
4123
+ html, body {
4124
+ background-color: var(--app, #0e0c09);
4125
+ }
4126
+
4118
4127
  @property --tw-translate-x {
4119
4128
  syntax: "*";
4120
4129
  inherits: false;
@@ -0,0 +1,55 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="100%" height="100%">
2
+ <defs>
3
+ <!-- Background Slate -->
4
+ <linearGradient id="bg-grad" gradientUnits="userSpaceOnUse" x1="0%" y1="0%" x2="100%" y2="100%">
5
+ <stop offset="0%" stop-color="#0e0c09" />
6
+ <stop offset="100%" stop-color="#151209" />
7
+ </linearGradient>
8
+
9
+ <!-- Outer Dark Metal Forging -->
10
+ <linearGradient id="dark-metal" gradientUnits="userSpaceOnUse" x1="0%" y1="0%" x2="0%" y2="100%">
11
+ <stop offset="0%" stop-color="#7d5f2a" />
12
+ <stop offset="100%" stop-color="#0e0c09" />
13
+ </linearGradient>
14
+
15
+ <!-- Inner Cyan Edge / Chisel Highlight -->
16
+ <linearGradient id="cyan-glow" gradientUnits="userSpaceOnUse" x1="0%" y1="0%" x2="100%" y2="100%">
17
+ <stop offset="0%" stop-color="#e0b257" />
18
+ <stop offset="50%" stop-color="#c9973f" />
19
+ <stop offset="100%" stop-color="#7d5f2a" />
20
+ </linearGradient>
21
+
22
+ <!-- Drop Shadow for Depth -->
23
+ <filter id="shadow" x="-10%" y="-10%" width="120%" height="120%">
24
+ <feDropShadow dx="0" dy="8" stdDeviation="12" flood-color="#000000" flood-opacity="0.6"/>
25
+ </filter>
26
+ </defs>
27
+
28
+ <!-- Canvas -->
29
+ <rect width="512" height="512" rx="48" fill="url(#bg-grad)" stroke="#2b241a" stroke-width="4"/>
30
+
31
+ <!-- Master Group with Drop Shadow -->
32
+ <g filter="url(#shadow)">
33
+
34
+ <!-- 1. THICK OUTER BASE (The Iron Mass) -->
35
+ <g fill="none" stroke="url(#dark-metal)" stroke-width="48" stroke-linecap="square" stroke-linejoin="miter">
36
+ <!-- Algiz Y-Stem & Branches -->
37
+ <path d="M 144 144 L 256 256 L 368 144 M 256 256 V 352" />
38
+ <!-- Top Anvil Bar -->
39
+ <path d="M 128 352 H 384" />
40
+ <!-- Bottom Anvil Bar (Slightly narrower) -->
41
+ <path d="M 160 432 H 352" />
42
+ </g>
43
+
44
+ <!-- 2. THIN INNER HIGHLIGHT (The Glowing Chiseled Edge) -->
45
+ <g fill="none" stroke="url(#cyan-glow)" stroke-width="12" stroke-linecap="square" stroke-linejoin="miter">
46
+ <!-- Algiz Y-Stem & Branches -->
47
+ <path d="M 144 144 L 256 256 L 368 144 M 256 256 V 352" />
48
+ <!-- Top Anvil Bar -->
49
+ <path d="M 128 352 H 384" />
50
+ <!-- Bottom Anvil Bar -->
51
+ <path d="M 160 432 H 352" />
52
+ </g>
53
+
54
+ </g>
55
+ </svg>
@@ -7,11 +7,11 @@
7
7
  http-equiv="Content-Security-Policy"
8
8
  content="default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'"
9
9
  />
10
- <link rel="icon" type="image/svg+xml" href="./assets/pi-logo-B48rElrT.svg" />
10
+ <link rel="icon" type="image/svg+xml" href="./assets/ymir-mark-kY-7e1x6.svg" />
11
11
  <title>Sessrúmnir</title>
12
12
  <script src="./theme-boot.js"></script>
13
- <script type="module" crossorigin src="./assets/index-DbCaU2eq.js"></script>
14
- <link rel="stylesheet" crossorigin href="./assets/index-DL2o01yM.css">
13
+ <script type="module" crossorigin src="./assets/index-B3mV3a_n.js"></script>
14
+ <link rel="stylesheet" crossorigin href="./assets/index-D0j--OQJ.css">
15
15
  </head>
16
16
  <body class="bg-app text-primary antialiased">
17
17
  <div id="root"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zerwiz/sessrumnir",
3
- "version": "0.1.16",
3
+ "version": "0.1.17",
4
4
  "description": "Desktop GUI frontend for the Pi coding agent",
5
5
  "main": "out/main/index.js",
6
6
  "desktopName": "pi-desktop.desktop",
@@ -7,7 +7,7 @@
7
7
  http-equiv="Content-Security-Policy"
8
8
  content="default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'"
9
9
  />
10
- <link rel="icon" type="image/svg+xml" href="./src/assets/pi-logo.svg" />
10
+ <link rel="icon" type="image/svg+xml" href="./src/assets/ymir-mark.svg" />
11
11
  <title>Sessrúmnir</title>
12
12
  <script src="/theme-boot.js"></script>
13
13
  </head>
@@ -96,7 +96,7 @@ export function App(): React.JSX.Element {
96
96
  showChrome && workflowPanelOpen && !workflowPanelFilter && workflowPanelWorkspaceId === null
97
97
 
98
98
  return (
99
- <div className="relative flex h-screen flex-col bg-app text-primary">
99
+ <div className="relative flex h-screen flex-col text-primary">
100
100
  <EmberBackground />
101
101
  {isDraggingFolder && (
102
102
  <div
@@ -0,0 +1,55 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="100%" height="100%">
2
+ <defs>
3
+ <!-- Background Slate -->
4
+ <linearGradient id="bg-grad" gradientUnits="userSpaceOnUse" x1="0%" y1="0%" x2="100%" y2="100%">
5
+ <stop offset="0%" stop-color="#0e0c09" />
6
+ <stop offset="100%" stop-color="#151209" />
7
+ </linearGradient>
8
+
9
+ <!-- Outer Dark Metal Forging -->
10
+ <linearGradient id="dark-metal" gradientUnits="userSpaceOnUse" x1="0%" y1="0%" x2="0%" y2="100%">
11
+ <stop offset="0%" stop-color="#7d5f2a" />
12
+ <stop offset="100%" stop-color="#0e0c09" />
13
+ </linearGradient>
14
+
15
+ <!-- Inner Cyan Edge / Chisel Highlight -->
16
+ <linearGradient id="cyan-glow" gradientUnits="userSpaceOnUse" x1="0%" y1="0%" x2="100%" y2="100%">
17
+ <stop offset="0%" stop-color="#e0b257" />
18
+ <stop offset="50%" stop-color="#c9973f" />
19
+ <stop offset="100%" stop-color="#7d5f2a" />
20
+ </linearGradient>
21
+
22
+ <!-- Drop Shadow for Depth -->
23
+ <filter id="shadow" x="-10%" y="-10%" width="120%" height="120%">
24
+ <feDropShadow dx="0" dy="8" stdDeviation="12" flood-color="#000000" flood-opacity="0.6"/>
25
+ </filter>
26
+ </defs>
27
+
28
+ <!-- Canvas -->
29
+ <rect width="512" height="512" rx="48" fill="url(#bg-grad)" stroke="#2b241a" stroke-width="4"/>
30
+
31
+ <!-- Master Group with Drop Shadow -->
32
+ <g filter="url(#shadow)">
33
+
34
+ <!-- 1. THICK OUTER BASE (The Iron Mass) -->
35
+ <g fill="none" stroke="url(#dark-metal)" stroke-width="48" stroke-linecap="square" stroke-linejoin="miter">
36
+ <!-- Algiz Y-Stem & Branches -->
37
+ <path d="M 144 144 L 256 256 L 368 144 M 256 256 V 352" />
38
+ <!-- Top Anvil Bar -->
39
+ <path d="M 128 352 H 384" />
40
+ <!-- Bottom Anvil Bar (Slightly narrower) -->
41
+ <path d="M 160 432 H 352" />
42
+ </g>
43
+
44
+ <!-- 2. THIN INNER HIGHLIGHT (The Glowing Chiseled Edge) -->
45
+ <g fill="none" stroke="url(#cyan-glow)" stroke-width="12" stroke-linecap="square" stroke-linejoin="miter">
46
+ <!-- Algiz Y-Stem & Branches -->
47
+ <path d="M 144 144 L 256 256 L 368 144 M 256 256 V 352" />
48
+ <!-- Top Anvil Bar -->
49
+ <path d="M 128 352 H 384" />
50
+ <!-- Bottom Anvil Bar -->
51
+ <path d="M 160 432 H 352" />
52
+ </g>
53
+
54
+ </g>
55
+ </svg>
@@ -28,7 +28,7 @@ import { useChatScroll, useGlobalWorkflowOpen } from '../hooks'
28
28
  import { useState, useCallback, useEffect, useMemo, useRef } from 'react'
29
29
  import { useTranslation } from 'react-i18next'
30
30
  import { clsx } from 'clsx'
31
- import piLogo from '../assets/pi-logo.svg'
31
+ import ymirMark from '../assets/ymir-mark.svg'
32
32
  import {
33
33
  FolderTree,
34
34
  GitCompare,
@@ -249,7 +249,7 @@ export function ChatPanel(): React.JSX.Element {
249
249
  <div className="flex min-h-0 flex-1 flex-col items-center justify-center overflow-y-auto px-4 py-10">
250
250
  <div className="mb-8 text-center">
251
251
  <img
252
- src={piLogo}
252
+ src={ymirMark}
253
253
  alt={PI_DESKTOP_PRODUCT_NAME}
254
254
  className="mx-auto mb-4 block h-14 w-14"
255
255
  />
@@ -15,7 +15,7 @@ import {
15
15
  Play,
16
16
  } from 'lucide-react'
17
17
  import { useAppStore } from '../store'
18
- import piLogo from '../assets/pi-logo.svg'
18
+ import ymirMark from '../assets/ymir-mark.svg'
19
19
  import { formatGitStatus } from './review-rail'
20
20
  import { StatsPanel } from './stats-panel'
21
21
  import type { GitFileStatus, SessionListItem } from '../../../shared/ipc-contracts'
@@ -344,7 +344,7 @@ function HomeScreenInfo(): React.JSX.Element {
344
344
  <PiErrorBanner />
345
345
 
346
346
  <div className="mb-6 flex flex-col items-center text-center">
347
- <img src={piLogo} alt={PI_DESKTOP_PRODUCT_NAME} className="h-16 w-16" />
347
+ <img src={ymirMark} alt={PI_DESKTOP_PRODUCT_NAME} className="h-16 w-16" />
348
348
  <h1 className="mt-4 text-2xl font-semibold text-primary">{PI_DESKTOP_PRODUCT_NAME}</h1>
349
349
  <p className="mt-1 text-sm text-dim">{t('home.subtitle')}</p>
350
350
  </div>
@@ -378,4 +378,5 @@
378
378
  at build time, so they can't live here. */
379
379
 
380
380
  /* The hearth — embers rising over the cloth. */
381
- .ember-bg { position: fixed; inset: 0; z-index: 0; pointer-events: none; opacity: 0.5; mix-blend-mode: screen; }
381
+ .ember-bg { position: fixed; inset: 0; z-index: -1; pointer-events: none; opacity: 0.55; mix-blend-mode: screen; }
382
+ html, body { background-color: var(--app, #0e0c09); }
@@ -1,26 +1,12 @@
1
1
  import type { ThemeFile } from '../../../shared/theme/theme-file'
2
2
  import { t } from '../../../shared/i18n'
3
3
  import { BUILTIN_THEME_IDS as SHARED_BUILTIN_THEME_IDS } from '../../../shared/theme/builtin-ids'
4
- import dark from './dark.json'
5
- import light from './light.json'
6
- import nord from './nord.json'
7
- import gruvbox from './gruvbox.json'
8
- import breezeDark from './breeze-dark.json'
9
- import breezeLight from './breeze-light.json'
10
- import breezeClaudius from './breeze-claudius.json'
11
4
  import sessrumnir from './sessrumnir.json'
12
5
  import fensalir from './fensalir.json'
13
6
 
14
7
  export const BUILTIN_THEMES: ReadonlyArray<{ id: string; file: ThemeFile }> = [
15
8
  { id: 'sessrumnir', file: sessrumnir as ThemeFile },
16
9
  { id: 'fensalir', file: fensalir as ThemeFile },
17
- { id: 'dark', file: dark as ThemeFile },
18
- { id: 'light', file: light as ThemeFile },
19
- { id: 'nord', file: nord as ThemeFile },
20
- { id: 'gruvbox', file: gruvbox as ThemeFile },
21
- { id: 'breeze-dark', file: breezeDark as ThemeFile },
22
- { id: 'breeze-light', file: breezeLight as ThemeFile },
23
- { id: 'breeze-claudius', file: breezeClaudius as ThemeFile },
24
10
  ]
25
11
 
26
12
  export const BUILTIN_THEME_IDS: readonly string[] = BUILTIN_THEMES.map((t) => t.id)
@@ -39,13 +25,6 @@ function isBuiltinThemeId(id: string): id is BuiltinThemeId {
39
25
  // permission-mode.ts's `getPermissionModeLabel`, extracts fine). An explicit
40
26
  // key per id keeps them extractable and typo-checked by tsc.
41
27
  const BUILTIN_THEME_NAME_KEYS = {
42
- dark: 'themes.builtin.dark',
43
- light: 'themes.builtin.light',
44
- nord: 'themes.builtin.nord',
45
- gruvbox: 'themes.builtin.gruvbox',
46
- 'breeze-dark': 'themes.builtin.breeze-dark',
47
- 'breeze-light': 'themes.builtin.breeze-light',
48
- 'breeze-claudius': 'themes.builtin.breeze-claudius',
49
28
  sessrumnir: 'themes.builtin.sessrumnir',
50
29
  fensalir: 'themes.builtin.fensalir',
51
30
  } as const satisfies Record<BuiltinThemeId, string>
@@ -11,7 +11,7 @@ export type ThemeKind = ThemeFile['kind']
11
11
  export type ThemeSettings = Pick<AppSettings, 'theme' | 'systemLightTheme' | 'systemDarkTheme'>
12
12
 
13
13
  export const SYSTEM_THEME_ID = 'system'
14
- const FALLBACK_THEME_ID = 'dark'
14
+ const FALLBACK_THEME_ID = 'fensalir'
15
15
  const DARK_SCHEME_QUERY = '(prefers-color-scheme: dark)'
16
16
  const SYSTEM_THEME_DEFAULTS: Readonly<Record<ThemeKind, string>> = {
17
17
  light: DEFAULT_SETTINGS.systemLightTheme,
@@ -7,5 +7,5 @@
7
7
  // those (separate process/bundle), so this module is the single shared
8
8
  // source of truth for just the id strings.
9
9
  export const BUILTIN_THEME_IDS = [
10
- 'dark', 'light', 'nord', 'gruvbox', 'breeze-dark', 'breeze-light', 'breeze-claudius', 'sessrumnir', 'fensalir',
10
+ 'sessrumnir', 'fensalir',
11
11
  ] as const
@@ -1,27 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="none">
2
- <!-- Charcoal rounded background -->
3
- <rect width="512" height="512" rx="77" fill="#36454F"/>
4
-
5
- <!-- Pi letterforms: official brand marks, scaled from 800 -> 512 -->
6
- <g transform="translate(5.5, 5.5) scale(0.62625)">
7
- <!-- P shape: outer boundary clockwise, inner hole counter-clockwise -->
8
- <path fill="#e67e22" fill-rule="evenodd" d="
9
- M165.29 165.29
10
- H517.36
11
- V400
12
- H400
13
- V517.36
14
- H282.65
15
- V634.72
16
- H165.29
17
- Z
18
- M282.65 282.65
19
- V400
20
- H400
21
- V282.65
22
- Z
23
- "/>
24
- <!-- i dot -->
25
- <path fill="#e67e22" d="M517.36 400 H634.72 V634.72 H517.36 Z"/>
26
- </g>
27
- </svg>