@floegence/floe-webapp-core 0.87.0 → 0.87.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/floe.css CHANGED
@@ -22,6 +22,7 @@
22
22
  @import './themes/light.css';
23
23
  @import './themes/dark.css';
24
24
  @import './themes/shell-presets.generated.css';
25
+ @import './themes/porcelain-light.css';
25
26
 
26
27
 
27
28
  /*
@@ -9,5 +9,6 @@
9
9
  @import './themes/light.css';
10
10
  @import './themes/dark.css';
11
11
  @import './themes/shell-presets.generated.css';
12
+ @import './themes/porcelain-light.css';
12
13
  @import './surface.css';
13
14
  @import './input-focus.css';
@@ -1,5 +1,5 @@
1
1
  import { LIGHT_WINDOW_TOKENS } from './windowTokens.ts';
2
- import type { FloeThemePreset, FloeThemePresetMode } from './index';
2
+ import type { FloeMonacoThemeDefinition, FloeThemePreset, FloeThemePresetMode, FloeThemeTokenMap } from './index';
3
3
  export type FloeShellThemeMode = 'light' | 'dark';
4
4
  export interface FloeShellThemeSelection {
5
5
  version: 1;
@@ -49,6 +49,10 @@ interface ShellThemePaletteDefinition {
49
49
  fileIconColors?: Partial<Record<'primary' | 'warning' | 'info' | 'success' | 'error', string>>;
50
50
  status?: Partial<Record<keyof typeof LIGHT_STATUS, string>>;
51
51
  windowTokens?: Partial<Record<keyof typeof LIGHT_WINDOW_TOKENS, string>>;
52
+ /** Authored material and reading roles, shared by CSS and non-renderer hosts. */
53
+ semanticTokens?: FloeThemeTokenMap;
54
+ /** Complete inherited editor roles when the base syntax is unsuitable. */
55
+ monaco?: Partial<Pick<FloeMonacoThemeDefinition, 'rules' | 'colors'>>;
52
56
  syntax?: {
53
57
  comment: string;
54
58
  keyword: string;
@@ -88,7 +92,7 @@ export declare const builtInShellThemePresets: readonly [FloeThemePreset, FloeTh
88
92
  border?: string;
89
93
  colors: readonly [string, string, string, string, string];
90
94
  };
91
- monaco?: Partial<Record<"light" | "dark", import("./index").FloeMonacoThemeDefinition>>;
95
+ monaco?: Partial<Record<"light" | "dark", FloeMonacoThemeDefinition>>;
92
96
  }, FloeThemePreset, FloeThemePreset, FloeThemePreset, FloeThemePreset, FloeThemePreset, FloeThemePreset, FloeThemePreset, FloeThemePreset, FloeThemePreset, FloeThemePreset, FloeThemePreset, FloeThemePreset, {
93
97
  inheritsBaseTokens: true;
94
98
  semanticTokens: Readonly<Partial<Record<`--${string}`, string>>>;
@@ -105,7 +109,7 @@ export declare const builtInShellThemePresets: readonly [FloeThemePreset, FloeTh
105
109
  border?: string;
106
110
  colors: readonly [string, string, string, string, string];
107
111
  };
108
- monaco?: Partial<Record<"light" | "dark", import("./index").FloeMonacoThemeDefinition>>;
112
+ monaco?: Partial<Record<"light" | "dark", FloeMonacoThemeDefinition>>;
109
113
  }, FloeThemePreset, FloeThemePreset, FloeThemePreset, FloeThemePreset, FloeThemePreset, FloeThemePreset, FloeThemePreset, FloeThemePreset, FloeThemePreset, FloeThemePreset, FloeThemePreset, FloeThemePreset];
110
114
  export declare const BUILT_IN_SHELL_THEME_DEFAULTS: {
111
115
  readonly light: "classic-light";
@@ -183,9 +183,9 @@ function o(r) {
183
183
  "--glow": r.glow ?? (r.mode === "light" ? r.primary : r.selectionBackground)
184
184
  };
185
185
  Object.assign(g, B(r.mode, g));
186
- for (const [l, b] of Object.entries(r.fileIconColors ?? {}))
187
- g[`--floe-file-icon-${l}`] = b;
188
- return {
186
+ for (const [m, b] of Object.entries(r.fileIconColors ?? {}))
187
+ g[`--floe-file-icon-${m}`] = b;
188
+ return Object.assign(g, r.semanticTokens), {
189
189
  name: r.name,
190
190
  displayName: r.displayName,
191
191
  description: r.description,
@@ -220,7 +220,8 @@ function o(r) {
220
220
  { token: "entity.name.function", foreground: a.function },
221
221
  { token: "support.function", foreground: a.function },
222
222
  { token: "constant.language", foreground: a.constant },
223
- { token: "variable.predefined", foreground: a.constant }
223
+ { token: "variable.predefined", foreground: a.constant },
224
+ ...r.monaco?.rules ?? []
224
225
  ],
225
226
  colors: {
226
227
  "editor.background": r.background,
@@ -254,7 +255,8 @@ function o(r) {
254
255
  "editorInfo.foreground": e.info,
255
256
  "scrollbarSlider.background": `${r.input}66`,
256
257
  "scrollbarSlider.hoverBackground": `${r.input}99`,
257
- "scrollbarSlider.activeBackground": `${r.input}CC`
258
+ "scrollbarSlider.activeBackground": `${r.input}CC`,
259
+ ...r.monaco?.colors
258
260
  }
259
261
  }
260
262
  },
@@ -329,38 +331,95 @@ const C = {
329
331
  inheritsBaseTokens: !0,
330
332
  semanticTokens: F,
331
333
  tokens: void 0
332
- }, D = [
334
+ }, h = [
333
335
  o({
334
336
  name: "porcelain-light",
335
- inlineCode: { foreground: "#006A85", background: "#E9EBE8" },
337
+ inlineCode: { foreground: "#674778", background: "#F0F0F0" },
336
338
  displayName: "Porcelain Light",
337
- description: "Original Redeven warm ivory and blue-gray ink, with quiet modern surfaces.",
339
+ description: "Clean porcelain whites, neutral layers, and restrained charcoal.",
338
340
  fileIconColors: {
339
- primary: "hsl(214 26% 17%)",
341
+ primary: "#343434",
340
342
  warning: "hsl(38 92% 50%)",
341
343
  info: "hsl(217 91% 60%)",
342
344
  success: "oklch(0.68 0.16 150)",
343
345
  error: "oklch(0.65 0.2 25)"
344
346
  },
345
347
  mode: "light",
346
- background: "#F4F1ED",
347
- foreground: "#202A37",
348
- card: "#FFFDFA",
349
- muted: "#F1EFEC",
350
- accent: "#E4E1DD",
351
- mutedForeground: "#576579",
352
- primary: "#202A37",
353
- primaryForeground: "#FFFDFA",
354
- border: "#D8D3CC",
355
- input: "#828891",
356
- sidebar: "#EEECE9",
348
+ background: "#FAFAFA",
349
+ foreground: "#292929",
350
+ card: "#FFFFFF",
351
+ muted: "#F4F4F4",
352
+ accent: "#EEEEEE",
353
+ mutedForeground: "#686868",
354
+ primary: "#343434",
355
+ primaryForeground: "#FFFFFF",
356
+ border: "#DEDEDE",
357
+ input: "#878787",
358
+ sidebar: "#F7F7F7",
357
359
  terminalBackground: "#202A37",
358
360
  terminalForeground: "#EBEBEB",
359
- selectionBackground: "#2671D9",
361
+ selectionBackground: "#343434",
360
362
  selectionForeground: "#FFFFFF",
361
- chart: ["#202A37", "#5A687C", "#2671D9", "#287A4B", "#835800"],
363
+ chart: ["#343434", "#626262", "#2671D9", "#287A4B", "#835800"],
364
+ semanticTokens: {
365
+ "--accent-foreground": "#353535",
366
+ "--sidebar-accent": "#E9E9E9",
367
+ "--sidebar-accent-foreground": "#353535",
368
+ "--activity-bar-foreground-active": "#343434",
369
+ "--selection-on-primary-bg": "#EAEAEA",
370
+ "--selection-on-primary-fg": "#292929",
371
+ "--selection-code-bg": "#EAEAEA",
372
+ "--selection-code-fg": "#292929",
373
+ "--floe-progress-text-base": "#292929",
374
+ "--floe-progress-text-peak": "#686868",
375
+ "--floe-progress-primary-base": "#343434",
376
+ "--floe-field-fill": "#FAFAFA",
377
+ "--floe-field-fill-hover": "#F5F5F5",
378
+ "--floe-field-placeholder": "#686868",
379
+ "--floe-ink-quiet": "#686868",
380
+ "--floe-ink-ghost": "#686868",
381
+ "--floe-field-edge": "#C4C4C4",
382
+ "--floe-field-edge-hover": "#A3A3A3",
383
+ "--floe-control-edge": "#878787",
384
+ "--floe-control-edge-hover": "#686868",
385
+ "--floe-well": "#F6F6F6",
386
+ "--floe-well-strong": "#F0F0F0",
387
+ "--floe-well-on-plane": "#F6F6F6",
388
+ "--floe-workbench-canvas": "#F4F4F4"
389
+ },
390
+ monaco: {
391
+ rules: [
392
+ { token: "attribute.name", foreground: "#9C225E" },
393
+ { token: "attribute.value", foreground: "#26736F" },
394
+ { token: "attribute.value.number", foreground: "#8A5A00" },
395
+ { token: "attribute.value.unit", foreground: "#8A5A00" },
396
+ { token: "tag", foreground: "#245B9B" },
397
+ { token: "metatag", foreground: "#005FB8" },
398
+ { token: "metatag.content", foreground: "#26736F" },
399
+ { token: "delimiter", foreground: "#292929" },
400
+ { token: "delimiter.bracket", foreground: "#292929" },
401
+ { token: "operator", foreground: "#292929" },
402
+ { token: "regexp", foreground: "#26736F" },
403
+ { token: "invalid", foreground: "#B32635" },
404
+ { token: "string.invalid", foreground: "#B32635" }
405
+ ],
406
+ colors: {
407
+ "editor.inactiveSelectionBackground": "#EAEAEA",
408
+ "editor.selectionHighlightBackground": "#EAEAEA",
409
+ "editor.findMatchBackground": "#EAEAEA",
410
+ "editor.findMatchHighlightBackground": "#EEEEEE",
411
+ "editor.findMatchBorder": "#343434",
412
+ "editorBracketHighlight.foreground1": "#005FB8",
413
+ "editorBracketHighlight.foreground2": "#26736F",
414
+ "editorBracketHighlight.foreground3": "#674778",
415
+ "editorBracketHighlight.foreground4": "#8A5A00",
416
+ "editorBracketHighlight.foreground5": "#245B9B",
417
+ "editorBracketHighlight.foreground6": "#9C225E",
418
+ "editorBracketHighlight.unexpectedBracket.foreground": "#B32635"
419
+ }
420
+ },
362
421
  syntax: {
363
- comment: "#5A687C",
422
+ comment: "#686868",
364
423
  keyword: "#005FB8",
365
424
  string: "#26736F",
366
425
  number: "#8A5A00",
@@ -1085,12 +1144,12 @@ const C = {
1085
1144
  light: "classic-light",
1086
1145
  dark: "classic-dark"
1087
1146
  };
1088
- function h(r, e) {
1147
+ function f(r, e) {
1089
1148
  const n = r.mode ?? "both";
1090
1149
  return n === "both" || n === e;
1091
1150
  }
1092
- function f(r, e) {
1093
- return r.filter((n) => h(n, e));
1151
+ function D(r, e) {
1152
+ return r.filter((n) => f(n, e));
1094
1153
  }
1095
1154
  function w(r) {
1096
1155
  const e = /* @__PURE__ */ new Set();
@@ -1100,27 +1159,27 @@ function w(r) {
1100
1159
  e.add(n.name);
1101
1160
  }
1102
1161
  }
1103
- function m(r, e, n, d) {
1104
- const c = f(r, e);
1162
+ function l(r, e, n, d) {
1163
+ const c = D(r, e);
1105
1164
  return n && c.some((u) => u.name === n) ? n : d && c.some((u) => u.name === d) ? d : c[0]?.name;
1106
1165
  }
1107
- function L(r, e, n = {}) {
1166
+ function H(r, e, n = {}) {
1108
1167
  const d = typeof r == "object" && r !== null && !Array.isArray(r) ? r : void 0, c = d?.version === 1, u = c && typeof d.light == "string" ? d.light : void 0, i = c && typeof d.dark == "string" ? d.dark : void 0;
1109
1168
  return {
1110
1169
  version: 1,
1111
- light: m(e, "light", u, n.light),
1112
- dark: m(e, "dark", i, n.dark)
1170
+ light: l(e, "light", u, n.light),
1171
+ dark: l(e, "dark", i, n.dark)
1113
1172
  };
1114
1173
  }
1115
- w(D);
1174
+ w(h);
1116
1175
  export {
1117
1176
  x as BUILT_IN_SHELL_THEME_DEFAULTS,
1118
1177
  T as REQUIRED_SHELL_THEME_TOKENS,
1119
1178
  w as assertUniqueThemePresetNames,
1120
- D as builtInShellThemePresets,
1179
+ h as builtInShellThemePresets,
1121
1180
  o as createShellThemePreset,
1122
- f as getShellThemePresetsForMode,
1123
- L as normalizeShellThemeSelection,
1124
- h as presetSupportsMode,
1125
- m as resolveShellThemePresetName
1181
+ D as getShellThemePresetsForMode,
1182
+ H as normalizeShellThemeSelection,
1183
+ f as presetSupportsMode,
1184
+ l as resolveShellThemePresetName
1126
1185
  };