@pascal-app/editor 1.0.7 → 1.1.1
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/package.json +9 -15
- package/src/components/editor/action-menu-button.tsx +1 -1
- package/src/components/editor/alignment-3d-guide-layer.tsx +1 -1
- package/src/components/editor/custom-camera-controls.tsx +101 -45
- package/src/components/editor/duplicate-node.ts +2 -1
- package/src/components/editor/editor-layout-v2.tsx +1 -1
- package/src/components/editor/elevation-3d-guide-layer.tsx +1 -1
- package/src/components/editor/first-person-controls.tsx +20 -1983
- package/src/components/editor/fit-scene-framing.test.ts +318 -0
- package/src/components/editor/fit-scene-framing.ts +142 -0
- package/src/components/editor/floating-action-menu.tsx +5 -3
- package/src/components/editor/floating-building-action-menu.tsx +1 -1
- package/src/components/editor/floor-openings-overlay.tsx +1 -1
- package/src/components/editor/floor-region-controls.tsx +8 -4
- package/src/components/editor/floorplan-navigation-presentation.test.ts +0 -40
- package/src/components/editor/floorplan-navigation-presentation.ts +0 -66
- package/src/components/editor/floorplan-panel.tsx +199 -30
- package/src/components/editor/floorplan-wall-typing-keys.test.tsx +152 -0
- package/src/components/editor/floorplan-wall-typing-keys.ts +79 -0
- package/src/components/editor/follow-pascal.test.tsx +1 -2
- package/src/components/editor/follow-pascal.tsx +1 -1
- package/src/components/editor/footprint-height-handle.tsx +2 -2
- package/src/components/editor/group-actions.ts +1 -2
- package/src/components/editor/group-floating-action-menu.tsx +1 -1
- package/src/components/editor/group-move-3d.ts +1 -2
- package/src/components/editor/group-rotate-handle.tsx +1 -2
- package/src/components/editor/group-transform-shared.ts +3 -1
- package/src/components/editor/handles/use-handle-drag.ts +1 -2
- package/src/components/editor/index.tsx +43 -13
- package/src/components/editor/inspector-extension-actions.tsx +1 -1
- package/src/components/editor/measurement-pill.tsx +1 -1
- package/src/components/editor/node-arrow-handles.tsx +2 -2
- package/src/components/editor/open-wall-ends-3d-layer.tsx +2 -3
- package/src/components/editor/open-wall-ends-hint.tsx +1 -1
- package/src/components/editor/opening-guides-3d-layer.tsx +1 -1
- package/src/components/editor/quick-measurement-card.tsx +1 -1
- package/src/components/editor/room-controls.tsx +10 -6
- package/src/components/editor/room-handles-2d.tsx +3 -3
- package/src/components/editor/room-handles.tsx +4 -5
- package/src/components/editor/room-highlight.tsx +6 -105
- package/src/components/editor/room-labels.test.ts +8 -822
- package/src/components/editor/room-labels.tsx +41 -1670
- package/src/components/editor/room-webgpu-materials.test.ts +1 -1
- package/src/components/editor/selection-manager.tsx +5 -3
- package/src/components/editor/site-edge-labels.tsx +7 -3
- package/src/components/editor/snapshot-capture-overlay.tsx +2 -5
- package/src/components/editor/use-floorplan-background-placement.ts +2 -1
- package/src/components/editor/views/plugins-view.tsx +1 -1
- package/src/components/editor/views/view-bar.tsx +9 -9
- package/src/components/editor/wall-measurement-label.tsx +31 -15
- package/src/components/editor/wall-move-side-handles.tsx +11 -7
- package/src/components/editor/wall-pull-grip.tsx +2 -2
- package/src/components/editor/wall-region-handles.tsx +2 -2
- package/src/components/editor/wall-snap-beacon-layer.tsx +53 -32
- package/src/components/editor-2d/floorplan-group-move.tsx +3 -4
- package/src/components/editor-2d/floorplan-measurement-tool-layer.tsx +13 -13
- package/src/components/editor-2d/floorplan-open-wall-ends-layer.tsx +2 -3
- package/src/components/editor-2d/floorplan-registry-action-menu.tsx +2 -1
- package/src/components/editor-2d/floorplan-registry-move-overlay.tsx +23 -6
- package/src/components/editor-2d/renderers/floorplan-annotation-layout.test.ts +0 -37
- package/src/components/editor-2d/renderers/floorplan-annotation-layout.ts +0 -30
- package/src/components/editor-2d/renderers/floorplan-dimension-edit-overlay.tsx +13 -3
- package/src/components/editor-2d/renderers/floorplan-draft-measurement.tsx +7 -1
- package/src/components/editor-2d/renderers/floorplan-placement-preview-layer.tsx +14 -3
- package/src/components/editor-2d/renderers/floorplan-placement-typing-hud.test.tsx +35 -0
- package/src/components/editor-2d/renderers/floorplan-placement-typing-hud.tsx +65 -0
- package/src/components/editor-2d/renderers/floorplan-registry-layer.test.ts +30 -10
- package/src/components/editor-2d/renderers/floorplan-registry-layer.tsx +39 -35
- package/src/components/systems/roof/roof-edit-system.test.tsx +15 -1
- package/src/components/systems/roof/roof-edit-system.tsx +33 -21
- package/src/components/tools/distribution/distribution-run-tool.test.tsx +371 -3
- package/src/components/tools/distribution/distribution-run-tool.tsx +151 -33
- package/src/components/tools/item/move-tool.tsx +1 -6
- package/src/components/tools/item/placement-history.test.tsx +1 -1
- package/src/components/tools/item/use-placement-coordinator.tsx +3 -4
- package/src/components/tools/paint-region/wall-paint-region-tool.tsx +7 -3
- package/src/components/tools/registry/move-registry-node-tool.test.ts +42 -1
- package/src/components/tools/registry/move-registry-node-tool.tsx +39 -16
- package/src/components/tools/shared/cursor-sphere.tsx +1 -1
- package/src/components/tools/shared/draft-measurement-label.tsx +1 -1
- package/src/components/tools/shared/placement-box.tsx +2 -6
- package/src/components/tools/shared/placement-coordinate-input.tsx +94 -0
- package/src/components/tools/shared/placement-dimension-guides.tsx +1 -1
- package/src/components/tools/shared/segment-angle.ts +0 -4
- package/src/components/tools/site/terrain-brush-cursor.tsx +1 -1
- package/src/components/tools/tool-manager.tsx +1 -24
- package/src/components/tools/wall/wall-typed-entry.test.ts +99 -0
- package/src/components/tools/wall/wall-typed-entry.ts +70 -0
- package/src/components/ui/action-menu/camera-actions.tsx +2 -2
- package/src/components/ui/action-menu/control-modes.tsx +1 -1
- package/src/components/ui/action-menu/follow-pascal-pill.tsx +1 -1
- package/src/components/ui/action-menu/index.tsx +3 -3
- package/src/components/ui/action-menu/measurement-control.tsx +3 -3
- package/src/components/ui/action-menu/placement.ts +0 -18
- package/src/components/ui/action-menu/point-ask-button.tsx +1 -1
- package/src/components/ui/action-menu/view-toggles.tsx +5 -5
- package/src/components/ui/controls/finish-swatch.tsx +1 -1
- package/src/components/ui/controls/material-paint-panel.tsx +2 -2
- package/src/components/ui/controls/scene-material-list.tsx +2 -2
- package/src/components/ui/controls/select-control.tsx +1 -1
- package/src/components/ui/controls/slider-control.tsx +18 -6
- package/src/components/ui/controls/terrain-sculpt-panel.tsx +1 -1
- package/src/components/ui/controls/tool-options-panel.tsx +74 -44
- package/src/components/ui/floating-level-selector.tsx +3 -3
- package/src/components/ui/helpers/contextual-helper-panel.tsx +1 -1
- package/src/components/ui/helpers/helper-manager.test.tsx +54 -1
- package/src/components/ui/helpers/helper-manager.tsx +55 -1
- package/src/components/ui/level-duplicate-dialog.tsx +1 -1
- package/src/components/ui/panels/collections/collections-popover.tsx +2 -2
- package/src/components/ui/panels/floor-foundation-panel.tsx +3 -3
- package/src/components/ui/panels/floor-opening-panel.tsx +5 -5
- package/src/components/ui/panels/mobile-selection-bar.tsx +28 -24
- package/src/components/ui/panels/multi-height-mode.tsx +3 -3
- package/src/components/ui/panels/multi-selection-panel.tsx +1 -1
- package/src/components/ui/panels/node-display.ts +1 -1
- package/src/components/ui/panels/panel-manager.tsx +5 -3
- package/src/components/ui/panels/panel-wrapper.tsx +42 -19
- package/src/components/ui/panels/parametric-inspector.tsx +1 -1
- package/src/components/ui/panels/room-construction-rows.tsx +7 -7
- package/src/components/ui/panels/room-name-options.ts +1 -5
- package/src/components/ui/panels/room-openings-field.tsx +1 -1
- package/src/components/ui/panels/room-panel.tsx +7 -9
- package/src/components/ui/primitives/color-dot.tsx +2 -2
- package/src/components/ui/primitives/opacity-control.tsx +2 -2
- package/src/components/ui/primitives/sidebar.tsx +3 -3
- package/src/components/ui/right-stack.test.ts +13 -6
- package/src/components/ui/right-stack.tsx +22 -11
- package/src/components/ui/sidebar/icon-rail.tsx +1 -1
- package/src/components/ui/sidebar/panels/items-panel/function-tree-panel.tsx +1 -1
- package/src/components/ui/sidebar/panels/settings-panel/audio-settings-dialog.tsx +2 -2
- package/src/components/ui/sidebar/panels/settings-panel/construction-animation-setting.tsx +1 -1
- package/src/components/ui/sidebar/panels/settings-panel/index.tsx +2 -2
- package/src/components/ui/sidebar/panels/settings-panel/keyboard-shortcuts-dialog.tsx +1 -1
- package/src/components/ui/sidebar/panels/settings-panel/load-build-dialog.tsx +2 -6
- package/src/components/ui/sidebar/panels/settings-panel/print-export-button.tsx +1 -1
- package/src/components/ui/sidebar/panels/site-panel/building-tree-node.tsx +1 -1
- package/src/components/ui/sidebar/panels/site-panel/ceiling-tree-node.tsx +1 -1
- package/src/components/ui/sidebar/panels/site-panel/index.tsx +3 -10
- package/src/components/ui/sidebar/panels/site-panel/inline-rename-input.tsx +1 -1
- package/src/components/ui/sidebar/panels/site-panel/level-tree-node.tsx +1 -1
- package/src/components/ui/sidebar/panels/site-panel/roof-tree-node.tsx +46 -7
- package/src/components/ui/sidebar/panels/site-panel/slab-tree-node.tsx +1 -1
- package/src/components/ui/sidebar/panels/site-panel/tree-node-actions.tsx +1 -1
- package/src/components/ui/sidebar/panels/site-panel/tree-node-drag.tsx +14 -5
- package/src/components/ui/sidebar/panels/site-panel/unit-tree-node.tsx +2 -2
- package/src/components/ui/sidebar/panels/site-panel/zone-tree-node.tsx +1 -1
- package/src/components/ui/sidebar/panels/zone-panel/index.tsx +3 -3
- package/src/components/ui/sidebar/tab-bar.tsx +1 -1
- package/src/components/ui/wall-type/wall-type-editor-dialog.tsx +2 -2
- package/src/components/ui/wall-type/wall-type-menu.tsx +1 -1
- package/src/components/viewer-overlay.tsx +1 -2
- package/src/hooks/use-auto-frame.ts +1 -2
- package/src/hooks/use-keyboard.ts +1 -2
- package/src/hooks/use-selected-room.ts +5 -7
- package/src/i18n/floor-footprint-name.ts +1 -1
- package/src/i18n/locales/en/messages.po +1036 -306
- package/src/i18n/locales/en/messages.ts +1 -1
- package/src/i18n/locales/en-XA/messages.ts +1 -1
- package/src/i18n/locales/es/messages.po +2267 -439
- package/src/i18n/locales/fr/messages.po +2267 -439
- package/src/i18n/locales/ja/messages.po +2267 -439
- package/src/i18n/locales/zh-CN/messages.po +2267 -439
- package/src/i18n/locales.test.ts +1 -1
- package/src/index.tsx +183 -178
- package/src/lib/below-grade.test.tsx +4 -4
- package/src/lib/camera-facing.test.ts +1 -1
- package/src/lib/camera-facing.ts +2 -3
- package/src/lib/contextual-help.ts +6 -0
- package/src/lib/editor-level-display.ts +1 -1
- package/src/lib/elevation-guides.ts +21 -6
- package/src/lib/elevator-support.ts +1 -72
- package/src/lib/floor-footprints.test.ts +3 -3
- package/src/lib/floor-footprints.ts +1 -9
- package/src/lib/floor-foundation-support.test.ts +8 -3
- package/src/lib/floor-opening-draft.ts +2 -2
- package/src/lib/floor-region-session.ts +1 -1
- package/src/lib/floorplan/annotation-visibility.test.ts +1 -1
- package/src/lib/floorplan/annotation-visibility.ts +1 -1
- package/src/lib/floorplan/floorplan-export.test.ts +1 -1
- package/src/lib/floorplan/floorplan-export.tsx +8 -11
- package/src/lib/floorplan/floorplan-extension.ts +4 -157
- package/src/lib/floorplan/floorplan-mode.ts +2 -1
- package/src/lib/floorplan/floorplan-pdfkit-renderer.test.ts +1 -1
- package/src/lib/floorplan/floorplan-pdfkit-renderer.ts +8 -6
- package/src/lib/floorplan/floorplan-plugin-install.test.tsx +3 -4
- package/src/lib/floorplan/geometry.ts +2 -112
- package/src/lib/floorplan/index.ts +0 -9
- package/src/lib/floorplan/items.ts +2 -1
- package/src/lib/floorplan/open-wall-ends.ts +2 -1
- package/src/lib/floorplan/schedules.ts +6 -3
- package/src/lib/floorplan/sheet-export.ts +7 -3
- package/src/lib/floorplan/site-plan/site-parts.ts +7 -1
- package/src/lib/floorplan/site-plan/site-plan-layer.tsx +1 -1
- package/src/lib/follow-pascal-presentation.ts +1 -1
- package/src/lib/gesture-lifecycle.ts +3 -1
- package/src/lib/glb-export.ts +1 -1
- package/src/lib/interaction/scope.ts +1 -0
- package/src/lib/layer-thickness.ts +1 -1
- package/src/lib/level-selection.test.ts +18 -2
- package/src/lib/level-selection.ts +31 -8
- package/src/lib/linear-display.ts +1 -1
- package/src/lib/live-gesture-round-trip.test.ts +1 -1
- package/src/lib/material-paint.ts +1 -1
- package/src/lib/measurement-label.test.ts +1 -1
- package/src/lib/measurements.test.ts +7 -5
- package/src/lib/mezzanine-selection.test.ts +1 -1
- package/src/lib/node-action-movement.test.tsx +115 -0
- package/src/lib/node-action-movement.ts +2 -0
- package/src/lib/paint-region-mode.ts +1 -1
- package/src/lib/placement-metadata.ts +4 -0
- package/src/lib/point-ask/describe-target.ts +6 -8
- package/src/lib/point-ask/region.ts +1 -1
- package/src/lib/point-ask/session.ts +1 -2
- package/src/lib/print-shell-compiler.ts +12 -1
- package/src/lib/print-wall-solids.test.ts +11 -0
- package/src/lib/print-wall-solids.ts +9 -0
- package/src/lib/roof-duplication.test.ts +100 -0
- package/src/lib/roof-duplication.ts +30 -5
- package/src/lib/room-built-on.test.ts +2 -5
- package/src/lib/room-built-on.ts +1 -15
- package/src/lib/room-construction-commands.ts +3 -2
- package/src/lib/room-controls-phase6.test.ts +1 -1
- package/src/lib/room-handle-drag.ts +8 -37
- package/src/lib/room-name-catalog.test.ts +2 -1
- package/src/lib/room-name-messages.test.ts +2 -1
- package/src/lib/room-name-messages.ts +1 -118
- package/src/lib/room-name-storage.test.ts +2 -1
- package/src/lib/room-push-dimensions.test.ts +1 -1
- package/src/lib/room-selection-commands.ts +2 -2
- package/src/lib/room-selection.test.ts +6 -6
- package/src/lib/room-transform-session.ts +1 -2
- package/src/lib/room-zone-routing.ts +2 -2
- package/src/lib/scene-clipboard.ts +2 -1
- package/src/lib/selection-routing.test.ts +0 -28
- package/src/lib/selection-routing.ts +1 -40
- package/src/lib/sfx-bus.ts +8 -32
- package/src/lib/sfx-player.test.ts +72 -1
- package/src/lib/sfx-player.ts +49 -337
- package/src/lib/snapping-mode.test.ts +23 -1
- package/src/lib/viewer-selection.test.ts +38 -10
- package/src/lib/wall-pull.test.ts +1 -1
- package/src/lib/wall-pull.ts +1 -27
- package/src/lib/wall-region-list.ts +3 -1
- package/src/lib/window-interaction.test.ts +4 -2
- package/src/store/use-editor.tsx +22 -26
- package/src/store/use-floorplan-annotation-visibility.ts +5 -5
- package/src/store/use-placement-typing.test.ts +165 -0
- package/src/store/use-placement-typing.ts +186 -0
- package/src/store/use-wall-region-handles-selection.ts +1 -2
- package/src/components/editor/__bench__/room-label-placement.bench.ts +0 -108
- package/src/components/editor/first-person/build-collider-world.test.ts +0 -596
- package/src/components/editor/first-person/build-collider-world.ts +0 -549
- package/src/components/editor/first-person/ground-holes.test.ts +0 -128
- package/src/components/editor/first-person/ground-holes.ts +0 -130
- package/src/components/editor/first-person/mechanism-targets.test.ts +0 -162
- package/src/components/editor/first-person/mechanism-targets.ts +0 -88
- package/src/components/editor/first-person/terrain-collider.test.ts +0 -132
- package/src/components/editor/first-person/terrain-collider.ts +0 -212
- package/src/components/editor/floorplan-camera-sync.test.ts +0 -249
- package/src/components/editor/floorplan-camera-sync.ts +0 -213
- package/src/components/editor/localized-html.tsx +0 -22
- package/src/components/editor-2d/renderers/floorplan-dimension-renderer.test.tsx +0 -236
- package/src/components/editor-2d/renderers/floorplan-dimension-renderer.tsx +0 -708
- package/src/components/editor-2d/renderers/floorplan-geometry-renderer.test.tsx +0 -385
- package/src/components/editor-2d/renderers/floorplan-geometry-renderer.tsx +0 -670
- package/src/components/editor-2d/renderers/floorplan-label-angle.test.ts +0 -89
- package/src/components/editor-2d/renderers/floorplan-label-angle.ts +0 -106
- package/src/components/editor-2d/svg-paths.ts +0 -124
- package/src/components/tools/elevator/elevator-defaults.ts +0 -8
- package/src/components/tools/elevator/elevator-tool.tsx +0 -372
- package/src/components/tools/elevator/move-elevator-tool.tsx +0 -262
- package/src/components/ui/action-menu/action-button.tsx +0 -89
- package/src/components/ui/action-menu/follow-pascal-toggle.tsx +0 -42
- package/src/components/ui/primitives/button.tsx +0 -69
- package/src/components/ui/primitives/dropdown-menu.tsx +0 -232
- package/src/components/ui/primitives/popover.tsx +0 -42
- package/src/components/ui/primitives/switch.tsx +0 -29
- package/src/components/ui/primitives/tooltip.tsx +0 -57
- package/src/components/ui/scene-loader.tsx +0 -73
- package/src/components/viewer/floorplan-compass-button.tsx +0 -67
- package/src/components/viewer/floorplan-preview-geometry.test.ts +0 -107
- package/src/components/viewer/floorplan-preview-geometry.ts +0 -281
- package/src/components/viewer/floorplan-preview-navigation.test.ts +0 -43
- package/src/components/viewer/floorplan-preview-navigation.ts +0 -62
- package/src/components/viewer/floorplan-preview-visibility.test.ts +0 -35
- package/src/components/viewer/floorplan-preview-visibility.ts +0 -19
- package/src/components/viewer/floorplan-preview.tsx +0 -1065
- package/src/components/viewer/render-settings-menu.tsx +0 -294
- package/src/components/viewer/sky-control.tsx +0 -710
- package/src/components/viewer/use-viewer-camera-navigation-sync.ts +0 -140
- package/src/components/viewer/use-viewer-ui-sounds.test.ts +0 -15
- package/src/components/viewer/use-viewer-ui-sounds.ts +0 -46
- package/src/components/viewer/viewer-controls-bar.tsx +0 -496
- package/src/components/viewer/viewer-hover-label.tsx +0 -42
- package/src/components/viewer/viewer-rooms.tsx +0 -248
- package/src/components/viewer/viewer-scene-header.tsx +0 -286
- package/src/components/viewer/viewer-selection-manager.tsx +0 -124
- package/src/components/viewer/viewer-stage-modes.test.ts +0 -38
- package/src/components/viewer/viewer-stage-modes.ts +0 -49
- package/src/components/viewer/viewer-stage-switcher.tsx +0 -97
- package/src/components/viewer/viewer-stage.test.tsx +0 -47
- package/src/components/viewer/viewer-stage.tsx +0 -221
- package/src/components/walkthrough-hud.tsx +0 -193
- package/src/hooks/use-mobile.ts +0 -19
- package/src/i18n/level-name.ts +0 -39
- package/src/i18n/scene-theme-name.ts +0 -16
- package/src/lib/below-grade.ts +0 -133
- package/src/lib/camera-pose.test.ts +0 -237
- package/src/lib/camera-pose.ts +0 -172
- package/src/lib/door-interaction.ts +0 -102
- package/src/lib/floorplan/floorplan-extension.test.ts +0 -42
- package/src/lib/floorplan/floorplan-readonly.test.ts +0 -47
- package/src/lib/floorplan/floorplan-readonly.ts +0 -95
- package/src/lib/floorplan/marks.test.ts +0 -213
- package/src/lib/floorplan/marks.ts +0 -238
- package/src/lib/measurement-label.ts +0 -68
- package/src/lib/measurements.ts +0 -225
- package/src/lib/node-display-label.ts +0 -37
- package/src/lib/room-assembly-overlay.test.ts +0 -275
- package/src/lib/room-assembly-overlay.ts +0 -265
- package/src/lib/room-selection.ts +0 -417
- package/src/lib/scene-bounds.test.ts +0 -183
- package/src/lib/scene-bounds.ts +0 -169
- package/src/lib/typing-target.ts +0 -9
- package/src/lib/viewer-selection.ts +0 -595
- package/src/lib/window-interaction.ts +0 -142
- package/src/lib/zone-content.ts +0 -133
- package/src/store/camera-pose-store.test.ts +0 -29
- package/src/store/camera-pose-store.ts +0 -27
- package/src/store/navigation-sync-pose-store.test.ts +0 -34
- package/src/store/navigation-sync-pose-store.ts +0 -27
- package/src/store/use-audio.test.ts +0 -146
- package/src/store/use-audio.tsx +0 -169
- package/src/store/use-first-person-hud.ts +0 -40
- package/src/store/use-follow-pascal.test.ts +0 -62
- package/src/store/use-follow-pascal.ts +0 -53
package/src/i18n/locales.test.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { afterEach, expect, test } from 'bun:test'
|
|
2
2
|
import { createI18n, setLocale, translate } from '@pascal-app/core'
|
|
3
|
-
import { authoredLevelName, localizedLevelName } from '
|
|
3
|
+
import { authoredLevelName, localizedLevelName } from '@pascal-app/viewer/ui'
|
|
4
4
|
import { registerBundledLocales } from './locales'
|
|
5
5
|
|
|
6
6
|
afterEach(() => setLocale('en'))
|
package/src/index.tsx
CHANGED
|
@@ -15,8 +15,17 @@ export {
|
|
|
15
15
|
acquireSceneReadOnlyLease,
|
|
16
16
|
applyScenePatch,
|
|
17
17
|
applySceneSnapshot,
|
|
18
|
+
buildMeasurementAngleArcPoints,
|
|
19
|
+
buildSvgAnnularSectorPath,
|
|
20
|
+
buildSvgArcPath,
|
|
21
|
+
buildSvgArrowHeadPoints,
|
|
18
22
|
type CompiledTranslationMessages,
|
|
23
|
+
clampPlanValue,
|
|
24
|
+
closeDoorOpenState,
|
|
25
|
+
closeWindowOpenState,
|
|
26
|
+
createFloorplanContextExtensions,
|
|
19
27
|
createI18n,
|
|
28
|
+
cubicMetersToVolumeUnit,
|
|
20
29
|
DEFAULT_CURVED_STAIR_INNER_RADIUS,
|
|
21
30
|
DEFAULT_CURVED_STAIR_SWEEP_ANGLE,
|
|
22
31
|
DEFAULT_SPIRAL_SHOW_CENTER_COLUMN,
|
|
@@ -33,15 +42,59 @@ export {
|
|
|
33
42
|
DEFAULT_STAIR_TYPE,
|
|
34
43
|
DEFAULT_STAIR_WIDTH,
|
|
35
44
|
defaultI18n,
|
|
45
|
+
FLOORPLAN_CONTEXT_EXTENSION_KEY,
|
|
46
|
+
FLOORPLAN_GEOMETRY_METADATA_KEY,
|
|
47
|
+
type FloorplanAnnotationRole,
|
|
48
|
+
type FloorplanMetricNotation,
|
|
49
|
+
type FloorplanRenderPurpose,
|
|
50
|
+
type FloorplanSchedule,
|
|
51
|
+
type FloorplanWallDimensionFaces,
|
|
52
|
+
floorplanGeometryMetadata,
|
|
53
|
+
formatAngleRadians,
|
|
54
|
+
formatAreaLabel,
|
|
36
55
|
formatLength,
|
|
56
|
+
formatLinearMeasurement,
|
|
37
57
|
formatNumber,
|
|
58
|
+
formatVolumeLabel,
|
|
59
|
+
getArcPlanPoint,
|
|
60
|
+
getAreaUnitLabel,
|
|
61
|
+
getDisplayedDoorValue,
|
|
62
|
+
getDisplayedWindowShutterValue,
|
|
63
|
+
getDisplayedWindowValue,
|
|
64
|
+
getLinearUnitLabel,
|
|
38
65
|
getLocale,
|
|
66
|
+
getPlanPointDistance,
|
|
67
|
+
getThickPlanLinePolygon,
|
|
68
|
+
getVolumeUnitLabel,
|
|
69
|
+
interpolatePlanPoint,
|
|
70
|
+
isOperableWindowType,
|
|
71
|
+
type LinearUnit,
|
|
72
|
+
linearControlValueToMeters,
|
|
73
|
+
linearUnitToMeters,
|
|
74
|
+
type MarkResolution,
|
|
75
|
+
metersToLinearUnit,
|
|
76
|
+
movePlanPointTowards,
|
|
39
77
|
normalizeDecimalInput,
|
|
78
|
+
type OpeningMarkKind,
|
|
79
|
+
openDoorOpenState,
|
|
80
|
+
openWindowOpenState,
|
|
81
|
+
orderedOpenings,
|
|
40
82
|
type PascalI18n,
|
|
41
83
|
PascalI18nProvider,
|
|
84
|
+
parseLinearMeasurementInput,
|
|
42
85
|
parseLocalizedNumber,
|
|
86
|
+
persistResolvedMarks,
|
|
87
|
+
readFloorplanContext,
|
|
88
|
+
readFloorplanGeometryMetadata,
|
|
89
|
+
readFloorplanMetricNotationOverride,
|
|
43
90
|
registerCompiledMessages,
|
|
44
91
|
registerMessages,
|
|
92
|
+
resolveElevatorNodeSupportY,
|
|
93
|
+
resolveElevatorSupportLevelId,
|
|
94
|
+
resolveElevatorSupportY,
|
|
95
|
+
resolveMarkDetail,
|
|
96
|
+
resolveMarks,
|
|
97
|
+
rotatePlanVector,
|
|
45
98
|
type SceneCommit,
|
|
46
99
|
type SceneCommitListener,
|
|
47
100
|
type SceneCommitOrigin,
|
|
@@ -49,7 +102,10 @@ export {
|
|
|
49
102
|
type SceneNodePatch,
|
|
50
103
|
type ScenePatch,
|
|
51
104
|
type SceneSnapshot,
|
|
105
|
+
separatorFloorElevation,
|
|
52
106
|
setLocale,
|
|
107
|
+
setWindowShuttersOpenState,
|
|
108
|
+
squareMetersToAreaUnit,
|
|
53
109
|
subscribe,
|
|
54
110
|
subscribeSceneCommits,
|
|
55
111
|
type TranslationMessage,
|
|
@@ -59,8 +115,98 @@ export {
|
|
|
59
115
|
useLocale,
|
|
60
116
|
usePascalI18n,
|
|
61
117
|
useScene,
|
|
118
|
+
WALL_PULL_AFFORDANCE,
|
|
119
|
+
WALL_PULL_GRIP_TITLE,
|
|
120
|
+
WALL_PUSH_AFFORDANCE,
|
|
121
|
+
type WallPullGripPayload,
|
|
122
|
+
type WallPushArrowPayload,
|
|
123
|
+
type WindowOpenAnimationOptions,
|
|
124
|
+
type WindowShutterField,
|
|
125
|
+
wallPullSeed,
|
|
126
|
+
withFloorplanGeometryMetadata,
|
|
62
127
|
} from '@pascal-app/core'
|
|
63
|
-
export {
|
|
128
|
+
export {
|
|
129
|
+
isTypingTarget,
|
|
130
|
+
MEASUREMENT_ACTIVE_COLOR,
|
|
131
|
+
MEASUREMENT_DANGLING_COLOR,
|
|
132
|
+
MEASUREMENT_FLOORPLAN_COLOR,
|
|
133
|
+
MEASUREMENT_PERSISTENT_COLOR,
|
|
134
|
+
measurementFloorplanPresentationColor,
|
|
135
|
+
measurementPolygonLabelAnchor,
|
|
136
|
+
measurementPresentationColor,
|
|
137
|
+
triangulateMeasurementPolygon,
|
|
138
|
+
useViewer,
|
|
139
|
+
} from '@pascal-app/viewer'
|
|
140
|
+
export { useAudioSettings as useAudio, useViewerUiSounds } from '@pascal-app/viewer/sfx'
|
|
141
|
+
export type { ActionMenuPlacement, RoomKey, RoomSelectionRecord } from '@pascal-app/viewer/ui'
|
|
142
|
+
export {
|
|
143
|
+
applyViewerClick,
|
|
144
|
+
applyViewerHover,
|
|
145
|
+
DaylightMenu,
|
|
146
|
+
DroneHud,
|
|
147
|
+
DropdownMenu,
|
|
148
|
+
DropdownMenuContent,
|
|
149
|
+
DropdownMenuGroup,
|
|
150
|
+
DropdownMenuItem,
|
|
151
|
+
DropdownMenuLabel,
|
|
152
|
+
DropdownMenuSeparator,
|
|
153
|
+
DropdownMenuSub,
|
|
154
|
+
DropdownMenuSubContent,
|
|
155
|
+
DropdownMenuSubTrigger,
|
|
156
|
+
DropdownMenuTrigger,
|
|
157
|
+
displayRoomName,
|
|
158
|
+
EdgesToggleItem,
|
|
159
|
+
type FirstPersonHudState,
|
|
160
|
+
FloorplanCompassButton,
|
|
161
|
+
type FloorplanCompassButtonProps,
|
|
162
|
+
FloorplanDimensionRenderer,
|
|
163
|
+
FloorplanGeometryRenderer,
|
|
164
|
+
FloorplanPreview,
|
|
165
|
+
type FloorplanPreviewProps,
|
|
166
|
+
type FloorplanPreviewScene,
|
|
167
|
+
framedLookAt,
|
|
168
|
+
frameViewerCamera,
|
|
169
|
+
frameViewerNode,
|
|
170
|
+
LocalizedHtml,
|
|
171
|
+
localizedLevelName,
|
|
172
|
+
normalizeViewerStageModes,
|
|
173
|
+
openSkyPanel,
|
|
174
|
+
ParametricViewerRooms,
|
|
175
|
+
QualityMenu,
|
|
176
|
+
resolveMobileViewerStageMode,
|
|
177
|
+
resolveViewerStageMode,
|
|
178
|
+
SceneLoader,
|
|
179
|
+
SkyControl,
|
|
180
|
+
sceneThemeName,
|
|
181
|
+
subscribeCameraPose,
|
|
182
|
+
Tooltip,
|
|
183
|
+
TooltipContent,
|
|
184
|
+
TooltipTrigger,
|
|
185
|
+
useFirstPersonHud,
|
|
186
|
+
useFollowPascal,
|
|
187
|
+
useSkyPanel,
|
|
188
|
+
useViewerCameraNavigationSync,
|
|
189
|
+
useViewerFloorDisplay,
|
|
190
|
+
VIEWER_STAGE_MODES,
|
|
191
|
+
ViewerControlsBar,
|
|
192
|
+
type ViewerControlsBarProps,
|
|
193
|
+
ViewerHoverLabel,
|
|
194
|
+
type ViewerPick,
|
|
195
|
+
ViewerRooms,
|
|
196
|
+
ViewerSceneHeader,
|
|
197
|
+
type ViewerSceneHeaderProps,
|
|
198
|
+
ViewerSelectionManager,
|
|
199
|
+
type ViewerSource,
|
|
200
|
+
ViewerStage,
|
|
201
|
+
type ViewerStageMode,
|
|
202
|
+
type ViewerStageProps,
|
|
203
|
+
ViewerStageSwitcher,
|
|
204
|
+
type ViewerStageSwitcherProps,
|
|
205
|
+
viewerStageIncludes3D,
|
|
206
|
+
WalkthroughHud,
|
|
207
|
+
type WalkthroughHudProps,
|
|
208
|
+
type WalkthroughInteract,
|
|
209
|
+
} from '@pascal-app/viewer/ui'
|
|
64
210
|
export type { EditorProps } from './components/editor'
|
|
65
211
|
export { default as Editor } from './components/editor'
|
|
66
212
|
export { ActionMenuButton } from './components/editor/action-menu-button'
|
|
@@ -96,7 +242,6 @@ export { FloatingActionMenu as FloatingMenu } from './components/editor/floating
|
|
|
96
242
|
// flags. Tools place onto `useViewer.selection.levelId`, so the host must set a
|
|
97
243
|
// building + level selection first.
|
|
98
244
|
export { EDITOR_GRID_INPUT_NAME, Grid } from './components/editor/grid'
|
|
99
|
-
export { Html as LocalizedHtml } from './components/editor/localized-html'
|
|
100
245
|
export {
|
|
101
246
|
DimensionPill,
|
|
102
247
|
type DimensionPillPart,
|
|
@@ -137,12 +282,10 @@ export { WallMoveSideHandles } from './components/editor/wall-move-side-handles'
|
|
|
137
282
|
export { WallPushArrow } from './components/editor/wall-push-arrow'
|
|
138
283
|
export { useWallsBelowSetting } from './components/editor-2d/floorplan-adjacent-walls-layer'
|
|
139
284
|
export { useFloorplanRender } from './components/editor-2d/floorplan-render-context'
|
|
140
|
-
export { FloorplanDimensionRenderer } from './components/editor-2d/renderers/floorplan-dimension-renderer'
|
|
141
285
|
export {
|
|
142
286
|
type DraftMeasurement,
|
|
143
287
|
FloorplanDraftMeasurement,
|
|
144
288
|
} from './components/editor-2d/renderers/floorplan-draft-measurement'
|
|
145
|
-
export { FloorplanGeometryRenderer } from './components/editor-2d/renderers/floorplan-geometry-renderer'
|
|
146
289
|
export {
|
|
147
290
|
FloorplanNodePreview,
|
|
148
291
|
type FloorplanNodePreviewProps,
|
|
@@ -150,12 +293,6 @@ export {
|
|
|
150
293
|
// SVG path builders for arc / annular-sector / arrow-head shapes —
|
|
151
294
|
// inlined into `kind: 'path'` / `kind: 'polygon'` primitives by curved
|
|
152
295
|
// stair rendering in `nodes/src/stair/floorplan.ts`.
|
|
153
|
-
export {
|
|
154
|
-
buildSvgAnnularSectorPath,
|
|
155
|
-
buildSvgArcPath,
|
|
156
|
-
buildSvgArrowHeadPoints,
|
|
157
|
-
getArcPlanPoint,
|
|
158
|
-
} from './components/editor-2d/svg-paths'
|
|
159
296
|
export { useCeilingsSetting } from './components/systems/ceiling/ceiling-system'
|
|
160
297
|
export type {
|
|
161
298
|
SelectionAffordanceHistoryApi,
|
|
@@ -188,6 +325,7 @@ export {
|
|
|
188
325
|
} from './components/tools/item/use-placement-coordinator'
|
|
189
326
|
export { MoveRegistryNodeTool } from './components/tools/registry/move-registry-node-tool'
|
|
190
327
|
export {
|
|
328
|
+
type RegistryToolContextValue,
|
|
191
329
|
RegistryToolProvider,
|
|
192
330
|
useRegistryToolContext,
|
|
193
331
|
} from './components/tools/registry-tool-context'
|
|
@@ -207,6 +345,7 @@ export {
|
|
|
207
345
|
resolveLevelConstructionPlane,
|
|
208
346
|
} from './components/tools/shared/horizontal-construction-plane'
|
|
209
347
|
export { PlacementBox } from './components/tools/shared/placement-box'
|
|
348
|
+
export { PlacementCoordinateInput } from './components/tools/shared/placement-coordinate-input'
|
|
210
349
|
export { PlacementDimensionGuides } from './components/tools/shared/placement-dimension-guides'
|
|
211
350
|
// Pointer-decided support surface (deck top vs floor underneath) — the
|
|
212
351
|
// draw tools (wall / fence) ride their grid plane and commit cap on it.
|
|
@@ -222,7 +361,6 @@ export {
|
|
|
222
361
|
type PolygonEditorProps,
|
|
223
362
|
} from './components/tools/shared/polygon-editor'
|
|
224
363
|
export {
|
|
225
|
-
formatAngleRadians,
|
|
226
364
|
getAngleArcToSegmentReference,
|
|
227
365
|
getAngleToSegmentReference,
|
|
228
366
|
getSegmentAngleReferenceAtPoint,
|
|
@@ -264,6 +402,11 @@ export {
|
|
|
264
402
|
type WallPullSnapRadii,
|
|
265
403
|
type WallPullSnapResult,
|
|
266
404
|
} from './components/tools/wall/wall-pull-snap'
|
|
405
|
+
export {
|
|
406
|
+
formatWallDraftHeading,
|
|
407
|
+
resolveTypedWallEnd,
|
|
408
|
+
wallDraftHeadingDegrees,
|
|
409
|
+
} from './components/tools/wall/wall-typed-entry'
|
|
267
410
|
// `ToolbarLeft` / `ToolbarRight` alias `ViewerToolbarLeft` / `ViewerToolbarRight`
|
|
268
411
|
// (same components) under the names headless hosts compose their toolbars with.
|
|
269
412
|
export {
|
|
@@ -271,7 +414,6 @@ export {
|
|
|
271
414
|
CameraActions as ViewerToolbarRight,
|
|
272
415
|
} from './components/ui/action-menu/camera-actions'
|
|
273
416
|
export { furnishTools } from './components/ui/action-menu/furnish-tools'
|
|
274
|
-
export type { ActionMenuPlacement } from './components/ui/action-menu/placement'
|
|
275
417
|
export {
|
|
276
418
|
ViewToggles as ToolbarLeft,
|
|
277
419
|
ViewToggles as ViewerToolbarLeft,
|
|
@@ -334,26 +476,12 @@ export { ScriptedFinishRow } from './components/ui/panels/room-panel'
|
|
|
334
476
|
export { ShapeChoice } from './components/ui/panels/shape-choice'
|
|
335
477
|
export { WallPaintRegionList } from './components/ui/panels/wall-region-list'
|
|
336
478
|
export { PALETTE_COLORS } from './components/ui/primitives/color-dot'
|
|
337
|
-
export {
|
|
338
|
-
DropdownMenu,
|
|
339
|
-
DropdownMenuContent,
|
|
340
|
-
DropdownMenuGroup,
|
|
341
|
-
DropdownMenuItem,
|
|
342
|
-
DropdownMenuLabel,
|
|
343
|
-
DropdownMenuSeparator,
|
|
344
|
-
DropdownMenuSub,
|
|
345
|
-
DropdownMenuSubContent,
|
|
346
|
-
DropdownMenuSubTrigger,
|
|
347
|
-
DropdownMenuTrigger,
|
|
348
|
-
} from './components/ui/primitives/dropdown-menu'
|
|
349
479
|
export {
|
|
350
480
|
ShortcutToken,
|
|
351
481
|
shortcutDisplayValue,
|
|
352
482
|
} from './components/ui/primitives/shortcut-token'
|
|
353
483
|
export { useSidebarStore } from './components/ui/primitives/sidebar'
|
|
354
484
|
export { Slider } from './components/ui/primitives/slider'
|
|
355
|
-
export { Tooltip, TooltipContent, TooltipTrigger } from './components/ui/primitives/tooltip'
|
|
356
|
-
export { SceneLoader } from './components/ui/scene-loader'
|
|
357
485
|
export type { ExtraPanel } from './components/ui/sidebar/icon-rail'
|
|
358
486
|
export { ItemsPanel } from './components/ui/sidebar/panels/items-panel'
|
|
359
487
|
export type { FunctionTreeNode } from './components/ui/sidebar/panels/items-panel/function-tree-panel'
|
|
@@ -376,53 +504,6 @@ export {
|
|
|
376
504
|
} from './components/ui/snap-target-badge'
|
|
377
505
|
// A wall's project wall types: new, edit, duplicate (the wall panel's Assembly).
|
|
378
506
|
export { WallTypeMenu } from './components/ui/wall-type/wall-type-menu'
|
|
379
|
-
export {
|
|
380
|
-
FloorplanCompassButton,
|
|
381
|
-
type FloorplanCompassButtonProps,
|
|
382
|
-
} from './components/viewer/floorplan-compass-button'
|
|
383
|
-
export {
|
|
384
|
-
FloorplanPreview,
|
|
385
|
-
type FloorplanPreviewProps,
|
|
386
|
-
type FloorplanPreviewScene,
|
|
387
|
-
} from './components/viewer/floorplan-preview'
|
|
388
|
-
export {
|
|
389
|
-
DaylightMenu,
|
|
390
|
-
EdgesToggleItem,
|
|
391
|
-
QualityMenu,
|
|
392
|
-
} from './components/viewer/render-settings-menu'
|
|
393
|
-
export { openSkyPanel, SkyControl, useSkyPanel } from './components/viewer/sky-control'
|
|
394
|
-
export { useViewerCameraNavigationSync } from './components/viewer/use-viewer-camera-navigation-sync'
|
|
395
|
-
export { useViewerUiSounds } from './components/viewer/use-viewer-ui-sounds'
|
|
396
|
-
export {
|
|
397
|
-
ViewerControlsBar,
|
|
398
|
-
type ViewerControlsBarProps,
|
|
399
|
-
} from './components/viewer/viewer-controls-bar'
|
|
400
|
-
export { ViewerHoverLabel } from './components/viewer/viewer-hover-label'
|
|
401
|
-
export { ParametricViewerRooms, ViewerRooms } from './components/viewer/viewer-rooms'
|
|
402
|
-
export {
|
|
403
|
-
ViewerSceneHeader,
|
|
404
|
-
type ViewerSceneHeaderProps,
|
|
405
|
-
} from './components/viewer/viewer-scene-header'
|
|
406
|
-
export { ViewerSelectionManager } from './components/viewer/viewer-selection-manager'
|
|
407
|
-
export { ViewerStage, type ViewerStageProps } from './components/viewer/viewer-stage'
|
|
408
|
-
export {
|
|
409
|
-
normalizeViewerStageModes,
|
|
410
|
-
resolveMobileViewerStageMode,
|
|
411
|
-
resolveViewerStageMode,
|
|
412
|
-
VIEWER_STAGE_MODES,
|
|
413
|
-
viewerStageIncludes3D,
|
|
414
|
-
} from './components/viewer/viewer-stage-modes'
|
|
415
|
-
export {
|
|
416
|
-
type ViewerStageMode,
|
|
417
|
-
ViewerStageSwitcher,
|
|
418
|
-
type ViewerStageSwitcherProps,
|
|
419
|
-
} from './components/viewer/viewer-stage-switcher'
|
|
420
|
-
export {
|
|
421
|
-
DroneHud,
|
|
422
|
-
WalkthroughHud,
|
|
423
|
-
type WalkthroughHudProps,
|
|
424
|
-
type WalkthroughInteract,
|
|
425
|
-
} from './components/walkthrough-hud'
|
|
426
507
|
export type { SaveStatus } from './hooks/use-auto-save'
|
|
427
508
|
// useDragAction is the React-side glue for the registry's DragAction
|
|
428
509
|
// primitive. Public so registry-driven kinds (Phase 5+ Stage D ports)
|
|
@@ -434,7 +515,6 @@ export { usePlacementNotice } from './hooks/use-placement-notice'
|
|
|
434
515
|
export { useReducedMotion } from './hooks/use-reduced-motion'
|
|
435
516
|
export { useSelectedRoom } from './hooks/use-selected-room'
|
|
436
517
|
export { type Selection, useSelection } from './hooks/use-selection'
|
|
437
|
-
export { localizedLevelName } from './i18n/level-name'
|
|
438
518
|
export {
|
|
439
519
|
messageSlug,
|
|
440
520
|
nodeDescriptionDescriptor,
|
|
@@ -445,7 +525,6 @@ export {
|
|
|
445
525
|
toolHintKey,
|
|
446
526
|
toolHintLabel,
|
|
447
527
|
} from './i18n/node-messages'
|
|
448
|
-
export { sceneThemeName } from './i18n/scene-theme-name'
|
|
449
528
|
export {
|
|
450
529
|
clearPlacementSurface,
|
|
451
530
|
getPlacementSurface,
|
|
@@ -476,7 +555,12 @@ export {
|
|
|
476
555
|
resolveCeilingPlanPointSnap,
|
|
477
556
|
} from './lib/ceiling-plan-snap'
|
|
478
557
|
export { EDITOR_LAYER } from './lib/constants'
|
|
479
|
-
export
|
|
558
|
+
export {
|
|
559
|
+
AXIS_MOVE_DRAG_LABEL,
|
|
560
|
+
type ContextualShortcutHint,
|
|
561
|
+
PATH_POINT_DRAG_LABEL,
|
|
562
|
+
ROTATE_HANDLE_DRAG_LABEL,
|
|
563
|
+
} from './lib/contextual-help'
|
|
480
564
|
export {
|
|
481
565
|
CONTEXTUAL_HELP_NODE_EXTENSION_KEY,
|
|
482
566
|
type ContextualHelpNodeExtension,
|
|
@@ -491,11 +575,6 @@ export {
|
|
|
491
575
|
nextContinuation,
|
|
492
576
|
} from './lib/continuation'
|
|
493
577
|
export { canDirectMoveNode } from './lib/direct-manipulation'
|
|
494
|
-
export {
|
|
495
|
-
closeDoorOpenState,
|
|
496
|
-
getDisplayedDoorValue,
|
|
497
|
-
openDoorOpenState,
|
|
498
|
-
} from './lib/door-interaction'
|
|
499
578
|
export { downloadProjectFile } from './lib/download-project-file'
|
|
500
579
|
export { createEditorApi } from './lib/editor-api'
|
|
501
580
|
export {
|
|
@@ -517,28 +596,17 @@ export {
|
|
|
517
596
|
resolveElevationSnapMatch,
|
|
518
597
|
resolveStructuralElevationSnap,
|
|
519
598
|
} from './lib/elevation-guides'
|
|
520
|
-
export {
|
|
521
|
-
resolveCurrentBuildingId,
|
|
522
|
-
resolveElevatorNodeSupportY,
|
|
523
|
-
resolveElevatorSupportLevelId,
|
|
524
|
-
resolveElevatorSupportY,
|
|
525
|
-
} from './lib/elevator-support'
|
|
599
|
+
export { resolveCurrentBuildingId } from './lib/elevator-support'
|
|
526
600
|
export type { ExportTextureUtils } from './lib/export-texture-utils'
|
|
527
601
|
export { getFloatingMenuScale } from './lib/floating-menu-scale'
|
|
528
602
|
export { startOpeningDraft } from './lib/floor-opening-draft'
|
|
529
603
|
export {
|
|
530
604
|
alignFloorplanDraftPoint,
|
|
531
605
|
applyFloorplanAlignment,
|
|
532
|
-
clampPlanValue,
|
|
533
606
|
FLOORPLAN_ALIGNMENT_THRESHOLD_M,
|
|
534
607
|
FLOORPLAN_DRAFT_ALIGN_ID,
|
|
535
608
|
type FloorplanAlignmentResult,
|
|
536
609
|
getFloorplanWallThickness,
|
|
537
|
-
getPlanPointDistance,
|
|
538
|
-
getThickPlanLinePolygon,
|
|
539
|
-
interpolatePlanPoint,
|
|
540
|
-
movePlanPointTowards,
|
|
541
|
-
rotatePlanVector,
|
|
542
610
|
} from './lib/floorplan'
|
|
543
611
|
export type {
|
|
544
612
|
FloorplanAnnotationCategory,
|
|
@@ -560,24 +628,11 @@ export {
|
|
|
560
628
|
type FloorplanExportScope,
|
|
561
629
|
} from './lib/floorplan/floorplan-export'
|
|
562
630
|
export {
|
|
563
|
-
createFloorplanContextExtensions,
|
|
564
|
-
FLOORPLAN_CONTEXT_EXTENSION_KEY,
|
|
565
|
-
FLOORPLAN_GEOMETRY_METADATA_KEY,
|
|
566
631
|
FLOORPLAN_NODE_EXTENSION_KEY,
|
|
567
|
-
type FloorplanAnnotationRole,
|
|
568
|
-
type FloorplanMetricNotation,
|
|
569
632
|
type FloorplanNodeExtension,
|
|
570
|
-
type FloorplanRenderPurpose,
|
|
571
|
-
type FloorplanSchedule,
|
|
572
633
|
type FloorplanToolContext,
|
|
573
634
|
type FloorplanToolMode,
|
|
574
|
-
type FloorplanWallDimensionFaces,
|
|
575
|
-
floorplanGeometryMetadata,
|
|
576
635
|
getFloorplanNodeExtension,
|
|
577
|
-
readFloorplanContext,
|
|
578
|
-
readFloorplanGeometryMetadata,
|
|
579
|
-
readFloorplanMetricNotationOverride,
|
|
580
|
-
withFloorplanGeometryMetadata,
|
|
581
636
|
} from './lib/floorplan/floorplan-extension'
|
|
582
637
|
export {
|
|
583
638
|
DEFAULT_FLOORPLAN_MODE,
|
|
@@ -585,14 +640,6 @@ export {
|
|
|
585
640
|
type FloorplanMode,
|
|
586
641
|
isFloorplanToolAvailableInMode,
|
|
587
642
|
} from './lib/floorplan/floorplan-mode'
|
|
588
|
-
export {
|
|
589
|
-
type MarkResolution,
|
|
590
|
-
type OpeningMarkKind,
|
|
591
|
-
orderedOpenings,
|
|
592
|
-
persistResolvedMarks,
|
|
593
|
-
resolveMarkDetail,
|
|
594
|
-
resolveMarks,
|
|
595
|
-
} from './lib/floorplan/marks'
|
|
596
643
|
export { clientToPlan } from './lib/floorplan/plan-coords'
|
|
597
644
|
export {
|
|
598
645
|
doorSchedule,
|
|
@@ -665,6 +712,11 @@ export {
|
|
|
665
712
|
editorFinishScriptHost,
|
|
666
713
|
finishScriptCode,
|
|
667
714
|
} from './lib/geometry-script/finish-scripts'
|
|
715
|
+
export {
|
|
716
|
+
beginGesture,
|
|
717
|
+
type GestureCancelReason,
|
|
718
|
+
type GestureHandle,
|
|
719
|
+
} from './lib/gesture-lifecycle'
|
|
668
720
|
export { exportSceneToGlb, type GlbExportOptions } from './lib/glb-export'
|
|
669
721
|
export {
|
|
670
722
|
type EditorGridEvent,
|
|
@@ -750,10 +802,6 @@ export {
|
|
|
750
802
|
isCreatableMeasurementKind,
|
|
751
803
|
normalizeCreatableMeasurementKind,
|
|
752
804
|
} from './lib/measurement-kind'
|
|
753
|
-
export {
|
|
754
|
-
measurementPolygonLabelAnchor,
|
|
755
|
-
triangulateMeasurementPolygon,
|
|
756
|
-
} from './lib/measurement-label'
|
|
757
805
|
export {
|
|
758
806
|
type LingoUnitSpec,
|
|
759
807
|
lingoUnitSpec,
|
|
@@ -762,28 +810,6 @@ export {
|
|
|
762
810
|
type ParseMeasurementOptions,
|
|
763
811
|
parseMeasurement,
|
|
764
812
|
} from './lib/measurement-parser'
|
|
765
|
-
export {
|
|
766
|
-
buildMeasurementAngleArcPoints,
|
|
767
|
-
cubicMetersToVolumeUnit,
|
|
768
|
-
formatAreaLabel,
|
|
769
|
-
formatLinearMeasurement,
|
|
770
|
-
formatVolumeLabel,
|
|
771
|
-
getAreaUnitLabel,
|
|
772
|
-
getLinearUnitLabel,
|
|
773
|
-
getVolumeUnitLabel,
|
|
774
|
-
type LinearUnit,
|
|
775
|
-
linearControlValueToMeters,
|
|
776
|
-
linearUnitToMeters,
|
|
777
|
-
MEASUREMENT_ACTIVE_COLOR,
|
|
778
|
-
MEASUREMENT_DANGLING_COLOR,
|
|
779
|
-
MEASUREMENT_FLOORPLAN_COLOR,
|
|
780
|
-
MEASUREMENT_PERSISTENT_COLOR,
|
|
781
|
-
measurementFloorplanPresentationColor,
|
|
782
|
-
measurementPresentationColor,
|
|
783
|
-
metersToLinearUnit,
|
|
784
|
-
parseLinearMeasurementInput,
|
|
785
|
-
squareMetersToAreaUnit,
|
|
786
|
-
} from './lib/measurements'
|
|
787
813
|
export type {
|
|
788
814
|
ModelExport,
|
|
789
815
|
ModelExportArtifact,
|
|
@@ -861,15 +887,7 @@ export { clearRoofDuplicateMetadata, duplicateRoofSubtree } from './lib/roof-dup
|
|
|
861
887
|
// kind-owned door / window tools in `@pascal-app/nodes` and the item
|
|
862
888
|
// placement coordinator's roof-wall strategy.
|
|
863
889
|
export { hasRoofFaceChildOverlap, type RoofWallHit, resolveRoofWallHit } from './lib/roof-wall-hit'
|
|
864
|
-
export {
|
|
865
|
-
selectedWallDimensions,
|
|
866
|
-
separatorFloorElevation,
|
|
867
|
-
separatorPushHandles,
|
|
868
|
-
WALL_PUSH_AFFORDANCE,
|
|
869
|
-
type WallPushArrowPayload,
|
|
870
|
-
} from './lib/room-handle-drag'
|
|
871
|
-
export { displayRoomName } from './lib/room-name-messages'
|
|
872
|
-
export type { RoomKey, RoomSelectionRecord } from './lib/room-selection'
|
|
890
|
+
export { selectedWallDimensions, separatorPushHandles } from './lib/room-handle-drag'
|
|
873
891
|
export { popRoomSelection, selectRoom } from './lib/room-selection-commands'
|
|
874
892
|
export {
|
|
875
893
|
captureElementActionOrigin,
|
|
@@ -949,7 +967,6 @@ export {
|
|
|
949
967
|
terrainPointInsideSite,
|
|
950
968
|
} from './lib/terrain-sculpt'
|
|
951
969
|
export { withToolShortcut } from './lib/tool-shortcuts'
|
|
952
|
-
export { isTypingTarget } from './lib/typing-target'
|
|
953
970
|
export { enterUnitFocus } from './lib/units'
|
|
954
971
|
export { exportSceneToUsdz, type UsdzExportOptions } from './lib/usdz-export'
|
|
955
972
|
export { useLinearDisplay } from './lib/use-linear-display'
|
|
@@ -957,16 +974,6 @@ export { useLinearDisplay } from './lib/use-linear-display'
|
|
|
957
974
|
// nodes` so they don't need their own copy / their own tailwind-merge
|
|
958
975
|
// dependency.
|
|
959
976
|
export { cn } from './lib/utils'
|
|
960
|
-
export {
|
|
961
|
-
applyViewerClick,
|
|
962
|
-
applyViewerHover,
|
|
963
|
-
framedLookAt,
|
|
964
|
-
frameViewerCamera,
|
|
965
|
-
frameViewerNode,
|
|
966
|
-
useViewerFloorDisplay,
|
|
967
|
-
type ViewerPick,
|
|
968
|
-
type ViewerSource,
|
|
969
|
-
} from './lib/viewer-selection'
|
|
970
977
|
export {
|
|
971
978
|
getWallDrawVariant,
|
|
972
979
|
getWallLineKind,
|
|
@@ -1007,12 +1014,8 @@ export {
|
|
|
1007
1014
|
releaseWallPullDrag,
|
|
1008
1015
|
startWallPull,
|
|
1009
1016
|
useWallPullRun,
|
|
1010
|
-
WALL_PULL_AFFORDANCE,
|
|
1011
|
-
WALL_PULL_GRIP_TITLE,
|
|
1012
|
-
type WallPullGripPayload,
|
|
1013
1017
|
type WallPullRun,
|
|
1014
1018
|
wallDraftIsRun,
|
|
1015
|
-
wallPullSeed,
|
|
1016
1019
|
wallPullTypePatch,
|
|
1017
1020
|
} from './lib/wall-pull'
|
|
1018
1021
|
export {
|
|
@@ -1029,16 +1032,6 @@ export {
|
|
|
1029
1032
|
wallTypePlacementOf,
|
|
1030
1033
|
} from './lib/wall-type'
|
|
1031
1034
|
export { writeWindowChanges } from './lib/window-changes'
|
|
1032
|
-
export {
|
|
1033
|
-
closeWindowOpenState,
|
|
1034
|
-
getDisplayedWindowShutterValue,
|
|
1035
|
-
getDisplayedWindowValue,
|
|
1036
|
-
isOperableWindowType,
|
|
1037
|
-
openWindowOpenState,
|
|
1038
|
-
setWindowShuttersOpenState,
|
|
1039
|
-
type WindowOpenAnimationOptions,
|
|
1040
|
-
type WindowShutterField,
|
|
1041
|
-
} from './lib/window-interaction'
|
|
1042
1035
|
export {
|
|
1043
1036
|
getActiveBuildingPose,
|
|
1044
1037
|
projectAlignmentGuidesWorldToActiveBuildingLocal,
|
|
@@ -1047,13 +1040,11 @@ export {
|
|
|
1047
1040
|
snapBuildingLocalToWorldGrid,
|
|
1048
1041
|
snapWorldXZForActiveBuilding,
|
|
1049
1042
|
} from './lib/world-grid-snap'
|
|
1050
|
-
export { subscribeCameraPose } from './store/camera-pose-store'
|
|
1051
1043
|
export {
|
|
1052
1044
|
type DraftGuideLine,
|
|
1053
1045
|
type DraftGuides,
|
|
1054
1046
|
default as useAlignmentGuides,
|
|
1055
1047
|
} from './store/use-alignment-guides'
|
|
1056
|
-
export { default as useAudio } from './store/use-audio'
|
|
1057
1048
|
export { type CameraHintAction, useCameraHintFocus } from './store/use-camera-hint-focus'
|
|
1058
1049
|
export { type CommandAction, useCommandRegistry } from './store/use-command-registry'
|
|
1059
1050
|
export {
|
|
@@ -1108,11 +1099,9 @@ export {
|
|
|
1108
1099
|
} from './store/use-editor'
|
|
1109
1100
|
export { default as useFacingPose, type FacingPose } from './store/use-facing-pose'
|
|
1110
1101
|
export { default as useFenceCurveDraft } from './store/use-fence-curve-draft'
|
|
1111
|
-
export { type FirstPersonHudState, useFirstPersonHud } from './store/use-first-person-hud'
|
|
1112
1102
|
export { default as useFloorplanAnnotationVisibility } from './store/use-floorplan-annotation-visibility'
|
|
1113
1103
|
export { useFloorplanDraftPreview } from './store/use-floorplan-draft-preview'
|
|
1114
1104
|
export { default as useFloorplanMode } from './store/use-floorplan-mode'
|
|
1115
|
-
export { default as useFollowPascal } from './store/use-follow-pascal'
|
|
1116
1105
|
export {
|
|
1117
1106
|
default as useInteractionScope,
|
|
1118
1107
|
getEditingHole,
|
|
@@ -1161,6 +1150,22 @@ export {
|
|
|
1161
1150
|
default as usePlacementPreview,
|
|
1162
1151
|
type PlacementPreviewDimension,
|
|
1163
1152
|
} from './store/use-placement-preview'
|
|
1153
|
+
export {
|
|
1154
|
+
isPlacementTypingKey,
|
|
1155
|
+
isPlacementTypingStartKey,
|
|
1156
|
+
PLACEMENT_TYPING_DISTANCE_OFFSET,
|
|
1157
|
+
PLACEMENT_TYPING_LENGTH_ANGLE,
|
|
1158
|
+
type PlacementTypingField,
|
|
1159
|
+
type PlacementTypingKeyOptions,
|
|
1160
|
+
type PlacementTypingKeyOutcome,
|
|
1161
|
+
type PlacementTypingProjection,
|
|
1162
|
+
type PlacementTypingSession,
|
|
1163
|
+
type PlacementTypingState,
|
|
1164
|
+
type PlacementTypingValues,
|
|
1165
|
+
placementTypingLengthOptions,
|
|
1166
|
+
routePlacementTypingKey,
|
|
1167
|
+
usePlacementTyping,
|
|
1168
|
+
} from './store/use-placement-typing'
|
|
1164
1169
|
export { usePointAsk } from './store/use-point-ask'
|
|
1165
1170
|
export {
|
|
1166
1171
|
activateQuickMeasurementHudSource,
|
|
@@ -10,16 +10,16 @@ import {
|
|
|
10
10
|
} from '@pascal-app/core'
|
|
11
11
|
import { buildGroundLevelChanges } from '@pascal-app/core/building'
|
|
12
12
|
import { useViewer } from '@pascal-app/viewer'
|
|
13
|
-
import { act, create } from '@react-three/test-renderer'
|
|
14
|
-
import useEditor from '../store/use-editor'
|
|
15
|
-
import villaAurelia from './__fixtures__/owner-villa-aurelia-basement.json'
|
|
16
13
|
import {
|
|
17
14
|
belowGradeShown,
|
|
18
15
|
followBelowGrade,
|
|
19
16
|
followGroundWindowBox,
|
|
20
17
|
gradeStandingShown,
|
|
21
18
|
groundWindowBoxShown,
|
|
22
|
-
} from '
|
|
19
|
+
} from '@pascal-app/viewer/ui'
|
|
20
|
+
import { act, create } from '@react-three/test-renderer'
|
|
21
|
+
import useEditor from '../store/use-editor'
|
|
22
|
+
import villaAurelia from './__fixtures__/owner-villa-aurelia-basement.json'
|
|
23
23
|
import { useEditorLevelDisplay } from './editor-level-display'
|
|
24
24
|
|
|
25
25
|
// The owner's villa (13 Oct), trimmed: its Lower Ground lies 3.35 m under the lawn.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { afterEach, expect, test } from 'bun:test'
|
|
2
|
-
import { cameraPoseStore, publishCameraPose } from '
|
|
2
|
+
import { cameraPoseStore, publishCameraPose } from '@pascal-app/viewer/ui'
|
|
3
3
|
import { cameraFacingYaw } from './camera-facing'
|
|
4
4
|
|
|
5
5
|
afterEach(() => cameraPoseStore.setState({ pose: null }))
|
package/src/lib/camera-facing.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { cameraPoseStore } from '
|
|
2
|
-
import useEditor from '../store/use-editor'
|
|
1
|
+
import { cameraPoseStore, navigationSyncPoseStore } from '@pascal-app/viewer/ui'
|
|
3
2
|
import { getActiveBuildingPose } from './world-grid-snap'
|
|
4
3
|
|
|
5
4
|
const QUARTER_TURN = Math.PI / 2
|
|
@@ -12,7 +11,7 @@ const QUARTER_TURN = Math.PI / 2
|
|
|
12
11
|
*/
|
|
13
12
|
export function cameraFacingYaw(): number {
|
|
14
13
|
const pose = cameraPoseStore.getState().pose
|
|
15
|
-
let azimuth =
|
|
14
|
+
let azimuth = navigationSyncPoseStore.getState().pose?.azimuth ?? 0
|
|
16
15
|
if (pose) {
|
|
17
16
|
const dx = pose.position[0] - pose.target[0]
|
|
18
17
|
const dz = pose.position[2] - pose.target[2]
|
|
@@ -31,6 +31,12 @@ export const RESIZE_HANDLE_DRAG_LABEL = 'resize-handle'
|
|
|
31
31
|
export const GROUP_MOVE_DRAG_LABEL = 'group-move-handle'
|
|
32
32
|
export const GROUP_ROTATE_DRAG_LABEL = 'group-rotate-handle'
|
|
33
33
|
|
|
34
|
+
// `activeHandleDrag.label`s for the MEP handles, in 3D and on the plan: one
|
|
35
|
+
// point of a run, where Alt detaches the joint, and a fitting, a run or one
|
|
36
|
+
// run segment slid along an axis. Their snap context is the kind's own.
|
|
37
|
+
export const PATH_POINT_DRAG_LABEL = 'path-point'
|
|
38
|
+
export const AXIS_MOVE_DRAG_LABEL = 'axis-move'
|
|
39
|
+
|
|
34
40
|
export function resolveRotateHandleHelpHints(altPressed: boolean): ContextualShortcutHint[] {
|
|
35
41
|
return [
|
|
36
42
|
{
|