@dineug/erd-editor 4.0.0 → 4.1.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 (102) hide show
  1. package/README.md +93 -280
  2. package/dist/components/erd/canvas/DiffOutline.template.d.ts +14 -0
  3. package/dist/components/erd/canvas/sceneTokens.d.ts +2 -0
  4. package/dist/components/erd/diff-viewer/diff-tree/DiffTree.d.ts +19 -0
  5. package/dist/components/erd/diff-viewer/diff-tree/DiffTree.styles.d.ts +12 -0
  6. package/dist/components/erd/diff-viewer/diff-tree/diffTreeModel.d.ts +49 -0
  7. package/dist/components/erd/diff-viewer/diff.d.ts +21 -19
  8. package/dist/components/erd/draw-target/placePill.d.ts +1 -3
  9. package/dist/components/erd/floating-toolbar/FloatingToolbar.d.ts +7 -4
  10. package/dist/components/erd/goToErdTarget.d.ts +40 -16
  11. package/dist/components/erd/relationshipHighlight.d.ts +18 -0
  12. package/dist/components/erd/welcome-screen/welcome-hints/WelcomeHints.styles.d.ts +5 -0
  13. package/dist/components/erd/welcome-screen/welcomeLayout.d.ts +7 -3
  14. package/dist/components/erd-editor/ErdEditor.styles.d.ts +4 -0
  15. package/dist/components/erd-editor/viewportLayout.d.ts +52 -0
  16. package/dist/components/explorer/Explorer.d.ts +12 -0
  17. package/dist/components/explorer/explorer-controller/ExplorerController.d.ts +11 -0
  18. package/dist/components/explorer/explorer-panel/ExplorerPanel.d.ts +14 -0
  19. package/dist/components/explorer/explorer-panel/ExplorerPanel.styles.d.ts +13 -0
  20. package/dist/components/explorer/explorer-search/ExplorerSearch.d.ts +12 -0
  21. package/dist/components/explorer/explorer-search/ExplorerSearch.styles.d.ts +13 -0
  22. package/dist/components/explorer/explorerCommands.d.ts +28 -0
  23. package/dist/components/explorer/explorerNavigation.d.ts +14 -0
  24. package/dist/components/explorer/explorerSearch.d.ts +71 -0
  25. package/dist/components/explorer/explorerTree.d.ts +90 -0
  26. package/dist/components/explorer/explorerView.d.ts +54 -0
  27. package/dist/components/{find-replace → explorer}/matchTarget.d.ts +5 -7
  28. package/dist/components/primitives/icon/icons.d.ts +8 -4
  29. package/dist/components/primitives/sash/Sash.d.ts +1 -0
  30. package/dist/components/primitives/tree/Tree.d.ts +30 -0
  31. package/dist/components/primitives/tree/Tree.styles.d.ts +5 -0
  32. package/dist/components/primitives/tree/treeModel.d.ts +42 -0
  33. package/dist/components/quick-search/QuickSearch.styles.d.ts +1 -0
  34. package/dist/components/quick-search/actions.d.ts +0 -3
  35. package/dist/components/quick-search/paletteList.d.ts +7 -0
  36. package/dist/components/quick-search/scopedActions.d.ts +5 -11
  37. package/dist/components/theme-builder/ThemeBuilder.styles.d.ts +3 -3
  38. package/dist/components/toolbar/Toolbar.styles.d.ts +0 -1
  39. package/dist/constants/layout.d.ts +7 -1
  40. package/dist/constants/open.d.ts +0 -1
  41. package/dist/engine/index.js +7 -7
  42. package/dist/erd-editor.umd.js +1008 -786
  43. package/dist/i18n/messages/ar-SA.d.ts +41 -15
  44. package/dist/i18n/messages/de-DE.d.ts +41 -11
  45. package/dist/i18n/messages/en/code.d.ts +0 -1
  46. package/dist/i18n/messages/en/common.d.ts +0 -1
  47. package/dist/i18n/messages/en/explorer.d.ts +37 -0
  48. package/dist/i18n/messages/en/findReplace.d.ts +5 -1
  49. package/dist/i18n/messages/en/index.d.ts +42 -12
  50. package/dist/i18n/messages/en/palette.d.ts +1 -7
  51. package/dist/i18n/messages/en/shortcuts.d.ts +3 -1
  52. package/dist/i18n/messages/en/toolbar.d.ts +0 -1
  53. package/dist/i18n/messages/es-ES.d.ts +41 -12
  54. package/dist/i18n/messages/eu-ES.d.ts +41 -11
  55. package/dist/i18n/messages/fa-IR.d.ts +41 -11
  56. package/dist/i18n/messages/fr-FR.d.ts +41 -12
  57. package/dist/i18n/messages/he-IL.d.ts +41 -12
  58. package/dist/i18n/messages/id-ID.d.ts +41 -10
  59. package/dist/i18n/messages/it-IT.d.ts +41 -12
  60. package/dist/i18n/messages/ja-JP.d.ts +41 -10
  61. package/dist/i18n/messages/ko-KR.d.ts +41 -10
  62. package/dist/i18n/messages/nl-NL.d.ts +41 -11
  63. package/dist/i18n/messages/pl-PL.d.ts +41 -13
  64. package/dist/i18n/messages/pt-BR.d.ts +41 -12
  65. package/dist/i18n/messages/pt-PT.d.ts +41 -12
  66. package/dist/i18n/messages/ro-RO.d.ts +41 -12
  67. package/dist/i18n/messages/ru-RU.d.ts +41 -13
  68. package/dist/i18n/messages/sk-SK.d.ts +41 -13
  69. package/dist/i18n/messages/sl-SI.d.ts +41 -13
  70. package/dist/i18n/messages/sv-SE.d.ts +41 -11
  71. package/dist/i18n/messages/tr-TR.d.ts +41 -11
  72. package/dist/i18n/messages/uk-UA.d.ts +41 -13
  73. package/dist/i18n/messages/zh-CN.d.ts +41 -10
  74. package/dist/i18n/messages/zh-TW.d.ts +41 -10
  75. package/dist/index.js +21553 -18898
  76. package/dist/{loadValue-B3EFSe9k.js → loadValue-BKvXDYoC.js} +1651 -1651
  77. package/dist/peer/index.js +23 -23
  78. package/dist/shared-store-2IUOt99m.js +1341 -0
  79. package/dist/styles/scrollbar.styles.d.ts +1 -1
  80. package/dist/themes/tokens.d.ts +9 -4
  81. package/dist/utils/diff/compareEntities.d.ts +39 -0
  82. package/dist/utils/diff/diffDocuments.d.ts +12 -0
  83. package/dist/utils/diff/index.d.ts +5 -0
  84. package/dist/utils/diff/pairEntities.d.ts +41 -0
  85. package/dist/utils/diff/types.d.ts +77 -0
  86. package/dist/utils/emitter.d.ts +2 -8
  87. package/dist/utils/find-replace/findMatches.d.ts +25 -12
  88. package/dist/utils/find-replace/matcher.d.ts +2 -0
  89. package/dist/utils/find-replace/present.d.ts +3 -2
  90. package/dist/utils/find-replace/preserveCase.d.ts +10 -0
  91. package/dist/utils/keyboard-shortcut/index.d.ts +11 -3
  92. package/dist/utils/takeover.d.ts +6 -0
  93. package/dist/utils/virtualRange.d.ts +15 -0
  94. package/dist/workers/exportPng.shared-worker.js +29 -29
  95. package/package.json +4 -4
  96. package/dist/components/erd/diff-viewer/tree-viewer/TreeViewer.d.ts +0 -12
  97. package/dist/components/erd/diff-viewer/tree-viewer/TreeViewer.styles.d.ts +0 -6
  98. package/dist/components/find-replace/FindReplace.d.ts +0 -13
  99. package/dist/components/find-replace/FindReplace.styles.d.ts +0 -27
  100. package/dist/components/find-replace/panelLayout.d.ts +0 -20
  101. package/dist/shared-store-fUggY7sI.js +0 -1341
  102. /package/dist/components/{find-replace → explorer}/fieldIcon.d.ts +0 -0
@@ -0,0 +1,54 @@
1
+ import { RxStore } from '../../engine/rx-store';
2
+ import { FieldOrder, FindField, FindMatch } from '../../utils/find-replace';
3
+ /** The folder the tree shows open as the Explorer first opens. */
4
+ export declare const TABLES_FOLDER_ID = "f:tables";
5
+ export type ExplorerView = {
6
+ open: boolean;
7
+ /** Set by an opening while zen mode is on, which shows the panel without leaving zen. */
8
+ zenReveal: boolean;
9
+ width: number;
10
+ /** Replaced whole on every change: r-html tracks no Set, Map or frozen value. */
11
+ expanded: Record<string, true>;
12
+ /** The row the keyboard is on, kept by node id so a row added before it moves nothing. */
13
+ activeId: string | null;
14
+ query: string;
15
+ replacement: string;
16
+ matchCase: boolean;
17
+ wholeWord: boolean;
18
+ regex: boolean;
19
+ preserveCase: boolean;
20
+ /** Replaced whole on every change, a copy of the frozen default to begin with. */
21
+ fields: FindField[];
22
+ /** Whether the Replace row is unfolded, and the row of scopes past the three dots. */
23
+ replaceOpen: boolean;
24
+ scopesOpen: boolean;
25
+ /** The match the canvas was last taken to, by its place in the matches; -1 for none. */
26
+ current: number;
27
+ status: PressStatus | null;
28
+ matches: FindMatch[];
29
+ error: 'empty' | 'invalid' | null;
30
+ /** The walk's order: by name, or the one a run of Replace presses began with. */
31
+ order: FieldOrder | null;
32
+ /** The folders and rows folded while a search shows, every other one open. */
33
+ searchCollapsed: Record<string, true>;
34
+ /** Raised to ask the find field for the keyboard; dropped unless a drawn panel takes it. */
35
+ focusRequest: number;
36
+ };
37
+ /**
38
+ * What the last press of Replace or Replace All said, kept as what it means
39
+ * rather than as text, so a switch of language reads it again in the new one.
40
+ */
41
+ export type PressStatus = 'noMoreMatches' | 'noChanges' | {
42
+ replaced: number;
43
+ };
44
+ /**
45
+ * The Explorer's own state, one per editor, kept until the element goes:
46
+ * never in the store, the file, the history or a peer, so it survives a tab
47
+ * change and a reload of the document alike.
48
+ */
49
+ export declare function explorerViewOf(store: RxStore): ExplorerView;
50
+ /** Where the tree is scrolled to, unobserved, so a scroll renders nothing outside the tree. */
51
+ export declare function explorerScrollOf(store: RxStore): {
52
+ top: number;
53
+ };
54
+ //# sourceMappingURL=explorerView.d.ts.map
@@ -5,22 +5,20 @@ import { RootState } from '../../engine/state';
5
5
  import { FindMatch } from '../../utils/find-replace';
6
6
  /**
7
7
  * Where on the ERD canvas the text of a match is edited: its table, its column
8
- * cell or its memo, with the match itself, which a cell too wide for the
9
- * canvas is scrolled to by.
8
+ * cell, its memo or its table group, with the match itself, which a cell too
9
+ * wide for the canvas is scrolled to by. An index goes to the table it is on.
10
10
  */
11
11
  export declare function toErdTarget(match: FindMatch): ErdTarget;
12
12
  /**
13
13
  * The state as a jump measures it once a replacement is in: the field holding
14
- * the new text at the width its reducer gives it. A memo's text sizes nothing,
15
- * and a table or column the document no longer holds is left as it is.
14
+ * the new text at the width its reducer gives it. A memo, an index or a group
15
+ * name sizes no table, and one the document no longer holds is left as it is.
16
16
  */
17
17
  export declare function withReplacement(state: RootState, { toWidth }: EngineContext, { field, id, tableId }: FindMatch, value: string): RootState;
18
18
  /**
19
19
  * The jump Replace makes to the next match, in the replacement's own dispatch.
20
20
  * A batch is read against the state before it, so the jump measures the table
21
21
  * the replacement widens or narrows from what the replacement writes.
22
- *
23
- * @param covered How far in from the left edge the panel hides the canvas.
24
22
  */
25
- export declare const showNextMatchAction$: (next: FindMatch, replaced: FindMatch, value: string, covered: number) => GeneratorAction;
23
+ export declare const showNextMatchAction$: (next: FindMatch, replaced: FindMatch, value: string) => GeneratorAction;
26
24
  //# sourceMappingURL=matchTarget.d.ts.map
@@ -12,22 +12,25 @@ declare const LUCIDE_ICON: {
12
12
  braces: IconNode;
13
13
  brackets: IconNode;
14
14
  'case-sensitive': IconNode;
15
+ 'case-upper': IconNode;
15
16
  check: IconNode;
16
17
  'chevron-down': IconNode;
17
18
  'chevron-right': IconNode;
19
+ 'chevrons-down-up': IconNode;
18
20
  code: IconNode;
19
- 'columns-2': IconNode;
20
21
  contrast: IconNode;
21
22
  copy: IconNode;
22
23
  database: IconNode;
23
- diff: IconNode;
24
24
  download: IconNode;
25
+ ellipsis: IconNode;
25
26
  'external-link': IconNode;
26
27
  eye: IconNode;
27
28
  'file-diff': IconNode;
28
29
  'file-image': IconNode;
29
30
  'file-input': IconNode;
30
31
  'file-output': IconNode;
32
+ folder: IconNode;
33
+ 'folder-open': IconNode;
31
34
  fullscreen: IconNode;
32
35
  'grip-vertical': IconNode;
33
36
  group: IconNode;
@@ -36,9 +39,12 @@ declare const LUCIDE_ICON: {
36
39
  'key-round': IconNode;
37
40
  languages: IconNode;
38
41
  link: IconNode;
42
+ list: IconNode;
43
+ 'list-tree': IconNode;
39
44
  'loader-circle': IconNode;
40
45
  lock: IconNode;
41
46
  'lock-open': IconNode;
47
+ logs: IconNode;
42
48
  maximize: IconNode;
43
49
  'message-square': IconNode;
44
50
  minimize: IconNode;
@@ -62,14 +68,12 @@ declare const LUCIDE_ICON: {
62
68
  'rotate-ccw-clock': IconNode;
63
69
  search: IconNode;
64
70
  settings: IconNode;
65
- 'settings-2': IconNode;
66
71
  'share-2': IconNode;
67
72
  spline: IconNode;
68
73
  'sticky-note': IconNode;
69
74
  sun: IconNode;
70
75
  'table-2': IconNode;
71
76
  'table-properties': IconNode;
72
- 'text-search': IconNode;
73
77
  'triangle-alert': IconNode;
74
78
  'undo-2': IconNode;
75
79
  ungroup: IconNode;
@@ -22,6 +22,7 @@ export type SashProps = {
22
22
  left?: number;
23
23
  onMove?: (dragMove: DragMove) => void;
24
24
  onMousedown?: (event: MouseEvent) => void;
25
+ onDblclick?: (event: MouseEvent) => void;
25
26
  };
26
27
  declare const Sash: FC<SashProps>;
27
28
  export default Sash;
@@ -0,0 +1,30 @@
1
+ import { DOMTemplateLiterals, FC } from '@dineug/r-html';
2
+ import { TreeRow } from './treeModel';
3
+ export declare const TREE_ROW_HEIGHT = 22;
4
+ export declare const TREE_OVERSCAN = 8;
5
+ export type TreeProps<T = any> = {
6
+ rows: ReadonlyArray<TreeRow<T>>;
7
+ /** The row the keyboard is on, named to a reader by aria-activedescendant. */
8
+ activeId: string | null;
9
+ /** The row a host marks as the current one, such as the match it jumped to. */
10
+ currentId?: string | null;
11
+ /** Scrolls this row into view each time a different id arrives; a null between two arrivals of one id scrolls it again. */
12
+ revealId?: string | null;
13
+ label: string;
14
+ dir?: 'ltr' | 'rtl';
15
+ /** Read once as the tree mounts, so a scroll position kept outside comes back. */
16
+ getScrollTop: () => number;
17
+ onScroll?: (top: number) => void;
18
+ onToggle?: (id: string, expanded: boolean) => void;
19
+ onActivate?: (row: TreeRow<T>) => void;
20
+ onActiveChange?: (id: string) => void;
21
+ renderRow: (row: TreeRow<T>) => DOMTemplateLiterals;
22
+ };
23
+ /**
24
+ * A virtualized tree with fixed-height rows. It renders the rows in view, the
25
+ * overscan and the active row, answers the tree keys and leaves every policy to
26
+ * its host: what a row shows, what activating one does, Escape and the chords.
27
+ */
28
+ declare const Tree: FC<TreeProps>;
29
+ export default Tree;
30
+ //# sourceMappingURL=Tree.d.ts.map
@@ -0,0 +1,5 @@
1
+ export declare const root: import('@dineug/r-html').CSSTemplateLiterals;
2
+ export declare const space: import('@dineug/r-html').CSSTemplateLiterals;
3
+ export declare const row: import('@dineug/r-html').CSSTemplateLiterals;
4
+ export declare const twisty: import('@dineug/r-html').CSSTemplateLiterals;
5
+ //# sourceMappingURL=Tree.styles.d.ts.map
@@ -0,0 +1,42 @@
1
+ /**
2
+ * One node of a tree a host builds. Its children are asked for only while it
3
+ * is expanded, so a host can hand over a large document without building rows
4
+ * for what stays folded.
5
+ */
6
+ export type TreeNode<T = unknown> = {
7
+ id: string;
8
+ hasChildren: boolean;
9
+ children: () => ReadonlyArray<TreeNode<T>>;
10
+ data: T;
11
+ };
12
+ /** A node as the tree lays it out: its depth and its place among its siblings. */
13
+ export type TreeRow<T = unknown> = {
14
+ node: TreeNode<T>;
15
+ /** One for a root. */
16
+ level: number;
17
+ setSize: number;
18
+ /** One for the first sibling. */
19
+ posInSet: number;
20
+ expanded: boolean;
21
+ parentId: string | null;
22
+ };
23
+ export type ExpandedIds = Readonly<Record<string, true>>;
24
+ /** The rows a tree shows: every root, and the children of each expanded node, depth first. */
25
+ export declare function flattenTree<T>(roots: ReadonlyArray<TreeNode<T>>, expanded: ExpandedIds): TreeRow<T>[];
26
+ /** What a key asks of the tree: move the active row, or fold or unfold one. */
27
+ export type TreeMove = {
28
+ type: 'focus';
29
+ id: string;
30
+ index: number;
31
+ } | {
32
+ type: 'toggle';
33
+ id: string;
34
+ expanded: boolean;
35
+ };
36
+ /**
37
+ * Reads a tree key the way the WAI-ARIA tree pattern does. Up and Down step,
38
+ * Home and End go to either end, the inline end unfolds or steps into the
39
+ * first child and the inline start folds or steps out, mirrored right to left.
40
+ */
41
+ export declare function moveFocus<T>(rows: ReadonlyArray<TreeRow<T>>, activeId: string | null, key: string, dir?: 'ltr' | 'rtl'): TreeMove | null;
42
+ //# sourceMappingURL=treeModel.d.ts.map
@@ -8,6 +8,7 @@ export declare const hintItem: import('@dineug/r-html').CSSTemplateLiterals;
8
8
  export declare const empty: import('@dineug/r-html').CSSTemplateLiterals;
9
9
  export declare const prefix: import('@dineug/r-html').CSSTemplateLiterals;
10
10
  export declare const list: import('@dineug/r-html').CSSTemplateLiterals;
11
+ export declare const space: import('@dineug/r-html').CSSTemplateLiterals;
11
12
  export declare const action: import('@dineug/r-html').CSSTemplateLiterals;
12
13
  export declare const icon: import('@dineug/r-html').CSSTemplateLiterals;
13
14
  export declare const name: import('@dineug/r-html').CSSTemplateLiterals;
@@ -5,7 +5,6 @@ import { LocaleOption } from '../../i18n/locales';
5
5
  import { LabeledMenu } from '../../i18n/menuLabel';
6
6
  import { I18n, PlainMessageKey } from '../../i18n/translate';
7
7
  import { AppearanceOption } from '../../themes/radix-ui-theme';
8
- import { FindReplaceQuery } from '../../utils/emitter';
9
8
  import { FindMatch } from '../../utils/find-replace';
10
9
  export type Action = {
11
10
  icon?: DOMTemplateLiterals | null;
@@ -65,8 +64,6 @@ export declare function createScopeActions(app: AppContext, i18n?: I18n, prefere
65
64
  export declare function createPreferenceActions(i18n: I18n, { appearance, locale }: PalettePreferences): Action[];
66
65
  /** The row for one field a search found, saying where it is, which stands the reader on it when chosen. */
67
66
  export declare function createMatchAction(state: RootState, match: FindMatch, i18n?: I18n): Action;
68
- /** The row handing a search to Find and Replace, named with the count the panel opens on. */
69
- export declare function createShowAllAction(count: number, payload: FindReplaceQuery, i18n?: I18n): Action;
70
67
  /** The five tabs the Tab row opens, each but the one shown. */
71
68
  export declare function createTabActions(i18n?: I18n): Action[];
72
69
  export {};
@@ -0,0 +1,7 @@
1
+ /** The height of one palette row, which the list lays out every row at. */
2
+ export declare const PALETTE_ROW_HEIGHT = 45;
3
+ /** The tallest the list stands before it scrolls. */
4
+ export declare const PALETTE_LIST_MAX_HEIGHT = 400;
5
+ /** How tall the list stands for so many rows: all of them, up to its tallest. */
6
+ export declare const paletteListHeight: (count: number) => number;
7
+ //# sourceMappingURL=paletteList.d.ts.map
@@ -3,8 +3,6 @@ import { I18n } from '../../i18n/translate';
3
3
  import { FindField } from '../../utils/find-replace';
4
4
  import { Action } from './actions';
5
5
  import { PaletteQuery, PaletteScope } from './paletteQuery';
6
- /** How many rows a prefixed list shows, few enough to draw at once. */
7
- export declare const SCOPED_ACTION_LIMIT = 100;
8
6
  /** What the colon searches: the free text, never a name. */
9
7
  export declare const TEXT_FIELDS: FindField[];
10
8
  /**
@@ -19,16 +17,12 @@ export declare function scopeBase(actions: Action[], scope: PaletteScope | null)
19
17
  * read from the document for the columns, the free text and the help.
20
18
  */
21
19
  export declare function paletteRows(app: AppContext, found: Action[], { scope, keyword, table }: PaletteQuery, i18n?: I18n): Action[];
20
+ /** The table rows the keyword fuzzes to, every one, those holding it as typed or by its Hangul letters first. */
21
+ export declare function rankTableActions(found: Action[], keyword: string): Action[];
22
22
  /**
23
- * The table rows the keyword fuzzes to, those holding it as typed or by its
24
- * Hangul letters first, up to the scoped limit, past which a table whose name
25
- * the panel finds it in hands the search to Find and Replace over the names.
26
- */
27
- export declare function rankTableActions(app: AppContext, found: Action[], keyword: string, i18n?: I18n): Action[];
28
- /**
29
- * One row a field of the kinds given holding the keyword, Hangul letters too,
30
- * or every column or text, up to the scoped limit, past which one holding it as
31
- * typed hands it to Find and Replace over those kinds, without the table part.
23
+ * One row for each field of the kinds given holding the keyword, Hangul letters
24
+ * too, or for every column or text that is not empty while there is none, the
25
+ * table part narrowing a column search; the list draws only the rows in view.
32
26
  */
33
27
  export declare function createFieldActions(app: AppContext, fields: FindField[], keyword: string, table?: string | null, i18n?: I18n): Action[];
34
28
  /** The prefixes as rows, each typing its character into the input when chosen; a keyword fuzzes them. */
@@ -1,7 +1,7 @@
1
1
  /**
2
- * A panel placed over whichever tab is up, padded as Find and Replace is. The
3
- * tab wrapper raises no stacking context, so a raised descendant would paint
4
- * over an unraised sibling; the same step later in the root keeps this on top.
2
+ * A panel placed over whichever tab is up. The tab wrapper raises no stacking
3
+ * context, so a raised descendant would paint over an unraised sibling; the
4
+ * same step later in the root keeps this on top.
5
5
  */
6
6
  export declare const root: import('@dineug/r-html').CSSTemplateLiterals;
7
7
  export declare const header: import('@dineug/r-html').CSSTemplateLiterals;
@@ -1,5 +1,4 @@
1
1
  export declare const root: import('@dineug/r-html').CSSTemplateLiterals;
2
2
  export declare const vertical: import('@dineug/r-html').CSSTemplateLiterals;
3
3
  export declare const menu: import('@dineug/r-html').CSSTemplateLiterals;
4
- export declare const tableCount: import('@dineug/r-html').CSSTemplateLiterals;
5
4
  //# sourceMappingURL=Toolbar.styles.d.ts.map
@@ -141,7 +141,13 @@ export declare const TOOLBAR_DATABASE_NAME_WIDTH = 150;
141
141
  export declare const TABLE_PROPERTIES_BODY_PADDING = 12;
142
142
  /** How many rows the Table Properties index order shows before it scrolls the rest. */
143
143
  export declare const INDEX_ORDER_MAX_ROWS = 3;
144
- export declare const DIFF_TREE_WIDTH = 200;
144
+ /** The Explorer's width as it first opens, and the width a double press on its edge gives back. */
145
+ export declare const EXPLORER_WIDTH = 260;
146
+ /** The narrowest and the widest a drag on the Explorer's edge sets it; narrower than the least, it hides. */
147
+ export declare const EXPLORER_MIN_WIDTH = 200;
148
+ export declare const EXPLORER_MAX_WIDTH = 480;
149
+ /** The least of the canvas the Explorer leaves beside it, whatever its width asks. */
150
+ export declare const EXPLORER_CANVAS_MIN_WIDTH = 320;
145
151
  /** The width of the options panel beside the code, on the Schema SQL and Code Generator tabs. */
146
152
  export declare const SCHEMA_SQL_PANEL_WIDTH = 300;
147
153
  /** An editor narrower than this opens the Schema SQL and Code Generator tabs with their panels folded away. */
@@ -7,7 +7,6 @@ export declare const Open: {
7
7
  readonly localePicker: "localePicker";
8
8
  readonly diffViewer: "diffViewer";
9
9
  readonly timeTravel: "timeTravel";
10
- readonly findReplace: "findReplace";
11
10
  readonly exportImage: "exportImage";
12
11
  readonly mapColumns: "mapColumns";
13
12
  };
@@ -1,18 +1,18 @@
1
- import { $ as e, Bo as t, Jn as n, c as r, ds as i, mn as a, n as o, ps as s, r as c, t as l, u, v as d, y as f } from "../loadValue-B3EFSe9k.js";
1
+ import { $ as e, Jn as t, Vo as n, c as r, fs as i, mn as a, ms as o, n as s, r as c, t as l, u, v as d, y as f } from "../loadValue-BKvXDYoC.js";
2
2
  import { Observable as p, Subject as m, debounceTime as h, map as g } from "rxjs";
3
3
  import { omit as _ } from "es-toolkit";
4
4
  //#region src/engine/replication-store.ts
5
- var v = t(f), y = { change: "change" };
6
- function b(t) {
5
+ var v = n(f), y = { change: "change" };
6
+ function b(n) {
7
7
  let b = /* @__PURE__ */ new Set(), x = u({
8
- ...t,
8
+ ...n,
9
9
  routes: !1
10
10
  }), { clock: S } = x, C = c(x, !1);
11
- C.dispatchSync(n({
11
+ C.dispatchSync(t({
12
12
  width: 0,
13
13
  height: 0
14
14
  }));
15
- let w = o(C), T = new m(), E = new p((e) => C.subscribe((t) => e.next(t))).pipe(r(f), h(200)), D = /* @__PURE__ */ new Set(), O = null, k = (e) => (D.has(e) || D.add(e), () => {
15
+ let w = s(C), T = new m(), E = new p((e) => C.subscribe((t) => e.next(t))).pipe(r(f), h(200)), D = /* @__PURE__ */ new Set(), O = null, k = (e) => (D.has(e) || D.add(e), () => {
16
16
  D.delete(e);
17
17
  }), A = (e, t) => {
18
18
  D.forEach((n) => {
@@ -39,7 +39,7 @@ function b(t) {
39
39
  return i(C.state);
40
40
  },
41
41
  get runtimeValue() {
42
- return s(C.state);
42
+ return o(C.state);
43
43
  },
44
44
  on: k,
45
45
  setInitialValue: j,