@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.
Files changed (129) hide show
  1. package/bin/zenith.js +1 -1
  2. package/cli/commands/build.ts +1 -1
  3. package/cli/commands/dev.ts +11 -7
  4. package/dist/bin/zen-build.d.ts +2 -0
  5. package/dist/bin/zen-build.d.ts.map +1 -0
  6. package/dist/bin/zen-build.js +3 -0
  7. package/dist/bin/zen-build.js.map +1 -0
  8. package/dist/bin/zen-dev.d.ts +2 -0
  9. package/dist/bin/zen-dev.d.ts.map +1 -0
  10. package/dist/bin/zen-dev.js +3 -0
  11. package/dist/bin/zen-dev.js.map +1 -0
  12. package/dist/bin/zen-preview.d.ts +2 -0
  13. package/dist/bin/zen-preview.d.ts.map +1 -0
  14. package/dist/bin/zen-preview.js +3 -0
  15. package/dist/bin/zen-preview.js.map +1 -0
  16. package/dist/bin/zenith.d.ts +2 -0
  17. package/dist/bin/zenith.d.ts.map +1 -0
  18. package/dist/bin/zenith.js +3 -0
  19. package/dist/bin/zenith.js.map +1 -0
  20. package/dist/cli/commands/add.d.ts +10 -0
  21. package/dist/cli/commands/add.d.ts.map +1 -0
  22. package/dist/cli/commands/add.js +27 -0
  23. package/dist/cli/commands/add.js.map +1 -0
  24. package/dist/cli/commands/build.d.ts +10 -0
  25. package/dist/cli/commands/build.d.ts.map +1 -0
  26. package/dist/cli/commands/build.js +29 -0
  27. package/dist/cli/commands/build.js.map +1 -0
  28. package/dist/cli/commands/create.d.ts +11 -0
  29. package/dist/cli/commands/create.d.ts.map +1 -0
  30. package/dist/cli/commands/create.js +625 -0
  31. package/dist/cli/commands/create.js.map +1 -0
  32. package/dist/cli/commands/dev.d.ts +24 -0
  33. package/dist/cli/commands/dev.d.ts.map +1 -0
  34. package/dist/cli/commands/dev.js +402 -0
  35. package/dist/cli/commands/dev.js.map +1 -0
  36. package/dist/cli/commands/index.d.ts +16 -0
  37. package/dist/cli/commands/index.d.ts.map +1 -0
  38. package/dist/cli/commands/index.js +101 -0
  39. package/dist/cli/commands/index.js.map +1 -0
  40. package/dist/cli/commands/preview.d.ts +10 -0
  41. package/dist/cli/commands/preview.d.ts.map +1 -0
  42. package/dist/cli/commands/preview.js +49 -0
  43. package/dist/cli/commands/preview.js.map +1 -0
  44. package/dist/cli/commands/remove.d.ts +7 -0
  45. package/dist/cli/commands/remove.d.ts.map +1 -0
  46. package/dist/cli/commands/remove.js +27 -0
  47. package/dist/cli/commands/remove.js.map +1 -0
  48. package/dist/cli/main.d.ts +11 -0
  49. package/dist/cli/main.d.ts.map +1 -0
  50. package/dist/cli/main.js +88 -0
  51. package/dist/cli/main.js.map +1 -0
  52. package/dist/cli/utils/branding.d.ts +51 -0
  53. package/dist/cli/utils/branding.d.ts.map +1 -0
  54. package/dist/cli/utils/branding.js +147 -0
  55. package/dist/cli/utils/branding.js.map +1 -0
  56. package/dist/cli/utils/logger.d.ts +15 -0
  57. package/dist/cli/utils/logger.d.ts.map +1 -0
  58. package/dist/cli/utils/logger.js +40 -0
  59. package/dist/cli/utils/logger.js.map +1 -0
  60. package/dist/cli/utils/plugin-manager.d.ts +34 -0
  61. package/dist/cli/utils/plugin-manager.d.ts.map +1 -0
  62. package/dist/cli/utils/plugin-manager.js +89 -0
  63. package/dist/cli/utils/plugin-manager.js.map +1 -0
  64. package/dist/cli/utils/project.d.ts +24 -0
  65. package/dist/cli/utils/project.d.ts.map +1 -0
  66. package/dist/cli/utils/project.js +62 -0
  67. package/dist/cli/utils/project.js.map +1 -0
  68. package/dist/core/components/index.d.ts +10 -0
  69. package/dist/core/components/index.d.ts.map +1 -0
  70. package/dist/core/components/index.js +14 -0
  71. package/dist/core/components/index.js.map +1 -0
  72. package/dist/core/config.d.ts +2 -0
  73. package/dist/core/config.d.ts.map +1 -0
  74. package/dist/core/config.js +2 -0
  75. package/dist/core/config.js.map +1 -0
  76. package/dist/core/index.d.ts +63 -0
  77. package/dist/core/index.d.ts.map +1 -0
  78. package/dist/core/index.js +78 -0
  79. package/dist/core/index.js.map +1 -0
  80. package/dist/core/lifecycle/index.d.ts +17 -0
  81. package/dist/core/lifecycle/index.d.ts.map +1 -0
  82. package/dist/core/lifecycle/index.js +20 -0
  83. package/dist/core/lifecycle/index.js.map +1 -0
  84. package/dist/core/lifecycle/zen-mount.d.ts +67 -0
  85. package/dist/core/lifecycle/zen-mount.d.ts.map +1 -0
  86. package/dist/core/lifecycle/zen-mount.js +152 -0
  87. package/dist/core/lifecycle/zen-mount.js.map +1 -0
  88. package/dist/core/lifecycle/zen-unmount.d.ts +55 -0
  89. package/dist/core/lifecycle/zen-unmount.d.ts.map +1 -0
  90. package/dist/core/lifecycle/zen-unmount.js +77 -0
  91. package/dist/core/lifecycle/zen-unmount.js.map +1 -0
  92. package/dist/core/reactivity/index.d.ts +31 -0
  93. package/dist/core/reactivity/index.d.ts.map +1 -0
  94. package/dist/core/reactivity/index.js +34 -0
  95. package/dist/core/reactivity/index.js.map +1 -0
  96. package/dist/core/reactivity/tracking.d.ts +75 -0
  97. package/dist/core/reactivity/tracking.d.ts.map +1 -0
  98. package/dist/core/reactivity/tracking.js +137 -0
  99. package/dist/core/reactivity/tracking.js.map +1 -0
  100. package/dist/core/reactivity/zen-batch.d.ts +46 -0
  101. package/dist/core/reactivity/zen-batch.d.ts.map +1 -0
  102. package/dist/core/reactivity/zen-batch.js +55 -0
  103. package/dist/core/reactivity/zen-batch.js.map +1 -0
  104. package/dist/core/reactivity/zen-effect.d.ts +49 -0
  105. package/dist/core/reactivity/zen-effect.d.ts.map +1 -0
  106. package/dist/core/reactivity/zen-effect.js +99 -0
  107. package/dist/core/reactivity/zen-effect.js.map +1 -0
  108. package/dist/core/reactivity/zen-memo.d.ts +44 -0
  109. package/dist/core/reactivity/zen-memo.d.ts.map +1 -0
  110. package/dist/core/reactivity/zen-memo.js +101 -0
  111. package/dist/core/reactivity/zen-memo.js.map +1 -0
  112. package/dist/core/reactivity/zen-ref.d.ts +45 -0
  113. package/dist/core/reactivity/zen-ref.d.ts.map +1 -0
  114. package/dist/core/reactivity/zen-ref.js +35 -0
  115. package/dist/core/reactivity/zen-ref.js.map +1 -0
  116. package/dist/core/reactivity/zen-signal.d.ts +49 -0
  117. package/dist/core/reactivity/zen-signal.d.ts.map +1 -0
  118. package/dist/core/reactivity/zen-signal.js +85 -0
  119. package/dist/core/reactivity/zen-signal.js.map +1 -0
  120. package/dist/core/reactivity/zen-state.d.ts +36 -0
  121. package/dist/core/reactivity/zen-state.d.ts.map +1 -0
  122. package/dist/core/reactivity/zen-state.js +148 -0
  123. package/dist/core/reactivity/zen-state.js.map +1 -0
  124. package/dist/core/reactivity/zen-untrack.d.ts +39 -0
  125. package/dist/core/reactivity/zen-untrack.d.ts.map +1 -0
  126. package/dist/core/reactivity/zen-untrack.js +42 -0
  127. package/dist/core/reactivity/zen-untrack.js.map +1 -0
  128. package/package.json +17 -14
  129. 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,2 @@
1
+ export * from '@zenithbuild/compiler/config';
2
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../core/config.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from '@zenithbuild/compiler/config';
2
+ //# sourceMappingURL=config.js.map
@@ -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"}