@remix-run/ui 0.4.0 → 0.6.0
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 +74 -1
- package/dist/accordion/index.js +2 -2
- package/dist/accordion/primitives.d.ts +1 -1
- package/dist/accordion/primitives.js.map +1 -1
- package/dist/anchor/index.js.map +1 -1
- package/dist/animation/animate-layout-mixin.js +1 -1
- package/dist/animation/animate-layout-mixin.js.map +1 -1
- package/dist/animation/animate-mixins.js +2 -2
- package/dist/animation/animate-mixins.js.map +1 -1
- package/dist/animation/demos/color-interpolation.js +1 -1
- package/dist/animation/demos/color-interpolation.js.map +1 -1
- package/dist/animation/demos/drag-release.d.ts +1 -1
- package/dist/animation/demos/hold-to-confirm.d.ts +3 -3
- package/dist/animation/demos/material-ripple.js +1 -3
- package/dist/animation/demos/material-ripple.js.map +1 -1
- package/dist/animation/index.js +4 -4
- package/dist/animation/spring.js.map +1 -1
- package/dist/breadcrumbs/index.js +2 -2
- package/dist/button/index.js +25 -25
- package/dist/button/index.js.map +1 -1
- package/dist/checkbox/index.js +11 -9
- package/dist/checkbox/index.js.map +1 -1
- package/dist/combobox/index.js +4 -4
- package/dist/combobox/index.js.map +1 -1
- package/dist/combobox/primitives.d.ts +1 -1
- package/dist/combobox/primitives.js +5 -5
- package/dist/combobox/primitives.js.map +1 -1
- package/dist/dev/refresh.d.ts +1 -0
- package/dist/dev/refresh.js +2 -0
- package/dist/dev/refresh.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +14 -14
- package/dist/input/index.js +9 -9
- package/dist/input/index.js.map +1 -1
- package/dist/jsx-runtime.js +2 -2
- package/dist/listbox/index.js +2 -2
- package/dist/menu/hover-aim.js.map +1 -1
- package/dist/menu/index.js +3 -3
- package/dist/menu/primitives.d.ts +1 -1
- package/dist/menu/primitives.js +6 -6
- package/dist/menu/primitives.js.map +1 -1
- package/dist/popover/index.js +3 -3
- package/dist/popover/scroll-lock.js.map +1 -1
- package/dist/radio/index.js +7 -7
- package/dist/radio/index.js.map +1 -1
- package/dist/runtime/client-entry-boundary.d.ts +14 -0
- package/dist/runtime/client-entry-boundary.js +29 -0
- package/dist/runtime/client-entry-boundary.js.map +1 -0
- package/dist/runtime/component.d.ts +19 -4
- package/dist/runtime/component.js +39 -9
- package/dist/runtime/component.js.map +1 -1
- package/dist/runtime/core/attributes.js +36 -3
- package/dist/runtime/core/attributes.js.map +1 -1
- package/dist/runtime/core/children.d.ts +2 -0
- package/dist/runtime/core/children.js +26 -2
- package/dist/runtime/core/children.js.map +1 -1
- package/dist/runtime/core/props.js +2 -2
- package/dist/runtime/core/vnode.d.ts +3 -3
- package/dist/runtime/core/vnode.js +22 -1
- package/dist/runtime/core/vnode.js.map +1 -1
- package/dist/runtime/create-element.d.ts +2 -2
- package/dist/runtime/create-element.js +3 -2
- package/dist/runtime/create-element.js.map +1 -1
- package/dist/runtime/diff-dom.js +307 -220
- package/dist/runtime/diff-dom.js.map +1 -1
- package/dist/runtime/diff-props.js +3 -3
- package/dist/runtime/dom.d.ts +12 -0
- package/dist/runtime/element-function.d.ts +3 -0
- package/dist/runtime/element-function.js +2 -0
- package/dist/runtime/element-function.js.map +1 -0
- package/dist/runtime/form-navigation.d.ts +25 -0
- package/dist/runtime/form-navigation.js +132 -0
- package/dist/runtime/form-navigation.js.map +1 -0
- package/dist/runtime/frame-resolution.d.ts +5 -0
- package/dist/runtime/frame-resolution.js +10 -0
- package/dist/runtime/frame-resolution.js.map +1 -0
- package/dist/runtime/frame.d.ts +59 -15
- package/dist/runtime/frame.js +383 -114
- package/dist/runtime/frame.js.map +1 -1
- package/dist/runtime/jsx.d.ts +1 -1
- package/dist/runtime/jsx.js +1 -1
- package/dist/runtime/jsx.js.map +1 -1
- package/dist/runtime/key.d.ts +1 -0
- package/dist/runtime/key.js +2 -0
- package/dist/runtime/key.js.map +1 -0
- package/dist/runtime/mixins/attrs-mixin.js +2 -2
- package/dist/runtime/mixins/link-mixin.js +4 -3
- package/dist/runtime/mixins/link-mixin.js.map +1 -1
- package/dist/runtime/mixins/mixin.d.ts +15 -10
- package/dist/runtime/mixins/mixin.js +4 -4
- package/dist/runtime/mixins/mixin.js.map +1 -1
- package/dist/runtime/mixins/on-mixin.js +1 -1
- package/dist/runtime/mixins/ref-mixin.js +1 -1
- package/dist/runtime/module-preloader.d.ts +8 -0
- package/dist/runtime/module-preloader.js +95 -0
- package/dist/runtime/module-preloader.js.map +1 -0
- package/dist/runtime/navigation.d.ts +4 -1
- package/dist/runtime/navigation.js +157 -32
- package/dist/runtime/navigation.js.map +1 -1
- package/dist/runtime/reconcile.d.ts +11 -10
- package/dist/runtime/reconcile.js +549 -421
- package/dist/runtime/reconcile.js.map +1 -1
- package/dist/runtime/refresh.d.ts +28 -0
- package/dist/runtime/refresh.js +31 -0
- package/dist/runtime/refresh.js.map +1 -0
- package/dist/runtime/render.js +1 -1
- package/dist/runtime/render.js.map +1 -1
- package/dist/runtime/run.d.ts +3 -1
- package/dist/runtime/run.js +15 -7
- package/dist/runtime/run.js.map +1 -1
- package/dist/runtime/scheduler.js +8 -16
- package/dist/runtime/scheduler.js.map +1 -1
- package/dist/runtime/to-vnode.d.ts +2 -2
- package/dist/runtime/to-vnode.js +68 -20
- package/dist/runtime/to-vnode.js.map +1 -1
- package/dist/runtime/vdom.d.ts +4 -2
- package/dist/runtime/vdom.js +87 -42
- package/dist/runtime/vdom.js.map +1 -1
- package/dist/runtime/vnode.d.ts +138 -67
- package/dist/runtime/vnode.js +17 -12
- package/dist/runtime/vnode.js.map +1 -1
- package/dist/select/index.js +11 -11
- package/dist/select/index.js.map +1 -1
- package/dist/select/primitives.d.ts +1 -1
- package/dist/select/primitives.js +6 -6
- package/dist/server/stream.d.ts +2 -0
- package/dist/server/stream.js +74 -29
- package/dist/server/stream.js.map +1 -1
- package/dist/shared/focus-styles.d.ts +1 -1
- package/dist/shared/focus-styles.js +1 -1
- package/dist/shared/focus-styles.js.map +1 -1
- package/dist/shared/listbox-popover-styles.js +1 -1
- package/dist/shared/style-values.js +26 -26
- package/dist/shared/style-values.js.map +1 -1
- package/dist/style/css-mixin.js +3 -3
- package/dist/style/index.js +2 -2
- package/dist/style/style.js +25 -6
- package/dist/style/style.js.map +1 -1
- package/dist/style/stylesheet.d.ts +0 -1
- package/dist/style/stylesheet.js +13 -54
- package/dist/style/stylesheet.js.map +1 -1
- package/dist/tabs/index.js +11 -11
- package/dist/tabs/index.js.map +1 -1
- package/dist/tabs/primitives.d.ts +1 -1
- package/dist/test.js +1 -1
- package/dist/toggle/index.js +9 -9
- package/dist/toggle/index.js.map +1 -1
- package/dist/toggle/primitives.d.ts +1 -1
- package/package.json +10 -7
- package/src/animation/animate-mixins.ts +3 -3
- package/src/animation/demos/color-interpolation.tsx +1 -1
- package/src/button/index.ts +24 -24
- package/src/checkbox/index.ts +10 -8
- package/src/combobox/index.tsx +1 -1
- package/src/dev/refresh.ts +1 -0
- package/src/index.ts +1 -1
- package/src/input/index.ts +8 -8
- package/src/radio/index.ts +6 -5
- package/src/runtime/client-entry-boundary.ts +54 -0
- package/src/runtime/component.ts +65 -16
- package/src/runtime/core/attributes.ts +35 -1
- package/src/runtime/core/children.ts +24 -2
- package/src/runtime/core/vnode.ts +25 -4
- package/src/runtime/create-element.ts +6 -5
- package/src/runtime/demos/readme.demo.tsx +4 -4
- package/src/runtime/diff-dom.ts +370 -244
- package/src/runtime/dom.ts +331 -214
- package/src/runtime/element-function.ts +1 -0
- package/src/runtime/event-listeners.ts +1 -1
- package/src/runtime/form-navigation.ts +184 -0
- package/src/runtime/frame-resolution.ts +13 -0
- package/src/runtime/frame.ts +500 -124
- package/src/runtime/jsx.ts +3 -5
- package/src/runtime/key.ts +1 -0
- package/src/runtime/mixins/link-mixin.ts +1 -0
- package/src/runtime/mixins/mixin.ts +21 -18
- package/src/runtime/module-preloader.ts +115 -0
- package/src/runtime/navigation.ts +204 -30
- package/src/runtime/reconcile.ts +762 -759
- package/src/runtime/refresh.ts +46 -0
- package/src/runtime/run.ts +12 -2
- package/src/runtime/scheduler.ts +9 -29
- package/src/runtime/to-vnode.ts +85 -23
- package/src/runtime/vdom.ts +89 -70
- package/src/runtime/vnode.ts +192 -88
- package/src/select/index.tsx +9 -9
- package/src/server/README.md +13 -0
- package/src/server/stream.ts +93 -30
- package/src/shared/focus-styles.ts +1 -1
- package/src/shared/style-values.ts +26 -26
- package/src/style/style.ts +25 -6
- package/src/style/stylesheet.ts +32 -57
- package/src/tabs/index.tsx +12 -11
- package/src/test/README.md +151 -60
- package/src/toggle/index.tsx +9 -7
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { getTopFrame, getNamedFrame } from './run.ts';
|
|
2
|
+
import { reloadFrameForNavigation } from './frame.ts';
|
|
2
3
|
/**
|
|
3
4
|
* Options for client-side frame-aware navigation.
|
|
4
5
|
*/
|
|
@@ -19,10 +20,12 @@ export declare function navigate(href: string, options?: NavigationOptions): Pro
|
|
|
19
20
|
* Starts listening for Navigation API transitions and routes them through frame reloads.
|
|
20
21
|
*
|
|
21
22
|
* @param signal Abort signal used to remove the listener.
|
|
23
|
+
* @param canResolveFrames Whether the runtime has a resolver that can handle intercepted navigations.
|
|
22
24
|
* @returns void
|
|
23
25
|
*/
|
|
24
|
-
export declare function startNavigationListener(signal: AbortSignal): void;
|
|
26
|
+
export declare function startNavigationListener(signal: AbortSignal, canResolveFrames?: boolean): void;
|
|
25
27
|
export declare function startNavigationListenerImpl(signal: AbortSignal, options: {
|
|
26
28
|
getTopFrame: typeof getTopFrame;
|
|
27
29
|
getNamedFrame: typeof getNamedFrame;
|
|
30
|
+
reloadFrame: typeof reloadFrameForNavigation;
|
|
28
31
|
}): void;
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import { getTopFrame, getNamedFrame } from
|
|
1
|
+
import { getTopFrame, getNamedFrame } from './run.js';
|
|
2
|
+
import { reloadFrameForNavigation } from './frame.js';
|
|
3
|
+
import { createFormNavigationResolver } from './form-navigation.js';
|
|
4
|
+
const formSubmissionNavigationInfoType = 'frame-form-submission';
|
|
5
|
+
const frameRedirectNavigationInfoType = 'frame-redirect';
|
|
2
6
|
/**
|
|
3
7
|
* Performs a Navigation API transition understood by Remix frame runtime state.
|
|
4
8
|
*
|
|
@@ -19,14 +23,22 @@ export async function navigate(href, options) {
|
|
|
19
23
|
* Starts listening for Navigation API transitions and routes them through frame reloads.
|
|
20
24
|
*
|
|
21
25
|
* @param signal Abort signal used to remove the listener.
|
|
26
|
+
* @param canResolveFrames Whether the runtime has a resolver that can handle intercepted navigations.
|
|
22
27
|
* @returns void
|
|
23
28
|
*/
|
|
24
|
-
export function startNavigationListener(signal) {
|
|
25
|
-
|
|
29
|
+
export function startNavigationListener(signal, canResolveFrames = true) {
|
|
30
|
+
if (!canResolveFrames)
|
|
31
|
+
return;
|
|
32
|
+
return startNavigationListenerImpl(signal, {
|
|
33
|
+
getTopFrame,
|
|
34
|
+
getNamedFrame,
|
|
35
|
+
reloadFrame: reloadFrameForNavigation,
|
|
36
|
+
});
|
|
26
37
|
}
|
|
27
38
|
// Internal version used by unit tests so we can inject stub frames
|
|
28
39
|
export function startNavigationListenerImpl(signal, options) {
|
|
29
40
|
let navigation = window.navigation;
|
|
41
|
+
let resolveFormNavigation = createFormNavigationResolver(signal);
|
|
30
42
|
navigation.updateCurrentEntry({
|
|
31
43
|
state: { target: undefined, src: window.location.href, resetScroll: true, $rmx: true },
|
|
32
44
|
});
|
|
@@ -37,44 +49,132 @@ export function startNavigationListenerImpl(signal, options) {
|
|
|
37
49
|
// https://html.spec.whatwg.org/multipage/nav-history-apis.html#can-have-its-url-rewritten
|
|
38
50
|
if (!event.canIntercept || isCrossOriginDestination(event))
|
|
39
51
|
return;
|
|
40
|
-
|
|
41
|
-
|
|
52
|
+
if (isFrameRedirectNavigationInfo(event.info)) {
|
|
53
|
+
event.intercept({ async handler() { } });
|
|
42
54
|
return;
|
|
55
|
+
}
|
|
56
|
+
let replayedSubmission = isFormSubmissionNavigationInfo(event.info) ? event.info : undefined;
|
|
57
|
+
let runtimeNavigation = replayedSubmission
|
|
58
|
+
? {
|
|
59
|
+
state: replayedSubmission.state,
|
|
60
|
+
getSubmission: replayedSubmission.getSubmission,
|
|
61
|
+
}
|
|
62
|
+
: getRuntimeNavigation(event, resolveFormNavigation);
|
|
63
|
+
if (!runtimeNavigation)
|
|
64
|
+
return;
|
|
65
|
+
let { state } = runtimeNavigation;
|
|
43
66
|
let topFrame = options.getTopFrame();
|
|
44
67
|
let namedFrame = state.target ? options.getNamedFrame(state.target) : undefined;
|
|
45
68
|
let frame = namedFrame ?? topFrame;
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
69
|
+
let handler = async () => {
|
|
70
|
+
let submission = await runtimeNavigation.getSubmission?.();
|
|
71
|
+
if (event.signal.aborted)
|
|
72
|
+
return;
|
|
73
|
+
if (event.navigationType !== 'traverse') {
|
|
74
|
+
navigation.updateCurrentEntry({ state });
|
|
75
|
+
}
|
|
76
|
+
topFrame.src = event.destination.url;
|
|
77
|
+
if (frame !== topFrame)
|
|
78
|
+
frame.src = state.src;
|
|
79
|
+
let { redirectedTo } = await options.reloadFrame(frame, {
|
|
80
|
+
...submission,
|
|
81
|
+
signal: event.signal,
|
|
82
|
+
});
|
|
83
|
+
if (redirectedTo && frame === topFrame) {
|
|
84
|
+
frame.src = redirectedTo;
|
|
85
|
+
// Start the successor navigation without awaiting it: this handler must settle before
|
|
86
|
+
// the replacement navigation can finish.
|
|
87
|
+
navigation.navigate(redirectedTo, {
|
|
88
|
+
history: 'replace',
|
|
89
|
+
state: { ...state, src: redirectedTo },
|
|
90
|
+
info: {
|
|
91
|
+
type: frameRedirectNavigationInfoType,
|
|
92
|
+
},
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
let isNewEntry = event.navigationType === 'push' || event.navigationType === 'replace';
|
|
96
|
+
if (state.resetScroll && isNewEntry) {
|
|
97
|
+
window.scrollTo(0, 0);
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
if (runtimeNavigation.getSubmission) {
|
|
101
|
+
// <form method="post"> navigations
|
|
102
|
+
if (runtimeNavigation.replaceHistory && replayedSubmission == null) {
|
|
103
|
+
let supportsPrecommit = typeof Reflect.get(window, 'NavigationPrecommitController') === 'function';
|
|
104
|
+
// Modern browsers allow you to update the in-flight navigation entry before it's committed
|
|
105
|
+
if (supportsPrecommit) {
|
|
106
|
+
let interceptOptions = {
|
|
107
|
+
handler,
|
|
108
|
+
precommitHandler(controller) {
|
|
109
|
+
controller.redirect(event.destination.url, { history: 'replace' });
|
|
110
|
+
},
|
|
111
|
+
};
|
|
112
|
+
event.intercept(interceptOptions);
|
|
113
|
+
return;
|
|
50
114
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
115
|
+
// Safari doesn't support precommit as of Aug 2026, so we do a full replacement navigation
|
|
116
|
+
if (event.cancelable) {
|
|
117
|
+
event.preventDefault();
|
|
118
|
+
window.navigation.navigate(event.destination.url, {
|
|
119
|
+
history: 'replace',
|
|
120
|
+
state,
|
|
121
|
+
info: {
|
|
122
|
+
type: formSubmissionNavigationInfoType,
|
|
123
|
+
state,
|
|
124
|
+
getSubmission: runtimeNavigation.getSubmission,
|
|
125
|
+
},
|
|
126
|
+
});
|
|
127
|
+
return;
|
|
56
128
|
}
|
|
57
|
-
}
|
|
58
|
-
|
|
129
|
+
}
|
|
130
|
+
event.intercept({ handler });
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
// <a>/<form method="get"> navigations
|
|
134
|
+
if (runtimeNavigation.replaceHistory && event.cancelable) {
|
|
135
|
+
event.preventDefault();
|
|
136
|
+
navigation.navigate(event.destination.url, { history: 'replace', state });
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
event.intercept({ handler });
|
|
140
|
+
}
|
|
141
|
+
}
|
|
59
142
|
}, { signal });
|
|
60
143
|
}
|
|
61
144
|
function isRuntimeNavigation(info) {
|
|
62
145
|
return typeof info === 'object' && info != null && '$rmx' in info;
|
|
63
146
|
}
|
|
147
|
+
function isFormSubmissionNavigationInfo(value) {
|
|
148
|
+
return (typeof value === 'object' &&
|
|
149
|
+
value != null &&
|
|
150
|
+
'type' in value &&
|
|
151
|
+
value.type === formSubmissionNavigationInfoType &&
|
|
152
|
+
'state' in value &&
|
|
153
|
+
isRuntimeNavigation(value.state) &&
|
|
154
|
+
'getSubmission' in value &&
|
|
155
|
+
typeof value.getSubmission === 'function');
|
|
156
|
+
}
|
|
157
|
+
function isFrameRedirectNavigationInfo(value) {
|
|
158
|
+
return (typeof value === 'object' &&
|
|
159
|
+
value != null &&
|
|
160
|
+
'type' in value &&
|
|
161
|
+
value.type === frameRedirectNavigationInfoType);
|
|
162
|
+
}
|
|
64
163
|
function isCrossOriginDestination(event) {
|
|
65
164
|
let destination = new URL(event.destination.url);
|
|
66
165
|
return destination.origin !== window.location.origin;
|
|
67
166
|
}
|
|
68
|
-
function
|
|
167
|
+
function getRuntimeNavigation(event, resolveFormNavigation) {
|
|
69
168
|
if (event.navigationType === 'traverse') {
|
|
70
|
-
|
|
169
|
+
let state = getTraverseNavigationState(event);
|
|
170
|
+
return state ? { state } : undefined;
|
|
71
171
|
}
|
|
72
|
-
let
|
|
73
|
-
if (
|
|
74
|
-
return
|
|
172
|
+
let sourceNavigation = getSourceElementNavigation(event, resolveFormNavigation);
|
|
173
|
+
if (sourceNavigation)
|
|
174
|
+
return sourceNavigation;
|
|
75
175
|
let destinationState = event.destination.getState();
|
|
76
176
|
if (isRuntimeNavigation(destinationState))
|
|
77
|
-
return destinationState;
|
|
177
|
+
return { state: destinationState };
|
|
78
178
|
}
|
|
79
179
|
function getTraverseNavigationState(event) {
|
|
80
180
|
let destinationState = event.destination.getState();
|
|
@@ -93,23 +193,48 @@ function getTraverseNavigationState(event) {
|
|
|
93
193
|
}
|
|
94
194
|
return undefined;
|
|
95
195
|
}
|
|
96
|
-
function
|
|
196
|
+
function getSourceElementNavigation(event, resolveFormNavigation) {
|
|
97
197
|
let sourceEvent = event;
|
|
98
198
|
let sourceElement = sourceEvent.sourceElement;
|
|
99
199
|
if (!(sourceElement instanceof Element))
|
|
100
200
|
return;
|
|
101
201
|
let linkElement = sourceElement.closest('a, area');
|
|
102
|
-
if (
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
202
|
+
if (linkElement instanceof Element) {
|
|
203
|
+
if (linkElement.hasAttribute('rmx-document'))
|
|
204
|
+
return;
|
|
205
|
+
if (linkElement.hasAttribute('download'))
|
|
206
|
+
return;
|
|
207
|
+
return {
|
|
208
|
+
state: {
|
|
209
|
+
target: linkElement.getAttribute('rmx-target') ?? undefined,
|
|
210
|
+
src: linkElement.getAttribute('rmx-src') ?? event.destination.url,
|
|
211
|
+
resetScroll: linkElement.getAttribute('rmx-reset-scroll') !== 'false',
|
|
212
|
+
$rmx: true,
|
|
213
|
+
},
|
|
214
|
+
replaceHistory: getReplaceHistory(linkElement.getAttribute('rmx-history'), false),
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
let formNavigation = resolveFormNavigation(event);
|
|
218
|
+
if (!formNavigation || formNavigation.hasAttribute('rmx-document'))
|
|
107
219
|
return;
|
|
220
|
+
let replaceHistoryByDefault = formNavigation.getSubmission !== undefined &&
|
|
221
|
+
event.destination.url === window.navigation.currentEntry?.url;
|
|
108
222
|
return {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
223
|
+
state: {
|
|
224
|
+
target: formNavigation.getAttribute('rmx-target') ?? undefined,
|
|
225
|
+
src: formNavigation.getAttribute('rmx-src') ?? event.destination.url,
|
|
226
|
+
resetScroll: formNavigation.getAttribute('rmx-reset-scroll') !== 'false',
|
|
227
|
+
$rmx: true,
|
|
228
|
+
},
|
|
229
|
+
replaceHistory: getReplaceHistory(formNavigation.getAttribute('rmx-history'), replaceHistoryByDefault),
|
|
230
|
+
getSubmission: formNavigation.getSubmission,
|
|
113
231
|
};
|
|
114
232
|
}
|
|
233
|
+
function getReplaceHistory(value, defaultValue) {
|
|
234
|
+
if (value === 'replace')
|
|
235
|
+
return true;
|
|
236
|
+
if (value === 'push')
|
|
237
|
+
return false;
|
|
238
|
+
return defaultValue;
|
|
239
|
+
}
|
|
115
240
|
//# sourceMappingURL=navigation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/runtime/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/runtime/navigation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export declare function diffVNodes(curr:
|
|
6
|
-
export declare function renderComponent(
|
|
7
|
-
export declare function remove(node:
|
|
8
|
-
export declare function findFirstDomAnchor(node:
|
|
9
|
-
export declare function findLastDomAnchor(node:
|
|
1
|
+
import type { CommittedComponentNode, MountingComponentNode, ReconcileContext, VNodeInput, VNodeParent, CommittedVNode } from './vnode.ts';
|
|
2
|
+
type HydrationCursor = {
|
|
3
|
+
current: Node | null | undefined;
|
|
4
|
+
};
|
|
5
|
+
export declare function diffVNodes(curr: CommittedVNode | null, next: VNodeInput, domParent: ParentNode, vParent: VNodeParent, context: ReconcileContext, anchor?: Node, cursor?: HydrationCursor): CommittedVNode;
|
|
6
|
+
export declare function renderComponent(currContent: CommittedVNode | null, next: MountingComponentNode | CommittedComponentNode, domParent: ParentNode, context: ReconcileContext, anchor?: Node, cursor?: HydrationCursor): CommittedComponentNode;
|
|
7
|
+
export declare function remove(node: CommittedVNode, domParent: ParentNode, context: ReconcileContext): void;
|
|
8
|
+
export declare function findFirstDomAnchor(node: CommittedVNode | null | undefined): Node | null;
|
|
9
|
+
export declare function findLastDomAnchor(node: CommittedVNode | null | undefined): Node | null;
|
|
10
10
|
export declare function setActiveSchedulerUpdateParents(parents: ParentNode[] | undefined): void;
|
|
11
|
-
export declare function findNextSiblingDomAnchor(curr:
|
|
11
|
+
export declare function findNextSiblingDomAnchor(curr: CommittedVNode | MountingComponentNode): Node | null;
|
|
12
|
+
export {};
|