toiljs 0.0.5 → 0.0.6

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 (83) hide show
  1. package/build/cli/.tsbuildinfo +1 -1
  2. package/build/cli/create.js +75 -61
  3. package/build/client/.tsbuildinfo +1 -1
  4. package/build/client/channel/channel.d.ts +23 -0
  5. package/build/client/channel/channel.js +94 -0
  6. package/build/client/head/head.d.ts +26 -0
  7. package/build/client/head/head.js +87 -0
  8. package/build/client/index.d.ts +17 -17
  9. package/build/client/index.js +10 -10
  10. package/build/client/navigation/Link.d.ts +8 -0
  11. package/build/client/navigation/Link.js +44 -0
  12. package/build/client/navigation/NavLink.d.ts +14 -0
  13. package/build/client/navigation/NavLink.js +37 -0
  14. package/build/client/navigation/navigation.d.ts +13 -0
  15. package/build/client/navigation/navigation.js +97 -0
  16. package/build/client/navigation/prefetch.d.ts +11 -0
  17. package/build/client/navigation/prefetch.js +100 -0
  18. package/build/client/navigation/scroll.d.ts +8 -0
  19. package/build/client/navigation/scroll.js +36 -0
  20. package/build/client/routing/Router.d.ts +7 -0
  21. package/build/client/routing/Router.js +55 -0
  22. package/build/client/routing/error-boundary.d.ts +16 -0
  23. package/build/client/routing/error-boundary.js +19 -0
  24. package/build/client/routing/hooks.d.ts +17 -0
  25. package/build/client/routing/hooks.js +48 -0
  26. package/build/client/routing/lazy.d.ts +16 -0
  27. package/build/client/routing/lazy.js +53 -0
  28. package/build/client/routing/match.d.ts +2 -0
  29. package/build/client/routing/match.js +32 -0
  30. package/build/client/routing/mount.d.ts +2 -0
  31. package/build/client/routing/mount.js +13 -0
  32. package/build/client/routing/params-context.d.ts +2 -0
  33. package/build/client/routing/params-context.js +2 -0
  34. package/build/compiler/.tsbuildinfo +1 -1
  35. package/build/compiler/config.js +10 -1
  36. package/build/compiler/generate.js +18 -8
  37. package/build/compiler/plugin.js +14 -0
  38. package/examples/basic/client/components/HoneycombBackground.tsx +162 -0
  39. package/examples/basic/client/layout.tsx +12 -8
  40. package/examples/basic/client/public/favicon.ico +0 -0
  41. package/examples/basic/client/public/index.html +2 -1
  42. package/package.json +2 -2
  43. package/src/cli/create.ts +100 -73
  44. package/src/client/index.ts +17 -17
  45. package/src/client/{NavLink.tsx → navigation/NavLink.tsx} +1 -1
  46. package/src/client/{prefetch.ts → navigation/prefetch.ts} +2 -2
  47. package/src/client/{Router.tsx → routing/Router.tsx} +3 -3
  48. package/src/client/{error-boundary.tsx → routing/error-boundary.tsx} +1 -1
  49. package/src/client/{hooks.ts → routing/hooks.ts} +2 -2
  50. package/src/client/{lazy.ts → routing/lazy.ts} +1 -1
  51. package/src/client/{mount.tsx → routing/mount.tsx} +3 -3
  52. package/src/compiler/config.ts +11 -2
  53. package/src/compiler/generate.ts +24 -8
  54. package/src/compiler/plugin.ts +19 -0
  55. package/templates/app/client/404.tsx +11 -0
  56. package/templates/app/client/components/.gitkeep +1 -0
  57. package/templates/app/client/components/Footer.tsx +8 -0
  58. package/templates/app/client/components/HoneycombBackground.tsx +162 -0
  59. package/templates/app/client/layout.tsx +53 -0
  60. package/templates/app/client/public/favicon.ico +0 -0
  61. package/templates/app/client/public/images/.gitkeep +1 -0
  62. package/templates/app/client/public/images/logo.svg +37 -0
  63. package/templates/app/client/public/index.html +16 -0
  64. package/templates/app/client/public/robots.txt +2 -0
  65. package/templates/app/client/routes/about.tsx +11 -0
  66. package/templates/app/client/routes/blog/[id].tsx +12 -0
  67. package/templates/app/client/routes/docs/[...slug].tsx +12 -0
  68. package/templates/app/client/routes/get-started.tsx +84 -0
  69. package/templates/app/client/routes/index.tsx +80 -0
  70. package/templates/app/client/routes/io.tsx +24 -0
  71. package/templates/app/client/styles/main.css +461 -0
  72. package/templates/app/client/toil.tsx +7 -0
  73. package/test/channel.test.ts +1 -1
  74. package/test/head.test.ts +1 -1
  75. package/test/navlink.test.ts +1 -1
  76. package/test/routes.test.ts +1 -1
  77. /package/src/client/{channel.ts → channel/channel.ts} +0 -0
  78. /package/src/client/{head.ts → head/head.ts} +0 -0
  79. /package/src/client/{Link.tsx → navigation/Link.tsx} +0 -0
  80. /package/src/client/{navigation.ts → navigation/navigation.ts} +0 -0
  81. /package/src/client/{scroll.ts → navigation/scroll.ts} +0 -0
  82. /package/src/client/{match.ts → routing/match.ts} +0 -0
  83. /package/src/client/{params-context.ts → routing/params-context.ts} +0 -0
@@ -1 +1 @@
1
- {"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/typescript/lib/lib.es2023.d.ts","../../node_modules/typescript/lib/lib.es2024.d.ts","../../node_modules/typescript/lib/lib.es2025.d.ts","../../node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../node_modules/typescript/lib/lib.es2024.collection.d.ts","../../node_modules/typescript/lib/lib.es2024.object.d.ts","../../node_modules/typescript/lib/lib.es2024.promise.d.ts","../../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2024.string.d.ts","../../node_modules/typescript/lib/lib.es2025.collection.d.ts","../../node_modules/typescript/lib/lib.es2025.float16.d.ts","../../node_modules/typescript/lib/lib.es2025.intl.d.ts","../../node_modules/typescript/lib/lib.es2025.iterator.d.ts","../../node_modules/typescript/lib/lib.es2025.promise.d.ts","../../node_modules/typescript/lib/lib.es2025.regexp.d.ts","../../node_modules/typescript/lib/lib.esnext.array.d.ts","../../node_modules/typescript/lib/lib.esnext.collection.d.ts","../../node_modules/typescript/lib/lib.esnext.date.d.ts","../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../node_modules/typescript/lib/lib.esnext.error.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.esnext.temporal.d.ts","../../node_modules/typescript/lib/lib.esnext.typedarrays.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../node_modules/@types/react/global.d.ts","../../node_modules/csstype/index.d.ts","../../node_modules/@types/react/index.d.ts","../../node_modules/@types/react/jsx-runtime.d.ts","../../src/client/scroll.ts","../../src/client/navigation.ts","../../src/client/match.ts","../../src/client/types.ts","../../src/client/prefetch.ts","../../src/client/link.tsx","../../src/client/params-context.ts","../../src/client/hooks.ts","../../src/client/navlink.tsx","../../src/client/error-boundary.tsx","../../src/client/lazy.ts","../../src/client/router.tsx","../../src/client/channel.ts","../../src/client/head.ts","../../node_modules/@types/react-dom/client.d.ts","../../src/client/mount.tsx","../../src/client/index.ts"],"fileIdsList":[[92],[90,91],[92,93],[92,93,97],[92,93,95,96,98,100],[93,95,96,97,98,99,101,102,105,106,107,109],[92,93,95,98],[93],[93,95,97,98,105,108],[93,94],[92,93,99,101],[92,93,96],[93,96,97],[92,93,94,95,96,97,100,101,103,104]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":1},{"version":"1e9332c23e9a907175e0ffc6a49e236f97b48838cc8aec9ce7e4cec21e544b65","impliedFormat":1},{"version":"3753fbc1113dc511214802a2342280a8b284ab9094f6420e7aa171e868679f91","impliedFormat":1},{"version":"999ca32883495a866aa5737fe1babc764a469e4cde6ee6b136a4b9ae68853e4b","impliedFormat":1},{"version":"17f13ecb98cbc39243f2eee1f16d45cd8ec4706b03ee314f1915f1a8b42f6984","impliedFormat":1},{"version":"d6b1eba8496bdd0eed6fc8a685768fe01b2da4a0388b5fe7df558290bffcf32f","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f57fc4404ff020bc45b9c620aff2b40f700b95fe31164024c453a5e3c163c54","impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":1},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":1},{"version":"0bd714129fca875f7d4c477a1a392200b0bcd13fb2e80928cd334b63830ea047","affectsGlobalScope":true,"impliedFormat":1},{"version":"e2c9037ae6cd2c52d80ceef0b3c5ffdb488627d71529cf4f63776daf11161c9a","affectsGlobalScope":true,"impliedFormat":1},{"version":"135d5cf4d345f59f1a9caadfafcd858d3d9cc68290db616cc85797224448cccc","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc238c3f81c2984751932b6aab223cd5b830e0ac6cad76389e5e9d2ffc03287d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4a07f9b76d361f572620927e5735b77d6d2101c23cdd94383eb5b706e7b36357","affectsGlobalScope":true,"impliedFormat":1},{"version":"7c4e8dc6ab834cc6baa0227e030606d29e3e8449a9f67cdf5605ea5493c4db29","affectsGlobalScope":true,"impliedFormat":1},{"version":"de7ba0fd02e06cd9a5bd4ab441ed0e122735786e67dde1e849cced1cd8b46b78","affectsGlobalScope":true,"impliedFormat":1},{"version":"6148e4e88d720a06855071c3db02069434142a8332cf9c182cda551adedf3156","affectsGlobalScope":true,"impliedFormat":1},{"version":"d63dba625b108316a40c95a4425f8d4294e0deeccfd6c7e59d819efa19e23409","affectsGlobalScope":true,"impliedFormat":1},{"version":"0568d6befee03dd435bed4fc25c4e46865b24bdcb8c563fdc21f580a2c301904","affectsGlobalScope":true,"impliedFormat":1},{"version":"30d62269b05b584741f19a5369852d5d34895aa2ac4fd948956f886d15f9cc0d","affectsGlobalScope":true,"impliedFormat":1},{"version":"f128dae7c44d8f35ee42e0a437000a57c9f06cc04f8b4fb42eebf44954d53dc8","affectsGlobalScope":true,"impliedFormat":1},{"version":"ffbe6d7b295306b2ba88030f65b74c107d8d99bdcf596ea99c62a02f606108b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"996fb27b15277369c68a4ba46ed138b4e9e839a02fb4ec756f7997629242fd9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"79b712591b270d4778c89706ca2cfc56ddb8c3f895840e477388f1710dc5eda9","affectsGlobalScope":true,"impliedFormat":1},{"version":"20884846cef428b992b9bd032e70a4ef88e349263f63aeddf04dda837a7dba26","affectsGlobalScope":true,"impliedFormat":1},{"version":"5fcab789c73a97cd43828ee3cc94a61264cf24d4c44472ce64ced0e0f148bdb2","affectsGlobalScope":true,"impliedFormat":1},{"version":"db59a81f070c1880ad645b2c0275022baa6a0c4f0acdc58d29d349c6efcf0903","affectsGlobalScope":true,"impliedFormat":1},{"version":"673294292640f5722b700e7d814e17aaf7d93f83a48a2c9b38f33cbc940ad8b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"d786b48f934cbca483b3c6d0a798cb43bbb4ada283e76fb22c28e53ae05b9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ecb8e347cb6b2a8927c09b86263663289418df375f5e68e11a0ae683776978f","affectsGlobalScope":true,"impliedFormat":1},{"version":"142efd4ce210576f777dc34df121777be89eda476942d6d6663b03dcb53be3ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"379bc41580c2d774f82e828c70308f24a005b490c25ba34d679d84bcf05c3d9d","affectsGlobalScope":true,"impliedFormat":1},{"version":"ed484fb2aa8a1a23d0277056ec3336e0a0b52f9b8d6a961f338a642faf43235d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ffedae1d1c2d53fdbca1c96d3c7dda544281f7d262f99b6880634f8fd8d9820","affectsGlobalScope":true,"impliedFormat":1},{"version":"83a730b125d477dd264df8ba479afab27a3dae7152b005c214ab94dc7ee44fd3","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},{"version":"7e29f41b158de217f94cb9676bf9cbd0cd9b5a46e1985141ed36e075c52bf6ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"bd7dee3446a5b94651d58000ddfda40296f073e9372891f65003a524b4620697","impliedFormat":1},{"version":"42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3","impliedFormat":1},{"version":"ee8a149229af2834098b2776d0de116b0ead67ecefb18d06ef9638ad0ebe7286","signature":"2b2db01796f774852b44cacad054f31b9e63a3c4ed787d12c1dd75c75e602bef"},{"version":"39cd1e337e978eaeb2d9763f758d1577d7909ffbabb24ee4b4b207ee81628d4b","signature":"4f9d93f71815adfcc969a2f7b3b92db59ec4699a5cc18beba07ca653914e6f45"},{"version":"4545a2b4483788cc65b488100c61f20ebdb08c22c7344572885ec14826d2f24b","signature":"b9f112f8e9a593f362dd5f434f8f997385dd62f15e2d2fb6d316e5d0d9942a51"},{"version":"da7a3a8e8f9a45fc437aaac2ea1c26cd397ba8e4999ae8fdb3bc35215da5e78c","signature":"179a3729681883644b96d41e1048ce54b715886cd31ace21c1091c9819f7c567"},{"version":"bd5b8a86f5c2a72c6c19427cb4000b3a86abfacc99b6b791ea89b6b10dc77f4b","signature":"848707f7346bf1c9417dd5a6ddc612b48270e602c478adf61b2b7b689d2a0d5c","affectsGlobalScope":true},{"version":"3e6593fa6a99efe4b6c61edc7771f3282beb2bfa7b6d76c144162d6350aadfdf","signature":"e5bab926b7e2bbd9e1d4cbd6f4a1797c633aaf882f2d430a6fbe0668a65912a7"},{"version":"b823a47f674739ef4f8930b4fc7961da84deed0125827758c3eccf6b0f667943","signature":"c8525f0be940a19f3d03f06b6e43d4bea21ba910db62fb5024ecc671bcc23932"},{"version":"0a5c34b5beb8a2601a43ce9c71fbfa561948c9d34e85eefc1132e88234e56e8a","signature":"4d39290eedceeb1357cb96062e2e814a215c0ad4de23542b08ead7b6052f0c46"},{"version":"10c70193028378d8e6a8fa998c84f8f3edcd8eb740d0517b39da8c9db5d997af","signature":"0caa217adbbdb001facd9aeb363fa2a446eabbeb4e5af2c1f2c3d1ef4bbffc6e"},{"version":"183e5f443c3f08b129916020e34847e2e22ff4cf04e1b4bfeedfd98249dd1c27","signature":"eca9bb326aac9edccc1d84e0b623853fb0819c5402d4d2f0adc7fff3816a32d5"},{"version":"922da18315ec2452c207679bd94fc2ecf4073b5feefff9b5a2c3ca9c154d10b1","signature":"6640e0a204da635e3b3a3e734fcefc74931c01ead2109d454b17d713765e4234"},{"version":"480523b669bbb9f76db9794ef53e0ffed6504d4d0a1c81a40e3506a4edb0e2d3","signature":"40ae9adbcabee53e7301887c08281261144ac35f4535ebb2017a765bfd7121b8"},{"version":"934d2d6e26d57425550744e36443449d1d1d7e2e5d91e03afb1ca27290d4a158","signature":"bbaa85a96900ee24d770ce38f7807d2d3cc2ca203e223cd4080447680910992e"},{"version":"6ff12fe177bb2840a479ebb97058c5a3307212b75823c62a5229722357e5d843","signature":"931a7114fa2f626f8dfb69c1a932335300d72faf3e231f307976f66a46fc8dae"},{"version":"bc03c3c352f689e38c0ddd50c39b1e65d59273991bfc8858a9e3c0ebb79c023b","impliedFormat":1},{"version":"31cacc4baca75da10498f7bc0076bd0a3aa53c0a01c5767e18a7042dd9bd0542","signature":"e5f01228691d9795378d6ad95328f0ac4082a825c168ebdb8c2fc68955c058f2"},{"version":"f5fc85c645ea5080268815312383ccc9a2aab6ae28bc23a512c7d8117f4c1d2f","signature":"22d4574561376088c4025e1669a4a4e89e3266ec95739d1208f5a8354d677e04"}],"root":[[94,107],109,110],"options":{"allowJs":true,"allowSyntheticDefaultImports":true,"alwaysStrict":true,"declaration":true,"esModuleInterop":true,"experimentalDecorators":true,"jsx":4,"module":99,"noImplicitAny":true,"outDir":"./","preserveConstEnums":true,"removeComments":true,"rootDir":"../../src/client","skipLibCheck":true,"sourceMap":false,"strict":true,"strictBindCallApply":true,"strictFunctionTypes":true,"strictNullChecks":true,"strictPropertyInitialization":true,"suppressImplicitAnyIndexErrors":false,"target":99,"tsBuildInfoFile":"./.tsbuildinfo"},"referencedMap":[[108,1],[92,2],[93,1],[106,3],[103,4],[107,3],[101,5],[110,6],[104,4],[99,7],[96,8],[109,9],[95,10],[102,11],[100,12],[98,13],[105,14],[94,8],[97,3]],"version":"6.0.3"}
1
+ {"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/typescript/lib/lib.es2023.d.ts","../../node_modules/typescript/lib/lib.es2024.d.ts","../../node_modules/typescript/lib/lib.es2025.d.ts","../../node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../node_modules/typescript/lib/lib.es2024.collection.d.ts","../../node_modules/typescript/lib/lib.es2024.object.d.ts","../../node_modules/typescript/lib/lib.es2024.promise.d.ts","../../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2024.string.d.ts","../../node_modules/typescript/lib/lib.es2025.collection.d.ts","../../node_modules/typescript/lib/lib.es2025.float16.d.ts","../../node_modules/typescript/lib/lib.es2025.intl.d.ts","../../node_modules/typescript/lib/lib.es2025.iterator.d.ts","../../node_modules/typescript/lib/lib.es2025.promise.d.ts","../../node_modules/typescript/lib/lib.es2025.regexp.d.ts","../../node_modules/typescript/lib/lib.esnext.array.d.ts","../../node_modules/typescript/lib/lib.esnext.collection.d.ts","../../node_modules/typescript/lib/lib.esnext.date.d.ts","../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../node_modules/typescript/lib/lib.esnext.error.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.esnext.temporal.d.ts","../../node_modules/typescript/lib/lib.esnext.typedarrays.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../node_modules/@types/react/global.d.ts","../../node_modules/csstype/index.d.ts","../../node_modules/@types/react/index.d.ts","../../node_modules/@types/react/jsx-runtime.d.ts","../../node_modules/@types/react-dom/client.d.ts","../../src/client/navigation/scroll.ts","../../src/client/navigation/navigation.ts","../../src/client/routing/match.ts","../../src/client/types.ts","../../src/client/navigation/prefetch.ts","../../src/client/routing/error-boundary.tsx","../../src/client/routing/params-context.ts","../../src/client/routing/hooks.ts","../../src/client/routing/lazy.ts","../../src/client/routing/router.tsx","../../src/client/routing/mount.tsx","../../src/client/navigation/link.tsx","../../src/client/navigation/navlink.tsx","../../src/client/channel/channel.ts","../../src/client/head/head.ts","../../src/client/index.ts"],"fileIdsList":[[92],[90,91],[92,93],[93,96,97,98,99,102,104,105,106,107,108,109],[92,93,96,99],[93,95],[92,93,102,106],[93,97,98],[93],[92,93,98],[92,93,96,97,99,101],[93,94,96,98,99,104],[92,93,97],[92,93,95,96,97,98,100,101,102,103]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":1},{"version":"1e9332c23e9a907175e0ffc6a49e236f97b48838cc8aec9ce7e4cec21e544b65","impliedFormat":1},{"version":"3753fbc1113dc511214802a2342280a8b284ab9094f6420e7aa171e868679f91","impliedFormat":1},{"version":"999ca32883495a866aa5737fe1babc764a469e4cde6ee6b136a4b9ae68853e4b","impliedFormat":1},{"version":"17f13ecb98cbc39243f2eee1f16d45cd8ec4706b03ee314f1915f1a8b42f6984","impliedFormat":1},{"version":"d6b1eba8496bdd0eed6fc8a685768fe01b2da4a0388b5fe7df558290bffcf32f","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f57fc4404ff020bc45b9c620aff2b40f700b95fe31164024c453a5e3c163c54","impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":1},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":1},{"version":"0bd714129fca875f7d4c477a1a392200b0bcd13fb2e80928cd334b63830ea047","affectsGlobalScope":true,"impliedFormat":1},{"version":"e2c9037ae6cd2c52d80ceef0b3c5ffdb488627d71529cf4f63776daf11161c9a","affectsGlobalScope":true,"impliedFormat":1},{"version":"135d5cf4d345f59f1a9caadfafcd858d3d9cc68290db616cc85797224448cccc","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc238c3f81c2984751932b6aab223cd5b830e0ac6cad76389e5e9d2ffc03287d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4a07f9b76d361f572620927e5735b77d6d2101c23cdd94383eb5b706e7b36357","affectsGlobalScope":true,"impliedFormat":1},{"version":"7c4e8dc6ab834cc6baa0227e030606d29e3e8449a9f67cdf5605ea5493c4db29","affectsGlobalScope":true,"impliedFormat":1},{"version":"de7ba0fd02e06cd9a5bd4ab441ed0e122735786e67dde1e849cced1cd8b46b78","affectsGlobalScope":true,"impliedFormat":1},{"version":"6148e4e88d720a06855071c3db02069434142a8332cf9c182cda551adedf3156","affectsGlobalScope":true,"impliedFormat":1},{"version":"d63dba625b108316a40c95a4425f8d4294e0deeccfd6c7e59d819efa19e23409","affectsGlobalScope":true,"impliedFormat":1},{"version":"0568d6befee03dd435bed4fc25c4e46865b24bdcb8c563fdc21f580a2c301904","affectsGlobalScope":true,"impliedFormat":1},{"version":"30d62269b05b584741f19a5369852d5d34895aa2ac4fd948956f886d15f9cc0d","affectsGlobalScope":true,"impliedFormat":1},{"version":"f128dae7c44d8f35ee42e0a437000a57c9f06cc04f8b4fb42eebf44954d53dc8","affectsGlobalScope":true,"impliedFormat":1},{"version":"ffbe6d7b295306b2ba88030f65b74c107d8d99bdcf596ea99c62a02f606108b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"996fb27b15277369c68a4ba46ed138b4e9e839a02fb4ec756f7997629242fd9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"79b712591b270d4778c89706ca2cfc56ddb8c3f895840e477388f1710dc5eda9","affectsGlobalScope":true,"impliedFormat":1},{"version":"20884846cef428b992b9bd032e70a4ef88e349263f63aeddf04dda837a7dba26","affectsGlobalScope":true,"impliedFormat":1},{"version":"5fcab789c73a97cd43828ee3cc94a61264cf24d4c44472ce64ced0e0f148bdb2","affectsGlobalScope":true,"impliedFormat":1},{"version":"db59a81f070c1880ad645b2c0275022baa6a0c4f0acdc58d29d349c6efcf0903","affectsGlobalScope":true,"impliedFormat":1},{"version":"673294292640f5722b700e7d814e17aaf7d93f83a48a2c9b38f33cbc940ad8b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"d786b48f934cbca483b3c6d0a798cb43bbb4ada283e76fb22c28e53ae05b9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ecb8e347cb6b2a8927c09b86263663289418df375f5e68e11a0ae683776978f","affectsGlobalScope":true,"impliedFormat":1},{"version":"142efd4ce210576f777dc34df121777be89eda476942d6d6663b03dcb53be3ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"379bc41580c2d774f82e828c70308f24a005b490c25ba34d679d84bcf05c3d9d","affectsGlobalScope":true,"impliedFormat":1},{"version":"ed484fb2aa8a1a23d0277056ec3336e0a0b52f9b8d6a961f338a642faf43235d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ffedae1d1c2d53fdbca1c96d3c7dda544281f7d262f99b6880634f8fd8d9820","affectsGlobalScope":true,"impliedFormat":1},{"version":"83a730b125d477dd264df8ba479afab27a3dae7152b005c214ab94dc7ee44fd3","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},{"version":"7e29f41b158de217f94cb9676bf9cbd0cd9b5a46e1985141ed36e075c52bf6ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"bd7dee3446a5b94651d58000ddfda40296f073e9372891f65003a524b4620697","impliedFormat":1},{"version":"42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3","impliedFormat":1},{"version":"bc03c3c352f689e38c0ddd50c39b1e65d59273991bfc8858a9e3c0ebb79c023b","impliedFormat":1},{"version":"ee8a149229af2834098b2776d0de116b0ead67ecefb18d06ef9638ad0ebe7286","signature":"2b2db01796f774852b44cacad054f31b9e63a3c4ed787d12c1dd75c75e602bef"},{"version":"39cd1e337e978eaeb2d9763f758d1577d7909ffbabb24ee4b4b207ee81628d4b","signature":"4f9d93f71815adfcc969a2f7b3b92db59ec4699a5cc18beba07ca653914e6f45"},{"version":"4545a2b4483788cc65b488100c61f20ebdb08c22c7344572885ec14826d2f24b","signature":"b9f112f8e9a593f362dd5f434f8f997385dd62f15e2d2fb6d316e5d0d9942a51"},{"version":"da7a3a8e8f9a45fc437aaac2ea1c26cd397ba8e4999ae8fdb3bc35215da5e78c","signature":"179a3729681883644b96d41e1048ce54b715886cd31ace21c1091c9819f7c567"},{"version":"488471e75a4cb636dcc2316d57fdd3d8bc51a974bd01488d9c9e9e5a9c7b9d1f","signature":"09d6078412069edc1a6faad02c5846365d560ea26b03f0cd960137bd30ae4df9","affectsGlobalScope":true},{"version":"a8d9211eab44f7cb13502dcd4c3e8499730005cc721e8bcfa50364393dd4930f","signature":"9382f138465c4775c54940f2a3d4334a083a6fc9a622a7c926c5f8233228cbae"},{"version":"b823a47f674739ef4f8930b4fc7961da84deed0125827758c3eccf6b0f667943","signature":"c8525f0be940a19f3d03f06b6e43d4bea21ba910db62fb5024ecc671bcc23932"},{"version":"ed1ed49660d4063f3130a0df38314be2995477a007acbd20c17ec511b9cff8d4","signature":"fcfda4dbb94e80660f632ad7659e63b51a3e7cb712d406c8041a21d3b1403ea8"},{"version":"e4ef0a97b90c66381b4e0b0d5504031b1bb52f8d1b62830021663bb3bc954206","signature":"f24216878fc5ab5ba4ddbaa985a4a884291465f3d3f85407152e1c958005f5c6"},{"version":"719d29b569acab8fbb8d99e908510d0a8e126f8e13c5b8f3fbd24eb9ef785e5a","signature":"a6f8f9a7ca40a6be7b172f87c0713e545ed324237683231807f78f69d6d22ee1"},{"version":"29bee60575f0bba321025e57ee097481022253ae6cae59ccd5a20371354c46b8","signature":"0919ee3602e9acf26adb667ee70d197717931daf9bb06a5cdbe65011956b7765"},{"version":"3e6593fa6a99efe4b6c61edc7771f3282beb2bfa7b6d76c144162d6350aadfdf","signature":"e5bab926b7e2bbd9e1d4cbd6f4a1797c633aaf882f2d430a6fbe0668a65912a7"},{"version":"8bec5d913b66865ea88ced047c96b2f048c8343ca8e142e8c37942f6f9d62a35","signature":"0caa217adbbdb001facd9aeb363fa2a446eabbeb4e5af2c1f2c3d1ef4bbffc6e"},{"version":"934d2d6e26d57425550744e36443449d1d1d7e2e5d91e03afb1ca27290d4a158","signature":"bbaa85a96900ee24d770ce38f7807d2d3cc2ca203e223cd4080447680910992e"},{"version":"6ff12fe177bb2840a479ebb97058c5a3307212b75823c62a5229722357e5d843","signature":"931a7114fa2f626f8dfb69c1a932335300d72faf3e231f307976f66a46fc8dae"},{"version":"6bac96c4f69caf15fff1b49815b72dbaf4f3d74fca3f6131f931251ef9fcab84","signature":"b102d238e1b504075588a449527155ec415d89a36895df75d6217bd9eebb2bcf"}],"root":[[95,110]],"options":{"allowJs":true,"allowSyntheticDefaultImports":true,"alwaysStrict":true,"declaration":true,"esModuleInterop":true,"experimentalDecorators":true,"jsx":4,"module":99,"noImplicitAny":true,"outDir":"./","preserveConstEnums":true,"removeComments":true,"rootDir":"../../src/client","skipLibCheck":true,"sourceMap":false,"strict":true,"strictBindCallApply":true,"strictFunctionTypes":true,"strictNullChecks":true,"strictPropertyInitialization":true,"suppressImplicitAnyIndexErrors":false,"target":99,"tsBuildInfoFile":"./.tsbuildinfo"},"referencedMap":[[94,1],[92,2],[93,1],[108,3],[109,3],[110,4],[106,5],[96,6],[107,7],[99,8],[95,9],[100,10],[102,11],[103,10],[97,9],[105,12],[101,13],[104,14],[98,3]],"version":"6.0.3"}
@@ -0,0 +1,23 @@
1
+ export type ChannelData = string | ArrayBuffer;
2
+ export type SendData = Parameters<WebSocket['send']>[0];
3
+ export interface ChannelOptions {
4
+ readonly path?: string;
5
+ readonly url?: string;
6
+ readonly reconnect?: boolean;
7
+ readonly reconnectDelay?: number;
8
+ }
9
+ export interface Channel {
10
+ send(data: SendData): void;
11
+ close(): void;
12
+ }
13
+ export declare function resolveChannelUrl(path?: string, location?: {
14
+ protocol: string;
15
+ host: string;
16
+ }): string;
17
+ export declare function connectChannel(onMessage: (data: ChannelData) => void, options?: ChannelOptions): Channel;
18
+ export interface ChannelHook {
19
+ readonly connected: boolean;
20
+ readonly messages: ChannelData[];
21
+ send: (data: SendData) => void;
22
+ }
23
+ export declare function useChannel(options?: ChannelOptions): ChannelHook;
@@ -0,0 +1,94 @@
1
+ import { useCallback, useEffect, useRef, useState } from 'react';
2
+ export function resolveChannelUrl(path = '/_toil', location = window.location) {
3
+ const scheme = location.protocol === 'https:' ? 'wss:' : 'ws:';
4
+ const normalized = path.startsWith('/') ? path : `/${path}`;
5
+ return `${scheme}//${location.host}${normalized}`;
6
+ }
7
+ export function connectChannel(onMessage, options = {}) {
8
+ const url = options.url ?? resolveChannelUrl(options.path);
9
+ const reconnect = options.reconnect ?? true;
10
+ const delay = options.reconnectDelay ?? 1000;
11
+ let socket = null;
12
+ let stopped = false;
13
+ let timer;
14
+ const open = () => {
15
+ const ws = new WebSocket(url);
16
+ ws.binaryType = 'arraybuffer';
17
+ socket = ws;
18
+ ws.addEventListener('message', (event) => {
19
+ if (typeof event.data === 'string')
20
+ onMessage(event.data);
21
+ else if (event.data instanceof ArrayBuffer)
22
+ onMessage(event.data);
23
+ });
24
+ ws.addEventListener('close', () => {
25
+ if (!stopped && reconnect)
26
+ timer = setTimeout(open, delay);
27
+ });
28
+ };
29
+ open();
30
+ return {
31
+ send: (data) => {
32
+ if (socket && socket.readyState === WebSocket.OPEN)
33
+ socket.send(data);
34
+ },
35
+ close: () => {
36
+ stopped = true;
37
+ if (timer !== undefined)
38
+ clearTimeout(timer);
39
+ socket?.close();
40
+ },
41
+ };
42
+ }
43
+ export function useChannel(options = {}) {
44
+ const { path, url, reconnect, reconnectDelay } = options;
45
+ const [connected, setConnected] = useState(false);
46
+ const [messages, setMessages] = useState([]);
47
+ const socketRef = useRef(null);
48
+ useEffect(() => {
49
+ const target = url ?? resolveChannelUrl(path);
50
+ const shouldReconnect = reconnect ?? true;
51
+ const delay = reconnectDelay ?? 1000;
52
+ let stopped = false;
53
+ let timer;
54
+ const open = () => {
55
+ const ws = new WebSocket(target);
56
+ ws.binaryType = 'arraybuffer';
57
+ socketRef.current = ws;
58
+ ws.addEventListener('open', () => {
59
+ if (!stopped)
60
+ setConnected(true);
61
+ });
62
+ ws.addEventListener('message', (event) => {
63
+ if (typeof event.data === 'string') {
64
+ const data = event.data;
65
+ setMessages((prev) => [...prev, data]);
66
+ }
67
+ else if (event.data instanceof ArrayBuffer) {
68
+ const data = event.data;
69
+ setMessages((prev) => [...prev, data]);
70
+ }
71
+ });
72
+ ws.addEventListener('close', () => {
73
+ if (stopped)
74
+ return;
75
+ setConnected(false);
76
+ if (shouldReconnect)
77
+ timer = setTimeout(open, delay);
78
+ });
79
+ };
80
+ open();
81
+ return () => {
82
+ stopped = true;
83
+ if (timer !== undefined)
84
+ clearTimeout(timer);
85
+ socketRef.current?.close();
86
+ };
87
+ }, [path, url, reconnect, reconnectDelay]);
88
+ const send = useCallback((data) => {
89
+ const socket = socketRef.current;
90
+ if (socket && socket.readyState === WebSocket.OPEN)
91
+ socket.send(data);
92
+ }, []);
93
+ return { connected, messages, send };
94
+ }
@@ -0,0 +1,26 @@
1
+ export interface MetaTag {
2
+ readonly name?: string;
3
+ readonly property?: string;
4
+ readonly content: string;
5
+ readonly [attr: string]: string | undefined;
6
+ }
7
+ export interface LinkTag {
8
+ readonly rel: string;
9
+ readonly href: string;
10
+ readonly [attr: string]: string | undefined;
11
+ }
12
+ export interface HeadSpec {
13
+ readonly title?: string;
14
+ readonly titleTemplate?: string;
15
+ readonly meta?: readonly MetaTag[];
16
+ readonly link?: readonly LinkTag[];
17
+ }
18
+ export interface ResolvedHead {
19
+ readonly title?: string;
20
+ readonly meta: MetaTag[];
21
+ readonly link: LinkTag[];
22
+ }
23
+ export declare function mergeHead(specs: readonly HeadSpec[]): ResolvedHead;
24
+ export declare function useHead(spec: HeadSpec): void;
25
+ export declare function useTitle(title: string): void;
26
+ export declare function Head(props: HeadSpec): null;
@@ -0,0 +1,87 @@
1
+ import { useEffect } from 'react';
2
+ function metaKey(m) {
3
+ if (m.name !== undefined)
4
+ return `name:${m.name}`;
5
+ if (m.property !== undefined)
6
+ return `property:${m.property}`;
7
+ return `meta:${JSON.stringify(m)}`;
8
+ }
9
+ export function mergeHead(specs) {
10
+ let title;
11
+ let titleTemplate;
12
+ const meta = new Map();
13
+ const link = new Map();
14
+ for (const spec of specs) {
15
+ if (spec.title !== undefined)
16
+ title = spec.title;
17
+ if (spec.titleTemplate !== undefined)
18
+ titleTemplate = spec.titleTemplate;
19
+ for (const m of spec.meta ?? [])
20
+ meta.set(metaKey(m), m);
21
+ for (const l of spec.link ?? [])
22
+ link.set(`${l.rel}:${l.href}`, l);
23
+ }
24
+ const resolvedTitle = title !== undefined && titleTemplate !== undefined
25
+ ? titleTemplate.replace('%s', title)
26
+ : title;
27
+ return { title: resolvedTitle, meta: [...meta.values()], link: [...link.values()] };
28
+ }
29
+ const entries = new Map();
30
+ let order = [];
31
+ let seq = 0;
32
+ let baseTitle = null;
33
+ function setAttrs(el, attrs) {
34
+ el.setAttribute('data-toil-head', '');
35
+ for (const [key, value] of Object.entries(attrs)) {
36
+ if (value !== undefined)
37
+ el.setAttribute(key, value);
38
+ }
39
+ }
40
+ function apply() {
41
+ if (typeof document === 'undefined')
42
+ return;
43
+ if (baseTitle === null)
44
+ baseTitle = document.title;
45
+ const resolved = mergeHead(order.map((id) => entries.get(id)).filter((s) => !!s));
46
+ document.title = resolved.title ?? baseTitle;
47
+ for (const stale of document.head.querySelectorAll('[data-toil-head]'))
48
+ stale.remove();
49
+ for (const m of resolved.meta) {
50
+ const el = document.createElement('meta');
51
+ setAttrs(el, m);
52
+ document.head.appendChild(el);
53
+ }
54
+ for (const l of resolved.link) {
55
+ const el = document.createElement('link');
56
+ setAttrs(el, l);
57
+ document.head.appendChild(el);
58
+ }
59
+ }
60
+ function addHead(spec) {
61
+ const id = ++seq;
62
+ entries.set(id, spec);
63
+ order.push(id);
64
+ apply();
65
+ return id;
66
+ }
67
+ function removeHead(id) {
68
+ entries.delete(id);
69
+ order = order.filter((x) => x !== id);
70
+ apply();
71
+ }
72
+ export function useHead(spec) {
73
+ const json = JSON.stringify(spec);
74
+ useEffect(() => {
75
+ const id = addHead(JSON.parse(json));
76
+ return () => {
77
+ removeHead(id);
78
+ };
79
+ }, [json]);
80
+ }
81
+ export function useTitle(title) {
82
+ useHead({ title });
83
+ }
84
+ export function Head(props) {
85
+ useHead(props);
86
+ return null;
87
+ }
@@ -1,18 +1,18 @@
1
- export { mount } from './mount.js';
2
- export { Router } from './Router.js';
3
- export { Link } from './Link.js';
4
- export type { LinkProps } from './Link.js';
5
- export { NavLink, matchActive } from './NavLink.js';
6
- export type { NavLinkProps, NavLinkState } from './NavLink.js';
7
- export { navigate, back, forward, refresh } from './navigation.js';
8
- export type { NavigateOptions } from './navigation.js';
9
- export { useParams, useNavigate, useLocation, usePathname, useSearchParams, useRouter, useNavigationPending, } from './hooks.js';
10
- export type { RouterInstance } from './hooks.js';
11
- export { prefetch } from './prefetch.js';
1
+ export { mount } from './routing/mount.js';
2
+ export { Router } from './routing/Router.js';
3
+ export { Link } from './navigation/Link.js';
4
+ export type { LinkProps } from './navigation/Link.js';
5
+ export { NavLink, matchActive } from './navigation/NavLink.js';
6
+ export type { NavLinkProps, NavLinkState } from './navigation/NavLink.js';
7
+ export { navigate, back, forward, refresh } from './navigation/navigation.js';
8
+ export type { NavigateOptions } from './navigation/navigation.js';
9
+ export { useParams, useNavigate, useLocation, usePathname, useSearchParams, useRouter, useNavigationPending, } from './routing/hooks.js';
10
+ export type { RouterInstance } from './routing/hooks.js';
11
+ export { prefetch } from './navigation/prefetch.js';
12
12
  export type { RouteDef, LayoutLoader, LayoutComponentLoader, NotFoundLoader, RouteErrorProps, } from './types.js';
13
- export { matchRoute } from './match.js';
14
- export type { RouteParams } from './match.js';
15
- export { connectChannel, useChannel, resolveChannelUrl } from './channel.js';
16
- export type { Channel, ChannelOptions, ChannelHook, ChannelData } from './channel.js';
17
- export { useHead, useTitle, Head, mergeHead } from './head.js';
18
- export type { HeadSpec, MetaTag, LinkTag, ResolvedHead } from './head.js';
13
+ export { matchRoute } from './routing/match.js';
14
+ export type { RouteParams } from './routing/match.js';
15
+ export { connectChannel, useChannel, resolveChannelUrl } from './channel/channel.js';
16
+ export type { Channel, ChannelOptions, ChannelHook, ChannelData } from './channel/channel.js';
17
+ export { useHead, useTitle, Head, mergeHead } from './head/head.js';
18
+ export type { HeadSpec, MetaTag, LinkTag, ResolvedHead } from './head/head.js';
@@ -1,10 +1,10 @@
1
- export { mount } from './mount.js';
2
- export { Router } from './Router.js';
3
- export { Link } from './Link.js';
4
- export { NavLink, matchActive } from './NavLink.js';
5
- export { navigate, back, forward, refresh } from './navigation.js';
6
- export { useParams, useNavigate, useLocation, usePathname, useSearchParams, useRouter, useNavigationPending, } from './hooks.js';
7
- export { prefetch } from './prefetch.js';
8
- export { matchRoute } from './match.js';
9
- export { connectChannel, useChannel, resolveChannelUrl } from './channel.js';
10
- export { useHead, useTitle, Head, mergeHead } from './head.js';
1
+ export { mount } from './routing/mount.js';
2
+ export { Router } from './routing/Router.js';
3
+ export { Link } from './navigation/Link.js';
4
+ export { NavLink, matchActive } from './navigation/NavLink.js';
5
+ export { navigate, back, forward, refresh } from './navigation/navigation.js';
6
+ export { useParams, useNavigate, useLocation, usePathname, useSearchParams, useRouter, useNavigationPending, } from './routing/hooks.js';
7
+ export { prefetch } from './navigation/prefetch.js';
8
+ export { matchRoute } from './routing/match.js';
9
+ export { connectChannel, useChannel, resolveChannelUrl } from './channel/channel.js';
10
+ export { useHead, useTitle, Head, mergeHead } from './head/head.js';
@@ -0,0 +1,8 @@
1
+ import type { ComponentPropsWithRef, ReactNode } from 'react';
2
+ export interface LinkProps extends Omit<ComponentPropsWithRef<'a'>, 'href'> {
3
+ href: string;
4
+ replace?: boolean;
5
+ scroll?: boolean;
6
+ prefetch?: boolean;
7
+ }
8
+ export declare function Link(props: LinkProps): ReactNode;
@@ -0,0 +1,44 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { navigate } from './navigation.js';
3
+ import { prefetch } from './prefetch.js';
4
+ function isExternalHref(href) {
5
+ try {
6
+ return new URL(href, window.location.href).origin !== window.location.origin;
7
+ }
8
+ catch {
9
+ return true;
10
+ }
11
+ }
12
+ export function Link(props) {
13
+ const { href, replace = false, scroll = true, prefetch: prefetchProp = true, onClick, onPointerEnter, onFocus, children, ...rest } = props;
14
+ const handleClick = (event) => {
15
+ onClick?.(event);
16
+ if (event.defaultPrevented ||
17
+ event.button !== 0 ||
18
+ event.metaKey ||
19
+ event.ctrlKey ||
20
+ event.shiftKey ||
21
+ event.altKey ||
22
+ (rest.target !== undefined && rest.target !== '_self') ||
23
+ rest.download !== undefined ||
24
+ href.startsWith('#') ||
25
+ isExternalHref(href)) {
26
+ return;
27
+ }
28
+ event.preventDefault();
29
+ navigate(href, { replace, scroll });
30
+ };
31
+ const warm = () => {
32
+ if (prefetchProp)
33
+ prefetch(href);
34
+ };
35
+ const handlePointerEnter = (event) => {
36
+ onPointerEnter?.(event);
37
+ warm();
38
+ };
39
+ const handleFocus = (event) => {
40
+ onFocus?.(event);
41
+ warm();
42
+ };
43
+ return (_jsx("a", { ...rest, ...(prefetchProp ? {} : { 'data-no-prefetch': '' }), href: href, onClick: handleClick, onPointerEnter: handlePointerEnter, onFocus: handleFocus, children: children }));
44
+ }
@@ -0,0 +1,14 @@
1
+ import type { CSSProperties, ReactNode } from 'react';
2
+ import { type LinkProps } from './Link.js';
3
+ export interface NavLinkState {
4
+ readonly isActive: boolean;
5
+ }
6
+ export interface NavLinkProps extends Omit<LinkProps, 'className' | 'style' | 'children'> {
7
+ className?: string | ((state: NavLinkState) => string | undefined);
8
+ style?: CSSProperties | ((state: NavLinkState) => CSSProperties | undefined);
9
+ children?: ReactNode | ((state: NavLinkState) => ReactNode);
10
+ end?: boolean;
11
+ activeClassName?: string;
12
+ }
13
+ export declare function matchActive(linkPath: string, currentPath: string, end: boolean): boolean;
14
+ export declare function NavLink(props: NavLinkProps): ReactNode;
@@ -0,0 +1,37 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useLocation } from '../routing/hooks.js';
3
+ import { Link } from './Link.js';
4
+ function normalizePath(p) {
5
+ return p.length > 1 ? p.replace(/\/+$/, '') : p;
6
+ }
7
+ export function matchActive(linkPath, currentPath, end) {
8
+ const link = normalizePath(linkPath);
9
+ const current = normalizePath(currentPath);
10
+ if (current === link)
11
+ return true;
12
+ if (end)
13
+ return false;
14
+ if (link === '/')
15
+ return true;
16
+ return current.startsWith(link + '/');
17
+ }
18
+ export function NavLink(props) {
19
+ const { href, className, style, children, end = false, activeClassName = 'active', ...rest } = props;
20
+ const pathname = useLocation();
21
+ let linkPath = href;
22
+ try {
23
+ linkPath = new URL(href, window.location.href).pathname;
24
+ }
25
+ catch {
26
+ linkPath = href;
27
+ }
28
+ const isActive = matchActive(linkPath, pathname, end);
29
+ const state = { isActive };
30
+ const resolvedClassName = typeof className === 'function'
31
+ ? className(state)
32
+ : [className, isActive ? activeClassName : undefined].filter(Boolean).join(' ') ||
33
+ undefined;
34
+ const resolvedStyle = typeof style === 'function' ? style(state) : style;
35
+ const resolvedChildren = typeof children === 'function' ? children(state) : children;
36
+ return (_jsx(Link, { ...rest, href: href, className: resolvedClassName, style: resolvedStyle, "aria-current": isActive ? 'page' : undefined, children: resolvedChildren }));
37
+ }
@@ -0,0 +1,13 @@
1
+ export declare function settleNavigation(): void;
2
+ export declare function isNavigationPending(): boolean;
3
+ export declare function subscribePending(listener: () => void): () => void;
4
+ export interface NavigateOptions {
5
+ readonly replace?: boolean;
6
+ readonly scroll?: boolean;
7
+ }
8
+ export declare function initNavigation(): void;
9
+ export declare function navigate(href: string, options?: NavigateOptions): void;
10
+ export declare function back(): void;
11
+ export declare function forward(): void;
12
+ export declare function refresh(): void;
13
+ export declare function subscribeLocation(listener: () => void): () => void;
@@ -0,0 +1,97 @@
1
+ import { enableManualScrollRestoration, planScroll, rememberScroll, } from './scroll.js';
2
+ const listeners = new Set();
3
+ let popstateBound = false;
4
+ let keyCounter = 0;
5
+ let currentKey = 'initial';
6
+ function nextKey() {
7
+ keyCounter += 1;
8
+ return `t${String(keyCounter)}`;
9
+ }
10
+ function notify() {
11
+ for (const listener of listeners)
12
+ listener();
13
+ }
14
+ let startedTick = 0;
15
+ let committedTick = 0;
16
+ const pendingListeners = new Set();
17
+ function emitPending() {
18
+ for (const listener of pendingListeners)
19
+ listener();
20
+ }
21
+ function beginNavigation() {
22
+ startedTick += 1;
23
+ emitPending();
24
+ }
25
+ export function settleNavigation() {
26
+ if (committedTick !== startedTick) {
27
+ committedTick = startedTick;
28
+ emitPending();
29
+ }
30
+ }
31
+ export function isNavigationPending() {
32
+ return startedTick !== committedTick;
33
+ }
34
+ export function subscribePending(listener) {
35
+ pendingListeners.add(listener);
36
+ return () => {
37
+ pendingListeners.delete(listener);
38
+ };
39
+ }
40
+ export function initNavigation() {
41
+ enableManualScrollRestoration();
42
+ const state = window.history.state;
43
+ if (state?.__toilKey) {
44
+ currentKey = state.__toilKey;
45
+ }
46
+ else {
47
+ currentKey = nextKey();
48
+ window.history.replaceState({ ...state, __toilKey: currentKey }, '');
49
+ }
50
+ }
51
+ export function navigate(href, options) {
52
+ beginNavigation();
53
+ rememberScroll(currentKey);
54
+ let hash = '';
55
+ try {
56
+ hash = new URL(href, window.location.href).hash;
57
+ }
58
+ catch {
59
+ hash = '';
60
+ }
61
+ if (options?.replace) {
62
+ window.history.replaceState({ __toilKey: currentKey }, '', href);
63
+ }
64
+ else {
65
+ currentKey = nextKey();
66
+ window.history.pushState({ __toilKey: currentKey }, '', href);
67
+ }
68
+ planScroll({ hash, toTop: options?.scroll !== false });
69
+ notify();
70
+ }
71
+ export function back() {
72
+ window.history.back();
73
+ }
74
+ export function forward() {
75
+ window.history.forward();
76
+ }
77
+ export function refresh() {
78
+ notify();
79
+ }
80
+ function handlePopState(event) {
81
+ beginNavigation();
82
+ rememberScroll(currentKey);
83
+ const state = event.state;
84
+ currentKey = state?.__toilKey ?? 'initial';
85
+ planScroll({ restoreKey: currentKey, hash: window.location.hash, toTop: false });
86
+ notify();
87
+ }
88
+ export function subscribeLocation(listener) {
89
+ if (!popstateBound) {
90
+ window.addEventListener('popstate', handlePopState);
91
+ popstateBound = true;
92
+ }
93
+ listeners.add(listener);
94
+ return () => {
95
+ listeners.delete(listener);
96
+ };
97
+ }