@shadow-garden/bapbong-ui 0.13.2 → 0.14.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.
@@ -1 +1 @@
1
- {"version":3,"file":"color-picker.d.ts","sourceRoot":"","sources":["../../src/lib/color-picker.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AAEH;yEACyE;AACzE,eAAO,MAAM,aAAa,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAiGvD,CAAC;AA6CF,MAAM,WAAW,kBAAkB;IACjC,wCAAwC;IACxC,MAAM,EAAE,WAAW,CAAC;IACpB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB;uEACmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;CACpC;AAED,sEAAsE;AACtE,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,KAAK,EACL,UAAU,EACV,MAAM,GACP,EAAE,kBAAkB,GAAG;IAAE,KAAK,IAAI,IAAI,CAAA;CAAE,CAqKxC;AAED,MAAM,WAAW,kBAAkB;IACjC;8EAC0E;IAC1E,KAAK,IAAI,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;+CAC2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,CAAC,EAAE,kBAAkB,GAAG;IAClD,EAAE,EAAE,iBAAiB,CAAC;IACtB,IAAI,IAAI,IAAI,CAAC;CACd,CAkDA"}
1
+ {"version":3,"file":"color-picker.d.ts","sourceRoot":"","sources":["../../src/lib/color-picker.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AAEH;yEACyE;AACzE,eAAO,MAAM,aAAa,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAiGvD,CAAC;AA6CF,MAAM,WAAW,kBAAkB;IACjC,wCAAwC;IACxC,MAAM,EAAE,WAAW,CAAC;IACpB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB;uEACmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;CACpC;AAED,sEAAsE;AACtE,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,KAAK,EACL,UAAU,EACV,MAAM,GACP,EAAE,kBAAkB,GAAG;IAAE,KAAK,IAAI,IAAI,CAAA;CAAE,CAmJxC;AAED,MAAM,WAAW,kBAAkB;IACjC;8EAC0E;IAC1E,KAAK,IAAI,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;+CAC2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,CAAC,EAAE,kBAAkB,GAAG;IAClD,EAAE,EAAE,iBAAiB,CAAC;IACtB,IAAI,IAAI,IAAI,CAAC;CACd,CAkDA"}
@@ -4,13 +4,37 @@ export interface DialogOptions {
4
4
  modal?: boolean;
5
5
  /** Extra class on the `<dialog>` element. */
6
6
  className?: string;
7
+ /** A wider box (up to 640px) for table-shaped content — the shortcuts list. */
8
+ wide?: boolean;
7
9
  /**
8
10
  * Pin a non-modal dialog's top-right corner just inside this rect (e.g. the
9
11
  * editor's canvas viewport) instead of the screen corner. Re-evaluated on
10
12
  * open + scroll/resize. Return null to fall back to the default position.
13
+ * Hosts should build it with {@link panelAnchor} so every panel shares one
14
+ * description of the free area.
11
15
  */
12
16
  anchor?: () => DOMRect | null;
13
17
  }
18
+ /**
19
+ * Where a host's floating panels (find, symbol, …) may sit: describe it ONCE
20
+ * and hand the result to every {@link Dialog} as its `anchor`.
21
+ *
22
+ * `area` is the region the panel docks into — normally the editor's scroll
23
+ * viewport. `avoid` lists chrome that floats OVER that region's top edge: a
24
+ * tab strip, a menubar/toolbar sheet positioned absolutely across the canvas.
25
+ * The panel then starts below the lowest such element that overlaps the area
26
+ * horizontally, so it never covers a tab, a toolbar or a window-drag strip —
27
+ * which is exactly what happened when each panel guessed at the viewport on
28
+ * its own and the desktop shell's toolbar sheet turned out to be a layer on
29
+ * top of it. Both getters are re-read on every reposition (open, scroll,
30
+ * resize), so panes that mount late or move are fine.
31
+ */
32
+ export interface PanelAnchorOptions {
33
+ area: () => Element | null | undefined;
34
+ avoid?: () => (Element | null | undefined)[];
35
+ }
36
+ /** Build a {@link DialogOptions.anchor} from a {@link PanelAnchorOptions}. */
37
+ export declare function panelAnchor(o: PanelAnchorOptions): () => DOMRect | null;
14
38
  /**
15
39
  * A generic, framework-agnostic dialog — a reusable overlay primitive built on
16
40
  * the native `<dialog>` element (so modal mode gets focus-trapping, `Esc` and a
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../src/lib/dialog.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gFAAgF;IAChF,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC;CAC/B;AAqBD;;;;;;GAMG;AACH,qBAAa,MAAM;IACjB,QAAQ,CAAC,EAAE,EAAE,iBAAiB,CAAC;IAC/B,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAuB;IAC/C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyB;IACxD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAOzB;gBAEU,OAAO,GAAE,aAAkB;IA4CvC,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,gBAAgB;IAKxB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI5B,gCAAgC;IAChC,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAInC,IAAI,IAAI,IAAI;IAUZ,KAAK,IAAI,IAAI;IAIb,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,gFAAgF;IAChF,OAAO,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAKnC,OAAO,IAAI,IAAI;CAKhB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA4C3E"}
1
+ {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../src/lib/dialog.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gFAAgF;IAChF,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC;CAC/B;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC;CAC9C;AAED,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,CAAC,EAAE,kBAAkB,GAAG,MAAM,OAAO,GAAG,IAAI,CAkBvE;AAsBD;;;;;;GAMG;AACH,qBAAa,MAAM;IACjB,QAAQ,CAAC,EAAE,EAAE,iBAAiB,CAAC;IAC/B,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAuB;IAC/C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyB;IACxD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAOzB;gBAEU,OAAO,GAAE,aAAkB;IA6CvC,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,gBAAgB;IAKxB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI5B,gCAAgC;IAChC,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAInC,IAAI,IAAI,IAAI;IAUZ,KAAK,IAAI,IAAI;IAIb,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,gFAAgF;IAChF,OAAO,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAKnC,OAAO,IAAI,IAAI;CAKhB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA4C3E"}
@@ -1,4 +1,4 @@
1
- import type { Collection, Command, Dispatch, EditorChange } from '@shadow-garden/bapbong-contracts';
1
+ import type { Collection, Command, Dispatch, EditorChange, KeybindingRegistry } from '@shadow-garden/bapbong-contracts';
2
2
  /** The editor `run` state type, derived from the {@link Command} contract so
3
3
  * this package needs no direct ProseMirror dependency. */
4
4
  export type EditorStateOf = Parameters<Command['run']>[0];
@@ -19,7 +19,19 @@ export interface EditorHandle {
19
19
  focus(): void;
20
20
  /** Subscribe to editor cycles; returns an unsubscribe. Drives active state. */
21
21
  onChange(cb: (c: EditorChange) => void): () => void;
22
+ /** The editor's keybinding registry — what menu rows and toolbar tooltips
23
+ * label their shortcuts from. Optional so a minimal handle still works. */
24
+ readonly keybindings?: KeybindingRegistry;
22
25
  }
26
+ /** Whether chords should read as ⌘ (the same test the editor's keymap makes
27
+ * to resolve `Mod`). Read once; the platform does not change under us. */
28
+ export declare const IS_MAC: boolean;
29
+ /**
30
+ * The display label of a command's first binding across the given registries
31
+ * (`⇧⌘Z` / `Ctrl+Shift+Z`), or undefined. The editor's registry comes first;
32
+ * a host passes its app registry after it for chords like ⌘F that live there.
33
+ */
34
+ export declare function shortcutLabel(command: string, registries: readonly (KeybindingRegistry | undefined)[]): string | undefined;
23
35
  /** Inject a stylesheet once, keyed by `id` (idempotent across mounts). */
24
36
  export declare function injectStyle(id: string, css: string): void;
25
37
  /** A rectangle to hang a floating panel from — a caret box, a button, or any
@@ -34,4 +46,16 @@ export interface FloatAnchor {
34
46
  * are body-level fixed panels, which is also how they escape the toolbar's
35
47
  * `overflow: hidden` without any container-relative arithmetic. */
36
48
  export declare function placeFloating(el: HTMLElement, anchor: FloatAnchor): void;
49
+ /**
50
+ * Arrow-key navigation over a 2-D grid of focusable cells with a roving
51
+ * tabindex — one cell is tabbable, the arrows move focus, so Tab passes over
52
+ * the whole grid in one stop. Cells get `role="gridcell"`; the caller sets
53
+ * `role="grid"` on the container. Rows may be ragged (the last row of a
54
+ * symbol grid): a move clamps to the target row's last cell. Returns a
55
+ * `focusCell` for the caller to place focus programmatically (initial cell,
56
+ * search results).
57
+ */
58
+ export declare function rovingGrid(cells: HTMLElement[][]): {
59
+ focusCell(r: number, c: number): void;
60
+ };
37
61
  //# sourceMappingURL=internal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/lib/internal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,OAAO,EACP,QAAQ,EACR,YAAY,EACb,MAAM,kCAAkC,CAAC;AAE1C;2DAC2D;AAC3D,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IACvC,yEAAyE;IACzE,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,2BAA2B;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,kEAAkE;IAClE,KAAK,IAAI,IAAI,CAAC;IACd,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CACrD;AAED,0EAA0E;AAC1E,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAMzD;AAED;iDACiD;AACjD,MAAM,WAAW,WAAW;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;oEAGoE;AACpE,wBAAgB,aAAa,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAgBxE"}
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/lib/internal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,kBAAkB,EACnB,MAAM,kCAAkC,CAAC;AAG1C;2DAC2D;AAC3D,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IACvC,yEAAyE;IACzE,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,2BAA2B;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,kEAAkE;IAClE,KAAK,IAAI,IAAI,CAAC;IACd,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IACpD;gFAC4E;IAC5E,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC;CAC3C;AAED;2EAC2E;AAC3E,eAAO,MAAM,MAAM,EAAE,OAGV,CAAC;AAEZ;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,SAAS,CAAC,kBAAkB,GAAG,SAAS,CAAC,EAAE,GACtD,MAAM,GAAG,SAAS,CAOpB;AAED,0EAA0E;AAC1E,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAMzD;AAED;iDACiD;AACjD,MAAM,WAAW,WAAW;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;oEAGoE;AACpE,wBAAgB,aAAa,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAgBxE;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,GAAG;IAClD,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC,CAwCA"}
@@ -1,4 +1,4 @@
1
- import type { Collection, Command } from '@shadow-garden/bapbong-contracts';
1
+ import type { Collection, Command, KeybindingRegistry } from '@shadow-garden/bapbong-contracts';
2
2
  import { type EditorHandle } from './internal.js';
3
3
  /** Run a registry command (and read its active/enabled state). */
4
4
  export interface CommandEntry {
@@ -11,7 +11,13 @@ export interface ActionEntry {
11
11
  run: () => void;
12
12
  isActive?: () => boolean;
13
13
  isEnabled?: () => boolean;
14
+ /** A literal shortcut label ("⌘X") — for actions the browser or OS owns.
15
+ * Prefer `shortcutOf`, which reads the live registries. */
14
16
  shortcut?: string;
17
+ /** The command name whose binding to show as the row's shortcut — looked up
18
+ * in the editor's registry and the extra ones (`MenubarOptions.
19
+ * keybindings`), so the label follows a rebinding. */
20
+ shortcutOf?: string;
15
21
  }
16
22
  /** A nested dropdown. */
17
23
  export interface SubmenuEntry {
@@ -32,6 +38,10 @@ export interface Menu {
32
38
  export interface MenubarOptions {
33
39
  /** Menus to render. Default: a single "Format" menu derived from the registry. */
34
40
  menus?: Menu[];
41
+ /** Registries beyond the editor's own to label shortcuts from — a host's
42
+ * app-level registry (⌘F, ⌘S live there). Labels are refreshed every time
43
+ * a menu opens, so bindings added after mount show too. */
44
+ keybindings?: KeybindingRegistry[];
35
45
  /** Command-name → row label override, merged over the built-in labels. */
36
46
  labels?: Record<string, string>;
37
47
  /** `vertical` stacks the menu titles in a column and opens each dropdown to
@@ -1 +1 @@
1
- {"version":3,"file":"menubar.d.ts","sourceRoot":"","sources":["../../src/lib/menubar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EACL,KAAK,YAAY,EAGlB,MAAM,eAAe,CAAC;AAEvB,kEAAkE;AAClE,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AACD,4EAA4E;AAC5E,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AACD,yBAAyB;AACzB,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,SAAS,EAAE,CAAC;CACtB;AACD,kFAAkF;AAClF,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,WAAW,CAAC;CAC5C;AACD,MAAM,MAAM,SAAS,GACjB,WAAW,GACX,YAAY,GACZ,WAAW,GACX,YAAY,GACZ,WAAW,CAAC;AAEhB,uDAAuD;AACvD,MAAM,WAAW,IAAI;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,SAAS,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,kFAAkF;IAClF,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC;;+EAE2E;IAC3E,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;CACzC;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,IAAI,IAAI,CAAC;CACjB;AAgLD,MAAM,WAAW,WAAW;IAC1B,KAAK,IAAI,IAAI,CAAC;IACd,yEAAyE;IACzE,EAAE,EAAE,WAAW,CAAC;CACjB;AAWD;;+BAE+B;AAC/B,wBAAgB,SAAS,CACvB,OAAO,EAAE,WAAW,EACpB,EAAE,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAC5B,OAAO,CAAC,EAAE,MAAM,IAAI,GACnB,WAAW,CAkDb;AAED,MAAM,WAAW,eAAe;IAC9B;+DAC2D;IAC3D,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;2EAE2E;AAC3E,wBAAgB,QAAQ,CACtB,OAAO,EAAE,SAAS,EAAE,EACpB,EAAE,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAC5B,OAAO,GAAE,eAAoB,GAC5B,WAAW,CAgCb;AAED;mDACmD;AACnD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,CAYlE;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,cAAmB,GAC3B,aAAa,CAsIf"}
1
+ {"version":3,"file":"menubar.d.ts","sourceRoot":"","sources":["../../src/lib/menubar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,OAAO,EACP,kBAAkB,EACnB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,KAAK,YAAY,EAIlB,MAAM,eAAe,CAAC;AAEvB,kEAAkE;AAClE,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AACD,4EAA4E;AAC5E,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC;IAC1B;gEAC4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;2DAEuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AACD,yBAAyB;AACzB,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,SAAS,EAAE,CAAC;CACtB;AACD,kFAAkF;AAClF,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,WAAW,CAAC;CAC5C;AACD,MAAM,MAAM,SAAS,GACjB,WAAW,GACX,YAAY,GACZ,WAAW,GACX,YAAY,GACZ,WAAW,CAAC;AAEhB,uDAAuD;AACvD,MAAM,WAAW,IAAI;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,SAAS,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,kFAAkF;IAClF,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf;;gEAE4D;IAC5D,WAAW,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACnC,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC;;+EAE2E;IAC3E,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;CACzC;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,IAAI,IAAI,CAAC;CACjB;AA6LD,MAAM,WAAW,WAAW;IAC1B,KAAK,IAAI,IAAI,CAAC;IACd,yEAAyE;IACzE,EAAE,EAAE,WAAW,CAAC;CACjB;AAWD;;+BAE+B;AAC/B,wBAAgB,SAAS,CACvB,OAAO,EAAE,WAAW,EACpB,EAAE,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAC5B,OAAO,CAAC,EAAE,MAAM,IAAI,GACnB,WAAW,CAkDb;AAED,MAAM,WAAW,eAAe;IAC9B;+DAC2D;IAC3D,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;2EAE2E;AAC3E,wBAAgB,QAAQ,CACtB,OAAO,EAAE,SAAS,EAAE,EACpB,EAAE,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAC5B,OAAO,GAAE,eAAoB,GAC5B,WAAW,CAkCb;AAED;mDACmD;AACnD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,CAYlE;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,cAAmB,GAC3B,aAAa,CAoJf"}
@@ -0,0 +1,4 @@
1
+ /** Install the shared scrollbar (styles + scroll-activity flagging).
2
+ * Idempotent; returns a disposer for the listener. */
3
+ export declare function installScrollbars(root?: Document): () => void;
4
+ //# sourceMappingURL=scrollbars.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scrollbars.d.ts","sourceRoot":"","sources":["../../src/lib/scrollbars.ts"],"names":[],"mappings":"AAgDA;uDACuD;AACvD,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,QAAmB,GAAG,MAAM,IAAI,CAoBvE"}
@@ -0,0 +1,23 @@
1
+ import type { Command, KeybindingRegistry } from '@shadow-garden/bapbong-contracts';
2
+ /**
3
+ * Help › Keyboard shortcuts — generated from the registries, never typed by
4
+ * hand: every binding the editor answers to and every app-level one the host
5
+ * registered, one row per command, sorted by its title, searchable across
6
+ * command / key / when / source, sortable by column. What the registry
7
+ * dispatches is exactly what this shows, so the two cannot drift.
8
+ */
9
+ export interface ShortcutsSource {
10
+ keybindings: KeybindingRegistry;
11
+ /** Where the command titles come from. */
12
+ commands: {
13
+ get(name: string): Command | undefined;
14
+ };
15
+ }
16
+ export interface ShortcutsDialogOptions {
17
+ /** The editor's registry first, then the host's app registry. */
18
+ sources: ShortcutsSource[];
19
+ title?: string;
20
+ }
21
+ /** Open the dialog. Modal; Esc / ✕ close and destroy it. */
22
+ export declare function openKeyboardShortcutsDialog(options: ShortcutsDialogOptions): void;
23
+ //# sourceMappingURL=shortcuts-dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shortcuts-dialog.d.ts","sourceRoot":"","sources":["../../src/lib/shortcuts-dialog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,kBAAkB,EAEnB,MAAM,kCAAkC,CAAC;AAS1C;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,kBAAkB,CAAC;IAChC,0CAA0C;IAC1C,QAAQ,EAAE;QAAE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAA;KAAE,CAAC;CACtD;AAED,MAAM,WAAW,sBAAsB;IACrC,iEAAiE;IACjE,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAqED,4DAA4D;AAC5D,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,sBAAsB,GAC9B,IAAI,CAgJN"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Insert › Symbol… — Word's dialog, in the editor's own idiom.
3
+ *
4
+ * NON-modal, like Word's: it floats beside the page, the caret stays where it
5
+ * is, and the user inserts as many characters as they like before closing.
6
+ * Two tabs — a grid of curated Unicode symbols by group (Word's is by FONT;
7
+ * this program only ever inserts real Unicode, see symbol-sets.ts) with a
8
+ * recently-used row, a name search and a character-code box; and Word's
9
+ * "Special Characters" list. Insertion goes through `onInsert` — the host
10
+ * runs the `insertText` command and returns focus to the editor — so the
11
+ * dialog knows nothing about editor state.
12
+ *
13
+ * Recents are the host's to keep (a preference, per app): they arrive in
14
+ * `recent` and every change is reported through `onRecentChange`.
15
+ */
16
+ export interface SymbolDialogOptions {
17
+ /** Most-recent-first row to show; usually what the host last persisted. */
18
+ recent?: readonly string[];
19
+ /** Called with the character to insert. */
20
+ onInsert: (char: string) => void;
21
+ /** Called with the new recents row after every insertion. */
22
+ onRecentChange?: (recent: string[]) => void;
23
+ /** Where to float, if the host has an anchor (else the dialog's default). */
24
+ anchor?: () => DOMRect | null;
25
+ }
26
+ export interface SymbolDialogHandle {
27
+ open(): void;
28
+ close(): void;
29
+ destroy(): void;
30
+ readonly isOpen: boolean;
31
+ }
32
+ /** Build the Symbol dialog. Returns a handle; the dialog is created closed. */
33
+ export declare function createSymbolDialog(options: SymbolDialogOptions): SymbolDialogHandle;
34
+ //# sourceMappingURL=symbol-dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbol-dialog.d.ts","sourceRoot":"","sources":["../../src/lib/symbol-dialog.ts"],"names":[],"mappings":"AAcA;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,mBAAmB;IAClC,2EAA2E;IAC3E,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,2CAA2C;IAC3C,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,6DAA6D;IAC7D,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC5C,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,IAAI,IAAI,CAAC;IACb,KAAK,IAAI,IAAI,CAAC;IACd,OAAO,IAAI,IAAI,CAAC;IAChB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAwED,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,mBAAmB,GAC3B,kBAAkB,CA2UpB"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * The toolbar's Ω: a compact symbol picker hanging under the button — the
3
+ * quick path (Word's ribbon gallery of recent symbols), where the Symbol
4
+ * panel (symbol-dialog.ts) is the full one (Word's "More Symbols…").
5
+ *
6
+ * Same construction as the colour picker: a modal `<dialog>` in the top
7
+ * layer (so it opens over other panels), placed under its anchor, dismissed by
8
+ * a click outside, Esc or a scroll. Search box (a name, or a code like
9
+ * `2611`/`U+2611`), the recently-used row, the groups as chips, an 8-column
10
+ * grid, and the selected symbol's name beside a "More symbols…" link. A click
11
+ * on a cell INSERTS at once — and the picker stays open for the next one; it
12
+ * is a picker, not a form.
13
+ */
14
+ export interface SymbolPopoverOptions {
15
+ /** The control the picker hangs from (the toolbar's Ω). */
16
+ anchor: HTMLElement;
17
+ /** Most-recent-first row to show. */
18
+ recent?: readonly string[];
19
+ onInsert: (char: string) => void;
20
+ onRecentChange?: (recent: string[]) => void;
21
+ /** "More symbols…": the host opens the full panel; the picker closes. */
22
+ onMore?: () => void;
23
+ /** Called after the picker closes, for the host to hand focus back. */
24
+ onClose?: () => void;
25
+ }
26
+ /** Open the picker under `anchor`. Returns a close handle. */
27
+ export declare function openSymbolPopover(options: SymbolPopoverOptions): {
28
+ close(): void;
29
+ };
30
+ //# sourceMappingURL=symbol-popover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbol-popover.d.ts","sourceRoot":"","sources":["../../src/lib/symbol-popover.ts"],"names":[],"mappings":"AAYA;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,oBAAoB;IACnC,2DAA2D;IAC3D,MAAM,EAAE,WAAW,CAAC;IACpB,qCAAqC;IACrC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC5C,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AA2CD,8DAA8D;AAC9D,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,oBAAoB,GAAG;IAChE,KAAK,IAAI,IAAI,CAAC;CACf,CAqMA"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * The characters the Symbol dialog offers, and the pure logic around them
3
+ * (recently-used list, code-point parsing) — kept free of the DOM so it is
4
+ * unit-tested where the dialog itself, per repo convention, is checked in the
5
+ * browser.
6
+ *
7
+ * Every entry is a real Unicode character, never a symbol-font PUA code: the
8
+ * document gets `w:t` text that any Word renders (with its own font
9
+ * substitution), and the editor draws it with the run's font backed by the
10
+ * bundled symbol face (SYMBOL_FALLBACK_FAMILY). Curated rather than the whole
11
+ * of Unicode — Word's dialog is a font grid, this is a task grid: the things
12
+ * people reach for in a form, a report, a contract.
13
+ */
14
+ export interface SymbolEntry {
15
+ /** The character (one code point; may be astral). */
16
+ char: string;
17
+ /** Short English name, as the Unicode name reads in a tooltip. */
18
+ name: string;
19
+ }
20
+ export interface SymbolGroup {
21
+ id: string;
22
+ label: string;
23
+ /** One-word label for a chip. */
24
+ short: string;
25
+ entries: SymbolEntry[];
26
+ }
27
+ /** The groups, in dialog order. Ids are stable (persist recents / tests). */
28
+ export declare const SYMBOL_GROUPS: readonly SymbolGroup[];
29
+ /** Word's "Special Characters" tab: typographic characters people cannot
30
+ * type, each with what to type instead where the editor offers a way (an
31
+ * AutoCorrect sequence or a shortcut) — informational until those ship. */
32
+ export interface SpecialCharacter extends SymbolEntry {
33
+ /** How to get it without the dialog, shown beside the name (may be ''). */
34
+ hint: string;
35
+ }
36
+ export declare const SPECIAL_CHARACTERS: readonly SpecialCharacter[];
37
+ /** Every entry the dialog knows, char → name (first group wins on repeats,
38
+ * which only happen where a character legitimately belongs to two groups —
39
+ * the bullet, the check mark). */
40
+ export declare const SYMBOL_NAMES: ReadonlyMap<string, string>;
41
+ /** `U+2611` for ☑ — the code point, upper-case hex, at least four digits. */
42
+ export declare function codePointLabel(char: string): string;
43
+ /** The character a user's "Character code" input names: bare hex (`2611`),
44
+ * `U+2611`, `0x2611`; case-insensitive; surrounding space ignored. Null for
45
+ * anything else, for surrogates, and for code points beyond Unicode. */
46
+ export declare function parseCodePoint(input: string): string | null;
47
+ /** Word keeps a row of the last sixteen. Most-recent first, no repeats. */
48
+ export declare const RECENT_MAX = 16;
49
+ export declare function pushRecent(recent: readonly string[], char: string, max?: number): string[];
50
+ /** Case-insensitive name search across every group; the group order and each
51
+ * group's entry order are kept, so results read like the grid does. */
52
+ export declare function searchSymbols(query: string): SymbolEntry[];
53
+ //# sourceMappingURL=symbol-sets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbol-sets.d.ts","sourceRoot":"","sources":["../../src/lib/symbol-sets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,MAAM,WAAW,WAAW;IAC1B,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAcD,6EAA6E;AAC7E,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,EAuU/C,CAAC;AAEF;;4EAE4E;AAC5E,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;CACd;AAMD,eAAO,MAAM,kBAAkB,EAAE,SAAS,gBAAgB,EAqBzD,CAAC;AAEF;;mCAEmC;AACnC,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAMjD,CAAC;AAEL,6EAA6E;AAC7E,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED;;yEAEyE;AACzE,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQ3D;AAED,2EAA2E;AAC3E,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,wBAAgB,UAAU,CACxB,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,IAAI,EAAE,MAAM,EACZ,GAAG,SAAa,GACf,MAAM,EAAE,CAEV;AAED;wEACwE;AACxE,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE,CAkB1D"}
@@ -67,8 +67,24 @@ export interface ToolbarSplit {
67
67
  /** Called when the user picks a card. */
68
68
  onSelect: (value: string) => void;
69
69
  }
70
- /** A toolbar group entry: a command name (button) or a control (select/colour/split). */
71
- export type ToolbarEntry = string | ToolbarSelect | ToolbarColor | ToolbarSplit;
70
+ /** A plain button that opens something of the host's a picker, a popover —
71
+ * and needs its own element as the anchor. Unlike a command button the
72
+ * toolbar does NOT hand focus back to the editor after the click: whatever
73
+ * opens takes it, and gives it back when it closes. */
74
+ export interface ToolbarButton {
75
+ kind: 'button';
76
+ /** Tooltip + accessible label. */
77
+ title: string;
78
+ /** Text/glyph shown when `svg` is absent. */
79
+ label?: string;
80
+ /** Inline SVG markup (used instead of `label`). */
81
+ svg?: string;
82
+ /** Called with the button element (the anchor for what opens). */
83
+ onClick: (anchor: HTMLElement) => void;
84
+ }
85
+ /** A toolbar group entry: a command name (button) or a control
86
+ * (select/colour/split/button). */
87
+ export type ToolbarEntry = string | ToolbarSelect | ToolbarColor | ToolbarSplit | ToolbarButton;
72
88
  export interface ToolbarOptions {
73
89
  /** Groups rendered as separated clusters — command names (buttons) and/or
74
90
  * controls (selects). Defaults to marks then alignments, from the registry. */
@@ -1 +1 @@
1
- {"version":3,"file":"toolbar.d.ts","sourceRoot":"","sources":["../../src/lib/toolbar.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,aAAa,EAEnB,MAAM,eAAe,CAAC;AAEvB;wCACwC;AACxC,MAAM,WAAW,WAAW;IAC1B,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;wEAEwE;AACxE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,CAAC;IACf,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5C,qEAAqE;IACrE,KAAK,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,MAAM,CAAC;IACxC,0CAA0C;IAC1C,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;wDAGwD;AACxD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,iFAAiF;IACjF,KAAK,EAAE,MAAM,CAAC;IACd;kCAC8B;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,KAAK,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,MAAM,GAAG,IAAI,CAAC;IAC/C,sDAAsD;IACtD,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAC1C;AAED;iFACiF;AACjF,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;qEAEqE;AACrE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,sEAAsE;IACtE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,qEAAqE;IACrE,KAAK,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,MAAM,GAAG,IAAI,CAAC;IAC/C,yCAAyC;IACzC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,yFAAyF;AACzF,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,aAAa,GAAG,YAAY,GAAG,YAAY,CAAC;AAEhF,MAAM,WAAW,cAAc;IAC7B;oFACgF;IAChF,MAAM,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC;IAC1B,wEAAwE;IACxE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CACrC;AAED,+CAA+C;AAC/C,MAAM,WAAW,aAAa;IAC5B,OAAO,IAAI,IAAI,CAAC;CACjB;AAiHD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,GAC5B,MAAM,EAAE,EAAE,CAKZ;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,cAAmB,GAC3B,aAAa,CAuSf"}
1
+ {"version":3,"file":"toolbar.d.ts","sourceRoot":"","sources":["../../src/lib/toolbar.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shadow-garden/bapbong-ui",
3
- "version": "0.13.2",
3
+ "version": "0.14.0",
4
4
  "description": "bapbong — framework-agnostic editor UI (toolbar/menubar) that mounts into a host element and binds to editor.commands",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -56,6 +56,6 @@
56
56
  }
57
57
  },
58
58
  "dependencies": {
59
- "@shadow-garden/bapbong-contracts": "^0.12.2"
59
+ "@shadow-garden/bapbong-contracts": "^0.13.0"
60
60
  }
61
61
  }