@stacksjs/stx 0.2.10 → 0.2.11
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/README.md +16 -11
- package/dist/a11y.d.ts +2 -1
- package/dist/analyzer.d.ts +4 -0
- package/dist/app-shell.d.ts +72 -0
- package/dist/app.d.ts +1 -0
- package/dist/broadcasting.d.ts +77 -0
- package/dist/build-assets.d.ts +32 -0
- package/dist/build-mode-detector.d.ts +26 -0
- package/dist/build.d.ts +31 -0
- package/dist/builtins/icon.d.ts +7 -0
- package/dist/builtins/index.d.ts +21 -0
- package/dist/builtins/stx-image.d.ts +2 -0
- package/dist/builtins/stx-link.d.ts +2 -0
- package/dist/builtins/stx-loading-indicator.d.ts +2 -0
- package/dist/bundle-analyzer/index.d.ts +2 -0
- package/dist/bundle-analyzer.js +20 -20
- package/dist/caching.d.ts +27 -0
- package/dist/cli.js +3941 -2609
- package/dist/client-helpers.d.ts +7 -3
- package/dist/client-script-bundler.d.ts +27 -0
- package/dist/client-script.d.ts +5 -1
- package/dist/client.d.ts +1 -0
- package/dist/component-hmr.d.ts +1 -0
- package/dist/component-processing.d.ts +107 -0
- package/dist/component-registry.d.ts +54 -0
- package/dist/component-renderer.d.ts +18 -0
- package/dist/components/StxImage.stx +12 -0
- package/dist/components/StxLink.stx +18 -8
- package/dist/composables/index.d.ts +7 -0
- package/dist/composables/use-broadcast-channel.d.ts +1 -0
- package/dist/composables/use-channel.d.ts +67 -0
- package/dist/composables/use-intersection-observer.d.ts +2 -0
- package/dist/composables/use-keyboard.d.ts +1 -0
- package/dist/composables/use-mouse.d.ts +1 -0
- package/dist/composables/use-router.d.ts +4 -0
- package/dist/composables/use-websocket.d.ts +1 -0
- package/dist/composables.d.ts +2 -0
- package/dist/composition-api.d.ts +1 -0
- package/dist/computed.d.ts +1 -0
- package/dist/config.d.ts +12 -1
- package/dist/craft-bridge.d.ts +6 -3
- package/dist/craft-components.d.ts +1 -0
- package/dist/craft.js +39 -33
- package/dist/deploy/index.d.ts +1 -0
- package/dist/dev-server/crosswind.d.ts +2 -5
- package/dist/dev-server/native-window.d.ts +19 -1
- package/dist/dev-server/serve-app.d.ts +15 -0
- package/dist/dev-server/serve-file.d.ts +3 -0
- package/dist/dev-server/serve-markdown.d.ts +3 -0
- package/dist/dev-server/serve-multi.d.ts +5 -0
- package/dist/dev-server/types.d.ts +2 -0
- package/dist/dev-server.d.ts +6 -40
- package/dist/devtools.d.ts +1 -0
- package/dist/directive-api.d.ts +1 -1
- package/dist/document-shell.d.ts +33 -0
- package/dist/error-boundaries.d.ts +1 -0
- package/dist/events.d.ts +1 -0
- package/dist/expressions.d.ts +38 -0
- package/dist/forms-validation.d.ts +2 -0
- package/dist/head.d.ts +1 -0
- package/dist/hot-reload.d.ts +1 -0
- package/dist/hydration-runtime.d.ts +1 -0
- package/dist/hydration.d.ts +1 -0
- package/dist/i18n.d.ts +3 -1
- package/dist/image-optimization/build-plugin.d.ts +1 -0
- package/dist/index.d.ts +22 -1
- package/dist/index.js +5569 -4182
- package/dist/inline-assets.d.ts +28 -0
- package/dist/internal-markdown.d.ts +0 -4
- package/dist/jsx-runtime.d.ts +1 -0
- package/dist/keep-alive.d.ts +1 -0
- package/dist/manifest.d.ts +41 -0
- package/dist/markdown.d.ts +1 -0
- package/dist/media/client/blur-up.d.ts +1 -0
- package/dist/media/client/lazy-load.d.ts +1 -0
- package/dist/media/client/upload-handler.d.ts +1 -0
- package/dist/media/shared/cache.d.ts +2 -0
- package/dist/media/video/index.d.ts +1 -0
- package/dist/media/video/processor/thumbnail.d.ts +1 -0
- package/dist/misc-directives.d.ts +49 -0
- package/dist/parser/directive-parser.d.ts +13 -0
- package/dist/performance-utils.d.ts +2 -0
- package/dist/placeholder.d.ts +45 -0
- package/dist/plugin-system.d.ts +32 -2
- package/dist/process.d.ts +11 -1
- package/dist/production-builder.d.ts +42 -0
- package/dist/production-server.d.ts +19 -0
- package/dist/props.d.ts +1 -0
- package/dist/pwa.js +3883 -2679
- package/dist/reactive.d.ts +2 -16
- package/dist/reactivity.d.ts +1 -0
- package/dist/router.d.ts +1 -1
- package/dist/runtime-injection.d.ts +20 -0
- package/dist/runtime.d.ts +2 -2
- package/dist/script-classifier.d.ts +35 -0
- package/dist/script-validation.d.ts +16 -0
- package/dist/server-bindings.d.ts +7 -0
- package/dist/server-components.d.ts +4 -0
- package/dist/signal-processing.d.ts +109 -0
- package/dist/signals-api.d.ts +309 -0
- package/dist/signals.d.ts +2 -309
- package/dist/spa-shell.d.ts +1 -0
- package/dist/ssg.js +3862 -2655
- package/dist/ssr.d.ts +1 -0
- package/dist/state-management.d.ts +27 -0
- package/dist/store-imports.d.ts +24 -0
- package/dist/store-loader.d.ts +16 -0
- package/dist/story/bun-test.d.ts +1 -0
- package/dist/story/compiled-output.d.ts +1 -0
- package/dist/story/interactions.d.ts +1 -0
- package/dist/story/renderer.d.ts +2 -0
- package/dist/story/setup.d.ts +1 -0
- package/dist/story/ui/code-panel.d.ts +1 -0
- package/dist/stx.d.ts +437 -0
- package/dist/style-scoping.d.ts +23 -0
- package/dist/template-compiler.d.ts +31 -0
- package/dist/template-hydrator.d.ts +18 -0
- package/dist/transitions.d.ts +1 -0
- package/dist/types/config-types.d.ts +62 -0
- package/dist/validator.d.ts +1 -0
- package/dist/variable-extractor.d.ts +1 -1
- package/dist/view-composers.d.ts +1 -0
- package/dist/virtual-scrolling.d.ts +1 -0
- package/dist/visual-testing.js +2 -2
- package/dist/web-components.d.ts +1 -0
- package/dist/x-element.d.ts +1 -0
- package/package.json +72 -7
- package/stx.d.ts +437 -0
package/stx.d.ts
ADDED
|
@@ -0,0 +1,437 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* STX Ambient Type Declarations
|
|
3
|
+
*
|
|
4
|
+
* This file is shipped with the @stacksjs/stx package and referenced from
|
|
5
|
+
* the package's main types entry. When stx is installed, TypeScript picks
|
|
6
|
+
* these declarations up automatically — apps do NOT need to write their own
|
|
7
|
+
* stx.d.ts workaround for runtime globals.
|
|
8
|
+
*
|
|
9
|
+
* What's declared here:
|
|
10
|
+
* 1. Module declarations for `*.stx` and `*.md` imports
|
|
11
|
+
* 2. Runtime globals injected by the stx signals runtime into <script client>
|
|
12
|
+
* blocks (signals, lifecycle, stores, composables, head, routing, etc.)
|
|
13
|
+
* 3. The `window.stx` registry interface
|
|
14
|
+
*
|
|
15
|
+
* Source of truth for the auto-imported global list:
|
|
16
|
+
* packages/stx/src/client-script.ts → STX_AUTO_IMPORTS
|
|
17
|
+
* packages/stx/src/signals.ts → window.stx = { ... }
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
// ============================================================================
|
|
21
|
+
// Module declarations
|
|
22
|
+
// ============================================================================
|
|
23
|
+
|
|
24
|
+
// Allow importing .stx files
|
|
25
|
+
declare module '*.stx'
|
|
26
|
+
|
|
27
|
+
// Allow importing .md files with frontmatter
|
|
28
|
+
declare module '*.md' {
|
|
29
|
+
const content: string
|
|
30
|
+
const data: Record<string, any>
|
|
31
|
+
export default content
|
|
32
|
+
export { data }
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// ============================================================================
|
|
36
|
+
// Signal types
|
|
37
|
+
// ============================================================================
|
|
38
|
+
|
|
39
|
+
interface StxSignal<T> {
|
|
40
|
+
(): T
|
|
41
|
+
set: (value: T) => void
|
|
42
|
+
update: (fn: (current: T) => T) => void
|
|
43
|
+
subscribe: (cb: (value: T) => void) => () => void
|
|
44
|
+
readonly _isSignal: true
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
interface StxDerivedSignal<T> {
|
|
48
|
+
(): T
|
|
49
|
+
readonly _isSignal: true
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
interface StxRef<T> {
|
|
53
|
+
value: T
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
type StxCleanup = () => void
|
|
57
|
+
|
|
58
|
+
// ============================================================================
|
|
59
|
+
// Signals (modern reactivity)
|
|
60
|
+
// ============================================================================
|
|
61
|
+
|
|
62
|
+
declare function state<T>(initial: T): StxSignal<T>
|
|
63
|
+
declare function derived<T>(compute: () => T): StxDerivedSignal<T>
|
|
64
|
+
declare function effect(fn: () => void | StxCleanup): StxCleanup
|
|
65
|
+
declare function batch(fn: () => void): void
|
|
66
|
+
declare function untrack<T>(value: T | StxSignal<T> | StxDerivedSignal<T>): T
|
|
67
|
+
declare function peek<T>(fn: () => T): T
|
|
68
|
+
declare function isSignal(value: unknown): value is StxSignal<unknown>
|
|
69
|
+
declare function isDerived(value: unknown): value is StxDerivedSignal<unknown>
|
|
70
|
+
|
|
71
|
+
// ============================================================================
|
|
72
|
+
// Lifecycle
|
|
73
|
+
// ============================================================================
|
|
74
|
+
|
|
75
|
+
declare function onMount(fn: () => void | StxCleanup): void
|
|
76
|
+
declare function onDestroy(fn: () => void): void
|
|
77
|
+
declare function onBeforeMount(fn: () => void): void
|
|
78
|
+
declare function onMounted(fn: () => void | StxCleanup): void
|
|
79
|
+
declare function onBeforeUpdate(fn: () => void): void
|
|
80
|
+
declare function onUpdated(fn: () => void): void
|
|
81
|
+
declare function onBeforeUnmount(fn: () => void): void
|
|
82
|
+
declare function onUnmounted(fn: () => void): void
|
|
83
|
+
declare function onErrorCaptured(fn: (error: unknown, instance: any, info: string) => boolean | void): void
|
|
84
|
+
|
|
85
|
+
// ============================================================================
|
|
86
|
+
// Template refs
|
|
87
|
+
// ============================================================================
|
|
88
|
+
|
|
89
|
+
declare function useRef<T = HTMLElement>(name: string): { current: T | null }
|
|
90
|
+
|
|
91
|
+
// ============================================================================
|
|
92
|
+
// Routing / navigation
|
|
93
|
+
// ============================================================================
|
|
94
|
+
|
|
95
|
+
declare function navigate(url: string, options?: { replace?: boolean }): void
|
|
96
|
+
declare function goBack(): void
|
|
97
|
+
declare function goForward(): void
|
|
98
|
+
declare function useRoute(): {
|
|
99
|
+
path: string
|
|
100
|
+
params: Record<string, string>
|
|
101
|
+
query: Record<string, string>
|
|
102
|
+
hash: string
|
|
103
|
+
}
|
|
104
|
+
declare function setRouteParams(params: Record<string, string>): void
|
|
105
|
+
declare function useSearchParams(): {
|
|
106
|
+
get: (key: string) => string | null
|
|
107
|
+
set: (key: string, value: string) => void
|
|
108
|
+
delete: (key: string) => void
|
|
109
|
+
has: (key: string) => boolean
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// ============================================================================
|
|
113
|
+
// Data fetching
|
|
114
|
+
// ============================================================================
|
|
115
|
+
|
|
116
|
+
interface StxQueryResult<T> {
|
|
117
|
+
data: StxSignal<T | null>
|
|
118
|
+
loading: StxSignal<boolean>
|
|
119
|
+
error: StxSignal<Error | null>
|
|
120
|
+
refetch: () => Promise<void>
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
interface StxMutationResult<T> {
|
|
124
|
+
data: StxSignal<T | null>
|
|
125
|
+
loading: StxSignal<boolean>
|
|
126
|
+
error: StxSignal<Error | null>
|
|
127
|
+
mutate: (body?: any) => Promise<T>
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
declare function useFetch<T = any>(url: string, options?: any): StxQueryResult<T>
|
|
131
|
+
declare function useQuery<T = any>(url: string, options?: any): StxQueryResult<T>
|
|
132
|
+
declare function useMutation<T = any>(url: string, options?: any): StxMutationResult<T>
|
|
133
|
+
|
|
134
|
+
// ============================================================================
|
|
135
|
+
// DOM utilities
|
|
136
|
+
// ============================================================================
|
|
137
|
+
|
|
138
|
+
declare function useEventListener<K extends keyof WindowEventMap>(
|
|
139
|
+
target: Window | Document | HTMLElement | string | null,
|
|
140
|
+
event: K,
|
|
141
|
+
handler: (event: WindowEventMap[K]) => void,
|
|
142
|
+
options?: boolean | AddEventListenerOptions,
|
|
143
|
+
): StxCleanup
|
|
144
|
+
declare function useEventListener(
|
|
145
|
+
target: Window | Document | HTMLElement | string | null,
|
|
146
|
+
event: string,
|
|
147
|
+
handler: (event: Event) => void,
|
|
148
|
+
options?: boolean | AddEventListenerOptions,
|
|
149
|
+
): StxCleanup
|
|
150
|
+
declare function useMeta(meta: Record<string, string>): void
|
|
151
|
+
declare function useClickOutside(target: any, handler: (event: MouseEvent) => void): StxCleanup
|
|
152
|
+
declare function useFocus(target: any): { focused: StxSignal<boolean>, focus: () => void, blur: () => void }
|
|
153
|
+
|
|
154
|
+
// ============================================================================
|
|
155
|
+
// Timers / scheduling
|
|
156
|
+
// ============================================================================
|
|
157
|
+
|
|
158
|
+
declare function useDebounce<T extends (...args: any[]) => any>(fn: T, delay: number): T
|
|
159
|
+
declare function useDebouncedValue<T>(value: StxSignal<T>, delay: number): StxSignal<T>
|
|
160
|
+
declare function useThrottle<T extends (...args: any[]) => any>(fn: T, delay: number): T
|
|
161
|
+
declare function useInterval(fn: () => void, ms: number, options?: { immediate?: boolean }): {
|
|
162
|
+
start: () => void
|
|
163
|
+
stop: () => void
|
|
164
|
+
isActive: StxSignal<boolean>
|
|
165
|
+
}
|
|
166
|
+
declare function useTimeout(fn: () => void, ms: number): {
|
|
167
|
+
start: () => void
|
|
168
|
+
stop: () => void
|
|
169
|
+
isPending: StxSignal<boolean>
|
|
170
|
+
}
|
|
171
|
+
declare function nextTick(fn?: () => void): Promise<void>
|
|
172
|
+
|
|
173
|
+
// ============================================================================
|
|
174
|
+
// State utilities
|
|
175
|
+
// ============================================================================
|
|
176
|
+
|
|
177
|
+
declare function useToggle(initial?: boolean): [StxSignal<boolean>, (value?: boolean) => void]
|
|
178
|
+
declare function useCounter(initial?: number, options?: { min?: number, max?: number }): {
|
|
179
|
+
count: StxSignal<number>
|
|
180
|
+
inc: (n?: number) => void
|
|
181
|
+
dec: (n?: number) => void
|
|
182
|
+
set: (n: number) => void
|
|
183
|
+
reset: () => void
|
|
184
|
+
}
|
|
185
|
+
declare function useAsync<T>(fn: () => Promise<T>): {
|
|
186
|
+
data: StxSignal<T | null>
|
|
187
|
+
loading: StxSignal<boolean>
|
|
188
|
+
error: StxSignal<Error | null>
|
|
189
|
+
execute: () => Promise<T>
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
// ============================================================================
|
|
193
|
+
// Storage
|
|
194
|
+
// ============================================================================
|
|
195
|
+
|
|
196
|
+
declare function useLocalStorage<T>(key: string, defaultValue: T): StxSignal<T>
|
|
197
|
+
declare function useSessionStorage<T>(key: string, defaultValue: T): StxSignal<T>
|
|
198
|
+
|
|
199
|
+
// ============================================================================
|
|
200
|
+
// WebSocket
|
|
201
|
+
// ============================================================================
|
|
202
|
+
|
|
203
|
+
declare function useWebSocket(url: string, options?: {
|
|
204
|
+
immediate?: boolean
|
|
205
|
+
autoReconnect?: boolean | { retries?: number, delay?: number }
|
|
206
|
+
onMessage?: (event: MessageEvent) => void
|
|
207
|
+
onConnected?: () => void
|
|
208
|
+
onDisconnected?: () => void
|
|
209
|
+
onError?: (event: Event) => void
|
|
210
|
+
}): {
|
|
211
|
+
status: StxSignal<'CONNECTING' | 'OPEN' | 'CLOSING' | 'CLOSED'>
|
|
212
|
+
data: StxSignal<any>
|
|
213
|
+
send: (data: string | ArrayBuffer | Blob) => void
|
|
214
|
+
open: () => void
|
|
215
|
+
close: () => void
|
|
216
|
+
ws: WebSocket | null
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
// ============================================================================
|
|
220
|
+
// Color mode
|
|
221
|
+
// ============================================================================
|
|
222
|
+
|
|
223
|
+
declare function useColorMode(): {
|
|
224
|
+
mode: StxSignal<'light' | 'dark' | 'auto'>
|
|
225
|
+
setMode: (mode: 'light' | 'dark' | 'auto') => void
|
|
226
|
+
}
|
|
227
|
+
declare function useDark(): StxSignal<boolean>
|
|
228
|
+
|
|
229
|
+
// ============================================================================
|
|
230
|
+
// Head / SEO
|
|
231
|
+
// ============================================================================
|
|
232
|
+
|
|
233
|
+
interface StxHeadConfig {
|
|
234
|
+
title?: string
|
|
235
|
+
titleTemplate?: string | ((title?: string) => string)
|
|
236
|
+
meta?: Array<Record<string, string>>
|
|
237
|
+
link?: Array<Record<string, string>>
|
|
238
|
+
script?: Array<Record<string, string> & { children?: string }>
|
|
239
|
+
style?: Array<Record<string, string> & { children?: string }>
|
|
240
|
+
htmlAttrs?: Record<string, string>
|
|
241
|
+
bodyAttrs?: Record<string, string>
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
interface StxSeoMetaConfig {
|
|
245
|
+
title?: string
|
|
246
|
+
description?: string
|
|
247
|
+
keywords?: string
|
|
248
|
+
author?: string
|
|
249
|
+
ogTitle?: string
|
|
250
|
+
ogDescription?: string
|
|
251
|
+
ogImage?: string
|
|
252
|
+
ogUrl?: string
|
|
253
|
+
ogType?: string
|
|
254
|
+
twitterCard?: 'summary' | 'summary_large_image' | 'app' | 'player'
|
|
255
|
+
twitterTitle?: string
|
|
256
|
+
twitterDescription?: string
|
|
257
|
+
twitterImage?: string
|
|
258
|
+
robots?: string
|
|
259
|
+
canonical?: string
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
declare function useHead(config: StxHeadConfig): void
|
|
263
|
+
declare function useSeoMeta(config: StxSeoMetaConfig): void
|
|
264
|
+
|
|
265
|
+
// ============================================================================
|
|
266
|
+
// Vue-style reactivity (alternative API)
|
|
267
|
+
// ============================================================================
|
|
268
|
+
|
|
269
|
+
declare function ref<T>(value: T): StxRef<T>
|
|
270
|
+
declare function reactive<T extends object>(target: T): T
|
|
271
|
+
declare function computed<T>(getter: () => T): StxRef<T>
|
|
272
|
+
declare function watch<T>(
|
|
273
|
+
source: (() => T) | StxRef<T> | StxSignal<T>,
|
|
274
|
+
callback: (value: T, oldValue: T) => void,
|
|
275
|
+
options?: { immediate?: boolean, deep?: boolean },
|
|
276
|
+
): StxCleanup
|
|
277
|
+
declare function watchEffect(fn: () => void): StxCleanup
|
|
278
|
+
declare function watchMultiple(
|
|
279
|
+
sources: Array<() => any>,
|
|
280
|
+
callback: (values: any[], oldValues: any[]) => void,
|
|
281
|
+
options?: { immediate?: boolean },
|
|
282
|
+
): StxCleanup
|
|
283
|
+
|
|
284
|
+
// ============================================================================
|
|
285
|
+
// Component definition / composition API
|
|
286
|
+
// ============================================================================
|
|
287
|
+
|
|
288
|
+
declare function defineProps<T extends Record<string, any> = Record<string, any>>(definitions?: any): T
|
|
289
|
+
declare function withDefaults<T extends Record<string, any>>(props: T, defaults: Partial<T>): T
|
|
290
|
+
declare function defineEmits<T extends string = string>(): (event: T, payload?: any) => void
|
|
291
|
+
declare function defineExpose<T extends Record<string, any>>(exposed: T): void
|
|
292
|
+
declare function provide<T>(key: string | symbol, value: T): void
|
|
293
|
+
declare function inject<T>(key: string | symbol, defaultValue?: T): T | undefined
|
|
294
|
+
declare function getCurrentInstance(): any
|
|
295
|
+
declare function useSlots(): Record<string, any>
|
|
296
|
+
declare function useAttrs(): Record<string, any>
|
|
297
|
+
declare function $computed<T>(getter: () => T): StxRef<T>
|
|
298
|
+
declare function $watch<T>(
|
|
299
|
+
source: (() => T) | StxRef<T> | StxSignal<T>,
|
|
300
|
+
callback: (value: T, oldValue: T) => void,
|
|
301
|
+
options?: { immediate?: boolean, deep?: boolean },
|
|
302
|
+
): StxCleanup
|
|
303
|
+
|
|
304
|
+
// ============================================================================
|
|
305
|
+
// Stores (Pinia-inspired, signals-based)
|
|
306
|
+
// ============================================================================
|
|
307
|
+
|
|
308
|
+
interface StxStorePersistOptions {
|
|
309
|
+
pick?: string[]
|
|
310
|
+
storage?: 'localStorage' | 'sessionStorage'
|
|
311
|
+
key?: string
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
interface StxStoreOptions {
|
|
315
|
+
persist?: boolean | StxStorePersistOptions
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
declare function defineStore<T>(
|
|
319
|
+
id: string,
|
|
320
|
+
setup: () => T,
|
|
321
|
+
options?: StxStoreOptions,
|
|
322
|
+
): () => T
|
|
323
|
+
declare function defineStore<S extends Record<string, any>, G extends Record<string, any>, A extends Record<string, any>>(
|
|
324
|
+
id: string,
|
|
325
|
+
options: {
|
|
326
|
+
state?: () => S
|
|
327
|
+
getters?: G
|
|
328
|
+
actions?: A
|
|
329
|
+
persist?: boolean | StxStorePersistOptions
|
|
330
|
+
},
|
|
331
|
+
): () => S & G & A
|
|
332
|
+
declare function useStore<T = any>(id: string): T
|
|
333
|
+
declare function createStore<T>(setup: () => T, options?: StxStoreOptions): () => T
|
|
334
|
+
declare function action<T extends (...args: any[]) => any>(fn: T): T
|
|
335
|
+
declare function createSelector<T, R>(selector: (state: T) => R): (state: T) => R
|
|
336
|
+
|
|
337
|
+
// ============================================================================
|
|
338
|
+
// JSX runtime (Vue/React style)
|
|
339
|
+
// ============================================================================
|
|
340
|
+
|
|
341
|
+
declare function h(tag: string | Function, props?: Record<string, any> | null, ...children: any[]): any
|
|
342
|
+
declare const Fragment: unique symbol
|
|
343
|
+
|
|
344
|
+
// ============================================================================
|
|
345
|
+
// window.stx registry
|
|
346
|
+
// ============================================================================
|
|
347
|
+
|
|
348
|
+
interface StxRuntimeRegistry {
|
|
349
|
+
// Signals
|
|
350
|
+
state: typeof state
|
|
351
|
+
derived: typeof derived
|
|
352
|
+
effect: typeof effect
|
|
353
|
+
batch: typeof batch
|
|
354
|
+
untrack: typeof untrack
|
|
355
|
+
peek: typeof peek
|
|
356
|
+
isSignal: typeof isSignal
|
|
357
|
+
|
|
358
|
+
// Lifecycle
|
|
359
|
+
onMount: typeof onMount
|
|
360
|
+
onDestroy: typeof onDestroy
|
|
361
|
+
|
|
362
|
+
// Composables
|
|
363
|
+
useFetch: typeof useFetch
|
|
364
|
+
useRef: typeof useRef
|
|
365
|
+
useQuery: typeof useQuery
|
|
366
|
+
useMutation: typeof useMutation
|
|
367
|
+
|
|
368
|
+
// Routing
|
|
369
|
+
navigate: typeof navigate
|
|
370
|
+
goBack: typeof goBack
|
|
371
|
+
goForward: typeof goForward
|
|
372
|
+
useRoute: typeof useRoute
|
|
373
|
+
setRouteParams: typeof setRouteParams
|
|
374
|
+
useSearchParams: typeof useSearchParams
|
|
375
|
+
|
|
376
|
+
// Composition
|
|
377
|
+
provide: typeof provide
|
|
378
|
+
defineProps: typeof defineProps
|
|
379
|
+
withDefaults: typeof withDefaults
|
|
380
|
+
defineEmits: typeof defineEmits
|
|
381
|
+
defineExpose: typeof defineExpose
|
|
382
|
+
|
|
383
|
+
// Vue compat
|
|
384
|
+
ref: typeof ref
|
|
385
|
+
reactive: typeof reactive
|
|
386
|
+
computed: typeof computed
|
|
387
|
+
watch: typeof watch
|
|
388
|
+
watchEffect: typeof watchEffect
|
|
389
|
+
$computed: typeof $computed
|
|
390
|
+
$watch: typeof $watch
|
|
391
|
+
|
|
392
|
+
// Utilities
|
|
393
|
+
useDebounce: typeof useDebounce
|
|
394
|
+
useDebouncedValue: typeof useDebouncedValue
|
|
395
|
+
useThrottle: typeof useThrottle
|
|
396
|
+
useInterval: typeof useInterval
|
|
397
|
+
useTimeout: typeof useTimeout
|
|
398
|
+
useToggle: typeof useToggle
|
|
399
|
+
useCounter: typeof useCounter
|
|
400
|
+
useClickOutside: typeof useClickOutside
|
|
401
|
+
useFocus: typeof useFocus
|
|
402
|
+
useAsync: typeof useAsync
|
|
403
|
+
useLocalStorage: typeof useLocalStorage
|
|
404
|
+
useEventListener: typeof useEventListener
|
|
405
|
+
useWebSocket: typeof useWebSocket
|
|
406
|
+
useColorMode: typeof useColorMode
|
|
407
|
+
useDark: typeof useDark
|
|
408
|
+
useHead: typeof useHead
|
|
409
|
+
useSeoMeta: typeof useSeoMeta
|
|
410
|
+
|
|
411
|
+
// Stores
|
|
412
|
+
defineStore: typeof defineStore
|
|
413
|
+
useStore: typeof useStore
|
|
414
|
+
|
|
415
|
+
// Mount API
|
|
416
|
+
mount: (setupFn: () => any) => void
|
|
417
|
+
mountEl: (selector: string, setupFn: () => any) => void
|
|
418
|
+
|
|
419
|
+
// Helpers (template helpers — populated by app)
|
|
420
|
+
helpers: Record<string, any>
|
|
421
|
+
|
|
422
|
+
// Internals (escape hatch)
|
|
423
|
+
[key: string]: any
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
// Bare global so existing code that references `stx` (without `window.`) still works
|
|
427
|
+
declare const stx: StxRuntimeRegistry
|
|
428
|
+
|
|
429
|
+
// Augment Window so `window.stx` is typed
|
|
430
|
+
interface Window {
|
|
431
|
+
stx: StxRuntimeRegistry
|
|
432
|
+
__STX_STORES__?: Record<string, any>
|
|
433
|
+
__STX_CURRENT_PROPS__?: Record<string, any>
|
|
434
|
+
__STX_CURRENT_ELEMENT__?: HTMLElement | null
|
|
435
|
+
__stxRouter?: boolean
|
|
436
|
+
__stxRouterConfig?: Record<string, any>
|
|
437
|
+
}
|