@grafloria/element 0.3.19 → 0.3.20
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/{src/index.ts → esm/src/index.js} +60 -569
- package/esm/src/lib/dashboard-kit/dashboard.js +590 -0
- package/esm/src/lib/dashboard-kit/grid-binder.js +1633 -0
- package/esm/src/lib/dashboard-kit/grid-mapping.js +164 -0
- package/esm/src/lib/dashboard-kit/index.js +8 -0
- package/{src/lib/dashboard-kit/styles.ts → esm/src/lib/dashboard-kit/styles.js} +8 -9
- package/esm/src/lib/dashboard-kit/widgets.js +379 -0
- package/esm/src/lib/diagram-kit/card.js +199 -0
- package/esm/src/lib/diagram-kit/editing.js +448 -0
- package/esm/src/lib/diagram-kit/er.js +160 -0
- package/esm/src/lib/diagram-kit/handles.js +312 -0
- package/esm/src/lib/diagram-kit/index.js +15 -0
- package/esm/src/lib/diagram-kit/join-guidance.js +322 -0
- package/esm/src/lib/diagram-kit/rows.js +144 -0
- package/{src/lib/diagram-kit/styles.ts → esm/src/lib/diagram-kit/styles.js} +10 -10
- package/esm/src/lib/diagram-kit/uml.js +135 -0
- package/esm/src/lib/diagram-kit/update.js +244 -0
- package/esm/src/lib/grafloria-flow-element.js +266 -0
- package/esm/src/lib/grafloria.js +69 -0
- package/esm/src/lib/load.js +252 -0
- package/esm/src/lib/node-type-registry.js +42 -0
- package/esm/src/lib/stencil-kit/builders.js +18 -0
- package/esm/src/lib/stencil-kit/card-builders.js +105 -0
- package/esm/src/lib/stencil-kit/index.js +9 -0
- package/esm/src/lib/stencil-kit/palette.js +427 -0
- package/esm/src/lib/stencil-kit/shape-data.js +537 -0
- package/{src/lib/stencil-kit/styles.ts → esm/src/lib/stencil-kit/styles.js} +9 -9
- package/package.json +12 -3
- package/jest.config.ts +0 -16
- package/project.json +0 -44
- package/src/front-door-probe.spec.ts +0 -173
- package/src/index.js.map +0 -1
- package/src/lib/dashboard-kit/dashboard.js.map +0 -1
- package/src/lib/dashboard-kit/dashboard.spec.ts +0 -821
- package/src/lib/dashboard-kit/dashboard.ts +0 -906
- package/src/lib/dashboard-kit/grid-binder.js.map +0 -1
- package/src/lib/dashboard-kit/grid-binder.ts +0 -1976
- package/src/lib/dashboard-kit/grid-mapping.js.map +0 -1
- package/src/lib/dashboard-kit/grid-mapping.spec.ts +0 -308
- package/src/lib/dashboard-kit/grid-mapping.ts +0 -283
- package/src/lib/dashboard-kit/index.js.map +0 -1
- package/src/lib/dashboard-kit/index.ts +0 -56
- package/src/lib/dashboard-kit/styles.js.map +0 -1
- package/src/lib/dashboard-kit/widgets.js.map +0 -1
- package/src/lib/dashboard-kit/widgets.spec.ts +0 -239
- package/src/lib/dashboard-kit/widgets.ts +0 -484
- package/src/lib/diagram-kit/card.js.map +0 -1
- package/src/lib/diagram-kit/card.ts +0 -219
- package/src/lib/diagram-kit/diagram-kit.spec.ts +0 -465
- package/src/lib/diagram-kit/editing.js.map +0 -1
- package/src/lib/diagram-kit/editing.spec.ts +0 -172
- package/src/lib/diagram-kit/editing.ts +0 -493
- package/src/lib/diagram-kit/er.js.map +0 -1
- package/src/lib/diagram-kit/er.ts +0 -246
- package/src/lib/diagram-kit/handles.js.map +0 -1
- package/src/lib/diagram-kit/handles.spec.ts +0 -224
- package/src/lib/diagram-kit/handles.ts +0 -375
- package/src/lib/diagram-kit/index.js.map +0 -1
- package/src/lib/diagram-kit/index.ts +0 -66
- package/src/lib/diagram-kit/join-guidance.js.map +0 -1
- package/src/lib/diagram-kit/join-guidance.spec.ts +0 -241
- package/src/lib/diagram-kit/join-guidance.ts +0 -390
- package/src/lib/diagram-kit/rows.js.map +0 -1
- package/src/lib/diagram-kit/rows.ts +0 -174
- package/src/lib/diagram-kit/styles.js.map +0 -1
- package/src/lib/diagram-kit/uml.js.map +0 -1
- package/src/lib/diagram-kit/uml.ts +0 -213
- package/src/lib/diagram-kit/update.js.map +0 -1
- package/src/lib/diagram-kit/update.spec.ts +0 -208
- package/src/lib/diagram-kit/update.ts +0 -324
- package/src/lib/grafloria-flow-element.js.map +0 -1
- package/src/lib/grafloria-flow-element.spec.ts +0 -290
- package/src/lib/grafloria-flow-element.ts +0 -298
- package/src/lib/grafloria.js.map +0 -1
- package/src/lib/grafloria.ts +0 -151
- package/src/lib/load.js.map +0 -1
- package/src/lib/load.spec.ts +0 -565
- package/src/lib/load.ts +0 -359
- package/src/lib/node-type-registry.js.map +0 -1
- package/src/lib/node-type-registry.ts +0 -76
- package/src/lib/stencil-kit/builders.js.map +0 -1
- package/src/lib/stencil-kit/builders.ts +0 -58
- package/src/lib/stencil-kit/card-builders.js.map +0 -1
- package/src/lib/stencil-kit/card-builders.ts +0 -113
- package/src/lib/stencil-kit/index.js.map +0 -1
- package/src/lib/stencil-kit/index.ts +0 -17
- package/src/lib/stencil-kit/palette.js.map +0 -1
- package/src/lib/stencil-kit/palette.ts +0 -482
- package/src/lib/stencil-kit/shape-data.js.map +0 -1
- package/src/lib/stencil-kit/shape-data.spec.ts +0 -470
- package/src/lib/stencil-kit/shape-data.ts +0 -680
- package/src/lib/stencil-kit/styles.js.map +0 -1
- package/src/libs/element/src/index.js.map +0 -1
- package/src/libs/element/src/lib/dashboard-kit/dashboard.js.map +0 -1
- package/src/libs/element/src/lib/dashboard-kit/grid-binder.js.map +0 -1
- package/src/libs/element/src/lib/dashboard-kit/grid-mapping.js.map +0 -1
- package/src/libs/element/src/lib/dashboard-kit/index.js.map +0 -1
- package/src/libs/element/src/lib/dashboard-kit/styles.js.map +0 -1
- package/src/libs/element/src/lib/dashboard-kit/widgets.js.map +0 -1
- package/src/libs/element/src/lib/diagram-kit/card.js.map +0 -1
- package/src/libs/element/src/lib/diagram-kit/editing.js.map +0 -1
- package/src/libs/element/src/lib/diagram-kit/er.js.map +0 -1
- package/src/libs/element/src/lib/diagram-kit/handles.js.map +0 -1
- package/src/libs/element/src/lib/diagram-kit/index.js.map +0 -1
- package/src/libs/element/src/lib/diagram-kit/join-guidance.js.map +0 -1
- package/src/libs/element/src/lib/diagram-kit/rows.js.map +0 -1
- package/src/libs/element/src/lib/diagram-kit/styles.js.map +0 -1
- package/src/libs/element/src/lib/diagram-kit/uml.js.map +0 -1
- package/src/libs/element/src/lib/diagram-kit/update.js.map +0 -1
- package/src/libs/element/src/lib/grafloria-flow-element.js.map +0 -1
- package/src/libs/element/src/lib/grafloria.js.map +0 -1
- package/src/libs/element/src/lib/load.js.map +0 -1
- package/src/libs/element/src/lib/node-type-registry.js.map +0 -1
- package/src/libs/element/src/lib/stencil-kit/builders.js.map +0 -1
- package/src/libs/element/src/lib/stencil-kit/card-builders.js.map +0 -1
- package/src/libs/element/src/lib/stencil-kit/index.js.map +0 -1
- package/src/libs/element/src/lib/stencil-kit/palette.js.map +0 -1
- package/src/libs/element/src/lib/stencil-kit/shape-data.js.map +0 -1
- package/src/libs/element/src/lib/stencil-kit/styles.js.map +0 -1
- package/src/libs/engine/src/adapters/component-adapter.interface.js.map +0 -1
- package/src/libs/engine/src/adapters/index.js.map +0 -1
- package/src/libs/engine/src/clipboard/ClipboardManager.js.map +0 -1
- package/src/libs/engine/src/clipboard/index.js.map +0 -1
- package/src/libs/engine/src/collab/apply-op.js.map +0 -1
- package/src/libs/engine/src/collab/capture.js.map +0 -1
- package/src/libs/engine/src/collab/index.js.map +0 -1
- package/src/libs/engine/src/collab/integrity.js.map +0 -1
- package/src/libs/engine/src/collab/lww.js.map +0 -1
- package/src/libs/engine/src/collab/op-log.js.map +0 -1
- package/src/libs/engine/src/collab/op.js.map +0 -1
- package/src/libs/engine/src/collab/replica.js.map +0 -1
- package/src/libs/engine/src/collab/undo.js.map +0 -1
- package/src/libs/engine/src/commands/Command.js.map +0 -1
- package/src/libs/engine/src/commands/CommandManager.js.map +0 -1
- package/src/libs/engine/src/commands/basic/AddGroupCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/AddLinkCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/AddNodeCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/AddToGroupCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/AlignCommands.js.map +0 -1
- package/src/libs/engine/src/commands/basic/CollapseGroupCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/CopyCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/CutCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/DeleteSelectionCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/DuplicateCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/ExpandGroupCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/MoveGroupCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/MoveNodeCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/NodeZOrderCommands.js.map +0 -1
- package/src/libs/engine/src/commands/basic/PasteCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/PortCommands.js.map +0 -1
- package/src/libs/engine/src/commands/basic/ReconnectLinkCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/RemoveFromGroupCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/RemoveGroupCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/RemoveLinkCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/RemoveNodeCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/ResizeNodeCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/RotateNodeCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/SetFlexItemCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/SetGridItemCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/SetLayoutCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/SetLinkDisplayLabelCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/SetLinkLabelCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/SetLinkLabelsCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/SetLinkPathTypeCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/SetLinkPointsCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/SetNodeDataCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/SetNodeLabelCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/SetNodeShapeConfigCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/SetNodeStyleCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/SetParentCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/SetStrokePointsCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/StrokeLifecycleCommands.js.map +0 -1
- package/src/libs/engine/src/commands/basic/UpdateLinkStyleCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/index.js.map +0 -1
- package/src/libs/engine/src/commands/basic/remapNodePortIds.js.map +0 -1
- package/src/libs/engine/src/commands/basic/resolveLinkNodeIds.js.map +0 -1
- package/src/libs/engine/src/commands/composite/BatchCommand.js.map +0 -1
- package/src/libs/engine/src/commands/composite/MacroCommand.js.map +0 -1
- package/src/libs/engine/src/commands/composite/index.js.map +0 -1
- package/src/libs/engine/src/commands/index.js.map +0 -1
- package/src/libs/engine/src/comments/comment-store.js.map +0 -1
- package/src/libs/engine/src/comments/index.js.map +0 -1
- package/src/libs/engine/src/comments/mentions.js.map +0 -1
- package/src/libs/engine/src/comments/read-state.js.map +0 -1
- package/src/libs/engine/src/comments/types.js.map +0 -1
- package/src/libs/engine/src/config/InteractionConfig.js.map +0 -1
- package/src/libs/engine/src/config/index.js.map +0 -1
- package/src/libs/engine/src/dsl/DSL.js.map +0 -1
- package/src/libs/engine/src/dsl/advanced/StyleParser.js.map +0 -1
- package/src/libs/engine/src/dsl/advanced/TemplateParser.js.map +0 -1
- package/src/libs/engine/src/dsl/advanced/index.js.map +0 -1
- package/src/libs/engine/src/dsl/detector/LayoutDetector.js.map +0 -1
- package/src/libs/engine/src/dsl/extended/BPMNGenerator.js.map +0 -1
- package/src/libs/engine/src/dsl/extended/BPMNParser.js.map +0 -1
- package/src/libs/engine/src/dsl/extended/ERDGenerator.js.map +0 -1
- package/src/libs/engine/src/dsl/extended/ERDParser.js.map +0 -1
- package/src/libs/engine/src/dsl/extended/ERDTransformer.js.map +0 -1
- package/src/libs/engine/src/dsl/extended/UMLGenerator.js.map +0 -1
- package/src/libs/engine/src/dsl/extended/UMLParser.js.map +0 -1
- package/src/libs/engine/src/dsl/extended/index.js.map +0 -1
- package/src/libs/engine/src/dsl/generator/DSLFormatter.js.map +0 -1
- package/src/libs/engine/src/dsl/generator/DSLGenerator.js.map +0 -1
- package/src/libs/engine/src/dsl/generator/DiagramAnalyzer.js.map +0 -1
- package/src/libs/engine/src/dsl/index.js.map +0 -1
- package/src/libs/engine/src/dsl/lexer/Lexer.js.map +0 -1
- package/src/libs/engine/src/dsl/mermaid/MermaidClass.js.map +0 -1
- package/src/libs/engine/src/dsl/mermaid/MermaidER.js.map +0 -1
- package/src/libs/engine/src/dsl/mermaid/MermaidState.js.map +0 -1
- package/src/libs/engine/src/dsl/mermaid/index.js.map +0 -1
- package/src/libs/engine/src/dsl/mermaid/layout.js.map +0 -1
- package/src/libs/engine/src/dsl/mermaid/lines.js.map +0 -1
- package/src/libs/engine/src/dsl/parser/Parser.js.map +0 -1
- package/src/libs/engine/src/dsl/sync/BidirectionalSync.js.map +0 -1
- package/src/libs/engine/src/dsl/sync/IntegratedSyncManager.js.map +0 -1
- package/src/libs/engine/src/dsl/sync/LayoutApplicator.js.map +0 -1
- package/src/libs/engine/src/dsl/sync/SyncStateManager.js.map +0 -1
- package/src/libs/engine/src/dsl/sync/index.js.map +0 -1
- package/src/libs/engine/src/dsl/transformer/ASTTransformer.js.map +0 -1
- package/src/libs/engine/src/dsl/types/ASTNode.js.map +0 -1
- package/src/libs/engine/src/dsl/types/Token.js.map +0 -1
- package/src/libs/engine/src/engine/DiagramEngine.js.map +0 -1
- package/src/libs/engine/src/engine/DiagramMode.js.map +0 -1
- package/src/libs/engine/src/engine/DiagramModeTypes.js.map +0 -1
- package/src/libs/engine/src/engine/ModeManager.js.map +0 -1
- package/src/libs/engine/src/engine/index.js.map +0 -1
- package/src/libs/engine/src/events/EventBus.js.map +0 -1
- package/src/libs/engine/src/events/index.js.map +0 -1
- package/src/libs/engine/src/index.js.map +0 -1
- package/src/libs/engine/src/interaction/GroupCollapseService.js.map +0 -1
- package/src/libs/engine/src/interaction/GroupMembershipService.js.map +0 -1
- package/src/libs/engine/src/interaction/SemanticMembershipService.js.map +0 -1
- package/src/libs/engine/src/interaction/SwimlaneService.js.map +0 -1
- package/src/libs/engine/src/interaction/index.js.map +0 -1
- package/src/libs/engine/src/interop/drawio/importDrawio.js.map +0 -1
- package/src/libs/engine/src/interop/drawio/index.js.map +0 -1
- package/src/libs/engine/src/interop/drawio/xml.js.map +0 -1
- package/src/libs/engine/src/layout/CompoundLayoutService.js.map +0 -1
- package/src/libs/engine/src/layout/ILayoutAlgorithm.js.map +0 -1
- package/src/libs/engine/src/layout/LayoutManager.js.map +0 -1
- package/src/libs/engine/src/layout/SmartSpacingCalculator.js.map +0 -1
- package/src/libs/engine/src/layout/ViewportTransform.js.map +0 -1
- package/src/libs/engine/src/layout/algorithms/ForceDirectedLayoutAlgorithm.js.map +0 -1
- package/src/libs/engine/src/layout/algorithms/GridLayoutAlgorithm.js.map +0 -1
- package/src/libs/engine/src/layout/algorithms/HierarchicalLayoutAlgorithm.js.map +0 -1
- package/src/libs/engine/src/layout/algorithms/HybridLayoutAlgorithm.js.map +0 -1
- package/src/libs/engine/src/layout/community-layout-adapter.js.map +0 -1
- package/src/libs/engine/src/layout/component-packing.js.map +0 -1
- package/src/libs/engine/src/layout/dagre-layout-adapter.js.map +0 -1
- package/src/libs/engine/src/layout/edge-bundling.interface.js.map +0 -1
- package/src/libs/engine/src/layout/elk-layout-adapter.js.map +0 -1
- package/src/libs/engine/src/layout/elk-loader.js.map +0 -1
- package/src/libs/engine/src/layout/force-layout-adapter.js.map +0 -1
- package/src/libs/engine/src/layout/grid-pack/grid-pack-engine.js.map +0 -1
- package/src/libs/engine/src/layout/incremental/mental-map.js.map +0 -1
- package/src/libs/engine/src/layout/incremental-layout.interface.js.map +0 -1
- package/src/libs/engine/src/layout/index.js.map +0 -1
- package/src/libs/engine/src/layout/layout-adapter.interface.js.map +0 -1
- package/src/libs/engine/src/layout/layout-auto-select.js.map +0 -1
- package/src/libs/engine/src/layout/layout-constraints.interface.js.map +0 -1
- package/src/libs/engine/src/layout/layout-graph.js.map +0 -1
- package/src/libs/engine/src/layout/layout-history.js.map +0 -1
- package/src/libs/engine/src/layout/layout-host.js.map +0 -1
- package/src/libs/engine/src/layout/layout-presets.js.map +0 -1
- package/src/libs/engine/src/layout/layout-quality-extended.js.map +0 -1
- package/src/libs/engine/src/layout/layout-quality-metrics.js.map +0 -1
- package/src/libs/engine/src/layout/layout-registry.js.map +0 -1
- package/src/libs/engine/src/layout/layout.service.js.map +0 -1
- package/src/libs/engine/src/layout/overlap-removal.js.map +0 -1
- package/src/libs/engine/src/layout/port-aware-layout.interface.js.map +0 -1
- package/src/libs/engine/src/layout/port-label-bridge.js.map +0 -1
- package/src/libs/engine/src/layout/portfolio-layouts.js.map +0 -1
- package/src/libs/engine/src/layout/rng.js.map +0 -1
- package/src/libs/engine/src/layout/spectral-layout-adapter.js.map +0 -1
- package/src/libs/engine/src/layout/steppable-layout.js.map +0 -1
- package/src/libs/engine/src/layout/subgraph-layout.interface.js.map +0 -1
- package/src/libs/engine/src/layout/sugiyama/layered-layout.js.map +0 -1
- package/src/libs/engine/src/layout/sugiyama/sugiyama.js.map +0 -1
- package/src/libs/engine/src/layout/tree-layout.js.map +0 -1
- package/src/libs/engine/src/layout/types.js.map +0 -1
- package/src/libs/engine/src/lib/performance/mobile-performance.service.js.map +0 -1
- package/src/libs/engine/src/models/DiagramEntity.js.map +0 -1
- package/src/libs/engine/src/models/DiagramModel.js.map +0 -1
- package/src/libs/engine/src/models/GroupModel.js.map +0 -1
- package/src/libs/engine/src/models/LinkModel.js.map +0 -1
- package/src/libs/engine/src/models/NodeModel.js.map +0 -1
- package/src/libs/engine/src/models/PortModel.js.map +0 -1
- package/src/libs/engine/src/models/StrokeModel.js.map +0 -1
- package/src/libs/engine/src/models/index.js.map +0 -1
- package/src/libs/engine/src/models/readonly-lock.js.map +0 -1
- package/src/libs/engine/src/performance/LRUCache.js.map +0 -1
- package/src/libs/engine/src/performance/PerformanceMonitor.js.map +0 -1
- package/src/libs/engine/src/performance/SpatialIndex.js.map +0 -1
- package/src/libs/engine/src/performance/index.js.map +0 -1
- package/src/libs/engine/src/plugins/PluginManager.js.map +0 -1
- package/src/libs/engine/src/plugins/index.js.map +0 -1
- package/src/libs/engine/src/ports/connection-rules.js.map +0 -1
- package/src/libs/engine/src/ports/dynamic-ports.js.map +0 -1
- package/src/libs/engine/src/ports/index.js.map +0 -1
- package/src/libs/engine/src/ports/port-groups.js.map +0 -1
- package/src/libs/engine/src/ports/port-type-registry.js.map +0 -1
- package/src/libs/engine/src/ports/port-types.js.map +0 -1
- package/src/libs/engine/src/rendering/HtmlTemplateRenderer.js.map +0 -1
- package/src/libs/engine/src/rendering/LemonadeJSRenderer.js.map +0 -1
- package/src/libs/engine/src/rendering/index.js.map +0 -1
- package/src/libs/engine/src/routing/LiveReroutingEngine.js.map +0 -1
- package/src/libs/engine/src/routing/ObstacleIndex.js.map +0 -1
- package/src/libs/engine/src/routing/ObstacleMap.js.map +0 -1
- package/src/libs/engine/src/routing/ObstacleMapBuilder.js.map +0 -1
- package/src/libs/engine/src/routing/PathSimplifier.js.map +0 -1
- package/src/libs/engine/src/routing/RoutingEngine.js.map +0 -1
- package/src/libs/engine/src/routing/algorithms/AStarRouter.js.map +0 -1
- package/src/libs/engine/src/routing/algorithms/DijkstraRouter.js.map +0 -1
- package/src/libs/engine/src/routing/algorithms/ElkRouter.js.map +0 -1
- package/src/libs/engine/src/routing/algorithms/ManhattanRouter.js.map +0 -1
- package/src/libs/engine/src/routing/algorithms/OrthogonalRouter.js.map +0 -1
- package/src/libs/engine/src/routing/algorithms/StraightRouter.js.map +0 -1
- package/src/libs/engine/src/routing/algorithms/VisibilityGraphRouter.js.map +0 -1
- package/src/libs/engine/src/routing/global/GlobalRouteSolver.js.map +0 -1
- package/src/libs/engine/src/routing/global/solver-host.js.map +0 -1
- package/src/libs/engine/src/routing/index.js.map +0 -1
- package/src/libs/engine/src/routing/types.js.map +0 -1
- package/src/libs/engine/src/selection/SelectionManager.js.map +0 -1
- package/src/libs/engine/src/selection/index.js.map +0 -1
- package/src/libs/engine/src/serialization/DiagramMigrations.js.map +0 -1
- package/src/libs/engine/src/serialization/DiagramValidator.js.map +0 -1
- package/src/libs/engine/src/serialization/DocumentEnvelope.js.map +0 -1
- package/src/libs/engine/src/serialization/Incremental.js.map +0 -1
- package/src/libs/engine/src/serialization/Serializer.js.map +0 -1
- package/src/libs/engine/src/serialization/Subgraph.js.map +0 -1
- package/src/libs/engine/src/serialization/TextFormat.js.map +0 -1
- package/src/libs/engine/src/state/ConnectionStateManager.js.map +0 -1
- package/src/libs/engine/src/state/DiagramStore.js.map +0 -1
- package/src/libs/engine/src/state/index.js.map +0 -1
- package/src/libs/engine/src/sync/awareness.js.map +0 -1
- package/src/libs/engine/src/sync/batcher.js.map +0 -1
- package/src/libs/engine/src/sync/causal-buffer.js.map +0 -1
- package/src/libs/engine/src/sync/index.js.map +0 -1
- package/src/libs/engine/src/sync/protocol.js.map +0 -1
- package/src/libs/engine/src/sync/sync-adapter.js.map +0 -1
- package/src/libs/engine/src/sync/transport.js.map +0 -1
- package/src/libs/engine/src/sync/transports/broadcast-channel.js.map +0 -1
- package/src/libs/engine/src/sync/transports/memory.js.map +0 -1
- package/src/libs/engine/src/sync/transports/unreliable.js.map +0 -1
- package/src/libs/engine/src/sync/transports/websocket.js.map +0 -1
- package/src/libs/engine/src/sync/version-vector.js.map +0 -1
- package/src/libs/engine/src/template-library/common-templates.js.map +0 -1
- package/src/libs/engine/src/template-library/data-viz-templates.js.map +0 -1
- package/src/libs/engine/src/template-library/erd-templates.js.map +0 -1
- package/src/libs/engine/src/template-library/index.js.map +0 -1
- package/src/libs/engine/src/template-library/integration.js.map +0 -1
- package/src/libs/engine/src/template-library/workflow-templates.js.map +0 -1
- package/src/libs/engine/src/templates/NodeFactory.js.map +0 -1
- package/src/libs/engine/src/templates/NodeTemplate.js.map +0 -1
- package/src/libs/engine/src/templates/TemplateLoader.js.map +0 -1
- package/src/libs/engine/src/templates/TemplateRegistry.js.map +0 -1
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-business-rule-task.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-end-event.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-error-event.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-exclusive-gateway.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-inclusive-gateway.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-intermediate-event.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-manual-task.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-message-event.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-parallel-gateway.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-script-task.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-service-task.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-start-event.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-task.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-timer-event.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-user-task.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/bpmn/index.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-associative-entity.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-attribute.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-bridge-entity.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-composite-attribute.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-derived-attribute.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-discriminator.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-entity.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-isa.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-key-attribute.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-multivalued-attribute.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-optional-attribute.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-partial-key.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-relationship.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-subtype.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-supertype.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-table.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-view.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-weak-entity.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-weak-relationship.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/index.js.map +0 -1
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-connector.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-data.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-decision.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-delay.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-display.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-document.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-input.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-operation.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-merge.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-or.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-predefined-process.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-preparation.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-process.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-stored-data.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-summing-junction.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-terminal.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/flowchart/index.js.map +0 -1
- package/src/libs/engine/src/templates/generated/index.js.map +0 -1
- package/src/libs/engine/src/templates/generated/register.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/index.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-abstract-class.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-activation.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-activity-partition.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-activity.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-actor.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-class.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-collaboration.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-component.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-datatype.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-decision.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-enum.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-final-node.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-final-state.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-fork.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-initial-node.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-initial-state.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-interface.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-join.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-lifeline.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-merge.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-node.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-note.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-object.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-package.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-part.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-port.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-primitive-type.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-signal.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-state.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-use-case.template.js.map +0 -1
- package/src/libs/engine/src/templates/index.js.map +0 -1
- package/src/libs/engine/src/templates/stencils.js.map +0 -1
- package/src/libs/engine/src/types/domain/bpmn.js.map +0 -1
- package/src/libs/engine/src/types/domain/erd.js.map +0 -1
- package/src/libs/engine/src/types/domain/flowchart.js.map +0 -1
- package/src/libs/engine/src/types/domain/index.js.map +0 -1
- package/src/libs/engine/src/types/domain/uml.js.map +0 -1
- package/src/libs/engine/src/types/event.types.js.map +0 -1
- package/src/libs/engine/src/types/geometry.types.js.map +0 -1
- package/src/libs/engine/src/types/index.js.map +0 -1
- package/src/libs/engine/src/types/layout.types.js.map +0 -1
- package/src/libs/engine/src/types/model.types.js.map +0 -1
- package/src/libs/engine/src/types/performance.types.js.map +0 -1
- package/src/libs/engine/src/types/plugin.types.js.map +0 -1
- package/src/libs/engine/src/utils/deep-clone.js.map +0 -1
- package/src/libs/engine/src/utils/geometry.js.map +0 -1
- package/src/libs/engine/src/utils/id.js.map +0 -1
- package/src/libs/engine/src/utils/index.js.map +0 -1
- package/src/libs/engine/src/utils/transform.js.map +0 -1
- package/src/libs/engine/src/validation/ConnectionGroupValidator.js.map +0 -1
- package/src/libs/engine/src/validation/TypeRegistry.js.map +0 -1
- package/src/libs/engine/src/validation/ValidationEngine.js.map +0 -1
- package/src/libs/engine/src/validation/index.js.map +0 -1
- package/src/libs/renderer/src/a11y/diagram-outline.js.map +0 -1
- package/src/libs/renderer/src/a11y/focus-containment.js.map +0 -1
- package/src/libs/renderer/src/a11y/graph-topology.js.map +0 -1
- package/src/libs/renderer/src/a11y/index.js.map +0 -1
- package/src/libs/renderer/src/a11y/live-region.js.map +0 -1
- package/src/libs/renderer/src/a11y/outline-view.js.map +0 -1
- package/src/libs/renderer/src/a11y/reduced-motion.js.map +0 -1
- package/src/libs/renderer/src/a11y/semantics.js.map +0 -1
- package/src/libs/renderer/src/canvas/canvas-context.js.map +0 -1
- package/src/libs/renderer/src/canvas/canvas-renderer.js.map +0 -1
- package/src/libs/renderer/src/canvas/dirty-region.js.map +0 -1
- package/src/libs/renderer/src/canvas/index.js.map +0 -1
- package/src/libs/renderer/src/canvas/path-geometry.js.map +0 -1
- package/src/libs/renderer/src/canvas/render-backend.js.map +0 -1
- package/src/libs/renderer/src/canvas/style-resolution.js.map +0 -1
- package/src/libs/renderer/src/canvas/tier-policy.js.map +0 -1
- package/src/libs/renderer/src/canvas/vnode-painter.js.map +0 -1
- package/src/libs/renderer/src/comments/comment-overlay.js.map +0 -1
- package/src/libs/renderer/src/comments/comment-panel.js.map +0 -1
- package/src/libs/renderer/src/comments/comment-pins.js.map +0 -1
- package/src/libs/renderer/src/comments/index.js.map +0 -1
- package/src/libs/renderer/src/export/assets.js.map +0 -1
- package/src/libs/renderer/src/export/batch.js.map +0 -1
- package/src/libs/renderer/src/export/bounds.js.map +0 -1
- package/src/libs/renderer/src/export/capture-host.js.map +0 -1
- package/src/libs/renderer/src/export/custom-nodes.js.map +0 -1
- package/src/libs/renderer/src/export/index.js.map +0 -1
- package/src/libs/renderer/src/export/node-raster.js.map +0 -1
- package/src/libs/renderer/src/export/pagination.js.map +0 -1
- package/src/libs/renderer/src/export/pdf/flate.js.map +0 -1
- package/src/libs/renderer/src/export/pdf/index.js.map +0 -1
- package/src/libs/renderer/src/export/pdf/pdf-export.js.map +0 -1
- package/src/libs/renderer/src/export/pdf/pdf-path.js.map +0 -1
- package/src/libs/renderer/src/export/pdf/pdf-primitives.js.map +0 -1
- package/src/libs/renderer/src/export/pdf/png.js.map +0 -1
- package/src/libs/renderer/src/export/raster.js.map +0 -1
- package/src/libs/renderer/src/export/round-trip.js.map +0 -1
- package/src/libs/renderer/src/export/scope.js.map +0 -1
- package/src/libs/renderer/src/export/style-flattener.js.map +0 -1
- package/src/libs/renderer/src/export/svg-export.js.map +0 -1
- package/src/libs/renderer/src/export/vnode-serializer.js.map +0 -1
- package/src/libs/renderer/src/ext/capabilities.js.map +0 -1
- package/src/libs/renderer/src/ext/capability-factory.js.map +0 -1
- package/src/libs/renderer/src/ext/components/attach.js.map +0 -1
- package/src/libs/renderer/src/ext/components/background.js.map +0 -1
- package/src/libs/renderer/src/ext/components/controls.js.map +0 -1
- package/src/libs/renderer/src/ext/components/minimap.js.map +0 -1
- package/src/libs/renderer/src/ext/diagram-registry.js.map +0 -1
- package/src/libs/renderer/src/ext/disposable.js.map +0 -1
- package/src/libs/renderer/src/ext/extension-host.js.map +0 -1
- package/src/libs/renderer/src/ext/index.js.map +0 -1
- package/src/libs/renderer/src/ext/link-pipeline.js.map +0 -1
- package/src/libs/renderer/src/ext/manifest.js.map +0 -1
- package/src/libs/renderer/src/ext/node-component.js.map +0 -1
- package/src/libs/renderer/src/ext/plugins-loader.js.map +0 -1
- package/src/libs/renderer/src/ext/portal.js.map +0 -1
- package/src/libs/renderer/src/ext/public-api.js.map +0 -1
- package/src/libs/renderer/src/ext/registry-scope.js.map +0 -1
- package/src/libs/renderer/src/ext/tools.js.map +0 -1
- package/src/libs/renderer/src/index.js.map +0 -1
- package/src/libs/renderer/src/instance/create-diagram.js.map +0 -1
- package/src/libs/renderer/src/instance/diagram-instance.js.map +0 -1
- package/src/libs/renderer/src/instance/dom-event-binder.js.map +0 -1
- package/src/libs/renderer/src/instance/index.js.map +0 -1
- package/src/libs/renderer/src/instance/layers.js.map +0 -1
- package/src/libs/renderer/src/instance/model-input.js.map +0 -1
- package/src/libs/renderer/src/instance/render-scheduler.js.map +0 -1
- package/src/libs/renderer/src/instance/wheel-scroll-yield.js.map +0 -1
- package/src/libs/renderer/src/interaction/ControlPointEditor.js.map +0 -1
- package/src/libs/renderer/src/interaction/WaypointEditor.js.map +0 -1
- package/src/libs/renderer/src/interaction/highlighters.js.map +0 -1
- package/src/libs/renderer/src/interaction/in-place-editor.js.map +0 -1
- package/src/libs/renderer/src/interaction/index.js.map +0 -1
- package/src/libs/renderer/src/interaction/ink-overlay.js.map +0 -1
- package/src/libs/renderer/src/interaction/interaction-controller.js.map +0 -1
- package/src/libs/renderer/src/interaction/keyboard-navigation.js.map +0 -1
- package/src/libs/renderer/src/interaction/selection-tools.js.map +0 -1
- package/src/libs/renderer/src/interaction/snapping.js.map +0 -1
- package/src/libs/renderer/src/interaction/touch-gestures.js.map +0 -1
- package/src/libs/renderer/src/interaction/whiteboard-tools.js.map +0 -1
- package/src/libs/renderer/src/lazy/host-culling.js.map +0 -1
- package/src/libs/renderer/src/lazy/index.js.map +0 -1
- package/src/libs/renderer/src/lazy/progressive-mounter.js.map +0 -1
- package/src/libs/renderer/src/lazy/types.js.map +0 -1
- package/src/libs/renderer/src/lazy/view-lifecycle.js.map +0 -1
- package/src/libs/renderer/src/perf/index.js.map +0 -1
- package/src/libs/renderer/src/perf/perf-hud.js.map +0 -1
- package/src/libs/renderer/src/perf/quality-governor.js.map +0 -1
- package/src/libs/renderer/src/platform/index.js.map +0 -1
- package/src/libs/renderer/src/platform/platform.js.map +0 -1
- package/src/libs/renderer/src/presence/bind-presence.js.map +0 -1
- package/src/libs/renderer/src/presence/index.js.map +0 -1
- package/src/libs/renderer/src/presence/presence-overlay.js.map +0 -1
- package/src/libs/renderer/src/presentation/index.js.map +0 -1
- package/src/libs/renderer/src/presentation/presentation.js.map +0 -1
- package/src/libs/renderer/src/presentation/viewport-channel.js.map +0 -1
- package/src/libs/renderer/src/services/animation-lifecycle.js.map +0 -1
- package/src/libs/renderer/src/services/animation-performance.service.js.map +0 -1
- package/src/libs/renderer/src/services/animation-sequencer.js.map +0 -1
- package/src/libs/renderer/src/services/animation.service.js.map +0 -1
- package/src/libs/renderer/src/services/custom-animation-registry.js.map +0 -1
- package/src/libs/renderer/src/ssr/index.js.map +0 -1
- package/src/libs/renderer/src/ssr/render-to-static.js.map +0 -1
- package/src/libs/renderer/src/svg/ArrowRenderer.js.map +0 -1
- package/src/libs/renderer/src/svg/JumpPointDetector.js.map +0 -1
- package/src/libs/renderer/src/svg/JumpPointRenderer.js.map +0 -1
- package/src/libs/renderer/src/svg/LabelRenderer.js.map +0 -1
- package/src/libs/renderer/src/svg/auto-size.js.map +0 -1
- package/src/libs/renderer/src/svg/channel-nudging.js.map +0 -1
- package/src/libs/renderer/src/svg/edge-optimizer.js.map +0 -1
- package/src/libs/renderer/src/svg/edge-templates.js.map +0 -1
- package/src/libs/renderer/src/svg/html-node.js.map +0 -1
- package/src/libs/renderer/src/svg/index.js.map +0 -1
- package/src/libs/renderer/src/svg/link-fanout.js.map +0 -1
- package/src/libs/renderer/src/svg/link-hit-test.js.map +0 -1
- package/src/libs/renderer/src/svg/motion-tracker.js.map +0 -1
- package/src/libs/renderer/src/svg/node-sizing.js.map +0 -1
- package/src/libs/renderer/src/svg/node-toolbar.js.map +0 -1
- package/src/libs/renderer/src/svg/notation-shapes.js.map +0 -1
- package/src/libs/renderer/src/svg/paint-servers.js.map +0 -1
- package/src/libs/renderer/src/svg/panel.js.map +0 -1
- package/src/libs/renderer/src/svg/path-outline.js.map +0 -1
- package/src/libs/renderer/src/svg/port-glyph.js.map +0 -1
- package/src/libs/renderer/src/svg/port-label.js.map +0 -1
- package/src/libs/renderer/src/svg/port-layout.js.map +0 -1
- package/src/libs/renderer/src/svg/port-positioning.js.map +0 -1
- package/src/libs/renderer/src/svg/port-spots.js.map +0 -1
- package/src/libs/renderer/src/svg/route-memo.js.map +0 -1
- package/src/libs/renderer/src/svg/route-solver-bridge.js.map +0 -1
- package/src/libs/renderer/src/svg/shape-registry.js.map +0 -1
- package/src/libs/renderer/src/svg/stroke-layer.js.map +0 -1
- package/src/libs/renderer/src/svg/svg-renderer.js.map +0 -1
- package/src/libs/renderer/src/svg/text-block.js.map +0 -1
- package/src/libs/renderer/src/themes/color-mode.js.map +0 -1
- package/src/libs/renderer/src/themes/contrast.js.map +0 -1
- package/src/libs/renderer/src/themes/default-dark-theme.js.map +0 -1
- package/src/libs/renderer/src/themes/default-light-theme.js.map +0 -1
- package/src/libs/renderer/src/themes/default-theme-set.js.map +0 -1
- package/src/libs/renderer/src/themes/high-contrast-theme.js.map +0 -1
- package/src/libs/renderer/src/themes/index.js.map +0 -1
- package/src/libs/renderer/src/themes/style-cascade.js.map +0 -1
- package/src/libs/renderer/src/themes/style-registry.js.map +0 -1
- package/src/libs/renderer/src/themes/theme-a11y.js.map +0 -1
- package/src/libs/renderer/src/themes/theme-css.js.map +0 -1
- package/src/libs/renderer/src/themes/theme-ref.js.map +0 -1
- package/src/libs/renderer/src/themes/theme-vars.js.map +0 -1
- package/src/libs/renderer/src/themes/token-bridge.js.map +0 -1
- package/src/libs/renderer/src/types/geometry.types.js.map +0 -1
- package/src/libs/renderer/src/types/index.js.map +0 -1
- package/src/libs/renderer/src/types/property-schema/conditions.js.map +0 -1
- package/src/libs/renderer/src/types/property-schema/editor-types.js.map +0 -1
- package/src/libs/renderer/src/types/property-schema/groups.js.map +0 -1
- package/src/libs/renderer/src/types/property-schema/index.js.map +0 -1
- package/src/libs/renderer/src/types/property-schema/property-definition.js.map +0 -1
- package/src/libs/renderer/src/types/property-schema/schema.js.map +0 -1
- package/src/libs/renderer/src/types/property-schema/validation.js.map +0 -1
- package/src/libs/renderer/src/types/renderer.interface.js.map +0 -1
- package/src/libs/renderer/src/types/theme.types.js.map +0 -1
- package/src/libs/renderer/src/types/vnode.types.js.map +0 -1
- package/src/libs/renderer/src/utils/animation-presets.js.map +0 -1
- package/src/libs/renderer/src/utils/animation-priority.js.map +0 -1
- package/src/libs/renderer/src/utils/animation-utils.js.map +0 -1
- package/src/libs/renderer/src/utils/lru-cache.js.map +0 -1
- package/src/libs/renderer/src/viewport/index.js.map +0 -1
- package/src/libs/renderer/src/viewport/viewport-controller.js.map +0 -1
- package/src/libs/renderer/src/vnode/container-id-generator.js.map +0 -1
- package/src/libs/renderer/src/vnode/foreign-object.js.map +0 -1
- package/src/libs/renderer/src/vnode/index.js.map +0 -1
- package/src/libs/renderer/src/vnode/patch.js.map +0 -1
- package/src/reachability.spec.ts +0 -173
- package/tsconfig.esm.json +0 -9
- package/tsconfig.json +0 -24
- package/tsconfig.lib.json +0 -10
- package/tsconfig.spec.json +0 -14
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"grid-mapping.js","sourceRoot":"","sources":["grid-mapping.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,308 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Dashboard-kit pure math — the acceptance suite for the binder's DOM-free
|
|
3
|
-
* parts: cell↔pixel mapping in BOTH sizing modes, the GridItemConfig↔cell
|
|
4
|
-
* round-trip, and gesture commit-batch construction.
|
|
5
|
-
*
|
|
6
|
-
* The numbers are the demo page's real geometry (TAB_W 1180 × TAB_H 660,
|
|
7
|
-
* gap/padding 14, 12 columns) so a failure reads against the exact board the
|
|
8
|
-
* user drives.
|
|
9
|
-
*
|
|
10
|
-
* MUTATION-PROVEN asserts (each mutant applied, run, seen red, reverted):
|
|
11
|
-
* K1 rowHeightFor's fit formula: dropping the `(rows-1)*gap` term
|
|
12
|
-
* (`(design - 2*padding) / rows`) → 'fit derives the exact overview row
|
|
13
|
-
* height' fails (121.0 ≠ 115.2) and the round-trip test fails.
|
|
14
|
-
* K2 buildCommitCommands' MoveNodeCommand old-position capture: passing
|
|
15
|
-
* `d.posAfter` as oldPosition → 'move command records the exact inverse'
|
|
16
|
-
* fails (serialized oldPosition equals the new one).
|
|
17
|
-
*/
|
|
18
|
-
import { MoveNodeCommand, ResizeNodeCommand, SetGridItemCommand } from '@grafloria/engine';
|
|
19
|
-
import {
|
|
20
|
-
boardHeightFor,
|
|
21
|
-
buildCommitCommands,
|
|
22
|
-
cellFromGridItem,
|
|
23
|
-
cellToRect,
|
|
24
|
-
columnUnitFor,
|
|
25
|
-
gridItemFromCell,
|
|
26
|
-
pointToCell,
|
|
27
|
-
rowHeightFor,
|
|
28
|
-
sizeToSpan,
|
|
29
|
-
type DashboardGridGeometry,
|
|
30
|
-
type TileDelta,
|
|
31
|
-
type WorldRect,
|
|
32
|
-
} from './grid-mapping';
|
|
33
|
-
|
|
34
|
-
const FRAME: WorldRect = { x: 0, y: 0, width: 1180, height: 660 };
|
|
35
|
-
|
|
36
|
-
const geom = (overrides: Partial<DashboardGridGeometry> = {}): DashboardGridGeometry => ({
|
|
37
|
-
columns: 12,
|
|
38
|
-
gap: 14,
|
|
39
|
-
padding: 14,
|
|
40
|
-
sizing: 'fit',
|
|
41
|
-
baseRowHeight: 130,
|
|
42
|
-
minRowHeight: 28,
|
|
43
|
-
designHeight: 660,
|
|
44
|
-
...overrides,
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
describe('dashboard-kit mapping — row height and board height', () => {
|
|
48
|
-
it('fit derives the exact overview row height (5 rows in a 660 board)', () => {
|
|
49
|
-
// 660 = 2*14 + 5*rowH + 4*14 → rowH = (660 - 28 - 56) / 5 = 115.2 (K1)
|
|
50
|
-
expect(rowHeightFor(geom(), 5)).toBeCloseTo(115.2, 5);
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
it('fit squeezes as rows grow, and stops at the minRowHeight floor', () => {
|
|
54
|
-
const g = geom();
|
|
55
|
-
expect(rowHeightFor(g, 6)).toBeLessThan(rowHeightFor(g, 5));
|
|
56
|
-
expect(rowHeightFor(g, 500)).toBe(g.minRowHeight);
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
it('grow keeps the base row height regardless of rows', () => {
|
|
60
|
-
const g = geom({ sizing: 'grow' });
|
|
61
|
-
expect(rowHeightFor(g, 1)).toBe(130);
|
|
62
|
-
expect(rowHeightFor(g, 50)).toBe(130);
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
it('fit board height IS the design height; grow extends but never shrinks below it', () => {
|
|
66
|
-
expect(boardHeightFor(geom(), 12)).toBe(660);
|
|
67
|
-
const g = geom({ sizing: 'grow' });
|
|
68
|
-
// 5 rows at 130: 2*14 + 5*130 + 4*14 = 734 > 660 → grows.
|
|
69
|
-
expect(boardHeightFor(g, 5)).toBe(734);
|
|
70
|
-
// 3 rows at 130: 2*14 + 3*130 + 2*14 = 446 < 660 → design height holds.
|
|
71
|
-
expect(boardHeightFor(g, 3)).toBe(660);
|
|
72
|
-
});
|
|
73
|
-
});
|
|
74
|
-
|
|
75
|
-
describe('dashboard-kit mapping — cell ↔ pixel round-trip (both modes)', () => {
|
|
76
|
-
const cases: Array<{ mode: 'fit' | 'grow'; rows: number }> = [
|
|
77
|
-
{ mode: 'fit', rows: 5 },
|
|
78
|
-
{ mode: 'fit', rows: 3 },
|
|
79
|
-
{ mode: 'grow', rows: 5 },
|
|
80
|
-
{ mode: 'grow', rows: 8 },
|
|
81
|
-
];
|
|
82
|
-
|
|
83
|
-
it.each(cases)('cellToRect → pointToCell/sizeToSpan is the identity ($mode, $rows rows)', ({ mode, rows }) => {
|
|
84
|
-
const g = geom({ sizing: mode });
|
|
85
|
-
for (const cell of [
|
|
86
|
-
{ x: 0, y: 0, w: 3, h: 1 },
|
|
87
|
-
{ x: 8, y: 1, w: 4, h: 2 },
|
|
88
|
-
{ x: 0, y: 3, w: 12, h: 2 },
|
|
89
|
-
{ x: 5, y: 2, w: 1, h: 1 },
|
|
90
|
-
]) {
|
|
91
|
-
const r = cellToRect(cell, FRAME, g, rows);
|
|
92
|
-
expect(pointToCell(r.x, r.y, FRAME, g, rows)).toEqual({ x: cell.x, y: cell.y });
|
|
93
|
-
expect(sizeToSpan(r.width, r.height, FRAME, g, rows)).toEqual({ w: cell.w, h: cell.h });
|
|
94
|
-
}
|
|
95
|
-
});
|
|
96
|
-
|
|
97
|
-
it('projects the demo line chart (span 8 of 12) to the flex-identical width', () => {
|
|
98
|
-
// colUnit = (1180 - 28 - 154) / 12 = 83.1666…; span8 = 8*cu + 7*14
|
|
99
|
-
const g = geom();
|
|
100
|
-
expect(columnUnitFor(g, FRAME.width)).toBeCloseTo(83.1667, 3);
|
|
101
|
-
const r = cellToRect({ x: 0, y: 1, w: 8, h: 2 }, FRAME, g, 5);
|
|
102
|
-
expect(r.width).toBeCloseTo(8 * 83.16667 + 7 * 14, 2);
|
|
103
|
-
expect(r.x).toBeCloseTo(14, 5);
|
|
104
|
-
// y = padding + 1 * (rowH + gap) = 14 + 129.2
|
|
105
|
-
expect(r.y).toBeCloseTo(14 + 115.2 + 14, 3);
|
|
106
|
-
});
|
|
107
|
-
|
|
108
|
-
it('midpoint rounding: a tile dragged just under half a pitch stays; past it, crosses', () => {
|
|
109
|
-
const g = geom();
|
|
110
|
-
const r = cellToRect({ x: 3, y: 0, w: 3, h: 1 }, FRAME, g, 5);
|
|
111
|
-
const pitch = columnUnitFor(g, FRAME.width) + g.gap;
|
|
112
|
-
expect(pointToCell(r.x + pitch * 0.49, r.y, FRAME, g, 5).x).toBe(3);
|
|
113
|
-
expect(pointToCell(r.x + pitch * 0.51, r.y, FRAME, g, 5).x).toBe(4);
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
it('projection is frame-relative: a parked board (x = -20000) projects off-canvas', () => {
|
|
117
|
-
const parked: WorldRect = { ...FRAME, x: -20000 };
|
|
118
|
-
const r = cellToRect({ x: 0, y: 0, w: 3, h: 1 }, parked, geom(), 5);
|
|
119
|
-
expect(r.x).toBe(-20000 + 14);
|
|
120
|
-
});
|
|
121
|
-
});
|
|
122
|
-
|
|
123
|
-
// ===========================================================================
|
|
124
|
-
// RTL — the model is direction-agnostic; ONLY this mapping mirrors.
|
|
125
|
-
//
|
|
126
|
-
// Every assert below is written as a comparison between the SAME cells mapped
|
|
127
|
-
// LTR and RTL, so what is being proved is the mirror relationship itself
|
|
128
|
-
// rather than a pile of hand-computed pixels.
|
|
129
|
-
// ===========================================================================
|
|
130
|
-
describe('dashboard-kit mapping — RTL mirrors pixels, never cells', () => {
|
|
131
|
-
const CELLS = [
|
|
132
|
-
{ x: 0, y: 0, w: 3, h: 1 },
|
|
133
|
-
{ x: 8, y: 1, w: 4, h: 2 },
|
|
134
|
-
{ x: 0, y: 3, w: 12, h: 2 },
|
|
135
|
-
{ x: 5, y: 2, w: 1, h: 1 },
|
|
136
|
-
];
|
|
137
|
-
|
|
138
|
-
it('cell x=0 renders at the RIGHT edge, and the whole row mirrors', () => {
|
|
139
|
-
const ltr = geom();
|
|
140
|
-
const rtl = geom({ rtl: true });
|
|
141
|
-
const a = cellToRect({ x: 0, y: 0, w: 3, h: 1 }, FRAME, rtl, 5);
|
|
142
|
-
// Its RIGHT edge sits one padding in from the board's right edge…
|
|
143
|
-
expect(a.x + a.width).toBeCloseTo(FRAME.x + FRAME.width - 14, 5);
|
|
144
|
-
// …which is the exact mirror of where LTR puts its LEFT edge.
|
|
145
|
-
const aL = cellToRect({ x: 0, y: 0, w: 3, h: 1 }, FRAME, ltr, 5);
|
|
146
|
-
expect(aL.x).toBeCloseTo(14, 5);
|
|
147
|
-
// The last column mirrors to the left edge.
|
|
148
|
-
const z = cellToRect({ x: 9, y: 0, w: 3, h: 1 }, FRAME, rtl, 5);
|
|
149
|
-
expect(z.x).toBeCloseTo(14, 5);
|
|
150
|
-
});
|
|
151
|
-
|
|
152
|
-
it('is an exact mirror of LTR for every cell: same size, mirrored x, same y', () => {
|
|
153
|
-
const ltr = geom();
|
|
154
|
-
const rtl = geom({ rtl: true });
|
|
155
|
-
for (const cell of CELLS) {
|
|
156
|
-
const l = cellToRect(cell, FRAME, ltr, 5);
|
|
157
|
-
const r = cellToRect(cell, FRAME, rtl, 5);
|
|
158
|
-
expect(r.width).toBeCloseTo(l.width, 6);
|
|
159
|
-
expect(r.height).toBeCloseTo(l.height, 6);
|
|
160
|
-
expect(r.y).toBeCloseTo(l.y, 6); // rows are direction-agnostic
|
|
161
|
-
// mirror identity: distance-from-right in RTL == distance-from-left in LTR
|
|
162
|
-
const fromRight = FRAME.x + FRAME.width - (r.x + r.width);
|
|
163
|
-
const fromLeft = l.x - FRAME.x;
|
|
164
|
-
expect(fromRight).toBeCloseTo(fromLeft, 6);
|
|
165
|
-
}
|
|
166
|
-
});
|
|
167
|
-
|
|
168
|
-
it('cellToRect → pointToCell is the identity in RTL too (the drag contract)', () => {
|
|
169
|
-
const g = geom({ rtl: true });
|
|
170
|
-
for (const cell of CELLS) {
|
|
171
|
-
const r = cellToRect(cell, FRAME, g, 5);
|
|
172
|
-
// The span MUST be passed: mirrored, the leading edge is the right one.
|
|
173
|
-
expect(pointToCell(r.x, r.y, FRAME, g, 5, cell.w)).toEqual({ x: cell.x, y: cell.y });
|
|
174
|
-
// Spans themselves never mirror.
|
|
175
|
-
expect(sizeToSpan(r.width, r.height, FRAME, g, 5)).toEqual({ w: cell.w, h: cell.h });
|
|
176
|
-
}
|
|
177
|
-
});
|
|
178
|
-
|
|
179
|
-
it('midpoint rounding mirrors: dragging LEFT in RTL advances the cell', () => {
|
|
180
|
-
const g = geom({ rtl: true });
|
|
181
|
-
const cell = { x: 3, y: 0, w: 3, h: 1 };
|
|
182
|
-
const r = cellToRect(cell, FRAME, g, 5);
|
|
183
|
-
const pitch = columnUnitFor(g, FRAME.width) + g.gap;
|
|
184
|
-
// A nudge leftwards past half a pitch moves to the NEXT cell (x+1), because
|
|
185
|
-
// cells advance leftwards; the same nudge rightwards goes back to x-1.
|
|
186
|
-
expect(pointToCell(r.x - pitch * 0.51, r.y, FRAME, g, 5, cell.w).x).toBe(4);
|
|
187
|
-
expect(pointToCell(r.x - pitch * 0.49, r.y, FRAME, g, 5, cell.w).x).toBe(3);
|
|
188
|
-
expect(pointToCell(r.x + pitch * 0.51, r.y, FRAME, g, 5, cell.w).x).toBe(2);
|
|
189
|
-
});
|
|
190
|
-
|
|
191
|
-
it('LTR is untouched by the new span argument (every old call site is safe)', () => {
|
|
192
|
-
const g = geom();
|
|
193
|
-
const r = cellToRect({ x: 4, y: 1, w: 5, h: 1 }, FRAME, g, 5);
|
|
194
|
-
expect(pointToCell(r.x, r.y, FRAME, g, 5)).toEqual({ x: 4, y: 1 });
|
|
195
|
-
expect(pointToCell(r.x, r.y, FRAME, g, 5, 5)).toEqual({ x: 4, y: 1 });
|
|
196
|
-
expect(pointToCell(r.x, r.y, FRAME, g, 5, 99)).toEqual({ x: 4, y: 1 });
|
|
197
|
-
});
|
|
198
|
-
|
|
199
|
-
it('rows, row heights and board heights are identical in both directions', () => {
|
|
200
|
-
const ltr = geom();
|
|
201
|
-
const rtl = geom({ rtl: true });
|
|
202
|
-
expect(rowHeightFor(rtl, 5)).toBe(rowHeightFor(ltr, 5));
|
|
203
|
-
expect(boardHeightFor(rtl, 5)).toBe(boardHeightFor(ltr, 5));
|
|
204
|
-
expect(columnUnitFor(rtl, FRAME.width)).toBe(columnUnitFor(ltr, FRAME.width));
|
|
205
|
-
});
|
|
206
|
-
});
|
|
207
|
-
|
|
208
|
-
describe('dashboard-kit mapping — GridItemConfig ↔ cells', () => {
|
|
209
|
-
it('round-trips cells through the persisted 1-based line numbers', () => {
|
|
210
|
-
const cell = { x: 8, y: 1, w: 4, h: 2 };
|
|
211
|
-
const gi = gridItemFromCell(cell);
|
|
212
|
-
expect(gi).toEqual({ columnStart: 9, columnEnd: 13, rowStart: 2, rowEnd: 4 });
|
|
213
|
-
expect(cellFromGridItem(gi)).toEqual(cell);
|
|
214
|
-
});
|
|
215
|
-
|
|
216
|
-
it("ignores 'auto' placements and missing configs", () => {
|
|
217
|
-
expect(cellFromGridItem(undefined)).toBeNull();
|
|
218
|
-
expect(cellFromGridItem({ columnStart: 'auto', rowStart: 1 })).toBeNull();
|
|
219
|
-
expect(cellFromGridItem({ columnStart: 1 })).toBeNull(); // no rowStart
|
|
220
|
-
});
|
|
221
|
-
|
|
222
|
-
it('fills missing end lines from the adoption fallback (metadata columnSpan)', () => {
|
|
223
|
-
expect(cellFromGridItem({ columnStart: 3, rowStart: 2 }, { w: 6, h: 2 })).toEqual({
|
|
224
|
-
x: 2,
|
|
225
|
-
y: 1,
|
|
226
|
-
w: 6,
|
|
227
|
-
h: 2,
|
|
228
|
-
});
|
|
229
|
-
});
|
|
230
|
-
});
|
|
231
|
-
|
|
232
|
-
describe('dashboard-kit mapping — commit-batch construction', () => {
|
|
233
|
-
const delta = (over: Partial<TileDelta>): TileDelta => ({
|
|
234
|
-
id: 'a',
|
|
235
|
-
cellBefore: { x: 0, y: 0, w: 3, h: 1 },
|
|
236
|
-
cellAfter: { x: 0, y: 0, w: 3, h: 1 },
|
|
237
|
-
posBefore: { x: 14, y: 14 },
|
|
238
|
-
posAfter: { x: 14, y: 14 },
|
|
239
|
-
sizeBefore: { width: 100, height: 100 },
|
|
240
|
-
sizeAfter: { width: 100, height: 100 },
|
|
241
|
-
...over,
|
|
242
|
-
});
|
|
243
|
-
|
|
244
|
-
it('emits NOTHING for an unchanged tile', () => {
|
|
245
|
-
expect(buildCommitCommands([delta({})])).toHaveLength(0);
|
|
246
|
-
});
|
|
247
|
-
|
|
248
|
-
it('cells changed → SetGridItemCommand carrying the AFTER cells', () => {
|
|
249
|
-
const cmds = buildCommitCommands([
|
|
250
|
-
delta({ cellAfter: { x: 3, y: 0, w: 3, h: 1 }, posAfter: { x: 300, y: 14 } }),
|
|
251
|
-
]);
|
|
252
|
-
const set = cmds.find((c) => c instanceof SetGridItemCommand);
|
|
253
|
-
expect(set).toBeDefined();
|
|
254
|
-
expect(set!.serialize().data).toMatchObject({
|
|
255
|
-
nodeId: 'a',
|
|
256
|
-
gridConfig: { columnStart: 4, columnEnd: 7, rowStart: 1, rowEnd: 2 },
|
|
257
|
-
});
|
|
258
|
-
});
|
|
259
|
-
|
|
260
|
-
it('move command records the exact inverse (old position ≠ new)', () => {
|
|
261
|
-
const cmds = buildCommitCommands([delta({ posAfter: { x: 300, y: 140 } })]);
|
|
262
|
-
expect(cmds).toHaveLength(1);
|
|
263
|
-
const move = cmds[0] as MoveNodeCommand;
|
|
264
|
-
expect(move).toBeInstanceOf(MoveNodeCommand);
|
|
265
|
-
const data = move.serialize().data as {
|
|
266
|
-
newPosition: { x: number; y: number };
|
|
267
|
-
oldPosition: { x: number; y: number };
|
|
268
|
-
};
|
|
269
|
-
expect(data.newPosition).toEqual({ x: 300, y: 140 });
|
|
270
|
-
expect(data.oldPosition).toEqual({ x: 14, y: 14 }); // (K2)
|
|
271
|
-
});
|
|
272
|
-
|
|
273
|
-
it('size changed → ResizeNodeCommand; locked and group tiles get no geometry commands', () => {
|
|
274
|
-
const cmds = buildCommitCommands([
|
|
275
|
-
delta({ sizeAfter: { width: 200, height: 240 } }),
|
|
276
|
-
delta({ id: 'pinned', locked: true, posAfter: { x: 999, y: 999 } }),
|
|
277
|
-
delta({
|
|
278
|
-
id: 'slab',
|
|
279
|
-
isGroup: true,
|
|
280
|
-
posAfter: { x: 999, y: 999 },
|
|
281
|
-
cellAfter: { x: 0, y: 5, w: 12, h: 1 },
|
|
282
|
-
}),
|
|
283
|
-
]);
|
|
284
|
-
expect(cmds.filter((c) => c instanceof ResizeNodeCommand)).toHaveLength(1);
|
|
285
|
-
expect(cmds.filter((c) => c instanceof MoveNodeCommand)).toHaveLength(0);
|
|
286
|
-
expect(cmds.filter((c) => c instanceof SetGridItemCommand)).toHaveLength(0);
|
|
287
|
-
});
|
|
288
|
-
|
|
289
|
-
it('one gesture, many tiles → one flat command list covering every change', () => {
|
|
290
|
-
const cmds = buildCommitCommands([
|
|
291
|
-
delta({
|
|
292
|
-
cellAfter: { x: 3, y: 0, w: 3, h: 1 },
|
|
293
|
-
posAfter: { x: 300, y: 14 },
|
|
294
|
-
}),
|
|
295
|
-
delta({
|
|
296
|
-
id: 'b',
|
|
297
|
-
cellBefore: { x: 3, y: 0, w: 3, h: 1 },
|
|
298
|
-
cellAfter: { x: 0, y: 0, w: 3, h: 1 },
|
|
299
|
-
posBefore: { x: 300, y: 14 },
|
|
300
|
-
posAfter: { x: 14, y: 14 },
|
|
301
|
-
}),
|
|
302
|
-
]);
|
|
303
|
-
// 2× SetGridItem + 2× Move — the whole swap in one undoable batch.
|
|
304
|
-
expect(cmds).toHaveLength(4);
|
|
305
|
-
expect(cmds.filter((c) => c instanceof SetGridItemCommand)).toHaveLength(2);
|
|
306
|
-
expect(cmds.filter((c) => c instanceof MoveNodeCommand)).toHaveLength(2);
|
|
307
|
-
});
|
|
308
|
-
});
|
|
@@ -1,283 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Dashboard-kit pure math — Phase 2 of the dashboard-grid plan
|
|
3
|
-
* (`documentation/api-architecture/dashboard-grid-plan.html`).
|
|
4
|
-
*
|
|
5
|
-
* Everything here is DOM-free and instance-free so it can be table-driven from
|
|
6
|
-
* a jest spec: the cell↔pixel mapping in both sizing modes, the
|
|
7
|
-
* GridItemConfig↔GridPackItem round-trip, and the gesture commit-batch
|
|
8
|
-
* construction. The stateful binder (`grid-binder.ts`) is a thin pointer loop
|
|
9
|
-
* over these functions plus the engine's `GridPackEngine` — the engine owns
|
|
10
|
-
* ALL cell math (push/swap/gate/settle); this module owns only how cells and
|
|
11
|
-
* pixels convert into each other and into undoable commands.
|
|
12
|
-
*
|
|
13
|
-
* SIZING MODES (user decision, recorded in the plan's Section 6):
|
|
14
|
-
* 'fit' — DevExtreme-style compact. The board keeps its DESIGN height and
|
|
15
|
-
* the row height re-derives from the content's row count, so every
|
|
16
|
-
* widget always stays inside the frame — nothing can be pushed out
|
|
17
|
-
* of reach. Guarded by `minRowHeight` so a pathological row count
|
|
18
|
-
* squeezes to a floor instead of zero.
|
|
19
|
-
* 'grow' — rows keep `baseRowHeight` and the board frame extends downward
|
|
20
|
-
* to hold them (never below the design height). Camera refit after
|
|
21
|
-
* growth is the page's concern (its existing `frameTab`).
|
|
22
|
-
*/
|
|
23
|
-
|
|
24
|
-
import {
|
|
25
|
-
MoveNodeCommand,
|
|
26
|
-
ResizeNodeCommand,
|
|
27
|
-
SetGridItemCommand,
|
|
28
|
-
type Command,
|
|
29
|
-
type GridItemConfig,
|
|
30
|
-
} from '@grafloria/engine';
|
|
31
|
-
|
|
32
|
-
/** One tile in integer board cells — the shape `GridPackEngine` speaks. */
|
|
33
|
-
export interface CellRect {
|
|
34
|
-
x: number;
|
|
35
|
-
y: number;
|
|
36
|
-
w: number;
|
|
37
|
-
h: number;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/** A world-space rectangle (the group frame, or a projected tile). */
|
|
41
|
-
export interface WorldRect {
|
|
42
|
-
x: number;
|
|
43
|
-
y: number;
|
|
44
|
-
width: number;
|
|
45
|
-
height: number;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
export interface DashboardGridGeometry {
|
|
49
|
-
/** Column count of the board (default 12). */
|
|
50
|
-
columns: number;
|
|
51
|
-
/** Gap between cells, px. */
|
|
52
|
-
gap: number;
|
|
53
|
-
/** Padding between the board frame and the outermost cells, px. */
|
|
54
|
-
padding: number;
|
|
55
|
-
sizing: 'fit' | 'grow';
|
|
56
|
-
/** Row height in 'grow' mode, px. */
|
|
57
|
-
baseRowHeight: number;
|
|
58
|
-
/** Floor for the derived 'fit' row height, px. */
|
|
59
|
-
minRowHeight: number;
|
|
60
|
-
/** The board's design height — 'fit' keeps it, 'grow' never shrinks below it. */
|
|
61
|
-
designHeight: number;
|
|
62
|
-
/**
|
|
63
|
-
* RIGHT-TO-LEFT boards. The MODEL is direction-agnostic — cell x=0 is always
|
|
64
|
-
* "the first column" and every rule in `GridPackEngine` (push, swap, gravity,
|
|
65
|
-
* the anti-jitter gate) is written in cells, so none of it changes. ONLY this
|
|
66
|
-
* module's pixel mapping mirrors: x=0 renders at the board's RIGHT edge and
|
|
67
|
-
* columns run leftwards. A layout saved in one direction therefore renders
|
|
68
|
-
* mirrored in the other with byte-identical cells, which is the property the
|
|
69
|
-
* kit's spec and the e2e battery both assert.
|
|
70
|
-
*/
|
|
71
|
-
rtl?: boolean;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/** Row height for a board currently `rows` rows tall (both modes). */
|
|
75
|
-
export function rowHeightFor(g: DashboardGridGeometry, rows: number): number {
|
|
76
|
-
if (g.sizing === 'grow') return g.baseRowHeight;
|
|
77
|
-
const r = Math.max(1, rows);
|
|
78
|
-
// design = 2*padding + r*rowH + (r-1)*gap → solve for rowH.
|
|
79
|
-
return Math.max(g.minRowHeight, (g.designHeight - 2 * g.padding - (r - 1) * g.gap) / r);
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
/** The board frame height the mode implies for `rows` rows. */
|
|
83
|
-
export function boardHeightFor(g: DashboardGridGeometry, rows: number): number {
|
|
84
|
-
if (g.sizing === 'fit') return g.designHeight;
|
|
85
|
-
const r = Math.max(0, rows);
|
|
86
|
-
const content = 2 * g.padding + (r === 0 ? 0 : r * g.baseRowHeight + (r - 1) * g.gap);
|
|
87
|
-
return Math.max(g.designHeight, content);
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
/** Width of one column cell for a board `width` px wide. */
|
|
91
|
-
export function columnUnitFor(g: DashboardGridGeometry, width: number): number {
|
|
92
|
-
return (width - 2 * g.padding - (g.columns - 1) * g.gap) / g.columns;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
/** Width in px of a `w`-column span (the pitch identity used by both mappings). */
|
|
96
|
-
export function spanWidthPx(w: number, g: DashboardGridGeometry, frameWidth: number): number {
|
|
97
|
-
const cu = columnUnitFor(g, frameWidth);
|
|
98
|
-
return w * cu + (w - 1) * g.gap;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* Project integer cells into a world rectangle inside `frame`.
|
|
103
|
-
*
|
|
104
|
-
* RTL mirrors about the board's vertical centre line: the distance from the
|
|
105
|
-
* board's RIGHT padding edge to the tile's RIGHT edge equals what the LTR
|
|
106
|
-
* distance from the left padding edge to the tile's LEFT edge would be. Only
|
|
107
|
-
* the x term changes — rows, heights and spans are direction-agnostic.
|
|
108
|
-
*/
|
|
109
|
-
export function cellToRect(
|
|
110
|
-
cell: CellRect,
|
|
111
|
-
frame: WorldRect,
|
|
112
|
-
g: DashboardGridGeometry,
|
|
113
|
-
rows: number
|
|
114
|
-
): WorldRect {
|
|
115
|
-
const cu = columnUnitFor(g, frame.width);
|
|
116
|
-
const rh = rowHeightFor(g, rows);
|
|
117
|
-
const width = cell.w * cu + (cell.w - 1) * g.gap;
|
|
118
|
-
return {
|
|
119
|
-
x: g.rtl
|
|
120
|
-
? frame.x + frame.width - g.padding - cell.x * (cu + g.gap) - width
|
|
121
|
-
: frame.x + g.padding + cell.x * (cu + g.gap),
|
|
122
|
-
y: frame.y + g.padding + cell.y * (rh + g.gap),
|
|
123
|
-
width,
|
|
124
|
-
height: cell.h * rh + (cell.h - 1) * g.gap,
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
/**
|
|
129
|
-
* The cell whose slot a tile TOP-LEFT at world (x, y) is closest to — the
|
|
130
|
-
* prototype's margin-adjusted midpoint rounding (`round(L / cellPitch)`).
|
|
131
|
-
* Clamping to the board is the ENGINE's job (moveCheck clamps), not ours.
|
|
132
|
-
*
|
|
133
|
-
* `spanW` is the tile's COLUMN SPAN and is used only when `g.rtl`: mirrored,
|
|
134
|
-
* the cell is decided by the tile's RIGHT edge (its leading edge), so the
|
|
135
|
-
* span is what converts the given left edge into it. LTR ignores it entirely,
|
|
136
|
-
* which is why every existing call site keeps its exact behaviour. Getting
|
|
137
|
-
* this wrong is the classic RTL drag bug — the tile lands a span away from
|
|
138
|
-
* the placeholder — so the e2e battery asserts drop-on-placeholder in RTL.
|
|
139
|
-
*/
|
|
140
|
-
export function pointToCell(
|
|
141
|
-
x: number,
|
|
142
|
-
y: number,
|
|
143
|
-
frame: WorldRect,
|
|
144
|
-
g: DashboardGridGeometry,
|
|
145
|
-
rows: number,
|
|
146
|
-
spanW = 1
|
|
147
|
-
): { x: number; y: number } {
|
|
148
|
-
const cu = columnUnitFor(g, frame.width);
|
|
149
|
-
const rh = rowHeightFor(g, rows);
|
|
150
|
-
const right = x + spanWidthPx(spanW, g, frame.width);
|
|
151
|
-
return {
|
|
152
|
-
x: g.rtl
|
|
153
|
-
? Math.round((frame.x + frame.width - g.padding - right) / (cu + g.gap))
|
|
154
|
-
: Math.round((x - frame.x - g.padding) / (cu + g.gap)),
|
|
155
|
-
y: Math.round((y - frame.y - g.padding) / (rh + g.gap)),
|
|
156
|
-
};
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
/**
|
|
160
|
-
* The integer span a fluid pixel size rounds to — the prototype's
|
|
161
|
-
* `round((W + margin) / cellPitch)`, floored at 1×1.
|
|
162
|
-
*/
|
|
163
|
-
export function sizeToSpan(
|
|
164
|
-
widthPx: number,
|
|
165
|
-
heightPx: number,
|
|
166
|
-
frame: WorldRect,
|
|
167
|
-
g: DashboardGridGeometry,
|
|
168
|
-
rows: number
|
|
169
|
-
): { w: number; h: number } {
|
|
170
|
-
const cu = columnUnitFor(g, frame.width);
|
|
171
|
-
const rh = rowHeightFor(g, rows);
|
|
172
|
-
return {
|
|
173
|
-
w: Math.max(1, Math.round((widthPx + g.gap) / (cu + g.gap))),
|
|
174
|
-
h: Math.max(1, Math.round((heightPx + g.gap) / (rh + g.gap))),
|
|
175
|
-
};
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
// ---------------------------------------------------------------------------
|
|
179
|
-
// GridItemConfig ↔ engine cells.
|
|
180
|
-
//
|
|
181
|
-
// The cell state lives in the EXISTING GridItemConfig (1-based, exclusive-end
|
|
182
|
-
// line numbers — CSS grid vocabulary): columnStart/rowStart are the cell + 1,
|
|
183
|
-
// columnEnd/rowEnd are cell + span + 1. Nothing new is persisted; save/load
|
|
184
|
-
// already round-trips gridItem.
|
|
185
|
-
// ---------------------------------------------------------------------------
|
|
186
|
-
|
|
187
|
-
/** Engine cells → the GridItemConfig that persists them. */
|
|
188
|
-
export function gridItemFromCell(cell: CellRect): GridItemConfig {
|
|
189
|
-
return {
|
|
190
|
-
columnStart: cell.x + 1,
|
|
191
|
-
columnEnd: cell.x + cell.w + 1,
|
|
192
|
-
rowStart: cell.y + 1,
|
|
193
|
-
rowEnd: cell.y + cell.h + 1,
|
|
194
|
-
};
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
/**
|
|
198
|
-
* GridItemConfig → engine cells, or null when the config carries no usable
|
|
199
|
-
* placement (absent, or 'auto' lines). `fallback` fills spans a partial
|
|
200
|
-
* config omits — the first-adoption path uses metadata `columnSpan` there.
|
|
201
|
-
*/
|
|
202
|
-
export function cellFromGridItem(
|
|
203
|
-
gi: GridItemConfig | undefined,
|
|
204
|
-
fallback?: { w?: number; h?: number }
|
|
205
|
-
): CellRect | null {
|
|
206
|
-
if (!gi) return null;
|
|
207
|
-
const num = (v: number | 'auto' | undefined): number | null =>
|
|
208
|
-
typeof v === 'number' && Number.isFinite(v) ? v : null;
|
|
209
|
-
const cs = num(gi.columnStart);
|
|
210
|
-
const rs = num(gi.rowStart);
|
|
211
|
-
if (cs === null || rs === null) return null;
|
|
212
|
-
const ce = num(gi.columnEnd);
|
|
213
|
-
const re = num(gi.rowEnd);
|
|
214
|
-
const w = ce !== null ? ce - cs : fallback?.w ?? 1;
|
|
215
|
-
const h = re !== null ? re - rs : fallback?.h ?? 1;
|
|
216
|
-
return { x: cs - 1, y: rs - 1, w: Math.max(1, w), h: Math.max(1, h) };
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
// ---------------------------------------------------------------------------
|
|
220
|
-
// Commit-batch construction.
|
|
221
|
-
//
|
|
222
|
-
// A gesture ends in ONE BatchCommand reconciling gesture-start → final state:
|
|
223
|
-
// - SetGridItemCommand for every tile whose CELLS changed (cells are the
|
|
224
|
-
// truth — undo restores them, and a later sync re-derives pixels);
|
|
225
|
-
// - MoveNodeCommand / ResizeNodeCommand for every UNLOCKED node whose
|
|
226
|
-
// geometry changed, so a bare undo (no binder sync) still restores what
|
|
227
|
-
// the user sees. Locked tiles never get geometry commands: the model's
|
|
228
|
-
// authoritative lock refuses those writes — their pixels are DERIVED
|
|
229
|
-
// state the binder re-projects via runSystemWrite.
|
|
230
|
-
// - MoveNodeCommand opts OUT of merging: one command per completed gesture
|
|
231
|
-
// must stay one undo step; the manager's 500ms merge window would fold
|
|
232
|
-
// two quick drags of the same tile into one.
|
|
233
|
-
// ---------------------------------------------------------------------------
|
|
234
|
-
|
|
235
|
-
export interface TileDelta {
|
|
236
|
-
id: string;
|
|
237
|
-
locked?: boolean;
|
|
238
|
-
/** Group members (layout slabs) get cells-only commands — never Move/Resize. */
|
|
239
|
-
isGroup?: boolean;
|
|
240
|
-
cellBefore: CellRect;
|
|
241
|
-
cellAfter: CellRect;
|
|
242
|
-
posBefore: { x: number; y: number };
|
|
243
|
-
posAfter: { x: number; y: number };
|
|
244
|
-
sizeBefore: { width: number; height: number; depth?: number };
|
|
245
|
-
sizeAfter: { width: number; height: number; depth?: number };
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
const cellsDiffer = (a: CellRect, b: CellRect): boolean =>
|
|
249
|
-
a.x !== b.x || a.y !== b.y || a.w !== b.w || a.h !== b.h;
|
|
250
|
-
|
|
251
|
-
const EPS = 0.5;
|
|
252
|
-
|
|
253
|
-
export function buildCommitCommands(deltas: TileDelta[]): Command[] {
|
|
254
|
-
const commands: Command[] = [];
|
|
255
|
-
for (const d of deltas) {
|
|
256
|
-
const cellChanged = cellsDiffer(d.cellBefore, d.cellAfter);
|
|
257
|
-
if (cellChanged && !d.isGroup) {
|
|
258
|
-
commands.push(new SetGridItemCommand(d.id, gridItemFromCell(d.cellAfter)));
|
|
259
|
-
}
|
|
260
|
-
if (d.locked || d.isGroup) continue;
|
|
261
|
-
if (
|
|
262
|
-
Math.abs(d.posAfter.x - d.posBefore.x) > EPS ||
|
|
263
|
-
Math.abs(d.posAfter.y - d.posBefore.y) > EPS
|
|
264
|
-
) {
|
|
265
|
-
commands.push(
|
|
266
|
-
new MoveNodeCommand(d.id, { ...d.posAfter }, { ...d.posBefore }, { mergeable: false })
|
|
267
|
-
);
|
|
268
|
-
}
|
|
269
|
-
if (
|
|
270
|
-
Math.abs(d.sizeAfter.width - d.sizeBefore.width) > EPS ||
|
|
271
|
-
Math.abs(d.sizeAfter.height - d.sizeBefore.height) > EPS
|
|
272
|
-
) {
|
|
273
|
-
commands.push(
|
|
274
|
-
new ResizeNodeCommand(
|
|
275
|
-
d.id,
|
|
276
|
-
{ depth: 0, ...d.sizeAfter },
|
|
277
|
-
{ depth: 0, ...d.sizeBefore }
|
|
278
|
-
)
|
|
279
|
-
);
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
return commands;
|
|
283
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AAAA,6CAMuB;AALrB,gHAAA,iBAAiB,OAAA;AAMnB,+CAewB;AAdtB,4GAAA,YAAY,OAAA;AACZ,8GAAA,cAAc,OAAA;AACd,6GAAA,aAAa,OAAA;AACb,0GAAA,UAAU,OAAA;AACV,2GAAA,WAAW,OAAA;AACX,0GAAA,UAAU,OAAA;AACV,2GAAA,WAAW,OAAA;AACX,gHAAA,gBAAgB,OAAA;AAChB,gHAAA,gBAAgB,OAAA;AAChB,mHAAA,mBAAmB,OAAA;AAMrB,mCAA4E;AAAnE,kHAAA,wBAAwB,OAAA;AAAE,gHAAA,sBAAsB,OAAA;AAEzD,sEAAsE;AACtE,yCASqB;AARnB,sGAAA,SAAS,OAAA;AAUX,6EAA6E;AAC7E,qCAiBmB;AAhBjB,gHAAA,qBAAqB,OAAA;AACrB,0GAAA,eAAe,OAAA;AACf,2GAAA,gBAAgB,OAAA;AAChB,0GAAA,eAAe,OAAA;AACf,4GAAA,iBAAiB,OAAA;AACjB,6GAAA,kBAAkB,OAAA;AAClB,4GAAA,iBAAiB,OAAA;AACjB,gHAAA,qBAAqB,OAAA"}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
export {
|
|
2
|
-
bindDashboardGrid,
|
|
3
|
-
type DashboardGridApi,
|
|
4
|
-
type DashboardGridOptions,
|
|
5
|
-
type DashboardGridHandle,
|
|
6
|
-
type DashboardResponsiveOptions,
|
|
7
|
-
} from './grid-binder';
|
|
8
|
-
export {
|
|
9
|
-
rowHeightFor,
|
|
10
|
-
boardHeightFor,
|
|
11
|
-
columnUnitFor,
|
|
12
|
-
cellToRect,
|
|
13
|
-
pointToCell,
|
|
14
|
-
sizeToSpan,
|
|
15
|
-
spanWidthPx,
|
|
16
|
-
gridItemFromCell,
|
|
17
|
-
cellFromGridItem,
|
|
18
|
-
buildCommitCommands,
|
|
19
|
-
type CellRect,
|
|
20
|
-
type WorldRect,
|
|
21
|
-
type DashboardGridGeometry,
|
|
22
|
-
type TileDelta,
|
|
23
|
-
} from './grid-mapping';
|
|
24
|
-
export { ensureDashboardKitStyles, DASHBOARD_KIT_STYLE_ID } from './styles';
|
|
25
|
-
|
|
26
|
-
// The DATA-FIRST authoring API (the erDiagram/umlDiagram equivalent).
|
|
27
|
-
export {
|
|
28
|
-
dashboard,
|
|
29
|
-
type DashboardOptions,
|
|
30
|
-
type DashboardSpec,
|
|
31
|
-
type DashboardSnapshot,
|
|
32
|
-
type DashboardHandle,
|
|
33
|
-
type DashboardViewSpec,
|
|
34
|
-
type DashboardWidgetSpec,
|
|
35
|
-
type WidgetHandle,
|
|
36
|
-
} from './dashboard';
|
|
37
|
-
|
|
38
|
-
// The built-in renderers behind `kind` — dashboard()'s default renderWidget.
|
|
39
|
-
export {
|
|
40
|
-
defaultWidgetRenderer,
|
|
41
|
-
renderKpiWidget,
|
|
42
|
-
renderLineWidget,
|
|
43
|
-
renderBarWidget,
|
|
44
|
-
renderDonutWidget,
|
|
45
|
-
renderFunnelWidget,
|
|
46
|
-
renderTableWidget,
|
|
47
|
-
BUILT_IN_WIDGET_KINDS,
|
|
48
|
-
type WidgetRenderer,
|
|
49
|
-
type KpiWidgetData,
|
|
50
|
-
type LineWidgetData,
|
|
51
|
-
type LineSeries,
|
|
52
|
-
type BarWidgetData,
|
|
53
|
-
type DonutWidgetData,
|
|
54
|
-
type FunnelWidgetData,
|
|
55
|
-
type TableWidgetData,
|
|
56
|
-
} from './widgets';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["styles.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;;;AAkLH,4DAMC;AAtLY,QAAA,sBAAsB,GAAG,gCAAgC,CAAC;AAEvE,MAAM,GAAG,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2KX,CAAC;AAEF,wEAAwE;AACxE,SAAgB,wBAAwB,CAAC,MAAgB,QAAQ;IAC/D,IAAI,GAAG,CAAC,cAAc,CAAC,8BAAsB,CAAC;QAAE,OAAO;IACvD,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACzC,KAAK,CAAC,EAAE,GAAG,8BAAsB,CAAC;IAClC,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC;IACxB,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC"}
|