@formicoidea/labre-core 0.31.0 → 0.32.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.
- package/dist/_pkgs/affine-block-callout/callout-block.d.ts +6 -0
- package/dist/_pkgs/affine-block-callout/callout-block.js +25 -3
- package/dist/_pkgs/affine-block-callout/callout-keymap.js +59 -19
- package/dist/_pkgs/affine-block-callout/commands/callout-to-paragraph.d.ts +20 -0
- package/dist/_pkgs/affine-block-callout/commands/callout-to-paragraph.js +60 -0
- package/dist/_pkgs/affine-block-callout/commands/split-callout.d.ts +17 -0
- package/dist/_pkgs/affine-block-callout/commands/split-callout.js +42 -0
- package/dist/_pkgs/affine-block-callout/configs/slash-menu.js +9 -6
- package/dist/_pkgs/affine-block-callout/emoji-margin.d.ts +9 -0
- package/dist/_pkgs/affine-block-callout/emoji-margin.js +36 -0
- package/dist/_pkgs/affine-block-callout/emoji-menu.d.ts +5 -1
- package/dist/_pkgs/affine-block-callout/emoji-menu.js +5 -0
- package/dist/_pkgs/affine-block-code/code-block.d.ts +14 -0
- package/dist/_pkgs/affine-block-code/code-block.js +44 -6
- package/dist/_pkgs/affine-block-code/code-toolbar/components/code-toolbar.d.ts +2 -0
- package/dist/_pkgs/affine-block-code/code-toolbar/components/code-toolbar.js +23 -14
- package/dist/_pkgs/affine-block-code/code-toolbar/components/more-menu.d.ts +16 -0
- package/dist/_pkgs/affine-block-code/code-toolbar/components/more-menu.js +93 -0
- package/dist/_pkgs/affine-block-code/code-toolbar/config.js +52 -5
- package/dist/_pkgs/affine-block-code/effects.d.ts +2 -0
- package/dist/_pkgs/affine-block-code/effects.js +2 -0
- package/dist/_pkgs/affine-block-code/highlight/affine-code-unit.js +6 -1
- package/dist/_pkgs/affine-block-code/index.d.ts +1 -0
- package/dist/_pkgs/affine-block-code/index.js +1 -0
- package/dist/_pkgs/affine-block-code/line-numbers.d.ts +25 -0
- package/dist/_pkgs/affine-block-code/line-numbers.js +27 -0
- package/dist/_pkgs/affine-block-code/styles.js +31 -0
- package/dist/_pkgs/affine-block-data-view/data-view-block.js +1 -0
- package/dist/_pkgs/affine-block-database/components/title/index.js +4 -1
- package/dist/_pkgs/affine-block-database/configs/slash-menu.js +28 -1
- package/dist/_pkgs/affine-block-database/database-block.js +13 -0
- package/dist/_pkgs/affine-block-database/properties/paste-url.d.ts +24 -0
- package/dist/_pkgs/affine-block-database/properties/paste-url.js +98 -0
- package/dist/_pkgs/affine-block-database/properties/rich-text/cell-renderer.js +9 -19
- package/dist/_pkgs/affine-block-database/properties/title/text.js +20 -25
- package/dist/_pkgs/affine-block-database/views/index.js +1 -0
- package/dist/_pkgs/affine-block-edgeless-text/edgeless-text-block.js +10 -0
- package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/config.d.ts +3 -0
- package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/config.js +48 -1
- package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/font-size.d.ts +17 -0
- package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/font-size.js +24 -0
- package/dist/_pkgs/affine-block-embed-doc/common/doc-trashed.d.ts +9 -0
- package/dist/_pkgs/affine-block-embed-doc/common/doc-trashed.js +10 -0
- package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/embed-linked-doc-block.js +8 -4
- package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/embed-synced-doc-block.d.ts +4 -0
- package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/embed-synced-doc-block.js +22 -3
- package/dist/_pkgs/affine-block-frame/frame-manager.d.ts +13 -0
- package/dist/_pkgs/affine-block-frame/frame-manager.js +32 -2
- package/dist/_pkgs/affine-block-latex/styles.js +6 -1
- package/dist/_pkgs/affine-block-note/note-edgeless-block.d.ts +9 -0
- package/dist/_pkgs/affine-block-note/note-edgeless-block.js +29 -1
- package/dist/_pkgs/affine-block-root/commands/pivot-commands.d.ts +37 -0
- package/dist/_pkgs/affine-block-root/commands/pivot-commands.js +168 -0
- package/dist/_pkgs/affine-block-root/commands/reading-commands.d.ts +23 -0
- package/dist/_pkgs/affine-block-root/commands/reading-commands.js +107 -0
- package/dist/_pkgs/affine-block-root/commands/tag-commands.d.ts +47 -0
- package/dist/_pkgs/affine-block-root/commands/tag-commands.js +159 -0
- package/dist/_pkgs/affine-block-root/configs/toolbar.d.ts +1 -0
- package/dist/_pkgs/affine-block-root/edgeless/configs/toolbar/more.js +9 -2
- package/dist/_pkgs/affine-block-root/edgeless/configs/toolbar/render-linked-doc.js +1 -1
- package/dist/_pkgs/affine-block-root/edgeless/edgeless-keyboard.js +26 -1
- package/dist/_pkgs/affine-block-root/edgeless/edgeless-root-block.js +11 -2
- package/dist/_pkgs/affine-block-root/edgeless/edgeless-root-service.js +14 -0
- package/dist/_pkgs/affine-block-root/edgeless/index.d.ts +1 -0
- package/dist/_pkgs/affine-block-root/edgeless/index.js +1 -0
- package/dist/_pkgs/affine-block-root/edgeless/reserved-keys.d.ts +21 -0
- package/dist/_pkgs/affine-block-root/edgeless/reserved-keys.js +34 -0
- package/dist/_pkgs/affine-block-root/edgeless/utils/clone-utils.d.ts +7 -1
- package/dist/_pkgs/affine-block-root/edgeless/utils/clone-utils.js +11 -2
- package/dist/_pkgs/affine-block-root/index.d.ts +4 -1
- package/dist/_pkgs/affine-block-root/index.js +4 -1
- package/dist/_pkgs/affine-block-root/keyboard/commands.d.ts +2 -0
- package/dist/_pkgs/affine-block-root/keyboard/commands.js +147 -0
- package/dist/_pkgs/affine-block-root/view.js +13 -4
- package/dist/_pkgs/affine-block-surface/commands/reassociate-connectors.js +0 -1
- package/dist/_pkgs/affine-block-surface/effects.js +6 -0
- package/dist/_pkgs/affine-block-surface/element-model/index.d.ts +5 -2
- package/dist/_pkgs/affine-block-surface/element-model/index.js +4 -2
- package/dist/_pkgs/affine-block-surface/extensions/audit.d.ts +107 -0
- package/dist/_pkgs/affine-block-surface/extensions/audit.js +472 -0
- package/dist/_pkgs/affine-block-surface/extensions/crud-extension.d.ts +14 -0
- package/dist/_pkgs/affine-block-surface/extensions/crud-extension.js +27 -0
- package/dist/_pkgs/affine-block-surface/extensions/editor-anchored-panel.d.ts +133 -0
- package/dist/_pkgs/affine-block-surface/extensions/editor-anchored-panel.js +326 -0
- package/dist/_pkgs/affine-block-surface/extensions/index.d.ts +13 -0
- package/dist/_pkgs/affine-block-surface/extensions/index.js +13 -0
- package/dist/_pkgs/affine-block-surface/extensions/map-quality-widget.d.ts +146 -0
- package/dist/_pkgs/affine-block-surface/extensions/map-quality-widget.js +528 -0
- package/dist/_pkgs/affine-block-surface/extensions/map-quality.d.ts +109 -0
- package/dist/_pkgs/affine-block-surface/extensions/map-quality.js +84 -0
- package/dist/_pkgs/affine-block-surface/extensions/reading-toolbar.d.ts +15 -0
- package/dist/_pkgs/affine-block-surface/extensions/reading-toolbar.js +158 -0
- package/dist/_pkgs/affine-block-surface/extensions/reading-widget.d.ts +145 -0
- package/dist/_pkgs/affine-block-surface/extensions/reading-widget.js +590 -0
- package/dist/_pkgs/affine-block-surface/extensions/reading.d.ts +494 -0
- package/dist/_pkgs/affine-block-surface/extensions/reading.js +767 -0
- package/dist/_pkgs/affine-block-surface/extensions/spotlight.d.ts +45 -0
- package/dist/_pkgs/affine-block-surface/extensions/spotlight.js +177 -0
- package/dist/_pkgs/affine-block-surface/extensions/tags-toolbar.d.ts +10 -0
- package/dist/_pkgs/affine-block-surface/extensions/tags-toolbar.js +295 -0
- package/dist/_pkgs/affine-block-surface/extensions/validation-toolbar.d.ts +27 -0
- package/dist/_pkgs/affine-block-surface/extensions/validation-toolbar.js +361 -0
- package/dist/_pkgs/affine-block-surface/extensions/validation.d.ts +1340 -0
- package/dist/_pkgs/affine-block-surface/extensions/validation.js +3009 -0
- package/dist/_pkgs/affine-block-surface/extensions/violation-detail-widget.d.ts +286 -0
- package/dist/_pkgs/affine-block-surface/extensions/violation-detail-widget.js +907 -0
- package/dist/_pkgs/affine-block-surface/extensions/violation-timeline.d.ts +80 -0
- package/dist/_pkgs/affine-block-surface/extensions/violation-timeline.js +123 -0
- package/dist/_pkgs/affine-block-surface/framework-background/def.d.ts +321 -0
- package/dist/_pkgs/affine-block-surface/framework-background/def.js +81 -0
- package/dist/_pkgs/affine-block-surface/framework-background/facts.d.ts +188 -0
- package/dist/_pkgs/affine-block-surface/framework-background/facts.js +284 -0
- package/dist/_pkgs/affine-block-surface/framework-background/index.d.ts +5 -0
- package/dist/_pkgs/affine-block-surface/framework-background/index.js +5 -0
- package/dist/_pkgs/affine-block-surface/framework-background/interaction.d.ts +12 -0
- package/dist/_pkgs/affine-block-surface/framework-background/interaction.js +24 -0
- package/dist/_pkgs/affine-block-surface/framework-background/labels.d.ts +59 -0
- package/dist/_pkgs/affine-block-surface/framework-background/labels.js +117 -0
- package/dist/_pkgs/affine-block-surface/framework-background/renderer.d.ts +8 -0
- package/dist/_pkgs/affine-block-surface/framework-background/renderer.js +238 -0
- package/dist/_pkgs/affine-block-surface/index.d.ts +1 -0
- package/dist/_pkgs/affine-block-surface/index.js +1 -0
- package/dist/_pkgs/affine-block-surface/renderer/canvas-renderer.d.ts +69 -3
- package/dist/_pkgs/affine-block-surface/renderer/canvas-renderer.js +333 -44
- package/dist/_pkgs/affine-block-surface/renderer/dom-renderer.js +18 -2
- package/dist/_pkgs/affine-block-surface/tool/default-tool.js +8 -0
- package/dist/_pkgs/affine-block-surface/utils/font.js +9 -3
- package/dist/_pkgs/affine-block-surface/view.d.ts +17 -0
- package/dist/_pkgs/affine-block-surface/view.js +57 -2
- package/dist/_pkgs/affine-block-table/selection-controller.d.ts +6 -0
- package/dist/_pkgs/affine-block-table/selection-controller.js +24 -1
- package/dist/_pkgs/affine-block-table/table-block.js +8 -2
- package/dist/_pkgs/affine-block-table/table-cell.js +5 -6
- package/dist/_pkgs/affine-block-table/table-keymap.d.ts +18 -0
- package/dist/_pkgs/affine-block-table/table-keymap.js +41 -0
- package/dist/_pkgs/affine-block-table/utils.d.ts +7 -0
- package/dist/_pkgs/affine-block-table/utils.js +12 -0
- package/dist/_pkgs/affine-block-table/view.js +2 -0
- package/dist/_pkgs/affine-components/caption/captioned-block-component.js +2 -1
- package/dist/_pkgs/affine-components/context-menu/button.d.ts +7 -0
- package/dist/_pkgs/affine-components/context-menu/button.js +7 -2
- package/dist/_pkgs/affine-components/context-menu/input.d.ts +4 -0
- package/dist/_pkgs/affine-components/context-menu/input.js +12 -0
- package/dist/_pkgs/affine-components/context-menu/menu-all.d.ts +2 -0
- package/dist/_pkgs/affine-components/context-menu/menu-renderer.js +8 -1
- package/dist/_pkgs/affine-components/context-menu/sub-menu.js +3 -0
- package/dist/_pkgs/affine-components/highlight-dropdown-menu/highlight-duotone-icon.js +8 -8
- package/dist/_pkgs/affine-components/highlight-dropdown-menu/text-duotone-icon.js +11 -11
- package/dist/_pkgs/affine-components/icon-picker/affine-icon-picker-panel.d.ts +28 -0
- package/dist/_pkgs/affine-components/icon-picker/affine-icon-picker-panel.js +231 -0
- package/dist/_pkgs/affine-components/icon-picker/emoji-data.d.ts +40 -0
- package/dist/_pkgs/affine-components/icon-picker/emoji-data.js +99 -0
- package/dist/_pkgs/affine-components/icon-picker/emoji-picker-panel.d.ts +32 -0
- package/dist/_pkgs/affine-components/icon-picker/emoji-picker-panel.js +276 -0
- package/dist/_pkgs/affine-components/icon-picker/icon-data.d.ts +34 -0
- package/dist/_pkgs/affine-components/icon-picker/icon-data.js +83 -0
- package/dist/_pkgs/affine-components/icon-picker/icon-picker.d.ts +39 -0
- package/dist/_pkgs/affine-components/icon-picker/icon-picker.js +233 -0
- package/dist/_pkgs/affine-components/icon-picker/index.d.ts +8 -0
- package/dist/_pkgs/affine-components/icon-picker/index.js +15 -0
- package/dist/_pkgs/affine-components/icon-picker/recent-store.d.ts +8 -0
- package/dist/_pkgs/affine-components/icon-picker/recent-store.js +41 -0
- package/dist/_pkgs/affine-components/icon-picker/styles.d.ts +5 -0
- package/dist/_pkgs/affine-components/icon-picker/styles.js +166 -0
- package/dist/_pkgs/affine-components/icon-picker/types.d.ts +22 -0
- package/dist/_pkgs/affine-components/icon-picker/types.js +10 -0
- package/dist/_pkgs/affine-components/icons/text.js +426 -426
- package/dist/_pkgs/affine-components/open-doc-dropdown-menu/dropdown-menu.d.ts +1 -0
- package/dist/_pkgs/affine-components/portal/portal.d.ts +1 -1
- package/dist/_pkgs/affine-components/toolbar/menu-button.js +1 -0
- package/dist/_pkgs/affine-components/toolbar/toolbar.js +11 -10
- package/dist/_pkgs/affine-foundation/view.js +11 -2
- package/dist/_pkgs/affine-gfx-brush/index.d.ts +1 -0
- package/dist/_pkgs/affine-gfx-brush/index.js +1 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/brush.d.ts +1 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/brush.js +11 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/highlighter.d.ts +1 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/highlighter.js +11 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/index.d.ts +2 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/index.js +2 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/shared.d.ts +14 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/dom/shared.js +54 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/index.d.ts +1 -0
- package/dist/_pkgs/affine-gfx-brush/renderer/index.js +4 -0
- package/dist/_pkgs/affine-gfx-brush/view.d.ts +14 -0
- package/dist/_pkgs/affine-gfx-brush/view.js +29 -3
- package/dist/_pkgs/affine-gfx-connector/connector-manager.js +32 -6
- package/dist/_pkgs/affine-gfx-connector/connector-tool.d.ts +7 -0
- package/dist/_pkgs/affine-gfx-connector/connector-tool.js +2 -1
- package/dist/_pkgs/affine-gfx-connector/direction/direction-reveal.d.ts +123 -0
- package/dist/_pkgs/affine-gfx-connector/direction/direction-reveal.js +281 -0
- package/dist/_pkgs/affine-gfx-connector/direction/direction-widget.d.ts +65 -0
- package/dist/_pkgs/affine-gfx-connector/direction/direction-widget.js +395 -0
- package/dist/_pkgs/affine-gfx-connector/direction/index.d.ts +4 -0
- package/dist/_pkgs/affine-gfx-connector/direction/index.js +4 -0
- package/dist/_pkgs/affine-gfx-connector/direction/invert-direction.d.ts +72 -0
- package/dist/_pkgs/affine-gfx-connector/direction/invert-direction.js +187 -0
- package/dist/_pkgs/affine-gfx-connector/direction/typed-edge.d.ts +69 -0
- package/dist/_pkgs/affine-gfx-connector/direction/typed-edge.js +66 -0
- package/dist/_pkgs/affine-gfx-connector/effects.d.ts +2 -0
- package/dist/_pkgs/affine-gfx-connector/effects.js +2 -0
- package/dist/_pkgs/affine-gfx-connector/element-renderer/connector-dom/index.js +78 -41
- package/dist/_pkgs/affine-gfx-connector/index.d.ts +1 -0
- package/dist/_pkgs/affine-gfx-connector/index.js +1 -0
- package/dist/_pkgs/affine-gfx-connector/toolbar/config.d.ts +50 -0
- package/dist/_pkgs/affine-gfx-connector/toolbar/config.js +67 -1
- package/dist/_pkgs/affine-gfx-connector/view.js +16 -0
- package/dist/_pkgs/affine-gfx-group/command/group-api.js +150 -62
- package/dist/_pkgs/affine-gfx-group/text/edgeless-group-title-editor.js +4 -1
- package/dist/_pkgs/affine-gfx-pointer/tools/pan-tool.d.ts +16 -0
- package/dist/_pkgs/affine-gfx-pointer/tools/pan-tool.js +102 -32
- package/dist/_pkgs/affine-gfx-shape/commands.d.ts +2 -0
- package/dist/_pkgs/affine-gfx-shape/commands.js +33 -0
- package/dist/_pkgs/affine-gfx-shape/element-renderer/shape-dom/index.js +48 -19
- package/dist/_pkgs/affine-gfx-shape/index.d.ts +1 -1
- package/dist/_pkgs/affine-gfx-shape/index.js +1 -1
- package/dist/_pkgs/affine-gfx-shape/text/edgeless-shape-text-editor.d.ts +26 -0
- package/dist/_pkgs/affine-gfx-shape/text/edgeless-shape-text-editor.js +124 -13
- package/dist/_pkgs/affine-gfx-shape/view.js +3 -3
- package/dist/_pkgs/affine-gfx-template/toolbar/template-tool-button.d.ts +2 -0
- package/dist/_pkgs/affine-gfx-template/toolbar/template-tool-button.js +18 -1
- package/dist/_pkgs/affine-gfx-text/edgeless-text-editor.js +9 -5
- package/dist/_pkgs/affine-inline-latex/command.js +46 -26
- package/dist/_pkgs/affine-inline-latex/latex-node/latex-node.d.ts +10 -0
- package/dist/_pkgs/affine-inline-latex/latex-node/latex-node.js +23 -0
- package/dist/_pkgs/affine-inline-link/link-node/affine-link.js +4 -1
- package/dist/_pkgs/affine-inline-preset/adapters/html/html-inline.d.ts +3 -0
- package/dist/_pkgs/affine-inline-preset/adapters/html/html-inline.js +29 -1
- package/dist/_pkgs/affine-model/blocks/code/code-model.d.ts +1 -0
- package/dist/_pkgs/affine-model/blocks/code/code-model.js +1 -0
- package/dist/_pkgs/affine-model/elements/connector/connector.js +24 -0
- package/dist/_pkgs/affine-model/elements/edgy/board.d.ts +32 -0
- package/dist/_pkgs/affine-model/elements/edgy/board.js +112 -0
- package/dist/_pkgs/affine-model/elements/edgy/facets.d.ts +12 -0
- package/dist/_pkgs/affine-model/elements/edgy/facets.js +25 -1
- package/dist/_pkgs/affine-model/elements/edgy/index.d.ts +1 -0
- package/dist/_pkgs/affine-model/elements/edgy/index.js +1 -0
- package/dist/_pkgs/affine-model/elements/framework-background/background.d.ts +42 -0
- package/dist/_pkgs/affine-model/elements/framework-background/background.js +42 -0
- package/dist/_pkgs/affine-model/elements/framework-background/index.d.ts +1 -0
- package/dist/_pkgs/affine-model/elements/framework-background/index.js +1 -0
- package/dist/_pkgs/affine-model/elements/index.d.ts +3 -1
- package/dist/_pkgs/affine-model/elements/index.js +1 -0
- package/dist/_pkgs/affine-model/elements/mindmap/mindmap.js +8 -3
- package/dist/_pkgs/affine-model/elements/mindmap/style.d.ts +10 -0
- package/dist/_pkgs/affine-model/elements/mindmap/style.js +8 -0
- package/dist/_pkgs/affine-model/elements/wardley/wardley.d.ts +21 -29
- package/dist/_pkgs/affine-model/elements/wardley/wardley.js +41 -48
- package/dist/_pkgs/affine-shared/adapters/markdown/delta-converter.d.ts +6 -1
- package/dist/_pkgs/affine-shared/adapters/markdown/delta-converter.js +160 -2
- package/dist/_pkgs/affine-shared/adapters/markdown/markdown.js +5 -1
- package/dist/_pkgs/affine-shared/adapters/types/delta-converter.d.ts +1 -0
- package/dist/_pkgs/affine-shared/adapters/utils/color.d.ts +24 -0
- package/dist/_pkgs/affine-shared/adapters/utils/color.js +280 -0
- package/dist/_pkgs/affine-shared/adapters/utils/index.d.ts +1 -0
- package/dist/_pkgs/affine-shared/adapters/utils/index.js +1 -0
- package/dist/_pkgs/affine-shared/commands/block-crud/get-selected-blocks.js +10 -2
- package/dist/_pkgs/affine-shared/services/audit-service.d.ts +300 -0
- package/dist/_pkgs/affine-shared/services/audit-service.js +228 -0
- package/dist/_pkgs/affine-shared/services/edit-props-store.d.ts +7 -0
- package/dist/_pkgs/affine-shared/services/edit-props-store.js +11 -0
- package/dist/_pkgs/affine-shared/services/font-loader/font-loader-service.d.ts +26 -1
- package/dist/_pkgs/affine-shared/services/font-loader/font-loader-service.js +124 -7
- package/dist/_pkgs/affine-shared/services/index.d.ts +5 -0
- package/dist/_pkgs/affine-shared/services/index.js +5 -0
- package/dist/_pkgs/affine-shared/services/pivot-materiality-publisher.d.ts +129 -0
- package/dist/_pkgs/affine-shared/services/pivot-materiality-publisher.js +311 -0
- package/dist/_pkgs/affine-shared/services/pivot-properties-service.d.ts +217 -0
- package/dist/_pkgs/affine-shared/services/pivot-properties-service.js +114 -0
- package/dist/_pkgs/affine-shared/services/telemetry-service/code-block.d.ts +1 -1
- package/dist/_pkgs/affine-shared/services/telemetry-service/lifecycle.d.ts +182 -0
- package/dist/_pkgs/affine-shared/services/telemetry-service/telemetry-service.d.ts +2 -2
- package/dist/_pkgs/affine-shared/services/telemetry-service/types.d.ts +6 -1
- package/dist/_pkgs/affine-shared/services/toolbar-service/action.d.ts +10 -0
- package/dist/_pkgs/affine-shared/services/toolbar-service/index.d.ts +1 -0
- package/dist/_pkgs/affine-shared/services/toolbar-service/index.js +1 -0
- package/dist/_pkgs/affine-shared/services/toolbar-service/layout.d.ts +134 -0
- package/dist/_pkgs/affine-shared/services/toolbar-service/layout.js +146 -0
- package/dist/_pkgs/affine-shared/services/translation-service/index.d.ts +68 -0
- package/dist/_pkgs/affine-shared/services/translation-service/index.js +39 -0
- package/dist/_pkgs/affine-shared/services/universe-tag-defs-service.d.ts +155 -0
- package/dist/_pkgs/affine-shared/services/universe-tag-defs-service.js +254 -0
- package/dist/_pkgs/affine-shared/utils/dom/point-to-range.d.ts +4 -0
- package/dist/_pkgs/affine-shared/utils/dom/point-to-range.js +58 -2
- package/dist/_pkgs/affine-shared/utils/dom/viewport.d.ts +60 -0
- package/dist/_pkgs/affine-shared/utils/dom/viewport.js +58 -0
- package/dist/_pkgs/affine-shared/utils/print-to-pdf.d.ts +21 -0
- package/dist/_pkgs/affine-shared/utils/print-to-pdf.js +166 -32
- package/dist/_pkgs/affine-shared/utils/zod-schema.d.ts +7 -0
- package/dist/_pkgs/affine-shared/utils/zod-schema.js +27 -1
- package/dist/_pkgs/affine-widget-drag-handle/watchers/edgeless-watcher.d.ts +19 -10
- package/dist/_pkgs/affine-widget-drag-handle/watchers/edgeless-watcher.js +122 -23
- package/dist/_pkgs/affine-widget-drag-handle/watchers/pointer-event-watcher.d.ts +2 -0
- package/dist/_pkgs/affine-widget-drag-handle/watchers/pointer-event-watcher.js +25 -4
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/auto-complete-panel.js +10 -5
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-auto-complete.d.ts +15 -1
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-auto-complete.js +37 -32
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-element-link.js +5 -4
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-selected-rect.js +19 -9
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/utils.d.ts +16 -2
- package/dist/_pkgs/affine-widget-edgeless-selected-rect/utils.js +19 -2
- package/dist/_pkgs/affine-widget-edgeless-toolbar/index.d.ts +1 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/index.js +1 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/menu/command-menu.d.ts +38 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/menu/command-menu.js +99 -0
- package/dist/_pkgs/affine-widget-frame-title/edgeless-frame-title-editor.js +4 -1
- package/dist/_pkgs/affine-widget-keyboard-toolbar/icons.js +98 -98
- package/dist/_pkgs/affine-widget-linked-doc/linked-doc-popover.js +2 -15
- package/dist/_pkgs/affine-widget-linked-doc/transformers/markdown.d.ts +10 -1
- package/dist/_pkgs/affine-widget-linked-doc/transformers/markdown.js +133 -6
- package/dist/_pkgs/affine-widget-linked-doc/transformers/utils.d.ts +10 -0
- package/dist/_pkgs/affine-widget-linked-doc/transformers/utils.js +120 -3
- package/dist/_pkgs/affine-widget-linked-doc/utils.d.ts +12 -0
- package/dist/_pkgs/affine-widget-linked-doc/utils.js +33 -0
- package/dist/_pkgs/affine-widget-remote-selection/edgeless/index.js +6 -4
- package/dist/_pkgs/affine-widget-slash-menu/slash-menu-popover.js +8 -4
- package/dist/_pkgs/affine-widget-slash-menu/utils.d.ts +9 -0
- package/dist/_pkgs/affine-widget-slash-menu/utils.js +24 -0
- package/dist/_pkgs/affine-widget-toolbar/toolbar.d.ts +6 -0
- package/dist/_pkgs/affine-widget-toolbar/toolbar.js +34 -6
- package/dist/_pkgs/affine-widget-toolbar/utils.d.ts +146 -3
- package/dist/_pkgs/affine-widget-toolbar/utils.js +738 -56
- package/dist/_pkgs/data-view/core/common/property-menu.js +3 -16
- package/dist/_pkgs/data-view/core/component/tags/multi-tag-select.d.ts +4 -0
- package/dist/_pkgs/data-view/core/component/tags/multi-tag-select.js +28 -1
- package/dist/_pkgs/data-view/core/data-view.d.ts +3 -1
- package/dist/_pkgs/data-view/core/data-view.js +25 -3
- package/dist/_pkgs/data-view/core/detail/field.js +2 -2
- package/dist/_pkgs/data-view/core/detail/selection.d.ts +4 -2
- package/dist/_pkgs/data-view/core/detail/selection.js +23 -7
- package/dist/_pkgs/data-view/core/effect.js +2 -0
- package/dist/_pkgs/data-view/core/filter/eval.js +36 -23
- package/dist/_pkgs/data-view/core/filter/filter-fn/matcher.d.ts +7 -0
- package/dist/_pkgs/data-view/core/filter/filter-fn/matcher.js +12 -0
- package/dist/_pkgs/data-view/core/group-by/compare-date-keys.d.ts +11 -0
- package/dist/_pkgs/data-view/core/group-by/compare-date-keys.js +55 -0
- package/dist/_pkgs/data-view/core/group-by/define.d.ts +6 -0
- package/dist/_pkgs/data-view/core/group-by/define.js +114 -0
- package/dist/_pkgs/data-view/core/group-by/matcher.d.ts +7 -0
- package/dist/_pkgs/data-view/core/group-by/matcher.js +13 -0
- package/dist/_pkgs/data-view/core/group-by/renderer/boolean-group.js +11 -11
- package/dist/_pkgs/data-view/core/group-by/renderer/date-group.d.ts +9 -0
- package/dist/_pkgs/data-view/core/group-by/renderer/date-group.js +97 -0
- package/dist/_pkgs/data-view/core/group-by/setting.js +86 -7
- package/dist/_pkgs/data-view/core/group-by/trait.d.ts +34 -0
- package/dist/_pkgs/data-view/core/group-by/trait.js +106 -10
- package/dist/_pkgs/data-view/core/utils/menu-title.js +17 -17
- package/dist/_pkgs/data-view/property-presets/multi-select/cell-renderer.js +3 -1
- package/dist/_pkgs/data-view/property-presets/number/define.js +2 -1
- package/dist/_pkgs/data-view/property-presets/select/cell-renderer.js +3 -1
- package/dist/_pkgs/data-view/view-presets/calendar/calendar-view-manager.d.ts +70 -0
- package/dist/_pkgs/data-view/view-presets/calendar/calendar-view-manager.js +449 -0
- package/dist/_pkgs/data-view/view-presets/calendar/define.d.ts +10 -0
- package/dist/_pkgs/data-view/view-presets/calendar/define.js +27 -0
- package/dist/_pkgs/data-view/view-presets/calendar/effect.d.ts +1 -0
- package/dist/_pkgs/data-view/view-presets/calendar/effect.js +4 -0
- package/dist/_pkgs/data-view/view-presets/calendar/index.d.ts +6 -0
- package/dist/_pkgs/data-view/view-presets/calendar/index.js +6 -0
- package/dist/_pkgs/data-view/view-presets/calendar/layout.d.ts +37 -0
- package/dist/_pkgs/data-view/view-presets/calendar/layout.js +138 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/actions.d.ts +7 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/actions.js +68 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/dnd.d.ts +32 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/dnd.js +159 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/effect.d.ts +1 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/effect.js +7 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/hit-test.d.ts +1 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/hit-test.js +28 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/styles.d.ts +1 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/styles.js +707 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/view.d.ts +89 -0
- package/dist/_pkgs/data-view/view-presets/calendar/pc/view.js +837 -0
- package/dist/_pkgs/data-view/view-presets/calendar/renderer.d.ts +2 -0
- package/dist/_pkgs/data-view/view-presets/calendar/renderer.js +8 -0
- package/dist/_pkgs/data-view/view-presets/calendar/source.d.ts +8 -0
- package/dist/_pkgs/data-view/view-presets/calendar/source.js +3 -0
- package/dist/_pkgs/data-view/view-presets/calendar/types.d.ts +79 -0
- package/dist/_pkgs/data-view/view-presets/calendar/types.js +1 -0
- package/dist/_pkgs/data-view/view-presets/convert.js +28 -0
- package/dist/_pkgs/data-view/view-presets/effect.js +2 -0
- package/dist/_pkgs/data-view/view-presets/index.d.ts +2 -0
- package/dist/_pkgs/data-view/view-presets/index.js +3 -0
- package/dist/_pkgs/data-view/view-presets/kanban/kanban-view-manager.js +3 -1
- package/dist/_pkgs/data-view/view-presets/kanban/mobile/cell.js +2 -2
- package/dist/_pkgs/data-view/view-presets/table/collapsed-state.d.ts +18 -0
- package/dist/_pkgs/data-view/view-presets/table/collapsed-state.js +36 -0
- package/dist/_pkgs/data-view/view-presets/table/mobile/cell.js +2 -2
- package/dist/_pkgs/data-view/view-presets/table/mobile/group.d.ts +11 -0
- package/dist/_pkgs/data-view/view-presets/table/mobile/group.js +87 -4
- package/dist/_pkgs/data-view/view-presets/table/pc/cell.d.ts +3 -0
- package/dist/_pkgs/data-view/view-presets/table/pc/cell.js +11 -2
- package/dist/_pkgs/data-view/view-presets/table/pc/controller/hotkeys.d.ts +1 -0
- package/dist/_pkgs/data-view/view-presets/table/pc/controller/hotkeys.js +39 -33
- package/dist/_pkgs/data-view/view-presets/table/pc/group.d.ts +10 -0
- package/dist/_pkgs/data-view/view-presets/table/pc/group.js +84 -5
- package/dist/_pkgs/data-view/view-presets/table/pc-virtual/controller/hotkeys.d.ts +1 -0
- package/dist/_pkgs/data-view/view-presets/table/pc-virtual/controller/hotkeys.js +39 -33
- package/dist/_pkgs/data-view/view-presets/table/pc-virtual/group/top/group-title.js +18 -18
- package/dist/_pkgs/data-view/view-presets/table/pc-virtual/row/cell.d.ts +3 -0
- package/dist/_pkgs/data-view/view-presets/table/pc-virtual/row/cell.js +8 -0
- package/dist/_pkgs/data-view/view-presets/table/table-view-manager.js +3 -1
- package/dist/_pkgs/data-view/view-presets/table/utils.d.ts +3 -0
- package/dist/_pkgs/data-view/view-presets/table/utils.js +16 -1
- package/dist/_pkgs/data-view/widget-presets/tools/presets/view-options/view-options.js +3 -1
- package/dist/_pkgs/global/gfx/curve.js +4 -3
- package/dist/_pkgs/std/clipboard/clipboard.js +13 -3
- package/dist/_pkgs/std/clipboard/utils.d.ts +5 -0
- package/dist/_pkgs/std/clipboard/utils.js +7 -0
- package/dist/_pkgs/std/event/dispatcher.js +27 -1
- package/dist/_pkgs/std/event/keymap.js +16 -6
- package/dist/_pkgs/std/extension/command-registry.d.ts +321 -0
- package/dist/_pkgs/std/extension/command-registry.js +233 -0
- package/dist/_pkgs/std/extension/dnd/index.d.ts +1 -1
- package/dist/_pkgs/std/extension/index.d.ts +2 -0
- package/dist/_pkgs/std/extension/index.js +2 -0
- package/dist/_pkgs/std/extension/translation-manifest.d.ts +49 -0
- package/dist/_pkgs/std/extension/translation-manifest.js +71 -0
- package/dist/_pkgs/std/gfx/index.d.ts +7 -3
- package/dist/_pkgs/std/gfx/index.js +6 -2
- package/dist/_pkgs/std/gfx/interactivity/gfx-view-event-handler.js +6 -1
- package/dist/_pkgs/std/gfx/interactivity/manager.d.ts +8 -0
- package/dist/_pkgs/std/gfx/interactivity/manager.js +18 -0
- package/dist/_pkgs/std/gfx/layer.d.ts +1 -1
- package/dist/_pkgs/std/gfx/layer.js +1 -2
- package/dist/_pkgs/std/gfx/model/surface/decorators/field.js +9 -0
- package/dist/_pkgs/std/gfx/model/surface/decorators/index.d.ts +2 -2
- package/dist/_pkgs/std/gfx/model/surface/decorators/index.js +2 -2
- package/dist/_pkgs/std/gfx/model/surface/decorators/local.d.ts +14 -0
- package/dist/_pkgs/std/gfx/model/surface/decorators/local.js +22 -0
- package/dist/_pkgs/std/gfx/model/surface/decorators/observer.d.ts +2 -0
- package/dist/_pkgs/std/gfx/model/surface/decorators/observer.js +40 -1
- package/dist/_pkgs/std/gfx/model/surface/element-model.d.ts +282 -0
- package/dist/_pkgs/std/gfx/model/surface/element-model.js +436 -25
- package/dist/_pkgs/std/gfx/model/surface/pivot.d.ts +48 -0
- package/dist/_pkgs/std/gfx/model/surface/pivot.js +34 -0
- package/dist/_pkgs/std/gfx/model/surface/role.d.ts +153 -0
- package/dist/_pkgs/std/gfx/model/surface/role.js +115 -0
- package/dist/_pkgs/std/gfx/model/surface/surface-model.d.ts +70 -0
- package/dist/_pkgs/std/gfx/model/surface/surface-model.js +304 -17
- package/dist/_pkgs/std/gfx/model/surface/tags.d.ts +77 -0
- package/dist/_pkgs/std/gfx/model/surface/tags.js +246 -0
- package/dist/_pkgs/std/gfx/perf.d.ts +10 -0
- package/dist/_pkgs/std/gfx/perf.js +30 -0
- package/dist/_pkgs/std/gfx/tool/tool-controller.d.ts +13 -0
- package/dist/_pkgs/std/gfx/tool/tool-controller.js +26 -0
- package/dist/_pkgs/std/gfx/viewport.d.ts +12 -0
- package/dist/_pkgs/std/gfx/viewport.js +19 -1
- package/dist/_pkgs/std/inline/services/event.d.ts +2 -0
- package/dist/_pkgs/std/inline/services/event.js +96 -21
- package/dist/_pkgs/std/utils/layer.js +2 -6
- package/dist/_pkgs/std/utils/tree.d.ts +14 -0
- package/dist/_pkgs/std/utils/tree.js +59 -8
- package/dist/_pkgs/std/view/element/gfx-block-component.js +23 -13
- package/dist/_pkgs/store/extension/workspace/workspace-meta.d.ts +10 -0
- package/dist/_pkgs/store/model/block/flat-sync-controller.js +2 -12
- package/dist/_pkgs/store/model/store/crud.js +7 -4
- package/dist/_pkgs/store/reactive/flat-native-y/index.d.ts +1 -1
- package/dist/_pkgs/store/reactive/flat-native-y/index.js +24 -2
- package/dist/commands.d.ts +58 -0
- package/dist/commands.js +66 -0
- package/dist/extensions/command-telemetry.d.ts +21 -0
- package/dist/extensions/command-telemetry.js +89 -0
- package/dist/extensions/store.d.ts +9 -4
- package/dist/extensions/store.js +27 -24
- package/dist/extensions/view.d.ts +9 -4
- package/dist/extensions/view.js +23 -8
- package/dist/flags.d.ts +98 -21
- package/dist/flags.js +103 -22
- package/dist/frameworks.d.ts +45 -0
- package/dist/frameworks.js +154 -0
- package/dist/schemas.d.ts +8 -5
- package/dist/schemas.js +28 -32
- package/dist/shortcuts.d.ts +16 -16
- package/dist/shortcuts.js +8 -36
- package/dist/translations.d.ts +56 -0
- package/dist/translations.js +112 -0
- package/package.json +16 -4
- package/dist/_pkgs/affine-block-root/keyboard/shortcuts.d.ts +0 -8
- package/dist/_pkgs/affine-block-root/keyboard/shortcuts.js +0 -48
- package/dist/_pkgs/affine-gfx-shape/shortcuts.d.ts +0 -6
- package/dist/_pkgs/affine-gfx-shape/shortcuts.js +0 -28
- package/dist/_pkgs/data-view/core/utils/cache.d.ts +0 -5
- package/dist/_pkgs/data-view/core/utils/cache.js +0 -28
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Semantic roles for surface elements — the vocabulary side of PF1.
|
|
3
|
+
*
|
|
4
|
+
* A role is the ONLY semantic identity of an element. Validation rules are
|
|
5
|
+
* written against roles, never against a shape type: two artefacts drawn with
|
|
6
|
+
* the same ellipse can carry different roles, and a role can be re-skinned
|
|
7
|
+
* without touching a single rule.
|
|
8
|
+
*
|
|
9
|
+
* A role id is namespaced by its framework — `<framework>:<role>`, e.g.
|
|
10
|
+
* `wardley:component`. The neutral role (a generalist square, triangle or free
|
|
11
|
+
* text) is the ABSENCE of a role: nothing is written on generic elements, and
|
|
12
|
+
* documents authored before this field existed read as neutral.
|
|
13
|
+
*
|
|
14
|
+
* The role itself is stored as a flat string on
|
|
15
|
+
* {@link GfxPrimitiveElementModel.role}. The vocabulary below is declarative
|
|
16
|
+
* DATA, not TS class inheritance: a framework declares its roles (and their
|
|
17
|
+
* specialisation links) in a plain module, so the framework core never has to
|
|
18
|
+
* know the concrete roles, and a rule written on a parent role applies to its
|
|
19
|
+
* children via {@link roleIsA}.
|
|
20
|
+
*/
|
|
21
|
+
import type { ExtensionType } from '../../../../store/index.js';
|
|
22
|
+
/**
|
|
23
|
+
* Namespaced role identifier, `<framework>:<role>`.
|
|
24
|
+
*
|
|
25
|
+
* Deliberately a plain `string` for now: the framework half is spelled several
|
|
26
|
+
* different ways across the codebase and no canonical `FrameworkId` type
|
|
27
|
+
* exists yet. When one lands, this should become `` `${FrameworkId}:${string}` ``
|
|
28
|
+
* so the namespace is checked, not just the shape.
|
|
29
|
+
*/
|
|
30
|
+
export type RoleId = string;
|
|
31
|
+
/**
|
|
32
|
+
* What SHAPE of thing a role describes — and therefore what geometry a rule
|
|
33
|
+
* measures it with.
|
|
34
|
+
*
|
|
35
|
+
* - `node` — a surface element, measured by its bounds.
|
|
36
|
+
* - `edge` — a connector, measured along its path: the bounding box of a
|
|
37
|
+
* diagonal link covers half the map.
|
|
38
|
+
* - `text` — a free text element, measured by the INK its text actually
|
|
39
|
+
* occupies. A text box is created at a width that has nothing to do with its
|
|
40
|
+
* content (a Wardley label is 120–200 units wide whatever it says), so its
|
|
41
|
+
* box is not a statement about what the eye can see.
|
|
42
|
+
*/
|
|
43
|
+
export type RoleKind = 'node' | 'edge' | 'text';
|
|
44
|
+
/**
|
|
45
|
+
* What an EDGE role says about its own orientation — tier 1 of `docs/adr/0010`,
|
|
46
|
+
* written down where the vocabulary is rather than in the head of whoever
|
|
47
|
+
* drew the link:
|
|
48
|
+
*
|
|
49
|
+
* > An edge role names a **relation with a verb**. `source` is the subject of
|
|
50
|
+
* > that verb, `target` is its object. Reading an edge is reading one sentence:
|
|
51
|
+
* > `source` _verb_ `target`.
|
|
52
|
+
*
|
|
53
|
+
* Declared here so the three mechanisms of that ADR can be generic: the tool
|
|
54
|
+
* hint that ANNOUNCES the gesture (M1), the hover/selection reveal that SHOWS
|
|
55
|
+
* the orientation (M2) and the inversion command that lets the user FIX it
|
|
56
|
+
* (M3) all read this and never a framework's name. A `node` role has no
|
|
57
|
+
* business declaring one; an edge role that declares none simply reveals its
|
|
58
|
+
* label and no sentence.
|
|
59
|
+
*
|
|
60
|
+
* Keys plus the framework's own wording, exactly like a rule's message and a
|
|
61
|
+
* background's labels: the library never invents prose, a host with a
|
|
62
|
+
* catalogue always wins, and a catalogue-less playground still reads.
|
|
63
|
+
*/
|
|
64
|
+
export interface EdgeDirectionDef {
|
|
65
|
+
/** i18n key of the verb — `'depends on'`. Resolved by the host. */
|
|
66
|
+
verbKey: string;
|
|
67
|
+
/** The framework's own wording for {@link verbKey}. */
|
|
68
|
+
verbFallback?: string;
|
|
69
|
+
/**
|
|
70
|
+
* i18n key of the sentence that tells a user which way to DRAW the edge —
|
|
71
|
+
* "drag from the component that has the need to what it needs" (M1).
|
|
72
|
+
* Absent means the tool announces nothing, which is what every edge did
|
|
73
|
+
* before this ADR.
|
|
74
|
+
*/
|
|
75
|
+
gestureHintKey?: string;
|
|
76
|
+
/** The framework's own wording for {@link gestureHintKey}. */
|
|
77
|
+
gestureHintFallback?: string;
|
|
78
|
+
}
|
|
79
|
+
export interface RoleDef {
|
|
80
|
+
/** Namespaced id, `<framework>:<role>`. */
|
|
81
|
+
id: RoleId;
|
|
82
|
+
/**
|
|
83
|
+
* The role this one specialises, if any. A rule written on the parent role
|
|
84
|
+
* applies to every descendant — see {@link roleIsA}.
|
|
85
|
+
*/
|
|
86
|
+
parent?: RoleId;
|
|
87
|
+
kind: RoleKind;
|
|
88
|
+
/** i18n key of the human label; resolved by the host app. */
|
|
89
|
+
labelKey?: string;
|
|
90
|
+
/**
|
|
91
|
+
* The framework's own wording for {@link labelKey}, for a host that ships no
|
|
92
|
+
* catalogue. Same seam and same rule as everywhere else in this library.
|
|
93
|
+
*/
|
|
94
|
+
labelFallback?: string;
|
|
95
|
+
/** `edge` roles only: the verb the relation is read with. See {@link EdgeDirectionDef}. */
|
|
96
|
+
direction?: EdgeDirectionDef;
|
|
97
|
+
}
|
|
98
|
+
/** A framework's role vocabulary, indexed by role id. */
|
|
99
|
+
export type RoleDefs = Readonly<Record<RoleId, RoleDef>>;
|
|
100
|
+
/**
|
|
101
|
+
* Is `roleId` the `ancestorId` role, or a specialisation of it?
|
|
102
|
+
*
|
|
103
|
+
* ```ts
|
|
104
|
+
* roleIsA('wardley:market', 'wardley:component', WARDLEY_ROLES); // true
|
|
105
|
+
* roleIsA('wardley:component', 'wardley:market', WARDLEY_ROLES); // false
|
|
106
|
+
* ```
|
|
107
|
+
*
|
|
108
|
+
* A neutral element (`undefined`) is never any role. Roles absent from `defs`
|
|
109
|
+
* only match themselves. Allocation-free: rules call this per element, per
|
|
110
|
+
* rule.
|
|
111
|
+
*/
|
|
112
|
+
export declare function roleIsA(roleId: RoleId | undefined, ancestorId: RoleId, defs: RoleDefs): boolean;
|
|
113
|
+
/**
|
|
114
|
+
* A framework publishes its role vocabulary here, and nothing else publishes
|
|
115
|
+
* one. Multi-instance: one registered {@link RoleDefs} per framework.
|
|
116
|
+
*
|
|
117
|
+
* Registered from the framework's ALWAYS-ON render extension, never from its
|
|
118
|
+
* flag-gated one (`docs/adr/0009`). A role is not tooling: it is written in the
|
|
119
|
+
* document, and what reads it back — the direction reveal, the inversion
|
|
120
|
+
* command, the toolbar entry that must NOT lie about a typed edge — has to keep
|
|
121
|
+
* working on a map drawn while the flag was on and opened while it is off.
|
|
122
|
+
* Validation rules are the tooling half and stay where they are.
|
|
123
|
+
*/
|
|
124
|
+
export declare const RoleVocabularyIdentifier: import("../../../../global/di/types.js").ServiceIdentifier<Readonly<Record<string, RoleDef>>> & (<U extends Readonly<Record<string, RoleDef>> = Readonly<Record<string, RoleDef>>>(variant: import("../../../../global/di/types.js").ServiceVariant) => import("../../../../global/di/types.js").ServiceIdentifier<U>);
|
|
125
|
+
/**
|
|
126
|
+
* Register a framework's role vocabulary.
|
|
127
|
+
*
|
|
128
|
+
* ```ts
|
|
129
|
+
* context.register(RoleVocabularyExtension(WARDLEY_ROLES));
|
|
130
|
+
* ```
|
|
131
|
+
*/
|
|
132
|
+
export declare function RoleVocabularyExtension(defs: RoleDefs): ExtensionType;
|
|
133
|
+
/**
|
|
134
|
+
* The declaration of `roleId` among the registered vocabularies, or
|
|
135
|
+
* `undefined` — for a neutral element, for a role whose framework registered
|
|
136
|
+
* nothing, and for a role that no longer exists.
|
|
137
|
+
*
|
|
138
|
+
* Takes the vocabularies rather than a `BlockStdScope` on purpose: this file is
|
|
139
|
+
* the vocabulary side of PF1 and has no business importing the editor scope.
|
|
140
|
+
* Callers hand in
|
|
141
|
+
* `[...std.provider.getAll(RoleVocabularyIdentifier).values()]`.
|
|
142
|
+
*/
|
|
143
|
+
export declare function findRoleDef(vocabularies: readonly RoleDefs[], roleId: RoleId | undefined): RoleDef | undefined;
|
|
144
|
+
/**
|
|
145
|
+
* Is this element's role a TYPED EDGE, i.e. a declared role of `kind: 'edge'`?
|
|
146
|
+
*
|
|
147
|
+
* The one predicate `docs/adr/0010` turns on: for such an element the persisted
|
|
148
|
+
* `source → target` pair IS the relation's orientation and part of the
|
|
149
|
+
* document's meaning. Everything else — a generalist connector, a decoration,
|
|
150
|
+
* an element whose framework is not loaded — answers `false` and keeps the two
|
|
151
|
+
* ends it always had, carrying no claim.
|
|
152
|
+
*/
|
|
153
|
+
export declare function isTypedEdgeRole(vocabularies: readonly RoleDefs[], roleId: RoleId | undefined): boolean;
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Semantic roles for surface elements — the vocabulary side of PF1.
|
|
3
|
+
*
|
|
4
|
+
* A role is the ONLY semantic identity of an element. Validation rules are
|
|
5
|
+
* written against roles, never against a shape type: two artefacts drawn with
|
|
6
|
+
* the same ellipse can carry different roles, and a role can be re-skinned
|
|
7
|
+
* without touching a single rule.
|
|
8
|
+
*
|
|
9
|
+
* A role id is namespaced by its framework — `<framework>:<role>`, e.g.
|
|
10
|
+
* `wardley:component`. The neutral role (a generalist square, triangle or free
|
|
11
|
+
* text) is the ABSENCE of a role: nothing is written on generic elements, and
|
|
12
|
+
* documents authored before this field existed read as neutral.
|
|
13
|
+
*
|
|
14
|
+
* The role itself is stored as a flat string on
|
|
15
|
+
* {@link GfxPrimitiveElementModel.role}. The vocabulary below is declarative
|
|
16
|
+
* DATA, not TS class inheritance: a framework declares its roles (and their
|
|
17
|
+
* specialisation links) in a plain module, so the framework core never has to
|
|
18
|
+
* know the concrete roles, and a rule written on a parent role applies to its
|
|
19
|
+
* children via {@link roleIsA}.
|
|
20
|
+
*/
|
|
21
|
+
import { createIdentifier } from '../../../../global/di/index.js';
|
|
22
|
+
/**
|
|
23
|
+
* Deepest specialisation chain {@link roleIsA} walks. Real vocabularies are
|
|
24
|
+
* one or two levels deep; the bound exists so a malformed `parent` cycle
|
|
25
|
+
* cannot hang the caller. Chains longer than this are NOT supported.
|
|
26
|
+
*/
|
|
27
|
+
const MAX_ROLE_DEPTH = 32;
|
|
28
|
+
/**
|
|
29
|
+
* Is `roleId` the `ancestorId` role, or a specialisation of it?
|
|
30
|
+
*
|
|
31
|
+
* ```ts
|
|
32
|
+
* roleIsA('wardley:market', 'wardley:component', WARDLEY_ROLES); // true
|
|
33
|
+
* roleIsA('wardley:component', 'wardley:market', WARDLEY_ROLES); // false
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
* A neutral element (`undefined`) is never any role. Roles absent from `defs`
|
|
37
|
+
* only match themselves. Allocation-free: rules call this per element, per
|
|
38
|
+
* rule.
|
|
39
|
+
*/
|
|
40
|
+
export function roleIsA(roleId, ancestorId, defs) {
|
|
41
|
+
let current = roleId;
|
|
42
|
+
for (let hops = 0; current !== undefined; hops++) {
|
|
43
|
+
if (current === ancestorId)
|
|
44
|
+
return true;
|
|
45
|
+
if (hops >= MAX_ROLE_DEPTH) {
|
|
46
|
+
// Either a `parent` cycle or a vocabulary deeper than we support —
|
|
47
|
+
// both are authoring bugs in the defs. Give up rather than hang, and
|
|
48
|
+
// say so instead of silently answering "no".
|
|
49
|
+
console.warn(`roleIsA: gave up on the parent chain of "${roleId}" after ` +
|
|
50
|
+
`${MAX_ROLE_DEPTH} hops — cycle or over-deep vocabulary?`);
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
current = defs[current]?.parent;
|
|
54
|
+
}
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* A framework publishes its role vocabulary here, and nothing else publishes
|
|
59
|
+
* one. Multi-instance: one registered {@link RoleDefs} per framework.
|
|
60
|
+
*
|
|
61
|
+
* Registered from the framework's ALWAYS-ON render extension, never from its
|
|
62
|
+
* flag-gated one (`docs/adr/0009`). A role is not tooling: it is written in the
|
|
63
|
+
* document, and what reads it back — the direction reveal, the inversion
|
|
64
|
+
* command, the toolbar entry that must NOT lie about a typed edge — has to keep
|
|
65
|
+
* working on a map drawn while the flag was on and opened while it is off.
|
|
66
|
+
* Validation rules are the tooling half and stay where they are.
|
|
67
|
+
*/
|
|
68
|
+
export const RoleVocabularyIdentifier = createIdentifier('RoleVocabulary');
|
|
69
|
+
let _vocabularyId = 1;
|
|
70
|
+
/**
|
|
71
|
+
* Register a framework's role vocabulary.
|
|
72
|
+
*
|
|
73
|
+
* ```ts
|
|
74
|
+
* context.register(RoleVocabularyExtension(WARDLEY_ROLES));
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
export function RoleVocabularyExtension(defs) {
|
|
78
|
+
return {
|
|
79
|
+
setup: di => {
|
|
80
|
+
di.addImpl(RoleVocabularyIdentifier(`RoleVocabulary-${_vocabularyId++}`), () => defs);
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* The declaration of `roleId` among the registered vocabularies, or
|
|
86
|
+
* `undefined` — for a neutral element, for a role whose framework registered
|
|
87
|
+
* nothing, and for a role that no longer exists.
|
|
88
|
+
*
|
|
89
|
+
* Takes the vocabularies rather than a `BlockStdScope` on purpose: this file is
|
|
90
|
+
* the vocabulary side of PF1 and has no business importing the editor scope.
|
|
91
|
+
* Callers hand in
|
|
92
|
+
* `[...std.provider.getAll(RoleVocabularyIdentifier).values()]`.
|
|
93
|
+
*/
|
|
94
|
+
export function findRoleDef(vocabularies, roleId) {
|
|
95
|
+
if (roleId === undefined)
|
|
96
|
+
return undefined;
|
|
97
|
+
for (const defs of vocabularies) {
|
|
98
|
+
const def = defs[roleId];
|
|
99
|
+
if (def !== undefined)
|
|
100
|
+
return def;
|
|
101
|
+
}
|
|
102
|
+
return undefined;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Is this element's role a TYPED EDGE, i.e. a declared role of `kind: 'edge'`?
|
|
106
|
+
*
|
|
107
|
+
* The one predicate `docs/adr/0010` turns on: for such an element the persisted
|
|
108
|
+
* `source → target` pair IS the relation's orientation and part of the
|
|
109
|
+
* document's meaning. Everything else — a generalist connector, a decoration,
|
|
110
|
+
* an element whose framework is not loaded — answers `false` and keeps the two
|
|
111
|
+
* ends it always had, carrying no claim.
|
|
112
|
+
*/
|
|
113
|
+
export function isTypedEdgeRole(vocabularies, roleId) {
|
|
114
|
+
return findRoleDef(vocabularies, roleId)?.kind === 'edge';
|
|
115
|
+
}
|
|
@@ -33,6 +33,19 @@ export type MiddlewareCtx = {
|
|
|
33
33
|
};
|
|
34
34
|
export type SurfaceMiddleware = (ctx: MiddlewareCtx) => void;
|
|
35
35
|
export declare class SurfaceBlockModel extends BlockModel<SurfaceBlockProps> {
|
|
36
|
+
/**
|
|
37
|
+
* The props that are known to move the bound of the containing group, so a
|
|
38
|
+
* write on one of them refreshes that bound eagerly (and notifies the layer
|
|
39
|
+
* and the renderer within the same tick).
|
|
40
|
+
*
|
|
41
|
+
* It is deliberately NOT the exhaustive list of what a bound can depend on:
|
|
42
|
+
* a subclass may fold a custom prop into its own `elementBound` (our polygon
|
|
43
|
+
* shape does it with `vertices`, the connector with `labelXYWH`). Anything
|
|
44
|
+
* outside this set therefore only *invalidates* the cached bound — the next
|
|
45
|
+
* read recomputes it — which keeps such elements correct without paying the
|
|
46
|
+
* eager recomputation on every unrelated prop write.
|
|
47
|
+
*/
|
|
48
|
+
private static readonly _groupBoundImpactKeys;
|
|
36
49
|
protected _decoratorState: {
|
|
37
50
|
creating: boolean;
|
|
38
51
|
deriving: boolean;
|
|
@@ -75,7 +88,64 @@ export declare class SurfaceBlockModel extends BlockModel<SurfaceBlockProps> {
|
|
|
75
88
|
isEmpty(): boolean;
|
|
76
89
|
constructor();
|
|
77
90
|
private _createElementFromProps;
|
|
91
|
+
/**
|
|
92
|
+
* Copies one serialized prop onto an element, routing it EXPLICITLY.
|
|
93
|
+
*
|
|
94
|
+
* Three outcomes, in order:
|
|
95
|
+
*
|
|
96
|
+
* 1. an unsafe key ({@link UNSAFE_ELEMENT_PROP_KEYS}) is dropped;
|
|
97
|
+
* 2. a key the element class **declared** ({@link isDeclaredElementProp})
|
|
98
|
+
* goes through its accessor, exactly as before;
|
|
99
|
+
* 3. anything else is an unknown key and is written verbatim into the
|
|
100
|
+
* element's Y.Map, provided the value is encodable.
|
|
101
|
+
*
|
|
102
|
+
* Step 2 deliberately does **not** ask `key in element`. That question is far
|
|
103
|
+
* wider than "did the class declare this prop": it also matches every method
|
|
104
|
+
* (`serialize`, `isLocked`, `stash`…), every getter-only derived prop (`x`,
|
|
105
|
+
* `y`, `w`, `h`, `group`, `elementBound`…) and every internal instance field
|
|
106
|
+
* (`_local`, `_preserved`…). Routing those to the instance is what used to
|
|
107
|
+
* corrupt the model — a data key named `serialize` shadowed the method with a
|
|
108
|
+
* string, and a data key named `x` threw `TypeError: only a getter`, which
|
|
109
|
+
* `store.transact` swallows, silently losing every prop after it in the same
|
|
110
|
+
* bulk update. With the declared-prop sets, such a key is simply unknown data:
|
|
111
|
+
* it lands in the Y.Map, where it shadows nothing (methods and derived getters
|
|
112
|
+
* live on the prototype and are read from there).
|
|
113
|
+
*
|
|
114
|
+
* Step 3 refuses a value it could not encode. `Y.Map.set` accepts a cyclic
|
|
115
|
+
* object and only fails later, in `encodeStateAsUpdate` — i.e. it breaks
|
|
116
|
+
* persistence and sync for good, invisibly. Dropping the key restores the
|
|
117
|
+
* pre-existing behaviour for that one prop and keeps the document sound; the
|
|
118
|
+
* doc's "values stay flat JSON" claim is now enforced rather than assumed.
|
|
119
|
+
*
|
|
120
|
+
* An `undefined` value is never written on the unknown branch either, so
|
|
121
|
+
* spreading an absent option (`{ ...opts }` with `opts.foo === undefined`)
|
|
122
|
+
* cannot mint a phantom key that is invisible in `serialize()` yet real for
|
|
123
|
+
* every peer. Declared fields keep accepting `undefined`, which is how an
|
|
124
|
+
* optional field is cleared.
|
|
125
|
+
*
|
|
126
|
+
* The asymmetry that follows is deliberate: an unknown key already present
|
|
127
|
+
* in the Y.Map can never be removed through `updateElement`, since
|
|
128
|
+
* `undefined` is the only way to ask for that and it is ignored here. On a
|
|
129
|
+
* client that does not declare the field, an unknown key is immortal. That
|
|
130
|
+
* is the right direction to err for a preservation contract — the client
|
|
131
|
+
* that understands the field can still clear it through its accessor — but
|
|
132
|
+
* it does mean this API cannot delete what it does not understand.
|
|
133
|
+
*
|
|
134
|
+
* The value is already Y-converted at this point: both call sites run the
|
|
135
|
+
* whole props object through {@link _propsToY} first, which is key-agnostic.
|
|
136
|
+
*
|
|
137
|
+
* See `docs/spikes/us-1-8-unknown-props-preservation.md`.
|
|
138
|
+
*/
|
|
139
|
+
private _assignElementProp;
|
|
78
140
|
private _createElementFromYMap;
|
|
141
|
+
/**
|
|
142
|
+
* The single place an element update leaves the surface: it fans the payload
|
|
143
|
+
* out to the subscribers and keeps the bound of the containing group in sync.
|
|
144
|
+
*/
|
|
145
|
+
private _emitElementUpdated;
|
|
146
|
+
private _invalidateParentGroupBounds;
|
|
147
|
+
private _refreshParentGroupBounds;
|
|
148
|
+
private _refreshParentGroupBoundsForElement;
|
|
79
149
|
private _initElementModels;
|
|
80
150
|
private _propsToY;
|
|
81
151
|
private _watchGroupRelationChange;
|