@remix-run/ui 0.1.1 → 0.2.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 (243) hide show
  1. package/README.md +33 -10
  2. package/dist/animation/animate-layout-mixin.js +66 -66
  3. package/dist/animation/animate-layout-mixin.js.map +1 -1
  4. package/dist/animation/spring.d.ts +6 -35
  5. package/dist/animation/spring.js +9 -8
  6. package/dist/animation/spring.js.map +1 -1
  7. package/dist/components/accordion/accordion.d.ts +7 -7
  8. package/dist/components/accordion/accordion.js +0 -2
  9. package/dist/components/accordion/accordion.js.map +1 -1
  10. package/dist/components/accordion/demos/card.demo.d.ts +6 -0
  11. package/dist/components/accordion/demos/card.demo.js +58 -0
  12. package/dist/components/accordion/demos/card.demo.js.map +1 -0
  13. package/dist/components/accordion/demos/multiple.demo.d.ts +6 -0
  14. package/dist/components/accordion/demos/multiple.demo.js +19 -0
  15. package/dist/components/accordion/demos/multiple.demo.js.map +1 -0
  16. package/dist/components/accordion/demos/overview.demo.d.ts +6 -0
  17. package/dist/components/accordion/demos/overview.demo.js +19 -0
  18. package/dist/components/accordion/demos/overview.demo.js.map +1 -0
  19. package/dist/components/breadcrumbs/breadcrumbs.d.ts +1 -1
  20. package/dist/components/breadcrumbs/breadcrumbs.js +0 -2
  21. package/dist/components/breadcrumbs/breadcrumbs.js.map +1 -1
  22. package/dist/components/breadcrumbs/demos/basic.demo.d.ts +5 -0
  23. package/dist/components/breadcrumbs/demos/basic.demo.js +14 -0
  24. package/dist/components/breadcrumbs/demos/basic.demo.js.map +1 -0
  25. package/dist/components/breadcrumbs/demos/separator.demo.d.ts +5 -0
  26. package/dist/components/breadcrumbs/demos/separator.demo.js +14 -0
  27. package/dist/components/breadcrumbs/demos/separator.demo.js.map +1 -0
  28. package/dist/components/button/button.d.ts +86 -4
  29. package/dist/components/button/button.js +63 -3
  30. package/dist/components/button/button.js.map +1 -1
  31. package/dist/components/button/demos/aliases.demo.d.ts +6 -0
  32. package/dist/components/button/demos/aliases.demo.js +18 -0
  33. package/dist/components/button/demos/aliases.demo.js.map +1 -0
  34. package/dist/components/button/demos/basic.demo.d.ts +6 -0
  35. package/dist/components/button/demos/basic.demo.js +19 -0
  36. package/dist/components/button/demos/basic.demo.js.map +1 -0
  37. package/dist/components/button/demos/states.demo.d.ts +6 -0
  38. package/dist/components/button/demos/states.demo.js +29 -0
  39. package/dist/components/button/demos/states.demo.js.map +1 -0
  40. package/dist/components/combobox/combobox.d.ts +11 -11
  41. package/dist/components/combobox/combobox.js +0 -2
  42. package/dist/components/combobox/combobox.js.map +1 -1
  43. package/dist/components/combobox/demos/overview.demo.d.ts +6 -0
  44. package/dist/components/combobox/demos/overview.demo.js +153 -0
  45. package/dist/components/combobox/demos/overview.demo.js.map +1 -0
  46. package/dist/components/listbox/demos/overview.demo.d.ts +6 -0
  47. package/dist/components/listbox/demos/overview.demo.js +64 -0
  48. package/dist/components/listbox/demos/overview.demo.js.map +1 -0
  49. package/dist/components/listbox/listbox.d.ts +4 -9
  50. package/dist/components/listbox/listbox.js +21 -33
  51. package/dist/components/listbox/listbox.js.map +1 -1
  52. package/dist/components/menu/demos/bubbling.demo.d.ts +5 -0
  53. package/dist/components/menu/demos/bubbling.demo.js +15 -0
  54. package/dist/components/menu/demos/bubbling.demo.js.map +1 -0
  55. package/dist/components/menu/demos/overview.demo.d.ts +6 -0
  56. package/dist/components/menu/demos/overview.demo.js +32 -0
  57. package/dist/components/menu/demos/overview.demo.js.map +1 -0
  58. package/dist/components/menu/menu.d.ts +15 -24
  59. package/dist/components/menu/menu.js +23 -38
  60. package/dist/components/menu/menu.js.map +1 -1
  61. package/dist/components/popover/demos/overview.demo.d.ts +6 -0
  62. package/dist/components/popover/demos/overview.demo.js +64 -0
  63. package/dist/components/popover/demos/overview.demo.js.map +1 -0
  64. package/dist/components/popover/popover.d.ts +5 -5
  65. package/dist/components/popover/popover.js.map +1 -1
  66. package/dist/components/select/demos/deconstructed.demo.d.ts +6 -0
  67. package/dist/components/select/demos/deconstructed.demo.js +53 -0
  68. package/dist/components/select/demos/deconstructed.demo.js.map +1 -0
  69. package/dist/components/select/demos/overview.demo.d.ts +5 -0
  70. package/dist/components/select/demos/overview.demo.js +27 -0
  71. package/dist/components/select/demos/overview.demo.js.map +1 -0
  72. package/dist/components/select/select.d.ts +11 -11
  73. package/dist/components/select/select.js +17 -26
  74. package/dist/components/select/select.js.map +1 -1
  75. package/dist/components/tabs/tabs.d.ts +6 -6
  76. package/dist/components/tabs/tabs.js +0 -2
  77. package/dist/components/tabs/tabs.js.map +1 -1
  78. package/dist/index.d.ts +2 -2
  79. package/dist/index.js.map +1 -1
  80. package/dist/interactions/keydown/keydown.d.ts +1 -1
  81. package/dist/interactions/outside-click/outside-click-mixin.d.ts +2 -1
  82. package/dist/interactions/typeahead/typeahead-mixin.d.ts +3 -1
  83. package/dist/runtime/component.d.ts +18 -12
  84. package/dist/runtime/component.js +93 -80
  85. package/dist/runtime/component.js.map +1 -1
  86. package/dist/runtime/core/attributes.d.ts +14 -0
  87. package/dist/runtime/core/attributes.js +103 -0
  88. package/dist/runtime/core/attributes.js.map +1 -0
  89. package/dist/runtime/core/children.d.ts +7 -0
  90. package/dist/runtime/core/children.js +30 -0
  91. package/dist/runtime/core/children.js.map +1 -0
  92. package/dist/runtime/core/props.d.ts +9 -0
  93. package/dist/runtime/core/props.js +170 -0
  94. package/dist/runtime/core/props.js.map +1 -0
  95. package/dist/runtime/core/vnode.d.ts +3 -0
  96. package/dist/runtime/core/vnode.js +39 -0
  97. package/dist/runtime/core/vnode.js.map +1 -0
  98. package/dist/runtime/create-element.js +2 -1
  99. package/dist/runtime/create-element.js.map +1 -1
  100. package/dist/runtime/diff-dom.js +47 -14
  101. package/dist/runtime/diff-dom.js.map +1 -1
  102. package/dist/runtime/diff-props.d.ts +1 -2
  103. package/dist/runtime/diff-props.js +2 -181
  104. package/dist/runtime/diff-props.js.map +1 -1
  105. package/dist/runtime/dom.d.ts +20 -9
  106. package/dist/runtime/frame.d.ts +23 -2
  107. package/dist/runtime/frame.js +41 -47
  108. package/dist/runtime/frame.js.map +1 -1
  109. package/dist/runtime/jsx.d.ts +1 -1
  110. package/dist/runtime/jsx.js +2 -28
  111. package/dist/runtime/jsx.js.map +1 -1
  112. package/dist/runtime/mixins/link-mixin.d.ts +5 -1
  113. package/dist/runtime/mixins/link-mixin.js.map +1 -1
  114. package/dist/runtime/mixins/mixin.d.ts +2 -1
  115. package/dist/runtime/mixins/mixin.js +9 -4
  116. package/dist/runtime/mixins/mixin.js.map +1 -1
  117. package/dist/runtime/mixins/on-mixin.d.ts +15 -4
  118. package/dist/runtime/mixins/on-mixin.js +9 -2
  119. package/dist/runtime/mixins/on-mixin.js.map +1 -1
  120. package/dist/runtime/mixins/ref-mixin.d.ts +2 -1
  121. package/dist/runtime/mixins/ref-mixin.js.map +1 -1
  122. package/dist/runtime/navigation.js +9 -1
  123. package/dist/runtime/navigation.js.map +1 -1
  124. package/dist/runtime/reconcile.d.ts +1 -1
  125. package/dist/runtime/reconcile.js +452 -197
  126. package/dist/runtime/reconcile.js.map +1 -1
  127. package/dist/runtime/run.d.ts +17 -2
  128. package/dist/runtime/run.js.map +1 -1
  129. package/dist/runtime/scheduler.d.ts +10 -10
  130. package/dist/runtime/scheduler.js +1 -1
  131. package/dist/runtime/scheduler.js.map +1 -1
  132. package/dist/runtime/stream-protocol.d.ts +8 -0
  133. package/dist/runtime/stream-protocol.js +20 -0
  134. package/dist/runtime/stream-protocol.js.map +1 -0
  135. package/dist/runtime/svg-attributes.js +1 -0
  136. package/dist/runtime/svg-attributes.js.map +1 -1
  137. package/dist/runtime/to-vnode.js +7 -11
  138. package/dist/runtime/to-vnode.js.map +1 -1
  139. package/dist/runtime/vnode.d.ts +11 -5
  140. package/dist/runtime/vnode.js +6 -3
  141. package/dist/runtime/vnode.js.map +1 -1
  142. package/dist/server/stream.d.ts +2 -0
  143. package/dist/server/stream.js +154 -114
  144. package/dist/server/stream.js.map +1 -1
  145. package/dist/style/css-mixin.d.ts +2 -1
  146. package/dist/style/css-mixin.js.map +1 -1
  147. package/dist/style/index.d.ts +1 -1
  148. package/dist/style/layers.d.ts +2 -0
  149. package/dist/style/layers.js +3 -0
  150. package/dist/style/layers.js.map +1 -0
  151. package/dist/style/stylesheet.d.ts +13 -11
  152. package/dist/style/stylesheet.js +69 -8
  153. package/dist/style/stylesheet.js.map +1 -1
  154. package/dist/theme/contract.d.ts +24 -222
  155. package/dist/theme/contract.js +2 -2
  156. package/dist/theme/contract.js.map +1 -1
  157. package/dist/theme/glyph-contract.d.ts +1 -3
  158. package/dist/theme/glyph-contract.js.map +1 -1
  159. package/dist/theme/presets/rmx-01/index.d.ts +4 -2
  160. package/dist/theme/presets/rmx-01/index.js.map +1 -1
  161. package/dist/theme/runtime.js +4 -1
  162. package/dist/theme/runtime.js.map +1 -1
  163. package/dist/utils/scroll-lock.d.ts +3 -3
  164. package/dist/utils/scroll-lock.js.map +1 -1
  165. package/package.json +3 -3
  166. package/src/animation/README.md +316 -0
  167. package/src/animation/animate-layout-mixin.ts +79 -71
  168. package/src/animation/spring.ts +21 -9
  169. package/src/components/accordion/README.md +166 -0
  170. package/src/components/accordion/accordion.tsx +14 -14
  171. package/src/components/accordion/demos/card.demo.tsx +113 -0
  172. package/src/components/accordion/demos/multiple.demo.tsx +56 -0
  173. package/src/components/accordion/demos/overview.demo.tsx +56 -0
  174. package/src/components/anchor/README.md +153 -0
  175. package/src/components/anchor/anchor.ts +1 -1
  176. package/src/components/breadcrumbs/README.md +55 -0
  177. package/src/components/breadcrumbs/breadcrumbs.tsx +1 -3
  178. package/src/components/breadcrumbs/demos/basic.demo.tsx +17 -0
  179. package/src/components/breadcrumbs/demos/separator.demo.tsx +18 -0
  180. package/src/components/button/README.md +4 -4
  181. package/src/components/button/button.tsx +118 -20
  182. package/src/components/button/demos/aliases.demo.tsx +27 -0
  183. package/src/components/button/demos/basic.demo.tsx +30 -0
  184. package/src/components/button/demos/states.demo.tsx +52 -0
  185. package/src/components/combobox/README.md +1 -1
  186. package/src/components/combobox/combobox.tsx +37 -21
  187. package/src/components/combobox/demos/overview.demo.tsx +199 -0
  188. package/src/components/glyph/README.md +72 -0
  189. package/src/components/glyph/glyph.tsx +2 -2
  190. package/src/components/listbox/README.md +115 -0
  191. package/src/components/listbox/demos/overview.demo.tsx +101 -0
  192. package/src/components/listbox/listbox.ts +106 -110
  193. package/src/components/menu/README.md +96 -0
  194. package/src/components/menu/demos/bubbling.demo.tsx +34 -0
  195. package/src/components/menu/demos/overview.demo.tsx +76 -0
  196. package/src/components/menu/menu.tsx +61 -55
  197. package/src/components/popover/README.md +3 -3
  198. package/src/components/popover/demos/overview.demo.tsx +143 -0
  199. package/src/components/popover/popover.ts +90 -79
  200. package/src/components/select/README.md +107 -0
  201. package/src/components/select/demos/deconstructed.demo.tsx +95 -0
  202. package/src/components/select/demos/overview.demo.tsx +51 -0
  203. package/src/components/select/select.tsx +53 -36
  204. package/src/components/tabs/tabs.tsx +10 -5
  205. package/src/index.ts +2 -1
  206. package/src/runtime/component.ts +122 -88
  207. package/src/runtime/core/attributes.ts +118 -0
  208. package/src/runtime/core/children.ts +42 -0
  209. package/src/runtime/core/props.ts +187 -0
  210. package/src/runtime/core/vnode.ts +48 -0
  211. package/src/runtime/create-element.ts +2 -1
  212. package/src/runtime/diff-dom.ts +59 -12
  213. package/src/runtime/diff-props.ts +2 -187
  214. package/src/runtime/dom.ts +20 -9
  215. package/src/runtime/frame.ts +71 -55
  216. package/src/runtime/jsx.ts +3 -30
  217. package/src/runtime/mixins/link-mixin.ts +88 -86
  218. package/src/runtime/mixins/mixin.ts +18 -5
  219. package/src/runtime/mixins/on-mixin.ts +20 -12
  220. package/src/runtime/mixins/ref-mixin.ts +4 -5
  221. package/src/runtime/navigation.ts +10 -1
  222. package/src/runtime/reconcile.ts +563 -223
  223. package/src/runtime/run.ts +17 -1
  224. package/src/runtime/scheduler.ts +20 -20
  225. package/src/runtime/stream-protocol.ts +27 -0
  226. package/src/runtime/svg-attributes.ts +1 -0
  227. package/src/runtime/to-vnode.ts +7 -10
  228. package/src/runtime/vnode.ts +16 -9
  229. package/src/server/README.md +90 -0
  230. package/src/server/stream.ts +176 -124
  231. package/src/style/css-mixin.ts +6 -1
  232. package/src/style/index.ts +1 -2
  233. package/src/style/layers.ts +2 -0
  234. package/src/style/stylesheet.ts +88 -11
  235. package/src/test/README.md +107 -0
  236. package/src/test/utils.ts +3 -1
  237. package/src/theme/README.md +103 -0
  238. package/src/theme/contract.ts +37 -5
  239. package/src/theme/glyph-contract.ts +3 -1
  240. package/src/theme/presets/rmx-01/index.ts +4 -2
  241. package/src/theme/runtime.ts +4 -1
  242. package/src/utils/scroll-lock/README.md +33 -0
  243. package/src/utils/scroll-lock.ts +7 -3
@@ -1 +1 @@
1
- {"version":3,"file":"diff-dom.js","sourceRoot":"","sources":["../../src/runtime/diff-dom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAG1C,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,IAAY,EAAE,OAAqB;IACzE,IAAI,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,IAAI,OAAO,CAAC,YAAY,IAAI,IAAI,CAAA;IAChE,SAAS,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAA;IAE1C,oFAAoF;IACpF,wEAAwE;IACxE,IAAI,aAAa,GACf,OAAO,CAAC,aAAa;QACrB,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,WAAgC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IAEpF,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACf,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QAEf,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACZ,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,aAAa,CAAC,CAAA;YACvC,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;YACvB,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACnB,uBAAuB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;YACnC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;QACvB,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAClB,wEAAwE;YACxE,6CAA6C;YAC7C,IAAI,wBAAwB,CAAC,CAAC,CAAC,IAAI,wBAAwB,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/D,IAAI,UAAU,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAA;gBAC1C,IAAI,OAAO,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAA;gBACvC,IAAI,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAA;gBACrB,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;oBAAE,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAA;gBAE1C,IAAI,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;gBAC9C,IAAI,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;gBACxC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,YAAY,CAAC,CAAA;gBAC3C,SAAQ;YACV,CAAC;YAED,IAAI,MAAM,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAA;YACpC,IAAI,MAAM,EAAE,CAAC;gBACX,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,OAAa,EAAE,IAAU,EAAE,OAAqB;IAChE,eAAe;IACf,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,CAAA;QACpC,IAAI,OAAO,CAAC,WAAW,KAAK,OAAO;YAAE,OAAO,CAAC,WAAW,GAAG,OAAO,CAAA;QAClE,OAAM;IACR,CAAC;IAED,2CAA2C;IAC3C,IAAI,wBAAwB,CAAC,OAAO,CAAC,IAAI,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;QACxE,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAA;QACxB,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAA;QACzB,CAAC;QAED,IAAI,GAAG,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAA;QACtC,4CAA4C;QAC5C,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,qBAAqB;IACrB,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAA;QACvB,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO,CAAC,IAAI,GAAG,OAAO,CAAA;QACpD,OAAM;IACR,CAAC;IAED,qBAAqB;IACrB,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,0BAA0B;QAC1B,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YACrC,IAAI,MAAM,GAAG,OAAO,CAAC,UAAU,CAAA;YAC/B,IAAI,MAAM;gBAAE,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YAC9C,OAAM;QACR,CAAC;QAED,4CAA4C;QAC5C,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QACpC,IAAI,6BAA6B,CAAC,OAAO,EAAE,IAAI,CAAC;YAAE,OAAM;QACxD,mBAAmB,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;QAC3C,OAAM;IACR,CAAC;IAED,yBAAyB;IACzB,IAAI,MAAM,GAAG,OAAO,CAAC,UAAU,CAAA;IAC/B,IAAI,MAAM;QAAE,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;AAChD,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAgB,EAAE,IAAa;IAC5D,IAAI,aAAa,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAA;IAC/C,IAAI,aAAa,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAA;IAE5C,IAAI,WAAW,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAA;IAExC,WAAW;IACX,KAAK,IAAI,IAAI,IAAI,aAAa,EAAE,CAAC;QAC/B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,IAAI,2BAA2B,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC;gBAAE,SAAQ;YAC9D,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC;IAED,oBAAoB;IACpB,KAAK,IAAI,IAAI,IAAI,aAAa,EAAE,CAAC;QAC/B,IAAI,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QACxC,IAAI,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QACrC,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACxB,IAAI,2BAA2B,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC;gBAAE,SAAQ;YAC9D,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;QACpE,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,2BAA2B,CAAC,OAAgB,EAAE,IAAa,EAAE,IAAY;IAChF,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,IAAI,OAAO,YAAY,kBAAkB,IAAI,IAAI,YAAY,kBAAkB,EAAE,CAAC;YAChF,OAAO,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAA;QACnC,CAAC;QAED,IAAI,OAAO,YAAY,iBAAiB,IAAI,IAAI,YAAY,iBAAiB,EAAE,CAAC;YAC9E,OAAO,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAA;QACnC,CAAC;IACH,CAAC;IAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,IAAI,OAAO,YAAY,gBAAgB,IAAI,IAAI,YAAY,gBAAgB,EAAE,CAAC;YAC5E,OAAO,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAA;QACzC,CAAC;IACH,CAAC;IAED,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,IACE,OAAO,YAAY,gBAAgB;YACnC,IAAI,YAAY,gBAAgB;YAChC,wBAAwB,CAAC,OAAO,CAAC,EACjC,CAAC;YACD,OAAO,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAA;QACrC,CAAC;IACH,CAAC;IAED,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,IAAI,OAAO,YAAY,iBAAiB,IAAI,IAAI,YAAY,iBAAiB,EAAE,CAAC;YAC9E,OAAO,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAA;QAC3C,CAAC;IACH,CAAC;IAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,aAAa,CAAC,OAAO,CAAC,KAAK,aAAa,CAAC,IAAI,CAAC,CAAA;IACvD,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,6BAA6B,CAAC,OAAgB,EAAE,IAAa;IACpE,IAAI,OAAO,YAAY,mBAAmB,IAAI,IAAI,YAAY,mBAAmB,EAAE,CAAC;QAClF,OAAO,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAA;IACrC,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAuB;IACvD,OAAO,CACL,KAAK,CAAC,IAAI,KAAK,QAAQ;QACvB,KAAK,CAAC,IAAI,KAAK,UAAU;QACzB,KAAK,CAAC,IAAI,KAAK,QAAQ;QACvB,KAAK,CAAC,IAAI,KAAK,OAAO;QACtB,KAAK,CAAC,IAAI,KAAK,OAAO;QACtB,KAAK,CAAC,IAAI,KAAK,OAAO;QACtB,KAAK,CAAC,IAAI,KAAK,QAAQ,CACxB,CAAA;AACH,CAAC;AAED,SAAS,aAAa,CAAC,OAAgB;IACrC,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAgB,EAAE,IAAa,EAAE,OAAqB;IACjF,IAAI,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IACpD,IAAI,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAE9C,6CAA6C;IAC7C,IAAI,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAA;IAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChD,IAAI,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,CAAA;QAC7B,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACpB,IAAI,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;YACvC,IAAI,GAAG,IAAI,IAAI;gBAAE,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;QACzC,CAAC;IACH,CAAC;IAED,IAAI,IAAI,GAAG,IAAI,KAAK,CAAU,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACjE,IAAI,iBAAiB,GAAG,IAAI,KAAK,CAAS,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IAEvE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,IAAI,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,UAAU,GAAG,CAAC,CAAC,CAAA;QAEnB,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;YACzB,IAAI,GAAG,GAAG,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;YAC5C,IAAI,GAAG,IAAI,IAAI,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvC,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAE,CAAA;gBAC9B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;oBAAE,UAAU,GAAG,GAAG,CAAA;YAClC,CAAC;QACH,CAAC;QAED,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;YACtB,IAAI,cAAc,GAAG,CAAC,CAAA;YACtB,IACE,cAAc,GAAG,eAAe,CAAC,MAAM;gBACvC,CAAC,IAAI,CAAC,cAAc,CAAC;gBACrB,mBAAmB,CAAC,eAAe,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC,EAC/D,CAAC;gBACD,UAAU,GAAG,cAAc,CAAA;YAC7B,CAAC;QACH,CAAC;QAED,IAAI,UAAU,KAAK,CAAC,CAAC;YAAE,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAA;QAC9C,iBAAiB,CAAC,CAAC,CAAC,GAAG,UAAU,CAAA;IACnC,CAAC;IAED,kDAAkD;IAClD,IAAI,SAAS,GAA4B,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;IACvE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,IAAI,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAA;QAC7B,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;YACd,IAAI,QAAQ,GAAG,eAAe,CAAC,EAAE,CAAC,CAAA;YAClC,IAAI,MAAM,GAAG,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;YACzD,IAAI,MAAM,EAAE,CAAC;gBACX,sDAAsD;gBACtD,IAAI,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;gBAC7C,IAAI,UAAU,GAAG,qBAAqB,CAAC,eAAe,EAAE,EAAE,CAAC,CAAA;gBAE3D,0EAA0E;gBAC1E,yEAAyE;gBACzE,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;oBACzC,IAAI,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAA;oBACvC,IAAI,YAAY,GAAG,UAAU,EAAE,CAAC;wBAC9B,IAAI,CAAC,YAAY,CAAC,GAAG,KAAK,CAAA;oBAC5B,CAAC;oBACD,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;gBAC3B,CAAC;gBAED,4DAA4D;gBAC5D,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,EAAE;oBAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;gBAErD,8EAA8E;gBAC9E,SAAS,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAA,CAAC,eAAe;gBACvC,SAAS,CAAC,UAAU,CAAC,GAAG,eAAe,CAAC,UAAU,CAAC,CAAA,CAAC,aAAa;gBACjE,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE;oBAAE,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;gBAEjE,yBAAyB;gBACzB,CAAC,GAAG,UAAU,CAAA;gBACd,SAAQ;YACV,CAAC;YACD,SAAS,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAA;QACzB,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;QAChC,CAAC;IACH,CAAC;IAED,oEAAoE;IACpE,IAAI,MAAM,GAAqB,SAAS,CAAA;IACxC,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/C,IAAI,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QACvB,IAAI,CAAC,IAAI;YAAE,SAAQ;QAEnB,oEAAoE;QACpE,IAAI,GAAG,GAAG,MAAM,IAAI,MAAM,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;QAEjE,8DAA8D;QAC9D,mFAAmF;QACnF,IAAI,wBAAwB,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC;YACnE,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;gBAChC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;YACjC,CAAC;YACD,MAAM,GAAG,IAAI,CAAA;YACb,SAAQ;QACV,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;YAChC,+EAA+E;YAC/E,IAAI,UAAU,GAAG,GAAG,CAAA;YACpB,IAAI,cAAc,GAChB,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,CAAA;YACvF,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;YACxC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,qDAAqD;YACrD,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACjC,CAAC;QAED,qEAAqE;QACrE,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;YAChC,MAAM,GAAG,IAAI,CAAA;QACf,CAAC;IACH,CAAC;IAED,uCAAuC;IACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACb,IAAI,YAAY,GAAG,eAAe,CAAC,CAAC,CAAC,CAAA;YACrC,uBAAuB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;YAC9C,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAA;QACzC,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,CAAO,EAAE,CAAO;IAC3C,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IAC/C,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,CAAA;IAChE,IAAI,wBAAwB,CAAC,CAAC,CAAC,IAAI,wBAAwB,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IAC3E,IAAI,sBAAsB,CAAC,CAAC,CAAC,IAAI,sBAAsB,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IACvE,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IACrD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAU;IACvC,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,QAAQ,CAAA;AAC7D,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAc;IAC5C,IAAI,IAAI,GAAgB,KAAK,CAAC,WAAW,CAAA;IACzC,IAAI,KAAK,GAAG,CAAC,CAAA;IAEb,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,IAAI,wBAAwB,CAAC,IAAI,CAAC;gBAAE,KAAK,EAAE,CAAA;YAC3C,IAAI,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,KAAK,EAAE,CAAA;gBACP,IAAI,KAAK,KAAK,CAAC;oBAAE,OAAO,IAAI,CAAA;YAC9B,CAAC;QACH,CAAC;QACD,IAAI,GAAG,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;AACnD,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAa,EAAE,QAAgB;IAC5D,KAAK,IAAI,CAAC,GAAG,QAAQ,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACjD,IAAI,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAA;IAC/C,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,SAAS,UAAU,CAAC,IAAU;IAC5B,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,CAAA;AACzC,CAAC;AAED,SAAS,SAAS,CAAC,IAAU;IAC3B,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,CAAA;AAC5C,CAAC;AAED,SAAS,aAAa,CAAC,IAAU;IAC/B,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,CAAA;AAC5C,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAU;IACpC,OAAO,IAAI,YAAY,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;AACzE,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAU,EAAE,OAAqB;IAChE,IAAI,KAAK,GAAW,CAAC,IAAI,CAAC,CAAA;IAC1B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAA;QACtB,IAAI,CAAC,IAAI;YAAE,SAAQ;QAEnB,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,IAAI,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAC/C,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,OAAO,EAAE,CAAA;gBAClB,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACrC,CAAC;QACH,CAAC;QAED,KAAK,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACnB,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAU;IAC1C,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;AACrE,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAU;IACxC,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,QAAQ,CAAA;AAC7D,CAAC"}
1
+ {"version":3,"file":"diff-dom.js","sourceRoot":"","sources":["../../src/runtime/diff-dom.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
1
  import type { StyleManager } from '../style/index.ts';
2
- import type { ElementProps } from './jsx.ts';
3
2
  export { type StyleManager };
3
+ export { patchHostProps as diffHostProps } from './core/props.ts';
4
4
  export declare let defaultStyleManager: StyleManager;
5
- export declare function diffHostProps(curr: ElementProps, next: ElementProps, dom: Element): void;
6
5
  /**
7
6
  * Reset the global style state. For testing only - not exported from index.ts.
8
7
  */
@@ -1,188 +1,9 @@
1
1
  import { invariant } from "./invariant.js";
2
- import { createStyleManager, normalizeCssValue } from "../style/index.js";
3
- import { normalizeSvgAttribute } from "./svg-attributes.js";
4
- const SVG_NS = 'http://www.w3.org/2000/svg';
2
+ import { createStyleManager } from "../style/index.js";
5
3
  let globalStyleManager = typeof window !== 'undefined' ? createStyleManager() : null;
6
4
  export {};
5
+ export { patchHostProps as diffHostProps } from "./core/props.js";
7
6
  export let defaultStyleManager = globalStyleManager;
8
- // Preact excludes certain attributes from the property path due to browser quirks
9
- const ATTRIBUTE_FALLBACK_NAMES = new Set([
10
- 'width',
11
- 'height',
12
- 'href',
13
- 'list',
14
- 'form',
15
- 'tabIndex',
16
- 'download',
17
- 'rowSpan',
18
- 'colSpan',
19
- 'role',
20
- 'popover',
21
- ]);
22
- // Determine if we should use the property path for a given name.
23
- // Also acts as a type guard to allow bracket assignment without casts.
24
- function canUseProperty(dom, name, isSvg) {
25
- if (isSvg)
26
- return false;
27
- if (ATTRIBUTE_FALLBACK_NAMES.has(name))
28
- return false;
29
- return name in dom;
30
- }
31
- function isFrameworkProp(name) {
32
- return (name === 'children' ||
33
- name === 'mix' ||
34
- name === 'key' ||
35
- name === 'animate' ||
36
- name === 'innerHTML');
37
- }
38
- // TODO: would rather actually diff el.style object directly instead of writing
39
- // to the style attribute
40
- function serializeStyleObject(style) {
41
- let parts = [];
42
- for (let [key, value] of Object.entries(style)) {
43
- if (value == null)
44
- continue;
45
- if (typeof value === 'boolean')
46
- continue;
47
- if (typeof value === 'number' && !Number.isFinite(value))
48
- continue;
49
- let cssKey = key.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`);
50
- let cssValue = Array.isArray(value)
51
- ? value.join(', ')
52
- : normalizeCssValue(key, value);
53
- parts.push(`${cssKey}: ${cssValue};`);
54
- }
55
- return parts.join(' ');
56
- }
57
- function normalizePropName(name, isSvg) {
58
- // aria-/data- pass through
59
- if (name.startsWith('aria-') || name.startsWith('data-'))
60
- return { attr: name };
61
- // DOM property -> HTML mappings
62
- if (name === 'className')
63
- return { attr: 'class' };
64
- if (!isSvg) {
65
- if (name === 'htmlFor')
66
- return { attr: 'for' };
67
- if (name === 'tabIndex')
68
- return { attr: 'tabindex' };
69
- if (name === 'acceptCharset')
70
- return { attr: 'accept-charset' };
71
- if (name === 'httpEquiv')
72
- return { attr: 'http-equiv' };
73
- return { attr: name.toLowerCase() };
74
- }
75
- return normalizeSvgAttribute(name);
76
- }
77
- function toLocalName(attrName) {
78
- let separatorIndex = attrName.indexOf(':');
79
- if (separatorIndex === -1)
80
- return attrName;
81
- return attrName.slice(separatorIndex + 1);
82
- }
83
- function clearRuntimePropertyOnRemoval(dom, name) {
84
- try {
85
- if (name === 'value' || name === 'defaultValue') {
86
- dom[name] = '';
87
- return;
88
- }
89
- if (name === 'checked' || name === 'defaultChecked' || name === 'selected') {
90
- dom[name] = false;
91
- return;
92
- }
93
- if (name === 'selectedIndex') {
94
- dom[name] = -1;
95
- }
96
- }
97
- catch { }
98
- }
99
- function getMergedClassName(props) {
100
- let classAttr = typeof props.class === 'string' ? props.class : '';
101
- let className = typeof props.className === 'string' ? props.className : '';
102
- let mergedClassName = classAttr && className ? `${classAttr} ${className}` : classAttr || className;
103
- return mergedClassName || undefined;
104
- }
105
- export function diffHostProps(curr, next, dom) {
106
- let isSvg = dom.namespaceURI === SVG_NS;
107
- let currClassName = getMergedClassName(curr);
108
- let nextClassName = getMergedClassName(next);
109
- if (currClassName !== nextClassName) {
110
- if (nextClassName) {
111
- dom.setAttribute('class', nextClassName);
112
- }
113
- else {
114
- dom.removeAttribute('class');
115
- }
116
- }
117
- // Removals
118
- for (let name in curr) {
119
- if (isFrameworkProp(name))
120
- continue;
121
- if (name === 'class' || name === 'className')
122
- continue;
123
- if (!(name in next) || next[name] == null) {
124
- // Clear runtime state for form-like props where removing the attribute is not enough.
125
- if (canUseProperty(dom, name, isSvg)) {
126
- clearRuntimePropertyOnRemoval(dom, name);
127
- }
128
- let { ns, attr } = normalizePropName(name, isSvg);
129
- if (ns)
130
- dom.removeAttributeNS(ns, toLocalName(attr));
131
- else
132
- dom.removeAttribute(attr);
133
- }
134
- }
135
- // Additions/updates
136
- for (let name in next) {
137
- if (isFrameworkProp(name))
138
- continue;
139
- if (name === 'class' || name === 'className')
140
- continue;
141
- let nextValue = next[name];
142
- if (nextValue == null)
143
- continue;
144
- let prevValue = curr[name];
145
- if (prevValue !== nextValue) {
146
- let { ns, attr } = normalizePropName(name, isSvg);
147
- // Object style: serialize to attribute for now
148
- if (attr === 'style' &&
149
- typeof nextValue === 'object' &&
150
- nextValue &&
151
- !Array.isArray(nextValue)) {
152
- dom.setAttribute('style', serializeStyleObject(nextValue));
153
- continue;
154
- }
155
- // Prefer property assignment when possible (HTML only, not SVG)
156
- if (canUseProperty(dom, name, isSvg)) {
157
- try {
158
- dom[name] = nextValue == null ? '' : nextValue;
159
- continue;
160
- }
161
- catch { }
162
- }
163
- // Attribute path
164
- if (typeof nextValue === 'function') {
165
- // Never serialize functions as attribute values
166
- continue;
167
- }
168
- let isAriaOrData = name.startsWith('aria-') || name.startsWith('data-');
169
- if (nextValue != null && (nextValue !== false || isAriaOrData)) {
170
- // Special-case popover: true => presence only
171
- let attrValue = name === 'popover' && nextValue === true ? '' : String(nextValue);
172
- if (ns)
173
- dom.setAttributeNS(ns, attr, attrValue);
174
- else
175
- dom.setAttribute(attr, attrValue);
176
- }
177
- else {
178
- if (ns)
179
- dom.removeAttributeNS(ns, toLocalName(attr));
180
- else
181
- dom.removeAttribute(attr);
182
- }
183
- }
184
- }
185
- }
186
7
  /**
187
8
  * Reset the global style state. For testing only - not exported from index.ts.
188
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"diff-props.js","sourceRoot":"","sources":["../../src/runtime/diff-props.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diff-props.js","sourceRoot":"","sources":["../../src/runtime/diff-props.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAGtD,IAAI,kBAAkB,GACpB,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAE,IAAgC,CAAA;AAE1F,OAAO,EAAqB,CAAA;AAC5B,OAAO,EAAE,cAAc,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEjE,MAAM,CAAC,IAAI,mBAAmB,GAAiB,kBAAkB,CAAA;AAEjE;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,SAAS,CACP,OAAO,MAAM,KAAK,WAAW,EAC7B,8DAA8D,CAC/D,CAAA;IACD,kBAAkB,CAAC,OAAO,EAAE,CAAA;IAC5B,kBAAkB,GAAG,kBAAkB,EAAE,CAAA;IACzC,mBAAmB,GAAG,kBAAkB,CAAA;AAC1C,CAAC"}
@@ -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. */
@@ -2734,6 +2741,10 @@ export interface TemplateHTMLProps<eventTarget extends EventTarget = HTMLTemplat
2734
2741
  * Props accepted by `<textarea>` elements.
2735
2742
  */
2736
2743
  export interface TextareaHTMLProps<eventTarget extends EventTarget = HTMLTextAreaElement> extends HTMLProps<eventTarget> {
2744
+ /** Textarea content comes from `value` or `defaultValue`. */
2745
+ children?: never;
2746
+ /** Textarea content comes from `value` or `defaultValue`. */
2747
+ innerHTML?: never;
2737
2748
  /** The `autocomplete` HTML attribute. */
2738
2749
  autocomplete?: Trackable<string | undefined>;
2739
2750
  /** The `autoComplete` HTML attribute. */
@@ -4,6 +4,7 @@ import type { FrameHandle } from './component.ts';
4
4
  import type { Scheduler } from './vdom.ts';
5
5
  import { createRangeRoot } from './vdom.ts';
6
6
  import { type StyleManager } from '../style/index.ts';
7
+ import { type FlushKind } from './stream-protocol.ts';
7
8
  type FrameRoot = [Comment, Comment] | Element | Document | DocumentFragment;
8
9
  type FrameData = {
9
10
  status: 'pending' | 'resolved';
@@ -27,11 +28,30 @@ type FrameMarkerData = FrameData & {
27
28
  };
28
29
  type PendingClientEntries = Map<Comment, [Comment, RemixElement]>;
29
30
  /**
30
- * Loads a client entry module for hydration.
31
+ * Loads a named client-entry export for hydration.
32
+ *
33
+ * @param moduleUrl Browser-resolvable URL for the module that contains the client entry.
34
+ * @param exportName Named export to read from the loaded module.
35
+ * @returns The exported component function, or a promise for it.
36
+ *
37
+ * @example
38
+ * ```ts
39
+ * run({
40
+ * async loadModule(moduleUrl, exportName) {
41
+ * let mod = await import(moduleUrl)
42
+ * return mod[exportName]
43
+ * },
44
+ * })
45
+ * ```
31
46
  */
32
47
  export type LoadModule = (moduleUrl: string, exportName: string) => Promise<Function> | Function;
33
48
  /**
34
- * Resolves frame content for the given frame source.
49
+ * Resolves content for a browser-loaded frame.
50
+ *
51
+ * @param src Source string from the `<Frame src>` prop.
52
+ * @param signal Abort signal for the active frame load or reload.
53
+ * @param target Optional name of the frame being reloaded.
54
+ * @returns HTML, a stream of HTML bytes, or Remix node content to render into the frame.
35
55
  */
36
56
  export type ResolveFrame = (src: string, signal?: AbortSignal, target?: string) => Promise<FrameContent> | FrameContent;
37
57
  type InternalFrameContent = FrameContent | DocumentFragment;
@@ -91,6 +111,7 @@ export type Frame = {
91
111
  handle: FrameHandle;
92
112
  };
93
113
  type RenderOptions = {
114
+ flushKind?: FlushKind;
94
115
  initialHydrationTracker?: InitialHydrationTracker;
95
116
  signal?: AbortSignal;
96
117
  };
@@ -5,6 +5,7 @@ import { invariant } from "./invariant.js";
5
5
  import { createRangeRoot, createRoot } from "./vdom.js";
6
6
  import { diffNodes } from "./diff-dom.js";
7
7
  import { createStyleManager } from "../style/index.js";
8
+ import { findFlushMarker } from "./stream-protocol.js";
8
9
  const bufferedFrameTemplates = new Map();
9
10
  const frameTemplateListeners = new Map();
10
11
  const DOCTYPE_PATTERN = /<!doctype(?:\s[^>]*)?>/gi;
@@ -90,10 +91,10 @@ export function createFrame(root, init) {
90
91
  if (options?.signal?.aborted)
91
92
  return;
92
93
  if (content instanceof ReadableStream) {
93
- await renderFrameStream(content, container.doc, async (html) => {
94
+ await renderFrameStream(content, container.doc, async (html, flushKind) => {
94
95
  if (options?.signal?.aborted)
95
96
  return;
96
- await render(html, options);
97
+ await render(html, { ...options, flushKind });
97
98
  });
98
99
  return;
99
100
  }
@@ -114,32 +115,34 @@ export function createFrame(root, init) {
114
115
  contentRoot.dispose();
115
116
  contentRoot = undefined;
116
117
  }
118
+ if (typeof content === 'string') {
119
+ let flushed = await consumeFlushBatches(content, async (html, flushKind) => {
120
+ await render(html, { ...options, flushKind });
121
+ });
122
+ if (flushed.applied) {
123
+ if (flushed.remainder !== '') {
124
+ await render(flushed.remainder, { ...options, flushKind: 'fragment' });
125
+ }
126
+ return;
127
+ }
128
+ }
117
129
  let htmlContent = typeof content === 'string' ? stripDoctypeMarkup(content) : undefined;
118
130
  let isFullDocumentReload = container.root instanceof Document &&
119
131
  htmlContent !== undefined &&
120
- isFullDocumentHtml(htmlContent);
132
+ options?.flushKind === 'document';
121
133
  if (isFullDocumentReload && htmlContent !== undefined) {
122
- // Full-document reload should tear down existing hydrated roots and subframes
123
- // before diffing fresh HTML, otherwise stale component instances can survive
124
- // on detached DOM nodes.
125
- let previousBodyNodes = Array.from(container.doc.body.childNodes);
126
- removeVirtualRoots(previousBodyNodes);
127
- disposeSubFrames(previousBodyNodes, context);
128
134
  let parsed = new DOMParser().parseFromString(htmlContent, 'text/html');
129
135
  mergeRmxDataFromDocument(context.data, parsed);
130
- context.styleManager.reset();
131
- context.styleManager.adoptServerStyles(collectFrameServerStyleTags(createElementContainer(parsed)));
136
+ context.styleManager.replaceServerStyles(collectFrameServerStyleTags(createElementContainer(parsed)));
132
137
  syncElementAttributes(container.doc.documentElement, parsed.documentElement);
133
- syncElementAttributes(container.doc.head, parsed.head);
134
- syncElementAttributes(container.doc.body, parsed.body);
135
- diffNodes(Array.from(container.doc.head.childNodes), Array.from(parsed.head.childNodes), {
138
+ diffNodes([container.doc.head], [parsed.head], {
136
139
  ...context,
137
- regionParent: container.doc.head,
140
+ regionParent: container.doc.documentElement,
138
141
  regionTailRef: null,
139
142
  });
140
- diffNodes(Array.from(container.doc.body.childNodes), Array.from(parsed.body.childNodes), {
143
+ diffNodes([container.doc.body], [parsed.body], {
141
144
  ...context,
142
- regionParent: container.doc.body,
145
+ regionParent: container.doc.documentElement,
143
146
  regionTailRef: null,
144
147
  });
145
148
  let bodyContainer = createElementContainer(container.doc.body);
@@ -150,8 +153,7 @@ export function createFrame(root, init) {
150
153
  return;
151
154
  }
152
155
  let fragment = htmlContent !== undefined ? createFragmentFromString(container.doc, htmlContent) : content;
153
- context.styleManager.reset();
154
- context.styleManager.adoptServerStyles(collectFrameServerStyleTags(createElementContainer(fragment)));
156
+ context.styleManager.replaceServerStyles(collectFrameServerStyleTags(createElementContainer(fragment)));
155
157
  removeEmptyHeads(fragment);
156
158
  mergeRmxDataFromFragment(context.data, fragment);
157
159
  let nextContainer = createContainer(fragment);
@@ -203,8 +205,7 @@ export function createFrame(root, init) {
203
205
  }
204
206
  async function hydrateInitial() {
205
207
  let initialHydrationTracker = createInitialHydrationTracker();
206
- context.styleManager.reset();
207
- context.styleManager.adoptServerStyles(collectFrameServerStyleTags(container));
208
+ context.styleManager.replaceServerStyles(collectFrameServerStyleTags(container));
208
209
  createSubFrames(container.childNodes, context);
209
210
  scheduleHydrationInContainer(container, context, initialHydrationTracker);
210
211
  if (init.marker?.status === 'pending') {
@@ -742,7 +743,6 @@ async function renderFrameStream(stream, doc, applyHtml) {
742
743
  let decoder = new TextDecoder();
743
744
  let buffer = '';
744
745
  let html = '';
745
- let appliedLength = 0;
746
746
  let appliedOnce = false;
747
747
  try {
748
748
  while (true) {
@@ -754,13 +754,9 @@ async function renderFrameStream(stream, doc, applyHtml) {
754
754
  buffer = parsed.remainder;
755
755
  if (parsed.html !== '') {
756
756
  html += parsed.html;
757
- let htmlMarkers = collectHtmlMarkerSummary(html);
758
- if (!hasBalancedMarkerSummary(htmlMarkers)) {
759
- continue;
760
- }
761
- await applyHtml(html);
762
- appliedLength = html.length;
763
- appliedOnce = true;
757
+ let flushed = await consumeFlushBatches(html, applyHtml);
758
+ appliedOnce = flushed.applied || appliedOnce;
759
+ html = flushed.remainder;
764
760
  }
765
761
  }
766
762
  buffer += decoder.decode();
@@ -771,20 +767,33 @@ async function renderFrameStream(stream, doc, applyHtml) {
771
767
  html += buffer;
772
768
  buffer = '';
773
769
  }
774
- if (html !== '' && html.length > appliedLength) {
775
- await applyHtml(html);
770
+ if (html !== '') {
771
+ await applyHtml(html, 'fragment');
776
772
  appliedOnce = true;
777
773
  }
778
774
  // A frame stream can legitimately resolve to empty content. Ensure the
779
775
  // existing frame region is cleared instead of treated as a no-op.
780
776
  if (html === '' && !appliedOnce) {
781
- await applyHtml('');
777
+ await applyHtml('', 'fragment');
782
778
  }
783
779
  }
784
780
  finally {
785
781
  reader.releaseLock();
786
782
  }
787
783
  }
784
+ async function consumeFlushBatches(html, applyHtml) {
785
+ let applied = false;
786
+ let cursor = 0;
787
+ let marker = findFlushMarker(html, cursor);
788
+ while (marker) {
789
+ let batch = html.slice(cursor, marker.index);
790
+ await applyHtml(batch, marker.kind);
791
+ applied = true;
792
+ cursor = marker.endIndex;
793
+ marker = findFlushMarker(html, cursor);
794
+ }
795
+ return { applied, remainder: html.slice(cursor) };
796
+ }
788
797
  function createContainer(root) {
789
798
  return Array.isArray(root) ? createCommentContainer(root) : createElementContainer(root);
790
799
  }
@@ -832,10 +841,6 @@ function isRemixNodeFrameContent(content) {
832
841
  content instanceof DocumentFragment ||
833
842
  typeof content === 'string');
834
843
  }
835
- function isFullDocumentHtml(content) {
836
- let trimmed = content.trimStart();
837
- return /^<!doctype html\b/i.test(trimmed) || /^<html[\s>]/i.test(trimmed);
838
- }
839
844
  function findHydrationMarkers(container) {
840
845
  let results = [];
841
846
  forEachComment(container, (comment) => {
@@ -906,15 +911,4 @@ function findEndMarker(start, isStart, isEnd) {
906
911
  }
907
912
  throw new Error('End marker not found');
908
913
  }
909
- function collectHtmlMarkerSummary(html) {
910
- return {
911
- frameStarts: html.match(/<!--\s*rmx:f:/g)?.length ?? 0,
912
- frameEnds: html.match(/<!--\s*\/rmx:f\s*-->/g)?.length ?? 0,
913
- hydrationStarts: html.match(/<!--\s*rmx:h:/g)?.length ?? 0,
914
- hydrationEnds: html.match(/<!--\s*\/rmx:h\s*-->/g)?.length ?? 0,
915
- };
916
- }
917
- function hasBalancedMarkerSummary(summary) {
918
- return (summary.frameStarts === summary.frameEnds && summary.hydrationStarts === summary.hydrationEnds);
919
- }
920
914
  //# sourceMappingURL=frame.js.map