- Floormap
+ Spatial
Office Floor Plan — React
core.fitToScene(48)}>Fit to scene
@@ -230,7 +230,7 @@ export function App() {
onPointerMove={handleCanvasPointerMove}
onPointerLeave={() => setHoverCursor('')}
>
- ({
base: command === 'build' ? '/react/' : '/',
resolve: {
alias: {
- '@floormap-tools/core': resolve(__dirname, '../../core/src/index.ts'),
- '@floormap-tools/react': resolve(__dirname, '../../adapters/react/src/index.ts'),
+ '@spatialkit/core': resolve(__dirname, '../../core/src/index.ts'),
+ '@spatialkit/react': resolve(__dirname, '../../adapters/react/src/index.ts'),
},
},
}));
diff --git a/packages/svg/CHANGELOG.md b/packages/svg/CHANGELOG.md
index feaabcf..b0c30bb 100644
--- a/packages/svg/CHANGELOG.md
+++ b/packages/svg/CHANGELOG.md
@@ -1,12 +1,12 @@
-# @floormap-tools/svg
+# @spatialkit/svg
## 0.1.0
### Minor Changes
-- Initial release of @floormap-tools/core, @floormap-tools/svg, and @floormap-tools/react.
+- Initial release of @spatialkit/core, @spatialkit/svg, and @spatialkit/react.
### Patch Changes
- Updated dependencies
- - @floormap-tools/core@0.1.0
+ - @spatialkit/core@0.1.0
diff --git a/packages/svg/CLAUDE.md b/packages/svg/CLAUDE.md
index 362c525..73deb29 100644
--- a/packages/svg/CLAUDE.md
+++ b/packages/svg/CLAUDE.md
@@ -1,13 +1,13 @@
-# @floormap-tools/svg — Claude Code Guide
+# @spatialkit/svg — Claude Code Guide
-SVG renderer and DOM event handlers for `@floormap-tools/core`. Subscribes to core events and paints the scene into an `` element. No production dependencies.
+SVG renderer and DOM event handlers for `@spatialkit/core`. Subscribes to core events and paints the scene into an `` element. No production dependencies.
---
## Entry point
```ts
-import { mountSvgRenderer } from '@floormap-tools/svg';
+import { mountSvgRenderer } from '@spatialkit/svg';
const renderer = mountSvgRenderer(core, {
mount: svgElement,
@@ -28,18 +28,18 @@ renderer.destroy(); // unsubscribe from core, remove DOM groups
```
- ← CSS matrix transform applied here
- ← background grid lines
- ← one per layer
-
-
+ ← CSS matrix transform applied here
+ ← background grid lines
+ ← one per layer
+
+
...
- ← selection overlay rects
- ← reserved for future use
- ← optional, only if `defs` callback provided
+ ← selection overlay rects
+ ← reserved for future use
+ ← optional, only if `defs` callback provided
```
-**Transform matrix on ``:**
+**Transform matrix on ``:**
```
matrix(zoom 0 0 zoom -pan.x*zoom -pan.y*zoom)
```
@@ -84,7 +84,7 @@ drawEntity: (entity: Entity, ctx: { g: SVGGElement; selected: boolean }) => void
| Core event | What the renderer does |
|-----------|------------------------|
| `"viewport:change"` | Updates viewport transform matrix + repaints grid |
-| `"entities:changed"` | Repaints `` (calls `drawEntity` for all entities) |
+| `"entities:changed"` | Repaints `` (calls `drawEntity` for all entities) |
| `"selection:change"` | Repaints objects (to pass updated `selected` flag) + repaints selection overlay |
`rerender()` forces all three: objects, selection overlay, and grid.
@@ -178,7 +178,7 @@ Clicking empty space in `'replace'` mode clears selection. In `'add'`/`'toggle'`
3. Subscribes to `"viewport:change"`, `"entities:changed"`, `"selection:change"`
4. Calls `attachHandlers`
-**`paint()` helper** — pre-groups entities by `LayerId` in a single O(n) pass, then iterates `scene.layers` to create `` elements in z-order. Avoids the O(layers × entities) nested loop.
+**`paint()` helper** — pre-groups entities by `LayerId` in a single O(n) pass, then iterates `scene.layers` to create `` elements in z-order. Avoids the O(layers × entities) nested loop.
---
@@ -190,7 +190,7 @@ All SVG tests require jsdom. Use the `// @vitest-environment jsdom` pragma at th
// @vitest-environment jsdom
import { describe, it, expect, vi, beforeEach } from 'vitest';
import { mountSvgRenderer } from '../renderer';
-import { createCore } from '@floormap-tools/core';
+import { createCore } from '@spatialkit/core';
```
**Required stubs** (jsdom doesn't implement these):
@@ -223,11 +223,11 @@ At zoom=1 and pan=0, screen coords equal world coords. Entity at `bounds { x: 10
**Querying groups:**
```ts
-svg.querySelector("g[data-fm='viewport']")
-svg.querySelector("g[data-fm='objects']")
-svg.querySelector("g[data-fm='grid']")
-svg.querySelector("g[data-fm='selection']")
-svg.querySelector("[data-fm-layer='myLayer']")
+svg.querySelector("g[data-spatial='viewport']")
+svg.querySelector("g[data-spatial='objects']")
+svg.querySelector("g[data-spatial='grid']")
+svg.querySelector("g[data-spatial='selection']")
+svg.querySelector("[data-spatial-layer='myLayer']")
```
---
diff --git a/packages/svg/README.md b/packages/svg/README.md
index 6a00c93..e938f0f 100644
--- a/packages/svg/README.md
+++ b/packages/svg/README.md
@@ -1,21 +1,21 @@
-# @floormap-tools/svg
+# @spatialkit/svg
-SVG renderer and DOM event handlers for [`@floormap-tools/core`](../core). Mounts into any `` element, subscribes to core events, and paints the scene automatically. Includes wheel zoom, drag-to-pan, pinch-to-zoom, click-to-select, a background grid, and a selection highlight overlay.
+SVG renderer and DOM event handlers for [`@spatialkit/core`](../core). Mounts into any `` element, subscribes to core events, and paints the scene automatically. Includes wheel zoom, drag-to-pan, pinch-to-zoom, click-to-select, a background grid, and a selection highlight overlay.
## Installation
```bash
-npm install @floormap-tools/core @floormap-tools/svg
+npm install @spatialkit/core @spatialkit/svg
# or
-pnpm add @floormap-tools/core @floormap-tools/svg
+pnpm add @spatialkit/core @spatialkit/svg
```
## Quick start
```ts
-import { createCore, createEmptyScene } from '@floormap-tools/core';
-import { mountSvgRenderer } from '@floormap-tools/svg';
-import type { EntityId, LayerId } from '@floormap-tools/core';
+import { createCore, createEmptyScene } from '@spatialkit/core';
+import { mountSvgRenderer } from '@spatialkit/svg';
+import type { EntityId, LayerId } from '@spatialkit/core';
const core = createCore({
scene: createEmptyScene({ width: 2000, height: 1500 }, ['layer' as LayerId]),
@@ -233,15 +233,15 @@ The renderer builds and manages this group hierarchy inside your ``:
```
- ← viewport transform matrix applied here
- ← background grid lines
- ← entity groups, one per layer
-
-
+ ← viewport transform matrix applied here
+ ← background grid lines
+ ← entity groups, one per layer
+
+
...
- ← selection overlay rects
- ← reserved
- ← present only if defs option is provided
+ ← selection overlay rects
+ ← reserved
+ ← present only if defs option is provided
```
**Viewport transform:**
@@ -249,7 +249,7 @@ The renderer builds and manages this group hierarchy inside your ``:
matrix(zoom 0 0 zoom -pan.x×zoom -pan.y×zoom)
```
-All children of `` — including grid and selection overlay — share the same camera transform. Entity coordinates in `drawEntity` can be used directly as world coordinates.
+All children of `` — including grid and selection overlay — share the same camera transform. Entity coordinates in `drawEntity` can be used directly as world coordinates.
The hierarchy is created once and is **idempotent** — calling `mountSvgRenderer` again on the same SVG (e.g. after a hot reload) will reuse the existing groups.
diff --git a/packages/svg/package.json b/packages/svg/package.json
index 9aa33e3..aac8951 100644
--- a/packages/svg/package.json
+++ b/packages/svg/package.json
@@ -1,5 +1,5 @@
{
- "name": "@floormap-tools/svg",
+ "name": "@spatialkit/svg",
"version": "0.1.0",
"private": false,
"type": "module",
@@ -18,7 +18,7 @@
},
"repository": {
"type": "git",
- "url": "https://github.com/floormap-tools/floormap.git"
+ "url": "https://github.com/spatialkit/spatial.git"
},
"scripts": {
"build": "tsup src/index.ts --dts --format esm,cjs --clean",
@@ -26,11 +26,11 @@
"test:watch": "vitest"
},
"devDependencies": {
- "@floormap-tools/core": "workspace:*",
+ "@spatialkit/core": "workspace:*",
"jsdom": "^27.2.0",
"vitest": "^2.0.0"
},
"peerDependencies": {
- "@floormap-tools/core": "0.x"
+ "@spatialkit/core": "0.x"
}
}
\ No newline at end of file
diff --git a/packages/svg/src/__tests__/destroy.test.ts b/packages/svg/src/__tests__/destroy.test.ts
index 401f516..af1d116 100644
--- a/packages/svg/src/__tests__/destroy.test.ts
+++ b/packages/svg/src/__tests__/destroy.test.ts
@@ -1,7 +1,7 @@
// @vitest-environment jsdom
import { describe, it, expect, beforeEach } from 'vitest';
import { mountSvgRenderer } from '../renderer';
-import { createCore } from '@floormap-tools/core';
+import { createCore } from '@spatialkit/core';
function makeSetup() {
const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg') as SVGSVGElement;
@@ -27,9 +27,9 @@ describe('Svg renderer - destroy DOM cleanup', () => {
it('destroy() removes viewport group by default', () => {
const renderer = mountSvgRenderer(core, { mount: svg, drawEntity: () => {} });
- expect(svg.querySelector("g[data-fm='viewport']")).toBeTruthy();
+ expect(svg.querySelector("g[data-spatial='viewport']")).toBeTruthy();
renderer.destroy();
- expect(svg.querySelector("g[data-fm='viewport']")).toBeNull();
+ expect(svg.querySelector("g[data-spatial='viewport']")).toBeNull();
});
it('destroy() removes defs element when present', () => {
@@ -42,9 +42,9 @@ describe('Svg renderer - destroy DOM cleanup', () => {
},
});
- expect(svg.querySelector("defs[data-fm='defs']")).toBeTruthy();
+ expect(svg.querySelector("defs[data-spatial='defs']")).toBeTruthy();
renderer.destroy();
- expect(svg.querySelector("defs[data-fm='defs']")).toBeNull();
+ expect(svg.querySelector("defs[data-spatial='defs']")).toBeNull();
});
it('destroy() with clearOnDestroy: false preserves DOM', () => {
@@ -55,7 +55,7 @@ describe('Svg renderer - destroy DOM cleanup', () => {
});
renderer.destroy();
- expect(svg.querySelector("g[data-fm='viewport']")).toBeTruthy();
+ expect(svg.querySelector("g[data-spatial='viewport']")).toBeTruthy();
});
it('destroy() unsubscribes from core events (no repaint after destroy)', () => {
diff --git a/packages/svg/src/__tests__/grid.test.ts b/packages/svg/src/__tests__/grid.test.ts
index 003745e..c40947b 100644
--- a/packages/svg/src/__tests__/grid.test.ts
+++ b/packages/svg/src/__tests__/grid.test.ts
@@ -1,7 +1,7 @@
// @vitest-environment jsdom
import { describe, it, expect, beforeEach } from 'vitest';
import { mountSvgRenderer } from '../renderer';
-import { createCore } from '@floormap-tools/core';
+import { createCore } from '@spatialkit/core';
function makeSetup() {
const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg') as SVGSVGElement;
@@ -17,7 +17,7 @@ function makeSetup() {
}
function getGridG(svg: SVGSVGElement) {
- return svg.querySelector("g[data-fm='grid']")!;
+ return svg.querySelector("g[data-spatial='grid']")!;
}
describe('Svg renderer - grid', () => {
diff --git a/packages/svg/src/__tests__/handlers.test.ts b/packages/svg/src/__tests__/handlers.test.ts
index 102f93a..6366829 100644
--- a/packages/svg/src/__tests__/handlers.test.ts
+++ b/packages/svg/src/__tests__/handlers.test.ts
@@ -1,7 +1,7 @@
// @vitest-environment jsdom
import { describe, it, expect, beforeEach } from 'vitest';
import { mountSvgRenderer } from '../renderer';
-import { createCore } from '@floormap-tools/core';
+import { createCore } from '@spatialkit/core';
function makesvg() {
const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg') as SVGSVGElement;
diff --git a/packages/svg/src/__tests__/pinch.test.ts b/packages/svg/src/__tests__/pinch.test.ts
index 7b8f997..24ac316 100644
--- a/packages/svg/src/__tests__/pinch.test.ts
+++ b/packages/svg/src/__tests__/pinch.test.ts
@@ -1,7 +1,7 @@
// @vitest-environment jsdom
import { describe, it, expect, beforeEach } from 'vitest';
import { mountSvgRenderer } from '../renderer';
-import { createCore } from '@floormap-tools/core';
+import { createCore } from '@spatialkit/core';
function makeSetup() {
const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg') as SVGSVGElement;
diff --git a/packages/svg/src/__tests__/renderer.test.ts b/packages/svg/src/__tests__/renderer.test.ts
index 9c80911..009e01f 100644
--- a/packages/svg/src/__tests__/renderer.test.ts
+++ b/packages/svg/src/__tests__/renderer.test.ts
@@ -1,7 +1,7 @@
// @vitest-environment jsdom
import { describe, it, expect, vi, beforeEach } from 'vitest';
import { mountSvgRenderer } from '../renderer';
-import { createCore } from '@floormap-tools/core';
+import { createCore } from '@spatialkit/core';
function stubRect(svg: SVGSVGElement) {
(svg as any).getBoundingClientRect = () => ({
@@ -75,8 +75,8 @@ describe('Svg renderer (smoke)', () => {
},
});
- expect(svg.querySelector("g[data-fm='viewport']")).toBeTruthy();
- expect(svg.querySelector("g[data-fm='objects']")).toBeTruthy();
+ expect(svg.querySelector("g[data-spatial='viewport']")).toBeTruthy();
+ expect(svg.querySelector("g[data-spatial='objects']")).toBeTruthy();
expect(svg.querySelector('circle')).toBeTruthy();
@@ -122,7 +122,7 @@ describe('Svg renderer - event-driven repaints', () => {
const core = makeCore();
mountSvgRenderer(core, { mount: svg, drawEntity: () => {} });
- const viewportG = svg.querySelector("g[data-fm='viewport']")!;
+ const viewportG = svg.querySelector("g[data-spatial='viewport']")!;
const before = viewportG.getAttribute('transform');
core.zoomAt({ x: 400, y: 300 }, 0.5);
diff --git a/packages/svg/src/__tests__/resize-handles.test.ts b/packages/svg/src/__tests__/resize-handles.test.ts
index e5e52ba..3d311c1 100644
--- a/packages/svg/src/__tests__/resize-handles.test.ts
+++ b/packages/svg/src/__tests__/resize-handles.test.ts
@@ -1,7 +1,7 @@
// @vitest-environment jsdom
import { describe, it, expect, beforeEach } from 'vitest';
import { mountSvgRenderer } from '../renderer';
-import { createCore } from '@floormap-tools/core';
+import { createCore } from '@spatialkit/core';
function makeSetup() {
const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg') as SVGSVGElement;
@@ -35,7 +35,7 @@ function makeSetup() {
}
function getOverlaysG(svg: SVGSVGElement) {
- return svg.querySelector("g[data-fm='overlays']")!;
+ return svg.querySelector("g[data-spatial='overlays']")!;
}
describe('paintResizeHandles', () => {
diff --git a/packages/svg/src/__tests__/selection-overlay.test.ts b/packages/svg/src/__tests__/selection-overlay.test.ts
index 30d0016..c55e468 100644
--- a/packages/svg/src/__tests__/selection-overlay.test.ts
+++ b/packages/svg/src/__tests__/selection-overlay.test.ts
@@ -1,7 +1,7 @@
// @vitest-environment jsdom
import { describe, it, expect, beforeEach } from 'vitest';
import { mountSvgRenderer } from '../renderer';
-import { createCore } from '@floormap-tools/core';
+import { createCore } from '@spatialkit/core';
function makeSetup() {
const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg') as SVGSVGElement;
@@ -28,7 +28,7 @@ function makeSetup() {
}
function getSelectionG(svg: SVGSVGElement) {
- return svg.querySelector("g[data-fm='selection']")!;
+ return svg.querySelector("g[data-spatial='selection']")!;
}
describe('Svg renderer - selection overlay', () => {
diff --git a/packages/svg/src/__tests__/wheel.test.ts b/packages/svg/src/__tests__/wheel.test.ts
index 81f5dc4..84134b0 100644
--- a/packages/svg/src/__tests__/wheel.test.ts
+++ b/packages/svg/src/__tests__/wheel.test.ts
@@ -1,7 +1,7 @@
// @vitest-environment jsdom
import { describe, it, expect, beforeEach } from 'vitest';
import { mountSvgRenderer } from '../renderer';
-import { createCore } from '@floormap-tools/core';
+import { createCore } from '@spatialkit/core';
function stubRect(svg: SVGSVGElement) {
(svg as any).getBoundingClientRect = () => ({
diff --git a/packages/svg/src/dom.ts b/packages/svg/src/dom.ts
index 2c620ee..9764825 100644
--- a/packages/svg/src/dom.ts
+++ b/packages/svg/src/dom.ts
@@ -3,21 +3,21 @@ const NS = 'http://www.w3.org/2000/svg';
export function setupSvgRoot(svg: SVGSVGElement, defs?: (defs: SVGDefsElement) => void) {
svg.setAttribute('xmlns', NS);
- if (!svg.querySelector("g[data-fm='viewport']")) {
+ if (!svg.querySelector("g[data-spatial='viewport']")) {
const viewportG = document.createElementNS(NS, 'g');
- viewportG.setAttribute('data-fm', 'viewport');
+ viewportG.setAttribute('data-spatial', 'viewport');
const gridG = document.createElementNS(NS, 'g');
- gridG.setAttribute('data-fm', 'grid');
+ gridG.setAttribute('data-spatial', 'grid');
const objectsG = document.createElementNS(NS, 'g');
- objectsG.setAttribute('data-fm', 'objects');
+ objectsG.setAttribute('data-spatial', 'objects');
const selectionG = document.createElementNS(NS, 'g');
- selectionG.setAttribute('data-fm', 'selection');
+ selectionG.setAttribute('data-spatial', 'selection');
const overlaysG = document.createElementNS(NS, 'g');
- overlaysG.setAttribute('data-fm', 'overlays');
+ overlaysG.setAttribute('data-spatial', 'overlays');
viewportG.appendChild(gridG);
viewportG.appendChild(objectsG);
@@ -26,23 +26,23 @@ export function setupSvgRoot(svg: SVGSVGElement, defs?: (defs: SVGDefsElement) =
svg.appendChild(viewportG);
}
- if (defs && !svg.querySelector("defs[data-fm='defs']")) {
+ if (defs && !svg.querySelector("defs[data-spatial='defs']")) {
const defsElement = document.createElementNS(NS, 'defs') as SVGDefsElement;
- defsElement.setAttribute('data-fm', 'defs');
+ defsElement.setAttribute('data-spatial', 'defs');
svg.appendChild(defsElement);
defs(defsElement);
}
}
export function getGroups(svg: SVGSVGElement) {
- const viewportG = svg.querySelector("g[data-fm='viewport']")!;
+ const viewportG = svg.querySelector("g[data-spatial='viewport']")!;
return {
viewportG: viewportG,
- gridG: viewportG.querySelector("g[data-fm='grid']")!,
- objectsG: viewportG.querySelector("g[data-fm='objects']")!,
- selectionG: viewportG.querySelector("g[data-fm='selection']")!,
- overlaysG: viewportG.querySelector("g[data-fm='overlays']")!,
+ gridG: viewportG.querySelector("g[data-spatial='grid']")!,
+ objectsG: viewportG.querySelector("g[data-spatial='objects']")!,
+ selectionG: viewportG.querySelector("g[data-spatial='selection']")!,
+ overlaysG: viewportG.querySelector("g[data-spatial='overlays']")!,
};
}
diff --git a/packages/svg/src/grid.ts b/packages/svg/src/grid.ts
index ee56e4e..ef21a33 100644
--- a/packages/svg/src/grid.ts
+++ b/packages/svg/src/grid.ts
@@ -1,4 +1,4 @@
-import type { FloormapCore } from '@floormap-tools/core';
+import type { SpatialCore } from '@spatialkit/core';
import { clearChildren } from './dom';
export type GridOptions = {
@@ -9,7 +9,7 @@ export type GridOptions = {
const NS = 'http://www.w3.org/2000/svg';
-export function paintGrid(core: FloormapCore, gridG: SVGGElement, options: GridOptions = {}): void {
+export function paintGrid(core: SpatialCore, gridG: SVGGElement, options: GridOptions = {}): void {
const { size = 50, stroke = '#e5e7eb', strokeWidth = 1 } = options;
const { zoom, pan, screenSize } = core.viewport;
diff --git a/packages/svg/src/handlers.ts b/packages/svg/src/handlers.ts
index 9923084..240b9f6 100644
--- a/packages/svg/src/handlers.ts
+++ b/packages/svg/src/handlers.ts
@@ -1,5 +1,5 @@
-import { FloormapCore, EntityId, snapToGrid, hitTestResizeHandles, applyResizeDelta } from '@floormap-tools/core';
-import type { Bounds, ResizeDirection } from '@floormap-tools/core';
+import { SpatialCore, EntityId, snapToGrid, hitTestResizeHandles, applyResizeDelta } from '@spatialkit/core';
+import type { Bounds, ResizeDirection } from '@spatialkit/core';
type AttachHandlersOptions = {
enableWheel: boolean;
@@ -17,7 +17,7 @@ type AttachHandlersOptions = {
export function attachHandlers(
svg: SVGSVGElement,
- core: FloormapCore,
+ core: SpatialCore,
options: AttachHandlersOptions,
) {
const state = {
diff --git a/packages/svg/src/index.ts b/packages/svg/src/index.ts
index 34ed5ea..1d318c2 100644
--- a/packages/svg/src/index.ts
+++ b/packages/svg/src/index.ts
@@ -1,4 +1,4 @@
-import type { Entity, EntityId } from '@floormap-tools/core';
+import type { Entity, EntityId } from '@spatialkit/core';
import type { SelectionOverlayStyle } from './selection-overlay';
import type { GridOptions } from './grid';
diff --git a/packages/svg/src/renderer.ts b/packages/svg/src/renderer.ts
index 453e6ff..3bc50dd 100644
--- a/packages/svg/src/renderer.ts
+++ b/packages/svg/src/renderer.ts
@@ -1,4 +1,4 @@
-import type { FloormapCore, Entity, LayerId } from '@floormap-tools/core';
+import type { SpatialCore, Entity, LayerId } from '@spatialkit/core';
import type { SvgRenderer, SvgRendererOptions } from './index';
import { setupSvgRoot, getGroups, clearChildren } from './dom';
import { attachHandlers } from './handlers';
@@ -6,7 +6,7 @@ import { paintSelectionOverlay } from './selection-overlay';
import { paintResizeHandles } from './resize-handles';
import { paintGrid } from './grid';
-export function mountSvgRenderer(core: FloormapCore, opts: SvgRendererOptions): SvgRenderer {
+export function mountSvgRenderer(core: SpatialCore, opts: SvgRendererOptions): SvgRenderer {
const {
mount,
drawEntity,
@@ -86,13 +86,13 @@ export function mountSvgRenderer(core: FloormapCore, opts: SvgRendererOptions):
detach();
if (clearOnDestroy) {
groups.viewportG.remove();
- mount.querySelector("defs[data-fm='defs']")?.remove();
+ mount.querySelector("defs[data-spatial='defs']")?.remove();
}
},
};
}
-function applyViewportTransform(core: FloormapCore, viewportG: SVGGElement) {
+function applyViewportTransform(core: SpatialCore, viewportG: SVGGElement) {
const { zoom, pan } = core.viewport;
const a = zoom,
@@ -107,7 +107,7 @@ function applyViewportTransform(core: FloormapCore, viewportG: SVGGElement) {
}
function paint(
- core: FloormapCore,
+ core: SpatialCore,
objectsG: SVGGElement,
drawEntity: (e: Entity, ctx: { g: SVGGElement; selected: boolean }) => void,
) {
@@ -125,7 +125,7 @@ function paint(
for (const layer of core.scene.layers) {
const g = document.createElementNS('http://www.w3.org/2000/svg', 'g');
- g.setAttribute('data-fm-layer', String(layer));
+ g.setAttribute('data-spatial-layer', String(layer));
objectsG.appendChild(g);
for (const e of byLayer.get(layer) ?? []) {
diff --git a/packages/svg/src/resize-handles.ts b/packages/svg/src/resize-handles.ts
index b56425d..096447c 100644
--- a/packages/svg/src/resize-handles.ts
+++ b/packages/svg/src/resize-handles.ts
@@ -1,4 +1,4 @@
-import type { FloormapCore } from '@floormap-tools/core';
+import type { SpatialCore } from '@spatialkit/core';
import { clearChildren } from './dom';
export type ResizeHandleStyle = {
@@ -29,7 +29,7 @@ function handleCenter(bounds: { x: number; y: number; width: number; height: num
}
export function paintResizeHandles(
- core: FloormapCore,
+ core: SpatialCore,
overlaysG: SVGGElement,
style: ResizeHandleStyle = {},
): void {
diff --git a/packages/svg/src/selection-overlay.ts b/packages/svg/src/selection-overlay.ts
index eb1674b..62a0cc4 100644
--- a/packages/svg/src/selection-overlay.ts
+++ b/packages/svg/src/selection-overlay.ts
@@ -1,4 +1,4 @@
-import type { FloormapCore } from '@floormap-tools/core';
+import type { SpatialCore } from '@spatialkit/core';
import { clearChildren } from './dom';
export type SelectionOverlayStyle = {
@@ -11,7 +11,7 @@ export type SelectionOverlayStyle = {
const NS = 'http://www.w3.org/2000/svg';
export function paintSelectionOverlay(
- core: FloormapCore,
+ core: SpatialCore,
selectionG: SVGGElement,
style: SelectionOverlayStyle = {},
): void {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index fa12f33..ee4b51e 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -44,7 +44,7 @@ importers:
packages/adapters/react:
devDependencies:
- '@floormap-tools/core':
+ '@spatialkit/core':
specifier: workspace:*
version: link:../../core
'@testing-library/react':
@@ -77,10 +77,10 @@ importers:
packages/examples/js-vanilla:
dependencies:
- '@floormap-tools/core':
+ '@spatialkit/core':
specifier: workspace:*
version: link:../../core
- '@floormap-tools/svg':
+ '@spatialkit/svg':
specifier: workspace:*
version: link:../../svg
devDependencies:
@@ -90,10 +90,10 @@ importers:
packages/examples/react:
dependencies:
- '@floormap-tools/core':
+ '@spatialkit/core':
specifier: workspace:*
version: link:../../core
- '@floormap-tools/react':
+ '@spatialkit/react':
specifier: workspace:*
version: link:../../adapters/react
react:
@@ -118,7 +118,7 @@ importers:
packages/svg:
devDependencies:
- '@floormap-tools/core':
+ '@spatialkit/core':
specifier: workspace:*
version: link:../core
jsdom:
diff --git a/tsconfig.json b/tsconfig.json
index f5abe29..00ca57a 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -5,9 +5,9 @@
"jsx": "react-jsx",
"lib": ["ES2020", "DOM", "DOM.Iterable"],
"paths": {
- "@floormap-tools/core": ["./packages/core/src/index.ts"],
- "@floormap-tools/svg": ["./packages/svg/src/index.ts"],
- "@floormap-tools/react": ["./packages/adapters/react/src/index.ts"]
+ "@spatialkit/core": ["./packages/core/src/index.ts"],
+ "@spatialkit/svg": ["./packages/svg/src/index.ts"],
+ "@spatialkit/react": ["./packages/adapters/react/src/index.ts"]
}
},
"include": [
diff --git a/vitest.config.ts b/vitest.config.ts
index 2300628..b61cefb 100644
--- a/vitest.config.ts
+++ b/vitest.config.ts
@@ -7,9 +7,9 @@ const __dirname = fileURLToPath(new URL('.', import.meta.url));
export default defineConfig({
resolve: {
alias: {
- '@floormap-tools/core': resolve(__dirname, 'packages/core/src/index.ts'),
- '@floormap-tools/svg': resolve(__dirname, 'packages/svg/src/index.ts'),
- '@floormap-tools/react': resolve(__dirname, 'packages/adapters/react/src/index.ts'),
+ '@spatialkit/core': resolve(__dirname, 'packages/core/src/index.ts'),
+ '@spatialkit/svg': resolve(__dirname, 'packages/svg/src/index.ts'),
+ '@spatialkit/react': resolve(__dirname, 'packages/adapters/react/src/index.ts'),
},
},
test: {
diff --git a/wrangler.toml b/wrangler.toml
index 851c934..8c793e7 100644
--- a/wrangler.toml
+++ b/wrangler.toml
@@ -1,2 +1,2 @@
-name = "floormap"
+name = "spatial"
compatibility_date = "2026-06-08"