@remix-run/ui 0.2.0 → 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 (232) hide show
  1. package/dist/animation/demos/animation.demo.d.ts +5 -0
  2. package/dist/animation/demos/animation.demo.js +92 -0
  3. package/dist/animation/demos/animation.demo.js.map +1 -0
  4. package/dist/animation/demos/aspect-ratio.d.ts +2 -0
  5. package/dist/animation/demos/aspect-ratio.js +69 -0
  6. package/dist/animation/demos/aspect-ratio.js.map +1 -0
  7. package/dist/animation/demos/bouncy-switch.d.ts +2 -0
  8. package/dist/animation/demos/bouncy-switch.js +36 -0
  9. package/dist/animation/demos/bouncy-switch.js.map +1 -0
  10. package/dist/animation/demos/color-interpolation.d.ts +1 -0
  11. package/dist/animation/demos/color-interpolation.js +53 -0
  12. package/dist/animation/demos/color-interpolation.js.map +1 -0
  13. package/dist/animation/demos/cube.d.ts +2 -0
  14. package/dist/animation/demos/cube.js +86 -0
  15. package/dist/animation/demos/cube.js.map +1 -0
  16. package/dist/animation/demos/default-animate.d.ts +2 -0
  17. package/dist/animation/demos/default-animate.js +89 -0
  18. package/dist/animation/demos/default-animate.js.map +1 -0
  19. package/dist/animation/demos/drag-release.d.ts +24 -0
  20. package/dist/animation/demos/drag-release.js +96 -0
  21. package/dist/animation/demos/drag-release.js.map +1 -0
  22. package/dist/animation/demos/enter.d.ts +1 -0
  23. package/dist/animation/demos/enter.js +19 -0
  24. package/dist/animation/demos/enter.js.map +1 -0
  25. package/dist/animation/demos/exit.d.ts +2 -0
  26. package/dist/animation/demos/exit.js +58 -0
  27. package/dist/animation/demos/exit.js.map +1 -0
  28. package/dist/animation/demos/flip-toggle.d.ts +2 -0
  29. package/dist/animation/demos/flip-toggle.js +37 -0
  30. package/dist/animation/demos/flip-toggle.js.map +1 -0
  31. package/dist/animation/demos/hold-to-confirm.d.ts +13 -0
  32. package/dist/animation/demos/hold-to-confirm.js +211 -0
  33. package/dist/animation/demos/hold-to-confirm.js.map +1 -0
  34. package/dist/animation/demos/html-content.d.ts +2 -0
  35. package/dist/animation/demos/html-content.js +30 -0
  36. package/dist/animation/demos/html-content.js.map +1 -0
  37. package/dist/animation/demos/interruptible-keyframes.d.ts +1 -0
  38. package/dist/animation/demos/interruptible-keyframes.js +48 -0
  39. package/dist/animation/demos/interruptible-keyframes.js.map +1 -0
  40. package/dist/animation/demos/keyframes.d.ts +1 -0
  41. package/dist/animation/demos/keyframes.js +24 -0
  42. package/dist/animation/demos/keyframes.js.map +1 -0
  43. package/dist/animation/demos/material-ripple.d.ts +2 -0
  44. package/dist/animation/demos/material-ripple.js +127 -0
  45. package/dist/animation/demos/material-ripple.js.map +1 -0
  46. package/dist/animation/demos/mixin-presence-list.d.ts +2 -0
  47. package/dist/animation/demos/mixin-presence-list.js +88 -0
  48. package/dist/animation/demos/mixin-presence-list.js.map +1 -0
  49. package/dist/animation/demos/mixin-reclaim.d.ts +2 -0
  50. package/dist/animation/demos/mixin-reclaim.js +90 -0
  51. package/dist/animation/demos/mixin-reclaim.js.map +1 -0
  52. package/dist/animation/demos/multi-state-badge.d.ts +2 -0
  53. package/dist/animation/demos/multi-state-badge.js +231 -0
  54. package/dist/animation/demos/multi-state-badge.js.map +1 -0
  55. package/dist/animation/demos/press.d.ts +2 -0
  56. package/dist/animation/demos/press.js +63 -0
  57. package/dist/animation/demos/press.js.map +1 -0
  58. package/dist/animation/demos/reordering.d.ts +2 -0
  59. package/dist/animation/demos/reordering.js +50 -0
  60. package/dist/animation/demos/reordering.js.map +1 -0
  61. package/dist/animation/demos/rolling-square.d.ts +2 -0
  62. package/dist/animation/demos/rolling-square.js +42 -0
  63. package/dist/animation/demos/rolling-square.js.map +1 -0
  64. package/dist/animation/demos/rotate.d.ts +1 -0
  65. package/dist/animation/demos/rotate.js +18 -0
  66. package/dist/animation/demos/rotate.js.map +1 -0
  67. package/dist/animation/demos/shared-layout.d.ts +2 -0
  68. package/dist/animation/demos/shared-layout.js +114 -0
  69. package/dist/animation/demos/shared-layout.js.map +1 -0
  70. package/dist/animation/demos/spring.demo.d.ts +6 -0
  71. package/dist/animation/demos/spring.demo.js +304 -0
  72. package/dist/animation/demos/spring.demo.js.map +1 -0
  73. package/dist/animation/demos/transition-options.d.ts +1 -0
  74. package/dist/animation/demos/transition-options.js +21 -0
  75. package/dist/animation/demos/transition-options.js.map +1 -0
  76. package/dist/animation/spring.d.ts +22 -0
  77. package/dist/animation/spring.js +22 -0
  78. package/dist/animation/spring.js.map +1 -1
  79. package/dist/components/accordion/demos/card.demo.d.ts +1 -0
  80. package/dist/components/accordion/demos/card.demo.js +1 -0
  81. package/dist/components/accordion/demos/card.demo.js.map +1 -1
  82. package/dist/components/accordion/demos/multiple.demo.d.ts +1 -0
  83. package/dist/components/accordion/demos/multiple.demo.js +1 -0
  84. package/dist/components/accordion/demos/multiple.demo.js.map +1 -1
  85. package/dist/components/accordion/demos/overview.demo.d.ts +1 -0
  86. package/dist/components/accordion/demos/overview.demo.js +1 -0
  87. package/dist/components/accordion/demos/overview.demo.js.map +1 -1
  88. package/dist/components/anchor/anchor.d.ts +8 -1
  89. package/dist/components/anchor/anchor.js +30 -11
  90. package/dist/components/anchor/anchor.js.map +1 -1
  91. package/dist/components/breadcrumbs/{demos/basic.demo.d.ts → basic.demo.d.ts} +1 -0
  92. package/dist/components/breadcrumbs/{demos/basic.demo.js → basic.demo.js} +1 -0
  93. package/dist/components/breadcrumbs/basic.demo.js.map +1 -0
  94. package/dist/components/breadcrumbs/{demos/separator.demo.d.ts → separator.demo.d.ts} +1 -0
  95. package/dist/components/breadcrumbs/{demos/separator.demo.js → separator.demo.js} +1 -0
  96. package/dist/components/breadcrumbs/separator.demo.js.map +1 -0
  97. package/dist/components/button/demos/aliases.demo.d.ts +1 -0
  98. package/dist/components/button/demos/aliases.demo.js +1 -0
  99. package/dist/components/button/demos/aliases.demo.js.map +1 -1
  100. package/dist/components/button/demos/basic.demo.d.ts +1 -0
  101. package/dist/components/button/demos/basic.demo.js +1 -0
  102. package/dist/components/button/demos/basic.demo.js.map +1 -1
  103. package/dist/components/button/demos/states.demo.d.ts +1 -0
  104. package/dist/components/button/demos/states.demo.js +1 -0
  105. package/dist/components/button/demos/states.demo.js.map +1 -1
  106. package/dist/components/combobox/{demos/overview.demo.d.ts → overview.demo.d.ts} +1 -0
  107. package/dist/components/combobox/{demos/overview.demo.js → overview.demo.js} +1 -0
  108. package/dist/components/combobox/overview.demo.js.map +1 -0
  109. package/dist/components/listbox/{demos/overview.demo.d.ts → overview.demo.d.ts} +1 -0
  110. package/dist/components/listbox/{demos/overview.demo.js → overview.demo.js} +1 -0
  111. package/dist/components/listbox/overview.demo.js.map +1 -0
  112. package/dist/components/menu/demos/bubbling.demo.d.ts +1 -0
  113. package/dist/components/menu/demos/bubbling.demo.js +1 -0
  114. package/dist/components/menu/demos/bubbling.demo.js.map +1 -1
  115. package/dist/components/menu/demos/context-trigger.demo.d.ts +7 -0
  116. package/dist/components/menu/demos/context-trigger.demo.js +87 -0
  117. package/dist/components/menu/demos/context-trigger.demo.js.map +1 -0
  118. package/dist/components/menu/demos/overview.demo.d.ts +1 -0
  119. package/dist/components/menu/demos/overview.demo.js +1 -0
  120. package/dist/components/menu/demos/overview.demo.js.map +1 -1
  121. package/dist/components/menu/menu.d.ts +3 -0
  122. package/dist/components/menu/menu.js +55 -0
  123. package/dist/components/menu/menu.js.map +1 -1
  124. package/dist/components/popover/{demos/overview.demo.d.ts → overview.demo.d.ts} +1 -0
  125. package/dist/components/popover/{demos/overview.demo.js → overview.demo.js} +1 -0
  126. package/dist/components/popover/overview.demo.js.map +1 -0
  127. package/dist/components/popover/popover.d.ts +2 -2
  128. package/dist/components/popover/popover.js +11 -4
  129. package/dist/components/popover/popover.js.map +1 -1
  130. package/dist/components/select/{demos/deconstructed.demo.d.ts → deconstructed.demo.d.ts} +1 -0
  131. package/dist/components/select/{demos/deconstructed.demo.js → deconstructed.demo.js} +1 -0
  132. package/dist/components/select/deconstructed.demo.js.map +1 -0
  133. package/dist/components/select/{demos/overview.demo.d.ts → overview.demo.d.ts} +1 -0
  134. package/dist/components/select/{demos/overview.demo.js → overview.demo.js} +1 -0
  135. package/dist/components/select/overview.demo.js.map +1 -0
  136. package/dist/components/select/select.js +1 -1
  137. package/dist/components/select/select.js.map +1 -1
  138. package/dist/runtime/client-entries.d.ts +1 -2
  139. package/dist/runtime/client-entries.js.map +1 -1
  140. package/dist/runtime/component.d.ts +2 -2
  141. package/dist/runtime/component.js +1 -1
  142. package/dist/runtime/component.js.map +1 -1
  143. package/dist/runtime/demos/basic.demo.d.ts +6 -0
  144. package/dist/runtime/demos/basic.demo.js +16 -0
  145. package/dist/runtime/demos/basic.demo.js.map +1 -0
  146. package/dist/runtime/demos/controlled-uncontrolled-values.demo.d.ts +6 -0
  147. package/dist/runtime/demos/controlled-uncontrolled-values.demo.js +77 -0
  148. package/dist/runtime/demos/controlled-uncontrolled-values.demo.js.map +1 -0
  149. package/dist/runtime/demos/keyed-list.demo.d.ts +6 -0
  150. package/dist/runtime/demos/keyed-list.demo.js +62 -0
  151. package/dist/runtime/demos/keyed-list.demo.js.map +1 -0
  152. package/dist/runtime/demos/readme.demo.d.ts +5 -0
  153. package/dist/runtime/demos/readme.demo.js +396 -0
  154. package/dist/runtime/demos/readme.demo.js.map +1 -0
  155. package/dist/runtime/diff-dom.js +194 -21
  156. package/dist/runtime/diff-dom.js.map +1 -1
  157. package/dist/runtime/frame.d.ts +7 -0
  158. package/dist/runtime/frame.js +176 -41
  159. package/dist/runtime/frame.js.map +1 -1
  160. package/dist/runtime/jsx.d.ts +2 -3
  161. package/dist/runtime/jsx.js.map +1 -1
  162. package/dist/server/stream.js +3 -2
  163. package/dist/server/stream.js.map +1 -1
  164. package/dist/style/style.js +27 -10
  165. package/dist/style/style.js.map +1 -1
  166. package/package.json +3 -3
  167. package/src/animation/demos/animation.demo.tsx +194 -0
  168. package/src/animation/demos/aspect-ratio.tsx +120 -0
  169. package/src/animation/demos/bouncy-switch.tsx +47 -0
  170. package/src/animation/demos/color-interpolation.tsx +73 -0
  171. package/src/animation/demos/cube.tsx +116 -0
  172. package/src/animation/demos/default-animate.tsx +129 -0
  173. package/src/animation/demos/drag-release.ts +118 -0
  174. package/src/animation/demos/enter.tsx +22 -0
  175. package/src/animation/demos/exit.tsx +79 -0
  176. package/src/animation/demos/flip-toggle.tsx +46 -0
  177. package/src/animation/demos/hold-to-confirm.tsx +317 -0
  178. package/src/animation/demos/html-content.tsx +41 -0
  179. package/src/animation/demos/interruptible-keyframes.tsx +62 -0
  180. package/src/animation/demos/keyframes.tsx +29 -0
  181. package/src/animation/demos/material-ripple.tsx +158 -0
  182. package/src/animation/demos/mixin-presence-list.tsx +121 -0
  183. package/src/animation/demos/mixin-reclaim.tsx +125 -0
  184. package/src/animation/demos/multi-state-badge.tsx +426 -0
  185. package/src/animation/demos/press.tsx +67 -0
  186. package/src/animation/demos/reordering.tsx +65 -0
  187. package/src/animation/demos/rolling-square.tsx +57 -0
  188. package/src/animation/demos/rotate.tsx +21 -0
  189. package/src/animation/demos/shared-layout.tsx +211 -0
  190. package/src/animation/demos/spring.demo.tsx +385 -0
  191. package/src/animation/demos/transition-options.tsx +24 -0
  192. package/src/animation/spring.ts +22 -0
  193. package/src/components/accordion/demos/card.demo.tsx +1 -0
  194. package/src/components/accordion/demos/multiple.demo.tsx +1 -0
  195. package/src/components/accordion/demos/overview.demo.tsx +1 -0
  196. package/src/components/anchor/README.md +11 -3
  197. package/src/components/anchor/anchor.ts +53 -12
  198. package/src/components/breadcrumbs/{demos/basic.demo.tsx → basic.demo.tsx} +1 -0
  199. package/src/components/breadcrumbs/{demos/separator.demo.tsx → separator.demo.tsx} +1 -0
  200. package/src/components/button/demos/aliases.demo.tsx +1 -0
  201. package/src/components/button/demos/basic.demo.tsx +1 -0
  202. package/src/components/button/demos/states.demo.tsx +1 -0
  203. package/src/components/combobox/{demos/overview.demo.tsx → overview.demo.tsx} +1 -0
  204. package/src/components/listbox/{demos/overview.demo.tsx → overview.demo.tsx} +1 -0
  205. package/src/components/menu/README.md +26 -2
  206. package/src/components/menu/demos/bubbling.demo.tsx +1 -0
  207. package/src/components/menu/demos/context-trigger.demo.tsx +133 -0
  208. package/src/components/menu/demos/overview.demo.tsx +1 -0
  209. package/src/components/menu/menu.tsx +73 -1
  210. package/src/components/popover/{demos/overview.demo.tsx → overview.demo.tsx} +1 -0
  211. package/src/components/popover/popover.ts +18 -9
  212. package/src/components/select/{demos/deconstructed.demo.tsx → deconstructed.demo.tsx} +1 -0
  213. package/src/components/select/{demos/overview.demo.tsx → overview.demo.tsx} +1 -0
  214. package/src/components/select/select.tsx +1 -1
  215. package/src/runtime/client-entries.ts +1 -5
  216. package/src/runtime/component.ts +3 -3
  217. package/src/runtime/demos/basic.demo.tsx +21 -0
  218. package/src/runtime/demos/controlled-uncontrolled-values.demo.tsx +177 -0
  219. package/src/runtime/demos/keyed-list.demo.tsx +94 -0
  220. package/src/runtime/demos/readme.demo.tsx +702 -0
  221. package/src/runtime/diff-dom.ts +270 -20
  222. package/src/runtime/frame.ts +218 -41
  223. package/src/runtime/jsx.ts +6 -10
  224. package/src/server/stream.ts +7 -2
  225. package/src/style/style.ts +29 -10
  226. package/dist/components/breadcrumbs/demos/basic.demo.js.map +0 -1
  227. package/dist/components/breadcrumbs/demos/separator.demo.js.map +0 -1
  228. package/dist/components/combobox/demos/overview.demo.js.map +0 -1
  229. package/dist/components/listbox/demos/overview.demo.js.map +0 -1
  230. package/dist/components/popover/demos/overview.demo.js.map +0 -1
  231. package/dist/components/select/demos/deconstructed.demo.js.map +0 -1
  232. package/dist/components/select/demos/overview.demo.js.map +0 -1
@@ -129,6 +129,7 @@ export type FrameContext = {
129
129
  namedFrames: Map<string, FrameHandle>
130
130
  regionTailRef?: ChildNode | null
131
131
  regionParent?: ParentNode | null
132
+ signal?: AbortSignal
132
133
  }
133
134
 
134
135
  type FrameInit = {
@@ -153,6 +154,15 @@ export type Frame = {
153
154
  render: (content: InternalFrameContent, options?: RenderOptions) => Promise<void>
154
155
  ready: () => Promise<void>
155
156
  flush: () => void
157
+ clearPendingTemplateWatch: () => void
158
+ isDisplayingResolvedContent: () => boolean
159
+ startInheritedReload: (signal?: AbortSignal) => void
160
+ updateMarker: (marker: FrameMarkerData, options?: RenderOptions) => Promise<void>
161
+ renderMarkerContent: (
162
+ marker: FrameMarkerData,
163
+ content: InternalFrameContent,
164
+ options?: RenderOptions,
165
+ ) => Promise<void>
156
166
  dispose: () => void
157
167
  handle: FrameHandle
158
168
  }
@@ -161,15 +171,21 @@ type RenderOptions = {
161
171
  flushKind?: FlushKind
162
172
  initialHydrationTracker?: InitialHydrationTracker
163
173
  signal?: AbortSignal
174
+ contentStatus?: 'pending' | 'resolved'
164
175
  }
165
176
 
166
177
  export function createFrame(root: FrameRoot, init: FrameInit): Frame {
167
178
  let container = createContainer(root)
168
- let observers: MutationObserver[] = []
169
- let subscriptions: Array<() => void> = []
170
179
  let contentRoot: VirtualRoot | undefined
171
180
  let reloadController: AbortController | undefined
172
181
  let styleManager = init.styleManager ?? createStyleManager()
182
+ let currentMarker = init.marker
183
+ let displayedContentStatus: 'pending' | 'resolved' = init.marker?.status ?? 'resolved'
184
+ let pendingTemplateMarkerId: string | undefined
185
+ let pendingTemplateObserver: MutationObserver | undefined
186
+ let pendingTemplateUnsubscribe: (() => void) | undefined
187
+ let inheritedReloadPending = false
188
+ let inheritedReloadAbortUnsubscribe: (() => void) | undefined
173
189
 
174
190
  // Merge any rmx-data found in the current document once at startup.
175
191
  mergeRmxDataFromDocument(init.data, container.doc)
@@ -184,6 +200,7 @@ export function createFrame(root: FrameRoot, init: FrameInit): Frame {
184
200
  let controller = new AbortController()
185
201
  reloadController = controller
186
202
  frame.dispatchEvent(new Event('reloadStart'))
203
+ startSubFrameInheritedReloads(getContentNodes(), controller.signal)
187
204
  try {
188
205
  let content = await init.resolveFrame(frame.src, controller.signal, frameName)
189
206
  if (reloadController !== controller || controller.signal.aborted) return controller.signal
@@ -250,6 +267,7 @@ export function createFrame(root: FrameRoot, init: FrameInit): Frame {
250
267
 
251
268
  if (options?.signal?.aborted) return
252
269
  contentRoot.render(content)
270
+ displayedContentStatus = options?.contentStatus ?? 'resolved'
253
271
  return
254
272
  }
255
273
 
@@ -290,17 +308,20 @@ export function createFrame(root: FrameRoot, init: FrameInit): Frame {
290
308
  ...context,
291
309
  regionParent: container.doc.documentElement,
292
310
  regionTailRef: null,
311
+ signal: options?.signal,
293
312
  })
294
313
  diffNodes([container.doc.body], [parsed.body], {
295
314
  ...context,
296
315
  regionParent: container.doc.documentElement,
297
316
  regionTailRef: null,
317
+ signal: options?.signal,
298
318
  })
299
319
 
300
320
  let bodyContainer = createElementContainer(container.doc.body)
301
321
  if (options?.signal?.aborted) return
302
322
  scheduleHydrationInContainer(bodyContainer, context, options?.initialHydrationTracker)
303
- createSubFrames(bodyContainer.childNodes, context)
323
+ await createSubFrames(bodyContainer.childNodes, context, options)
324
+ displayedContentStatus = options?.contentStatus ?? 'resolved'
304
325
  return
305
326
  }
306
327
 
@@ -320,11 +341,13 @@ export function createFrame(root: FrameRoot, init: FrameInit): Frame {
320
341
  ...context,
321
342
  regionTailRef: container.regionTailRef,
322
343
  regionParent: container.regionParent,
344
+ signal: options?.signal,
323
345
  })
324
346
 
325
347
  if (options?.signal?.aborted) return
326
348
  scheduleHydrationInContainer(container, context, options?.initialHydrationTracker)
327
- createSubFrames(container.childNodes, context)
349
+ await createSubFrames(container.childNodes, context, options)
350
+ displayedContentStatus = options?.contentStatus ?? 'resolved'
328
351
  }
329
352
 
330
353
  function createFrameContentRoot(): VirtualRoot {
@@ -368,30 +391,11 @@ export function createFrame(root: FrameRoot, init: FrameInit): Frame {
368
391
  let initialHydrationTracker = createInitialHydrationTracker()
369
392
 
370
393
  context.styleManager.replaceServerStyles(collectFrameServerStyleTags(container))
371
- createSubFrames(container.childNodes, context)
394
+ await createSubFrames(container.childNodes, context)
372
395
  scheduleHydrationInContainer(container, context, initialHydrationTracker)
373
396
 
374
- if (init.marker?.status === 'pending') {
375
- let markerId = init.marker.id
376
- let early = consumeFrameTemplate(markerId) ?? getEarlyFrameContent(markerId)
377
- if (early) {
378
- await render(early, { initialHydrationTracker })
379
- } else {
380
- let observer = setupTemplateObserver()
381
- let unsubscribe = subscribeFrameTemplate(markerId, async (fragment) => {
382
- unsubscribe()
383
- await render(fragment)
384
- observer.disconnect()
385
- })
386
- subscriptions.push(unsubscribe)
387
- let buffered = consumeFrameTemplate(markerId)
388
- if (buffered) {
389
- unsubscribe()
390
- await render(buffered)
391
- observer.disconnect()
392
- }
393
- observers.push(observer)
394
- }
397
+ if (currentMarker?.status === 'pending') {
398
+ await watchPendingFrameTemplate(currentMarker, initialHydrationTracker)
395
399
  }
396
400
 
397
401
  initialHydrationTracker.finalize()
@@ -403,16 +407,7 @@ export function createFrame(root: FrameRoot, init: FrameInit): Frame {
403
407
  reloadController = undefined
404
408
  contentRoot?.dispose()
405
409
  contentRoot = undefined
406
-
407
- // Disconnect any MutationObservers waiting for templates.
408
- for (let observer of observers) {
409
- observer.disconnect()
410
- }
411
- observers.length = 0
412
- for (let unsubscribe of subscriptions) {
413
- unsubscribe()
414
- }
415
- subscriptions.length = 0
410
+ clearPendingFrameTemplateWatch()
416
411
 
417
412
  // Remove hydrated virtual roots in this frame's region.
418
413
  removeVirtualRoots(container.childNodes)
@@ -434,9 +429,173 @@ export function createFrame(root: FrameRoot, init: FrameInit): Frame {
434
429
  render,
435
430
  ready: () => readyPromise,
436
431
  flush: () => context.scheduler.dequeue(),
432
+ clearPendingTemplateWatch: clearPendingFrameTemplateWatch,
433
+ isDisplayingResolvedContent: () => displayedContentStatus === 'resolved',
434
+ startInheritedReload,
435
+ updateMarker,
436
+ renderMarkerContent,
437
437
  dispose,
438
438
  handle: frame,
439
439
  }
440
+
441
+ async function updateMarker(marker: FrameMarkerData, options?: RenderOptions): Promise<void> {
442
+ if (options?.signal?.aborted) return
443
+ let previousMarker = currentMarker
444
+ let isInheritedReload = previousMarker !== undefined && previousMarker.id !== marker.id
445
+ currentMarker = marker
446
+
447
+ if (isInheritedReload) {
448
+ startInheritedReload(options?.signal)
449
+ }
450
+
451
+ if (marker.status === 'pending') {
452
+ await watchPendingFrameTemplate(
453
+ marker,
454
+ options?.initialHydrationTracker,
455
+ options?.signal,
456
+ isInheritedReload
457
+ ? () => {
458
+ completeInheritedReload()
459
+ }
460
+ : undefined,
461
+ )
462
+ } else {
463
+ clearPendingFrameTemplateWatch()
464
+ if (isInheritedReload && !options?.signal?.aborted) {
465
+ completeInheritedReload()
466
+ }
467
+ }
468
+ }
469
+
470
+ async function renderMarkerContent(
471
+ marker: FrameMarkerData,
472
+ content: InternalFrameContent,
473
+ options?: RenderOptions,
474
+ ): Promise<void> {
475
+ if (options?.signal?.aborted) return
476
+ let previousMarker = currentMarker
477
+ let isInheritedReload = previousMarker !== undefined && previousMarker.id !== marker.id
478
+ currentMarker = marker
479
+
480
+ if (isInheritedReload) {
481
+ startInheritedReload(options?.signal)
482
+ }
483
+
484
+ clearPendingFrameTemplateWatch()
485
+ await render(content, { ...options, contentStatus: 'resolved' })
486
+
487
+ if (isInheritedReload && !options?.signal?.aborted) {
488
+ completeInheritedReload()
489
+ }
490
+ }
491
+
492
+ function startInheritedReload(signal?: AbortSignal): void {
493
+ if (signal?.aborted) return
494
+ if (!inheritedReloadPending) {
495
+ inheritedReloadPending = true
496
+ frame.dispatchEvent(new Event('reloadStart'))
497
+ startSubFrameInheritedReloads(getContentNodes(), signal)
498
+ }
499
+
500
+ inheritedReloadAbortUnsubscribe?.()
501
+ inheritedReloadAbortUnsubscribe = undefined
502
+ if (signal) {
503
+ let abort = () => completeInheritedReload()
504
+ signal.addEventListener('abort', abort, { once: true })
505
+ inheritedReloadAbortUnsubscribe = () => {
506
+ signal.removeEventListener('abort', abort)
507
+ }
508
+ }
509
+ }
510
+
511
+ function completeInheritedReload(): void {
512
+ if (!inheritedReloadPending) return
513
+ inheritedReloadPending = false
514
+ inheritedReloadAbortUnsubscribe?.()
515
+ inheritedReloadAbortUnsubscribe = undefined
516
+ frame.dispatchEvent(new Event('reloadComplete'))
517
+ }
518
+
519
+ function startSubFrameInheritedReloads(nodes: Node[], signal?: AbortSignal): void {
520
+ for (let i = 0; i < nodes.length; i++) {
521
+ if (signal?.aborted) break
522
+
523
+ let node = nodes[i]
524
+
525
+ if (isFrameStart(node)) {
526
+ let end = findEndMarker(node, isFrameStart, isFrameEnd)
527
+ context.frameInstances.get(node)?.startInheritedReload(signal)
528
+ i = nodes.indexOf(end)
529
+ continue
530
+ }
531
+
532
+ if (node.childNodes && node.childNodes.length > 0) {
533
+ startSubFrameInheritedReloads(Array.from(node.childNodes), signal)
534
+ }
535
+ }
536
+ }
537
+
538
+ function clearPendingFrameTemplateWatch(): void {
539
+ pendingTemplateUnsubscribe?.()
540
+ pendingTemplateUnsubscribe = undefined
541
+ pendingTemplateObserver?.disconnect()
542
+ pendingTemplateObserver = undefined
543
+ pendingTemplateMarkerId = undefined
544
+ }
545
+
546
+ async function watchPendingFrameTemplate(
547
+ marker: FrameMarkerData,
548
+ initialHydrationTracker?: InitialHydrationTracker,
549
+ signal?: AbortSignal,
550
+ onResolved?: () => void,
551
+ ): Promise<void> {
552
+ if (signal?.aborted) return
553
+ if (pendingTemplateMarkerId === marker.id) return
554
+
555
+ clearPendingFrameTemplateWatch()
556
+ pendingTemplateMarkerId = marker.id
557
+
558
+ let early = consumeFrameTemplate(marker.id) ?? getEarlyFrameContent(marker.id)
559
+ if (early) {
560
+ clearPendingFrameTemplateWatch()
561
+ await render(early, { initialHydrationTracker, signal, contentStatus: 'resolved' })
562
+ if (!signal?.aborted) onResolved?.()
563
+ return
564
+ }
565
+
566
+ if (signal?.aborted) {
567
+ clearPendingFrameTemplateWatch()
568
+ return
569
+ }
570
+
571
+ let observer = setupTemplateObserver()
572
+ pendingTemplateObserver = observer
573
+ let unsubscribe = subscribeFrameTemplate(marker.id, async (fragment) => {
574
+ if (signal?.aborted) return
575
+ if (pendingTemplateMarkerId !== marker.id) return
576
+ clearPendingFrameTemplateWatch()
577
+ await render(fragment, { signal, contentStatus: 'resolved' })
578
+ if (!signal?.aborted) onResolved?.()
579
+ })
580
+ pendingTemplateUnsubscribe = unsubscribe
581
+
582
+ signal?.addEventListener(
583
+ 'abort',
584
+ () => {
585
+ if (pendingTemplateMarkerId === marker.id) {
586
+ clearPendingFrameTemplateWatch()
587
+ }
588
+ },
589
+ { once: true },
590
+ )
591
+
592
+ let buffered = consumeFrameTemplate(marker.id)
593
+ if (buffered) {
594
+ clearPendingFrameTemplateWatch()
595
+ await render(buffered, { initialHydrationTracker, signal, contentStatus: 'resolved' })
596
+ if (!signal?.aborted) onResolved?.()
597
+ }
598
+ }
440
599
  }
441
600
 
442
601
  export function createFrameRuntime(init: {
@@ -752,16 +911,32 @@ function hydrateRegion(
752
911
  root.render(vElement)
753
912
  }
754
913
 
755
- function createSubFrames(nodes: Node[], context: FrameContext) {
914
+ async function createSubFrames(
915
+ nodes: Node[],
916
+ context: FrameContext,
917
+ options?: RenderOptions,
918
+ ): Promise<void> {
919
+ let tasks: Promise<void>[] = []
920
+
756
921
  for (let i = 0; i < nodes.length; i++) {
922
+ if (options?.signal?.aborted) break
923
+
757
924
  let node = nodes[i]
758
925
 
759
926
  if (isFrameStart(node)) {
760
927
  let end = findEndMarker(node, isFrameStart, isFrameEnd)
928
+ let existingFrame = context.frameInstances.get(node)
929
+ let id = getFrameId(node)
930
+ let marker = context.data.f?.[id]
761
931
 
762
- if (!context.frameInstances.has(node)) {
763
- let id = getFrameId(node)
764
- let marker = context.data.f?.[id]
932
+ if (existingFrame) {
933
+ if (marker) {
934
+ let frameMarker: FrameMarkerData = { ...marker, id }
935
+ tasks.push(existingFrame.updateMarker(frameMarker, options))
936
+ } else {
937
+ existingFrame.clearPendingTemplateWatch()
938
+ }
939
+ } else {
765
940
  if (marker) {
766
941
  let frameMarker: FrameMarkerData = { ...marker, id }
767
942
  let subFrame = createFrame([node, end], {
@@ -788,9 +963,11 @@ function createSubFrames(nodes: Node[], context: FrameContext) {
788
963
  }
789
964
 
790
965
  if (node.childNodes && node.childNodes.length > 0) {
791
- createSubFrames(Array.from(node.childNodes), context)
966
+ tasks.push(createSubFrames(Array.from(node.childNodes), context, options))
792
967
  }
793
968
  }
969
+
970
+ await Promise.all(tasks)
794
971
  }
795
972
 
796
973
  function isHydrationMarkerLive(marker: HydrationMarker, context: FrameContext): boolean {
@@ -77,10 +77,6 @@ type MixinElementType = ((
77
77
  __rmxMixinElementType: string
78
78
  }
79
79
 
80
- type MergeComponentProps<handleProps, renderProps> = [handleProps] extends [Record<string, never>]
81
- ? renderProps
82
- : handleProps & renderProps
83
-
84
80
  /**
85
81
  * Get the props for a specific element type.
86
82
  *
@@ -120,7 +116,7 @@ declare global {
120
116
  // host elements
121
117
  | keyof IntrinsicElements
122
118
  // Factory component
123
- | ((handle: Handle<any, any>) => RenderFn<any>)
119
+ | ((handle: Handle<any, any>) => RenderFn)
124
120
  // Mixin element used internally by mixin render callbacks
125
121
  | MixinElementType
126
122
 
@@ -134,11 +130,11 @@ declare global {
134
130
 
135
131
  type LibraryManagedAttributes<component, props> = component extends MixinElementType
136
132
  ? ExpandMixProp<Parameters<ReturnType<component>>[0]>
137
- : component extends (handle: Handle<infer P, any>) => RenderFn<infer R>
138
- ? // It's a ComponentFactory - infer props from the handle
139
- ExpandMixProp<MergeComponentProps<P, R>>
140
- : component extends () => RenderFn<infer P>
141
- ? ExpandMixProp<P>
133
+ : component extends () => RenderFn
134
+ ? ExpandMixProp<Record<string, never>>
135
+ : component extends (handle: Handle<infer P, any>) => RenderFn
136
+ ? // It's a ComponentFactory - infer props from the handle
137
+ ExpandMixProp<P>
142
138
  : // Otherwise use props as-is (simple function component)
143
139
  ExpandMixProp<props>
144
140
 
@@ -438,7 +438,7 @@ function buildSegment(node: RemixNode, context: RenderContext, frameState: SsrFr
438
438
 
439
439
  if (typeof type === 'function') {
440
440
  if (type === Frame) {
441
- return buildFrameSegment(props, context, frameState)
441
+ return buildFrameSegment(node, context, frameState)
442
442
  }
443
443
  if (isEntry(type)) {
444
444
  return buildEntrySegment(type, props, context, frameState)
@@ -456,7 +456,12 @@ function buildSegment(node: RemixNode, context: RenderContext, frameState: SsrFr
456
456
  return staticSeg('')
457
457
  }
458
458
 
459
- function buildFrameSegment(props: any, context: RenderContext, frameState: SsrFrameState): Segment {
459
+ function buildFrameSegment(
460
+ node: RemixElement,
461
+ context: RenderContext,
462
+ frameState: SsrFrameState,
463
+ ): Segment {
464
+ let props = node.props
460
465
  let frameId = randomId('f')
461
466
 
462
467
  // Store frame data in context for aggregation
@@ -141,22 +141,15 @@ function styleToCss(styles: StyleObject, selector: string = ''): string {
141
141
  continue
142
142
  }
143
143
 
144
- // For nested selectors, keep them wholesale inside the base block
145
144
  // Allow nested selectors to be conditionally disabled.
146
145
  // e.g. { '&:hover': condition ? undefined : { ... } }
147
146
  let record = toRecord(value)
148
147
  if (!record) continue
149
148
 
150
- let nestedContent = ''
151
- for (let [prop, propValue] of Object.entries(record)) {
152
- if (propValue != null) {
153
- let normalizedValue = normalizeCssValue(prop, propValue)
154
- nestedContent += ` ${camelToKebab(prop)}: ${normalizedValue};\n`
155
- }
156
- }
157
- if (nestedContent) {
149
+ let nestedContent = nestedStyleBodyToCss(record, 4)
150
+ if (nestedContent.trim().length > 0) {
158
151
  // Preserve key verbatim (e.g., '&[aria-selected], &[rmx-focus]')
159
- nestedBlocks.push(` ${key} {\n${nestedContent} }`)
152
+ nestedBlocks.push(` ${key} {\n${nestedContent}\n }`)
160
153
  }
161
154
  } else {
162
155
  // Base declaration
@@ -189,6 +182,32 @@ function styleToCss(styles: StyleObject, selector: string = ''): string {
189
182
  return css
190
183
  }
191
184
 
185
+ function nestedStyleBodyToCss(styles: StyleObject, spaces: number): string {
186
+ // This renders content that is already inside a style rule. Nested selectors
187
+ // and nested at-rules can stay in that rule body; root at-rule placement is
188
+ // handled by styleToCss before entering a nested style body.
189
+ let pad = ' '.repeat(spaces)
190
+ let declarations: string[] = []
191
+ let nestedBlocks: string[] = []
192
+
193
+ for (let [key, value] of Object.entries(styles)) {
194
+ if (isComplexSelector(key)) {
195
+ let record = toRecord(value)
196
+ if (!record) continue
197
+
198
+ let nestedContent = nestedStyleBodyToCss(record, spaces + 2)
199
+ if (nestedContent.trim().length > 0) {
200
+ nestedBlocks.push(`${pad}${key} {\n${nestedContent}\n${pad}}`)
201
+ }
202
+ } else if (value != null) {
203
+ let normalizedValue = normalizeCssValue(key, value)
204
+ declarations.push(`${pad}${camelToKebab(key)}: ${normalizedValue};`)
205
+ }
206
+ }
207
+
208
+ return [...declarations, ...nestedBlocks].join('\n')
209
+ }
210
+
192
211
  function indent(text: string, spaces: number): string {
193
212
  let pad = ' '.repeat(spaces)
194
213
  return text
@@ -1 +0,0 @@
1
- {"version":3,"file":"basic.demo.js","sourceRoot":"","sources":["../../../../src/components/breadcrumbs/demos/basic.demo.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAEvD;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO;IAC7B,OAAO,GAAG,EAAE,CAAC,CACX,KAAC,WAAW,IACV,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE;YAC5B,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,YAAY,EAAE;YAC5C,EAAE,KAAK,EAAE,aAAa,EAAE;SACzB,GACD,CACH,CAAA;AACH,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"separator.demo.js","sourceRoot":"","sources":["../../../../src/components/breadcrumbs/demos/separator.demo.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAEvD;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO;IAC7B,OAAO,GAAG,EAAE,CAAC,CACX,KAAC,WAAW,IACV,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE;YACjC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE;YACxC,EAAE,KAAK,EAAE,QAAQ,EAAE;SACpB,EACD,SAAS,EAAC,GAAG,GACb,CACH,CAAA;AACH,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"overview.demo.js","sourceRoot":"","sources":["../../../../src/components/combobox/demos/overview.demo.tsx"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"overview.demo.js","sourceRoot":"","sources":["../../../../src/components/listbox/demos/overview.demo.tsx"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"overview.demo.js","sourceRoot":"","sources":["../../../../src/components/popover/demos/overview.demo.tsx"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"deconstructed.demo.js","sourceRoot":"","sources":["../../../../src/components/select/demos/deconstructed.demo.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAe,MAAM,eAAe,CAAA;AAChD,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAC3C,OAAO,KAAK,OAAO,MAAM,uBAAuB,CAAA;AAChD,OAAO,KAAK,OAAO,MAAM,uBAAuB,CAAA;AAChD,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAE3C;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,MAAc;IAC5C,IAAI,KAAK,GAAG,OAAO,CAAA;IACnB,IAAI,KAAK,GAAG,OAAO,CAAA;IACnB,IAAI,SAAS,GAAG,GAAG,MAAM,CAAC,EAAE,UAAU,CAAA;IAEtC,OAAO,GAAG,EAAE,CAAC,CACX,eACE,GAAG,EAAE;YACH,QAAQ;YACR,MAAM,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC9B,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,uBAAuB,CAAA;gBAC9C,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,MAAM,CAAA;gBAC7B,KAAK,MAAM,CAAC,MAAM,EAAE,CAAA;YACtB,CAAC,CAAC;SACH,aAED,YAAG,GAAG,EAAE,QAAQ,4BAAiB,EAEjC,MAAC,MAAM,CAAC,OAAO,IAAC,YAAY,EAAC,OAAO,EAAC,YAAY,EAAC,OAAO,EAAC,IAAI,EAAC,aAAa,aAC1E,kBACE,EAAE,EAAE,SAAS,EACb,IAAI,EAAC,QAAQ,EACb,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,aAEzE,eAAM,GAAG,EAAE,MAAM,CAAC,UAAU,YAAG,KAAK,GAAQ,EAC5C,KAAC,KAAK,IAAC,GAAG,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,EAAC,iBAAiB,GAAG,IAChD,EAET,KAAC,OAAO,CAAC,OAAO,cACd,cAAK,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,YAChD,iCACmB,SAAS,EAC1B,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,YAE5D,kBAAkB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAClC,eAAwB,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,aACvE,KAAC,KAAK,IAAC,GAAG,EAAE,OAAO,CAAC,UAAU,EAAE,IAAI,EAAC,OAAO,GAAG,EAC/C,eAAM,GAAG,EAAE,OAAO,CAAC,UAAU,YAAG,MAAM,CAAC,KAAK,GAAQ,KAF5C,MAAM,CAAC,KAAK,CAGhB,CACP,CAAC,GACE,GACF,GACU,EAElB,gBAAO,GAAG,EAAE,MAAM,CAAC,WAAW,EAAE,GAAI,IACrB,EAEjB,YAAG,GAAG,EAAE,QAAQ,YAAG,SAAS,KAAK,EAAE,GAAK,IACpC,CACP,CAAA;AACH,CAAC;AAED,MAAM,kBAAkB,GAAG;IACzB,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;IAClC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;IACtC,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;IAC5C,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;CAChD,CAAA;AAEV,MAAM,SAAS,GAAG,GAAG,CAAC;IACpB,KAAK,EAAE,OAAO;CACf,CAAC,CAAA;AAEF,MAAM,QAAQ,GAAG,GAAG,CAAC;IACnB,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,QAAQ;IACvB,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE;IACnB,KAAK,EAAE,MAAM;CACd,CAAC,CAAA;AAEF,MAAM,QAAQ,GAAG,GAAG,CAAC;IACnB,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;IAC3B,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ;IACrC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO;CACjC,CAAC,CAAA;AAEF,MAAM,QAAQ,GAAG,GAAG,CAAC;IACnB,MAAM,EAAE,CAAC;IACT,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI;IACjC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;IAC3B,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS;CACnC,CAAC,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"overview.demo.js","sourceRoot":"","sources":["../../../../src/components/select/demos/overview.demo.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAE3C;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO;IAC7B,OAAO,GAAG,EAAE,CAAC,CACX,eAAK,GAAG,EAAE,QAAQ,aAChB,gBAAO,GAAG,EAAC,cAAc,EAAC,GAAG,EAAE,QAAQ,+BAE/B,EACR,MAAC,MAAM,IACL,EAAE,EAAC,cAAc,EACjB,YAAY,EAAC,QAAQ,EACrB,YAAY,EAAC,QAAQ,EACrB,IAAI,EAAC,OAAO,EACZ,GAAG,EAAE,SAAS,aAEd,KAAC,MAAM,IAAC,KAAK,EAAC,OAAO,EAAC,KAAK,EAAC,OAAO,GAAG,EACtC,KAAC,MAAM,IAAC,KAAK,EAAC,SAAS,EAAC,KAAK,EAAC,SAAS,GAAG,EAC1C,KAAC,MAAM,IAAC,KAAK,EAAC,QAAQ,EAAC,KAAK,EAAC,QAAQ,GAAG,EACxC,KAAC,MAAM,IAAC,KAAK,EAAC,YAAY,EAAC,KAAK,EAAC,YAAY,GAAG,EAChD,KAAC,MAAM,IAAC,KAAK,EAAC,cAAc,EAAC,KAAK,EAAC,cAAc,GAAG,EACpD,KAAC,MAAM,IAAC,KAAK,EAAC,WAAW,EAAC,KAAK,EAAC,WAAW,GAAG,EAC9C,KAAC,MAAM,IAAC,KAAK,EAAC,aAAa,EAAC,KAAK,EAAC,aAAa,GAAG,EAClD,KAAC,MAAM,IAAC,KAAK,EAAC,YAAY,EAAC,KAAK,EAAC,YAAY,GAAG,IACzC,IACL,CACP,CAAA;AACH,CAAC;AAED,MAAM,SAAS,GAAG,GAAG,CAAC;IACpB,KAAK,EAAE,OAAO;CACf,CAAC,CAAA;AAEF,MAAM,QAAQ,GAAG,GAAG,CAAC;IACnB,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,QAAQ;IACvB,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE;IACnB,KAAK,EAAE,MAAM;CACd,CAAC,CAAA;AAEF,MAAM,QAAQ,GAAG,GAAG,CAAC;IACnB,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;IAC3B,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ;IACrC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO;CACjC,CAAC,CAAA"}