@zenithbuild/core 1.3.13 → 1.3.17
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/bin/zenith.js +1 -1
- package/cli/commands/build.ts +1 -1
- package/cli/commands/dev.ts +11 -7
- package/dist/bin/zen-build.d.ts +2 -0
- package/dist/bin/zen-build.d.ts.map +1 -0
- package/dist/bin/zen-build.js +3 -0
- package/dist/bin/zen-build.js.map +1 -0
- package/dist/bin/zen-dev.d.ts +2 -0
- package/dist/bin/zen-dev.d.ts.map +1 -0
- package/dist/bin/zen-dev.js +3 -0
- package/dist/bin/zen-dev.js.map +1 -0
- package/dist/bin/zen-preview.d.ts +2 -0
- package/dist/bin/zen-preview.d.ts.map +1 -0
- package/dist/bin/zen-preview.js +3 -0
- package/dist/bin/zen-preview.js.map +1 -0
- package/dist/bin/zenith.d.ts +2 -0
- package/dist/bin/zenith.d.ts.map +1 -0
- package/dist/bin/zenith.js +3 -0
- package/dist/bin/zenith.js.map +1 -0
- package/dist/cli/commands/add.d.ts +10 -0
- package/dist/cli/commands/add.d.ts.map +1 -0
- package/dist/cli/commands/add.js +27 -0
- package/dist/cli/commands/add.js.map +1 -0
- package/dist/cli/commands/build.d.ts +10 -0
- package/dist/cli/commands/build.d.ts.map +1 -0
- package/dist/cli/commands/build.js +29 -0
- package/dist/cli/commands/build.js.map +1 -0
- package/dist/cli/commands/create.d.ts +11 -0
- package/dist/cli/commands/create.d.ts.map +1 -0
- package/dist/cli/commands/create.js +625 -0
- package/dist/cli/commands/create.js.map +1 -0
- package/dist/cli/commands/dev.d.ts +24 -0
- package/dist/cli/commands/dev.d.ts.map +1 -0
- package/dist/cli/commands/dev.js +402 -0
- package/dist/cli/commands/dev.js.map +1 -0
- package/dist/cli/commands/index.d.ts +16 -0
- package/dist/cli/commands/index.d.ts.map +1 -0
- package/dist/cli/commands/index.js +101 -0
- package/dist/cli/commands/index.js.map +1 -0
- package/dist/cli/commands/preview.d.ts +10 -0
- package/dist/cli/commands/preview.d.ts.map +1 -0
- package/dist/cli/commands/preview.js +49 -0
- package/dist/cli/commands/preview.js.map +1 -0
- package/dist/cli/commands/remove.d.ts +7 -0
- package/dist/cli/commands/remove.d.ts.map +1 -0
- package/dist/cli/commands/remove.js +27 -0
- package/dist/cli/commands/remove.js.map +1 -0
- package/dist/cli/main.d.ts +11 -0
- package/dist/cli/main.d.ts.map +1 -0
- package/dist/cli/main.js +88 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/cli/utils/branding.d.ts +51 -0
- package/dist/cli/utils/branding.d.ts.map +1 -0
- package/dist/cli/utils/branding.js +147 -0
- package/dist/cli/utils/branding.js.map +1 -0
- package/dist/cli/utils/logger.d.ts +15 -0
- package/dist/cli/utils/logger.d.ts.map +1 -0
- package/dist/cli/utils/logger.js +40 -0
- package/dist/cli/utils/logger.js.map +1 -0
- package/dist/cli/utils/plugin-manager.d.ts +34 -0
- package/dist/cli/utils/plugin-manager.d.ts.map +1 -0
- package/dist/cli/utils/plugin-manager.js +89 -0
- package/dist/cli/utils/plugin-manager.js.map +1 -0
- package/dist/cli/utils/project.d.ts +24 -0
- package/dist/cli/utils/project.d.ts.map +1 -0
- package/dist/cli/utils/project.js +62 -0
- package/dist/cli/utils/project.js.map +1 -0
- package/dist/core/components/index.d.ts +10 -0
- package/dist/core/components/index.d.ts.map +1 -0
- package/dist/core/components/index.js +14 -0
- package/dist/core/components/index.js.map +1 -0
- package/dist/core/config.d.ts +2 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +2 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/index.d.ts +63 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +78 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/lifecycle/index.d.ts +17 -0
- package/dist/core/lifecycle/index.d.ts.map +1 -0
- package/dist/core/lifecycle/index.js +20 -0
- package/dist/core/lifecycle/index.js.map +1 -0
- package/dist/core/lifecycle/zen-mount.d.ts +67 -0
- package/dist/core/lifecycle/zen-mount.d.ts.map +1 -0
- package/dist/core/lifecycle/zen-mount.js +152 -0
- package/dist/core/lifecycle/zen-mount.js.map +1 -0
- package/dist/core/lifecycle/zen-unmount.d.ts +55 -0
- package/dist/core/lifecycle/zen-unmount.d.ts.map +1 -0
- package/dist/core/lifecycle/zen-unmount.js +77 -0
- package/dist/core/lifecycle/zen-unmount.js.map +1 -0
- package/dist/core/reactivity/index.d.ts +31 -0
- package/dist/core/reactivity/index.d.ts.map +1 -0
- package/dist/core/reactivity/index.js +34 -0
- package/dist/core/reactivity/index.js.map +1 -0
- package/dist/core/reactivity/tracking.d.ts +75 -0
- package/dist/core/reactivity/tracking.d.ts.map +1 -0
- package/dist/core/reactivity/tracking.js +137 -0
- package/dist/core/reactivity/tracking.js.map +1 -0
- package/dist/core/reactivity/zen-batch.d.ts +46 -0
- package/dist/core/reactivity/zen-batch.d.ts.map +1 -0
- package/dist/core/reactivity/zen-batch.js +55 -0
- package/dist/core/reactivity/zen-batch.js.map +1 -0
- package/dist/core/reactivity/zen-effect.d.ts +49 -0
- package/dist/core/reactivity/zen-effect.d.ts.map +1 -0
- package/dist/core/reactivity/zen-effect.js +99 -0
- package/dist/core/reactivity/zen-effect.js.map +1 -0
- package/dist/core/reactivity/zen-memo.d.ts +44 -0
- package/dist/core/reactivity/zen-memo.d.ts.map +1 -0
- package/dist/core/reactivity/zen-memo.js +101 -0
- package/dist/core/reactivity/zen-memo.js.map +1 -0
- package/dist/core/reactivity/zen-ref.d.ts +45 -0
- package/dist/core/reactivity/zen-ref.d.ts.map +1 -0
- package/dist/core/reactivity/zen-ref.js +35 -0
- package/dist/core/reactivity/zen-ref.js.map +1 -0
- package/dist/core/reactivity/zen-signal.d.ts +49 -0
- package/dist/core/reactivity/zen-signal.d.ts.map +1 -0
- package/dist/core/reactivity/zen-signal.js +85 -0
- package/dist/core/reactivity/zen-signal.js.map +1 -0
- package/dist/core/reactivity/zen-state.d.ts +36 -0
- package/dist/core/reactivity/zen-state.d.ts.map +1 -0
- package/dist/core/reactivity/zen-state.js +148 -0
- package/dist/core/reactivity/zen-state.js.map +1 -0
- package/dist/core/reactivity/zen-untrack.d.ts +39 -0
- package/dist/core/reactivity/zen-untrack.d.ts.map +1 -0
- package/dist/core/reactivity/zen-untrack.js +42 -0
- package/dist/core/reactivity/zen-untrack.js.map +1 -0
- package/package.json +17 -14
- package/tsconfig.json +24 -26
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zenithbuild/cli - Project Utility
|
|
3
|
+
*
|
|
4
|
+
* Detects Zenith project root and configuration
|
|
5
|
+
*/
|
|
6
|
+
import fs from 'fs';
|
|
7
|
+
import path from 'path';
|
|
8
|
+
/**
|
|
9
|
+
* Find the project root by looking for package.json with @zenith dependencies
|
|
10
|
+
*/
|
|
11
|
+
export function findProjectRoot(startDir = process.cwd()) {
|
|
12
|
+
let current = startDir;
|
|
13
|
+
while (current !== path.dirname(current)) {
|
|
14
|
+
const pkgPath = path.join(current, 'package.json');
|
|
15
|
+
if (fs.existsSync(pkgPath)) {
|
|
16
|
+
try {
|
|
17
|
+
const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
|
|
18
|
+
const deps = { ...pkg.dependencies, ...pkg.devDependencies };
|
|
19
|
+
// Check for any @zenithbuild/* or @zenithbuild/* dependency
|
|
20
|
+
const hasZenith = Object.keys(deps).some(d => d.startsWith('@zenithbuild/') || d.startsWith('@zenithbuild/'));
|
|
21
|
+
if (hasZenith) {
|
|
22
|
+
return current;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
// Invalid JSON, skip
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
current = path.dirname(current);
|
|
30
|
+
}
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Get project configuration
|
|
35
|
+
*/
|
|
36
|
+
export function getProject(cwd = process.cwd()) {
|
|
37
|
+
const root = findProjectRoot(cwd);
|
|
38
|
+
if (!root)
|
|
39
|
+
return null;
|
|
40
|
+
// Support both app/ and src/ directory structures
|
|
41
|
+
let appDir = path.join(root, 'app');
|
|
42
|
+
if (!fs.existsSync(appDir)) {
|
|
43
|
+
appDir = path.join(root, 'src');
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
root,
|
|
47
|
+
pagesDir: path.join(appDir, 'pages'),
|
|
48
|
+
distDir: path.join(appDir, 'dist'),
|
|
49
|
+
hasZenithDeps: true
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Ensure we're in a Zenith project
|
|
54
|
+
*/
|
|
55
|
+
export function requireProject(cwd = process.cwd()) {
|
|
56
|
+
const project = getProject(cwd);
|
|
57
|
+
if (!project) {
|
|
58
|
+
throw new Error('Not in a Zenith project. Run this command from a directory with @zenithbuild/* dependencies.');
|
|
59
|
+
}
|
|
60
|
+
return project;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../../cli/utils/project.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,IAAI,MAAM,MAAM,CAAA;AASvB;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,WAAmB,OAAO,CAAC,GAAG,EAAE;IAC5D,IAAI,OAAO,GAAG,QAAQ,CAAA;IAEtB,OAAO,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;QAElD,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC;gBACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;gBACzD,MAAM,IAAI,GAAG,EAAE,GAAG,GAAG,CAAC,YAAY,EAAE,GAAG,GAAG,CAAC,eAAe,EAAE,CAAA;gBAE5D,4DAA4D;gBAC5D,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAA;gBAC7G,IAAI,SAAS,EAAE,CAAC;oBACZ,OAAO,OAAO,CAAA;gBAClB,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACL,qBAAqB;YACzB,CAAC;QACL,CAAC;QAED,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACnC,CAAC;IAED,OAAO,IAAI,CAAA;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IAClD,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,CAAA;IACjC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAA;IAEtB,kDAAkD;IAClD,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACnC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACnC,CAAC;IAED,OAAO;QACH,IAAI;QACJ,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;QACpC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;QAClC,aAAa,EAAE,IAAI;KACtB,CAAA;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IACtD,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAA;IAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,8FAA8F,CAAC,CAAA;IACnH,CAAC;IACD,OAAO,OAAO,CAAA;AAClB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core Components
|
|
3
|
+
*
|
|
4
|
+
* Reusable components provided by zenith-core.
|
|
5
|
+
*/
|
|
6
|
+
export declare const CORE_COMPONENTS: {
|
|
7
|
+
readonly ErrorPage: "@zenithbuild/core/components/ErrorPage.zen";
|
|
8
|
+
};
|
|
9
|
+
export declare function getCoreComponentPath(componentName: keyof typeof CORE_COMPONENTS): string;
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../core/components/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,eAAO,MAAM,eAAe;;CAElB,CAAC;AAGX,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM,OAAO,eAAe,GAAG,MAAM,CAExF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core Components
|
|
3
|
+
*
|
|
4
|
+
* Reusable components provided by zenith-core.
|
|
5
|
+
*/
|
|
6
|
+
// Export path constants for component resolution
|
|
7
|
+
export const CORE_COMPONENTS = {
|
|
8
|
+
ErrorPage: '@zenithbuild/core/components/ErrorPage.zen'
|
|
9
|
+
};
|
|
10
|
+
// Component path resolver
|
|
11
|
+
export function getCoreComponentPath(componentName) {
|
|
12
|
+
return CORE_COMPONENTS[componentName];
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../core/components/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,iDAAiD;AACjD,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,SAAS,EAAE,4CAA4C;CACjD,CAAC;AAEX,0BAA0B;AAC1B,MAAM,UAAU,oBAAoB,CAAC,aAA2C;IAC5E,OAAO,eAAe,CAAC,aAAa,CAAC,CAAC;AAC1C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../core/config.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../core/config.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zenith Core Runtime
|
|
3
|
+
*
|
|
4
|
+
* This is the foundational layer of the Zenith framework, providing:
|
|
5
|
+
* - Reactive primitives (signals, state, effects, memos)
|
|
6
|
+
* - Lifecycle hooks (onMount, onUnmount)
|
|
7
|
+
*
|
|
8
|
+
* Design principles:
|
|
9
|
+
* - Auto-tracked reactivity (no dependency arrays)
|
|
10
|
+
* - No VDOM or render loops
|
|
11
|
+
* - Runtime-agnostic (works in browser, SSR, tests)
|
|
12
|
+
* - Hybrid naming: internal `zen*` + public clean names
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* // Using clean names (recommended for application code)
|
|
17
|
+
* import { signal, effect, onMount } from 'zenith/core'
|
|
18
|
+
*
|
|
19
|
+
* const count = signal(0)
|
|
20
|
+
*
|
|
21
|
+
* effect(() => {
|
|
22
|
+
* console.log('Count:', count())
|
|
23
|
+
* })
|
|
24
|
+
*
|
|
25
|
+
* onMount(() => {
|
|
26
|
+
* console.log('Mounted!')
|
|
27
|
+
* })
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```ts
|
|
32
|
+
* // Using explicit zen* names (for library/internal code)
|
|
33
|
+
* import { zenSignal, zenEffect, zenOnMount } from 'zenith/core'
|
|
34
|
+
*
|
|
35
|
+
* const count = zenSignal(0)
|
|
36
|
+
* zenEffect(() => console.log(count()))
|
|
37
|
+
* zenOnMount(() => console.log('Ready'))
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```ts
|
|
42
|
+
* // For navigation, import from router
|
|
43
|
+
* import { navigate, isActive } from 'zenith/router'
|
|
44
|
+
*
|
|
45
|
+
* navigate('/about')
|
|
46
|
+
* if (isActive('/blog')) {
|
|
47
|
+
* // Handle active state
|
|
48
|
+
* }
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export { signal as zenSignal, state as zenState, effect as zenEffect, memo as zenMemo, ref as zenRef, batch as zenBatch, untrack as zenUntrack } from '@zenithbuild/runtime';
|
|
52
|
+
export type { Signal, Memo, Ref, EffectFn, DisposeFn, Subscriber, TrackingContext } from '@zenithbuild/runtime';
|
|
53
|
+
export { signal, state, effect, memo, ref, batch, untrack } from '@zenithbuild/runtime';
|
|
54
|
+
export { trackDependency, notifySubscribers, getCurrentContext, pushContext, popContext, cleanupContext, runUntracked, startBatch, endBatch, isBatching } from '@zenithbuild/runtime';
|
|
55
|
+
export { onMount as zenOnMount, onUnmount as zenOnUnmount } from '@zenithbuild/runtime';
|
|
56
|
+
export { onMount, onUnmount } from '@zenithbuild/runtime';
|
|
57
|
+
export type { MountCallback, UnmountCallback } from '@zenithbuild/runtime';
|
|
58
|
+
export { triggerMount, triggerUnmount, executeUnmountCallbacks, getIsMounted, getUnmountCallbackCount, resetMountState, resetUnmountState } from '@zenithbuild/runtime';
|
|
59
|
+
export { loadZenithConfig } from '@zenithbuild/compiler/config';
|
|
60
|
+
export { PluginRegistry, createPluginContext, getPluginDataByNamespace, createBridgeAPI, runPluginHooks, collectHookReturns, buildRuntimeEnvelope, clearHooks } from '@zenithbuild/compiler';
|
|
61
|
+
export type { HookContext } from '@zenithbuild/compiler';
|
|
62
|
+
export { CORE_COMPONENTS, getCoreComponentPath } from './components';
|
|
63
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../core/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAOH,OAAO,EACL,MAAM,IAAI,SAAS,EACnB,KAAK,IAAI,QAAQ,EACjB,MAAM,IAAI,SAAS,EACnB,IAAI,IAAI,OAAO,EACf,GAAG,IAAI,MAAM,EACb,KAAK,IAAI,QAAQ,EACjB,OAAO,IAAI,UAAU,EACtB,MAAM,sBAAsB,CAAA;AAG7B,YAAY,EACV,MAAM,EACN,IAAI,EACJ,GAAG,EACH,QAAQ,EACR,SAAS,EACT,UAAU,EACV,eAAe,EAChB,MAAM,sBAAsB,CAAA;AAG7B,OAAO,EACL,MAAM,EACN,KAAK,EACL,MAAM,EACN,IAAI,EACJ,GAAG,EACH,KAAK,EACL,OAAO,EACR,MAAM,sBAAsB,CAAA;AAG7B,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,cAAc,EACd,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,UAAU,EACX,MAAM,sBAAsB,CAAA;AAO7B,OAAO,EACL,OAAO,IAAI,UAAU,EACrB,SAAS,IAAI,YAAY,EAC1B,MAAM,sBAAsB,CAAA;AAG7B,OAAO,EACL,OAAO,EACP,SAAS,EACV,MAAM,sBAAsB,CAAA;AAG7B,YAAY,EACV,aAAa,EACb,eAAe,EAChB,MAAM,sBAAsB,CAAA;AAG7B,OAAO,EACL,YAAY,EACZ,cAAc,EACd,uBAAuB,EACvB,YAAY,EACZ,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EAClB,MAAM,sBAAsB,CAAA;AAM7B,OAAO,EACL,gBAAgB,EACjB,MAAM,8BAA8B,CAAA;AAErC,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,wBAAwB,EACxB,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,UAAU,EACX,MAAM,uBAAuB,CAAA;AAE9B,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAMxD,OAAO,EACL,eAAe,EACf,oBAAoB,EACrB,MAAM,cAAc,CAAA"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zenith Core Runtime
|
|
3
|
+
*
|
|
4
|
+
* This is the foundational layer of the Zenith framework, providing:
|
|
5
|
+
* - Reactive primitives (signals, state, effects, memos)
|
|
6
|
+
* - Lifecycle hooks (onMount, onUnmount)
|
|
7
|
+
*
|
|
8
|
+
* Design principles:
|
|
9
|
+
* - Auto-tracked reactivity (no dependency arrays)
|
|
10
|
+
* - No VDOM or render loops
|
|
11
|
+
* - Runtime-agnostic (works in browser, SSR, tests)
|
|
12
|
+
* - Hybrid naming: internal `zen*` + public clean names
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* // Using clean names (recommended for application code)
|
|
17
|
+
* import { signal, effect, onMount } from 'zenith/core'
|
|
18
|
+
*
|
|
19
|
+
* const count = signal(0)
|
|
20
|
+
*
|
|
21
|
+
* effect(() => {
|
|
22
|
+
* console.log('Count:', count())
|
|
23
|
+
* })
|
|
24
|
+
*
|
|
25
|
+
* onMount(() => {
|
|
26
|
+
* console.log('Mounted!')
|
|
27
|
+
* })
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```ts
|
|
32
|
+
* // Using explicit zen* names (for library/internal code)
|
|
33
|
+
* import { zenSignal, zenEffect, zenOnMount } from 'zenith/core'
|
|
34
|
+
*
|
|
35
|
+
* const count = zenSignal(0)
|
|
36
|
+
* zenEffect(() => console.log(count()))
|
|
37
|
+
* zenOnMount(() => console.log('Ready'))
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```ts
|
|
42
|
+
* // For navigation, import from router
|
|
43
|
+
* import { navigate, isActive } from 'zenith/router'
|
|
44
|
+
*
|
|
45
|
+
* navigate('/about')
|
|
46
|
+
* if (isActive('/blog')) {
|
|
47
|
+
* // Handle active state
|
|
48
|
+
* }
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
// ============================================
|
|
52
|
+
// Reactivity Primitives
|
|
53
|
+
// ============================================
|
|
54
|
+
// Explicit zen* exports (internal naming)
|
|
55
|
+
export { signal as zenSignal, state as zenState, effect as zenEffect, memo as zenMemo, ref as zenRef, batch as zenBatch, untrack as zenUntrack } from '@zenithbuild/runtime';
|
|
56
|
+
// Clean name exports (public DX)
|
|
57
|
+
export { signal, state, effect, memo, ref, batch, untrack } from '@zenithbuild/runtime';
|
|
58
|
+
// Internal tracking utilities (advanced use)
|
|
59
|
+
export { trackDependency, notifySubscribers, getCurrentContext, pushContext, popContext, cleanupContext, runUntracked, startBatch, endBatch, isBatching } from '@zenithbuild/runtime';
|
|
60
|
+
// ============================================
|
|
61
|
+
// Lifecycle Hooks
|
|
62
|
+
// ============================================
|
|
63
|
+
// Explicit zen* exports (internal naming)
|
|
64
|
+
export { onMount as zenOnMount, onUnmount as zenOnUnmount } from '@zenithbuild/runtime';
|
|
65
|
+
// Clean name exports (public DX)
|
|
66
|
+
export { onMount, onUnmount } from '@zenithbuild/runtime';
|
|
67
|
+
// Internal lifecycle utilities (for component system)
|
|
68
|
+
export { triggerMount, triggerUnmount, executeUnmountCallbacks, getIsMounted, getUnmountCallbackCount, resetMountState, resetUnmountState } from '@zenithbuild/runtime';
|
|
69
|
+
// ============================================
|
|
70
|
+
// Build-time Modules (Proxied from @zenithbuild/compiler)
|
|
71
|
+
// ============================================
|
|
72
|
+
export { loadZenithConfig } from '@zenithbuild/compiler/config';
|
|
73
|
+
export { PluginRegistry, createPluginContext, getPluginDataByNamespace, createBridgeAPI, runPluginHooks, collectHookReturns, buildRuntimeEnvelope, clearHooks } from '@zenithbuild/compiler';
|
|
74
|
+
// ============================================
|
|
75
|
+
// Core Components
|
|
76
|
+
// ============================================
|
|
77
|
+
export { CORE_COMPONENTS, getCoreComponentPath } from './components';
|
|
78
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../core/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,+CAA+C;AAC/C,wBAAwB;AACxB,+CAA+C;AAE/C,0CAA0C;AAC1C,OAAO,EACL,MAAM,IAAI,SAAS,EACnB,KAAK,IAAI,QAAQ,EACjB,MAAM,IAAI,SAAS,EACnB,IAAI,IAAI,OAAO,EACf,GAAG,IAAI,MAAM,EACb,KAAK,IAAI,QAAQ,EACjB,OAAO,IAAI,UAAU,EACtB,MAAM,sBAAsB,CAAA;AAa7B,iCAAiC;AACjC,OAAO,EACL,MAAM,EACN,KAAK,EACL,MAAM,EACN,IAAI,EACJ,GAAG,EACH,KAAK,EACL,OAAO,EACR,MAAM,sBAAsB,CAAA;AAE7B,6CAA6C;AAC7C,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,cAAc,EACd,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,UAAU,EACX,MAAM,sBAAsB,CAAA;AAE7B,+CAA+C;AAC/C,kBAAkB;AAClB,+CAA+C;AAE/C,0CAA0C;AAC1C,OAAO,EACL,OAAO,IAAI,UAAU,EACrB,SAAS,IAAI,YAAY,EAC1B,MAAM,sBAAsB,CAAA;AAE7B,iCAAiC;AACjC,OAAO,EACL,OAAO,EACP,SAAS,EACV,MAAM,sBAAsB,CAAA;AAQ7B,sDAAsD;AACtD,OAAO,EACL,YAAY,EACZ,cAAc,EACd,uBAAuB,EACvB,YAAY,EACZ,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EAClB,MAAM,sBAAsB,CAAA;AAE7B,+CAA+C;AAC/C,0DAA0D;AAC1D,+CAA+C;AAE/C,OAAO,EACL,gBAAgB,EACjB,MAAM,8BAA8B,CAAA;AAErC,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,wBAAwB,EACxB,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,UAAU,EACX,MAAM,uBAAuB,CAAA;AAI9B,+CAA+C;AAC/C,kBAAkB;AAClB,+CAA+C;AAE/C,OAAO,EACL,eAAe,EACf,oBAAoB,EACrB,MAAM,cAAc,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zenith Lifecycle Hooks
|
|
3
|
+
*
|
|
4
|
+
* This module exports lifecycle hooks for component mount/unmount events.
|
|
5
|
+
* These are effect wrappers that integrate with the component lifecycle system.
|
|
6
|
+
*
|
|
7
|
+
* Exports both explicit `zen*` names (internal) and clean aliases (public DX).
|
|
8
|
+
*/
|
|
9
|
+
import { zenOnMount as _zenOnMount, triggerMount, triggerUnmount, getIsMounted, resetMountState, type MountCallback } from './zen-mount';
|
|
10
|
+
import { zenOnUnmount as _zenOnUnmount, executeUnmountCallbacks, getUnmountCallbackCount, resetUnmountState, type UnmountCallback } from './zen-unmount';
|
|
11
|
+
export declare const zenOnMount: typeof _zenOnMount;
|
|
12
|
+
export declare const zenOnUnmount: typeof _zenOnUnmount;
|
|
13
|
+
export { triggerMount, triggerUnmount, getIsMounted, resetMountState, executeUnmountCallbacks, getUnmountCallbackCount, resetUnmountState };
|
|
14
|
+
export type { MountCallback, UnmountCallback };
|
|
15
|
+
export declare const onMount: typeof _zenOnMount;
|
|
16
|
+
export declare const onUnmount: typeof _zenOnUnmount;
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../core/lifecycle/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACL,UAAU,IAAI,WAAW,EACzB,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,eAAe,EACf,KAAK,aAAa,EACnB,MAAM,aAAa,CAAA;AAEpB,OAAO,EACL,YAAY,IAAI,aAAa,EAC7B,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,EACjB,KAAK,eAAe,EACrB,MAAM,eAAe,CAAA;AAGtB,eAAO,MAAM,UAAU,oBAAc,CAAA;AACrC,eAAO,MAAM,YAAY,sBAAgB,CAAA;AAGzC,OAAO,EACL,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,eAAe,EACf,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,EAClB,CAAA;AAGD,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,CAAA;AAG9C,eAAO,MAAM,OAAO,oBAAc,CAAA;AAClC,eAAO,MAAM,SAAS,sBAAgB,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zenith Lifecycle Hooks
|
|
3
|
+
*
|
|
4
|
+
* This module exports lifecycle hooks for component mount/unmount events.
|
|
5
|
+
* These are effect wrappers that integrate with the component lifecycle system.
|
|
6
|
+
*
|
|
7
|
+
* Exports both explicit `zen*` names (internal) and clean aliases (public DX).
|
|
8
|
+
*/
|
|
9
|
+
// Import lifecycle hooks
|
|
10
|
+
import { zenOnMount as _zenOnMount, triggerMount, triggerUnmount, getIsMounted, resetMountState } from './zen-mount';
|
|
11
|
+
import { zenOnUnmount as _zenOnUnmount, executeUnmountCallbacks, getUnmountCallbackCount, resetUnmountState } from './zen-unmount';
|
|
12
|
+
// Re-export with explicit names
|
|
13
|
+
export const zenOnMount = _zenOnMount;
|
|
14
|
+
export const zenOnUnmount = _zenOnUnmount;
|
|
15
|
+
// Re-export utilities
|
|
16
|
+
export { triggerMount, triggerUnmount, getIsMounted, resetMountState, executeUnmountCallbacks, getUnmountCallbackCount, resetUnmountState };
|
|
17
|
+
// Public DX aliases - clean names
|
|
18
|
+
export const onMount = _zenOnMount;
|
|
19
|
+
export const onUnmount = _zenOnUnmount;
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../core/lifecycle/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,yBAAyB;AACzB,OAAO,EACL,UAAU,IAAI,WAAW,EACzB,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,eAAe,EAEhB,MAAM,aAAa,CAAA;AAEpB,OAAO,EACL,YAAY,IAAI,aAAa,EAC7B,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,EAElB,MAAM,eAAe,CAAA;AAEtB,gCAAgC;AAChC,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAA;AACrC,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAA;AAEzC,sBAAsB;AACtB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,eAAe,EACf,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,EAClB,CAAA;AAKD,kCAAkC;AAClC,MAAM,CAAC,MAAM,OAAO,GAAG,WAAW,CAAA;AAClC,MAAM,CAAC,MAAM,SAAS,GAAG,aAAa,CAAA"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zenith OnMount - Post-Mount Lifecycle Hook
|
|
3
|
+
*
|
|
4
|
+
* Registers a callback to run after a component's DOM is inserted.
|
|
5
|
+
* This is an effect wrapper that defers execution until the mount phase.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - Runs after DOM is available
|
|
9
|
+
* - Only runs once per mount
|
|
10
|
+
* - Supports cleanup function return
|
|
11
|
+
* - Works with component lifecycle system
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* zenOnMount(() => {
|
|
16
|
+
* console.log('Component mounted!')
|
|
17
|
+
* const el = document.querySelector('.my-element')
|
|
18
|
+
*
|
|
19
|
+
* // Optional cleanup - runs on unmount
|
|
20
|
+
* return () => {
|
|
21
|
+
* console.log('Component will unmount')
|
|
22
|
+
* }
|
|
23
|
+
* })
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* Note: This hook registers callbacks that will be executed by the
|
|
27
|
+
* component lifecycle system. If no mount scheduler is active,
|
|
28
|
+
* callbacks are queued for later execution.
|
|
29
|
+
*/
|
|
30
|
+
/**
|
|
31
|
+
* Mount callback type - can optionally return a cleanup function
|
|
32
|
+
*/
|
|
33
|
+
export type MountCallback = () => void | (() => void);
|
|
34
|
+
/**
|
|
35
|
+
* Register a callback to run after component mount
|
|
36
|
+
*
|
|
37
|
+
* @param callback - Function to run after mount (can return cleanup function)
|
|
38
|
+
* @returns Dispose function to cancel the mount callback
|
|
39
|
+
*/
|
|
40
|
+
export declare function zenOnMount(callback: MountCallback): () => void;
|
|
41
|
+
/**
|
|
42
|
+
* Trigger mount phase - called by component lifecycle system
|
|
43
|
+
* Executes all pending mount callbacks
|
|
44
|
+
*
|
|
45
|
+
* @internal
|
|
46
|
+
*/
|
|
47
|
+
export declare function triggerMount(): void;
|
|
48
|
+
/**
|
|
49
|
+
* Trigger unmount phase - called by component lifecycle system
|
|
50
|
+
* Runs cleanup functions for all active mount hooks
|
|
51
|
+
*
|
|
52
|
+
* @internal
|
|
53
|
+
*/
|
|
54
|
+
export declare function triggerUnmount(): void;
|
|
55
|
+
/**
|
|
56
|
+
* Check if currently in mounted state
|
|
57
|
+
*
|
|
58
|
+
* @internal
|
|
59
|
+
*/
|
|
60
|
+
export declare function getIsMounted(): boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Reset mount state - for testing purposes
|
|
63
|
+
*
|
|
64
|
+
* @internal
|
|
65
|
+
*/
|
|
66
|
+
export declare function resetMountState(): void;
|
|
67
|
+
//# sourceMappingURL=zen-mount.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zen-mount.d.ts","sourceRoot":"","sources":["../../../core/lifecycle/zen-mount.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAA;AA4BrD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,IAAI,CAiC9D;AAqBD;;;;;GAKG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAUnC;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAerC;AAED;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAItC"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zenith OnMount - Post-Mount Lifecycle Hook
|
|
3
|
+
*
|
|
4
|
+
* Registers a callback to run after a component's DOM is inserted.
|
|
5
|
+
* This is an effect wrapper that defers execution until the mount phase.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - Runs after DOM is available
|
|
9
|
+
* - Only runs once per mount
|
|
10
|
+
* - Supports cleanup function return
|
|
11
|
+
* - Works with component lifecycle system
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* zenOnMount(() => {
|
|
16
|
+
* console.log('Component mounted!')
|
|
17
|
+
* const el = document.querySelector('.my-element')
|
|
18
|
+
*
|
|
19
|
+
* // Optional cleanup - runs on unmount
|
|
20
|
+
* return () => {
|
|
21
|
+
* console.log('Component will unmount')
|
|
22
|
+
* }
|
|
23
|
+
* })
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* Note: This hook registers callbacks that will be executed by the
|
|
27
|
+
* component lifecycle system. If no mount scheduler is active,
|
|
28
|
+
* callbacks are queued for later execution.
|
|
29
|
+
*/
|
|
30
|
+
/**
|
|
31
|
+
* Queue of pending mount callbacks
|
|
32
|
+
* These are registered but not yet executed because mount hasn't occurred
|
|
33
|
+
*/
|
|
34
|
+
const pendingMountCallbacks = [];
|
|
35
|
+
/**
|
|
36
|
+
* Currently active mount hooks (for cleanup on unmount)
|
|
37
|
+
*/
|
|
38
|
+
const activeMountHooks = new Set();
|
|
39
|
+
/**
|
|
40
|
+
* Flag indicating whether we're in a mounted state
|
|
41
|
+
* This is controlled by the component lifecycle system
|
|
42
|
+
*/
|
|
43
|
+
let isMounted = false;
|
|
44
|
+
/**
|
|
45
|
+
* Register a callback to run after component mount
|
|
46
|
+
*
|
|
47
|
+
* @param callback - Function to run after mount (can return cleanup function)
|
|
48
|
+
* @returns Dispose function to cancel the mount callback
|
|
49
|
+
*/
|
|
50
|
+
export function zenOnMount(callback) {
|
|
51
|
+
const state = {
|
|
52
|
+
callback,
|
|
53
|
+
cleanup: null,
|
|
54
|
+
mounted: false
|
|
55
|
+
};
|
|
56
|
+
if (isMounted) {
|
|
57
|
+
// Already mounted - run immediately
|
|
58
|
+
executeMountCallback(state);
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
// Queue for later execution
|
|
62
|
+
pendingMountCallbacks.push(state);
|
|
63
|
+
}
|
|
64
|
+
activeMountHooks.add(state);
|
|
65
|
+
// Return dispose function
|
|
66
|
+
return () => {
|
|
67
|
+
// Remove from pending if not yet executed
|
|
68
|
+
const pendingIndex = pendingMountCallbacks.indexOf(state);
|
|
69
|
+
if (pendingIndex !== -1) {
|
|
70
|
+
pendingMountCallbacks.splice(pendingIndex, 1);
|
|
71
|
+
}
|
|
72
|
+
// Run cleanup if already mounted
|
|
73
|
+
if (state.mounted && state.cleanup) {
|
|
74
|
+
state.cleanup();
|
|
75
|
+
state.cleanup = null;
|
|
76
|
+
}
|
|
77
|
+
activeMountHooks.delete(state);
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Execute a mount callback
|
|
82
|
+
*/
|
|
83
|
+
function executeMountCallback(state) {
|
|
84
|
+
if (state.mounted)
|
|
85
|
+
return;
|
|
86
|
+
state.mounted = true;
|
|
87
|
+
try {
|
|
88
|
+
const result = state.callback();
|
|
89
|
+
if (typeof result === 'function') {
|
|
90
|
+
state.cleanup = result;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
console.error('[Zenith] Error in onMount callback:', error);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Trigger mount phase - called by component lifecycle system
|
|
99
|
+
* Executes all pending mount callbacks
|
|
100
|
+
*
|
|
101
|
+
* @internal
|
|
102
|
+
*/
|
|
103
|
+
export function triggerMount() {
|
|
104
|
+
isMounted = true;
|
|
105
|
+
// Execute all pending callbacks
|
|
106
|
+
const callbacks = [...pendingMountCallbacks];
|
|
107
|
+
pendingMountCallbacks.length = 0;
|
|
108
|
+
for (const state of callbacks) {
|
|
109
|
+
executeMountCallback(state);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Trigger unmount phase - called by component lifecycle system
|
|
114
|
+
* Runs cleanup functions for all active mount hooks
|
|
115
|
+
*
|
|
116
|
+
* @internal
|
|
117
|
+
*/
|
|
118
|
+
export function triggerUnmount() {
|
|
119
|
+
isMounted = false;
|
|
120
|
+
// Run all cleanup functions
|
|
121
|
+
for (const state of activeMountHooks) {
|
|
122
|
+
if (state.cleanup) {
|
|
123
|
+
try {
|
|
124
|
+
state.cleanup();
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
console.error('[Zenith] Error in onMount cleanup:', error);
|
|
128
|
+
}
|
|
129
|
+
state.cleanup = null;
|
|
130
|
+
}
|
|
131
|
+
state.mounted = false;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Check if currently in mounted state
|
|
136
|
+
*
|
|
137
|
+
* @internal
|
|
138
|
+
*/
|
|
139
|
+
export function getIsMounted() {
|
|
140
|
+
return isMounted;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Reset mount state - for testing purposes
|
|
144
|
+
*
|
|
145
|
+
* @internal
|
|
146
|
+
*/
|
|
147
|
+
export function resetMountState() {
|
|
148
|
+
isMounted = false;
|
|
149
|
+
pendingMountCallbacks.length = 0;
|
|
150
|
+
activeMountHooks.clear();
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=zen-mount.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zen-mount.js","sourceRoot":"","sources":["../../../core/lifecycle/zen-mount.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zenith OnUnmount - Pre-Unmount Lifecycle Hook
|
|
3
|
+
*
|
|
4
|
+
* Registers a cleanup callback to run before a component is disposed.
|
|
5
|
+
* Useful for cleaning up subscriptions, timers, event listeners, etc.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - Runs before component is removed from DOM
|
|
9
|
+
* - Can register multiple callbacks
|
|
10
|
+
* - Callbacks run in registration order
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* zenOnUnmount(() => {
|
|
15
|
+
* console.log('Cleaning up...')
|
|
16
|
+
* subscription.unsubscribe()
|
|
17
|
+
* clearInterval(timerId)
|
|
18
|
+
* })
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* Note: This hook registers callbacks that will be executed by the
|
|
22
|
+
* component lifecycle system when the component is disposed.
|
|
23
|
+
*/
|
|
24
|
+
/**
|
|
25
|
+
* Unmount callback type
|
|
26
|
+
*/
|
|
27
|
+
export type UnmountCallback = () => void;
|
|
28
|
+
/**
|
|
29
|
+
* Register a callback to run before component unmount
|
|
30
|
+
*
|
|
31
|
+
* @param callback - Function to run before unmount
|
|
32
|
+
* @returns Dispose function to cancel the unmount callback
|
|
33
|
+
*/
|
|
34
|
+
export declare function zenOnUnmount(callback: UnmountCallback): () => void;
|
|
35
|
+
/**
|
|
36
|
+
* Execute all unmount callbacks
|
|
37
|
+
* Called by the component lifecycle system before disposal
|
|
38
|
+
*
|
|
39
|
+
* @internal
|
|
40
|
+
*/
|
|
41
|
+
export declare function executeUnmountCallbacks(): void;
|
|
42
|
+
/**
|
|
43
|
+
* Get count of registered unmount callbacks
|
|
44
|
+
* Useful for testing
|
|
45
|
+
*
|
|
46
|
+
* @internal
|
|
47
|
+
*/
|
|
48
|
+
export declare function getUnmountCallbackCount(): number;
|
|
49
|
+
/**
|
|
50
|
+
* Reset unmount state - for testing purposes
|
|
51
|
+
*
|
|
52
|
+
* @internal
|
|
53
|
+
*/
|
|
54
|
+
export declare function resetUnmountState(): void;
|
|
55
|
+
//# sourceMappingURL=zen-unmount.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zen-unmount.d.ts","sourceRoot":"","sources":["../../../core/lifecycle/zen-unmount.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,IAAI,CAAA;AAOxC;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,IAAI,CAOlE;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAY9C;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAExC"}
|