@remix-run/ui 0.7.0 → 0.9.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.
Files changed (91) hide show
  1. package/README.md +90 -14
  2. package/dist/animation/demos/drag-release.js +5 -7
  3. package/dist/animation/demos/drag-release.js.map +1 -1
  4. package/dist/index.d.ts +2 -2
  5. package/dist/index.js +1 -1
  6. package/dist/index.js.map +1 -1
  7. package/dist/runtime/component.d.ts +9 -4
  8. package/dist/runtime/component.js +38 -9
  9. package/dist/runtime/component.js.map +1 -1
  10. package/dist/runtime/core/mix.d.ts +21 -0
  11. package/dist/runtime/core/mix.js +128 -0
  12. package/dist/runtime/core/mix.js.map +1 -0
  13. package/dist/runtime/diff-dom.js +15 -16
  14. package/dist/runtime/diff-dom.js.map +1 -1
  15. package/dist/runtime/document-reload.d.ts +2 -0
  16. package/dist/runtime/document-reload.js +14 -0
  17. package/dist/runtime/document-reload.js.map +1 -0
  18. package/dist/runtime/dom.d.ts +21 -11
  19. package/dist/runtime/event-types.d.ts +14 -0
  20. package/dist/runtime/event-types.js +2 -0
  21. package/dist/runtime/event-types.js.map +1 -0
  22. package/dist/runtime/frame-resolution.js +8 -0
  23. package/dist/runtime/frame-resolution.js.map +1 -1
  24. package/dist/runtime/frame.d.ts +24 -6
  25. package/dist/runtime/frame.js +187 -60
  26. package/dist/runtime/frame.js.map +1 -1
  27. package/dist/runtime/import-map-manager.d.ts +8 -0
  28. package/dist/runtime/import-map-manager.js +295 -0
  29. package/dist/runtime/import-map-manager.js.map +1 -0
  30. package/dist/runtime/mixins/link-mixin.js +4 -4
  31. package/dist/runtime/mixins/link-mixin.js.map +1 -1
  32. package/dist/runtime/mixins/mixin.d.ts +9 -4
  33. package/dist/runtime/mixins/mixin.js +18 -132
  34. package/dist/runtime/mixins/mixin.js.map +1 -1
  35. package/dist/runtime/mixins/on-mixin.d.ts +1 -1
  36. package/dist/runtime/module-preloader.d.ts +2 -1
  37. package/dist/runtime/module-preloader.js +6 -5
  38. package/dist/runtime/module-preloader.js.map +1 -1
  39. package/dist/runtime/navigation.js +211 -34
  40. package/dist/runtime/navigation.js.map +1 -1
  41. package/dist/runtime/reconcile.js +18 -3
  42. package/dist/runtime/reconcile.js.map +1 -1
  43. package/dist/runtime/run.d.ts +3 -0
  44. package/dist/runtime/run.js +8 -4
  45. package/dist/runtime/run.js.map +1 -1
  46. package/dist/runtime/scheduler.js +37 -11
  47. package/dist/runtime/scheduler.js.map +1 -1
  48. package/dist/runtime/spa-response.d.ts +30 -0
  49. package/dist/runtime/spa-response.js +47 -0
  50. package/dist/runtime/spa-response.js.map +1 -0
  51. package/dist/runtime/to-vnode.js +1 -1
  52. package/dist/runtime/to-vnode.js.map +1 -1
  53. package/dist/runtime/typed-event-target.d.ts +0 -4
  54. package/dist/runtime/typed-event-target.js.map +1 -1
  55. package/dist/server/stream.d.ts +25 -2
  56. package/dist/server/stream.js +382 -171
  57. package/dist/server/stream.js.map +1 -1
  58. package/dist/style/stylesheet.js +2 -2
  59. package/dist/style/stylesheet.js.map +1 -1
  60. package/package.json +1 -1
  61. package/src/animation/demos/drag-release.ts +5 -7
  62. package/src/index.ts +2 -2
  63. package/src/runtime/component.ts +52 -14
  64. package/src/runtime/core/mix.ts +157 -0
  65. package/src/runtime/demos/readme.demo.tsx +7 -17
  66. package/src/runtime/diff-dom.ts +13 -15
  67. package/src/runtime/document-reload.ts +14 -0
  68. package/src/runtime/dom.ts +21 -11
  69. package/src/runtime/event-types.ts +27 -0
  70. package/src/runtime/frame-resolution.ts +9 -0
  71. package/src/runtime/frame.ts +216 -65
  72. package/src/runtime/import-map-manager.ts +369 -0
  73. package/src/runtime/mixins/link-mixin.ts +4 -4
  74. package/src/runtime/mixins/mixin.ts +44 -149
  75. package/src/runtime/mixins/on-mixin.ts +1 -1
  76. package/src/runtime/module-preloader.ts +9 -6
  77. package/src/runtime/navigation.ts +257 -42
  78. package/src/runtime/reconcile.ts +20 -4
  79. package/src/runtime/run.ts +13 -4
  80. package/src/runtime/scheduler.ts +53 -13
  81. package/src/runtime/spa-response.ts +56 -0
  82. package/src/runtime/to-vnode.ts +1 -1
  83. package/src/runtime/typed-event-target.ts +1 -6
  84. package/src/server/README.md +25 -5
  85. package/src/server/stream.ts +506 -202
  86. package/src/style/stylesheet.ts +3 -3
  87. package/src/test/utils.ts +1 -6
  88. package/dist/runtime/event-listeners.d.ts +0 -50
  89. package/dist/runtime/event-listeners.js +0 -31
  90. package/dist/runtime/event-listeners.js.map +0 -1
  91. package/src/runtime/event-listeners.ts +0 -171
@@ -1,8 +1,30 @@
1
1
  import { getTopFrame, getNamedFrame } from './run.js';
2
2
  import { reloadFrameForNavigation } from './frame.js';
3
3
  import { createFormNavigationResolver } from './form-navigation.js';
4
+ import { isDocumentReload } from './document-reload.js';
4
5
  const formSubmissionNavigationInfoType = 'frame-form-submission';
5
6
  const frameRedirectNavigationInfoType = 'frame-redirect';
7
+ function resyncWebKitScrollAfterNavigation(event, resetScroll, transition) {
8
+ let userAgent = navigator.userAgent;
9
+ if (!userAgent.includes('AppleWebKit') || isChromiumUserAgent(userAgent))
10
+ return;
11
+ if (!resetScroll || (event.navigationType !== 'push' && event.navigationType !== 'replace'))
12
+ return;
13
+ if (new URL(event.destination.url).hash)
14
+ return;
15
+ void transition.finished.then(() => {
16
+ // WebKit can reset its internal scroll position without synchronizing the visual viewport.
17
+ // https://bugs.webkit.org/show_bug.cgi?id=309542
18
+ if (event.signal.aborted || window.scrollX !== 0 || window.scrollY !== 0)
19
+ return;
20
+ window.scrollTo({ behavior: 'instant', left: 0, top: 1 });
21
+ requestAnimationFrame(() => {
22
+ if (event.signal.aborted || window.scrollX !== 0 || window.scrollY !== 1)
23
+ return;
24
+ window.scrollTo({ behavior: 'instant', left: 0, top: 0 });
25
+ });
26
+ }, () => { });
27
+ }
6
28
  /**
7
29
  * Performs a Navigation API transition understood by Remix frame runtime state.
8
30
  *
@@ -16,7 +38,17 @@ export async function navigate(href, options) {
16
38
  resetScroll: options?.resetScroll !== false,
17
39
  $rmx: true,
18
40
  };
19
- let transition = window.navigation.navigate(href, { state, history: options?.history });
41
+ let navigation = getInterceptableNavigation();
42
+ if (!navigation) {
43
+ if (options?.history === 'replace') {
44
+ window.location.replace(href);
45
+ }
46
+ else {
47
+ window.location.assign(href);
48
+ }
49
+ return;
50
+ }
51
+ let transition = navigation.navigate(href, { state, history: options?.history });
20
52
  await transition.finished;
21
53
  }
22
54
  /**
@@ -34,12 +66,16 @@ export function startNavigationListener(signal) {
34
66
  }
35
67
  // Internal version used by unit tests so we can inject stub frames
36
68
  export function startNavigationListenerImpl(signal, options) {
37
- let navigation = window.navigation;
69
+ let navigation = getInterceptableNavigation();
70
+ if (!navigation)
71
+ return;
38
72
  let resolveFormNavigation = createFormNavigationResolver(signal);
39
73
  navigation.updateCurrentEntry({
40
74
  state: { target: undefined, src: window.location.href, resetScroll: true, $rmx: true },
41
75
  });
42
76
  navigation.addEventListener('navigate', (event) => {
77
+ if (isDocumentReload(event.info))
78
+ return;
43
79
  // Safari seems to incorrectly set canIntercept to true for sub-domain navigations, so
44
80
  // we do a host check ourselves/. The spec is clear that a different host should prevent
45
81
  // interception so this is likely a bug in Safari:
@@ -47,7 +83,10 @@ export function startNavigationListenerImpl(signal, options) {
47
83
  if (!event.canIntercept || isCrossOriginDestination(event))
48
84
  return;
49
85
  if (isFrameRedirectNavigationInfo(event.info)) {
50
- event.intercept({ async handler() { } });
86
+ interceptNavigation(navigation, event, event.info.resetScroll, {
87
+ async handler() { },
88
+ scroll: 'manual',
89
+ });
51
90
  return;
52
91
  }
53
92
  let replayedSubmission = isFormSubmissionNavigationInfo(event.info) ? event.info : undefined;
@@ -56,7 +95,7 @@ export function startNavigationListenerImpl(signal, options) {
56
95
  state: replayedSubmission.state,
57
96
  getSubmission: replayedSubmission.getSubmission,
58
97
  }
59
- : getRuntimeNavigation(event, resolveFormNavigation);
98
+ : getRuntimeNavigation(navigation, event, resolveFormNavigation);
60
99
  if (!runtimeNavigation)
61
100
  return;
62
101
  let { state } = runtimeNavigation;
@@ -64,6 +103,8 @@ export function startNavigationListenerImpl(signal, options) {
64
103
  let namedFrame = state.target ? options.getNamedFrame(state.target) : undefined;
65
104
  let frame = namedFrame ?? topFrame;
66
105
  let handler = async () => {
106
+ if (event.signal.aborted)
107
+ return;
67
108
  let submission = await runtimeNavigation.getSubmission?.();
68
109
  if (event.signal.aborted)
69
110
  return;
@@ -73,10 +114,16 @@ export function startNavigationListenerImpl(signal, options) {
73
114
  topFrame.src = event.destination.url;
74
115
  if (frame !== topFrame)
75
116
  frame.src = state.src;
76
- let { redirectedTo } = await options.reloadFrame(frame, {
117
+ let reload = options.reloadFrame(frame, {
77
118
  ...submission,
78
119
  signal: event.signal,
79
120
  });
121
+ await reload.committed;
122
+ if (event.signal.aborted || reload.signal.aborted)
123
+ return;
124
+ if (state.resetScroll)
125
+ event.scroll();
126
+ let { redirectedTo } = await reload.finished;
80
127
  if (redirectedTo && frame === topFrame) {
81
128
  frame.src = redirectedTo;
82
129
  // Start the successor navigation without awaiting it: this handler must settle before
@@ -86,13 +133,14 @@ export function startNavigationListenerImpl(signal, options) {
86
133
  state: { ...state, src: redirectedTo },
87
134
  info: {
88
135
  type: frameRedirectNavigationInfoType,
136
+ resetScroll: state.resetScroll,
89
137
  },
90
138
  });
91
139
  }
92
- let isNewEntry = event.navigationType === 'push' || event.navigationType === 'replace';
93
- if (state.resetScroll && isNewEntry) {
94
- window.scrollTo(0, 0);
95
- }
140
+ };
141
+ let interceptOptions = {
142
+ handler,
143
+ scroll: state.resetScroll === false ? 'manual' : undefined,
96
144
  };
97
145
  if (runtimeNavigation.getSubmission) {
98
146
  // <form method="post"> navigations
@@ -100,19 +148,18 @@ export function startNavigationListenerImpl(signal, options) {
100
148
  let supportsPrecommit = typeof Reflect.get(window, 'NavigationPrecommitController') === 'function';
101
149
  // Modern browsers allow you to update the in-flight navigation entry before it's committed
102
150
  if (supportsPrecommit) {
103
- let interceptOptions = {
104
- handler,
151
+ interceptNavigation(navigation, event, state.resetScroll, {
152
+ ...interceptOptions,
105
153
  precommitHandler(controller) {
106
154
  controller.redirect(event.destination.url, { history: 'replace' });
107
155
  },
108
- };
109
- event.intercept(interceptOptions);
156
+ });
110
157
  return;
111
158
  }
112
159
  // Safari doesn't support precommit as of Aug 2026, so we do a full replacement navigation
113
160
  if (event.cancelable) {
114
161
  event.preventDefault();
115
- window.navigation.navigate(event.destination.url, {
162
+ navigation.navigate(event.destination.url, {
116
163
  history: 'replace',
117
164
  state,
118
165
  info: {
@@ -124,7 +171,7 @@ export function startNavigationListenerImpl(signal, options) {
124
171
  return;
125
172
  }
126
173
  }
127
- event.intercept({ handler });
174
+ interceptNavigation(navigation, event, state.resetScroll, interceptOptions);
128
175
  }
129
176
  else {
130
177
  // <a>/<form method="get"> navigations
@@ -133,11 +180,20 @@ export function startNavigationListenerImpl(signal, options) {
133
180
  navigation.navigate(event.destination.url, { history: 'replace', state });
134
181
  }
135
182
  else {
136
- event.intercept({ handler });
183
+ interceptNavigation(navigation, event, state.resetScroll, interceptOptions);
137
184
  }
138
185
  }
139
186
  }, { signal });
140
187
  }
188
+ function getInterceptableNavigation() {
189
+ let navigation = window.navigation;
190
+ if (!navigation ||
191
+ typeof NavigateEvent === 'undefined' ||
192
+ !('sourceElement' in NavigateEvent.prototype)) {
193
+ return;
194
+ }
195
+ return navigation;
196
+ }
141
197
  function isRuntimeNavigation(info) {
142
198
  return typeof info === 'object' && info != null && '$rmx' in info;
143
199
  }
@@ -155,32 +211,153 @@ function isFrameRedirectNavigationInfo(value) {
155
211
  return (typeof value === 'object' &&
156
212
  value != null &&
157
213
  'type' in value &&
158
- value.type === frameRedirectNavigationInfoType);
214
+ value.type === frameRedirectNavigationInfoType &&
215
+ 'resetScroll' in value &&
216
+ typeof value.resetScroll === 'boolean');
159
217
  }
160
218
  function isCrossOriginDestination(event) {
161
219
  let destination = new URL(event.destination.url);
162
220
  return destination.origin !== window.location.origin;
163
221
  }
164
- function getRuntimeNavigation(event, resolveFormNavigation) {
222
+ function interceptNavigation(navigation, event, resetScroll, options) {
223
+ let scrollStyleWorkarounds = installNavigationScrollStyleWorkarounds(event, resetScroll);
224
+ let transitionBound = false;
225
+ function bindTransition() {
226
+ if (transitionBound)
227
+ return;
228
+ if (event.signal.aborted)
229
+ return scrollStyleWorkarounds?.remove();
230
+ // The Navigation API creates the transition before running interception handlers.
231
+ let transition = navigation.transition;
232
+ if (!transition)
233
+ return scrollStyleWorkarounds?.remove();
234
+ transitionBound = true;
235
+ resyncWebKitScrollAfterNavigation(event, resetScroll, transition);
236
+ if (scrollStyleWorkarounds) {
237
+ scheduleNavigationScrollCleanup(transition, scrollStyleWorkarounds.remove, scrollStyleWorkarounds.cleanup);
238
+ }
239
+ }
240
+ let interceptOptions = {
241
+ ...options,
242
+ handler() {
243
+ bindTransition();
244
+ return options.handler?.();
245
+ },
246
+ };
247
+ let precommitHandler = options.precommitHandler;
248
+ if (precommitHandler) {
249
+ interceptOptions.precommitHandler = function precommit(controller) {
250
+ bindTransition();
251
+ return precommitHandler(controller);
252
+ };
253
+ }
254
+ try {
255
+ event.intercept(interceptOptions);
256
+ }
257
+ catch (error) {
258
+ scrollStyleWorkarounds?.remove();
259
+ throw error;
260
+ }
261
+ }
262
+ function getNavigationScrollStyles(event, resetScroll) {
263
+ if (!resetScroll)
264
+ return;
265
+ if (event.navigationType === 'traverse') {
266
+ // Full-document reconciliation can temporarily shrink the page or trigger scroll anchoring
267
+ // before the Navigation API performs its deferred restoration. Preserve the starting scroll
268
+ // range and position until the navigation finishes so native restoration remains authoritative.
269
+ // Root scroll height includes page-level effects such as body padding.
270
+ // We think this is a bug in Chromium where they are incorrectly classifying a
271
+ // DOM-modification-driven scroll change as a user scroll action, causing it to skip restoration
272
+ // after the transition. The intended user-scroll behavior is tested here:
273
+ // https://github.com/web-platform-tests/wpt/blob/master/navigation-api/scroll-behavior/after-transition-skips-restore-when-scrolled.html
274
+ let { scrollHeight, clientHeight } = document.documentElement;
275
+ return {
276
+ cssText: `
277
+ html {
278
+ min-height: ${scrollHeight + clientHeight}px !important;
279
+ overflow-anchor: none !important;
280
+ }
281
+
282
+ body {
283
+ overflow-anchor: none !important;
284
+ }
285
+ `,
286
+ cleanup: 'finished',
287
+ };
288
+ }
289
+ if (event.navigationType !== 'push' && event.navigationType !== 'replace')
290
+ return;
291
+ if (new URL(event.destination.url).hash)
292
+ return;
293
+ if (!isChromiumUserAgent(navigator.userAgent))
294
+ return;
295
+ // Chromium can treat reconciliation-driven scroll anchoring as user scrolling and preserve an
296
+ // offset after NavigateEvent.scroll() resets the destination. Suppress anchoring before
297
+ // interception and keep it disabled through the first post-navigation paint.
298
+ return {
299
+ cssText: `
300
+ html,
301
+ body {
302
+ overflow-anchor: none !important;
303
+ }
304
+ `,
305
+ cleanup: 'after-paint',
306
+ };
307
+ }
308
+ function isChromiumUserAgent(userAgent) {
309
+ return userAgent.includes('Chrome') || userAgent.includes('Chromium');
310
+ }
311
+ function installNavigationScrollStyleWorkarounds(event, resetScroll) {
312
+ let scrollStyles = getNavigationScrollStyles(event, resetScroll);
313
+ if (!scrollStyles)
314
+ return;
315
+ let stylesheet = new CSSStyleSheet();
316
+ stylesheet.replaceSync(scrollStyles.cssText);
317
+ document.adoptedStyleSheets = [...document.adoptedStyleSheets, stylesheet];
318
+ let removed = false;
319
+ function remove() {
320
+ event.signal.removeEventListener('abort', remove);
321
+ if (removed)
322
+ return;
323
+ removed = true;
324
+ document.adoptedStyleSheets = document.adoptedStyleSheets.filter((current) => current !== stylesheet);
325
+ }
326
+ if (event.signal.aborted)
327
+ remove();
328
+ else
329
+ event.signal.addEventListener('abort', remove, { once: true });
330
+ return { remove, cleanup: scrollStyles.cleanup };
331
+ }
332
+ function scheduleNavigationScrollCleanup(transition, removeScrollStyles, cleanup) {
333
+ function removeAfterSuccess() {
334
+ if (cleanup === 'finished')
335
+ return removeScrollStyles();
336
+ // The first callback runs before the first post-navigation paint. The second removes the
337
+ // stylesheet before the following frame.
338
+ requestAnimationFrame(() => requestAnimationFrame(removeScrollStyles));
339
+ }
340
+ void transition.finished.then(removeAfterSuccess, removeScrollStyles);
341
+ }
342
+ function getRuntimeNavigation(navigation, event, resolveFormNavigation) {
165
343
  if (event.navigationType === 'traverse') {
166
- let state = getTraverseNavigationState(event);
344
+ let state = getTraverseNavigationState(navigation, event);
167
345
  return state ? { state } : undefined;
168
346
  }
169
- let sourceNavigation = getSourceElementNavigation(event, resolveFormNavigation);
347
+ let sourceNavigation = getSourceElementNavigation(navigation, event, resolveFormNavigation);
170
348
  if (sourceNavigation)
171
349
  return sourceNavigation;
172
350
  let destinationState = event.destination.getState();
173
351
  if (isRuntimeNavigation(destinationState))
174
352
  return { state: destinationState };
175
353
  }
176
- function getTraverseNavigationState(event) {
354
+ function getTraverseNavigationState(navigation, event) {
177
355
  let destinationState = event.destination.getState();
178
356
  if (isRuntimeNavigation(destinationState)) {
179
357
  return destinationState;
180
358
  }
181
359
  // Safari returns `null` for destination.getState(), even though its in the
182
360
  // navigation.entries(), so we do its job for it and look it up.
183
- let navigation = window.navigation;
184
361
  let matchingEntry = navigation.entries().find((entry) => entry.key === event.destination.key);
185
362
  if (matchingEntry) {
186
363
  let state = matchingEntry.getState();
@@ -190,40 +367,40 @@ function getTraverseNavigationState(event) {
190
367
  }
191
368
  return undefined;
192
369
  }
193
- function getSourceElementNavigation(event, resolveFormNavigation) {
370
+ function getSourceElementNavigation(navigation, event, resolveFormNavigation) {
194
371
  let sourceEvent = event;
195
372
  let sourceElement = sourceEvent.sourceElement;
196
373
  if (!(sourceElement instanceof Element))
197
374
  return;
198
375
  let linkElement = sourceElement.closest('a, area');
199
376
  if (linkElement instanceof Element) {
200
- if (linkElement.hasAttribute('rmx-document'))
377
+ if (linkElement.hasAttribute('data-rmx-document'))
201
378
  return;
202
379
  if (linkElement.hasAttribute('download'))
203
380
  return;
204
381
  return {
205
382
  state: {
206
- target: linkElement.getAttribute('rmx-target') ?? undefined,
207
- src: linkElement.getAttribute('rmx-src') ?? event.destination.url,
208
- resetScroll: linkElement.getAttribute('rmx-reset-scroll') !== 'false',
383
+ target: linkElement.getAttribute('data-rmx-target') ?? undefined,
384
+ src: linkElement.getAttribute('data-rmx-src') ?? event.destination.url,
385
+ resetScroll: linkElement.getAttribute('data-rmx-reset-scroll') !== 'false',
209
386
  $rmx: true,
210
387
  },
211
- replaceHistory: getReplaceHistory(linkElement.getAttribute('rmx-history'), false),
388
+ replaceHistory: getReplaceHistory(linkElement.getAttribute('data-rmx-history'), false),
212
389
  };
213
390
  }
214
391
  let formNavigation = resolveFormNavigation(event);
215
- if (!formNavigation || formNavigation.hasAttribute('rmx-document'))
392
+ if (!formNavigation || formNavigation.hasAttribute('data-rmx-document'))
216
393
  return;
217
394
  let replaceHistoryByDefault = formNavigation.getSubmission !== undefined &&
218
- event.destination.url === window.navigation.currentEntry?.url;
395
+ event.destination.url === navigation.currentEntry?.url;
219
396
  return {
220
397
  state: {
221
- target: formNavigation.getAttribute('rmx-target') ?? undefined,
222
- src: formNavigation.getAttribute('rmx-src') ?? event.destination.url,
223
- resetScroll: formNavigation.getAttribute('rmx-reset-scroll') !== 'false',
398
+ target: formNavigation.getAttribute('data-rmx-target') ?? undefined,
399
+ src: formNavigation.getAttribute('data-rmx-src') ?? event.destination.url,
400
+ resetScroll: formNavigation.getAttribute('data-rmx-reset-scroll') !== 'false',
224
401
  $rmx: true,
225
402
  },
226
- replaceHistory: getReplaceHistory(formNavigation.getAttribute('rmx-history'), replaceHistoryByDefault),
403
+ replaceHistory: getReplaceHistory(formNavigation.getAttribute('data-rmx-history'), replaceHistoryByDefault),
227
404
  getSubmission: formNavigation.getSubmission,
228
405
  };
229
406
  }
@@ -1 +1 @@
1
- {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/runtime/navigation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/runtime/navigation.ts"],"names":[],"mappings":"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"}
@@ -799,6 +799,7 @@ function insertFrame(node, domParent, vParent, context, svg, anchor, cursor) {
799
799
  moduleLoads: runtime.moduleLoads,
800
800
  frameInstances: runtime.frameInstances,
801
801
  namedFrames: runtime.namedFrames,
802
+ processClientEntryPreloads: runtime.processClientEntryPreloads,
802
803
  });
803
804
  runtime.frameInstances.set(start, instance);
804
805
  }
@@ -844,6 +845,7 @@ function insertFrame(node, domParent, vParent, context, svg, anchor, cursor) {
844
845
  moduleLoads: runtime.moduleLoads,
845
846
  frameInstances: runtime.frameInstances,
846
847
  namedFrames: runtime.namedFrames,
848
+ processClientEntryPreloads: runtime.processClientEntryPreloads,
847
849
  });
848
850
  runtime.frameInstances.set(start, instance);
849
851
  let committed = Object.assign(node, {
@@ -859,7 +861,7 @@ function insertFrame(node, domParent, vParent, context, svg, anchor, cursor) {
859
861
  resolveController: undefined,
860
862
  },
861
863
  });
862
- resolveClientFrame(committed, runtime);
864
+ resolveClientFrame(committed, runtime, runtime.serverFrameReload);
863
865
  return committed;
864
866
  }
865
867
  function resolveClientFrame(node, runtime, serverFrameReload) {
@@ -877,7 +879,8 @@ function resolveClientFrame(node, runtime, serverFrameReload) {
877
879
  }
878
880
  let resolveController = reload?.controller ?? new AbortController();
879
881
  state.resolveController = resolveController;
880
- Promise.resolve()
882
+ let frameCommitted = Promise.withResolvers();
883
+ let resolve = Promise.resolve()
881
884
  .then(() => runtime.resolveFrame(frameSrc, {
882
885
  signal: resolveController.signal,
883
886
  target: getFrameName(node),
@@ -891,7 +894,12 @@ function resolveClientFrame(node, runtime, serverFrameReload) {
891
894
  state.fallbackRoot?.dispose();
892
895
  state.fallbackRoot = undefined;
893
896
  let nextContent = asAbortableFrameContent(content, resolveController.signal);
894
- await instance.render(nextContent, { signal: resolveController.signal });
897
+ await instance.render(nextContent, {
898
+ signal: resolveController.signal,
899
+ reconciliationTracker: serverFrameReload?.reconciliationTracker,
900
+ blockingFrameTracker: serverFrameReload?.blockingFrameTracker,
901
+ onCommit: frameCommitted.resolve,
902
+ });
895
903
  if (state.resolveToken !== token || resolveController.signal.aborted)
896
904
  return;
897
905
  state.resolved = true;
@@ -902,11 +910,18 @@ function resolveClientFrame(node, runtime, serverFrameReload) {
902
910
  }
903
911
  })
904
912
  .finally(() => {
913
+ frameCommitted.resolve();
905
914
  reload?.complete();
906
915
  if (state.resolveController === resolveController) {
907
916
  state.resolveController = undefined;
908
917
  }
909
918
  });
919
+ if (serverFrameReload?.reconciliationTracker && !node.props.fallback) {
920
+ serverFrameReload.reconciliationTracker.waitFor(resolve);
921
+ }
922
+ if (serverFrameReload?.blockingFrameTracker && !node.props.fallback) {
923
+ serverFrameReload.blockingFrameTracker.waitFor(frameCommitted.promise);
924
+ }
910
925
  }
911
926
  function disposeFrameResources(node) {
912
927
  let state = node._state;