UNPKG

resig.js

Version:

Universal reactive signal library with complete platform features: signals, animations, CRDTs, scheduling, DOM integration. Works identically across React, SolidJS, Svelte, Vue, and Qwik.

385 lines (384 loc) 14.2 kB
/** * Signal-Σ Extensions * Advanced primitives for extensibility following mathematical patterns */ export { DragContainer, createDragContainer, composeDragBehaviors, type DragState, type DragOperation, type DraggableConfig, } from './drag-drop'; export { RealtimeSync, createRealtimeSync, createSyncedCounter, createSyncedSet, createSyncedRegister, type SyncMessage, type SyncConfig, type SyncContext, type ConnectionState, } from './realtime-sync'; export { ThemeManager, createThemeManager, createLightTheme, createDarkTheme, composeThemes, mapThemeColors, type CSSVar, type CSSVars, type Theme, type ThemeConfig, type ColorUtils, } from './theme-system'; export { UndoRedoManager, createUndoRedoManager, createCommand, createTextCommand, createArrayCommand, type Memento, type Command, type TimeTravel, type UndoRedoConfig, } from './undo-redo'; export declare const ExtensionPatterns: { Operad: { compose: <A, B, C>(f: (a: A) => B, g: (b: B) => C) => (a: A) => C; plug: <T, U, V>(outer: (u: U) => V, inner: (t: T) => U) => (t: T) => V; identity: <T_1>(x: T_1) => T_1; }; CommutativeMonoid: { empty: <T_2>() => T_2[]; combine: <T_3>(a: T_3[], b: T_3[]) => T_3[]; isCommutative: boolean; isAssociative: boolean; hasIdentity: boolean; }; Functor: { map: <A_1, B_1>(f: (a: A_1) => B_1) => (fa: A_1[]) => B_1[]; identity: <A_2>(fa: A_2[]) => A_2[]; composition: <A_3, B_2, C_1>(f: (a: A_3) => B_2, g: (b: B_2) => C_1) => (a: A_3) => C_1; }; Coalgebra: { unfold: <S, A_4>(seed: S, next: (s: S) => [A_4, S]) => A_4[]; observe: <S_1, A_5>(state: S_1, observer: (s: S_1) => A_5) => A_5; transition: <S_2>(state: S_2, transition: (s: S_2) => S_2) => S_2; }; }; export declare const createExtension: <T, Config = any>(name: string, pattern: 'operad' | 'monoid' | 'functor' | 'coalgebra', implementation: { create: (config: Config) => T; compose?: (a: T, b: T) => T; map?: <U>(f: (x: any) => U, t: T) => any; unfold?: (seed: any, next: (s: any) => [any, any]) => any; }) => { name: string; pattern: "operad" | "monoid" | "functor" | "coalgebra"; create: (config: Config) => T; compose: (a: T, b: T) => T; map: <U>(f: (x: any) => U, t: T) => any; unfold: (seed: any, next: (s: any) => [any, any]) => any; verify: () => { hasIdentity: boolean; hasComposition: boolean; isAssociative: boolean; isCommutative?: undefined; hasMap?: undefined; preservesIdentity?: undefined; preservesComposition?: undefined; hasUnfold?: undefined; isObservable?: undefined; hasTransitions?: undefined; } | { hasIdentity: boolean; hasComposition: boolean; isAssociative: boolean; isCommutative: boolean; hasMap?: undefined; preservesIdentity?: undefined; preservesComposition?: undefined; hasUnfold?: undefined; isObservable?: undefined; hasTransitions?: undefined; } | { hasMap: boolean; preservesIdentity: boolean; preservesComposition: boolean; hasIdentity?: undefined; hasComposition?: undefined; isAssociative?: undefined; isCommutative?: undefined; hasUnfold?: undefined; isObservable?: undefined; hasTransitions?: undefined; } | { hasUnfold: boolean; isObservable: boolean; hasTransitions: boolean; hasIdentity?: undefined; hasComposition?: undefined; isAssociative?: undefined; isCommutative?: undefined; hasMap?: undefined; preservesIdentity?: undefined; preservesComposition?: undefined; } | { hasIdentity?: undefined; hasComposition?: undefined; isAssociative?: undefined; isCommutative?: undefined; hasMap?: undefined; preservesIdentity?: undefined; preservesComposition?: undefined; hasUnfold?: undefined; isObservable?: undefined; hasTransitions?: undefined; }; }; export declare const ExampleExtensions: { DragDropOperad: { name: string; pattern: "operad" | "monoid" | "functor" | "coalgebra"; create: (config: any) => any; compose: (a: any, b: any) => any; map: <U>(f: (x: any) => U, t: any) => any; unfold: (seed: any, next: (s: any) => [any, any]) => any; verify: () => { hasIdentity: boolean; hasComposition: boolean; isAssociative: boolean; isCommutative?: undefined; hasMap?: undefined; preservesIdentity?: undefined; preservesComposition?: undefined; hasUnfold?: undefined; isObservable?: undefined; hasTransitions?: undefined; } | { hasIdentity: boolean; hasComposition: boolean; isAssociative: boolean; isCommutative: boolean; hasMap?: undefined; preservesIdentity?: undefined; preservesComposition?: undefined; hasUnfold?: undefined; isObservable?: undefined; hasTransitions?: undefined; } | { hasMap: boolean; preservesIdentity: boolean; preservesComposition: boolean; hasIdentity?: undefined; hasComposition?: undefined; isAssociative?: undefined; isCommutative?: undefined; hasUnfold?: undefined; isObservable?: undefined; hasTransitions?: undefined; } | { hasUnfold: boolean; isObservable: boolean; hasTransitions: boolean; hasIdentity?: undefined; hasComposition?: undefined; isAssociative?: undefined; isCommutative?: undefined; hasMap?: undefined; preservesIdentity?: undefined; preservesComposition?: undefined; } | { hasIdentity?: undefined; hasComposition?: undefined; isAssociative?: undefined; isCommutative?: undefined; hasMap?: undefined; preservesIdentity?: undefined; preservesComposition?: undefined; hasUnfold?: undefined; isObservable?: undefined; hasTransitions?: undefined; }; }; SyncMonoid: { name: string; pattern: "operad" | "monoid" | "functor" | "coalgebra"; create: (config: any) => any; compose: (a: any, b: any) => any; map: <U>(f: (x: any) => U, t: any) => any; unfold: (seed: any, next: (s: any) => [any, any]) => any; verify: () => { hasIdentity: boolean; hasComposition: boolean; isAssociative: boolean; isCommutative?: undefined; hasMap?: undefined; preservesIdentity?: undefined; preservesComposition?: undefined; hasUnfold?: undefined; isObservable?: undefined; hasTransitions?: undefined; } | { hasIdentity: boolean; hasComposition: boolean; isAssociative: boolean; isCommutative: boolean; hasMap?: undefined; preservesIdentity?: undefined; preservesComposition?: undefined; hasUnfold?: undefined; isObservable?: undefined; hasTransitions?: undefined; } | { hasMap: boolean; preservesIdentity: boolean; preservesComposition: boolean; hasIdentity?: undefined; hasComposition?: undefined; isAssociative?: undefined; isCommutative?: undefined; hasUnfold?: undefined; isObservable?: undefined; hasTransitions?: undefined; } | { hasUnfold: boolean; isObservable: boolean; hasTransitions: boolean; hasIdentity?: undefined; hasComposition?: undefined; isAssociative?: undefined; isCommutative?: undefined; hasMap?: undefined; preservesIdentity?: undefined; preservesComposition?: undefined; } | { hasIdentity?: undefined; hasComposition?: undefined; isAssociative?: undefined; isCommutative?: undefined; hasMap?: undefined; preservesIdentity?: undefined; preservesComposition?: undefined; hasUnfold?: undefined; isObservable?: undefined; hasTransitions?: undefined; }; }; ThemeFunctor: { name: string; pattern: "operad" | "monoid" | "functor" | "coalgebra"; create: (config: any) => any; compose: (a: any, b: any) => any; map: <U>(f: (x: any) => U, t: any) => any; unfold: (seed: any, next: (s: any) => [any, any]) => any; verify: () => { hasIdentity: boolean; hasComposition: boolean; isAssociative: boolean; isCommutative?: undefined; hasMap?: undefined; preservesIdentity?: undefined; preservesComposition?: undefined; hasUnfold?: undefined; isObservable?: undefined; hasTransitions?: undefined; } | { hasIdentity: boolean; hasComposition: boolean; isAssociative: boolean; isCommutative: boolean; hasMap?: undefined; preservesIdentity?: undefined; preservesComposition?: undefined; hasUnfold?: undefined; isObservable?: undefined; hasTransitions?: undefined; } | { hasMap: boolean; preservesIdentity: boolean; preservesComposition: boolean; hasIdentity?: undefined; hasComposition?: undefined; isAssociative?: undefined; isCommutative?: undefined; hasUnfold?: undefined; isObservable?: undefined; hasTransitions?: undefined; } | { hasUnfold: boolean; isObservable: boolean; hasTransitions: boolean; hasIdentity?: undefined; hasComposition?: undefined; isAssociative?: undefined; isCommutative?: undefined; hasMap?: undefined; preservesIdentity?: undefined; preservesComposition?: undefined; } | { hasIdentity?: undefined; hasComposition?: undefined; isAssociative?: undefined; isCommutative?: undefined; hasMap?: undefined; preservesIdentity?: undefined; preservesComposition?: undefined; hasUnfold?: undefined; isObservable?: undefined; hasTransitions?: undefined; }; }; UndoRedoCoalgebra: { name: string; pattern: "operad" | "monoid" | "functor" | "coalgebra"; create: (config: any) => { initialState: any; options: any; }; compose: (a: { initialState: any; options: any; }, b: { initialState: any; options: any; }) => { initialState: any; options: any; }; map: <U_1>(f: (x: any) => U_1, t: { initialState: any; options: any; }) => any; unfold: (seed: any, next: (s: any) => [any, any]) => any; verify: () => { hasIdentity: boolean; hasComposition: boolean; isAssociative: boolean; isCommutative?: undefined; hasMap?: undefined; preservesIdentity?: undefined; preservesComposition?: undefined; hasUnfold?: undefined; isObservable?: undefined; hasTransitions?: undefined; } | { hasIdentity: boolean; hasComposition: boolean; isAssociative: boolean; isCommutative: boolean; hasMap?: undefined; preservesIdentity?: undefined; preservesComposition?: undefined; hasUnfold?: undefined; isObservable?: undefined; hasTransitions?: undefined; } | { hasMap: boolean; preservesIdentity: boolean; preservesComposition: boolean; hasIdentity?: undefined; hasComposition?: undefined; isAssociative?: undefined; isCommutative?: undefined; hasUnfold?: undefined; isObservable?: undefined; hasTransitions?: undefined; } | { hasUnfold: boolean; isObservable: boolean; hasTransitions: boolean; hasIdentity?: undefined; hasComposition?: undefined; isAssociative?: undefined; isCommutative?: undefined; hasMap?: undefined; preservesIdentity?: undefined; preservesComposition?: undefined; } | { hasIdentity?: undefined; hasComposition?: undefined; isAssociative?: undefined; isCommutative?: undefined; hasMap?: undefined; preservesIdentity?: undefined; preservesComposition?: undefined; hasUnfold?: undefined; isObservable?: undefined; hasTransitions?: undefined; }; }; }; export declare const composeExtensions: <T>(...extensions: T[]) => T; export declare const validateExtension: (extension: any) => boolean; export declare class ExtensionRegistry { private extensions; register<T>(name: string, extension: T): void; get<T>(name: string): T | undefined; list(): string[]; compose(names: string[]): any; } export declare const globalExtensionRegistry: ExtensionRegistry;