@vibecook/ice 0.6.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-BFT7YWS2.js → chunk-3SUDKHUF.js} +3 -3
- package/dist/{chunk-JLXETATP.js → chunk-BE4F4X3Q.js} +485 -77
- package/dist/chunk-BE4F4X3Q.js.map +1 -0
- package/dist/{chunk-ELCBCTKY.js → chunk-CBCSIEXW.js} +2 -2
- package/dist/devtools.js +1 -1
- package/dist/dom.js +2 -2
- package/dist/ground.js +1 -1
- package/dist/index.js +3 -1
- package/dist/r3f.js +3 -3
- package/dist/react.js +3 -3
- package/dist/types/packages/core/src/behavior/define-behavior.d.ts +2 -1
- package/dist/types/packages/core/src/behavior/runtime.d.ts +16 -2
- package/dist/types/packages/core/src/behavior/types.d.ts +47 -1
- package/dist/types/packages/core/src/engine/guests.d.ts +5 -2
- package/dist/types/packages/core/src/facade/create-canvas-engine.d.ts +38 -6
- package/dist/types/packages/core/src/index.d.ts +4 -3
- package/dist/types/packages/core/src/interaction/install.d.ts +1 -1
- package/dist/types/packages/core/src/nav/nested-canvas.d.ts +1 -1
- package/dist/types/packages/core/src/ops/point-pick.d.ts +1 -1
- package/dist/types/packages/core/src/ops/port-geometry.d.ts +1 -1
- package/dist/types/packages/core/src/presence/presence-kit.d.ts +11 -0
- package/dist/types/packages/core/src/presence/remote-cursors.d.ts +10 -7
- package/dist/types/packages/core/src/systems/l1-pick.d.ts +1 -1
- package/dist/types/packages/core/src/systems/l1-wires.d.ts +1 -1
- package/dist/types/packages/core/src/systems/l3-connect.d.ts +1 -1
- package/dist/types/packages/core/src/systems/l3-drop.d.ts +1 -1
- package/dist/types/packages/core/src/systems/l3-marquee.d.ts +1 -1
- package/dist/types/packages/core/src/systems/l3-ports.d.ts +1 -1
- package/dist/types/packages/core/src/systems/l3-snap.d.ts +1 -1
- package/dist/types/packages/core/src/systems/nav-flight.d.ts +1 -1
- package/dist/types/packages/devtools/src/attach.d.ts +1 -1
- package/dist/types/packages/dom/src/loop.d.ts +1 -1
- package/dist/types/packages/dom/src/measure-adapter.d.ts +1 -1
- package/dist/types/packages/dom/src/measure-wiring.d.ts +1 -1
- package/dist/types/packages/dom/src/pointer-adapter.d.ts +1 -1
- package/dist/types/packages/dom/src/reflectors/chrome.d.ts +1 -1
- package/dist/types/packages/dom/src/reflectors/cursor.d.ts +1 -1
- package/dist/types/packages/dom/src/reflectors/dom-widgets.d.ts +1 -1
- package/dist/types/packages/dom/src/reflectors/graybox.d.ts +1 -1
- package/dist/types/packages/dom/src/reflectors/plane-transform.d.ts +1 -1
- package/dist/types/packages/dom/src/reflectors/remote-cursors.d.ts +1 -1
- package/dist/types/packages/dom/src/widget-focus.d.ts +1 -1
- package/dist/types/packages/ground/src/index.d.ts +2 -2
- package/dist/types/packages/ground/src/layer.d.ts +1 -1
- package/dist/types/packages/ground/src/pass.d.ts +1 -1
- package/dist/types/packages/ground/src/passes/grid.d.ts +1 -1
- package/dist/types/packages/ground/src/passes/guides-collect.d.ts +1 -1
- package/dist/types/packages/ground/src/passes/guides.d.ts +1 -1
- package/dist/types/packages/ground/src/passes/wires-collect.d.ts +1 -1
- package/dist/types/packages/ground/src/passes/wires.d.ts +1 -1
- package/dist/types/packages/r3f/src/bridge.d.ts +1 -1
- package/dist/types/packages/r3f/src/compositor-pass.d.ts +1 -1
- package/dist/types/packages/r3f/src/dev-write-trap.d.ts +1 -1
- package/dist/types/packages/r3f/src/gl-root.d.ts +1 -1
- package/dist/types/packages/r3f/src/gl-router.d.ts +2 -2
- package/dist/types/packages/r3f/src/island-state.d.ts +1 -1
- package/dist/types/packages/r3f/src/island.d.ts +1 -1
- package/dist/types/packages/r3f/src/use-island-frame.d.ts +1 -1
- package/dist/types/packages/react/src/engine-context.d.ts +1 -1
- package/dist/types/packages/react/src/hooks.d.ts +1 -1
- package/dist/types/packages/react/src/infinite-canvas.d.ts +2 -2
- package/dist/types/packages/react/src/keymap.d.ts +1 -1
- package/dist/types/packages/react/src/use-commit.d.ts +1 -1
- package/dist/types/packages/react/src/use-presence.d.ts +1 -1
- package/dist/types/packages/react/src/widget-root.d.ts +1 -1
- package/package.json +2 -2
- package/dist/chunk-JLXETATP.js.map +0 -1
- /package/dist/{chunk-BFT7YWS2.js.map → chunk-3SUDKHUF.js.map} +0 -0
- /package/dist/{chunk-ELCBCTKY.js.map → chunk-CBCSIEXW.js.map} +0 -0
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* (Selection chrome moved OFF the ground 2026-07-17: rings live with the
|
|
9
9
|
* cards, the multi-select union box is P4 dom chrome — always on top.)
|
|
10
10
|
*/
|
|
11
|
-
import type { GridConfig, SnapGuidesConfig, WirePreviewBuffer, WiresConfig, World } from "
|
|
11
|
+
import type { GridConfig, SnapGuidesConfig, WirePreviewBuffer, WiresConfig, World } from "../../core/src/index";
|
|
12
12
|
import { type GroundLayerHost, type GroundReflector } from "./layer";
|
|
13
13
|
import type { GroundPass } from "./pass";
|
|
14
14
|
import { type GroundRendererLike } from "./renderer";
|
|
@@ -18,7 +18,7 @@ export type { GroundRendererLike } from "./renderer";
|
|
|
18
18
|
export { SoupBuilder, parseCssColor, type Rgba, type TriSoup } from "./passes/soup-collect";
|
|
19
19
|
export { collectGuides } from "./passes/guides-collect";
|
|
20
20
|
export { collectWires } from "./passes/wires-collect";
|
|
21
|
-
export { DEFAULT_GRID_CONFIG, DEFAULT_SNAP_GUIDES_CONFIG, DEFAULT_WIRES_CONFIG, type GridConfig, type SnapGuidesConfig, type WiresConfig, } from "
|
|
21
|
+
export { DEFAULT_GRID_CONFIG, DEFAULT_SNAP_GUIDES_CONFIG, DEFAULT_WIRES_CONFIG, type GridConfig, type SnapGuidesConfig, type WiresConfig, } from "../../core/src/index";
|
|
22
22
|
export interface GroundContext {
|
|
23
23
|
readonly host: GroundLayerHost;
|
|
24
24
|
readonly world: World;
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
* class as a pan frame under the old grid). WebGPU init is async: flushes
|
|
19
19
|
* before ready are deferred (flags stay armed), the first ready flush paints.
|
|
20
20
|
*/
|
|
21
|
-
import { type ReflectorDef, type World } from "
|
|
21
|
+
import { type ReflectorDef, type World } from "../../core/src/index";
|
|
22
22
|
import type { GroundPass } from "./pass";
|
|
23
23
|
import type { GroundRendererLike } from "./renderer";
|
|
24
24
|
export interface GroundLayerHost {
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* sibling `*-collect.ts` modules that import ONLY core/kernel, so collectors
|
|
11
11
|
* unit-test under happy-dom with no GPU and no three import.
|
|
12
12
|
*/
|
|
13
|
-
import type { World } from "
|
|
13
|
+
import type { World } from "../../core/src/index";
|
|
14
14
|
import type { Object3D } from "three/webgpu";
|
|
15
15
|
/** Per-flush frame facts every pass collects against. */
|
|
16
16
|
export interface GroundFrame {
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* branching. Everything else (fract-distance dots, 0.5-device-px AA,
|
|
13
13
|
* max-composited levels) matches term for term.
|
|
14
14
|
*/
|
|
15
|
-
import { type GridConfig } from "
|
|
15
|
+
import { type GridConfig } from "../../../core/src/index";
|
|
16
16
|
import type { GroundPass } from "../pass";
|
|
17
17
|
export interface GridPass extends GroundPass {
|
|
18
18
|
/** Live re-tune (the react `grid` prop seam) — partial merge over current values. */
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* end ticks. Screen-px output via the kernel `worldToScreen` seam. NO guide
|
|
7
7
|
* count caps (the pool grows; so does the soup).
|
|
8
8
|
*/
|
|
9
|
-
import { type SnapGuidesConfig, type World } from "
|
|
9
|
+
import { type SnapGuidesConfig, type World } from "../../../core/src/index";
|
|
10
10
|
import type { GroundFrame } from "../pass";
|
|
11
11
|
import { type TriSoup } from "./soup-collect";
|
|
12
12
|
export declare const guideQ: import("@vibecook/strata-ecs").Query;
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* - Materialized port dots: triangle-fan discs, active color while any
|
|
16
16
|
* connect drag is routed.
|
|
17
17
|
*/
|
|
18
|
-
import { type WirePreviewBuffer, type WiresConfig, type World } from "
|
|
18
|
+
import { type WirePreviewBuffer, type WiresConfig, type World } from "../../../core/src/index";
|
|
19
19
|
import type { GroundFrame } from "../pass";
|
|
20
20
|
import { type TriSoup } from "./soup-collect";
|
|
21
21
|
export declare const wireQ: import("@vibecook/strata-ecs").Query;
|
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
* `[RoutedConnect, Drag]` value dirt (the buffer updates exactly when the
|
|
6
6
|
* connect recognizer's Drag advances) instead of a per-frame value diff.
|
|
7
7
|
*/
|
|
8
|
-
import { type WirePreviewBuffer, type WiresConfig } from "
|
|
8
|
+
import { type WirePreviewBuffer, type WiresConfig } from "../../../core/src/index";
|
|
9
9
|
import type { GroundPass } from "../pass";
|
|
10
10
|
export declare function createWiresPass(initial?: Partial<WiresConfig>, readPreview?: () => WirePreviewBuffer): GroundPass;
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
* real world and fake scene/camera handles, no GL context.
|
|
43
43
|
*/
|
|
44
44
|
import type { OrthographicCamera, Scene } from "three";
|
|
45
|
-
import { type Engine, type Entity, type SiblingOrderIndex } from "
|
|
45
|
+
import { type Engine, type Entity, type SiblingOrderIndex } from "../../core/src/index";
|
|
46
46
|
import { type IslandStateStore } from "./island-state";
|
|
47
47
|
import { type RenderWriteTrap } from "./dev-write-trap";
|
|
48
48
|
export interface IslandHandle {
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
* un-shimmed browser production bundle strata's own DEV flag can evaluate
|
|
18
18
|
* true, so registration is gated HERE (default off; demos/traces opt in).
|
|
19
19
|
*/
|
|
20
|
-
import type { World } from "
|
|
20
|
+
import type { World } from "../../core/src/index";
|
|
21
21
|
export interface RenderWriteTrap {
|
|
22
22
|
/** Arm the trap (begin twice without end is a bug — throws). */
|
|
23
23
|
begin(): void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type ReactElement } from "react";
|
|
2
2
|
import { type Texture } from "three";
|
|
3
|
-
import { type Engine, type WidgetMountStore } from "
|
|
3
|
+
import { type Engine, type WidgetMountStore } from "../../core/src/index";
|
|
4
4
|
import type { GLBridge } from "./bridge";
|
|
5
5
|
export interface GLViewsProps {
|
|
6
6
|
readonly engine: Engine;
|
|
@@ -31,8 +31,8 @@
|
|
|
31
31
|
* facts land next tick via the queue.
|
|
32
32
|
*/
|
|
33
33
|
import { type Intersection, type Object3D } from "three";
|
|
34
|
-
import type { SpatialIndex } from "
|
|
35
|
-
import { type Entity, type World } from "
|
|
34
|
+
import type { SpatialIndex } from "../../kernel/src/index";
|
|
35
|
+
import { type Entity, type World } from "../../core/src/index";
|
|
36
36
|
import type { GLBridge } from "./bridge";
|
|
37
37
|
/** The synthetic event island handlers receive (R3F-handler-compatible core). */
|
|
38
38
|
export interface IslandPointerEvent {
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* Pure state + counters; no three.js, no ECS, no timing — the GLViews frame
|
|
14
14
|
* pass reads/writes it synchronously.
|
|
15
15
|
*/
|
|
16
|
-
import type { IslandPhase } from "
|
|
16
|
+
import type { IslandPhase } from "../../kernel/src/index";
|
|
17
17
|
/** Resolution + band an island's FBO was last painted at (v1 `paintedAt`). */
|
|
18
18
|
export interface PaintedAt {
|
|
19
19
|
readonly w: number;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type ReactElement } from "react";
|
|
2
2
|
import { type Texture } from "three";
|
|
3
|
-
import type { Entity, WidgetType, World } from "
|
|
3
|
+
import type { Entity, WidgetType, World } from "../../core/src/index";
|
|
4
4
|
import type { GLBridge } from "./bridge";
|
|
5
5
|
export interface IslandProps {
|
|
6
6
|
readonly bridge: GLBridge;
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* hatch. `<InfiniteCanvas>` provides this automatically; apps that mount
|
|
11
11
|
* WidgetRoot themselves wrap it in `<EngineProvider>`.
|
|
12
12
|
*/
|
|
13
|
-
import { type CanvasEngine, type CanvasOps, type World } from "
|
|
13
|
+
import { type CanvasEngine, type CanvasOps, type World } from "../../core/src/index";
|
|
14
14
|
import { type ReactElement, type ReactNode } from "react";
|
|
15
15
|
export interface EngineProviderProps {
|
|
16
16
|
readonly engine: CanvasEngine;
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* (provided per-portal by WidgetRoot) and suspends its subscription while
|
|
14
14
|
* hidden, serving the last snapshot; on show it resubscribes and refreshes.
|
|
15
15
|
*/
|
|
16
|
-
import { type AnyBehaviorDef, type Component, type Entity, type World } from "
|
|
16
|
+
import { type AnyBehaviorDef, type Component, type Entity, type World } from "../../core/src/index";
|
|
17
17
|
/** Per-portal hidden flag (WidgetRoot provides it; defaults to live). */
|
|
18
18
|
export declare const WidgetHiddenContext: import("react").Context<boolean>;
|
|
19
19
|
/**
|
|
@@ -35,8 +35,8 @@
|
|
|
35
35
|
* `createCanvasEngine({ measureQueue })` (ingest side) and this component's
|
|
36
36
|
* `measureQueue` prop (ResizeObserver side). Absent ⇒ measurement is skipped.
|
|
37
37
|
*/
|
|
38
|
-
import { type CanvasEngine, type GridConfig, type MeasureQueue, type ReflectorDef, type WirePreviewBuffer, type World } from "
|
|
39
|
-
import { type CanvasHost, type GLRoute, type Planes, type WidgetFocusHandle } from "
|
|
38
|
+
import { type CanvasEngine, type GridConfig, type MeasureQueue, type ReflectorDef, type WirePreviewBuffer, type World } from "../../core/src/index";
|
|
39
|
+
import { type CanvasHost, type GLRoute, type Planes, type WidgetFocusHandle } from "../../dom/src/index";
|
|
40
40
|
import { type CSSProperties, type ReactElement, type ReactNode } from "react";
|
|
41
41
|
import { type KeymapEntry } from "./keymap";
|
|
42
42
|
/** Handed to {@link InfiniteCanvasProps.onReady} for app-side GL/devtools wiring. */
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
* Space warns at attach: the pointer adapter owns Space (the pan modifier,
|
|
41
41
|
* design-003 §4.4) and preventDefaults it before gate 1 can let it through.
|
|
42
42
|
*/
|
|
43
|
-
import { type CanvasEngine } from "
|
|
43
|
+
import { type CanvasEngine } from "../../core/src/index";
|
|
44
44
|
export interface KeymapEntry {
|
|
45
45
|
/** `event.key` to match (case-insensitive; e.g. "z", "Backspace", "ArrowUp"). */
|
|
46
46
|
readonly key: string;
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* CALL time (not hook time) so a widget rendered doc-less that gains a doc later
|
|
11
11
|
* commits correctly without re-mounting.
|
|
12
12
|
*/
|
|
13
|
-
import { type GuardedTx, type GuardedTxOpts } from "
|
|
13
|
+
import { type GuardedTx, type GuardedTxOpts } from "../../core/src/index";
|
|
14
14
|
/** A durable commit: run `fn` against the current doc session's store, one tx. */
|
|
15
15
|
export type Commit = (fn: (tx: GuardedTx) => void, opts?: GuardedTxOpts) => void;
|
|
16
16
|
/**
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* is sampled when membership changes (steady-state presence info is set once at
|
|
11
11
|
* join; a mid-session rename reflects on the next membership change).
|
|
12
12
|
*/
|
|
13
|
-
import { type Entity } from "
|
|
13
|
+
import { type Entity } from "../../core/src/index";
|
|
14
14
|
export interface PresencePeerView {
|
|
15
15
|
readonly entity: Entity;
|
|
16
16
|
/** The peer's `PresenceInfo` (strata "string" fields are nullable until set). */
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* registration) — entries without a host render nothing this pass and pick
|
|
16
16
|
* up on the next notification.
|
|
17
17
|
*/
|
|
18
|
-
import { type Entity, type World, type WidgetMountStore } from "
|
|
18
|
+
import { type Entity, type World, type WidgetMountStore } from "../../core/src/index";
|
|
19
19
|
import { type ReactElement } from "react";
|
|
20
20
|
export interface WidgetHosts {
|
|
21
21
|
/** The dom-widgets reflector's lookup (content element per entity). */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vibecook/ice",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "ICE — infinite canvas engine. Figma-grade infinite-canvas UX as a framework: defineWidget turns React/R3F components into canvas citizens — selectable, movable, resizable, wired into node graphs, CRDT-synced, undoable per gesture.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "James Yong <me@jamesyong42.com>",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"publishConfig": { "access": "public" },
|
|
44
44
|
"scripts": {
|
|
45
45
|
"typecheck": "tsc --noEmit",
|
|
46
|
-
"build": "tsup && tsc -p tsconfig.dts.json",
|
|
46
|
+
"build": "tsup && tsc -p tsconfig.dts.json && node scripts/fix-dts-specifiers.mjs",
|
|
47
47
|
"prepack": "pnpm run build"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|