@dxos/react-ui-canvas 0.13.0 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/lib/index.mjs +9044 -1135
- package/dist/lib/index.mjs.map +1 -1
- package/dist/types/src/components/About/About.d.ts +13 -0
- package/dist/types/src/components/About/About.d.ts.map +1 -0
- package/dist/types/src/components/About/About.stories.d.ts +7 -0
- package/dist/types/src/components/About/About.stories.d.ts.map +1 -0
- package/dist/types/src/components/About/index.d.ts +2 -0
- package/dist/types/src/components/About/index.d.ts.map +1 -0
- package/dist/types/src/components/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
- package/dist/types/src/components/ControlFrame/ControlFrame.d.ts +8 -2
- package/dist/types/src/components/ControlFrame/ControlFrame.d.ts.map +1 -1
- package/dist/types/src/components/Layers/Layers.d.ts +30 -0
- package/dist/types/src/components/Layers/Layers.d.ts.map +1 -0
- package/dist/types/src/components/Layers/Layers.stories.d.ts +11 -0
- package/dist/types/src/components/Layers/Layers.stories.d.ts.map +1 -0
- package/dist/types/src/components/Layers/index.d.ts +2 -0
- package/dist/types/src/components/Layers/index.d.ts.map +1 -0
- package/dist/types/src/components/Palette/Palette.d.ts +20 -4
- package/dist/types/src/components/Palette/Palette.d.ts.map +1 -1
- package/dist/types/src/components/Palette/Palette.stories.d.ts +22 -0
- package/dist/types/src/components/Palette/Palette.stories.d.ts.map +1 -0
- package/dist/types/src/components/PartEditor/PartEditor.d.ts.map +1 -1
- package/dist/types/src/components/Properties/AlignField.d.ts +23 -0
- package/dist/types/src/components/Properties/AlignField.d.ts.map +1 -0
- package/dist/types/src/components/Properties/ClassField.d.ts +23 -0
- package/dist/types/src/components/Properties/ClassField.d.ts.map +1 -0
- package/dist/types/src/components/Properties/FontField.d.ts +7 -0
- package/dist/types/src/components/Properties/FontField.d.ts.map +1 -0
- package/dist/types/src/components/Properties/LayerField.d.ts +17 -0
- package/dist/types/src/components/Properties/LayerField.d.ts.map +1 -0
- package/dist/types/src/components/Properties/Properties.d.ts +27 -3
- package/dist/types/src/components/Properties/Properties.d.ts.map +1 -1
- package/dist/types/src/components/Properties/Properties.stories.d.ts +20 -0
- package/dist/types/src/components/Properties/Properties.stories.d.ts.map +1 -0
- package/dist/types/src/components/Properties/SceneField.d.ts +8 -0
- package/dist/types/src/components/Properties/SceneField.d.ts.map +1 -0
- package/dist/types/src/components/Properties/StyleGrid.d.ts +15 -5
- package/dist/types/src/components/Properties/StyleGrid.d.ts.map +1 -1
- package/dist/types/src/components/Properties/StyleGrid.stories.d.ts +7 -0
- package/dist/types/src/components/Properties/StyleGrid.stories.d.ts.map +1 -0
- package/dist/types/src/components/SceneLayer/SceneLayer.d.ts +31 -7
- package/dist/types/src/components/SceneLayer/SceneLayer.d.ts.map +1 -1
- package/dist/types/src/components/SceneView/Dock.d.ts +22 -0
- package/dist/types/src/components/SceneView/Dock.d.ts.map +1 -0
- package/dist/types/src/components/SceneView/Dock.stories.d.ts +15 -0
- package/dist/types/src/components/SceneView/Dock.stories.d.ts.map +1 -0
- package/dist/types/src/components/SceneView/SceneView.d.ts +33 -7
- package/dist/types/src/components/SceneView/SceneView.d.ts.map +1 -1
- package/dist/types/src/components/SceneView/SceneView.stories.d.ts +16 -6
- package/dist/types/src/components/SceneView/SceneView.stories.d.ts.map +1 -1
- package/dist/types/src/components/SceneView/SceneViewContext.d.ts +36 -4
- package/dist/types/src/components/SceneView/SceneViewContext.d.ts.map +1 -1
- package/dist/types/src/components/SceneView/Scored.stories.d.ts +4 -4
- package/dist/types/src/components/SceneView/Scored.stories.d.ts.map +1 -1
- package/dist/types/src/components/SceneView/usePointerMachine.d.ts +3 -1
- package/dist/types/src/components/SceneView/usePointerMachine.d.ts.map +1 -1
- package/dist/types/src/components/SceneView/useSceneCamera.d.ts +2 -2
- package/dist/types/src/components/SceneView/useSceneCamera.d.ts.map +1 -1
- package/dist/types/src/components/SceneView/useSceneClipboard.d.ts.map +1 -1
- package/dist/types/src/components/SceneView/useSceneKeys.d.ts.map +1 -1
- package/dist/types/src/components/SceneView/useSceneNavigation.d.ts +7 -4
- package/dist/types/src/components/SceneView/useSceneNavigation.d.ts.map +1 -1
- package/dist/types/src/components/Toolbar/Toolbar.d.ts +2 -0
- package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
- package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +2 -0
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useWheel.d.ts +5 -0
- package/dist/types/src/hooks/useWheel.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +4 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/model/atoms.d.ts +21 -3
- package/dist/types/src/model/atoms.d.ts.map +1 -1
- package/dist/types/src/model/projection.d.ts.map +1 -1
- package/dist/types/src/model/projections/constrained.d.ts +2 -1
- package/dist/types/src/model/projections/constrained.d.ts.map +1 -1
- package/dist/types/src/model/projections/dynamic.d.ts.map +1 -1
- package/dist/types/src/model/projections/lattice.d.ts.map +1 -1
- package/dist/types/src/model/registry.d.ts +21 -3
- package/dist/types/src/model/registry.d.ts.map +1 -1
- package/dist/types/src/model/store.d.ts +10 -2
- package/dist/types/src/model/store.d.ts.map +1 -1
- package/dist/types/src/model/types.d.ts +699 -338
- package/dist/types/src/model/types.d.ts.map +1 -1
- package/dist/types/src/playwright/SceneManager.d.ts +1 -1
- package/dist/types/src/playwright/SceneManager.d.ts.map +1 -1
- package/dist/types/src/utils/builder.d.ts +22 -41
- package/dist/types/src/utils/builder.d.ts.map +1 -1
- package/dist/types/src/utils/camera.d.ts +19 -10
- package/dist/types/src/utils/camera.d.ts.map +1 -1
- package/dist/types/src/utils/clipboard.d.ts +4 -2
- package/dist/types/src/utils/clipboard.d.ts.map +1 -1
- package/dist/types/src/utils/diagram.d.ts.map +1 -1
- package/dist/types/src/utils/group.d.ts +14 -0
- package/dist/types/src/utils/group.d.ts.map +1 -0
- package/dist/types/src/utils/group.test.d.ts +2 -0
- package/dist/types/src/utils/group.test.d.ts.map +1 -0
- package/dist/types/src/utils/gutter-route.d.ts +7 -0
- package/dist/types/src/utils/gutter-route.d.ts.map +1 -1
- package/dist/types/src/utils/hit.d.ts +3 -20
- package/dist/types/src/utils/hit.d.ts.map +1 -1
- package/dist/types/src/utils/index.d.ts +3 -0
- package/dist/types/src/utils/index.d.ts.map +1 -1
- package/dist/types/src/utils/lattice.d.ts +5 -0
- package/dist/types/src/utils/lattice.d.ts.map +1 -1
- package/dist/types/src/utils/layers.d.ts +35 -0
- package/dist/types/src/utils/layers.d.ts.map +1 -0
- package/dist/types/src/utils/layers.test.d.ts +2 -0
- package/dist/types/src/utils/layers.test.d.ts.map +1 -0
- package/dist/types/src/utils/parts.d.ts +25 -9
- package/dist/types/src/utils/parts.d.ts.map +1 -1
- package/dist/types/src/utils/ports.d.ts +2 -0
- package/dist/types/src/utils/ports.d.ts.map +1 -1
- package/dist/types/src/utils/properties.d.ts +4 -3
- package/dist/types/src/utils/properties.d.ts.map +1 -1
- package/dist/types/src/utils/route.d.ts +5 -0
- package/dist/types/src/utils/route.d.ts.map +1 -1
- package/dist/types/src/utils/scenes.d.ts +14 -0
- package/dist/types/src/utils/scenes.d.ts.map +1 -0
- package/dist/types/src/utils/scenes.test.d.ts +2 -0
- package/dist/types/src/utils/scenes.test.d.ts.map +1 -0
- package/dist/types/src/utils/shapes.d.ts +23 -9
- package/dist/types/src/utils/shapes.d.ts.map +1 -1
- package/dist/types/src/utils/style.d.ts +29 -6
- package/dist/types/src/utils/style.d.ts.map +1 -1
- package/dist/types/src/utils/style.test.d.ts +2 -0
- package/dist/types/src/utils/style.test.d.ts.map +1 -0
- package/dist/types/src/utils/testing.d.ts +2 -2
- package/dist/types/src/utils/testing.d.ts.map +1 -1
- package/dist/types/src/utils/undo.d.ts +15 -4
- package/dist/types/src/utils/undo.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +20 -26
- package/src/components/About/About.stories.tsx +32 -0
- package/src/components/About/About.tsx +38 -0
- package/src/components/About/index.ts +5 -0
- package/src/components/Breadcrumbs/Breadcrumbs.tsx +17 -3
- package/src/components/ControlFrame/ControlFrame.tsx +138 -82
- package/src/components/Grid/Grid.stories.tsx +1 -1
- package/src/components/Layers/Layers.stories.tsx +131 -0
- package/src/components/Layers/Layers.tsx +216 -0
- package/src/components/Layers/index.ts +5 -0
- package/src/components/Palette/Palette.stories.tsx +135 -0
- package/src/components/Palette/Palette.tsx +230 -39
- package/src/components/PartEditor/PartEditor.tsx +4 -3
- package/src/components/Properties/AlignField.tsx +117 -0
- package/src/components/Properties/ClassField.tsx +44 -0
- package/src/components/Properties/FontField.tsx +73 -0
- package/src/components/Properties/LayerField.tsx +61 -0
- package/src/components/Properties/Properties.stories.tsx +113 -0
- package/src/components/Properties/Properties.tsx +240 -60
- package/src/components/Properties/SceneField.tsx +22 -0
- package/src/components/Properties/StyleGrid.stories.tsx +50 -0
- package/src/components/Properties/StyleGrid.tsx +54 -26
- package/src/components/SceneLayer/SceneLayer.tsx +497 -188
- package/src/components/SceneView/Constrained.stories.tsx +1 -1
- package/src/components/SceneView/Dock.stories.tsx +95 -0
- package/src/components/SceneView/Dock.tsx +146 -0
- package/src/components/SceneView/Dynamic.stories.tsx +1 -1
- package/src/components/SceneView/SceneView.stories.tsx +170 -18
- package/src/components/SceneView/SceneView.tsx +565 -151
- package/src/components/SceneView/SceneViewContext.ts +23 -2
- package/src/components/SceneView/Scored.stories.tsx +11 -11
- package/src/components/SceneView/usePointerMachine.ts +80 -20
- package/src/components/SceneView/useSceneCamera.ts +15 -8
- package/src/components/SceneView/useSceneClipboard.ts +4 -0
- package/src/components/SceneView/useSceneKeys.ts +6 -4
- package/src/components/SceneView/useSceneNavigation.ts +44 -33
- package/src/components/Toolbar/Toolbar.stories.tsx +14 -15
- package/src/components/Toolbar/Toolbar.tsx +15 -4
- package/src/components/index.ts +2 -0
- package/src/hooks/useWheel.ts +35 -0
- package/src/index.ts +4 -3
- package/src/model/atoms.ts +27 -3
- package/src/model/projection.ts +5 -0
- package/src/model/projections/constrained.test.ts +18 -10
- package/src/model/projections/constrained.ts +19 -8
- package/src/model/projections/dynamic.ts +5 -2
- package/src/model/projections/lattice.ts +15 -3
- package/src/model/registry.test.ts +14 -9
- package/src/model/registry.ts +39 -34
- package/src/model/store.ts +12 -2
- package/src/model/types.ts +124 -36
- package/src/playwright/SceneManager.ts +2 -2
- package/src/playwright/create.spec.ts +5 -3
- package/src/playwright/demo.spec.ts +2 -2
- package/src/playwright/lattice.spec.ts +4 -5
- package/src/playwright/scene.spec.ts +27 -25
- package/src/utils/builder.test.ts +46 -9
- package/src/utils/builder.ts +42 -18
- package/src/utils/camera.test.ts +22 -51
- package/src/utils/camera.ts +39 -32
- package/src/utils/clipboard.test.ts +23 -2
- package/src/utils/clipboard.ts +8 -4
- package/src/utils/diagram.test.ts +3 -1
- package/src/utils/diagram.ts +3 -25
- package/src/utils/group.test.ts +69 -0
- package/src/utils/group.ts +94 -0
- package/src/utils/gutter-route.test.ts +49 -0
- package/src/utils/gutter-route.ts +142 -16
- package/src/utils/hit.test.ts +4 -38
- package/src/utils/hit.ts +4 -26
- package/src/utils/index.ts +3 -0
- package/src/utils/lattice.ts +7 -1
- package/src/utils/layers.test.ts +139 -0
- package/src/utils/layers.ts +175 -0
- package/src/utils/parts.test.ts +66 -32
- package/src/utils/parts.ts +63 -41
- package/src/utils/ports.ts +7 -4
- package/src/utils/properties.test.ts +23 -6
- package/src/utils/properties.ts +66 -16
- package/src/utils/route.test.ts +51 -2
- package/src/utils/route.ts +133 -23
- package/src/utils/scenes.test.ts +38 -0
- package/src/utils/scenes.ts +54 -0
- package/src/utils/shapes.test.ts +33 -8
- package/src/utils/shapes.ts +51 -35
- package/src/utils/style.test.ts +54 -0
- package/src/utils/style.ts +153 -40
- package/src/utils/testing.test.ts +3 -3
- package/src/utils/testing.ts +21 -30
- package/src/utils/undo.test.ts +25 -2
- package/src/utils/undo.ts +50 -13
- package/dist/lib/chunk-Grid.mjs +0 -99
- package/dist/lib/chunk-Grid.mjs.map +0 -1
- package/dist/lib/scene.mjs +0 -6835
- package/dist/lib/scene.mjs.map +0 -1
- package/dist/lib/types.mjs +0 -16
- package/dist/lib/types.mjs.map +0 -1
- package/dist/types/src/archive/components/Canvas/Canvas.d.ts +0 -15
- package/dist/types/src/archive/components/Canvas/Canvas.d.ts.map +0 -1
- package/dist/types/src/archive/components/Canvas/Canvas.stories.d.ts +0 -18
- package/dist/types/src/archive/components/Canvas/Canvas.stories.d.ts.map +0 -1
- package/dist/types/src/archive/components/Canvas/index.d.ts +0 -2
- package/dist/types/src/archive/components/Canvas/index.d.ts.map +0 -1
- package/dist/types/src/archive/components/CellGrid/CellGrid.d.ts +0 -21
- package/dist/types/src/archive/components/CellGrid/CellGrid.d.ts.map +0 -1
- package/dist/types/src/archive/components/CellGrid/CellGrid.stories.d.ts +0 -21
- package/dist/types/src/archive/components/CellGrid/CellGrid.stories.d.ts.map +0 -1
- package/dist/types/src/archive/components/CellGrid/headers/Ruler.d.ts +0 -15
- package/dist/types/src/archive/components/CellGrid/headers/Ruler.d.ts.map +0 -1
- package/dist/types/src/archive/components/CellGrid/headers/TrackHeader.d.ts +0 -19
- package/dist/types/src/archive/components/CellGrid/headers/TrackHeader.d.ts.map +0 -1
- package/dist/types/src/archive/components/CellGrid/headers/index.d.ts +0 -3
- package/dist/types/src/archive/components/CellGrid/headers/index.d.ts.map +0 -1
- package/dist/types/src/archive/components/CellGrid/index.d.ts +0 -6
- package/dist/types/src/archive/components/CellGrid/index.d.ts.map +0 -1
- package/dist/types/src/archive/components/CellGrid/input/index.d.ts +0 -3
- package/dist/types/src/archive/components/CellGrid/input/index.d.ts.map +0 -1
- package/dist/types/src/archive/components/CellGrid/input/pointer.d.ts +0 -33
- package/dist/types/src/archive/components/CellGrid/input/pointer.d.ts.map +0 -1
- package/dist/types/src/archive/components/CellGrid/input/wheel.d.ts +0 -14
- package/dist/types/src/archive/components/CellGrid/input/wheel.d.ts.map +0 -1
- package/dist/types/src/archive/components/CellGrid/render/index.d.ts +0 -3
- package/dist/types/src/archive/components/CellGrid/render/index.d.ts.map +0 -1
- package/dist/types/src/archive/components/CellGrid/render/overlay-layer.d.ts +0 -21
- package/dist/types/src/archive/components/CellGrid/render/overlay-layer.d.ts.map +0 -1
- package/dist/types/src/archive/components/CellGrid/render/static-layer.d.ts +0 -36
- package/dist/types/src/archive/components/CellGrid/render/static-layer.d.ts.map +0 -1
- package/dist/types/src/archive/components/CellGrid/state/atoms.d.ts +0 -23
- package/dist/types/src/archive/components/CellGrid/state/atoms.d.ts.map +0 -1
- package/dist/types/src/archive/components/CellGrid/state/index.d.ts +0 -4
- package/dist/types/src/archive/components/CellGrid/state/index.d.ts.map +0 -1
- package/dist/types/src/archive/components/CellGrid/state/types.d.ts +0 -39
- package/dist/types/src/archive/components/CellGrid/state/types.d.ts.map +0 -1
- package/dist/types/src/archive/components/CellGrid/state/viewport.d.ts +0 -52
- package/dist/types/src/archive/components/CellGrid/state/viewport.d.ts.map +0 -1
- package/dist/types/src/archive/components/CellGrid/state/viewport.test.d.ts +0 -2
- package/dist/types/src/archive/components/CellGrid/state/viewport.test.d.ts.map +0 -1
- package/dist/types/src/archive/components/FPS.d.ts +0 -9
- package/dist/types/src/archive/components/FPS.d.ts.map +0 -1
- package/dist/types/src/archive/components/Grid/Grid.d.ts +0 -6
- package/dist/types/src/archive/components/Grid/Grid.d.ts.map +0 -1
- package/dist/types/src/archive/components/Grid/index.d.ts +0 -2
- package/dist/types/src/archive/components/Grid/index.d.ts.map +0 -1
- package/dist/types/src/archive/components/index.d.ts +0 -5
- package/dist/types/src/archive/components/index.d.ts.map +0 -1
- package/dist/types/src/archive/hooks/index.d.ts +0 -5
- package/dist/types/src/archive/hooks/index.d.ts.map +0 -1
- package/dist/types/src/archive/hooks/projection.d.ts +0 -60
- package/dist/types/src/archive/hooks/projection.d.ts.map +0 -1
- package/dist/types/src/archive/hooks/useCanvasContext.d.ts +0 -13
- package/dist/types/src/archive/hooks/useCanvasContext.d.ts.map +0 -1
- package/dist/types/src/archive/hooks/useDrag.d.ts +0 -6
- package/dist/types/src/archive/hooks/useDrag.d.ts.map +0 -1
- package/dist/types/src/archive/hooks/useWheel.d.ts +0 -8
- package/dist/types/src/archive/hooks/useWheel.d.ts.map +0 -1
- package/dist/types/src/archive/index.d.ts +0 -5
- package/dist/types/src/archive/index.d.ts.map +0 -1
- package/dist/types/src/archive/types.d.ts +0 -19
- package/dist/types/src/archive/types.d.ts.map +0 -1
- package/dist/types/src/archive/util/index.d.ts +0 -4
- package/dist/types/src/archive/util/index.d.ts.map +0 -1
- package/dist/types/src/archive/util/svg-path.d.ts +0 -4
- package/dist/types/src/archive/util/svg-path.d.ts.map +0 -1
- package/dist/types/src/archive/util/svg.d.ts +0 -32
- package/dist/types/src/archive/util/svg.d.ts.map +0 -1
- package/dist/types/src/archive/util/svg.stories.d.ts +0 -15
- package/dist/types/src/archive/util/svg.stories.d.ts.map +0 -1
- package/dist/types/src/archive/util/util.d.ts +0 -17
- package/dist/types/src/archive/util/util.d.ts.map +0 -1
- package/dist/types/src/scene.d.ts +0 -5
- package/dist/types/src/scene.d.ts.map +0 -1
- package/src/archive/components/Canvas/Canvas.stories.tsx +0 -111
- package/src/archive/components/Canvas/Canvas.tsx +0 -87
- package/src/archive/components/Canvas/index.ts +0 -5
- package/src/archive/components/CellGrid/CellGrid.stories.tsx +0 -239
- package/src/archive/components/CellGrid/CellGrid.tsx +0 -270
- package/src/archive/components/CellGrid/headers/Ruler.tsx +0 -71
- package/src/archive/components/CellGrid/headers/TrackHeader.tsx +0 -58
- package/src/archive/components/CellGrid/headers/index.ts +0 -6
- package/src/archive/components/CellGrid/index.ts +0 -9
- package/src/archive/components/CellGrid/input/index.ts +0 -6
- package/src/archive/components/CellGrid/input/pointer.ts +0 -236
- package/src/archive/components/CellGrid/input/wheel.ts +0 -68
- package/src/archive/components/CellGrid/render/index.ts +0 -6
- package/src/archive/components/CellGrid/render/overlay-layer.ts +0 -66
- package/src/archive/components/CellGrid/render/static-layer.ts +0 -112
- package/src/archive/components/CellGrid/state/atoms.ts +0 -43
- package/src/archive/components/CellGrid/state/index.ts +0 -7
- package/src/archive/components/CellGrid/state/types.ts +0 -40
- package/src/archive/components/CellGrid/state/viewport.test.ts +0 -50
- package/src/archive/components/CellGrid/state/viewport.ts +0 -94
- package/src/archive/components/FPS.tsx +0 -98
- package/src/archive/components/Grid/Grid.tsx +0 -17
- package/src/archive/components/Grid/index.ts +0 -5
- package/src/archive/components/index.ts +0 -8
- package/src/archive/hooks/index.ts +0 -8
- package/src/archive/hooks/projection.tsx +0 -156
- package/src/archive/hooks/useCanvasContext.ts +0 -32
- package/src/archive/hooks/useDrag.tsx +0 -96
- package/src/archive/hooks/useWheel.tsx +0 -80
- package/src/archive/index.ts +0 -8
- package/src/archive/types.ts +0 -14
- package/src/archive/util/index.ts +0 -7
- package/src/archive/util/svg-path.ts +0 -13
- package/src/archive/util/svg.stories.tsx +0 -46
- package/src/archive/util/svg.tsx +0 -128
- package/src/archive/util/util.ts +0 -50
- package/src/scene.ts +0 -9
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React, { type PropsWithChildren, type ReactNode } from 'react';
|
|
2
|
+
/** A panel's section in the dock. */
|
|
3
|
+
export type DockSection = {
|
|
4
|
+
id: string;
|
|
5
|
+
title: string;
|
|
6
|
+
icon: string;
|
|
7
|
+
/** Sections stack by it, lowest first. */
|
|
8
|
+
order: number;
|
|
9
|
+
};
|
|
10
|
+
/** Holds the docked sections and their slots for a view's `Dock` and its panels. */
|
|
11
|
+
export declare const DockProvider: ({ children }: PropsWithChildren) => React.JSX.Element;
|
|
12
|
+
/**
|
|
13
|
+
* The dock column: an accordion of the registered sections, any number open, each as tall as its panel, the column
|
|
14
|
+
* scrolling them together. Nothing (and no space) while no panel is docked.
|
|
15
|
+
*/
|
|
16
|
+
export declare const Dock: () => React.JSX.Element | null;
|
|
17
|
+
/**
|
|
18
|
+
* Registers a section while `docked`, and renders `panel` into it: docked, the panel's portal into the dock (once its
|
|
19
|
+
* slot mounts); floating, `null`, so the caller renders the panel where it floats.
|
|
20
|
+
*/
|
|
21
|
+
export declare const useDockSection: (section: DockSection, docked: boolean, panel: ReactNode) => ReactNode | null;
|
|
22
|
+
//# sourceMappingURL=Dock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Dock.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/Dock.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,EACZ,KAAK,iBAAiB,EACtB,KAAK,SAAS,EAQf,MAAM,OAAO,CAAC;AAMf,qCAAqC;AACrC,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAaF,oFAAoF;AACpF,eAAO,MAAM,YAAY,iBAAkB,iBAAiB,sBAqB3D,CAAC;AAWF;;;GAGG;AACH,eAAO,MAAM,IAAI,gCAyChB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,YAAa,WAAW,UAAU,OAAO,SAAS,SAAS,KAAG,SAAS,GAAG,IAgBpG,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
2
|
+
type StoryArgs = {
|
|
3
|
+
/** The element selected, whose properties fill the dock's first section. */
|
|
4
|
+
select?: string;
|
|
5
|
+
};
|
|
6
|
+
declare const meta: Meta<StoryArgs>;
|
|
7
|
+
export default meta;
|
|
8
|
+
type Story = StoryObj<StoryArgs>;
|
|
9
|
+
/** A shape selected: its properties above the scene's layers. */
|
|
10
|
+
export declare const Default: Story;
|
|
11
|
+
/** Nothing selected: the properties section says so rather than going away. */
|
|
12
|
+
export declare const Empty: Story;
|
|
13
|
+
/** Each section's header collapses it. */
|
|
14
|
+
export declare const Test: Story;
|
|
15
|
+
//# sourceMappingURL=Dock.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Dock.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/Dock.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AA8BjE,KAAK,SAAS,GAAG;IACf,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAsBF,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,SAAS,CAMzB,CAAC;eAEa,IAAI;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;AAEjC,iEAAiE;AACjE,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,+EAA+E;AAC/E,eAAO,MAAM,KAAK,EAAE,KAAuC,CAAC;AAE5D,0CAA0C;AAC1C,eAAO,MAAM,IAAI,EAAE,KAgBlB,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import React, { type ReactNode } from 'react';
|
|
2
2
|
import type * as Util from '@dxos/react-ui/Util';
|
|
3
|
-
import { type SceneViewAtoms } from '../../model/atoms.ts';
|
|
3
|
+
import { type PanelMode, type SceneViewAtoms } from '../../model/atoms.ts';
|
|
4
4
|
import { type FreehandProjectionOptions, type Projection } from '../../model/projection.ts';
|
|
5
5
|
import { type LinkRegistry, type NodeRegistry } from '../../model/registry.ts';
|
|
6
6
|
import { type SceneStore } from '../../model/store.ts';
|
|
7
|
-
import { type SceneId } from '../../model/types.ts';
|
|
7
|
+
import { type Camera, type SceneId } from '../../model/types.ts';
|
|
8
8
|
import { type PropertiesProps } from '../Properties/Properties.tsx';
|
|
9
9
|
export type SceneViewRootProps = Util.ThemedClassName<{
|
|
10
10
|
store: SceneStore;
|
|
@@ -17,19 +17,25 @@ export type SceneViewRootProps = Util.ThemedClassName<{
|
|
|
17
17
|
projection?: Projection;
|
|
18
18
|
/** Externally owned view state, e.g. to drive two views or persist the camera. */
|
|
19
19
|
atoms?: SceneViewAtoms;
|
|
20
|
+
/** Where the camera starts on the root scene, e.g. as last left; the scene is fitted when unset. */
|
|
21
|
+
initialCamera?: Camera;
|
|
22
|
+
/** Called once the camera settles on the root scene, so a host can persist it. */
|
|
23
|
+
onCameraChange?: (camera: Camera) => void;
|
|
20
24
|
/** Minor grid spacing in scene px; moves snap to it, creation and resizing to the major grid, `MAJOR_GRID_RATIO` times it. */
|
|
21
25
|
grid?: number;
|
|
22
|
-
/** Least gap between the scene's frame and each viewport edge when fitting, in
|
|
26
|
+
/** Least gap between the scene's frame and each viewport edge when fitting, in major cells. */
|
|
23
27
|
margin?: number;
|
|
24
28
|
/**
|
|
25
29
|
* Look, select and navigate only: no gesture or key reaches the model, and no handle or port is drawn,
|
|
26
30
|
* whatever the projection would allow.
|
|
27
31
|
*/
|
|
28
32
|
readonly?: boolean;
|
|
33
|
+
/** Where the properties and layers panels sit: docked in a column beside the canvas, or floating over it. */
|
|
34
|
+
panels?: PanelMode;
|
|
29
35
|
children?: ReactNode;
|
|
30
36
|
}>;
|
|
31
37
|
declare const SceneViewRoot: {
|
|
32
|
-
({ classNames, store, root, nodes: nodeRegistry, links: linkRegistry, createProjection, projection: projectionProp, atoms: atomsProp, grid, margin, readonly, children, }: SceneViewRootProps): React.JSX.Element;
|
|
38
|
+
({ classNames, store, root, nodes: nodeRegistry, links: linkRegistry, createProjection, projection: projectionProp, atoms: atomsProp, initialCamera, onCameraChange, grid, margin, readonly, panels, children, }: SceneViewRootProps): React.JSX.Element;
|
|
33
39
|
displayName: string;
|
|
34
40
|
};
|
|
35
41
|
export type SceneViewCanvasProps = {
|
|
@@ -51,7 +57,7 @@ declare const SceneViewNavigation: {
|
|
|
51
57
|
};
|
|
52
58
|
/** Everything that changes the view or the scene. */
|
|
53
59
|
declare const SceneViewActions: {
|
|
54
|
-
({ classNames }: SceneViewBarProps): React.JSX.Element;
|
|
60
|
+
({ classNames }: SceneViewBarProps): React.JSX.Element | null;
|
|
55
61
|
displayName: string;
|
|
56
62
|
};
|
|
57
63
|
/** The camera's controls and numbers; nothing here changes the scene. */
|
|
@@ -64,10 +70,28 @@ declare const SceneViewPalette: {
|
|
|
64
70
|
({ classNames }: SceneViewBarProps): React.JSX.Element;
|
|
65
71
|
displayName: string;
|
|
66
72
|
};
|
|
67
|
-
export type SceneViewPropertiesProps = Util.ThemedClassName<Pick<PropertiesProps, 'fields'
|
|
73
|
+
export type SceneViewPropertiesProps = Util.ThemedClassName<Pick<PropertiesProps, 'fields' | 'db' | 'getOptions' | 'overrides'> & {
|
|
74
|
+
/** Narrows the scenes a scene shape may open (e.g. to the host's own, not those it shows from elsewhere). */
|
|
75
|
+
sceneFilter?: (id: SceneId) => boolean;
|
|
76
|
+
}>;
|
|
68
77
|
/** The selected element's properties as a floating panel; absent while nothing is selected. */
|
|
69
78
|
declare const SceneViewProperties: {
|
|
70
|
-
({ classNames, fields, }: SceneViewPropertiesProps): React.JSX.Element | null;
|
|
79
|
+
({ classNames, fields, db, getOptions, overrides, sceneFilter, }: SceneViewPropertiesProps): string | number | bigint | boolean | React.JSX.Element | Iterable<ReactNode> | Promise<string | number | bigint | boolean | Iterable<ReactNode> | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | React.ReactPortal | null | undefined> | null | undefined;
|
|
80
|
+
displayName: string;
|
|
81
|
+
};
|
|
82
|
+
export type SceneViewLayersProps = Util.ThemedClassName<{}>;
|
|
83
|
+
/**
|
|
84
|
+
* The current scene's layers as a floating panel where the properties panel goes, shown while nothing is selected
|
|
85
|
+
* (the two take turns). Each edit is one intent, so one undo step.
|
|
86
|
+
*/
|
|
87
|
+
declare const SceneViewLayers: {
|
|
88
|
+
({ classNames }: SceneViewLayersProps): string | number | bigint | boolean | React.JSX.Element | Iterable<ReactNode> | Promise<string | number | bigint | boolean | Iterable<ReactNode> | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | React.ReactPortal | null | undefined> | null | undefined;
|
|
89
|
+
displayName: string;
|
|
90
|
+
};
|
|
91
|
+
export type SceneViewAboutProps = Util.ThemedClassName<{}>;
|
|
92
|
+
/** Counts of the scene's objects and the drawing's scenes; a dock section only, since it has no place over the canvas. */
|
|
93
|
+
declare const SceneViewAbout: {
|
|
94
|
+
({ classNames }: SceneViewAboutProps): ReactNode;
|
|
71
95
|
displayName: string;
|
|
72
96
|
};
|
|
73
97
|
export declare const SceneView: {
|
|
@@ -78,6 +102,8 @@ export declare const SceneView: {
|
|
|
78
102
|
Debug: typeof SceneViewDebug;
|
|
79
103
|
Palette: typeof SceneViewPalette;
|
|
80
104
|
Properties: typeof SceneViewProperties;
|
|
105
|
+
Layers: typeof SceneViewLayers;
|
|
106
|
+
About: typeof SceneViewAbout;
|
|
81
107
|
};
|
|
82
108
|
export {};
|
|
83
109
|
//# sourceMappingURL=SceneView.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SceneView.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/SceneView.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,EAAE,KAAK,SAAS,
|
|
1
|
+
{"version":3,"file":"SceneView.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/SceneView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
2
|
+
import { type PanelMode } from '../../model/atoms.ts';
|
|
2
3
|
/**
|
|
3
4
|
* Test:
|
|
4
5
|
* 1. Ctrl/cmd+wheel zooms about the cursor; wheel or hand-tool drag pans; drag on empty canvas draws a marquee.
|
|
@@ -7,9 +8,9 @@ import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
|
7
8
|
* 3. L / K / P pick the line, curve or spline link tool: every port shows; dropping onto empty canvas creates a
|
|
8
9
|
* rectangle and links to it. A selected spline shows a diamond per control point and a dot per span midpoint:
|
|
9
10
|
* drag a diamond to move a point, drag a dot to add one there, alt-click a diamond to remove one.
|
|
10
|
-
* 4. R / E /
|
|
11
|
-
* selection (nodes or links).
|
|
12
|
-
* 5. Double-click a
|
|
11
|
+
* 4. R / E / T / F then drag draws a rectangle, ellipse, text or frame (the UML class is plugin-uml's);
|
|
12
|
+
* Delete removes the selection (nodes or links).
|
|
13
|
+
* 5. Double-click a frame (or zoom until it fills the view) drills in; Escape, Up or the breadcrumb drills out.
|
|
13
14
|
* 6. G (or the Grid button) toggles the grid; with it off nothing snaps. The floating panel (top right) edits the
|
|
14
15
|
* selected element.
|
|
15
16
|
*/
|
|
@@ -17,7 +18,8 @@ type StoryArgs = {
|
|
|
17
18
|
depth: number;
|
|
18
19
|
liveDepth: number;
|
|
19
20
|
readonly?: boolean;
|
|
20
|
-
fixture?: 'elements' | '
|
|
21
|
+
fixture?: 'elements' | 'model' | 'square' | 'lattice' | 'scenes' | 'frame';
|
|
22
|
+
panels?: PanelMode;
|
|
21
23
|
};
|
|
22
24
|
declare const meta: Meta<StoryArgs>;
|
|
23
25
|
export default meta;
|
|
@@ -30,11 +32,19 @@ export declare const Freehand: Story;
|
|
|
30
32
|
export declare const Nested: Story;
|
|
31
33
|
/** The same scene to look at: select, pan, zoom and drill, but no handle, port, tool or key changes it. */
|
|
32
34
|
export declare const Readonly: Story;
|
|
33
|
-
/** A three-level class
|
|
34
|
-
export declare const
|
|
35
|
+
/** A three-level model, a box per class: drill into a subsystem's portal to open its own. */
|
|
36
|
+
export declare const Model: Story;
|
|
35
37
|
/**
|
|
36
38
|
* Lattice mode (DESIGN §8b): shapes snap to whole cells of a 256x128 lattice with 128x64 gutters, span any number
|
|
37
39
|
* of cells, and may not overlap; a drag onto occupied cells previews in red and is refused.
|
|
38
40
|
*/
|
|
41
|
+
/** A, an empty scene B and C in a column: open B, draw in it, and compare sizes at 100% on both levels. */
|
|
42
|
+
export declare const Scenes: Story;
|
|
39
43
|
export declare const Lattice: Story;
|
|
44
|
+
/** The panels dock by default: one accordion section each beside the canvas; a section collapses to its header. */
|
|
45
|
+
export declare const Docked: Story;
|
|
46
|
+
/** Floating panels: no dock, the layers over the canvas until something is selected. */
|
|
47
|
+
export declare const Floating: Story;
|
|
48
|
+
/** A frame onto a nested scene: its open control drills into the child scene, and Up returns. */
|
|
49
|
+
export declare const Frame: Story;
|
|
40
50
|
//# sourceMappingURL=SceneView.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SceneView.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/SceneView.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"SceneView.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/SceneView.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAQjE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAUtD;;;;;;;;;;;;;GAaG;AACH,KAAK,SAAS,GAAG;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC3E,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB,CAAC;AA8MF,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,SAAS,CAqBzB,CAAC;eAEa,IAAI;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,8FAA8F;AAC9F,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,QAAQ,EAAE,KAEtB,CAAC;AAEF,iHAAiH;AACjH,eAAO,MAAM,MAAM,EAAE,KAEpB,CAAC;AAEF,2GAA2G;AAC3G,eAAO,MAAM,QAAQ,EAAE,KAEtB,CAAC;AAEF,6FAA6F;AAC7F,eAAO,MAAM,KAAK,EAAE,KAEnB,CAAC;AAEF;;;GAGG;AACH,2GAA2G;AAC3G,eAAO,MAAM,MAAM,EAAE,KAEpB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,mHAAmH;AACnH,eAAO,MAAM,MAAM,EAAE,KAgBpB,CAAC;AAEF,wFAAwF;AACxF,eAAO,MAAM,QAAQ,EAAE,KAStB,CAAC;AAEF,iGAAiG;AACjG,eAAO,MAAM,KAAK,EAAE,KAYnB,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { type KeyboardEvent, type MouseEvent, type RefObject } from 'react';
|
|
2
2
|
import { type useRegistry } from '../../hooks/index.ts';
|
|
3
|
-
import { type ControlPointRef, type Drag, type EditingPart, type SceneViewAtoms } from '../../model/atoms.ts';
|
|
3
|
+
import { type ControlPointRef, type Drag, type EditingPart, type PanelMode, type SceneViewAtoms } from '../../model/atoms.ts';
|
|
4
4
|
import { type Projection } from '../../model/projection.ts';
|
|
5
5
|
import { type LinkRegistry, type NodeRegistry } from '../../model/registry.ts';
|
|
6
6
|
import { type SceneStore } from '../../model/store.ts';
|
|
7
|
-
import { type Bounds, type Camera, type Capabilities, type ElementId, type Scene, type SceneId, type Tool } from '../../model/types.ts';
|
|
7
|
+
import { type Bounds, type Camera, type Capabilities, type ElementId, type LinkId, type NodeId, type Scene, type SceneId, type Tool } from '../../model/types.ts';
|
|
8
8
|
import { type Clipboard } from '../../utils/clipboard.ts';
|
|
9
9
|
import { type ElementHandlers } from '../SceneLayer/SceneLayer.tsx';
|
|
10
10
|
import { type ToolbarActions } from '../Toolbar/Toolbar.tsx';
|
|
@@ -23,6 +23,8 @@ export type SceneViewContextValue = {
|
|
|
23
23
|
store: SceneStore;
|
|
24
24
|
projection: Projection;
|
|
25
25
|
capabilities: Capabilities;
|
|
26
|
+
/** The scene is only looked at: the parts that edit it (selection frame, ports, actions, properties) hide. */
|
|
27
|
+
readonly: boolean;
|
|
26
28
|
nodeRegistry: NodeRegistry;
|
|
27
29
|
linkRegistry: LinkRegistry;
|
|
28
30
|
/** The scene as stored, and as it is drawn while a gesture is in flight. */
|
|
@@ -32,10 +34,11 @@ export type SceneViewContextValue = {
|
|
|
32
34
|
blocked: boolean;
|
|
33
35
|
/** The current scene's frame. */
|
|
34
36
|
bounds: Bounds;
|
|
37
|
+
/** The scene's frame and the visible viewport together, for the lattice cells. */
|
|
38
|
+
latticeBounds: Bounds;
|
|
35
39
|
path: SceneId[];
|
|
36
40
|
camera: Camera;
|
|
37
41
|
/** The zoom against this level's own 1:1 rather than the root's; display only. */
|
|
38
|
-
nominalZoom: number;
|
|
39
42
|
/** The centre of the view in scene coordinates. */
|
|
40
43
|
pointer: {
|
|
41
44
|
x: number;
|
|
@@ -45,6 +48,11 @@ export type SceneViewContextValue = {
|
|
|
45
48
|
measured: boolean;
|
|
46
49
|
/** One screen pixel in scene units, for chrome that should not grow with the camera. */
|
|
47
50
|
frameUnit: number;
|
|
51
|
+
/** The portal filling most of the view and the opacity of the rest of the layer around it (`layerOpacity`). */
|
|
52
|
+
focus: {
|
|
53
|
+
id: ElementId;
|
|
54
|
+
opacity: number;
|
|
55
|
+
} | undefined;
|
|
48
56
|
/** Minor grid spacing in scene px. */
|
|
49
57
|
grid: number;
|
|
50
58
|
snapEnabled: boolean;
|
|
@@ -55,13 +63,21 @@ export type SceneViewContextValue = {
|
|
|
55
63
|
hover: ElementId | undefined;
|
|
56
64
|
selectedPoint: ControlPointRef | undefined;
|
|
57
65
|
editing: EditingPart | undefined;
|
|
66
|
+
/** The node whose embedded content takes input. */
|
|
67
|
+
active: NodeId | undefined;
|
|
58
68
|
clipboard: Clipboard | undefined;
|
|
59
69
|
drag: Drag | undefined;
|
|
60
70
|
tool: Tool;
|
|
61
71
|
debug: boolean;
|
|
72
|
+
/** Where the properties and layers panels sit. */
|
|
73
|
+
panels: PanelMode;
|
|
62
74
|
/** The bounds a create gesture would land, drawn whether or not the node itself previews. */
|
|
63
75
|
createFrame: Bounds | undefined;
|
|
76
|
+
/** Where the nodes of a move in flight will land, while they follow the pointer. */
|
|
77
|
+
landing: readonly Bounds[] | undefined;
|
|
64
78
|
handlers: ElementHandlers;
|
|
79
|
+
/** The link under the pointer. */
|
|
80
|
+
linkHover: LinkId | undefined;
|
|
65
81
|
select: (ids: Iterable<ElementId>) => void;
|
|
66
82
|
toolbarActions: ToolbarActions;
|
|
67
83
|
} & Pick<SceneCamera, 'navigating' | 'opening'> & Pick<SceneNavigation, 'drillIn'> & Pick<SceneClipboard, 'copy' | 'cut' | 'paste'> & Pick<PointerMachine, 'onBackgroundPointerDown' | 'onPointerMove' | 'onPointerUp' | 'onContextMenu' | 'cancelDrag' | 'updateHover' | 'onHandlePointerDown' | 'onPortPointerDown' | 'onEndPointerDown' | 'onPointPointerDown' | 'onMidpointPointerDown' | 'onPointContextMenu' | 'setTool' | 'removePoint' | 'menu' | 'closeMenu' | 'menuAnchorRef'> & {
|
|
@@ -75,6 +91,8 @@ export declare const SceneViewProvider: import("react").FC<{
|
|
|
75
91
|
store: SceneStore;
|
|
76
92
|
projection: Projection;
|
|
77
93
|
capabilities: Capabilities;
|
|
94
|
+
/** The scene is only looked at: the parts that edit it (selection frame, ports, actions, properties) hide. */
|
|
95
|
+
readonly: boolean;
|
|
78
96
|
nodeRegistry: NodeRegistry;
|
|
79
97
|
linkRegistry: LinkRegistry;
|
|
80
98
|
/** The scene as stored, and as it is drawn while a gesture is in flight. */
|
|
@@ -84,10 +102,11 @@ export declare const SceneViewProvider: import("react").FC<{
|
|
|
84
102
|
blocked: boolean;
|
|
85
103
|
/** The current scene's frame. */
|
|
86
104
|
bounds: Bounds;
|
|
105
|
+
/** The scene's frame and the visible viewport together, for the lattice cells. */
|
|
106
|
+
latticeBounds: Bounds;
|
|
87
107
|
path: SceneId[];
|
|
88
108
|
camera: Camera;
|
|
89
109
|
/** The zoom against this level's own 1:1 rather than the root's; display only. */
|
|
90
|
-
nominalZoom: number;
|
|
91
110
|
/** The centre of the view in scene coordinates. */
|
|
92
111
|
pointer: {
|
|
93
112
|
x: number;
|
|
@@ -97,6 +116,11 @@ export declare const SceneViewProvider: import("react").FC<{
|
|
|
97
116
|
measured: boolean;
|
|
98
117
|
/** One screen pixel in scene units, for chrome that should not grow with the camera. */
|
|
99
118
|
frameUnit: number;
|
|
119
|
+
/** The portal filling most of the view and the opacity of the rest of the layer around it (`layerOpacity`). */
|
|
120
|
+
focus: {
|
|
121
|
+
id: ElementId;
|
|
122
|
+
opacity: number;
|
|
123
|
+
} | undefined;
|
|
100
124
|
/** Minor grid spacing in scene px. */
|
|
101
125
|
grid: number;
|
|
102
126
|
snapEnabled: boolean;
|
|
@@ -107,13 +131,21 @@ export declare const SceneViewProvider: import("react").FC<{
|
|
|
107
131
|
hover: ElementId | undefined;
|
|
108
132
|
selectedPoint: ControlPointRef | undefined;
|
|
109
133
|
editing: EditingPart | undefined;
|
|
134
|
+
/** The node whose embedded content takes input. */
|
|
135
|
+
active: NodeId | undefined;
|
|
110
136
|
clipboard: Clipboard | undefined;
|
|
111
137
|
drag: Drag | undefined;
|
|
112
138
|
tool: Tool;
|
|
113
139
|
debug: boolean;
|
|
140
|
+
/** Where the properties and layers panels sit. */
|
|
141
|
+
panels: PanelMode;
|
|
114
142
|
/** The bounds a create gesture would land, drawn whether or not the node itself previews. */
|
|
115
143
|
createFrame: Bounds | undefined;
|
|
144
|
+
/** Where the nodes of a move in flight will land, while they follow the pointer. */
|
|
145
|
+
landing: readonly Bounds[] | undefined;
|
|
116
146
|
handlers: ElementHandlers;
|
|
147
|
+
/** The link under the pointer. */
|
|
148
|
+
linkHover: LinkId | undefined;
|
|
117
149
|
select: (ids: Iterable<ElementId>) => void;
|
|
118
150
|
toolbarActions: ToolbarActions;
|
|
119
151
|
} & Pick<SceneCamera, "navigating" | "opening"> & Pick<SceneNavigation, "drillIn"> & Pick<SceneClipboard, "copy" | "cut" | "paste"> & Pick<PointerMachine, "cancelDrag" | "closeMenu" | "menu" | "menuAnchorRef" | "onBackgroundPointerDown" | "onContextMenu" | "onEndPointerDown" | "onHandlePointerDown" | "onMidpointPointerDown" | "onPointContextMenu" | "onPointPointerDown" | "onPointerMove" | "onPointerUp" | "onPortPointerDown" | "removePoint" | "setTool" | "updateHover"> & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SceneViewContext.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/SceneViewContext.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAI5E,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,
|
|
1
|
+
{"version":3,"file":"SceneViewContext.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/SceneViewContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
2
2
|
type StoryArgs = {
|
|
3
|
-
/** Mermaid flowchart laid out by the engine; ignored when `fixture` is `
|
|
3
|
+
/** Mermaid flowchart laid out by the engine; ignored when `fixture` is `model`. */
|
|
4
4
|
source?: string;
|
|
5
|
-
fixture?: 'mermaid' | '
|
|
5
|
+
fixture?: 'mermaid' | 'model';
|
|
6
6
|
};
|
|
7
7
|
declare const meta: Meta<StoryArgs>;
|
|
8
8
|
export default meta;
|
|
@@ -11,6 +11,6 @@ type Story = StoryObj<typeof meta>;
|
|
|
11
11
|
export declare const Default: Story;
|
|
12
12
|
/** The platform block diagram: subgraph frames and a back edge. */
|
|
13
13
|
export declare const Platform: Story;
|
|
14
|
-
/** The scene engine's own
|
|
15
|
-
export declare const
|
|
14
|
+
/** The scene engine's own model fixture, graded as drawn. */
|
|
15
|
+
export declare const Model: Story;
|
|
16
16
|
//# sourceMappingURL=Scored.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Scored.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/Scored.stories.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AA0TjE,KAAK,SAAS,GAAG;IACf,
|
|
1
|
+
{"version":3,"file":"Scored.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/Scored.stories.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AA0TjE,KAAK,SAAS,GAAG;IACf,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;CAC/B,CAAC;AAyCF,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,SAAS,CAQzB,CAAC;eAEa,IAAI;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,gGAAgG;AAChG,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,mEAAmE;AACnE,eAAO,MAAM,QAAQ,EAAE,KAEtB,CAAC;AAEF,6DAA6D;AAC7D,eAAO,MAAM,KAAK,EAAE,KAEnB,CAAC"}
|
|
@@ -37,6 +37,8 @@ export type UsePointerMachineOptions = {
|
|
|
37
37
|
/** Set once the user takes the camera over, which stops the view re-fitting itself. */
|
|
38
38
|
interactedRef: MutableRefObject<boolean>;
|
|
39
39
|
select: (ids: Iterable<ElementId>) => void;
|
|
40
|
+
/** Scene px of one nominal unit (the model's major grid cell), which a new node's default size is counted in. */
|
|
41
|
+
cell: number;
|
|
40
42
|
} & Pick<SceneCamera, 'setCamera' | 'cancelAnimation' | 'isNavigating'> & Pick<SceneSnap, 'minor' | 'major' | 'snap' | 'snapMinor'>;
|
|
41
43
|
export type PointerMachine = {
|
|
42
44
|
/** Root element handlers. */
|
|
@@ -85,5 +87,5 @@ export type PointerMachine = {
|
|
|
85
87
|
* is continuing rather than the one the last render closed over, and the view renders the drag by
|
|
86
88
|
* projecting it onto a copy of the scene.
|
|
87
89
|
*/
|
|
88
|
-
export declare const usePointerMachine: ({ registry, atoms, store, scene, nodeRegistry, projection, capabilities, camera, rootRef, interactedRef, select, setCamera, cancelAnimation, isNavigating, minor, major, snap, snapMinor, }: UsePointerMachineOptions) => PointerMachine;
|
|
90
|
+
export declare const usePointerMachine: ({ registry, atoms, store, scene, nodeRegistry, projection, capabilities, camera, rootRef, interactedRef, select, setCamera, cancelAnimation, isNavigating, cell, minor, major, snap, snapMinor, }: UsePointerMachineOptions) => PointerMachine;
|
|
89
91
|
//# sourceMappingURL=usePointerMachine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePointerMachine.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/usePointerMachine.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,SAAS,EAIf,MAAM,OAAO,CAAC;AAEf,OAAO,
|
|
1
|
+
{"version":3,"file":"usePointerMachine.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/usePointerMachine.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,SAAS,EAIf,MAAM,OAAO,CAAC;AAEf,OAAO,EAA2B,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEzG,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EACL,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,SAAS,EAEd,KAAK,IAAI,EACT,KAAK,IAAI,EACT,KAAK,MAAM,EAEX,KAAK,KAAK,EACV,KAAK,IAAI,EACT,KAAK,KAAK,EACV,KAAK,UAAU,EACf,KAAK,IAAI,EAIV,MAAM,sBAAsB,CAAC;AAU9B,OAAO,EAAE,KAAK,OAAO,EAAe,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAKnD,oFAAoF;AACpF,eAAO,MAAM,eAAe,iBAAiB,CAAC;AAE9C,eAAO,MAAM,QAAQ,WAAY,MAAM,WAA2D,CAAC;AAInG;;;GAGG;AACH,eAAO,MAAM,WAAW,iBAAkB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,EAAE,EAAE,KAAK,CAAA;CAAE,WAAW,MAAM,KAAG,OACnC,CAAC;AAatD,MAAM,MAAM,WAAW,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAA;CAAE,CAAC;AAE5F,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;IACzC,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC1C,uFAAuF;IACvF,aAAa,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;IAC3C,iHAAiH;IACjH,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,iBAAiB,GAAG,cAAc,CAAC,GACrE,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,WAAW,CAAC,CAAC;AAE5D,MAAM,MAAM,cAAc,GAAG;IAC3B,6BAA6B;IAC7B,uBAAuB,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACvD,aAAa,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC7C,sGAAsG;IACtG,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACpE,aAAa,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC3C,+DAA+D;IAC/D,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,KAAK,IAAI,CAAC;IAEhD,qEAAqE;IACrE,iBAAiB,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC7D,iBAAiB,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC7D,iBAAiB,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC3D,iBAAiB,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC3D,mBAAmB,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC/E,iBAAiB,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACzE,gBAAgB,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC1E,kBAAkB,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACnF,qBAAqB,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACpG,kBAAkB,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAEjF,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAC9B,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC;IAC1C,uDAAuD;IACvD,OAAO,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,KAAK,CAAC;IAChE,WAAW,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAE9C,wFAAwF;IACxF,WAAW,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,CAAC,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,SAAS,CAAC;IACvF,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAEpC,IAAI,EAAE,WAAW,GAAG,SAAS,CAAC;IAC9B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,aAAa,EAAE,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;CAClD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,sMAoB3B,wBAAwB,KAAG,cA6vB7B,CAAC"}
|
|
@@ -4,8 +4,8 @@ import { type Camera, type ElementId, type Size } from '../../model/types.ts';
|
|
|
4
4
|
export type SceneCamera = {
|
|
5
5
|
/** Write the camera, from a value or from its predecessor. */
|
|
6
6
|
setCamera: (next: Camera | ((camera: Camera) => Camera)) => void;
|
|
7
|
-
/** Animate to `target`, calling `done` when the last frame lands. */
|
|
8
|
-
animateTo: (target: Camera, done?: () => void) => void;
|
|
7
|
+
/** Animate to `target`, calling `done` when the last frame lands; `duration` fixes its length in ms. */
|
|
8
|
+
animateTo: (target: Camera, done?: () => void, duration?: number) => void;
|
|
9
9
|
/** Abandon an animation in flight, leaving the camera where it reached. */
|
|
10
10
|
cancelAnimation: () => void;
|
|
11
11
|
/** The camera is moving on its own, so the canvas ignores the pointer. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSceneCamera.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/useSceneCamera.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,SAAS,EAAE,KAAK,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAM9E,MAAM,MAAM,WAAW,GAAG;IACxB,8DAA8D;IAC9D,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,KAAK,IAAI,CAAC;IACjE,
|
|
1
|
+
{"version":3,"file":"useSceneCamera.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/useSceneCamera.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,SAAS,EAAE,KAAK,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAM9E,MAAM,MAAM,WAAW,GAAG;IACxB,8DAA8D;IAC9D,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,KAAK,IAAI,CAAC;IACjE,wGAAwG;IACxG,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1E,2EAA2E;IAC3E,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,0EAA0E;IAC1E,UAAU,EAAE,OAAO,CAAC;IACpB,sGAAsG;IACtG,YAAY,EAAE,MAAM,OAAO,CAAC;IAC5B,gFAAgF;IAChF,WAAW,EAAE,MAAM,OAAO,CAAC;IAC3B,aAAa,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,wFAAwF;IACxF,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,0DAA0D;IAC1D,OAAO,EAAE,SAAS,GAAG,SAAS,CAAC;IAC/B,UAAU,EAAE,CAAC,EAAE,EAAE,SAAS,GAAG,SAAS,KAAK,IAAI,CAAC;CACjD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,aACf,UAAU,CAAC,OAAO,WAAW,CAAC,SACjC,cAAc,YACX,IAAI,KACb,WAgFF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSceneClipboard.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/useSceneClipboard.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"useSceneClipboard.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/useSceneClipboard.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAIjG,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;IACzC,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;IAC3C,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;CACtC,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC;AAEtC,MAAM,MAAM,cAAc,GAAG;IAC3B,oGAAoG;IACpG,IAAI,EAAE,MAAM,OAAO,CAAC;IACpB,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;CAC7B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,yFAU3B,wBAAwB,KAAG,cA0D7B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSceneKeys.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/useSceneKeys.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,aAAa,EAAe,MAAM,OAAO,CAAC;AAExD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,KAAK,KAAK,EAAE,KAAK,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAK7G,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;IACzC,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,IAAI,CAAC;IACf,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,qFAAqF;IACrF,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;IAC3C,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,GAChC,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC,GAC3D,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,GACxB,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC,GAC9C,IAAI,CAAC,cAAc,EAAE,YAAY,GAAG,aAAa,GAAG,SAAS,CAAC,CAAC;AAEjE;;;;GAIG;AACH,eAAO,MAAM,YAAY,uSA8BtB,mBAAmB,KAAG,CAAC,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,
|
|
1
|
+
{"version":3,"file":"useSceneKeys.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/useSceneKeys.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,aAAa,EAAe,MAAM,OAAO,CAAC;AAExD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,KAAK,KAAK,EAAE,KAAK,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAK7G,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;IACzC,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,IAAI,CAAC;IACf,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,qFAAqF;IACrF,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;IAC3C,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,GAChC,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC,GAC3D,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,GACxB,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC,GAC9C,IAAI,CAAC,cAAc,EAAE,YAAY,GAAG,aAAa,GAAG,SAAS,CAAC,CAAC;AAEjE;;;;GAIG;AACH,eAAO,MAAM,YAAY,uSA8BtB,mBAAmB,KAAG,CAAC,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAuJvD,CAAC"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { type MutableRefObject } from 'react';
|
|
2
2
|
import { type useRegistry } from '../../hooks/index.ts';
|
|
3
3
|
import { type Drag, type HistoryEntry, type SceneViewAtoms } from '../../model/atoms.ts';
|
|
4
|
+
import { type NodeRegistry } from '../../model/registry.ts';
|
|
4
5
|
import { type SceneStore } from '../../model/store.ts';
|
|
5
6
|
import { type Bounds, type Camera, type ElementId, type Node, type Scene, type SceneId, type Size } from '../../model/types.ts';
|
|
6
7
|
import { type SceneCamera } from './useSceneCamera.ts';
|
|
7
8
|
export type UseSceneNavigationOptions = {
|
|
8
9
|
registry: ReturnType<typeof useRegistry>;
|
|
9
10
|
atoms: SceneViewAtoms;
|
|
11
|
+
nodeRegistry: NodeRegistry;
|
|
10
12
|
store: SceneStore;
|
|
11
13
|
scenes: Record<SceneId, Scene>;
|
|
12
14
|
scene: Scene;
|
|
@@ -24,13 +26,14 @@ export type SceneNavigation = {
|
|
|
24
26
|
nameOf: (id: SceneId) => string;
|
|
25
27
|
/** The portal in `parent` that shows `childId`, if any. */
|
|
26
28
|
portalTo: (parentId: SceneId | undefined, childId: SceneId) => Node | undefined;
|
|
27
|
-
/**
|
|
29
|
+
/** What fitting the scene at the head of `path` shows: its parent portal's frame, or its content. */
|
|
28
30
|
frameOf: (path: SceneId[], scene: Scene) => Bounds;
|
|
29
31
|
/** The current scene's frame, held for the visit rather than re-derived as its content changes. */
|
|
30
32
|
bounds: Bounds;
|
|
31
|
-
/**
|
|
32
|
-
|
|
33
|
+
/** What Fit shows: the current scene's shapes themselves (the margin is the fit's own inset). */
|
|
34
|
+
fitTarget: Bounds;
|
|
33
35
|
pushHistory: (entry: HistoryEntry) => void;
|
|
36
|
+
/** Drills into a frame's scene, or opens the node in the host when its type has `hostOpen` for it. */
|
|
34
37
|
drillIn: (portal: Node, animate?: boolean) => void;
|
|
35
38
|
drillOut: (levels?: number, animate?: boolean) => void;
|
|
36
39
|
goHistory: (offset: number) => void;
|
|
@@ -40,5 +43,5 @@ export type SceneNavigation = {
|
|
|
40
43
|
* swap the root under a camera transition. Auto-drill lives here too, since it is the same two moves
|
|
41
44
|
* driven by how much of the viewport a portal covers rather than by a gesture.
|
|
42
45
|
*/
|
|
43
|
-
export declare const useSceneNavigation: ({ registry, atoms, scenes, scene, path, camera, viewport, inset, drag, interactedRef, select, animateTo, setCamera, setOpening, isAnimating, }: UseSceneNavigationOptions) => SceneNavigation;
|
|
46
|
+
export declare const useSceneNavigation: ({ registry, atoms, nodeRegistry, scenes, scene, path, camera, viewport, inset, drag, interactedRef, select, animateTo, setCamera, setOpening, isAnimating, }: UseSceneNavigationOptions) => SceneNavigation;
|
|
44
47
|
//# sourceMappingURL=useSceneNavigation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSceneNavigation.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/useSceneNavigation.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,gBAAgB,EAA2C,MAAM,OAAO,CAAC;AAEvF,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"useSceneNavigation.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/useSceneNavigation.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,gBAAgB,EAA2C,MAAM,OAAO,CAAC;AAEvF,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEzF,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EACL,KAAK,MAAM,EACX,KAAK,MAAM,EACX,KAAK,SAAS,EACd,KAAK,IAAI,EACT,KAAK,KAAK,EACV,KAAK,OAAO,EACZ,KAAK,IAAI,EAEV,MAAM,sBAAsB,CAAC;AAY9B,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAavD,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;IACzC,KAAK,EAAE,cAAc,CAAC;IACtB,YAAY,EAAE,YAAY,CAAC;IAC3B,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/B,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,IAAI,CAAC;IACf,4FAA4F;IAC5F,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,IAAI,GAAG,SAAS,CAAC;IACvB,uFAAuF;IACvF,aAAa,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;CAC5C,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,aAAa,CAAC,CAAC;AAEhF,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,MAAM,CAAC;IAChC,2DAA2D;IAC3D,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,SAAS,CAAC;IAChF,qGAAqG;IACrG,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC;IACnD,mGAAmG;IACnG,MAAM,EAAE,MAAM,CAAC;IACf,iGAAiG;IACjG,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC3C,sGAAsG;IACtG,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACnD,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACvD,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,iKAiB5B,yBAAyB,KAAG,eAoM9B,CAAC"}
|
|
@@ -9,6 +9,8 @@ export type ToolbarActions = {
|
|
|
9
9
|
nameOf: (id: SceneId) => string;
|
|
10
10
|
onPath: (index: number) => void;
|
|
11
11
|
fit: () => void;
|
|
12
|
+
/** Back to true size (100%), about the view's centre. */
|
|
13
|
+
zoomReset: () => void;
|
|
12
14
|
zoomIn: () => void;
|
|
13
15
|
zoomOut: () => void;
|
|
14
16
|
snap: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../../../../src/components/Toolbar/Toolbar.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAK9C,OAAO,KAAK,KAAK,IAAI,MAAM,qBAAqB,CAAC;AAIjD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,QAAQ,EAAE,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAGtF,6FAA6F;AAC7F,MAAM,MAAM,cAAc,GAAG;IAC3B,iFAAiF;IACjF,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,MAAM,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,MAAM,CAAC;IAChC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,0GAA0G;IAC1G,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,sDAAsD;IACtD,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACjC,yFAAyF;IACzF,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAQF,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,eAAe,CAAC;IACxD,OAAO,EAAE,cAAc,CAAC;IACxB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC,CAAC;AAEH,2EAA2E;AAC3E,eAAO,MAAM,iBAAiB,sCAAuC,sBAAsB,
|
|
1
|
+
{"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../../../../src/components/Toolbar/Toolbar.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAK9C,OAAO,KAAK,KAAK,IAAI,MAAM,qBAAqB,CAAC;AAIjD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,QAAQ,EAAE,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAGtF,6FAA6F;AAC7F,MAAM,MAAM,cAAc,GAAG;IAC3B,iFAAiF;IACjF,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,MAAM,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,MAAM,CAAC;IAChC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,yDAAyD;IACzD,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,0GAA0G;IAC1G,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,sDAAsD;IACtD,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACjC,yFAAyF;IACzF,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAQF,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,eAAe,CAAC;IACxD,OAAO,EAAE,cAAc,CAAC;IACxB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC,CAAC;AAEH,2EAA2E;AAC3E,eAAO,MAAM,iBAAiB,sCAAuC,sBAAsB,sBAsB1F,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC;IAAE,OAAO,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC;AAEzG,wFAAwF;AACxF,eAAO,MAAM,aAAa,sCAAuC,kBAAkB,sBAuClF,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC;IACpD,OAAO,EAAE,cAAc,CAAC;IACxB,KAAK,EAAE,YAAY,CAAC;IACpB,YAAY,EAAE,YAAY,CAAC;CAC5B,CAAC,CAAC;AAEH,4FAA4F;AAC5F,eAAO,MAAM,aAAa,iDAAkD,kBAAkB,sBAoI7F,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toolbar.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/Toolbar/Toolbar.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"Toolbar.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/Toolbar/Toolbar.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAwDjE,QAAA,MAAM,IAAI,EAAE,IAIX,CAAC;eAEa,IAAI;AAEnB,eAAO,MAAM,OAAO,EAAE,QAAa,CAAC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
export * from './About/index.ts';
|
|
1
2
|
export * from './Breadcrumbs/index.ts';
|
|
2
3
|
export * from './ControlFrame/index.ts';
|
|
3
4
|
export * from './Grid/index.ts';
|
|
4
5
|
export * from './LatticeGrid/index.ts';
|
|
6
|
+
export * from './Layers/index.ts';
|
|
5
7
|
export * from './Palette/index.ts';
|
|
6
8
|
export * from './PartEditor/index.ts';
|
|
7
9
|
export * from './Properties/index.ts';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAIA,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAIA,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC"}
|
|
@@ -3,6 +3,11 @@ export type WheelHandler = (event: WheelEvent, pointer: {
|
|
|
3
3
|
x: number;
|
|
4
4
|
y: number;
|
|
5
5
|
}) => void;
|
|
6
|
+
/**
|
|
7
|
+
* Marks content whose own scrolling takes the wheel rather than the canvas panning: a floating panel over the canvas
|
|
8
|
+
* (the properties form), or a host's content embedded in a node (an object's surface in a frame).
|
|
9
|
+
*/
|
|
10
|
+
export declare const SCENE_OVERLAY_ATTRIBUTE = "data-scene-overlay";
|
|
6
11
|
/** Non-passive wheel listener with the pointer in element coordinates, so the page never scrolls. */
|
|
7
12
|
export declare const useWheel: (ref: RefObject<HTMLElement | null>, handler: WheelHandler) => void;
|
|
8
13
|
//# sourceMappingURL=useWheel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWheel.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useWheel.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,OAAO,CAAC;AAElD,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,CAAC;AAE1F,qGAAqG;AACrG,eAAO,MAAM,QAAQ,QAAS,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,YAAY,
|
|
1
|
+
{"version":3,"file":"useWheel.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useWheel.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,OAAO,CAAC;AAElD,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,CAAC;AAE1F;;;GAGG;AACH,eAAO,MAAM,uBAAuB,uBAAuB,CAAC;AAqB5D,qGAAqG;AACrG,eAAO,MAAM,QAAQ,QAAS,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,YAAY,SAwBjF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC"}
|