react-state-basis 0.2.2 β 0.2.4
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/README.md +73 -33
- package/dist/index.d.mts +60 -25
- package/dist/index.d.ts +60 -25
- package/dist/index.js +347 -134
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +307 -126
- package/dist/index.mjs.map +1 -1
- package/dist/jsx-dev-runtime.d.mts +2 -0
- package/dist/jsx-dev-runtime.d.ts +2 -0
- package/dist/jsx-dev-runtime.js +33 -0
- package/dist/jsx-dev-runtime.js.map +1 -0
- package/dist/jsx-dev-runtime.mjs +7 -0
- package/dist/jsx-dev-runtime.mjs.map +1 -0
- package/dist/jsx-runtime.d.mts +1 -0
- package/dist/jsx-runtime.d.ts +1 -0
- package/dist/jsx-runtime.js +35 -0
- package/dist/jsx-runtime.js.map +1 -0
- package/dist/jsx-runtime.mjs +8 -0
- package/dist/jsx-runtime.mjs.map +1 -0
- package/dist/plugin.js +4 -1
- package/package.json +9 -1
package/README.md
CHANGED
|
@@ -181,44 +181,84 @@ Basis automatically detects the environment. In mobile environments, it switches
|
|
|
181
181
|
|
|
182
182
|
## Key Capabilities
|
|
183
183
|
|
|
184
|
-
###
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
184
|
+
### 1. Temporal State Matrix (Real-time HUD)
|
|
185
|
+
The "Heartbeat" of your application. Basis injects a high-performance, Zero-Overhead HUD that visualizes your state transitions as a temporal heatmap.
|
|
186
|
+
* **Signal Visualization:** Watch every `useState`, `useReducer`, and `useEffect` update pulse in real-time.
|
|
187
|
+
* **Visual Pattern Recognition:** Identify architectural flaws simply by looking at the rhythm of the matrix. If multiple rows pulse together, they likely belong together.
|
|
188
|
+
* **Zero-Overhead:** Powered by Canvas API and `requestAnimationFrame` polling to ensure your application's performance remains untouched during development.
|
|
189
|
+
|
|
190
|
+
### 2. Redundant State Detection (Dimension Collapse)
|
|
191
|
+
Basis monitors transition vectors to identify "Dimension Collapses" in your state space.
|
|
192
|
+
* **Collinearity Alerts:** When multiple states (like `isLoading`, `isSuccess`, `hasData`) update in lockstep, Basis flags them as mathematically redundant.
|
|
193
|
+
* **Visual Debugging:** Redundant states are automatically highlighted in **Red** within the HUD, providing immediate visual proof that you are storing the same information in multiple places.
|
|
194
|
+
|
|
195
|
+
### 3. Causal Detective (Double Render Tracker)
|
|
196
|
+
Identify "Double Render Cycles" by tracking the causality chain from effects to state setters.
|
|
197
|
+
* **Sequence Tracking:** Detects when a state update is a lagging echo of a `useEffect` or `useLayoutEffect`.
|
|
198
|
+
* **Refactor Insights:** Provides direct console hints to move from manual synchronization to pure, deterministic mathematical projections using `useMemo`.
|
|
199
|
+
|
|
200
|
+
### 4. Stability Circuit Breaker
|
|
201
|
+
A real-time safety monitor for your execution thread.
|
|
202
|
+
* **Oscillation Detection:** If high-frequency state oscillation is detected (e.g., a recursive effect loop), Basis forcefully halts the update chain.
|
|
203
|
+
* **Tab Protection:** Stops the browser thread from locking up, allowing you to catch and fix infinite loops without having to force-quit your browser tab.
|
|
204
|
+
|
|
205
|
+
### 5. System Health & Efficiency Rank
|
|
206
|
+
Basis performs a global audit of your state space to calculate its **Mathematical Rank**βthe actual number of independent information dimensions.
|
|
207
|
+
* **Efficiency Score:** A real-time KPI for your architecture. A 100% score means every state variable is a unique, non-redundant source of truth.
|
|
208
|
+
* **Architecture Audit:** Use the global Health Report (`window.printBasisReport()`) to generate a correlation matrix of your entire application state.
|
|
208
209
|
|
|
209
210
|
---
|
|
210
211
|
|
|
211
|
-
|
|
212
|
+
### See it in Action
|
|
213
|
+
<p align="center">
|
|
214
|
+
<img src="./assets/react-state-basis.gif" width="800" alt="React State Basis Demo" />
|
|
215
|
+
</p>
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## π Case Study: Auditing High-Integrity React Architecture
|
|
220
|
+
|
|
221
|
+
To test the engine against professional standards, Basis was used to audit the [shadcn-admin](https://github.com/satnaing/shadcn-admin) template-a high-quality, production-ready dashboard implementation.
|
|
222
|
+
|
|
223
|
+
<p align="center">
|
|
224
|
+
<img src="./assets/shadcn-admin.png" width="800" alt="Basis Real World Audit" />
|
|
225
|
+
</p>
|
|
226
|
+
|
|
227
|
+
### Audit Results: 100% Basis Efficiency
|
|
228
|
+
The project demonstrated exceptional architectural integrity. The engine verified a **100% Efficiency**, confirming that all state variables are linearly independent. This proves that the codebase follows a "Single Source of Truth" philosophy with zero redundant state.
|
|
229
|
+
|
|
230
|
+
### Subtle Optimization Caught
|
|
231
|
+
Despite the perfect efficiency score, the **Causality Engine** identified a hidden performance bottleneck:
|
|
232
|
+
* **Double Render Detection:** Basis flagged a "Double Render Cycle" in the `use-mobile.tsx` hook. It detected that the `isMobile` state was being manually synchronized within a `useEffect`, triggering a secondary render pass.
|
|
233
|
+
* **Refactor Insight:** While the logic was correct, Basis revealed the cost of the implementation - a redundant render cycle that occurs before every layout shift.
|
|
212
234
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
235
|
+
### Stability Confirmation
|
|
236
|
+
The auditor provided formal verification for the rest of the suite:
|
|
237
|
+
* **Stable Callbacks:** Verified that `Sidebar` methods were correctly memoized, ensuring child components are protected from unnecessary updates.
|
|
238
|
+
* **Valid Projections:** Confirmed that complex table logic (pagination and filtering) was implemented as pure mathematical projections, rather than state-syncing.
|
|
239
|
+
|
|
240
|
+
Math reveals exactly what standard code reviews often miss: the **temporal topology** of your application.
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
## Roadmap
|
|
217
244
|
|
|
218
|
-
#### **v0.
|
|
219
|
-
- [
|
|
220
|
-
- [
|
|
221
|
-
- [
|
|
245
|
+
#### **v0.2.x - Signal Intelligence & Visual Foundation (Current)** β
|
|
246
|
+
- [x] **Full React Hook Parity:** Support for all standard hooks and React Native/Expo.
|
|
247
|
+
- [x] **React 19 Ready:** Full support for `use()`, `useOptimistic()`, and `useActionState()`.
|
|
248
|
+
- [x] **Temporal Matrix HUD:** Real-time Canvas-based visualization of state signals.
|
|
249
|
+
- [x] **Causality Engine:** Detection of sequential sync-leaks and double-render cycles.
|
|
250
|
+
- [x] **Ghost Mode:** Zero-op production exports with no bundle overhead.
|
|
251
|
+
- [x] **95% Test Coverage:** Verified mathematical engine.
|
|
252
|
+
|
|
253
|
+
#### **v0.3.0 - Global State & Ecosystem**
|
|
254
|
+
- [ ] **Zustand Middleware:** Auditing global-to-local state redundancy.
|
|
255
|
+
- [ ] **Redux Integration:** Connecting the causal engine to Redux dispatch cycles.
|
|
256
|
+
- [ ] **CLI Initializer:** `rsb-init` to automatically configure Babel/Vite plugins.
|
|
257
|
+
- [ ] **Context Auditor:** Tracking signal collisions across multiple React Context providers.
|
|
258
|
+
|
|
259
|
+
#### **v0.4.0 - Topology & Automation**
|
|
260
|
+
- [ ] **State-Space Topology Map:** 2D force-directed graph showing coupling clusters.
|
|
261
|
+
- [ ] **Automated Fix Hints:** Advanced console codemods for converting redundant state to `useMemo`.
|
|
222
262
|
|
|
223
263
|
---
|
|
224
264
|
|
package/dist/index.d.mts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import * as React
|
|
2
|
-
import React__default, {
|
|
3
|
-
export {
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import React__default, { ReactNode } from 'react';
|
|
3
|
+
export { React };
|
|
4
|
+
export { React as default };
|
|
5
|
+
export { AnchorHTMLAttributes, Attributes, ButtonHTMLAttributes, CSSProperties, ChangeEvent, ComponentProps, ComponentPropsWithRef, ComponentPropsWithoutRef, ComponentType, DependencyList, DetailedHTMLProps, Dispatch, DragEvent, EffectCallback, ElementType, FC, FocusEvent, FormEvent, HTMLAttributes, HTMLProps, InputHTMLAttributes, JSX, Key, KeyboardEvent, MouseEvent, MutableRefObject, PointerEvent, PropsWithChildren, ReactElement, ReactNode, ReactPortal, Reducer, Ref, RefObject, SVGProps, SetStateAction, TouchEvent } from 'react';
|
|
4
6
|
|
|
5
7
|
interface BasisConfig {
|
|
6
8
|
debug: boolean;
|
|
@@ -27,22 +29,38 @@ declare const __testEngine__: {
|
|
|
27
29
|
endEffectTracking: () => void;
|
|
28
30
|
};
|
|
29
31
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
declare
|
|
35
|
-
declare
|
|
36
|
-
|
|
32
|
+
interface BasisProviderProps {
|
|
33
|
+
children: ReactNode;
|
|
34
|
+
debug?: boolean;
|
|
35
|
+
}
|
|
36
|
+
declare const BasisProvider: React__default.FC<BasisProviderProps>;
|
|
37
|
+
declare const useBasisConfig: () => {
|
|
38
|
+
debug: boolean;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
type GetReducerState<R extends React.Reducer<any, any>> = R extends React.Reducer<infer S, any> ? S : never;
|
|
42
|
+
type GetReducerAction<R extends React.Reducer<any, any>> = R extends React.Reducer<any, infer A> ? A : never;
|
|
43
|
+
declare function useState<S>(initialState: S | (() => S), label?: string): [S, React.Dispatch<React.SetStateAction<S>>];
|
|
44
|
+
declare function useRef<T>(initialValue: T): React.RefObject<T>;
|
|
45
|
+
declare function useRef<T>(initialValue: T | null): React.RefObject<T>;
|
|
46
|
+
declare function useRef<T = undefined>(): React.MutableRefObject<T | undefined>;
|
|
47
|
+
declare function useReducer<R extends React.Reducer<any, any>, I>(reducer: R, initialArg: I, init?: any, label?: string): [GetReducerState<R>, React.Dispatch<GetReducerAction<R>>];
|
|
48
|
+
declare function useMemo<T>(factory: () => T, deps: React.DependencyList | undefined, label?: string): T;
|
|
49
|
+
declare function useCallback<T extends (...args: any[]) => any>(callback: T, deps: React.DependencyList, label?: string): T;
|
|
50
|
+
declare function useEffect(effect: React.EffectCallback, deps?: React.DependencyList, label?: string): void;
|
|
51
|
+
declare function useLayoutEffect(effect: React.EffectCallback, deps?: React.DependencyList, label?: string): void;
|
|
37
52
|
declare function useTransition(_label?: string): [boolean, (callback: () => void) => void];
|
|
38
53
|
declare function useDeferredValue<T>(value: T, initialValueOrLabel?: T | string, label?: string): T;
|
|
39
|
-
declare function
|
|
40
|
-
declare
|
|
41
|
-
declare
|
|
42
|
-
declare
|
|
43
|
-
declare
|
|
44
|
-
declare
|
|
45
|
-
declare
|
|
54
|
+
declare function createContext<T>(defaultValue: T, label?: string): React.Context<T>;
|
|
55
|
+
declare const useContext: typeof React.useContext;
|
|
56
|
+
declare const useId: (label?: string) => string;
|
|
57
|
+
declare const useDebugValue: typeof React.useDebugValue;
|
|
58
|
+
declare const useImperativeHandle: typeof React.useImperativeHandle;
|
|
59
|
+
declare const useInsertionEffect: typeof React.useInsertionEffect;
|
|
60
|
+
declare const useSyncExternalStore: any;
|
|
61
|
+
declare function use<T>(usable: React.Usable<T>): T;
|
|
62
|
+
declare function useOptimistic<S, P>(passthrough: S, reducer?: (state: S, payload: P) => S, label?: string): [S, (payload: P) => void];
|
|
63
|
+
declare function useActionState<State, Payload>(action: (state: State, payload: Payload) => Promise<State> | State, initialState: State, permalink?: string, label?: string): [state: State, dispatch: (payload: Payload) => void, isPending: boolean];
|
|
46
64
|
declare const __test__: {
|
|
47
65
|
registerVariable: (label: string) => void;
|
|
48
66
|
unregisterVariable: (label: string) => void;
|
|
@@ -53,13 +71,30 @@ declare const __test__: {
|
|
|
53
71
|
currentTickBatch: any;
|
|
54
72
|
};
|
|
55
73
|
|
|
56
|
-
|
|
57
|
-
children:
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
debug: boolean;
|
|
74
|
+
declare const Children: {
|
|
75
|
+
map<T, C>(children: C | readonly C[], fn: (child: C, index: number) => T): C extends null | undefined ? C : Array<Exclude<T, boolean | null | undefined>>;
|
|
76
|
+
forEach<C>(children: C | readonly C[], fn: (child: C, index: number) => void): void;
|
|
77
|
+
count(children: any): number;
|
|
78
|
+
only<C>(children: C): C extends any[] ? never : C;
|
|
79
|
+
toArray(children: React.ReactNode | React.ReactNode[]): Array<Exclude<React.ReactNode, boolean | null | undefined>>;
|
|
63
80
|
};
|
|
81
|
+
declare const Component: typeof React.Component;
|
|
82
|
+
declare const Fragment: React.ExoticComponent<React.FragmentProps>;
|
|
83
|
+
declare const Profiler: React.ExoticComponent<React.ProfilerProps>;
|
|
84
|
+
declare const PureComponent: typeof React.PureComponent;
|
|
85
|
+
declare const StrictMode: React.ExoticComponent<{
|
|
86
|
+
children?: React.ReactNode | undefined;
|
|
87
|
+
}>;
|
|
88
|
+
declare const Suspense: React.ExoticComponent<React.SuspenseProps>;
|
|
89
|
+
declare const cloneElement: typeof React.cloneElement;
|
|
90
|
+
declare const createRef: typeof React.createRef;
|
|
91
|
+
declare const forwardRef: typeof React.forwardRef;
|
|
92
|
+
declare const isValidElement: typeof React.isValidElement;
|
|
93
|
+
declare const lazy: typeof React.lazy;
|
|
94
|
+
declare const memo: typeof React.memo;
|
|
95
|
+
declare const startTransition: typeof React.startTransition;
|
|
96
|
+
declare const version: string;
|
|
97
|
+
declare const createPortal: any;
|
|
98
|
+
declare const flushSync: any;
|
|
64
99
|
|
|
65
|
-
export {
|
|
100
|
+
export { BasisProvider, Children, Component, Fragment, Profiler, PureComponent, StrictMode, Suspense, __testEngine__, __test__, beginEffectTracking, cloneElement, config, configureBasis, createContext, 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 };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import * as React
|
|
2
|
-
import React__default, {
|
|
3
|
-
export {
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import React__default, { ReactNode } from 'react';
|
|
3
|
+
export { React };
|
|
4
|
+
export { React as default };
|
|
5
|
+
export { AnchorHTMLAttributes, Attributes, ButtonHTMLAttributes, CSSProperties, ChangeEvent, ComponentProps, ComponentPropsWithRef, ComponentPropsWithoutRef, ComponentType, DependencyList, DetailedHTMLProps, Dispatch, DragEvent, EffectCallback, ElementType, FC, FocusEvent, FormEvent, HTMLAttributes, HTMLProps, InputHTMLAttributes, JSX, Key, KeyboardEvent, MouseEvent, MutableRefObject, PointerEvent, PropsWithChildren, ReactElement, ReactNode, ReactPortal, Reducer, Ref, RefObject, SVGProps, SetStateAction, TouchEvent } from 'react';
|
|
4
6
|
|
|
5
7
|
interface BasisConfig {
|
|
6
8
|
debug: boolean;
|
|
@@ -27,22 +29,38 @@ declare const __testEngine__: {
|
|
|
27
29
|
endEffectTracking: () => void;
|
|
28
30
|
};
|
|
29
31
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
declare
|
|
35
|
-
declare
|
|
36
|
-
|
|
32
|
+
interface BasisProviderProps {
|
|
33
|
+
children: ReactNode;
|
|
34
|
+
debug?: boolean;
|
|
35
|
+
}
|
|
36
|
+
declare const BasisProvider: React__default.FC<BasisProviderProps>;
|
|
37
|
+
declare const useBasisConfig: () => {
|
|
38
|
+
debug: boolean;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
type GetReducerState<R extends React.Reducer<any, any>> = R extends React.Reducer<infer S, any> ? S : never;
|
|
42
|
+
type GetReducerAction<R extends React.Reducer<any, any>> = R extends React.Reducer<any, infer A> ? A : never;
|
|
43
|
+
declare function useState<S>(initialState: S | (() => S), label?: string): [S, React.Dispatch<React.SetStateAction<S>>];
|
|
44
|
+
declare function useRef<T>(initialValue: T): React.RefObject<T>;
|
|
45
|
+
declare function useRef<T>(initialValue: T | null): React.RefObject<T>;
|
|
46
|
+
declare function useRef<T = undefined>(): React.MutableRefObject<T | undefined>;
|
|
47
|
+
declare function useReducer<R extends React.Reducer<any, any>, I>(reducer: R, initialArg: I, init?: any, label?: string): [GetReducerState<R>, React.Dispatch<GetReducerAction<R>>];
|
|
48
|
+
declare function useMemo<T>(factory: () => T, deps: React.DependencyList | undefined, label?: string): T;
|
|
49
|
+
declare function useCallback<T extends (...args: any[]) => any>(callback: T, deps: React.DependencyList, label?: string): T;
|
|
50
|
+
declare function useEffect(effect: React.EffectCallback, deps?: React.DependencyList, label?: string): void;
|
|
51
|
+
declare function useLayoutEffect(effect: React.EffectCallback, deps?: React.DependencyList, label?: string): void;
|
|
37
52
|
declare function useTransition(_label?: string): [boolean, (callback: () => void) => void];
|
|
38
53
|
declare function useDeferredValue<T>(value: T, initialValueOrLabel?: T | string, label?: string): T;
|
|
39
|
-
declare function
|
|
40
|
-
declare
|
|
41
|
-
declare
|
|
42
|
-
declare
|
|
43
|
-
declare
|
|
44
|
-
declare
|
|
45
|
-
declare
|
|
54
|
+
declare function createContext<T>(defaultValue: T, label?: string): React.Context<T>;
|
|
55
|
+
declare const useContext: typeof React.useContext;
|
|
56
|
+
declare const useId: (label?: string) => string;
|
|
57
|
+
declare const useDebugValue: typeof React.useDebugValue;
|
|
58
|
+
declare const useImperativeHandle: typeof React.useImperativeHandle;
|
|
59
|
+
declare const useInsertionEffect: typeof React.useInsertionEffect;
|
|
60
|
+
declare const useSyncExternalStore: any;
|
|
61
|
+
declare function use<T>(usable: React.Usable<T>): T;
|
|
62
|
+
declare function useOptimistic<S, P>(passthrough: S, reducer?: (state: S, payload: P) => S, label?: string): [S, (payload: P) => void];
|
|
63
|
+
declare function useActionState<State, Payload>(action: (state: State, payload: Payload) => Promise<State> | State, initialState: State, permalink?: string, label?: string): [state: State, dispatch: (payload: Payload) => void, isPending: boolean];
|
|
46
64
|
declare const __test__: {
|
|
47
65
|
registerVariable: (label: string) => void;
|
|
48
66
|
unregisterVariable: (label: string) => void;
|
|
@@ -53,13 +71,30 @@ declare const __test__: {
|
|
|
53
71
|
currentTickBatch: any;
|
|
54
72
|
};
|
|
55
73
|
|
|
56
|
-
|
|
57
|
-
children:
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
debug: boolean;
|
|
74
|
+
declare const Children: {
|
|
75
|
+
map<T, C>(children: C | readonly C[], fn: (child: C, index: number) => T): C extends null | undefined ? C : Array<Exclude<T, boolean | null | undefined>>;
|
|
76
|
+
forEach<C>(children: C | readonly C[], fn: (child: C, index: number) => void): void;
|
|
77
|
+
count(children: any): number;
|
|
78
|
+
only<C>(children: C): C extends any[] ? never : C;
|
|
79
|
+
toArray(children: React.ReactNode | React.ReactNode[]): Array<Exclude<React.ReactNode, boolean | null | undefined>>;
|
|
63
80
|
};
|
|
81
|
+
declare const Component: typeof React.Component;
|
|
82
|
+
declare const Fragment: React.ExoticComponent<React.FragmentProps>;
|
|
83
|
+
declare const Profiler: React.ExoticComponent<React.ProfilerProps>;
|
|
84
|
+
declare const PureComponent: typeof React.PureComponent;
|
|
85
|
+
declare const StrictMode: React.ExoticComponent<{
|
|
86
|
+
children?: React.ReactNode | undefined;
|
|
87
|
+
}>;
|
|
88
|
+
declare const Suspense: React.ExoticComponent<React.SuspenseProps>;
|
|
89
|
+
declare const cloneElement: typeof React.cloneElement;
|
|
90
|
+
declare const createRef: typeof React.createRef;
|
|
91
|
+
declare const forwardRef: typeof React.forwardRef;
|
|
92
|
+
declare const isValidElement: typeof React.isValidElement;
|
|
93
|
+
declare const lazy: typeof React.lazy;
|
|
94
|
+
declare const memo: typeof React.memo;
|
|
95
|
+
declare const startTransition: typeof React.startTransition;
|
|
96
|
+
declare const version: string;
|
|
97
|
+
declare const createPortal: any;
|
|
98
|
+
declare const flushSync: any;
|
|
64
99
|
|
|
65
|
-
export {
|
|
100
|
+
export { BasisProvider, Children, Component, Fragment, Profiler, PureComponent, StrictMode, Suspense, __testEngine__, __test__, beginEffectTracking, cloneElement, config, configureBasis, createContext, 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 };
|