@formicoidea/labre-core 0.31.0 → 0.33.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-attachment/attachment-block.js +1 -1
- package/dist/_pkgs/affine-block-callout/callout-block.d.ts +6 -0
- package/dist/_pkgs/affine-block-callout/callout-block.js +26 -4
- 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-inline.js +1 -1
- 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 +54 -5
- package/dist/_pkgs/affine-block-code/code-toolbar/index.js +1 -1
- 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/data-source.js +1 -2
- package/dist/_pkgs/affine-block-database/database-block.js +13 -0
- package/dist/_pkgs/affine-block-database/external-data-source.js +1 -1
- 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 +11 -1
- 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/embed-figma-block/embed-figma-service.js +1 -1
- package/dist/_pkgs/affine-block-embed/embed-iframe-block/configs/toolbar.js +2 -2
- 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/configs/toolbar.js +1 -1
- 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-linked-doc-block/utils.js +1 -1
- package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/configs/toolbar.js +1 -1
- 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 +23 -4
- package/dist/_pkgs/affine-block-frame/frame-manager.d.ts +13 -0
- package/dist/_pkgs/affine-block-frame/frame-manager.js +34 -2
- package/dist/_pkgs/affine-block-frame/frame-tool.js +1 -1
- package/dist/_pkgs/affine-block-image/components/page-image-block.js +1 -1
- package/dist/_pkgs/affine-block-image/image-edgeless-block.js +1 -1
- package/dist/_pkgs/affine-block-latex/styles.js +6 -1
- package/dist/_pkgs/affine-block-list/utils/forward-delete.js +1 -1
- package/dist/_pkgs/affine-block-note/commands/select-block.js +1 -1
- package/dist/_pkgs/affine-block-note/commands/select-blocks-between.js +1 -1
- package/dist/_pkgs/affine-block-note/move-block.js +1 -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-paragraph/utils/forward-delete.js +2 -2
- package/dist/_pkgs/affine-block-paragraph/utils/merge-with-prev.js +1 -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 +10 -3
- 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 +27 -2
- 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/clipboard-utils.js +1 -1
- 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/adapters/markdown/element-adapter/type.js +1 -1
- package/dist/_pkgs/affine-block-surface/adapters/plain-text/element-adapter/type.js +1 -1
- 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 +21 -3
- package/dist/_pkgs/affine-block-surface/element-model/index.js +14 -2
- package/dist/_pkgs/affine-block-surface/extensions/audit.d.ts +107 -0
- package/dist/_pkgs/affine-block-surface/extensions/audit.js +489 -0
- package/dist/_pkgs/affine-block-surface/extensions/crud-extension.d.ts +14 -0
- package/dist/_pkgs/affine-block-surface/extensions/crud-extension.js +37 -5
- 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 +327 -0
- package/dist/_pkgs/affine-block-surface/extensions/element-renderer.js +1 -1
- package/dist/_pkgs/affine-block-surface/extensions/export-manager/export-manager.js +1 -1
- package/dist/_pkgs/affine-block-surface/extensions/index.d.ts +17 -0
- package/dist/_pkgs/affine-block-surface/extensions/index.js +17 -0
- package/dist/_pkgs/affine-block-surface/extensions/interchange-import.d.ts +172 -0
- package/dist/_pkgs/affine-block-surface/extensions/interchange-import.js +393 -0
- package/dist/_pkgs/affine-block-surface/extensions/interchange.d.ts +306 -0
- package/dist/_pkgs/affine-block-surface/extensions/interchange.js +64 -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/morph-toolbar.d.ts +248 -0
- package/dist/_pkgs/affine-block-surface/extensions/morph-toolbar.js +248 -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 +588 -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/svg-sketch.d.ts +107 -0
- package/dist/_pkgs/affine-block-surface/extensions/svg-sketch.js +958 -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 +2129 -0
- package/dist/_pkgs/affine-block-surface/extensions/validation.js +4620 -0
- package/dist/_pkgs/affine-block-surface/extensions/violation-detail-widget.d.ts +330 -0
- package/dist/_pkgs/affine-block-surface/extensions/violation-detail-widget.js +1004 -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 +610 -0
- package/dist/_pkgs/affine-block-surface/framework-background/def.js +206 -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 +99 -0
- package/dist/_pkgs/affine-block-surface/framework-background/labels.js +193 -0
- package/dist/_pkgs/affine-block-surface/framework-background/renderer.d.ts +8 -0
- package/dist/_pkgs/affine-block-surface/framework-background/renderer.js +399 -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/renderer/overlay.js +1 -1
- 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-surface-ref/portal/note.js +2 -2
- package/dist/_pkgs/affine-block-table/commands.js +1 -1
- 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/edgeless-shape-color-picker/color-picker.js +1 -1
- package/dist/_pkgs/affine-components/embed-card-modal/embed-card-edit-modal.js +1 -1
- package/dist/_pkgs/affine-components/filterable-list/styles.js +1 -1
- 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/peek/peekable.js +1 -1
- package/dist/_pkgs/affine-components/portal/portal.d.ts +1 -1
- package/dist/_pkgs/affine-components/toolbar/index.d.ts +1 -0
- package/dist/_pkgs/affine-components/toolbar/index.js +1 -0
- package/dist/_pkgs/affine-components/toolbar/menu-button.js +2 -1
- package/dist/_pkgs/affine-components/toolbar/picker-menu.d.ts +55 -0
- package/dist/_pkgs/affine-components/toolbar/picker-menu.js +47 -0
- package/dist/_pkgs/affine-components/toolbar/toolbar.js +11 -10
- package/dist/_pkgs/affine-foundation/view.js +11 -2
- package/dist/_pkgs/affine-fragment-frame-panel/body/frame-panel-body.js +2 -2
- package/dist/_pkgs/affine-fragment-frame-panel/header/frame-panel-header.js +2 -2
- package/dist/_pkgs/affine-fragment-frame-panel/header/frames-setting-menu.js +1 -1
- package/dist/_pkgs/affine-fragment-outline/mobile-outline-panel.js +1 -1
- 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/toolbar/components/pen/pen-tool-button.js +1 -1
- 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 +39 -16
- package/dist/_pkgs/affine-gfx-connector/connector-tool.d.ts +26 -1
- package/dist/_pkgs/affine-gfx-connector/connector-tool.js +12 -3
- package/dist/_pkgs/affine-gfx-connector/connector-watcher.js +1 -4
- package/dist/_pkgs/affine-gfx-connector/direction/direction-reveal.d.ts +123 -0
- package/dist/_pkgs/affine-gfx-connector/direction/direction-reveal.js +282 -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 +185 -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/element-renderer/index.js +1 -1
- package/dist/_pkgs/affine-gfx-connector/element-renderer/utils.js +1 -1
- 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 +68 -2
- 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-mindmap/adapter/markdown/index.js +1 -1
- package/dist/_pkgs/affine-gfx-mindmap/adapter/utils.js +1 -1
- package/dist/_pkgs/affine-gfx-mindmap/templates/index.js +583 -4
- package/dist/_pkgs/affine-gfx-mindmap/toolbar/mindmap-menu.js +23 -23
- package/dist/_pkgs/affine-gfx-mindmap/toolbar/mindmap-tool-button.js +5 -1
- package/dist/_pkgs/affine-gfx-mindmap/view/utils.js +1 -1
- package/dist/_pkgs/affine-gfx-note/overlay/overlay.js +1 -1
- package/dist/_pkgs/affine-gfx-note/toolbar/note-senior-button.js +1 -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/consts.js +1 -1
- package/dist/_pkgs/affine-gfx-shape/draggable/shape-draggable.js +1 -1
- package/dist/_pkgs/affine-gfx-shape/element-renderer/shape/polygon.js +17 -9
- package/dist/_pkgs/affine-gfx-shape/element-renderer/shape/utils.js +8 -3
- package/dist/_pkgs/affine-gfx-shape/element-renderer/shape-dom/index.js +48 -19
- package/dist/_pkgs/affine-gfx-shape/element-view.js +19 -12
- 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/overlay/polygon-drawing-overlay.js +1 -1
- package/dist/_pkgs/affine-gfx-shape/overlay/polygon-vertex-editing-overlay.js +12 -7
- package/dist/_pkgs/affine-gfx-shape/overlay/shape-overlay.js +1 -1
- package/dist/_pkgs/affine-gfx-shape/polygon-tool.js +4 -2
- package/dist/_pkgs/affine-gfx-shape/shape-tool.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 -15
- package/dist/_pkgs/affine-gfx-shape/view.js +3 -3
- package/dist/_pkgs/affine-gfx-template/builtin/other.js +66 -17
- package/dist/_pkgs/affine-gfx-template/toolbar/overlay-scrollbar.js +1 -1
- package/dist/_pkgs/affine-gfx-template/toolbar/template-panel.js +1 -1
- 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-gfx-text/toolbar/actions.js +1 -1
- 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/command.js +1 -1
- 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-inline-preset/command/format-block.js +1 -1
- package/dist/_pkgs/affine-inline-preset/command/format-native.js +2 -2
- package/dist/_pkgs/affine-inline-preset/command/format-text.js +1 -1
- package/dist/_pkgs/affine-inline-preset/inline-spec.js +1 -1
- package/dist/_pkgs/affine-inline-reference/reference-node/reference-node.js +1 -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/bpmn/node.d.ts +40 -7
- package/dist/_pkgs/affine-model/elements/bpmn/node.js +4 -2
- package/dist/_pkgs/affine-model/elements/bpmn/pool.d.ts +74 -17
- package/dist/_pkgs/affine-model/elements/bpmn/pool.js +55 -26
- package/dist/_pkgs/affine-model/elements/c4/board.d.ts +88 -0
- package/dist/_pkgs/affine-model/elements/c4/board.js +128 -0
- package/dist/_pkgs/affine-model/elements/c4/boundary.d.ts +63 -0
- package/dist/_pkgs/affine-model/elements/c4/boundary.js +134 -0
- package/dist/_pkgs/affine-model/elements/c4/index.d.ts +3 -0
- package/dist/_pkgs/affine-model/elements/c4/index.js +3 -0
- package/dist/_pkgs/affine-model/elements/c4/node.d.ts +97 -0
- package/dist/_pkgs/affine-model/elements/c4/node.js +130 -0
- package/dist/_pkgs/affine-model/elements/connector/connector.js +25 -1
- package/dist/_pkgs/affine-model/elements/context-map/context-map.d.ts +27 -0
- package/dist/_pkgs/affine-model/elements/context-map/context-map.js +94 -0
- package/dist/_pkgs/affine-model/elements/context-map/index.d.ts +1 -0
- package/dist/_pkgs/affine-model/elements/context-map/index.js +1 -0
- package/dist/_pkgs/affine-model/elements/core-domain/core-domain.d.ts +34 -17
- package/dist/_pkgs/affine-model/elements/core-domain/core-domain.js +28 -26
- 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/event-storming/event-storming.d.ts +36 -0
- package/dist/_pkgs/affine-model/elements/event-storming/event-storming.js +103 -0
- package/dist/_pkgs/affine-model/elements/event-storming/index.d.ts +1 -0
- package/dist/_pkgs/affine-model/elements/event-storming/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 +14 -1
- package/dist/_pkgs/affine-model/elements/index.js +4 -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/shape/api/polygon.js +2 -8
- 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/html/block-adapter.js +1 -1
- package/dist/_pkgs/affine-shared/adapters/markdown/block-adapter.js +1 -1
- package/dist/_pkgs/affine-shared/adapters/markdown/delta-converter.d.ts +6 -1
- package/dist/_pkgs/affine-shared/adapters/markdown/delta-converter.js +161 -3
- package/dist/_pkgs/affine-shared/adapters/markdown/markdown.js +5 -1
- package/dist/_pkgs/affine-shared/adapters/notion-html/block-adapter.js +1 -1
- package/dist/_pkgs/affine-shared/adapters/notion-html/delta-converter.js +1 -1
- package/dist/_pkgs/affine-shared/adapters/plain-text/block-adapter.js +1 -1
- package/dist/_pkgs/affine-shared/adapters/plain-text/delta-converter.js +1 -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 +283 -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/commands/model-crud/draft-selected-models.js +1 -1
- package/dist/_pkgs/affine-shared/commands/selection/focus-block-end.js +1 -1
- package/dist/_pkgs/affine-shared/commands/selection/focus-block-start.js +1 -1
- package/dist/_pkgs/affine-shared/consts/index.d.ts +10 -0
- package/dist/_pkgs/affine-shared/consts/index.js +10 -0
- package/dist/_pkgs/affine-shared/services/artefact-catalogue-service.d.ts +55 -0
- package/dist/_pkgs/affine-shared/services/artefact-catalogue-service.js +35 -0
- package/dist/_pkgs/affine-shared/services/audit-service.d.ts +311 -0
- package/dist/_pkgs/affine-shared/services/audit-service.js +228 -0
- package/dist/_pkgs/affine-shared/services/command-usage-service.d.ts +31 -0
- package/dist/_pkgs/affine-shared/services/command-usage-service.js +109 -0
- package/dist/_pkgs/affine-shared/services/comment-service/block-comment-manager.js +1 -1
- package/dist/_pkgs/affine-shared/services/doc-display-meta-service.js +1 -1
- 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/embed-iframe/embed-iframe-config.js +1 -1
- 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 +7 -0
- package/dist/_pkgs/affine-shared/services/index.js +7 -0
- package/dist/_pkgs/affine-shared/services/pivot-materiality-publisher.d.ts +129 -0
- package/dist/_pkgs/affine-shared/services/pivot-materiality-publisher.js +312 -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 +255 -1
- 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/toolbar-service/registry.d.ts +44 -0
- package/dist/_pkgs/affine-shared/services/toolbar-service/registry.js +161 -3
- 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 +256 -0
- package/dist/_pkgs/affine-shared/test-utils/affine-template.js +1 -1
- 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/edgeless.js +1 -1
- package/dist/_pkgs/affine-shared/utils/file/filesys.d.ts +34 -0
- package/dist/_pkgs/affine-shared/utils/file/filesys.js +48 -7
- 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 +25 -1
- package/dist/_pkgs/affine-widget-drag-handle/utils.js +1 -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-auto-connect/index.js +1 -1
- package/dist/_pkgs/affine-widget-edgeless-dragging-area/edgeless-dragging-area-rect.js +1 -1
- 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/catalogue/artefact-catalogue-default.d.ts +14 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/artefact-catalogue-default.js +40 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/artefact-catalogue-widget.d.ts +158 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/artefact-catalogue-widget.js +572 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/catalogue-groups.d.ts +46 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/catalogue-groups.js +66 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/chord-format.d.ts +13 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/chord-format.js +50 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/edgeless-toolbar.d.ts +6 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/edgeless-toolbar.js +15 -5
- package/dist/_pkgs/affine-widget-edgeless-toolbar/effects.d.ts +2 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/effects.js +2 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/extension/index.d.ts +7 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/index.d.ts +5 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/index.js +5 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/menu/command-menu.d.ts +57 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/menu/command-menu.js +140 -0
- package/dist/_pkgs/affine-widget-edgeless-toolbar/view.js +9 -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-keyboard-toolbar/keyboard-tool-panel.js +1 -1
- package/dist/_pkgs/affine-widget-linked-doc/import-doc/import-doc.js +1 -1
- 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-page-dragging-area/index.js +1 -1
- package/dist/_pkgs/affine-widget-remote-selection/doc/doc-remote-selection.js +1 -1
- 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 +40 -8
- package/dist/_pkgs/affine-widget-toolbar/utils.d.ts +146 -3
- package/dist/_pkgs/affine-widget-toolbar/utils.js +744 -58
- 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 +64 -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 +849 -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 +89 -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 +86 -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 +10 -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 +475 -0
- package/dist/_pkgs/std/extension/command-registry.js +431 -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/shortcut.js +2 -1
- 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/grid.js +1 -1
- 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 +442 -0
- package/dist/_pkgs/std/gfx/model/surface/element-model.js +510 -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 +117 -0
- package/dist/_pkgs/std/gfx/model/surface/surface-model.d.ts +70 -0
- package/dist/_pkgs/std/gfx/model/surface/surface-model.js +305 -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/selection.js +1 -1
- 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 +20 -2
- package/dist/_pkgs/std/inline/extensions/inline-manager.js +1 -1
- package/dist/_pkgs/std/inline/extensions/markdown-matcher.js +1 -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 +10 -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/command-usage.d.ts +23 -0
- package/dist/extensions/command-usage.js +37 -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 +35 -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 +186 -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 +200 -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
|
@@ -8,7 +8,19 @@ import type { ToolbarModule } from './module.js';
|
|
|
8
8
|
export declare const ToolbarModuleIdentifier: import("../../../global/di/types.js").ServiceIdentifier<ToolbarModule> & (<U extends ToolbarModule = ToolbarModule>(variant: import("../../../global/di/types.js").ServiceVariant) => import("../../../global/di/types.js").ServiceIdentifier<U>);
|
|
9
9
|
export declare const ToolbarRegistryIdentifier: import("../../../global/di/types.js").ServiceIdentifier<ToolbarRegistryExtension> & (<U extends ToolbarRegistryExtension = ToolbarRegistryExtension>(variant: import("../../../global/di/types.js").ServiceVariant) => import("../../../global/di/types.js").ServiceIdentifier<U>);
|
|
10
10
|
export declare function ToolbarModuleExtension(module: ToolbarModule): ExtensionType;
|
|
11
|
+
/** The flavour a DI variant speaks for, owner suffix and all. */
|
|
12
|
+
export declare function toolbarModuleFlavour(variant: string): string;
|
|
13
|
+
/**
|
|
14
|
+
* A second (or third) module on one flavour, named by who contributes it.
|
|
15
|
+
*
|
|
16
|
+
* The owner is never shown and never parsed back — it exists so two
|
|
17
|
+
* contributors cannot claim one DI variant. Use a stable, framework-scoped
|
|
18
|
+
* name (`c4-morph`), because it is the identity the container refuses
|
|
19
|
+
* duplicates on.
|
|
20
|
+
*/
|
|
21
|
+
export declare function toolbarModuleKey(flavour: string, owner: string): string;
|
|
11
22
|
export declare class ToolbarRegistryExtension extends Extension {
|
|
23
|
+
#private;
|
|
12
24
|
readonly std: BlockStdScope;
|
|
13
25
|
flavour$: import("@preact/signals-core").Signal<string>;
|
|
14
26
|
elementsMap$: import("@preact/signals-core").Signal<Map<string, GfxModel[]>>;
|
|
@@ -20,8 +32,40 @@ export declare class ToolbarRegistryExtension extends Extension {
|
|
|
20
32
|
placement$: import("@preact/signals-core").Signal<ToolbarPlacement>;
|
|
21
33
|
flags: Flags;
|
|
22
34
|
constructor(std: BlockStdScope);
|
|
35
|
+
/**
|
|
36
|
+
* Every module of every flavour, keyed by the DI variant it was registered
|
|
37
|
+
* under — which for a shared flavour carries an owner suffix. Read
|
|
38
|
+
* {@link modulesFor} instead unless the variant itself is the question.
|
|
39
|
+
*/
|
|
23
40
|
get modules(): Map<string, ToolbarModule>;
|
|
41
|
+
/**
|
|
42
|
+
* Every module contributing to one flavour's row — the bare-key module
|
|
43
|
+
* first, then the owner-suffixed ones in registration order.
|
|
44
|
+
*/
|
|
45
|
+
modulesFor(flavour: string): readonly ToolbarModule[];
|
|
46
|
+
/**
|
|
47
|
+
* The config registered under the flavour ITSELF, or `null`.
|
|
48
|
+
*
|
|
49
|
+
* Deliberately not "the first module of this flavour". The callers of this
|
|
50
|
+
* method ask a question about one identified registration — does this block
|
|
51
|
+
* flavour have a toolbar of its own, where does that toolbar sit — and an
|
|
52
|
+
* owner-suffixed contributor is an ADDITION to a row, not a stand-in for the
|
|
53
|
+
* module that defines it. Answering with a contributor would make the reply
|
|
54
|
+
* depend on which frameworks a host happened to switch on: with `wardley`
|
|
55
|
+
* off and `c4` on, `custom:affine:surface:group` has no bare module at all,
|
|
56
|
+
* and returning C4's morph there would let a placement (or a `has`-style
|
|
57
|
+
* probe) be decided by a menu that only some builds ship.
|
|
58
|
+
*/
|
|
24
59
|
getModuleBy(flavour: string): import("./config.js").ToolbarModuleConfig | null;
|
|
60
|
+
/**
|
|
61
|
+
* Where a flavour's row sits: the first module of it that actually SAYS.
|
|
62
|
+
*
|
|
63
|
+
* A row is one row however many modules contribute to it, so the placement
|
|
64
|
+
* is a property of the flavour and not of a registration — and a contributor
|
|
65
|
+
* that declares none must not be read as declaring the default. Scanning for
|
|
66
|
+
* the first module with a `placement` keeps the answer the same whether the
|
|
67
|
+
* framework that states it is registered first, last, or under an owner.
|
|
68
|
+
*/
|
|
25
69
|
getModulePlacement(flavour: string, fallback?: ToolbarPlacement): ToolbarPlacement;
|
|
26
70
|
static setup(di: Container): void;
|
|
27
71
|
}
|
|
@@ -12,6 +12,61 @@ export function ToolbarModuleExtension(module) {
|
|
|
12
12
|
},
|
|
13
13
|
};
|
|
14
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* What separates a flavour from the OWNER of one of its modules.
|
|
17
|
+
*
|
|
18
|
+
* A module is registered under one DI variant, and until now that variant WAS
|
|
19
|
+
* the flavour — so a flavour held at most two modules, its own key and its
|
|
20
|
+
* `custom:` twin, and a third contributor got a `DuplicateServiceDefinitionError`
|
|
21
|
+
* at setup rather than a menu entry. That ceiling was invisible until two
|
|
22
|
+
* frameworks needed the same element: `affine:surface:group` carries the native
|
|
23
|
+
* group operations, `custom:affine:surface:group` carries Wardley's
|
|
24
|
+
* qualification dropdown, and a C4 component IS a group — so C4's morph had
|
|
25
|
+
* nowhere at all to be registered.
|
|
26
|
+
*
|
|
27
|
+
* {@link toolbarModuleKey} gives it one. `custom:affine:surface:group#c4-morph`
|
|
28
|
+
* is a DISTINCT DI variant and therefore never collides, while
|
|
29
|
+
* {@link ToolbarRegistryExtension.modulesFor} still hands it to the row drawn
|
|
30
|
+
* for `custom:affine:surface:group`. Nothing about the existing keys changes:
|
|
31
|
+
* a module registered under a bare flavour is that flavour's first module, and
|
|
32
|
+
* every registration in the library before this one stays exactly as it was.
|
|
33
|
+
*/
|
|
34
|
+
const MODULE_OWNER_SEPARATOR = '#';
|
|
35
|
+
/** The flavour a DI variant speaks for, owner suffix and all. */
|
|
36
|
+
export function toolbarModuleFlavour(variant) {
|
|
37
|
+
const at = variant.indexOf(MODULE_OWNER_SEPARATOR);
|
|
38
|
+
return at < 0 ? variant : variant.slice(0, at);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* A second (or third) module on one flavour, named by who contributes it.
|
|
42
|
+
*
|
|
43
|
+
* The owner is never shown and never parsed back — it exists so two
|
|
44
|
+
* contributors cannot claim one DI variant. Use a stable, framework-scoped
|
|
45
|
+
* name (`c4-morph`), because it is the identity the container refuses
|
|
46
|
+
* duplicates on.
|
|
47
|
+
*/
|
|
48
|
+
export function toolbarModuleKey(flavour, owner) {
|
|
49
|
+
// Checked ALWAYS, and deliberately not behind a `process.env.NODE_ENV` dev
|
|
50
|
+
// guard. This library is published SOURCE-FIRST, so a `process` reference is
|
|
51
|
+
// not erased by anybody's build: a host consuming raw ESM would meet
|
|
52
|
+
// `ReferenceError: process is not defined` the moment a framework registered
|
|
53
|
+
// a shared toolbar module — i.e. at editor setup, on every document. The
|
|
54
|
+
// check costs one falsy test and one `includes` on a short string, run a
|
|
55
|
+
// handful of times per editor, which is nothing next to being the only
|
|
56
|
+
// `process` reference in the shipped source.
|
|
57
|
+
//
|
|
58
|
+
// What it prevents is silent: an empty owner produces `flavour#`, which is a
|
|
59
|
+
// DIFFERENT variant from `flavour` and would therefore register a second
|
|
60
|
+
// module the bare-key lookups below never see, and an owner carrying the
|
|
61
|
+
// separator makes `toolbarModuleFlavour` cut in the wrong place, filing the
|
|
62
|
+
// module under a flavour nobody draws.
|
|
63
|
+
if (!owner || owner.includes(MODULE_OWNER_SEPARATOR)) {
|
|
64
|
+
throw new Error(`toolbarModuleKey: owner must be non-empty and free of "${MODULE_OWNER_SEPARATOR}" (got ${JSON.stringify(owner)})`);
|
|
65
|
+
}
|
|
66
|
+
return `${flavour}${MODULE_OWNER_SEPARATOR}${owner}`;
|
|
67
|
+
}
|
|
68
|
+
/** One shared empty answer, so a miss allocates nothing and can be frozen. */
|
|
69
|
+
const NO_MODULES = Object.freeze([]);
|
|
15
70
|
export class ToolbarRegistryExtension extends Extension {
|
|
16
71
|
constructor(std) {
|
|
17
72
|
super();
|
|
@@ -21,18 +76,121 @@ export class ToolbarRegistryExtension extends Extension {
|
|
|
21
76
|
this.message$ = signal(null);
|
|
22
77
|
this.placement$ = signal('top');
|
|
23
78
|
this.flags = new Flags();
|
|
79
|
+
/**
|
|
80
|
+
* The modules grouped by the FLAVOUR they speak for, computed once.
|
|
81
|
+
*
|
|
82
|
+
* Once, because the registrations are fixed for the life of a container —
|
|
83
|
+
* they are DI impls, added at setup and never afterwards — while
|
|
84
|
+
* {@link modulesFor} is asked six times per toolbar render, and a toolbar
|
|
85
|
+
* re-renders on every selection change, every drag frame and every zoom
|
|
86
|
+
* notch.
|
|
87
|
+
*
|
|
88
|
+
* A module registered under the BARE flavour leads its group, and the rest
|
|
89
|
+
* follow in registration order. The order is what decides nothing much —
|
|
90
|
+
* `renderToolbar` sorts the merged actions by `placement`, `id` and `score`
|
|
91
|
+
* — and it is pinned all the same, because "which module answers a bare-key
|
|
92
|
+
* question" must not depend on which framework happened to be registered
|
|
93
|
+
* first.
|
|
94
|
+
*
|
|
95
|
+
* Each group is FROZEN: it is handed out by {@link modulesFor} on every
|
|
96
|
+
* render, and a caller that sorted or spliced the answer in place would
|
|
97
|
+
* silently rewrite the registry for every later render.
|
|
98
|
+
*/
|
|
99
|
+
this.#grouped = null;
|
|
24
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
* Every module of every flavour, keyed by the DI variant it was registered
|
|
103
|
+
* under — which for a shared flavour carries an owner suffix. Read
|
|
104
|
+
* {@link modulesFor} instead unless the variant itself is the question.
|
|
105
|
+
*/
|
|
25
106
|
get modules() {
|
|
26
107
|
return this.std.provider.getAll(ToolbarModuleIdentifier);
|
|
27
108
|
}
|
|
109
|
+
/**
|
|
110
|
+
* The modules grouped by the FLAVOUR they speak for, computed once.
|
|
111
|
+
*
|
|
112
|
+
* Once, because the registrations are fixed for the life of a container —
|
|
113
|
+
* they are DI impls, added at setup and never afterwards — while
|
|
114
|
+
* {@link modulesFor} is asked six times per toolbar render, and a toolbar
|
|
115
|
+
* re-renders on every selection change, every drag frame and every zoom
|
|
116
|
+
* notch.
|
|
117
|
+
*
|
|
118
|
+
* A module registered under the BARE flavour leads its group, and the rest
|
|
119
|
+
* follow in registration order. The order is what decides nothing much —
|
|
120
|
+
* `renderToolbar` sorts the merged actions by `placement`, `id` and `score`
|
|
121
|
+
* — and it is pinned all the same, because "which module answers a bare-key
|
|
122
|
+
* question" must not depend on which framework happened to be registered
|
|
123
|
+
* first.
|
|
124
|
+
*
|
|
125
|
+
* Each group is FROZEN: it is handed out by {@link modulesFor} on every
|
|
126
|
+
* render, and a caller that sorted or spliced the answer in place would
|
|
127
|
+
* silently rewrite the registry for every later render.
|
|
128
|
+
*/
|
|
129
|
+
#grouped;
|
|
130
|
+
get #groups() {
|
|
131
|
+
if (!this.#grouped) {
|
|
132
|
+
const groups = new Map();
|
|
133
|
+
for (const [variant, module] of this.modules) {
|
|
134
|
+
const flavour = toolbarModuleFlavour(variant);
|
|
135
|
+
const group = groups.get(flavour);
|
|
136
|
+
if (!group)
|
|
137
|
+
groups.set(flavour, [module]);
|
|
138
|
+
else if (variant === flavour)
|
|
139
|
+
group.unshift(module);
|
|
140
|
+
else
|
|
141
|
+
group.push(module);
|
|
142
|
+
}
|
|
143
|
+
for (const group of groups.values())
|
|
144
|
+
Object.freeze(group);
|
|
145
|
+
this.#grouped = groups;
|
|
146
|
+
}
|
|
147
|
+
return this.#grouped;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Every module contributing to one flavour's row — the bare-key module
|
|
151
|
+
* first, then the owner-suffixed ones in registration order.
|
|
152
|
+
*/
|
|
153
|
+
modulesFor(flavour) {
|
|
154
|
+
return this.#groups.get(flavour) ?? NO_MODULES;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* The config registered under the flavour ITSELF, or `null`.
|
|
158
|
+
*
|
|
159
|
+
* Deliberately not "the first module of this flavour". The callers of this
|
|
160
|
+
* method ask a question about one identified registration — does this block
|
|
161
|
+
* flavour have a toolbar of its own, where does that toolbar sit — and an
|
|
162
|
+
* owner-suffixed contributor is an ADDITION to a row, not a stand-in for the
|
|
163
|
+
* module that defines it. Answering with a contributor would make the reply
|
|
164
|
+
* depend on which frameworks a host happened to switch on: with `wardley`
|
|
165
|
+
* off and `c4` on, `custom:affine:surface:group` has no bare module at all,
|
|
166
|
+
* and returning C4's morph there would let a placement (or a `has`-style
|
|
167
|
+
* probe) be decided by a menu that only some builds ship.
|
|
168
|
+
*/
|
|
28
169
|
getModuleBy(flavour) {
|
|
29
|
-
return this.
|
|
170
|
+
return (this.modulesFor(flavour).find(module => module.id.variant === flavour)
|
|
171
|
+
?.config ?? null);
|
|
30
172
|
}
|
|
173
|
+
/**
|
|
174
|
+
* Where a flavour's row sits: the first module of it that actually SAYS.
|
|
175
|
+
*
|
|
176
|
+
* A row is one row however many modules contribute to it, so the placement
|
|
177
|
+
* is a property of the flavour and not of a registration — and a contributor
|
|
178
|
+
* that declares none must not be read as declaring the default. Scanning for
|
|
179
|
+
* the first module with a `placement` keeps the answer the same whether the
|
|
180
|
+
* framework that states it is registered first, last, or under an owner.
|
|
181
|
+
*/
|
|
31
182
|
getModulePlacement(flavour, fallback = 'top') {
|
|
32
|
-
return (this
|
|
33
|
-
this
|
|
183
|
+
return (this.#placementOf(`custom:${flavour}`) ??
|
|
184
|
+
this.#placementOf(flavour) ??
|
|
34
185
|
fallback);
|
|
35
186
|
}
|
|
187
|
+
#placementOf(flavour) {
|
|
188
|
+
for (const module of this.modulesFor(flavour)) {
|
|
189
|
+
if (module.config.placement)
|
|
190
|
+
return module.config.placement;
|
|
191
|
+
}
|
|
192
|
+
return undefined;
|
|
193
|
+
}
|
|
36
194
|
static setup(di) {
|
|
37
195
|
di.addImpl(ToolbarRegistryIdentifier, this, [StdIdentifier]);
|
|
38
196
|
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { BlockStdScope } from '../../../std/index.js';
|
|
2
|
+
import type { ExtensionType } from '../../../store/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* The library holds no prose: every human-readable string it produces —
|
|
5
|
+
* shortcut labels, role names, validation messages — is an i18n KEY
|
|
6
|
+
* (`com.labre.wardley.validation.change-arrow-against-evolution`). Historically those
|
|
7
|
+
* keys never had to be rendered here: `getShortcutManifest` hands them to the
|
|
8
|
+
* host, which owns the catalogue and the settings panel.
|
|
9
|
+
*
|
|
10
|
+
* PF7 is the first library UI that has to SHOW one — a violation bubble names
|
|
11
|
+
* the rule it reports. This is the seam for it, and nothing more: the host
|
|
12
|
+
* injects a catalogue, the library asks it for a key. There is no bundled
|
|
13
|
+
* catalogue, no locale negotiation and no pluralisation. Those belong to the
|
|
14
|
+
* host, which already runs an i18n stack.
|
|
15
|
+
*
|
|
16
|
+
* Mirrors `TelemetryExtension` / `KeymapOverrideExtension`: an optional
|
|
17
|
+
* host-injected service, absent by default, with a graceful fallback at every
|
|
18
|
+
* call site (see {@link translateKey}).
|
|
19
|
+
*
|
|
20
|
+
* A host builds its catalogue from `getTranslationKeyManifest()`
|
|
21
|
+
* (`@labre/affine/translations`) — every key the library can ask for, with its
|
|
22
|
+
* English fallback — rather than chasing call sites. See `./README.md`.
|
|
23
|
+
*/
|
|
24
|
+
export interface TranslationService {
|
|
25
|
+
/**
|
|
26
|
+
* Resolve an i18n key. Return `undefined` when the catalogue has no entry,
|
|
27
|
+
* so the caller can fall back rather than render an empty bubble.
|
|
28
|
+
*/
|
|
29
|
+
t(key: string): string | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* The language the catalogue is currently serving, as a BCP-47 tag
|
|
32
|
+
* (`'fr'`, `'en-GB'`). Optional, and NOT locale negotiation — the library
|
|
33
|
+
* still holds no catalogue and still chooses nothing.
|
|
34
|
+
*
|
|
35
|
+
* It exists for the one kind of statement the library cannot make without
|
|
36
|
+
* knowing the language: a suggestion ABOUT WORDS. A naming convention is a
|
|
37
|
+
* motif in one language (see `ReadingNamingConvention.lang`), and applying an
|
|
38
|
+
* English motif to a board named in French produces a confident wrong answer
|
|
39
|
+
* in both directions. The host that owns the catalogue is the only thing here
|
|
40
|
+
* that knows which language the user is working in; a host that does not say
|
|
41
|
+
* gets silence rather than a guess.
|
|
42
|
+
*/
|
|
43
|
+
language?: string;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* The primary subtag of the host's language, lower-cased — `'fr'` for
|
|
47
|
+
* `'fr-CA'` — or `undefined` when no host said.
|
|
48
|
+
*
|
|
49
|
+
* Primary subtag only: a naming motif is a property of a LANGUAGE, and no
|
|
50
|
+
* framework has a convention that holds in `en-GB` and not in `en-US`.
|
|
51
|
+
*/
|
|
52
|
+
export declare function hostLanguage(std: BlockStdScope): string | undefined;
|
|
53
|
+
export declare const TranslationProvider: import("../../../global/di/types.js").ServiceIdentifier<TranslationService> & (<U extends TranslationService = TranslationService>(variant: import("../../../global/di/types.js").ServiceVariant) => import("../../../global/di/types.js").ServiceIdentifier<U>);
|
|
54
|
+
export declare const TranslationExtension: (service: TranslationService) => ExtensionType;
|
|
55
|
+
/**
|
|
56
|
+
* Resolve `key`, falling back to `fallback` — which defaults to the key itself.
|
|
57
|
+
*
|
|
58
|
+
* Two deliberate cases:
|
|
59
|
+
*
|
|
60
|
+
* - **Framework prose** (a rule message, a role name) passes NO fallback. With
|
|
61
|
+
* no catalogue registered the raw key is shown. It is ugly, and that is the
|
|
62
|
+
* point: the library must never invent the wording of somebody else's rule,
|
|
63
|
+
* and a dangling key is a bug the host has to see rather than a sentence we
|
|
64
|
+
* made up.
|
|
65
|
+
* - **Chrome** (the word "Warning" on a severity chip) passes an English
|
|
66
|
+
* default, so a standalone playground reads correctly without a catalogue.
|
|
67
|
+
*/
|
|
68
|
+
export declare function translateKey(std: BlockStdScope, key: string, fallback?: string): string;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { createIdentifier } from '../../../global/di/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* The primary subtag of the host's language, lower-cased — `'fr'` for
|
|
4
|
+
* `'fr-CA'` — or `undefined` when no host said.
|
|
5
|
+
*
|
|
6
|
+
* Primary subtag only: a naming motif is a property of a LANGUAGE, and no
|
|
7
|
+
* framework has a convention that holds in `en-GB` and not in `en-US`.
|
|
8
|
+
*/
|
|
9
|
+
export function hostLanguage(std) {
|
|
10
|
+
const tag = std.getOptional(TranslationProvider)?.language;
|
|
11
|
+
if (typeof tag !== 'string' || tag.length === 0)
|
|
12
|
+
return undefined;
|
|
13
|
+
return tag.split('-')[0].toLowerCase();
|
|
14
|
+
}
|
|
15
|
+
export const TranslationProvider = createIdentifier('AffineTranslationService');
|
|
16
|
+
export const TranslationExtension = (service) => {
|
|
17
|
+
return {
|
|
18
|
+
setup: di => {
|
|
19
|
+
di.override(TranslationProvider, () => service);
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Resolve `key`, falling back to `fallback` — which defaults to the key itself.
|
|
25
|
+
*
|
|
26
|
+
* Two deliberate cases:
|
|
27
|
+
*
|
|
28
|
+
* - **Framework prose** (a rule message, a role name) passes NO fallback. With
|
|
29
|
+
* no catalogue registered the raw key is shown. It is ugly, and that is the
|
|
30
|
+
* point: the library must never invent the wording of somebody else's rule,
|
|
31
|
+
* and a dangling key is a bug the host has to see rather than a sentence we
|
|
32
|
+
* made up.
|
|
33
|
+
* - **Chrome** (the word "Warning" on a severity chip) passes an English
|
|
34
|
+
* default, so a standalone playground reads correctly without a catalogue.
|
|
35
|
+
*/
|
|
36
|
+
export function translateKey(std, key, fallback = key) {
|
|
37
|
+
const resolved = std.getOptional(TranslationProvider)?.t(key);
|
|
38
|
+
return resolved !== undefined && resolved !== '' ? resolved : fallback;
|
|
39
|
+
}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import type { BlockStdScope, FrameworkId } from '../../std/index.js';
|
|
2
|
+
import type { RoleDefs, RoleId } from '../../std/gfx/index.js';
|
|
3
|
+
import type { ExtensionType } from '../../store/index.js';
|
|
4
|
+
/**
|
|
5
|
+
* `'<framework>:<local>'` — e.g. `'wardley:component'`, `'wardley:nature'`.
|
|
6
|
+
*
|
|
7
|
+
* A **seed-time** validation aid only. Persisted values are plain `string`s and
|
|
8
|
+
* are never narrowed to this, because a document may legitimately carry an id
|
|
9
|
+
* whose def was removed, renamed or never seeded in this deployment — and it
|
|
10
|
+
* must still open.
|
|
11
|
+
*/
|
|
12
|
+
export type QualifiedId = `${string}:${string}`;
|
|
13
|
+
/** `'<tagId>/<local>'` — e.g. `'wardley:nature/data'`. */
|
|
14
|
+
export type TagValueId = string;
|
|
15
|
+
export type TagValueDef = {
|
|
16
|
+
/** `'<tagId>/<local>'`, e.g. `'wardley:nature/data'`. */
|
|
17
|
+
id: TagValueId;
|
|
18
|
+
/** Display label, already localized by the host. */
|
|
19
|
+
label: string;
|
|
20
|
+
description?: string;
|
|
21
|
+
/** Advisory colour token. The library may ignore it; it never affects layout. */
|
|
22
|
+
color?: string;
|
|
23
|
+
/** Hidden from pickers; still displayed when already present on an element. */
|
|
24
|
+
deprecated?: boolean;
|
|
25
|
+
};
|
|
26
|
+
export type TagDef = {
|
|
27
|
+
/** `'<framework>:<local>'`, e.g. `'wardley:nature'`. */
|
|
28
|
+
id: QualifiedId;
|
|
29
|
+
label: string;
|
|
30
|
+
description?: string;
|
|
31
|
+
/** How many values an element may carry for this tag. */
|
|
32
|
+
cardinality: 'single' | 'multi';
|
|
33
|
+
/** A closed list, or `'open'` for free-text values. */
|
|
34
|
+
values: TagValueDef[] | 'open';
|
|
35
|
+
/**
|
|
36
|
+
* Role ids this tag qualifies. `'*'` = every role of this framework.
|
|
37
|
+
* Specialisation applies: a tag on `'wardley:component'` also applies to
|
|
38
|
+
* every role whose `parent` chain reaches it — resolved with `roleIsA`
|
|
39
|
+
* against the framework's own `RoleDefs`, which the CALLER supplies.
|
|
40
|
+
*/
|
|
41
|
+
appliesTo: RoleId[] | '*';
|
|
42
|
+
/**
|
|
43
|
+
* Advisory only. A missing "required" tag is reported by the rules engine; it
|
|
44
|
+
* NEVER blocks a gesture, a save, or a document load.
|
|
45
|
+
*/
|
|
46
|
+
required?: boolean;
|
|
47
|
+
/** Ascending display order. Ties broken by seed order, then by id. */
|
|
48
|
+
order?: number;
|
|
49
|
+
deprecated?: boolean;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* One pack of tag definitions. Plain data — no functions, no classes, no
|
|
53
|
+
* `Symbol` — so the TS type IS the JSON schema and a pack can ship as a `.json`
|
|
54
|
+
* asset.
|
|
55
|
+
*
|
|
56
|
+
* `roles` is deliberately absent: roles are lib-side data modules shipped by
|
|
57
|
+
* the framework that renders them (`WARDLEY_ROLES`), not app-seeded, and never
|
|
58
|
+
* pass through this registry (ADR 0007 § 2bis).
|
|
59
|
+
*/
|
|
60
|
+
export type UniverseTagDefs = {
|
|
61
|
+
/** Bumped only on a breaking change to THIS format. Currently 1. */
|
|
62
|
+
formatVersion: 1;
|
|
63
|
+
/**
|
|
64
|
+
* Unique id of this *pack*, not of the framework: several packs may extend
|
|
65
|
+
* the same framework (a base Wardley pack + a client's private extension).
|
|
66
|
+
* Doubles as the DI variant.
|
|
67
|
+
*/
|
|
68
|
+
packId: string;
|
|
69
|
+
framework: FrameworkId;
|
|
70
|
+
label: string;
|
|
71
|
+
tags: TagDef[];
|
|
72
|
+
};
|
|
73
|
+
/** A seed-time problem, for a host diagnostics panel. Never thrown. */
|
|
74
|
+
export type UniverseDefIssue = {
|
|
75
|
+
severity: 'warning' | 'error';
|
|
76
|
+
code: 'invalid-id' | 'cross-framework-id' | 'duplicate-conflict' | 'unsupported-format-version';
|
|
77
|
+
id?: string;
|
|
78
|
+
message: string;
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* Merged, validated, read-only view over the registered packs. **TAGS ONLY.**
|
|
82
|
+
*/
|
|
83
|
+
export interface UniverseRegistry {
|
|
84
|
+
frameworks(): FrameworkId[];
|
|
85
|
+
/**
|
|
86
|
+
* Tags applying to a role, ordered. Role specialisation is resolved with
|
|
87
|
+
* `roleIsA` against the framework's own `RoleDefs`, which the caller supplies
|
|
88
|
+
* — the registry holds no role vocabulary of its own.
|
|
89
|
+
*/
|
|
90
|
+
tagsForRole(roleId: RoleId, defs: RoleDefs): TagDef[];
|
|
91
|
+
tag(id: string): TagDef | undefined;
|
|
92
|
+
/** Every merged tag, ordered. */
|
|
93
|
+
tags(): TagDef[];
|
|
94
|
+
/** Seed-time problems. Never thrown. */
|
|
95
|
+
issues(): UniverseDefIssue[];
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Variant-parameterized: **one registration per pack, keyed by `packId`** —
|
|
99
|
+
* the same mechanism as `SpotlightHostExtension(elementType)` and
|
|
100
|
+
* `ExternalGroupByConfigProvider(config.name)`.
|
|
101
|
+
*/
|
|
102
|
+
export declare const UniverseTagDefsProvider: import("../../global/di/types.js").ServiceIdentifier<UniverseTagDefs> & (<U extends UniverseTagDefs = UniverseTagDefs>(variant: import("../../global/di/types.js").ServiceVariant) => import("../../global/di/types.js").ServiceIdentifier<U>);
|
|
103
|
+
/**
|
|
104
|
+
* Seed one or more packs.
|
|
105
|
+
*
|
|
106
|
+
* `di.override`, **not** `di.addImpl`: `addImpl` throws
|
|
107
|
+
* `DuplicateServiceDefinitionError` when the same `[scope, identifier, variant]`
|
|
108
|
+
* is registered twice, while `override` works whether or not a prior
|
|
109
|
+
* registration exists. That is exactly the idempotency this needs — **distinct
|
|
110
|
+
* `packId`s accumulate, identical `packId`s replace** — so a host that
|
|
111
|
+
* re-registers on every render never throws and never grows the registry.
|
|
112
|
+
*
|
|
113
|
+
* Order stability is load-bearing and non-obvious: `getAll` returns a
|
|
114
|
+
* `Map<ServiceVariant, T>`, and `Map.set` on an EXISTING key keeps that key's
|
|
115
|
+
* original insertion position. Re-seeding a pack therefore updates it in place
|
|
116
|
+
* rather than moving it to the end, so a re-registration cannot silently flip
|
|
117
|
+
* which pack wins a cosmetic field.
|
|
118
|
+
*
|
|
119
|
+
* **All packs MUST be registered in the same DI scope.** `getAllRaw` falls back
|
|
120
|
+
* to the parent scope only when the current scope has no registration for the
|
|
121
|
+
* identifier AT ALL; it never merges across scopes. Seeding one pack from a
|
|
122
|
+
* `StoreExtension` and another from a `ViewExtension` would silently hide the
|
|
123
|
+
* first behind the second. The library cannot enforce this, so it is stated
|
|
124
|
+
* here and belongs in the host integration checklist.
|
|
125
|
+
*/
|
|
126
|
+
export declare function UniverseTagDefsExtension(defs: UniverseTagDefs | UniverseTagDefs[]): ExtensionType;
|
|
127
|
+
/**
|
|
128
|
+
* Merge every registered pack into one read-only view.
|
|
129
|
+
*
|
|
130
|
+
* Pure, so it is testable with literals and no container. The merge rules, in
|
|
131
|
+
* full:
|
|
132
|
+
*
|
|
133
|
+
* - **Union by id.** Several packs may extend the same universe.
|
|
134
|
+
* - **Additive fields merge:** `values` are unioned by value id, `appliesTo`
|
|
135
|
+
* arrays are unioned, and `'*'` absorbs any list.
|
|
136
|
+
* - **Cosmetic fields — last pack wins:** `label`, `description`, `color`,
|
|
137
|
+
* `order`, `required`, `deprecated`.
|
|
138
|
+
* - **Structural fields — first pack wins, conflict recorded:** `cardinality`,
|
|
139
|
+
* and `values: 'open'` vs a closed list. The conflict becomes a
|
|
140
|
+
* `duplicate-conflict` error issue and does NOT throw. A host that needs a
|
|
141
|
+
* deterministic winner should not define the same structural field twice; the
|
|
142
|
+
* registry reports the collision rather than guessing.
|
|
143
|
+
* - **Idempotent by value.** Activating a universe twice yields the same
|
|
144
|
+
* registry.
|
|
145
|
+
*/
|
|
146
|
+
export declare function buildUniverseRegistry(packs: readonly UniverseTagDefs[]): UniverseRegistry;
|
|
147
|
+
/**
|
|
148
|
+
* Whether a tag qualifies a role, following specialisation: a tag declared on
|
|
149
|
+
* `'wardley:component'` also applies to `'wardley:market'`, which specialises
|
|
150
|
+
* it. `'*'` matches every role of the tag's own framework and nothing else —
|
|
151
|
+
* a wildcard that crossed framework boundaries would make two taxonomies
|
|
152
|
+
* qualify each other's elements.
|
|
153
|
+
*/
|
|
154
|
+
export declare function tagAppliesToRole(def: TagDef, roleId: RoleId | undefined, defs: RoleDefs): boolean;
|
|
155
|
+
export declare function getUniverseRegistry(std: BlockStdScope): UniverseRegistry;
|