@remix-run/ui 0.8.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 (52) hide show
  1. package/README.md +56 -8
  2. package/dist/runtime/component.d.ts +9 -4
  3. package/dist/runtime/component.js +38 -9
  4. package/dist/runtime/component.js.map +1 -1
  5. package/dist/runtime/core/mix.d.ts +21 -0
  6. package/dist/runtime/core/mix.js +128 -0
  7. package/dist/runtime/core/mix.js.map +1 -0
  8. package/dist/runtime/diff-dom.js +7 -13
  9. package/dist/runtime/diff-dom.js.map +1 -1
  10. package/dist/runtime/document-reload.d.ts +2 -0
  11. package/dist/runtime/document-reload.js +14 -0
  12. package/dist/runtime/document-reload.js.map +1 -0
  13. package/dist/runtime/frame.d.ts +19 -4
  14. package/dist/runtime/frame.js +80 -11
  15. package/dist/runtime/frame.js.map +1 -1
  16. package/dist/runtime/import-map-manager.d.ts +8 -0
  17. package/dist/runtime/import-map-manager.js +295 -0
  18. package/dist/runtime/import-map-manager.js.map +1 -0
  19. package/dist/runtime/mixins/mixin.d.ts +0 -1
  20. package/dist/runtime/mixins/mixin.js +18 -132
  21. package/dist/runtime/mixins/mixin.js.map +1 -1
  22. package/dist/runtime/module-preloader.d.ts +2 -1
  23. package/dist/runtime/module-preloader.js +3 -2
  24. package/dist/runtime/module-preloader.js.map +1 -1
  25. package/dist/runtime/navigation.js +143 -48
  26. package/dist/runtime/navigation.js.map +1 -1
  27. package/dist/runtime/reconcile.js +9 -0
  28. package/dist/runtime/reconcile.js.map +1 -1
  29. package/dist/runtime/run.d.ts +3 -0
  30. package/dist/runtime/run.js +3 -1
  31. package/dist/runtime/run.js.map +1 -1
  32. package/dist/runtime/to-vnode.js +1 -1
  33. package/dist/runtime/to-vnode.js.map +1 -1
  34. package/dist/server/stream.d.ts +25 -2
  35. package/dist/server/stream.js +361 -166
  36. package/dist/server/stream.js.map +1 -1
  37. package/package.json +1 -1
  38. package/src/runtime/component.ts +52 -14
  39. package/src/runtime/core/mix.ts +157 -0
  40. package/src/runtime/diff-dom.ts +7 -12
  41. package/src/runtime/document-reload.ts +14 -0
  42. package/src/runtime/frame.ts +105 -16
  43. package/src/runtime/import-map-manager.ts +369 -0
  44. package/src/runtime/mixins/mixin.ts +18 -145
  45. package/src/runtime/module-preloader.ts +6 -3
  46. package/src/runtime/navigation.ts +178 -58
  47. package/src/runtime/reconcile.ts +9 -0
  48. package/src/runtime/run.ts +7 -1
  49. package/src/runtime/to-vnode.ts +1 -1
  50. package/src/server/README.md +25 -5
  51. package/src/server/stream.ts +478 -197
  52. package/src/test/utils.ts +1 -6
@@ -1,19 +1,18 @@
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';
6
- function resyncWebKitScrollAfterNavigation(event, resetScroll) {
7
+ function resyncWebKitScrollAfterNavigation(event, resetScroll, transition) {
7
8
  let userAgent = navigator.userAgent;
8
- if (!userAgent.includes('AppleWebKit'))
9
- return;
10
- if (userAgent.includes('Chrome') || userAgent.includes('Chromium'))
9
+ if (!userAgent.includes('AppleWebKit') || isChromiumUserAgent(userAgent))
11
10
  return;
12
11
  if (!resetScroll || (event.navigationType !== 'push' && event.navigationType !== 'replace'))
13
12
  return;
14
13
  if (new URL(event.destination.url).hash)
15
14
  return;
16
- window.navigation.addEventListener('navigatesuccess', () => {
15
+ void transition.finished.then(() => {
17
16
  // WebKit can reset its internal scroll position without synchronizing the visual viewport.
18
17
  // https://bugs.webkit.org/show_bug.cgi?id=309542
19
18
  if (event.signal.aborted || window.scrollX !== 0 || window.scrollY !== 0)
@@ -24,7 +23,7 @@ function resyncWebKitScrollAfterNavigation(event, resetScroll) {
24
23
  return;
25
24
  window.scrollTo({ behavior: 'instant', left: 0, top: 0 });
26
25
  });
27
- }, { once: true, signal: event.signal });
26
+ }, () => { });
28
27
  }
29
28
  /**
30
29
  * Performs a Navigation API transition understood by Remix frame runtime state.
@@ -39,7 +38,7 @@ export async function navigate(href, options) {
39
38
  resetScroll: options?.resetScroll !== false,
40
39
  $rmx: true,
41
40
  };
42
- let navigation = window.navigation;
41
+ let navigation = getInterceptableNavigation();
43
42
  if (!navigation) {
44
43
  if (options?.history === 'replace') {
45
44
  window.location.replace(href);
@@ -67,7 +66,7 @@ export function startNavigationListener(signal) {
67
66
  }
68
67
  // Internal version used by unit tests so we can inject stub frames
69
68
  export function startNavigationListenerImpl(signal, options) {
70
- let navigation = window.navigation;
69
+ let navigation = getInterceptableNavigation();
71
70
  if (!navigation)
72
71
  return;
73
72
  let resolveFormNavigation = createFormNavigationResolver(signal);
@@ -75,6 +74,8 @@ export function startNavigationListenerImpl(signal, options) {
75
74
  state: { target: undefined, src: window.location.href, resetScroll: true, $rmx: true },
76
75
  });
77
76
  navigation.addEventListener('navigate', (event) => {
77
+ if (isDocumentReload(event.info))
78
+ return;
78
79
  // Safari seems to incorrectly set canIntercept to true for sub-domain navigations, so
79
80
  // we do a host check ourselves/. The spec is clear that a different host should prevent
80
81
  // interception so this is likely a bug in Safari:
@@ -82,10 +83,9 @@ export function startNavigationListenerImpl(signal, options) {
82
83
  if (!event.canIntercept || isCrossOriginDestination(event))
83
84
  return;
84
85
  if (isFrameRedirectNavigationInfo(event.info)) {
85
- resyncWebKitScrollAfterNavigation(event, event.info.resetScroll);
86
- event.intercept({
86
+ interceptNavigation(navigation, event, event.info.resetScroll, {
87
87
  async handler() { },
88
- scroll: event.info.resetScroll === false ? 'manual' : undefined,
88
+ scroll: 'manual',
89
89
  });
90
90
  return;
91
91
  }
@@ -99,16 +99,12 @@ export function startNavigationListenerImpl(signal, options) {
99
99
  if (!runtimeNavigation)
100
100
  return;
101
101
  let { state } = runtimeNavigation;
102
- resyncWebKitScrollAfterNavigation(event, state.resetScroll);
103
102
  let topFrame = options.getTopFrame();
104
103
  let namedFrame = state.target ? options.getNamedFrame(state.target) : undefined;
105
104
  let frame = namedFrame ?? topFrame;
106
105
  let handler = async () => {
107
106
  if (event.signal.aborted)
108
107
  return;
109
- if (event.navigationType === 'traverse' && state.resetScroll) {
110
- preserveStartingDocumentScrollState(navigation, event);
111
- }
112
108
  let submission = await runtimeNavigation.getSubmission?.();
113
109
  if (event.signal.aborted)
114
110
  return;
@@ -118,10 +114,16 @@ export function startNavigationListenerImpl(signal, options) {
118
114
  topFrame.src = event.destination.url;
119
115
  if (frame !== topFrame)
120
116
  frame.src = state.src;
121
- let { redirectedTo } = await options.reloadFrame(frame, {
117
+ let reload = options.reloadFrame(frame, {
122
118
  ...submission,
123
119
  signal: event.signal,
124
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;
125
127
  if (redirectedTo && frame === topFrame) {
126
128
  frame.src = redirectedTo;
127
129
  // Start the successor navigation without awaiting it: this handler must settle before
@@ -146,7 +148,7 @@ export function startNavigationListenerImpl(signal, options) {
146
148
  let supportsPrecommit = typeof Reflect.get(window, 'NavigationPrecommitController') === 'function';
147
149
  // Modern browsers allow you to update the in-flight navigation entry before it's committed
148
150
  if (supportsPrecommit) {
149
- event.intercept({
151
+ interceptNavigation(navigation, event, state.resetScroll, {
150
152
  ...interceptOptions,
151
153
  precommitHandler(controller) {
152
154
  controller.redirect(event.destination.url, { history: 'replace' });
@@ -169,7 +171,7 @@ export function startNavigationListenerImpl(signal, options) {
169
171
  return;
170
172
  }
171
173
  }
172
- event.intercept(interceptOptions);
174
+ interceptNavigation(navigation, event, state.resetScroll, interceptOptions);
173
175
  }
174
176
  else {
175
177
  // <a>/<form method="get"> navigations
@@ -178,11 +180,20 @@ export function startNavigationListenerImpl(signal, options) {
178
180
  navigation.navigate(event.destination.url, { history: 'replace', state });
179
181
  }
180
182
  else {
181
- event.intercept(interceptOptions);
183
+ interceptNavigation(navigation, event, state.resetScroll, interceptOptions);
182
184
  }
183
185
  }
184
186
  }, { signal });
185
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
+ }
186
197
  function isRuntimeNavigation(info) {
187
198
  return typeof info === 'object' && info != null && '$rmx' in info;
188
199
  }
@@ -208,41 +219,125 @@ function isCrossOriginDestination(event) {
208
219
  let destination = new URL(event.destination.url);
209
220
  return destination.origin !== window.location.origin;
210
221
  }
211
- function preserveStartingDocumentScrollState(navigation, event) {
212
- // Full-document reconciliation can temporarily shrink the page or trigger scroll anchoring
213
- // before the Navigation API performs its deferred restoration. Preserve the starting scroll
214
- // range and position until the navigation finishes so native restoration remains authoritative.
215
- // Root scroll height includes page-level effects such as body padding.
216
- // We think this is a bug in Chromium where they are incorrectly classifying a
217
- // DOM-modification-driven scroll change as a user scroll action, causing it to skip restoration
218
- // after the transition. The intended user-scroll behavior is tested here:
219
- // https://github.com/web-platform-tests/wpt/blob/master/navigation-api/scroll-behavior/after-transition-skips-restore-when-scrolled.html
220
- let { scrollHeight, clientHeight } = document.documentElement;
221
- let stylesheet = new CSSStyleSheet();
222
- stylesheet.replaceSync(`
223
- html {
224
- min-height: ${scrollHeight + clientHeight}px !important;
225
- overflow-anchor: none !important;
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);
226
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
+ }
227
281
 
228
- body {
229
- overflow-anchor: none !important;
282
+ body {
283
+ overflow-anchor: none !important;
284
+ }
285
+ `,
286
+ cleanup: 'finished',
287
+ };
230
288
  }
231
- `);
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);
232
317
  document.adoptedStyleSheets = [...document.adoptedStyleSheets, stylesheet];
233
- let cleanedUp = false;
234
- let cleanup = () => {
235
- if (cleanedUp)
318
+ let removed = false;
319
+ function remove() {
320
+ event.signal.removeEventListener('abort', remove);
321
+ if (removed)
236
322
  return;
237
- cleanedUp = true;
238
- event.signal.removeEventListener('abort', cleanup);
239
- navigation.removeEventListener('navigatesuccess', cleanup);
240
- navigation.removeEventListener('navigateerror', cleanup);
323
+ removed = true;
241
324
  document.adoptedStyleSheets = document.adoptedStyleSheets.filter((current) => current !== stylesheet);
242
- };
243
- event.signal.addEventListener('abort', cleanup, { once: true });
244
- navigation.addEventListener('navigatesuccess', cleanup, { once: true });
245
- navigation.addEventListener('navigateerror', cleanup, { once: true });
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);
246
341
  }
247
342
  function getRuntimeNavigation(navigation, event, resolveFormNavigation) {
248
343
  if (event.navigationType === 'traverse') {
@@ -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, {
@@ -877,6 +879,7 @@ function resolveClientFrame(node, runtime, serverFrameReload) {
877
879
  }
878
880
  let resolveController = reload?.controller ?? new AbortController();
879
881
  state.resolveController = resolveController;
882
+ let frameCommitted = Promise.withResolvers();
880
883
  let resolve = Promise.resolve()
881
884
  .then(() => runtime.resolveFrame(frameSrc, {
882
885
  signal: resolveController.signal,
@@ -894,6 +897,8 @@ function resolveClientFrame(node, runtime, serverFrameReload) {
894
897
  await instance.render(nextContent, {
895
898
  signal: resolveController.signal,
896
899
  reconciliationTracker: serverFrameReload?.reconciliationTracker,
900
+ blockingFrameTracker: serverFrameReload?.blockingFrameTracker,
901
+ onCommit: frameCommitted.resolve,
897
902
  });
898
903
  if (state.resolveToken !== token || resolveController.signal.aborted)
899
904
  return;
@@ -905,6 +910,7 @@ function resolveClientFrame(node, runtime, serverFrameReload) {
905
910
  }
906
911
  })
907
912
  .finally(() => {
913
+ frameCommitted.resolve();
908
914
  reload?.complete();
909
915
  if (state.resolveController === resolveController) {
910
916
  state.resolveController = undefined;
@@ -913,6 +919,9 @@ function resolveClientFrame(node, runtime, serverFrameReload) {
913
919
  if (serverFrameReload?.reconciliationTracker && !node.props.fallback) {
914
920
  serverFrameReload.reconciliationTracker.waitFor(resolve);
915
921
  }
922
+ if (serverFrameReload?.blockingFrameTracker && !node.props.fallback) {
923
+ serverFrameReload.blockingFrameTracker.waitFor(frameCommitted.promise);
924
+ }
916
925
  }
917
926
  function disposeFrameResources(node) {
918
927
  let state = node._state;