react-state-basis 0.3.0 ā 0.3.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/index.d.mts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -0
- package/dist/index.mjs.map +1 -1
- package/dist/production.d.mts +3 -1
- package/dist/production.d.ts +3 -1
- package/dist/production.js +4 -0
- package/dist/production.js.map +1 -1
- package/dist/production.mjs +3 -0
- package/dist/production.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -121,5 +121,6 @@ declare const startTransition: typeof React.startTransition;
|
|
|
121
121
|
declare const version: string;
|
|
122
122
|
declare const createPortal: any;
|
|
123
123
|
declare const flushSync: any;
|
|
124
|
+
declare const unstable_batchedUpdates: any;
|
|
124
125
|
|
|
125
|
-
export { BasisProvider, Children, Component, Fragment, Profiler, PureComponent, StrictMode, Suspense, __testEngine__, __test__, beginEffectTracking, cloneElement, config, configureBasis, createContext, createElement, createPortal, createRef, currentTickBatch, endEffectTracking, flushSync, forwardRef, history, isValidElement, lazy, memo, printBasisHealthReport, recordUpdate, registerVariable, startTransition, unregisterVariable, use, useActionState, useBasisConfig, useCallback, useContext, useDebugValue, useDeferredValue, useEffect, useId, useImperativeHandle, useInsertionEffect, useLayoutEffect, useMemo, useOptimistic, useReducer, useRef, useState, useSyncExternalStore, useTransition, version };
|
|
126
|
+
export { BasisProvider, Children, Component, Fragment, Profiler, PureComponent, StrictMode, Suspense, __testEngine__, __test__, beginEffectTracking, cloneElement, config, configureBasis, createContext, createElement, createPortal, createRef, currentTickBatch, endEffectTracking, flushSync, forwardRef, history, isValidElement, lazy, memo, printBasisHealthReport, recordUpdate, registerVariable, startTransition, unregisterVariable, unstable_batchedUpdates, use, useActionState, useBasisConfig, useCallback, useContext, useDebugValue, useDeferredValue, useEffect, useId, useImperativeHandle, useInsertionEffect, useLayoutEffect, useMemo, useOptimistic, useReducer, useRef, useState, useSyncExternalStore, useTransition, version };
|
package/dist/index.d.ts
CHANGED
|
@@ -121,5 +121,6 @@ declare const startTransition: typeof React.startTransition;
|
|
|
121
121
|
declare const version: string;
|
|
122
122
|
declare const createPortal: any;
|
|
123
123
|
declare const flushSync: any;
|
|
124
|
+
declare const unstable_batchedUpdates: any;
|
|
124
125
|
|
|
125
|
-
export { BasisProvider, Children, Component, Fragment, Profiler, PureComponent, StrictMode, Suspense, __testEngine__, __test__, beginEffectTracking, cloneElement, config, configureBasis, createContext, createElement, createPortal, createRef, currentTickBatch, endEffectTracking, flushSync, forwardRef, history, isValidElement, lazy, memo, printBasisHealthReport, recordUpdate, registerVariable, startTransition, unregisterVariable, use, useActionState, useBasisConfig, useCallback, useContext, useDebugValue, useDeferredValue, useEffect, useId, useImperativeHandle, useInsertionEffect, useLayoutEffect, useMemo, useOptimistic, useReducer, useRef, useState, useSyncExternalStore, useTransition, version };
|
|
126
|
+
export { BasisProvider, Children, Component, Fragment, Profiler, PureComponent, StrictMode, Suspense, __testEngine__, __test__, beginEffectTracking, cloneElement, config, configureBasis, createContext, createElement, createPortal, createRef, currentTickBatch, endEffectTracking, flushSync, forwardRef, history, isValidElement, lazy, memo, printBasisHealthReport, recordUpdate, registerVariable, startTransition, unregisterVariable, unstable_batchedUpdates, use, useActionState, useBasisConfig, useCallback, useContext, useDebugValue, useDeferredValue, useEffect, useId, useImperativeHandle, useInsertionEffect, useLayoutEffect, useMemo, useOptimistic, useReducer, useRef, useState, useSyncExternalStore, useTransition, version };
|
package/dist/index.js
CHANGED
|
@@ -64,6 +64,7 @@ __export(index_exports, {
|
|
|
64
64
|
registerVariable: () => registerVariable,
|
|
65
65
|
startTransition: () => startTransition2,
|
|
66
66
|
unregisterVariable: () => unregisterVariable,
|
|
67
|
+
unstable_batchedUpdates: () => unstable_batchedUpdates,
|
|
67
68
|
use: () => use,
|
|
68
69
|
useActionState: () => useActionState2,
|
|
69
70
|
useBasisConfig: () => useBasisConfig,
|
|
@@ -774,6 +775,7 @@ var version2 = ReactNamespace.version;
|
|
|
774
775
|
var RD = ReactDOMNamespace;
|
|
775
776
|
var createPortal = RD.createPortal;
|
|
776
777
|
var flushSync = RD.flushSync;
|
|
778
|
+
var unstable_batchedUpdates = RD.unstable_batchedUpdates;
|
|
777
779
|
var index_default = ReactNamespace;
|
|
778
780
|
// Annotate the CommonJS export names for ESM import in node:
|
|
779
781
|
0 && (module.exports = {
|
|
@@ -810,6 +812,7 @@ var index_default = ReactNamespace;
|
|
|
810
812
|
registerVariable,
|
|
811
813
|
startTransition,
|
|
812
814
|
unregisterVariable,
|
|
815
|
+
unstable_batchedUpdates,
|
|
813
816
|
use,
|
|
814
817
|
useActionState,
|
|
815
818
|
useBasisConfig,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/core/logger.ts","../src/core/math.ts","../src/core/constants.ts","../src/engine.ts","../src/context.tsx","../src/ui/BasisHUD.tsx","../src/ui/config.ts","../src/hooks.ts","../src/vite-plugin.ts"],"sourcesContent":["// src/index.ts\n\nimport * as ReactNamespace from 'react';\nimport * as ReactDOMNamespace from 'react-dom';\n\nimport { \n history, currentTickBatch, config, configureBasis, \n registerVariable, unregisterVariable, recordUpdate, \n printBasisHealthReport, beginEffectTracking, endEffectTracking, __testEngine__ \n} from './engine';\n\nimport { BasisProvider, useBasisConfig } from './context';\n\nimport { \n useState, useReducer, useMemo, useCallback, useEffect, \n useLayoutEffect, useRef, createContext, useContext, useId, \n useDebugValue, useImperativeHandle, useInsertionEffect, \n useSyncExternalStore, useTransition, useDeferredValue, __test__, \n use, useOptimistic, useActionState\n} from './hooks';\n\nexport { \n history, currentTickBatch, config, configureBasis, \n registerVariable, unregisterVariable, recordUpdate, \n printBasisHealthReport, beginEffectTracking, endEffectTracking, \n __testEngine__, BasisProvider, useBasisConfig, __test__ \n};\n\nexport { \n useState, useReducer, useMemo, useCallback, useEffect, \n useLayoutEffect, useRef, createContext, useContext, useId, \n useDebugValue, useImperativeHandle, useInsertionEffect,\n useSyncExternalStore, useTransition, useDeferredValue, use, useOptimistic, useActionState \n};\n\nexport const Children = ReactNamespace.Children;\nexport const Component = ReactNamespace.Component;\nexport const Fragment = ReactNamespace.Fragment;\nexport const Profiler = ReactNamespace.Profiler;\nexport const PureComponent = ReactNamespace.PureComponent;\nexport const StrictMode = ReactNamespace.StrictMode;\nexport const Suspense = ReactNamespace.Suspense;\nexport const cloneElement = ReactNamespace.cloneElement;\nexport const createElement = ReactNamespace.createElement;\nexport const createRef = ReactNamespace.createRef;\nexport const forwardRef = ReactNamespace.forwardRef;\nexport const isValidElement = ReactNamespace.isValidElement;\nexport const lazy = ReactNamespace.lazy;\nexport const memo = ReactNamespace.memo;\nexport const startTransition = ReactNamespace.startTransition;\nexport const version = ReactNamespace.version;\n\nconst RD: any = ReactDOMNamespace;\nexport const createPortal = RD.createPortal;\nexport const flushSync = RD.flushSync;\n\nexport { ReactNamespace as React };\nexport default ReactNamespace;\n\nexport { basis } from './vite-plugin';\n\nexport type {\n ReactNode, ReactElement, ReactPortal, FC, ComponentType,\n ComponentProps, ComponentPropsWithoutRef, ComponentPropsWithRef,\n ElementType, JSX, CSSProperties, Ref, RefObject, MutableRefObject,\n Dispatch, SetStateAction, Reducer, ChangeEvent, FormEvent,\n MouseEvent, KeyboardEvent, FocusEvent, PointerEvent, TouchEvent,\n DragEvent, SVGProps, InputHTMLAttributes, ButtonHTMLAttributes,\n AnchorHTMLAttributes, HTMLAttributes, HTMLProps, DetailedHTMLProps,\n PropsWithChildren, Attributes, Key, EffectCallback, DependencyList\n} from 'react';","// src/core/logger.ts\n\nconst isWeb = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n\nconst STYLES = {\n basis: \"background: #6c5ce7; color: white; font-weight: bold; padding: 2px 6px; border-radius: 3px;\",\n version: \"background: #a29bfe; color: #2d3436; padding: 2px 6px; border-radius: 3px; margin-left: -4px;\",\n\n headerRed: \"background: #d63031; color: white; font-weight: bold; padding: 4px 8px; border-radius: 4px;\",\n headerBlue: \"background: #0984e3; color: white; font-weight: bold; padding: 4px 8px; border-radius: 4px;\",\n headerGreen: \"background: #00b894; color: white; font-weight: bold; padding: 4px 8px; border-radius: 4px;\",\n\n label: \"background: #dfe6e9; color: #2d3436; padding: 0 4px; border-radius: 3px; font-family: monospace; font-weight: bold; border: 1px solid #b2bec3;\",\n location: \"color: #0984e3; font-family: monospace; font-weight: bold;\",\n math: \"color: #636e72; font-style: italic; font-family: serif;\",\n\n codeBlock: `\n background: #1e1e1e; \n color: #9cdcfe; \n padding: 8px 12px; \n display: block; \n margin: 4px 0; \n border-left: 3px solid #00b894; \n font-family: 'Fira Code', monospace; \n line-height: 1.4; \n border-radius: 0 3px 3px 0;\n `,\n\n dim: \"color: #e84393; font-weight: bold;\",\n bold: \"font-weight: bold;\"\n};\n\nconst parseLabel = (label: string) => {\n const parts = label.split(' -> ');\n return {\n file: parts[0] || \"Unknown\",\n name: parts[1] || label\n };\n};\n\nconst logBasis = (message: string, ...styles: string[]) => {\n if (isWeb) {\n console.log(message, ...styles);\n } else {\n console.log(message.replace(/%c/g, ''));\n }\n};\n\nexport const displayBootLog = (windowSize: number) => {\n logBasis(\n `%cBasis%cAuditor%c Monitoring State Space | Window: ${windowSize} ticks`,\n STYLES.basis,\n STYLES.version,\n \"color: #636e72; font-style: italic; margin-left: 8px;\"\n );\n};\n\nexport const displayRedundancyAlert = (labelA: string, labelB: string, sim: number, totalDimensions: number) => {\n const infoA = parseLabel(labelA);\n const infoB = parseLabel(labelB);\n const isCrossFile = infoA.file !== infoB.file;\n\n if (isWeb) {\n console.group(`%c š BASIS | DIMENSION COLLAPSE DETECTED `, STYLES.headerRed);\n console.log(`%cš Location: %c${isCrossFile ? `${infoA.file} & ${infoB.file}` : infoA.file}`, STYLES.bold, STYLES.location);\n console.log(\n `%cAnalysis:%c Vectors %c${infoA.name}%c and %c${infoB.name}%c are collinear (redundant).`,\n STYLES.bold, \"\", STYLES.label, \"\", STYLES.label, \"\"\n );\n console.log(\n `%cHow to fix:%c Project %c${infoB.name}%c as a derived value:\n%c// š ļø Basis Fix: Remove useState, use useMemo\nconst ${infoB.name} = useMemo(() => deriveFrom(${infoA.name}), [${infoA.name}]);%c`,\n \"color: #00b894; font-weight: bold;\", \"\",\n \"color: #e84393; font-weight: bold;\", \"\",\n STYLES.codeBlock, \"\"\n );\n console.groupCollapsed(`%c š¬ Proof Details `, \"color: #636e72; font-size: 10px; cursor: pointer;\");\n console.table({\n \"Similarity\": `${(sim * 100).toFixed(2)}%`,\n \"Linear Dependency\": \"TRUE\",\n \"Rank\": totalDimensions - 1\n });\n console.groupEnd();\n console.groupEnd();\n } else {\n console.log(`[BASIS] REDUNDANCY DETECTED: ${infoA.name} <-> ${infoB.name} (${(sim * 100).toFixed(0)}% similarity)`);\n console.log(`Location: ${isCrossFile ? `${infoA.file} & ${infoB.file}` : infoA.file}`);\n }\n};\n\nexport const displayCausalHint = (targetLabel: string, sourceLabel: string) => {\n const target = parseLabel(targetLabel);\n const source = parseLabel(sourceLabel);\n\n const isCrossFile = target.file !== source.file;\n const locationPath = isCrossFile\n ? `${source.file} ā ${target.file}`\n : target.file;\n\n if (isWeb) {\n console.groupCollapsed(`%c š” BASIS | CAUSALITY (Sequential Update) `, STYLES.headerBlue);\n console.log(`%cš Location: %c${locationPath}`, STYLES.bold, STYLES.location);\n console.log(\n `%cSequence:%c %c${source.name}%c ā Effect ā %c${target.name}%c`,\n STYLES.bold, \"\", STYLES.label, \"\", STYLES.label, \"\"\n );\n console.log(\n `%cObservation:%c Variable %c${target.name}%c is being manually synchronized. This creates a %c\"Double Render Cycle\"%c.`,\n STYLES.bold, \"\", STYLES.label, \"\", \"color: #d63031; font-weight: bold;\", \"\"\n );\n console.groupEnd();\n } else {\n console.log(`[BASIS] CAUSALITY: ${source.name} ā ${target.name} (Double Render Cycle)`);\n }\n};\n\nexport const displayInfiniteLoop = (label: string) => {\n const info = parseLabel(label);\n if (isWeb) {\n console.group(`%c š BASIS CRITICAL | CIRCUIT BREAKER `, STYLES.headerRed);\n console.error(\n `Infinite oscillation detected on: %c${info.name}%c\\nExecution halted to prevent browser thread lock.`,\n \"color: white; background: #d63031; padding: 2px 4px; border-radius: 3px;\", \"\"\n );\n console.groupEnd();\n } else {\n console.log(`[BASIS CRITICAL] INFINITE LOOP ON: ${info.name}. Execution halted.`);\n }\n};\n\nexport const displayHealthReport = (\n history: Map<string, number[]>,\n similarityFn: (A: number[], B: number[]) => number,\n threshold: number\n) => {\n const entries = Array.from(history.entries());\n const totalVars = entries.length;\n if (totalVars === 0) return;\n\n const clusters: string[][] = [];\n const processed = new Set<string>();\n let independentCount = 0;\n\n entries.forEach(([labelA, vecA]) => {\n if (processed.has(labelA)) return;\n const currentCluster = [labelA];\n processed.add(labelA);\n entries.forEach(([labelB, vecB]) => {\n if (labelA === labelB || processed.has(labelB)) return;\n const sim = similarityFn(vecA, vecB);\n if (sim > threshold) {\n currentCluster.push(labelB);\n processed.add(labelB);\n }\n });\n if (currentCluster.length > 1) {\n clusters.push(currentCluster);\n } else {\n independentCount++;\n }\n });\n\n const systemRank = independentCount + clusters.length;\n const efficiency = (systemRank / totalVars) * 100;\n\n if (isWeb) {\n console.group(`%c š BASIS | SYSTEM HEALTH REPORT `, STYLES.headerGreen);\n console.log(\n `%cBasis Efficiency: %c${efficiency.toFixed(1)}% %c(Rank: ${systemRank}/${totalVars})`,\n STYLES.bold,\n `color: ${efficiency > 85 ? '#00b894' : '#d63031'}; font-size: 16px; font-weight: bold;`,\n \"color: #636e72; font-style: italic;\"\n );\n\n if (clusters.length > 0) {\n console.log(`%cDetected ${clusters.length} Redundancy Clusters:`, \"font-weight: bold; color: #e17055; margin-top: 10px;\");\n clusters.forEach((cluster, idx) => {\n const names = cluster.map(l => parseLabel(l).name).join(' ā· ');\n console.log(` %c${idx + 1}%c ${names}`, \"background: #e17055; color: white; border-radius: 50%; padding: 0 5px;\", \"font-family: monospace;\");\n });\n } else {\n console.log(\"%c⨠All state variables are linearly independent. Your Basis is optimal.\", \"color: #00b894; font-weight: bold; margin-top: 10px;\");\n }\n\n if (totalVars > 0 && totalVars < 15) {\n console.groupCollapsed(\"%cView Full Correlation Matrix\", \"color: #636e72; font-size: 11px;\");\n const matrix: any = {};\n entries.forEach(([labelA]) => {\n const nameA = parseLabel(labelA).name;\n matrix[nameA] = {};\n entries.forEach(([labelB]) => {\n const nameB = parseLabel(labelB).name;\n const sim = similarityFn(history.get(labelA)!, history.get(labelB)!);\n matrix[nameA][nameB] = sim > threshold ? `ā ${(sim * 100).toFixed(0)}%` : `ā
`;\n });\n });\n console.table(matrix);\n console.groupEnd();\n }\n console.groupEnd();\n } else {\n console.log(`[BASIS HEALTH] Efficiency: ${efficiency.toFixed(1)}% (Rank: ${systemRank}/${totalVars})`);\n if (clusters.length > 0) {\n console.log(`Redundancy Clusters: ${clusters.length}`);\n }\n }\n};","// src/core/math.ts\n\nexport const calculateCosineSimilarity = (A: number[], B: number[]): number => {\n let dot = 0, magA = 0, magB = 0;\n for (let i = 0; i < A.length; i++) {\n dot += A[i] * B[i];\n magA += A[i] * A[i];\n magB += B[i] * B[i];\n }\n return magA && magB ? dot / (Math.sqrt(magA) * Math.sqrt(magB)) : 0;\n};","// src/core/constants.ts\n\nexport const WINDOW_SIZE = 50;\nexport const SIMILARITY_THRESHOLD = 0.88;\nexport const LOOP_THRESHOLD = 25;\nexport const LOOP_WINDOW_MS = 500;\nexport const ANALYSIS_INTERVAL = 5;","import * as UI from './core/logger';\nimport { calculateCosineSimilarity } from './core/math';\nimport { \n WINDOW_SIZE, \n SIMILARITY_THRESHOLD, \n LOOP_THRESHOLD, \n LOOP_WINDOW_MS, \n ANALYSIS_INTERVAL \n} from './core/constants';\n\ninterface BasisEngineState {\n config: { debug: boolean };\n history: Map<string, number[]>;\n currentTickBatch: Set<string>;\n redundantLabels: Set<string>;\n booted: boolean;\n updateLog: { label: string; ts: number }[];\n tick: number;\n isBatching: boolean;\n currentEffectSource: string | null;\n}\n\nconst GLOBAL_KEY = '__BASIS_ENGINE_INSTANCE__';\n\nconst getGlobalInstance = (): BasisEngineState => {\n const g = (typeof window !== 'undefined' ? window : global) as any;\n if (!g[GLOBAL_KEY]) {\n g[GLOBAL_KEY] = {\n config: { debug: false },\n history: new Map<string, number[]>(),\n currentTickBatch: new Set<string>(),\n redundantLabels: new Set<string>(),\n booted: false,\n updateLog: [],\n tick: 0,\n isBatching: false,\n currentEffectSource: null\n };\n }\n return g[GLOBAL_KEY];\n};\n\nconst instance = getGlobalInstance();\n\nexport const config = instance.config;\nexport const history = instance.history;\nexport const currentTickBatch = instance.currentTickBatch;\nexport const redundantLabels = instance.redundantLabels;\n\nexport const configureBasis = (newConfig: Partial<{ debug: boolean }>) => {\n Object.assign(instance.config, newConfig);\n\n if (instance.config.debug && !instance.booted) {\n UI.displayBootLog(WINDOW_SIZE);\n instance.booted = true;\n }\n};\n\nconst analyzeBasis = () => {\n if (!instance.config.debug) {\n instance.redundantLabels.clear();\n return;\n }\n\n const entries = Array.from(instance.history.entries());\n if (entries.length < 2) return;\n\n const newRedundant = new Set<string>();\n\n entries.forEach(([labelA, vecA], i) => {\n entries.slice(i + 1).forEach(([labelB, vecB]) => {\n const sim = calculateCosineSimilarity(vecA, vecB);\n \n if (sim > SIMILARITY_THRESHOLD) {\n newRedundant.add(labelA);\n newRedundant.add(labelB);\n UI.displayRedundancyAlert(labelA, labelB, sim, instance.history.size);\n }\n });\n });\n\n instance.redundantLabels.clear();\n newRedundant.forEach(label => instance.redundantLabels.add(label));\n};\n\nexport const recordUpdate = (label: string): boolean => {\n if (!instance.config.debug) return true;\n\n const now = Date.now();\n\n // CIRCUIT BREAKER\n instance.updateLog.push({ label, ts: now });\n instance.updateLog = instance.updateLog.filter(e => now - e.ts < LOOP_WINDOW_MS);\n \n if (instance.updateLog.filter(e => e.label === label).length > LOOP_THRESHOLD) {\n UI.displayInfiniteLoop(label);\n return false;\n }\n\n // CAUSAL HINT\n if (instance.currentEffectSource && instance.currentEffectSource !== label) {\n UI.displayCausalHint(label, instance.currentEffectSource);\n }\n\n // BATCHING (20ms)\n instance.currentTickBatch.add(label);\n\n if (!instance.isBatching) {\n instance.isBatching = true;\n setTimeout(() => {\n instance.tick++;\n \n instance.history.forEach((vec, l) => {\n vec.shift();\n vec.push(instance.currentTickBatch.has(l) ? 1 : 0);\n });\n\n instance.currentTickBatch.clear();\n instance.isBatching = false;\n \n if (instance.tick % ANALYSIS_INTERVAL === 0) {\n analyzeBasis();\n }\n }, 20);\n }\n\n return true;\n};\n\n// LIFECYCLE \nexport const beginEffectTracking = (label: string) => { \n if (instance.config.debug) instance.currentEffectSource = label; \n};\n\nexport const endEffectTracking = () => { \n instance.currentEffectSource = null; \n};\n\nexport const registerVariable = (label: string) => {\n if (!instance.config.debug) return; \n\n if (!instance.history.has(label)) {\n instance.history.set(label, new Array(WINDOW_SIZE).fill(0));\n }\n};\n\nexport const unregisterVariable = (label: string) => {\n instance.history.delete(label);\n};\n\nexport const printBasisHealthReport = (threshold = 0.5) => {\n if (!instance.config.debug) {\n console.warn(\"[Basis] Cannot generate report. Debug mode is OFF.\");\n return;\n }\n UI.displayHealthReport(instance.history, calculateCosineSimilarity, threshold);\n};\n\nif (typeof window !== 'undefined') {\n (window as any).printBasisReport = printBasisHealthReport;\n}\n\nexport const __testEngine__ = {\n instance,\n config: instance.config,\n history: instance.history,\n currentTickBatch: instance.currentTickBatch,\n configureBasis,\n registerVariable,\n recordUpdate,\n printBasisHealthReport,\n beginEffectTracking,\n endEffectTracking,\n};","// src/context.tsx\n\nimport React, { createContext, useContext, ReactNode, useLayoutEffect } from 'react';\nimport { configureBasis } from './engine';\nimport { BasisHUD } from './ui/BasisHUD';\n\nconst BasisContext = createContext({ debug: false });\nconst isWeb = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n\ninterface BasisProviderProps {\n children: ReactNode;\n debug?: boolean;\n}\n\nexport const BasisProvider: React.FC<BasisProviderProps> = ({ children, debug = true }) => {\n useLayoutEffect(() => {\n configureBasis({ debug });\n if (isWeb) {\n (window as any)._basis_debug = debug;\n }\n }, [debug]);\n\n return (\n <BasisContext.Provider value={{ debug }}>\n {children}\n {(debug && isWeb) && <BasisHUD />}\n </BasisContext.Provider>\n );\n};\n\nexport const useBasisConfig = () => useContext(BasisContext);","// src/ui/BasisHUD.tsx\n\nimport React, { useEffect, useRef, useState } from 'react';\nimport { history, redundantLabels } from '../engine';\nimport { HUD_DIMENSIONS as DIM, getHUDContainerStyle, HUD_THEME as THEME } from './config';\n\nexport const BasisHUD: React.FC = () => {\n const [isExpanded, setIsExpanded] = useState(false);\n const canvasRef = useRef<HTMLCanvasElement>(null);\n\n useEffect(() => {\n if (!isExpanded) return;\n\n let animationFrame: number;\n\n const draw = () => {\n const canvas = canvasRef.current;\n if (!canvas) return;\n const ctx = canvas.getContext('2d');\n if (!ctx) return;\n\n const entries = Array.from(history.entries());\n const dpr = window.devicePixelRatio || 1;\n\n const rawWidth = (DIM.WINDOW_SIZE * DIM.COL_WIDTH) + DIM.LABEL_WIDTH + (DIM.PADDING * 2);\n const rawHeight = Math.max(entries.length * DIM.ROW_HEIGHT + (DIM.PADDING * 2), 60);\n\n updateCanvasSize(canvas, rawWidth, rawHeight, dpr);\n\n ctx.save();\n ctx.scale(dpr, dpr);\n ctx.clearRect(0, 0, rawWidth, rawHeight);\n\n if (entries.length === 0) {\n renderEmptyState(ctx);\n } else {\n renderMatrix(ctx, entries);\n }\n\n ctx.restore();\n animationFrame = requestAnimationFrame(draw);\n };\n\n draw();\n return () => cancelAnimationFrame(animationFrame);\n }, [isExpanded]);\n\n return (\n <div style={getHUDContainerStyle(isExpanded)} onClick={() => setIsExpanded(!isExpanded)}>\n <HUDHeader isExpanded={isExpanded} />\n {isExpanded && (\n <div style={{ padding: '10px 14px 15px 14px' }}>\n <canvas ref={canvasRef} style={{ display: 'block' }} />\n <HUDFooter />\n </div>\n )}\n </div>\n );\n};\n\nfunction updateCanvasSize(canvas: HTMLCanvasElement, w: number, h: number, dpr: number) {\n const targetW = Math.floor(w * dpr);\n const targetH = Math.floor(h * dpr);\n if (canvas.width !== targetW || canvas.height !== targetH) {\n canvas.width = targetW;\n canvas.height = targetH;\n canvas.style.width = `${w}px`;\n canvas.style.height = `${h}px`;\n }\n}\n\nfunction renderEmptyState(ctx: CanvasRenderingContext2D) {\n ctx.fillStyle = THEME.textDim;\n ctx.font = '11px Inter, sans-serif';\n ctx.fillText('Waiting for state transitions...', DIM.PADDING, 30);\n}\n\nfunction renderMatrix(ctx: CanvasRenderingContext2D, entries: [string, number[]][]) {\n entries.forEach(([label, vector], rowIndex) => {\n const y = rowIndex * DIM.ROW_HEIGHT + DIM.PADDING;\n const stateName = label.split(' -> ')[1] || label;\n const isRedundant = redundantLabels.has(label);\n\n vector.forEach((bit, colIndex) => {\n const x = colIndex * DIM.COL_WIDTH + DIM.PADDING;\n ctx.fillStyle = bit === 1 ? (isRedundant ? THEME.error : THEME.success) : THEME.grid;\n\n const w = DIM.COL_WIDTH - 1.5;\n const h = DIM.ROW_HEIGHT - 4;\n\n if (ctx.roundRect) {\n ctx.beginPath();\n ctx.roundRect(x, y, w, h, DIM.RADIUS);\n ctx.fill();\n } else {\n ctx.fillRect(x, y, w, h);\n }\n });\n\n const textX = (DIM.WINDOW_SIZE * DIM.COL_WIDTH) + DIM.PADDING + 10;\n ctx.fillStyle = isRedundant ? THEME.error : THEME.text;\n ctx.font = `${isRedundant ? '600' : '400'} 11px Inter, Menlo, monospace`;\n \n const cleanName = isRedundant ? `! ${stateName}` : stateName;\n const truncatedName = cleanName.length > 18 ? cleanName.substring(0, 16) + '..' : cleanName;\n ctx.fillText(truncatedName, textX, y + 9);\n });\n}\n\nconst HUDHeader: React.FC<{ isExpanded: boolean }> = ({ isExpanded }) => (\n <div style={{ \n padding: '10px 14px', \n backgroundColor: isExpanded ? THEME.header : 'transparent', \n color: isExpanded ? 'white' : THEME.header,\n fontWeight: 600, fontSize: '11px', letterSpacing: '0.05em',\n display: 'flex', justifyContent: 'space-between', alignItems: 'center',\n transition: 'background 0.3s'\n }}>\n <span>{isExpanded ? 'STATE BASIS MATRIX' : 'š BASIS ACTIVE'}</span>\n {isExpanded && <span style={{ opacity: 0.8, fontSize: '9px' }}>R50</span>}\n </div>\n);\n\nconst HUDFooter: React.FC = () => (\n <div style={{ \n marginTop: '12px', paddingTop: '8px', borderTop: `1px solid ${THEME.grid}`,\n color: THEME.textDim, fontSize: '9px', display: 'flex', justifyContent: 'space-between'\n }}>\n <span>LINEAR DEPENDENCY AUDIT</span>\n <span>THRESHOLD 0.88</span>\n </div>\n);\n","// src/ui/config.ts\n\nimport { WINDOW_SIZE } from '../core/constants';\n\nexport const HUD_DIMENSIONS = {\n WINDOW_SIZE,\n ROW_HEIGHT: 16,\n COL_WIDTH: 5,\n LABEL_WIDTH: 100,\n PADDING: 10,\n RADIUS: 1.5,\n};\n\nexport const HUD_THEME = {\n bg: 'rgba(15, 23, 42, 0.95)',\n border: '#334155',\n header: '#8b5cf6',\n text: '#f1f5f9',\n textDim: '#94a3b8',\n success: '#10b981',\n error: '#ef4444',\n grid: '#1e293b',\n};\n\nexport const getHUDContainerStyle = (isExpanded: boolean): React.CSSProperties => ({\n position: 'fixed',\n bottom: '20px',\n right: '20px',\n backgroundColor: HUD_THEME.bg,\n border: `1px solid ${HUD_THEME.border}`,\n borderRadius: '12px',\n backdropFilter: 'blur(8px)',\n boxShadow: '0 10px 25px -5px rgba(0, 0, 0, 0.3), 0 8px 10px -6px rgba(0, 0, 0, 0.3)',\n zIndex: 999999,\n overflow: 'hidden',\n width: isExpanded ? '380px' : '130px',\n transition: 'all 0.3s cubic-bezier(0.4, 0, 0.2, 1)',\n cursor: 'pointer',\n userSelect: 'none',\n WebkitUserSelect: 'none'\n});","// src/hooks.ts\nimport * as React from 'react';\nimport {\n useState as reactUseState,\n useEffect as reactUseEffect,\n useMemo as reactUseMemo,\n useReducer as reactUseReducer,\n useContext as reactUseContext,\n useSyncExternalStore as reactUseSyncExternalStore, \n createContext as reactCreateContext,\n useRef as reactUseRef,\n useLayoutEffect as reactUseLayoutEffect,\n useCallback as reactUseCallback,\n useTransition as reactUseTransition,\n useDeferredValue as reactUseDeferredValue,\n use as reactUse,\n useOptimistic as reactUseOptimistic,\n useActionState as reactUseActionState\n} from 'react';\n\nimport { registerVariable, unregisterVariable, recordUpdate, beginEffectTracking, endEffectTracking, config } from './engine';\nimport * as engine from './engine';\n\ntype GetReducerState<R extends React.Reducer<any, any>> = R extends React.Reducer<infer S, any> ? S : never;\ntype GetReducerAction<R extends React.Reducer<any, any>> = R extends React.Reducer<any, infer A> ? A : never;\n\nexport function useState<S>(initialState: S | (() => S), label?: string): [S, React.Dispatch<React.SetStateAction<S>>] {\n const [val, setVal] = reactUseState(initialState);\n const effectiveLabel = label || 'anonymous_state';\n reactUseEffect(() => { registerVariable(effectiveLabel); return () => unregisterVariable(effectiveLabel); }, [effectiveLabel]);\n const setter = reactUseCallback((newValue: any) => { if (recordUpdate(effectiveLabel)) setVal(newValue); }, [effectiveLabel, setVal]);\n return [val, setter];\n}\n\nexport function useRef<T>(initialValue: T): React.RefObject<T>;\nexport function useRef<T>(initialValue: T | null): React.RefObject<T>;\nexport function useRef<T = undefined>(): React.MutableRefObject<T | undefined>;\nexport function useRef<T>(initialValue?: T, _label?: string): any { return reactUseRef(initialValue); }\n\nexport function useReducer<R extends React.Reducer<any, any>, I>(reducer: R, initialArg: I, init?: any, label?: string): [GetReducerState<R>, React.Dispatch<GetReducerAction<R>>] {\n const effectiveLabel = typeof init === 'string' ? init : (label || 'anonymous_reducer');\n const reactInit = typeof init === 'function' ? init : undefined;\n const [state, dispatch] = reactUseReducer(reducer, initialArg, reactInit);\n reactUseEffect(() => { registerVariable(effectiveLabel); return () => unregisterVariable(effectiveLabel); }, [effectiveLabel]);\n const basisDispatch = reactUseCallback((action: any) => { if (recordUpdate(effectiveLabel)) dispatch(action); }, [effectiveLabel, dispatch]);\n return [state, basisDispatch] as any;\n}\n\nexport function useMemo<T>(factory: () => T, deps: React.DependencyList | undefined, label?: string): T {\n const effectiveLabel = label || 'anonymous_projection';\n reactUseEffect(() => { if (config.debug) console.log(`%c [Basis] Valid Projection: \"${effectiveLabel}\" `, \"color: #2ecc71; font-weight: bold;\"); }, [effectiveLabel]);\n return reactUseMemo(factory, deps || []);\n}\n\nexport function useCallback<T extends (...args: any[]) => any>(callback: T, deps: React.DependencyList, label?: string): T {\n const effectiveLabel = label || 'anonymous_callback';\n reactUseEffect(() => { if (config.debug) console.log(`%c [Basis] Stable Callback: \"${effectiveLabel}\" `, \"color: #2ecc71; font-weight: bold;\"); }, [effectiveLabel]);\n return reactUseCallback(callback, deps);\n}\n\nexport function useEffect(effect: React.EffectCallback, deps?: React.DependencyList, label?: string) {\n const effectiveLabel = label || 'anonymous_effect';\n reactUseEffect(() => { beginEffectTracking(effectiveLabel); const cleanup = effect(); endEffectTracking(); return cleanup; }, deps);\n}\n\nexport function useLayoutEffect(effect: React.EffectCallback, deps?: React.DependencyList, label?: string) {\n const effectiveLabel = label || 'anonymous_layout_effect';\n reactUseLayoutEffect(() => { beginEffectTracking(effectiveLabel); const cleanup = effect(); endEffectTracking(); return cleanup; }, deps);\n}\n\nexport function useTransition(_label?: string): [boolean, (callback: () => void) => void] {\n const [isPending, startTransition] = reactUseTransition();\n const effectiveLabel = _label || 'anonymous_transition';\n const basisStartTransition = (callback: () => void) => {\n if (config.debug) console.log(`%c [Basis] Transition Started: \"${effectiveLabel}\" `, \"color: #e67e22; font-weight: bold;\");\n startTransition(callback);\n };\n return [isPending, basisStartTransition];\n}\n\nexport function useDeferredValue<T>(value: T, initialValueOrLabel?: T | string, label?: string): T {\n const isLabelAsSecondArg = typeof initialValueOrLabel === 'string' && label === undefined;\n const actualInitialValue = isLabelAsSecondArg ? undefined : initialValueOrLabel as T;\n const effectiveLabel = isLabelAsSecondArg ? (initialValueOrLabel as string) : (label || 'anonymous_deferred');\n const deferredValue = reactUseDeferredValue(value, actualInitialValue);\n reactUseEffect(() => { if (config.debug && value !== deferredValue) console.log(`%c [Basis] Value Deferred: \"${effectiveLabel}\" `, \"color: #e67e22; font-weight: bold;\"); }, [value, deferredValue, effectiveLabel]);\n return deferredValue;\n}\n\nexport function createContext<T>(defaultValue: T, label?: string): React.Context<T> {\n const context = reactCreateContext(defaultValue);\n if (label) (context as any)._basis_label = label;\n return context;\n}\n\nexport const useContext = reactUseContext;\nexport const useId = (label?: string) => React.useId();\nexport const useDebugValue = React.useDebugValue;\nexport const useImperativeHandle = React.useImperativeHandle;\nexport const useInsertionEffect = React.useInsertionEffect;\nexport const useSyncExternalStore = (reactUseSyncExternalStore as any);\n\nexport function use<T>(usable: React.Usable<T>): T {\n return reactUse(usable);\n}\n\nexport function useOptimistic<S, P>(\n passthrough: S,\n reducer?: (state: S, payload: P) => S,\n label?: string\n): [S, (payload: P) => void] {\n const effectiveLabel = label || 'anonymous_optimistic';\n \n reactUseEffect(() => {\n registerVariable(effectiveLabel);\n return () => unregisterVariable(effectiveLabel);\n }, [effectiveLabel]);\n\n const [state, reactAddOptimistic] = (React as any).useOptimistic(passthrough, reducer) as [S, (p: P) => void];\n\n const addOptimistic = reactUseCallback((payload: P) => {\n if (recordUpdate(effectiveLabel)) {\n reactAddOptimistic(payload);\n }\n }, [effectiveLabel, reactAddOptimistic]);\n\n return [state, addOptimistic];\n}\n\nexport function useActionState<State, Payload>(\n action: (state: State, payload: Payload) => Promise<State> | State,\n initialState: State,\n permalink?: string,\n label?: string\n): [state: State, dispatch: (payload: Payload) => void, isPending: boolean] {\n \n const isLabelAsThirdArg = typeof permalink === 'string' && label === undefined;\n const actualPermalink = isLabelAsThirdArg ? undefined : permalink;\n const effectiveLabel = isLabelAsThirdArg ? (permalink as string) : (label || 'anonymous_action_state');\n\n const [state, reactDispatch, isPending] = (React as any).useActionState(\n action, \n initialState, \n actualPermalink\n ) as [State, (p: Payload) => void, boolean];\n\n reactUseEffect(() => {\n registerVariable(effectiveLabel);\n return () => unregisterVariable(effectiveLabel);\n }, [effectiveLabel]);\n\n const basisDispatch = reactUseCallback((payload: Payload) => {\n if (recordUpdate(effectiveLabel)) {\n reactDispatch(payload);\n }\n }, [effectiveLabel, reactDispatch]);\n\n return [state, basisDispatch, isPending];\n}\n\nexport const __test__ = { registerVariable, unregisterVariable, recordUpdate, beginEffectTracking, endEffectTracking, history: (engine as any).history, currentTickBatch: (engine as any).currentTickBatch };","// src/vite-plugin.ts\n\nimport type { Plugin } from 'vite';\n\nexport function basis(): Plugin {\n return {\n name: 'vite-plugin-react-state-basis',\n enforce: 'pre',\n\n resolveId(source, importer) {\n if (source === 'react' || source === 'react-dom' || source === 'react-dom/client') {\n \n const isLibraryCore = importer && (\n (importer.includes('react-state-basis/src') || importer.includes('react-state-basis/dist')) &&\n !importer.includes('react-state-basis/example')\n );\n\n const isYalc = importer && importer.includes('.yalc');\n\n if (isLibraryCore || isYalc) {\n return null;\n }\n\n const mapping: Record<string, string> = {\n 'react': 'react-state-basis',\n 'react-dom': 'react-state-basis',\n 'react-dom/client': 'react-state-basis/client'\n };\n\n return this.resolve(mapping[source], importer, { skipSelf: true });\n }\n return null;\n }\n };\n}"],"mappings":"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","names":["Children","Component","Fragment","Profiler","PureComponent","StrictMode","Suspense","cloneElement","createContext","createElement","createRef","forwardRef","isValidElement","lazy","memo","startTransition","useActionState","useContext","useDebugValue","useEffect","useId","useImperativeHandle","useInsertionEffect","useLayoutEffect","useOptimistic","useRef","useState","version","history","import_react","import_jsx_runtime","isWeb","React","import_react","useState","reactUseState","reactUseEffect","reactUseCallback","useRef","reactUseRef","reactUseReducer","reactUseMemo","useEffect","useLayoutEffect","reactUseLayoutEffect","startTransition","reactUseTransition","reactUseDeferredValue","createContext","reactCreateContext","useContext","reactUseContext","useId","useDebugValue","useImperativeHandle","useInsertionEffect","reactUseSyncExternalStore","reactUse","useOptimistic","useActionState","Children","Component","Fragment","Profiler","PureComponent","StrictMode","Suspense","cloneElement","createElement","createRef","forwardRef","isValidElement","lazy","memo","startTransition","version"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/core/logger.ts","../src/core/math.ts","../src/core/constants.ts","../src/engine.ts","../src/context.tsx","../src/ui/BasisHUD.tsx","../src/ui/config.ts","../src/hooks.ts","../src/vite-plugin.ts"],"sourcesContent":["// src/index.ts\n\nimport * as ReactNamespace from 'react';\nimport * as ReactDOMNamespace from 'react-dom';\n\nimport { \n history, currentTickBatch, config, configureBasis, \n registerVariable, unregisterVariable, recordUpdate, \n printBasisHealthReport, beginEffectTracking, endEffectTracking, __testEngine__ \n} from './engine';\n\nimport { BasisProvider, useBasisConfig } from './context';\n\nimport { \n useState, useReducer, useMemo, useCallback, useEffect, \n useLayoutEffect, useRef, createContext, useContext, useId, \n useDebugValue, useImperativeHandle, useInsertionEffect, \n useSyncExternalStore, useTransition, useDeferredValue, __test__, \n use, useOptimistic, useActionState\n} from './hooks';\n\nexport { \n history, currentTickBatch, config, configureBasis, \n registerVariable, unregisterVariable, recordUpdate, \n printBasisHealthReport, beginEffectTracking, endEffectTracking, \n __testEngine__, BasisProvider, useBasisConfig, __test__ \n};\n\nexport { \n useState, useReducer, useMemo, useCallback, useEffect, \n useLayoutEffect, useRef, createContext, useContext, useId, \n useDebugValue, useImperativeHandle, useInsertionEffect,\n useSyncExternalStore, useTransition, useDeferredValue, use, useOptimistic, useActionState \n};\n\nexport const Children = ReactNamespace.Children;\nexport const Component = ReactNamespace.Component;\nexport const Fragment = ReactNamespace.Fragment;\nexport const Profiler = ReactNamespace.Profiler;\nexport const PureComponent = ReactNamespace.PureComponent;\nexport const StrictMode = ReactNamespace.StrictMode;\nexport const Suspense = ReactNamespace.Suspense;\nexport const cloneElement = ReactNamespace.cloneElement;\nexport const createElement = ReactNamespace.createElement;\nexport const createRef = ReactNamespace.createRef;\nexport const forwardRef = ReactNamespace.forwardRef;\nexport const isValidElement = ReactNamespace.isValidElement;\nexport const lazy = ReactNamespace.lazy;\nexport const memo = ReactNamespace.memo;\nexport const startTransition = ReactNamespace.startTransition;\nexport const version = ReactNamespace.version;\n\nconst RD: any = ReactDOMNamespace;\nexport const createPortal = RD.createPortal;\nexport const flushSync = RD.flushSync;\nexport const unstable_batchedUpdates = RD.unstable_batchedUpdates;\n\nexport { ReactNamespace as React };\nexport default ReactNamespace;\n\nexport { basis } from './vite-plugin';\n\nexport type {\n ReactNode, ReactElement, ReactPortal, FC, ComponentType,\n ComponentProps, ComponentPropsWithoutRef, ComponentPropsWithRef,\n ElementType, JSX, CSSProperties, Ref, RefObject, MutableRefObject,\n Dispatch, SetStateAction, Reducer, ChangeEvent, FormEvent,\n MouseEvent, KeyboardEvent, FocusEvent, PointerEvent, TouchEvent,\n DragEvent, SVGProps, InputHTMLAttributes, ButtonHTMLAttributes,\n AnchorHTMLAttributes, HTMLAttributes, HTMLProps, DetailedHTMLProps,\n PropsWithChildren, Attributes, Key, EffectCallback, DependencyList\n} from 'react';","// src/core/logger.ts\n\nconst isWeb = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n\nconst STYLES = {\n basis: \"background: #6c5ce7; color: white; font-weight: bold; padding: 2px 6px; border-radius: 3px;\",\n version: \"background: #a29bfe; color: #2d3436; padding: 2px 6px; border-radius: 3px; margin-left: -4px;\",\n\n headerRed: \"background: #d63031; color: white; font-weight: bold; padding: 4px 8px; border-radius: 4px;\",\n headerBlue: \"background: #0984e3; color: white; font-weight: bold; padding: 4px 8px; border-radius: 4px;\",\n headerGreen: \"background: #00b894; color: white; font-weight: bold; padding: 4px 8px; border-radius: 4px;\",\n\n label: \"background: #dfe6e9; color: #2d3436; padding: 0 4px; border-radius: 3px; font-family: monospace; font-weight: bold; border: 1px solid #b2bec3;\",\n location: \"color: #0984e3; font-family: monospace; font-weight: bold;\",\n math: \"color: #636e72; font-style: italic; font-family: serif;\",\n\n codeBlock: `\n background: #1e1e1e; \n color: #9cdcfe; \n padding: 8px 12px; \n display: block; \n margin: 4px 0; \n border-left: 3px solid #00b894; \n font-family: 'Fira Code', monospace; \n line-height: 1.4; \n border-radius: 0 3px 3px 0;\n `,\n\n dim: \"color: #e84393; font-weight: bold;\",\n bold: \"font-weight: bold;\"\n};\n\nconst parseLabel = (label: string) => {\n const parts = label.split(' -> ');\n return {\n file: parts[0] || \"Unknown\",\n name: parts[1] || label\n };\n};\n\nconst logBasis = (message: string, ...styles: string[]) => {\n if (isWeb) {\n console.log(message, ...styles);\n } else {\n console.log(message.replace(/%c/g, ''));\n }\n};\n\nexport const displayBootLog = (windowSize: number) => {\n logBasis(\n `%cBasis%cAuditor%c Monitoring State Space | Window: ${windowSize} ticks`,\n STYLES.basis,\n STYLES.version,\n \"color: #636e72; font-style: italic; margin-left: 8px;\"\n );\n};\n\nexport const displayRedundancyAlert = (labelA: string, labelB: string, sim: number, totalDimensions: number) => {\n const infoA = parseLabel(labelA);\n const infoB = parseLabel(labelB);\n const isCrossFile = infoA.file !== infoB.file;\n\n if (isWeb) {\n console.group(`%c š BASIS | DIMENSION COLLAPSE DETECTED `, STYLES.headerRed);\n console.log(`%cš Location: %c${isCrossFile ? `${infoA.file} & ${infoB.file}` : infoA.file}`, STYLES.bold, STYLES.location);\n console.log(\n `%cAnalysis:%c Vectors %c${infoA.name}%c and %c${infoB.name}%c are collinear (redundant).`,\n STYLES.bold, \"\", STYLES.label, \"\", STYLES.label, \"\"\n );\n console.log(\n `%cHow to fix:%c Project %c${infoB.name}%c as a derived value:\n%c// š ļø Basis Fix: Remove useState, use useMemo\nconst ${infoB.name} = useMemo(() => deriveFrom(${infoA.name}), [${infoA.name}]);%c`,\n \"color: #00b894; font-weight: bold;\", \"\",\n \"color: #e84393; font-weight: bold;\", \"\",\n STYLES.codeBlock, \"\"\n );\n console.groupCollapsed(`%c š¬ Proof Details `, \"color: #636e72; font-size: 10px; cursor: pointer;\");\n console.table({\n \"Similarity\": `${(sim * 100).toFixed(2)}%`,\n \"Linear Dependency\": \"TRUE\",\n \"Rank\": totalDimensions - 1\n });\n console.groupEnd();\n console.groupEnd();\n } else {\n console.log(`[BASIS] REDUNDANCY DETECTED: ${infoA.name} <-> ${infoB.name} (${(sim * 100).toFixed(0)}% similarity)`);\n console.log(`Location: ${isCrossFile ? `${infoA.file} & ${infoB.file}` : infoA.file}`);\n }\n};\n\nexport const displayCausalHint = (targetLabel: string, sourceLabel: string) => {\n const target = parseLabel(targetLabel);\n const source = parseLabel(sourceLabel);\n\n const isCrossFile = target.file !== source.file;\n const locationPath = isCrossFile\n ? `${source.file} ā ${target.file}`\n : target.file;\n\n if (isWeb) {\n console.groupCollapsed(`%c š” BASIS | CAUSALITY (Sequential Update) `, STYLES.headerBlue);\n console.log(`%cš Location: %c${locationPath}`, STYLES.bold, STYLES.location);\n console.log(\n `%cSequence:%c %c${source.name}%c ā Effect ā %c${target.name}%c`,\n STYLES.bold, \"\", STYLES.label, \"\", STYLES.label, \"\"\n );\n console.log(\n `%cObservation:%c Variable %c${target.name}%c is being manually synchronized. This creates a %c\"Double Render Cycle\"%c.`,\n STYLES.bold, \"\", STYLES.label, \"\", \"color: #d63031; font-weight: bold;\", \"\"\n );\n console.groupEnd();\n } else {\n console.log(`[BASIS] CAUSALITY: ${source.name} ā ${target.name} (Double Render Cycle)`);\n }\n};\n\nexport const displayInfiniteLoop = (label: string) => {\n const info = parseLabel(label);\n if (isWeb) {\n console.group(`%c š BASIS CRITICAL | CIRCUIT BREAKER `, STYLES.headerRed);\n console.error(\n `Infinite oscillation detected on: %c${info.name}%c\\nExecution halted to prevent browser thread lock.`,\n \"color: white; background: #d63031; padding: 2px 4px; border-radius: 3px;\", \"\"\n );\n console.groupEnd();\n } else {\n console.log(`[BASIS CRITICAL] INFINITE LOOP ON: ${info.name}. Execution halted.`);\n }\n};\n\nexport const displayHealthReport = (\n history: Map<string, number[]>,\n similarityFn: (A: number[], B: number[]) => number,\n threshold: number\n) => {\n const entries = Array.from(history.entries());\n const totalVars = entries.length;\n if (totalVars === 0) return;\n\n const clusters: string[][] = [];\n const processed = new Set<string>();\n let independentCount = 0;\n\n entries.forEach(([labelA, vecA]) => {\n if (processed.has(labelA)) return;\n const currentCluster = [labelA];\n processed.add(labelA);\n entries.forEach(([labelB, vecB]) => {\n if (labelA === labelB || processed.has(labelB)) return;\n const sim = similarityFn(vecA, vecB);\n if (sim > threshold) {\n currentCluster.push(labelB);\n processed.add(labelB);\n }\n });\n if (currentCluster.length > 1) {\n clusters.push(currentCluster);\n } else {\n independentCount++;\n }\n });\n\n const systemRank = independentCount + clusters.length;\n const efficiency = (systemRank / totalVars) * 100;\n\n if (isWeb) {\n console.group(`%c š BASIS | SYSTEM HEALTH REPORT `, STYLES.headerGreen);\n console.log(\n `%cBasis Efficiency: %c${efficiency.toFixed(1)}% %c(Rank: ${systemRank}/${totalVars})`,\n STYLES.bold,\n `color: ${efficiency > 85 ? '#00b894' : '#d63031'}; font-size: 16px; font-weight: bold;`,\n \"color: #636e72; font-style: italic;\"\n );\n\n if (clusters.length > 0) {\n console.log(`%cDetected ${clusters.length} Redundancy Clusters:`, \"font-weight: bold; color: #e17055; margin-top: 10px;\");\n clusters.forEach((cluster, idx) => {\n const names = cluster.map(l => parseLabel(l).name).join(' ā· ');\n console.log(` %c${idx + 1}%c ${names}`, \"background: #e17055; color: white; border-radius: 50%; padding: 0 5px;\", \"font-family: monospace;\");\n });\n } else {\n console.log(\"%c⨠All state variables are linearly independent. Your Basis is optimal.\", \"color: #00b894; font-weight: bold; margin-top: 10px;\");\n }\n\n if (totalVars > 0 && totalVars < 15) {\n console.groupCollapsed(\"%cView Full Correlation Matrix\", \"color: #636e72; font-size: 11px;\");\n const matrix: any = {};\n entries.forEach(([labelA]) => {\n const nameA = parseLabel(labelA).name;\n matrix[nameA] = {};\n entries.forEach(([labelB]) => {\n const nameB = parseLabel(labelB).name;\n const sim = similarityFn(history.get(labelA)!, history.get(labelB)!);\n matrix[nameA][nameB] = sim > threshold ? `ā ${(sim * 100).toFixed(0)}%` : `ā
`;\n });\n });\n console.table(matrix);\n console.groupEnd();\n }\n console.groupEnd();\n } else {\n console.log(`[BASIS HEALTH] Efficiency: ${efficiency.toFixed(1)}% (Rank: ${systemRank}/${totalVars})`);\n if (clusters.length > 0) {\n console.log(`Redundancy Clusters: ${clusters.length}`);\n }\n }\n};","// src/core/math.ts\n\nexport const calculateCosineSimilarity = (A: number[], B: number[]): number => {\n let dot = 0, magA = 0, magB = 0;\n for (let i = 0; i < A.length; i++) {\n dot += A[i] * B[i];\n magA += A[i] * A[i];\n magB += B[i] * B[i];\n }\n return magA && magB ? dot / (Math.sqrt(magA) * Math.sqrt(magB)) : 0;\n};","// src/core/constants.ts\n\nexport const WINDOW_SIZE = 50;\nexport const SIMILARITY_THRESHOLD = 0.88;\nexport const LOOP_THRESHOLD = 25;\nexport const LOOP_WINDOW_MS = 500;\nexport const ANALYSIS_INTERVAL = 5;","import * as UI from './core/logger';\nimport { calculateCosineSimilarity } from './core/math';\nimport { \n WINDOW_SIZE, \n SIMILARITY_THRESHOLD, \n LOOP_THRESHOLD, \n LOOP_WINDOW_MS, \n ANALYSIS_INTERVAL \n} from './core/constants';\n\ninterface BasisEngineState {\n config: { debug: boolean };\n history: Map<string, number[]>;\n currentTickBatch: Set<string>;\n redundantLabels: Set<string>;\n booted: boolean;\n updateLog: { label: string; ts: number }[];\n tick: number;\n isBatching: boolean;\n currentEffectSource: string | null;\n}\n\nconst GLOBAL_KEY = '__BASIS_ENGINE_INSTANCE__';\n\nconst getGlobalInstance = (): BasisEngineState => {\n const g = (typeof window !== 'undefined' ? window : global) as any;\n if (!g[GLOBAL_KEY]) {\n g[GLOBAL_KEY] = {\n config: { debug: false },\n history: new Map<string, number[]>(),\n currentTickBatch: new Set<string>(),\n redundantLabels: new Set<string>(),\n booted: false,\n updateLog: [],\n tick: 0,\n isBatching: false,\n currentEffectSource: null\n };\n }\n return g[GLOBAL_KEY];\n};\n\nconst instance = getGlobalInstance();\n\nexport const config = instance.config;\nexport const history = instance.history;\nexport const currentTickBatch = instance.currentTickBatch;\nexport const redundantLabels = instance.redundantLabels;\n\nexport const configureBasis = (newConfig: Partial<{ debug: boolean }>) => {\n Object.assign(instance.config, newConfig);\n\n if (instance.config.debug && !instance.booted) {\n UI.displayBootLog(WINDOW_SIZE);\n instance.booted = true;\n }\n};\n\nconst analyzeBasis = () => {\n if (!instance.config.debug) {\n instance.redundantLabels.clear();\n return;\n }\n\n const entries = Array.from(instance.history.entries());\n if (entries.length < 2) return;\n\n const newRedundant = new Set<string>();\n\n entries.forEach(([labelA, vecA], i) => {\n entries.slice(i + 1).forEach(([labelB, vecB]) => {\n const sim = calculateCosineSimilarity(vecA, vecB);\n \n if (sim > SIMILARITY_THRESHOLD) {\n newRedundant.add(labelA);\n newRedundant.add(labelB);\n UI.displayRedundancyAlert(labelA, labelB, sim, instance.history.size);\n }\n });\n });\n\n instance.redundantLabels.clear();\n newRedundant.forEach(label => instance.redundantLabels.add(label));\n};\n\nexport const recordUpdate = (label: string): boolean => {\n if (!instance.config.debug) return true;\n\n const now = Date.now();\n\n // CIRCUIT BREAKER\n instance.updateLog.push({ label, ts: now });\n instance.updateLog = instance.updateLog.filter(e => now - e.ts < LOOP_WINDOW_MS);\n \n if (instance.updateLog.filter(e => e.label === label).length > LOOP_THRESHOLD) {\n UI.displayInfiniteLoop(label);\n return false;\n }\n\n // CAUSAL HINT\n if (instance.currentEffectSource && instance.currentEffectSource !== label) {\n UI.displayCausalHint(label, instance.currentEffectSource);\n }\n\n // BATCHING (20ms)\n instance.currentTickBatch.add(label);\n\n if (!instance.isBatching) {\n instance.isBatching = true;\n setTimeout(() => {\n instance.tick++;\n \n instance.history.forEach((vec, l) => {\n vec.shift();\n vec.push(instance.currentTickBatch.has(l) ? 1 : 0);\n });\n\n instance.currentTickBatch.clear();\n instance.isBatching = false;\n \n if (instance.tick % ANALYSIS_INTERVAL === 0) {\n analyzeBasis();\n }\n }, 20);\n }\n\n return true;\n};\n\n// LIFECYCLE \nexport const beginEffectTracking = (label: string) => { \n if (instance.config.debug) instance.currentEffectSource = label; \n};\n\nexport const endEffectTracking = () => { \n instance.currentEffectSource = null; \n};\n\nexport const registerVariable = (label: string) => {\n if (!instance.config.debug) return; \n\n if (!instance.history.has(label)) {\n instance.history.set(label, new Array(WINDOW_SIZE).fill(0));\n }\n};\n\nexport const unregisterVariable = (label: string) => {\n instance.history.delete(label);\n};\n\nexport const printBasisHealthReport = (threshold = 0.5) => {\n if (!instance.config.debug) {\n console.warn(\"[Basis] Cannot generate report. Debug mode is OFF.\");\n return;\n }\n UI.displayHealthReport(instance.history, calculateCosineSimilarity, threshold);\n};\n\nif (typeof window !== 'undefined') {\n (window as any).printBasisReport = printBasisHealthReport;\n}\n\nexport const __testEngine__ = {\n instance,\n config: instance.config,\n history: instance.history,\n currentTickBatch: instance.currentTickBatch,\n configureBasis,\n registerVariable,\n recordUpdate,\n printBasisHealthReport,\n beginEffectTracking,\n endEffectTracking,\n};","// src/context.tsx\n\nimport React, { createContext, useContext, ReactNode, useLayoutEffect } from 'react';\nimport { configureBasis } from './engine';\nimport { BasisHUD } from './ui/BasisHUD';\n\nconst BasisContext = createContext({ debug: false });\nconst isWeb = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n\ninterface BasisProviderProps {\n children: ReactNode;\n debug?: boolean;\n}\n\nexport const BasisProvider: React.FC<BasisProviderProps> = ({ children, debug = true }) => {\n useLayoutEffect(() => {\n configureBasis({ debug });\n if (isWeb) {\n (window as any)._basis_debug = debug;\n }\n }, [debug]);\n\n return (\n <BasisContext.Provider value={{ debug }}>\n {children}\n {(debug && isWeb) && <BasisHUD />}\n </BasisContext.Provider>\n );\n};\n\nexport const useBasisConfig = () => useContext(BasisContext);","// src/ui/BasisHUD.tsx\n\nimport React, { useEffect, useRef, useState } from 'react';\nimport { history, redundantLabels } from '../engine';\nimport { HUD_DIMENSIONS as DIM, getHUDContainerStyle, HUD_THEME as THEME } from './config';\n\nexport const BasisHUD: React.FC = () => {\n const [isExpanded, setIsExpanded] = useState(false);\n const canvasRef = useRef<HTMLCanvasElement>(null);\n\n useEffect(() => {\n if (!isExpanded) return;\n\n let animationFrame: number;\n\n const draw = () => {\n const canvas = canvasRef.current;\n if (!canvas) return;\n const ctx = canvas.getContext('2d');\n if (!ctx) return;\n\n const entries = Array.from(history.entries());\n const dpr = window.devicePixelRatio || 1;\n\n const rawWidth = (DIM.WINDOW_SIZE * DIM.COL_WIDTH) + DIM.LABEL_WIDTH + (DIM.PADDING * 2);\n const rawHeight = Math.max(entries.length * DIM.ROW_HEIGHT + (DIM.PADDING * 2), 60);\n\n updateCanvasSize(canvas, rawWidth, rawHeight, dpr);\n\n ctx.save();\n ctx.scale(dpr, dpr);\n ctx.clearRect(0, 0, rawWidth, rawHeight);\n\n if (entries.length === 0) {\n renderEmptyState(ctx);\n } else {\n renderMatrix(ctx, entries);\n }\n\n ctx.restore();\n animationFrame = requestAnimationFrame(draw);\n };\n\n draw();\n return () => cancelAnimationFrame(animationFrame);\n }, [isExpanded]);\n\n return (\n <div style={getHUDContainerStyle(isExpanded)} onClick={() => setIsExpanded(!isExpanded)}>\n <HUDHeader isExpanded={isExpanded} />\n {isExpanded && (\n <div style={{ padding: '10px 14px 15px 14px' }}>\n <canvas ref={canvasRef} style={{ display: 'block' }} />\n <HUDFooter />\n </div>\n )}\n </div>\n );\n};\n\nfunction updateCanvasSize(canvas: HTMLCanvasElement, w: number, h: number, dpr: number) {\n const targetW = Math.floor(w * dpr);\n const targetH = Math.floor(h * dpr);\n if (canvas.width !== targetW || canvas.height !== targetH) {\n canvas.width = targetW;\n canvas.height = targetH;\n canvas.style.width = `${w}px`;\n canvas.style.height = `${h}px`;\n }\n}\n\nfunction renderEmptyState(ctx: CanvasRenderingContext2D) {\n ctx.fillStyle = THEME.textDim;\n ctx.font = '11px Inter, sans-serif';\n ctx.fillText('Waiting for state transitions...', DIM.PADDING, 30);\n}\n\nfunction renderMatrix(ctx: CanvasRenderingContext2D, entries: [string, number[]][]) {\n entries.forEach(([label, vector], rowIndex) => {\n const y = rowIndex * DIM.ROW_HEIGHT + DIM.PADDING;\n const stateName = label.split(' -> ')[1] || label;\n const isRedundant = redundantLabels.has(label);\n\n vector.forEach((bit, colIndex) => {\n const x = colIndex * DIM.COL_WIDTH + DIM.PADDING;\n ctx.fillStyle = bit === 1 ? (isRedundant ? THEME.error : THEME.success) : THEME.grid;\n\n const w = DIM.COL_WIDTH - 1.5;\n const h = DIM.ROW_HEIGHT - 4;\n\n if (ctx.roundRect) {\n ctx.beginPath();\n ctx.roundRect(x, y, w, h, DIM.RADIUS);\n ctx.fill();\n } else {\n ctx.fillRect(x, y, w, h);\n }\n });\n\n const textX = (DIM.WINDOW_SIZE * DIM.COL_WIDTH) + DIM.PADDING + 10;\n ctx.fillStyle = isRedundant ? THEME.error : THEME.text;\n ctx.font = `${isRedundant ? '600' : '400'} 11px Inter, Menlo, monospace`;\n \n const cleanName = isRedundant ? `! ${stateName}` : stateName;\n const truncatedName = cleanName.length > 18 ? cleanName.substring(0, 16) + '..' : cleanName;\n ctx.fillText(truncatedName, textX, y + 9);\n });\n}\n\nconst HUDHeader: React.FC<{ isExpanded: boolean }> = ({ isExpanded }) => (\n <div style={{ \n padding: '10px 14px', \n backgroundColor: isExpanded ? THEME.header : 'transparent', \n color: isExpanded ? 'white' : THEME.header,\n fontWeight: 600, fontSize: '11px', letterSpacing: '0.05em',\n display: 'flex', justifyContent: 'space-between', alignItems: 'center',\n transition: 'background 0.3s'\n }}>\n <span>{isExpanded ? 'STATE BASIS MATRIX' : 'š BASIS ACTIVE'}</span>\n {isExpanded && <span style={{ opacity: 0.8, fontSize: '9px' }}>R50</span>}\n </div>\n);\n\nconst HUDFooter: React.FC = () => (\n <div style={{ \n marginTop: '12px', paddingTop: '8px', borderTop: `1px solid ${THEME.grid}`,\n color: THEME.textDim, fontSize: '9px', display: 'flex', justifyContent: 'space-between'\n }}>\n <span>LINEAR DEPENDENCY AUDIT</span>\n <span>THRESHOLD 0.88</span>\n </div>\n);\n","// src/ui/config.ts\n\nimport { WINDOW_SIZE } from '../core/constants';\n\nexport const HUD_DIMENSIONS = {\n WINDOW_SIZE,\n ROW_HEIGHT: 16,\n COL_WIDTH: 5,\n LABEL_WIDTH: 100,\n PADDING: 10,\n RADIUS: 1.5,\n};\n\nexport const HUD_THEME = {\n bg: 'rgba(15, 23, 42, 0.95)',\n border: '#334155',\n header: '#8b5cf6',\n text: '#f1f5f9',\n textDim: '#94a3b8',\n success: '#10b981',\n error: '#ef4444',\n grid: '#1e293b',\n};\n\nexport const getHUDContainerStyle = (isExpanded: boolean): React.CSSProperties => ({\n position: 'fixed',\n bottom: '20px',\n right: '20px',\n backgroundColor: HUD_THEME.bg,\n border: `1px solid ${HUD_THEME.border}`,\n borderRadius: '12px',\n backdropFilter: 'blur(8px)',\n boxShadow: '0 10px 25px -5px rgba(0, 0, 0, 0.3), 0 8px 10px -6px rgba(0, 0, 0, 0.3)',\n zIndex: 999999,\n overflow: 'hidden',\n width: isExpanded ? '380px' : '130px',\n transition: 'all 0.3s cubic-bezier(0.4, 0, 0.2, 1)',\n cursor: 'pointer',\n userSelect: 'none',\n WebkitUserSelect: 'none'\n});","// src/hooks.ts\nimport * as React from 'react';\nimport {\n useState as reactUseState,\n useEffect as reactUseEffect,\n useMemo as reactUseMemo,\n useReducer as reactUseReducer,\n useContext as reactUseContext,\n useSyncExternalStore as reactUseSyncExternalStore, \n createContext as reactCreateContext,\n useRef as reactUseRef,\n useLayoutEffect as reactUseLayoutEffect,\n useCallback as reactUseCallback,\n useTransition as reactUseTransition,\n useDeferredValue as reactUseDeferredValue,\n use as reactUse,\n useOptimistic as reactUseOptimistic,\n useActionState as reactUseActionState\n} from 'react';\n\nimport { registerVariable, unregisterVariable, recordUpdate, beginEffectTracking, endEffectTracking, config } from './engine';\nimport * as engine from './engine';\n\ntype GetReducerState<R extends React.Reducer<any, any>> = R extends React.Reducer<infer S, any> ? S : never;\ntype GetReducerAction<R extends React.Reducer<any, any>> = R extends React.Reducer<any, infer A> ? A : never;\n\nexport function useState<S>(initialState: S | (() => S), label?: string): [S, React.Dispatch<React.SetStateAction<S>>] {\n const [val, setVal] = reactUseState(initialState);\n const effectiveLabel = label || 'anonymous_state';\n reactUseEffect(() => { registerVariable(effectiveLabel); return () => unregisterVariable(effectiveLabel); }, [effectiveLabel]);\n const setter = reactUseCallback((newValue: any) => { if (recordUpdate(effectiveLabel)) setVal(newValue); }, [effectiveLabel, setVal]);\n return [val, setter];\n}\n\nexport function useRef<T>(initialValue: T): React.RefObject<T>;\nexport function useRef<T>(initialValue: T | null): React.RefObject<T>;\nexport function useRef<T = undefined>(): React.MutableRefObject<T | undefined>;\nexport function useRef<T>(initialValue?: T, _label?: string): any { return reactUseRef(initialValue); }\n\nexport function useReducer<R extends React.Reducer<any, any>, I>(reducer: R, initialArg: I, init?: any, label?: string): [GetReducerState<R>, React.Dispatch<GetReducerAction<R>>] {\n const effectiveLabel = typeof init === 'string' ? init : (label || 'anonymous_reducer');\n const reactInit = typeof init === 'function' ? init : undefined;\n const [state, dispatch] = reactUseReducer(reducer, initialArg, reactInit);\n reactUseEffect(() => { registerVariable(effectiveLabel); return () => unregisterVariable(effectiveLabel); }, [effectiveLabel]);\n const basisDispatch = reactUseCallback((action: any) => { if (recordUpdate(effectiveLabel)) dispatch(action); }, [effectiveLabel, dispatch]);\n return [state, basisDispatch] as any;\n}\n\nexport function useMemo<T>(factory: () => T, deps: React.DependencyList | undefined, label?: string): T {\n const effectiveLabel = label || 'anonymous_projection';\n reactUseEffect(() => { if (config.debug) console.log(`%c [Basis] Valid Projection: \"${effectiveLabel}\" `, \"color: #2ecc71; font-weight: bold;\"); }, [effectiveLabel]);\n return reactUseMemo(factory, deps || []);\n}\n\nexport function useCallback<T extends (...args: any[]) => any>(callback: T, deps: React.DependencyList, label?: string): T {\n const effectiveLabel = label || 'anonymous_callback';\n reactUseEffect(() => { if (config.debug) console.log(`%c [Basis] Stable Callback: \"${effectiveLabel}\" `, \"color: #2ecc71; font-weight: bold;\"); }, [effectiveLabel]);\n return reactUseCallback(callback, deps);\n}\n\nexport function useEffect(effect: React.EffectCallback, deps?: React.DependencyList, label?: string) {\n const effectiveLabel = label || 'anonymous_effect';\n reactUseEffect(() => { beginEffectTracking(effectiveLabel); const cleanup = effect(); endEffectTracking(); return cleanup; }, deps);\n}\n\nexport function useLayoutEffect(effect: React.EffectCallback, deps?: React.DependencyList, label?: string) {\n const effectiveLabel = label || 'anonymous_layout_effect';\n reactUseLayoutEffect(() => { beginEffectTracking(effectiveLabel); const cleanup = effect(); endEffectTracking(); return cleanup; }, deps);\n}\n\nexport function useTransition(_label?: string): [boolean, (callback: () => void) => void] {\n const [isPending, startTransition] = reactUseTransition();\n const effectiveLabel = _label || 'anonymous_transition';\n const basisStartTransition = (callback: () => void) => {\n if (config.debug) console.log(`%c [Basis] Transition Started: \"${effectiveLabel}\" `, \"color: #e67e22; font-weight: bold;\");\n startTransition(callback);\n };\n return [isPending, basisStartTransition];\n}\n\nexport function useDeferredValue<T>(value: T, initialValueOrLabel?: T | string, label?: string): T {\n const isLabelAsSecondArg = typeof initialValueOrLabel === 'string' && label === undefined;\n const actualInitialValue = isLabelAsSecondArg ? undefined : initialValueOrLabel as T;\n const effectiveLabel = isLabelAsSecondArg ? (initialValueOrLabel as string) : (label || 'anonymous_deferred');\n const deferredValue = reactUseDeferredValue(value, actualInitialValue);\n reactUseEffect(() => { if (config.debug && value !== deferredValue) console.log(`%c [Basis] Value Deferred: \"${effectiveLabel}\" `, \"color: #e67e22; font-weight: bold;\"); }, [value, deferredValue, effectiveLabel]);\n return deferredValue;\n}\n\nexport function createContext<T>(defaultValue: T, label?: string): React.Context<T> {\n const context = reactCreateContext(defaultValue);\n if (label) (context as any)._basis_label = label;\n return context;\n}\n\nexport const useContext = reactUseContext;\nexport const useId = (label?: string) => React.useId();\nexport const useDebugValue = React.useDebugValue;\nexport const useImperativeHandle = React.useImperativeHandle;\nexport const useInsertionEffect = React.useInsertionEffect;\nexport const useSyncExternalStore = (reactUseSyncExternalStore as any);\n\nexport function use<T>(usable: React.Usable<T>): T {\n return reactUse(usable);\n}\n\nexport function useOptimistic<S, P>(\n passthrough: S,\n reducer?: (state: S, payload: P) => S,\n label?: string\n): [S, (payload: P) => void] {\n const effectiveLabel = label || 'anonymous_optimistic';\n \n reactUseEffect(() => {\n registerVariable(effectiveLabel);\n return () => unregisterVariable(effectiveLabel);\n }, [effectiveLabel]);\n\n const [state, reactAddOptimistic] = (React as any).useOptimistic(passthrough, reducer) as [S, (p: P) => void];\n\n const addOptimistic = reactUseCallback((payload: P) => {\n if (recordUpdate(effectiveLabel)) {\n reactAddOptimistic(payload);\n }\n }, [effectiveLabel, reactAddOptimistic]);\n\n return [state, addOptimistic];\n}\n\nexport function useActionState<State, Payload>(\n action: (state: State, payload: Payload) => Promise<State> | State,\n initialState: State,\n permalink?: string,\n label?: string\n): [state: State, dispatch: (payload: Payload) => void, isPending: boolean] {\n \n const isLabelAsThirdArg = typeof permalink === 'string' && label === undefined;\n const actualPermalink = isLabelAsThirdArg ? undefined : permalink;\n const effectiveLabel = isLabelAsThirdArg ? (permalink as string) : (label || 'anonymous_action_state');\n\n const [state, reactDispatch, isPending] = (React as any).useActionState(\n action, \n initialState, \n actualPermalink\n ) as [State, (p: Payload) => void, boolean];\n\n reactUseEffect(() => {\n registerVariable(effectiveLabel);\n return () => unregisterVariable(effectiveLabel);\n }, [effectiveLabel]);\n\n const basisDispatch = reactUseCallback((payload: Payload) => {\n if (recordUpdate(effectiveLabel)) {\n reactDispatch(payload);\n }\n }, [effectiveLabel, reactDispatch]);\n\n return [state, basisDispatch, isPending];\n}\n\nexport const __test__ = { registerVariable, unregisterVariable, recordUpdate, beginEffectTracking, endEffectTracking, history: (engine as any).history, currentTickBatch: (engine as any).currentTickBatch };","// src/vite-plugin.ts\n\nimport type { Plugin } from 'vite';\n\nexport function basis(): Plugin {\n return {\n name: 'vite-plugin-react-state-basis',\n enforce: 'pre',\n\n resolveId(source, importer) {\n if (source === 'react' || source === 'react-dom' || source === 'react-dom/client') {\n \n const isLibraryCore = importer && (\n (importer.includes('react-state-basis/src') || importer.includes('react-state-basis/dist')) &&\n !importer.includes('react-state-basis/example')\n );\n\n const isYalc = importer && importer.includes('.yalc');\n\n if (isLibraryCore || isYalc) {\n return null;\n }\n\n const mapping: Record<string, string> = {\n 'react': 'react-state-basis',\n 'react-dom': 'react-state-basis',\n 'react-dom/client': 'react-state-basis/client'\n };\n\n return this.resolve(mapping[source], importer, { skipSelf: true });\n }\n return null;\n }\n };\n}"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA,kBAAAA;AAAA,EAAA,iBAAAC;AAAA,EAAA,gBAAAC;AAAA,EAAA,gBAAAC;AAAA,EAAA,qBAAAC;AAAA,EAAA;AAAA,oBAAAC;AAAA,EAAA,gBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,sBAAAC;AAAA,EAAA;AAAA;AAAA,uBAAAC;AAAA,EAAA,qBAAAC;AAAA,EAAA;AAAA,mBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,oBAAAC;AAAA,EAAA;AAAA,wBAAAC;AAAA,EAAA,YAAAC;AAAA,EAAA,YAAAC;AAAA,EAAA;AAAA;AAAA;AAAA,yBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA,wBAAAC;AAAA,EAAA;AAAA;AAAA,oBAAAC;AAAA,EAAA,qBAAAC;AAAA,EAAA;AAAA,mBAAAC;AAAA,EAAA,aAAAC;AAAA,EAAA,2BAAAC;AAAA,EAAA,0BAAAC;AAAA,EAAA,uBAAAC;AAAA,EAAA;AAAA,uBAAAC;AAAA,EAAA;AAAA,gBAAAC;AAAA,EAAA,gBAAAC;AAAA,EAAA;AAAA;AAAA,iBAAAC;AAAA;AAAA;AAEA,qBAAgC;AAChC,wBAAmC;;;ACDnC,IAAM,QAAQ,OAAO,WAAW,eAAe,OAAO,OAAO,aAAa;AAE1E,IAAM,SAAS;AAAA,EACb,OAAO;AAAA,EACP,SAAS;AAAA,EAET,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,aAAa;AAAA,EAEb,OAAO;AAAA,EACP,UAAU;AAAA,EACV,MAAM;AAAA,EAEN,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYX,KAAK;AAAA,EACL,MAAM;AACR;AAEA,IAAM,aAAa,CAAC,UAAkB;AACpC,QAAM,QAAQ,MAAM,MAAM,MAAM;AAChC,SAAO;AAAA,IACL,MAAM,MAAM,CAAC,KAAK;AAAA,IAClB,MAAM,MAAM,CAAC,KAAK;AAAA,EACpB;AACF;AAEA,IAAM,WAAW,CAAC,YAAoB,WAAqB;AACzD,MAAI,OAAO;AACT,YAAQ,IAAI,SAAS,GAAG,MAAM;AAAA,EAChC,OAAO;AACL,YAAQ,IAAI,QAAQ,QAAQ,OAAO,EAAE,CAAC;AAAA,EACxC;AACF;AAEO,IAAM,iBAAiB,CAAC,eAAuB;AACpD;AAAA,IACE,uDAAuD,UAAU;AAAA,IACjE,OAAO;AAAA,IACP,OAAO;AAAA,IACP;AAAA,EACF;AACF;AAEO,IAAM,yBAAyB,CAAC,QAAgB,QAAgB,KAAa,oBAA4B;AAC9G,QAAM,QAAQ,WAAW,MAAM;AAC/B,QAAM,QAAQ,WAAW,MAAM;AAC/B,QAAM,cAAc,MAAM,SAAS,MAAM;AAEzC,MAAI,OAAO;AACT,YAAQ,MAAM,qDAA8C,OAAO,SAAS;AAC5E,YAAQ,IAAI,2BAAoB,cAAc,GAAG,MAAM,IAAI,MAAM,MAAM,IAAI,KAAK,MAAM,IAAI,IAAI,OAAO,MAAM,OAAO,QAAQ;AAC1H,YAAQ;AAAA,MACN,2BAA2B,MAAM,IAAI,YAAY,MAAM,IAAI;AAAA,MAC3D,OAAO;AAAA,MAAM;AAAA,MAAI,OAAO;AAAA,MAAO;AAAA,MAAI,OAAO;AAAA,MAAO;AAAA,IACnD;AACA,YAAQ;AAAA,MACN,6BAA6B,MAAM,IAAI;AAAA;AAAA,QAErC,MAAM,IAAI,+BAA+B,MAAM,IAAI,OAAO,MAAM,IAAI;AAAA,MACtE;AAAA,MAAsC;AAAA,MACtC;AAAA,MAAsC;AAAA,MACtC,OAAO;AAAA,MAAW;AAAA,IACpB;AACA,YAAQ,eAAe,+BAAwB,mDAAmD;AAClG,YAAQ,MAAM;AAAA,MACZ,cAAc,IAAI,MAAM,KAAK,QAAQ,CAAC,CAAC;AAAA,MACvC,qBAAqB;AAAA,MACrB,QAAQ,kBAAkB;AAAA,IAC5B,CAAC;AACD,YAAQ,SAAS;AACjB,YAAQ,SAAS;AAAA,EACnB,OAAO;AACL,YAAQ,IAAI,gCAAgC,MAAM,IAAI,QAAQ,MAAM,IAAI,MAAM,MAAM,KAAK,QAAQ,CAAC,CAAC,eAAe;AAClH,YAAQ,IAAI,aAAa,cAAc,GAAG,MAAM,IAAI,MAAM,MAAM,IAAI,KAAK,MAAM,IAAI,EAAE;AAAA,EACvF;AACF;AAEO,IAAM,oBAAoB,CAAC,aAAqB,gBAAwB;AAC7E,QAAM,SAAS,WAAW,WAAW;AACrC,QAAM,SAAS,WAAW,WAAW;AAErC,QAAM,cAAc,OAAO,SAAS,OAAO;AAC3C,QAAM,eAAe,cACjB,GAAG,OAAO,IAAI,WAAM,OAAO,IAAI,KAC/B,OAAO;AAEX,MAAI,OAAO;AACT,YAAQ,eAAe,uDAAgD,OAAO,UAAU;AACxF,YAAQ,IAAI,2BAAoB,YAAY,IAAI,OAAO,MAAM,OAAO,QAAQ;AAC5E,YAAQ;AAAA,MACN,mBAAmB,OAAO,IAAI,6BAAmB,OAAO,IAAI;AAAA,MAC5D,OAAO;AAAA,MAAM;AAAA,MAAI,OAAO;AAAA,MAAO;AAAA,MAAI,OAAO;AAAA,MAAO;AAAA,IACnD;AACA,YAAQ;AAAA,MACN,+BAA+B,OAAO,IAAI;AAAA,MAC1C,OAAO;AAAA,MAAM;AAAA,MAAI,OAAO;AAAA,MAAO;AAAA,MAAI;AAAA,MAAsC;AAAA,IAC3E;AACA,YAAQ,SAAS;AAAA,EACnB,OAAO;AACL,YAAQ,IAAI,sBAAsB,OAAO,IAAI,WAAM,OAAO,IAAI,wBAAwB;AAAA,EACxF;AACF;AAEO,IAAM,sBAAsB,CAAC,UAAkB;AACpD,QAAM,OAAO,WAAW,KAAK;AAC7B,MAAI,OAAO;AACT,YAAQ,MAAM,kDAA2C,OAAO,SAAS;AACzE,YAAQ;AAAA,MACN,uCAAuC,KAAK,IAAI;AAAA;AAAA,MAChD;AAAA,MAA4E;AAAA,IAC9E;AACA,YAAQ,SAAS;AAAA,EACnB,OAAO;AACL,YAAQ,IAAI,sCAAsC,KAAK,IAAI,qBAAqB;AAAA,EAClF;AACF;AAEO,IAAM,sBAAsB,CACjCC,UACA,cACA,cACG;AACH,QAAM,UAAU,MAAM,KAAKA,SAAQ,QAAQ,CAAC;AAC5C,QAAM,YAAY,QAAQ;AAC1B,MAAI,cAAc,EAAG;AAErB,QAAM,WAAuB,CAAC;AAC9B,QAAM,YAAY,oBAAI,IAAY;AAClC,MAAI,mBAAmB;AAEvB,UAAQ,QAAQ,CAAC,CAAC,QAAQ,IAAI,MAAM;AAClC,QAAI,UAAU,IAAI,MAAM,EAAG;AAC3B,UAAM,iBAAiB,CAAC,MAAM;AAC9B,cAAU,IAAI,MAAM;AACpB,YAAQ,QAAQ,CAAC,CAAC,QAAQ,IAAI,MAAM;AAClC,UAAI,WAAW,UAAU,UAAU,IAAI,MAAM,EAAG;AAChD,YAAM,MAAM,aAAa,MAAM,IAAI;AACnC,UAAI,MAAM,WAAW;AACnB,uBAAe,KAAK,MAAM;AAC1B,kBAAU,IAAI,MAAM;AAAA,MACtB;AAAA,IACF,CAAC;AACD,QAAI,eAAe,SAAS,GAAG;AAC7B,eAAS,KAAK,cAAc;AAAA,IAC9B,OAAO;AACL;AAAA,IACF;AAAA,EACF,CAAC;AAED,QAAM,aAAa,mBAAmB,SAAS;AAC/C,QAAM,aAAc,aAAa,YAAa;AAE9C,MAAI,OAAO;AACT,YAAQ,MAAM,8CAAuC,OAAO,WAAW;AACvE,YAAQ;AAAA,MACN,yBAAyB,WAAW,QAAQ,CAAC,CAAC,cAAc,UAAU,IAAI,SAAS;AAAA,MACnF,OAAO;AAAA,MACP,UAAU,aAAa,KAAK,YAAY,SAAS;AAAA,MACjD;AAAA,IACF;AAEA,QAAI,SAAS,SAAS,GAAG;AACvB,cAAQ,IAAI,cAAc,SAAS,MAAM,yBAAyB,sDAAsD;AACxH,eAAS,QAAQ,CAAC,SAAS,QAAQ;AACjC,cAAM,QAAQ,QAAQ,IAAI,OAAK,WAAW,CAAC,EAAE,IAAI,EAAE,KAAK,UAAK;AAC7D,gBAAQ,IAAI,MAAM,MAAM,CAAC,MAAM,KAAK,IAAI,0EAA0E,yBAAyB;AAAA,MAC7I,CAAC;AAAA,IACH,OAAO;AACL,cAAQ,IAAI,iFAA4E,sDAAsD;AAAA,IAChJ;AAEA,QAAI,YAAY,KAAK,YAAY,IAAI;AACnC,cAAQ,eAAe,kCAAkC,kCAAkC;AAC3F,YAAM,SAAc,CAAC;AACrB,cAAQ,QAAQ,CAAC,CAAC,MAAM,MAAM;AAC5B,cAAM,QAAQ,WAAW,MAAM,EAAE;AACjC,eAAO,KAAK,IAAI,CAAC;AACjB,gBAAQ,QAAQ,CAAC,CAAC,MAAM,MAAM;AAC5B,gBAAM,QAAQ,WAAW,MAAM,EAAE;AACjC,gBAAM,MAAM,aAAaA,SAAQ,IAAI,MAAM,GAAIA,SAAQ,IAAI,MAAM,CAAE;AACnE,iBAAO,KAAK,EAAE,KAAK,IAAI,MAAM,YAAY,WAAM,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM;AAAA,QAC5E,CAAC;AAAA,MACH,CAAC;AACD,cAAQ,MAAM,MAAM;AACpB,cAAQ,SAAS;AAAA,IACnB;AACA,YAAQ,SAAS;AAAA,EACnB,OAAO;AACL,YAAQ,IAAI,8BAA8B,WAAW,QAAQ,CAAC,CAAC,YAAY,UAAU,IAAI,SAAS,GAAG;AACrG,QAAI,SAAS,SAAS,GAAG;AACvB,cAAQ,IAAI,wBAAwB,SAAS,MAAM,EAAE;AAAA,IACvD;AAAA,EACF;AACF;;;AC7MO,IAAM,4BAA4B,CAAC,GAAa,MAAwB;AAC7E,MAAI,MAAM,GAAG,OAAO,GAAG,OAAO;AAC9B,WAAS,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK;AACjC,WAAO,EAAE,CAAC,IAAI,EAAE,CAAC;AACjB,YAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;AAClB,YAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;AAAA,EACpB;AACA,SAAO,QAAQ,OAAO,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,KAAK;AACpE;;;ACRO,IAAM,cAAc;AACpB,IAAM,uBAAuB;AAC7B,IAAM,iBAAiB;AACvB,IAAM,iBAAiB;AACvB,IAAM,oBAAoB;;;ACgBjC,IAAM,aAAa;AAEnB,IAAM,oBAAoB,MAAwB;AAChD,QAAM,IAAK,OAAO,WAAW,cAAc,SAAS;AACpD,MAAI,CAAC,EAAE,UAAU,GAAG;AAClB,MAAE,UAAU,IAAI;AAAA,MACd,QAAQ,EAAE,OAAO,MAAM;AAAA,MACvB,SAAS,oBAAI,IAAsB;AAAA,MACnC,kBAAkB,oBAAI,IAAY;AAAA,MAClC,iBAAiB,oBAAI,IAAY;AAAA,MACjC,QAAQ;AAAA,MACR,WAAW,CAAC;AAAA,MACZ,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,qBAAqB;AAAA,IACvB;AAAA,EACF;AACA,SAAO,EAAE,UAAU;AACrB;AAEA,IAAM,WAAW,kBAAkB;AAE5B,IAAM,SAAS,SAAS;AACxB,IAAM,UAAU,SAAS;AACzB,IAAM,mBAAmB,SAAS;AAClC,IAAM,kBAAkB,SAAS;AAEjC,IAAM,iBAAiB,CAAC,cAA2C;AACxE,SAAO,OAAO,SAAS,QAAQ,SAAS;AAExC,MAAI,SAAS,OAAO,SAAS,CAAC,SAAS,QAAQ;AAC7C,IAAG,eAAe,WAAW;AAC7B,aAAS,SAAS;AAAA,EACpB;AACF;AAEA,IAAM,eAAe,MAAM;AACzB,MAAI,CAAC,SAAS,OAAO,OAAO;AAC1B,aAAS,gBAAgB,MAAM;AAC/B;AAAA,EACF;AAEA,QAAM,UAAU,MAAM,KAAK,SAAS,QAAQ,QAAQ,CAAC;AACrD,MAAI,QAAQ,SAAS,EAAG;AAExB,QAAM,eAAe,oBAAI,IAAY;AAErC,UAAQ,QAAQ,CAAC,CAAC,QAAQ,IAAI,GAAG,MAAM;AACrC,YAAQ,MAAM,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,QAAQ,IAAI,MAAM;AAC/C,YAAM,MAAM,0BAA0B,MAAM,IAAI;AAEhD,UAAI,MAAM,sBAAsB;AAC9B,qBAAa,IAAI,MAAM;AACvB,qBAAa,IAAI,MAAM;AACvB,QAAG,uBAAuB,QAAQ,QAAQ,KAAK,SAAS,QAAQ,IAAI;AAAA,MACtE;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AAED,WAAS,gBAAgB,MAAM;AAC/B,eAAa,QAAQ,WAAS,SAAS,gBAAgB,IAAI,KAAK,CAAC;AACnE;AAEO,IAAM,eAAe,CAAC,UAA2B;AACtD,MAAI,CAAC,SAAS,OAAO,MAAO,QAAO;AAEnC,QAAM,MAAM,KAAK,IAAI;AAGrB,WAAS,UAAU,KAAK,EAAE,OAAO,IAAI,IAAI,CAAC;AAC1C,WAAS,YAAY,SAAS,UAAU,OAAO,OAAK,MAAM,EAAE,KAAK,cAAc;AAE/E,MAAI,SAAS,UAAU,OAAO,OAAK,EAAE,UAAU,KAAK,EAAE,SAAS,gBAAgB;AAC7E,IAAG,oBAAoB,KAAK;AAC5B,WAAO;AAAA,EACT;AAGA,MAAI,SAAS,uBAAuB,SAAS,wBAAwB,OAAO;AAC1E,IAAG,kBAAkB,OAAO,SAAS,mBAAmB;AAAA,EAC1D;AAGA,WAAS,iBAAiB,IAAI,KAAK;AAEnC,MAAI,CAAC,SAAS,YAAY;AACxB,aAAS,aAAa;AACtB,eAAW,MAAM;AACf,eAAS;AAET,eAAS,QAAQ,QAAQ,CAAC,KAAK,MAAM;AACnC,YAAI,MAAM;AACV,YAAI,KAAK,SAAS,iBAAiB,IAAI,CAAC,IAAI,IAAI,CAAC;AAAA,MACnD,CAAC;AAED,eAAS,iBAAiB,MAAM;AAChC,eAAS,aAAa;AAEtB,UAAI,SAAS,OAAO,sBAAsB,GAAG;AAC3C,qBAAa;AAAA,MACf;AAAA,IACF,GAAG,EAAE;AAAA,EACP;AAEA,SAAO;AACT;AAGO,IAAM,sBAAsB,CAAC,UAAkB;AACpD,MAAI,SAAS,OAAO,MAAO,UAAS,sBAAsB;AAC5D;AAEO,IAAM,oBAAoB,MAAM;AACrC,WAAS,sBAAsB;AACjC;AAEO,IAAM,mBAAmB,CAAC,UAAkB;AACjD,MAAI,CAAC,SAAS,OAAO,MAAO;AAE5B,MAAI,CAAC,SAAS,QAAQ,IAAI,KAAK,GAAG;AAChC,aAAS,QAAQ,IAAI,OAAO,IAAI,MAAM,WAAW,EAAE,KAAK,CAAC,CAAC;AAAA,EAC5D;AACF;AAEO,IAAM,qBAAqB,CAAC,UAAkB;AACnD,WAAS,QAAQ,OAAO,KAAK;AAC/B;AAEO,IAAM,yBAAyB,CAAC,YAAY,QAAQ;AACzD,MAAI,CAAC,SAAS,OAAO,OAAO;AAC1B,YAAQ,KAAK,oDAAoD;AACjE;AAAA,EACF;AACA,EAAG,oBAAoB,SAAS,SAAS,2BAA2B,SAAS;AAC/E;AAEA,IAAI,OAAO,WAAW,aAAa;AACjC,EAAC,OAAe,mBAAmB;AACrC;AAEO,IAAM,iBAAiB;AAAA,EAC5B;AAAA,EACA,QAAQ,SAAS;AAAA,EACjB,SAAS,SAAS;AAAA,EAClB,kBAAkB,SAAS;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;AC3KA,IAAAC,gBAA6E;;;ACA7E,mBAAmD;;;ACE5C,IAAM,iBAAiB;AAAA,EAC5B;AAAA,EACA,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,aAAa;AAAA,EACb,SAAS;AAAA,EACT,QAAQ;AACV;AAEO,IAAM,YAAY;AAAA,EACvB,IAAI;AAAA,EACJ,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,SAAS;AAAA,EACT,SAAS;AAAA,EACT,OAAO;AAAA,EACP,MAAM;AACR;AAEO,IAAM,uBAAuB,CAAC,gBAA8C;AAAA,EACjF,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,iBAAiB,UAAU;AAAA,EAC3B,QAAQ,aAAa,UAAU,MAAM;AAAA,EACrC,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,OAAO,aAAa,UAAU;AAAA,EAC9B,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,kBAAkB;AACpB;;;ADSM;AA3CC,IAAM,WAAqB,MAAM;AACtC,QAAM,CAAC,YAAY,aAAa,QAAI,uBAAS,KAAK;AAClD,QAAM,gBAAY,qBAA0B,IAAI;AAEhD,8BAAU,MAAM;AACd,QAAI,CAAC,WAAY;AAEjB,QAAI;AAEJ,UAAM,OAAO,MAAM;AACjB,YAAM,SAAS,UAAU;AACzB,UAAI,CAAC,OAAQ;AACb,YAAM,MAAM,OAAO,WAAW,IAAI;AAClC,UAAI,CAAC,IAAK;AAEV,YAAM,UAAU,MAAM,KAAK,QAAQ,QAAQ,CAAC;AAC5C,YAAM,MAAM,OAAO,oBAAoB;AAEvC,YAAM,WAAY,eAAI,cAAc,eAAI,YAAa,eAAI,cAAe,eAAI,UAAU;AACtF,YAAM,YAAY,KAAK,IAAI,QAAQ,SAAS,eAAI,aAAc,eAAI,UAAU,GAAI,EAAE;AAElF,uBAAiB,QAAQ,UAAU,WAAW,GAAG;AAEjD,UAAI,KAAK;AACT,UAAI,MAAM,KAAK,GAAG;AAClB,UAAI,UAAU,GAAG,GAAG,UAAU,SAAS;AAEvC,UAAI,QAAQ,WAAW,GAAG;AACxB,yBAAiB,GAAG;AAAA,MACtB,OAAO;AACL,qBAAa,KAAK,OAAO;AAAA,MAC3B;AAEA,UAAI,QAAQ;AACZ,uBAAiB,sBAAsB,IAAI;AAAA,IAC7C;AAEA,SAAK;AACL,WAAO,MAAM,qBAAqB,cAAc;AAAA,EAClD,GAAG,CAAC,UAAU,CAAC;AAEf,SACE,6CAAC,SAAI,OAAO,qBAAqB,UAAU,GAAG,SAAS,MAAM,cAAc,CAAC,UAAU,GACpF;AAAA,gDAAC,aAAU,YAAwB;AAAA,IAClC,cACC,6CAAC,SAAI,OAAO,EAAE,SAAS,sBAAsB,GAC3C;AAAA,kDAAC,YAAO,KAAK,WAAW,OAAO,EAAE,SAAS,QAAQ,GAAG;AAAA,MACrD,4CAAC,aAAU;AAAA,OACb;AAAA,KAEJ;AAEJ;AAEA,SAAS,iBAAiB,QAA2B,GAAW,GAAW,KAAa;AACtF,QAAM,UAAU,KAAK,MAAM,IAAI,GAAG;AAClC,QAAM,UAAU,KAAK,MAAM,IAAI,GAAG;AAClC,MAAI,OAAO,UAAU,WAAW,OAAO,WAAW,SAAS;AACzD,WAAO,QAAQ;AACf,WAAO,SAAS;AAChB,WAAO,MAAM,QAAQ,GAAG,CAAC;AACzB,WAAO,MAAM,SAAS,GAAG,CAAC;AAAA,EAC5B;AACF;AAEA,SAAS,iBAAiB,KAA+B;AACvD,MAAI,YAAY,UAAM;AACtB,MAAI,OAAO;AACX,MAAI,SAAS,oCAAoC,eAAI,SAAS,EAAE;AAClE;AAEA,SAAS,aAAa,KAA+B,SAA+B;AAClF,UAAQ,QAAQ,CAAC,CAAC,OAAO,MAAM,GAAG,aAAa;AAC7C,UAAM,IAAI,WAAW,eAAI,aAAa,eAAI;AAC1C,UAAM,YAAY,MAAM,MAAM,MAAM,EAAE,CAAC,KAAK;AAC5C,UAAM,cAAc,gBAAgB,IAAI,KAAK;AAE7C,WAAO,QAAQ,CAAC,KAAK,aAAa;AAChC,YAAM,IAAI,WAAW,eAAI,YAAY,eAAI;AACzC,UAAI,YAAY,QAAQ,IAAK,cAAc,UAAM,QAAQ,UAAM,UAAW,UAAM;AAEhF,YAAM,IAAI,eAAI,YAAY;AAC1B,YAAM,IAAI,eAAI,aAAa;AAE3B,UAAI,IAAI,WAAW;AACjB,YAAI,UAAU;AACd,YAAI,UAAU,GAAG,GAAG,GAAG,GAAG,eAAI,MAAM;AACpC,YAAI,KAAK;AAAA,MACX,OAAO;AACL,YAAI,SAAS,GAAG,GAAG,GAAG,CAAC;AAAA,MACzB;AAAA,IACF,CAAC;AAED,UAAM,QAAS,eAAI,cAAc,eAAI,YAAa,eAAI,UAAU;AAChE,QAAI,YAAY,cAAc,UAAM,QAAQ,UAAM;AAClD,QAAI,OAAO,GAAG,cAAc,QAAQ,KAAK;AAEzC,UAAM,YAAY,cAAc,KAAK,SAAS,KAAK;AACnD,UAAM,gBAAgB,UAAU,SAAS,KAAK,UAAU,UAAU,GAAG,EAAE,IAAI,OAAO;AAClF,QAAI,SAAS,eAAe,OAAO,IAAI,CAAC;AAAA,EAC1C,CAAC;AACH;AAEA,IAAM,YAA+C,CAAC,EAAE,WAAW,MACjE,6CAAC,SAAI,OAAO;AAAA,EACV,SAAS;AAAA,EACT,iBAAiB,aAAa,UAAM,SAAS;AAAA,EAC7C,OAAO,aAAa,UAAU,UAAM;AAAA,EACpC,YAAY;AAAA,EAAK,UAAU;AAAA,EAAQ,eAAe;AAAA,EAClD,SAAS;AAAA,EAAQ,gBAAgB;AAAA,EAAiB,YAAY;AAAA,EAC9D,YAAY;AACd,GACE;AAAA,8CAAC,UAAM,uBAAa,uBAAuB,0BAAkB;AAAA,EAC5D,cAAc,4CAAC,UAAK,OAAO,EAAE,SAAS,KAAK,UAAU,MAAM,GAAG,iBAAG;AAAA,GACpE;AAGF,IAAM,YAAsB,MAC1B,6CAAC,SAAI,OAAO;AAAA,EACV,WAAW;AAAA,EAAQ,YAAY;AAAA,EAAO,WAAW,aAAa,UAAM,IAAI;AAAA,EACxE,OAAO,UAAM;AAAA,EAAS,UAAU;AAAA,EAAO,SAAS;AAAA,EAAQ,gBAAgB;AAC1E,GACE;AAAA,8CAAC,UAAK,qCAAuB;AAAA,EAC7B,4CAAC,UAAK,4BAAc;AAAA,GACtB;;;AD3GE,IAAAC,sBAAA;AAjBJ,IAAM,mBAAe,6BAAc,EAAE,OAAO,MAAM,CAAC;AACnD,IAAMC,SAAQ,OAAO,WAAW,eAAe,OAAO,OAAO,aAAa;AAOnE,IAAM,gBAA8C,CAAC,EAAE,UAAU,QAAQ,KAAK,MAAM;AACzF,qCAAgB,MAAM;AACpB,mBAAe,EAAE,MAAM,CAAC;AACxB,QAAIA,QAAO;AACT,MAAC,OAAe,eAAe;AAAA,IACjC;AAAA,EACF,GAAG,CAAC,KAAK,CAAC;AAEV,SACE,8CAAC,aAAa,UAAb,EAAsB,OAAO,EAAE,MAAM,GACnC;AAAA;AAAA,IACC,SAASA,UAAU,6CAAC,YAAS;AAAA,KACjC;AAEJ;AAEO,IAAM,iBAAiB,UAAM,0BAAW,YAAY;;;AG7B3D,IAAAC,SAAuB;AACvB,IAAAC,gBAgBO;AAQA,SAASC,UAAY,cAA6B,OAA8D;AACrH,QAAM,CAAC,KAAK,MAAM,QAAI,cAAAC,UAAc,YAAY;AAChD,QAAM,iBAAiB,SAAS;AAChC,oBAAAC,WAAe,MAAM;AAAE,qBAAiB,cAAc;AAAG,WAAO,MAAM,mBAAmB,cAAc;AAAA,EAAG,GAAG,CAAC,cAAc,CAAC;AAC7H,QAAM,aAAS,cAAAC,aAAiB,CAAC,aAAkB;AAAE,QAAI,aAAa,cAAc,EAAG,QAAO,QAAQ;AAAA,EAAG,GAAG,CAAC,gBAAgB,MAAM,CAAC;AACpI,SAAO,CAAC,KAAK,MAAM;AACrB;AAKO,SAASC,QAAU,cAAkB,QAAsB;AAAE,aAAO,cAAAC,QAAY,YAAY;AAAG;AAE/F,SAAS,WAAiD,SAAY,YAAe,MAAY,OAA2E;AACjL,QAAM,iBAAiB,OAAO,SAAS,WAAW,OAAQ,SAAS;AACnE,QAAM,YAAY,OAAO,SAAS,aAAa,OAAO;AACtD,QAAM,CAAC,OAAO,QAAQ,QAAI,cAAAC,YAAgB,SAAS,YAAY,SAAS;AACxE,oBAAAJ,WAAe,MAAM;AAAE,qBAAiB,cAAc;AAAG,WAAO,MAAM,mBAAmB,cAAc;AAAA,EAAG,GAAG,CAAC,cAAc,CAAC;AAC7H,QAAM,oBAAgB,cAAAC,aAAiB,CAAC,WAAgB;AAAE,QAAI,aAAa,cAAc,EAAG,UAAS,MAAM;AAAA,EAAG,GAAG,CAAC,gBAAgB,QAAQ,CAAC;AAC3I,SAAO,CAAC,OAAO,aAAa;AAC9B;AAEO,SAAS,QAAW,SAAkB,MAAwC,OAAmB;AACtG,QAAM,iBAAiB,SAAS;AAChC,oBAAAD,WAAe,MAAM;AAAE,QAAI,OAAO,MAAO,SAAQ,IAAI,iCAAiC,cAAc,MAAM,oCAAoC;AAAA,EAAG,GAAG,CAAC,cAAc,CAAC;AACpK,aAAO,cAAAK,SAAa,SAAS,QAAQ,CAAC,CAAC;AACzC;AAEO,SAAS,YAA+C,UAAa,MAA4B,OAAmB;AACzH,QAAM,iBAAiB,SAAS;AAChC,oBAAAL,WAAe,MAAM;AAAE,QAAI,OAAO,MAAO,SAAQ,IAAI,gCAAgC,cAAc,MAAM,oCAAoC;AAAA,EAAG,GAAG,CAAC,cAAc,CAAC;AACnK,aAAO,cAAAC,aAAiB,UAAU,IAAI;AACxC;AAEO,SAASK,WAAU,QAA8B,MAA6B,OAAgB;AACnG,QAAM,iBAAiB,SAAS;AAChC,oBAAAN,WAAe,MAAM;AAAE,wBAAoB,cAAc;AAAG,UAAM,UAAU,OAAO;AAAG,sBAAkB;AAAG,WAAO;AAAA,EAAS,GAAG,IAAI;AACpI;AAEO,SAASO,iBAAgB,QAA8B,MAA6B,OAAgB;AACzG,QAAM,iBAAiB,SAAS;AAChC,oBAAAC,iBAAqB,MAAM;AAAE,wBAAoB,cAAc;AAAG,UAAM,UAAU,OAAO;AAAG,sBAAkB;AAAG,WAAO;AAAA,EAAS,GAAG,IAAI;AAC1I;AAEO,SAAS,cAAc,QAA4D;AACxF,QAAM,CAAC,WAAWC,gBAAe,QAAI,cAAAC,eAAmB;AACxD,QAAM,iBAAiB,UAAU;AACjC,QAAM,uBAAuB,CAAC,aAAyB;AACrD,QAAI,OAAO,MAAO,SAAQ,IAAI,mCAAmC,cAAc,MAAM,oCAAoC;AACzH,IAAAD,iBAAgB,QAAQ;AAAA,EAC1B;AACA,SAAO,CAAC,WAAW,oBAAoB;AACzC;AAEO,SAAS,iBAAoB,OAAU,qBAAkC,OAAmB;AACjG,QAAM,qBAAqB,OAAO,wBAAwB,YAAY,UAAU;AAChF,QAAM,qBAAqB,qBAAqB,SAAY;AAC5D,QAAM,iBAAiB,qBAAsB,sBAAkC,SAAS;AACxF,QAAM,oBAAgB,cAAAE,kBAAsB,OAAO,kBAAkB;AACrE,oBAAAX,WAAe,MAAM;AAAE,QAAI,OAAO,SAAS,UAAU,cAAe,SAAQ,IAAI,+BAA+B,cAAc,MAAM,oCAAoC;AAAA,EAAG,GAAG,CAAC,OAAO,eAAe,cAAc,CAAC;AACnN,SAAO;AACT;AAEO,SAASY,eAAiB,cAAiB,OAAkC;AAClF,QAAM,cAAU,cAAAC,eAAmB,YAAY;AAC/C,MAAI,MAAO,CAAC,QAAgB,eAAe;AAC3C,SAAO;AACT;AAEO,IAAMC,cAAa,cAAAC;AACnB,IAAMC,SAAQ,CAAC,UAAyB,aAAM;AAC9C,IAAMC,iBAAsB;AAC5B,IAAMC,uBAA4B;AAClC,IAAMC,sBAA2B;AACjC,IAAM,uBAAwB,cAAAC;AAE9B,SAAS,IAAO,QAA4B;AACjD,aAAO,cAAAC,KAAS,MAAM;AACxB;AAEO,SAASC,eACd,aACA,SACA,OAC2B;AAC3B,QAAM,iBAAiB,SAAS;AAEhC,oBAAAtB,WAAe,MAAM;AACnB,qBAAiB,cAAc;AAC/B,WAAO,MAAM,mBAAmB,cAAc;AAAA,EAChD,GAAG,CAAC,cAAc,CAAC;AAEnB,QAAM,CAAC,OAAO,kBAAkB,IAAmB,qBAAc,aAAa,OAAO;AAErF,QAAM,oBAAgB,cAAAC,aAAiB,CAAC,YAAe;AACrD,QAAI,aAAa,cAAc,GAAG;AAChC,yBAAmB,OAAO;AAAA,IAC5B;AAAA,EACF,GAAG,CAAC,gBAAgB,kBAAkB,CAAC;AAEvC,SAAO,CAAC,OAAO,aAAa;AAC9B;AAEO,SAASsB,gBACd,QACA,cACA,WACA,OAC0E;AAE1E,QAAM,oBAAoB,OAAO,cAAc,YAAY,UAAU;AACrE,QAAM,kBAAkB,oBAAoB,SAAY;AACxD,QAAM,iBAAiB,oBAAqB,YAAwB,SAAS;AAE7E,QAAM,CAAC,OAAO,eAAe,SAAS,IAAmB;AAAA,IACvD;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,oBAAAvB,WAAe,MAAM;AACnB,qBAAiB,cAAc;AAC/B,WAAO,MAAM,mBAAmB,cAAc;AAAA,EAChD,GAAG,CAAC,cAAc,CAAC;AAEnB,QAAM,oBAAgB,cAAAC,aAAiB,CAAC,YAAqB;AAC3D,QAAI,aAAa,cAAc,GAAG;AAChC,oBAAc,OAAO;AAAA,IACvB;AAAA,EACF,GAAG,CAAC,gBAAgB,aAAa,CAAC;AAElC,SAAO,CAAC,OAAO,eAAe,SAAS;AACzC;AAEO,IAAM,WAAW,EAAE,kBAAkB,oBAAoB,cAAc,qBAAqB,mBAAmB,SAAkC,iBAAmD;;;AC5JpM,SAAS,QAAgB;AAC9B,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IAET,UAAU,QAAQ,UAAU;AAC1B,UAAI,WAAW,WAAW,WAAW,eAAe,WAAW,oBAAoB;AAEjF,cAAM,gBAAgB,cACnB,SAAS,SAAS,uBAAuB,KAAK,SAAS,SAAS,wBAAwB,MACzF,CAAC,SAAS,SAAS,2BAA2B;AAGhD,cAAM,SAAS,YAAY,SAAS,SAAS,OAAO;AAEpD,YAAI,iBAAiB,QAAQ;AAC3B,iBAAO;AAAA,QACT;AAEA,cAAM,UAAkC;AAAA,UACtC,SAAS;AAAA,UACT,aAAa;AAAA,UACb,oBAAoB;AAAA,QACtB;AAEA,eAAO,KAAK,QAAQ,QAAQ,MAAM,GAAG,UAAU,EAAE,UAAU,KAAK,CAAC;AAAA,MACnE;AACA,aAAO;AAAA,IACT;AAAA,EACF;AACF;;;ATCO,IAAMuB,YAA0B;AAChC,IAAMC,aAA2B;AACjC,IAAMC,YAA0B;AAChC,IAAMC,YAA0B;AAChC,IAAMC,iBAA+B;AACrC,IAAMC,cAA4B;AAClC,IAAMC,YAA0B;AAChC,IAAMC,gBAA8B;AACpC,IAAMC,iBAA+B;AACrC,IAAMC,aAA2B;AACjC,IAAMC,cAA4B;AAClC,IAAMC,kBAAgC;AACtC,IAAMC,QAAsB;AAC5B,IAAMC,QAAsB;AAC5B,IAAMC,mBAAiC;AACvC,IAAMC,WAAyB;AAEtC,IAAM,KAAU;AACT,IAAM,eAAe,GAAG;AACxB,IAAM,YAAY,GAAG;AACrB,IAAM,0BAA0B,GAAG;AAG1C,IAAO,gBAAQ;","names":["Children","Component","Fragment","Profiler","PureComponent","StrictMode","Suspense","cloneElement","createContext","createElement","createRef","forwardRef","isValidElement","lazy","memo","startTransition","useActionState","useContext","useDebugValue","useEffect","useId","useImperativeHandle","useInsertionEffect","useLayoutEffect","useOptimistic","useRef","useState","version","history","import_react","import_jsx_runtime","isWeb","React","import_react","useState","reactUseState","reactUseEffect","reactUseCallback","useRef","reactUseRef","reactUseReducer","reactUseMemo","useEffect","useLayoutEffect","reactUseLayoutEffect","startTransition","reactUseTransition","reactUseDeferredValue","createContext","reactCreateContext","useContext","reactUseContext","useId","useDebugValue","useImperativeHandle","useInsertionEffect","reactUseSyncExternalStore","reactUse","useOptimistic","useActionState","Children","Component","Fragment","Profiler","PureComponent","StrictMode","Suspense","cloneElement","createElement","createRef","forwardRef","isValidElement","lazy","memo","startTransition","version"]}
|
package/dist/index.mjs
CHANGED
|
@@ -681,6 +681,7 @@ var version2 = ReactNamespace.version;
|
|
|
681
681
|
var RD = ReactDOMNamespace;
|
|
682
682
|
var createPortal = RD.createPortal;
|
|
683
683
|
var flushSync = RD.flushSync;
|
|
684
|
+
var unstable_batchedUpdates = RD.unstable_batchedUpdates;
|
|
684
685
|
var index_default = ReactNamespace;
|
|
685
686
|
export {
|
|
686
687
|
BasisProvider,
|
|
@@ -717,6 +718,7 @@ export {
|
|
|
717
718
|
registerVariable,
|
|
718
719
|
startTransition2 as startTransition,
|
|
719
720
|
unregisterVariable,
|
|
721
|
+
unstable_batchedUpdates,
|
|
720
722
|
use,
|
|
721
723
|
useActionState2 as useActionState,
|
|
722
724
|
useBasisConfig,
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/core/logger.ts","../src/core/math.ts","../src/core/constants.ts","../src/engine.ts","../src/context.tsx","../src/ui/BasisHUD.tsx","../src/ui/config.ts","../src/hooks.ts"],"sourcesContent":["// src/index.ts\n\nimport * as ReactNamespace from 'react';\nimport * as ReactDOMNamespace from 'react-dom';\n\nimport { \n history, currentTickBatch, config, configureBasis, \n registerVariable, unregisterVariable, recordUpdate, \n printBasisHealthReport, beginEffectTracking, endEffectTracking, __testEngine__ \n} from './engine';\n\nimport { BasisProvider, useBasisConfig } from './context';\n\nimport { \n useState, useReducer, useMemo, useCallback, useEffect, \n useLayoutEffect, useRef, createContext, useContext, useId, \n useDebugValue, useImperativeHandle, useInsertionEffect, \n useSyncExternalStore, useTransition, useDeferredValue, __test__, \n use, useOptimistic, useActionState\n} from './hooks';\n\nexport { \n history, currentTickBatch, config, configureBasis, \n registerVariable, unregisterVariable, recordUpdate, \n printBasisHealthReport, beginEffectTracking, endEffectTracking, \n __testEngine__, BasisProvider, useBasisConfig, __test__ \n};\n\nexport { \n useState, useReducer, useMemo, useCallback, useEffect, \n useLayoutEffect, useRef, createContext, useContext, useId, \n useDebugValue, useImperativeHandle, useInsertionEffect,\n useSyncExternalStore, useTransition, useDeferredValue, use, useOptimistic, useActionState \n};\n\nexport const Children = ReactNamespace.Children;\nexport const Component = ReactNamespace.Component;\nexport const Fragment = ReactNamespace.Fragment;\nexport const Profiler = ReactNamespace.Profiler;\nexport const PureComponent = ReactNamespace.PureComponent;\nexport const StrictMode = ReactNamespace.StrictMode;\nexport const Suspense = ReactNamespace.Suspense;\nexport const cloneElement = ReactNamespace.cloneElement;\nexport const createElement = ReactNamespace.createElement;\nexport const createRef = ReactNamespace.createRef;\nexport const forwardRef = ReactNamespace.forwardRef;\nexport const isValidElement = ReactNamespace.isValidElement;\nexport const lazy = ReactNamespace.lazy;\nexport const memo = ReactNamespace.memo;\nexport const startTransition = ReactNamespace.startTransition;\nexport const version = ReactNamespace.version;\n\nconst RD: any = ReactDOMNamespace;\nexport const createPortal = RD.createPortal;\nexport const flushSync = RD.flushSync;\n\nexport { ReactNamespace as React };\nexport default ReactNamespace;\n\nexport { basis } from './vite-plugin';\n\nexport type {\n ReactNode, ReactElement, ReactPortal, FC, ComponentType,\n ComponentProps, ComponentPropsWithoutRef, ComponentPropsWithRef,\n ElementType, JSX, CSSProperties, Ref, RefObject, MutableRefObject,\n Dispatch, SetStateAction, Reducer, ChangeEvent, FormEvent,\n MouseEvent, KeyboardEvent, FocusEvent, PointerEvent, TouchEvent,\n DragEvent, SVGProps, InputHTMLAttributes, ButtonHTMLAttributes,\n AnchorHTMLAttributes, HTMLAttributes, HTMLProps, DetailedHTMLProps,\n PropsWithChildren, Attributes, Key, EffectCallback, DependencyList\n} from 'react';","// src/core/logger.ts\n\nconst isWeb = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n\nconst STYLES = {\n basis: \"background: #6c5ce7; color: white; font-weight: bold; padding: 2px 6px; border-radius: 3px;\",\n version: \"background: #a29bfe; color: #2d3436; padding: 2px 6px; border-radius: 3px; margin-left: -4px;\",\n\n headerRed: \"background: #d63031; color: white; font-weight: bold; padding: 4px 8px; border-radius: 4px;\",\n headerBlue: \"background: #0984e3; color: white; font-weight: bold; padding: 4px 8px; border-radius: 4px;\",\n headerGreen: \"background: #00b894; color: white; font-weight: bold; padding: 4px 8px; border-radius: 4px;\",\n\n label: \"background: #dfe6e9; color: #2d3436; padding: 0 4px; border-radius: 3px; font-family: monospace; font-weight: bold; border: 1px solid #b2bec3;\",\n location: \"color: #0984e3; font-family: monospace; font-weight: bold;\",\n math: \"color: #636e72; font-style: italic; font-family: serif;\",\n\n codeBlock: `\n background: #1e1e1e; \n color: #9cdcfe; \n padding: 8px 12px; \n display: block; \n margin: 4px 0; \n border-left: 3px solid #00b894; \n font-family: 'Fira Code', monospace; \n line-height: 1.4; \n border-radius: 0 3px 3px 0;\n `,\n\n dim: \"color: #e84393; font-weight: bold;\",\n bold: \"font-weight: bold;\"\n};\n\nconst parseLabel = (label: string) => {\n const parts = label.split(' -> ');\n return {\n file: parts[0] || \"Unknown\",\n name: parts[1] || label\n };\n};\n\nconst logBasis = (message: string, ...styles: string[]) => {\n if (isWeb) {\n console.log(message, ...styles);\n } else {\n console.log(message.replace(/%c/g, ''));\n }\n};\n\nexport const displayBootLog = (windowSize: number) => {\n logBasis(\n `%cBasis%cAuditor%c Monitoring State Space | Window: ${windowSize} ticks`,\n STYLES.basis,\n STYLES.version,\n \"color: #636e72; font-style: italic; margin-left: 8px;\"\n );\n};\n\nexport const displayRedundancyAlert = (labelA: string, labelB: string, sim: number, totalDimensions: number) => {\n const infoA = parseLabel(labelA);\n const infoB = parseLabel(labelB);\n const isCrossFile = infoA.file !== infoB.file;\n\n if (isWeb) {\n console.group(`%c š BASIS | DIMENSION COLLAPSE DETECTED `, STYLES.headerRed);\n console.log(`%cš Location: %c${isCrossFile ? `${infoA.file} & ${infoB.file}` : infoA.file}`, STYLES.bold, STYLES.location);\n console.log(\n `%cAnalysis:%c Vectors %c${infoA.name}%c and %c${infoB.name}%c are collinear (redundant).`,\n STYLES.bold, \"\", STYLES.label, \"\", STYLES.label, \"\"\n );\n console.log(\n `%cHow to fix:%c Project %c${infoB.name}%c as a derived value:\n%c// š ļø Basis Fix: Remove useState, use useMemo\nconst ${infoB.name} = useMemo(() => deriveFrom(${infoA.name}), [${infoA.name}]);%c`,\n \"color: #00b894; font-weight: bold;\", \"\",\n \"color: #e84393; font-weight: bold;\", \"\",\n STYLES.codeBlock, \"\"\n );\n console.groupCollapsed(`%c š¬ Proof Details `, \"color: #636e72; font-size: 10px; cursor: pointer;\");\n console.table({\n \"Similarity\": `${(sim * 100).toFixed(2)}%`,\n \"Linear Dependency\": \"TRUE\",\n \"Rank\": totalDimensions - 1\n });\n console.groupEnd();\n console.groupEnd();\n } else {\n console.log(`[BASIS] REDUNDANCY DETECTED: ${infoA.name} <-> ${infoB.name} (${(sim * 100).toFixed(0)}% similarity)`);\n console.log(`Location: ${isCrossFile ? `${infoA.file} & ${infoB.file}` : infoA.file}`);\n }\n};\n\nexport const displayCausalHint = (targetLabel: string, sourceLabel: string) => {\n const target = parseLabel(targetLabel);\n const source = parseLabel(sourceLabel);\n\n const isCrossFile = target.file !== source.file;\n const locationPath = isCrossFile\n ? `${source.file} ā ${target.file}`\n : target.file;\n\n if (isWeb) {\n console.groupCollapsed(`%c š” BASIS | CAUSALITY (Sequential Update) `, STYLES.headerBlue);\n console.log(`%cš Location: %c${locationPath}`, STYLES.bold, STYLES.location);\n console.log(\n `%cSequence:%c %c${source.name}%c ā Effect ā %c${target.name}%c`,\n STYLES.bold, \"\", STYLES.label, \"\", STYLES.label, \"\"\n );\n console.log(\n `%cObservation:%c Variable %c${target.name}%c is being manually synchronized. This creates a %c\"Double Render Cycle\"%c.`,\n STYLES.bold, \"\", STYLES.label, \"\", \"color: #d63031; font-weight: bold;\", \"\"\n );\n console.groupEnd();\n } else {\n console.log(`[BASIS] CAUSALITY: ${source.name} ā ${target.name} (Double Render Cycle)`);\n }\n};\n\nexport const displayInfiniteLoop = (label: string) => {\n const info = parseLabel(label);\n if (isWeb) {\n console.group(`%c š BASIS CRITICAL | CIRCUIT BREAKER `, STYLES.headerRed);\n console.error(\n `Infinite oscillation detected on: %c${info.name}%c\\nExecution halted to prevent browser thread lock.`,\n \"color: white; background: #d63031; padding: 2px 4px; border-radius: 3px;\", \"\"\n );\n console.groupEnd();\n } else {\n console.log(`[BASIS CRITICAL] INFINITE LOOP ON: ${info.name}. Execution halted.`);\n }\n};\n\nexport const displayHealthReport = (\n history: Map<string, number[]>,\n similarityFn: (A: number[], B: number[]) => number,\n threshold: number\n) => {\n const entries = Array.from(history.entries());\n const totalVars = entries.length;\n if (totalVars === 0) return;\n\n const clusters: string[][] = [];\n const processed = new Set<string>();\n let independentCount = 0;\n\n entries.forEach(([labelA, vecA]) => {\n if (processed.has(labelA)) return;\n const currentCluster = [labelA];\n processed.add(labelA);\n entries.forEach(([labelB, vecB]) => {\n if (labelA === labelB || processed.has(labelB)) return;\n const sim = similarityFn(vecA, vecB);\n if (sim > threshold) {\n currentCluster.push(labelB);\n processed.add(labelB);\n }\n });\n if (currentCluster.length > 1) {\n clusters.push(currentCluster);\n } else {\n independentCount++;\n }\n });\n\n const systemRank = independentCount + clusters.length;\n const efficiency = (systemRank / totalVars) * 100;\n\n if (isWeb) {\n console.group(`%c š BASIS | SYSTEM HEALTH REPORT `, STYLES.headerGreen);\n console.log(\n `%cBasis Efficiency: %c${efficiency.toFixed(1)}% %c(Rank: ${systemRank}/${totalVars})`,\n STYLES.bold,\n `color: ${efficiency > 85 ? '#00b894' : '#d63031'}; font-size: 16px; font-weight: bold;`,\n \"color: #636e72; font-style: italic;\"\n );\n\n if (clusters.length > 0) {\n console.log(`%cDetected ${clusters.length} Redundancy Clusters:`, \"font-weight: bold; color: #e17055; margin-top: 10px;\");\n clusters.forEach((cluster, idx) => {\n const names = cluster.map(l => parseLabel(l).name).join(' ā· ');\n console.log(` %c${idx + 1}%c ${names}`, \"background: #e17055; color: white; border-radius: 50%; padding: 0 5px;\", \"font-family: monospace;\");\n });\n } else {\n console.log(\"%c⨠All state variables are linearly independent. Your Basis is optimal.\", \"color: #00b894; font-weight: bold; margin-top: 10px;\");\n }\n\n if (totalVars > 0 && totalVars < 15) {\n console.groupCollapsed(\"%cView Full Correlation Matrix\", \"color: #636e72; font-size: 11px;\");\n const matrix: any = {};\n entries.forEach(([labelA]) => {\n const nameA = parseLabel(labelA).name;\n matrix[nameA] = {};\n entries.forEach(([labelB]) => {\n const nameB = parseLabel(labelB).name;\n const sim = similarityFn(history.get(labelA)!, history.get(labelB)!);\n matrix[nameA][nameB] = sim > threshold ? `ā ${(sim * 100).toFixed(0)}%` : `ā
`;\n });\n });\n console.table(matrix);\n console.groupEnd();\n }\n console.groupEnd();\n } else {\n console.log(`[BASIS HEALTH] Efficiency: ${efficiency.toFixed(1)}% (Rank: ${systemRank}/${totalVars})`);\n if (clusters.length > 0) {\n console.log(`Redundancy Clusters: ${clusters.length}`);\n }\n }\n};","// src/core/math.ts\n\nexport const calculateCosineSimilarity = (A: number[], B: number[]): number => {\n let dot = 0, magA = 0, magB = 0;\n for (let i = 0; i < A.length; i++) {\n dot += A[i] * B[i];\n magA += A[i] * A[i];\n magB += B[i] * B[i];\n }\n return magA && magB ? dot / (Math.sqrt(magA) * Math.sqrt(magB)) : 0;\n};","// src/core/constants.ts\n\nexport const WINDOW_SIZE = 50;\nexport const SIMILARITY_THRESHOLD = 0.88;\nexport const LOOP_THRESHOLD = 25;\nexport const LOOP_WINDOW_MS = 500;\nexport const ANALYSIS_INTERVAL = 5;","import * as UI from './core/logger';\nimport { calculateCosineSimilarity } from './core/math';\nimport { \n WINDOW_SIZE, \n SIMILARITY_THRESHOLD, \n LOOP_THRESHOLD, \n LOOP_WINDOW_MS, \n ANALYSIS_INTERVAL \n} from './core/constants';\n\ninterface BasisEngineState {\n config: { debug: boolean };\n history: Map<string, number[]>;\n currentTickBatch: Set<string>;\n redundantLabels: Set<string>;\n booted: boolean;\n updateLog: { label: string; ts: number }[];\n tick: number;\n isBatching: boolean;\n currentEffectSource: string | null;\n}\n\nconst GLOBAL_KEY = '__BASIS_ENGINE_INSTANCE__';\n\nconst getGlobalInstance = (): BasisEngineState => {\n const g = (typeof window !== 'undefined' ? window : global) as any;\n if (!g[GLOBAL_KEY]) {\n g[GLOBAL_KEY] = {\n config: { debug: false },\n history: new Map<string, number[]>(),\n currentTickBatch: new Set<string>(),\n redundantLabels: new Set<string>(),\n booted: false,\n updateLog: [],\n tick: 0,\n isBatching: false,\n currentEffectSource: null\n };\n }\n return g[GLOBAL_KEY];\n};\n\nconst instance = getGlobalInstance();\n\nexport const config = instance.config;\nexport const history = instance.history;\nexport const currentTickBatch = instance.currentTickBatch;\nexport const redundantLabels = instance.redundantLabels;\n\nexport const configureBasis = (newConfig: Partial<{ debug: boolean }>) => {\n Object.assign(instance.config, newConfig);\n\n if (instance.config.debug && !instance.booted) {\n UI.displayBootLog(WINDOW_SIZE);\n instance.booted = true;\n }\n};\n\nconst analyzeBasis = () => {\n if (!instance.config.debug) {\n instance.redundantLabels.clear();\n return;\n }\n\n const entries = Array.from(instance.history.entries());\n if (entries.length < 2) return;\n\n const newRedundant = new Set<string>();\n\n entries.forEach(([labelA, vecA], i) => {\n entries.slice(i + 1).forEach(([labelB, vecB]) => {\n const sim = calculateCosineSimilarity(vecA, vecB);\n \n if (sim > SIMILARITY_THRESHOLD) {\n newRedundant.add(labelA);\n newRedundant.add(labelB);\n UI.displayRedundancyAlert(labelA, labelB, sim, instance.history.size);\n }\n });\n });\n\n instance.redundantLabels.clear();\n newRedundant.forEach(label => instance.redundantLabels.add(label));\n};\n\nexport const recordUpdate = (label: string): boolean => {\n if (!instance.config.debug) return true;\n\n const now = Date.now();\n\n // CIRCUIT BREAKER\n instance.updateLog.push({ label, ts: now });\n instance.updateLog = instance.updateLog.filter(e => now - e.ts < LOOP_WINDOW_MS);\n \n if (instance.updateLog.filter(e => e.label === label).length > LOOP_THRESHOLD) {\n UI.displayInfiniteLoop(label);\n return false;\n }\n\n // CAUSAL HINT\n if (instance.currentEffectSource && instance.currentEffectSource !== label) {\n UI.displayCausalHint(label, instance.currentEffectSource);\n }\n\n // BATCHING (20ms)\n instance.currentTickBatch.add(label);\n\n if (!instance.isBatching) {\n instance.isBatching = true;\n setTimeout(() => {\n instance.tick++;\n \n instance.history.forEach((vec, l) => {\n vec.shift();\n vec.push(instance.currentTickBatch.has(l) ? 1 : 0);\n });\n\n instance.currentTickBatch.clear();\n instance.isBatching = false;\n \n if (instance.tick % ANALYSIS_INTERVAL === 0) {\n analyzeBasis();\n }\n }, 20);\n }\n\n return true;\n};\n\n// LIFECYCLE \nexport const beginEffectTracking = (label: string) => { \n if (instance.config.debug) instance.currentEffectSource = label; \n};\n\nexport const endEffectTracking = () => { \n instance.currentEffectSource = null; \n};\n\nexport const registerVariable = (label: string) => {\n if (!instance.config.debug) return; \n\n if (!instance.history.has(label)) {\n instance.history.set(label, new Array(WINDOW_SIZE).fill(0));\n }\n};\n\nexport const unregisterVariable = (label: string) => {\n instance.history.delete(label);\n};\n\nexport const printBasisHealthReport = (threshold = 0.5) => {\n if (!instance.config.debug) {\n console.warn(\"[Basis] Cannot generate report. Debug mode is OFF.\");\n return;\n }\n UI.displayHealthReport(instance.history, calculateCosineSimilarity, threshold);\n};\n\nif (typeof window !== 'undefined') {\n (window as any).printBasisReport = printBasisHealthReport;\n}\n\nexport const __testEngine__ = {\n instance,\n config: instance.config,\n history: instance.history,\n currentTickBatch: instance.currentTickBatch,\n configureBasis,\n registerVariable,\n recordUpdate,\n printBasisHealthReport,\n beginEffectTracking,\n endEffectTracking,\n};","// src/context.tsx\n\nimport React, { createContext, useContext, ReactNode, useLayoutEffect } from 'react';\nimport { configureBasis } from './engine';\nimport { BasisHUD } from './ui/BasisHUD';\n\nconst BasisContext = createContext({ debug: false });\nconst isWeb = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n\ninterface BasisProviderProps {\n children: ReactNode;\n debug?: boolean;\n}\n\nexport const BasisProvider: React.FC<BasisProviderProps> = ({ children, debug = true }) => {\n useLayoutEffect(() => {\n configureBasis({ debug });\n if (isWeb) {\n (window as any)._basis_debug = debug;\n }\n }, [debug]);\n\n return (\n <BasisContext.Provider value={{ debug }}>\n {children}\n {(debug && isWeb) && <BasisHUD />}\n </BasisContext.Provider>\n );\n};\n\nexport const useBasisConfig = () => useContext(BasisContext);","// src/ui/BasisHUD.tsx\n\nimport React, { useEffect, useRef, useState } from 'react';\nimport { history, redundantLabels } from '../engine';\nimport { HUD_DIMENSIONS as DIM, getHUDContainerStyle, HUD_THEME as THEME } from './config';\n\nexport const BasisHUD: React.FC = () => {\n const [isExpanded, setIsExpanded] = useState(false);\n const canvasRef = useRef<HTMLCanvasElement>(null);\n\n useEffect(() => {\n if (!isExpanded) return;\n\n let animationFrame: number;\n\n const draw = () => {\n const canvas = canvasRef.current;\n if (!canvas) return;\n const ctx = canvas.getContext('2d');\n if (!ctx) return;\n\n const entries = Array.from(history.entries());\n const dpr = window.devicePixelRatio || 1;\n\n const rawWidth = (DIM.WINDOW_SIZE * DIM.COL_WIDTH) + DIM.LABEL_WIDTH + (DIM.PADDING * 2);\n const rawHeight = Math.max(entries.length * DIM.ROW_HEIGHT + (DIM.PADDING * 2), 60);\n\n updateCanvasSize(canvas, rawWidth, rawHeight, dpr);\n\n ctx.save();\n ctx.scale(dpr, dpr);\n ctx.clearRect(0, 0, rawWidth, rawHeight);\n\n if (entries.length === 0) {\n renderEmptyState(ctx);\n } else {\n renderMatrix(ctx, entries);\n }\n\n ctx.restore();\n animationFrame = requestAnimationFrame(draw);\n };\n\n draw();\n return () => cancelAnimationFrame(animationFrame);\n }, [isExpanded]);\n\n return (\n <div style={getHUDContainerStyle(isExpanded)} onClick={() => setIsExpanded(!isExpanded)}>\n <HUDHeader isExpanded={isExpanded} />\n {isExpanded && (\n <div style={{ padding: '10px 14px 15px 14px' }}>\n <canvas ref={canvasRef} style={{ display: 'block' }} />\n <HUDFooter />\n </div>\n )}\n </div>\n );\n};\n\nfunction updateCanvasSize(canvas: HTMLCanvasElement, w: number, h: number, dpr: number) {\n const targetW = Math.floor(w * dpr);\n const targetH = Math.floor(h * dpr);\n if (canvas.width !== targetW || canvas.height !== targetH) {\n canvas.width = targetW;\n canvas.height = targetH;\n canvas.style.width = `${w}px`;\n canvas.style.height = `${h}px`;\n }\n}\n\nfunction renderEmptyState(ctx: CanvasRenderingContext2D) {\n ctx.fillStyle = THEME.textDim;\n ctx.font = '11px Inter, sans-serif';\n ctx.fillText('Waiting for state transitions...', DIM.PADDING, 30);\n}\n\nfunction renderMatrix(ctx: CanvasRenderingContext2D, entries: [string, number[]][]) {\n entries.forEach(([label, vector], rowIndex) => {\n const y = rowIndex * DIM.ROW_HEIGHT + DIM.PADDING;\n const stateName = label.split(' -> ')[1] || label;\n const isRedundant = redundantLabels.has(label);\n\n vector.forEach((bit, colIndex) => {\n const x = colIndex * DIM.COL_WIDTH + DIM.PADDING;\n ctx.fillStyle = bit === 1 ? (isRedundant ? THEME.error : THEME.success) : THEME.grid;\n\n const w = DIM.COL_WIDTH - 1.5;\n const h = DIM.ROW_HEIGHT - 4;\n\n if (ctx.roundRect) {\n ctx.beginPath();\n ctx.roundRect(x, y, w, h, DIM.RADIUS);\n ctx.fill();\n } else {\n ctx.fillRect(x, y, w, h);\n }\n });\n\n const textX = (DIM.WINDOW_SIZE * DIM.COL_WIDTH) + DIM.PADDING + 10;\n ctx.fillStyle = isRedundant ? THEME.error : THEME.text;\n ctx.font = `${isRedundant ? '600' : '400'} 11px Inter, Menlo, monospace`;\n \n const cleanName = isRedundant ? `! ${stateName}` : stateName;\n const truncatedName = cleanName.length > 18 ? cleanName.substring(0, 16) + '..' : cleanName;\n ctx.fillText(truncatedName, textX, y + 9);\n });\n}\n\nconst HUDHeader: React.FC<{ isExpanded: boolean }> = ({ isExpanded }) => (\n <div style={{ \n padding: '10px 14px', \n backgroundColor: isExpanded ? THEME.header : 'transparent', \n color: isExpanded ? 'white' : THEME.header,\n fontWeight: 600, fontSize: '11px', letterSpacing: '0.05em',\n display: 'flex', justifyContent: 'space-between', alignItems: 'center',\n transition: 'background 0.3s'\n }}>\n <span>{isExpanded ? 'STATE BASIS MATRIX' : 'š BASIS ACTIVE'}</span>\n {isExpanded && <span style={{ opacity: 0.8, fontSize: '9px' }}>R50</span>}\n </div>\n);\n\nconst HUDFooter: React.FC = () => (\n <div style={{ \n marginTop: '12px', paddingTop: '8px', borderTop: `1px solid ${THEME.grid}`,\n color: THEME.textDim, fontSize: '9px', display: 'flex', justifyContent: 'space-between'\n }}>\n <span>LINEAR DEPENDENCY AUDIT</span>\n <span>THRESHOLD 0.88</span>\n </div>\n);\n","// src/ui/config.ts\n\nimport { WINDOW_SIZE } from '../core/constants';\n\nexport const HUD_DIMENSIONS = {\n WINDOW_SIZE,\n ROW_HEIGHT: 16,\n COL_WIDTH: 5,\n LABEL_WIDTH: 100,\n PADDING: 10,\n RADIUS: 1.5,\n};\n\nexport const HUD_THEME = {\n bg: 'rgba(15, 23, 42, 0.95)',\n border: '#334155',\n header: '#8b5cf6',\n text: '#f1f5f9',\n textDim: '#94a3b8',\n success: '#10b981',\n error: '#ef4444',\n grid: '#1e293b',\n};\n\nexport const getHUDContainerStyle = (isExpanded: boolean): React.CSSProperties => ({\n position: 'fixed',\n bottom: '20px',\n right: '20px',\n backgroundColor: HUD_THEME.bg,\n border: `1px solid ${HUD_THEME.border}`,\n borderRadius: '12px',\n backdropFilter: 'blur(8px)',\n boxShadow: '0 10px 25px -5px rgba(0, 0, 0, 0.3), 0 8px 10px -6px rgba(0, 0, 0, 0.3)',\n zIndex: 999999,\n overflow: 'hidden',\n width: isExpanded ? '380px' : '130px',\n transition: 'all 0.3s cubic-bezier(0.4, 0, 0.2, 1)',\n cursor: 'pointer',\n userSelect: 'none',\n WebkitUserSelect: 'none'\n});","// src/hooks.ts\nimport * as React from 'react';\nimport {\n useState as reactUseState,\n useEffect as reactUseEffect,\n useMemo as reactUseMemo,\n useReducer as reactUseReducer,\n useContext as reactUseContext,\n useSyncExternalStore as reactUseSyncExternalStore, \n createContext as reactCreateContext,\n useRef as reactUseRef,\n useLayoutEffect as reactUseLayoutEffect,\n useCallback as reactUseCallback,\n useTransition as reactUseTransition,\n useDeferredValue as reactUseDeferredValue,\n use as reactUse,\n useOptimistic as reactUseOptimistic,\n useActionState as reactUseActionState\n} from 'react';\n\nimport { registerVariable, unregisterVariable, recordUpdate, beginEffectTracking, endEffectTracking, config } from './engine';\nimport * as engine from './engine';\n\ntype GetReducerState<R extends React.Reducer<any, any>> = R extends React.Reducer<infer S, any> ? S : never;\ntype GetReducerAction<R extends React.Reducer<any, any>> = R extends React.Reducer<any, infer A> ? A : never;\n\nexport function useState<S>(initialState: S | (() => S), label?: string): [S, React.Dispatch<React.SetStateAction<S>>] {\n const [val, setVal] = reactUseState(initialState);\n const effectiveLabel = label || 'anonymous_state';\n reactUseEffect(() => { registerVariable(effectiveLabel); return () => unregisterVariable(effectiveLabel); }, [effectiveLabel]);\n const setter = reactUseCallback((newValue: any) => { if (recordUpdate(effectiveLabel)) setVal(newValue); }, [effectiveLabel, setVal]);\n return [val, setter];\n}\n\nexport function useRef<T>(initialValue: T): React.RefObject<T>;\nexport function useRef<T>(initialValue: T | null): React.RefObject<T>;\nexport function useRef<T = undefined>(): React.MutableRefObject<T | undefined>;\nexport function useRef<T>(initialValue?: T, _label?: string): any { return reactUseRef(initialValue); }\n\nexport function useReducer<R extends React.Reducer<any, any>, I>(reducer: R, initialArg: I, init?: any, label?: string): [GetReducerState<R>, React.Dispatch<GetReducerAction<R>>] {\n const effectiveLabel = typeof init === 'string' ? init : (label || 'anonymous_reducer');\n const reactInit = typeof init === 'function' ? init : undefined;\n const [state, dispatch] = reactUseReducer(reducer, initialArg, reactInit);\n reactUseEffect(() => { registerVariable(effectiveLabel); return () => unregisterVariable(effectiveLabel); }, [effectiveLabel]);\n const basisDispatch = reactUseCallback((action: any) => { if (recordUpdate(effectiveLabel)) dispatch(action); }, [effectiveLabel, dispatch]);\n return [state, basisDispatch] as any;\n}\n\nexport function useMemo<T>(factory: () => T, deps: React.DependencyList | undefined, label?: string): T {\n const effectiveLabel = label || 'anonymous_projection';\n reactUseEffect(() => { if (config.debug) console.log(`%c [Basis] Valid Projection: \"${effectiveLabel}\" `, \"color: #2ecc71; font-weight: bold;\"); }, [effectiveLabel]);\n return reactUseMemo(factory, deps || []);\n}\n\nexport function useCallback<T extends (...args: any[]) => any>(callback: T, deps: React.DependencyList, label?: string): T {\n const effectiveLabel = label || 'anonymous_callback';\n reactUseEffect(() => { if (config.debug) console.log(`%c [Basis] Stable Callback: \"${effectiveLabel}\" `, \"color: #2ecc71; font-weight: bold;\"); }, [effectiveLabel]);\n return reactUseCallback(callback, deps);\n}\n\nexport function useEffect(effect: React.EffectCallback, deps?: React.DependencyList, label?: string) {\n const effectiveLabel = label || 'anonymous_effect';\n reactUseEffect(() => { beginEffectTracking(effectiveLabel); const cleanup = effect(); endEffectTracking(); return cleanup; }, deps);\n}\n\nexport function useLayoutEffect(effect: React.EffectCallback, deps?: React.DependencyList, label?: string) {\n const effectiveLabel = label || 'anonymous_layout_effect';\n reactUseLayoutEffect(() => { beginEffectTracking(effectiveLabel); const cleanup = effect(); endEffectTracking(); return cleanup; }, deps);\n}\n\nexport function useTransition(_label?: string): [boolean, (callback: () => void) => void] {\n const [isPending, startTransition] = reactUseTransition();\n const effectiveLabel = _label || 'anonymous_transition';\n const basisStartTransition = (callback: () => void) => {\n if (config.debug) console.log(`%c [Basis] Transition Started: \"${effectiveLabel}\" `, \"color: #e67e22; font-weight: bold;\");\n startTransition(callback);\n };\n return [isPending, basisStartTransition];\n}\n\nexport function useDeferredValue<T>(value: T, initialValueOrLabel?: T | string, label?: string): T {\n const isLabelAsSecondArg = typeof initialValueOrLabel === 'string' && label === undefined;\n const actualInitialValue = isLabelAsSecondArg ? undefined : initialValueOrLabel as T;\n const effectiveLabel = isLabelAsSecondArg ? (initialValueOrLabel as string) : (label || 'anonymous_deferred');\n const deferredValue = reactUseDeferredValue(value, actualInitialValue);\n reactUseEffect(() => { if (config.debug && value !== deferredValue) console.log(`%c [Basis] Value Deferred: \"${effectiveLabel}\" `, \"color: #e67e22; font-weight: bold;\"); }, [value, deferredValue, effectiveLabel]);\n return deferredValue;\n}\n\nexport function createContext<T>(defaultValue: T, label?: string): React.Context<T> {\n const context = reactCreateContext(defaultValue);\n if (label) (context as any)._basis_label = label;\n return context;\n}\n\nexport const useContext = reactUseContext;\nexport const useId = (label?: string) => React.useId();\nexport const useDebugValue = React.useDebugValue;\nexport const useImperativeHandle = React.useImperativeHandle;\nexport const useInsertionEffect = React.useInsertionEffect;\nexport const useSyncExternalStore = (reactUseSyncExternalStore as any);\n\nexport function use<T>(usable: React.Usable<T>): T {\n return reactUse(usable);\n}\n\nexport function useOptimistic<S, P>(\n passthrough: S,\n reducer?: (state: S, payload: P) => S,\n label?: string\n): [S, (payload: P) => void] {\n const effectiveLabel = label || 'anonymous_optimistic';\n \n reactUseEffect(() => {\n registerVariable(effectiveLabel);\n return () => unregisterVariable(effectiveLabel);\n }, [effectiveLabel]);\n\n const [state, reactAddOptimistic] = (React as any).useOptimistic(passthrough, reducer) as [S, (p: P) => void];\n\n const addOptimistic = reactUseCallback((payload: P) => {\n if (recordUpdate(effectiveLabel)) {\n reactAddOptimistic(payload);\n }\n }, [effectiveLabel, reactAddOptimistic]);\n\n return [state, addOptimistic];\n}\n\nexport function useActionState<State, Payload>(\n action: (state: State, payload: Payload) => Promise<State> | State,\n initialState: State,\n permalink?: string,\n label?: string\n): [state: State, dispatch: (payload: Payload) => void, isPending: boolean] {\n \n const isLabelAsThirdArg = typeof permalink === 'string' && label === undefined;\n const actualPermalink = isLabelAsThirdArg ? undefined : permalink;\n const effectiveLabel = isLabelAsThirdArg ? (permalink as string) : (label || 'anonymous_action_state');\n\n const [state, reactDispatch, isPending] = (React as any).useActionState(\n action, \n initialState, \n actualPermalink\n ) as [State, (p: Payload) => void, boolean];\n\n reactUseEffect(() => {\n registerVariable(effectiveLabel);\n return () => unregisterVariable(effectiveLabel);\n }, [effectiveLabel]);\n\n const basisDispatch = reactUseCallback((payload: Payload) => {\n if (recordUpdate(effectiveLabel)) {\n reactDispatch(payload);\n }\n }, [effectiveLabel, reactDispatch]);\n\n return [state, basisDispatch, isPending];\n}\n\nexport const __test__ = { registerVariable, unregisterVariable, recordUpdate, beginEffectTracking, endEffectTracking, history: (engine as any).history, currentTickBatch: (engine as any).currentTickBatch };"],"mappings":"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","names":["history","jsx","jsxs","isWeb","React","useState","useRef","useEffect","useLayoutEffect","startTransition","createContext","useContext","useId","useDebugValue","useImperativeHandle","useInsertionEffect","useOptimistic","useActionState","Children","Component","Fragment","Profiler","PureComponent","StrictMode","Suspense","cloneElement","createElement","createRef","forwardRef","isValidElement","lazy","memo","startTransition","version"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/core/logger.ts","../src/core/math.ts","../src/core/constants.ts","../src/engine.ts","../src/context.tsx","../src/ui/BasisHUD.tsx","../src/ui/config.ts","../src/hooks.ts"],"sourcesContent":["// src/index.ts\n\nimport * as ReactNamespace from 'react';\nimport * as ReactDOMNamespace from 'react-dom';\n\nimport { \n history, currentTickBatch, config, configureBasis, \n registerVariable, unregisterVariable, recordUpdate, \n printBasisHealthReport, beginEffectTracking, endEffectTracking, __testEngine__ \n} from './engine';\n\nimport { BasisProvider, useBasisConfig } from './context';\n\nimport { \n useState, useReducer, useMemo, useCallback, useEffect, \n useLayoutEffect, useRef, createContext, useContext, useId, \n useDebugValue, useImperativeHandle, useInsertionEffect, \n useSyncExternalStore, useTransition, useDeferredValue, __test__, \n use, useOptimistic, useActionState\n} from './hooks';\n\nexport { \n history, currentTickBatch, config, configureBasis, \n registerVariable, unregisterVariable, recordUpdate, \n printBasisHealthReport, beginEffectTracking, endEffectTracking, \n __testEngine__, BasisProvider, useBasisConfig, __test__ \n};\n\nexport { \n useState, useReducer, useMemo, useCallback, useEffect, \n useLayoutEffect, useRef, createContext, useContext, useId, \n useDebugValue, useImperativeHandle, useInsertionEffect,\n useSyncExternalStore, useTransition, useDeferredValue, use, useOptimistic, useActionState \n};\n\nexport const Children = ReactNamespace.Children;\nexport const Component = ReactNamespace.Component;\nexport const Fragment = ReactNamespace.Fragment;\nexport const Profiler = ReactNamespace.Profiler;\nexport const PureComponent = ReactNamespace.PureComponent;\nexport const StrictMode = ReactNamespace.StrictMode;\nexport const Suspense = ReactNamespace.Suspense;\nexport const cloneElement = ReactNamespace.cloneElement;\nexport const createElement = ReactNamespace.createElement;\nexport const createRef = ReactNamespace.createRef;\nexport const forwardRef = ReactNamespace.forwardRef;\nexport const isValidElement = ReactNamespace.isValidElement;\nexport const lazy = ReactNamespace.lazy;\nexport const memo = ReactNamespace.memo;\nexport const startTransition = ReactNamespace.startTransition;\nexport const version = ReactNamespace.version;\n\nconst RD: any = ReactDOMNamespace;\nexport const createPortal = RD.createPortal;\nexport const flushSync = RD.flushSync;\nexport const unstable_batchedUpdates = RD.unstable_batchedUpdates;\n\nexport { ReactNamespace as React };\nexport default ReactNamespace;\n\nexport { basis } from './vite-plugin';\n\nexport type {\n ReactNode, ReactElement, ReactPortal, FC, ComponentType,\n ComponentProps, ComponentPropsWithoutRef, ComponentPropsWithRef,\n ElementType, JSX, CSSProperties, Ref, RefObject, MutableRefObject,\n Dispatch, SetStateAction, Reducer, ChangeEvent, FormEvent,\n MouseEvent, KeyboardEvent, FocusEvent, PointerEvent, TouchEvent,\n DragEvent, SVGProps, InputHTMLAttributes, ButtonHTMLAttributes,\n AnchorHTMLAttributes, HTMLAttributes, HTMLProps, DetailedHTMLProps,\n PropsWithChildren, Attributes, Key, EffectCallback, DependencyList\n} from 'react';","// src/core/logger.ts\n\nconst isWeb = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n\nconst STYLES = {\n basis: \"background: #6c5ce7; color: white; font-weight: bold; padding: 2px 6px; border-radius: 3px;\",\n version: \"background: #a29bfe; color: #2d3436; padding: 2px 6px; border-radius: 3px; margin-left: -4px;\",\n\n headerRed: \"background: #d63031; color: white; font-weight: bold; padding: 4px 8px; border-radius: 4px;\",\n headerBlue: \"background: #0984e3; color: white; font-weight: bold; padding: 4px 8px; border-radius: 4px;\",\n headerGreen: \"background: #00b894; color: white; font-weight: bold; padding: 4px 8px; border-radius: 4px;\",\n\n label: \"background: #dfe6e9; color: #2d3436; padding: 0 4px; border-radius: 3px; font-family: monospace; font-weight: bold; border: 1px solid #b2bec3;\",\n location: \"color: #0984e3; font-family: monospace; font-weight: bold;\",\n math: \"color: #636e72; font-style: italic; font-family: serif;\",\n\n codeBlock: `\n background: #1e1e1e; \n color: #9cdcfe; \n padding: 8px 12px; \n display: block; \n margin: 4px 0; \n border-left: 3px solid #00b894; \n font-family: 'Fira Code', monospace; \n line-height: 1.4; \n border-radius: 0 3px 3px 0;\n `,\n\n dim: \"color: #e84393; font-weight: bold;\",\n bold: \"font-weight: bold;\"\n};\n\nconst parseLabel = (label: string) => {\n const parts = label.split(' -> ');\n return {\n file: parts[0] || \"Unknown\",\n name: parts[1] || label\n };\n};\n\nconst logBasis = (message: string, ...styles: string[]) => {\n if (isWeb) {\n console.log(message, ...styles);\n } else {\n console.log(message.replace(/%c/g, ''));\n }\n};\n\nexport const displayBootLog = (windowSize: number) => {\n logBasis(\n `%cBasis%cAuditor%c Monitoring State Space | Window: ${windowSize} ticks`,\n STYLES.basis,\n STYLES.version,\n \"color: #636e72; font-style: italic; margin-left: 8px;\"\n );\n};\n\nexport const displayRedundancyAlert = (labelA: string, labelB: string, sim: number, totalDimensions: number) => {\n const infoA = parseLabel(labelA);\n const infoB = parseLabel(labelB);\n const isCrossFile = infoA.file !== infoB.file;\n\n if (isWeb) {\n console.group(`%c š BASIS | DIMENSION COLLAPSE DETECTED `, STYLES.headerRed);\n console.log(`%cš Location: %c${isCrossFile ? `${infoA.file} & ${infoB.file}` : infoA.file}`, STYLES.bold, STYLES.location);\n console.log(\n `%cAnalysis:%c Vectors %c${infoA.name}%c and %c${infoB.name}%c are collinear (redundant).`,\n STYLES.bold, \"\", STYLES.label, \"\", STYLES.label, \"\"\n );\n console.log(\n `%cHow to fix:%c Project %c${infoB.name}%c as a derived value:\n%c// š ļø Basis Fix: Remove useState, use useMemo\nconst ${infoB.name} = useMemo(() => deriveFrom(${infoA.name}), [${infoA.name}]);%c`,\n \"color: #00b894; font-weight: bold;\", \"\",\n \"color: #e84393; font-weight: bold;\", \"\",\n STYLES.codeBlock, \"\"\n );\n console.groupCollapsed(`%c š¬ Proof Details `, \"color: #636e72; font-size: 10px; cursor: pointer;\");\n console.table({\n \"Similarity\": `${(sim * 100).toFixed(2)}%`,\n \"Linear Dependency\": \"TRUE\",\n \"Rank\": totalDimensions - 1\n });\n console.groupEnd();\n console.groupEnd();\n } else {\n console.log(`[BASIS] REDUNDANCY DETECTED: ${infoA.name} <-> ${infoB.name} (${(sim * 100).toFixed(0)}% similarity)`);\n console.log(`Location: ${isCrossFile ? `${infoA.file} & ${infoB.file}` : infoA.file}`);\n }\n};\n\nexport const displayCausalHint = (targetLabel: string, sourceLabel: string) => {\n const target = parseLabel(targetLabel);\n const source = parseLabel(sourceLabel);\n\n const isCrossFile = target.file !== source.file;\n const locationPath = isCrossFile\n ? `${source.file} ā ${target.file}`\n : target.file;\n\n if (isWeb) {\n console.groupCollapsed(`%c š” BASIS | CAUSALITY (Sequential Update) `, STYLES.headerBlue);\n console.log(`%cš Location: %c${locationPath}`, STYLES.bold, STYLES.location);\n console.log(\n `%cSequence:%c %c${source.name}%c ā Effect ā %c${target.name}%c`,\n STYLES.bold, \"\", STYLES.label, \"\", STYLES.label, \"\"\n );\n console.log(\n `%cObservation:%c Variable %c${target.name}%c is being manually synchronized. This creates a %c\"Double Render Cycle\"%c.`,\n STYLES.bold, \"\", STYLES.label, \"\", \"color: #d63031; font-weight: bold;\", \"\"\n );\n console.groupEnd();\n } else {\n console.log(`[BASIS] CAUSALITY: ${source.name} ā ${target.name} (Double Render Cycle)`);\n }\n};\n\nexport const displayInfiniteLoop = (label: string) => {\n const info = parseLabel(label);\n if (isWeb) {\n console.group(`%c š BASIS CRITICAL | CIRCUIT BREAKER `, STYLES.headerRed);\n console.error(\n `Infinite oscillation detected on: %c${info.name}%c\\nExecution halted to prevent browser thread lock.`,\n \"color: white; background: #d63031; padding: 2px 4px; border-radius: 3px;\", \"\"\n );\n console.groupEnd();\n } else {\n console.log(`[BASIS CRITICAL] INFINITE LOOP ON: ${info.name}. Execution halted.`);\n }\n};\n\nexport const displayHealthReport = (\n history: Map<string, number[]>,\n similarityFn: (A: number[], B: number[]) => number,\n threshold: number\n) => {\n const entries = Array.from(history.entries());\n const totalVars = entries.length;\n if (totalVars === 0) return;\n\n const clusters: string[][] = [];\n const processed = new Set<string>();\n let independentCount = 0;\n\n entries.forEach(([labelA, vecA]) => {\n if (processed.has(labelA)) return;\n const currentCluster = [labelA];\n processed.add(labelA);\n entries.forEach(([labelB, vecB]) => {\n if (labelA === labelB || processed.has(labelB)) return;\n const sim = similarityFn(vecA, vecB);\n if (sim > threshold) {\n currentCluster.push(labelB);\n processed.add(labelB);\n }\n });\n if (currentCluster.length > 1) {\n clusters.push(currentCluster);\n } else {\n independentCount++;\n }\n });\n\n const systemRank = independentCount + clusters.length;\n const efficiency = (systemRank / totalVars) * 100;\n\n if (isWeb) {\n console.group(`%c š BASIS | SYSTEM HEALTH REPORT `, STYLES.headerGreen);\n console.log(\n `%cBasis Efficiency: %c${efficiency.toFixed(1)}% %c(Rank: ${systemRank}/${totalVars})`,\n STYLES.bold,\n `color: ${efficiency > 85 ? '#00b894' : '#d63031'}; font-size: 16px; font-weight: bold;`,\n \"color: #636e72; font-style: italic;\"\n );\n\n if (clusters.length > 0) {\n console.log(`%cDetected ${clusters.length} Redundancy Clusters:`, \"font-weight: bold; color: #e17055; margin-top: 10px;\");\n clusters.forEach((cluster, idx) => {\n const names = cluster.map(l => parseLabel(l).name).join(' ā· ');\n console.log(` %c${idx + 1}%c ${names}`, \"background: #e17055; color: white; border-radius: 50%; padding: 0 5px;\", \"font-family: monospace;\");\n });\n } else {\n console.log(\"%c⨠All state variables are linearly independent. Your Basis is optimal.\", \"color: #00b894; font-weight: bold; margin-top: 10px;\");\n }\n\n if (totalVars > 0 && totalVars < 15) {\n console.groupCollapsed(\"%cView Full Correlation Matrix\", \"color: #636e72; font-size: 11px;\");\n const matrix: any = {};\n entries.forEach(([labelA]) => {\n const nameA = parseLabel(labelA).name;\n matrix[nameA] = {};\n entries.forEach(([labelB]) => {\n const nameB = parseLabel(labelB).name;\n const sim = similarityFn(history.get(labelA)!, history.get(labelB)!);\n matrix[nameA][nameB] = sim > threshold ? `ā ${(sim * 100).toFixed(0)}%` : `ā
`;\n });\n });\n console.table(matrix);\n console.groupEnd();\n }\n console.groupEnd();\n } else {\n console.log(`[BASIS HEALTH] Efficiency: ${efficiency.toFixed(1)}% (Rank: ${systemRank}/${totalVars})`);\n if (clusters.length > 0) {\n console.log(`Redundancy Clusters: ${clusters.length}`);\n }\n }\n};","// src/core/math.ts\n\nexport const calculateCosineSimilarity = (A: number[], B: number[]): number => {\n let dot = 0, magA = 0, magB = 0;\n for (let i = 0; i < A.length; i++) {\n dot += A[i] * B[i];\n magA += A[i] * A[i];\n magB += B[i] * B[i];\n }\n return magA && magB ? dot / (Math.sqrt(magA) * Math.sqrt(magB)) : 0;\n};","// src/core/constants.ts\n\nexport const WINDOW_SIZE = 50;\nexport const SIMILARITY_THRESHOLD = 0.88;\nexport const LOOP_THRESHOLD = 25;\nexport const LOOP_WINDOW_MS = 500;\nexport const ANALYSIS_INTERVAL = 5;","import * as UI from './core/logger';\nimport { calculateCosineSimilarity } from './core/math';\nimport { \n WINDOW_SIZE, \n SIMILARITY_THRESHOLD, \n LOOP_THRESHOLD, \n LOOP_WINDOW_MS, \n ANALYSIS_INTERVAL \n} from './core/constants';\n\ninterface BasisEngineState {\n config: { debug: boolean };\n history: Map<string, number[]>;\n currentTickBatch: Set<string>;\n redundantLabels: Set<string>;\n booted: boolean;\n updateLog: { label: string; ts: number }[];\n tick: number;\n isBatching: boolean;\n currentEffectSource: string | null;\n}\n\nconst GLOBAL_KEY = '__BASIS_ENGINE_INSTANCE__';\n\nconst getGlobalInstance = (): BasisEngineState => {\n const g = (typeof window !== 'undefined' ? window : global) as any;\n if (!g[GLOBAL_KEY]) {\n g[GLOBAL_KEY] = {\n config: { debug: false },\n history: new Map<string, number[]>(),\n currentTickBatch: new Set<string>(),\n redundantLabels: new Set<string>(),\n booted: false,\n updateLog: [],\n tick: 0,\n isBatching: false,\n currentEffectSource: null\n };\n }\n return g[GLOBAL_KEY];\n};\n\nconst instance = getGlobalInstance();\n\nexport const config = instance.config;\nexport const history = instance.history;\nexport const currentTickBatch = instance.currentTickBatch;\nexport const redundantLabels = instance.redundantLabels;\n\nexport const configureBasis = (newConfig: Partial<{ debug: boolean }>) => {\n Object.assign(instance.config, newConfig);\n\n if (instance.config.debug && !instance.booted) {\n UI.displayBootLog(WINDOW_SIZE);\n instance.booted = true;\n }\n};\n\nconst analyzeBasis = () => {\n if (!instance.config.debug) {\n instance.redundantLabels.clear();\n return;\n }\n\n const entries = Array.from(instance.history.entries());\n if (entries.length < 2) return;\n\n const newRedundant = new Set<string>();\n\n entries.forEach(([labelA, vecA], i) => {\n entries.slice(i + 1).forEach(([labelB, vecB]) => {\n const sim = calculateCosineSimilarity(vecA, vecB);\n \n if (sim > SIMILARITY_THRESHOLD) {\n newRedundant.add(labelA);\n newRedundant.add(labelB);\n UI.displayRedundancyAlert(labelA, labelB, sim, instance.history.size);\n }\n });\n });\n\n instance.redundantLabels.clear();\n newRedundant.forEach(label => instance.redundantLabels.add(label));\n};\n\nexport const recordUpdate = (label: string): boolean => {\n if (!instance.config.debug) return true;\n\n const now = Date.now();\n\n // CIRCUIT BREAKER\n instance.updateLog.push({ label, ts: now });\n instance.updateLog = instance.updateLog.filter(e => now - e.ts < LOOP_WINDOW_MS);\n \n if (instance.updateLog.filter(e => e.label === label).length > LOOP_THRESHOLD) {\n UI.displayInfiniteLoop(label);\n return false;\n }\n\n // CAUSAL HINT\n if (instance.currentEffectSource && instance.currentEffectSource !== label) {\n UI.displayCausalHint(label, instance.currentEffectSource);\n }\n\n // BATCHING (20ms)\n instance.currentTickBatch.add(label);\n\n if (!instance.isBatching) {\n instance.isBatching = true;\n setTimeout(() => {\n instance.tick++;\n \n instance.history.forEach((vec, l) => {\n vec.shift();\n vec.push(instance.currentTickBatch.has(l) ? 1 : 0);\n });\n\n instance.currentTickBatch.clear();\n instance.isBatching = false;\n \n if (instance.tick % ANALYSIS_INTERVAL === 0) {\n analyzeBasis();\n }\n }, 20);\n }\n\n return true;\n};\n\n// LIFECYCLE \nexport const beginEffectTracking = (label: string) => { \n if (instance.config.debug) instance.currentEffectSource = label; \n};\n\nexport const endEffectTracking = () => { \n instance.currentEffectSource = null; \n};\n\nexport const registerVariable = (label: string) => {\n if (!instance.config.debug) return; \n\n if (!instance.history.has(label)) {\n instance.history.set(label, new Array(WINDOW_SIZE).fill(0));\n }\n};\n\nexport const unregisterVariable = (label: string) => {\n instance.history.delete(label);\n};\n\nexport const printBasisHealthReport = (threshold = 0.5) => {\n if (!instance.config.debug) {\n console.warn(\"[Basis] Cannot generate report. Debug mode is OFF.\");\n return;\n }\n UI.displayHealthReport(instance.history, calculateCosineSimilarity, threshold);\n};\n\nif (typeof window !== 'undefined') {\n (window as any).printBasisReport = printBasisHealthReport;\n}\n\nexport const __testEngine__ = {\n instance,\n config: instance.config,\n history: instance.history,\n currentTickBatch: instance.currentTickBatch,\n configureBasis,\n registerVariable,\n recordUpdate,\n printBasisHealthReport,\n beginEffectTracking,\n endEffectTracking,\n};","// src/context.tsx\n\nimport React, { createContext, useContext, ReactNode, useLayoutEffect } from 'react';\nimport { configureBasis } from './engine';\nimport { BasisHUD } from './ui/BasisHUD';\n\nconst BasisContext = createContext({ debug: false });\nconst isWeb = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n\ninterface BasisProviderProps {\n children: ReactNode;\n debug?: boolean;\n}\n\nexport const BasisProvider: React.FC<BasisProviderProps> = ({ children, debug = true }) => {\n useLayoutEffect(() => {\n configureBasis({ debug });\n if (isWeb) {\n (window as any)._basis_debug = debug;\n }\n }, [debug]);\n\n return (\n <BasisContext.Provider value={{ debug }}>\n {children}\n {(debug && isWeb) && <BasisHUD />}\n </BasisContext.Provider>\n );\n};\n\nexport const useBasisConfig = () => useContext(BasisContext);","// src/ui/BasisHUD.tsx\n\nimport React, { useEffect, useRef, useState } from 'react';\nimport { history, redundantLabels } from '../engine';\nimport { HUD_DIMENSIONS as DIM, getHUDContainerStyle, HUD_THEME as THEME } from './config';\n\nexport const BasisHUD: React.FC = () => {\n const [isExpanded, setIsExpanded] = useState(false);\n const canvasRef = useRef<HTMLCanvasElement>(null);\n\n useEffect(() => {\n if (!isExpanded) return;\n\n let animationFrame: number;\n\n const draw = () => {\n const canvas = canvasRef.current;\n if (!canvas) return;\n const ctx = canvas.getContext('2d');\n if (!ctx) return;\n\n const entries = Array.from(history.entries());\n const dpr = window.devicePixelRatio || 1;\n\n const rawWidth = (DIM.WINDOW_SIZE * DIM.COL_WIDTH) + DIM.LABEL_WIDTH + (DIM.PADDING * 2);\n const rawHeight = Math.max(entries.length * DIM.ROW_HEIGHT + (DIM.PADDING * 2), 60);\n\n updateCanvasSize(canvas, rawWidth, rawHeight, dpr);\n\n ctx.save();\n ctx.scale(dpr, dpr);\n ctx.clearRect(0, 0, rawWidth, rawHeight);\n\n if (entries.length === 0) {\n renderEmptyState(ctx);\n } else {\n renderMatrix(ctx, entries);\n }\n\n ctx.restore();\n animationFrame = requestAnimationFrame(draw);\n };\n\n draw();\n return () => cancelAnimationFrame(animationFrame);\n }, [isExpanded]);\n\n return (\n <div style={getHUDContainerStyle(isExpanded)} onClick={() => setIsExpanded(!isExpanded)}>\n <HUDHeader isExpanded={isExpanded} />\n {isExpanded && (\n <div style={{ padding: '10px 14px 15px 14px' }}>\n <canvas ref={canvasRef} style={{ display: 'block' }} />\n <HUDFooter />\n </div>\n )}\n </div>\n );\n};\n\nfunction updateCanvasSize(canvas: HTMLCanvasElement, w: number, h: number, dpr: number) {\n const targetW = Math.floor(w * dpr);\n const targetH = Math.floor(h * dpr);\n if (canvas.width !== targetW || canvas.height !== targetH) {\n canvas.width = targetW;\n canvas.height = targetH;\n canvas.style.width = `${w}px`;\n canvas.style.height = `${h}px`;\n }\n}\n\nfunction renderEmptyState(ctx: CanvasRenderingContext2D) {\n ctx.fillStyle = THEME.textDim;\n ctx.font = '11px Inter, sans-serif';\n ctx.fillText('Waiting for state transitions...', DIM.PADDING, 30);\n}\n\nfunction renderMatrix(ctx: CanvasRenderingContext2D, entries: [string, number[]][]) {\n entries.forEach(([label, vector], rowIndex) => {\n const y = rowIndex * DIM.ROW_HEIGHT + DIM.PADDING;\n const stateName = label.split(' -> ')[1] || label;\n const isRedundant = redundantLabels.has(label);\n\n vector.forEach((bit, colIndex) => {\n const x = colIndex * DIM.COL_WIDTH + DIM.PADDING;\n ctx.fillStyle = bit === 1 ? (isRedundant ? THEME.error : THEME.success) : THEME.grid;\n\n const w = DIM.COL_WIDTH - 1.5;\n const h = DIM.ROW_HEIGHT - 4;\n\n if (ctx.roundRect) {\n ctx.beginPath();\n ctx.roundRect(x, y, w, h, DIM.RADIUS);\n ctx.fill();\n } else {\n ctx.fillRect(x, y, w, h);\n }\n });\n\n const textX = (DIM.WINDOW_SIZE * DIM.COL_WIDTH) + DIM.PADDING + 10;\n ctx.fillStyle = isRedundant ? THEME.error : THEME.text;\n ctx.font = `${isRedundant ? '600' : '400'} 11px Inter, Menlo, monospace`;\n \n const cleanName = isRedundant ? `! ${stateName}` : stateName;\n const truncatedName = cleanName.length > 18 ? cleanName.substring(0, 16) + '..' : cleanName;\n ctx.fillText(truncatedName, textX, y + 9);\n });\n}\n\nconst HUDHeader: React.FC<{ isExpanded: boolean }> = ({ isExpanded }) => (\n <div style={{ \n padding: '10px 14px', \n backgroundColor: isExpanded ? THEME.header : 'transparent', \n color: isExpanded ? 'white' : THEME.header,\n fontWeight: 600, fontSize: '11px', letterSpacing: '0.05em',\n display: 'flex', justifyContent: 'space-between', alignItems: 'center',\n transition: 'background 0.3s'\n }}>\n <span>{isExpanded ? 'STATE BASIS MATRIX' : 'š BASIS ACTIVE'}</span>\n {isExpanded && <span style={{ opacity: 0.8, fontSize: '9px' }}>R50</span>}\n </div>\n);\n\nconst HUDFooter: React.FC = () => (\n <div style={{ \n marginTop: '12px', paddingTop: '8px', borderTop: `1px solid ${THEME.grid}`,\n color: THEME.textDim, fontSize: '9px', display: 'flex', justifyContent: 'space-between'\n }}>\n <span>LINEAR DEPENDENCY AUDIT</span>\n <span>THRESHOLD 0.88</span>\n </div>\n);\n","// src/ui/config.ts\n\nimport { WINDOW_SIZE } from '../core/constants';\n\nexport const HUD_DIMENSIONS = {\n WINDOW_SIZE,\n ROW_HEIGHT: 16,\n COL_WIDTH: 5,\n LABEL_WIDTH: 100,\n PADDING: 10,\n RADIUS: 1.5,\n};\n\nexport const HUD_THEME = {\n bg: 'rgba(15, 23, 42, 0.95)',\n border: '#334155',\n header: '#8b5cf6',\n text: '#f1f5f9',\n textDim: '#94a3b8',\n success: '#10b981',\n error: '#ef4444',\n grid: '#1e293b',\n};\n\nexport const getHUDContainerStyle = (isExpanded: boolean): React.CSSProperties => ({\n position: 'fixed',\n bottom: '20px',\n right: '20px',\n backgroundColor: HUD_THEME.bg,\n border: `1px solid ${HUD_THEME.border}`,\n borderRadius: '12px',\n backdropFilter: 'blur(8px)',\n boxShadow: '0 10px 25px -5px rgba(0, 0, 0, 0.3), 0 8px 10px -6px rgba(0, 0, 0, 0.3)',\n zIndex: 999999,\n overflow: 'hidden',\n width: isExpanded ? '380px' : '130px',\n transition: 'all 0.3s cubic-bezier(0.4, 0, 0.2, 1)',\n cursor: 'pointer',\n userSelect: 'none',\n WebkitUserSelect: 'none'\n});","// src/hooks.ts\nimport * as React from 'react';\nimport {\n useState as reactUseState,\n useEffect as reactUseEffect,\n useMemo as reactUseMemo,\n useReducer as reactUseReducer,\n useContext as reactUseContext,\n useSyncExternalStore as reactUseSyncExternalStore, \n createContext as reactCreateContext,\n useRef as reactUseRef,\n useLayoutEffect as reactUseLayoutEffect,\n useCallback as reactUseCallback,\n useTransition as reactUseTransition,\n useDeferredValue as reactUseDeferredValue,\n use as reactUse,\n useOptimistic as reactUseOptimistic,\n useActionState as reactUseActionState\n} from 'react';\n\nimport { registerVariable, unregisterVariable, recordUpdate, beginEffectTracking, endEffectTracking, config } from './engine';\nimport * as engine from './engine';\n\ntype GetReducerState<R extends React.Reducer<any, any>> = R extends React.Reducer<infer S, any> ? S : never;\ntype GetReducerAction<R extends React.Reducer<any, any>> = R extends React.Reducer<any, infer A> ? A : never;\n\nexport function useState<S>(initialState: S | (() => S), label?: string): [S, React.Dispatch<React.SetStateAction<S>>] {\n const [val, setVal] = reactUseState(initialState);\n const effectiveLabel = label || 'anonymous_state';\n reactUseEffect(() => { registerVariable(effectiveLabel); return () => unregisterVariable(effectiveLabel); }, [effectiveLabel]);\n const setter = reactUseCallback((newValue: any) => { if (recordUpdate(effectiveLabel)) setVal(newValue); }, [effectiveLabel, setVal]);\n return [val, setter];\n}\n\nexport function useRef<T>(initialValue: T): React.RefObject<T>;\nexport function useRef<T>(initialValue: T | null): React.RefObject<T>;\nexport function useRef<T = undefined>(): React.MutableRefObject<T | undefined>;\nexport function useRef<T>(initialValue?: T, _label?: string): any { return reactUseRef(initialValue); }\n\nexport function useReducer<R extends React.Reducer<any, any>, I>(reducer: R, initialArg: I, init?: any, label?: string): [GetReducerState<R>, React.Dispatch<GetReducerAction<R>>] {\n const effectiveLabel = typeof init === 'string' ? init : (label || 'anonymous_reducer');\n const reactInit = typeof init === 'function' ? init : undefined;\n const [state, dispatch] = reactUseReducer(reducer, initialArg, reactInit);\n reactUseEffect(() => { registerVariable(effectiveLabel); return () => unregisterVariable(effectiveLabel); }, [effectiveLabel]);\n const basisDispatch = reactUseCallback((action: any) => { if (recordUpdate(effectiveLabel)) dispatch(action); }, [effectiveLabel, dispatch]);\n return [state, basisDispatch] as any;\n}\n\nexport function useMemo<T>(factory: () => T, deps: React.DependencyList | undefined, label?: string): T {\n const effectiveLabel = label || 'anonymous_projection';\n reactUseEffect(() => { if (config.debug) console.log(`%c [Basis] Valid Projection: \"${effectiveLabel}\" `, \"color: #2ecc71; font-weight: bold;\"); }, [effectiveLabel]);\n return reactUseMemo(factory, deps || []);\n}\n\nexport function useCallback<T extends (...args: any[]) => any>(callback: T, deps: React.DependencyList, label?: string): T {\n const effectiveLabel = label || 'anonymous_callback';\n reactUseEffect(() => { if (config.debug) console.log(`%c [Basis] Stable Callback: \"${effectiveLabel}\" `, \"color: #2ecc71; font-weight: bold;\"); }, [effectiveLabel]);\n return reactUseCallback(callback, deps);\n}\n\nexport function useEffect(effect: React.EffectCallback, deps?: React.DependencyList, label?: string) {\n const effectiveLabel = label || 'anonymous_effect';\n reactUseEffect(() => { beginEffectTracking(effectiveLabel); const cleanup = effect(); endEffectTracking(); return cleanup; }, deps);\n}\n\nexport function useLayoutEffect(effect: React.EffectCallback, deps?: React.DependencyList, label?: string) {\n const effectiveLabel = label || 'anonymous_layout_effect';\n reactUseLayoutEffect(() => { beginEffectTracking(effectiveLabel); const cleanup = effect(); endEffectTracking(); return cleanup; }, deps);\n}\n\nexport function useTransition(_label?: string): [boolean, (callback: () => void) => void] {\n const [isPending, startTransition] = reactUseTransition();\n const effectiveLabel = _label || 'anonymous_transition';\n const basisStartTransition = (callback: () => void) => {\n if (config.debug) console.log(`%c [Basis] Transition Started: \"${effectiveLabel}\" `, \"color: #e67e22; font-weight: bold;\");\n startTransition(callback);\n };\n return [isPending, basisStartTransition];\n}\n\nexport function useDeferredValue<T>(value: T, initialValueOrLabel?: T | string, label?: string): T {\n const isLabelAsSecondArg = typeof initialValueOrLabel === 'string' && label === undefined;\n const actualInitialValue = isLabelAsSecondArg ? undefined : initialValueOrLabel as T;\n const effectiveLabel = isLabelAsSecondArg ? (initialValueOrLabel as string) : (label || 'anonymous_deferred');\n const deferredValue = reactUseDeferredValue(value, actualInitialValue);\n reactUseEffect(() => { if (config.debug && value !== deferredValue) console.log(`%c [Basis] Value Deferred: \"${effectiveLabel}\" `, \"color: #e67e22; font-weight: bold;\"); }, [value, deferredValue, effectiveLabel]);\n return deferredValue;\n}\n\nexport function createContext<T>(defaultValue: T, label?: string): React.Context<T> {\n const context = reactCreateContext(defaultValue);\n if (label) (context as any)._basis_label = label;\n return context;\n}\n\nexport const useContext = reactUseContext;\nexport const useId = (label?: string) => React.useId();\nexport const useDebugValue = React.useDebugValue;\nexport const useImperativeHandle = React.useImperativeHandle;\nexport const useInsertionEffect = React.useInsertionEffect;\nexport const useSyncExternalStore = (reactUseSyncExternalStore as any);\n\nexport function use<T>(usable: React.Usable<T>): T {\n return reactUse(usable);\n}\n\nexport function useOptimistic<S, P>(\n passthrough: S,\n reducer?: (state: S, payload: P) => S,\n label?: string\n): [S, (payload: P) => void] {\n const effectiveLabel = label || 'anonymous_optimistic';\n \n reactUseEffect(() => {\n registerVariable(effectiveLabel);\n return () => unregisterVariable(effectiveLabel);\n }, [effectiveLabel]);\n\n const [state, reactAddOptimistic] = (React as any).useOptimistic(passthrough, reducer) as [S, (p: P) => void];\n\n const addOptimistic = reactUseCallback((payload: P) => {\n if (recordUpdate(effectiveLabel)) {\n reactAddOptimistic(payload);\n }\n }, [effectiveLabel, reactAddOptimistic]);\n\n return [state, addOptimistic];\n}\n\nexport function useActionState<State, Payload>(\n action: (state: State, payload: Payload) => Promise<State> | State,\n initialState: State,\n permalink?: string,\n label?: string\n): [state: State, dispatch: (payload: Payload) => void, isPending: boolean] {\n \n const isLabelAsThirdArg = typeof permalink === 'string' && label === undefined;\n const actualPermalink = isLabelAsThirdArg ? undefined : permalink;\n const effectiveLabel = isLabelAsThirdArg ? (permalink as string) : (label || 'anonymous_action_state');\n\n const [state, reactDispatch, isPending] = (React as any).useActionState(\n action, \n initialState, \n actualPermalink\n ) as [State, (p: Payload) => void, boolean];\n\n reactUseEffect(() => {\n registerVariable(effectiveLabel);\n return () => unregisterVariable(effectiveLabel);\n }, [effectiveLabel]);\n\n const basisDispatch = reactUseCallback((payload: Payload) => {\n if (recordUpdate(effectiveLabel)) {\n reactDispatch(payload);\n }\n }, [effectiveLabel, reactDispatch]);\n\n return [state, basisDispatch, isPending];\n}\n\nexport const __test__ = { registerVariable, unregisterVariable, recordUpdate, beginEffectTracking, endEffectTracking, history: (engine as any).history, currentTickBatch: (engine as any).currentTickBatch };"],"mappings":"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","names":["history","jsx","jsxs","isWeb","React","useState","useRef","useEffect","useLayoutEffect","startTransition","createContext","useContext","useId","useDebugValue","useImperativeHandle","useInsertionEffect","useOptimistic","useActionState","Children","Component","Fragment","Profiler","PureComponent","StrictMode","Suspense","cloneElement","createElement","createRef","forwardRef","isValidElement","lazy","memo","startTransition","version"]}
|
package/dist/production.d.mts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { EffectCallback, DependencyList, FC, ReactNode } from 'react';
|
|
3
3
|
export { Context, DependencyList, Dispatch, EffectCallback, FC, ReactNode, Reducer, SetStateAction } from 'react';
|
|
4
|
+
import * as ReactDOM from 'react-dom';
|
|
4
5
|
|
|
5
6
|
declare const useState: <T>(initialState: T | (() => T), _label?: string) => [T, React.Dispatch<React.SetStateAction<T>>];
|
|
6
7
|
declare const useEffect: (effect: EffectCallback, deps?: DependencyList, _label?: string) => void;
|
|
@@ -18,6 +19,7 @@ declare const useInsertionEffect: typeof React.useInsertionEffect;
|
|
|
18
19
|
declare const useSyncExternalStore: typeof React.useSyncExternalStore;
|
|
19
20
|
declare const useTransition: typeof React.useTransition;
|
|
20
21
|
declare const useDeferredValue: typeof React.useDeferredValue;
|
|
22
|
+
declare const unstable_batchedUpdates: typeof ReactDOM.unstable_batchedUpdates;
|
|
21
23
|
declare const registerVariable: () => void;
|
|
22
24
|
declare const unregisterVariable: () => void;
|
|
23
25
|
declare const recordUpdate: () => boolean;
|
|
@@ -29,4 +31,4 @@ declare const BasisProvider: FC<{
|
|
|
29
31
|
debug?: boolean;
|
|
30
32
|
}>;
|
|
31
33
|
|
|
32
|
-
export { BasisProvider, beginEffectTracking, createContext, endEffectTracking, printBasisHealthReport, recordUpdate, registerVariable, unregisterVariable, useCallback, useContext, useDebugValue, useDeferredValue, useEffect, useId, useImperativeHandle, useInsertionEffect, useLayoutEffect, useMemo, useReducer, useRef, useState, useSyncExternalStore, useTransition };
|
|
34
|
+
export { BasisProvider, beginEffectTracking, createContext, endEffectTracking, printBasisHealthReport, recordUpdate, registerVariable, unregisterVariable, unstable_batchedUpdates, useCallback, useContext, useDebugValue, useDeferredValue, useEffect, useId, useImperativeHandle, useInsertionEffect, useLayoutEffect, useMemo, useReducer, useRef, useState, useSyncExternalStore, useTransition };
|
package/dist/production.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { EffectCallback, DependencyList, FC, ReactNode } from 'react';
|
|
3
3
|
export { Context, DependencyList, Dispatch, EffectCallback, FC, ReactNode, Reducer, SetStateAction } from 'react';
|
|
4
|
+
import * as ReactDOM from 'react-dom';
|
|
4
5
|
|
|
5
6
|
declare const useState: <T>(initialState: T | (() => T), _label?: string) => [T, React.Dispatch<React.SetStateAction<T>>];
|
|
6
7
|
declare const useEffect: (effect: EffectCallback, deps?: DependencyList, _label?: string) => void;
|
|
@@ -18,6 +19,7 @@ declare const useInsertionEffect: typeof React.useInsertionEffect;
|
|
|
18
19
|
declare const useSyncExternalStore: typeof React.useSyncExternalStore;
|
|
19
20
|
declare const useTransition: typeof React.useTransition;
|
|
20
21
|
declare const useDeferredValue: typeof React.useDeferredValue;
|
|
22
|
+
declare const unstable_batchedUpdates: typeof ReactDOM.unstable_batchedUpdates;
|
|
21
23
|
declare const registerVariable: () => void;
|
|
22
24
|
declare const unregisterVariable: () => void;
|
|
23
25
|
declare const recordUpdate: () => boolean;
|
|
@@ -29,4 +31,4 @@ declare const BasisProvider: FC<{
|
|
|
29
31
|
debug?: boolean;
|
|
30
32
|
}>;
|
|
31
33
|
|
|
32
|
-
export { BasisProvider, beginEffectTracking, createContext, endEffectTracking, printBasisHealthReport, recordUpdate, registerVariable, unregisterVariable, useCallback, useContext, useDebugValue, useDeferredValue, useEffect, useId, useImperativeHandle, useInsertionEffect, useLayoutEffect, useMemo, useReducer, useRef, useState, useSyncExternalStore, useTransition };
|
|
34
|
+
export { BasisProvider, beginEffectTracking, createContext, endEffectTracking, printBasisHealthReport, recordUpdate, registerVariable, unregisterVariable, unstable_batchedUpdates, useCallback, useContext, useDebugValue, useDeferredValue, useEffect, useId, useImperativeHandle, useInsertionEffect, useLayoutEffect, useMemo, useReducer, useRef, useState, useSyncExternalStore, useTransition };
|
package/dist/production.js
CHANGED
|
@@ -38,6 +38,7 @@ __export(production_exports, {
|
|
|
38
38
|
recordUpdate: () => recordUpdate,
|
|
39
39
|
registerVariable: () => registerVariable,
|
|
40
40
|
unregisterVariable: () => unregisterVariable,
|
|
41
|
+
unstable_batchedUpdates: () => unstable_batchedUpdates2,
|
|
41
42
|
useCallback: () => useCallback2,
|
|
42
43
|
useContext: () => useContext2,
|
|
43
44
|
useDebugValue: () => useDebugValue2,
|
|
@@ -56,6 +57,7 @@ __export(production_exports, {
|
|
|
56
57
|
});
|
|
57
58
|
module.exports = __toCommonJS(production_exports);
|
|
58
59
|
var React = __toESM(require("react"));
|
|
60
|
+
var ReactDOM = __toESM(require("react-dom"));
|
|
59
61
|
var useState2 = (initialState, _label) => React.useState(initialState);
|
|
60
62
|
var useEffect2 = (effect, deps, _label) => React.useEffect(effect, deps);
|
|
61
63
|
var useMemo2 = (factory, deps, _label) => React.useMemo(factory, deps);
|
|
@@ -72,6 +74,7 @@ var useInsertionEffect2 = React.useInsertionEffect;
|
|
|
72
74
|
var useSyncExternalStore2 = React.useSyncExternalStore;
|
|
73
75
|
var useTransition2 = React.useTransition;
|
|
74
76
|
var useDeferredValue2 = React.useDeferredValue;
|
|
77
|
+
var unstable_batchedUpdates2 = ReactDOM.unstable_batchedUpdates;
|
|
75
78
|
var registerVariable = () => {
|
|
76
79
|
};
|
|
77
80
|
var unregisterVariable = () => {
|
|
@@ -96,6 +99,7 @@ var BasisProvider = ({ children }) => {
|
|
|
96
99
|
recordUpdate,
|
|
97
100
|
registerVariable,
|
|
98
101
|
unregisterVariable,
|
|
102
|
+
unstable_batchedUpdates,
|
|
99
103
|
useCallback,
|
|
100
104
|
useContext,
|
|
101
105
|
useDebugValue,
|
package/dist/production.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/production.ts"],"sourcesContent":["// src/production.ts\n\nimport * as React from 'react';\nimport type { \n DependencyList, \n EffectCallback, \n FC, \n ReactNode, \n Context, \n Reducer, \n Dispatch, \n SetStateAction \n} from 'react';\n\nexport type { DependencyList, EffectCallback, FC, ReactNode, Context, Reducer, Dispatch, SetStateAction };\n\nexport const useState = <T>(initialState: T | (() => T), _label?: string) => \n React.useState(initialState);\n\nexport const useEffect = (effect: EffectCallback, deps?: DependencyList, _label?: string) => \n React.useEffect(effect, deps as DependencyList);\n\nexport const useMemo = <T>(factory: () => T, deps?: DependencyList, _label?: string) => \n React.useMemo(factory, deps as DependencyList);\n\nexport const useCallback = <T extends (...args: any[]) => any>(callback: T, deps: DependencyList, _label?: string) => \n React.useCallback(callback, deps);\n\nexport const useReducer = (reducer: any, initialArg: any, init?: any, _label?: string) => \n React.useReducer(reducer, initialArg, init);\n\nexport const useRef = <T>(initialValue: T, _label?: string) => \n React.useRef(initialValue);\n\nexport const useLayoutEffect = (effect: EffectCallback, deps?: DependencyList, _label?: string) => \n React.useLayoutEffect(effect, deps as DependencyList);\n\nexport const useContext = React.useContext;\nexport const createContext = React.createContext;\nexport const useId = React.useId;\nexport const useDebugValue = React.useDebugValue;\nexport const useImperativeHandle = React.useImperativeHandle;\nexport const useInsertionEffect = React.useInsertionEffect;\nexport const useSyncExternalStore = React.useSyncExternalStore;\nexport const useTransition = React.useTransition;\nexport const useDeferredValue = React.useDeferredValue;\n\nexport const registerVariable = () => {};\nexport const unregisterVariable = () => {};\nexport const recordUpdate = () => true;\nexport const beginEffectTracking = () => {};\nexport const endEffectTracking = () => {};\nexport const printBasisHealthReport = () => {};\n\nexport const BasisProvider: FC<{ children: ReactNode; debug?: boolean }> = ({ children }) => {\n return React.createElement(React.Fragment, null, children);\n};"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,
|
|
1
|
+
{"version":3,"sources":["../src/production.ts"],"sourcesContent":["// src/production.ts\n\nimport * as React from 'react';\nimport type { \n DependencyList, \n EffectCallback, \n FC, \n ReactNode, \n Context, \n Reducer, \n Dispatch, \n SetStateAction \n} from 'react';\nimport * as ReactDOM from 'react-dom';\n\nexport type { DependencyList, EffectCallback, FC, ReactNode, Context, Reducer, Dispatch, SetStateAction };\n\nexport const useState = <T>(initialState: T | (() => T), _label?: string) => \n React.useState(initialState);\n\nexport const useEffect = (effect: EffectCallback, deps?: DependencyList, _label?: string) => \n React.useEffect(effect, deps as DependencyList);\n\nexport const useMemo = <T>(factory: () => T, deps?: DependencyList, _label?: string) => \n React.useMemo(factory, deps as DependencyList);\n\nexport const useCallback = <T extends (...args: any[]) => any>(callback: T, deps: DependencyList, _label?: string) => \n React.useCallback(callback, deps);\n\nexport const useReducer = (reducer: any, initialArg: any, init?: any, _label?: string) => \n React.useReducer(reducer, initialArg, init);\n\nexport const useRef = <T>(initialValue: T, _label?: string) => \n React.useRef(initialValue);\n\nexport const useLayoutEffect = (effect: EffectCallback, deps?: DependencyList, _label?: string) => \n React.useLayoutEffect(effect, deps as DependencyList);\n\nexport const useContext = React.useContext;\nexport const createContext = React.createContext;\nexport const useId = React.useId;\nexport const useDebugValue = React.useDebugValue;\nexport const useImperativeHandle = React.useImperativeHandle;\nexport const useInsertionEffect = React.useInsertionEffect;\nexport const useSyncExternalStore = React.useSyncExternalStore;\nexport const useTransition = React.useTransition;\nexport const useDeferredValue = React.useDeferredValue;\nexport const unstable_batchedUpdates = ReactDOM.unstable_batchedUpdates;\n\nexport const registerVariable = () => {};\nexport const unregisterVariable = () => {};\nexport const recordUpdate = () => true;\nexport const beginEffectTracking = () => {};\nexport const endEffectTracking = () => {};\nexport const printBasisHealthReport = () => {};\n\nexport const BasisProvider: FC<{ children: ReactNode; debug?: boolean }> = ({ children }) => {\n return React.createElement(React.Fragment, null, children);\n};"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iCAAAC;AAAA,EAAA,mBAAAC;AAAA,EAAA,kBAAAC;AAAA,EAAA,qBAAAC;AAAA,EAAA,wBAAAC;AAAA,EAAA,iBAAAC;AAAA,EAAA,aAAAC;AAAA,EAAA,2BAAAC;AAAA,EAAA,0BAAAC;AAAA,EAAA,uBAAAC;AAAA,EAAA,eAAAC;AAAA,EAAA,kBAAAC;AAAA,EAAA,cAAAC;AAAA,EAAA,gBAAAC;AAAA,EAAA,4BAAAC;AAAA,EAAA,qBAAAC;AAAA;AAAA;AAEA,YAAuB;AAWvB,eAA0B;AAInB,IAAMF,YAAW,CAAI,cAA6B,WACjD,eAAS,YAAY;AAEtB,IAAMR,aAAY,CAAC,QAAwB,MAAuB,WACjE,gBAAU,QAAQ,IAAsB;AAEzC,IAAMK,WAAU,CAAI,SAAkB,MAAuB,WAC5D,cAAQ,SAAS,IAAsB;AAExC,IAAMT,eAAc,CAAoC,UAAa,MAAsB,WAC1F,kBAAY,UAAU,IAAI;AAE3B,IAAMU,cAAa,CAAC,SAAc,YAAiB,MAAY,WAC9D,iBAAW,SAAS,YAAY,IAAI;AAErC,IAAMC,UAAS,CAAI,cAAiB,WACnC,aAAO,YAAY;AAEpB,IAAMH,mBAAkB,CAAC,QAAwB,MAAuB,WACvE,sBAAgB,QAAQ,IAAsB;AAE/C,IAAMP,cAAmB;AACzB,IAAMH,iBAAsB;AAC5B,IAAMO,SAAc;AACpB,IAAMH,iBAAsB;AAC5B,IAAMI,uBAA4B;AAClC,IAAMC,sBAA2B;AACjC,IAAMM,wBAA6B;AACnC,IAAMC,iBAAsB;AAC5B,IAAMX,oBAAyB;AAC/B,IAAMJ,2BAAmC;AAEzC,IAAM,mBAAmB,MAAM;AAAC;AAChC,IAAM,qBAAqB,MAAM;AAAC;AAClC,IAAM,eAAe,MAAM;AAC3B,IAAM,sBAAsB,MAAM;AAAC;AACnC,IAAM,oBAAoB,MAAM;AAAC;AACjC,IAAM,yBAAyB,MAAM;AAAC;AAEtC,IAAM,gBAA8D,CAAC,EAAE,SAAS,MAAM;AAC3F,SAAa,oBAAoB,gBAAU,MAAM,QAAQ;AAC3D;","names":["createContext","unstable_batchedUpdates","useCallback","useContext","useDebugValue","useDeferredValue","useEffect","useId","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useSyncExternalStore","useTransition"]}
|
package/dist/production.mjs
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// src/production.ts
|
|
2
2
|
import * as React from "react";
|
|
3
|
+
import * as ReactDOM from "react-dom";
|
|
3
4
|
var useState2 = (initialState, _label) => React.useState(initialState);
|
|
4
5
|
var useEffect2 = (effect, deps, _label) => React.useEffect(effect, deps);
|
|
5
6
|
var useMemo2 = (factory, deps, _label) => React.useMemo(factory, deps);
|
|
@@ -16,6 +17,7 @@ var useInsertionEffect2 = React.useInsertionEffect;
|
|
|
16
17
|
var useSyncExternalStore2 = React.useSyncExternalStore;
|
|
17
18
|
var useTransition2 = React.useTransition;
|
|
18
19
|
var useDeferredValue2 = React.useDeferredValue;
|
|
20
|
+
var unstable_batchedUpdates2 = ReactDOM.unstable_batchedUpdates;
|
|
19
21
|
var registerVariable = () => {
|
|
20
22
|
};
|
|
21
23
|
var unregisterVariable = () => {
|
|
@@ -39,6 +41,7 @@ export {
|
|
|
39
41
|
recordUpdate,
|
|
40
42
|
registerVariable,
|
|
41
43
|
unregisterVariable,
|
|
44
|
+
unstable_batchedUpdates2 as unstable_batchedUpdates,
|
|
42
45
|
useCallback2 as useCallback,
|
|
43
46
|
useContext2 as useContext,
|
|
44
47
|
useDebugValue2 as useDebugValue,
|
package/dist/production.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/production.ts"],"sourcesContent":["// src/production.ts\n\nimport * as React from 'react';\nimport type { \n DependencyList, \n EffectCallback, \n FC, \n ReactNode, \n Context, \n Reducer, \n Dispatch, \n SetStateAction \n} from 'react';\n\nexport type { DependencyList, EffectCallback, FC, ReactNode, Context, Reducer, Dispatch, SetStateAction };\n\nexport const useState = <T>(initialState: T | (() => T), _label?: string) => \n React.useState(initialState);\n\nexport const useEffect = (effect: EffectCallback, deps?: DependencyList, _label?: string) => \n React.useEffect(effect, deps as DependencyList);\n\nexport const useMemo = <T>(factory: () => T, deps?: DependencyList, _label?: string) => \n React.useMemo(factory, deps as DependencyList);\n\nexport const useCallback = <T extends (...args: any[]) => any>(callback: T, deps: DependencyList, _label?: string) => \n React.useCallback(callback, deps);\n\nexport const useReducer = (reducer: any, initialArg: any, init?: any, _label?: string) => \n React.useReducer(reducer, initialArg, init);\n\nexport const useRef = <T>(initialValue: T, _label?: string) => \n React.useRef(initialValue);\n\nexport const useLayoutEffect = (effect: EffectCallback, deps?: DependencyList, _label?: string) => \n React.useLayoutEffect(effect, deps as DependencyList);\n\nexport const useContext = React.useContext;\nexport const createContext = React.createContext;\nexport const useId = React.useId;\nexport const useDebugValue = React.useDebugValue;\nexport const useImperativeHandle = React.useImperativeHandle;\nexport const useInsertionEffect = React.useInsertionEffect;\nexport const useSyncExternalStore = React.useSyncExternalStore;\nexport const useTransition = React.useTransition;\nexport const useDeferredValue = React.useDeferredValue;\n\nexport const registerVariable = () => {};\nexport const unregisterVariable = () => {};\nexport const recordUpdate = () => true;\nexport const beginEffectTracking = () => {};\nexport const endEffectTracking = () => {};\nexport const printBasisHealthReport = () => {};\n\nexport const BasisProvider: FC<{ children: ReactNode; debug?: boolean }> = ({ children }) => {\n return React.createElement(React.Fragment, null, children);\n};"],"mappings":";AAEA,YAAY,WAAW;
|
|
1
|
+
{"version":3,"sources":["../src/production.ts"],"sourcesContent":["// src/production.ts\n\nimport * as React from 'react';\nimport type { \n DependencyList, \n EffectCallback, \n FC, \n ReactNode, \n Context, \n Reducer, \n Dispatch, \n SetStateAction \n} from 'react';\nimport * as ReactDOM from 'react-dom';\n\nexport type { DependencyList, EffectCallback, FC, ReactNode, Context, Reducer, Dispatch, SetStateAction };\n\nexport const useState = <T>(initialState: T | (() => T), _label?: string) => \n React.useState(initialState);\n\nexport const useEffect = (effect: EffectCallback, deps?: DependencyList, _label?: string) => \n React.useEffect(effect, deps as DependencyList);\n\nexport const useMemo = <T>(factory: () => T, deps?: DependencyList, _label?: string) => \n React.useMemo(factory, deps as DependencyList);\n\nexport const useCallback = <T extends (...args: any[]) => any>(callback: T, deps: DependencyList, _label?: string) => \n React.useCallback(callback, deps);\n\nexport const useReducer = (reducer: any, initialArg: any, init?: any, _label?: string) => \n React.useReducer(reducer, initialArg, init);\n\nexport const useRef = <T>(initialValue: T, _label?: string) => \n React.useRef(initialValue);\n\nexport const useLayoutEffect = (effect: EffectCallback, deps?: DependencyList, _label?: string) => \n React.useLayoutEffect(effect, deps as DependencyList);\n\nexport const useContext = React.useContext;\nexport const createContext = React.createContext;\nexport const useId = React.useId;\nexport const useDebugValue = React.useDebugValue;\nexport const useImperativeHandle = React.useImperativeHandle;\nexport const useInsertionEffect = React.useInsertionEffect;\nexport const useSyncExternalStore = React.useSyncExternalStore;\nexport const useTransition = React.useTransition;\nexport const useDeferredValue = React.useDeferredValue;\nexport const unstable_batchedUpdates = ReactDOM.unstable_batchedUpdates;\n\nexport const registerVariable = () => {};\nexport const unregisterVariable = () => {};\nexport const recordUpdate = () => true;\nexport const beginEffectTracking = () => {};\nexport const endEffectTracking = () => {};\nexport const printBasisHealthReport = () => {};\n\nexport const BasisProvider: FC<{ children: ReactNode; debug?: boolean }> = ({ children }) => {\n return React.createElement(React.Fragment, null, children);\n};"],"mappings":";AAEA,YAAY,WAAW;AAWvB,YAAY,cAAc;AAInB,IAAMA,YAAW,CAAI,cAA6B,WACjD,eAAS,YAAY;AAEtB,IAAMC,aAAY,CAAC,QAAwB,MAAuB,WACjE,gBAAU,QAAQ,IAAsB;AAEzC,IAAMC,WAAU,CAAI,SAAkB,MAAuB,WAC5D,cAAQ,SAAS,IAAsB;AAExC,IAAMC,eAAc,CAAoC,UAAa,MAAsB,WAC1F,kBAAY,UAAU,IAAI;AAE3B,IAAMC,cAAa,CAAC,SAAc,YAAiB,MAAY,WAC9D,iBAAW,SAAS,YAAY,IAAI;AAErC,IAAMC,UAAS,CAAI,cAAiB,WACnC,aAAO,YAAY;AAEpB,IAAMC,mBAAkB,CAAC,QAAwB,MAAuB,WACvE,sBAAgB,QAAQ,IAAsB;AAE/C,IAAMC,cAAmB;AACzB,IAAMC,iBAAsB;AAC5B,IAAMC,SAAc;AACpB,IAAMC,iBAAsB;AAC5B,IAAMC,uBAA4B;AAClC,IAAMC,sBAA2B;AACjC,IAAMC,wBAA6B;AACnC,IAAMC,iBAAsB;AAC5B,IAAMC,oBAAyB;AAC/B,IAAMC,2BAAmC;AAEzC,IAAM,mBAAmB,MAAM;AAAC;AAChC,IAAM,qBAAqB,MAAM;AAAC;AAClC,IAAM,eAAe,MAAM;AAC3B,IAAM,sBAAsB,MAAM;AAAC;AACnC,IAAM,oBAAoB,MAAM;AAAC;AACjC,IAAM,yBAAyB,MAAM;AAAC;AAEtC,IAAM,gBAA8D,CAAC,EAAE,SAAS,MAAM;AAC3F,SAAa,oBAAoB,gBAAU,MAAM,QAAQ;AAC3D;","names":["useState","useEffect","useMemo","useCallback","useReducer","useRef","useLayoutEffect","useContext","createContext","useId","useDebugValue","useImperativeHandle","useInsertionEffect","useSyncExternalStore","useTransition","useDeferredValue","unstable_batchedUpdates"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-state-basis",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "A linear algebra-powered React architectural tool that detects redundant state and synchronization anti-patterns by modeling state transitions as vectors in a basis.",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|