@floegence/floe-webapp-core 0.35.55 → 0.35.57

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.
@@ -13,6 +13,8 @@ export interface NotesBoardProps {
13
13
  overviewOpen: boolean;
14
14
  optimisticFrontNoteID: string | null;
15
15
  copiedNoteID: string | null;
16
+ noteNumberByID: ReadonlyMap<string, string>;
17
+ pendingShortcutNoteID: string | null;
16
18
  setCanvasFrameRef: (el: HTMLDivElement | undefined) => void;
17
19
  onViewportCommit: (viewport: NotesViewport) => void;
18
20
  onCanvasContextMenu: (event: InfiniteCanvasContextMenuEvent) => void;
@@ -1,43 +1,43 @@
1
- import { insert as t, createComponent as o, className as k, effect as S, use as x, memo as O, template as r, delegateEvents as I } from "solid-js/web";
1
+ import { insert as t, createComponent as o, className as S, effect as k, use as x, memo as O, template as r, delegateEvents as I } from "solid-js/web";
2
2
  import { Show as u, For as y } from "solid-js";
3
- import { Minus as N, Plus as w, Layers as M, Paste as p } from "../icons/index.js";
4
- import { NotesAnimalIcon as F } from "./notesAppearance.js";
5
- import { NotesBoardNote as T } from "./NotesBoardNote.js";
6
- import { topicAccentClass as P } from "./notesOverlayHelpers.js";
7
- import { InfiniteCanvas as Z } from "../ui/InfiniteCanvas.js";
8
- var L = /* @__PURE__ */ r('<button type=button class=notes-overlay__hud-button aria-label="Open overview map">'), A = /* @__PURE__ */ r("<div class=notes-page__mobile-toolbar><div class=notes-page__mobile-topics>"), D = /* @__PURE__ */ r("<div class=notes-canvas__field>"), E = /* @__PURE__ */ r('<div class=notes-mobile-dock data-floe-canvas-interactive=true><button type=button class=notes-mobile-dock__action aria-label="Create note at canvas center"><span>New</span></button><button type=button class=notes-mobile-dock__action aria-label="Paste note at canvas center"><span>Paste</span></button><button type=button class="notes-mobile-dock__action is-emphasis"aria-label="Open overview map"><span>Map'), j = /* @__PURE__ */ r('<section class="notes-page notes-overlay__board"><div class=notes-overlay__board-head data-floe-canvas-interactive=true><div class=notes-overlay__board-topic></div><div class=notes-overlay__board-actions><button type=button class=notes-overlay__hud-button aria-label="Zoom out"></button><div class=notes-overlay__hud-scale></div><button type=button class=notes-overlay__hud-button aria-label="Zoom in"></button></div></div><div class=notes-page__canvas>'), B = /* @__PURE__ */ r("<div>"), R = /* @__PURE__ */ r("<div class=notes-overlay__board-topic-copy><div class=notes-page__eyebrow>Active Topic</div><div class=notes-overlay__board-title></div><div class=notes-overlay__board-meta> live note"), V = /* @__PURE__ */ r("<button type=button class=notes-page__mobile-topic>");
3
+ import { Minus as N, Plus as w, Layers as M, Paste as F } from "../icons/index.js";
4
+ import { NotesAnimalIcon as T } from "./notesAppearance.js";
5
+ import { NotesBoardNote as P } from "./NotesBoardNote.js";
6
+ import { topicAccentClass as p } from "./notesOverlayHelpers.js";
7
+ import { InfiniteCanvas as L } from "../ui/InfiniteCanvas.js";
8
+ var Z = /* @__PURE__ */ r('<button type=button class=notes-overlay__hud-button aria-label="Open overview map">'), D = /* @__PURE__ */ r("<div class=notes-page__mobile-toolbar><div class=notes-page__mobile-topics>"), A = /* @__PURE__ */ r("<div class=notes-canvas__field>"), B = /* @__PURE__ */ r('<div class=notes-mobile-dock data-floe-canvas-interactive=true><button type=button class=notes-mobile-dock__action aria-label="Create note at canvas center"><span>New</span></button><button type=button class=notes-mobile-dock__action aria-label="Paste note at canvas center"><span>Paste</span></button><button type=button class="notes-mobile-dock__action is-emphasis"aria-label="Open overview map"><span>Map'), E = /* @__PURE__ */ r('<section class="notes-page notes-overlay__board"><div class=notes-overlay__board-head data-floe-canvas-interactive=true><div class=notes-overlay__board-topic></div><div class=notes-overlay__board-actions><button type=button class=notes-overlay__hud-button aria-label="Zoom out"></button><div class=notes-overlay__hud-scale></div><button type=button class=notes-overlay__hud-button aria-label="Zoom in"></button></div></div><div class=notes-page__canvas data-floe-notes-digit-browse=true>'), j = /* @__PURE__ */ r("<div>"), R = /* @__PURE__ */ r("<div class=notes-overlay__board-topic-copy><div class=notes-page__eyebrow>Active Topic</div><div class=notes-overlay__board-title></div><div class=notes-overlay__board-meta> live note"), V = /* @__PURE__ */ r("<button type=button class=notes-page__mobile-topic>");
9
9
  function U(e) {
10
10
  return (() => {
11
- var s = j(), b = s.firstChild, $ = b.firstChild, g = $.nextSibling, d = g.firstChild, h = d.nextSibling, C = h.nextSibling, v = b.nextSibling;
12
- t($, o(u, {
11
+ var s = E(), m = s.firstChild, g = m.firstChild, $ = g.nextSibling, d = $.firstChild, h = d.nextSibling, C = h.nextSibling, v = m.nextSibling;
12
+ t(g, o(u, {
13
13
  get when() {
14
14
  return e.activeTopic;
15
15
  },
16
16
  children: (n) => {
17
- const i = P(n().icon_accent);
17
+ const i = p(n().icon_accent);
18
18
  return [(() => {
19
- var a = B();
20
- return k(a, `notes-topic-mark notes-topic-mark--board ${i}`), t(a, o(F, {
19
+ var a = j();
20
+ return S(a, `notes-topic-mark notes-topic-mark--board ${i}`), t(a, o(T, {
21
21
  get iconKey() {
22
22
  return n().icon_key;
23
23
  },
24
24
  class: "notes-topic-mark__icon"
25
25
  })), a;
26
26
  })(), (() => {
27
- var a = R(), l = a.firstChild, _ = l.nextSibling, c = _.nextSibling, m = c.firstChild;
28
- return t(_, () => n().name), t(c, () => e.activeItems.length, m), t(c, () => e.activeItems.length === 1 ? "" : "s", null), a;
27
+ var a = R(), l = a.firstChild, _ = l.nextSibling, c = _.nextSibling, b = c.firstChild;
28
+ return t(_, () => n().name), t(c, () => e.activeItems.length, b), t(c, () => e.activeItems.length === 1 ? "" : "s", null), a;
29
29
  })()];
30
30
  }
31
31
  })), d.$$click = () => e.onZoomOut(), t(d, o(N, {
32
32
  class: "w-3.5 h-3.5"
33
33
  })), t(h, () => e.boardScaleLabel), C.$$click = () => e.onZoomIn(), t(C, o(w, {
34
34
  class: "w-3.5 h-3.5"
35
- })), t(g, o(u, {
35
+ })), t($, o(u, {
36
36
  get when() {
37
37
  return e.isMobile;
38
38
  },
39
39
  get children() {
40
- var n = L();
40
+ var n = Z();
41
41
  return n.$$click = () => e.onOpenOverview(), t(n, o(M, {
42
42
  class: "w-3.5 h-3.5"
43
43
  })), n;
@@ -47,20 +47,20 @@ function U(e) {
47
47
  return e.isMobile;
48
48
  },
49
49
  get children() {
50
- var n = A(), i = n.firstChild;
50
+ var n = D(), i = n.firstChild;
51
51
  return t(i, o(y, {
52
52
  get each() {
53
53
  return e.topics;
54
54
  },
55
55
  children: (a) => (() => {
56
56
  var l = V();
57
- return l.$$click = () => e.onSelectTopic(a.topic_id), t(l, () => a.name), S(() => l.classList.toggle("is-active", a.topic_id === e.activeTopicID)), l;
57
+ return l.$$click = () => e.onSelectTopic(a.topic_id), t(l, () => a.name), k(() => l.classList.toggle("is-active", a.topic_id === e.activeTopicID)), l;
58
58
  })()
59
59
  })), n;
60
60
  }
61
61
  }), v);
62
62
  var f = e.setCanvasFrameRef;
63
- return typeof f == "function" ? x(f, v) : e.setCanvasFrameRef = v, t(v, o(Z, {
63
+ return typeof f == "function" ? x(f, v) : e.setCanvasFrameRef = v, t(v, o(L, {
64
64
  get ariaLabel() {
65
65
  return `Canvas for ${e.activeTopicLabel}`;
66
66
  },
@@ -75,19 +75,25 @@ function U(e) {
75
75
  return e.onCanvasContextMenu;
76
76
  },
77
77
  get children() {
78
- var n = D();
78
+ var n = A();
79
79
  return t(n, o(y, {
80
80
  get each() {
81
81
  return e.activeItems;
82
82
  },
83
- children: (i) => o(T, {
83
+ children: (i) => o(P, {
84
84
  item: i,
85
85
  get copied() {
86
86
  return e.copiedNoteID === i.note_id;
87
87
  },
88
+ get numberLabel() {
89
+ return e.noteNumberByID.get(i.note_id) ?? null;
90
+ },
88
91
  get optimisticFront() {
89
92
  return e.optimisticFrontNoteID === i.note_id;
90
93
  },
94
+ get shortcutPending() {
95
+ return e.pendingShortcutNoteID === i.note_id;
96
+ },
91
97
  get topZIndex() {
92
98
  return e.topZIndex;
93
99
  },
@@ -126,14 +132,14 @@ function U(e) {
126
132
  return O(() => !!e.isMobile)() && !e.overviewOpen;
127
133
  },
128
134
  get children() {
129
- var n = E(), i = n.firstChild, a = i.firstChild, l = i.nextSibling, _ = l.firstChild, c = l.nextSibling, m = c.firstChild;
135
+ var n = B(), i = n.firstChild, a = i.firstChild, l = i.nextSibling, _ = l.firstChild, c = l.nextSibling, b = c.firstChild;
130
136
  return i.$$click = () => e.onMobileCreateNote(), t(i, o(w, {
131
137
  class: "w-4 h-4"
132
- }), a), l.$$click = () => e.onMobilePaste(), t(l, o(p, {
138
+ }), a), l.$$click = () => e.onMobilePaste(), t(l, o(F, {
133
139
  class: "w-4 h-4"
134
140
  }), _), c.$$click = () => e.onOpenOverview(), t(c, o(M, {
135
141
  class: "w-4 h-4"
136
- }), m), n;
142
+ }), b), n;
137
143
  }
138
144
  }), null), s;
139
145
  })();
@@ -3,7 +3,9 @@ import type { NotesItem, NotesPoint } from './types';
3
3
  export interface NotesBoardNoteProps {
4
4
  item: NotesItem;
5
5
  copied: boolean;
6
+ numberLabel: string | null;
6
7
  optimisticFront: boolean;
8
+ shortcutPending: boolean;
7
9
  topZIndex: number;
8
10
  viewportScale: number;
9
11
  onSeedMoveProjection: (noteID: string, position: NotesPoint) => void;
@@ -1,47 +1,47 @@
1
- import { insert as l, createComponent as $, memo as y, effect as G, className as H, setAttribute as K, setStyleProperty as w, template as f, delegateEvents as V } from "solid-js/web";
2
- import { createSignal as Z, onCleanup as q, untrack as A, createMemo as d } from "solid-js";
3
- import { startHotInteraction as J } from "../../utils/hotInteraction.js";
4
- import { GripVertical as Q, Pencil as U, Trash as p, Check as tt } from "../icons/index.js";
5
- import { notePreviewMetrics as et, normalizeNoteTitle as ot, normalizeNoteText as nt, getNotePreviewText as it, noteColorClass as at, samePoint as lt } from "./notesOverlayHelpers.js";
6
- var st = /* @__PURE__ */ f('<article data-floe-geometry-surface=notes-note><div class=notes-note__surface><header class=notes-note__header><button type=button class=notes-note__drag aria-label="Drag note"data-floe-canvas-interactive=true data-floe-notes-front-skip=true></button><div class=notes-note__actions><button type=button class=notes-note__icon-button data-floe-canvas-interactive=true aria-label="Edit note"></button><button type=button class="notes-note__icon-button is-danger"data-floe-canvas-interactive=true data-floe-notes-front-skip=true aria-label="Move note to trash"></button></div></header><button type=button class=notes-note__body data-floe-canvas-interactive=true data-floe-canvas-pan-surface=true>'), rt = /* @__PURE__ */ f("<span class=notes-note__title-block><span class=notes-note__title>"), dt = /* @__PURE__ */ f("<span class=notes-note__body-copy>"), ct = /* @__PURE__ */ f("<span class=notes-note__body-copy>Empty note"), mt = /* @__PURE__ */ f("<div class=notes-note__copied-state aria-hidden=true><div class=notes-note__copied-pill><span class=notes-note__copied-icon></span><span class=notes-note__copied-copy>Copied");
7
- const ut = '[data-floe-notes-front-skip="true"]';
8
- function bt(e) {
9
- const [h, C] = Z(null);
10
- let u;
11
- q(() => {
12
- u?.abort(), u = void 0, A(h)?.stopInteraction();
1
+ import { insert as l, createComponent as y, memo as b, effect as R, setAttribute as j, className as Z, setStyleProperty as C, template as g, delegateEvents as q } from "solid-js/web";
2
+ import { createSignal as J, onCleanup as Q, untrack as G, createMemo as m } from "solid-js";
3
+ import { startHotInteraction as U } from "../../utils/hotInteraction.js";
4
+ import { GripVertical as p, Pencil as tt, Trash as et, Check as nt } from "../icons/index.js";
5
+ import { notePreviewMetrics as ot, normalizeNoteTitle as it, normalizeNoteText as lt, getNotePreviewText as at, noteColorClass as st, samePoint as rt } from "./notesOverlayHelpers.js";
6
+ var dt = /* @__PURE__ */ g('<article data-floe-geometry-surface=notes-note><div class=notes-note__surface><header class=notes-note__header><div class=notes-note__lead><button type=button class=notes-note__drag aria-label="Drag note"data-floe-canvas-interactive=true data-floe-notes-front-skip=true></button></div><div class=notes-note__actions><button type=button class=notes-note__icon-button data-floe-canvas-interactive=true aria-label="Edit note"></button><button type=button class="notes-note__icon-button is-danger"data-floe-canvas-interactive=true data-floe-notes-front-skip=true aria-label="Move note to trash"></button></div></header><button type=button class=notes-note__body data-floe-canvas-interactive=true data-floe-canvas-pan-surface=true>'), ct = /* @__PURE__ */ g("<div class=notes-note__number aria-hidden=true><span class=notes-note__number-key>"), mt = /* @__PURE__ */ g("<span class=notes-note__title-block><span class=notes-note__title>"), ut = /* @__PURE__ */ g("<span class=notes-note__body-copy>"), vt = /* @__PURE__ */ g("<span class=notes-note__body-copy>Empty note"), _t = /* @__PURE__ */ g("<div class=notes-note__copied-state aria-hidden=true><div class=notes-note__copied-pill><span class=notes-note__copied-icon></span><span class=notes-note__copied-copy>Copied");
7
+ const gt = '[data-floe-notes-front-skip="true"]';
8
+ function Ct(e) {
9
+ const [h, w] = J(null);
10
+ let _;
11
+ Q(() => {
12
+ _?.abort(), _ = void 0, G(h)?.stopInteraction();
13
13
  });
14
- const x = d(() => et(e.item)), I = d(() => ot(e.item.title)), T = d(() => nt(e.item.body)), B = d(() => T() ? it(e.item.body, x().preview_limit) : ""), _ = d(() => I().length > 0), k = d(() => T().length > 0), M = d(() => !_() && !k()), S = () => h() !== null, X = d(() => {
15
- const o = h();
16
- return o ? {
17
- x: o.worldX,
18
- y: o.worldY
14
+ const x = m(() => ot(e.item)), L = m(() => it(e.item.title)), T = m(() => lt(e.item.body)), H = m(() => T() ? at(e.item.body, x().preview_limit) : ""), f = m(() => L().length > 0), k = m(() => T().length > 0), M = m(() => !f() && !k()), S = () => h() !== null, X = m(() => {
15
+ const n = h();
16
+ return n ? {
17
+ x: n.worldX,
18
+ y: n.worldY
19
19
  } : {
20
20
  x: e.item.x,
21
21
  y: e.item.y
22
22
  };
23
- }), R = (o) => !(o instanceof Element && o.closest(ut)), Y = (o) => {
24
- const a = A(h);
23
+ }), K = (n) => !(n instanceof Element && n.closest(gt)), Y = (n) => {
24
+ const a = G(h);
25
25
  if (!a) return;
26
26
  const r = {
27
27
  x: a.worldX,
28
28
  y: a.worldY
29
- }, c = {
29
+ }, u = {
30
30
  x: a.startWorldX,
31
31
  y: a.startWorldY
32
- }, v = o && !lt(r, c);
33
- v && e.onSeedMoveProjection(e.item.note_id, r), a.stopInteraction(), C(null), u?.abort(), u = void 0, e.onCommitFront(e.item.note_id), v && e.onCommitMove(e.item.note_id, r);
34
- }, j = (o) => {
35
- if (o.button !== 0) return;
36
- o.preventDefault(), o.stopPropagation(), u?.abort(), e.onStartOptimisticFront(e.item.note_id);
37
- const a = J({
32
+ }, v = n && !rt(r, u);
33
+ v && e.onSeedMoveProjection(e.item.note_id, r), a.stopInteraction(), w(null), _?.abort(), _ = void 0, e.onCommitFront(e.item.note_id), v && e.onCommitMove(e.item.note_id, r);
34
+ }, V = (n) => {
35
+ if (n.button !== 0) return;
36
+ n.preventDefault(), n.stopPropagation(), _?.abort(), e.onStartOptimisticFront(e.item.note_id);
37
+ const a = U({
38
38
  kind: "drag",
39
39
  cursor: "grabbing"
40
40
  }), r = Math.max(e.viewportScale, 1e-3);
41
- C({
42
- pointerId: o.pointerId,
43
- startClientX: o.clientX,
44
- startClientY: o.clientY,
41
+ w({
42
+ pointerId: n.pointerId,
43
+ startClientX: n.clientX,
44
+ startClientY: n.clientY,
45
45
  startWorldX: e.item.x,
46
46
  startWorldY: e.item.y,
47
47
  worldX: e.item.x,
@@ -50,70 +50,76 @@ function bt(e) {
50
50
  scale: r,
51
51
  stopInteraction: a
52
52
  });
53
- const c = (n) => {
54
- C((t) => {
55
- if (!t || t.pointerId !== n.pointerId) return t;
56
- const i = t.startWorldX + (n.clientX - t.startClientX) / t.scale, s = t.startWorldY + (n.clientY - t.startClientY) / t.scale;
53
+ const u = (s) => {
54
+ w((o) => {
55
+ if (!o || o.pointerId !== s.pointerId) return o;
56
+ const t = o.startWorldX + (s.clientX - o.startClientX) / o.scale, i = o.startWorldY + (s.clientY - o.startClientY) / o.scale;
57
57
  return {
58
- ...t,
59
- worldX: i,
60
- worldY: s,
61
- moved: t.moved || Math.abs(i - t.startWorldX) > 2 || Math.abs(s - t.startWorldY) > 2
58
+ ...o,
59
+ worldX: t,
60
+ worldY: i,
61
+ moved: o.moved || Math.abs(t - o.startWorldX) > 2 || Math.abs(i - o.startWorldY) > 2
62
62
  };
63
63
  });
64
- }, v = (n) => {
65
- n.pointerId === o.pointerId && Y(!0);
66
- }, g = (n) => {
67
- n.pointerId === o.pointerId && Y(!1);
68
- }, m = new AbortController();
69
- u = m, window.addEventListener("pointermove", c, {
70
- signal: m.signal
64
+ }, v = (s) => {
65
+ s.pointerId === n.pointerId && Y(!0);
66
+ }, I = (s) => {
67
+ s.pointerId === n.pointerId && Y(!1);
68
+ }, d = new AbortController();
69
+ _ = d, window.addEventListener("pointermove", u, {
70
+ signal: d.signal
71
71
  }), window.addEventListener("pointerup", v, {
72
72
  once: !0,
73
- signal: m.signal
74
- }), window.addEventListener("pointercancel", g, {
73
+ signal: d.signal
74
+ }), window.addEventListener("pointercancel", I, {
75
75
  once: !0,
76
- signal: m.signal
76
+ signal: d.signal
77
77
  });
78
78
  };
79
79
  return (() => {
80
- var o = st(), a = o.firstChild, r = a.firstChild, c = r.firstChild, v = c.nextSibling, g = v.firstChild, m = g.nextSibling, n = r.nextSibling;
81
- return o.$$click = (t) => {
82
- R(t.target) && e.onCommitFront(e.item.note_id);
83
- }, o.$$contextmenu = (t) => {
80
+ var n = dt(), a = n.firstChild, r = a.firstChild, u = r.firstChild, v = u.firstChild, I = u.nextSibling, d = I.firstChild, s = d.nextSibling, o = r.nextSibling;
81
+ return n.$$click = (t) => {
82
+ K(t.target) && e.onCommitFront(e.item.note_id);
83
+ }, n.$$contextmenu = (t) => {
84
84
  t.preventDefault(), t.stopPropagation(), e.onOpenContextMenu(t, e.item);
85
- }, c.$$pointerdown = j, l(c, $(Q, {
85
+ }, v.$$pointerdown = V, l(v, y(p, {
86
86
  class: "w-3.5 h-3.5"
87
- })), g.$$click = () => e.onOpenEditor(e.item.note_id), l(g, $(U, {
87
+ })), l(u, (() => {
88
+ var t = b(() => !!e.numberLabel);
89
+ return () => t() ? (() => {
90
+ var i = ct(), c = i.firstChild;
91
+ return l(c, () => e.numberLabel), R(() => j(i, "data-floe-notes-note-number", e.numberLabel)), i;
92
+ })() : null;
93
+ })(), null), d.$$click = () => e.onOpenEditor(e.item.note_id), l(d, y(tt, {
88
94
  class: "w-3.5 h-3.5"
89
- })), m.$$click = () => e.onMoveToTrash(e.item.note_id), l(m, $(p, {
95
+ })), s.$$click = () => e.onMoveToTrash(e.item.note_id), l(s, y(et, {
90
96
  class: "w-3.5 h-3.5"
91
- })), n.$$click = () => e.onCopy(e.item), l(n, (() => {
92
- var t = y(() => !!_());
97
+ })), o.$$click = () => e.onCopy(e.item), l(o, (() => {
98
+ var t = b(() => !!f());
93
99
  return () => t() ? (() => {
94
- var i = rt(), s = i.firstChild;
95
- return l(s, I), i;
100
+ var i = mt(), c = i.firstChild;
101
+ return l(c, L), i;
96
102
  })() : null;
97
- })(), null), l(n, (() => {
98
- var t = y(() => !!k());
103
+ })(), null), l(o, (() => {
104
+ var t = b(() => !!k());
99
105
  return () => t() ? (() => {
100
- var i = dt();
101
- return l(i, B), i;
106
+ var i = ut();
107
+ return l(i, H), i;
102
108
  })() : null;
103
- })(), null), l(n, (() => {
104
- var t = y(() => !!M());
105
- return () => t() ? ct() : null;
109
+ })(), null), l(o, (() => {
110
+ var t = b(() => !!M());
111
+ return () => t() ? vt() : null;
106
112
  })(), null), l(a, (() => {
107
- var t = y(() => !!e.copied);
113
+ var t = b(() => !!e.copied);
108
114
  return () => t() ? (() => {
109
- var i = mt(), s = i.firstChild, b = s.firstChild;
110
- return l(b, $(tt, {
115
+ var i = _t(), c = i.firstChild, $ = c.firstChild;
116
+ return l($, y(nt, {
111
117
  class: "w-3.5 h-3.5"
112
118
  })), i;
113
119
  })() : null;
114
- })(), null), G((t) => {
115
- var i = `${at(e.item.color_token)} notes-note notes-note--size-${e.item.size_bucket - 1}`, s = !!e.copied, b = !!S(), E = !!_(), L = e.item.note_id, P = `translate(${X().x}px, ${X().y}px)`, N = `${x().width}px`, W = `${x().height}px`, D = S() || e.optimisticFront ? `${e.topZIndex + 1}` : `${e.item.z_index}`, F = !!M(), z = !!_(), O = !!(_() && !k());
116
- return i !== t.e && H(o, t.e = i), s !== t.t && o.classList.toggle("is-copied", t.t = s), b !== t.a && o.classList.toggle("is-dragging", t.a = b), E !== t.o && o.classList.toggle("has-title", t.o = E), L !== t.i && K(o, "data-floe-notes-note-id", t.i = L), P !== t.n && w(o, "transform", t.n = P), N !== t.s && w(o, "--note-width", t.s = N), W !== t.h && w(o, "--note-height", t.h = W), D !== t.r && w(o, "z-index", t.r = D), F !== t.d && n.classList.toggle("is-empty", t.d = F), z !== t.l && n.classList.toggle("has-title", t.l = z), O !== t.u && n.classList.toggle("is-title-only", t.u = O), t;
120
+ })(), null), R((t) => {
121
+ var i = `${st(e.item.color_token)} notes-note notes-note--size-${e.item.size_bucket - 1}`, c = !!e.copied, $ = !!S(), P = !!f(), E = !!e.shortcutPending, N = e.item.note_id, W = `translate(${X().x}px, ${X().y}px)`, D = `${x().width}px`, F = `${x().height}px`, z = S() || e.optimisticFront ? `${e.topZIndex + 1}` : `${e.item.z_index}`, O = !!M(), A = !!f(), B = !!(f() && !k());
122
+ return i !== t.e && Z(n, t.e = i), c !== t.t && n.classList.toggle("is-copied", t.t = c), $ !== t.a && n.classList.toggle("is-dragging", t.a = $), P !== t.o && n.classList.toggle("has-title", t.o = P), E !== t.i && n.classList.toggle("is-shortcut-pending", t.i = E), N !== t.n && j(n, "data-floe-notes-note-id", t.n = N), W !== t.s && C(n, "transform", t.s = W), D !== t.h && C(n, "--note-width", t.h = D), F !== t.r && C(n, "--note-height", t.r = F), z !== t.d && C(n, "z-index", t.d = z), O !== t.l && o.classList.toggle("is-empty", t.l = O), A !== t.u && o.classList.toggle("has-title", t.u = A), B !== t.c && o.classList.toggle("is-title-only", t.c = B), t;
117
123
  }, {
118
124
  e: void 0,
119
125
  t: void 0,
@@ -126,11 +132,12 @@ function bt(e) {
126
132
  r: void 0,
127
133
  d: void 0,
128
134
  l: void 0,
129
- u: void 0
130
- }), o;
135
+ u: void 0,
136
+ c: void 0
137
+ }), n;
131
138
  })();
132
139
  }
133
- V(["contextmenu", "click", "pointerdown"]);
140
+ q(["contextmenu", "click", "pointerdown"]);
134
141
  export {
135
- bt as NotesBoardNote
142
+ Ct as NotesBoardNote
136
143
  };
@@ -5,5 +5,7 @@ export interface NotesOverlayProps {
5
5
  onClose: () => void;
6
6
  controller: NotesController;
7
7
  interactionMode?: NotesOverlayInteractionMode;
8
+ /** Additional shell-owned keybinds that should continue working while floating Notes is focused. */
9
+ allowGlobalHotkeys?: readonly string[];
8
10
  }
9
11
  export declare function NotesOverlay(props: NotesOverlayProps): import("solid-js").JSX.Element;