@remix-run/ui 0.1.2 → 0.3.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 (318) hide show
  1. package/README.md +9 -7
  2. package/dist/animation/demos/animation.demo.d.ts +5 -0
  3. package/dist/animation/demos/animation.demo.js +92 -0
  4. package/dist/animation/demos/animation.demo.js.map +1 -0
  5. package/dist/animation/demos/aspect-ratio.d.ts +2 -0
  6. package/dist/animation/demos/aspect-ratio.js +69 -0
  7. package/dist/animation/demos/aspect-ratio.js.map +1 -0
  8. package/dist/animation/demos/bouncy-switch.d.ts +2 -0
  9. package/dist/animation/demos/bouncy-switch.js +36 -0
  10. package/dist/animation/demos/bouncy-switch.js.map +1 -0
  11. package/dist/animation/demos/color-interpolation.d.ts +1 -0
  12. package/dist/animation/demos/color-interpolation.js +53 -0
  13. package/dist/animation/demos/color-interpolation.js.map +1 -0
  14. package/dist/animation/demos/cube.d.ts +2 -0
  15. package/dist/animation/demos/cube.js +86 -0
  16. package/dist/animation/demos/cube.js.map +1 -0
  17. package/dist/animation/demos/default-animate.d.ts +2 -0
  18. package/dist/animation/demos/default-animate.js +89 -0
  19. package/dist/animation/demos/default-animate.js.map +1 -0
  20. package/dist/animation/demos/drag-release.d.ts +24 -0
  21. package/dist/animation/demos/drag-release.js +96 -0
  22. package/dist/animation/demos/drag-release.js.map +1 -0
  23. package/dist/animation/demos/enter.d.ts +1 -0
  24. package/dist/animation/demos/enter.js +19 -0
  25. package/dist/animation/demos/enter.js.map +1 -0
  26. package/dist/animation/demos/exit.d.ts +2 -0
  27. package/dist/animation/demos/exit.js +58 -0
  28. package/dist/animation/demos/exit.js.map +1 -0
  29. package/dist/animation/demos/flip-toggle.d.ts +2 -0
  30. package/dist/animation/demos/flip-toggle.js +37 -0
  31. package/dist/animation/demos/flip-toggle.js.map +1 -0
  32. package/dist/animation/demos/hold-to-confirm.d.ts +13 -0
  33. package/dist/animation/demos/hold-to-confirm.js +211 -0
  34. package/dist/animation/demos/hold-to-confirm.js.map +1 -0
  35. package/dist/animation/demos/html-content.d.ts +2 -0
  36. package/dist/animation/demos/html-content.js +30 -0
  37. package/dist/animation/demos/html-content.js.map +1 -0
  38. package/dist/animation/demos/interruptible-keyframes.d.ts +1 -0
  39. package/dist/animation/demos/interruptible-keyframes.js +48 -0
  40. package/dist/animation/demos/interruptible-keyframes.js.map +1 -0
  41. package/dist/animation/demos/keyframes.d.ts +1 -0
  42. package/dist/animation/demos/keyframes.js +24 -0
  43. package/dist/animation/demos/keyframes.js.map +1 -0
  44. package/dist/animation/demos/material-ripple.d.ts +2 -0
  45. package/dist/animation/demos/material-ripple.js +127 -0
  46. package/dist/animation/demos/material-ripple.js.map +1 -0
  47. package/dist/animation/demos/mixin-presence-list.d.ts +2 -0
  48. package/dist/animation/demos/mixin-presence-list.js +88 -0
  49. package/dist/animation/demos/mixin-presence-list.js.map +1 -0
  50. package/dist/animation/demos/mixin-reclaim.d.ts +2 -0
  51. package/dist/animation/demos/mixin-reclaim.js +90 -0
  52. package/dist/animation/demos/mixin-reclaim.js.map +1 -0
  53. package/dist/animation/demos/multi-state-badge.d.ts +2 -0
  54. package/dist/animation/demos/multi-state-badge.js +231 -0
  55. package/dist/animation/demos/multi-state-badge.js.map +1 -0
  56. package/dist/animation/demos/press.d.ts +2 -0
  57. package/dist/animation/demos/press.js +63 -0
  58. package/dist/animation/demos/press.js.map +1 -0
  59. package/dist/animation/demos/reordering.d.ts +2 -0
  60. package/dist/animation/demos/reordering.js +50 -0
  61. package/dist/animation/demos/reordering.js.map +1 -0
  62. package/dist/animation/demos/rolling-square.d.ts +2 -0
  63. package/dist/animation/demos/rolling-square.js +42 -0
  64. package/dist/animation/demos/rolling-square.js.map +1 -0
  65. package/dist/animation/demos/rotate.d.ts +1 -0
  66. package/dist/animation/demos/rotate.js +18 -0
  67. package/dist/animation/demos/rotate.js.map +1 -0
  68. package/dist/animation/demos/shared-layout.d.ts +2 -0
  69. package/dist/animation/demos/shared-layout.js +114 -0
  70. package/dist/animation/demos/shared-layout.js.map +1 -0
  71. package/dist/animation/demos/spring.demo.d.ts +6 -0
  72. package/dist/animation/demos/spring.demo.js +304 -0
  73. package/dist/animation/demos/spring.demo.js.map +1 -0
  74. package/dist/animation/demos/transition-options.d.ts +1 -0
  75. package/dist/animation/demos/transition-options.js +21 -0
  76. package/dist/animation/demos/transition-options.js.map +1 -0
  77. package/dist/animation/spring.d.ts +24 -31
  78. package/dist/animation/spring.js +31 -8
  79. package/dist/animation/spring.js.map +1 -1
  80. package/dist/components/accordion/accordion.d.ts +6 -6
  81. package/dist/components/accordion/accordion.js.map +1 -1
  82. package/dist/components/accordion/demos/card.demo.d.ts +1 -0
  83. package/dist/components/accordion/demos/card.demo.js +1 -0
  84. package/dist/components/accordion/demos/card.demo.js.map +1 -1
  85. package/dist/components/accordion/demos/multiple.demo.d.ts +1 -0
  86. package/dist/components/accordion/demos/multiple.demo.js +1 -0
  87. package/dist/components/accordion/demos/multiple.demo.js.map +1 -1
  88. package/dist/components/accordion/demos/overview.demo.d.ts +1 -0
  89. package/dist/components/accordion/demos/overview.demo.js +1 -0
  90. package/dist/components/accordion/demos/overview.demo.js.map +1 -1
  91. package/dist/components/anchor/anchor.d.ts +8 -1
  92. package/dist/components/anchor/anchor.js +30 -11
  93. package/dist/components/anchor/anchor.js.map +1 -1
  94. package/dist/components/breadcrumbs/{demos/basic.demo.d.ts → basic.demo.d.ts} +1 -0
  95. package/dist/components/breadcrumbs/{demos/basic.demo.js → basic.demo.js} +1 -0
  96. package/dist/components/breadcrumbs/basic.demo.js.map +1 -0
  97. package/dist/components/breadcrumbs/breadcrumbs.d.ts +1 -1
  98. package/dist/components/breadcrumbs/{demos/separator.demo.d.ts → separator.demo.d.ts} +1 -0
  99. package/dist/components/breadcrumbs/{demos/separator.demo.js → separator.demo.js} +1 -0
  100. package/dist/components/breadcrumbs/separator.demo.js.map +1 -0
  101. package/dist/components/button/button.d.ts +4 -4
  102. package/dist/components/button/button.js +3 -1
  103. package/dist/components/button/button.js.map +1 -1
  104. package/dist/components/button/demos/aliases.demo.d.ts +1 -0
  105. package/dist/components/button/demos/aliases.demo.js +1 -0
  106. package/dist/components/button/demos/aliases.demo.js.map +1 -1
  107. package/dist/components/button/demos/basic.demo.d.ts +1 -0
  108. package/dist/components/button/demos/basic.demo.js +1 -0
  109. package/dist/components/button/demos/basic.demo.js.map +1 -1
  110. package/dist/components/button/demos/states.demo.d.ts +1 -0
  111. package/dist/components/button/demos/states.demo.js +1 -0
  112. package/dist/components/button/demos/states.demo.js.map +1 -1
  113. package/dist/components/combobox/combobox.d.ts +10 -10
  114. package/dist/components/combobox/combobox.js.map +1 -1
  115. package/dist/components/combobox/{demos/overview.demo.d.ts → overview.demo.d.ts} +1 -0
  116. package/dist/components/combobox/{demos/overview.demo.js → overview.demo.js} +1 -0
  117. package/dist/components/combobox/overview.demo.js.map +1 -0
  118. package/dist/components/listbox/listbox.d.ts +3 -3
  119. package/dist/components/listbox/listbox.js.map +1 -1
  120. package/dist/components/listbox/{demos/overview.demo.d.ts → overview.demo.d.ts} +1 -0
  121. package/dist/components/listbox/{demos/overview.demo.js → overview.demo.js} +1 -0
  122. package/dist/components/listbox/overview.demo.js.map +1 -0
  123. package/dist/components/menu/demos/bubbling.demo.d.ts +1 -0
  124. package/dist/components/menu/demos/bubbling.demo.js +1 -0
  125. package/dist/components/menu/demos/bubbling.demo.js.map +1 -1
  126. package/dist/components/menu/demos/context-trigger.demo.d.ts +7 -0
  127. package/dist/components/menu/demos/context-trigger.demo.js +87 -0
  128. package/dist/components/menu/demos/context-trigger.demo.js.map +1 -0
  129. package/dist/components/menu/demos/overview.demo.d.ts +1 -0
  130. package/dist/components/menu/demos/overview.demo.js +1 -0
  131. package/dist/components/menu/demos/overview.demo.js.map +1 -1
  132. package/dist/components/menu/menu.d.ts +15 -12
  133. package/dist/components/menu/menu.js +55 -0
  134. package/dist/components/menu/menu.js.map +1 -1
  135. package/dist/components/popover/{demos/overview.demo.d.ts → overview.demo.d.ts} +1 -0
  136. package/dist/components/popover/{demos/overview.demo.js → overview.demo.js} +1 -0
  137. package/dist/components/popover/overview.demo.js.map +1 -0
  138. package/dist/components/popover/popover.d.ts +7 -7
  139. package/dist/components/popover/popover.js +11 -4
  140. package/dist/components/popover/popover.js.map +1 -1
  141. package/dist/components/select/{demos/deconstructed.demo.d.ts → deconstructed.demo.d.ts} +1 -0
  142. package/dist/components/select/{demos/deconstructed.demo.js → deconstructed.demo.js} +1 -0
  143. package/dist/components/select/deconstructed.demo.js.map +1 -0
  144. package/dist/components/select/{demos/overview.demo.d.ts → overview.demo.d.ts} +1 -0
  145. package/dist/components/select/{demos/overview.demo.js → overview.demo.js} +1 -0
  146. package/dist/components/select/overview.demo.js.map +1 -0
  147. package/dist/components/select/select.d.ts +10 -10
  148. package/dist/components/select/select.js +1 -1
  149. package/dist/components/select/select.js.map +1 -1
  150. package/dist/components/tabs/tabs.d.ts +3 -3
  151. package/dist/index.d.ts +1 -1
  152. package/dist/index.js.map +1 -1
  153. package/dist/interactions/keydown/keydown.d.ts +1 -1
  154. package/dist/interactions/outside-click/outside-click-mixin.d.ts +2 -1
  155. package/dist/interactions/typeahead/typeahead-mixin.d.ts +3 -1
  156. package/dist/runtime/client-entries.d.ts +1 -2
  157. package/dist/runtime/client-entries.js.map +1 -1
  158. package/dist/runtime/component.d.ts +20 -17
  159. package/dist/runtime/component.js +15 -6
  160. package/dist/runtime/component.js.map +1 -1
  161. package/dist/runtime/core/attributes.d.ts +3 -1
  162. package/dist/runtime/core/attributes.js +19 -1
  163. package/dist/runtime/core/attributes.js.map +1 -1
  164. package/dist/runtime/core/props.js +6 -5
  165. package/dist/runtime/core/props.js.map +1 -1
  166. package/dist/runtime/demos/basic.demo.d.ts +6 -0
  167. package/dist/runtime/demos/basic.demo.js +16 -0
  168. package/dist/runtime/demos/basic.demo.js.map +1 -0
  169. package/dist/runtime/demos/controlled-uncontrolled-values.demo.d.ts +6 -0
  170. package/dist/runtime/demos/controlled-uncontrolled-values.demo.js +77 -0
  171. package/dist/runtime/demos/controlled-uncontrolled-values.demo.js.map +1 -0
  172. package/dist/runtime/demos/keyed-list.demo.d.ts +6 -0
  173. package/dist/runtime/demos/keyed-list.demo.js +62 -0
  174. package/dist/runtime/demos/keyed-list.demo.js.map +1 -0
  175. package/dist/runtime/demos/readme.demo.d.ts +5 -0
  176. package/dist/runtime/demos/readme.demo.js +396 -0
  177. package/dist/runtime/demos/readme.demo.js.map +1 -0
  178. package/dist/runtime/diff-dom.js +194 -21
  179. package/dist/runtime/diff-dom.js.map +1 -1
  180. package/dist/runtime/dom.d.ts +16 -9
  181. package/dist/runtime/frame.d.ts +7 -0
  182. package/dist/runtime/frame.js +176 -41
  183. package/dist/runtime/frame.js.map +1 -1
  184. package/dist/runtime/jsx.d.ts +3 -4
  185. package/dist/runtime/jsx.js.map +1 -1
  186. package/dist/runtime/mixins/link-mixin.d.ts +5 -1
  187. package/dist/runtime/mixins/link-mixin.js.map +1 -1
  188. package/dist/runtime/mixins/mixin.d.ts +2 -1
  189. package/dist/runtime/mixins/mixin.js.map +1 -1
  190. package/dist/runtime/mixins/ref-mixin.d.ts +2 -1
  191. package/dist/runtime/mixins/ref-mixin.js.map +1 -1
  192. package/dist/runtime/reconcile.d.ts +1 -1
  193. package/dist/runtime/reconcile.js +19 -5
  194. package/dist/runtime/reconcile.js.map +1 -1
  195. package/dist/runtime/scheduler.d.ts +10 -10
  196. package/dist/runtime/scheduler.js +1 -1
  197. package/dist/runtime/scheduler.js.map +1 -1
  198. package/dist/runtime/svg-attributes.js +1 -0
  199. package/dist/runtime/svg-attributes.js.map +1 -1
  200. package/dist/runtime/to-vnode.js +2 -2
  201. package/dist/runtime/to-vnode.js.map +1 -1
  202. package/dist/runtime/vnode.d.ts +6 -1
  203. package/dist/runtime/vnode.js +4 -0
  204. package/dist/runtime/vnode.js.map +1 -1
  205. package/dist/server/stream.d.ts +2 -0
  206. package/dist/server/stream.js +82 -11
  207. package/dist/server/stream.js.map +1 -1
  208. package/dist/style/css-mixin.d.ts +2 -1
  209. package/dist/style/css-mixin.js.map +1 -1
  210. package/dist/style/index.d.ts +1 -1
  211. package/dist/style/style.js +27 -10
  212. package/dist/style/style.js.map +1 -1
  213. package/dist/style/stylesheet.d.ts +13 -13
  214. package/dist/style/stylesheet.js.map +1 -1
  215. package/dist/theme/contract.d.ts +24 -222
  216. package/dist/theme/contract.js +2 -2
  217. package/dist/theme/contract.js.map +1 -1
  218. package/dist/theme/glyph-contract.d.ts +1 -3
  219. package/dist/theme/glyph-contract.js.map +1 -1
  220. package/dist/theme/presets/rmx-01/index.d.ts +4 -2
  221. package/dist/theme/presets/rmx-01/index.js.map +1 -1
  222. package/dist/utils/scroll-lock.d.ts +3 -3
  223. package/dist/utils/scroll-lock.js.map +1 -1
  224. package/package.json +4 -4
  225. package/src/animation/README.md +7 -5
  226. package/src/animation/demos/animation.demo.tsx +194 -0
  227. package/src/animation/demos/aspect-ratio.tsx +120 -0
  228. package/src/animation/demos/bouncy-switch.tsx +47 -0
  229. package/src/animation/demos/color-interpolation.tsx +73 -0
  230. package/src/animation/demos/cube.tsx +116 -0
  231. package/src/animation/demos/default-animate.tsx +129 -0
  232. package/src/animation/demos/drag-release.ts +118 -0
  233. package/src/animation/demos/enter.tsx +22 -0
  234. package/src/animation/demos/exit.tsx +79 -0
  235. package/src/animation/demos/flip-toggle.tsx +46 -0
  236. package/src/animation/demos/hold-to-confirm.tsx +317 -0
  237. package/src/animation/demos/html-content.tsx +41 -0
  238. package/src/animation/demos/interruptible-keyframes.tsx +62 -0
  239. package/src/animation/demos/keyframes.tsx +29 -0
  240. package/src/animation/demos/material-ripple.tsx +158 -0
  241. package/src/animation/demos/mixin-presence-list.tsx +121 -0
  242. package/src/animation/demos/mixin-reclaim.tsx +125 -0
  243. package/src/animation/demos/multi-state-badge.tsx +426 -0
  244. package/src/animation/demos/press.tsx +67 -0
  245. package/src/animation/demos/reordering.tsx +65 -0
  246. package/src/animation/demos/rolling-square.tsx +57 -0
  247. package/src/animation/demos/rotate.tsx +21 -0
  248. package/src/animation/demos/shared-layout.tsx +211 -0
  249. package/src/animation/demos/spring.demo.tsx +385 -0
  250. package/src/animation/demos/transition-options.tsx +24 -0
  251. package/src/animation/spring.ts +43 -9
  252. package/src/components/accordion/accordion.tsx +7 -5
  253. package/src/components/accordion/demos/card.demo.tsx +1 -0
  254. package/src/components/accordion/demos/multiple.demo.tsx +1 -0
  255. package/src/components/accordion/demos/overview.demo.tsx +1 -0
  256. package/src/components/anchor/README.md +11 -3
  257. package/src/components/anchor/anchor.ts +54 -13
  258. package/src/components/breadcrumbs/{demos/basic.demo.tsx → basic.demo.tsx} +1 -0
  259. package/src/components/breadcrumbs/breadcrumbs.tsx +1 -1
  260. package/src/components/breadcrumbs/{demos/separator.demo.tsx → separator.demo.tsx} +1 -0
  261. package/src/components/button/button.tsx +30 -18
  262. package/src/components/button/demos/aliases.demo.tsx +1 -0
  263. package/src/components/button/demos/basic.demo.tsx +1 -0
  264. package/src/components/button/demos/states.demo.tsx +1 -0
  265. package/src/components/combobox/README.md +1 -1
  266. package/src/components/combobox/combobox.tsx +30 -12
  267. package/src/components/combobox/{demos/overview.demo.tsx → overview.demo.tsx} +1 -0
  268. package/src/components/glyph/glyph.tsx +2 -2
  269. package/src/components/listbox/listbox.ts +88 -83
  270. package/src/components/listbox/{demos/overview.demo.tsx → overview.demo.tsx} +1 -0
  271. package/src/components/menu/README.md +26 -2
  272. package/src/components/menu/demos/bubbling.demo.tsx +1 -0
  273. package/src/components/menu/demos/context-trigger.demo.tsx +133 -0
  274. package/src/components/menu/demos/overview.demo.tsx +1 -0
  275. package/src/components/menu/menu.tsx +100 -16
  276. package/src/components/popover/{demos/overview.demo.tsx → overview.demo.tsx} +1 -0
  277. package/src/components/popover/popover.ts +101 -81
  278. package/src/components/select/{demos/deconstructed.demo.tsx → deconstructed.demo.tsx} +1 -0
  279. package/src/components/select/{demos/overview.demo.tsx → overview.demo.tsx} +1 -0
  280. package/src/components/select/select.tsx +27 -10
  281. package/src/index.ts +1 -0
  282. package/src/runtime/client-entries.ts +1 -5
  283. package/src/runtime/component.ts +37 -15
  284. package/src/runtime/core/attributes.ts +21 -0
  285. package/src/runtime/core/props.ts +6 -4
  286. package/src/runtime/demos/basic.demo.tsx +21 -0
  287. package/src/runtime/demos/controlled-uncontrolled-values.demo.tsx +177 -0
  288. package/src/runtime/demos/keyed-list.demo.tsx +94 -0
  289. package/src/runtime/demos/readme.demo.tsx +702 -0
  290. package/src/runtime/diff-dom.ts +270 -20
  291. package/src/runtime/dom.ts +16 -9
  292. package/src/runtime/frame.ts +218 -41
  293. package/src/runtime/jsx.ts +7 -11
  294. package/src/runtime/mixins/link-mixin.ts +88 -86
  295. package/src/runtime/mixins/mixin.ts +9 -1
  296. package/src/runtime/mixins/ref-mixin.ts +4 -5
  297. package/src/runtime/reconcile.ts +23 -14
  298. package/src/runtime/scheduler.ts +20 -20
  299. package/src/runtime/svg-attributes.ts +1 -0
  300. package/src/runtime/to-vnode.ts +2 -2
  301. package/src/runtime/vnode.ts +10 -0
  302. package/src/server/README.md +4 -2
  303. package/src/server/stream.ts +84 -10
  304. package/src/style/css-mixin.ts +6 -1
  305. package/src/style/index.ts +1 -2
  306. package/src/style/style.ts +29 -10
  307. package/src/style/stylesheet.ts +14 -2
  308. package/src/theme/contract.ts +37 -5
  309. package/src/theme/glyph-contract.ts +3 -1
  310. package/src/theme/presets/rmx-01/index.ts +4 -2
  311. package/src/utils/scroll-lock.ts +7 -3
  312. package/dist/components/breadcrumbs/demos/basic.demo.js.map +0 -1
  313. package/dist/components/breadcrumbs/demos/separator.demo.js.map +0 -1
  314. package/dist/components/combobox/demos/overview.demo.js.map +0 -1
  315. package/dist/components/listbox/demos/overview.demo.js.map +0 -1
  316. package/dist/components/popover/demos/overview.demo.js.map +0 -1
  317. package/dist/components/select/demos/deconstructed.demo.js.map +0 -1
  318. package/dist/components/select/demos/overview.demo.js.map +0 -1
@@ -6,10 +6,11 @@ export function diffNodes(curr, next, context) {
6
6
  // nodes before the region tail ref rather than appending to the parent.
7
7
  let regionTailRef = context.regionTailRef ??
8
8
  (curr.length > 0 ? curr[curr.length - 1].nextSibling : null);
9
- let max = Math.max(curr.length, next.length);
10
- for (let i = 0; i < max; i++) {
11
- let c = curr[i];
12
- let n = next[i];
9
+ let currentIndex = 0;
10
+ let nextIndex = 0;
11
+ while (currentIndex < curr.length || nextIndex < next.length) {
12
+ let c = curr[currentIndex];
13
+ let n = next[nextIndex];
13
14
  if (!c && n) {
14
15
  if (regionTailRef) {
15
16
  parent.insertBefore(n, regionTailRef);
@@ -17,12 +18,21 @@ export function diffNodes(curr, next, context) {
17
18
  else {
18
19
  parent.appendChild(n);
19
20
  }
21
+ nextIndex++;
20
22
  }
21
23
  else if (c && !n) {
22
24
  removeNode(c, parent, context);
25
+ currentIndex++;
23
26
  }
24
27
  else if (c && n) {
25
- // Skip hydrated client-entry boundary ranges; hydration pass re-renders
28
+ let replacement = getCommentMarkerRangeReplacement(c, n, curr, next, currentIndex, nextIndex, context);
29
+ if (replacement) {
30
+ replaceCommentMarkerRange(replacement, parent, context);
31
+ currentIndex = replacement.currentEndIndex + 1;
32
+ nextIndex = replacement.nextEndIndex + 1;
33
+ continue;
34
+ }
35
+ // Skip hydrated client-entry marker ranges; hydration pass re-renders
26
36
  // roots with new props from incoming payload
27
37
  if (isVirtualRootStartMarker(c) && isVirtualRootStartMarker(n)) {
28
38
  let currentEnd = findHydrationEndMarker(c);
@@ -32,13 +42,22 @@ export function diffNodes(curr, next, context) {
32
42
  c.data = nextData;
33
43
  let currentEndIndex = curr.indexOf(currentEnd);
34
44
  let nextEndIndex = next.indexOf(nextEnd);
35
- i = Math.max(currentEndIndex, nextEndIndex);
45
+ currentIndex = currentEndIndex + 1;
46
+ nextIndex = nextEndIndex + 1;
36
47
  continue;
37
48
  }
38
49
  let cursor = diffNode(c, n, context);
39
50
  if (cursor) {
40
- i = next.indexOf(cursor);
51
+ let nextEndIndex = next.indexOf(cursor);
52
+ let currentEndIndex = isFrameStartMarker(c) && isFrameEndMarker(cursor)
53
+ ? findFrameEndIndex(curr, currentIndex)
54
+ : currentIndex;
55
+ currentIndex = currentEndIndex + 1;
56
+ nextIndex = nextEndIndex + 1;
57
+ continue;
41
58
  }
59
+ currentIndex++;
60
+ nextIndex++;
42
61
  }
43
62
  }
44
63
  }
@@ -50,7 +69,7 @@ function diffNode(current, next, context) {
50
69
  current.textContent = newText;
51
70
  return;
52
71
  }
53
- // Hydration boundary -> Hydration boundary
72
+ // Hydration marker range -> Hydration marker range
54
73
  if (isVirtualRootStartMarker(current) && isVirtualRootStartMarker(next)) {
55
74
  let nextData = next.data;
56
75
  if (current.data !== nextData) {
@@ -64,9 +83,36 @@ function diffNode(current, next, context) {
64
83
  if (isCommentNode(current) && isCommentNode(next)) {
65
84
  let newData = next.data;
66
85
  if (current.data !== newData) {
67
- if (isFrameStartMarker(current))
68
- disposeFrameStartMarker(current, context);
69
- current.data = newData;
86
+ let updated = false;
87
+ if (isFrameStartMarker(current)) {
88
+ if (shouldPreserveFrameStartMarker(current, next, context)) {
89
+ current.data = newData;
90
+ updated = true;
91
+ let frame = context.frameInstances.get(current);
92
+ let nextMarkerData = getFrameMarkerData(next, context);
93
+ if (frame && nextMarkerData) {
94
+ if (nextMarkerData.status === 'resolved') {
95
+ let nextEnd = findFrameEndMarker(next);
96
+ let nextContent = collectFrameContentFragment(current.ownerDocument, next, nextEnd);
97
+ void frame.renderMarkerContent({ ...nextMarkerData, id: getFrameId(next) }, nextContent, {
98
+ signal: context.signal,
99
+ });
100
+ return nextEnd;
101
+ }
102
+ if (frame.isDisplayingResolvedContent()) {
103
+ return findFrameEndMarker(next);
104
+ }
105
+ }
106
+ }
107
+ else {
108
+ disposeFrameStartMarker(current, context);
109
+ current.data = newData;
110
+ updated = true;
111
+ }
112
+ }
113
+ if (!updated) {
114
+ current.data = newData;
115
+ }
70
116
  }
71
117
  return;
72
118
  }
@@ -190,7 +236,15 @@ function diffElementChildren(current, next, context) {
190
236
  for (let i = 0; i < nextChildren.length; i++) {
191
237
  let nextChild = nextChildren[i];
192
238
  let matchIndex = -1;
193
- if (isElement(nextChild)) {
239
+ if (isFrameEndMarker(nextChild)) {
240
+ for (let j = 0; j < currentChildren.length; j++) {
241
+ if (!used[j] && isFrameEndMarker(currentChildren[j])) {
242
+ matchIndex = j;
243
+ break;
244
+ }
245
+ }
246
+ }
247
+ else if (isElement(nextChild)) {
194
248
  let key = nextChild.getAttribute('data-key');
195
249
  if (key != null && keyToIndex.has(key)) {
196
250
  let idx = keyToIndex.get(key);
@@ -216,13 +270,29 @@ function diffElementChildren(current, next, context) {
216
270
  let mi = matchIndexForNext[i];
217
271
  if (mi !== -1) {
218
272
  let curChild = currentChildren[mi];
219
- let cursor = diffNode(curChild, nextChildren[i], context);
273
+ let nextChild = nextChildren[i];
274
+ let replacement = getCommentMarkerRangeReplacement(curChild, nextChild, currentChildren, nextChildren, mi, i, context);
275
+ if (replacement) {
276
+ replaceCommentMarkerRange(replacement, current, context);
277
+ for (let k = mi; k <= replacement.currentEndIndex; k++)
278
+ used[k] = true;
279
+ committed[i] = replacement.nextStart;
280
+ committed[replacement.nextEndIndex] = nextChildren[replacement.nextEndIndex];
281
+ for (let j = i + 1; j < replacement.nextEndIndex; j++)
282
+ committed[j] = undefined;
283
+ i = replacement.nextEndIndex;
284
+ continue;
285
+ }
286
+ let cursor = diffNode(curChild, nextChild, context);
220
287
  if (cursor) {
221
- // Fast-forward across a hydrated virtual root region.
288
+ // `diffNode` can preserve hydration and frame marker ranges by returning
289
+ // the next end marker, so skip the owned interior nodes here.
222
290
  let nextEndIdx = nextChildren.indexOf(cursor);
223
- let currEndIdx = findHydrationEndIndex(currentChildren, mi);
224
- // Adjacent hydration regions can pre-match into the next region and leave
225
- // an orphaned `<!-- /rmx:h -->` behind. Clear those stale matches first.
291
+ let currEndIdx = isFrameStartMarker(curChild) && isFrameEndMarker(cursor)
292
+ ? findFrameEndIndex(currentChildren, mi)
293
+ : findHydrationEndIndex(currentChildren, mi);
294
+ // Adjacent marker ranges can pre-match into the next range and leave an
295
+ // orphaned end marker behind. Clear those stale matches first.
226
296
  for (let j = i + 1; j <= nextEndIdx; j++) {
227
297
  let matchedIndex = matchIndexForNext[j];
228
298
  if (matchedIndex > currEndIdx) {
@@ -233,7 +303,7 @@ function diffElementChildren(current, next, context) {
233
303
  // Mark the entire current region as used to avoid removals.
234
304
  for (let k = mi; k <= currEndIdx; k++)
235
305
  used[k] = true;
236
- // Preserve both boundary markers in committed; skip interior in reorder pass.
306
+ // Preserve both comment markers in committed; skip interior in reorder pass.
237
307
  committed[i] = curChild; // start marker
238
308
  committed[nextEndIdx] = currentChildren[currEndIdx]; // end marker
239
309
  for (let j = i + 1; j < nextEndIdx; j++)
@@ -256,9 +326,13 @@ function diffElementChildren(current, next, context) {
256
326
  continue;
257
327
  // Use only an anchor that is actually a child of the current parent
258
328
  let ref = anchor && anchor.parentNode === current ? anchor : null;
259
- // Do not move hydration boundary markers; keep region stable.
260
- // If a boundary marker is new, ensure it is inserted before using it as an anchor.
261
- if (isVirtualRootStartMarker(node) || isVirtualRootEndMarker(node)) {
329
+ // Existing comment markers delimit live ranges, so do not reorder them
330
+ // independently from their contents. New markers still need to be inserted
331
+ // before they can be used as anchors.
332
+ if (isVirtualRootStartMarker(node) ||
333
+ isVirtualRootEndMarker(node) ||
334
+ isFrameStartMarker(node) ||
335
+ isFrameEndMarker(node)) {
262
336
  if (node.parentNode !== current) {
263
337
  current.insertBefore(node, ref);
264
338
  }
@@ -330,6 +404,35 @@ function findHydrationEndIndex(nodes, startIdx) {
330
404
  }
331
405
  return startIdx;
332
406
  }
407
+ function findFrameEndMarker(start) {
408
+ let node = start.nextSibling;
409
+ let depth = 1;
410
+ while (node) {
411
+ if (isFrameStartMarker(node))
412
+ depth++;
413
+ if (isFrameEndMarker(node)) {
414
+ depth--;
415
+ if (depth === 0)
416
+ return node;
417
+ }
418
+ node = node.nextSibling;
419
+ }
420
+ throw new Error('Frame end marker not found');
421
+ }
422
+ function findFrameEndIndex(nodes, startIdx) {
423
+ let depth = 1;
424
+ for (let j = startIdx + 1; j < nodes.length; j++) {
425
+ let node = nodes[j];
426
+ if (isFrameStartMarker(node))
427
+ depth++;
428
+ if (isFrameEndMarker(node)) {
429
+ depth--;
430
+ if (depth === 0)
431
+ return j;
432
+ }
433
+ }
434
+ return startIdx;
435
+ }
333
436
  function isTextNode(node) {
334
437
  return node.nodeType === Node.TEXT_NODE;
335
438
  }
@@ -342,6 +445,76 @@ function isCommentNode(node) {
342
445
  function isFrameStartMarker(node) {
343
446
  return node instanceof Comment && node.data.trim().startsWith('rmx:f:');
344
447
  }
448
+ function isFrameEndMarker(node) {
449
+ return node instanceof Comment && node.data.trim() === '/rmx:f';
450
+ }
451
+ function shouldPreserveFrameStartMarker(current, next, context) {
452
+ if (!isFrameStartMarker(next))
453
+ return false;
454
+ let currentData = getFrameMarkerData(current, context);
455
+ let nextData = getFrameMarkerData(next, context);
456
+ return (currentData !== undefined &&
457
+ nextData !== undefined &&
458
+ currentData.src === nextData.src &&
459
+ currentData.name === nextData.name);
460
+ }
461
+ function getCommentMarkerRangeReplacement(current, next, currentNodes, nextNodes, currentIndex, nextIndex, context) {
462
+ // Comment markers can represent owned DOM ranges, not standalone comments. If
463
+ // the incoming range no longer has the same identity, replace the whole range
464
+ // before regular node diffing mutates either marker.
465
+ if (isFrameStartMarker(current) &&
466
+ isFrameStartMarker(next) &&
467
+ !shouldPreserveFrameStartMarker(current, next, context)) {
468
+ return {
469
+ currentStart: current,
470
+ nextStart: next,
471
+ currentEndIndex: findFrameEndIndex(currentNodes, currentIndex),
472
+ nextEndIndex: findFrameEndIndex(nextNodes, nextIndex),
473
+ };
474
+ }
475
+ }
476
+ function getFrameMarkerData(marker, context) {
477
+ let id = getFrameId(marker);
478
+ return context.data.f?.[id];
479
+ }
480
+ function getFrameId(marker) {
481
+ let trimmed = marker.data.trim();
482
+ invariant(trimmed.startsWith('rmx:f:'), 'Invalid frame start marker');
483
+ return trimmed.slice('rmx:f:'.length);
484
+ }
485
+ function replaceCommentMarkerRange(replacement, parent, context) {
486
+ let currentEnd = findFrameEndMarker(replacement.currentStart);
487
+ let nextEnd = findFrameEndMarker(replacement.nextStart);
488
+ let nextNodes = collectNodeRange(replacement.nextStart, nextEnd);
489
+ let currentNodes = collectNodeRange(replacement.currentStart, currentEnd);
490
+ for (let node of nextNodes) {
491
+ parent.insertBefore(node, replacement.currentStart);
492
+ }
493
+ for (let node of currentNodes) {
494
+ removeNode(node, parent, context);
495
+ }
496
+ }
497
+ function collectNodeRange(start, end) {
498
+ let nodes = [];
499
+ let node = start;
500
+ while (node) {
501
+ nodes.push(node);
502
+ if (node === end)
503
+ break;
504
+ node = node.nextSibling;
505
+ }
506
+ return nodes;
507
+ }
508
+ function collectFrameContentFragment(doc, start, end) {
509
+ let fragment = doc.createDocumentFragment();
510
+ let node = start.nextSibling;
511
+ while (node && node !== end) {
512
+ let next = node.nextSibling;
513
+ fragment.appendChild(node);
514
+ node = next;
515
+ }
516
+ return fragment;
517
+ }
345
518
  function removeNode(node, parent, context) {
346
519
  disposeRemovedVirtualRoots(node);
347
520
  disposeRemovedSubFrames(node, context);
@@ -1 +1 @@
1
- {"version":3,"file":"diff-dom.js","sourceRoot":"","sources":["../../src/runtime/diff-dom.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diff-dom.js","sourceRoot":"","sources":["../../src/runtime/diff-dom.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ import type { MixInput } from './mixins/mixin.ts';
8
8
  * - Copyright (c) 2015-present Jason Miller
9
9
  */
10
10
  type Booleanish = boolean | 'true' | 'false';
11
+ type TranslateValue = 'yes' | 'no';
11
12
  /**
12
13
  * Layout animation configuration for FLIP-based position animations.
13
14
  * All properties are optional - defaults are applied when `true` or `{}` is used.
@@ -73,6 +74,8 @@ export interface SVGProps<eventTarget extends EventTarget = SVGElement> extends
73
74
  attributeName?: Trackable<string | undefined>;
74
75
  /** The `attributeType` SVG attribute. */
75
76
  attributeType?: Trackable<string | undefined>;
77
+ /** The `autoReverse` SVG attribute. */
78
+ autoReverse?: Trackable<Booleanish | undefined>;
76
79
  /** The `azimuth` SVG attribute. */
77
80
  azimuth?: Trackable<number | string | undefined>;
78
81
  /** The `baseFrequency` SVG attribute. */
@@ -176,7 +179,7 @@ export interface SVGProps<eventTarget extends EventTarget = SVGElement> extends
176
179
  /** The `exponent` SVG attribute. */
177
180
  exponent?: Trackable<number | string | undefined>;
178
181
  /** The `externalResourcesRequired` SVG attribute. */
179
- externalResourcesRequired?: Trackable<number | string | undefined>;
182
+ externalResourcesRequired?: Trackable<Booleanish | undefined>;
180
183
  /** The `fill` SVG attribute. */
181
184
  fill?: Trackable<string | undefined>;
182
185
  /** The `fillOpacity` SVG attribute. */
@@ -202,7 +205,7 @@ export interface SVGProps<eventTarget extends EventTarget = SVGElement> extends
202
205
  /** The `flood-opacity` SVG attribute. */
203
206
  'flood-opacity'?: Trackable<number | string | undefined>;
204
207
  /** The `focusable` SVG attribute. */
205
- focusable?: Trackable<number | string | undefined>;
208
+ focusable?: Trackable<Booleanish | undefined>;
206
209
  /** The `fontFamily` SVG attribute. */
207
210
  fontFamily?: Trackable<string | undefined>;
208
211
  /** The `font-family` SVG attribute. */
@@ -410,7 +413,7 @@ export interface SVGProps<eventTarget extends EventTarget = SVGElement> extends
410
413
  /** The `pointsAtZ` SVG attribute. */
411
414
  pointsAtZ?: Trackable<number | string | undefined>;
412
415
  /** The `preserveAlpha` SVG attribute. */
413
- preserveAlpha?: Trackable<number | string | undefined>;
416
+ preserveAlpha?: Trackable<Booleanish | undefined>;
414
417
  /** The `preserveAspectRatio` SVG attribute. */
415
418
  preserveAspectRatio?: Trackable<string | undefined>;
416
419
  /** The `primitiveUnits` SVG attribute. */
@@ -1066,7 +1069,7 @@ export interface AllHTMLProps<eventTarget extends EventTarget = EventTarget> ext
1066
1069
  /** The `decoding` HTML attribute. */
1067
1070
  decoding?: Trackable<'sync' | 'async' | 'auto' | undefined>;
1068
1071
  /** The `draggable` HTML attribute. */
1069
- draggable?: Trackable<boolean | undefined>;
1072
+ draggable?: Trackable<Booleanish | undefined>;
1070
1073
  /** The `encType` HTML attribute. */
1071
1074
  encType?: Trackable<string | undefined>;
1072
1075
  /** The `enctype` HTML attribute. */
@@ -1278,7 +1281,9 @@ export interface AllHTMLProps<eventTarget extends EventTarget = EventTarget> ext
1278
1281
  /** The `span` HTML attribute. */
1279
1282
  span?: Trackable<number | undefined>;
1280
1283
  /** The `spellcheck` HTML attribute. */
1281
- spellcheck?: Trackable<boolean | undefined>;
1284
+ spellcheck?: Trackable<Booleanish | undefined>;
1285
+ /** The `spellCheck` HTML attribute. */
1286
+ spellCheck?: Trackable<Booleanish | undefined>;
1282
1287
  /** The `src` HTML attribute. */
1283
1288
  src?: Trackable<string | undefined>;
1284
1289
  /** The `srcDoc` HTML attribute. */
@@ -1336,7 +1341,7 @@ export interface AllHTMLProps<eventTarget extends EventTarget = EventTarget> ext
1336
1341
  /** The `results` HTML attribute. */
1337
1342
  results?: Trackable<number | undefined>;
1338
1343
  /** The `translate` HTML attribute. */
1339
- translate?: Trackable<boolean | undefined>;
1344
+ translate?: Trackable<TranslateValue | undefined>;
1340
1345
  /** The `about` HTML attribute. */
1341
1346
  about?: Trackable<string | undefined>;
1342
1347
  /** The `datatype` HTML attribute. */
@@ -1405,7 +1410,7 @@ export interface HTMLProps<eventTarget extends EventTarget = EventTarget> extend
1405
1410
  /** The `dir` HTML attribute. */
1406
1411
  dir?: Trackable<'auto' | 'rtl' | 'ltr' | undefined>;
1407
1412
  /** The `draggable` HTML attribute. */
1408
- draggable?: Trackable<boolean | undefined>;
1413
+ draggable?: Trackable<Booleanish | undefined>;
1409
1414
  /** The `enterkeyhint` HTML attribute. */
1410
1415
  enterkeyhint?: Trackable<'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send' | undefined>;
1411
1416
  /** The `exportparts` HTML attribute. */
@@ -1433,7 +1438,9 @@ export interface HTMLProps<eventTarget extends EventTarget = EventTarget> extend
1433
1438
  /** The `slot` HTML attribute. */
1434
1439
  slot?: Trackable<string | undefined>;
1435
1440
  /** The `spellcheck` HTML attribute. */
1436
- spellcheck?: Trackable<boolean | undefined>;
1441
+ spellcheck?: Trackable<Booleanish | undefined>;
1442
+ /** The `spellCheck` HTML attribute. */
1443
+ spellCheck?: Trackable<Booleanish | undefined>;
1437
1444
  /** The `style` HTML attribute. */
1438
1445
  style?: Trackable<string | StyleProps | undefined>;
1439
1446
  /** The `tabindex` HTML attribute. */
@@ -1443,7 +1450,7 @@ export interface HTMLProps<eventTarget extends EventTarget = EventTarget> extend
1443
1450
  /** The `title` HTML attribute. */
1444
1451
  title?: Trackable<string | undefined>;
1445
1452
  /** The `translate` HTML attribute. */
1446
- translate?: Trackable<boolean | undefined>;
1453
+ translate?: Trackable<TranslateValue | undefined>;
1447
1454
  /** The `role` HTML attribute. */
1448
1455
  role?: Trackable<AriaRole | undefined>;
1449
1456
  /** The `disablePictureInPicture` HTML attribute. */
@@ -85,6 +85,7 @@ export type FrameContext = {
85
85
  namedFrames: Map<string, FrameHandle>;
86
86
  regionTailRef?: ChildNode | null;
87
87
  regionParent?: ParentNode | null;
88
+ signal?: AbortSignal;
88
89
  };
89
90
  type FrameInit = {
90
91
  name?: string;
@@ -107,6 +108,11 @@ export type Frame = {
107
108
  render: (content: InternalFrameContent, options?: RenderOptions) => Promise<void>;
108
109
  ready: () => Promise<void>;
109
110
  flush: () => void;
111
+ clearPendingTemplateWatch: () => void;
112
+ isDisplayingResolvedContent: () => boolean;
113
+ startInheritedReload: (signal?: AbortSignal) => void;
114
+ updateMarker: (marker: FrameMarkerData, options?: RenderOptions) => Promise<void>;
115
+ renderMarkerContent: (marker: FrameMarkerData, content: InternalFrameContent, options?: RenderOptions) => Promise<void>;
110
116
  dispose: () => void;
111
117
  handle: FrameHandle;
112
118
  };
@@ -114,6 +120,7 @@ type RenderOptions = {
114
120
  flushKind?: FlushKind;
115
121
  initialHydrationTracker?: InitialHydrationTracker;
116
122
  signal?: AbortSignal;
123
+ contentStatus?: 'pending' | 'resolved';
117
124
  };
118
125
  export declare function createFrame(root: FrameRoot, init: FrameInit): Frame;
119
126
  export declare function createFrameRuntime(init: {