@fluixi/core 1.0.0-alpha.53
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/LICENSE +21 -0
- package/README.md +611 -0
- package/dist/cdn/core.global.js +3 -0
- package/dist/cli/generate.cjs +1814 -0
- package/dist/cli/generate.d.ts +7 -0
- package/dist/cli/generate.d.ts.map +1 -0
- package/dist/cli/generate.js +2580 -0
- package/dist/cli/generate.mjs +1814 -0
- package/dist/cli/index.cjs +1814 -0
- package/dist/cli/index.d.ts +7 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +2580 -0
- package/dist/cli/index.mjs +1814 -0
- package/dist/cli/run.cjs +2 -0
- package/dist/cli/run.d.ts +3 -0
- package/dist/cli/run.d.ts.map +1 -0
- package/dist/cli/run.js +62 -0
- package/dist/cli/run.mjs +2 -0
- package/dist/fluixi.d.ts +5 -0
- package/dist/src/cdn/chunk-PFM5O5UE.mjs +1 -0
- package/dist/src/cdn/core.cjs +1 -0
- package/dist/src/cdn/core.d.ts +16 -0
- package/dist/src/cdn/core.d.ts.map +1 -0
- package/dist/src/cdn/core.js +15 -0
- package/dist/src/cdn/core.mjs +1 -0
- package/dist/src/cdn/router-next-WNWCFVC2.mjs +1 -0
- package/dist/src/index.cjs +1 -0
- package/dist/src/index.d.ts +7 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +26 -0
- package/dist/src/index.mjs +1 -0
- package/dist/src/jsx-dev-runtime.cjs +1 -0
- package/dist/src/jsx-dev-runtime.d.ts +2 -0
- package/dist/src/jsx-dev-runtime.d.ts.map +1 -0
- package/dist/src/jsx-dev-runtime.js +1 -0
- package/dist/src/jsx-dev-runtime.mjs +1 -0
- package/dist/src/jsx-runtime.cjs +1 -0
- package/dist/src/jsx-runtime.d.ts +7 -0
- package/dist/src/jsx-runtime.d.ts.map +1 -0
- package/dist/src/jsx-runtime.js +17 -0
- package/dist/src/jsx-runtime.mjs +1 -0
- package/dist/src/lib/client/chunk-D3VTWVNJ.mjs +1 -0
- package/dist/src/lib/client/index.cjs +1 -0
- package/dist/src/lib/client/index.d.ts +54 -0
- package/dist/src/lib/client/index.d.ts.map +1 -0
- package/dist/src/lib/client/index.js +142 -0
- package/dist/src/lib/client/index.mjs +1 -0
- package/dist/src/lib/client/router-next-UYIYMRJL.mjs +1 -0
- package/dist/src/lib/context/context.cjs +1 -0
- package/dist/src/lib/context/context.d.ts +337 -0
- package/dist/src/lib/context/context.d.ts.map +1 -0
- package/dist/src/lib/context/context.js +462 -0
- package/dist/src/lib/context/context.mjs +1 -0
- package/dist/src/lib/context/index.cjs +1 -0
- package/dist/src/lib/context/index.d.ts +3 -0
- package/dist/src/lib/context/index.d.ts.map +1 -0
- package/dist/src/lib/context/index.js +5 -0
- package/dist/src/lib/context/index.mjs +1 -0
- package/dist/src/lib/control-flow.cjs +1 -0
- package/dist/src/lib/control-flow.d.ts +4 -0
- package/dist/src/lib/control-flow.d.ts.map +1 -0
- package/dist/src/lib/control-flow.js +1 -0
- package/dist/src/lib/control-flow.mjs +1 -0
- package/dist/src/lib/core.cjs +1 -0
- package/dist/src/lib/core.d.ts +90 -0
- package/dist/src/lib/core.d.ts.map +1 -0
- package/dist/src/lib/core.js +181 -0
- package/dist/src/lib/core.mjs +1 -0
- package/dist/src/lib/directives/lit.cjs +1 -0
- package/dist/src/lib/directives/lit.d.ts +2 -0
- package/dist/src/lib/directives/lit.d.ts.map +1 -0
- package/dist/src/lib/directives/lit.js +31 -0
- package/dist/src/lib/directives/lit.mjs +0 -0
- package/dist/src/lib/env/index.cjs +1 -0
- package/dist/src/lib/env/index.d.ts +39 -0
- package/dist/src/lib/env/index.d.ts.map +1 -0
- package/dist/src/lib/env/index.js +50 -0
- package/dist/src/lib/env/index.mjs +1 -0
- package/dist/src/lib/i18n/index.cjs +1 -0
- package/dist/src/lib/i18n/index.d.ts +79 -0
- package/dist/src/lib/i18n/index.d.ts.map +1 -0
- package/dist/src/lib/i18n/index.js +127 -0
- package/dist/src/lib/i18n/index.mjs +1 -0
- package/dist/src/lib/index.cjs +1 -0
- package/dist/src/lib/index.d.ts +83 -0
- package/dist/src/lib/index.d.ts.map +1 -0
- package/dist/src/lib/index.js +147 -0
- package/dist/src/lib/index.mjs +1 -0
- package/dist/src/lib/isomorphic.cjs +1 -0
- package/dist/src/lib/isomorphic.d.ts +69 -0
- package/dist/src/lib/isomorphic.d.ts.map +1 -0
- package/dist/src/lib/isomorphic.js +92 -0
- package/dist/src/lib/isomorphic.mjs +1 -0
- package/dist/src/lib/jsx-runtime/index.cjs +1 -0
- package/dist/src/lib/jsx-runtime/index.d.ts +13 -0
- package/dist/src/lib/jsx-runtime/index.d.ts.map +1 -0
- package/dist/src/lib/jsx-runtime/index.js +23 -0
- package/dist/src/lib/jsx-runtime/index.mjs +1 -0
- package/dist/src/lib/jsx-runtime/jsx-dev-runtime.cjs +1 -0
- package/dist/src/lib/jsx-runtime/jsx-dev-runtime.d.ts +2 -0
- package/dist/src/lib/jsx-runtime/jsx-dev-runtime.d.ts.map +1 -0
- package/dist/src/lib/jsx-runtime/jsx-dev-runtime.js +1 -0
- package/dist/src/lib/jsx-runtime/jsx-dev-runtime.mjs +1 -0
- package/dist/src/lib/plugins/fluixi-routes-plugin.cjs +13 -0
- package/dist/src/lib/plugins/fluixi-routes-plugin.d.ts +21 -0
- package/dist/src/lib/plugins/fluixi-routes-plugin.d.ts.map +1 -0
- package/dist/src/lib/plugins/fluixi-routes-plugin.js +102 -0
- package/dist/src/lib/plugins/fluixi-routes-plugin.mjs +13 -0
- package/dist/src/lib/plugins/index.cjs +13 -0
- package/dist/src/lib/plugins/index.d.ts +4 -0
- package/dist/src/lib/plugins/index.d.ts.map +1 -0
- package/dist/src/lib/plugins/index.js +3 -0
- package/dist/src/lib/plugins/index.mjs +13 -0
- package/dist/src/lib/plugins/route-codegen.cjs +8 -0
- package/dist/src/lib/plugins/route-codegen.d.ts +13 -0
- package/dist/src/lib/plugins/route-codegen.d.ts.map +1 -0
- package/dist/src/lib/plugins/route-codegen.js +81 -0
- package/dist/src/lib/plugins/route-codegen.mjs +8 -0
- package/dist/src/lib/plugins/route-scanner.cjs +1 -0
- package/dist/src/lib/plugins/route-scanner.d.ts +39 -0
- package/dist/src/lib/plugins/route-scanner.d.ts.map +1 -0
- package/dist/src/lib/plugins/route-scanner.js +216 -0
- package/dist/src/lib/plugins/route-scanner.mjs +1 -0
- package/dist/src/lib/plugins/vite.cjs +1 -0
- package/dist/src/lib/plugins/vite.d.ts +3 -0
- package/dist/src/lib/plugins/vite.d.ts.map +1 -0
- package/dist/src/lib/plugins/vite.js +1 -0
- package/dist/src/lib/plugins/vite.mjs +1 -0
- package/dist/src/lib/render/component.cjs +1 -0
- package/dist/src/lib/render/component.d.ts +328 -0
- package/dist/src/lib/render/component.d.ts.map +1 -0
- package/dist/src/lib/render/component.js +520 -0
- package/dist/src/lib/render/component.mjs +1 -0
- package/dist/src/lib/render/index.cjs +1 -0
- package/dist/src/lib/render/index.d.ts +113 -0
- package/dist/src/lib/render/index.d.ts.map +1 -0
- package/dist/src/lib/render/index.js +201 -0
- package/dist/src/lib/render/index.mjs +1 -0
- package/dist/src/lib/render/lazy.cjs +1 -0
- package/dist/src/lib/render/lazy.d.ts +28 -0
- package/dist/src/lib/render/lazy.d.ts.map +1 -0
- package/dist/src/lib/render/lazy.js +62 -0
- package/dist/src/lib/render/lazy.mjs +1 -0
- package/dist/src/lib/render/suspense.cjs +1 -0
- package/dist/src/lib/render/suspense.d.ts +25 -0
- package/dist/src/lib/render/suspense.d.ts.map +1 -0
- package/dist/src/lib/render/suspense.js +139 -0
- package/dist/src/lib/render/suspense.mjs +1 -0
- package/dist/src/lib/router-next/data.cjs +1 -0
- package/dist/src/lib/router-next/data.d.ts +101 -0
- package/dist/src/lib/router-next/data.d.ts.map +1 -0
- package/dist/src/lib/router-next/data.js +179 -0
- package/dist/src/lib/router-next/data.mjs +1 -0
- package/dist/src/lib/router-next/index.cjs +1 -0
- package/dist/src/lib/router-next/index.d.ts +156 -0
- package/dist/src/lib/router-next/index.d.ts.map +1 -0
- package/dist/src/lib/router-next/index.js +464 -0
- package/dist/src/lib/router-next/index.mjs +1 -0
- package/dist/src/lib/server/hydration.cjs +1 -0
- package/dist/src/lib/server/hydration.d.ts +238 -0
- package/dist/src/lib/server/hydration.d.ts.map +1 -0
- package/dist/src/lib/server/hydration.js +384 -0
- package/dist/src/lib/server/hydration.mjs +1 -0
- package/dist/src/lib/server/index.cjs +16 -0
- package/dist/src/lib/server/index.d.ts +91 -0
- package/dist/src/lib/server/index.d.ts.map +1 -0
- package/dist/src/lib/server/index.js +141 -0
- package/dist/src/lib/server/index.mjs +16 -0
- package/dist/src/lib/server/reactive.cjs +1 -0
- package/dist/src/lib/server/reactive.d.ts +298 -0
- package/dist/src/lib/server/reactive.d.ts.map +1 -0
- package/dist/src/lib/server/reactive.js +472 -0
- package/dist/src/lib/server/reactive.mjs +1 -0
- package/dist/src/lib/theme/index.cjs +1 -0
- package/dist/src/lib/theme/index.d.ts +51 -0
- package/dist/src/lib/theme/index.d.ts.map +1 -0
- package/dist/src/lib/theme/index.js +79 -0
- package/dist/src/lib/theme/index.mjs +1 -0
- package/dist/src/lib/utils/index.cjs +1 -0
- package/dist/src/lib/utils/index.d.ts +379 -0
- package/dist/src/lib/utils/index.d.ts.map +1 -0
- package/dist/src/lib/utils/index.js +527 -0
- package/dist/src/lib/utils/index.mjs +1 -0
- package/dist/src/rx.cjs +1 -0
- package/dist/src/rx.d.ts +2 -0
- package/dist/src/rx.d.ts.map +1 -0
- package/dist/src/rx.js +101 -0
- package/dist/src/rx.mjs +0 -0
- package/dist/src/server.cjs +16 -0
- package/dist/src/server.d.ts +64 -0
- package/dist/src/server.d.ts.map +1 -0
- package/dist/src/server.js +63 -0
- package/dist/src/server.mjs +16 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -0
- package/package.json +128 -0
- package/src/index.ts +31 -0
- package/types/fluixi.d.ts +5 -0
- package/types/vinxi.d.ts +50 -0
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Component creation for Fluixi. Component-creation logic only — context lives in
|
|
3
|
+
* the reactive system, rendering in render/index.ts, and SSR in server/.
|
|
4
|
+
*/
|
|
5
|
+
import { CreateComponentReturnType } from '@fluixi/dom';
|
|
6
|
+
import { onCleanup, getOwner, createEffect, createMemo, batch, runWithOwner } from '@fluixi/reactive/signal';
|
|
7
|
+
type Owner = any;
|
|
8
|
+
interface SharedConfig {
|
|
9
|
+
context: Owner | null;
|
|
10
|
+
owner: Owner | null;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Get shared reactive config
|
|
14
|
+
* Used for maintaining reactive context across components
|
|
15
|
+
* @internal
|
|
16
|
+
*/
|
|
17
|
+
export declare function getSharedConfig(): SharedConfig;
|
|
18
|
+
/**
|
|
19
|
+
* Set current owner in shared config
|
|
20
|
+
* @internal
|
|
21
|
+
*/
|
|
22
|
+
export declare function setOwner(owner: Owner | null): void;
|
|
23
|
+
/**
|
|
24
|
+
* Get current owner from shared config
|
|
25
|
+
* @internal
|
|
26
|
+
*/
|
|
27
|
+
export declare function getContextOwner(): Owner | null;
|
|
28
|
+
/**
|
|
29
|
+
* Development mode flag
|
|
30
|
+
*/
|
|
31
|
+
export declare const DEV: boolean;
|
|
32
|
+
export type LifecycleCallback = {
|
|
33
|
+
mounted?: boolean;
|
|
34
|
+
(): void | (() => void);
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Ref object type
|
|
38
|
+
*/
|
|
39
|
+
export interface RefObject<T> {
|
|
40
|
+
current: T;
|
|
41
|
+
}
|
|
42
|
+
export declare function ensureIntegration(from?: string): void;
|
|
43
|
+
/**
|
|
44
|
+
* Create and execute a component once. Opens an Owner, runs the component untracked,
|
|
45
|
+
* captures its output, keeps children lazy, propagates context (via sharedConfig), and
|
|
46
|
+
* attaches cleanup. Components execute once and never re-execute.
|
|
47
|
+
*
|
|
48
|
+
* @template P - Props type
|
|
49
|
+
* @param {Component<P>} Comp - Component function
|
|
50
|
+
* @param {P} props - Component props
|
|
51
|
+
* @returns {any} Component output
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```typescript
|
|
55
|
+
* const MyComponent = (props: { name: string }) => {
|
|
56
|
+
* return html`<div>Hello ${props.name}</div>`;
|
|
57
|
+
* };
|
|
58
|
+
*
|
|
59
|
+
* const result = createComponent(MyComponent, { name: 'World' });
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export declare function createComponent<T extends (props?: any) => any, U = any>(Comp: T, props?: U): CreateComponentReturnType<T, U>;
|
|
63
|
+
export declare function $component<T extends (props?: any) => any, U = any>(value: T, props?: U): CreateComponentReturnType<T, U>;
|
|
64
|
+
/**
|
|
65
|
+
* Register a callback to run when component mounts
|
|
66
|
+
*
|
|
67
|
+
* SolidJS-aligned: uses createEffect to schedule the callback.
|
|
68
|
+
* The effect runs once after the reactive graph is established,
|
|
69
|
+
* tied to the current Owner for automatic cleanup.
|
|
70
|
+
*
|
|
71
|
+
* @param {LifecycleCallback} fn - Mount callback
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```typescript
|
|
75
|
+
* const MyComponent = () => {
|
|
76
|
+
* onMount(() => {
|
|
77
|
+
* console.log('Component mounted');
|
|
78
|
+
* return () => console.log('Cleanup');
|
|
79
|
+
* });
|
|
80
|
+
*
|
|
81
|
+
* return html`<div>Content</div>`;
|
|
82
|
+
* };
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
export declare function onMount(fn: LifecycleCallback, reactive?: boolean): void;
|
|
86
|
+
/**
|
|
87
|
+
* Register a callback to run when component unmounts
|
|
88
|
+
*
|
|
89
|
+
* SolidJS-aligned: directly delegates to onCleanup which registers
|
|
90
|
+
* with the current reactive Owner for automatic disposal.
|
|
91
|
+
*
|
|
92
|
+
* @param {() => void} fn - Unmount callback
|
|
93
|
+
*
|
|
94
|
+
* @example
|
|
95
|
+
* ```typescript
|
|
96
|
+
* const MyComponent = () => {
|
|
97
|
+
* onUnmount(() => {
|
|
98
|
+
* console.log('Component is unmounting');
|
|
99
|
+
* });
|
|
100
|
+
*
|
|
101
|
+
* return html`<div>Content</div>`;
|
|
102
|
+
* };
|
|
103
|
+
* ```
|
|
104
|
+
*/
|
|
105
|
+
export declare function onUnmount(fn: () => void): void;
|
|
106
|
+
/**
|
|
107
|
+
* Register a cleanup function
|
|
108
|
+
*
|
|
109
|
+
* Section 1: Component constructs reactive graph including cleanup
|
|
110
|
+
*
|
|
111
|
+
* @param {() => void} fn - Cleanup function
|
|
112
|
+
*
|
|
113
|
+
* @example
|
|
114
|
+
* ```typescript
|
|
115
|
+
* const MyComponent = () => {
|
|
116
|
+
* const timer = setInterval(() => console.log('tick'), 1000);
|
|
117
|
+
*
|
|
118
|
+
* onCleanup(() => clearInterval(timer));
|
|
119
|
+
*
|
|
120
|
+
* return html`<div>Timer running</div>`;
|
|
121
|
+
* };
|
|
122
|
+
* ```
|
|
123
|
+
*/
|
|
124
|
+
export { onCleanup };
|
|
125
|
+
/**
|
|
126
|
+
* Create a reactive effect
|
|
127
|
+
*
|
|
128
|
+
* Effects run when their dependencies change
|
|
129
|
+
* On server, effects run once
|
|
130
|
+
*
|
|
131
|
+
* @param {(v?: any) => any} fn - Effect function
|
|
132
|
+
*
|
|
133
|
+
* @example
|
|
134
|
+
* ```typescript
|
|
135
|
+
* const MyComponent = () => {
|
|
136
|
+
* const [count, setCount] = createSignal(0);
|
|
137
|
+
*
|
|
138
|
+
* useEffect(() => {
|
|
139
|
+
* console.log('Count changed:', count());
|
|
140
|
+
* });
|
|
141
|
+
*
|
|
142
|
+
* return html`<button @click=${() => setCount(count() + 1)}>Click</button>`;
|
|
143
|
+
* };
|
|
144
|
+
* ```
|
|
145
|
+
*/
|
|
146
|
+
export declare function useEffect(callback: () => void | (() => void)): void;
|
|
147
|
+
/**
|
|
148
|
+
* Create a memoized computed value
|
|
149
|
+
*
|
|
150
|
+
* @template T
|
|
151
|
+
* @param {() => T} fn - Computation function
|
|
152
|
+
* @returns {() => T} Memoized accessor
|
|
153
|
+
*
|
|
154
|
+
* @example
|
|
155
|
+
* ```typescript
|
|
156
|
+
* const MyComponent = () => {
|
|
157
|
+
* const [count, setCount] = createSignal(0);
|
|
158
|
+
* const doubled = useMemo(() => count() * 2);
|
|
159
|
+
*
|
|
160
|
+
* return html`<div>Doubled: ${doubled()}</div>`;
|
|
161
|
+
* };
|
|
162
|
+
* ```
|
|
163
|
+
*/
|
|
164
|
+
export declare function useMemo<T>(fn: () => T): () => T;
|
|
165
|
+
/**
|
|
166
|
+
* Create a ref object
|
|
167
|
+
*
|
|
168
|
+
* Refs persist across component re-renders (though components only run once)
|
|
169
|
+
* Useful for storing DOM references and mutable values
|
|
170
|
+
*
|
|
171
|
+
* @template T
|
|
172
|
+
* @param {T} initialValue - Initial value
|
|
173
|
+
* @returns {RefObject<T>} Ref object
|
|
174
|
+
*
|
|
175
|
+
* @example
|
|
176
|
+
* ```typescript
|
|
177
|
+
* const MyComponent = () => {
|
|
178
|
+
* const inputRef = useRef<HTMLInputElement>(null);
|
|
179
|
+
*
|
|
180
|
+
* onMount(() => {
|
|
181
|
+
* inputRef.current?.focus();
|
|
182
|
+
* });
|
|
183
|
+
*
|
|
184
|
+
* return html`<input ref=${inputRef} />`;
|
|
185
|
+
* };
|
|
186
|
+
* ```
|
|
187
|
+
*/
|
|
188
|
+
export declare function useRef<T>(initialValue: T): RefObject<T>;
|
|
189
|
+
/**
|
|
190
|
+
* Create a reducer for state management
|
|
191
|
+
*
|
|
192
|
+
* @template S - State type
|
|
193
|
+
* @template A - Action type
|
|
194
|
+
* @param {(state: S, action: A) => S} reducer - Reducer function
|
|
195
|
+
* @param {S} initialState - Initial state
|
|
196
|
+
* @returns {[() => S, (action: A) => void]} State accessor and dispatch function
|
|
197
|
+
*
|
|
198
|
+
* @example
|
|
199
|
+
* ```typescript
|
|
200
|
+
* type Action = { type: 'increment' } | { type: 'decrement' };
|
|
201
|
+
*
|
|
202
|
+
* const MyComponent = () => {
|
|
203
|
+
* const [state, dispatch] = useReducer(
|
|
204
|
+
* (state: number, action: Action) => {
|
|
205
|
+
* switch (action.type) {
|
|
206
|
+
* case 'increment': return state + 1;
|
|
207
|
+
* case 'decrement': return state - 1;
|
|
208
|
+
* }
|
|
209
|
+
* },
|
|
210
|
+
* 0
|
|
211
|
+
* );
|
|
212
|
+
*
|
|
213
|
+
* return html`
|
|
214
|
+
* <button @click=${() => dispatch({ type: 'increment' })}>
|
|
215
|
+
* Count: ${state()}
|
|
216
|
+
* </button>
|
|
217
|
+
* `;
|
|
218
|
+
* };
|
|
219
|
+
* ```
|
|
220
|
+
*/
|
|
221
|
+
export declare function useReducer<S, A>(reducer: (state: S, action: A) => S, initialState: S): [() => S, (action: A) => void];
|
|
222
|
+
/**
|
|
223
|
+
* Attach an event listener with automatic cleanup
|
|
224
|
+
*
|
|
225
|
+
* @template K - Event type key
|
|
226
|
+
* @param {EventTarget | RefObject<EventTarget | null>} target - Event target or ref
|
|
227
|
+
* @param {K} event - Event name
|
|
228
|
+
* @param {(event: Event) => void} handler - Event handler
|
|
229
|
+
* @param {AddEventListenerOptions} options - Event listener options
|
|
230
|
+
*
|
|
231
|
+
* @example
|
|
232
|
+
* ```typescript
|
|
233
|
+
* const MyComponent = () => {
|
|
234
|
+
* const divRef = useRef<HTMLDivElement>(null);
|
|
235
|
+
*
|
|
236
|
+
* useEventListener(divRef, 'click', (e) => {
|
|
237
|
+
* console.log('Div clicked', e);
|
|
238
|
+
* });
|
|
239
|
+
*
|
|
240
|
+
* useEventListener(window, 'resize', () => {
|
|
241
|
+
* console.log('Window resized');
|
|
242
|
+
* });
|
|
243
|
+
*
|
|
244
|
+
* return html`<div ref=${divRef}>Click me</div>`;
|
|
245
|
+
* };
|
|
246
|
+
* ```
|
|
247
|
+
*/
|
|
248
|
+
export declare function useEventListener<K extends keyof WindowEventMap>(target: EventTarget | RefObject<EventTarget | null> | Window | Document, event: K, handler: (event: WindowEventMap[K]) => void, options?: AddEventListenerOptions): void;
|
|
249
|
+
/**
|
|
250
|
+
* Create a callback function (memoization optimization)
|
|
251
|
+
*
|
|
252
|
+
* In Fluixi, components only run once, so this is mostly for
|
|
253
|
+
* API compatibility and explicit intent
|
|
254
|
+
*
|
|
255
|
+
* @template T
|
|
256
|
+
* @param {T} callback - Callback function
|
|
257
|
+
* @returns {T} Callback function
|
|
258
|
+
*
|
|
259
|
+
* @example
|
|
260
|
+
* ```typescript
|
|
261
|
+
* const MyComponent = () => {
|
|
262
|
+
* const handleClick = useCallback(() => {
|
|
263
|
+
* console.log('Clicked');
|
|
264
|
+
* });
|
|
265
|
+
*
|
|
266
|
+
* return html`<button @click=${handleClick}>Click</button>`;
|
|
267
|
+
* };
|
|
268
|
+
* ```
|
|
269
|
+
*/
|
|
270
|
+
export declare function useCallback<T extends (...args: any[]) => any>(callback: T): T;
|
|
271
|
+
/**
|
|
272
|
+
* Batch update helper
|
|
273
|
+
* Re-exported for convenience
|
|
274
|
+
*/
|
|
275
|
+
export { batch };
|
|
276
|
+
/**
|
|
277
|
+
* Create a memo
|
|
278
|
+
* Re-exported for convenience
|
|
279
|
+
*/
|
|
280
|
+
export { createMemo };
|
|
281
|
+
/**
|
|
282
|
+
* Create an effect
|
|
283
|
+
* Re-exported for convenience
|
|
284
|
+
*/
|
|
285
|
+
export { createEffect };
|
|
286
|
+
/**
|
|
287
|
+
* Get current reactive owner
|
|
288
|
+
* Re-exported for convenience
|
|
289
|
+
*/
|
|
290
|
+
export { getOwner };
|
|
291
|
+
/**
|
|
292
|
+
* Run with specific owner
|
|
293
|
+
* Re-exported for convenience
|
|
294
|
+
*/
|
|
295
|
+
export { runWithOwner };
|
|
296
|
+
/**
|
|
297
|
+
* Helper to check if we're in a component context
|
|
298
|
+
* @internal
|
|
299
|
+
*/
|
|
300
|
+
export declare function hasLifecycleContext(): boolean;
|
|
301
|
+
/**
|
|
302
|
+
* Check if in development mode
|
|
303
|
+
*
|
|
304
|
+
* @returns {boolean} True if in development mode
|
|
305
|
+
*
|
|
306
|
+
* @example
|
|
307
|
+
* ```typescript
|
|
308
|
+
* if (isDev()) {
|
|
309
|
+
* console.log('Running in development mode');
|
|
310
|
+
* }
|
|
311
|
+
* ```
|
|
312
|
+
*/
|
|
313
|
+
export declare function isDev(): boolean;
|
|
314
|
+
/**
|
|
315
|
+
* Development-only code execution
|
|
316
|
+
*
|
|
317
|
+
* @param {() => void} fn - Function to run in dev mode
|
|
318
|
+
*
|
|
319
|
+
* @example
|
|
320
|
+
* ```typescript
|
|
321
|
+
* devOnly(() => {
|
|
322
|
+
* console.log('This only runs in development');
|
|
323
|
+
* });
|
|
324
|
+
* ```
|
|
325
|
+
*/
|
|
326
|
+
export declare function devOnly(fn: () => void): void;
|
|
327
|
+
export type { Component, ComponentProps } from "@fluixi/dom";
|
|
328
|
+
//# sourceMappingURL=component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../../src/lib/render/component.ts"],"names":[],"mappings":"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"}
|