flexium 0.10.3 → 0.10.6
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/{DrawText-ngwNNh8O.d.ts → DrawText-CVAKQ5wZ.d.cts} +42 -42
- package/dist/{DrawText-ccZrs3Xs.d.cts → DrawText-Dlh1L1Ar.d.ts} +42 -42
- package/dist/advanced.d.cts +1 -1
- package/dist/advanced.d.ts +1 -1
- package/dist/advanced.js +1 -1
- package/dist/advanced.js.map +1 -1
- package/dist/advanced.mjs +1 -1
- package/dist/advanced.mjs.map +1 -1
- package/dist/canvas.d.cts +5 -6
- package/dist/canvas.d.ts +5 -6
- package/dist/canvas.js +1 -1
- package/dist/canvas.mjs +1 -1
- package/dist/chunk-2L2QFYBL.mjs +2 -0
- package/dist/chunk-2L2QFYBL.mjs.map +1 -0
- package/dist/chunk-ANJNQW77.js +2 -0
- package/dist/chunk-ANJNQW77.js.map +1 -0
- package/dist/{chunk-WXEHDEIH.js → chunk-DZ7L3SHV.js} +2 -2
- package/dist/{chunk-WXEHDEIH.js.map → chunk-DZ7L3SHV.js.map} +1 -1
- package/dist/chunk-E5WYPGCV.mjs +3 -0
- package/dist/chunk-E5WYPGCV.mjs.map +1 -0
- package/dist/chunk-ECYYIQEX.mjs +3 -0
- package/dist/chunk-ECYYIQEX.mjs.map +1 -0
- package/dist/chunk-ERIXVRJ4.mjs +3 -0
- package/dist/chunk-ERIXVRJ4.mjs.map +1 -0
- package/dist/chunk-F23GIQDE.mjs +2 -0
- package/dist/chunk-F23GIQDE.mjs.map +1 -0
- package/dist/chunk-FDMJHFN7.mjs +2 -0
- package/dist/chunk-FDMJHFN7.mjs.map +1 -0
- package/dist/chunk-GKJQEOP7.mjs +2 -0
- package/dist/{chunk-PVPY55Z7.mjs.map → chunk-GKJQEOP7.mjs.map} +1 -1
- package/dist/chunk-GYDP6MFV.js +3 -0
- package/dist/chunk-GYDP6MFV.js.map +1 -0
- package/dist/chunk-HB5VPQTB.mjs +2 -0
- package/dist/chunk-HB5VPQTB.mjs.map +1 -0
- package/dist/chunk-NF4RPLCK.js +3 -0
- package/dist/chunk-NF4RPLCK.js.map +1 -0
- package/dist/chunk-OPAAGNBO.mjs +2 -0
- package/dist/{chunk-HLPVL6EK.mjs.map → chunk-OPAAGNBO.mjs.map} +1 -1
- package/dist/chunk-RLLO5M6F.js +3 -0
- package/dist/chunk-RLLO5M6F.js.map +1 -0
- package/dist/{chunk-63AW5ZOC.js → chunk-RMN5IPS5.js} +2 -2
- package/dist/{chunk-63AW5ZOC.js.map → chunk-RMN5IPS5.js.map} +1 -1
- package/dist/chunk-WWEWRI6S.js +2 -0
- package/dist/chunk-WWEWRI6S.js.map +1 -0
- package/dist/chunk-YEBBTVHG.js +2 -0
- package/dist/chunk-YEBBTVHG.js.map +1 -0
- package/dist/chunk-YPVRQKMW.js +2 -0
- package/dist/chunk-YPVRQKMW.js.map +1 -0
- package/dist/{components-CxnAnbpI.d.cts → components-BMbqsbMY.d.cts} +5 -5
- package/dist/{components-B7KQ8C-i.d.ts → components-C83mBQXW.d.ts} +5 -5
- package/dist/{effect-14CxUU8r.d.ts → core-CxHP8991.d.cts} +9 -1
- package/dist/{effect-14CxUU8r.d.cts → core-D0ggvjX3.d.ts} +9 -1
- package/dist/core.d.cts +2 -80
- package/dist/core.d.ts +2 -80
- package/dist/core.js +1 -1
- package/dist/core.mjs +1 -1
- package/dist/dom.d.cts +2 -2
- package/dist/dom.d.ts +2 -2
- package/dist/dom.js +1 -1
- package/dist/dom.js.map +1 -1
- package/dist/dom.mjs +1 -1
- package/dist/dom.mjs.map +1 -1
- package/dist/effect-554ONNZR.js +2 -0
- package/dist/{effect-K45UU3N4.js.map → effect-554ONNZR.js.map} +1 -1
- package/dist/effect-T2GVIS3T.mjs +2 -0
- package/dist/{effect-3LUCHSAZ.mjs.map → effect-T2GVIS3T.mjs.map} +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/interactive.d.cts +5 -5
- package/dist/interactive.d.ts +5 -5
- package/dist/interactive.js +1 -1
- package/dist/interactive.js.map +1 -1
- package/dist/interactive.mjs +1 -1
- package/dist/interactive.mjs.map +1 -1
- package/dist/metafile-cjs.json +1 -1
- package/dist/metafile-esm.json +1 -1
- package/dist/{portal-NLlE-fNZ.d.cts → portal-BK_0Z0hE.d.cts} +2 -2
- package/dist/{portal-CVqrpmHd.d.ts → portal-CbguxtuQ.d.ts} +2 -2
- package/dist/primitives/motion.js +1 -1
- package/dist/primitives/motion.mjs +1 -1
- package/dist/primitives/ui.d.cts +3 -3
- package/dist/primitives/ui.d.ts +3 -3
- package/dist/primitives/ui.js +1 -1
- package/dist/primitives/ui.js.map +1 -1
- package/dist/primitives/ui.mjs +1 -1
- package/dist/primitives/ui.mjs.map +1 -1
- package/dist/primitives.d.cts +4 -5
- package/dist/primitives.d.ts +4 -5
- package/dist/primitives.js +1 -1
- package/dist/primitives.js.map +1 -1
- package/dist/primitives.mjs +1 -1
- package/dist/primitives.mjs.map +1 -1
- package/dist/router.d.cts +3 -3
- package/dist/router.d.ts +3 -3
- package/dist/router.js +1 -1
- package/dist/router.mjs +1 -1
- package/dist/server.js +1 -1
- package/dist/server.js.map +1 -1
- package/dist/server.mjs +1 -1
- package/dist/server.mjs.map +1 -1
- package/dist/state-DitsMyev.d.cts +96 -0
- package/dist/state-DitsMyev.d.ts +96 -0
- package/dist/state-S3TSPDMB.js +2 -0
- package/dist/state-S3TSPDMB.js.map +1 -0
- package/dist/state-SUVOJZYY.mjs +2 -0
- package/dist/state-SUVOJZYY.mjs.map +1 -0
- package/dist/test-exports.d.cts +37 -7
- package/dist/test-exports.d.ts +37 -7
- package/dist/test-exports.js +1 -1
- package/dist/test-exports.mjs +1 -1
- package/package.json +1 -1
- package/dist/chunk-3BQXIHYI.mjs +0 -3
- package/dist/chunk-3BQXIHYI.mjs.map +0 -1
- package/dist/chunk-5236IK5I.js +0 -2
- package/dist/chunk-5236IK5I.js.map +0 -1
- package/dist/chunk-AJT35P3Z.js +0 -3
- package/dist/chunk-AJT35P3Z.js.map +0 -1
- package/dist/chunk-AYQMU7XC.js +0 -3
- package/dist/chunk-AYQMU7XC.js.map +0 -1
- package/dist/chunk-B7VP6HBY.mjs +0 -2
- package/dist/chunk-B7VP6HBY.mjs.map +0 -1
- package/dist/chunk-FOPCQGWG.mjs +0 -3
- package/dist/chunk-FOPCQGWG.mjs.map +0 -1
- package/dist/chunk-HLPVL6EK.mjs +0 -2
- package/dist/chunk-KJPIJNFH.mjs +0 -2
- package/dist/chunk-KJPIJNFH.mjs.map +0 -1
- package/dist/chunk-PVPY55Z7.mjs +0 -2
- package/dist/chunk-Q7WT5IIF.mjs +0 -3
- package/dist/chunk-Q7WT5IIF.mjs.map +0 -1
- package/dist/chunk-REM6WIZS.mjs +0 -2
- package/dist/chunk-REM6WIZS.mjs.map +0 -1
- package/dist/chunk-RSI6RYJ7.js +0 -2
- package/dist/chunk-RSI6RYJ7.js.map +0 -1
- package/dist/chunk-WOHSSPKD.js +0 -2
- package/dist/chunk-WOHSSPKD.js.map +0 -1
- package/dist/chunk-XKPRCSXK.js +0 -3
- package/dist/chunk-XKPRCSXK.js.map +0 -1
- package/dist/effect-3LUCHSAZ.mjs +0 -2
- package/dist/effect-K45UU3N4.js +0 -2
- package/dist/signal-2QUI7H7B.js +0 -2
- package/dist/signal-2QUI7H7B.js.map +0 -1
- package/dist/signal-C6936A3J.d.cts +0 -175
- package/dist/signal-C6936A3J.d.ts +0 -175
- package/dist/signal-L3ZWGOVT.mjs +0 -2
- package/dist/signal-L3ZWGOVT.mjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/errors.ts","../src/core/graph.ts","../src/core/owner.ts","../src/core/effect.ts"],"names":["ErrorCodes","getErrorDetails","code","createErrorInfo","context","originalError","details","formatErrorMessage","info","message","contextStr","key","value","logError","logWarning","LinkPool","pool","size","alloc","dep","sub","link","free","Graph","connect","depsHead","subsHead","disconnectDependencies","nextDep","prevSub","nextSub","Flags","has","obj","flag","add","remove","activeEffect","getActiveEffect","setActiveEffect","effect","untrack","fn","prev","owner","getOwner","setOwner","newOwner","root","prevOwner","dispose","cleanup","EffectNode","onError","i","prevEffect","result","error","options","node"],"mappings":"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","file":"chunk-Q7WT5IIF.mjs","sourcesContent":["/**\n * Flexium Error System\n *\n * Standardized error handling with error codes, contextual information,\n * and actionable suggestions for developers.\n */\n\n// Error codes for all Flexium errors\nexport const ErrorCodes = {\n // Signal/Effect errors (1xx)\n EFFECT_EXECUTION_FAILED: 'FLX101',\n CLEANUP_OUTSIDE_EFFECT: 'FLX102',\n SIGNAL_UPDATE_DURING_RENDER: 'FLX103',\n COMPUTED_EXECUTION_FAILED: 'FLX104',\n\n // Context errors (2xx)\n CONTEXT_MISSING_PROVIDER: 'FLX201',\n ROUTER_OUTSIDE_PROVIDER: 'FLX202',\n\n // Form errors (3xx)\n FORM_VALIDATION_FAILED: 'FLX301',\n FORM_SUBMISSION_FAILED: 'FLX302',\n ASYNC_VALIDATION_FAILED: 'FLX303',\n\n // Component errors (4xx)\n BUTTON_HANDLER_FAILED: 'FLX401',\n BUTTON_MISSING_ARIA_LABEL: 'FLX402',\n COMPONENT_RENDER_FAILED: 'FLX403',\n\n // Hydration errors (5xx)\n HYDRATION_MISMATCH: 'FLX501',\n HYDRATION_TEXT_MISMATCH: 'FLX502',\n HYDRATION_TAG_MISMATCH: 'FLX503',\n HYDRATION_ATTRIBUTE_MISMATCH: 'FLX504',\n\n // DevTools errors (6xx)\n DEVTOOLS_LISTENER_ERROR: 'FLX601',\n\n // Render errors (7xx)\n UNCAUGHT_RENDER_ERROR: 'FLX701',\n ERROR_BOUNDARY_CALLBACK_FAILED: 'FLX702',\n DOM_CLEANUP_FAILED: 'FLX703',\n\n // Event errors (8xx)\n EVENT_HANDLER_FAILED: 'FLX801',\n KEYBOARD_HANDLER_FAILED: 'FLX802',\n\n // Resource/Async errors (9xx)\n RESOURCE_FETCH_FAILED: 'FLX901',\n RESOURCE_TIMEOUT: 'FLX902',\n} as const\n\nexport type ErrorCode = (typeof ErrorCodes)[keyof typeof ErrorCodes]\n\ninterface ErrorDefinition {\n message: string\n suggestion?: string\n}\n\n// Error message definitions with suggestions\n// Wrapped in a function to allow tree-shaking in production\nfunction getErrorDetails(code: ErrorCode): {\n message: string\n suggestion?: string\n} {\n const isDev = typeof process !== 'undefined' && process.env?.NODE_ENV !== 'production'\n if (isDev) {\n const errorDefinitions: Record<ErrorCode, ErrorDefinition> = {\n [ErrorCodes.EFFECT_EXECUTION_FAILED]: {\n message: 'Effect execution failed',\n suggestion:\n 'Check the effect callback for runtime errors. Consider wrapping async operations in try-catch.',\n },\n [ErrorCodes.CLEANUP_OUTSIDE_EFFECT]: {\n message: 'onCleanup must be called from within an effect',\n suggestion: 'Move the onCleanup() call inside an effect() callback.',\n },\n [ErrorCodes.SIGNAL_UPDATE_DURING_RENDER]: {\n message: 'Signal was updated during render',\n suggestion:\n 'Avoid updating signals inside render functions. Use effect() for side effects.',\n },\n [ErrorCodes.CONTEXT_MISSING_PROVIDER]: {\n message: 'Context used outside of Provider',\n suggestion:\n 'Wrap your component tree with the appropriate Context.Provider.',\n },\n [ErrorCodes.ROUTER_OUTSIDE_PROVIDER]: {\n message: 'router() must be used within a <Router> component',\n suggestion: 'Ensure your component is a descendant of <Router>.',\n },\n [ErrorCodes.FORM_VALIDATION_FAILED]: {\n message: 'Form field validation failed',\n suggestion:\n 'Check the validation rules for the field and the input value.',\n },\n [ErrorCodes.FORM_SUBMISSION_FAILED]: {\n message: 'Form submission failed',\n suggestion: 'Check the onSubmit handler and network connectivity.',\n },\n [ErrorCodes.BUTTON_HANDLER_FAILED]: {\n message: 'Button press handler failed',\n suggestion: 'Check the onPress/onClick callback for errors.',\n },\n [ErrorCodes.BUTTON_MISSING_ARIA_LABEL]: {\n message: 'IconButton is missing an aria-label',\n suggestion:\n 'Add an aria-label prop to IconButton for screen reader accessibility.',\n },\n [ErrorCodes.HYDRATION_MISMATCH]: {\n message: 'Hydration mismatch detected',\n suggestion:\n 'Ensure server and client render the same content. Check for browser-only code.',\n },\n [ErrorCodes.HYDRATION_TEXT_MISMATCH]: {\n message: 'Text content mismatch during hydration',\n suggestion:\n 'Server and client rendered different text. Check for Date.now(), Math.random(), or client-only data.',\n },\n [ErrorCodes.HYDRATION_TAG_MISMATCH]: {\n message: 'Element tag mismatch during hydration',\n suggestion:\n 'Server and client rendered different elements. Verify conditional rendering logic.',\n },\n [ErrorCodes.DEVTOOLS_LISTENER_ERROR]: {\n message: 'DevTools listener threw an error',\n suggestion: 'Check your DevTools event listener callback.',\n },\n [ErrorCodes.UNCAUGHT_RENDER_ERROR]: {\n message: 'Uncaught error during render',\n suggestion:\n 'Wrap components with <ErrorBoundary> to catch and handle errors gracefully.',\n },\n [ErrorCodes.ERROR_BOUNDARY_CALLBACK_FAILED]: {\n message: 'ErrorBoundary callback failed',\n suggestion: 'Check your onError or onReset callback for errors.',\n },\n [ErrorCodes.COMPUTED_EXECUTION_FAILED]: {\n message: 'Computed value execution failed',\n suggestion:\n 'Check the computed callback for runtime errors. Ensure all dependencies are valid.',\n },\n [ErrorCodes.ASYNC_VALIDATION_FAILED]: {\n message: 'Async form validation failed',\n suggestion:\n 'Check the async validation function and ensure it handles errors properly.',\n },\n [ErrorCodes.COMPONENT_RENDER_FAILED]: {\n message: 'Component render failed',\n suggestion:\n 'Check the component function for runtime errors. Consider wrapping with <ErrorBoundary>.',\n },\n [ErrorCodes.HYDRATION_ATTRIBUTE_MISMATCH]: {\n message: 'Attribute mismatch during hydration',\n suggestion:\n 'Server and client rendered different attribute values. Check for dynamic attributes.',\n },\n [ErrorCodes.DOM_CLEANUP_FAILED]: {\n message: 'DOM cleanup operation failed',\n suggestion:\n 'A node may have been removed from the DOM unexpectedly. Check for manual DOM manipulation.',\n },\n [ErrorCodes.EVENT_HANDLER_FAILED]: {\n message: 'Event handler threw an error',\n suggestion:\n 'Check your event handler callback. Consider adding try-catch for async operations.',\n },\n [ErrorCodes.KEYBOARD_HANDLER_FAILED]: {\n message: 'Keyboard event handler failed',\n suggestion: 'Check the onKeyDown/onKeyUp handler for errors.',\n },\n [ErrorCodes.RESOURCE_FETCH_FAILED]: {\n message: 'Resource fetch failed',\n suggestion:\n 'Check the async function and network connectivity. The resource will show an error state.',\n },\n [ErrorCodes.RESOURCE_TIMEOUT]: {\n message: 'Resource fetch timed out',\n suggestion:\n 'The async operation took too long. Consider adding a timeout handler or retry logic.',\n },\n }\n return errorDefinitions[code] || { message: `Error ${code}` }\n }\n return { message: `Minified Error ${code}` }\n}\n\nexport interface FlexiumErrorInfo {\n code: ErrorCode\n message: string\n suggestion?: string\n context?: Record<string, unknown>\n originalError?: unknown\n}\n\n/**\n * Create a standardized error info object\n */\nexport function createErrorInfo(\n code: ErrorCode,\n context?: Record<string, unknown>,\n originalError?: unknown\n): FlexiumErrorInfo {\n const details = getErrorDetails(code)\n return {\n code,\n message: details.message,\n suggestion: details.suggestion,\n context,\n originalError,\n }\n}\n\n/**\n * Format error message for console output\n */\nexport function formatErrorMessage(info: FlexiumErrorInfo): string {\n let message = `[Flexium ${info.code}] ${info.message}`\n\n if (info.context && Object.keys(info.context).length > 0) {\n const contextStr = Object.entries(info.context)\n .map(([key, value]) => `${key}: ${JSON.stringify(value)}`)\n .join(', ')\n message += ` (${contextStr})`\n }\n\n if (info.suggestion) {\n message += `\\n → ${info.suggestion}`\n }\n\n return message\n}\n\n/**\n * Log an error with standardized formatting\n */\nexport function logError(\n code: ErrorCode,\n context?: Record<string, unknown>,\n originalError?: unknown\n): void {\n const info = createErrorInfo(code, context, originalError)\n const message = formatErrorMessage(info)\n\n if (originalError) {\n console.error(message, originalError)\n } else {\n console.error(message)\n }\n}\n\n/**\n * Log a warning with standardized formatting\n */\nexport function logWarning(\n code: ErrorCode,\n context?: Record<string, unknown>\n): void {\n const info = createErrorInfo(code, context)\n const message = formatErrorMessage(info)\n console.warn(message)\n}\n\n/**\n * Create a FlexiumError with standardized information\n */\nexport class FlexiumError extends Error {\n code: ErrorCode\n suggestion?: string\n context?: Record<string, unknown>\n\n constructor(code: ErrorCode, context?: Record<string, unknown>) {\n const details = getErrorDetails(code)\n super(details.message)\n this.name = 'FlexiumError'\n this.code = code\n this.suggestion = details.suggestion\n this.context = context\n }\n\n toString(): string {\n return formatErrorMessage({\n code: this.code,\n message: this.message,\n suggestion: this.suggestion,\n context: this.context,\n })\n }\n}\n","/**\n * Graph.ts\n *\n * Core Graph Data Structures & Algorithms\n * Implements the \"Hardcore\" Doubly Linked List for dependency tracking.\n *\n * This module is purely internal and has NO dependencies on other core modules\n * to avoid circular references.\n */\n\n// ==================================================================================\n// 1. Data Structures\n// ==================================================================================\n\n/**\n * Flags for subscriber state (Optimization: Bitmasking)\n */\nexport const enum SubscriberFlags {\n Running = 1 << 0,\n Notified = 1 << 1,\n Dirty = 1 << 2,\n Stale = 1 << 3,\n Tracking = 1 << 4,\n}\n\n/**\n * Node type identifiers for fast type checking (Performance: Avoid instanceof)\n */\nexport const enum NodeType {\n Signal = 1,\n Computed = 2,\n Effect = 3,\n Resource = 4,\n}\n\n/**\n * Link node connecting a Subscriber (Effect/Computed) to a Dependency (Signal/Computed).\n *\n * ASCII Visualization of the Doubly Linked Graph:\n *\n * [Signal A] <==> [Link 1] <==> [Effect B]\n * ^\n * | (Prev/Next Sub on Signal A)\n * v\n * [Link 2] <==> [Effect C]\n *\n * Each Link serves as a node in TWO lists simultaneously:\n * 1. The Subscriber's list of dependencies (prevDep/nextDep)\n * 2. The Dependency's list of subscribers (prevSub/nextSub)\n */\nexport interface Link {\n dep: IObservable | undefined\n sub: ISubscriber | undefined\n\n // Pointers for Dependency's subscriber list\n prevSub: Link | undefined\n nextSub: Link | undefined\n\n // Pointers for Subscriber's dependency list\n prevDep: Link | undefined\n nextDep: Link | undefined\n}\n\n/**\n * Base interface for subscriber nodes (Effect, Computed)\n */\nexport interface ISubscriber {\n execute(): void\n depsHead: Link | undefined // Head of dependencies list\n flags: SubscriberFlags\n nodeType: NodeType // Fast type checking (Performance optimization)\n}\n\n/**\n * Base interface for observable nodes (Signal, Computed)\n */\nexport interface IObservable {\n subsHead: Link | undefined // Head of subscribers list\n version: number // For epoch-based check\n notify(): void\n nodeType: NodeType // Fast type checking (Performance optimization)\n}\n\n// ==================================================================================\n// 2. Object Pool (Memory Optimization)\n// ==================================================================================\n\n/**\n * Pool for Link objects to eliminate GC pressure.\n */\nexport namespace LinkPool {\n const pool: Link[] = []\n let size = 0\n\n export function alloc(dep: IObservable, sub: ISubscriber): Link {\n if (size > 0) {\n const link = pool[--size]\n link.dep = dep\n link.sub = sub\n link.prevSub = undefined\n link.nextSub = undefined\n link.prevDep = undefined\n link.nextDep = undefined\n return link\n }\n return {\n dep,\n sub,\n prevSub: undefined,\n nextSub: undefined,\n prevDep: undefined,\n nextDep: undefined,\n }\n }\n\n export function free(link: Link): void {\n link.dep = undefined\n link.sub = undefined\n // Clearing pointers is optional for safety but good for debugging leaks\n link.prevSub = undefined\n link.nextSub = undefined\n link.prevDep = undefined\n link.nextDep = undefined\n\n if (size < 10000) { // Safety cap\n pool[size++] = link\n }\n }\n}\n\n// ==================================================================================\n// 3. Graph Operations\n// ==================================================================================\n\n/**\n * Internal Graph operations to manage the \"Hardcore\" Linked List structure.\n * Encapsulates raw pointer arithmetic for readability.\n */\nexport namespace Graph {\n /**\n * Connects a dependency (Signal) to a subscriber (Effect/Computed).\n * Allocates a Link from the pool and stitches it into both lists.\n */\n export function connect(dep: IObservable, sub: ISubscriber): void {\n const link = LinkPool.alloc(dep, sub)\n\n // Add to Subscriber's dependency list (prepend)\n // Performance: Cache depsHead to avoid repeated property access\n const depsHead = sub.depsHead\n link.nextDep = depsHead\n if (depsHead) {\n depsHead.prevDep = link\n }\n sub.depsHead = link\n\n // Add to Dependency's subscriber list (prepend)\n // Performance: Cache subsHead to avoid repeated property access\n const subsHead = dep.subsHead\n link.nextSub = subsHead\n if (subsHead) {\n subsHead.prevSub = link\n }\n dep.subsHead = link\n }\n\n /**\n * Fully disconnects a subscriber from all its dependencies.\n * Walks the 'depsHead' list and unlinks each one.\n */\n export function disconnectDependencies(sub: ISubscriber): void {\n let link = sub.depsHead\n while (link) {\n const dep = link.dep!\n // Performance: Cache nextDep and pointers before modifying link\n const nextDep = link.nextDep\n const prevSub = link.prevSub\n const nextSub = link.nextSub\n\n // Remove link from dependency's subscriber list\n // This is a standard doubly-linked list removal\n // Performance: Branch prediction - middle nodes are more common\n if (prevSub) {\n prevSub.nextSub = nextSub\n } else {\n dep.subsHead = nextSub\n }\n if (nextSub) {\n nextSub.prevSub = prevSub\n }\n\n LinkPool.free(link)\n link = nextDep\n }\n sub.depsHead = undefined\n }\n}\n\n/**\n * Flag helpers for readability\n */\nexport namespace Flags {\n export function has(obj: { flags: number }, flag: SubscriberFlags): boolean {\n return (obj.flags & flag) !== 0\n }\n\n export function add(obj: { flags: number }, flag: SubscriberFlags): void {\n obj.flags |= flag\n }\n\n export function remove(obj: { flags: number }, flag: SubscriberFlags): void {\n obj.flags &= ~flag\n }\n}\n","/**\n * Owner.ts\n *\n * Managing reactive scopes and cleanup contexts.\n */\n\n// ==================================================================================\n// 1. Owner & Scope Management\n// ==================================================================================\n\nexport interface Owner {\n cleanups: (() => void)[]\n context: Record<symbol, unknown> | null\n owner: Owner | null // Parent owner\n}\n\nimport type { ISubscriber } from './graph'\n\n// Global context for dependency tracking\nlet activeEffect: ISubscriber | null = null\n\nexport function getActiveEffect(): ISubscriber | null {\n return activeEffect\n}\n\nexport function setActiveEffect(effect: ISubscriber | null): void {\n activeEffect = effect\n}\n\n/**\n * Execute a function without tracking signal dependencies.\n * Useful when you need to read signals inside an effect without creating dependencies.\n *\n * @param fn - Function to execute without tracking\n * @returns The return value of fn\n */\nexport function untrack<T>(fn: () => T): T {\n const prev = activeEffect\n activeEffect = null\n try {\n return fn()\n } finally {\n activeEffect = prev\n }\n}\n\nlet owner: Owner | null = null\n\n/**\n * Get the current owner (scope)\n * @internal\n */\nexport function getOwner(): Owner | null {\n return owner\n}\n\n/**\n * Set the current owner (scope)\n * @internal\n */\nexport function setOwner(newOwner: Owner | null): void {\n owner = newOwner\n}\n\n/**\n * Creates a disposal scope.\n * The return value of the function is returned, and a dispose function is returned.\n *\n * @param fn - Function to run within a new root scope\n * @returns [return value of fn, dispose function]\n *\n * @example\n * ```tsx\n * const [val, dispose] = root((dispose) => {\n * effect(() => console.log('Inside root'));\n * return 123;\n * });\n * dispose(); // Cleans up all effects created inside\n * ```\n */\nexport function root<T>(fn: (dispose: () => void) => T): T {\n const prevOwner = owner\n const newOwner: Owner = {\n cleanups: [],\n context: prevOwner ? Object.create(prevOwner.context) : null,\n owner: prevOwner,\n }\n\n owner = newOwner\n\n const dispose = () => {\n // Performance: Fast path when no cleanups\n if (newOwner.cleanups.length === 0) return\n \n for (const cleanup of newOwner.cleanups) {\n cleanup()\n }\n newOwner.cleanups = []\n }\n\n try {\n return fn(dispose)\n } finally {\n owner = prevOwner\n }\n}\n\n\n","import { ErrorCodes, logError } from './errors'\nimport {\n Graph,\n\n type Link,\n type ISubscriber,\n SubscriberFlags,\n NodeType\n} from './graph'\nimport {\n Owner,\n getOwner,\n setOwner,\n getActiveEffect,\n setActiveEffect\n} from './owner'\n\nexport class EffectNode implements ISubscriber {\n depsHead: Link | undefined\n cleanups: (() => void)[] = []\n flags = 0 // detached by default, will set flags during execution\n nodeType = NodeType.Effect\n\n private owner: Owner | null = null\n\n constructor(\n public fn: () => void | (() => void),\n public onError?: (error: Error) => void\n ) {\n this.owner = getOwner()\n }\n\n execute(): void {\n // Performance: Inline bit operations for better performance\n if ((this.flags & SubscriberFlags.Running) !== 0) {\n this.flags |= SubscriberFlags.Notified\n return\n }\n\n this.flags |= SubscriberFlags.Running\n\n try {\n this.run()\n } finally {\n // Performance: Inline bit operations\n this.flags &= ~SubscriberFlags.Running\n if ((this.flags & SubscriberFlags.Notified) !== 0) {\n this.flags &= ~SubscriberFlags.Notified\n // Schedule microtask to avoid stack overflow and infinite sync loops\n queueMicrotask(() => this.execute())\n }\n }\n }\n\n private run(): void {\n // Performance: Fast path when no cleanups\n if (this.cleanups.length > 0) {\n // Performance: Run cleanups in reverse order (most recent first)\n // This ensures proper dependency cleanup order and matches React's behavior\n for (let i = this.cleanups.length - 1; i >= 0; i--) {\n this.cleanups[i]()\n }\n this.cleanups = []\n }\n\n // Clean up previous dependencies via Graph helper\n Graph.disconnectDependencies(this)\n\n const prevEffect = getActiveEffect()\n const prevOwner = getOwner()\n setActiveEffect(this)\n setOwner(this.owner)\n\n try {\n const result = this.fn()\n if (typeof result === 'function') {\n this.cleanups.push(result)\n }\n } catch (error) {\n if (this.onError) {\n this.onError(error as Error)\n } else {\n logError(ErrorCodes.EFFECT_EXECUTION_FAILED, undefined, error)\n }\n } finally {\n setActiveEffect(prevEffect)\n setOwner(prevOwner)\n }\n }\n\n dispose(): void {\n // Performance: Run cleanups in reverse order (most recent first)\n // This ensures proper dependency cleanup order\n if (this.cleanups.length > 0) {\n for (let i = this.cleanups.length - 1; i >= 0; i--) {\n this.cleanups[i]()\n }\n this.cleanups = []\n }\n Graph.disconnectDependencies(this)\n }\n}\n\n/**\n * Creates a side effect that runs when dependencies change\n *\n * @param fn - Effect function, can return a cleanup function\n * @param options - Optional error handler\n * @returns Dispose function to stop the effect\n *\n * @example\n * ```ts\n * const [count, setCount] = state(0);\n * \n * effect(() => {\n * console.log(count());\n * });\n * \n * setCount(1); // logs: 1\n * ```\n */\nexport function effect(\n fn: () => void | (() => void),\n options?: { onError?: (error: Error) => void; name?: string }\n): () => void {\n // DevTools hooks integration would go here if needed\n // For now we rely on the devtools hooks in signal.ts or need to export them properly\n // This implementation is sufficient for core logic\n\n const node = new EffectNode(fn, options?.onError)\n node.execute()\n const dispose = () => node.dispose()\n\n const owner = getOwner()\n if (owner) {\n owner.cleanups.push(dispose)\n }\n\n return dispose\n}\n"]}
|
package/dist/chunk-REM6WIZS.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {h as h$1,e,d as d$1}from'./chunk-B7VP6HBY.mjs';var b=Symbol.for("flexium.stateSignal"),O=new WeakMap,F=new WeakMap,A=new WeakMap;function l(t,e,n){let s=O.get(t);s||(s=new Map,O.set(t,s));let o=s.get(e);if(!o){let a=n!==void 0?n:Reflect.get(t,e);o=new d$1(a),s.set(e,o);}return o}var Q={get(t,e){let n=A.get(t);if(e===b)return n;let s=F.get(n);if(s&&V(s),e==="peek")return n.peek.bind(n);let o=typeof n.peek=="function"&&typeof n.get=="function",a;if(o||l(n,"value"),a=n.get(),e===Symbol.toPrimitive||e==="valueOf")return ()=>a;if(e===Symbol.iterator)return l(a,"length").get(),l(a,"iterate").get(),a[Symbol.iterator].bind(a);if(a!==null&&typeof a=="object"){let c=Reflect.get(a,e);return typeof c=="function"?Array.isArray(a)&&["push","pop","shift","unshift","splice","sort","reverse"].includes(e)?function(...y){let x=c.apply(a,y);return a===n.get()&&l(n,"value").set(a),l(a,"length").set(a.length),a===n.get()&&l(n,"value").get(),x}:Array.isArray(a)?c.bind(a):a[e].bind(a):(l(a,e,c).get(),c!==null&&typeof c=="object"?H(c):c)}let u=a[e];return typeof u=="function"?u.bind(a):u},set(t,e,n){let o=A.get(t).get();if(o!==null&&typeof o=="object"){let a=Reflect.set(o,e,n);return l(o,e).set(n),a}return false},has(t,e){let n=A.get(t);if(e===b)return true;let s=n.get();return s===null?false:typeof s=="object"?Reflect.has(s,e):false},ownKeys(t){let n=A.get(t).get();return n===null||typeof n!="object"?Reflect.ownKeys(t):(Array.isArray(n)&&l(n,"length").get(),l(n,"iterate").get(),Reflect.ownKeys(n))},getOwnPropertyDescriptor(t,e){let n=A.get(t);if(e===b)return {configurable:true,enumerable:false,value:n};let s=n.get();if(s===null||typeof s!="object")return;let o=Reflect.getOwnPropertyDescriptor(s,e);return o&&(o.configurable=true),o}},U={get(t,e,n){if(e===b)return t;let s=Reflect.get(t,e,n);return l(t,e,s).get(),s!==null&&typeof s=="object"?H(s):s},set(t,e,n,s){let o=Reflect.set(t,e,n,s);return o&&l(t,e).set(n),o},has(t,e){return e===b?true:Reflect.has(t,e)}},z=new WeakMap;function H(t){let e=z.get(t);return e||(e=new Proxy(t,U),z.set(t,e)),e}var D=new WeakMap;function N(t){let e=D.get(t);if(e)return e;let n=()=>t.get();return A.set(n,t),e=new Proxy(n,Q),D.set(t,e),e}var T=null;function te(t){T=t;}function ne(){return {id:Symbol("component"),hookIndex:0,hooks:[]}}function se(t){t.hookIndex=0;}var p=new Map,S=new Map,d=new Map,g={enabled:true,maxIdleTime:300*1e3,checkInterval:60*1e3,minAccessCount:0},h=null;(typeof window<"u"||typeof globalThis<"u")&&setTimeout(()=>{g.enabled&&!h&&(h=setInterval(L,g.checkInterval));},0);var X=1e4,j=false,B=new WeakMap;function v(t){if(typeof t=="string")return t;let e=B.get(t);if(e!==void 0)return e;try{let n=JSON.stringify(t);return B.set(t,n),n}catch{return String(t)}}function E(t,e){e&&(S.has(e)||S.set(e,new Set),S.get(e).add(t));}function _(t,e){if(!e)return;let n=S.get(e);n&&(n.delete(t),n.size===0&&S.delete(e));}function V(t,e,n){let s=Date.now(),o=d.get(t);o?(o.lastAccessed=s,o.accessCount++,o.referenceCount++,e&&o.namespace!==e&&(o.namespace&&_(t,o.namespace),o.namespace=e,E(t,e))):(d.set(t,{key:t,namespace:e,createdAt:s,lastAccessed:s,accessCount:1,referenceCount:1,signalRef:n&&typeof WeakRef<"u"?new WeakRef(n):void 0}),E(t,e));}function L(){if(!g.enabled)return;let t=Date.now(),e=[];for(let[n,s]of d.entries()){if(s.signalRef&&typeof WeakRef<"u"&&!s.signalRef.deref()){e.push(n);continue}t-s.lastAccessed>g.maxIdleTime&&s.referenceCount===0&&s.accessCount>=g.minAccessCount&&e.push(n);}for(let n of e)f.delete(n);e.length>0&&typeof process<"u"&&process.env?.NODE_ENV!=="production"&&console.log(`[Flexium] Auto-cleaned ${e.length} idle states`);}function K(t){return (typeof t=="object"||typeof t=="function")&&t!==null&&b in t}function oe(t){return K(t)?t[b]:null}function ae(t,e){return K(t)?t.peek()===e:false}function re(t){return K(t)?!!t.peek():false}function Y(t,e$1){if(T&&!e$1?.key){let r=T,i=r.hookIndex++;if(i<r.hooks.length)return r.hooks[i];let w=T;T=null;let I=f(t,e$1);return T=w,r.hooks.push(I),I}let n=e$1?.key,s=n?v(n):void 0,o=Array.isArray(n)&&n.length>0?String(n[0]):void 0,a=e$1?.params;if(s&&p.has(s)){let r=p.get(s);V(s,o,r.box);let i=[r.proxy];return r.setter&&i.push(r.setter),r.refetch&&i.push(r.refetch),r.status&&i.push(r.status),r.error&&i.push(r.error),i}let u,c,y,x,C;if(typeof t=="function"){let r=t,i=a!==void 0?()=>r(a):r,w;try{w=i();}catch{}if(r.constructor.name==="AsyncFunction"||w instanceof Promise){let[m,G]=h$1(i,async J=>J);u={get:()=>m.value,peek:()=>m.peek()},y=G.refetch;let $=new e(()=>m.loading?"loading":m.error?"error":m.state==="unresolved"?"idle":"success");x=N($);let q=new e(()=>m.error);C=N(q);}else u=new e(i);}else {let r=new d$1(t);u=r,c=i=>{typeof i=="function"?r.set(i(r.peek())):r.set(i);};}let M=N(u),k=[M];return c&&k.push(c),y&&(k.splice(1,0,y),x&&k.push(x),C&&k.push(C)),s&&(p.set(s,{box:u,proxy:M,setter:c,refetch:y,status:x,error:C,createdAt:Date.now(),lastAccessed:Date.now(),accessCount:1,referenceCount:1,key:s,namespace:o}),F.set(u,s),V(s,o,u),typeof process<"u"&&process.env?.NODE_ENV!=="production"&&!j&&p.size>=X&&(j=true,console.warn(`[Flexium] Registry size warning: ${p.size}`))),k}var f=Y;f.delete=function(t){let e=v(t),n=d.get(e);return n?.namespace&&_(e,n.namespace),d.delete(e),p.delete(e)};f.clear=function(){p.clear(),S.clear(),d.clear(),j=false;};f.has=function(t){return p.has(v(t))};f.clearByPrefix=function(t){let e=v(t),n=0,s=[];for(let[o]of d.entries()){if(o===e){s.push(o);continue}if(e.endsWith("]")){let a=e.slice(0,-1);o.startsWith(a)&&o.length>a.length&&o[a.length]===","&&s.push(o);}else o.startsWith(e)&&s.push(o);}for(let o of s)f.delete(o)&&n++;return n};f.getStats=function(){let t={};for(let[n,s]of S.entries())t[n]=s.size;let e=0;for(let n of d.values())e+=n.accessCount;return {total:p.size,byNamespace:t,topNamespaces:Object.entries(t).map(([n,s])=>({namespace:n,count:s})).sort((n,s)=>s.count-n.count).slice(0,10),averageAccessCount:d.size?e/d.size:0}};f.getNamespaceStats=function(t){let e=v(t),n=Array.isArray(t)&&t.length>0?String(t[0]):e,s=[],o=0;for(let[a,u]of d.entries()){let c=false;if(a===e)c=true;else if(e.endsWith("]")){let y=e.slice(0,-1);a.startsWith(y)&&a.length>y.length&&a[y.length]===","&&(c=true);}else a.startsWith(e)&&(c=true);c&&(s.push({key:a,accessCount:u.accessCount,createdAt:u.createdAt}),o+=u.accessCount);}return {namespace:n,count:s.length,totalAccessCount:o,averageAccessCount:s.length?o/s.length:0,states:s}};Object.defineProperty(f,"size",{get:()=>p.size,enumerable:true});f.enableAutoCleanup=t=>{Object.assign(g,t,{enabled:true}),h&&clearInterval(h),h=setInterval(L,g.checkInterval);};f.disableAutoCleanup=()=>{g.enabled=false,h&&clearInterval(h);};Object.defineProperty(f,"isAutoCleanupEnabled",{get:()=>g.enabled,enumerable:true});function ce(t){return {current:t}}export{te as a,ne as b,se as c,K as d,oe as e,ae as f,re as g,f as h,ce as i};//# sourceMappingURL=chunk-REM6WIZS.mjs.map
|
|
2
|
-
//# sourceMappingURL=chunk-REM6WIZS.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/state.ts"],"names":["STATE_SIGNAL","depMap","boxToKeyMap","targetBoxMap","getDep","target","key","initialValue","deps","dep","currentVal","SignalNode","hybridHandlers","prop","box","updateStateMetadata","isSignalLike","innerValue","val","args","result","createNestedProxy","newValue","success","desc","nestedHandlers","receiver","nestedProxyCache","proxy","proxyCache","createHybridProxy","currentComponent","setCurrentComponent","instance","createComponentInstance","resetHookIndex","globalStateRegistry","namespaceRegistry","stateMetadata","autoCleanupConfig","autoCleanupInterval","performAutoCleanup","DEV_WARNING_THRESHOLD","hasWarnedAboutSize","keyCache","serializeKey","cached","serialized","registerStateInNamespace","namespace","unregisterStateFromNamespace","set","signalRefTarget","now","existing","keysToRemove","metadata","state","isStateValue","value","getStateSignal","stateValue","equals","isTruthy","stateImplementation","initialValueOrFetcher","options","comp","hookIndex","saved","res","rawKey","params","entry","setter","refetch","statusProxy","errorProxy","originalFn","fn","testResult","actions","createResource","v","statusComp","ComputedNode","errorComp","node","sKey","meta","prefix","prefixStr","cleared","keysToDelete","raw","k","byNamespace","ns","keys","totalAccess","m","c","a","b","pStr","states","matched","ref","initial"],"mappings":"uDAKO,IAAMA,CAAAA,CAAe,OAAO,GAAA,CAAI,qBAAqB,EAwBtDC,CAAAA,CAAS,IAAI,OAAA,CACbC,CAAAA,CAAc,IAAI,OAAA,CAClBC,EAAe,IAAI,OAAA,CAEzB,SAASC,CAAAA,CAAOC,CAAAA,CAAgBC,CAAAA,CAAsBC,EAA6C,CACjG,IAAIC,CAAAA,CAAOP,CAAAA,CAAO,GAAA,CAAII,CAAM,EACvBG,CAAAA,GACHA,CAAAA,CAAO,IAAI,GAAA,CACXP,CAAAA,CAAO,GAAA,CAAII,EAAQG,CAAI,CAAA,CAAA,CAEzB,IAAIC,CAAAA,CAAMD,CAAAA,CAAK,GAAA,CAAIF,CAAG,CAAA,CACtB,GAAI,CAACG,CAAAA,CAAK,CACR,IAAMC,EAAaH,CAAAA,GAAiB,MAAA,CAAYA,CAAAA,CAAe,OAAA,CAAQ,GAAA,CAAIF,CAAAA,CAAQC,CAAG,CAAA,CACtFG,CAAAA,CAAM,IAAIE,GAAAA,CAAWD,CAAU,CAAA,CAC/BF,EAAK,GAAA,CAAIF,CAAAA,CAAKG,CAAG,EACnB,CACA,OAAOA,CACT,CAOA,IAAMG,CAAAA,CAAyC,CAC7C,GAAA,CAAIP,CAAAA,CAAQQ,EAAM,CAChB,IAAMC,CAAAA,CAAMX,CAAAA,CAAa,GAAA,CAAIE,CAAM,EACnC,GAAIQ,CAAAA,GAASb,CAAAA,CAAc,OAAOc,CAAAA,CAGlC,IAAMR,EAAMJ,CAAAA,CAAY,GAAA,CAAIY,CAAG,CAAA,CAG/B,GAFIR,CAAAA,EAAKS,EAAoBT,CAAG,CAAA,CAE5BO,CAAAA,GAAS,MAAA,CACX,OAAOC,CAAAA,CAAI,KAAK,IAAA,CAAKA,CAAG,CAAA,CAK1B,IAAME,CAAAA,CAAe,OAAQF,EAAY,IAAA,EAAS,UAAA,EAAc,OAAQA,CAAAA,CAAY,GAAA,EAAQ,UAAA,CACxFG,EASJ,GAPID,CAAAA,EAGFZ,CAAAA,CAAOU,CAAAA,CAAK,OAAO,CAAA,CACnBG,EAAaH,CAAAA,CAAI,GAAA,EAAI,CAGnBD,CAAAA,GAAS,MAAA,CAAO,WAAA,EAAeA,IAAS,SAAA,CAC1C,OAAO,IAAMI,CAAAA,CAGf,GAAIJ,CAAAA,GAAS,OAAO,QAAA,CAElB,OAAAT,CAAAA,CAAOa,CAAAA,CAAY,QAAQ,CAAA,CAAE,KAAI,CACjCb,CAAAA,CAAOa,CAAAA,CAAY,SAAS,CAAA,CAAE,GAAA,GACtBA,CAAAA,CAAmB,MAAA,CAAO,QAAQ,CAAA,CAAE,IAAA,CAAKA,CAAU,EAI7D,GAAIA,CAAAA,GAAe,IAAA,EAAQ,OAAOA,CAAAA,EAAe,QAAA,CAAU,CACzD,IAAMC,CAAAA,CAAM,OAAA,CAAQ,GAAA,CAAID,CAAAA,CAAYJ,CAAI,EAExC,OAAI,OAAOK,CAAAA,EAAQ,UAAA,CAEb,KAAA,CAAM,OAAA,CAAQD,CAAU,CAAA,EAAK,CAAC,MAAA,CAAQ,KAAA,CAAO,OAAA,CAAS,SAAA,CAAW,SAAU,MAAA,CAAQ,SAAS,CAAA,CAAE,QAAA,CAASJ,CAAc,CAAA,CAChH,YAAaM,CAAAA,CAAa,CAC/B,IAAMC,CAAAA,CAAUF,CAAAA,CAAiB,KAAA,CAAMD,EAAYE,CAAI,CAAA,CAEvD,OAAIF,CAAAA,GAAeH,CAAAA,CAAI,GAAA,IACTV,CAAAA,CAAOU,CAAAA,CAAK,OAAO,CAAA,CAC3B,GAAA,CAAIG,CAAU,EAKpBb,CAAAA,CAAOa,CAAAA,CAAY,QAAQ,CAAA,CAAE,GAAA,CAAIA,CAAAA,CAAW,MAAM,CAAA,CAI9CA,CAAAA,GAAeH,EAAI,GAAA,EAAI,EACzBV,EAAOU,CAAAA,CAAK,OAAO,CAAA,CAAE,GAAA,EAAI,CAGpBM,CACT,EAEE,KAAA,CAAM,OAAA,CAAQH,CAAU,CAAA,CAQlBC,CAAAA,CAAiB,IAAA,CAAKD,CAAU,CAAA,CAElCA,CAAAA,CAAmBJ,CAAI,CAAA,CAAE,IAAA,CAAKI,CAAU,GAGlDb,CAAAA,CAAOa,CAAAA,CAAYJ,CAAAA,CAAMK,CAAG,CAAA,CAAE,GAAA,GAE1BA,CAAAA,GAAQ,IAAA,EAAQ,OAAOA,CAAAA,EAAQ,QAAA,CAC1BG,CAAAA,CAAkBH,CAAG,CAAA,CAEvBA,CAAAA,CACT,CAEA,IAAMA,CAAAA,CAAOD,CAAAA,CAAmBJ,CAAI,CAAA,CACpC,OAAO,OAAOK,CAAAA,EAAQ,UAAA,CAAaA,CAAAA,CAAI,KAAKD,CAAU,CAAA,CAAIC,CAC5D,CAAA,CAEA,GAAA,CAAIb,CAAAA,CAAQQ,EAAMS,CAAAA,CAAU,CAE1B,IAAML,CAAAA,CADMd,CAAAA,CAAa,GAAA,CAAIE,CAAM,CAAA,CACZ,GAAA,EAAI,CAC3B,GAAIY,CAAAA,GAAe,IAAA,EAAQ,OAAOA,CAAAA,EAAe,QAAA,CAAU,CACzD,IAAMM,CAAAA,CAAU,OAAA,CAAQ,IAAIN,CAAAA,CAAYJ,CAAAA,CAAMS,CAAQ,CAAA,CACtD,OAAAlB,CAAAA,CAAOa,EAAYJ,CAAI,CAAA,CAAE,GAAA,CAAIS,CAAQ,CAAA,CAC9BC,CACT,CACA,OAAO,MACT,CAAA,CAEA,GAAA,CAAIlB,CAAAA,CAAQQ,CAAAA,CAAM,CAChB,IAAMC,CAAAA,CAAMX,CAAAA,CAAa,GAAA,CAAIE,CAAM,CAAA,CACnC,GAAIQ,CAAAA,GAASb,CAAAA,CAAc,OAAO,KAAA,CAClC,IAAMiB,CAAAA,CAAaH,EAAI,GAAA,EAAI,CAC3B,OAAIG,CAAAA,GAAe,IAAA,CAAa,KAAA,CAC5B,OAAOA,CAAAA,EAAe,QAAA,CACjB,OAAA,CAAQ,GAAA,CAAIA,CAAAA,CAAYJ,CAAI,EAE9B,KACT,CAAA,CAEA,OAAA,CAAQR,CAAAA,CAAQ,CAEd,IAAMY,EADMd,CAAAA,CAAa,GAAA,CAAIE,CAAM,CAAA,CACZ,GAAA,EAAI,CAE3B,OAAIY,CAAAA,GAAe,IAAA,EAAQ,OAAOA,CAAAA,EAAe,QAAA,CACxC,OAAA,CAAQ,QAAQZ,CAAM,CAAA,EAI3B,KAAA,CAAM,OAAA,CAAQY,CAAU,CAAA,EAC1Bb,EAAOa,CAAAA,CAAY,QAAQ,CAAA,CAAE,GAAA,EAAI,CACjCb,CAAAA,CAAOa,EAAY,SAAS,CAAA,CAAE,GAAA,EAAI,CAM7B,OAAA,CAAQ,OAAA,CAAQA,CAAU,CAAA,CACnC,CAAA,CAEA,wBAAA,CAAyBZ,CAAAA,CAAQQ,CAAAA,CAAM,CACrC,IAAMC,CAAAA,CAAMX,CAAAA,CAAa,GAAA,CAAIE,CAAM,CAAA,CACnC,GAAIQ,IAASb,CAAAA,CACX,OAAO,CAAE,YAAA,CAAc,IAAA,CAAM,UAAA,CAAY,MAAO,KAAA,CAAOc,CAAI,CAAA,CAE7D,IAAMG,CAAAA,CAAaH,CAAAA,CAAI,KAAI,CAE3B,GAAIG,CAAAA,GAAe,IAAA,EAAQ,OAAOA,CAAAA,EAAe,SAC/C,OAGF,IAAMO,CAAAA,CAAO,OAAA,CAAQ,wBAAA,CAAyBP,CAAAA,CAAYJ,CAAI,CAAA,CAC9D,OAAIW,CAAAA,GACFA,CAAAA,CAAK,YAAA,CAAe,IAAA,CAAA,CAEfA,CACT,CACF,CAAA,CAEMC,EAAuC,CAC3C,GAAA,CAAIpB,EAAQQ,CAAAA,CAAMa,CAAAA,CAAU,CAC1B,GAAIb,CAAAA,GAASb,CAAAA,CAAc,OAAOK,CAAAA,CAClC,IAAMa,CAAAA,CAAM,OAAA,CAAQ,GAAA,CAAIb,CAAAA,CAAQQ,EAAMa,CAAQ,CAAA,CAE9C,OADAtB,CAAAA,CAAOC,CAAAA,CAAQQ,CAAAA,CAAMK,CAAG,CAAA,CAAE,GAAA,EAAI,CAC1BA,CAAAA,GAAQ,IAAA,EAAQ,OAAOA,GAAQ,QAAA,CAC1BG,CAAAA,CAAkBH,CAAG,CAAA,CAEvBA,CACT,CAAA,CACA,IAAIb,CAAAA,CAAQQ,CAAAA,CAAMS,CAAAA,CAAUI,CAAAA,CAAU,CACpC,IAAMH,EAAU,OAAA,CAAQ,GAAA,CAAIlB,CAAAA,CAAQQ,CAAAA,CAAMS,CAAAA,CAAUI,CAAQ,EAC5D,OAAIH,CAAAA,EACFnB,CAAAA,CAAOC,CAAAA,CAAQQ,CAAI,CAAA,CAAE,IAAIS,CAAQ,CAAA,CAE5BC,CACT,CAAA,CACA,GAAA,CAAIlB,CAAAA,CAAQQ,EAAM,CAChB,OAAIA,CAAAA,GAASb,CAAAA,CAAqB,IAAA,CAC3B,OAAA,CAAQ,IAAIK,CAAAA,CAAQQ,CAAI,CACjC,CACF,CAAA,CAEMc,CAAAA,CAAmB,IAAI,OAAA,CAE7B,SAASN,CAAAA,CAAoChB,CAAAA,CAAc,CACzD,IAAIuB,EAAQD,CAAAA,CAAiB,GAAA,CAAItB,CAAM,CAAA,CACvC,OAAKuB,CAAAA,GACHA,EAAQ,IAAI,KAAA,CAAMvB,CAAAA,CAAQoB,CAAc,CAAA,CACxCE,CAAAA,CAAiB,IAAItB,CAAAA,CAAQuB,CAAK,CAAA,CAAA,CAE7BA,CACT,CAGA,IAAMC,EAAa,IAAI,OAAA,CAEvB,SAASC,CAAAA,CAAqBhB,CAAAA,CAA4B,CACxD,IAAIc,CAAAA,CAAQC,CAAAA,CAAW,GAAA,CAAIf,CAAG,CAAA,CAC9B,GAAIc,EAAO,OAAOA,CAAAA,CAGlB,IAAMvB,CAAAA,CAAS,IAAMS,CAAAA,CAAI,KAAI,CAC7B,OAAAX,CAAAA,CAAa,GAAA,CAAIE,CAAAA,CAAQS,CAAG,EAG5Bc,CAAAA,CAAQ,IAAI,KAAA,CAAMvB,CAAAA,CAAeO,CAAc,CAAA,CAC/CiB,EAAW,GAAA,CAAIf,CAAAA,CAAKc,CAAK,CAAA,CAClBA,CACT,CAaA,IAAIG,CAAAA,CAA6C,IAAA,CAE1C,SAASC,EAAAA,CAAoBC,CAAAA,CAA0C,CAC5EF,EAAmBE,EACrB,CAMO,SAASC,EAAAA,EAA6C,CAC3D,OAAO,CACL,EAAA,CAAI,MAAA,CAAO,WAAW,CAAA,CACtB,SAAA,CAAW,CAAA,CACX,MAAO,EACT,CACF,CAEO,SAASC,EAAAA,CAAeF,EAAmC,CAChEA,CAAAA,CAAS,SAAA,CAAY,EACvB,CAyBA,IAAMG,EAAsB,IAAI,GAAA,CAC1BC,CAAAA,CAAoB,IAAI,GAAA,CAcxBC,CAAAA,CAAgB,IAAI,GAAA,CAStBC,CAAAA,CAAuC,CACzC,OAAA,CAAS,IAAA,CACT,WAAA,CAAa,IAAS,GAAA,CACtB,aAAA,CAAe,EAAA,CAAK,GAAA,CACpB,cAAA,CAAgB,CAClB,EAEIC,CAAAA,CAA0C,IAAA,CAAA,CAG1C,OAAO,MAAA,CAAW,GAAA,EAAe,OAAO,WAAe,GAAA,GACzD,UAAA,CAAW,IAAM,CACXD,CAAAA,CAAkB,OAAA,EAAW,CAACC,CAAAA,GAChCA,CAAAA,CAAsB,YAAYC,CAAAA,CAAoBF,CAAAA,CAAkB,aAAa,CAAA,EAEzF,CAAA,CAAG,CAAC,CAAA,CAGN,IAAMG,CAAAA,CAAwB,IAC1BC,CAAAA,CAAqB,KAAA,CAQnBC,CAAAA,CAAW,IAAI,OAAA,CAErB,SAASC,EAAavC,CAAAA,CAAuB,CAC3C,GAAI,OAAOA,CAAAA,EAAQ,QAAA,CAAU,OAAOA,CAAAA,CACpC,IAAMwC,CAAAA,CAASF,CAAAA,CAAS,GAAA,CAAItC,CAAG,EAC/B,GAAIwC,CAAAA,GAAW,MAAA,CAAW,OAAOA,CAAAA,CACjC,GAAI,CACF,IAAMC,CAAAA,CAAa,IAAA,CAAK,SAAA,CAAUzC,CAAG,CAAA,CACrC,OAAAsC,CAAAA,CAAS,GAAA,CAAItC,CAAAA,CAAKyC,CAAU,CAAA,CACrBA,CACT,MAAgB,CAEd,OADiB,MAAA,CAAOzC,CAAG,CAE7B,CACF,CAEA,SAAS0C,CAAAA,CAAyB1C,CAAAA,CAAa2C,CAAAA,CAA0B,CAClEA,CAAAA,GACAZ,EAAkB,GAAA,CAAIY,CAAS,CAAA,EAAGZ,CAAAA,CAAkB,GAAA,CAAIY,CAAAA,CAAW,IAAI,GAAK,CAAA,CACjFZ,CAAAA,CAAkB,GAAA,CAAIY,CAAS,CAAA,CAAG,IAAI3C,CAAG,CAAA,EAC3C,CAEA,SAAS4C,CAAAA,CAA6B5C,CAAAA,CAAa2C,EAA0B,CAC3E,GAAI,CAACA,CAAAA,CAAW,OAChB,IAAME,EAAMd,CAAAA,CAAkB,GAAA,CAAIY,CAAS,CAAA,CACvCE,CAAAA,GACFA,CAAAA,CAAI,OAAO7C,CAAG,CAAA,CACV6C,CAAAA,CAAI,IAAA,GAAS,CAAA,EAAGd,CAAAA,CAAkB,OAAOY,CAAS,CAAA,EAE1D,CAEA,SAASlC,CAAAA,CAAoBT,CAAAA,CAAa2C,EAAoBG,CAAAA,CAA6B,CACzF,IAAMC,CAAAA,CAAM,IAAA,CAAK,GAAA,GACXC,CAAAA,CAAWhB,CAAAA,CAAc,GAAA,CAAIhC,CAAG,CAAA,CAElCgD,CAAAA,EACFA,EAAS,YAAA,CAAeD,CAAAA,CACxBC,CAAAA,CAAS,WAAA,EAAA,CACTA,CAAAA,CAAS,cAAA,EAAA,CACLL,GAAaK,CAAAA,CAAS,SAAA,GAAcL,CAAAA,GAClCK,CAAAA,CAAS,SAAA,EAAWJ,CAAAA,CAA6B5C,EAAKgD,CAAAA,CAAS,SAAS,CAAA,CAC5EA,CAAAA,CAAS,SAAA,CAAYL,CAAAA,CACrBD,EAAyB1C,CAAAA,CAAK2C,CAAS,CAAA,CAAA,GAGzCX,CAAAA,CAAc,GAAA,CAAIhC,CAAAA,CAAK,CACrB,GAAA,CAAAA,CAAAA,CACA,SAAA,CAAA2C,CAAAA,CACA,SAAA,CAAWI,CAAAA,CACX,aAAcA,CAAAA,CACd,WAAA,CAAa,CAAA,CACb,cAAA,CAAgB,CAAA,CAChB,SAAA,CAAWD,GAAmB,OAAO,OAAA,CAAY,GAAA,CAAc,IAAI,OAAA,CAAQA,CAAe,EAAI,MAChG,CAAC,CAAA,CACDJ,CAAAA,CAAyB1C,CAAAA,CAAK2C,CAAS,GAE3C,CAEA,SAASR,CAAAA,EAA2B,CAClC,GAAI,CAACF,EAAkB,OAAA,CAAS,OAChC,IAAMc,CAAAA,CAAM,IAAA,CAAK,GAAA,GACXE,CAAAA,CAAyB,EAAC,CAEhC,IAAA,GAAW,CAACjD,CAAAA,CAAKkD,CAAQ,CAAA,GAAKlB,CAAAA,CAAc,OAAA,EAAQ,CAAG,CACrD,GAAIkB,EAAS,SAAA,EAAa,OAAO,OAAA,CAAY,GAAA,EAEvC,CADQA,CAAAA,CAAS,UAAU,KAAA,EAAM,CAC3B,CACRD,CAAAA,CAAa,IAAA,CAAKjD,CAAG,CAAA,CACrB,QACF,CAEe+C,CAAAA,CAAMG,CAAAA,CAAS,YAAA,CACjBjB,EAAkB,WAAA,EAAeiB,CAAAA,CAAS,cAAA,GAAmB,CAAA,EAAKA,CAAAA,CAAS,WAAA,EAAejB,EAAkB,cAAA,EACzHgB,CAAAA,CAAa,IAAA,CAAKjD,CAAG,EAEzB,CAEA,QAAWA,CAAAA,IAAOiD,CAAAA,CAChBE,CAAAA,CAAM,MAAA,CAAOnD,CAAG,CAAA,CAGdiD,EAAa,MAAA,CAAS,CAAA,EAAK,OAAO,OAAA,CAAY,GAAA,EAAe,OAAA,CAAQ,KAAK,QAAA,GAAa,YAAA,EACzF,OAAA,CAAQ,GAAA,CAAI,CAAA,uBAAA,EAA0BA,CAAAA,CAAa,MAAM,CAAA,YAAA,CAAc,EAE3E,CAeO,SAASG,CAAAA,CAAaC,CAAAA,CAAyB,CAEpD,OAAA,CAAQ,OAAOA,CAAAA,EAAU,QAAA,EAAY,OAAOA,CAAAA,EAAU,aAAeA,CAAAA,GAAU,IAAA,EAAQ3D,CAAAA,IAAgB2D,CACzG,CAGO,SAASC,GAAeC,CAAAA,CAAyE,CACtG,OAAIH,CAAAA,CAAaG,CAAU,CAAA,CAAWA,EAAmB7D,CAAY,CAAA,CAC9D,IACT,CAEO,SAAS8D,EAAAA,CAAUD,EAA2BF,CAAAA,CAAmB,CACtE,OAAKD,CAAAA,CAAaG,CAAU,CAAA,CACrBA,EAAW,IAAA,EAAK,GAAMF,CAAAA,CADS,KAExC,CAEO,SAASI,GAAYF,CAAAA,CAAoC,CAC9D,OAAKH,CAAAA,CAAaG,CAAU,CAAA,CACrB,EAAQA,CAAAA,CAAW,IAAA,EAAK,CADO,KAExC,CAoCA,SAASG,EACPC,CAAAA,CACAC,GAAAA,CACK,CAEL,GAAInC,CAAAA,EAAoB,CAACmC,KAAS,GAAA,CAAK,CACrC,IAAMC,CAAAA,CAAOpC,CAAAA,CACPqC,CAAAA,CAAYD,EAAK,SAAA,EAAA,CACvB,GAAIC,CAAAA,CAAYD,CAAAA,CAAK,KAAA,CAAM,MAAA,CAAQ,OAAOA,CAAAA,CAAK,KAAA,CAAMC,CAAS,CAAA,CAC9D,IAAMC,CAAAA,CAAQtC,EACdA,CAAAA,CAAmB,IAAA,CACnB,IAAMuC,CAAAA,CAAMb,CAAAA,CAAMQ,CAAAA,CAA8BC,GAAc,CAAA,CAC9D,OAAAnC,CAAAA,CAAmBsC,CAAAA,CACnBF,CAAAA,CAAK,KAAA,CAAM,KAAKG,CAAG,CAAA,CACZA,CACT,CAGA,IAAMC,CAAAA,CAASL,KAAS,GAAA,CAClB5D,CAAAA,CAAMiE,CAAAA,CAAS1B,CAAAA,CAAa0B,CAAM,CAAA,CAAI,OACtCtB,CAAAA,CAAY,KAAA,CAAM,OAAA,CAAQsB,CAAM,CAAA,EAAKA,CAAAA,CAAO,OAAS,CAAA,CAAI,MAAA,CAAOA,CAAAA,CAAO,CAAC,CAAC,CAAA,CAAI,OAC7EC,CAAAA,CAASN,GAAAA,EAAS,MAAA,CAGxB,GAAI5D,CAAAA,EAAO8B,CAAAA,CAAoB,IAAI9B,CAAG,CAAA,CAAG,CACvC,IAAMmE,CAAAA,CAAQrC,CAAAA,CAAoB,IAAI9B,CAAG,CAAA,CACzCS,CAAAA,CAAoBT,CAAAA,CAAK2C,CAAAA,CAAWwB,CAAAA,CAAM,GAAG,CAAA,CAE7C,IAAMrD,CAAAA,CAAS,CAACqD,CAAAA,CAAM,KAAK,EAC3B,OAAIA,CAAAA,CAAM,MAAA,EAAQrD,CAAAA,CAAO,IAAA,CAAKqD,CAAAA,CAAM,MAAM,CAAA,CACtCA,CAAAA,CAAM,OAAA,EAASrD,CAAAA,CAAO,IAAA,CAAKqD,CAAAA,CAAM,OAAO,CAAA,CACxCA,CAAAA,CAAM,QAAQrD,CAAAA,CAAO,IAAA,CAAKqD,EAAM,MAAM,CAAA,CACtCA,CAAAA,CAAM,KAAA,EAAOrD,CAAAA,CAAO,IAAA,CAAKqD,EAAM,KAAK,CAAA,CAEjCrD,CACT,CAGA,IAAIN,CAAAA,CACA4D,EACAC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CAEJ,GAAI,OAAOZ,CAAAA,EAA0B,WAAY,CAC/C,IAAMa,CAAAA,CAAab,CAAAA,CACbc,CAAAA,CAAKP,CAAAA,GAAW,OAAY,IAAMM,CAAAA,CAAWN,CAAM,CAAA,CAAIM,CAAAA,CAEzDE,CAAAA,CACJ,GAAI,CAAEA,CAAAA,CAAaD,CAAAA,GAAK,CAAA,KAAY,CAA0B,CAI9D,GAFgBD,CAAAA,CAAW,WAAA,CAAY,IAAA,GAAS,eAAA,EAAmBE,CAAAA,YAAsB,QAE5E,CAEX,GAAM,CAACV,CAAAA,CAAKW,CAAO,CAAA,CAAIC,IAAeH,CAAAA,CAAW,MAAOI,CAAAA,EAAMA,CAAC,CAAA,CAY/DrE,CAAAA,CALyB,CACvB,GAAA,CAAK,IAAMwD,CAAAA,CAAI,KAAA,CACf,IAAA,CAAM,IAAMA,EAAI,IAAA,EAElB,CAAA,CAEAK,CAAAA,CAAUM,CAAAA,CAAQ,OAAA,CAGlB,IAAMG,CAAAA,CAAa,IAAIC,CAAAA,CAAa,IAAMf,CAAAA,CAAI,OAAA,CAAU,UAAYA,CAAAA,CAAI,KAAA,CAAQ,OAAA,CAAUA,CAAAA,CAAI,KAAA,GAAU,YAAA,CAAe,OAAS,SAAS,CAAA,CACzIM,CAAAA,CAAc9C,CAAAA,CAAkBsD,CAAiB,CAAA,CAGjD,IAAME,CAAAA,CAAY,IAAID,CAAAA,CAAa,IAAMf,CAAAA,CAAI,KAAK,EAClDO,CAAAA,CAAa/C,CAAAA,CAAkBwD,CAAgB,EACjD,CAAA,KAEExE,CAAAA,CAAM,IAAIuE,CAAAA,CAAaN,CAAS,EAEpC,CAAA,KAAO,CAEL,IAAMQ,EAAO,IAAI5E,GAAAA,CAAWsD,CAAqB,CAAA,CACjDnD,CAAAA,CAAMyE,CAAAA,CACNb,EAAUpD,CAAAA,EAAkB,CACtB,OAAOA,CAAAA,EAAa,UAAA,CACtBiE,CAAAA,CAAK,IAAIjE,CAAAA,CAASiE,CAAAA,CAAK,IAAA,EAAM,CAAC,CAAA,CAE9BA,EAAK,GAAA,CAAIjE,CAAQ,EAErB,EACF,CAEA,IAAMM,EAAQE,CAAAA,CAAkBhB,CAAG,CAAA,CAE7BM,CAAAA,CAAgB,CAACQ,CAAK,EAC5B,OAAI8C,CAAAA,EAAQtD,CAAAA,CAAO,IAAA,CAAKsD,CAAM,CAAA,CAC1BC,IACFvD,CAAAA,CAAO,MAAA,CAAO,CAAA,CAAG,CAAA,CAAGuD,CAAO,CAAA,CACvBC,GAAaxD,CAAAA,CAAO,IAAA,CAAKwD,CAAW,CAAA,CACpCC,CAAAA,EAAYzD,CAAAA,CAAO,KAAKyD,CAAU,CAAA,CAAA,CAIpCvE,CAAAA,GACF8B,CAAAA,CAAoB,GAAA,CAAI9B,CAAAA,CAAK,CAC3B,GAAA,CAAAQ,CAAAA,CAAK,KAAA,CAAAc,CAAAA,CAAO,MAAA,CAAA8C,CAAAA,CAAQ,QAAAC,CAAAA,CAAS,MAAA,CAAQC,CAAAA,CAAa,KAAA,CAAOC,CAAAA,CACzD,SAAA,CAAW,KAAK,GAAA,EAAI,CAAG,YAAA,CAAc,IAAA,CAAK,GAAA,EAAI,CAAG,YAAa,CAAA,CAAG,cAAA,CAAgB,CAAA,CACjF,GAAA,CAAAvE,CAAAA,CAAK,SAAA,CAAA2C,CACP,CAAC,CAAA,CAGD/C,CAAAA,CAAY,GAAA,CAAIY,CAAAA,CAAKR,CAAG,EAExBS,CAAAA,CAAoBT,CAAAA,CAAK2C,EAAWnC,CAAG,CAAA,CAEzB,OAAO,OAAA,CAAY,GAAA,EAAe,OAAA,CAAQ,GAAA,EAAK,QAAA,GAAa,YAAA,EAC7D,CAAC6B,CAAAA,EAAsBP,CAAAA,CAAoB,IAAA,EAAQM,CAAAA,GAC9DC,CAAAA,CAAqB,IAAA,CACrB,QAAQ,IAAA,CAAK,CAAA,iCAAA,EAAoCP,CAAAA,CAAoB,IAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAIxEhB,CACT,CAEA,IAAMqC,CAAAA,CAAQO,EAGdP,CAAAA,CAAM,MAAA,CAAS,SAAUnD,CAAAA,CAAwB,CAC/C,IAAMkF,CAAAA,CAAO3C,CAAAA,CAAavC,CAAG,EACvBmF,CAAAA,CAAOnD,CAAAA,CAAc,GAAA,CAAIkD,CAAI,CAAA,CACnC,OAAIC,GAAM,SAAA,EAAWvC,CAAAA,CAA6BsC,CAAAA,CAAMC,CAAAA,CAAK,SAAS,CAAA,CACtEnD,EAAc,MAAA,CAAOkD,CAAI,CAAA,CAClBpD,CAAAA,CAAoB,MAAA,CAAOoD,CAAI,CACxC,CAAA,CAEA/B,CAAAA,CAAM,KAAA,CAAQ,UAAkB,CAC9BrB,CAAAA,CAAoB,OAAM,CAC1BC,CAAAA,CAAkB,KAAA,EAAM,CACxBC,CAAAA,CAAc,KAAA,GACdK,CAAAA,CAAqB,MACvB,CAAA,CAEAc,CAAAA,CAAM,GAAA,CAAM,SAAUnD,EAAwB,CAC5C,OAAO8B,CAAAA,CAAoB,GAAA,CAAIS,CAAAA,CAAavC,CAAG,CAAC,CAClD,CAAA,CAEAmD,CAAAA,CAAM,aAAA,CAAgB,SAAUiC,CAAAA,CAA0B,CACxD,IAAMC,CAAAA,CAAY9C,CAAAA,CAAa6C,CAAM,CAAA,CACjCE,CAAAA,CAAU,EACRC,CAAAA,CAAyB,EAAC,CAEhC,IAAA,GAAW,CAACvF,CAAG,IAAKgC,CAAAA,CAAc,OAAA,EAAQ,CAAG,CAC3C,GAAIhC,CAAAA,GAAQqF,EAAW,CAAEE,CAAAA,CAAa,IAAA,CAAKvF,CAAG,CAAA,CAAG,QAAS,CAC1D,GAAIqF,CAAAA,CAAU,QAAA,CAAS,GAAG,CAAA,CAAG,CAC3B,IAAMG,CAAAA,CAAMH,CAAAA,CAAU,KAAA,CAAM,CAAA,CAAG,EAAE,CAAA,CAC7BrF,EAAI,UAAA,CAAWwF,CAAG,CAAA,EAAKxF,CAAAA,CAAI,MAAA,CAASwF,CAAAA,CAAI,QAAUxF,CAAAA,CAAIwF,CAAAA,CAAI,MAAM,CAAA,GAAM,GAAA,EAAKD,CAAAA,CAAa,KAAKvF,CAAG,EACtG,CAAA,KACMA,CAAAA,CAAI,UAAA,CAAWqF,CAAS,GAAGE,CAAAA,CAAa,IAAA,CAAKvF,CAAG,EAExD,CAEA,IAAA,IAAWyF,KAAKF,CAAAA,CACVpC,CAAAA,CAAM,MAAA,CAAOsC,CAAC,CAAA,EAAGH,CAAAA,EAAAA,CAEvB,OAAOA,CACT,CAAA,CAEAnC,CAAAA,CAAM,QAAA,CAAW,UAAwB,CACvC,IAAMuC,CAAAA,CAAsC,EAAC,CAC7C,IAAA,GAAW,CAACC,CAAAA,CAAIC,CAAI,CAAA,GAAK7D,CAAAA,CAAkB,OAAA,EAAQ,CAAG2D,CAAAA,CAAYC,CAAE,EAAIC,CAAAA,CAAK,IAAA,CAE7E,IAAIC,CAAAA,CAAc,CAAA,CAClB,IAAA,IAAWC,KAAK9D,CAAAA,CAAc,MAAA,EAAO,CAAG6D,CAAAA,EAAeC,CAAAA,CAAE,WAAA,CAEzD,OAAO,CACL,KAAA,CAAOhE,CAAAA,CAAoB,IAAA,CAC3B,WAAA,CAAA4D,CAAAA,CACA,cAAe,MAAA,CAAO,OAAA,CAAQA,CAAW,CAAA,CAAE,GAAA,CAAI,CAAC,CAAC,CAAA,CAAGK,CAAC,KAAO,CAAE,SAAA,CAAW,EAAG,KAAA,CAAOA,CAAE,CAAA,CAAE,CAAA,CAAE,IAAA,CAAK,CAACC,EAAGC,CAAAA,GAAMA,CAAAA,CAAE,KAAA,CAAQD,CAAAA,CAAE,KAAK,CAAA,CAAE,MAAM,CAAA,CAAG,EAAE,CAAA,CACtI,kBAAA,CAAoBhE,CAAAA,CAAc,IAAA,CAAO6D,EAAc7D,CAAAA,CAAc,IAAA,CAAO,CAC9E,CACF,CAAA,CAEAmB,CAAAA,CAAM,kBAAoB,SAAUiC,CAAAA,CAAkC,CACpE,IAAMc,CAAAA,CAAO3D,CAAAA,CAAa6C,CAAM,CAAA,CAC1BO,CAAAA,CAAK,KAAA,CAAM,OAAA,CAAQP,CAAM,CAAA,EAAKA,EAAO,MAAA,CAAS,CAAA,CAAI,MAAA,CAAOA,CAAAA,CAAO,CAAC,CAAC,EAAIc,CAAAA,CACtEC,CAAAA,CAAgB,EAAC,CACnBN,CAAAA,CAAc,CAAA,CAElB,OAAW,CAAC7F,CAAAA,CAAK8F,CAAC,CAAA,GAAK9D,CAAAA,CAAc,OAAA,GAAW,CAC9C,IAAIoE,CAAAA,CAAU,KAAA,CAEd,GAAIpG,CAAAA,GAAQkG,EACVE,CAAAA,CAAU,IAAA,CAAA,KAAA,GACDF,CAAAA,CAAK,QAAA,CAAS,GAAG,CAAA,CAAG,CAC7B,IAAMV,CAAAA,CAAMU,CAAAA,CAAK,KAAA,CAAM,CAAA,CAAG,EAAE,EACxBlG,CAAAA,CAAI,UAAA,CAAWwF,CAAG,CAAA,EAAKxF,CAAAA,CAAI,MAAA,CAASwF,EAAI,MAAA,EAAUxF,CAAAA,CAAIwF,CAAAA,CAAI,MAAM,CAAA,GAAM,GAAA,GACxEY,EAAU,IAAA,EAEd,CAAA,KACMpG,CAAAA,CAAI,UAAA,CAAWkG,CAAI,CAAA,GAAGE,EAAU,IAAA,CAAA,CAGlCA,CAAAA,GACFD,CAAAA,CAAO,IAAA,CAAK,CAAE,GAAA,CAAAnG,EAAK,WAAA,CAAa8F,CAAAA,CAAE,WAAA,CAAa,SAAA,CAAWA,CAAAA,CAAE,SAAU,CAAC,CAAA,CACvED,CAAAA,EAAeC,CAAAA,CAAE,WAAA,EAErB,CACA,OAAO,CACL,SAAA,CAAWH,CAAAA,CAAI,KAAA,CAAOQ,CAAAA,CAAO,MAAA,CAAQ,gBAAA,CAAkBN,EACvD,kBAAA,CAAoBM,CAAAA,CAAO,MAAA,CAASN,CAAAA,CAAcM,CAAAA,CAAO,MAAA,CAAS,EAClE,MAAA,CAAAA,CACF,CACF,CAAA,CAEA,MAAA,CAAO,cAAA,CAAehD,EAAO,MAAA,CAAQ,CAAE,GAAA,CAAK,IAAMrB,CAAAA,CAAoB,IAAA,CAAM,WAAY,IAAK,CAAC,CAAA,CAC9FqB,CAAAA,CAAM,iBAAA,CAAqB4C,CAAAA,EAAM,CAAE,MAAA,CAAO,MAAA,CAAO9D,CAAAA,CAAmB8D,CAAAA,CAAG,CAAE,OAAA,CAAS,IAAK,CAAC,CAAA,CAAO7D,CAAAA,EAAqB,aAAA,CAAcA,CAAmB,CAAA,CAAGA,EAAsB,WAAA,CAAYC,CAAAA,CAAoBF,CAAAA,CAAkB,aAAa,EAAE,CAAA,CAC/OkB,EAAM,kBAAA,CAAqB,IAAM,CAAElB,CAAAA,CAAkB,OAAA,CAAU,KAAA,CAAWC,GAAqB,aAAA,CAAcA,CAAmB,EAAE,CAAA,CAClI,MAAA,CAAO,cAAA,CAAeiB,EAAO,sBAAA,CAAwB,CAAE,GAAA,CAAK,IAAMlB,CAAAA,CAAkB,OAAA,CAAS,WAAY,IAAK,CAAC,CAAA,CAKxG,SAASoE,EAAAA,CAAOC,CAAAA,CAAiC,CAAE,OAAO,CAAE,OAAA,CAASA,CAAQ,CAAE","file":"chunk-REM6WIZS.mjs","sourcesContent":["import { SignalNode, ComputedNode, createResource } from './signal'\n\n\n\n/** Symbol to identify StateProxy and access underlying signal */\nexport const STATE_SIGNAL = Symbol.for('flexium.stateSignal')\n\n/**\n * ------------------------------------------------------------------\n * Hybrid Proxy Architecture: Support Types\n * ------------------------------------------------------------------\n */\n\n/**\n * A \"Box\" is any object with a `value` property.\n * It serves as the stable target for our Proxy.\n */\ninterface Box<T> {\n get(): T\n set?(value: T): void\n peek(): T\n}\n\n/**\n * Dependency Map: Stores signals for object properties.\n * Key: Target Object (The inner value, OR the Box itself)\n * Value: Map<PropertyKey, Signal>\n */\n// Need to allow getDep to access SignalNode methods\nconst depMap = new WeakMap<object, Map<string | symbol, SignalNode<unknown>>>()\nconst boxToKeyMap = new WeakMap<object, string>()\nconst targetBoxMap = new WeakMap<object, Box<any>>()\n\nfunction getDep(target: object, key: string | symbol, initialValue?: unknown): SignalNode<unknown> {\n let deps = depMap.get(target)\n if (!deps) {\n deps = new Map()\n depMap.set(target, deps)\n }\n let dep = deps.get(key)\n if (!dep) {\n const currentVal = initialValue !== undefined ? initialValue : Reflect.get(target, key)\n dep = new SignalNode(currentVal)\n deps.set(key, dep)\n }\n return dep\n}\n\n/**\n * ------------------------------------------------------------------\n * Hybrid Proxy Handler\n * ------------------------------------------------------------------\n */\nconst hybridHandlers: ProxyHandler<Box<any>> = {\n get(target, prop) {\n const box = targetBoxMap.get(target)!\n if (prop === STATE_SIGNAL) return box\n\n // Access Tracking\n const key = boxToKeyMap.get(box)\n if (key) updateStateMetadata(key)\n\n if (prop === 'peek') {\n return box.peek.bind(box)\n }\n\n // Reactivity for the Root Value\n // Reactivity for the Root Value\n const isSignalLike = typeof (box as any).peek === 'function' && typeof (box as any).get === 'function'\n let innerValue: any\n\n if (isSignalLike) {\n innerValue = box.get()\n } else {\n getDep(box, 'value') // Should not happen if box is always a Node\n innerValue = box.get()\n }\n\n if (prop === Symbol.toPrimitive || prop === 'valueOf') {\n return () => innerValue\n }\n\n if (prop === Symbol.iterator) {\n // Track iteration\n getDep(innerValue, 'length').get()\n getDep(innerValue, 'iterate').get()\n return (innerValue as any)[Symbol.iterator].bind(innerValue)\n }\n\n // Recursive Forwarding\n if (innerValue !== null && typeof innerValue === 'object') {\n const val = Reflect.get(innerValue, prop)\n\n if (typeof val === 'function') {\n // Special handling for Array mutation methods\n if (Array.isArray(innerValue) && ['push', 'pop', 'shift', 'unshift', 'splice', 'sort', 'reverse'].includes(prop as string)) {\n return function (...args: any[]) {\n const result = (val as Function).apply(innerValue, args)\n // If innerValue is the root value of the box:\n if (innerValue === box.get()) {\n const dep = getDep(box, 'value')\n dep.set(innerValue) // force notify even if value is same object\n }\n\n // Arrays are tricky. We usually subscribe to 'iterate' or 'length'.\n // Notify length\n getDep(innerValue, 'length').set(innerValue.length)\n\n // Also notify 'iterate' key which `ownKeys` uses?\n // Or just force notify 'value' if it's the root.\n if (innerValue === box.get()) {\n getDep(box, 'value').get()\n }\n\n return result\n }\n }\n if (Array.isArray(innerValue)) {\n // Fix for .concat(): Array.prototype.concat treats proxies as objects unless Symbol.isConcatSpreadable is handled,\n // OR we bind to the raw array so it doesn't see the proxy.\n // But binding to 'receiver' (the proxy) is usually correct for other methods.\n // However, for .concat, we likely want the raw array behavior or correct proxy handling.\n // Simple fix: bind to innerValue (raw array) for non-mutating methods too, \n // or at least for concat if it causes issues.\n // .map, .filter etc return new arrays, so binding to innerValue is fine.\n return (val as Function).bind(innerValue)\n }\n return (innerValue as any)[prop].bind(innerValue)\n }\n\n getDep(innerValue, prop, val).get()\n\n if (val !== null && typeof val === 'object') {\n return createNestedProxy(val)\n }\n return val\n }\n\n const val = (innerValue as any)[prop]\n return typeof val === 'function' ? val.bind(innerValue) : val\n },\n\n set(target, prop, newValue) {\n const box = targetBoxMap.get(target)!\n const innerValue = box.get()\n if (innerValue !== null && typeof innerValue === 'object') {\n const success = Reflect.set(innerValue, prop, newValue)\n getDep(innerValue, prop).set(newValue)\n return success\n }\n return false\n },\n\n has(target, prop) {\n const box = targetBoxMap.get(target)!\n if (prop === STATE_SIGNAL) return true\n const innerValue = box.get()\n if (innerValue === null) return false\n if (typeof innerValue === 'object') {\n return Reflect.has(innerValue, prop)\n }\n return false // primitives don't have own properties usually, but 'toFixed' is in proto\n },\n\n ownKeys(target) {\n const box = targetBoxMap.get(target)!\n const innerValue = box.get()\n\n if (innerValue === null || typeof innerValue !== 'object') {\n return Reflect.ownKeys(target)\n }\n\n // Arrays need special handling for iteration\n if (Array.isArray(innerValue)) {\n getDep(innerValue, 'length').get()\n getDep(innerValue, 'iterate').get()\n } else {\n // Objects \n getDep(innerValue, 'iterate').get()\n }\n\n return Reflect.ownKeys(innerValue)\n },\n\n getOwnPropertyDescriptor(target, prop) {\n const box = targetBoxMap.get(target)!\n if (prop === STATE_SIGNAL) {\n return { configurable: true, enumerable: false, value: box }\n }\n const innerValue = box.get()\n\n if (innerValue === null || typeof innerValue !== 'object') {\n return undefined\n }\n\n const desc = Reflect.getOwnPropertyDescriptor(innerValue, prop)\n if (desc) {\n desc.configurable = true\n }\n return desc\n }\n}\n\nconst nestedHandlers: ProxyHandler<object> = {\n get(target, prop, receiver) {\n if (prop === STATE_SIGNAL) return target\n const val = Reflect.get(target, prop, receiver)\n getDep(target, prop, val).get()\n if (val !== null && typeof val === 'object') {\n return createNestedProxy(val)\n }\n return val\n },\n set(target, prop, newValue, receiver) {\n const success = Reflect.set(target, prop, newValue, receiver)\n if (success) {\n getDep(target, prop).set(newValue)\n }\n return success\n },\n has(target, prop) {\n if (prop === STATE_SIGNAL) return true\n return Reflect.has(target, prop)\n }\n}\n\nconst nestedProxyCache = new WeakMap<object, any>()\n\nfunction createNestedProxy<T extends object>(target: T): T {\n let proxy = nestedProxyCache.get(target)\n if (!proxy) {\n proxy = new Proxy(target, nestedHandlers)\n nestedProxyCache.set(target, proxy)\n }\n return proxy\n}\n\n// Cache for Hybrid Proxies (keyed by Box/Signal)\nconst proxyCache = new WeakMap<object, any>()\n\nfunction createHybridProxy<T>(box: Box<T>): StateValue<T> {\n let proxy = proxyCache.get(box)\n if (proxy) return proxy\n\n // The target is a function so that the proxy is callable `state()`, returns value.\n const target = () => box.get()\n targetBoxMap.set(target, box)\n // Object.assign(target, box) // REMOVED: Do not copy properties, prevents stale values\n\n proxy = new Proxy(target as any, hybridHandlers) as StateValue<T>\n proxyCache.set(box, proxy)\n return proxy\n}\n\n/**\n * ------------------------------------------------------------------\n * Component Hook System\n * ------------------------------------------------------------------\n */\ninterface ComponentInstance {\n id: symbol\n hookIndex: number\n hooks: unknown[]\n}\n\nlet currentComponent: ComponentInstance | null = null\n\nexport function setCurrentComponent(instance: ComponentInstance | null): void {\n currentComponent = instance\n}\n\nexport function getCurrentComponent(): ComponentInstance | null {\n return currentComponent\n}\n\nexport function createComponentInstance(): ComponentInstance {\n return {\n id: Symbol('component'),\n hookIndex: 0,\n hooks: [],\n }\n}\n\nexport function resetHookIndex(instance: ComponentInstance): void {\n instance.hookIndex = 0\n}\n\n/**\n * ------------------------------------------------------------------\n * Global State Registry & Metadata\n * ------------------------------------------------------------------\n */\ninterface RegistryEntry {\n box: Box<any>\n proxy: StateValue<any>\n setter: StateAction<any> | undefined\n refetch?: () => void\n status?: StateValue<AsyncStatus>\n error?: StateValue<unknown>\n key?: string\n namespace?: string\n\n // Keep compatibility with old StateObject for metadata utils\n // We can just add metadata fields here or map them\n createdAt: number\n lastAccessed: number\n accessCount: number\n referenceCount: number\n}\n\nconst globalStateRegistry = new Map<string, RegistryEntry>()\nconst namespaceRegistry = new Map<string, Set<string>>()\n// We'll store metadata directly in RegistryEntry for simplicity in this refactor\n// OR keep existing `stateMetadata` map if we want to separate concerns.\n// Let's reuse `stateMetadata` approach for less friction with existing utils.\n\ninterface StateMetadata {\n key: string\n namespace?: string\n createdAt: number\n lastAccessed: number\n accessCount: number\n referenceCount: number\n signalRef?: WeakRef<any>\n}\nconst stateMetadata = new Map<string, StateMetadata>()\n\ninterface AutoCleanupConfig {\n enabled: boolean\n maxIdleTime: number\n checkInterval: number\n minAccessCount: number\n}\n\nlet autoCleanupConfig: AutoCleanupConfig = {\n enabled: true,\n maxIdleTime: 5 * 60 * 1000,\n checkInterval: 60 * 1000,\n minAccessCount: 0,\n}\n\nlet autoCleanupInterval: AnyInterval | null = null\ntype AnyInterval = ReturnType<typeof setInterval>\n\nif (typeof window !== 'undefined' || typeof globalThis !== 'undefined') {\n setTimeout(() => {\n if (autoCleanupConfig.enabled && !autoCleanupInterval) {\n autoCleanupInterval = setInterval(performAutoCleanup, autoCleanupConfig.checkInterval)\n }\n }, 0)\n}\n\nconst DEV_WARNING_THRESHOLD = 10000\nlet hasWarnedAboutSize = false\n\n/**\n * ------------------------------------------------------------------\n * Helper Functions\n * ------------------------------------------------------------------\n */\nexport type StateKey = string | readonly (string | number | boolean | null | undefined | object)[]\nconst keyCache = new WeakMap<readonly unknown[], string>()\n\nfunction serializeKey(key: StateKey): string {\n if (typeof key === 'string') return key\n const cached = keyCache.get(key)\n if (cached !== undefined) return cached\n try {\n const serialized = JSON.stringify(key)\n keyCache.set(key, serialized)\n return serialized\n } catch (error) {\n const fallback = String(key)\n return fallback\n }\n}\n\nfunction registerStateInNamespace(key: string, namespace?: string): void {\n if (!namespace) return\n if (!namespaceRegistry.has(namespace)) namespaceRegistry.set(namespace, new Set())\n namespaceRegistry.get(namespace)!.add(key)\n}\n\nfunction unregisterStateFromNamespace(key: string, namespace?: string): void {\n if (!namespace) return\n const set = namespaceRegistry.get(namespace)\n if (set) {\n set.delete(key)\n if (set.size === 0) namespaceRegistry.delete(namespace)\n }\n}\n\nfunction updateStateMetadata(key: string, namespace?: string, signalRefTarget?: any): void {\n const now = Date.now()\n const existing = stateMetadata.get(key)\n\n if (existing) {\n existing.lastAccessed = now\n existing.accessCount++\n existing.referenceCount++\n if (namespace && existing.namespace !== namespace) {\n if (existing.namespace) unregisterStateFromNamespace(key, existing.namespace)\n existing.namespace = namespace\n registerStateInNamespace(key, namespace)\n }\n } else {\n stateMetadata.set(key, {\n key,\n namespace,\n createdAt: now,\n lastAccessed: now,\n accessCount: 1,\n referenceCount: 1,\n signalRef: signalRefTarget && typeof WeakRef !== 'undefined' ? new WeakRef(signalRefTarget) : undefined\n })\n registerStateInNamespace(key, namespace)\n }\n}\n\nfunction performAutoCleanup(): void {\n if (!autoCleanupConfig.enabled) return\n const now = Date.now()\n const keysToRemove: string[] = []\n\n for (const [key, metadata] of stateMetadata.entries()) {\n if (metadata.signalRef && typeof WeakRef !== 'undefined') {\n const sig = metadata.signalRef.deref()\n if (!sig) {\n keysToRemove.push(key)\n continue\n }\n }\n const idleTime = now - metadata.lastAccessed\n if (idleTime > autoCleanupConfig.maxIdleTime && metadata.referenceCount === 0 && metadata.accessCount >= autoCleanupConfig.minAccessCount) {\n keysToRemove.push(key)\n }\n }\n\n for (const key of keysToRemove) {\n state.delete(key)\n }\n\n if (keysToRemove.length > 0 && typeof process !== 'undefined' && process.env?.NODE_ENV !== 'production') {\n console.log(`[Flexium] Auto-cleaned ${keysToRemove.length} idle states`)\n }\n}\n\n/**\n * ------------------------------------------------------------------\n * Main State API\n * ------------------------------------------------------------------\n */\nexport type StateAction<T> = (newValue: T | ((prev: T) => T)) => void\nexport type StateValue<T> = T & (() => T) & { peek(): T }\nexport type AsyncStatus = 'idle' | 'loading' | 'success' | 'error'\nexport interface StateOptions<P = unknown> {\n key?: StateKey\n params?: P\n}\n\nexport function isStateValue(value: unknown): boolean {\n // Hybrid proxies are functions\n return (typeof value === 'object' || typeof value === 'function') && value !== null && STATE_SIGNAL in value\n}\n\n// Helper to get the underlying signal from a StateValue\nexport function getStateSignal(stateValue: unknown): SignalNode<unknown> | ComputedNode<unknown> | null {\n if (isStateValue(stateValue)) return (stateValue as any)[STATE_SIGNAL]\n return null\n}\n\nexport function equals<T>(stateValue: StateValue<T>, value: T): boolean {\n if (!isStateValue(stateValue)) return false\n return stateValue.peek() === value\n}\n\nexport function isTruthy<T>(stateValue: StateValue<T>): boolean {\n if (!isStateValue(stateValue)) return false\n return Boolean(stateValue.peek())\n}\n\nexport interface StateStats {\n total: number\n byNamespace: Record<string, number>\n topNamespaces: Array<{ namespace: string; count: number }>\n averageAccessCount: number\n}\n\nexport interface NamespaceStats {\n namespace: string\n count: number\n totalAccessCount: number\n averageAccessCount: number\n states: Array<{ key: string; accessCount: number; createdAt: number }>\n}\n\ninterface StateFunction {\n <T>(initialValue: T, options?: StateOptions): [StateValue<T>, StateAction<T>]\n <T, P>(computeFn: (params: P) => T, options: StateOptions<P> & { params: P }): [StateValue<T>]\n <T>(computeFn: () => T, options?: StateOptions): [StateValue<T>]\n <T, P>(fetcher: (params: P) => Promise<T>, options: StateOptions<P> & { params: P }): [StateValue<T | undefined>, () => void, StateValue<AsyncStatus>, StateValue<unknown>]\n <T>(fetcher: () => Promise<T>, options?: StateOptions): [StateValue<T | undefined>, () => void, StateValue<AsyncStatus>, StateValue<unknown>]\n\n delete: (key: StateKey) => boolean\n clear: () => void\n clearByPrefix: (prefix: StateKey) => number\n has: (key: StateKey) => boolean\n readonly size: number\n getStats: () => StateStats\n getNamespaceStats: (prefix: StateKey) => NamespaceStats\n enableAutoCleanup: (config?: Partial<AutoCleanupConfig>) => void\n disableAutoCleanup: () => void\n readonly isAutoCleanupEnabled: boolean\n}\n\nfunction stateImplementation<T, P = unknown>(\n initialValueOrFetcher: T | ((params?: P) => T) | ((params?: P) => Promise<T>),\n options?: StateOptions<P>\n): any {\n // Hook System\n if (currentComponent && !options?.key) {\n const comp = currentComponent\n const hookIndex = comp.hookIndex++\n if (hookIndex < comp.hooks.length) return comp.hooks[hookIndex]\n const saved = currentComponent\n currentComponent = null\n const res = state(initialValueOrFetcher as any, options as any)\n currentComponent = saved\n comp.hooks.push(res)\n return res\n }\n\n // Key Serializing\n const rawKey = options?.key\n const key = rawKey ? serializeKey(rawKey) : undefined\n const namespace = Array.isArray(rawKey) && rawKey.length > 0 ? String(rawKey[0]) : undefined\n const params = options?.params\n\n // Check Registry\n if (key && globalStateRegistry.has(key)) {\n const entry = globalStateRegistry.get(key)!\n updateStateMetadata(key, namespace, entry.box)\n\n const result = [entry.proxy]\n if (entry.setter) result.push(entry.setter)\n if (entry.refetch) result.push(entry.refetch)\n if (entry.status) result.push(entry.status)\n if (entry.error) result.push(entry.error)\n\n return result\n }\n\n // Logic\n let box: Box<T>\n let setter: StateAction<T> | undefined\n let refetch: (() => void) | undefined\n let statusProxy: StateValue<AsyncStatus> | undefined\n let errorProxy: StateValue<unknown> | undefined\n\n if (typeof initialValueOrFetcher === 'function') {\n const originalFn = initialValueOrFetcher as Function\n const fn = params !== undefined ? () => originalFn(params) : originalFn\n\n let testResult: any\n try { testResult = fn() } catch (e) { /* treat as computed */ }\n\n const isAsync = originalFn.constructor.name === 'AsyncFunction' || testResult instanceof Promise\n\n if (isAsync) {\n // Resource\n const [res, actions] = createResource(fn as any, async (v) => v)\n // Resources in flexium/signal are still using the wrapper API for now (unless refactored too).\n // Assuming createResource still returns { value: ... } style object which we can wrap or adapt.\n // Wait, createResource returns [Resource<T>, actions]. \n // Resource<T> extends Signal<T>. It has .value.\n // But our Box expects .get()/.peek().\n // Adapter Box:\n const resBox: Box<any> = {\n get: () => res.value,\n peek: () => res.peek(),\n // Resources are read-only-ish via this box for the user, actions used for mutations\n }\n box = resBox\n refetch = actions.refetch\n\n // Status Computed\n const statusComp = new ComputedNode(() => res.loading ? 'loading' : res.error ? 'error' : res.state === 'unresolved' ? 'idle' : 'success')\n statusProxy = createHybridProxy(statusComp as any) as any\n\n // Error Computed\n const errorComp = new ComputedNode(() => res.error)\n errorProxy = createHybridProxy(errorComp as any) as any\n } else {\n // Computed\n box = new ComputedNode(fn as any) as any\n }\n } else {\n // Signal\n const node = new SignalNode(initialValueOrFetcher)\n box = node as any\n setter = (newValue: any) => {\n if (typeof newValue === 'function') {\n node.set(newValue(node.peek()))\n } else {\n node.set(newValue)\n }\n }\n }\n\n const proxy = createHybridProxy(box)\n\n const result: any[] = [proxy]\n if (setter) result.push(setter)\n if (refetch) {\n result.splice(1, 0, refetch) // [proxy, refetch, status, error]\n if (statusProxy) result.push(statusProxy)\n if (errorProxy) result.push(errorProxy)\n }\n\n // Register\n if (key) {\n globalStateRegistry.set(key, {\n box, proxy, setter, refetch, status: statusProxy, error: errorProxy,\n createdAt: Date.now(), lastAccessed: Date.now(), accessCount: 1, referenceCount: 1,\n key, namespace\n })\n\n // Map box to key for access tracking\n boxToKeyMap.set(box, key)\n\n updateStateMetadata(key, namespace, box)\n\n const isDev = typeof process !== 'undefined' && process.env?.NODE_ENV !== 'production'\n if (isDev && !hasWarnedAboutSize && globalStateRegistry.size >= DEV_WARNING_THRESHOLD) {\n hasWarnedAboutSize = true\n console.warn(`[Flexium] Registry size warning: ${globalStateRegistry.size}`)\n }\n }\n\n return result\n}\n\nconst state = stateImplementation as StateFunction\n\n// Static Methods\nstate.delete = function (key: StateKey): boolean {\n const sKey = serializeKey(key)\n const meta = stateMetadata.get(sKey)\n if (meta?.namespace) unregisterStateFromNamespace(sKey, meta.namespace)\n stateMetadata.delete(sKey)\n return globalStateRegistry.delete(sKey)\n}\n\nstate.clear = function (): void {\n globalStateRegistry.clear()\n namespaceRegistry.clear()\n stateMetadata.clear()\n hasWarnedAboutSize = false\n}\n\nstate.has = function (key: StateKey): boolean {\n return globalStateRegistry.has(serializeKey(key))\n}\n\nstate.clearByPrefix = function (prefix: StateKey): number {\n const prefixStr = serializeKey(prefix)\n let cleared = 0\n const keysToDelete: string[] = []\n\n for (const [key] of stateMetadata.entries()) {\n if (key === prefixStr) { keysToDelete.push(key); continue }\n if (prefixStr.endsWith(']')) {\n const raw = prefixStr.slice(0, -1)\n if (key.startsWith(raw) && key.length > raw.length && key[raw.length] === ',') keysToDelete.push(key)\n } else {\n if (key.startsWith(prefixStr)) keysToDelete.push(key)\n }\n }\n\n for (const k of keysToDelete) {\n if (state.delete(k)) cleared++\n }\n return cleared\n}\n\nstate.getStats = function (): StateStats {\n const byNamespace: Record<string, number> = {}\n for (const [ns, keys] of namespaceRegistry.entries()) byNamespace[ns] = keys.size\n\n let totalAccess = 0\n for (const m of stateMetadata.values()) totalAccess += m.accessCount\n\n return {\n total: globalStateRegistry.size,\n byNamespace,\n topNamespaces: Object.entries(byNamespace).map(([n, c]) => ({ namespace: n, count: c })).sort((a, b) => b.count - a.count).slice(0, 10),\n averageAccessCount: stateMetadata.size ? totalAccess / stateMetadata.size : 0\n }\n}\n\nstate.getNamespaceStats = function (prefix: StateKey): NamespaceStats {\n const pStr = serializeKey(prefix)\n const ns = Array.isArray(prefix) && prefix.length > 0 ? String(prefix[0]) : pStr\n const states: any[] = []\n let totalAccess = 0\n\n for (const [key, m] of stateMetadata.entries()) {\n let matched = false\n\n if (key === pStr) {\n matched = true\n } else if (pStr.endsWith(']')) {\n const raw = pStr.slice(0, -1)\n if (key.startsWith(raw) && key.length > raw.length && key[raw.length] === ',') {\n matched = true\n }\n } else {\n if (key.startsWith(pStr)) matched = true\n }\n\n if (matched) {\n states.push({ key, accessCount: m.accessCount, createdAt: m.createdAt })\n totalAccess += m.accessCount\n }\n }\n return {\n namespace: ns, count: states.length, totalAccessCount: totalAccess,\n averageAccessCount: states.length ? totalAccess / states.length : 0,\n states\n }\n}\n\nObject.defineProperty(state, 'size', { get: () => globalStateRegistry.size, enumerable: true })\nstate.enableAutoCleanup = (c) => { Object.assign(autoCleanupConfig, c, { enabled: true }); if (autoCleanupInterval) clearInterval(autoCleanupInterval); autoCleanupInterval = setInterval(performAutoCleanup, autoCleanupConfig.checkInterval) }\nstate.disableAutoCleanup = () => { autoCleanupConfig.enabled = false; if (autoCleanupInterval) clearInterval(autoCleanupInterval) }\nObject.defineProperty(state, 'isAutoCleanupEnabled', { get: () => autoCleanupConfig.enabled, enumerable: true })\n\nexport { state }\n\nexport interface RefObject<T> { current: T | null }\nexport function ref<T>(initial: T | null): RefObject<T> { return { current: initial } }\n"]}
|
package/dist/chunk-RSI6RYJ7.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
'use strict';var chunk5236IK5I_js=require('./chunk-5236IK5I.js');var b=Symbol.for("flexium.stateSignal"),O=new WeakMap,F=new WeakMap,A=new WeakMap;function l(t,e,n){let s=O.get(t);s||(s=new Map,O.set(t,s));let o=s.get(e);if(!o){let a=n!==void 0?n:Reflect.get(t,e);o=new chunk5236IK5I_js.d(a),s.set(e,o);}return o}var Q={get(t,e){let n=A.get(t);if(e===b)return n;let s=F.get(n);if(s&&V(s),e==="peek")return n.peek.bind(n);let o=typeof n.peek=="function"&&typeof n.get=="function",a;if(o||l(n,"value"),a=n.get(),e===Symbol.toPrimitive||e==="valueOf")return ()=>a;if(e===Symbol.iterator)return l(a,"length").get(),l(a,"iterate").get(),a[Symbol.iterator].bind(a);if(a!==null&&typeof a=="object"){let c=Reflect.get(a,e);return typeof c=="function"?Array.isArray(a)&&["push","pop","shift","unshift","splice","sort","reverse"].includes(e)?function(...y){let x=c.apply(a,y);return a===n.get()&&l(n,"value").set(a),l(a,"length").set(a.length),a===n.get()&&l(n,"value").get(),x}:Array.isArray(a)?c.bind(a):a[e].bind(a):(l(a,e,c).get(),c!==null&&typeof c=="object"?H(c):c)}let u=a[e];return typeof u=="function"?u.bind(a):u},set(t,e,n){let o=A.get(t).get();if(o!==null&&typeof o=="object"){let a=Reflect.set(o,e,n);return l(o,e).set(n),a}return false},has(t,e){let n=A.get(t);if(e===b)return true;let s=n.get();return s===null?false:typeof s=="object"?Reflect.has(s,e):false},ownKeys(t){let n=A.get(t).get();return n===null||typeof n!="object"?Reflect.ownKeys(t):(Array.isArray(n)&&l(n,"length").get(),l(n,"iterate").get(),Reflect.ownKeys(n))},getOwnPropertyDescriptor(t,e){let n=A.get(t);if(e===b)return {configurable:true,enumerable:false,value:n};let s=n.get();if(s===null||typeof s!="object")return;let o=Reflect.getOwnPropertyDescriptor(s,e);return o&&(o.configurable=true),o}},U={get(t,e,n){if(e===b)return t;let s=Reflect.get(t,e,n);return l(t,e,s).get(),s!==null&&typeof s=="object"?H(s):s},set(t,e,n,s){let o=Reflect.set(t,e,n,s);return o&&l(t,e).set(n),o},has(t,e){return e===b?true:Reflect.has(t,e)}},z=new WeakMap;function H(t){let e=z.get(t);return e||(e=new Proxy(t,U),z.set(t,e)),e}var D=new WeakMap;function N(t){let e=D.get(t);if(e)return e;let n=()=>t.get();return A.set(n,t),e=new Proxy(n,Q),D.set(t,e),e}var T=null;function te(t){T=t;}function ne(){return {id:Symbol("component"),hookIndex:0,hooks:[]}}function se(t){t.hookIndex=0;}var p=new Map,S=new Map,d=new Map,g={enabled:true,maxIdleTime:300*1e3,checkInterval:60*1e3,minAccessCount:0},h=null;(typeof window<"u"||typeof globalThis<"u")&&setTimeout(()=>{g.enabled&&!h&&(h=setInterval(L,g.checkInterval));},0);var X=1e4,j=false,B=new WeakMap;function v(t){if(typeof t=="string")return t;let e=B.get(t);if(e!==void 0)return e;try{let n=JSON.stringify(t);return B.set(t,n),n}catch{return String(t)}}function E(t,e){e&&(S.has(e)||S.set(e,new Set),S.get(e).add(t));}function _(t,e){if(!e)return;let n=S.get(e);n&&(n.delete(t),n.size===0&&S.delete(e));}function V(t,e,n){let s=Date.now(),o=d.get(t);o?(o.lastAccessed=s,o.accessCount++,o.referenceCount++,e&&o.namespace!==e&&(o.namespace&&_(t,o.namespace),o.namespace=e,E(t,e))):(d.set(t,{key:t,namespace:e,createdAt:s,lastAccessed:s,accessCount:1,referenceCount:1,signalRef:n&&typeof WeakRef<"u"?new WeakRef(n):void 0}),E(t,e));}function L(){if(!g.enabled)return;let t=Date.now(),e=[];for(let[n,s]of d.entries()){if(s.signalRef&&typeof WeakRef<"u"&&!s.signalRef.deref()){e.push(n);continue}t-s.lastAccessed>g.maxIdleTime&&s.referenceCount===0&&s.accessCount>=g.minAccessCount&&e.push(n);}for(let n of e)f.delete(n);e.length>0&&typeof process<"u"&&process.env?.NODE_ENV!=="production"&&console.log(`[Flexium] Auto-cleaned ${e.length} idle states`);}function K(t){return (typeof t=="object"||typeof t=="function")&&t!==null&&b in t}function oe(t){return K(t)?t[b]:null}function ae(t,e){return K(t)?t.peek()===e:false}function re(t){return K(t)?!!t.peek():false}function Y(t,e){if(T&&!e?.key){let r=T,i=r.hookIndex++;if(i<r.hooks.length)return r.hooks[i];let w=T;T=null;let I=f(t,e);return T=w,r.hooks.push(I),I}let n=e?.key,s=n?v(n):void 0,o=Array.isArray(n)&&n.length>0?String(n[0]):void 0,a=e?.params;if(s&&p.has(s)){let r=p.get(s);V(s,o,r.box);let i=[r.proxy];return r.setter&&i.push(r.setter),r.refetch&&i.push(r.refetch),r.status&&i.push(r.status),r.error&&i.push(r.error),i}let u,c,y,x,C;if(typeof t=="function"){let r=t,i=a!==void 0?()=>r(a):r,w;try{w=i();}catch{}if(r.constructor.name==="AsyncFunction"||w instanceof Promise){let[m,G]=chunk5236IK5I_js.h(i,async J=>J);u={get:()=>m.value,peek:()=>m.peek()},y=G.refetch;let $=new chunk5236IK5I_js.e(()=>m.loading?"loading":m.error?"error":m.state==="unresolved"?"idle":"success");x=N($);let q=new chunk5236IK5I_js.e(()=>m.error);C=N(q);}else u=new chunk5236IK5I_js.e(i);}else {let r=new chunk5236IK5I_js.d(t);u=r,c=i=>{typeof i=="function"?r.set(i(r.peek())):r.set(i);};}let M=N(u),k=[M];return c&&k.push(c),y&&(k.splice(1,0,y),x&&k.push(x),C&&k.push(C)),s&&(p.set(s,{box:u,proxy:M,setter:c,refetch:y,status:x,error:C,createdAt:Date.now(),lastAccessed:Date.now(),accessCount:1,referenceCount:1,key:s,namespace:o}),F.set(u,s),V(s,o,u),typeof process<"u"&&process.env?.NODE_ENV!=="production"&&!j&&p.size>=X&&(j=true,console.warn(`[Flexium] Registry size warning: ${p.size}`))),k}var f=Y;f.delete=function(t){let e=v(t),n=d.get(e);return n?.namespace&&_(e,n.namespace),d.delete(e),p.delete(e)};f.clear=function(){p.clear(),S.clear(),d.clear(),j=false;};f.has=function(t){return p.has(v(t))};f.clearByPrefix=function(t){let e=v(t),n=0,s=[];for(let[o]of d.entries()){if(o===e){s.push(o);continue}if(e.endsWith("]")){let a=e.slice(0,-1);o.startsWith(a)&&o.length>a.length&&o[a.length]===","&&s.push(o);}else o.startsWith(e)&&s.push(o);}for(let o of s)f.delete(o)&&n++;return n};f.getStats=function(){let t={};for(let[n,s]of S.entries())t[n]=s.size;let e=0;for(let n of d.values())e+=n.accessCount;return {total:p.size,byNamespace:t,topNamespaces:Object.entries(t).map(([n,s])=>({namespace:n,count:s})).sort((n,s)=>s.count-n.count).slice(0,10),averageAccessCount:d.size?e/d.size:0}};f.getNamespaceStats=function(t){let e=v(t),n=Array.isArray(t)&&t.length>0?String(t[0]):e,s=[],o=0;for(let[a,u]of d.entries()){let c=false;if(a===e)c=true;else if(e.endsWith("]")){let y=e.slice(0,-1);a.startsWith(y)&&a.length>y.length&&a[y.length]===","&&(c=true);}else a.startsWith(e)&&(c=true);c&&(s.push({key:a,accessCount:u.accessCount,createdAt:u.createdAt}),o+=u.accessCount);}return {namespace:n,count:s.length,totalAccessCount:o,averageAccessCount:s.length?o/s.length:0,states:s}};Object.defineProperty(f,"size",{get:()=>p.size,enumerable:true});f.enableAutoCleanup=t=>{Object.assign(g,t,{enabled:true}),h&&clearInterval(h),h=setInterval(L,g.checkInterval);};f.disableAutoCleanup=()=>{g.enabled=false,h&&clearInterval(h);};Object.defineProperty(f,"isAutoCleanupEnabled",{get:()=>g.enabled,enumerable:true});function ce(t){return {current:t}}exports.a=te;exports.b=ne;exports.c=se;exports.d=K;exports.e=oe;exports.f=ae;exports.g=re;exports.h=f;exports.i=ce;//# sourceMappingURL=chunk-RSI6RYJ7.js.map
|
|
2
|
-
//# sourceMappingURL=chunk-RSI6RYJ7.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/state.ts"],"names":["STATE_SIGNAL","depMap","boxToKeyMap","targetBoxMap","getDep","target","key","initialValue","deps","dep","currentVal","SignalNode","hybridHandlers","prop","box","updateStateMetadata","isSignalLike","innerValue","val","args","result","createNestedProxy","newValue","success","desc","nestedHandlers","receiver","nestedProxyCache","proxy","proxyCache","createHybridProxy","currentComponent","setCurrentComponent","instance","createComponentInstance","resetHookIndex","globalStateRegistry","namespaceRegistry","stateMetadata","autoCleanupConfig","autoCleanupInterval","performAutoCleanup","DEV_WARNING_THRESHOLD","hasWarnedAboutSize","keyCache","serializeKey","cached","serialized","registerStateInNamespace","namespace","unregisterStateFromNamespace","set","signalRefTarget","now","existing","keysToRemove","metadata","state","isStateValue","value","getStateSignal","stateValue","equals","isTruthy","stateImplementation","initialValueOrFetcher","options","comp","hookIndex","saved","res","rawKey","params","entry","setter","refetch","statusProxy","errorProxy","originalFn","fn","testResult","actions","createResource","v","statusComp","ComputedNode","errorComp","node","sKey","meta","prefix","prefixStr","cleared","keysToDelete","raw","k","byNamespace","ns","keys","totalAccess","m","c","a","b","pStr","states","matched","ref","initial"],"mappings":"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","file":"chunk-RSI6RYJ7.js","sourcesContent":["import { SignalNode, ComputedNode, createResource } from './signal'\n\n\n\n/** Symbol to identify StateProxy and access underlying signal */\nexport const STATE_SIGNAL = Symbol.for('flexium.stateSignal')\n\n/**\n * ------------------------------------------------------------------\n * Hybrid Proxy Architecture: Support Types\n * ------------------------------------------------------------------\n */\n\n/**\n * A \"Box\" is any object with a `value` property.\n * It serves as the stable target for our Proxy.\n */\ninterface Box<T> {\n get(): T\n set?(value: T): void\n peek(): T\n}\n\n/**\n * Dependency Map: Stores signals for object properties.\n * Key: Target Object (The inner value, OR the Box itself)\n * Value: Map<PropertyKey, Signal>\n */\n// Need to allow getDep to access SignalNode methods\nconst depMap = new WeakMap<object, Map<string | symbol, SignalNode<unknown>>>()\nconst boxToKeyMap = new WeakMap<object, string>()\nconst targetBoxMap = new WeakMap<object, Box<any>>()\n\nfunction getDep(target: object, key: string | symbol, initialValue?: unknown): SignalNode<unknown> {\n let deps = depMap.get(target)\n if (!deps) {\n deps = new Map()\n depMap.set(target, deps)\n }\n let dep = deps.get(key)\n if (!dep) {\n const currentVal = initialValue !== undefined ? initialValue : Reflect.get(target, key)\n dep = new SignalNode(currentVal)\n deps.set(key, dep)\n }\n return dep\n}\n\n/**\n * ------------------------------------------------------------------\n * Hybrid Proxy Handler\n * ------------------------------------------------------------------\n */\nconst hybridHandlers: ProxyHandler<Box<any>> = {\n get(target, prop) {\n const box = targetBoxMap.get(target)!\n if (prop === STATE_SIGNAL) return box\n\n // Access Tracking\n const key = boxToKeyMap.get(box)\n if (key) updateStateMetadata(key)\n\n if (prop === 'peek') {\n return box.peek.bind(box)\n }\n\n // Reactivity for the Root Value\n // Reactivity for the Root Value\n const isSignalLike = typeof (box as any).peek === 'function' && typeof (box as any).get === 'function'\n let innerValue: any\n\n if (isSignalLike) {\n innerValue = box.get()\n } else {\n getDep(box, 'value') // Should not happen if box is always a Node\n innerValue = box.get()\n }\n\n if (prop === Symbol.toPrimitive || prop === 'valueOf') {\n return () => innerValue\n }\n\n if (prop === Symbol.iterator) {\n // Track iteration\n getDep(innerValue, 'length').get()\n getDep(innerValue, 'iterate').get()\n return (innerValue as any)[Symbol.iterator].bind(innerValue)\n }\n\n // Recursive Forwarding\n if (innerValue !== null && typeof innerValue === 'object') {\n const val = Reflect.get(innerValue, prop)\n\n if (typeof val === 'function') {\n // Special handling for Array mutation methods\n if (Array.isArray(innerValue) && ['push', 'pop', 'shift', 'unshift', 'splice', 'sort', 'reverse'].includes(prop as string)) {\n return function (...args: any[]) {\n const result = (val as Function).apply(innerValue, args)\n // If innerValue is the root value of the box:\n if (innerValue === box.get()) {\n const dep = getDep(box, 'value')\n dep.set(innerValue) // force notify even if value is same object\n }\n\n // Arrays are tricky. We usually subscribe to 'iterate' or 'length'.\n // Notify length\n getDep(innerValue, 'length').set(innerValue.length)\n\n // Also notify 'iterate' key which `ownKeys` uses?\n // Or just force notify 'value' if it's the root.\n if (innerValue === box.get()) {\n getDep(box, 'value').get()\n }\n\n return result\n }\n }\n if (Array.isArray(innerValue)) {\n // Fix for .concat(): Array.prototype.concat treats proxies as objects unless Symbol.isConcatSpreadable is handled,\n // OR we bind to the raw array so it doesn't see the proxy.\n // But binding to 'receiver' (the proxy) is usually correct for other methods.\n // However, for .concat, we likely want the raw array behavior or correct proxy handling.\n // Simple fix: bind to innerValue (raw array) for non-mutating methods too, \n // or at least for concat if it causes issues.\n // .map, .filter etc return new arrays, so binding to innerValue is fine.\n return (val as Function).bind(innerValue)\n }\n return (innerValue as any)[prop].bind(innerValue)\n }\n\n getDep(innerValue, prop, val).get()\n\n if (val !== null && typeof val === 'object') {\n return createNestedProxy(val)\n }\n return val\n }\n\n const val = (innerValue as any)[prop]\n return typeof val === 'function' ? val.bind(innerValue) : val\n },\n\n set(target, prop, newValue) {\n const box = targetBoxMap.get(target)!\n const innerValue = box.get()\n if (innerValue !== null && typeof innerValue === 'object') {\n const success = Reflect.set(innerValue, prop, newValue)\n getDep(innerValue, prop).set(newValue)\n return success\n }\n return false\n },\n\n has(target, prop) {\n const box = targetBoxMap.get(target)!\n if (prop === STATE_SIGNAL) return true\n const innerValue = box.get()\n if (innerValue === null) return false\n if (typeof innerValue === 'object') {\n return Reflect.has(innerValue, prop)\n }\n return false // primitives don't have own properties usually, but 'toFixed' is in proto\n },\n\n ownKeys(target) {\n const box = targetBoxMap.get(target)!\n const innerValue = box.get()\n\n if (innerValue === null || typeof innerValue !== 'object') {\n return Reflect.ownKeys(target)\n }\n\n // Arrays need special handling for iteration\n if (Array.isArray(innerValue)) {\n getDep(innerValue, 'length').get()\n getDep(innerValue, 'iterate').get()\n } else {\n // Objects \n getDep(innerValue, 'iterate').get()\n }\n\n return Reflect.ownKeys(innerValue)\n },\n\n getOwnPropertyDescriptor(target, prop) {\n const box = targetBoxMap.get(target)!\n if (prop === STATE_SIGNAL) {\n return { configurable: true, enumerable: false, value: box }\n }\n const innerValue = box.get()\n\n if (innerValue === null || typeof innerValue !== 'object') {\n return undefined\n }\n\n const desc = Reflect.getOwnPropertyDescriptor(innerValue, prop)\n if (desc) {\n desc.configurable = true\n }\n return desc\n }\n}\n\nconst nestedHandlers: ProxyHandler<object> = {\n get(target, prop, receiver) {\n if (prop === STATE_SIGNAL) return target\n const val = Reflect.get(target, prop, receiver)\n getDep(target, prop, val).get()\n if (val !== null && typeof val === 'object') {\n return createNestedProxy(val)\n }\n return val\n },\n set(target, prop, newValue, receiver) {\n const success = Reflect.set(target, prop, newValue, receiver)\n if (success) {\n getDep(target, prop).set(newValue)\n }\n return success\n },\n has(target, prop) {\n if (prop === STATE_SIGNAL) return true\n return Reflect.has(target, prop)\n }\n}\n\nconst nestedProxyCache = new WeakMap<object, any>()\n\nfunction createNestedProxy<T extends object>(target: T): T {\n let proxy = nestedProxyCache.get(target)\n if (!proxy) {\n proxy = new Proxy(target, nestedHandlers)\n nestedProxyCache.set(target, proxy)\n }\n return proxy\n}\n\n// Cache for Hybrid Proxies (keyed by Box/Signal)\nconst proxyCache = new WeakMap<object, any>()\n\nfunction createHybridProxy<T>(box: Box<T>): StateValue<T> {\n let proxy = proxyCache.get(box)\n if (proxy) return proxy\n\n // The target is a function so that the proxy is callable `state()`, returns value.\n const target = () => box.get()\n targetBoxMap.set(target, box)\n // Object.assign(target, box) // REMOVED: Do not copy properties, prevents stale values\n\n proxy = new Proxy(target as any, hybridHandlers) as StateValue<T>\n proxyCache.set(box, proxy)\n return proxy\n}\n\n/**\n * ------------------------------------------------------------------\n * Component Hook System\n * ------------------------------------------------------------------\n */\ninterface ComponentInstance {\n id: symbol\n hookIndex: number\n hooks: unknown[]\n}\n\nlet currentComponent: ComponentInstance | null = null\n\nexport function setCurrentComponent(instance: ComponentInstance | null): void {\n currentComponent = instance\n}\n\nexport function getCurrentComponent(): ComponentInstance | null {\n return currentComponent\n}\n\nexport function createComponentInstance(): ComponentInstance {\n return {\n id: Symbol('component'),\n hookIndex: 0,\n hooks: [],\n }\n}\n\nexport function resetHookIndex(instance: ComponentInstance): void {\n instance.hookIndex = 0\n}\n\n/**\n * ------------------------------------------------------------------\n * Global State Registry & Metadata\n * ------------------------------------------------------------------\n */\ninterface RegistryEntry {\n box: Box<any>\n proxy: StateValue<any>\n setter: StateAction<any> | undefined\n refetch?: () => void\n status?: StateValue<AsyncStatus>\n error?: StateValue<unknown>\n key?: string\n namespace?: string\n\n // Keep compatibility with old StateObject for metadata utils\n // We can just add metadata fields here or map them\n createdAt: number\n lastAccessed: number\n accessCount: number\n referenceCount: number\n}\n\nconst globalStateRegistry = new Map<string, RegistryEntry>()\nconst namespaceRegistry = new Map<string, Set<string>>()\n// We'll store metadata directly in RegistryEntry for simplicity in this refactor\n// OR keep existing `stateMetadata` map if we want to separate concerns.\n// Let's reuse `stateMetadata` approach for less friction with existing utils.\n\ninterface StateMetadata {\n key: string\n namespace?: string\n createdAt: number\n lastAccessed: number\n accessCount: number\n referenceCount: number\n signalRef?: WeakRef<any>\n}\nconst stateMetadata = new Map<string, StateMetadata>()\n\ninterface AutoCleanupConfig {\n enabled: boolean\n maxIdleTime: number\n checkInterval: number\n minAccessCount: number\n}\n\nlet autoCleanupConfig: AutoCleanupConfig = {\n enabled: true,\n maxIdleTime: 5 * 60 * 1000,\n checkInterval: 60 * 1000,\n minAccessCount: 0,\n}\n\nlet autoCleanupInterval: AnyInterval | null = null\ntype AnyInterval = ReturnType<typeof setInterval>\n\nif (typeof window !== 'undefined' || typeof globalThis !== 'undefined') {\n setTimeout(() => {\n if (autoCleanupConfig.enabled && !autoCleanupInterval) {\n autoCleanupInterval = setInterval(performAutoCleanup, autoCleanupConfig.checkInterval)\n }\n }, 0)\n}\n\nconst DEV_WARNING_THRESHOLD = 10000\nlet hasWarnedAboutSize = false\n\n/**\n * ------------------------------------------------------------------\n * Helper Functions\n * ------------------------------------------------------------------\n */\nexport type StateKey = string | readonly (string | number | boolean | null | undefined | object)[]\nconst keyCache = new WeakMap<readonly unknown[], string>()\n\nfunction serializeKey(key: StateKey): string {\n if (typeof key === 'string') return key\n const cached = keyCache.get(key)\n if (cached !== undefined) return cached\n try {\n const serialized = JSON.stringify(key)\n keyCache.set(key, serialized)\n return serialized\n } catch (error) {\n const fallback = String(key)\n return fallback\n }\n}\n\nfunction registerStateInNamespace(key: string, namespace?: string): void {\n if (!namespace) return\n if (!namespaceRegistry.has(namespace)) namespaceRegistry.set(namespace, new Set())\n namespaceRegistry.get(namespace)!.add(key)\n}\n\nfunction unregisterStateFromNamespace(key: string, namespace?: string): void {\n if (!namespace) return\n const set = namespaceRegistry.get(namespace)\n if (set) {\n set.delete(key)\n if (set.size === 0) namespaceRegistry.delete(namespace)\n }\n}\n\nfunction updateStateMetadata(key: string, namespace?: string, signalRefTarget?: any): void {\n const now = Date.now()\n const existing = stateMetadata.get(key)\n\n if (existing) {\n existing.lastAccessed = now\n existing.accessCount++\n existing.referenceCount++\n if (namespace && existing.namespace !== namespace) {\n if (existing.namespace) unregisterStateFromNamespace(key, existing.namespace)\n existing.namespace = namespace\n registerStateInNamespace(key, namespace)\n }\n } else {\n stateMetadata.set(key, {\n key,\n namespace,\n createdAt: now,\n lastAccessed: now,\n accessCount: 1,\n referenceCount: 1,\n signalRef: signalRefTarget && typeof WeakRef !== 'undefined' ? new WeakRef(signalRefTarget) : undefined\n })\n registerStateInNamespace(key, namespace)\n }\n}\n\nfunction performAutoCleanup(): void {\n if (!autoCleanupConfig.enabled) return\n const now = Date.now()\n const keysToRemove: string[] = []\n\n for (const [key, metadata] of stateMetadata.entries()) {\n if (metadata.signalRef && typeof WeakRef !== 'undefined') {\n const sig = metadata.signalRef.deref()\n if (!sig) {\n keysToRemove.push(key)\n continue\n }\n }\n const idleTime = now - metadata.lastAccessed\n if (idleTime > autoCleanupConfig.maxIdleTime && metadata.referenceCount === 0 && metadata.accessCount >= autoCleanupConfig.minAccessCount) {\n keysToRemove.push(key)\n }\n }\n\n for (const key of keysToRemove) {\n state.delete(key)\n }\n\n if (keysToRemove.length > 0 && typeof process !== 'undefined' && process.env?.NODE_ENV !== 'production') {\n console.log(`[Flexium] Auto-cleaned ${keysToRemove.length} idle states`)\n }\n}\n\n/**\n * ------------------------------------------------------------------\n * Main State API\n * ------------------------------------------------------------------\n */\nexport type StateAction<T> = (newValue: T | ((prev: T) => T)) => void\nexport type StateValue<T> = T & (() => T) & { peek(): T }\nexport type AsyncStatus = 'idle' | 'loading' | 'success' | 'error'\nexport interface StateOptions<P = unknown> {\n key?: StateKey\n params?: P\n}\n\nexport function isStateValue(value: unknown): boolean {\n // Hybrid proxies are functions\n return (typeof value === 'object' || typeof value === 'function') && value !== null && STATE_SIGNAL in value\n}\n\n// Helper to get the underlying signal from a StateValue\nexport function getStateSignal(stateValue: unknown): SignalNode<unknown> | ComputedNode<unknown> | null {\n if (isStateValue(stateValue)) return (stateValue as any)[STATE_SIGNAL]\n return null\n}\n\nexport function equals<T>(stateValue: StateValue<T>, value: T): boolean {\n if (!isStateValue(stateValue)) return false\n return stateValue.peek() === value\n}\n\nexport function isTruthy<T>(stateValue: StateValue<T>): boolean {\n if (!isStateValue(stateValue)) return false\n return Boolean(stateValue.peek())\n}\n\nexport interface StateStats {\n total: number\n byNamespace: Record<string, number>\n topNamespaces: Array<{ namespace: string; count: number }>\n averageAccessCount: number\n}\n\nexport interface NamespaceStats {\n namespace: string\n count: number\n totalAccessCount: number\n averageAccessCount: number\n states: Array<{ key: string; accessCount: number; createdAt: number }>\n}\n\ninterface StateFunction {\n <T>(initialValue: T, options?: StateOptions): [StateValue<T>, StateAction<T>]\n <T, P>(computeFn: (params: P) => T, options: StateOptions<P> & { params: P }): [StateValue<T>]\n <T>(computeFn: () => T, options?: StateOptions): [StateValue<T>]\n <T, P>(fetcher: (params: P) => Promise<T>, options: StateOptions<P> & { params: P }): [StateValue<T | undefined>, () => void, StateValue<AsyncStatus>, StateValue<unknown>]\n <T>(fetcher: () => Promise<T>, options?: StateOptions): [StateValue<T | undefined>, () => void, StateValue<AsyncStatus>, StateValue<unknown>]\n\n delete: (key: StateKey) => boolean\n clear: () => void\n clearByPrefix: (prefix: StateKey) => number\n has: (key: StateKey) => boolean\n readonly size: number\n getStats: () => StateStats\n getNamespaceStats: (prefix: StateKey) => NamespaceStats\n enableAutoCleanup: (config?: Partial<AutoCleanupConfig>) => void\n disableAutoCleanup: () => void\n readonly isAutoCleanupEnabled: boolean\n}\n\nfunction stateImplementation<T, P = unknown>(\n initialValueOrFetcher: T | ((params?: P) => T) | ((params?: P) => Promise<T>),\n options?: StateOptions<P>\n): any {\n // Hook System\n if (currentComponent && !options?.key) {\n const comp = currentComponent\n const hookIndex = comp.hookIndex++\n if (hookIndex < comp.hooks.length) return comp.hooks[hookIndex]\n const saved = currentComponent\n currentComponent = null\n const res = state(initialValueOrFetcher as any, options as any)\n currentComponent = saved\n comp.hooks.push(res)\n return res\n }\n\n // Key Serializing\n const rawKey = options?.key\n const key = rawKey ? serializeKey(rawKey) : undefined\n const namespace = Array.isArray(rawKey) && rawKey.length > 0 ? String(rawKey[0]) : undefined\n const params = options?.params\n\n // Check Registry\n if (key && globalStateRegistry.has(key)) {\n const entry = globalStateRegistry.get(key)!\n updateStateMetadata(key, namespace, entry.box)\n\n const result = [entry.proxy]\n if (entry.setter) result.push(entry.setter)\n if (entry.refetch) result.push(entry.refetch)\n if (entry.status) result.push(entry.status)\n if (entry.error) result.push(entry.error)\n\n return result\n }\n\n // Logic\n let box: Box<T>\n let setter: StateAction<T> | undefined\n let refetch: (() => void) | undefined\n let statusProxy: StateValue<AsyncStatus> | undefined\n let errorProxy: StateValue<unknown> | undefined\n\n if (typeof initialValueOrFetcher === 'function') {\n const originalFn = initialValueOrFetcher as Function\n const fn = params !== undefined ? () => originalFn(params) : originalFn\n\n let testResult: any\n try { testResult = fn() } catch (e) { /* treat as computed */ }\n\n const isAsync = originalFn.constructor.name === 'AsyncFunction' || testResult instanceof Promise\n\n if (isAsync) {\n // Resource\n const [res, actions] = createResource(fn as any, async (v) => v)\n // Resources in flexium/signal are still using the wrapper API for now (unless refactored too).\n // Assuming createResource still returns { value: ... } style object which we can wrap or adapt.\n // Wait, createResource returns [Resource<T>, actions]. \n // Resource<T> extends Signal<T>. It has .value.\n // But our Box expects .get()/.peek().\n // Adapter Box:\n const resBox: Box<any> = {\n get: () => res.value,\n peek: () => res.peek(),\n // Resources are read-only-ish via this box for the user, actions used for mutations\n }\n box = resBox\n refetch = actions.refetch\n\n // Status Computed\n const statusComp = new ComputedNode(() => res.loading ? 'loading' : res.error ? 'error' : res.state === 'unresolved' ? 'idle' : 'success')\n statusProxy = createHybridProxy(statusComp as any) as any\n\n // Error Computed\n const errorComp = new ComputedNode(() => res.error)\n errorProxy = createHybridProxy(errorComp as any) as any\n } else {\n // Computed\n box = new ComputedNode(fn as any) as any\n }\n } else {\n // Signal\n const node = new SignalNode(initialValueOrFetcher)\n box = node as any\n setter = (newValue: any) => {\n if (typeof newValue === 'function') {\n node.set(newValue(node.peek()))\n } else {\n node.set(newValue)\n }\n }\n }\n\n const proxy = createHybridProxy(box)\n\n const result: any[] = [proxy]\n if (setter) result.push(setter)\n if (refetch) {\n result.splice(1, 0, refetch) // [proxy, refetch, status, error]\n if (statusProxy) result.push(statusProxy)\n if (errorProxy) result.push(errorProxy)\n }\n\n // Register\n if (key) {\n globalStateRegistry.set(key, {\n box, proxy, setter, refetch, status: statusProxy, error: errorProxy,\n createdAt: Date.now(), lastAccessed: Date.now(), accessCount: 1, referenceCount: 1,\n key, namespace\n })\n\n // Map box to key for access tracking\n boxToKeyMap.set(box, key)\n\n updateStateMetadata(key, namespace, box)\n\n const isDev = typeof process !== 'undefined' && process.env?.NODE_ENV !== 'production'\n if (isDev && !hasWarnedAboutSize && globalStateRegistry.size >= DEV_WARNING_THRESHOLD) {\n hasWarnedAboutSize = true\n console.warn(`[Flexium] Registry size warning: ${globalStateRegistry.size}`)\n }\n }\n\n return result\n}\n\nconst state = stateImplementation as StateFunction\n\n// Static Methods\nstate.delete = function (key: StateKey): boolean {\n const sKey = serializeKey(key)\n const meta = stateMetadata.get(sKey)\n if (meta?.namespace) unregisterStateFromNamespace(sKey, meta.namespace)\n stateMetadata.delete(sKey)\n return globalStateRegistry.delete(sKey)\n}\n\nstate.clear = function (): void {\n globalStateRegistry.clear()\n namespaceRegistry.clear()\n stateMetadata.clear()\n hasWarnedAboutSize = false\n}\n\nstate.has = function (key: StateKey): boolean {\n return globalStateRegistry.has(serializeKey(key))\n}\n\nstate.clearByPrefix = function (prefix: StateKey): number {\n const prefixStr = serializeKey(prefix)\n let cleared = 0\n const keysToDelete: string[] = []\n\n for (const [key] of stateMetadata.entries()) {\n if (key === prefixStr) { keysToDelete.push(key); continue }\n if (prefixStr.endsWith(']')) {\n const raw = prefixStr.slice(0, -1)\n if (key.startsWith(raw) && key.length > raw.length && key[raw.length] === ',') keysToDelete.push(key)\n } else {\n if (key.startsWith(prefixStr)) keysToDelete.push(key)\n }\n }\n\n for (const k of keysToDelete) {\n if (state.delete(k)) cleared++\n }\n return cleared\n}\n\nstate.getStats = function (): StateStats {\n const byNamespace: Record<string, number> = {}\n for (const [ns, keys] of namespaceRegistry.entries()) byNamespace[ns] = keys.size\n\n let totalAccess = 0\n for (const m of stateMetadata.values()) totalAccess += m.accessCount\n\n return {\n total: globalStateRegistry.size,\n byNamespace,\n topNamespaces: Object.entries(byNamespace).map(([n, c]) => ({ namespace: n, count: c })).sort((a, b) => b.count - a.count).slice(0, 10),\n averageAccessCount: stateMetadata.size ? totalAccess / stateMetadata.size : 0\n }\n}\n\nstate.getNamespaceStats = function (prefix: StateKey): NamespaceStats {\n const pStr = serializeKey(prefix)\n const ns = Array.isArray(prefix) && prefix.length > 0 ? String(prefix[0]) : pStr\n const states: any[] = []\n let totalAccess = 0\n\n for (const [key, m] of stateMetadata.entries()) {\n let matched = false\n\n if (key === pStr) {\n matched = true\n } else if (pStr.endsWith(']')) {\n const raw = pStr.slice(0, -1)\n if (key.startsWith(raw) && key.length > raw.length && key[raw.length] === ',') {\n matched = true\n }\n } else {\n if (key.startsWith(pStr)) matched = true\n }\n\n if (matched) {\n states.push({ key, accessCount: m.accessCount, createdAt: m.createdAt })\n totalAccess += m.accessCount\n }\n }\n return {\n namespace: ns, count: states.length, totalAccessCount: totalAccess,\n averageAccessCount: states.length ? totalAccess / states.length : 0,\n states\n }\n}\n\nObject.defineProperty(state, 'size', { get: () => globalStateRegistry.size, enumerable: true })\nstate.enableAutoCleanup = (c) => { Object.assign(autoCleanupConfig, c, { enabled: true }); if (autoCleanupInterval) clearInterval(autoCleanupInterval); autoCleanupInterval = setInterval(performAutoCleanup, autoCleanupConfig.checkInterval) }\nstate.disableAutoCleanup = () => { autoCleanupConfig.enabled = false; if (autoCleanupInterval) clearInterval(autoCleanupInterval) }\nObject.defineProperty(state, 'isAutoCleanupEnabled', { get: () => autoCleanupConfig.enabled, enumerable: true })\n\nexport { state }\n\nexport interface RefObject<T> { current: T | null }\nexport function ref<T>(initial: T | null): RefObject<T> { return { current: initial } }\n"]}
|
package/dist/chunk-WOHSSPKD.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
'use strict';var chunk5236IK5I_js=require('./chunk-5236IK5I.js');function x(i){if(!i)return {};let n={};i.display&&(n.display=i.display),i.flex!==void 0&&(n.flex=i.flex),i.flexDirection&&(n.flexDirection=i.flexDirection),i.flexWrap&&(n.flexWrap=i.flexWrap),i.justifyContent&&(n.justifyContent=i.justifyContent),i.alignItems&&(n.alignItems=i.alignItems),i.alignSelf&&(n.alignSelf=i.alignSelf),i.gap!==void 0&&(n.gap=`${i.gap}px`),i.padding!==void 0&&(n.padding=`${i.padding}px`),i.paddingTop!==void 0&&(n.paddingTop=`${i.paddingTop}px`),i.paddingRight!==void 0&&(n.paddingRight=`${i.paddingRight}px`),i.paddingBottom!==void 0&&(n.paddingBottom=`${i.paddingBottom}px`),i.paddingLeft!==void 0&&(n.paddingLeft=`${i.paddingLeft}px`),i.paddingHorizontal!==void 0&&(n.paddingLeft=`${i.paddingHorizontal}px`,n.paddingRight=`${i.paddingHorizontal}px`),i.paddingVertical!==void 0&&(n.paddingTop=`${i.paddingVertical}px`,n.paddingBottom=`${i.paddingVertical}px`),i.margin!==void 0&&(n.margin=`${i.margin}px`),i.marginTop!==void 0&&(n.marginTop=`${i.marginTop}px`),i.marginRight!==void 0&&(n.marginRight=`${i.marginRight}px`),i.marginBottom!==void 0&&(n.marginBottom=`${i.marginBottom}px`),i.marginLeft!==void 0&&(n.marginLeft=`${i.marginLeft}px`),i.marginHorizontal!==void 0&&(n.marginLeft=`${i.marginHorizontal}px`,n.marginRight=`${i.marginHorizontal}px`),i.marginVertical!==void 0&&(n.marginTop=`${i.marginVertical}px`,n.marginBottom=`${i.marginVertical}px`),i.width!==void 0&&(n.width=typeof i.width=="number"?`${i.width}px`:i.width),i.height!==void 0&&(n.height=typeof i.height=="number"?`${i.height}px`:i.height),i.minWidth!==void 0&&(n.minWidth=`${i.minWidth}px`),i.maxWidth!==void 0&&(n.maxWidth=`${i.maxWidth}px`),i.minHeight!==void 0&&(n.minHeight=`${i.minHeight}px`),i.maxHeight!==void 0&&(n.maxHeight=`${i.maxHeight}px`),i.backgroundColor&&(n.backgroundColor=i.backgroundColor),i.borderRadius!==void 0&&(n.borderRadius=`${i.borderRadius}px`),i.borderTopLeftRadius!==void 0&&(n.borderTopLeftRadius=`${i.borderTopLeftRadius}px`),i.borderTopRightRadius!==void 0&&(n.borderTopRightRadius=`${i.borderTopRightRadius}px`),i.borderBottomLeftRadius!==void 0&&(n.borderBottomLeftRadius=`${i.borderBottomLeftRadius}px`),i.borderBottomRightRadius!==void 0&&(n.borderBottomRightRadius=`${i.borderBottomRightRadius}px`),i.opacity!==void 0&&(n.opacity=i.opacity),i.borderWidth!==void 0&&(n.borderWidth=`${i.borderWidth}px`),i.borderColor&&(n.borderColor=i.borderColor),i.borderTopWidth!==void 0&&(n.borderTopWidth=`${i.borderTopWidth}px`),i.borderRightWidth!==void 0&&(n.borderRightWidth=`${i.borderRightWidth}px`),i.borderBottomWidth!==void 0&&(n.borderBottomWidth=`${i.borderBottomWidth}px`),i.borderLeftWidth!==void 0&&(n.borderLeftWidth=`${i.borderLeftWidth}px`),i.position&&(n.position=i.position),i.top!==void 0&&(n.top=`${i.top}px`),i.right!==void 0&&(n.right=`${i.right}px`),i.bottom!==void 0&&(n.bottom=`${i.bottom}px`),i.left!==void 0&&(n.left=`${i.left}px`),i.zIndex!==void 0&&(n.zIndex=i.zIndex),i.transform&&(n.transform=i.transform);let o=i;return o.color&&(n.color=o.color),o.fontSize!==void 0&&(n.fontSize=`${o.fontSize}px`),o.fontWeight&&(n.fontWeight=o.fontWeight),o.fontFamily&&(n.fontFamily=o.fontFamily),o.fontStyle&&(n.fontStyle=o.fontStyle),o.textAlign&&(n.textAlign=o.textAlign),o.textDecoration&&(n.textDecoration=o.textDecoration),o.lineHeight!==void 0&&(n.lineHeight=`${o.lineHeight}px`),o.letterSpacing!==void 0&&(n.letterSpacing=`${o.letterSpacing}px`),n}function k(i){return chunk5236IK5I_js.f(i)}function e(i){return k(i)||i!==null&&typeof i=="object"&&"value"in i&&"peek"in i?i.value:i}function b(i,n,o,r){if(!n)return;let d=Array.isArray(n)?n:[n];for(let t of d)if(!(!t||!t.type))switch(t.type){case "canvas-rect":D(i,t.props);break;case "canvas-circle":W(i,t.props);break;case "canvas-path":C(i,t.props);break;case "canvas-text":S(i,t.props);break;case "canvas-line":v(i,t.props);break;case "canvas-arc":P(i,t.props);break}}function D(i,n){let o=e(n.x),r=e(n.y),d=e(n.width),t=e(n.height),a=e(n.fill),f=e(n.stroke),p=e(n.strokeWidth),g=e(n.opacity);i.save(),g!==void 0&&(i.globalAlpha=g),a&&(i.fillStyle=a,i.fillRect(o,r,d,t)),f&&(i.strokeStyle=f,i.lineWidth=p||1,i.strokeRect(o,r,d,t)),i.restore();}function W(i,n){let o=e(n.x),r=e(n.y),d=e(n.radius),t=e(n.fill),a=e(n.stroke),f=e(n.strokeWidth),p=e(n.opacity);i.save(),p!==void 0&&(i.globalAlpha=p),i.beginPath(),i.arc(o,r,d,0,2*Math.PI),t&&(i.fillStyle=t,i.fill()),a&&(i.strokeStyle=a,i.lineWidth=f||1,i.stroke()),i.restore();}function C(i,n){let o=e(n.d),r=e(n.fill),d=e(n.stroke),t=e(n.strokeWidth),a=e(n.opacity);i.save(),a!==void 0&&(i.globalAlpha=a);let f=new Path2D(o);r&&(i.fillStyle=r,i.fill(f)),d&&(i.strokeStyle=d,i.lineWidth=t||1,i.stroke(f)),i.restore();}function S(i,n){let o=e(n.x),r=e(n.y),d=e(n.text),t=e(n.fill),a=e(n.fontSize)||12,f=e(n.fontFamily)||"sans-serif",p=e(n.fontWeight)||"normal",g=e(n.textAlign)||"left",m=e(n.textBaseline)||"alphabetic";i.save(),i.font=`${p} ${a}px ${f}`,i.textAlign=g,i.textBaseline=m,t&&(i.fillStyle=t,i.fillText(d,o,r)),i.restore();}function v(i,n){let o=e(n.x1),r=e(n.y1),d=e(n.x2),t=e(n.y2),a=e(n.stroke)||"black",f=e(n.strokeWidth)||1,p=e(n.opacity);i.save(),p!==void 0&&(i.globalAlpha=p),i.beginPath(),i.moveTo(o,r),i.lineTo(d,t),i.strokeStyle=a,i.lineWidth=f,i.stroke(),i.restore();}function P(i,n){let o=e(n.x),r=e(n.y),d=e(n.radius),t=e(n.startAngle),a=e(n.endAngle),f=e(n.counterclockwise)||false,p=e(n.fill),g=e(n.stroke),m=e(n.strokeWidth),h=e(n.opacity);i.save(),h!==void 0&&(i.globalAlpha=h),i.beginPath(),i.arc(o,r,d,t,a,f),p&&(i.fillStyle=p,i.fill()),g&&(i.strokeStyle=g,i.lineWidth=m||1,i.stroke()),i.restore();}function N(i){let{width:n,height:o,children:r,style:d,id:t,...a}=i;return {type:"canvas",props:{...a,id:t,width:n,height:o,style:x(d),ref:f=>{if(!f||typeof requestAnimationFrame>"u")return;let p=f.getContext("2d");p&&Promise.all([import('./effect-K45UU3N4.js').then(g=>g.effect),import('./signal-2QUI7H7B.js').then(g=>({onCleanup:g.onCleanup,isSignal:g.isSignal}))]).then(([g,{onCleanup:m,isSignal:h}])=>{let c,R=()=>{c!==void 0&&cancelAnimationFrame(c),c=requestAnimationFrame(()=>{p.clearRect(0,0,n,o),b(p,r),c=void 0;});};g(()=>{let w=Array.isArray(r)?r:[r];for(let u of w)if(u&&u.props)for(let $ in u.props){let s=u.props[$];h(s)&&s.value;}R(),m(()=>{c!==void 0&&(cancelAnimationFrame(c),c=void 0);});});}).catch(g=>{console.error("[Flexium Canvas] Failed to load signal module:",g);});}},children:[]}}function I(i){return {type:"canvas-rect",props:i,children:[]}}function j(i){return {type:"canvas-circle",props:i,children:[]}}function M(i){return {type:"canvas-arc",props:i,children:[]}}function E(i){return {type:"canvas-line",props:i,children:[]}}function J(i){return {type:"canvas-path",props:i,children:[]}}function O(i){return {type:"canvas-text",props:i,children:[]}}exports.a=x;exports.b=e;exports.c=b;exports.d=N;exports.e=I;exports.f=j;exports.g=M;exports.h=E;exports.i=J;exports.j=O;//# sourceMappingURL=chunk-WOHSSPKD.js.map
|
|
2
|
-
//# sourceMappingURL=chunk-WOHSSPKD.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/primitives/utils.ts","../src/primitives/canvas/utils.ts","../src/primitives/canvas/renderer.ts","../src/primitives/canvas/Canvas.ts","../src/primitives/canvas/DrawRect.ts","../src/primitives/canvas/DrawCircle.ts","../src/primitives/canvas/DrawArc.ts","../src/primitives/canvas/DrawLine.ts","../src/primitives/canvas/DrawPath.ts","../src/primitives/canvas/DrawText.ts"],"names":["normalizeStyle","style","css","textStyle","isSignal","value","unwrapSignal","renderCanvasChildren","ctx","children","_width","_height","childArray","child","renderRect","renderCircle","renderPath","renderText","renderLine","renderArc","props","x","y","width","height","fill","stroke","strokeWidth","opacity","radius","d","path","text","fontSize","fontFamily","fontWeight","textAlign","textBaseline","x1","y1","x2","y2","startAngle","endAngle","counterclockwise","Canvas","id","rest","canvas","m","effect","onCleanup","rafId","scheduleRender","key","err","DrawRect","DrawCircle","DrawArc","DrawLine","DrawPath","DrawText"],"mappings":"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","file":"chunk-WOHSSPKD.js","sourcesContent":["/**\n * Primitive utilities\n */\n\nimport type { CommonStyle, TextStyle } from './types'\n\n/**\n * Normalize CommonStyle to CSS properties\n */\nexport function normalizeStyle(\n style?: CommonStyle | TextStyle\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): Record<string, any> {\n if (!style) return {}\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const css: Record<string, any> = {}\n\n // Layout\n if (style.display) css.display = style.display\n if (style.flex !== undefined) css.flex = style.flex\n if (style.flexDirection) css.flexDirection = style.flexDirection\n if (style.flexWrap) css.flexWrap = style.flexWrap\n if (style.justifyContent) css.justifyContent = style.justifyContent\n if (style.alignItems) css.alignItems = style.alignItems\n if (style.alignSelf) css.alignSelf = style.alignSelf\n if (style.gap !== undefined) css.gap = `${style.gap}px`\n\n // Spacing - padding\n if (style.padding !== undefined) css.padding = `${style.padding}px`\n if (style.paddingTop !== undefined) css.paddingTop = `${style.paddingTop}px`\n if (style.paddingRight !== undefined)\n css.paddingRight = `${style.paddingRight}px`\n if (style.paddingBottom !== undefined)\n css.paddingBottom = `${style.paddingBottom}px`\n if (style.paddingLeft !== undefined)\n css.paddingLeft = `${style.paddingLeft}px`\n if (style.paddingHorizontal !== undefined) {\n css.paddingLeft = `${style.paddingHorizontal}px`\n css.paddingRight = `${style.paddingHorizontal}px`\n }\n if (style.paddingVertical !== undefined) {\n css.paddingTop = `${style.paddingVertical}px`\n css.paddingBottom = `${style.paddingVertical}px`\n }\n\n // Spacing - margin\n if (style.margin !== undefined) css.margin = `${style.margin}px`\n if (style.marginTop !== undefined) css.marginTop = `${style.marginTop}px`\n if (style.marginRight !== undefined)\n css.marginRight = `${style.marginRight}px`\n if (style.marginBottom !== undefined)\n css.marginBottom = `${style.marginBottom}px`\n if (style.marginLeft !== undefined) css.marginLeft = `${style.marginLeft}px`\n if (style.marginHorizontal !== undefined) {\n css.marginLeft = `${style.marginHorizontal}px`\n css.marginRight = `${style.marginHorizontal}px`\n }\n if (style.marginVertical !== undefined) {\n css.marginTop = `${style.marginVertical}px`\n css.marginBottom = `${style.marginVertical}px`\n }\n\n // Sizing\n if (style.width !== undefined)\n css.width =\n typeof style.width === 'number' ? `${style.width}px` : style.width\n if (style.height !== undefined)\n css.height =\n typeof style.height === 'number' ? `${style.height}px` : style.height\n if (style.minWidth !== undefined) css.minWidth = `${style.minWidth}px`\n if (style.maxWidth !== undefined) css.maxWidth = `${style.maxWidth}px`\n if (style.minHeight !== undefined) css.minHeight = `${style.minHeight}px`\n if (style.maxHeight !== undefined) css.maxHeight = `${style.maxHeight}px`\n\n // Visual\n if (style.backgroundColor) css.backgroundColor = style.backgroundColor\n if (style.borderRadius !== undefined)\n css.borderRadius = `${style.borderRadius}px`\n if (style.borderTopLeftRadius !== undefined)\n css.borderTopLeftRadius = `${style.borderTopLeftRadius}px`\n if (style.borderTopRightRadius !== undefined)\n css.borderTopRightRadius = `${style.borderTopRightRadius}px`\n if (style.borderBottomLeftRadius !== undefined)\n css.borderBottomLeftRadius = `${style.borderBottomLeftRadius}px`\n if (style.borderBottomRightRadius !== undefined)\n css.borderBottomRightRadius = `${style.borderBottomRightRadius}px`\n if (style.opacity !== undefined) css.opacity = style.opacity\n\n // Border\n if (style.borderWidth !== undefined)\n css.borderWidth = `${style.borderWidth}px`\n if (style.borderColor) css.borderColor = style.borderColor\n if (style.borderTopWidth !== undefined)\n css.borderTopWidth = `${style.borderTopWidth}px`\n if (style.borderRightWidth !== undefined)\n css.borderRightWidth = `${style.borderRightWidth}px`\n if (style.borderBottomWidth !== undefined)\n css.borderBottomWidth = `${style.borderBottomWidth}px`\n if (style.borderLeftWidth !== undefined)\n css.borderLeftWidth = `${style.borderLeftWidth}px`\n\n // Position\n if (style.position) css.position = style.position\n if (style.top !== undefined) css.top = `${style.top}px`\n if (style.right !== undefined) css.right = `${style.right}px`\n if (style.bottom !== undefined) css.bottom = `${style.bottom}px`\n if (style.left !== undefined) css.left = `${style.left}px`\n if (style.zIndex !== undefined) css.zIndex = style.zIndex\n\n // Transform\n if (style.transform) css.transform = style.transform\n\n // Text-specific (if TextStyle)\n const textStyle = style as TextStyle\n if (textStyle.color) css.color = textStyle.color\n if (textStyle.fontSize !== undefined) css.fontSize = `${textStyle.fontSize}px`\n if (textStyle.fontWeight) css.fontWeight = textStyle.fontWeight\n if (textStyle.fontFamily) css.fontFamily = textStyle.fontFamily\n if (textStyle.fontStyle) css.fontStyle = textStyle.fontStyle\n if (textStyle.textAlign) css.textAlign = textStyle.textAlign\n if (textStyle.textDecoration) css.textDecoration = textStyle.textDecoration\n if (textStyle.lineHeight !== undefined)\n css.lineHeight = `${textStyle.lineHeight}px`\n if (textStyle.letterSpacing !== undefined)\n css.letterSpacing = `${textStyle.letterSpacing}px`\n\n return css\n}\n","/**\n * Canvas utilities\n */\n\nimport { isSignal as coreIsSignal } from '../../core/signal'\nimport type { Signal } from '../../core/signal'\n\n/**\n * Check if a value is a Signal\n */\nexport function isSignal<T>(value: T | Signal<T>): value is Signal<T> {\n // Use core isSignal which checks for SIGNAL_MARKER symbol\n // Signals are functions with properties, not plain objects\n return coreIsSignal(value)\n}\n\n/**\n * Unwrap a value that might be a Signal\n */\nexport function unwrapSignal<T>(value: T | Signal<T>): T {\n // Check for real signals first (have SIGNAL_MARKER)\n if (isSignal(value)) {\n return value.value\n }\n // Handle signal-like objects (for testing) - duck typing\n // Check if it's an object with a 'value' property\n if (\n value !== null &&\n typeof value === 'object' &&\n 'value' in value &&\n 'peek' in value\n ) {\n return (value as any).value\n }\n return value\n}\n","/**\n * Canvas renderer - renders canvas primitives to canvas context\n */\n\nimport type {\n DrawRectProps,\n DrawCircleProps,\n DrawPathProps,\n DrawTextProps,\n DrawLineProps,\n DrawArcProps,\n} from '../types'\nimport { unwrapSignal } from './utils'\n\n/**\n * Render canvas children to context\n */\nexport function renderCanvasChildren(\n ctx: CanvasRenderingContext2D,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n children: any,\n _width: number,\n _height: number\n): void {\n if (!children) return\n\n const childArray = Array.isArray(children) ? children : [children]\n\n for (const child of childArray) {\n if (!child || !child.type) continue\n\n switch (child.type) {\n case 'canvas-rect':\n renderRect(ctx, child.props)\n break\n case 'canvas-circle':\n renderCircle(ctx, child.props)\n break\n case 'canvas-path':\n renderPath(ctx, child.props)\n break\n case 'canvas-text':\n renderText(ctx, child.props)\n break\n case 'canvas-line':\n renderLine(ctx, child.props)\n break\n case 'canvas-arc':\n renderArc(ctx, child.props)\n break\n }\n }\n}\n\n/**\n * Render rectangle\n */\nfunction renderRect(ctx: CanvasRenderingContext2D, props: DrawRectProps): void {\n const x = unwrapSignal(props.x)\n const y = unwrapSignal(props.y)\n const width = unwrapSignal(props.width)\n const height = unwrapSignal(props.height)\n const fill = unwrapSignal(props.fill)\n const stroke = unwrapSignal(props.stroke)\n const strokeWidth = unwrapSignal(props.strokeWidth)\n const opacity = unwrapSignal(props.opacity)\n\n ctx.save()\n\n if (opacity !== undefined) {\n ctx.globalAlpha = opacity\n }\n\n if (fill) {\n ctx.fillStyle = fill\n ctx.fillRect(x, y, width, height)\n }\n\n if (stroke) {\n ctx.strokeStyle = stroke\n ctx.lineWidth = strokeWidth || 1\n ctx.strokeRect(x, y, width, height)\n }\n\n ctx.restore()\n}\n\n/**\n * Render circle\n */\nfunction renderCircle(\n ctx: CanvasRenderingContext2D,\n props: DrawCircleProps\n): void {\n const x = unwrapSignal(props.x)\n const y = unwrapSignal(props.y)\n const radius = unwrapSignal(props.radius)\n const fill = unwrapSignal(props.fill)\n const stroke = unwrapSignal(props.stroke)\n const strokeWidth = unwrapSignal(props.strokeWidth)\n const opacity = unwrapSignal(props.opacity)\n\n ctx.save()\n\n if (opacity !== undefined) {\n ctx.globalAlpha = opacity\n }\n\n ctx.beginPath()\n ctx.arc(x, y, radius, 0, 2 * Math.PI)\n\n if (fill) {\n ctx.fillStyle = fill\n ctx.fill()\n }\n\n if (stroke) {\n ctx.strokeStyle = stroke\n ctx.lineWidth = strokeWidth || 1\n ctx.stroke()\n }\n\n ctx.restore()\n}\n\n/**\n * Render path\n */\nfunction renderPath(ctx: CanvasRenderingContext2D, props: DrawPathProps): void {\n const d = unwrapSignal(props.d)\n const fill = unwrapSignal(props.fill)\n const stroke = unwrapSignal(props.stroke)\n const strokeWidth = unwrapSignal(props.strokeWidth)\n const opacity = unwrapSignal(props.opacity)\n\n ctx.save()\n\n if (opacity !== undefined) {\n ctx.globalAlpha = opacity\n }\n\n // Parse SVG path (simplified - only supports basic commands)\n const path = new Path2D(d)\n\n if (fill) {\n ctx.fillStyle = fill\n ctx.fill(path)\n }\n\n if (stroke) {\n ctx.strokeStyle = stroke\n ctx.lineWidth = strokeWidth || 1\n ctx.stroke(path)\n }\n\n ctx.restore()\n}\n\n/**\n * Render text\n */\nfunction renderText(ctx: CanvasRenderingContext2D, props: DrawTextProps): void {\n const x = unwrapSignal(props.x)\n const y = unwrapSignal(props.y)\n const text = unwrapSignal(props.text)\n const fill = unwrapSignal(props.fill)\n const fontSize = unwrapSignal(props.fontSize) || 12\n const fontFamily = unwrapSignal(props.fontFamily) || 'sans-serif'\n const fontWeight = unwrapSignal(props.fontWeight) || 'normal'\n const textAlign = unwrapSignal(props.textAlign) || 'left'\n const textBaseline = unwrapSignal(props.textBaseline) || 'alphabetic'\n\n ctx.save()\n\n ctx.font = `${fontWeight} ${fontSize}px ${fontFamily}`\n ctx.textAlign = textAlign\n ctx.textBaseline = textBaseline\n\n if (fill) {\n ctx.fillStyle = fill\n ctx.fillText(text, x, y)\n }\n\n ctx.restore()\n}\n\n/**\n * Render line\n */\nfunction renderLine(ctx: CanvasRenderingContext2D, props: DrawLineProps): void {\n const x1 = unwrapSignal(props.x1)\n const y1 = unwrapSignal(props.y1)\n const x2 = unwrapSignal(props.x2)\n const y2 = unwrapSignal(props.y2)\n const stroke = unwrapSignal(props.stroke) || 'black'\n const strokeWidth = unwrapSignal(props.strokeWidth) || 1\n const opacity = unwrapSignal(props.opacity)\n\n ctx.save()\n\n if (opacity !== undefined) {\n ctx.globalAlpha = opacity\n }\n\n ctx.beginPath()\n ctx.moveTo(x1, y1)\n ctx.lineTo(x2, y2)\n\n ctx.strokeStyle = stroke\n ctx.lineWidth = strokeWidth\n ctx.stroke()\n\n ctx.restore()\n}\n\n/**\n * Render arc\n */\nfunction renderArc(ctx: CanvasRenderingContext2D, props: DrawArcProps): void {\n const x = unwrapSignal(props.x)\n const y = unwrapSignal(props.y)\n const radius = unwrapSignal(props.radius)\n const startAngle = unwrapSignal(props.startAngle)\n const endAngle = unwrapSignal(props.endAngle)\n const counterclockwise = unwrapSignal(props.counterclockwise) || false\n const fill = unwrapSignal(props.fill)\n const stroke = unwrapSignal(props.stroke)\n const strokeWidth = unwrapSignal(props.strokeWidth)\n const opacity = unwrapSignal(props.opacity)\n\n ctx.save()\n\n if (opacity !== undefined) {\n ctx.globalAlpha = opacity\n }\n\n ctx.beginPath()\n ctx.arc(x, y, radius, startAngle, endAngle, counterclockwise)\n\n if (fill) {\n ctx.fillStyle = fill\n ctx.fill()\n }\n\n if (stroke) {\n ctx.strokeStyle = stroke\n ctx.lineWidth = strokeWidth || 1\n ctx.stroke()\n }\n\n ctx.restore()\n}\n","/**\n * Canvas - Declarative canvas container with JSX drawing\n *\n * Supports Signal-based reactive rendering\n *\n * @example\n * ```tsx\n * const x = signal(50)\n *\n * <Canvas width={300} height={200}>\n * <Rect x={x} y={50} width={100} height={50} fill=\"blue\" />\n * <Circle x={150} y={100} radius={30} fill=\"red\" />\n * </Canvas>\n * ```\n */\n\nimport type { FNode } from '../../types'\nimport type { CanvasProps } from '../types'\nimport { normalizeStyle } from '../utils'\nimport { renderCanvasChildren } from './renderer'\n\nexport function Canvas(props: CanvasProps): FNode {\n const { width, height, children, style, id, ...rest } = props\n\n return {\n type: 'canvas',\n props: {\n ...rest,\n id,\n width,\n height,\n style: normalizeStyle(style),\n // Attach canvas renderer when element is mounted\n ref: (canvas: HTMLCanvasElement | null) => {\n if (!canvas) return\n\n // SSR guard: skip canvas rendering on server\n if (typeof requestAnimationFrame === 'undefined') return\n\n const ctx = canvas.getContext('2d')\n if (!ctx) return\n\n // Check if effect is available before trying to import\n // Import effect and onCleanup dynamically to avoid circular deps\n Promise.all([\n import('../../core/effect').then(m => m.effect),\n import('../../core/signal').then(m => ({ onCleanup: m.onCleanup, isSignal: m.isSignal }))\n ])\n .then(([effect, { onCleanup, isSignal }]) => {\n let rafId: number | undefined\n\n const scheduleRender = () => {\n if (rafId !== undefined) {\n cancelAnimationFrame(rafId)\n }\n\n rafId = requestAnimationFrame(() => {\n // Clear canvas\n ctx.clearRect(0, 0, width, height)\n\n // Render all children\n renderCanvasChildren(ctx, children, width, height)\n\n rafId = undefined\n })\n }\n\n effect(() => {\n // To track signal dependencies, we need to access them in the effect\n // Walk through children and touch any signals to track dependencies\n const childArray = Array.isArray(children) ? children : [children]\n for (const child of childArray) {\n if (child && child.props) {\n // Touch each prop to track signal dependencies\n for (const key in child.props) {\n const value = child.props[key]\n // If it's a signal, access its value to track it\n if (isSignal(value)) {\n void value.value // Touch the signal to track dependency\n }\n }\n }\n }\n\n // Now schedule the actual render\n scheduleRender()\n\n // Cleanup RAF when effect is disposed\n onCleanup(() => {\n if (rafId !== undefined) {\n cancelAnimationFrame(rafId)\n rafId = undefined\n }\n })\n })\n })\n .catch((err) => {\n console.error('[Flexium Canvas] Failed to load signal module:', err)\n })\n },\n },\n children: [],\n }\n}\n","/**\n * DrawRect - Canvas rectangle primitive\n *\n * @example\n * ```tsx\n * <DrawRect x={10} y={10} width={100} height={50} fill=\"blue\" />\n * ```\n */\n\nimport type { FNode } from '../../types'\nimport type { DrawRectProps } from '../types'\n\nexport function DrawRect(props: DrawRectProps): FNode {\n return {\n type: 'canvas-rect',\n props,\n children: [],\n }\n}\n","/**\n * DrawCircle - Canvas circle primitive\n *\n * @example\n * ```tsx\n * <DrawCircle x={100} y={100} radius={50} fill=\"red\" />\n * ```\n */\n\nimport type { FNode } from '../../types'\nimport type { DrawCircleProps } from '../types'\n\nexport function DrawCircle(props: DrawCircleProps): FNode {\n return {\n type: 'canvas-circle',\n props,\n children: [],\n }\n}\n","/**\n * DrawArc - Canvas arc primitive\n *\n * @example\n * ```tsx\n * <DrawArc x={100} y={100} radius={50} startAngle={0} endAngle={Math.PI} fill=\"green\" />\n * ```\n */\n\nimport type { FNode } from '../../types'\nimport type { DrawArcProps } from '../types'\n\nexport function DrawArc(props: DrawArcProps): FNode {\n return {\n type: 'canvas-arc',\n props,\n children: [],\n }\n}\n","/**\n * DrawLine - Canvas line primitive\n *\n * @example\n * ```tsx\n * <DrawLine x1={10} y1={10} x2={100} y2={100} stroke=\"black\" strokeWidth={2} />\n * ```\n */\n\nimport type { FNode } from '../../types'\nimport type { DrawLineProps } from '../types'\n\nexport function DrawLine(props: DrawLineProps): FNode {\n return {\n type: 'canvas-line',\n props,\n children: [],\n }\n}\n","/**\n * DrawPath - Canvas path primitive\n *\n * @example\n * ```tsx\n * <DrawPath d=\"M 10 10 L 100 100\" stroke=\"black\" strokeWidth={2} />\n * ```\n */\n\nimport type { FNode } from '../../types'\nimport type { DrawPathProps } from '../types'\n\nexport function DrawPath(props: DrawPathProps): FNode {\n return {\n type: 'canvas-path',\n props,\n children: [],\n }\n}\n","/**\n * DrawText - Canvas text primitive\n *\n * @example\n * ```tsx\n * <DrawText x={50} y={50} text=\"Hello Canvas\" fontSize={20} fill=\"black\" />\n * ```\n */\n\nimport type { FNode } from '../../types'\nimport type { DrawTextProps } from '../types'\n\nexport function DrawText(props: DrawTextProps): FNode {\n return {\n type: 'canvas-text',\n props,\n children: [],\n }\n}\n"]}
|
package/dist/chunk-XKPRCSXK.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
'use strict';var chunkWXEHDEIH_js=require('./chunk-WXEHDEIH.js'),chunkRSI6RYJ7_js=require('./chunk-RSI6RYJ7.js'),chunkQ7IWDVJ4_js=require('./chunk-Q7IWDVJ4.js'),chunk5236IK5I_js=require('./chunk-5236IK5I.js'),chunkAJT35P3Z_js=require('./chunk-AJT35P3Z.js');var Ne=new Set,xe=new Set(["focus","blur","mouseenter","mouseleave","load","unload","scroll"]),X=new WeakMap;function we(e){let t=e.type.toLowerCase(),n=!xe.has(t),o=e.composedPath?.()||[],r=e.target;if(o.length===0&&r)for(;r;)o.push(r),r=r.parentNode;for(let i of o){let s=i;if(s===document||!s)break;let p=X.get(s);if(p?.has(t)){let l=p.get(t);if(l){try{l(e);}catch(d){chunkAJT35P3Z_js.b(chunkAJT35P3Z_js.a.EVENT_HANDLER_FAILED,{eventType:t},d);}if(e.cancelBubble)return}}if(!n)break}}function Re(e){if(!(typeof document>"u")&&!Ne.has(e)){let t=xe.has(e);document.addEventListener(e,we,{capture:t}),Ne.add(e);}}var re={on(e,t,n){let o=t.toLowerCase(),r=X.get(e);r||(r=new Map,X.set(e,r)),r.set(o,n),Re(o);},off(e,t){let n=t.toLowerCase(),o=X.get(e);o&&o.delete(n);}};var Z={width:{cssProp:"width",transform:"px"},height:{cssProp:"height",transform:"px"},flexDirection:{cssProp:"flexDirection",transform:"none"},justifyContent:{cssProp:"justifyContent",transform:"none"},alignItems:{cssProp:"alignItems",transform:"none"},alignSelf:{cssProp:"alignSelf",transform:"none"},flexWrap:{cssProp:"flexWrap",transform:"none"},flex:{cssProp:"flex",transform:"string"},gap:{cssProp:"gap",transform:"px"},justify:{cssProp:"justifyContent",transform:"none"},align:{cssProp:"alignItems",transform:"none"},bg:{cssProp:"backgroundColor",transform:"none"},color:{cssProp:"color",transform:"none"},borderRadius:{cssProp:"borderRadius",transform:"px"},borderWidth:{cssProp:"borderWidth",transform:"px",sideEffect:(e,t)=>{t!==void 0&&e.borderStyle!=="solid"&&(e.borderStyle="solid");}},borderColor:{cssProp:"borderColor",transform:"none"},opacity:{cssProp:"opacity",transform:"string"},fontSize:{cssProp:"fontSize",transform:"px"},fontWeight:{cssProp:"fontWeight",transform:"string"},fontFamily:{cssProp:"fontFamily",transform:"none"},lineHeight:{cssProp:"lineHeight",transform:"string"},textAlign:{cssProp:"textAlign",transform:"none"},padding:{cssProp:"padding",transform:"px"},paddingTop:{cssProp:"paddingTop",transform:"px"},paddingRight:{cssProp:"paddingRight",transform:"px"},paddingBottom:{cssProp:"paddingBottom",transform:"px"},paddingLeft:{cssProp:"paddingLeft",transform:"px"},margin:{cssProp:"margin",transform:"px"},marginTop:{cssProp:"marginTop",transform:"px"},marginRight:{cssProp:"marginRight",transform:"px"},marginBottom:{cssProp:"marginBottom",transform:"px"},marginLeft:{cssProp:"marginLeft",transform:"px"}},Ce={Row:"div",Column:"div",Stack:"div",Text:"span",Button:"button",Input:"input",Container:"div"},q={onPress:"click",onHover:"mouseenter",onChange:"input",onFocus:"focus",onBlur:"blur"},be=new Set(["children","key","ref","className","style","width","height","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","margin","marginTop","marginRight","marginBottom","marginLeft","gap","flex","flexDirection","flexWrap","justifyContent","alignItems","alignSelf","align","justify","bg","color","borderRadius","borderWidth","borderColor","opacity","fontSize","fontWeight","fontFamily","lineHeight","textAlign"]),_e="http://www.w3.org/2000/svg",Fe=new Set(["svg","path","circle","rect","line","polyline","polygon","ellipse","g","text","tspan","defs","use","symbol","marker","linearGradient","radialGradient","stop","clipPath","pattern","mask","filter"]),Me={viewBox:"viewBox",preserveAspectRatio:"preserveAspectRatio",strokeWidth:"stroke-width",strokeLinecap:"stroke-linecap",strokeLinejoin:"stroke-linejoin",strokeDasharray:"stroke-dasharray",strokeDashoffset:"stroke-dashoffset",fillOpacity:"fill-opacity",strokeOpacity:"stroke-opacity",stopColor:"stop-color",stopOpacity:"stop-opacity",clipPath:"clip-path",markerEnd:"marker-end",markerStart:"marker-start",markerMid:"marker-mid"};function Pe(e){return typeof e=="number"?`${e}px`:e}var ve=new Map;function Se(e){let t=ve.get(e);return t===void 0&&(t=e.replace(/[A-Z]/g,n=>`-${n.toLowerCase()}`),ve.set(e,t)),t}function De(e){return e.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}function Ie(e,t){if(e!=null)switch(t){case "px":return Pe(e);case "string":return String(e);case "none":default:return e}}function He(e,t,n){let o=e.style,r=t.style,i=n.style;if(r!==i){if(r&&typeof r=="object")for(let d in r)(!i||!(d in i))&&o.setProperty(Se(d),"");if(i&&typeof i=="object")for(let d in i){let f=i[d];(!r||r[d]!==f)&&o.setProperty(Se(d),f);}}let s=e.getAttribute("data-flexium-type");(n.flexDirection||n.justifyContent||n.alignItems||n.flexWrap||n.gap!==void 0||n.justify||n.align||s==="Row"||s==="Column"||s==="Stack")&&(o.display!=="flex"&&(o.display="flex"),s==="Row"&&o.flexDirection!=="row"&&(o.flexDirection="row"),s==="Column"&&o.flexDirection!=="column"&&(o.flexDirection="column"));let l=o;for(let d in t)if(d in Z&&!(d in n)){let f=Z[d],m=f.cssProp,a=l[m];a!==void 0&&a!==""&&(l[m]=""),f.sideEffect&&f.sideEffect(o,void 0);}for(let d in n)if(d in Z){let f=t[d],m=n[d];if(f===m)continue;let a=Z[d],c=Ie(m,a.transform),u=a.cssProp,N=l[u];c===void 0?N!==void 0&&N!==""&&(l[u]=""):N!==c&&(l[u]=c),a.sideEffect&&a.sideEffect(o,c);}}function Ee(e){if(typeof e=="string")return e;if(Array.isArray(e)){let t="";for(let n=0;n<e.length;n++){let o=e[n];if(!o)continue;let r=typeof o=="string"?o:Ee(o);r&&(t=t?`${t} ${r}`:r);}return t}if(typeof e=="object"&&e!==null){let t="";for(let n in e)e[n]&&(t=t?`${t} ${n}`:n);return t}return ""}var ie=class{createNode(t,n){let o=Ce[t]??t,r;return Fe.has(o)?r=document.createElementNS(_e,o):r=document.createElement(o),Ce[t]&&r.setAttribute("data-flexium-type",t),this.updateNode(r,{},n),r}updateNode(t,n,o){if(o.className!==n.className){let i=Ee(o.className);t instanceof SVGElement?t.setAttribute("class",i):t.className=i;}He(t,n,o);for(let i in n)if(!(i in o)){if(typeof i=="symbol")continue;if(i.startsWith("on")){let s=q[i]||i.slice(2).toLowerCase();this.removeEventListener(t,s,n[i]);}else be.has(i)||t.removeAttribute(i);}let r=Reflect.ownKeys(o);for(let i of r){if(typeof i=="symbol")continue;let s=i,p=o[s],l=n[s];if(p!==l){if(s.startsWith("on")){let d=q[s]||s.slice(2).toLowerCase();l&&this.removeEventListener(t,d,l),p&&this.addEventListener(t,d,p);}else if(!be.has(s))if(p==null||p===false)t.removeAttribute(s);else if(p===true)t.setAttribute(s,"");else {let d=Me[s]||s;t.setAttribute(d,De(String(p)));}}}}appendChild(t,n){t.appendChild(n);}insertBefore(t,n,o){t.insertBefore(n,o);}nextSibling(t){return t.nextSibling}removeChild(t,n){t.removeChild(n);}createTextNode(t){return document.createTextNode(t)}updateTextNode(t,n){t.textContent=n;}addEventListener(t,n,o){let r=q[n]||n;re.on(t,r,o);}removeEventListener(t,n,o){let r=q[n]||n;re.off(t,r);}},C=new ie;var se=Symbol("flexium.list");function de(e){return e!==null&&typeof e=="object"&&se in e&&e[se]===true}function Oe(e,t){return typeof e=="number"?e:e.mode==="fixed"?e.itemHeight:e.estimatedItemHeight}function Be(e,t,n,o,r){let i=o*n;if(o===0)return {startIndex:0,endIndex:-1,totalHeight:0};let s=Math.floor(e/n),p=Math.ceil(t/n),l=s+p;return {startIndex:Math.max(0,s-r),endIndex:Math.min(o-1,l+r),totalHeight:i}}function ce(e,t,n,o){return e.virtual?$e(e,t,n,o):Ve(e,t,n,o)}function Ve(e,t,n,o){let{each:r,renderItem:i,getKey:s,class:p,style:l}=e,d=document.createElement("div");d.setAttribute("role","list"),p&&(d.className=p),l&&Object.entries(l).forEach(([c,u])=>{d.style[c]=typeof u=="number"?`${u}px`:u;}),t.appendChild(d);let f=new Map,m=(c,u)=>s?s(c,u):u,a=chunkAJT35P3Z_js.k(()=>{let c=r()||[],u=new Set;c.forEach((N,h)=>{let x=m(N,h);if(u.add(x),!f.has(x)){let L=new chunk5236IK5I_js.d(h),y=i(N,()=>L.get()),g=n(y);g&&g instanceof HTMLElement&&(g.setAttribute("role","listitem"),d.appendChild(g),f.set(x,{node:g,dispose:()=>{try{o(g);}catch{}}}));}});for(let[N,h]of f)u.has(N)||(h.dispose(),h.node.parentNode===d&&d.removeChild(h.node),f.delete(N));});return ()=>{a();for(let c of f.values())c.dispose();f.clear(),d.parentNode===t&&t.removeChild(d);}}function $e(e,t,n,o){let{each:r,renderItem:i,height:s,width:p,itemSize:l,overscan:d,getKey:f,onScroll:m,onVisibleRangeChange:a}=e;if(!s||!l)return console.warn("List: height and itemSize are required when virtual is true"),()=>{};let c=document.createElement("div");c.style.height=typeof s=="number"?`${s}px`:s,c.style.width=p?typeof p=="number"?`${p}px`:p:"100%",c.style.overflow="auto",c.style.position="relative",c.setAttribute("role","list"),c.setAttribute("tabindex","0");let u=document.createElement("div");u.style.position="relative",u.style.width="100%";let N=new chunk5236IK5I_js.d(0),h=new Map,x=-1,L=-1,y=()=>{N.set(c.scrollTop),m?.(c.scrollTop);};c.addEventListener("scroll",y,{passive:true});let g=(w,M)=>f?f(w,M):M,E=chunkAJT35P3Z_js.k(()=>{let w=r()||[],M=N.get(),j=c.clientHeight||parseFloat(String(s)),P=Oe(l),{startIndex:K,endIndex:z,totalHeight:ke}=Be(M,j,P,w.length,d);u.style.height=`${ke}px`,c.setAttribute("aria-rowcount",String(w.length)),(K!==x||z!==L)&&(a?.(K,z),x=K,L=z);let fe=new Set;for(let v=K;v<=z&&v<w.length;v++){let R=w[v],O=g(R,v);fe.add(O);let I=h.get(O),te=h.get(O)?.state;if(te?te.set(R):te=new chunk5236IK5I_js.d(R),I){I.indexSig.peek()!==v&&I.indexSig.set(v);let B=I.node;B.style.transform=`translateY(${v*P}px)`,B.setAttribute("aria-rowindex",String(v+1));}else {let B=new chunk5236IK5I_js.d(v),Ae=i(R,()=>B.get()),T=n(Ae);T&&T instanceof HTMLElement&&(T.style.position="absolute",T.style.top="0",T.style.left="0",T.style.right="0",T.style.transform=`translateY(${v*P}px)`,T.style.height=`${P}px`,T.style.boxSizing="border-box",T.setAttribute("role","listitem"),T.setAttribute("aria-rowindex",String(v+1)),u.appendChild(T),I={item:R,key:O,node:T,indexSig:B,dispose:()=>{try{o(T);}catch{}}},h.set(O,I));}}for(let[v,R]of h)fe.has(v)||(R.dispose(),R.node.parentNode===u&&u.removeChild(R.node),h.delete(v));});return ()=>{E(),c.removeEventListener("scroll",y);for(let w of h.values())w.dispose();h.clear(),c.parentNode===t&&t.removeChild(c);}}var Te=new WeakMap;function A(e){return Te.get(e)}function D(e,t){Te.set(e,t);}var G;(s=>{let e=[],t=[];function o(){if(e.length>0){let p=e.pop();return p.clear(),p}return new Map}s.getMap=o;function r(){if(t.length>0){let p=t.pop();return p.clear(),p}return new Set}s.getSet=r;function i(p,l){e.length<10&&e.push(p),t.length<10&&t.push(l);}s.release=i;})(G||(G={}));function Y(e,t,n,o){let r=t&&t.length>0,i=n&&n.length>0;if(!r&&!i)return;if(!i){for(let a of t){let c=a&&A(a);c&&(S(c),C.removeChild(e,c));}return}if(!r){let a=document.createDocumentFragment();for(let c of n){let u=b(c,void 0);u&&(D(c,u),a.appendChild(u));}o?e.insertBefore(a,o):e.appendChild(a);return}let s=t.length,p=n.length,l=5;if(s<=l&&p<=l){let a=0,c=0,u=e.firstChild;for(;a<s||c<p;){if(c>=p){for(;a<s;){let y=t[a++],g=y&&A(y);g&&(S(g),C.removeChild(e,g));}break}if(a>=s){let y=document.createDocumentFragment();for(;c<p;){let g=n[c++],E=b(g,void 0);E&&(D(g,E),y.appendChild(E));}o?e.insertBefore(y,o):e.appendChild(y);break}let N=t[a],h=n[c],x=N.key??`__idx_${a}_${N.type}`,L=h.key??`__idx_${c}_${h.type}`;if(x===L&&N.type===h.type)le(N,h),u=u?.nextSibling||null,a++,c++;else {let y=false;for(let g=a+1;g<s;g++){let E=t[g];if((E.key??`__idx_${g}_${E.type}`)===L&&E.type===h.type){for(let M=a;M<g;M++){let j=t[M],P=j&&A(j);P&&(S(P),C.removeChild(e,P));}le(E,h),a=g+1,c++,y=true;break}}if(!y){let g=b(h,void 0);g&&(D(h,g),e.insertBefore(g,u)),c++;}}}return}let d=G.getMap(),f=G.getSet();for(let a=0;a<s;a++){let c=t[a],u=c.key??`__idx_${a}_${c.type}`;d.set(u,c);}let m=e.firstChild;for(let a=0;a<n.length;a++){let c=n[a],u=c.key??`__idx_${a}_${c.type}`;f.add(u);let N=d.get(u),h=m;if(!N||N.type!==c.type){let x=b(c,void 0);x&&(D(c,x),e.insertBefore(x,h));}else {le(N,c);let x=A(c);x&&(m!==x?e.insertBefore(x,h):m=m?.nextSibling||null);}}for(let[a,c]of d){let u=A(c);!f.has(a)&&u&&(S(u),u.parentNode===e&&C.removeChild(e,u));}G.release(d,f);}function le(e,t){let n=A(e);if(!n||(D(t,n),typeof t.type!="string"))return;C.updateNode(n,e.props,t.props);let o=e.children||[],r=t.children||[];if(!(o.length===0&&r.length===0)){if(r.length===1&&(typeof r[0]=="string"||typeof r[0]=="number")&&n.firstChild?.nodeType===Node.TEXT_NODE&&n.childNodes.length===1){let i=String(r[0]);String(o[0])!==i&&C.updateTextNode(n.firstChild,i);return}Y(n,o,r,null);}}var W=new WeakMap,J=new Set,ae=false;function ee(e){J.add(e),ae||(ae=true,requestAnimationFrame(()=>{Ge();}));}function Ge(){if(ae=false,J.size===0)return;let e=Array.from(J);J.clear();for(let t=0;t<e.length;t++)e[t]();}function H(e,t){let n=W.get(e);n||(n=new Set,W.set(e,n)),n.add(t);}function b(e,t){if(e==null||typeof e=="boolean")return null;if(de(e)){let n=t||document.createDocumentFragment(),o=ce(e,n,i=>b(i),S),r=document.createTextNode("");return H(r,o),t?n.firstChild:n}if(chunkRSI6RYJ7_js.d(e)){let n=chunkRSI6RYJ7_js.e(e);if(n){let o=document.createTextNode(""),r=t||document.createDocumentFragment();C.appendChild(r,o);let i=o,s=chunkAJT35P3Z_js.k(()=>{let p=n.get(),l=o.parentNode;if(l)if((typeof p=="string"||typeof p=="number")&&i&&i.nodeType===Node.TEXT_NODE&&i!==o){let d=i,f=String(p);ee(()=>{C.updateTextNode(d,f);});}else {let d=b(p);if(d)if(i&&i!==o)if(i.parentNode===l)if(i.nodeType===Node.TEXT_NODE&&d.nodeType===Node.TEXT_NODE){let f=i,m=d.textContent||"";ee(()=>{C.updateTextNode(f,m);});}else l.replaceChild(d,i),i=d;else l.insertBefore(d,o.nextSibling),i=d;else l.insertBefore(d,o.nextSibling),i=d;else {if(i&&i!==o&&i.parentNode===l)try{l.removeChild(i);}catch(f){chunkAJT35P3Z_js.b(chunkAJT35P3Z_js.a.DOM_CLEANUP_FAILED,{operation:"removeChild"},f);}i=o;}}});return H(o,s),t?o:r}}if(chunk5236IK5I_js.f(e)||typeof e=="function"){let n=document.createTextNode(""),o=t||document.createDocumentFragment();C.appendChild(o,n);let r=[],i=null,s=[],p=chunkAJT35P3Z_js.k(()=>{let l=chunk5236IK5I_js.f(e)?e.get():e(),d=n.parentNode;if(d){if(Array.isArray(l)){let f=l.filter(m=>m!=null);if(s.length>0){let m=n.nextSibling;Y(d,s,f,m);}else {for(let a of r)if(S(a),a.parentNode===d)try{d.removeChild(a);}catch(c){chunkAJT35P3Z_js.b(chunkAJT35P3Z_js.a.DOM_CLEANUP_FAILED,{operation:"removeChild"},c);}r=[];let m=document.createDocumentFragment();for(let a of f){let c=b(a,m);c&&typeof a=="object"&&D(a,c);}r=Array.from(m.childNodes),d.insertBefore(m,n.nextSibling);}s=f,i=l;return}if(s.length>0){for(let f of s){let m=A(f);if(m&&m.parentNode===d){S(m);try{d.removeChild(m);}catch(a){chunkAJT35P3Z_js.b(chunkAJT35P3Z_js.a.DOM_CLEANUP_FAILED,{operation:"removeChild"},a);}}}s=[];}if(l!==i){for(let f of r)if(S(f),f.parentNode===d)try{d.removeChild(f);}catch(m){chunkAJT35P3Z_js.b(chunkAJT35P3Z_js.a.DOM_CLEANUP_FAILED,{operation:"removeChild"},m);}if(r=[],typeof l=="string"||typeof l=="number"){let f=C.createTextNode(String(l));d.insertBefore(f,n.nextSibling),r=[f];}else {let f=b(l);f&&(f.nodeType===Node.DOCUMENT_FRAGMENT_NODE?(r=Array.from(f.childNodes),d.insertBefore(f,n.nextSibling)):(d.insertBefore(f,n.nextSibling),r=[f]));}i=l;}}});return H(n,p),t?n:o}if(Array.isArray(e)){let n=document.createDocumentFragment();for(let o of e)b(o,n);return t&&C.appendChild(t,n),n}if(typeof e=="string"||typeof e=="number"){let n=C.createTextNode(String(e));return t&&C.appendChild(t,n),n}if(chunkQ7IWDVJ4_js.c(e)){if(typeof e.type=="function"){let i=e.type,s=document.createTextNode(""),p=t||document.createDocumentFragment();C.appendChild(p,s);let l=[],d=[],f=chunkRSI6RYJ7_js.b(),m=chunkAJT35P3Z_js.k(()=>{chunkRSI6RYJ7_js.c(f),chunkAJT35P3Z_js.i(a=>{chunk5236IK5I_js.g(a);let c=i._contextId;c&&chunkWXEHDEIH_js.c(c,e.props.value);let u;try{chunkRSI6RYJ7_js.a(f);let y=e.children!==void 0?{...e.props,children:e.children}:e.props;u=i(y);}finally{chunkRSI6RYJ7_js.a(null);}if(Array.isArray(u)&&u.every(y=>chunkQ7IWDVJ4_js.c(y)&&y.type!=="fragment")){let y=s.parentNode;if(y){let g=u;Y(y,d,g,s.nextSibling),d=g,l=g.map(E=>A(E)).filter(E=>E!=null);return}}let x=s.parentNode;if(x){for(let y of l)if(S(y),y.parentNode===x)try{x.removeChild(y);}catch(g){chunkAJT35P3Z_js.b(chunkAJT35P3Z_js.a.DOM_CLEANUP_FAILED,{operation:"removeChild"},g);}}l=[],d=[];let L=document.createDocumentFragment();b(u,L),x&&(l=Array.from(L.childNodes),x.insertBefore(L,s.nextSibling));});});return H(s,m),t?s:p}if(e.type==="fragment"){let i=document.createDocumentFragment();for(let s of e.children)b(s,i);return t&&C.appendChild(t,i),i}let n=C.createNode(e.type,e.props),o=We(n,e.props);o.length>0&&W.set(n,new Set(o));for(let i of e.children)b(i,n);t&&C.appendChild(t,n);let r=e.props.ref;return r&&(typeof r=="function"?(r(n),H(n,()=>{r(null);})):typeof r=="object"&&"current"in r&&(r.current=n,H(n,()=>{r.current=null;}))),n}return null}var Q=Symbol("uninitialized");function We(e,t){let n=[],o=[];for(let r in t){if(r.startsWith("on"))continue;let i=t[r];(chunk5236IK5I_js.f(i)||typeof i=="function")&&o.push([r,i]);}for(let[r,i]of o)if(chunk5236IK5I_js.f(i)){let s=Q,p=chunkAJT35P3Z_js.k(()=>{let l=i.get();if(l!==s){let d=s===Q?void 0:s;ee(()=>{C.updateNode(e,{[r]:d},{[r]:l});}),s=l;}});n.push(p);}else {let s=Q,p=chunkAJT35P3Z_js.k(()=>{try{let l=i();if(l!==s){let d=s===Q?void 0:s;ee(()=>{C.updateNode(e,{[r]:d},{[r]:l});}),s=l;}}catch(l){chunkAJT35P3Z_js.b(chunkAJT35P3Z_js.a.DOM_CLEANUP_FAILED,{operation:"updateNode",prop:r},l);}});n.push(p);}return n}function S(e){let t=W.get(e);if(t&&(t.forEach(n=>n()),W.delete(e)),e.childNodes&&e.childNodes.length>0){let n=Array.from(e.childNodes);for(let o of n)S(o);}}function Le(e){let t=null,n=null,o=null;return {render(r){let i=o===r;!i&&n&&(S(n),e.childNodes.length===1?e.removeChild(n):e.innerHTML="",n=null),t&&(t(),t=null),t=chunkAJT35P3Z_js.k(()=>{!i&&e.firstChild&&(e.childNodes.length===1?e.removeChild(e.firstChild):e.innerHTML=""),n=b(r,e),o=r;});},unmount(){t&&(t(),t=null),S(e),e.childNodes.length===1?e.removeChild(e.firstChild):e.innerHTML="",n=null,o=null;}}}function xt(e,t){return t.innerHTML="",b(e,t)}function Ct(e){return Le(e)}function Et(e){if(typeof document>"u")return null;let t=e.mount||document.body,n=document.createComment("portal"),o=null;return o=b(e.children,t),chunk5236IK5I_js.g(()=>{o&&(S(o),o.parentNode===t&&t.removeChild(o));}),n}
|
|
2
|
-
exports.a=ie;exports.b=C;exports.c=se;exports.d=de;exports.e=b;exports.f=Le;exports.g=xt;exports.h=Ct;exports.i=Et;//# sourceMappingURL=chunk-XKPRCSXK.js.map
|
|
3
|
-
//# sourceMappingURL=chunk-XKPRCSXK.js.map
|