@weasel-js/routing 1.14.2 → 1.15.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/dist/{chunk-INZ63QGX.js → chunk-VAUJJODS.js} +201 -4
- package/dist/chunk-VAUJJODS.js.map +1 -0
- package/dist/{chunk-EUCNVGJV.js → chunk-Z2BZBJ7W.js} +6 -3
- package/dist/chunk-Z2BZBJ7W.js.map +1 -0
- package/dist/{chunk-HR5F4LBX.js → chunk-ZUAFANMN.js} +31 -10
- package/dist/chunk-ZUAFANMN.js.map +1 -0
- package/dist/{index-DJ7SxEKS.d.ts → index-D-XFwx8D.d.ts} +1281 -1074
- package/dist/index.d.ts +4 -3
- package/dist/index.js +115 -8
- package/dist/index.js.map +1 -1
- package/dist/{internal-CaJ4viHc.d.ts → internal-nqfC0td8.d.ts} +8 -1
- package/dist/internal.d.ts +7 -6
- package/dist/react.d.ts +27 -9
- package/dist/react.js +120 -19
- package/dist/react.js.map +1 -1
- package/dist/testing/registerAction.d.ts +6 -5
- package/dist/testing/registerAction.js +2 -2
- package/package.json +13 -13
- package/dist/chunk-EUCNVGJV.js.map +0 -1
- package/dist/chunk-HR5F4LBX.js.map +0 -1
- package/dist/chunk-INZ63QGX.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/interactions/actions/depRegistry.tsx","../src/menus/MenuHostContext.tsx","../src/interactions/actions/ActionsProvider.tsx"],"names":["createContext","useContext","useEffect","useLatest","jsx"],"mappings":"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","file":"chunk-INZ63QGX.js","sourcesContent":["/** The React seam over the dep registry in `./depNode`: its provider and hooks. */\nimport {\n createContext, useContext, useEffect, useState,\n type ReactNode,\n} from 'react';\nimport type { DepSchema, DepName } from '../../index';\nimport { createDepRegistry, type DepRegistry, type DepSource } from './depNode';\nimport { useLatest } from '@weasel-js/react';\n\nexport type { DepSchema, DepName, DepRegistry, DepSource };\nexport { DepNode, depNodeOf, createDepRegistry } from './depNode';\n\n/** @internal The context `<InputScope>` provides a scope's dep registry through. */\nexport const DepRegistryContext = createContext<DepRegistry | null>(null);\n\n/** Provides the dep registry for a canvas. `<SceneCanvas>` mounts one; a\n * consumer registering its own dep sources must be inside it. */\nexport function DepRegistryProvider({ children }: { children: ReactNode }) {\n const [registry] = useState(createDepRegistry);\n return <DepRegistryContext.Provider value={registry}>{children}</DepRegistryContext.Provider>;\n}\n\n/** The dep registry in scope. Throws outside a `<DepRegistryProvider>`. */\nexport function useDepRegistry(): DepRegistry {\n const r = useContext(DepRegistryContext);\n if (r === null) {\n throw new Error('useDepRegistry: no DepRegistryProvider in scope. Wrap your tree with <DepRegistryProvider> (typically inside <SceneCanvas>).');\n }\n return r;\n}\n\n/**\n * Like `useDepRegistry`, but returns `null` when no `<DepRegistryProvider>` is\n * in scope instead of throwing. Used by `useStandardActions` to preserve its\n * silent-no-op contract when neither provider is present.\n */\nexport function useOptionalDepRegistry(): DepRegistry | null {\n return useContext(DepRegistryContext);\n}\n\n/** Register a live source for `name` for the lifetime of the calling\n * component. The `source` thunk is called at dispatch time and should\n * return the latest value; its `below` reads the source it displaced. */\nexport function useDepSource<K extends DepName>(name: K, source: DepSource<K>) {\n const registry = useDepRegistry();\n const sourceRef = useLatest(source);\n useEffect(() => {\n return registry.register(name, (below) => sourceRef.current(below));\n }, [name, registry, sourceRef]);\n}\n","import { createContext, useContext, useEffect } from 'react';\nimport type { MenuHost } from './menuHost';\nimport type { MenuDef } from './types';\n\nexport const MenuHostContext = createContext<MenuHost | null>(null);\n\n/** The menu host in scope: the nearest `<ActionsProvider>`'s, else the one a\n * canvas with no provider above it makes. Null outside both. */\nexport function useMenuHost(): MenuHost | null {\n return useContext(MenuHostContext);\n}\n\n/** Declare menus for the calling component's lifetime. Memoize `defs`. */\nexport function useMenus(defs: readonly MenuDef[], owner: string | null = null): void {\n const host = useMenuHost();\n useEffect(() => {\n if (!host) return;\n const releases = defs.map((d) => host.define(d, owner));\n return () => { for (const r of releases) r(); };\n }, [host, defs, owner]);\n}\n","/**\n * The React half of the actions registry: the context, the tree node that\n * owns each id → descriptor stack, the providers that mount nodes, and the two\n * hooks. The store contract it implements is in `registry.ts`.\n */\nimport {\n createContext,\n useContext,\n useEffect,\n useMemo,\n type ReactElement,\n type ReactNode,\n} from 'react';\nimport type { Action } from './action';\nimport { evaluateEnabled } from './actionEnabled';\nimport { useLatest } from '@weasel-js/react';\nimport {\n useOptionalDepRegistry,\n type DepRegistry,\n type DepName,\n} from './depRegistry';\nimport { buildDepsFromRequires } from './buildDeps';\nimport type { ActionDeps, WorldPoint } from './invoker';\nimport type { ImmediateParams } from '../dispatcher/inputFacts';\nimport type { Dispatcher } from '../dispatcher/dispatcher';\nimport { validateActionId, validateActionDefaultBinding, type ActionsRegistry } from './registry';\nimport { createMenuHost, type MenuHost } from '../../menus/menuHost';\nimport { MenuHostContext } from '../../menus/MenuHostContext';\nimport { pushOwner, ScopeNode } from './scopeNode';\nimport { tuneAction, tunedParams, type ActionTuning } from './tuning';\nimport { overrideActionBindings, resolveBindingOverrides, type BindingOverrides, type ResolvedBindingOverrides } from './bindingOverrides';\nimport { isDev } from '@weasel-js/react';\n\n/** @internal Provided by `<ActionsProvider>`, `<InputScope>` and `<Yoke>`. */\nexport const ActionsContext = createContext<ActionsRegistry | null>(null);\n\n/** The deps an action is invoked with: its declared `requires` when it has\n * one, the legacy fixed bag otherwise. The fixed bag has no `applyOps`, so an\n * action that needs the consumer's history must declare it. */\nfunction depsFor(a: Action, r: DepRegistry | null): ActionDeps {\n if (!r) return {};\n if (a.requires) return buildDepsFromRequires(a, r);\n return {\n selection: r.get('selection' as DepName),\n scene: r.get('scene' as DepName),\n history: r.get('history' as DepName),\n view: r.get('view' as DepName),\n activeTool: r.get('activeTool'),\n booleansAdapter: r.get('booleansAdapter' as DepName),\n } as ActionDeps;\n}\n\n/**\n * One node of the actions tree: the actions registered at it, over its\n * parent's. Each id holds a stack of registrants, newest live, so a displaced\n * registrant is restored when the one above it leaves. Every read the registry\n * answers — `list`, `trigger`, `begin` — starts at the node's leaf.\n */\nexport class ActionsNode extends ScopeNode<ActionsNode> {\n private readonly actions = new Map<string, Action[]>();\n private readonly muted = new Map<string, number>();\n private readonly tunings = new Map<string, ActionTuning[]>();\n private readonly overrides: BindingOverrides[] = [];\n private overrideCache: { version: number; resolved: ResolvedBindingOverrides } | null = null;\n private readonly dispatchers: Dispatcher[] = [];\n private cache: { version: number; leaf: ActionsNode; list: readonly Action[] } | null = null;\n private host: MenuHost | null = null;\n /** Called on `activate`, so a scope's dep and tool nodes move with it. */\n readonly onActivate: (() => void)[] = [];\n\n constructor(\n parent: ActionsNode | null,\n descends: boolean,\n private readonly contextDeps: () => DepRegistry | null,\n ) {\n super(parent, descends);\n NODES.set(this.registry, this);\n }\n\n private resolve(id: string): Action | undefined {\n for (const n of this.chain()) {\n if (n.muted.has(id)) return undefined;\n const a = n.actions.get(id)?.at(-1);\n if (a) return this.tuned(a);\n }\n return undefined;\n }\n\n /** Every tuning for `id` from the root down to here, root first. */\n private tuningsOf(id: string): ActionTuning[] {\n const tunings: ActionTuning[] = [];\n for (const n of this.chain()) {\n const stack = n.tunings.get(id);\n if (stack) tunings.unshift(...stack);\n }\n return tunings;\n }\n\n /** `a` under every tuning for its id from the root down to here. */\n private tuned(a: Action): Action {\n const tunings = this.tuningsOf(a.id);\n return overrideActionBindings(tunings.length ? tuneAction(a, tunings) : a, this.overridesHere());\n }\n\n /** Every binding override from the root down to here, read into specs. */\n private overridesHere(): ResolvedBindingOverrides {\n const cached = this.overrideCache;\n if (cached && cached.version === this.tree.version) return cached.resolved;\n const maps: BindingOverrides[] = [];\n for (const n of this.chain()) maps.unshift(...n.overrides);\n const resolved = resolveBindingOverrides(maps);\n this.overrideCache = { version: this.tree.version, resolved };\n return resolved;\n }\n\n private snapshot(): readonly Action[] {\n const leaf = this.start();\n const cached = this.cache;\n if (cached && cached.version === this.tree.version && cached.leaf === leaf) return cached.list;\n const ids = new Set<string>();\n for (const n of leaf.chain()) for (const id of n.actions.keys()) ids.add(id);\n const out: Action[] = [];\n for (const id of ids) {\n const a = leaf.resolve(id);\n if (a) out.push(a);\n }\n const list = Object.freeze(out);\n this.cache = { version: this.tree.version, leaf, list };\n return list;\n }\n\n private deps(): DepRegistry | null {\n for (const n of this.chain()) {\n const r = n.contextDeps();\n if (r) return r;\n }\n return null;\n }\n\n /** The actions registered at this node itself, live, unmuted and tuned —\n * none from the scopes below it. */\n ownActions(): readonly Action[] {\n const out: Action[] = [];\n for (const [id, stack] of this.actions) {\n if (stack.length > 0 && !this.muted.has(id)) out.push(this.tuned(stack.at(-1)!));\n }\n return out;\n }\n\n /** The deps `a` is invoked with from here: the active scope's, which is\n * what `trigger` and `begin` run it with. */\n depsOf(a: Action): ActionDeps {\n return depsFor(a, this.start().deps());\n }\n\n /** The menu host of this node's tree, made by its root on first ask. Rows\n * resolve and run against the active scope, as chrome's `trigger` does. */\n menuHost(): MenuHost {\n const root = [...this.chain()].at(-1)!;\n return root.host ??= createMenuHost({\n actions: () => root.registry.list(),\n depsFor: (a) => root.depsOf(a),\n trigger: (id, params) => root.registry.trigger(id, params),\n activeTool: () => root.start().deps()?.get('activeTool')?.active ?? null,\n });\n }\n\n private dispatcher(): Dispatcher | null {\n for (const n of this.chain()) {\n const d = n.dispatchers.at(-1);\n if (d) return d;\n }\n return null;\n }\n\n override activate(): void {\n keyHolder = this;\n super.activate();\n for (const f of this.onActivate) f();\n }\n\n readonly registry: ActionsRegistry = {\n register: (action: Action) => {\n validateActionId(action.id);\n validateActionDefaultBinding(action);\n const stack = this.actions.get(action.id);\n if (stack) stack.push(action);\n else this.actions.set(action.id, [action]);\n this.changed();\n let released = false;\n return () => {\n if (released) return;\n released = true;\n const cur = this.actions.get(action.id);\n if (!cur) return;\n // Our own entry, wherever it now sits: a registrant that was already\n // displaced must take itself out without disturbing the one above it.\n const i = cur.lastIndexOf(action);\n if (i === -1) return;\n cur.splice(i, 1);\n // An emptied stack holds the id's place in registration order until\n // the tick ends, so a release followed at once by a register — what\n // `useAction` does when its action object changes — keeps its slot.\n if (cur.length === 0) {\n queueMicrotask(() => {\n if (cur.length === 0 && this.actions.get(action.id) === cur) this.actions.delete(action.id);\n });\n }\n this.changed();\n };\n },\n unregister: (id: string) => {\n if (this.actions.delete(id)) this.changed();\n },\n mute: (id: string) => {\n this.muted.set(id, (this.muted.get(id) ?? 0) + 1);\n this.changed();\n let released = false;\n return () => {\n if (released) return;\n released = true;\n const held = this.muted.get(id);\n if (held === undefined) return;\n if (held > 1) this.muted.set(id, held - 1);\n else this.muted.delete(id);\n this.changed();\n };\n },\n tune: (id: string, tuning: ActionTuning) => {\n let stack = this.tunings.get(id);\n if (!stack) this.tunings.set(id, (stack = []));\n const release = pushOwner(stack, tuning);\n this.changed();\n let released = false;\n return () => {\n if (released) return;\n released = true;\n release();\n if (stack.length === 0) this.tunings.delete(id);\n this.changed();\n };\n },\n paramsOf: (id: string, given?: Record<string, unknown>) => tunedParams(this.tuningsOf(id), given),\n overrideBindings: (overrides: BindingOverrides) => {\n const release = pushOwner(this.overrides, overrides);\n this.changed();\n let released = false;\n return () => {\n if (released) return;\n released = true;\n release();\n this.changed();\n };\n },\n bindingOverrides: () => this.start().overridesHere(),\n list: () => this.snapshot(),\n trigger: (id: string, params?: Record<string, unknown>) => {\n const leaf = this.start();\n const a = leaf.resolve(id);\n if (!a?.invoker || a.invoker.timing !== 'immediate') return false;\n const deps = leaf.depsOf(a);\n if (!evaluateEnabled(a, deps, pointOf(params)).enabled) return false;\n try {\n if (a.invoker.run(deps, params) === 'pass') return false;\n } catch (err) {\n console.error(`weasel ActionsRegistry: action \"${id}\" threw`, err);\n }\n return true;\n },\n preview: (id: string, params?: Record<string, unknown>) => {\n const leaf = this.start();\n const a = leaf.resolve(id);\n if (!a?.preview) return NO_PREVIEW;\n const deps = leaf.depsOf(a);\n if (!evaluateEnabled(a, deps, pointOf(params)).enabled) return NO_PREVIEW;\n let stop: (() => void) | void;\n try {\n stop = a.preview(deps, params);\n } catch (err) {\n console.error(`weasel ActionsRegistry: preview of \"${id}\" threw`, err);\n return NO_PREVIEW;\n }\n if (typeof stop !== 'function') return NO_PREVIEW;\n let down = false;\n return () => {\n if (down) return;\n down = true;\n try {\n stop();\n } catch (err) {\n console.error(`weasel ActionsRegistry: preview of \"${id}\" threw as it ended`, err);\n }\n };\n },\n subscribe: (listener: () => void) => this.tree.listeners.subscribe(listener),\n setDispatcher: (d: Dispatcher | null) => pushOwner(this.dispatchers, d),\n begin: (id: string, params?: Record<string, unknown>) => {\n const leaf = this.start();\n const a = leaf.resolve(id);\n const disp = leaf.dispatcher();\n if (!a || !disp) return null;\n return disp.beginUiOngoing(id, leaf.depsOf(a), params);\n },\n activate: () => this.activate(),\n isActive: () => this.isActive(),\n holdsKeys: () => keyHolder === this,\n dropKeys: () => { if (keyHolder === this) keyHolder = null; },\n };\n}\n\nconst NO_PREVIEW = (): void => {};\n\n/** The world point a trigger's params carry, if any. */\nfunction pointOf(params: Record<string, unknown> | undefined): WorldPoint | undefined {\n return (params as ImmediateParams | undefined)?.world;\n}\n\n/** The node last activated on the page, across every tree: where a key that\n * reaches the page goes. Null until something is pressed or scrolled in. */\nlet keyHolder: ActionsNode | null = null;\n\nconst NODES = new WeakMap<ActionsRegistry, ActionsNode>();\n\n/** The tree node behind `registry`, when it is one of ours. */\nexport function actionsNodeOf(registry: ActionsRegistry | null): ActionsNode | null {\n return registry ? (NODES.get(registry) ?? null) : null;\n}\n\n/**\n * Mounts a root `ActionsRegistry` for its lifetime. Children call\n * `useActionsRegistry()` or `useAction()` to participate. Mounts no input\n * listener of its own — the gesture dispatcher owns input.\n */\nexport function ActionsProvider({ children }: { children: ReactNode }): ReactElement {\n // `trigger` consults the dep registry in scope, so actions can be fired\n // imperatively from ActionBar / palette callers.\n const depReg = useOptionalDepRegistry();\n const depRegRef = useLatest<DepRegistry | null>(depReg);\n const node = useMemo(() => new ActionsNode(null, true, () => depRegRef.current), [depRegRef]);\n return (\n <ActionsContext.Provider value={node.registry}>\n <MenuHostContext.Provider value={node.menuHost()}>{children}</MenuHostContext.Provider>\n </ActionsContext.Provider>\n );\n}\n\nconst IS_DEV = isDev();\n\n/**\n * Returns the `ActionsRegistry` in scope, or `null` when there is none.\n */\nexport function useActionsRegistry(): ActionsRegistry | null {\n return useContext(ActionsContext);\n}\n\n/**\n * Register an `Action` for the lifetime of the calling component. No-op (with\n * a dev-only warning) when no `ActionsProvider` is in scope. Re-registers on\n * `action` reference change (consumers should memoize stable identities to\n * avoid churn).\n */\nexport function useAction(action: Action): void {\n const reg = useActionsRegistry();\n useEffect(() => {\n if (!reg) {\n if (IS_DEV) {\n console.warn(\n `useAction(\"${action.id}\"): no <ActionsProvider> is in scope, so the action was not registered and its bindings will never fire.`,\n );\n }\n return;\n }\n return reg.register(action);\n }, [reg, action]);\n}\n"]}
|