roxxie-proxy-u-prod 0.1.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 (481) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +123 -0
  3. package/SOURCE.md +29 -0
  4. package/THIRD_PARTY_NOTICES.md +24 -0
  5. package/dist/assets/filters-Bu_3nHVy.bin +0 -0
  6. package/dist/assets/index-BdRlQ7d_.css +1 -0
  7. package/dist/assets/index-DcvPYWS3.js +3621 -0
  8. package/dist/assets/inject-BnVzMVpl.js +40 -0
  9. package/dist/assets/scramjet-C9HLwI-y.wasm +0 -0
  10. package/dist/defaultfavicon.png +0 -0
  11. package/dist/icon.png +0 -0
  12. package/dist/roxxie-icon.svg +12 -0
  13. package/embed.js +70 -0
  14. package/examples/single-page.html +25 -0
  15. package/package.json +42 -0
  16. package/runtime/controller.sw.js +273 -0
  17. package/runtime/index.html +18 -0
  18. package/runtime/localcontrollersw.js +7 -0
  19. package/runtime/roxxie-network.json +13 -0
  20. package/runtime/sw.js +6 -0
  21. package/scripts/build.mjs +344 -0
  22. package/scripts/smoke.mjs +123 -0
  23. package/scripts/verify.mjs +122 -0
  24. package/source/external/dreamlandjs/LICENSE +21 -0
  25. package/source/external/dreamlandjs/README.md +22 -0
  26. package/source/external/dreamlandjs/dist/core.d.ts +167 -0
  27. package/source/external/dreamlandjs/dist/core.js +2 -0
  28. package/source/external/dreamlandjs/dist/core.js.map +1 -0
  29. package/source/external/dreamlandjs/dist/core.size.html +4950 -0
  30. package/source/external/dreamlandjs/dist/js-runtime.d.ts +3 -0
  31. package/source/external/dreamlandjs/dist/js-runtime.js +2 -0
  32. package/source/external/dreamlandjs/dist/js-runtime.js.map +1 -0
  33. package/source/external/dreamlandjs/dist/jsx-runtime.d.ts +1 -0
  34. package/source/external/dreamlandjs/dist/jsx-runtime.js +2 -0
  35. package/source/external/dreamlandjs/dist/jsx-runtime.js.map +1 -0
  36. package/source/external/dreamlandjs/dist/motion.d.ts +19 -0
  37. package/source/external/dreamlandjs/dist/motion.js +2 -0
  38. package/source/external/dreamlandjs/dist/motion.js.map +1 -0
  39. package/source/external/dreamlandjs/dist/router.d.ts +48 -0
  40. package/source/external/dreamlandjs/dist/router.js +2 -0
  41. package/source/external/dreamlandjs/dist/router.js.map +1 -0
  42. package/source/external/dreamlandjs/dist/ssr.client.d.ts +3 -0
  43. package/source/external/dreamlandjs/dist/ssr.client.js +2 -0
  44. package/source/external/dreamlandjs/dist/ssr.client.js.map +1 -0
  45. package/source/external/dreamlandjs/dist/ssr.client.size.html +4950 -0
  46. package/source/external/dreamlandjs/dist/ssr.hybrid.d.ts +7 -0
  47. package/source/external/dreamlandjs/dist/ssr.hybrid.js +2 -0
  48. package/source/external/dreamlandjs/dist/ssr.hybrid.js.map +1 -0
  49. package/source/external/dreamlandjs/dist/ssr.hybrid.size.html +4950 -0
  50. package/source/external/dreamlandjs/dist/ssr.server.d.ts +11 -0
  51. package/source/external/dreamlandjs/dist/ssr.server.js +2373 -0
  52. package/source/external/dreamlandjs/dist/ssr.server.js.map +1 -0
  53. package/source/external/dreamlandjs/dist/types/core/consts.d.ts +16 -0
  54. package/source/external/dreamlandjs/dist/types/core/css/index.d.ts +11 -0
  55. package/source/external/dreamlandjs/dist/types/core/css/selectorParser.d.ts +50 -0
  56. package/source/external/dreamlandjs/dist/types/core/delegate.d.ts +10 -0
  57. package/source/external/dreamlandjs/dist/types/core/index.d.ts +9 -0
  58. package/source/external/dreamlandjs/dist/types/core/jsx/child.d.ts +2 -0
  59. package/source/external/dreamlandjs/dist/types/core/jsx/definitions.d.ts +76 -0
  60. package/source/external/dreamlandjs/dist/types/core/jsx/dom.d.ts +28 -0
  61. package/source/external/dreamlandjs/dist/types/core/jsx/index.d.ts +14 -0
  62. package/source/external/dreamlandjs/dist/types/core/state/index.d.ts +1 -0
  63. package/source/external/dreamlandjs/dist/types/core/state/pointers.d.ts +37 -0
  64. package/source/external/dreamlandjs/dist/types/core/state/state.d.ts +13 -0
  65. package/source/external/dreamlandjs/dist/types/core/state/use.d.ts +11 -0
  66. package/source/external/dreamlandjs/dist/types/core/utils.d.ts +4 -0
  67. package/source/external/dreamlandjs/dist/types/js-runtime/index.d.ts +1 -0
  68. package/source/external/dreamlandjs/dist/types/jsx-runtime/index.d.ts +2 -0
  69. package/source/external/dreamlandjs/dist/types/motion/index.d.ts +15 -0
  70. package/source/external/dreamlandjs/dist/types/router/index.d.ts +45 -0
  71. package/source/external/dreamlandjs/dist/types/ssr/client/index.d.ts +1 -0
  72. package/source/external/dreamlandjs/dist/types/ssr/common/consts.d.ts +4 -0
  73. package/source/external/dreamlandjs/dist/types/ssr/common/serialize.d.ts +4 -0
  74. package/source/external/dreamlandjs/dist/types/ssr/common/types.d.ts +21 -0
  75. package/source/external/dreamlandjs/dist/types/ssr/hybrid/index.d.ts +4 -0
  76. package/source/external/dreamlandjs/dist/types/ssr/server/index.d.ts +7 -0
  77. package/source/external/dreamlandjs/dist/types/ssr/server/vdom.d.ts +71 -0
  78. package/source/external/dreamlandjs/dist/types/util/index.d.ts +1 -0
  79. package/source/external/dreamlandjs/dist/types/util/store.d.ts +26 -0
  80. package/source/external/dreamlandjs/dist/types/vite/css-minifier.d.ts +7 -0
  81. package/source/external/dreamlandjs/dist/types/vite/index.d.ts +11 -0
  82. package/source/external/dreamlandjs/dist/util.d.ts +29 -0
  83. package/source/external/dreamlandjs/dist/util.js +2 -0
  84. package/source/external/dreamlandjs/dist/util.js.map +1 -0
  85. package/source/external/dreamlandjs/dist/vite.d.ts +19 -0
  86. package/source/external/dreamlandjs/dist/vite.js +2 -0
  87. package/source/external/dreamlandjs/dist/vite.js.map +1 -0
  88. package/source/external/dreamlandjs/package.json +101 -0
  89. package/source/external/dreamlandjs/rollup.config.ts +302 -0
  90. package/source/external/dreamlandjs/rollup.plugins.ts +1134 -0
  91. package/source/external/dreamlandjs/src/core/consts.d.ts +16 -0
  92. package/source/external/dreamlandjs/src/core/consts.js +18 -0
  93. package/source/external/dreamlandjs/src/core/css/index.ts +111 -0
  94. package/source/external/dreamlandjs/src/core/css/selectorParser.ts +313 -0
  95. package/source/external/dreamlandjs/src/core/delegate.ts +28 -0
  96. package/source/external/dreamlandjs/src/core/index.ts +31 -0
  97. package/source/external/dreamlandjs/src/core/jsx/child.ts +91 -0
  98. package/source/external/dreamlandjs/src/core/jsx/definitions.ts +125 -0
  99. package/source/external/dreamlandjs/src/core/jsx/dom.ts +49 -0
  100. package/source/external/dreamlandjs/src/core/jsx/index.ts +289 -0
  101. package/source/external/dreamlandjs/src/core/state/index.ts +1 -0
  102. package/source/external/dreamlandjs/src/core/state/pointers.ts +310 -0
  103. package/source/external/dreamlandjs/src/core/state/state.ts +112 -0
  104. package/source/external/dreamlandjs/src/core/state/use.ts +82 -0
  105. package/source/external/dreamlandjs/src/core/utils.ts +48 -0
  106. package/source/external/dreamlandjs/src/js-runtime/index.ts +4 -0
  107. package/source/external/dreamlandjs/src/jsx-runtime/index.ts +3 -0
  108. package/source/external/dreamlandjs/src/motion/index.ts +156 -0
  109. package/source/external/dreamlandjs/src/router/index.tsx +394 -0
  110. package/source/external/dreamlandjs/src/router/tsconfig.json +9 -0
  111. package/source/external/dreamlandjs/src/ssr/client/index.ts +193 -0
  112. package/source/external/dreamlandjs/src/ssr/common/consts.ts +5 -0
  113. package/source/external/dreamlandjs/src/ssr/common/serialize.ts +115 -0
  114. package/source/external/dreamlandjs/src/ssr/common/types.ts +28 -0
  115. package/source/external/dreamlandjs/src/ssr/hybrid/index.ts +144 -0
  116. package/source/external/dreamlandjs/src/ssr/server/index.ts +157 -0
  117. package/source/external/dreamlandjs/src/ssr/server/tsconfig.json +7 -0
  118. package/source/external/dreamlandjs/src/ssr/server/vdom.ts +285 -0
  119. package/source/external/dreamlandjs/src/util/index.ts +10 -0
  120. package/source/external/dreamlandjs/src/util/store.ts +134 -0
  121. package/source/external/dreamlandjs/src/vite/css-minifier.ts +222 -0
  122. package/source/external/dreamlandjs/src/vite/index.ts +60 -0
  123. package/source/external/dreamlandjs/src/vite/tsconfig.json +7 -0
  124. package/source/external/dreamlandjs/tsconfig.json +15 -0
  125. package/source/package.json +48 -0
  126. package/source/packages/adrift-protocol/package.json +31 -0
  127. package/source/packages/adrift-protocol/src/index.ts +348 -0
  128. package/source/packages/adrift-protocol/tsconfig.json +18 -0
  129. package/source/packages/cdp/LICENSE +21 -0
  130. package/source/packages/cdp/README.md +47 -0
  131. package/source/packages/cdp/dist/chobitsu.js +2 -0
  132. package/source/packages/cdp/dist/chobitsu.js.map +1 -0
  133. package/source/packages/cdp/package.json +73 -0
  134. package/source/packages/cdp/script/build.js +15 -0
  135. package/source/packages/cdp/src/Chobitsu.ts +110 -0
  136. package/source/packages/cdp/src/domains/CSS.ts +378 -0
  137. package/source/packages/cdp/src/domains/CacheStorage.ts +8 -0
  138. package/source/packages/cdp/src/domains/DOM.ts +487 -0
  139. package/source/packages/cdp/src/domains/DOMDebugger.ts +109 -0
  140. package/source/packages/cdp/src/domains/DOMStorage.ts +122 -0
  141. package/source/packages/cdp/src/domains/Debugger.ts +25 -0
  142. package/source/packages/cdp/src/domains/IndexedDB.ts +207 -0
  143. package/source/packages/cdp/src/domains/Input.ts +177 -0
  144. package/source/packages/cdp/src/domains/Network.ts +251 -0
  145. package/source/packages/cdp/src/domains/Overlay.ts +230 -0
  146. package/source/packages/cdp/src/domains/Page.ts +296 -0
  147. package/source/packages/cdp/src/domains/Runtime.ts +273 -0
  148. package/source/packages/cdp/src/domains/Storage.ts +71 -0
  149. package/source/packages/cdp/src/index.d.ts +8 -0
  150. package/source/packages/cdp/src/index.ts +153 -0
  151. package/source/packages/cdp/src/lib/connector.ts +15 -0
  152. package/source/packages/cdp/src/lib/constants.ts +1 -0
  153. package/source/packages/cdp/src/lib/evaluate.ts +59 -0
  154. package/source/packages/cdp/src/lib/mutationObserver.ts +39 -0
  155. package/source/packages/cdp/src/lib/nodeManager.ts +142 -0
  156. package/source/packages/cdp/src/lib/objManager.ts +422 -0
  157. package/source/packages/cdp/src/lib/request.ts +313 -0
  158. package/source/packages/cdp/src/lib/resources.ts +59 -0
  159. package/source/packages/cdp/src/lib/scriptMananger.ts +62 -0
  160. package/source/packages/cdp/src/lib/stylesheet.ts +146 -0
  161. package/source/packages/cdp/src/lib/util.ts +105 -0
  162. package/source/packages/cdp/tsconfig.json +16 -0
  163. package/source/packages/cdp/webpack.config.js +48 -0
  164. package/source/packages/chrome/index.html +17 -0
  165. package/source/packages/chrome/package.json +41 -0
  166. package/source/packages/chrome/public/ROXXIE_NETWORK.md +22 -0
  167. package/source/packages/chrome/public/controller.sw.js +273 -0
  168. package/source/packages/chrome/public/defaultfavicon.png +0 -0
  169. package/source/packages/chrome/public/icon.png +0 -0
  170. package/source/packages/chrome/public/localcontrollersw.js +7 -0
  171. package/source/packages/chrome/public/roxxie-icon.svg +12 -0
  172. package/source/packages/chrome/public/roxxie-network.json +13 -0
  173. package/source/packages/chrome/public/sw.js +6 -0
  174. package/source/packages/chrome/src/App.tsx +269 -0
  175. package/source/packages/chrome/src/CDP.ts +285 -0
  176. package/source/packages/chrome/src/Tab/History.ts +186 -0
  177. package/source/packages/chrome/src/Tab/Tab.tsx +219 -0
  178. package/source/packages/chrome/src/Tab/screenshot.ts +66 -0
  179. package/source/packages/chrome/src/Tab/serialize.ts +221 -0
  180. package/source/packages/chrome/src/adblock/AdBlockPlugin.test.ts +159 -0
  181. package/source/packages/chrome/src/adblock/AdBlockPlugin.ts +232 -0
  182. package/source/packages/chrome/src/adblock/AdBlockService.test.ts +148 -0
  183. package/source/packages/chrome/src/adblock/AdBlockService.ts +166 -0
  184. package/source/packages/chrome/src/adblock/NOTICE.md +14 -0
  185. package/source/packages/chrome/src/adblock/assets/filters.bin +0 -0
  186. package/source/packages/chrome/src/adblock/index.ts +18 -0
  187. package/source/packages/chrome/src/assets/favicon.ts +4 -0
  188. package/source/packages/chrome/src/components/BookmarkPopup.tsx +101 -0
  189. package/source/packages/chrome/src/components/BookmarksStrip.tsx +150 -0
  190. package/source/packages/chrome/src/components/Button.tsx +99 -0
  191. package/source/packages/chrome/src/components/Checkbox.tsx +89 -0
  192. package/source/packages/chrome/src/components/DownloadsPopup.tsx +230 -0
  193. package/source/packages/chrome/src/components/Favicon.tsx +65 -0
  194. package/source/packages/chrome/src/components/Icon.tsx +29 -0
  195. package/source/packages/chrome/src/components/Input.tsx +82 -0
  196. package/source/packages/chrome/src/components/Menu.tsx +287 -0
  197. package/source/packages/chrome/src/components/Omnibar/BookmarkButton.tsx +73 -0
  198. package/source/packages/chrome/src/components/Omnibar/CircularProgress.tsx +83 -0
  199. package/source/packages/chrome/src/components/Omnibar/Omnibar.tsx +455 -0
  200. package/source/packages/chrome/src/components/Omnibar/OmnibarButton.tsx +48 -0
  201. package/source/packages/chrome/src/components/Omnibar/Omnibox.tsx +466 -0
  202. package/source/packages/chrome/src/components/Omnibar/SiteOptionsButton.tsx +52 -0
  203. package/source/packages/chrome/src/components/Omnibar/Suggestion.tsx +186 -0
  204. package/source/packages/chrome/src/components/Omnibar/UrlInput.tsx +198 -0
  205. package/source/packages/chrome/src/components/Omnibar/suggestions.ts +468 -0
  206. package/source/packages/chrome/src/components/Omnibar/utils.ts +11 -0
  207. package/source/packages/chrome/src/components/ReportBrokenSiteModal.tsx +279 -0
  208. package/source/packages/chrome/src/components/Shell.tsx +191 -0
  209. package/source/packages/chrome/src/components/SiteInformationPopup.tsx +96 -0
  210. package/source/packages/chrome/src/components/SmallIconButton.tsx +36 -0
  211. package/source/packages/chrome/src/components/StartScreen.tsx +386 -0
  212. package/source/packages/chrome/src/components/TabStrip/DragTab.tsx +546 -0
  213. package/source/packages/chrome/src/components/TabStrip/Sidebar.tsx +820 -0
  214. package/source/packages/chrome/src/components/TabStrip/TabHoverCard.tsx +87 -0
  215. package/source/packages/chrome/src/components/TabStrip/TabStrip.tsx +510 -0
  216. package/source/packages/chrome/src/components/TopSiteButton.tsx +234 -0
  217. package/source/packages/chrome/src/consts.ts +3 -0
  218. package/source/packages/chrome/src/icons.ts +70 -0
  219. package/source/packages/chrome/src/index.ts +168 -0
  220. package/source/packages/chrome/src/migrations/0-from-legacy.ts +6 -0
  221. package/source/packages/chrome/src/migrations/1-vertical-tab-settings.ts +15 -0
  222. package/source/packages/chrome/src/migrations/index.ts +42 -0
  223. package/source/packages/chrome/src/pages/AboutPage.tsx +37 -0
  224. package/source/packages/chrome/src/pages/DownloadsPage.tsx +133 -0
  225. package/source/packages/chrome/src/pages/HistoryPage.tsx +99 -0
  226. package/source/packages/chrome/src/pages/NewTabPage.tsx +264 -0
  227. package/source/packages/chrome/src/pages/PlaygroundPage.tsx +43 -0
  228. package/source/packages/chrome/src/pages/SettingsPage.tsx +1931 -0
  229. package/source/packages/chrome/src/proxy/Controller.ts +331 -0
  230. package/source/packages/chrome/src/proxy/ProxyFrame.ts +26 -0
  231. package/source/packages/chrome/src/proxy/cache.ts +487 -0
  232. package/source/packages/chrome/src/proxy/codec.ts +11 -0
  233. package/source/packages/chrome/src/proxy/contextitems.ts +180 -0
  234. package/source/packages/chrome/src/proxy/index.ts +5 -0
  235. package/source/packages/chrome/src/proxy/roxxie.ts +85 -0
  236. package/source/packages/chrome/src/proxy/scramjet.ts +642 -0
  237. package/source/packages/chrome/src/reset.css +124 -0
  238. package/source/packages/chrome/src/runtime-base.ts +16 -0
  239. package/source/packages/chrome/src/sentry.tsx +45 -0
  240. package/source/packages/chrome/src/services/DownloadsService.ts +136 -0
  241. package/source/packages/chrome/src/services/FaviconService.ts +161 -0
  242. package/source/packages/chrome/src/services/KVWrapper.ts +169 -0
  243. package/source/packages/chrome/src/services/ProfileService.ts +94 -0
  244. package/source/packages/chrome/src/services/Service.ts +10 -0
  245. package/source/packages/chrome/src/services/SettingsService.ts +108 -0
  246. package/source/packages/chrome/src/services/TabsService.ts +161 -0
  247. package/source/packages/chrome/src/startup.test.ts +129 -0
  248. package/source/packages/chrome/src/startup.ts +161 -0
  249. package/source/packages/chrome/src/style.css +229 -0
  250. package/source/packages/chrome/src/themes.ts +756 -0
  251. package/source/packages/chrome/src/util/StatefulClass.ts +31 -0
  252. package/source/packages/chrome/src/util/index.ts +74 -0
  253. package/source/packages/chrome/src/util/memoize.ts +13 -0
  254. package/source/packages/chrome/src/vite-env.d.ts +16 -0
  255. package/source/packages/chrome/tsconfig.json +30 -0
  256. package/source/packages/chrome/vite.config.ts +47 -0
  257. package/source/packages/inject/package.json +20 -0
  258. package/source/packages/inject/src/context.ts +194 -0
  259. package/source/packages/inject/src/emulators/alwaysLastBubble.ts +168 -0
  260. package/source/packages/inject/src/emulators/anchors.ts +55 -0
  261. package/source/packages/inject/src/emulators/contextmenu.ts +46 -0
  262. package/source/packages/inject/src/emulators/history.ts +51 -0
  263. package/source/packages/inject/src/emulators/titlewatcher.ts +42 -0
  264. package/source/packages/inject/src/emulators/windowopen.ts +134 -0
  265. package/source/packages/inject/src/errorpage/errorpage.css +234 -0
  266. package/source/packages/inject/src/errorpage/errorpage.html +29 -0
  267. package/source/packages/inject/src/errorpage/errorpage.ts +76 -0
  268. package/source/packages/inject/src/index.ts +62 -0
  269. package/source/packages/inject/src/transport.ts +97 -0
  270. package/source/packages/inject/src/types.d.ts +136 -0
  271. package/source/packages/roxxie-transport/package.json +36 -0
  272. package/source/packages/roxxie-transport/src/binary.ts +398 -0
  273. package/source/packages/roxxie-transport/src/config.ts +254 -0
  274. package/source/packages/roxxie-transport/src/connection.ts +767 -0
  275. package/source/packages/roxxie-transport/src/index.ts +5 -0
  276. package/source/packages/roxxie-transport/src/tracker.ts +651 -0
  277. package/source/packages/roxxie-transport/src/transport.ts +414 -0
  278. package/source/packages/roxxie-transport/tsconfig.json +18 -0
  279. package/source/packages/scramjet/packages/controller/package.json +37 -0
  280. package/source/packages/scramjet/packages/controller/src/index.ts +861 -0
  281. package/source/packages/scramjet/packages/controller/src/inject.ts +365 -0
  282. package/source/packages/scramjet/packages/controller/src/sw.ts +231 -0
  283. package/source/packages/scramjet/packages/controller/src/symbols.ts +1 -0
  284. package/source/packages/scramjet/packages/controller/src/types.d.ts +140 -0
  285. package/source/packages/scramjet/packages/controller/src/typesEntry.ts +6 -0
  286. package/source/packages/scramjet/packages/controller/src/version.ts +30 -0
  287. package/source/packages/scramjet/packages/controller/tsconfig.json +24 -0
  288. package/source/packages/scramjet/packages/core/dist/scramjet-external.mjs +57 -0
  289. package/source/packages/scramjet/packages/core/dist/scramjet.js +13599 -0
  290. package/source/packages/scramjet/packages/core/dist/scramjet.js.map +1 -0
  291. package/source/packages/scramjet/packages/core/dist/scramjet.mjs +13649 -0
  292. package/source/packages/scramjet/packages/core/dist/scramjet.mjs.map +1 -0
  293. package/source/packages/scramjet/packages/core/dist/scramjet.wasm +0 -0
  294. package/source/packages/scramjet/packages/core/dist/scramjet_bundled.js +13601 -0
  295. package/source/packages/scramjet/packages/core/dist/scramjet_bundled.js.map +1 -0
  296. package/source/packages/scramjet/packages/core/dist/scramjet_bundled.mjs +13651 -0
  297. package/source/packages/scramjet/packages/core/dist/scramjet_bundled.mjs.map +1 -0
  298. package/source/packages/scramjet/packages/core/dist/temp-types-build/index.js +23 -0
  299. package/source/packages/scramjet/packages/core/dist/temp-types-build/index.js.map +1 -0
  300. package/source/packages/scramjet/packages/core/dist/types/Tap.d.ts +39 -0
  301. package/source/packages/scramjet/packages/core/dist/types/client/client.d.ts +115 -0
  302. package/source/packages/scramjet/packages/core/dist/types/client/entry.d.ts +5 -0
  303. package/source/packages/scramjet/packages/core/dist/types/client/events.d.ts +10 -0
  304. package/source/packages/scramjet/packages/core/dist/types/client/helpers.d.ts +1 -0
  305. package/source/packages/scramjet/packages/core/dist/types/client/index.d.ts +7 -0
  306. package/source/packages/scramjet/packages/core/dist/types/client/location.d.ts +2 -0
  307. package/source/packages/scramjet/packages/core/dist/types/client/shared/eval.d.ts +3 -0
  308. package/source/packages/scramjet/packages/core/dist/types/client/shared/sourcemaps.d.ts +19 -0
  309. package/source/packages/scramjet/packages/core/dist/types/client/shared/wrap.d.ts +4 -0
  310. package/source/packages/scramjet/packages/core/dist/types/client/singletonbox.d.ts +18 -0
  311. package/source/packages/scramjet/packages/core/dist/types/fetch/body.d.ts +3 -0
  312. package/source/packages/scramjet/packages/core/dist/types/fetch/fetch.d.ts +7 -0
  313. package/source/packages/scramjet/packages/core/dist/types/fetch/headers.d.ts +19 -0
  314. package/source/packages/scramjet/packages/core/dist/types/fetch/index.d.ts +128 -0
  315. package/source/packages/scramjet/packages/core/dist/types/fetch/parse.d.ts +23 -0
  316. package/source/packages/scramjet/packages/core/dist/types/fetch/util.d.ts +7 -0
  317. package/source/packages/scramjet/packages/core/dist/types/index.d.ts +12 -0
  318. package/source/packages/scramjet/packages/core/dist/types/shared/cookie.d.ts +26 -0
  319. package/source/packages/scramjet/packages/core/dist/types/shared/headers.d.ts +13 -0
  320. package/source/packages/scramjet/packages/core/dist/types/shared/htmlRules.d.ts +6 -0
  321. package/source/packages/scramjet/packages/core/dist/types/shared/index.d.ts +50 -0
  322. package/source/packages/scramjet/packages/core/dist/types/shared/mime.d.ts +53 -0
  323. package/source/packages/scramjet/packages/core/dist/types/shared/refresh.d.ts +7 -0
  324. package/source/packages/scramjet/packages/core/dist/types/shared/rewriters/css.d.ts +4 -0
  325. package/source/packages/scramjet/packages/core/dist/types/shared/rewriters/html.d.ts +33 -0
  326. package/source/packages/scramjet/packages/core/dist/types/shared/rewriters/index.d.ts +6 -0
  327. package/source/packages/scramjet/packages/core/dist/types/shared/rewriters/js.d.ts +11 -0
  328. package/source/packages/scramjet/packages/core/dist/types/shared/rewriters/url.d.ts +24 -0
  329. package/source/packages/scramjet/packages/core/dist/types/shared/rewriters/wasm.d.ts +7 -0
  330. package/source/packages/scramjet/packages/core/dist/types/shared/rewriters/worker.d.ts +3 -0
  331. package/source/packages/scramjet/packages/core/dist/types/shared/set-cookie-parser.d.ts +20 -0
  332. package/source/packages/scramjet/packages/core/dist/types/shared/snapshot.d.ts +186 -0
  333. package/source/packages/scramjet/packages/core/dist/types/shared/sniffEncoding.d.ts +65 -0
  334. package/source/packages/scramjet/packages/core/dist/types/shared/util.d.ts +2 -0
  335. package/source/packages/scramjet/packages/core/dist/types/symbols.d.ts +6 -0
  336. package/source/packages/scramjet/packages/core/dist/types/types.d.ts +60 -0
  337. package/source/packages/scramjet/packages/core/dist/types/typesEntry.d.ts +5 -0
  338. package/source/packages/scramjet/packages/core/lib/index.cjs +7 -0
  339. package/source/packages/scramjet/packages/core/lib/index.d.ts +8 -0
  340. package/source/packages/scramjet/packages/core/package.json +69 -0
  341. package/source/packages/scramjet/packages/core/rewriter/Cargo.lock +1985 -0
  342. package/source/packages/scramjet/packages/core/rewriter/Cargo.toml +20 -0
  343. package/source/packages/scramjet/packages/core/rewriter/coverage-macro/Cargo.toml +15 -0
  344. package/source/packages/scramjet/packages/core/rewriter/coverage-macro/src/analyze.rs +1118 -0
  345. package/source/packages/scramjet/packages/core/rewriter/coverage-macro/src/ast_table.rs +927 -0
  346. package/source/packages/scramjet/packages/core/rewriter/coverage-macro/src/helper_index.rs +556 -0
  347. package/source/packages/scramjet/packages/core/rewriter/coverage-macro/src/lib.rs +455 -0
  348. package/source/packages/scramjet/packages/core/rewriter/coverage-macro/src/reachability.rs +85 -0
  349. package/source/packages/scramjet/packages/core/rewriter/coverage-macro/src/templates.rs +192 -0
  350. package/source/packages/scramjet/packages/core/rewriter/coverage-macro/src/witness.rs +597 -0
  351. package/source/packages/scramjet/packages/core/rewriter/js/Cargo.toml +18 -0
  352. package/source/packages/scramjet/packages/core/rewriter/js/src/cfg.rs +45 -0
  353. package/source/packages/scramjet/packages/core/rewriter/js/src/changes.rs +379 -0
  354. package/source/packages/scramjet/packages/core/rewriter/js/src/lib.rs +171 -0
  355. package/source/packages/scramjet/packages/core/rewriter/js/src/rewrite.rs +290 -0
  356. package/source/packages/scramjet/packages/core/rewriter/js/src/visitor.rs +967 -0
  357. package/source/packages/scramjet/packages/core/rewriter/native/Cargo.toml +22 -0
  358. package/source/packages/scramjet/packages/core/rewriter/native/src/main.rs +166 -0
  359. package/source/packages/scramjet/packages/core/rewriter/native/src/rewriter.rs +161 -0
  360. package/source/packages/scramjet/packages/core/rewriter/native/src/test_runner.rs +156 -0
  361. package/source/packages/scramjet/packages/core/rewriter/rust-toolchain.toml +5 -0
  362. package/source/packages/scramjet/packages/core/rewriter/rustfmt.toml +2 -0
  363. package/source/packages/scramjet/packages/core/rewriter/transform/Cargo.toml +16 -0
  364. package/source/packages/scramjet/packages/core/rewriter/transform/src/lib.rs +242 -0
  365. package/source/packages/scramjet/packages/core/rewriter/transform/src/transform.rs +123 -0
  366. package/source/packages/scramjet/packages/core/rewriter/wasm/Cargo.toml +22 -0
  367. package/source/packages/scramjet/packages/core/rewriter/wasm/build.sh +128 -0
  368. package/source/packages/scramjet/packages/core/rewriter/wasm/src/error.rs +56 -0
  369. package/source/packages/scramjet/packages/core/rewriter/wasm/src/jsr.rs +125 -0
  370. package/source/packages/scramjet/packages/core/rewriter/wasm/src/lib.rs +144 -0
  371. package/source/packages/scramjet/packages/core/src/Tap.ts +166 -0
  372. package/source/packages/scramjet/packages/core/src/client/client.ts +916 -0
  373. package/source/packages/scramjet/packages/core/src/client/dom/attr.ts +94 -0
  374. package/source/packages/scramjet/packages/core/src/client/dom/beacon.ts +11 -0
  375. package/source/packages/scramjet/packages/core/src/client/dom/cookie.ts +21 -0
  376. package/source/packages/scramjet/packages/core/src/client/dom/css.ts +106 -0
  377. package/source/packages/scramjet/packages/core/src/client/dom/document.ts +140 -0
  378. package/source/packages/scramjet/packages/core/src/client/dom/element.ts +783 -0
  379. package/source/packages/scramjet/packages/core/src/client/dom/fontface.ts +11 -0
  380. package/source/packages/scramjet/packages/core/src/client/dom/fragments.ts +32 -0
  381. package/source/packages/scramjet/packages/core/src/client/dom/history.ts +35 -0
  382. package/source/packages/scramjet/packages/core/src/client/dom/open.ts +59 -0
  383. package/source/packages/scramjet/packages/core/src/client/dom/origin.ts +13 -0
  384. package/source/packages/scramjet/packages/core/src/client/dom/performance.ts +50 -0
  385. package/source/packages/scramjet/packages/core/src/client/dom/protocol.ts +17 -0
  386. package/source/packages/scramjet/packages/core/src/client/dom/storage.ts +107 -0
  387. package/source/packages/scramjet/packages/core/src/client/entry.ts +12 -0
  388. package/source/packages/scramjet/packages/core/src/client/events.ts +10 -0
  389. package/source/packages/scramjet/packages/core/src/client/helpers.ts +7 -0
  390. package/source/packages/scramjet/packages/core/src/client/index.ts +7 -0
  391. package/source/packages/scramjet/packages/core/src/client/location.ts +139 -0
  392. package/source/packages/scramjet/packages/core/src/client/shared/antiantidebugger.ts +20 -0
  393. package/source/packages/scramjet/packages/core/src/client/shared/blob.ts +35 -0
  394. package/source/packages/scramjet/packages/core/src/client/shared/caches.ts +31 -0
  395. package/source/packages/scramjet/packages/core/src/client/shared/chrome.ts +90 -0
  396. package/source/packages/scramjet/packages/core/src/client/shared/err.ts +55 -0
  397. package/source/packages/scramjet/packages/core/src/client/shared/error.ts +42 -0
  398. package/source/packages/scramjet/packages/core/src/client/shared/eval.ts +40 -0
  399. package/source/packages/scramjet/packages/core/src/client/shared/event.ts +215 -0
  400. package/source/packages/scramjet/packages/core/src/client/shared/function.ts +59 -0
  401. package/source/packages/scramjet/packages/core/src/client/shared/import.ts +46 -0
  402. package/source/packages/scramjet/packages/core/src/client/shared/indexeddb.ts +18 -0
  403. package/source/packages/scramjet/packages/core/src/client/shared/opfs.ts +27 -0
  404. package/source/packages/scramjet/packages/core/src/client/shared/postmessage.ts +113 -0
  405. package/source/packages/scramjet/packages/core/src/client/shared/realm.ts +26 -0
  406. package/source/packages/scramjet/packages/core/src/client/shared/requests/eventsource.ts +17 -0
  407. package/source/packages/scramjet/packages/core/src/client/shared/requests/fetch.ts +67 -0
  408. package/source/packages/scramjet/packages/core/src/client/shared/requests/websocket.ts +389 -0
  409. package/source/packages/scramjet/packages/core/src/client/shared/requests/xmlhttprequest.ts +163 -0
  410. package/source/packages/scramjet/packages/core/src/client/shared/settimeout.ts +20 -0
  411. package/source/packages/scramjet/packages/core/src/client/shared/sourcemaps.ts +203 -0
  412. package/source/packages/scramjet/packages/core/src/client/shared/worker.ts +72 -0
  413. package/source/packages/scramjet/packages/core/src/client/shared/wrap.ts +197 -0
  414. package/source/packages/scramjet/packages/core/src/client/singletonbox.ts +52 -0
  415. package/source/packages/scramjet/packages/core/src/client/worker/importScripts.ts +13 -0
  416. package/source/packages/scramjet/packages/core/src/fetch/body.ts +93 -0
  417. package/source/packages/scramjet/packages/core/src/fetch/fetch.ts +323 -0
  418. package/source/packages/scramjet/packages/core/src/fetch/headers.ts +528 -0
  419. package/source/packages/scramjet/packages/core/src/fetch/index.ts +198 -0
  420. package/source/packages/scramjet/packages/core/src/fetch/parse.ts +149 -0
  421. package/source/packages/scramjet/packages/core/src/fetch/util.ts +81 -0
  422. package/source/packages/scramjet/packages/core/src/global.d.ts +32 -0
  423. package/source/packages/scramjet/packages/core/src/index.ts +78 -0
  424. package/source/packages/scramjet/packages/core/src/log.ts +117 -0
  425. package/source/packages/scramjet/packages/core/src/shared/cookie.ts +199 -0
  426. package/source/packages/scramjet/packages/core/src/shared/headers.ts +76 -0
  427. package/source/packages/scramjet/packages/core/src/shared/htmlRules.ts +154 -0
  428. package/source/packages/scramjet/packages/core/src/shared/index.ts +79 -0
  429. package/source/packages/scramjet/packages/core/src/shared/mime.ts +234 -0
  430. package/source/packages/scramjet/packages/core/src/shared/refresh.ts +164 -0
  431. package/source/packages/scramjet/packages/core/src/shared/rewriters/css.ts +67 -0
  432. package/source/packages/scramjet/packages/core/src/shared/rewriters/html.ts +603 -0
  433. package/source/packages/scramjet/packages/core/src/shared/rewriters/index.ts +6 -0
  434. package/source/packages/scramjet/packages/core/src/shared/rewriters/js.ts +158 -0
  435. package/source/packages/scramjet/packages/core/src/shared/rewriters/url.ts +248 -0
  436. package/source/packages/scramjet/packages/core/src/shared/rewriters/wasm.ts +58 -0
  437. package/source/packages/scramjet/packages/core/src/shared/rewriters/worker.ts +37 -0
  438. package/source/packages/scramjet/packages/core/src/shared/set-cookie-parser.ts +195 -0
  439. package/source/packages/scramjet/packages/core/src/shared/snapshot.ts +245 -0
  440. package/source/packages/scramjet/packages/core/src/shared/sniffEncoding.ts +1061 -0
  441. package/source/packages/scramjet/packages/core/src/shared/util.ts +35 -0
  442. package/source/packages/scramjet/packages/core/src/symbols.ts +9 -0
  443. package/source/packages/scramjet/packages/core/src/sync.ts +63 -0
  444. package/source/packages/scramjet/packages/core/src/types.ts +66 -0
  445. package/source/packages/scramjet/packages/core/src/typesEntry.ts +6 -0
  446. package/source/packages/scramjet/packages/core/tsconfig.json +21 -0
  447. package/source/packages/scramjet/packages/rpc/index.ts +100 -0
  448. package/source/packages/scramjet/packages/rpc/package.json +7 -0
  449. package/source/packages/scramjet/packages/utils/package.json +39 -0
  450. package/source/packages/scramjet/packages/utils/src/alwaysLastBubble.ts +172 -0
  451. package/source/packages/scramjet/packages/utils/src/catch-escaped-links.ts +34 -0
  452. package/source/packages/scramjet/packages/utils/src/event-handler-plugin.ts +86 -0
  453. package/source/packages/scramjet/packages/utils/src/global.d.ts +8 -0
  454. package/source/packages/scramjet/packages/utils/src/http-cache-plugin.ts +475 -0
  455. package/source/packages/scramjet/packages/utils/src/index.ts +26 -0
  456. package/source/packages/scramjet/packages/utils/src/link-handler-plugin.ts +75 -0
  457. package/source/packages/scramjet/packages/utils/src/typesEntry.ts +5 -0
  458. package/source/packages/scramjet/packages/utils/src/url-watcher.ts +37 -0
  459. package/source/packages/scramjet/packages/utils/src/version.ts +40 -0
  460. package/source/packages/scramjet/packages/utils/tsconfig.json +11 -0
  461. package/source/packages/scramjet/patches/htmlparser2@12.0.0.patch +124 -0
  462. package/source/packages/scramjet/rspack.config.ts +613 -0
  463. package/source/packages/scramjet/tsconfig.json +11 -0
  464. package/source/packages/tracker-protocol/package.json +31 -0
  465. package/source/packages/tracker-protocol/src/index.ts +745 -0
  466. package/source/packages/tracker-protocol/tsconfig.json +18 -0
  467. package/source/pnpm-lock.yaml +12018 -0
  468. package/source/pnpm-workspace.yaml +31 -0
  469. package/source/rspack.config.ts +103 -0
  470. package/source/scripts/update-adblock-assets.mjs +164 -0
  471. package/third_party/filter-lists/LICENSE-CC-BY-SA-3.0.txt +359 -0
  472. package/third_party/filter-lists/LICENSE-GPL-3.0.txt +674 -0
  473. package/third_party/filter-lists/LICENSE-MPL-2.0.txt +375 -0
  474. package/third_party/filter-lists/README.md +24 -0
  475. package/third_party/filter-lists/easylist.txt +83088 -0
  476. package/third_party/filter-lists/easyprivacy.txt +56361 -0
  477. package/third_party/filter-lists/manifest.json +56 -0
  478. package/third_party/filter-lists/ublock-filters.txt +10937 -0
  479. package/third_party/filter-lists/ublock-privacy.txt +3209 -0
  480. package/third_party/filter-lists/ublock-resources.json +1852 -0
  481. package/third_party/filter-lists/ublock-unbreak.txt +6026 -0
@@ -0,0 +1,167 @@
1
+ declare const DREAMLAND: unique symbol;
2
+ declare const NO_CHANGE: unique symbol;
3
+
4
+ declare const COMMA_TOKEN: unique symbol;
5
+
6
+ type ObjectProp = string | symbol;
7
+
8
+ type StatefulListener = (newValue: any, prop: ObjectProp) => void;
9
+ type Stateful<T extends object> = T & {
10
+ readonly [COMMA_TOKEN]: unique symbol;
11
+ };
12
+ declare let createState: <T extends object>(target: T) => Stateful<T>;
13
+ declare let stateListen: <T extends object>(state: Stateful<T>, func: StatefulListener) => void;
14
+ declare let stateProxy: <T extends object, Key extends keyof T & ObjectProp>(state: Stateful<T>, key: Key, ptr: Pointer<T[Key]>) => void;
15
+ declare let isStateful: (val: any) => val is Stateful<any>;
16
+
17
+ type PointerListener<T> = (val: T) => void;
18
+ type Truthy<T> = NonNullable<Exclude<T, false | 0 | "" | null | undefined>>;
19
+ type Falsy<T> = Extract<T, false | 0 | "" | null | undefined>;
20
+ declare class Pointer<T> {
21
+ get value(): T;
22
+ set value(val: T);
23
+ [DREAMLAND](): ReadonlyArray<Pointer<any>> | undefined;
24
+ [Symbol.toPrimitive](): symbol;
25
+ listen(func: PointerListener<T>): void;
26
+ zip<Ptrs extends ReadonlyArray<Pointer<any>>>(...pointers: Ptrs): Pointer<[
27
+ T,
28
+ ...{
29
+ [Idx in keyof Ptrs]: Ptrs[Idx] extends Pointer<infer Val> ? Val : never;
30
+ }
31
+ ]>;
32
+ and<R>(then: R | ((val: Truthy<T>) => R)): Pointer<Falsy<T> | R>;
33
+ or<R>(then: R | ((val: Falsy<T>) => R)): Pointer<Truthy<T> | R>;
34
+ not(): Pointer<boolean>;
35
+ map<U>(func: (val: T) => U): Pointer<U>;
36
+ map<U>(func: (val: T) => U, reverse: (val: U) => T | typeof NO_CHANGE): Pointer<U>;
37
+ mapEach<U, R>(this: Pointer<ArrayLike<U>>, func: (val: U, i: number) => R): Pointer<R[]>;
38
+ constrain(to: any): this;
39
+ unconstrain(to: any): void;
40
+ }
41
+
42
+ declare global {
43
+ function use<T>(stateful: T): Pointer<T>;
44
+ function use<T extends any[]>(...statefuls: T): Pointer<T>;
45
+ function use(template: TemplateStringsArray, ...params: any[]): Pointer<string>;
46
+ }
47
+
48
+ type CssInit = {
49
+ _strings: TemplateStringsArray;
50
+ _funcs: (((state: any) => any) | string)[];
51
+ _rewrite: typeof _rewrite;
52
+ };
53
+ declare let css: <T extends ComponentFn<any, any>>(_strings: TemplateStringsArray, ..._funcs: (((state: ComponentFnState<T>) => any) | string)[]) => CssInit;
54
+ declare let _rewrite: (style: HTMLStyleElement, css: string, tag: string) => void;
55
+
56
+ type ComponentChild = Node | string | number | boolean | null | undefined | ComponentChild[] | Pointer<ComponentChild>;
57
+ type BannedPropNames = "cx" | "root";
58
+ type BanProps<T extends object> = {
59
+ [K in keyof T]: K extends BannedPropNames ? never : T[K];
60
+ };
61
+ type MapChildren<ChildrenTy> = ChildrenTy extends Array<any> ? ChildrenTy : [ChildrenTy];
62
+ type _StateProps<Combined extends BanProps<Combined>> = {
63
+ [K in keyof Combined]: K extends "children" ? MapChildren<Combined[K]> : Combined[K];
64
+ } & {
65
+ root: JSX.Element;
66
+ cx: ComponentCx<_StateProps<Combined>>;
67
+ };
68
+ type StateProps<Props extends BanProps<Props>, This extends BanProps<This>> = _StateProps<Props & This>;
69
+ type ComponentStateProps<T extends Component<any, any>> = T extends Component<infer Props, infer This> ? StateProps<Props, This> : never;
70
+ type FC<Props extends BanProps<Props> = {}, This extends BanProps<This> = {}> = Stateful<StateProps<Props, This>>;
71
+ type ComponentFn<Props extends BanProps<Props> = {}, This extends BanProps<This> = {}> = {
72
+ ["typescript hackfix"](this: FC<Props, This>): HTMLElement;
73
+ }["typescript hackfix"];
74
+ type Component<Props extends BanProps<Props> = {}, This extends BanProps<This> = {}> = ComponentFn<Props, This> & {
75
+ style?: CssInit;
76
+ };
77
+ type ComponentCx<StatefulProps extends {
78
+ [COMMA_TOKEN]?: never;
79
+ } & object> = {
80
+ state: Stateful<StatefulProps>;
81
+ id?: string;
82
+ init?: () => Promise<any> | any;
83
+ mount?: () => Promise<any> | any;
84
+ } & {
85
+ [K in keyof DLComponentContextExtraProps]?: DLComponentContextExtraProps[K];
86
+ };
87
+ type ComponentFnState<T extends Component<any, any>> = T extends ComponentFn<infer Props, infer This> ? FC<Props, This> : never;
88
+ type ComponentState<T extends Component<any, any>> = T extends Component<infer Props, infer This> ? FC<Props, This> : never;
89
+ type ComponentContext<T extends Component<any, any>> = ComponentCx<ComponentStateProps<T>>;
90
+ type ComponentInstance<T extends Component<any, any>> = HTMLElement & {
91
+ $: ComponentContext<T>;
92
+ };
93
+ type IntrinsicProps<ElementType extends Element> = {
94
+ this?: Pointer<ElementType | Element | null | undefined>;
95
+ children?: any;
96
+ [key: `class:${string}`]: Pointer<boolean> | boolean;
97
+ [key: `on:${string}`]: (e: any) => void;
98
+ [key: string]: any;
99
+ };
100
+ type DLElementTagNames = HTMLElementTagNameMap & HTMLElementDeprecatedTagNameMap & Pick<SVGElementTagNameMap, Exclude<keyof SVGElementTagNameMap, keyof HTMLElementTagNameMap>>;
101
+ type DLElementNameToElement<T extends string> = T extends keyof DLElementTagNames ? DLElementTagNames[T] : HTMLElement;
102
+ type GlobalElement = Element;
103
+ type MappedProps<Props> = {
104
+ [Key in keyof Props]: Props[Key] | Pointer<Props[Key]>;
105
+ };
106
+ declare namespace JSX {
107
+ type IntrinsicElements = {
108
+ [El in keyof DLElementTagNames]: IntrinsicProps<DLElementTagNames[El]>;
109
+ } & {
110
+ [element: string]: IntrinsicProps<GlobalElement>;
111
+ };
112
+ type ElementType = keyof IntrinsicElements | Component<any, any>;
113
+ type Element = HTMLElement;
114
+ type LibraryManagedAttributes<C, _> = C extends Component<infer Props, any> ? MappedProps<Props> : never;
115
+ }
116
+ import DLJSX = JSX;
117
+ declare global {
118
+ interface DLComponentContextExtraProps {
119
+ }
120
+ namespace JSX {
121
+ type IntrinsicElements = DLJSX.IntrinsicElements;
122
+ type ElementType = DLJSX.ElementType;
123
+ type Element = DLJSX.Element;
124
+ type LibraryManagedAttributes<A, B> = DLJSX.LibraryManagedAttributes<A, B>;
125
+ }
126
+ }
127
+
128
+ type Delegate<T> = {
129
+ listen: (callback: (value: T) => void) => void;
130
+ (value: T): void;
131
+ };
132
+ declare let createDelegate: <T>() => Delegate<T>;
133
+
134
+ declare function _jsx<T extends Component<any, any>>(init: T, props: Record<string, any> | null, key?: string): ComponentInstance<T>;
135
+ declare function _jsx<T extends string>(init: T, props: Record<string, any> | null, key?: string): DLElementNameToElement<T>;
136
+ declare function _h<T extends Component<any, any>>(init: T, props: Record<string, any> | null, ...children: ComponentChild[]): ComponentInstance<T>;
137
+ declare function _h<T extends string>(init: T, props: Record<string, any> | null, ...children: ComponentChild[]): DLElementNameToElement<T>;
138
+ declare let h: typeof _h;
139
+ declare let jsx: typeof _jsx;
140
+ declare let Fragment: Component<{
141
+ children?: ComponentChild;
142
+ }>;
143
+
144
+ type NodeConstructor = (text?: string) => any;
145
+ type CssUidGenerator = (init: Component<any, any>) => string;
146
+ type IsHydrating = (el: HTMLElement) => boolean;
147
+ type SsrTransformCallback = <T extends Component<any, any>>(init: T, state: ComponentState<T>, cx?: ComponentContext<T>) => void;
148
+ type CxList = ComponentContext<Component<any, any>>[];
149
+ type CbRetList = (Promise<any> | any)[];
150
+ type DomImpl = [
151
+ document: any,
152
+ Node: any,
153
+ new_Text: NodeConstructor,
154
+ new_Comment: NodeConstructor,
155
+ gencssuid: CssUidGenerator,
156
+ cssinfo: Map<any, any>,
157
+ hydrating?: IsHydrating,
158
+ ssrTransform?: SsrTransformCallback,
159
+ cxs?: CxList,
160
+ inits?: CbRetList,
161
+ mounts?: CbRetList
162
+ ];
163
+ declare let getDom: () => DomImpl;
164
+ declare let setDomImpl: (impl: () => DomImpl) => void;
165
+
166
+ export { DREAMLAND, Fragment, JSX, NO_CHANGE, Pointer, createDelegate, createState, css, getDom as domImpl, h, isStateful, jsx, setDomImpl, stateListen, stateProxy };
167
+ export type { Component, ComponentChild, ComponentContext, ComponentInstance, ComponentState, Delegate, DomImpl, FC, Stateful };
@@ -0,0 +1,2 @@
1
+ let e,t=(e,t)=>typeof e==t,r=(e,t)=>e instanceof t,l="string",s="function",i="replace",n="slice",f="length",o="push",u="includes",a="selectorText",h="cssRules",c="filter",_="value",g="listen",p="parentNode",w="nextSibling",d="classList",I="startsWith",m="setAttribute",v="addEventListener",S="constrain",$=globalThis,y=Symbol,A=Array,b=y.toPrimitive,[P,C,x,k,E,R,W,M,j,L,T]=A.from(A(11),y),N=e=>new Map(e),O=()=>new WeakMap,z=e=>new WeakRef(e),q=e=>e.deref(),B=()=>{throw Error("dl")},D=N([[L,/\[\s*(?:(?<ns>\*|[-\w\P{ASCII}]*)\|)?(?<nm>[-\w\P{ASCII}]+)\s*(?:(?<op>\W?=)\s*(?<val>.+?)\s*(\s(?<case>[iIsS]))?\s*)?\]/gu],[E,/#(?<nm>[-\w\P{ASCII}]+)/gu],[R,/\.(?<nm>[-\w\P{ASCII}]+)/gu],[x,/\s*,\s*/g],[k,/\s*[\s>+~]\s*/g],[W,/::(?<nm>[-\w\P{ASCII}]+)(?:\((?<arg>¶*)\))?/gu],[M,/:(?<nm>[-\w\P{ASCII}]+)(?:\((?<arg>¶*)\))?/gu],[j,/(?:(?<ns>\*|[-\w\P{ASCII}]*)\|)?\*/gu],[T,/(?:(?<ns>\*|[-\w\P{ASCII}]*)\|)?(?<nm>[-\w\P{ASCII}]+)/gu]]),F=e=>e==M||e==W?RegExp(D.get(e).source[i]("¶","."),"gu"):D.get(e),G=(e,t,r=0)=>e[n](t,e.split("").findIndex((e,l)=>l>=t&&0==(r+="("==e?1:")"==e?-1:0))+1||e[f]),H=/(['"])([^\\\n]*?)\1/g,J=e=>{if(""===(e=e.trim()))return[];let r=[];e=(e=e[i](/\\./g,(e,t)=>(r[o]({t:e,l:t}),"".repeat(e[f]))))[i](H,(e,t,l,s)=>(r[o]({t:e,l:s}),`${t}${"".repeat(l[f])}${t}`));{let t,l=0;for(;(t=e.indexOf("(",l))>-1;){let s=G(e,t);r[o]({t:s,l:t}),e=`${e[n](0,t)}(${"¶".repeat(s[f]-2)})${e[n](t+s[f])}`,l=t+s[f]}}let s=(e=>{if(!e)return[];let r=[e];for(let[e,s]of D.entries())for(let i=0;i<r[f];i++){let u=r[i];if(!t(u,l))continue;s.lastIndex=0;let a=s.exec(u);if(!a)continue;let h=a.index-1,c=[],_=a[0],g=u[n](0,h+1);g&&c[o](g),c[o]({...a.groups,i:e,o:_});let p=u[n](h+_[f]+1);p&&c[o](p),r.splice(i,1,...c)}let s=0;for(let e of r)t(e,l)?B():(e.u=[s,s+=e.o[f]],e.i!=k&&e.i!=x||(e.o=e.o.trim()||" "));return r})(e),u=[];for(let e of r.reverse())for(let t of s){let{l:r,t:l}=e;if(t.u[0]>r||r+l[f]>t.u[1])continue;let{o:s}=t,i=r-t.u[0];t.o=s[n](0,i)+l+s[n](i+l[f]),t.o!==s&&u[o](t)}for(let e of u){let t=F(e.i);t||B(),t.lastIndex=0;let r=t.exec(e.o);r||B(),Object.assign(e,r.groups)}return s},K=e=>e.map(e=>e.o).join(""),Q=/*@__NO_SIDE_EFFECTS__*/(e,...t)=>({h:e,_:t,p:Y}),U="dlc",V=()=>[...Array(16)].reduce(e=>e+Math.random().toString(36)[2],""),X=":global(",Y=(e,t,r)=>{let l=J(`:where(.${r})`),s=`:where(._${V()} `,n=(e,t)=>{for(let r=0;r<e[f];r++){let s,i,o,a=e[r];if(a.i==M&&a.arg){let e="global"==a.nm,l=n(J(a.arg),e||t);e?(s=r,i=1,o=l):(a.arg=K(l),a.o=`:${a.nm}(${a.arg})`)}else if(!t&&(r===e[f]-1||[k,x][u](e[r+1].i))){for(s=r;s>0&&e[s].i==W;)s--;s++,i=0,o=l}o&&(e.splice(s,i,...o),r+=o[f])}return e},o=e=>[...e].map(e=>(e[a]&&(e[a]=K(n(J(e[a].replaceAll(s,X))))[i](/:scope/g,`.${r}.${U}`)),e[h]&&o(e[h]),e));e.innerText=t.replaceAll(X,s),o(e.sheet[h])},Z="dlcss-",ee=N(),te=()=>[$.document,$.Node,e=>new Text(e),e=>new Comment(e),e=>e.name+"-"+V(),ee,()=>!1],re=e=>{te=e},le=O(),se=e=>le.get(e),ie=(e,t,r)=>{e.I.map(e=>e(r,t)),(e.m=e.m[c](q)).map(e=>q(e)(r,t))},ne=e=>{let t={I:[],m:[],v:{}},r=new Proxy(e,{get(e,l,s){if(be){let e=y(),t={S:r,A:[l]};return Ae.set(e,t),new Proxy({},{get:(r,l,s)=>l===b?()=>e:(t.A[o](l),s)})}return t.v[l]?t.v[l][_]:Reflect.get(e,l,s)},set:(e,r,l,s)=>((t.v[r]?t.v[r].P(l):Reflect.set(e,r,l,s))&&ie(t,r,l),!0)});return le.set(r,t),r},fe=(e,t)=>{se(e).I[o](t)},oe=(e,t,r)=>{se(e).v[t]=r,r[g](r=>ie(se(e),t,r))},ue=e=>!!se(e),ae=(e,t,l,s)=>{let[,i,n,f,,,a]=te();if([null,void 0,!1,!0][u](e))return[f()];if(r(e,Se)){let r,s=f("["),i=f("]");return ye(e,s,n=>{if(r&&!s[p])return;let f=ae(n,t,l,e.C),a=te()[6];if(!a?.(t)&&r){let e=[];for(let t=s[w];t&&t!==i;t=t[w])e[o](t);let r=N(e.map((e,t)=>[e,t])),l=f.map(e=>r.get(e))[c](e=>e),n=N((e=>{let t,r=[0],l=[],s=1,i=[];for(let t in e){let i,n,f=1,o=s+1;for(;o>f;)i=f+Math.floor((o-f)/2),e[r[i]]<e[t]?f=i+1:o=i;n=f,l[t]=r[n-1],r[n]=+t,n>s&&(s=n)}t=r[s];for(let r=s-1;r>=0;r--)i[r]=e[t],t=l[t];return i})(l).map(t=>[e[t],,])),a=s;f.map(e=>{r.has(e)&&n.has(e)||t.insertBefore(e,a[w]),a=e}),e.map(e=>!f[u](e)&&e[p]===t&&t.removeChild(e))}r=f}),[s,...a?.(t)?[]:r,i]}if(r(e,i)){let t,r=e=>{if(t=e[d]){let i=[...t],n=i.find(e=>e[I](Z));if(i.find(e=>e==U))return;n?s&&n!==s&&(t.remove(n),t.add(s)):t.add(s||l),[...e.childNodes].map(r)}};return(s||l)&&r(e),[e]}return r(e,A)?e.flatMap(e=>ae(e,t,l,s)):[n(e)]},he="createElement",ce=(e,t,...r)=>_e(e,{children:r,...t}),_e=(i,u,a)=>{let[h,g,,,w,S,$,y,b=[],P=[],C=[]]=te(),x=e?.id,{children:k,...E}=u;if(i===ge)return k;a&&(E.key=a),k||=[];let R,W=r(k,A)?k:[k],M=(e,t,r)=>ye(e,R,e=>{void 0===e?t.removeProperty(r):t.setProperty(r,e)});if(t(i,s)){let s=ne({children:W}),n=S.get(i);for(let e in E){let t=E[e];r(t,Se)?oe(s,e,t):s[e]=t}y?.(i,s);for(let e of W)r(e,Se)&&(e.C||=x);if(i.style){let e=i.style,r=h[he]("style");if(!n){n={k:Z+w(i),R:[]};let s="";for(let r=0;r<e.h[f];r++)if(s+=e.h[r],r+1<e.h[f]){let i=e._[r];if(t(i,l))s+=i;else{let e=V();s+=`var(--${e})`,n.R[o]([e,i])}}$?.(r)||(r[m](U,i.name),r[m](Z+"id",n.k),h.head.append(r),e.p(r,s,n.k)),S.set(i,n)}}let u={state:s,id:n?.k},a=e;if(s.cx=u,e=u,R=i.call(s),e=a,s.root=R,r(R,g)&&(R.$=u,R[d].add(U),n))for(let[e,t]of n.R){let r="--"+e,l=R.style;M(t(u.state),l,r)}y?.(i,s,u),e=u,P[o](u.init?.()),r(R,g)&&$?.(R)?b[o](u):$&&C[o](u.mount?.()),e=a}else{let e=E?.xmlns,l=(e,t)=>{$?.(R)||(void 0===t||!1===t?R.removeAttribute(e):R[m](e,t))};R=h[he+(e?"NS":"")](e||i,e&&i,E,W);for(let e of W)ae(e,R,x).map(e=>{e[p]!==R&&R.appendChild(e)});let s=R[d];for(let e in E){let i=E[e],o=[];if("this"===e)i[_]=R;else if(e===_||"checked"===e)ye(i,R,t=>{l(e,t),R[e]=t},()=>{R[v]("input",()=>i[_]=R[e])});else if("class"===e)ye(i,R,e=>{let t=e.split(" ")[c](e=>e[f]);s.remove(...o),s.add(...t),o=t});else if(e[I]("on:"))R[v](e[n](3),i);else if(e[I]("class:"))ye(i,R,t=>{s[t?"add":"remove"](e[n](6))});else if(e[I]("attr:"))ye(i,R,t=>{$?.(R)||(R[e[n](5)]=t)});else if("style"==e&&t(i,"object")&&!r(i,Se))for(let e in i)M(i[e],R.style,e);else ye(i,R,t=>l(e,t))}x&&![...s].find(e=>e[I](Z))&&s.add(x),e&&(R.innerHTML=R.innerHTML)}return R},ge=e=>0,pe=O(),we=O(),de=e=>$e(e.W),Ie=(e,t)=>t.reduce((e,t)=>e[de(t)],e),me=e=>new Se({...e,I:[],m:[]}),ve=(e,t)=>{let l=e.get(t);return r(l,Se)?l:l?me({i:0,S:l.S,A:l.A.map(t=>({W:ve(e,t)}))}):t},Se=class{k=y();M=this.j.bind(this);C;get L(){return we.get(this)}T(e,t,r){let l=r.S,s=t.A[e-1]?.N||t.S;var i,f;r.N=Ie(t.S,t.A[n](0,e))[de(r)],r.S=ue(s)?s:null,l!==r.S&&(l&&(i=l,f=r.O,se(i).m=se(i).m[c](e=>e!==f)),r.S&&((e,t)=>{se(e).m[o](t)})(r.S,r.O))}q(e,t,r){let l=this.L;if(!r||r===de(l.A[e])){for(;e<l.A[f];e++)this.T(e,l,l.A[e]);this.j()}}j(){let e=this.L;e.I.map(e=>e(this[_])),(e.m=e.m[c](q)).map(e=>q(e)(this[_]))}constructor(t){we.set(this,t),0==t.i?t.A.map((e,l)=>{e.B=this.q.bind(this,l),e.O=z(e.B),r(e.W,Se)&&e.W.D(e.O),this.T(l,t,e)}):1==t.i?t.L.D(z(this.M)):2==t.i&&t.F.map(e=>e.D(z(this.M))),e&&this[S](e.state)}get[_](){let e=this.L;return 0==e.i?Ie(e.S,e.A):1==e.i?e.G(e.L[_]):2==e.i?e.F.map(e=>e[_]):void 0}P(e){let t,r=this.L;return 0==r.i?(Ie(r.S,r.A[n](0,-1))[de(r.A[r.A[f]-1])]=e,!0):!(1!=r.i||!r.H||(t=r.H(e))===C||(r.L[_]=t,0))}set[_](e){this.P(e)}[P](){return this.L.F}[b](){return be&&Ae.set(this.k,this),this.k}D(e){this.L.m[o](e)}[g](e){this.L.I[o](e)}zip(...e){return me({i:2,F:[this,...e]})}and(e){return this.map(r=>r&&(t(e,s)?e(r):e))}or(e){return this.map(r=>r||(t(e,s)?e(r):e))}not(){return this.map(e=>!e)}map(e,t){return me({i:1,L:this,G:e,H:t})}mapEach(e){return this.map(t=>A.from(t).map(e))}[S](e){return pe.has(e)||pe.set(e,[]),pe.get(e)[o](this),this}unconstrain(e){pe.set(e,pe.get(e)?.[c](e=>e!==this)||[])}},$e=e=>r(e,Se)?e[_]:e,ye=(e,t,l,s)=>{let i=e;r(e,Se)&&(s?.(),e[S](t)[g](e=>i!==e&&(l(e),i=e))),l($e(e))},Ae=N(),be=!1,Pe=(e,...t)=>{let l=t.map(e=>[e,e[b]()]);return be=!1,Ae=N(),l.map(([t,l])=>{let s=ve(e,l);return r(s,Se)?s:t})},Ce=()=>{let t=[],r=r=>((t,r)=>r.map(r=>{let l=e;e=r.J,r.B(t),e=l}))(r,t);return r[g]=r=>{t[o]({B:r,J:e})},r};Object.defineProperty($,"use",{get(){return be=!0,(e,...t)=>{let l=Ae;if(r(e,A)&&"raw"in e)return((e,t)=>{let l=ne({}),s=[];for(let i in e)if(s[o](e[i]),t[i]){let e=t[i];if(r(e,Se)){let t=s[f];e[S](l)[g](e=>{s[t]=e,l.K=s.join("")}),s[o](e[_])}else s[o](e)}return l.K=s.join(""),use(l.K)})(e,Pe(l,...t));let[s,...i]=Pe(l,e,...t);return t[f]?s.zip(...i):s}},configurable:!0});export{P as DREAMLAND,ge as Fragment,C as NO_CHANGE,Se as Pointer,Ce as createDelegate,ne as createState,Q as css,te as domImpl,ce as h,ue as isStateful,_e as jsx,re as setDomImpl,fe as stateListen,oe as stateProxy};
2
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js","sources":["../src/core/jsx/index.ts","../src/core/consts.js","../src/core/utils.ts","../src/core/css/selectorParser.ts","../src/core/css/index.ts","../src/core/jsx/dom.ts","../src/core/state/state.ts","../src/core/jsx/child.ts","../src/core/state/pointers.ts","../src/core/state/use.ts","../src/core/delegate.ts"],"sourcesContent":["import { getDom, CSS_IDENT, CssInfo } from \"./dom\";\nimport { CSS_COMPONENT, genuid } from \"../css\";\nimport {\n\tComponent,\n\tComponentChild,\n\tComponentContext,\n\tComponentInstance,\n\tDLElementNameToElement,\n} from \"./definitions\";\nimport { Pointer, maybeListen } from \"../state/pointers\";\nimport { createState, stateProxy, Stateful } from \"../state/state\";\nimport { DelegateListener } from \"../delegate\";\nimport { mapChild } from \"./child\";\n\nexport let currentComponentCx:\n\t| ComponentContext<Component<any, any>>\n\t| undefined;\nexport let callDelegateListeners = (\n\tvalue: any,\n\tlisteners: DelegateListener<any>[]\n): void =>\n\tlisteners.map((x) => {\n\t\tlet old = currentComponentCx;\n\t\tcurrentComponentCx = x._cx;\n\t\tx._callback(value);\n\t\tcurrentComponentCx = old;\n\t}) as any as void;\n\nlet CREATE_ELEMENT = \"createElement\" as const;\n\nfunction _jsx<T extends Component<any, any>>(\n\tinit: T,\n\tprops: Record<string, any> | null,\n\tkey?: string\n): ComponentInstance<T>;\nfunction _jsx<T extends string>(\n\tinit: T,\n\tprops: Record<string, any> | null,\n\tkey?: string\n): DLElementNameToElement<T>;\nfunction _jsx(\n\tinit: Component<any, any> | string,\n\t_props: Record<string, any> | null,\n\tkey?: string\n): HTMLElement {\n\tlet [\n\t\tDOCUMENT,\n\t\tNODE,\n\t\t,\n\t\t,\n\t\tgenCssUid,\n\t\tcomponentCssInfo,\n\t\thydrating,\n\t\tssrTransform,\n\t\tcxs = [],\n\t\tinits = [],\n\t\tmounts = [],\n\t] = getDom();\n\tlet lastCssIdent = currentComponentCx?.id;\n\n\tdev: {\n\t\tif (![\"string\", \"function\"].includes(typeof init))\n\t\t\tthrow new Error(\"invalid component\");\n\t}\n\n\tlet { children: _children, ...props } = _props!;\n\tif (init === Fragment) return _children;\n\tif (key) props.key = key;\n\t_children ||= [];\n\tlet children = _children instanceof Array ? _children : [_children];\n\n\tlet el: HTMLElement;\n\tlet setStyle = (ptr: Pointer<any>, style: CSSStyleDeclaration, k: string) =>\n\t\tmaybeListen(ptr, el, (v: any) => {\n\t\t\tif (v === undefined) style.removeProperty(k);\n\t\t\telse style.setProperty(k, v);\n\t\t});\n\n\tif (typeof init === \"function\") {\n\t\tlet state = createState({ children }) as Stateful<any>;\n\t\tlet cssInfo: CssInfo | undefined = componentCssInfo.get(init);\n\n\t\tfor (let attr in props) {\n\t\t\tlet val = props[attr];\n\n\t\t\tif (val instanceof Pointer) {\n\t\t\t\tstateProxy(state, attr, val);\n\t\t\t} else {\n\t\t\t\tstate[attr] = val;\n\t\t\t}\n\t\t}\n\n\t\tssrTransform?.(init, state);\n\n\t\tfor (let child of children) {\n\t\t\t// any pointers passed as children were unable to inherit the currentCssIdent.\n\t\t\t// we add the currentCssIdent (which is of the parent) here since we know that the pointer came from the parent.\n\t\t\t// this might break if pointers of elements are being passed as props but oh well\n\t\t\tif (child instanceof Pointer) {\n\t\t\t\tchild._cssIdent ||= lastCssIdent;\n\t\t\t}\n\t\t}\n\n\t\tif (init.style) {\n\t\t\tlet style = init.style;\n\t\t\tlet styleEl = DOCUMENT[CREATE_ELEMENT](\"style\");\n\t\t\tif (!cssInfo) {\n\t\t\t\tcssInfo = { _id: CSS_IDENT + genCssUid(init), _vars: [] };\n\t\t\t\tlet cssString = \"\";\n\n\t\t\t\tfor (let i = 0; i < style._strings.length; i++) {\n\t\t\t\t\tcssString += style._strings[i];\n\t\t\t\t\tif (i + 1 < style._strings.length) {\n\t\t\t\t\t\tlet func = style._funcs[i];\n\t\t\t\t\t\tif (typeof func === \"string\") {\n\t\t\t\t\t\t\tcssString += func;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tlet varid = genuid();\n\t\t\t\t\t\t\tcssString += `var(--${varid})`;\n\t\t\t\t\t\t\tcssInfo._vars.push([varid, func]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (!hydrating?.(styleEl)) {\n\t\t\t\t\tstyleEl.setAttribute(CSS_COMPONENT, init.name);\n\t\t\t\t\tstyleEl.setAttribute(CSS_IDENT + \"id\", cssInfo._id);\n\n\t\t\t\t\tDOCUMENT.head.append(styleEl);\n\t\t\t\t\tstyle._rewrite(styleEl, cssString, cssInfo._id);\n\t\t\t\t}\n\t\t\t\tcomponentCssInfo.set(init, cssInfo);\n\t\t\t}\n\t\t}\n\n\t\tlet cx = {\n\t\t\tstate,\n\t\t\tid: cssInfo?._id,\n\t\t} as ComponentContext<any>;\n\n\t\tlet old = currentComponentCx;\n\t\tstate.cx = cx;\n\t\tcurrentComponentCx = cx;\n\t\tel = init.call(state);\n\t\tcurrentComponentCx = old;\n\t\tstate.root = el;\n\n\t\tif (el instanceof NODE) {\n\t\t\tdev: {\n\t\t\t\tif ((el as ComponentInstance<any>).$ && cssInfo)\n\t\t\t\t\tthrow new Error(\"Wrapper components cannot have CSS\");\n\t\t\t}\n\n\t\t\t(el as ComponentInstance<any>).$ = cx;\n\n\t\t\tel.classList.add(CSS_COMPONENT);\n\n\t\t\tif (cssInfo)\n\t\t\t\tfor (let [varid, func] of cssInfo._vars) {\n\t\t\t\t\tlet id = `--${varid}`;\n\t\t\t\t\tlet style = el.style;\n\t\t\t\t\tsetStyle(func(cx.state), style, id);\n\t\t\t\t}\n\t\t}\n\n\t\tssrTransform?.(init, state, cx);\n\n\t\tcurrentComponentCx = cx;\n\t\tinits.push(cx.init?.());\n\n\t\tif (el instanceof NODE && hydrating?.(el)) cxs.push(cx);\n\t\telse if (hydrating) {\n\t\t\tmounts.push(cx.mount?.());\n\t\t}\n\t\tcurrentComponentCx = old;\n\t} else {\n\t\t// <svg> elemnts need to be created with createElementNS specifically\n\t\t// we know it's an svg element if it has the xmlns attribute\n\t\tlet xmlns = props?.xmlns;\n\t\tlet setAttr = (param: string, val: any) => {\n\t\t\tif (hydrating?.(el)) return;\n\n\t\t\tif (val === undefined || val === false) el.removeAttribute(param);\n\t\t\telse el.setAttribute(param, val);\n\t\t};\n\t\tel = (DOCUMENT as any)[CREATE_ELEMENT + (xmlns ? \"NS\" : \"\")](\n\t\t\txmlns || init,\n\t\t\txmlns && init,\n\t\t\tprops,\n\t\t\tchildren\n\t\t);\n\n\t\tfor (let child of children) {\n\t\t\tlet ret = mapChild(child, el, lastCssIdent);\n\t\t\tret.map((x) => {\n\t\t\t\tif (x.parentNode !== el) el.appendChild(x);\n\t\t\t});\n\t\t}\n\n\t\tlet classList = el.classList;\n\n\t\tfor (let attr in props) {\n\t\t\tlet val = props[attr];\n\t\t\tlet oldClasses: string[] = [];\n\t\t\tif (attr === \"this\") {\n\t\t\t\tval.value = el;\n\t\t\t} else if (attr === \"value\" || attr === \"checked\") {\n\t\t\t\tmaybeListen(\n\t\t\t\t\tval,\n\t\t\t\t\tel,\n\t\t\t\t\t(val: any) => {\n\t\t\t\t\t\tsetAttr(attr, val);\n\t\t\t\t\t\t(el as any)[attr] = val;\n\t\t\t\t\t},\n\t\t\t\t\t() => {\n\t\t\t\t\t\tel.addEventListener(\"input\", () => (val.value = (el as any)[attr]));\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} else if (attr === \"class\") {\n\t\t\t\tmaybeListen(val, el, (val: string) => {\n\t\t\t\t\t// document.createElement(\"div\").classList.{add,remove}(...[]) work\n\t\t\t\t\t// document.createElement(\"div\").classList.{add,remove}(...[\"\"]) throw\n\t\t\t\t\tlet classes = val.split(\" \").filter((x) => x.length);\n\t\t\t\t\tclassList.remove(...oldClasses);\n\t\t\t\t\tclassList.add(...classes);\n\t\t\t\t\toldClasses = classes;\n\t\t\t\t});\n\t\t\t} else if (attr.startsWith(\"on:\")) {\n\t\t\t\tel.addEventListener(attr.slice(3), val);\n\t\t\t} else if (attr.startsWith(\"class:\")) {\n\t\t\t\tmaybeListen(val, el, (val: boolean) => {\n\t\t\t\t\tclassList[val ? \"add\" : \"remove\"](attr.slice(6));\n\t\t\t\t});\n\t\t\t} else if (attr.startsWith(\"attr:\")) {\n\t\t\t\tmaybeListen(val, el, (val: boolean) => {\n\t\t\t\t\tif (!hydrating?.(el)) (el as any)[attr.slice(5)] = val;\n\t\t\t\t});\n\t\t\t} else if (\n\t\t\t\tattr == \"style\" &&\n\t\t\t\ttypeof val == \"object\" &&\n\t\t\t\t!(val instanceof Pointer)\n\t\t\t) {\n\t\t\t\tfor (let k in val) {\n\t\t\t\t\tsetStyle(val[k], el.style, k);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tmaybeListen(val, el, (val) => setAttr(attr, val));\n\t\t\t}\n\t\t}\n\n\t\tif (lastCssIdent && ![...classList].find((x) => x.startsWith(CSS_IDENT)))\n\t\t\tclassList.add(lastCssIdent);\n\n\t\t// all children would need to also be created with the correct namespace if we were doing this properly\n\t\t// this is annoying and expensive bundle size wise, so it's easier to just force a reparse\n\t\t// NOTE: bindings on children of svgs will be lost, and conditionals inside svgs will break\n\t\t// this is fine, no one does that anyway\n\t\t// eslint-disable-next-line no-self-assign\n\t\tif (xmlns) el.innerHTML = el.innerHTML;\n\t}\n\n\treturn el;\n}\n\nfunction _h<T extends Component<any, any>>(\n\tinit: T,\n\tprops: Record<string, any> | null,\n\t...children: ComponentChild[]\n): ComponentInstance<T>;\nfunction _h<T extends string>(\n\tinit: T,\n\tprops: Record<string, any> | null,\n\t...children: ComponentChild[]\n): DLElementNameToElement<T>;\nfunction _h(\n\tinit: Component<any, any> | string,\n\tprops: Record<string, any> | null,\n\t...children: ComponentChild[]\n): HTMLElement {\n\t// @ts-expect-error you suck\n\treturn jsx(init, { children, ...props });\n}\n\nexport let h = _h;\nexport let jsx = _jsx;\n\nexport let Fragment = ((_: any) => 0) as any as Component<{\n\tchildren?: ComponentChild;\n}>;\n","export let [\n\t// dl\n\tDREAMLAND,\n\tNO_CHANGE,\n\t// selectorParser\n\tCOMMA_TOKEN,\n\tCOMBINATOR_TOKEN,\n\tID_TOKEN,\n\tCLASS_TOKEN,\n\tPSEUDO_ELEMENT_TOKEN,\n\tPSEUDO_CLASS_TOKEN,\n\tUNIVERSAL_TOKEN,\n\tATTRIBUTE_TOKEN,\n\tTYPE_TOKEN,\n] = Array.from(Array(11), Symbol);\nexport let MAP = (x) => new Map(x);\nexport let WEAKMAP = () => new WeakMap();\nexport let WEAKREF = (x) => new WeakRef(x);\n","export type ObjectProp = string | symbol;\n\nexport let deref = <T extends object>(x: WeakRef<T>): T | undefined =>\n\tx.deref();\n\nexport let fatal = () => {\n\tthrow new Error(\"dl\");\n};\n\n// https://en.wikipedia.org/wiki/Longest_increasing_subsequence#Efficient_algorithms\n// we're using strings as indices because of `in`. we don't really care if it's a string or a number since it's only gonna be indexing someting\nexport let findLIS = (arr: number[]): number[] => {\n\t// M[i]: index of the smallest tail of the LIS with length i+1\n\tlet tails: number[] = [0];\n\t// P[i]: index of the value before the tail of the LIS with length i+1\n\tlet predecessors: number[] = [];\n\t// L: length of the longest subsequence found so far\n\tlet longest: number = 1;\n\n\tlet out: number[] = [];\n\tlet currentIndex: number;\n\n\tfor (let i in arr) {\n\t\tlet lo = 1;\n\t\tlet hi = longest + 1;\n\t\tlet mid: number;\n\t\tlet newLongest: number;\n\n\t\twhile (lo < hi) {\n\t\t\tmid = lo + Math.floor((hi - lo) / 2);\n\t\t\tif (arr[tails[mid]] >= arr[i]) hi = mid;\n\t\t\telse lo = mid + 1;\n\t\t}\n\n\t\tnewLongest = lo;\n\t\tpredecessors[i] = tails[newLongest - 1];\n\t\ttails[newLongest] = +i;\n\t\tif (newLongest > longest) longest = newLongest;\n\t}\n\n\tcurrentIndex = tails[longest];\n\n\tfor (let j = longest - 1; j >= 0; j--) {\n\t\tout[j] = arr[currentIndex];\n\t\tcurrentIndex = predecessors[currentIndex];\n\t}\n\treturn out;\n};\n","//\n/*\nhttps://github.com/LeaVerou/parsel modified for size\n\nMIT License\n\nCopyright (c) 2020 Lea Verou\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n*/\n\nimport {\n\tCOMMA_TOKEN,\n\tCOMBINATOR_TOKEN,\n\tID_TOKEN,\n\tCLASS_TOKEN,\n\tPSEUDO_ELEMENT_TOKEN,\n\tPSEUDO_CLASS_TOKEN,\n\tUNIVERSAL_TOKEN,\n\tATTRIBUTE_TOKEN,\n\tTYPE_TOKEN,\n\tMAP,\n} from \"../consts\";\nimport { fatal } from \"../utils\";\n\nexport interface BaseToken {\n\treadonly _type: symbol;\n\t_content: string;\n\t_pos: [number, number];\n}\n\nexport interface CommaToken extends BaseToken {\n\t_type: typeof COMMA_TOKEN;\n}\n\nexport interface CombinatorToken extends BaseToken {\n\t_type: typeof COMBINATOR_TOKEN;\n}\n\nexport interface NamedToken extends BaseToken {\n\tnm: string;\n}\n\nexport interface IdToken extends NamedToken {\n\t_type: typeof ID_TOKEN;\n}\n\nexport interface ClassToken extends NamedToken {\n\t_type: typeof CLASS_TOKEN;\n}\n\nexport interface PseudoElementToken extends NamedToken {\n\t_type: typeof PSEUDO_ELEMENT_TOKEN;\n\targ?: string;\n}\n\nexport interface PseudoClassToken extends NamedToken {\n\t_type: typeof PSEUDO_CLASS_TOKEN;\n\targ?: string;\n}\n\nexport interface NamespacedToken extends BaseToken {\n\tns?: string;\n}\n\nexport interface UniversalToken extends NamespacedToken {\n\t_type: typeof UNIVERSAL_TOKEN;\n}\n\nexport interface AttributeToken extends NamespacedToken, NamedToken {\n\t_type: typeof ATTRIBUTE_TOKEN;\n\top?: string;\n\tval?: string;\n\tcase?: \"i\" | \"I\" | \"s\" | \"S\";\n}\n\nexport interface TypeToken extends NamespacedToken, NamedToken {\n\t_type: typeof TYPE_TOKEN;\n}\n\nexport interface UnknownToken extends BaseToken {\n\t_type: never;\n}\n\nexport type Token =\n\t| AttributeToken\n\t| IdToken\n\t| ClassToken\n\t| CommaToken\n\t| CombinatorToken\n\t| PseudoElementToken\n\t| PseudoClassToken\n\t| UniversalToken\n\t| TypeToken\n\t| UnknownToken;\n\nlet TOKENS: Map<symbol, RegExp> = MAP([\n\t[\n\t\tATTRIBUTE_TOKEN,\n\t\t/\\[\\s*(?:(?<ns>\\*|[-\\w\\P{ASCII}]*)\\|)?(?<nm>[-\\w\\P{ASCII}]+)\\s*(?:(?<op>\\W?=)\\s*(?<val>.+?)\\s*(\\s(?<case>[iIsS]))?\\s*)?\\]/gu,\n\t],\n\t[ID_TOKEN, /#(?<nm>[-\\w\\P{ASCII}]+)/gu],\n\t[CLASS_TOKEN, /\\.(?<nm>[-\\w\\P{ASCII}]+)/gu],\n\t[COMMA_TOKEN, /\\s*,\\s*/g], // must be before combinator\n\t[COMBINATOR_TOKEN, /\\s*[\\s>+~]\\s*/g], // this must be after attribute\n\t[PSEUDO_ELEMENT_TOKEN, /::(?<nm>[-\\w\\P{ASCII}]+)(?:\\((?<arg>¶*)\\))?/gu], // this must be before pseudo-class\n\t[PSEUDO_CLASS_TOKEN, /:(?<nm>[-\\w\\P{ASCII}]+)(?:\\((?<arg>¶*)\\))?/gu],\n\t[UNIVERSAL_TOKEN, /(?:(?<ns>\\*|[-\\w\\P{ASCII}]*)\\|)?\\*/gu],\n\t[TYPE_TOKEN, /(?:(?<ns>\\*|[-\\w\\P{ASCII}]*)\\|)?(?<nm>[-\\w\\P{ASCII}]+)/gu], // this must be last\n]);\n\nlet getArgumentPatternByType = (type: symbol) => {\n\tif (type == PSEUDO_CLASS_TOKEN || type == PSEUDO_ELEMENT_TOKEN) {\n\t\treturn new RegExp(TOKENS.get(type)!.source.replace(\"¶\", \".\"), \"gu\");\n\t} else {\n\t\treturn TOKENS.get(type);\n\t}\n};\n\nlet gobbleParens = (text: string, offset: number, nesting = 0): string =>\n\ttext.slice(\n\t\toffset,\n\t\ttext\n\t\t\t.split(\"\")\n\t\t\t.findIndex(\n\t\t\t\t(x, i) =>\n\t\t\t\t\ti >= offset && (nesting += x == \"(\" ? 1 : x == \")\" ? -1 : 0) == 0\n\t\t\t) + 1 || text.length\n\t);\n\nlet tokenizeBy = (text: string): Token[] => {\n\tif (!text) {\n\t\treturn [];\n\t}\n\n\tlet tokens: (Token | string)[] = [text];\n\tfor (let [_type, pattern] of TOKENS.entries()) {\n\t\tfor (let i = 0; i < tokens.length; i++) {\n\t\t\tlet token = tokens[i];\n\t\t\tif (typeof token !== \"string\") {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tpattern.lastIndex = 0;\n\t\t\tlet match = pattern.exec(token);\n\t\t\tif (!match) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tlet from = match.index - 1;\n\t\t\tlet args: typeof tokens = [];\n\t\t\tlet _content = match[0];\n\n\t\t\tlet before = token.slice(0, from + 1);\n\t\t\tif (before) {\n\t\t\t\targs.push(before);\n\t\t\t}\n\n\t\t\targs.push({\n\t\t\t\t...match.groups,\n\t\t\t\t_type,\n\t\t\t\t_content,\n\t\t\t} as any);\n\n\t\t\tlet after = token.slice(from + _content.length + 1);\n\t\t\tif (after) {\n\t\t\t\targs.push(after);\n\t\t\t}\n\n\t\t\ttokens.splice(i, 1, ...args);\n\t\t}\n\t}\n\n\tlet offset = 0;\n\tfor (let token of tokens) {\n\t\tif (typeof token === \"string\") {\n\t\t\tdev: {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Unexpected sequence ${token} found at index ${offset}`\n\t\t\t\t);\n\t\t\t}\n\t\t\tprod: {\n\t\t\t\tfatal();\n\t\t\t}\n\t\t} else {\n\t\t\ttoken._pos = [offset, (offset += token._content.length)];\n\t\t\tif (token._type == COMBINATOR_TOKEN || token._type == COMMA_TOKEN) {\n\t\t\t\ttoken._content = token._content.trim() || \" \";\n\t\t\t}\n\t\t}\n\t}\n\n\treturn tokens as Token[];\n};\n\nlet STRING_PATTERN = /(['\"])([^\\\\\\n]*?)\\1/g;\nlet ESCAPE_PATTERN = /\\\\./g;\nexport let tokenize = (selector: string): Token[] => {\n\t// Prevent leading/trailing whitespaces from being interpreted as combinators\n\tselector = selector.trim();\n\tif (selector === \"\") {\n\t\treturn [];\n\t}\n\n\ttype Replacement = { _value: string; _offset: number };\n\tlet replacements: Replacement[] = [];\n\n\t// Replace escapes with placeholders.\n\tselector = selector.replace(\n\t\tESCAPE_PATTERN,\n\t\t(_value: string, _offset: number) => {\n\t\t\treplacements.push({ _value, _offset });\n\t\t\treturn \"\\uE000\".repeat(_value.length);\n\t\t}\n\t);\n\n\t// Replace strings with placeholders.\n\tselector = selector.replace(\n\t\tSTRING_PATTERN,\n\t\t(_value: string, quote: string, content: string, _offset: number) => {\n\t\t\treplacements.push({ _value, _offset });\n\t\t\treturn `${quote}${\"\\uE001\".repeat(content.length)}${quote}`;\n\t\t}\n\t);\n\n\t// Replace parentheses with placeholders.\n\t{\n\t\tlet pos = 0;\n\t\tlet offset: number;\n\t\twhile ((offset = selector.indexOf(\"(\", pos)) > -1) {\n\t\t\tlet value = gobbleParens(selector, offset);\n\t\t\treplacements.push({ _value: value, _offset: offset });\n\t\t\tselector = `${selector.slice(0, offset)}(${\"¶\".repeat(\n\t\t\t\tvalue.length - 2\n\t\t\t)})${selector.slice(offset + value.length)}`;\n\t\t\tpos = offset + value.length;\n\t\t}\n\t}\n\n\t// Now we have no nested structures and we can parse with regexes\n\tlet tokens = tokenizeBy(selector);\n\n\t// Replace placeholders in reverse order.\n\tlet changedTokens: Token[] = [];\n\tfor (let replacement of replacements.reverse()) {\n\t\tfor (let token of tokens) {\n\t\t\tlet { _offset, _value } = replacement;\n\t\t\tif (\n\t\t\t\t!(token._pos[0] <= _offset && _offset + _value.length <= token._pos[1])\n\t\t\t) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tlet { _content } = token;\n\t\t\tlet tokenOffset = _offset - token._pos[0];\n\t\t\ttoken._content =\n\t\t\t\t_content.slice(0, tokenOffset) +\n\t\t\t\t_value +\n\t\t\t\t_content.slice(tokenOffset + _value.length);\n\t\t\tif (token._content !== _content) {\n\t\t\t\tchangedTokens.push(token);\n\t\t\t}\n\t\t}\n\t}\n\n\t// Update changed tokens.\n\tfor (let token of changedTokens) {\n\t\tlet pattern = getArgumentPatternByType(token._type);\n\t\tif (!pattern) {\n\t\t\tdev: {\n\t\t\t\tthrow new Error(`Unknown token type: ${String(token._type)}`);\n\t\t\t}\n\t\t\tprod: {\n\t\t\t\tfatal();\n\t\t\t}\n\t\t}\n\t\tpattern.lastIndex = 0;\n\t\tlet match = pattern.exec(token._content);\n\t\tif (!match) {\n\t\t\tdev: {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Unable to parse content for ${String(token._type)}: ${token._content}`\n\t\t\t\t);\n\t\t\t}\n\t\t\tprod: {\n\t\t\t\tfatal();\n\t\t\t}\n\t\t}\n\t\tObject.assign(token, match.groups);\n\t}\n\n\treturn tokens;\n};\n\nexport let stringify = (tokens: Token[]): string => {\n\treturn tokens.map((x) => x._content).join(\"\");\n};\n","import {\n\tCOMBINATOR_TOKEN,\n\tCOMMA_TOKEN,\n\tPSEUDO_CLASS_TOKEN,\n\tPSEUDO_ELEMENT_TOKEN,\n} from \"../consts\";\nimport { ComponentFn, ComponentFnState } from \"../jsx/definitions\";\nimport { stringify, Token, tokenize } from \"./selectorParser\";\n\nexport type CssInit = {\n\t_strings: TemplateStringsArray;\n\t_funcs: (((state: any) => any) | string)[];\n\t_rewrite: typeof _rewrite;\n};\n\nexport let css = /*@__NO_SIDE_EFFECTS__*/ <T extends ComponentFn<any, any>>(\n\t_strings: TemplateStringsArray,\n\t..._funcs: (((state: ComponentFnState<T>) => any) | string)[]\n): CssInit => {\n\treturn {\n\t\t_strings,\n\t\t_funcs,\n\t\t_rewrite,\n\t};\n};\n\n// added to every component's root, determines start of scoped css scope\nexport let CSS_COMPONENT = \"dlc\";\n\nexport let genuid = () => {\n\t// prettier-ignore\n\t// dl 0.0.x:\n\t// `${Array(4).fill(0).map(()=>Math.floor(Math.random()*36).toString(36)}).join('')}`\n\treturn [...Array(16)].reduce(a => a + Math.random().toString(36)[2], '')\n\t// the above will occasionally misfire with `undefined` or 0 in the string whenever Math.random returns exactly 0 or really small numbers\n\t// we don't care, it would be very uncommon for that to actually happen 16 times\n};\n\nlet GLOBAL = \":global(\";\nlet _rewrite = (style: HTMLStyleElement, css: string, tag: string) => {\n\tlet where = tokenize(`:where(.${tag})`);\n\tlet globalWhereTransformation = `:where(._${genuid()} `;\n\n\tlet rewriteSelector = (tokens: Token[], inGlobal?: boolean): Token[] => {\n\t\tfor (let i = 0; i < tokens.length; i++) {\n\t\t\tlet token = tokens[i];\n\n\t\t\tlet idx: number, cnt: number, arr: Token[] | undefined;\n\t\t\tif (token._type == PSEUDO_CLASS_TOKEN && token.arg) {\n\t\t\t\tlet global = token.nm == \"global\";\n\n\t\t\t\tlet rewritten = rewriteSelector(\n\t\t\t\t\ttokenize(token.arg),\n\t\t\t\t\tglobal || inGlobal\n\t\t\t\t);\n\t\t\t\tif (global) {\n\t\t\t\t\tidx = i;\n\t\t\t\t\tcnt = 1;\n\t\t\t\t\tarr = rewritten;\n\t\t\t\t} else {\n\t\t\t\t\ttoken.arg = stringify(rewritten);\n\t\t\t\t\ttoken._content = `:${token.nm}(${token.arg})`;\n\t\t\t\t}\n\t\t\t} else if (\n\t\t\t\t!inGlobal &&\n\t\t\t\t(i === tokens.length - 1 ||\n\t\t\t\t\t[COMBINATOR_TOKEN, COMMA_TOKEN].includes(tokens[i + 1]._type))\n\t\t\t) {\n\t\t\t\tidx = i;\n\t\t\t\twhile (idx > 0 && tokens[idx]._type == PSEUDO_ELEMENT_TOKEN) {\n\t\t\t\t\tidx--;\n\t\t\t\t}\n\n\t\t\t\tidx++;\n\t\t\t\tcnt = 0;\n\t\t\t\tarr = where;\n\t\t\t}\n\n\t\t\tif (arr) {\n\t\t\t\ttokens.splice(idx!, cnt!, ...arr);\n\t\t\t\ti += arr.length;\n\t\t\t}\n\t\t}\n\t\treturn tokens;\n\t};\n\n\tlet rewriteRules = (list: any) =>\n\t\t[...list].map((rule: any) => {\n\t\t\tif (rule.selectorText) {\n\t\t\t\trule.selectorText = stringify(\n\t\t\t\t\trewriteSelector(\n\t\t\t\t\t\ttokenize(\n\t\t\t\t\t\t\trule.selectorText.replaceAll(globalWhereTransformation, GLOBAL)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t).replace(/:scope/g, `.${tag}.${CSS_COMPONENT}`);\n\t\t\t}\n\t\t\tif (rule.cssRules) {\n\t\t\t\trewriteRules(rule.cssRules);\n\t\t\t}\n\t\t\treturn rule;\n\t\t});\n\n\tstyle.innerText = css.replaceAll(GLOBAL, globalWhereTransformation);\n\trewriteRules(style.sheet!.cssRules);\n\tdev: {\n\t\tstyle.innerText = [...style.sheet!.cssRules]\n\t\t\t.map((x) => x.cssText)\n\t\t\t.join(\"\\n\");\n\t}\n};\n","import { MAP } from \"../consts\";\nimport { genuid } from \"../css\";\nimport { Component, ComponentContext, ComponentState } from \"./definitions\";\n\nexport let CSS_IDENT = \"dlcss-\";\n\ntype NodeConstructor = (text?: string) => any;\ntype CssUidGenerator = (init: Component<any, any>) => string;\ntype IsHydrating = (el: HTMLElement) => boolean;\ntype SsrTransformCallback = <T extends Component<any, any>>(\n\tinit: T,\n\tstate: ComponentState<T>,\n\tcx?: ComponentContext<T>\n) => void;\ntype CxList = ComponentContext<Component<any, any>>[];\ntype CbRetList = (Promise<any> | any)[];\n\nexport type DomImpl = [\n\tdocument: any,\n\tNode: any,\n\tnew_Text: NodeConstructor,\n\tnew_Comment: NodeConstructor,\n\tgencssuid: CssUidGenerator,\n\tcssinfo: Map<any, any>,\n\thydrating?: IsHydrating,\n\tssrTransform?: SsrTransformCallback,\n\tcxs?: CxList,\n\tinits?: CbRetList,\n\tmounts?: CbRetList,\n];\n\nexport interface CssInfo {\n\t_id: string;\n\t_vars: [string, (props: any) => any][];\n}\nlet componentCssInfo: Map<Component, CssInfo> = MAP();\nexport let getDom: () => DomImpl = () => [\n\tglobalThis.document,\n\tglobalThis.Node,\n\t(text) => new Text(text),\n\t(text) => new Comment(text),\n\t(init) => init.name + \"-\" + genuid(),\n\tcomponentCssInfo,\n\t() => false,\n];\n\nexport let setDomImpl = (impl: () => DomImpl) => {\n\tgetDom = impl;\n};\n","import { COMMA_TOKEN, WEAKMAP } from \"../consts\";\nimport { deref, ObjectProp } from \"../utils\";\nimport { InitializingPointer, Pointer } from \"./pointers\";\nimport { useTrap, useTrapMap } from \"./use\";\n\nlet internalStatefuls: WeakMap<Stateful<any>, InternalStateful> = WEAKMAP();\n\nexport type StatefulListener = (newValue: any, prop: ObjectProp) => void;\n\ninterface InternalStateful {\n\t_listeners: StatefulListener[];\n\t_weaks: WeakRef<StatefulListener>[];\n\t_proxies: Record<ObjectProp, Pointer<any>>;\n}\n\nexport type Stateful<T extends object> = T & {\n\t/// THIS IS A SEALED MARKER TYPE. do not try accessing it\n\treadonly [COMMA_TOKEN]: unique symbol;\n};\n\nlet getInternal = (stateful: Stateful<any>): InternalStateful =>\n\tinternalStatefuls.get(stateful)!;\nlet callListeners = (\n\tinternal: InternalStateful,\n\tprop: ObjectProp,\n\tnewValue: any\n) => {\n\tinternal._listeners.map((x) => x(newValue, prop));\n\t(internal._weaks = internal._weaks.filter(deref)).map((x) =>\n\t\tderef(x)!(newValue, prop)\n\t);\n};\n\nexport let _stateListen = <T extends object>(\n\tstateful: Stateful<T>,\n\tlistener: WeakRef<StatefulListener>\n) => {\n\tgetInternal(stateful)._weaks.push(listener);\n};\nexport let _stateListenRemove = <T extends object>(\n\tstateful: Stateful<T>,\n\tlistener: WeakRef<StatefulListener>\n) => {\n\tgetInternal(stateful)._weaks = getInternal(stateful)._weaks.filter(\n\t\t(x) => x !== listener\n\t);\n};\n\nexport let createState = <T extends object>(target: T): Stateful<T> => {\n\tlet internal: InternalStateful = {\n\t\t_listeners: [],\n\t\t_weaks: [],\n\t\t_proxies: {},\n\t} satisfies InternalStateful;\n\n\tlet ret = new Proxy(target, {\n\t\tget(target, p, receiver) {\n\t\t\tif (useTrap) {\n\t\t\t\tlet sym = Symbol();\n\t\t\t\tlet ptr: InitializingPointer = {\n\t\t\t\t\t_state: ret,\n\t\t\t\t\t_path: [p],\n\t\t\t\t} satisfies InitializingPointer;\n\t\t\t\tuseTrapMap.set(sym, ptr);\n\n\t\t\t\treturn new Proxy(\n\t\t\t\t\t{},\n\t\t\t\t\t{\n\t\t\t\t\t\tget(target, p, receiver) {\n\t\t\t\t\t\t\tif (p === Symbol.toPrimitive) return () => sym;\n\t\t\t\t\t\t\tptr._path.push(p);\n\t\t\t\t\t\t\treturn receiver;\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn internal._proxies[p]\n\t\t\t\t? internal._proxies[p].value\n\t\t\t\t: Reflect.get(target, p, receiver);\n\t\t},\n\t\tset(target, p, newValue, receiver) {\n\t\t\tlet setRet = internal._proxies[p]\n\t\t\t\t? internal._proxies[p]._set(newValue)\n\t\t\t\t: Reflect.set(target, p, newValue, receiver);\n\t\t\tif (setRet) callListeners(internal, p, newValue);\n\t\t\t// returning setRet would be better here but it would break a lot of strictmode code\n\t\t\treturn true;\n\t\t},\n\t}) as Stateful<T>;\n\tinternalStatefuls.set(ret, internal);\n\treturn ret;\n};\n\nexport let stateListen = <T extends object>(\n\tstate: Stateful<T>,\n\tfunc: StatefulListener\n) => {\n\tgetInternal(state)._listeners.push(func);\n};\n\nexport let stateProxy = <T extends object, Key extends keyof T & ObjectProp>(\n\tstate: Stateful<T>,\n\tkey: Key,\n\tptr: Pointer<T[Key]>\n) => {\n\t// `number` keys will get coerced to string anyway\n\tgetInternal(state)._proxies[key as ObjectProp] = ptr;\n\tptr.listen((val) => callListeners(getInternal(state), key, val));\n};\n\nexport let isStateful = (val: any): val is Stateful<any> => !!getInternal(val);\n","import { MAP } from \"../consts\";\nimport { CSS_COMPONENT } from \"../css\";\nimport { Pointer, maybeListen } from \"../state/pointers\";\nimport { findLIS } from \"../utils\";\nimport { ComponentChild } from \"./definitions\";\nimport { CSS_IDENT, getDom } from \"./dom\";\n\nlet isBlacklisted = (val: any): val is null | undefined | boolean =>\n\t[null, undefined, false, true].includes(val);\n\nexport let mapChild = (\n\tchild: ComponentChild,\n\tparent: Node,\n\tcssIdent?: string,\n\tidentOverride?: string\n): Node[] => {\n\tlet [, NODE, new_Text, new_Comment, , , hydrating] = getDom();\n\n\tif (isBlacklisted(child)) {\n\t\treturn [new_Comment()];\n\t} else if (child instanceof Pointer) {\n\t\tlet start = new_Comment(\"[\");\n\t\tlet end = new_Comment(\"]\");\n\t\tlet current: Node[];\n\n\t\tmaybeListen(child, start, (val: ComponentChild) => {\n\t\t\tif (current && !start.parentNode) return;\n\t\t\tlet mapped: Node[] = mapChild(val, parent, cssIdent, child._cssIdent);\n\t\t\tlet hydrating = getDom()[6];\n\n\t\t\t// pretty sure it's not possible to put a pointer child in not a htmlelement\n\t\t\tif (!hydrating?.(parent as HTMLElement) && current) {\n\t\t\t\tlet actual: Node[] = [];\n\t\t\t\tfor (let n = start.nextSibling; n && n !== end; n = n.nextSibling) {\n\t\t\t\t\tactual.push(n);\n\t\t\t\t}\n\t\t\t\tlet old = MAP(actual.map((x, i) => [x, i]));\n\t\t\t\tlet staticNodes = mapped.map((x) => old.get(x)!).filter((x) => x);\n\t\t\t\tlet LIS = MAP(findLIS(staticNodes).map((x) => [actual[x], ,]));\n\t\t\t\tlet anchor: Node = start;\n\n\t\t\t\tmapped.map((child) => {\n\t\t\t\t\tif (!old.has(child) || !LIS.has(child)) {\n\t\t\t\t\t\tparent.insertBefore(child, anchor.nextSibling);\n\t\t\t\t\t}\n\t\t\t\t\tanchor = child;\n\t\t\t\t});\n\n\t\t\t\tactual.map(\n\t\t\t\t\t(x) =>\n\t\t\t\t\t\t!mapped.includes(x) &&\n\t\t\t\t\t\tx.parentNode === parent &&\n\t\t\t\t\t\tparent.removeChild(x)\n\t\t\t\t);\n\t\t\t}\n\t\t\tcurrent = mapped;\n\t\t});\n\n\t\treturn [\n\t\t\tstart,\n\t\t\t...(hydrating?.(parent as HTMLElement) ? [] : current!),\n\t\t\tend,\n\t\t];\n\t} else if (child instanceof (NODE as typeof globalThis.Node)) {\n\t\tlet list: DOMTokenList;\n\t\tlet apply = (child: any) => {\n\t\t\tif ((list = child.classList)) {\n\t\t\t\tlet arr = [...list];\n\t\t\t\tlet other = arr.find((x) => x.startsWith(CSS_IDENT));\n\n\t\t\t\tif (arr.find((x) => x == CSS_COMPONENT)) return;\n\n\t\t\t\tif (!other) {\n\t\t\t\t\tlist.add(identOverride || cssIdent!);\n\t\t\t\t} else if (identOverride && other !== identOverride) {\n\t\t\t\t\tlist.remove(other);\n\t\t\t\t\tlist.add(identOverride);\n\t\t\t\t}\n\n\t\t\t\t[...child.childNodes].map(apply);\n\t\t\t}\n\t\t};\n\t\tif (identOverride || cssIdent) apply(child);\n\n\t\treturn [child];\n\t} else if (child instanceof Array) {\n\t\treturn child.flatMap((x) => mapChild(x, parent, cssIdent, identOverride));\n\t} else {\n\t\treturn [new_Text(child as string)];\n\t}\n};\n","import { DREAMLAND, NO_CHANGE, WEAKMAP, WEAKREF } from \"../consts\";\nimport { currentComponentCx } from \"../jsx\";\nimport { deref, ObjectProp } from \"../utils\";\nimport {\n\t_stateListen,\n\t_stateListenRemove,\n\tisStateful,\n\tStateful,\n} from \"./state\";\nimport { useTrap, UseTrapMap, useTrapMap } from \"./use\";\n\nlet constraints: WeakMap<any, Pointer<any>[]> = WEAKMAP();\nlet internalPointers: WeakMap<Pointer<any>, InternalPointer<any>> = WEAKMAP();\n\nconst enum PointerType {\n\tRegular = 0,\n\tMapped = 1,\n\tZipped = 2,\n}\n\ntype StateStepListener = (prop?: ObjectProp) => void;\ntype StateStepVal = Pointer<ObjectProp> | ObjectProp;\ntype StateStep = {\n\treadonly _prop: StateStepVal;\n\t// the computed value used in _recalculate\n\t_computed?: any;\n\t// the current state object that has the listener\n\t_state?: Stateful<any>;\n\t// the listener\n\t_callback?: StateStepListener;\n\t// listener weakref\n\t_callbackRef?: WeakRef<StateStepListener>;\n};\nexport type PointerListener<T> = (val: T) => void;\ntype InternalPointer<T> = {\n\t_listeners: PointerListener<T>[];\n\t_weaks: WeakRef<PointerListener<T>>[];\n} & (\n\t| {\n\t\t\treadonly _type: PointerType.Regular;\n\t\t\treadonly _state: Stateful<any>;\n\t\t\treadonly _path: ReadonlyArray<StateStep>;\n\t }\n\t| {\n\t\t\treadonly _type: PointerType.Mapped;\n\n\t\t\treadonly _ptr: Pointer<any>;\n\t\t\treadonly _map: (val: any) => T;\n\t\t\treadonly _reverse?: (val: T) => any | typeof NO_CHANGE;\n\t }\n\t| {\n\t\t\treadonly _type: PointerType.Zipped;\n\n\t\t\treadonly _ptrs: ReadonlyArray<Pointer<any>>;\n\t }\n);\ntype InternalRegularPointer<T> = InternalPointer<T> & {\n\treadonly _type: PointerType.Regular;\n};\ntype InternalZippedPointer<T> = InternalPointer<T> & {\n\treadonly _type: PointerType.Zipped;\n};\n\nexport interface InitializingPointer {\n\t_state: Stateful<any>;\n\t_path: ObjectProp[];\n}\n\nlet unwrapStep = (val: StateStep): any => unwrapValue(val._prop);\nlet followPath = (obj: any, path: ReadonlyArray<StateStep>): any =>\n\tpath.reduce((acc, x) => acc[unwrapStep(x)], obj);\n\ntype DistributiveOmit<T, K extends PropertyKey> = T extends any\n\t? Omit<T, K>\n\t: never;\nlet newPtr = (\n\tptr: DistributiveOmit<InternalPointer<any>, \"_listeners\" | \"_weaks\">\n) => new Pointer<any>({ ...ptr, _listeners: [], _weaks: [] });\n\nexport let initializeStep = (\n\tmap: UseTrapMap,\n\tstep: ObjectProp\n): StateStepVal => {\n\t// map will just return nothing, cast to reduce code size\n\tlet init = map.get(step as symbol);\n\tif (init instanceof Pointer) return init;\n\telse if (!init) return step;\n\n\treturn newPtr({\n\t\t_type: PointerType.Regular,\n\t\t_state: init._state,\n\t\t_path: init._path.map((x) => ({ _prop: initializeStep(map, x) })),\n\t});\n};\n\ntype Truthy<T> = NonNullable<Exclude<T, false | 0 | \"\" | null | undefined>>;\ntype Falsy<T> = Extract<T, false | 0 | \"\" | null | undefined>;\n\nexport class Pointer<T> {\n\t// @internal\n\t_id: symbol = Symbol();\n\t// @internal\n\t_listener = this._callListeners.bind(this);\n\t// @internal\n\t_cssIdent?: string;\n\n\t// @internal\n\tget _ptr(): InternalPointer<T> {\n\t\treturn internalPointers.get(this)!;\n\t}\n\n\t// @internal\n\t_recalculate(i: number, ptr: InternalRegularPointer<T>, step: StateStep) {\n\t\tlet old = step._state;\n\t\tlet last = ptr._path[i - 1]?._computed || ptr._state;\n\n\t\tstep._computed = followPath(ptr._state, ptr._path.slice(0, i))[\n\t\t\tunwrapStep(step)\n\t\t];\n\t\tstep._state = isStateful(last) ? last : null;\n\n\t\tif (old !== step._state) {\n\t\t\tif (old) _stateListenRemove(old, step._callbackRef!);\n\t\t\tif (step._state) _stateListen(step._state, step._callbackRef!);\n\t\t}\n\t}\n\n\t// @internal\n\t_changed(i: number, _: any, prop?: ObjectProp) {\n\t\tlet ptr = this._ptr;\n\t\tdev: {\n\t\t\tif (ptr._type != PointerType.Regular) throw \"unreachable\";\n\t\t}\n\t\tif (prop && prop !== unwrapStep(ptr._path[i])) return;\n\n\t\tfor (; i < ptr._path.length; i++) {\n\t\t\tthis._recalculate(i, ptr, ptr._path[i]);\n\t\t}\n\n\t\tthis._callListeners();\n\t}\n\n\t// @internal\n\t_callListeners() {\n\t\tlet ptr = this._ptr;\n\t\tptr._listeners.map((x) => x(this.value));\n\t\t(ptr._weaks = ptr._weaks.filter(deref)).map((x) => deref(x)!(this.value));\n\t}\n\n\t// @internal\n\tconstructor(internal: InternalPointer<T>) {\n\t\tinternalPointers.set(this, internal);\n\n\t\tif (internal._type == PointerType.Regular) {\n\t\t\tinternal._path.map((x, i) => {\n\t\t\t\tx._callback = this._changed.bind(this, i);\n\t\t\t\tx._callbackRef = WEAKREF(x._callback);\n\t\t\t\tif (x._prop instanceof Pointer) x._prop._listenWeak(x._callbackRef);\n\t\t\t\tthis._recalculate(i, internal, x);\n\t\t\t});\n\t\t} else if (internal._type == PointerType.Mapped) {\n\t\t\tinternal._ptr._listenWeak(WEAKREF(this._listener));\n\t\t} else if (internal._type == PointerType.Zipped) {\n\t\t\tinternal._ptrs.map((x) => x._listenWeak(WEAKREF(this._listener)));\n\t\t}\n\n\t\tif (currentComponentCx) this.constrain(currentComponentCx.state);\n\t}\n\n\tget value(): T {\n\t\tlet ptr = this._ptr;\n\n\t\tif (ptr._type == PointerType.Regular) {\n\t\t\treturn followPath(ptr._state, ptr._path);\n\t\t} else if (ptr._type == PointerType.Mapped) {\n\t\t\treturn ptr._map(ptr._ptr.value);\n\t\t} else if (ptr._type == PointerType.Zipped) {\n\t\t\treturn ptr._ptrs.map((x) => x.value) as any;\n\t\t}\n\t\tdev: {\n\t\t\tthrow \"unreachable\";\n\t\t}\n\t}\n\n\t// @internal\n\t_set(val: T): boolean {\n\t\tlet ptr = this._ptr;\n\t\tlet recalculated: any;\n\n\t\tif (ptr._type == PointerType.Regular) {\n\t\t\tfollowPath(ptr._state, ptr._path.slice(0, -1))[\n\t\t\t\tunwrapStep(ptr._path[ptr._path.length - 1])\n\t\t\t] = val;\n\t\t\treturn true;\n\t\t} else if (ptr._type == PointerType.Mapped) {\n\t\t\tif (ptr._reverse && (recalculated = ptr._reverse(val)) !== NO_CHANGE) {\n\t\t\t\tptr._ptr.value = recalculated;\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\t// zipped\n\t\treturn false;\n\t}\n\tset value(val: T) {\n\t\tthis._set(val);\n\t}\n\n\t[DREAMLAND](): ReadonlyArray<Pointer<any>> | undefined {\n\t\treturn (this._ptr as InternalZippedPointer<T>)._ptrs;\n\t}\n\n\t[Symbol.toPrimitive]() {\n\t\tif (useTrap) useTrapMap.set(this._id, this);\n\t\treturn this._id;\n\t}\n\n\t// @internal\n\t_listenWeak(func: WeakRef<PointerListener<T>>): void {\n\t\tthis._ptr._weaks.push(func);\n\t}\n\tlisten(func: PointerListener<T>) {\n\t\tthis._ptr._listeners.push(func);\n\t}\n\n\tzip<Ptrs extends ReadonlyArray<Pointer<any>>>(\n\t\t...pointers: Ptrs\n\t): Pointer<\n\t\t[\n\t\t\tT,\n\t\t\t...{\n\t\t\t\t[Idx in keyof Ptrs]: Ptrs[Idx] extends Pointer<infer Val> ? Val : never;\n\t\t\t},\n\t\t]\n\t> {\n\t\treturn newPtr({\n\t\t\t_type: PointerType.Zipped,\n\t\t\t_ptrs: [this, ...pointers],\n\t\t});\n\t}\n\n\tand<R>(then: R | ((val: Truthy<T>) => R)): Pointer<Falsy<T> | R> {\n\t\treturn this.map(\n\t\t\t(val): Falsy<T> | R =>\n\t\t\t\t(val as Falsy<T>) &&\n\t\t\t\t(typeof then === \"function\"\n\t\t\t\t\t? (then as (val: Truthy<T>) => R)(val as Truthy<T>)\n\t\t\t\t\t: then)\n\t\t);\n\t}\n\n\tor<R>(then: R | ((val: Falsy<T>) => R)): Pointer<Truthy<T> | R> {\n\t\treturn this.map(\n\t\t\t(val) =>\n\t\t\t\t(val as Truthy<T>) ||\n\t\t\t\t(typeof then === \"function\"\n\t\t\t\t\t? (then as (val: Falsy<T>) => R)(val as Falsy<T>)\n\t\t\t\t\t: then)\n\t\t);\n\t}\n\tnot(): Pointer<boolean> {\n\t\treturn this.map((val) => !val);\n\t}\n\n\tmap<U>(func: (val: T) => U): Pointer<U>;\n\tmap<U>(\n\t\tfunc: (val: T) => U,\n\t\treverse: (val: U) => T | typeof NO_CHANGE\n\t): Pointer<U>;\n\tmap<U>(_map: (val: T) => U, _reverse?: (val: U) => T | typeof NO_CHANGE) {\n\t\treturn newPtr({\n\t\t\t_type: PointerType.Mapped,\n\t\t\t_ptr: this,\n\t\t\t_map,\n\t\t\t_reverse,\n\t\t});\n\t}\n\tmapEach<U, R>(\n\t\tthis: Pointer<ArrayLike<U>>,\n\t\tfunc: (val: U, i: number) => R\n\t): Pointer<R[]> {\n\t\treturn this.map((x) => Array.from(x).map(func));\n\t}\n\n\tconstrain(to: any) {\n\t\tif (!constraints.has(to)) constraints.set(to, []);\n\t\tconstraints.get(to)!.push(this);\n\t\treturn this;\n\t}\n\tunconstrain(to: any) {\n\t\tconstraints.set(to, constraints.get(to)?.filter((x) => x !== this) || []);\n\t}\n}\n\nexport let unwrapValue = <T>(val: Pointer<T> | T): T =>\n\tval instanceof Pointer ? val.value : (val as T);\nexport let maybeListen = <T>(\n\tval: Pointer<T> | T,\n\tconstrain: any,\n\tfunc: (val: T) => void,\n\tpointer?: () => void\n) => {\n\tlet old = val;\n\tif (val instanceof Pointer) {\n\t\tpointer?.();\n\t\tval\n\t\t\t.constrain(constrain)\n\t\t\t.listen((val) => old !== val && (func(val), (old = val)));\n\t}\n\tfunc(unwrapValue(val));\n};\n","import { MAP } from \"../consts\";\nimport { initializeStep, InitializingPointer, Pointer } from \"./pointers\";\nimport { createState, Stateful } from \"./state\";\n\n// epheremal strong reference allowing pointers to be recorded and then looked up later\nexport type UseTrapElement = Pointer<any> | InitializingPointer;\nexport type UseTrapMap = Map<symbol, UseTrapElement>;\nexport let useTrapMap: UseTrapMap = MAP();\n\nexport let useTrap = false;\n\nlet initializeSteps = (map: UseTrapMap, ...steps: any) => {\n\tlet prims = steps.map((x: any) => [x, x[Symbol.toPrimitive]()]);\n\tuseTrap = false;\n\tuseTrapMap = MAP();\n\treturn prims.map(([a, b]: any) => {\n\t\tlet initialized = initializeStep(map, b);\n\t\treturn initialized instanceof Pointer ? initialized : a;\n\t});\n};\n\nlet usestr = (template: TemplateStringsArray, params: any[]) => {\n\tlet state = createState({}) as Stateful<{ _string: string }>;\n\tlet flattened = [];\n\n\tfor (let i in template) {\n\t\tflattened.push(template[i]);\n\t\tif (params[i]) {\n\t\t\tlet val = params[i];\n\n\t\t\tif (val instanceof Pointer) {\n\t\t\t\tlet i = flattened.length;\n\t\t\t\tval.constrain(state).listen((val) => {\n\t\t\t\t\tflattened[i] = val;\n\t\t\t\t\tstate._string = flattened.join(\"\");\n\t\t\t\t});\n\t\t\t\tflattened.push(val.value);\n\t\t\t} else {\n\t\t\t\tflattened.push(val);\n\t\t\t}\n\t\t}\n\t}\n\n\tstate._string = flattened.join(\"\");\n\n\treturn use(state._string);\n};\n\nexport let defineUse = () => {\n\tObject.defineProperty(globalThis, \"use\", {\n\t\tget() {\n\t\t\tuseTrap = true;\n\t\t\treturn (\n\t\t\t\tmagicPtr: { [Symbol.toPrimitive]: () => symbol } | TemplateStringsArray,\n\t\t\t\t...params: any[]\n\t\t\t) => {\n\t\t\t\tlet map = useTrapMap;\n\n\t\t\t\tusestr: {\n\t\t\t\t\tif (magicPtr instanceof Array && \"raw\" in magicPtr)\n\t\t\t\t\t\treturn usestr(magicPtr, initializeSteps(map, ...params));\n\t\t\t\t}\n\n\t\t\t\tlet [init, ...rest] = initializeSteps(map, magicPtr, ...params);\n\n\t\t\t\treturn params.length ? init.zip(...rest) : init;\n\t\t\t};\n\t\t},\n\t\tconfigurable: true,\n\t});\n};\n\ndeclare global {\n\tfunction use<T>(stateful: T): Pointer<T>;\n\tfunction use<T extends any[]>(...statefuls: T): Pointer<T>;\n\t/* USESTR.START */\n\tfunction use(\n\t\ttemplate: TemplateStringsArray,\n\t\t...params: any[]\n\t): Pointer<string>;\n\t/* USESTR.END */\n}\n","import { Component, ComponentContext } from \"./jsx/definitions\";\nimport { callDelegateListeners, currentComponentCx } from \"./jsx/index\";\n\nexport interface DelegateListener<T> {\n\t_callback: (value: T) => void;\n\t_cx?: ComponentContext<Component<any, any>>;\n}\n\nexport type Delegate<T> = {\n\tlisten: (callback: (value: T) => void) => void;\n\t(value: T): void;\n};\n\nexport let createDelegate = <T>(): Delegate<T> => {\n\tlet listeners: DelegateListener<T>[] = [];\n\n\tlet delegate = ((value: T) =>\n\t\tcallDelegateListeners(value, listeners)) as Delegate<T>;\n\n\tdelegate.listen = (_callback: (value: T) => void) => {\n\t\tlisteners.push({\n\t\t\t_callback,\n\t\t\t_cx: currentComponentCx,\n\t\t});\n\t};\n\n\treturn delegate;\n};\n"],"names":["currentComponentCx","DREAMLAND","NO_CHANGE","COMMA_TOKEN","COMBINATOR_TOKEN","ID_TOKEN","CLASS_TOKEN","PSEUDO_ELEMENT_TOKEN","PSEUDO_CLASS_TOKEN","UNIVERSAL_TOKEN","ATTRIBUTE_TOKEN","TYPE_TOKEN","__hoisted_global_10","from","__hoisted_global_9","MAP","x","Map","WEAKMAP","WeakMap","WEAKREF","WeakRef","deref","fatal","Error","TOKENS","getArgumentPatternByType","type","RegExp","get","source","__autofolded_replace","gobbleParens","text","offset","nesting","__autofolded_slice","split","findIndex","i","__autofolded_length","STRING_PATTERN","tokenize","selector","trim","replacements","_value","_offset","__autofolded_push","repeat","quote","content","pos","indexOf","value","tokens","_type","pattern","entries","token","__typeof","__hoisted_str_0","lastIndex","match","exec","index","args","_content","before","groups","after","splice","_pos","tokenizeBy","changedTokens","replacement","reverse","l","t","o","tokenOffset","Object","assign","stringify","map","join","css","_strings","_funcs","_rewrite","CSS_COMPONENT","genuid","Array","reduce","a","Math","random","toString","GLOBAL","style","tag","where","globalWhereTransformation","rewriteSelector","inGlobal","idx","cnt","arr","arg","global","nm","rewritten","__autofolded_includes","rewriteRules","list","rule","__autofolded_selectorText","replaceAll","__autofolded_cssRules","innerText","sheet","CSS_IDENT","componentCssInfo","getDom","__hoisted_global_2","document","Node","Text","Comment","init","name","setDomImpl","impl","internalStatefuls","getInternal","stateful","callListeners","internal","prop","newValue","_listeners","_weaks","__autofolded_filter","createState","target","_proxies","ret","Proxy","p","receiver","useTrap","sym","ptr","_state","_path","useTrapMap","set","__hoisted_global_0","__autofolded_value","Reflect","_set","stateListen","state","func","stateProxy","key","__autofolded_listen","val","isStateful","mapChild","child","parent","cssIdent","identOverride","NODE","new_Text","new_Comment","hydrating","undefined","__instanceof","Pointer","current","start","end","maybeListen","__autofolded_parentNode","mapped","_cssIdent","actual","n","__autofolded_nextSibling","old","staticNodes","LIS","currentIndex","tails","predecessors","longest","out","mid","newLongest","lo","hi","floor","j","findLIS","anchor","has","insertBefore","removeChild","apply","__autofolded_classList","other","find","__autofolded_startsWith","remove","add","childNodes","flatMap","CREATE_ELEMENT","h","props","children","jsx","_props","DOCUMENT","genCssUid","ssrTransform","cxs","inits","mounts","lastCssIdent","id","_children","Fragment","el","setStyle","k","v","removeProperty","setProperty","__hoisted_str_1","cssInfo","attr","styleEl","_id","_vars","cssString","varid","__autofolded_setAttribute","head","append","cx","call","root","$","mount","xmlns","setAttr","param","removeAttribute","appendChild","classList","oldClasses","__autofolded_addEventListener","classes","innerHTML","_","constraints","internalPointers","unwrapStep","unwrapValue","_prop","followPath","obj","path","acc","newPtr","initializeStep","step","_listener","this","_callListeners","bind","_ptr","_recalculate","last","_computed","listener","_callbackRef","_stateListen","_changed","constructor","_callback","_listenWeak","_ptrs","__autofolded_constrain","_map","recalculated","_reverse","zip","pointers","and","then","or","not","mapEach","to","unconstrain","constrain","pointer","initializeSteps","steps","prims","b","initialized","createDelegate","listeners","delegate","_cx","callDelegateListeners","magicPtr","params","template","flattened","_string","use","usestr","rest","configurable"],"mappings":"IAcWA,2VCZVC,EACAC,EAEAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GACGC,EAAMC,KAAKD,EAAM,IAAKE,GACfC,EAAOC,GAAM,IAAIC,IAAID,GACrBE,EAAU,IAAM,IAAIC,QACpBC,EAAWJ,GAAM,IAAIK,QAAQL,GCf7BM,EAA2BN,GACrCA,EAAEM,QAEQC,EAAQ,KAClB,MAAUC,MAAM,OC0GbC,EAA8BV,EAAI,CACrC,CACCL,EACA,8HAED,CAACL,EAAU,6BACX,CAACC,EAAa,8BACd,CAACH,EAAa,YACd,CAACC,EAAkB,kBACnB,CAACG,EAAsB,iDACvB,CAACC,EAAoB,gDACrB,CAACC,EAAiB,wCAClB,CAACE,EAAY,8DAGVe,EAA4BC,GAC3BA,GAAQnB,GAAsBmB,GAAQpB,EAC9BqB,OAAOH,EAAOI,IAAIF,GAAOG,OAAMC,GAAS,IAAK,KAAM,MAEvDN,EAAOI,IAAIF,GAIhBK,EAAe,CAACC,EAAcC,EAAgBC,EAAU,IAC3DF,EAAIG,GACHF,EACAD,EACEI,MAAM,IACNC,UACA,CAACtB,EAAGuB,IACHA,GAAKL,GAA2D,IAAhDC,GAAgB,KAALnB,EAAW,EAAS,KAALA,GAAW,EAAK,IACxD,GAAKiB,EAAIO,IAoEZC,EAAiB,uBAEVC,EAAYC,IAGtB,GAAiB,MADjBA,EAAWA,EAASC,QAEnB,MAAO,GAIR,IAAIC,EAA8B,GAYlCF,GATAA,EAAWA,EAAQZ,GAZC,OAcnB,CAACe,EAAgBC,KAChBF,EAAYG,GAAM,CAAEF,IAAQC,MACrB,IAASE,OAAOH,SAKNf,GAClBU,EACA,CAACK,EAAgBI,EAAeC,EAAiBJ,KAChDF,EAAYG,GAAM,CAAEF,IAAQC,MACrB,GAAGG,IAAQ,IAASD,OAAOE,EAAOX,MAAWU,MAKtD,CACC,IACIhB,EADAkB,EAAM,EAEV,MAAQlB,EAASS,EAASU,QAAQ,IAAKD,QAAY,CAClD,IAAIE,EAAQtB,EAAaW,EAAUT,GACnCW,EAAYG,GAAM,CAAEF,EAAQQ,EAAOP,EAASb,IAC5CS,EAAW,GAAGA,EAAQP,GAAO,EAAGF,MAAW,IAAIe,OAC9CK,EAAKd,GAAU,MACXG,KAAeT,EAASoB,EAAKd,MAClCY,EAAMlB,EAASoB,EAAKd,IAKtB,IAAIe,EA9GY,CAACtB,IACjB,IAAKA,EACJ,MAAO,GAGR,IAAIsB,EAA6B,CAACtB,GAClC,IAAK,IAAKuB,EAAOC,KAAYhC,EAAOiC,UACnC,IAAK,IAAInB,EAAI,EAAGA,EAAIgB,KAAehB,IAAK,CACvC,IAAIoB,EAAQJ,EAAOhB,GACnB,IAAIqB,EAAAD,EAAAE,GACH,SAGDJ,EAAQK,UAAY,EACpB,IAAIC,EAAQN,EAAQO,KAAKL,GACzB,IAAKI,EACJ,SAGD,IAAIlD,EAAOkD,EAAME,MAAQ,EACrBC,EAAsB,GACtBC,EAAWJ,EAAM,GAEjBK,EAAST,KAAY,EAAG9C,EAAO,GAC/BuD,GACHF,EAAIlB,GAAMoB,GAGXF,KAAU,IACNH,EAAMM,OACTb,IACAW,MAGD,IAAIG,EAAQX,KAAY9C,EAAOsD,KAAkB,GAC7CG,GACHJ,EAAIlB,GAAMsB,GAGXf,EAAOgB,OAAOhC,EAAG,KAAM2B,GAIzB,IAAIhC,EAAS,EACb,IAAK,IAAIyB,KAASJ,EACbK,EAAAD,EAAAE,GAOFtC,KAGDoC,EAAMa,EAAO,CAACtC,EAASA,GAAUyB,EAAMQ,EAAQ3B,IAC3CmB,EAAMH,GAASpD,GAAoBuD,EAAMH,GAASrD,IACrDwD,EAAMQ,EAAWR,EAAMQ,EAASvB,QAAU,MAK7C,OAAOW,GAgDMkB,CAAW9B,GAGpB+B,EAAyB,GAC7B,IAAK,IAAIC,KAAe9B,EAAa+B,UACpC,IAAK,IAAIjB,KAASJ,EAAQ,CACzB,IAAIsB,EAAE9B,EAAO+B,EAAEhC,GAAW6B,EAC1B,GACGhB,EAAMa,EAAK,GAAMzB,GAAWA,EAAUD,EAAMN,GAAWmB,EAAMa,EAAK,GAEpE,SAGD,IAAIO,EAAEZ,GAAaR,EACfqB,EAAcjC,EAAUY,EAAMa,EAAK,GACvCb,EAAMQ,EACLA,EAAQ/B,GAAO,EAAG4C,GAClBlC,EACAqB,EAAQ/B,GAAO4C,EAAclC,EAAMN,IAChCmB,EAAMQ,IAAaA,GACtBO,EAAa1B,GAAMW,GAMtB,IAAK,IAAIA,KAASe,EAAe,CAChC,IAAIjB,EAAU/B,EAAyBiC,EAAMH,GACxCC,GAKHlC,IAGFkC,EAAQK,UAAY,EACpB,IAAIC,EAAQN,EAAQO,KAAKL,EAAMQ,GAC1BJ,GAOHxC,IAGF0D,OAAOC,OAAOvB,EAAOI,EAAMM,QAG5B,OAAOd,GAGG4B,EAAa5B,GAChBA,EAAO6B,IAAKpE,GAAMA,EAAEmD,GAAUkB,KAAK,ICxShCC,0BAA+B,CACzCC,KACGC,KAEI,CACND,IACAC,IACAC,MAKSC,EAAgB,MAEhBC,EAAS,IAIZ,IAAIC,MAAM,KAAKC,OAAOC,GAAKA,EAAIC,KAAKC,SAASC,SAAS,IAAI,GAAI,IAKlEC,EAAS,WACTT,EAAW,CAACU,EAAyBb,EAAac,KACrD,IAAIC,EAAQ3D,EAAS,WAAW0D,MAC5BE,EAA4B,YAAYX,OAExCY,EAAkB,CAAChD,EAAiBiD,KACvC,IAAK,IAAIjE,EAAI,EAAGA,EAAIgB,KAAehB,IAAK,CACvC,IAEIkE,EAAaC,EAAaC,EAF1BhD,EAAQJ,EAAOhB,GAGnB,GAAIoB,EAAMH,GAAShD,GAAsBmD,EAAMiD,IAAK,CACnD,IAAIC,EAAqB,UAAZlD,EAAMmD,GAEfC,EAAYR,EACf7D,EAASiB,EAAMiD,KACfC,GAAUL,GAEPK,GACHJ,EAAMlE,EACNmE,EAAM,EACNC,EAAMI,IAENpD,EAAMiD,IAAMzB,EAAU4B,GACtBpD,EAAMQ,EAAW,IAAIR,EAAMmD,MAAMnD,EAAMiD,aAElC,IACLJ,IACAjE,IAAMgB,KAAgB,GACtB,CAACnD,EAAkBD,GAAY6G,GAAUzD,EAAOhB,EAAI,GAAGiB,IACvD,CAED,IADAiD,EAAMlE,EACCkE,EAAM,GAAKlD,EAAOkD,GAAKjD,GAASjD,GACtCkG,IAGDA,IACAC,EAAM,EACNC,EAAMN,EAGHM,IACHpD,EAAOgB,OAAOkC,EAAMC,KAASC,GAC7BpE,GAAKoE,EAAGnE,IAGV,OAAOe,GAGJ0D,EAAgBC,GACnB,IAAIA,GAAM9B,IAAK+B,IACVA,EAAIC,KACPD,EAAIC,GAAgBjC,EACnBoB,EACC7D,EACCyE,EAAIC,GAAcC,WAAWf,EAA2BJ,SAGjD,UAAW,IAAIE,KAAOV,MAE7ByB,EAAIG,IACPL,EAAaE,MAEPA,IAGThB,EAAMoB,UAAYjC,EAAI+B,WAAWnB,EAAQI,GACzCW,EAAad,EAAMqB,MAAMF,KCpGfG,EAAY,SA+BnBC,GAA4C3G,IACrC4G,GAAwB,IAAM,CACxCC,EAAWC,SACXD,EAAWE,KACV7F,GAAS,IAAI8F,KAAK9F,GAClBA,GAAS,IAAI+F,QAAQ/F,GACrBgG,GAASA,EAAKC,KAAO,IAAMvC,IAC5B+B,GACA,KAAM,GAGIS,GAAcC,IACxBT,GAASS,GC1CNC,GAA8DnH,IAe9DoH,GAAeC,GAClBF,GAAkBxG,IAAI0G,GACnBC,GAAgB,CACnBC,EACAC,EACAC,KAEAF,EAASG,EAAWxD,IAAKpE,GAAMA,EAAE2H,EAAUD,KAC1CD,EAASI,EAASJ,EAASI,EAAMC,GAAQxH,IAAQ8D,IAAKpE,GACtDM,EAAMN,EAANM,CAAUqH,EAAUD,KAmBXK,GAAiCC,IAC3C,IAAIP,EAA6B,CAChCG,EAAY,GACZC,EAAQ,GACRI,EAAU,CAAA,GAGPC,EAAM,IAAIC,MAAMH,EAAQ,CAC3B,GAAAnH,CAAImH,EAAQI,EAAGC,GACd,GAAIC,GAAS,CACZ,IAAIC,EAAMzI,IACN0I,EAA2B,CAC9BC,EAAQP,EACRQ,EAAO,CAACN,IAIT,OAFAO,GAAWC,IAAIL,EAAKC,GAEb,IAAIL,MACV,GACA,CACCtH,IAAG,CAACmH,EAAQI,EAAGC,IACVD,IAAMS,EAA2B,IAAMN,GAC3CC,EAAIE,EAAK1G,GAAMoG,GACRC,IAIX,CAEA,OAAOZ,EAASQ,EAASG,GACtBX,EAASQ,EAASG,GAAEU,GACpBC,QAAQlI,IAAImH,EAAQI,EAAGC,EAC3B,EACAO,IAAG,CAACZ,EAAQI,EAAGT,EAAUU,MACXZ,EAASQ,EAASG,GAC5BX,EAASQ,EAASG,GAAGY,EAAKrB,GAC1BoB,QAAQH,IAAIZ,EAAQI,EAAGT,EAAUU,KACxBb,GAAcC,EAAUW,EAAGT,IAEhC,KAIT,OADAN,GAAkBuB,IAAIV,EAAKT,GACpBS,GAGGe,GAAc,CACxBC,EACAC,KAEA7B,GAAY4B,GAAOtB,EAAU5F,GAAMmH,IAGzBC,GAAa,CACvBF,EACAG,EACAb,KAGAlB,GAAY4B,GAAOjB,EAASoB,GAAqBb,EACjDA,EAAGc,GAASC,GAAQ/B,GAAcF,GAAY4B,GAAQG,EAAKE,KAGjDC,GAAcD,KAAqCjC,GAAYiC,GCrG/DE,GAAW,CACrBC,EACAC,EACAC,EACAC,KAEA,IAAI,CAAGC,EAAMC,EAAUC,EAAW,CAAA,CAAMC,GAAatD,KAErD,GAVA,CAAC,UAAMuD,GAAW,GAAO,GAAKlE,GAUZ0D,GACjB,MAAO,CAACM,KACF,GAAIG,EAAAT,EAAAU,IAA0B,CACpC,IAEIC,EAFAC,EAAQN,EAAY,KACpBO,EAAMP,EAAY,KAoCtB,OAjCAQ,GAAYd,EAAOY,EAAQf,IAC1B,GAAIc,IAAYC,EAAKG,GAAa,OAClC,IAAIC,EAAiBjB,GAASF,EAAKI,EAAQC,EAAUF,EAAMiB,GACvDV,EAAYtD,KAAS,GAGzB,IAAKsD,IAAYN,IAA0BU,EAAS,CACnD,IAAIO,EAAiB,GACrB,IAAK,IAAIC,EAAIP,EAAKQ,GAAcD,GAAKA,IAAMN,EAAKM,EAAIA,EAACC,GACpDF,EAAM5I,GAAM6I,GAEb,IAAIE,EAAMhL,EAAI6K,EAAOxG,IAAI,CAACpE,EAAGuB,IAAM,CAACvB,EAAGuB,KACnCyJ,EAAcN,EAAOtG,IAAKpE,GAAM+K,EAAIlK,IAAIb,IAAI8H,GAAS9H,GAAMA,GAC3DiL,EAAMlL,EL3BO,CAAC4F,IAErB,IAOIuF,EAPAC,EAAkB,CAAC,GAEnBC,EAAyB,GAEzBC,EAAkB,EAElBC,EAAgB,GAGpB,IAAK,IAAI/J,KAAKoE,EAAK,CAClB,IAEI4F,EACAC,EAHAC,EAAK,EACLC,EAAKL,EAAU,EAInB,KAAYK,EAALD,GACNF,EAAME,EAAK1G,KAAK4G,OAAOD,EAAKD,GAAM,GAC9B9F,EAAIwF,EAAMI,IAAS5F,EAAIpE,GACtBkK,EAAKF,EAAM,EADeG,EAAKH,EAIrCC,EAAaC,EACbL,EAAa7J,GAAK4J,EAAMK,EAAa,GACrCL,EAAMK,IAAejK,EACjBiK,EAAaH,IAASA,EAAUG,EACrC,CAEAN,EAAeC,EAAME,GAErB,IAAK,IAAIO,EAAIP,EAAU,EAAGO,GAAK,EAAGA,IACjCN,EAAIM,GAAKjG,EAAIuF,GACbA,EAAeE,EAAaF,GAE7B,OAAOI,GKRUO,CAAQb,GAAa5G,IAAKpE,GAAM,CAAC4K,EAAO5K,GAAE,KACpD8L,EAAexB,EAEnBI,EAAOtG,IAAKsF,IACNqB,EAAIgB,IAAIrC,IAAWuB,EAAIc,IAAIrC,IAC/BC,EAAOqC,aAAatC,EAAOoC,EAAMhB,IAElCgB,EAASpC,IAGVkB,EAAOxG,IACLpE,IACC0K,KAAgB1K,IACjBA,EAACyK,KAAgBd,GACjBA,EAAOsC,YAAYjM,GAEtB,CACAqK,EAAUK,IAGJ,CACNJ,KACIL,IAAYN,GAAyB,GAAKU,EAC9CE,EAEF,CAAO,GAAIJ,EAAAT,EAAAI,GAAmD,CAC7D,IAAI5D,EACAgG,EAASxC,IACZ,GAAKxD,EAAOwD,EAAKyC,GAAa,CAC7B,IAAIxG,EAAM,IAAIO,GACVkG,EAAQzG,EAAI0G,KAAMrM,GAAMA,EAACsM,GAAY7F,IAEzC,GAAId,EAAI0G,KAAMrM,GAAMA,GAAK0E,GAAgB,OAEpC0H,EAEMvC,GAAiBuC,IAAUvC,IACrC3D,EAAKqG,OAAOH,GACZlG,EAAKsG,IAAI3C,IAHT3D,EAAKsG,IAAI3C,GAAiBD,GAM3B,IAAIF,EAAM+C,YAAYrI,IAAI8H,EAC3B,GAID,OAFIrC,GAAiBD,IAAUsC,EAAMxC,GAE9B,CAACA,EACT,CAAO,OAAIS,EAAAT,EAAA9J,GACH8J,EAAMgD,QAAS1M,GAAMyJ,GAASzJ,EAAG2J,EAAQC,EAAUC,IAEnD,CAACE,EAASL,KP5DfiD,mBA+POC,GATX,CACC3F,EACA4F,KACGC,IAGIC,GAAI9F,EAAM,CAAE6F,cAAaD,IAItBE,GApPX,CACC9F,EACA+F,EACA3D,KAEA,IACC4D,EACAnD,EAAI,CAAA,CAGJoD,EACAxG,EACAuD,EACAkD,EACAC,EAAM,GACNC,EAAQ,GACRC,EAAS,IACN3G,KACA4G,EAAevO,GAAoBwO,IAOjCV,SAAUW,KAAcZ,GAAUG,EACxC,GAAI/F,IAASyG,GAAU,OAAOD,EAC1BpE,IAAKwD,EAAMxD,IAAMA,GACrBoE,IAAc,GACd,IAEIE,EAFAb,EAAW3C,EAAAsD,EAAA7N,GAA6B6N,EAAY,CAACA,GAGrDG,EAAW,CAACpF,EAAmBrD,EAA4B0I,IAC9DrD,GAAYhC,EAAKmF,EAAKG,SACX5D,IAAN4D,EAAiB3I,EAAM4I,eAAeF,GACrC1I,EAAM6I,YAAYH,EAAGC,KAG5B,GAAIlL,EAAAqE,EAAAgH,GAA4B,CAC/B,IAAI/E,EAAQnB,GAAY,CAAE+E,aACtBoB,EAA+BxH,EAAiB7F,IAAIoG,GAExD,IAAK,IAAIkH,KAAQtB,EAAO,CACvB,IAAItD,EAAMsD,EAAMsB,GAEZhE,EAAAZ,EAAAa,IACHhB,GAAWF,EAAOiF,EAAM5E,GAExBL,EAAMiF,GAAQ5E,EAIhB4D,IAAelG,EAAMiC,GAErB,IAAK,IAAIQ,KAASoD,EAIb3C,EAAAT,EAAAU,MACHV,EAAMiB,IAAc4C,GAItB,GAAItG,EAAK9B,MAAO,CACf,IAAIA,EAAQ8B,EAAK9B,MACbiJ,EAAUnB,EAASN,IAAgB,SACvC,IAAKuB,EAAS,CACbA,EAAU,CAAEG,EAAK5H,EAAYyG,EAAUjG,GAAOqH,EAAO,IACrD,IAAIC,EAAY,GAEhB,IAAK,IAAIhN,EAAI,EAAGA,EAAI4D,EAAMZ,EAAQ/C,GAASD,IAE1C,GADAgN,GAAapJ,EAAMZ,EAAShD,GACxBA,EAAI,EAAI4D,EAAMZ,EAAQ/C,GAAS,CAClC,IAAI2H,EAAOhE,EAAMX,EAAOjD,GACxB,GAAIqB,EAAAuG,EAAAtG,GACH0L,GAAapF,MACP,CACN,IAAIqF,EAAQ7J,IACZ4J,GAAa,SAASC,KACtBN,EAAQI,EAAKtM,GAAM,CAACwM,EAAOrF,KAKzBc,IAAYmE,KAChBA,KAAqB1J,EAAeuC,EAAKC,MACzCkH,EAAOK,GAAchI,EAAY,KAAMyH,EAAQG,GAE/CpB,EAASyB,KAAKC,OAAOP,GACrBjJ,EAAMV,EAAS2J,EAASG,EAAWL,EAAQG,IAE5C3H,EAAiBkC,IAAI3B,EAAMiH,IAI7B,IAAIU,EAAK,CACR1F,QACAsE,GAAIU,GAASG,GAGVtD,EAAM/L,EAOV,GANAkK,EAAM0F,GAAKA,EACX5P,EAAqB4P,EACrBjB,EAAK1G,EAAK4H,KAAK3F,GACflK,EAAqB+L,EACrB7B,EAAM4F,KAAOnB,EAETxD,EAAAwD,EAAA7D,KAMF6D,EAA8BoB,EAAIH,EAEnCjB,KAAanB,IAAI9H,GAEbwJ,GACH,IAAK,IAAKM,EAAOrF,KAAS+E,EAAQI,EAAO,CACxC,IAAId,EAAK,KAAKgB,EACVrJ,EAAQwI,EAAGxI,MACfyI,EAASzE,EAAKyF,EAAG1F,OAAQ/D,EAAOqI,GAInCL,IAAelG,EAAMiC,EAAO0F,GAE5B5P,EAAqB4P,EACrBvB,KAAWuB,EAAG3H,UAEVkD,EAAAwD,EAAA7D,IAAsBG,IAAY0D,GAAKP,KAASwB,GAC3C3E,GACRqD,EAAMtL,GAAM4M,EAAGI,WAEhBhQ,EAAqB+L,MACf,CAGN,IAAIkE,EAAQpC,GAAOoC,MACfC,EAAU,CAACC,EAAe5F,KACzBU,IAAY0D,UAEJzD,IAARX,IAA6B,IAARA,EAAeoE,EAAGyB,gBAAgBD,GACtDxB,EAAEc,GAAcU,EAAO5F,KAE7BoE,EAAMV,EAAiBN,IAAkBsC,EAAQ,KAAO,KACvDA,GAAShI,EACTgI,GAAShI,EACT4F,EACAC,GAGD,IAAK,IAAIpD,KAASoD,EACPrD,GAASC,EAAOiE,EAAIJ,GAC1BnJ,IAAKpE,IACJA,EAACyK,KAAgBkD,GAAIA,EAAG0B,YAAYrP,KAI1C,IAAIsP,EAAY3B,EAAExB,GAElB,IAAK,IAAIgC,KAAQtB,EAAO,CACvB,IAAItD,EAAMsD,EAAMsB,GACZoB,EAAuB,GAC3B,GAAa,SAATpB,EACH5E,KAAYoE,OACN,GAAIQ,IAASrF,GAAoB,YAATqF,EAC9B3D,GACCjB,EACAoE,EACCpE,IACA2F,EAAQf,EAAM5E,GACboE,EAAWQ,GAAQ5E,GAErB,KACCoE,EAAE6B,GAAkB,QAAS,IAAOjG,KAAaoE,EAAWQ,WAGxD,GAAa,UAATA,EACV3D,GAAYjB,EAAKoE,EAAKpE,IAGrB,IAAIkG,EAAUlG,EAAIlI,MAAM,KAAIyG,GAAS9H,GAAMA,EAACwB,IAC5C8N,EAAU/C,UAAUgD,GACpBD,EAAU9C,OAAOiD,GACjBF,EAAaE,SAER,GAAItB,EAAI7B,GAAY,OAC1BqB,EAAE6B,GAAkBrB,EAAI/M,GAAO,GAAImI,QAC7B,GAAI4E,EAAI7B,GAAY,UAC1B9B,GAAYjB,EAAKoE,EAAKpE,IACrB+F,EAAU/F,EAAM,MAAQ,UAAU4E,EAAI/M,GAAO,WAExC,GAAI+M,KAAgB,SAC1B3D,GAAYjB,EAAKoE,EAAKpE,IAChBU,IAAY0D,KAAMA,EAAWQ,EAAI/M,GAAO,IAAMmI,UAE9C,GACE,SAAR4E,GACAvL,EAAA2G,EAAA,YACEY,EAAAZ,EAAAa,IAEF,IAAK,IAAIyD,KAAKtE,EACbqE,EAASrE,EAAIsE,GAAIF,EAAGxI,MAAO0I,QAG5BrD,GAAYjB,EAAKoE,EAAKpE,GAAQ2F,EAAQf,EAAM5E,IAI1CgE,IAAiB,IAAI+B,GAAWjD,KAAMrM,GAAMA,EAACsM,GAAY7F,KAC5D6I,EAAU9C,IAAIe,GAOX0B,IAAOtB,EAAG+B,UAAY/B,EAAG+B,WAG9B,OAAO/B,CACR,EAwBWD,GAAaiC,GAAW,EQnR/BC,GAA4C1P,IAC5C2P,GAAgE3P,IAwDhE4P,GAAcvG,GAAwBwG,GAAYxG,EAAIyG,GACtDC,GAAa,CAACC,EAAUC,IAC3BA,EAAKtL,OAAO,CAACuL,EAAKpQ,IAAMoQ,EAAIN,GAAW9P,IAAKkQ,GAKzCG,GACH7H,GACI,IAAI4B,GAAa,IAAK5B,EAAKZ,EAAY,GAAIC,EAAQ,KAE7CyI,GAAiB,CAC3BlM,EACAmM,KAGA,IAAItJ,EAAO7C,EAAIvD,IAAI0P,GACnB,OAAIpG,EAAAlD,EAAAmD,IAAgCnD,EAC1BA,EAEHoJ,GAAO,CACb7N,EAAK,EACLiG,EAAQxB,EAAKwB,EACbC,EAAOzB,EAAKyB,EAAMtE,IAAKpE,IAAC,CAAQgQ,EAAOM,GAAelM,EAAKpE,QALrCuQ,YAcvBlC,EAAcvO,IAEd0Q,EAAYC,KAAKC,EAAeC,KAAKF,MAErC9F,EAGA,KAAIiG,GACH,OAAOf,GAAiBhP,IAAI4P,MAI7B,CAAAI,CAAatP,EAAWiH,EAAgC+H,GACvD,IAAIxF,EAAMwF,EAAK9H,EACXqI,EAAOtI,EAAIE,EAAMnH,EAAI,IAAIwP,GAAavI,EAAIC,EF3EhB,IAC/BlB,EACAyJ,EE2ECT,EAAKQ,EAAYd,GAAWzH,EAAIC,EAAQD,EAAIE,EAAKtH,GAAO,EAAGG,IAC1DuO,GAAWS,IAEZA,EAAK9H,EAASe,GAAWsH,GAAQA,EAAO,KAEpC/F,IAAQwF,EAAK9H,IACZsC,IFlFNxD,EEkF8BwD,EFjF9BiG,EEiFmCT,EAAKU,EF/ExC3J,GAAYC,GAAUM,EAASP,GAAYC,GAAUM,EAAMC,GACzD9H,GAAMA,IAAMgR,IE+ERT,EAAK9H,GF1Fc,EACzBlB,EACAyJ,KAEA1J,GAAYC,GAAUM,KAAYmJ,IEsFfE,CAAaX,EAAK9H,EAAQ8H,EAAKU,IAKlD,CAAAE,CAAS5P,EAAWoO,EAAQjI,GAC3B,IAAIc,EAAMiI,KAAKG,EAIf,IAAIlJ,GAAQA,IAASoI,GAAWtH,EAAIE,EAAMnH,IAA1C,CAEA,KAAOA,EAAIiH,EAAIE,EAAKlH,GAASD,IAC5BkP,KAAKI,EAAatP,EAAGiH,EAAKA,EAAIE,EAAMnH,IAGrCkP,KAAKC,GAN0C,EAUhD,CAAAA,GACC,IAAIlI,EAAMiI,KAAKG,EACfpI,EAAIZ,EAAWxD,IAAKpE,GAAMA,EAAEyQ,KAAI3H,MAC/BN,EAAIX,EAASW,EAAIX,EAAMC,GAAQxH,IAAQ8D,IAAKpE,GAAMM,EAAMN,EAANM,CAAUmQ,KAAI3H,KAIlE,WAAAsI,CAAY3J,GACXoI,GAAiBjH,IAAI6H,KAAMhJ,GAET,GAAdA,EAASjF,EACZiF,EAASiB,EAAMtE,IAAI,CAACpE,EAAGuB,KACtBvB,EAAEqR,EAAYZ,KAAKU,EAASR,KAAKF,KAAMlP,GACvCvB,EAAEiR,EAAe7Q,EAAQJ,EAAEqR,GACvBlH,EAAAnK,EAAAgQ,EAAA5F,KAA4BpK,EAAEgQ,EAAMsB,EAAYtR,EAAEiR,GACtDR,KAAKI,EAAatP,EAAGkG,EAAUzH,KAER,GAAdyH,EAASjF,EACnBiF,EAASmJ,EAAKU,EAAYlR,EAAQqQ,KAAKD,IACf,GAAd/I,EAASjF,GACnBiF,EAAS8J,EAAMnN,IAAKpE,GAAMA,EAAEsR,EAAYlR,EAAQqQ,KAAKD,KAGlDxR,GAAoByR,KAAIe,GAAWxS,EAAmBkK,OAG3D,IAAIJ,KACH,IAAIN,EAAMiI,KAAKG,EAEf,OAAa,GAATpI,EAAIhG,EACAyN,GAAWzH,EAAIC,EAAQD,EAAIE,GACf,GAATF,EAAIhG,EACPgG,EAAIiJ,EAAKjJ,EAAIoI,MACD,GAATpI,EAAIhG,EACPgG,EAAI+I,EAAMnN,IAAKpE,GAAMA,WADtB,EASR,CAAAgJ,CAAKO,GACJ,IACImI,EADAlJ,EAAMiI,KAAKG,EAGf,OAAa,GAATpI,EAAIhG,GACPyN,GAAWzH,EAAIC,EAAQD,EAAIE,EAAKtH,GAAO,OACtC0O,GAAWtH,EAAIE,EAAMF,EAAIE,EAAKlH,GAAU,KACrC+H,GACG,KACY,GAATf,EAAIhG,IACVgG,EAAImJ,IAAaD,EAAelJ,EAAImJ,EAASpI,MAAUrK,IAC1DsJ,EAAIoI,EAAI9H,GAAS4I,EACV,IAMV,IAAI5I,GAAMS,GACTkH,KAAKzH,EAAKO,GAGX,CAACtK,KACA,OAAQwR,KAAKG,EAAkCW,EAGhD,CAAC1I,KAEA,OADIP,IAASK,GAAWC,IAAI6H,KAAKpC,EAAKoC,MAC/BA,KAAKpC,EAIb,CAAAiD,CAAYnI,GACXsH,KAAKG,EAAK/I,EAAM7F,GAAMmH,GAEvB,CAAAG,GAAOH,GACNsH,KAAKG,EAAKhJ,KAAgBuB,GAG3B,GAAAyI,IACIC,GASH,OAAOxB,GAAO,CACb7N,EAAK,EACL+O,EAAO,CAACd,QAASoB,KAInB,GAAAC,CAAOC,GACN,OAAOtB,KAAKrM,IACVmF,GACCA,IACA3G,EAAAmP,EAAA9D,GACG8D,EAA+BxI,GAChCwI,IAIN,EAAAC,CAAMD,GACL,OAAOtB,KAAKrM,IACVmF,GACCA,IACA3G,EAAAmP,EAAA9D,GACG8D,EAA8BxI,GAC/BwI,IAGN,GAAAE,GACC,OAAOxB,KAAKrM,IAAKmF,IAASA,GAQ3B,GAAAnF,CAAOqN,EAAqBE,GAC3B,OAAOtB,GAAO,CACb7N,EAAK,EACLoO,EAAMH,KACNgB,IACAE,MAGF,OAAAO,CAEC/I,GAEA,OAAOsH,KAAKrM,IAAKpE,GAAMJ,EAAMC,KAAKG,GAAGoE,IAAI+E,IAG1C,CAAAqI,GAAUW,GAGT,OAFKvC,GAAY7D,IAAIoG,IAAKvC,GAAYhH,IAAIuJ,EAAI,IAC9CvC,GAAY/O,IAAIsR,GAAInQ,GAAMyO,MACnBA,KAER,WAAA2B,CAAYD,GACXvC,GAAYhH,IAAIuJ,EAAIvC,GAAY/O,IAAIsR,KAAGrK,GAAU9H,GAAMA,IAAMyQ,OAAS,MAI7DV,GAAkBxG,GAC5BY,EAAAZ,EAAAa,IAAyBb,EAAGT,GAAUS,EAC5BiB,GAAc,CACxBjB,EACA8I,EACAlJ,EACAmJ,KAEA,IAAIvH,EAAMxB,EACNY,EAAAZ,EAAAa,MACHkI,MACA/I,KACY8I,MACF9I,GAAQwB,IAAQxB,IAAQJ,EAAKI,GAAOwB,EAAMxB,KAErDJ,EAAK4G,GAAYxG,KC7SPZ,GAAyB5I,IAEzBuI,IAAU,EAEjBiK,GAAkB,CAACnO,KAAoBoO,KAC1C,IAAIC,EAAQD,EAAMpO,IAAKpE,GAAW,CAACA,EAAGA,EAAE6I,OAGxC,OAFAP,IAAU,EACVK,GAAa5I,IACN0S,EAAMrO,IAAI,EAAEU,EAAG4N,MACrB,IAAIC,EAAcrC,GAAelM,EAAKsO,GACtC,OAAOvI,EAAAwI,EAAAvI,IAAiCuI,EAAc7N,KCJ7C8N,GAAiB,KAC3B,IAAIC,EAAmC,GAEnCC,EAAaxQ,GVCiB,EAClCA,EACAuQ,IAEAA,EAAUzO,IAAKpE,IACd,IAAI+K,EAAM/L,EACVA,EAAqBgB,EAAE+S,EACvB/S,EAAEqR,EAAU/O,GACZtD,EAAqB+L,IURrBiI,CAAsB1Q,EAAOuQ,GAS9B,OAPAC,EAAQxJ,GAAW+H,IAClBwB,KAAe,CACdxB,IACA0B,EAAK/T,KAIA8T,GDuBP7O,OAAM,eAAgB2C,EAAY,MAAO,CACxC,GAiBA,GAfC,OADA0B,IAAU,EACH,CACN2K,KACGC,KAEH,IAAI9O,EAAMuE,GAGT,GAAIwB,EAAA8I,EAAArT,IAA6B,QAASqT,EACzC,MAvCO,EAACE,EAAgCD,KAC7C,IAAIhK,EAAQnB,GAAY,IACpBqL,EAAY,GAEhB,IAAK,IAAI7R,KAAK4R,EAEb,GADAC,EAASpR,GAAMmR,EAAS5R,IACpB2R,EAAO3R,GAAI,CACd,IAAIgI,EAAM2J,EAAO3R,GAEjB,GAAI4I,EAAAZ,EAAAa,IAAwB,CAC3B,IAAI7I,EAAI6R,EAAS5R,GACjB+H,EAAGiI,GAAWtI,GAAMI,GAASC,IAC5B6J,EAAU7R,GAAKgI,EACfL,EAAMmK,EAAUD,EAAU/O,KAAK,MAEhC+O,EAASpR,GAAMuH,KAChB,MACC6J,EAASpR,GAAMuH,EAEjB,CAKD,OAFAL,EAAMmK,EAAUD,EAAU/O,KAAK,IAExBiP,IAAIpK,EAAMmK,IAeLE,CAAON,EAAUV,GAAgBnO,KAAQ8O,IAGlD,IAAKjM,KAASuM,GAAQjB,GAAgBnO,EAAK6O,KAAaC,GAExD,OAAOA,EAAM1R,GAAUyF,EAAK2K,OAAO4B,GAAQvM,EAE7C,EACAwM,cAAc"}