revojs 0.0.79 → 0.0.81
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/html/index.d.ts +14 -1
- package/dist/index.js +46 -14
- package/dist/router/index.d.ts +0 -4
- package/dist/runtime/index.d.ts +1 -1
- package/package.json +1 -1
package/dist/html/index.d.ts
CHANGED
|
@@ -67,6 +67,14 @@ export interface CustomElement<TEvents extends Events, TAttributes extends Attri
|
|
|
67
67
|
export interface CustomElementConstructor<TEvents extends Events, TAttributes extends Attributes> {
|
|
68
68
|
new (): CustomElement<TEvents, TAttributes>;
|
|
69
69
|
}
|
|
70
|
+
export declare class ViewTransitionEvent extends Event {
|
|
71
|
+
readonly name: string;
|
|
72
|
+
constructor(name: string);
|
|
73
|
+
}
|
|
74
|
+
export declare class AfterViewTransitionEvent extends Event {
|
|
75
|
+
readonly name: string;
|
|
76
|
+
constructor(name: string);
|
|
77
|
+
}
|
|
70
78
|
export declare class MountedEvent extends Event {
|
|
71
79
|
constructor();
|
|
72
80
|
}
|
|
@@ -88,7 +96,8 @@ export declare function useEvent<T extends keyof ElementEventMap>(scope: Scope,
|
|
|
88
96
|
export declare function useEvent<T extends keyof WindowEventMap>(scope: Scope, target: Window | undefined | null, event: T, input: EventListener<WindowEventMap[T]>, options?: AddEventListenerOptions): void;
|
|
89
97
|
export declare function useEvent<T extends keyof HTMLElementEventMap>(scope: Scope, target: Document | HTMLElement | undefined | null, event: T, input: EventListener<HTMLElementEventMap[T]>, options?: AddEventListenerOptions): void;
|
|
90
98
|
export declare function onMounted(scope: Scope, event: EventListener<MountedEvent>): void;
|
|
91
|
-
export declare function startViewTransition(invoke: ViewTransitionUpdateCallback): Promise<void>;
|
|
99
|
+
export declare function startViewTransition(name: string, invoke: ViewTransitionUpdateCallback): Promise<void>;
|
|
100
|
+
export declare function onViewTransition(scope: Scope, viewTransition: string, name: string): () => string;
|
|
92
101
|
export declare function isClient(): boolean;
|
|
93
102
|
export declare function isServer(): boolean;
|
|
94
103
|
export declare function preventDefault(event: Event): void;
|
|
@@ -97,6 +106,10 @@ export declare function stopImmediatePropagation(event: Event): void;
|
|
|
97
106
|
export declare const components: Map<string, ComponentConstructor<Events, Attributes>>;
|
|
98
107
|
export declare const HOST_CONTEXT: import("..").Descriptor<HostContext>;
|
|
99
108
|
declare global {
|
|
109
|
+
interface ElementEventMap {
|
|
110
|
+
viewTransition: ViewTransitionEvent;
|
|
111
|
+
afterViewTransition: AfterViewTransitionEvent;
|
|
112
|
+
}
|
|
100
113
|
interface HTMLElementEventMap {
|
|
101
114
|
mounted: MountedEvent;
|
|
102
115
|
}
|
package/dist/index.js
CHANGED
|
@@ -438,14 +438,17 @@ async function $fetch(scope, input, options) {
|
|
|
438
438
|
function useAsync(scope, invoke, options) {
|
|
439
439
|
const { tasks } = useRuntime(scope);
|
|
440
440
|
const state = createState();
|
|
441
|
-
const isLoading = createState(
|
|
441
|
+
const isLoading = createState(false);
|
|
442
442
|
const execute = async () => {
|
|
443
|
+
isLoading.value = true;
|
|
443
444
|
try {
|
|
444
|
-
const result = await invoke()
|
|
445
|
-
if (options?.viewTransition) await startViewTransition(() => state.value = result);
|
|
445
|
+
const result = await invoke();
|
|
446
|
+
if (options?.viewTransition) await startViewTransition(options.viewTransition, () => state.value = result);
|
|
446
447
|
else state.value = result;
|
|
447
448
|
} catch (error) {
|
|
448
449
|
options?.catch?.(error);
|
|
450
|
+
} finally {
|
|
451
|
+
isLoading.value = false;
|
|
449
452
|
}
|
|
450
453
|
return state.value;
|
|
451
454
|
};
|
|
@@ -517,6 +520,20 @@ const ROUTE_CONTEXT = defineContext("ROUTE_CONTEXT");
|
|
|
517
520
|
|
|
518
521
|
//#endregion
|
|
519
522
|
//#region src/html/index.ts
|
|
523
|
+
var ViewTransitionEvent = class extends Event {
|
|
524
|
+
name;
|
|
525
|
+
constructor(name) {
|
|
526
|
+
super("viewTransition");
|
|
527
|
+
this.name = name;
|
|
528
|
+
}
|
|
529
|
+
};
|
|
530
|
+
var AfterViewTransitionEvent = class extends Event {
|
|
531
|
+
name;
|
|
532
|
+
constructor(name) {
|
|
533
|
+
super("afterViewTransition");
|
|
534
|
+
this.name = name;
|
|
535
|
+
}
|
|
536
|
+
};
|
|
520
537
|
var MountedEvent = class extends Event {
|
|
521
538
|
constructor() {
|
|
522
539
|
super("mounted");
|
|
@@ -797,10 +814,25 @@ function onMounted(scope, event) {
|
|
|
797
814
|
useEvent(scope, host, "mounted", event);
|
|
798
815
|
}
|
|
799
816
|
}
|
|
800
|
-
async function startViewTransition(invoke) {
|
|
801
|
-
if (isClient() && document.startViewTransition !== void 0)
|
|
817
|
+
async function startViewTransition(name, invoke) {
|
|
818
|
+
if (isClient() && document.startViewTransition !== void 0) {
|
|
819
|
+
document.dispatchEvent(new ViewTransitionEvent(name));
|
|
820
|
+
return document.startViewTransition(invoke).finished.finally(() => document.dispatchEvent(new AfterViewTransitionEvent(name)));
|
|
821
|
+
}
|
|
802
822
|
return invoke();
|
|
803
823
|
}
|
|
824
|
+
function onViewTransition(scope, viewTransition, name) {
|
|
825
|
+
const state = createState(name);
|
|
826
|
+
if (isClient()) {
|
|
827
|
+
useEvent(scope, document, "viewTransition", (event) => {
|
|
828
|
+
if (event.name === viewTransition) state.value = name;
|
|
829
|
+
});
|
|
830
|
+
useEvent(scope, document, "afterViewTransition", (event) => {
|
|
831
|
+
if (event.name === viewTransition) state.value = "none";
|
|
832
|
+
});
|
|
833
|
+
}
|
|
834
|
+
return () => `view-transition-name: ${state.value}`;
|
|
835
|
+
}
|
|
804
836
|
function isClient() {
|
|
805
837
|
return typeof window !== "undefined";
|
|
806
838
|
}
|
|
@@ -831,11 +863,6 @@ var AfterNavigateEvent = class extends Event {
|
|
|
831
863
|
super("afterNavigate");
|
|
832
864
|
}
|
|
833
865
|
};
|
|
834
|
-
var AfterNavigateTransitionEvent = class extends Event {
|
|
835
|
-
constructor() {
|
|
836
|
-
super("afterNavigateTransition");
|
|
837
|
-
}
|
|
838
|
-
};
|
|
839
866
|
function provideRouterContext(scope, options) {
|
|
840
867
|
const url = createState();
|
|
841
868
|
const route = createState();
|
|
@@ -860,7 +887,6 @@ function provideRouterContext(scope, options) {
|
|
|
860
887
|
navigator.dispatchEvent(new AfterNavigateEvent());
|
|
861
888
|
}
|
|
862
889
|
};
|
|
863
|
-
if (isClient()) useEvent(scope, window, "popstate", fetch$1);
|
|
864
890
|
scope.setContext(ROUTE_CONTEXT, { inputs: createState() });
|
|
865
891
|
scope.setContext(ROUTER_CONTEXT, {
|
|
866
892
|
options,
|
|
@@ -870,8 +896,14 @@ function provideRouterContext(scope, options) {
|
|
|
870
896
|
route
|
|
871
897
|
});
|
|
872
898
|
fetch$1();
|
|
873
|
-
useEvent(scope, navigator, "navigate", () => startViewTransition(fetch$1)
|
|
874
|
-
if (isClient())
|
|
899
|
+
useEvent(scope, navigator, "navigate", () => startViewTransition("navigate", fetch$1));
|
|
900
|
+
if (isClient()) {
|
|
901
|
+
useEvent(scope, window, "popstate", () => {
|
|
902
|
+
fetch$1();
|
|
903
|
+
document.dispatchEvent(new AfterViewTransitionEvent("navigate"));
|
|
904
|
+
});
|
|
905
|
+
requestAnimationFrame(() => document.dispatchEvent(new AfterViewTransitionEvent("navigate")));
|
|
906
|
+
}
|
|
875
907
|
return useRouter(scope);
|
|
876
908
|
}
|
|
877
909
|
function useRouter(scope, context) {
|
|
@@ -948,4 +980,4 @@ function useLocale(scope, context) {
|
|
|
948
980
|
const LOCALE_CONTEXT = defineContext("LOCALE_CONTEXT");
|
|
949
981
|
|
|
950
982
|
//#endregion
|
|
951
|
-
export { $fetch, AfterNavigateEvent,
|
|
983
|
+
export { $fetch, AfterNavigateEvent, AfterViewTransitionEvent, CLIENT, Compute, HOST_CONTEXT, Handler, LOCALE_CONTEXT, MountedEvent, NavigateEvent, Page, ROUTER_CONTEXT, ROUTE_CONTEXT, RUNTIME_CONTEXT, Radix, SERVER, Scope, StopEvent, ViewTransitionEvent, activeCompute, components, createApp, createCompute, createElement, createMemo, createRuntime, createState, defineComponent, defineContext, defineMiddleware, defineRoute, fileName, fromValue, hydrate, isClient, isComponent, isCustomElement, isRoute, isServer, isTemplate, mergeObjects, mimeType, onMounted, onViewTransition, preventDefault, provideLocaleContext, provideRouterContext, registerComponent, renderToString, sendBadRequest, sendHtml, sendJson, sendRedirect, sendText, sendUnauthorized, setCookie, startViewTransition, stopImmediatePropagation, stopPropagation, targets, toArray, toCustomElement, toFragment, toPath, toRange, toString, untrack, useAsync, useCookies, useEvent, useFetch, useHost, useLocale, useQuery, useRoute, useRouter, useRuntime, useSetCookies, useUrl };
|
package/dist/router/index.d.ts
CHANGED
|
@@ -17,9 +17,6 @@ export declare class NavigateEvent extends Event {
|
|
|
17
17
|
export declare class AfterNavigateEvent extends Event {
|
|
18
18
|
constructor();
|
|
19
19
|
}
|
|
20
|
-
export declare class AfterNavigateTransitionEvent extends Event {
|
|
21
|
-
constructor();
|
|
22
|
-
}
|
|
23
20
|
export declare function provideRouterContext(scope: Scope, options: RouterOptions): {
|
|
24
21
|
url: State<URL | undefined>;
|
|
25
22
|
route: State<unknown>;
|
|
@@ -44,6 +41,5 @@ declare global {
|
|
|
44
41
|
interface ElementEventMap {
|
|
45
42
|
navigate: NavigateEvent;
|
|
46
43
|
afterNavigate: AfterNavigateEvent;
|
|
47
|
-
afterNavigateTransition: AfterNavigateTransitionEvent;
|
|
48
44
|
}
|
|
49
45
|
}
|
package/dist/runtime/index.d.ts
CHANGED
|
@@ -22,7 +22,7 @@ export type RouteContext = {
|
|
|
22
22
|
inputs: State<Record<string, string>>;
|
|
23
23
|
};
|
|
24
24
|
export type AsyncOptions = {
|
|
25
|
-
viewTransition?:
|
|
25
|
+
viewTransition?: string;
|
|
26
26
|
catch?: (error: unknown) => void | Promise<void>;
|
|
27
27
|
};
|
|
28
28
|
export declare function isRoute<T>(value?: T): value is Route & T;
|