@floegence/floe-webapp-core 0.50.6 → 0.52.0

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 (46) hide show
  1. package/dist/components/chat/input/ChatInput.js +8 -8
  2. package/dist/components/ui/Button.js +16 -13
  3. package/dist/components/ui/Card.js +125 -119
  4. package/dist/components/ui/Checkbox.js +178 -132
  5. package/dist/components/ui/CommandPalette.js +10 -10
  6. package/dist/components/ui/Dialog.d.ts +7 -0
  7. package/dist/components/ui/Dialog.js +160 -114
  8. package/dist/components/ui/DirectoryInput.js +5 -5
  9. package/dist/components/ui/Dropdown.d.ts +2 -0
  10. package/dist/components/ui/Dropdown.js +183 -160
  11. package/dist/components/ui/FloatingWindow.js +211 -199
  12. package/dist/components/ui/HighlightBlock.js +8 -8
  13. package/dist/components/ui/Input.js +40 -40
  14. package/dist/components/ui/Pagination.js +90 -88
  15. package/dist/components/ui/ProcessingIndicator.js +1 -1
  16. package/dist/components/ui/Progress.js +99 -88
  17. package/dist/components/ui/QuoteBlock.js +9 -9
  18. package/dist/components/ui/Radio.js +151 -127
  19. package/dist/components/ui/SegmentedControl.js +26 -25
  20. package/dist/components/ui/Stepper.js +114 -112
  21. package/dist/components/ui/Switch.js +34 -33
  22. package/dist/components/ui/Tabs.js +153 -150
  23. package/dist/components/ui/Tag.js +24 -21
  24. package/dist/components/ui/Tooltip.js +10 -10
  25. package/dist/components/ui/floatingPresence.js +40 -30
  26. package/dist/components/workbench/WorkbenchHud.js +9 -9
  27. package/dist/components/workbench/WorkbenchLockButton.js +4 -4
  28. package/dist/components/workbench/WorkbenchWidget.js +46 -43
  29. package/dist/context/FloeConfigContext.d.ts +5 -1
  30. package/dist/context/FloeConfigContext.js +10 -9
  31. package/dist/context/ThemeContext.d.ts +3 -1
  32. package/dist/context/ThemeContext.js +78 -71
  33. package/dist/floe.css +32 -0
  34. package/dist/full.js +839 -836
  35. package/dist/hooks/useOverlayMask.js +95 -83
  36. package/dist/index.js +150 -147
  37. package/dist/input-focus.css +0 -1
  38. package/dist/styles/themes/index.d.ts +3 -0
  39. package/dist/styles/themes/index.js +40 -31
  40. package/dist/styles/tokens.d.ts +36 -0
  41. package/dist/styles/tokens.js +12 -5
  42. package/dist/styles.css +1 -1
  43. package/dist/surface.css +467 -0
  44. package/dist/themes.d.ts +1 -1
  45. package/dist/ui.css +9 -0
  46. package/package.json +1 -1
@@ -1,128 +1,140 @@
1
- import { createEffect as N, onCleanup as q } from "solid-js";
2
- import { lockBodyStyle as j } from "../utils/bodyStyleLock.js";
3
- import { deferAfterPaint as M } from "../utils/defer.js";
4
- import { getFocusableElements as x, getFirstFocusableElement as z } from "../utils/focus.js";
5
- import { matchKeybind as R } from "../utils/keybind.js";
6
- function C(e) {
7
- return typeof Node < "u" && e instanceof Node;
1
+ import { createEffect as R, onCleanup as V } from "solid-js";
2
+ import { lockBodyStyle as G } from "../utils/bodyStyleLock.js";
3
+ import { deferAfterPaint as D } from "../utils/defer.js";
4
+ import { getFocusableElements as J, getFirstFocusableElement as Q } from "../utils/focus.js";
5
+ import { matchKeybind as U } from "../utils/keybind.js";
6
+ const S = /* @__PURE__ */ new WeakMap();
7
+ function K(t) {
8
+ return typeof Node < "u" && t instanceof Node;
8
9
  }
9
- function h(e, o, r) {
10
- return r ? r(o) : !e || !C(o) ? !1 : e.contains(o);
10
+ function p(t, o, r) {
11
+ return r ? r(o) : !t || !K(o) ? !1 : t.contains(o);
11
12
  }
12
- function O(e, o, r, s) {
13
- return r === "none" ? !1 : r === "all" ? !0 : !h(e, o, s);
13
+ function H(t, o, r, a) {
14
+ return r === "none" ? !1 : r === "all" ? !0 : !p(t, o, a);
14
15
  }
15
- function V(e) {
16
- return typeof e == "function" ? e() ?? [] : e ?? [];
16
+ function X(t) {
17
+ return typeof t == "function" ? t() ?? [] : t ?? [];
17
18
  }
18
- function c(e, o) {
19
- return typeof e == "function" ? e() ?? o : e ?? o;
19
+ function c(t, o) {
20
+ return typeof t == "function" ? t() ?? o : t ?? o;
20
21
  }
21
- function G(e, o) {
22
- for (const r of V(o)) {
23
- const s = r.trim();
24
- if (s && R(e, s))
22
+ function Y(t, o) {
23
+ for (const r of X(o)) {
24
+ const a = r.trim();
25
+ if (a && U(t, a))
25
26
  return !0;
26
27
  }
27
28
  return !1;
28
29
  }
29
- function _(e) {
30
- const o = () => c(e.lockBodyScroll, !0), r = () => c(e.trapFocus, !0), s = () => {
31
- const a = c(
32
- e.closeOnEscape,
30
+ function oe(t) {
31
+ const o = () => c(t.lockBodyScroll, !0), r = () => c(t.trapFocus, !0), a = () => {
32
+ const i = c(
33
+ t.closeOnEscape,
33
34
  !0
34
35
  );
35
- return a === !1 ? "none" : a === "inside" ? "inside" : a === "none" ? "none" : "always";
36
- }, P = () => c(e.blockHotkeys, !0), D = () => c(e.restoreFocus, !0), S = () => c(e.blockWheel, "none"), H = () => c(e.blockTouchMove, "none"), K = () => c(e.autoFocus, !0);
37
- N(() => {
38
- if (!e.open() || typeof document > "u") return;
39
- const a = o(), E = r(), l = s(), f = c(e.escapeKeyPhase, "capture"), W = P(), A = D(), m = S(), v = H(), y = K(), p = document.activeElement instanceof HTMLElement ? document.activeElement : null, I = a ? j({ overflow: "hidden" }) : null;
40
- M(() => {
41
- const t = e.root();
42
- if (!t || y === !1) return;
43
- const n = typeof y == "object" ? y.selector : void 0, i = (n ? t.querySelector(n) : null) ?? t.querySelector("[data-floe-autofocus]") ?? z(t) ?? t;
36
+ return i === !1 ? "none" : i === "inside" ? "inside" : i === "none" ? "none" : "always";
37
+ }, W = () => c(t.blockHotkeys, !0), A = () => c(t.restoreFocus, !0), x = () => c(t.blockWheel, "none"), I = () => c(t.blockTouchMove, "none"), N = () => c(t.autoFocus, !0);
38
+ R(() => {
39
+ if (!t.open() || typeof document > "u") return;
40
+ const i = o(), b = r(), d = a(), m = c(t.escapeKeyPhase, "capture"), q = W(), j = A(), h = x(), k = I(), E = N(), l = S.get(document) ?? [];
41
+ S.set(document, l);
42
+ const v = {
43
+ global: i || d === "always",
44
+ contains: (e) => p(t.root(), e, t.containsTarget)
45
+ };
46
+ l.push(v);
47
+ let w = !0;
48
+ const u = (e) => w && !l.slice(l.indexOf(v) + 1).some((n) => n.global || n.contains(e)), g = document.activeElement instanceof HTMLElement ? document.activeElement : null, z = i ? G({ overflow: "hidden" }) : null;
49
+ D(() => {
50
+ const e = t.root();
51
+ if (!e?.isConnected || !u(e) || E === !1 || v.contains(document.activeElement)) return;
52
+ const n = typeof E == "object" ? E.selector : void 0, y = (n ? e.querySelector(n) : null) ?? e.querySelector("[data-floe-autofocus]") ?? Q(e) ?? e;
44
53
  try {
45
- i.focus();
54
+ y.focus();
46
55
  } catch {
47
56
  }
48
57
  });
49
- const k = (t) => {
50
- if (t.key !== "Tab") return;
51
- const n = e.root();
58
+ const T = (e) => {
59
+ if (e.key !== "Tab" || !u(e.target)) return;
60
+ const n = t.root();
52
61
  if (!n) return;
53
- const u = x(n);
54
- if (!u.length) {
55
- t.preventDefault();
62
+ const s = J(n);
63
+ if (!s.length) {
64
+ e.preventDefault();
56
65
  try {
57
66
  n.focus();
58
67
  } catch {
59
68
  }
60
69
  return;
61
70
  }
62
- const i = u[0], F = u[u.length - 1], d = document.activeElement instanceof HTMLElement ? document.activeElement : null;
63
- if (t.shiftKey) {
64
- if (d === i || !d || !n.contains(d)) {
65
- t.preventDefault();
71
+ const y = s[0], P = s[s.length - 1], f = document.activeElement instanceof HTMLElement ? document.activeElement : null;
72
+ if (e.shiftKey) {
73
+ if (f === y || !f || !n.contains(f)) {
74
+ e.preventDefault();
66
75
  try {
67
- F.focus();
76
+ P.focus();
68
77
  } catch {
69
78
  }
70
79
  }
71
- } else if (d === F) {
72
- t.preventDefault();
80
+ } else if (f === P || !f || !n.contains(f)) {
81
+ e.preventDefault();
73
82
  try {
74
- i.focus();
83
+ y.focus();
75
84
  } catch {
76
85
  }
77
86
  }
78
- }, b = (t) => {
79
- if (t.key !== "Escape" || f === "bubble" && (t.defaultPrevented || t.isComposing) || l === "none") return;
80
- const n = e.root(), u = h(
87
+ }, L = (e) => {
88
+ if (e.key !== "Escape" || !u(e.target) || m === "bubble" && (e.defaultPrevented || e.isComposing) || d === "none") return;
89
+ const n = t.root(), s = p(
81
90
  n,
82
- C(t.target) ? t.target : document.activeElement,
83
- e.containsTarget
91
+ K(e.target) ? e.target : document.activeElement,
92
+ t.containsTarget
84
93
  );
85
- if (l === "inside") {
86
- if (u) {
87
- t.preventDefault(), t.stopImmediatePropagation(), e.onClose?.();
94
+ if (d === "inside") {
95
+ if (s) {
96
+ e.preventDefault(), e.stopImmediatePropagation(), t.onClose?.();
88
97
  return;
89
98
  }
90
- e.onEscapeOutside && (t.preventDefault(), t.stopImmediatePropagation(), e.onEscapeOutside());
99
+ t.onEscapeOutside && (e.preventDefault(), e.stopImmediatePropagation(), t.onEscapeOutside());
91
100
  return;
92
101
  }
93
- t.preventDefault(), t.stopImmediatePropagation(), e.onClose?.();
94
- }, g = (t) => {
95
- const n = e.root();
96
- n && W && h(n, t.target, e.containsTarget) && (G(t, e.allowHotkeys) || t.stopPropagation());
97
- }, w = (t) => {
98
- const n = e.root();
99
- O(n, t.target, m, e.containsTarget) && t.cancelable && t.preventDefault();
100
- }, L = (t) => {
101
- t.stopPropagation();
102
- }, T = (t) => {
103
- const n = e.root();
104
- O(n, t.target, v, e.containsTarget) && t.cancelable && t.preventDefault();
102
+ e.preventDefault(), e.stopImmediatePropagation(), t.onClose?.();
103
+ }, M = (e) => {
104
+ if (!u(e.target)) return;
105
+ const n = t.root();
106
+ n && q && p(n, e.target, t.containsTarget) && (Y(e, t.allowHotkeys) || e.stopPropagation());
107
+ }, O = (e) => {
108
+ if (!u(e.target)) return;
109
+ const n = t.root();
110
+ H(n, e.target, h, t.containsTarget) && e.cancelable && e.preventDefault();
111
+ }, B = (e) => {
112
+ u(e.target) && e.stopPropagation();
113
+ }, F = (e) => {
114
+ if (!u(e.target)) return;
115
+ const n = t.root();
116
+ H(n, e.target, k, t.containsTarget) && e.cancelable && e.preventDefault();
105
117
  };
106
- E && document.addEventListener("keydown", k, !0);
107
- const B = f === "capture" ? window : document;
108
- l !== "none" && B.addEventListener(
118
+ b && document.addEventListener("keydown", T, !0);
119
+ const C = m === "capture" ? window : document;
120
+ d !== "none" && C.addEventListener(
109
121
  "keydown",
110
- b,
111
- f === "capture"
112
- ), document.addEventListener("keydown", g), m !== "none" && (document.addEventListener("wheel", w, { capture: !0, passive: !1 }), document.addEventListener("wheel", L)), v !== "none" && document.addEventListener("touchmove", T, {
122
+ L,
123
+ m === "capture"
124
+ ), document.addEventListener("keydown", M), h !== "none" && (document.addEventListener("wheel", O, { capture: !0, passive: !1 }), document.addEventListener("wheel", B)), k !== "none" && document.addEventListener("touchmove", F, {
113
125
  capture: !0,
114
126
  passive: !1
115
- }), q(() => {
116
- E && document.removeEventListener("keydown", k, !0), l !== "none" && B.removeEventListener(
127
+ }), V(() => {
128
+ w = !1, l.splice(l.indexOf(v), 1), b && document.removeEventListener("keydown", T, !0), d !== "none" && C.removeEventListener(
117
129
  "keydown",
118
- b,
119
- f === "capture"
120
- ), document.removeEventListener("keydown", g), m !== "none" && (document.removeEventListener("wheel", w, !0), document.removeEventListener("wheel", L)), v !== "none" && document.removeEventListener("touchmove", T, !0), I?.(), A && p && p.isConnected && M(() => {
130
+ L,
131
+ m === "capture"
132
+ ), document.removeEventListener("keydown", M), h !== "none" && (document.removeEventListener("wheel", O, !0), document.removeEventListener("wheel", B)), k !== "none" && document.removeEventListener("touchmove", F, !0), z?.(), j && g && g.isConnected && D(() => {
121
133
  if (typeof document > "u") return;
122
- const t = document.activeElement;
123
- if (!(t && t !== document.body && t !== document.documentElement))
134
+ const e = document.activeElement;
135
+ if (!(e && e !== document.body && e !== document.documentElement))
124
136
  try {
125
- p.focus();
137
+ g.focus();
126
138
  } catch {
127
139
  }
128
140
  });
@@ -130,5 +142,5 @@ function _(e) {
130
142
  });
131
143
  }
132
144
  export {
133
- _ as useOverlayMask
145
+ oe as useOverlayMask
134
146
  };
package/dist/index.js CHANGED
@@ -1,154 +1,157 @@
1
1
  import { FloeProvider as r } from "./app/FloeProvider.js";
2
- import { applyShellThemeAttribute as i, applyTheme as s, builtInThemes as n, getSystemTheme as m, isThemeType as a, mergeThemeTokenMaps as l, resolveThemeTokenOverrides as p, resolveThemeTokens as f, syncThemeTokenOverrides as d } from "./styles/themes/index.js";
3
- import { floeColorTokenCategories as g, floeDesignTokens as u, floeFontFamilyTokens as c, floeMotionTokens as x, floeRadiusTokens as C, floeSharedCssVariables as h, floeSpacingTokens as y, floeThemeColorVariables as S, floeTypographyTokens as F, getFloeColorTokenValue as v } from "./styles/tokens.js";
4
- import { BUILT_IN_SHELL_THEME_DEFAULTS as k, REQUIRED_SHELL_THEME_TOKENS as I, assertUniqueThemePresetNames as R, builtInShellThemePresets as D, createShellThemePreset as E, getShellThemePresetsForMode as L, normalizeShellThemeSelection as _, presetSupportsMode as b, resolveShellThemePresetName as N } from "./styles/themes/presets.js";
5
- import { CommandProvider as A, createCommandService as M, useCommand as B } from "./context/CommandContext.js";
6
- import { ComponentRegistryProvider as G, createComponentRegistry as H, hasComponentRegistryContext as U, useComponentContextFactory as W, useComponentRegistry as K, useOptionalComponentRegistry as V } from "./context/ComponentRegistry.js";
7
- import { DEFAULT_FLOE_CONFIG as Q, FloeConfigProvider as q, useFloeConfig as Y, useResolvedFloeConfig as j } from "./context/FloeConfigContext.js";
8
- import { DeckProvider as X, createDeckService as Z, useDeck as $ } from "./context/DeckContext.js";
9
- import { FLOE_GEOMETRY_SURFACE_ATTR as oe, FLOE_HOT_INTERACTION_ATTR as re, startHotInteraction as te } from "./utils/hotInteraction.js";
10
- import { FileBrowserDragProvider as se, hasFileBrowserDragContext as ne, useFileBrowserDrag as me } from "./context/FileBrowserDragContext.js";
11
- import { LayoutProvider as le, createLayoutService as pe, useLayout as fe } from "./context/LayoutContext.js";
12
- import { NotificationContainer as Te, NotificationProvider as ge, createNotificationService as ue, useNotification as ce } from "./context/NotificationContext.js";
13
- import { ThemeProvider as Ce, createThemeService as he, useTheme as ye } from "./context/ThemeContext.js";
14
- import { ViewActivationProvider as Fe, useViewActivation as ve } from "./context/ViewActivationContext.js";
15
- import { WidgetRegistryProvider as ke, createWidgetRegistry as Ie, useWidgetRegistry as Re } from "./context/WidgetRegistry.js";
16
- import { WidgetStateProvider as Ee, useCurrentWidgetId as Le, useWidgetState as _e, useWidgetStateContext as be } from "./context/WidgetStateContext.js";
17
- import { applyDragDelta as Oe, applyResizeDelta as Ae, getGridCellSize as Me, pixelDeltaToGridDelta as Be, positionToGridArea as we, snapToGrid as Ge } from "./utils/gridLayout.js";
18
- import { checkCollision as Ue, constrainPosition as We, findFreePosition as Ke, hasCollision as Ve, sameGridPosition as ze } from "./utils/gridCollision.js";
19
- import { cn as qe } from "./utils/cn.js";
20
- import { createSimpleContext as je } from "./context/createSimpleContext.js";
21
- import { createUIFirstSelection as Xe } from "./utils/uiFirstSelection.js";
22
- import { deferAfterPaint as $e, deferNonBlocking as eo } from "./utils/defer.js";
23
- import { duration as ro, easing as to, fadeIn as io, listContainer as so, listItem as no, panelResize as mo, popIn as ao, scaleIn as lo, sidebarVariants as po, slideInFromBottom as fo, slideInFromLeft as To, slideInFromRight as go, slideInFromTop as uo, springConfig as co } from "./utils/animations.js";
24
- import { formatKeybind as Co, isMacLikePlatform as ho, isPrimaryModKeyPressed as yo, matchKeybind as So, parseKeybind as Fo } from "./utils/keybind.js";
25
- import { isTypingElement as Po, shouldIgnoreHotkeys as ko } from "./utils/dom.js";
26
- import { lockBodyStyle as Ro } from "./utils/bodyStyleLock.js";
27
- import { registerCommandContributions as Eo, useCommandContributions as Lo } from "./hooks/useCommandContributions.js";
28
- import { useDebounce as bo } from "./hooks/useDebounce.js";
29
- import { useDeckDrag as Oo } from "./hooks/useDeckDrag.js";
30
- import { useFileBrowserDropTarget as Mo, useFileBrowserItemDrag as Bo } from "./hooks/useFileBrowserDrag.js";
31
- import { useKeybind as Go } from "./hooks/useKeybind.js";
32
- import { useMediaQuery as Uo } from "./hooks/useMediaQuery.js";
33
- import { usePersisted as Ko } from "./hooks/usePersisted.js";
34
- import { useResizeObserver as zo } from "./hooks/useResizeObserver.js";
2
+ import { applyShellThemeAttribute as i, applySurfaceStyleAttribute as s, applyTheme as n, builtInThemes as a, getSystemTheme as m, isFloeSurfaceStyle as l, isThemeType as p, mergeThemeTokenMaps as f, resolveThemeTokenOverrides as d, resolveThemeTokens as T, syncThemeTokenOverrides as u } from "./styles/themes/index.js";
3
+ import { floeColorTokenCategories as g, floeDesignTokens as x, floeFontFamilyTokens as y, floeMotionTokens as C, floeRadiusTokens as h, floeSharedCssVariables as S, floeSpacingTokens as F, floeSurfaceTokens as v, floeThemeColorVariables as P, floeTypographyTokens as k, getFloeColorTokenValue as I } from "./styles/tokens.js";
4
+ import { BUILT_IN_SHELL_THEME_DEFAULTS as D, REQUIRED_SHELL_THEME_TOKENS as E, assertUniqueThemePresetNames as b, builtInShellThemePresets as L, createShellThemePreset as _, getShellThemePresetsForMode as A, normalizeShellThemeSelection as N, presetSupportsMode as O, resolveShellThemePresetName as M } from "./styles/themes/presets.js";
5
+ import { CommandProvider as w, createCommandService as G, useCommand as H } from "./context/CommandContext.js";
6
+ import { ComponentRegistryProvider as W, createComponentRegistry as K, hasComponentRegistryContext as V, useComponentContextFactory as z, useComponentRegistry as Q, useOptionalComponentRegistry as q } from "./context/ComponentRegistry.js";
7
+ import { DEFAULT_FLOE_CONFIG as j, FloeConfigProvider as J, useFloeConfig as X, useResolvedFloeConfig as Z } from "./context/FloeConfigContext.js";
8
+ import { DeckProvider as ee, createDeckService as oe, useDeck as re } from "./context/DeckContext.js";
9
+ import { FLOE_GEOMETRY_SURFACE_ATTR as ie, FLOE_HOT_INTERACTION_ATTR as se, startHotInteraction as ne } from "./utils/hotInteraction.js";
10
+ import { FileBrowserDragProvider as me, hasFileBrowserDragContext as le, useFileBrowserDrag as pe } from "./context/FileBrowserDragContext.js";
11
+ import { LayoutProvider as de, createLayoutService as Te, useLayout as ue } from "./context/LayoutContext.js";
12
+ import { NotificationContainer as ge, NotificationProvider as xe, createNotificationService as ye, useNotification as Ce } from "./context/NotificationContext.js";
13
+ import { ThemeProvider as Se, createThemeService as Fe, useTheme as ve } from "./context/ThemeContext.js";
14
+ import { ViewActivationProvider as ke, useViewActivation as Ie } from "./context/ViewActivationContext.js";
15
+ import { WidgetRegistryProvider as De, createWidgetRegistry as Ee, useWidgetRegistry as be } from "./context/WidgetRegistry.js";
16
+ import { WidgetStateProvider as _e, useCurrentWidgetId as Ae, useWidgetState as Ne, useWidgetStateContext as Oe } from "./context/WidgetStateContext.js";
17
+ import { applyDragDelta as Be, applyResizeDelta as we, getGridCellSize as Ge, pixelDeltaToGridDelta as He, positionToGridArea as Ue, snapToGrid as We } from "./utils/gridLayout.js";
18
+ import { checkCollision as Ve, constrainPosition as ze, findFreePosition as Qe, hasCollision as qe, sameGridPosition as Ye } from "./utils/gridCollision.js";
19
+ import { cn as Je } from "./utils/cn.js";
20
+ import { createSimpleContext as Ze } from "./context/createSimpleContext.js";
21
+ import { createUIFirstSelection as eo } from "./utils/uiFirstSelection.js";
22
+ import { deferAfterPaint as ro, deferNonBlocking as to } from "./utils/defer.js";
23
+ import { duration as so, easing as no, fadeIn as ao, listContainer as mo, listItem as lo, panelResize as po, popIn as fo, scaleIn as To, sidebarVariants as uo, slideInFromBottom as co, slideInFromLeft as go, slideInFromRight as xo, slideInFromTop as yo, springConfig as Co } from "./utils/animations.js";
24
+ import { formatKeybind as So, isMacLikePlatform as Fo, isPrimaryModKeyPressed as vo, matchKeybind as Po, parseKeybind as ko } from "./utils/keybind.js";
25
+ import { isTypingElement as Ro, shouldIgnoreHotkeys as Do } from "./utils/dom.js";
26
+ import { lockBodyStyle as bo } from "./utils/bodyStyleLock.js";
27
+ import { registerCommandContributions as _o, useCommandContributions as Ao } from "./hooks/useCommandContributions.js";
28
+ import { useDebounce as Oo } from "./hooks/useDebounce.js";
29
+ import { useDeckDrag as Bo } from "./hooks/useDeckDrag.js";
30
+ import { useFileBrowserDropTarget as Go, useFileBrowserItemDrag as Ho } from "./hooks/useFileBrowserDrag.js";
31
+ import { useKeybind as Wo } from "./hooks/useKeybind.js";
32
+ import { useMediaQuery as Vo } from "./hooks/useMediaQuery.js";
33
+ import { usePersisted as Qo } from "./hooks/usePersisted.js";
34
+ import { useResizeObserver as Yo } from "./hooks/useResizeObserver.js";
35
35
  export {
36
- k as BUILT_IN_SHELL_THEME_DEFAULTS,
37
- A as CommandProvider,
38
- G as ComponentRegistryProvider,
39
- Q as DEFAULT_FLOE_CONFIG,
40
- X as DeckProvider,
41
- oe as FLOE_GEOMETRY_SURFACE_ATTR,
42
- re as FLOE_HOT_INTERACTION_ATTR,
43
- se as FileBrowserDragProvider,
44
- q as FloeConfigProvider,
36
+ D as BUILT_IN_SHELL_THEME_DEFAULTS,
37
+ w as CommandProvider,
38
+ W as ComponentRegistryProvider,
39
+ j as DEFAULT_FLOE_CONFIG,
40
+ ee as DeckProvider,
41
+ ie as FLOE_GEOMETRY_SURFACE_ATTR,
42
+ se as FLOE_HOT_INTERACTION_ATTR,
43
+ me as FileBrowserDragProvider,
44
+ J as FloeConfigProvider,
45
45
  r as FloeProvider,
46
- le as LayoutProvider,
47
- Te as NotificationContainer,
48
- ge as NotificationProvider,
49
- I as REQUIRED_SHELL_THEME_TOKENS,
50
- Ce as ThemeProvider,
51
- Fe as ViewActivationProvider,
52
- ke as WidgetRegistryProvider,
53
- Ee as WidgetStateProvider,
54
- Oe as applyDragDelta,
55
- Ae as applyResizeDelta,
46
+ de as LayoutProvider,
47
+ ge as NotificationContainer,
48
+ xe as NotificationProvider,
49
+ E as REQUIRED_SHELL_THEME_TOKENS,
50
+ Se as ThemeProvider,
51
+ ke as ViewActivationProvider,
52
+ De as WidgetRegistryProvider,
53
+ _e as WidgetStateProvider,
54
+ Be as applyDragDelta,
55
+ we as applyResizeDelta,
56
56
  i as applyShellThemeAttribute,
57
- s as applyTheme,
58
- R as assertUniqueThemePresetNames,
59
- D as builtInShellThemePresets,
60
- n as builtInThemes,
61
- Ue as checkCollision,
62
- qe as cn,
63
- We as constrainPosition,
64
- M as createCommandService,
65
- H as createComponentRegistry,
66
- Z as createDeckService,
67
- pe as createLayoutService,
68
- ue as createNotificationService,
69
- E as createShellThemePreset,
70
- je as createSimpleContext,
71
- he as createThemeService,
72
- Xe as createUIFirstSelection,
73
- Ie as createWidgetRegistry,
74
- $e as deferAfterPaint,
75
- eo as deferNonBlocking,
76
- ro as duration,
77
- to as easing,
78
- io as fadeIn,
79
- Ke as findFreePosition,
57
+ s as applySurfaceStyleAttribute,
58
+ n as applyTheme,
59
+ b as assertUniqueThemePresetNames,
60
+ L as builtInShellThemePresets,
61
+ a as builtInThemes,
62
+ Ve as checkCollision,
63
+ Je as cn,
64
+ ze as constrainPosition,
65
+ G as createCommandService,
66
+ K as createComponentRegistry,
67
+ oe as createDeckService,
68
+ Te as createLayoutService,
69
+ ye as createNotificationService,
70
+ _ as createShellThemePreset,
71
+ Ze as createSimpleContext,
72
+ Fe as createThemeService,
73
+ eo as createUIFirstSelection,
74
+ Ee as createWidgetRegistry,
75
+ ro as deferAfterPaint,
76
+ to as deferNonBlocking,
77
+ so as duration,
78
+ no as easing,
79
+ ao as fadeIn,
80
+ Qe as findFreePosition,
80
81
  g as floeColorTokenCategories,
81
- u as floeDesignTokens,
82
- c as floeFontFamilyTokens,
83
- x as floeMotionTokens,
84
- C as floeRadiusTokens,
85
- h as floeSharedCssVariables,
86
- y as floeSpacingTokens,
87
- S as floeThemeColorVariables,
88
- F as floeTypographyTokens,
89
- Co as formatKeybind,
90
- v as getFloeColorTokenValue,
91
- Me as getGridCellSize,
92
- L as getShellThemePresetsForMode,
82
+ x as floeDesignTokens,
83
+ y as floeFontFamilyTokens,
84
+ C as floeMotionTokens,
85
+ h as floeRadiusTokens,
86
+ S as floeSharedCssVariables,
87
+ F as floeSpacingTokens,
88
+ v as floeSurfaceTokens,
89
+ P as floeThemeColorVariables,
90
+ k as floeTypographyTokens,
91
+ So as formatKeybind,
92
+ I as getFloeColorTokenValue,
93
+ Ge as getGridCellSize,
94
+ A as getShellThemePresetsForMode,
93
95
  m as getSystemTheme,
94
- Ve as hasCollision,
95
- U as hasComponentRegistryContext,
96
- ne as hasFileBrowserDragContext,
97
- ho as isMacLikePlatform,
98
- yo as isPrimaryModKeyPressed,
99
- a as isThemeType,
100
- Po as isTypingElement,
101
- so as listContainer,
102
- no as listItem,
103
- Ro as lockBodyStyle,
104
- So as matchKeybind,
105
- l as mergeThemeTokenMaps,
106
- _ as normalizeShellThemeSelection,
107
- mo as panelResize,
108
- Fo as parseKeybind,
109
- Be as pixelDeltaToGridDelta,
110
- ao as popIn,
111
- we as positionToGridArea,
112
- b as presetSupportsMode,
113
- Eo as registerCommandContributions,
114
- N as resolveShellThemePresetName,
115
- p as resolveThemeTokenOverrides,
116
- f as resolveThemeTokens,
117
- ze as sameGridPosition,
118
- lo as scaleIn,
119
- ko as shouldIgnoreHotkeys,
120
- po as sidebarVariants,
121
- fo as slideInFromBottom,
122
- To as slideInFromLeft,
123
- go as slideInFromRight,
124
- uo as slideInFromTop,
125
- Ge as snapToGrid,
126
- co as springConfig,
127
- te as startHotInteraction,
128
- d as syncThemeTokenOverrides,
129
- B as useCommand,
130
- Lo as useCommandContributions,
131
- W as useComponentContextFactory,
132
- K as useComponentRegistry,
133
- Le as useCurrentWidgetId,
134
- bo as useDebounce,
135
- $ as useDeck,
136
- Oo as useDeckDrag,
137
- me as useFileBrowserDrag,
138
- Mo as useFileBrowserDropTarget,
139
- Bo as useFileBrowserItemDrag,
140
- Y as useFloeConfig,
141
- Go as useKeybind,
142
- fe as useLayout,
143
- Uo as useMediaQuery,
144
- ce as useNotification,
145
- V as useOptionalComponentRegistry,
146
- Ko as usePersisted,
147
- zo as useResizeObserver,
148
- j as useResolvedFloeConfig,
149
- ye as useTheme,
150
- ve as useViewActivation,
151
- Re as useWidgetRegistry,
152
- _e as useWidgetState,
153
- be as useWidgetStateContext
96
+ qe as hasCollision,
97
+ V as hasComponentRegistryContext,
98
+ le as hasFileBrowserDragContext,
99
+ l as isFloeSurfaceStyle,
100
+ Fo as isMacLikePlatform,
101
+ vo as isPrimaryModKeyPressed,
102
+ p as isThemeType,
103
+ Ro as isTypingElement,
104
+ mo as listContainer,
105
+ lo as listItem,
106
+ bo as lockBodyStyle,
107
+ Po as matchKeybind,
108
+ f as mergeThemeTokenMaps,
109
+ N as normalizeShellThemeSelection,
110
+ po as panelResize,
111
+ ko as parseKeybind,
112
+ He as pixelDeltaToGridDelta,
113
+ fo as popIn,
114
+ Ue as positionToGridArea,
115
+ O as presetSupportsMode,
116
+ _o as registerCommandContributions,
117
+ M as resolveShellThemePresetName,
118
+ d as resolveThemeTokenOverrides,
119
+ T as resolveThemeTokens,
120
+ Ye as sameGridPosition,
121
+ To as scaleIn,
122
+ Do as shouldIgnoreHotkeys,
123
+ uo as sidebarVariants,
124
+ co as slideInFromBottom,
125
+ go as slideInFromLeft,
126
+ xo as slideInFromRight,
127
+ yo as slideInFromTop,
128
+ We as snapToGrid,
129
+ Co as springConfig,
130
+ ne as startHotInteraction,
131
+ u as syncThemeTokenOverrides,
132
+ H as useCommand,
133
+ Ao as useCommandContributions,
134
+ z as useComponentContextFactory,
135
+ Q as useComponentRegistry,
136
+ Ae as useCurrentWidgetId,
137
+ Oo as useDebounce,
138
+ re as useDeck,
139
+ Bo as useDeckDrag,
140
+ pe as useFileBrowserDrag,
141
+ Go as useFileBrowserDropTarget,
142
+ Ho as useFileBrowserItemDrag,
143
+ X as useFloeConfig,
144
+ Wo as useKeybind,
145
+ ue as useLayout,
146
+ Vo as useMediaQuery,
147
+ Ce as useNotification,
148
+ q as useOptionalComponentRegistry,
149
+ Qo as usePersisted,
150
+ Yo as useResizeObserver,
151
+ Z as useResolvedFloeConfig,
152
+ ve as useTheme,
153
+ Ie as useViewActivation,
154
+ be as useWidgetRegistry,
155
+ Ne as useWidgetState,
156
+ Oe as useWidgetStateContext
154
157
  };
@@ -34,4 +34,3 @@
34
34
  --floe-input-focus-color: Highlight;
35
35
  }
36
36
  }
37
-
@@ -1,4 +1,7 @@
1
1
  export type ThemeType = 'light' | 'dark' | 'system';
2
+ export type FloeSurfaceStyle = 'standard' | 'soft-neumorphic';
3
+ export declare function isFloeSurfaceStyle(value: unknown): value is FloeSurfaceStyle;
4
+ export declare function applySurfaceStyleAttribute(style: FloeSurfaceStyle | undefined, target?: ThemeTarget): void;
2
5
  export type FloeThemePresetMode = 'light' | 'dark' | 'both';
3
6
  export type FloeThemeTokenMap = Partial<Record<`--${string}`, string>>;
4
7
  export interface FloeMonacoTokenRule {