one 1.2.57 → 1.2.58

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/dist/cjs/cli/buildPage.cjs +1 -1
  2. package/dist/cjs/cli/buildPage.js +1 -1
  3. package/dist/cjs/cli/buildPage.native.js +1 -1
  4. package/dist/cjs/cli/buildPage.native.js.map +1 -1
  5. package/dist/cjs/cli/dev.cjs +4 -4
  6. package/dist/cjs/cli/dev.js +4 -4
  7. package/dist/cjs/cli/dev.js.map +1 -1
  8. package/dist/cjs/cli/dev.native.js +4 -4
  9. package/dist/cjs/cli/dev.native.js.map +1 -1
  10. package/dist/cjs/createApp.cjs +2 -1
  11. package/dist/cjs/createApp.js +2 -2
  12. package/dist/cjs/createApp.js.map +1 -1
  13. package/dist/cjs/createHandleRequest.test.js +3 -1
  14. package/dist/cjs/createHandleRequest.test.js.map +1 -1
  15. package/dist/cjs/createHandleRequest.test.native.js.map +1 -1
  16. package/dist/cjs/devtools/registry.cjs +30 -0
  17. package/dist/cjs/devtools/registry.js +25 -0
  18. package/dist/cjs/devtools/registry.js.map +6 -0
  19. package/dist/cjs/devtools/registry.native.js +33 -0
  20. package/dist/cjs/devtools/registry.native.js.map +1 -0
  21. package/dist/cjs/fork/createMemoryHistory.cjs +20 -9
  22. package/dist/cjs/fork/createMemoryHistory.js +22 -4
  23. package/dist/cjs/fork/createMemoryHistory.js.map +1 -1
  24. package/dist/cjs/fork/createMemoryHistory.native.js +20 -9
  25. package/dist/cjs/fork/createMemoryHistory.native.js.map +1 -1
  26. package/dist/cjs/fork/useLinking.cjs +11 -5
  27. package/dist/cjs/fork/useLinking.js +6 -6
  28. package/dist/cjs/fork/useLinking.js.map +1 -1
  29. package/dist/cjs/index.cjs +17 -1
  30. package/dist/cjs/index.js +12 -2
  31. package/dist/cjs/index.js.map +1 -1
  32. package/dist/cjs/index.native.js +17 -1
  33. package/dist/cjs/index.native.js.map +1 -1
  34. package/dist/cjs/layouts/withLayoutContext.cjs +34 -15
  35. package/dist/cjs/layouts/withLayoutContext.js +29 -13
  36. package/dist/cjs/layouts/withLayoutContext.js.map +1 -1
  37. package/dist/cjs/layouts/withLayoutContext.native.js +42 -19
  38. package/dist/cjs/layouts/withLayoutContext.native.js.map +1 -1
  39. package/dist/cjs/link/Link.cjs +5 -2
  40. package/dist/cjs/link/Link.js +3 -2
  41. package/dist/cjs/link/Link.js.map +1 -1
  42. package/dist/cjs/link/Link.native.js +6 -1
  43. package/dist/cjs/link/Link.native.js.map +1 -1
  44. package/dist/cjs/link/useLinkTo.cjs +11 -3
  45. package/dist/cjs/link/useLinkTo.js +6 -3
  46. package/dist/cjs/link/useLinkTo.js.map +1 -1
  47. package/dist/cjs/link/useLinkTo.native.js +11 -3
  48. package/dist/cjs/link/useLinkTo.native.js.map +1 -1
  49. package/dist/cjs/router/Route.js.map +1 -1
  50. package/dist/cjs/router/Route.native.js.map +1 -1
  51. package/dist/cjs/router/findRouteNode.cjs +70 -0
  52. package/dist/cjs/router/findRouteNode.js +72 -0
  53. package/dist/cjs/router/findRouteNode.js.map +6 -0
  54. package/dist/cjs/router/findRouteNode.native.js +104 -0
  55. package/dist/cjs/router/findRouteNode.native.js.map +1 -0
  56. package/dist/cjs/router/router.cjs +160 -11
  57. package/dist/cjs/router/router.js +142 -7
  58. package/dist/cjs/router/router.js.map +2 -2
  59. package/dist/cjs/router/router.native.js +241 -57
  60. package/dist/cjs/router/router.native.js.map +1 -1
  61. package/dist/cjs/router/useScreens.cjs +1 -1
  62. package/dist/cjs/router/useScreens.js +1 -1
  63. package/dist/cjs/router/useScreens.js.map +1 -1
  64. package/dist/cjs/router/useScreens.native.js +5 -2
  65. package/dist/cjs/router/useScreens.native.js.map +1 -1
  66. package/dist/cjs/server/oneServe.js.map +1 -1
  67. package/dist/cjs/server/oneServe.native.js.map +1 -1
  68. package/dist/cjs/useBlocker.cjs +158 -0
  69. package/dist/cjs/useBlocker.js +145 -0
  70. package/dist/cjs/useBlocker.js.map +6 -0
  71. package/dist/cjs/useBlocker.native.js +89 -0
  72. package/dist/cjs/useBlocker.native.js.map +1 -0
  73. package/dist/cjs/useLoader.cjs +69 -3
  74. package/dist/cjs/useLoader.js +57 -4
  75. package/dist/cjs/useLoader.js.map +2 -2
  76. package/dist/cjs/useLoader.native.js +90 -6
  77. package/dist/cjs/useLoader.native.js.map +1 -1
  78. package/dist/cjs/useScrollGroup.cjs +37 -0
  79. package/dist/cjs/useScrollGroup.js +30 -0
  80. package/dist/cjs/useScrollGroup.js.map +6 -0
  81. package/dist/cjs/useScrollGroup.native.js +29 -0
  82. package/dist/cjs/useScrollGroup.native.js.map +1 -0
  83. package/dist/cjs/validateParams.cjs +80 -0
  84. package/dist/cjs/validateParams.js +84 -0
  85. package/dist/cjs/validateParams.js.map +6 -0
  86. package/dist/cjs/validateParams.native.js +180 -0
  87. package/dist/cjs/validateParams.native.js.map +1 -0
  88. package/dist/cjs/validateSearch.cjs +104 -0
  89. package/dist/cjs/validateSearch.js +99 -0
  90. package/dist/cjs/validateSearch.js.map +6 -0
  91. package/dist/cjs/validateSearch.native.js +202 -0
  92. package/dist/cjs/validateSearch.native.js.map +1 -0
  93. package/dist/cjs/views/ErrorBoundary.cjs +293 -10
  94. package/dist/cjs/views/ErrorBoundary.js +328 -8
  95. package/dist/cjs/views/ErrorBoundary.js.map +2 -2
  96. package/dist/cjs/views/ErrorBoundary.native.js +159 -4
  97. package/dist/cjs/views/ErrorBoundary.native.js.map +1 -1
  98. package/dist/cjs/views/Navigator.cjs +10 -3
  99. package/dist/cjs/views/Navigator.js +7 -3
  100. package/dist/cjs/views/Navigator.js.map +1 -1
  101. package/dist/cjs/views/Navigator.native.js +12 -3
  102. package/dist/cjs/views/Navigator.native.js.map +1 -1
  103. package/dist/cjs/views/Protected.cjs +36 -0
  104. package/dist/cjs/views/Protected.js +27 -0
  105. package/dist/cjs/views/Protected.js.map +6 -0
  106. package/dist/cjs/views/Protected.native.js +44 -0
  107. package/dist/cjs/views/Protected.native.js.map +1 -0
  108. package/dist/cjs/views/RootErrorBoundary.cjs +193 -8
  109. package/dist/cjs/views/RootErrorBoundary.js +213 -8
  110. package/dist/cjs/views/RootErrorBoundary.js.map +1 -1
  111. package/dist/cjs/views/RootErrorBoundary.native.js +192 -8
  112. package/dist/cjs/views/RootErrorBoundary.native.js.map +1 -1
  113. package/dist/cjs/views/ScrollBehavior.cjs +49 -11
  114. package/dist/cjs/views/ScrollBehavior.js +47 -11
  115. package/dist/cjs/views/ScrollBehavior.js.map +1 -1
  116. package/dist/cjs/views/ScrollBehavior.native.js +68 -10
  117. package/dist/cjs/views/ScrollBehavior.native.js.map +1 -1
  118. package/dist/cjs/views/SourceInspector.cjs +28 -0
  119. package/dist/cjs/views/SourceInspector.js +23 -0
  120. package/dist/cjs/views/SourceInspector.js.map +6 -0
  121. package/dist/cjs/views/SourceInspector.native.js +32 -0
  122. package/dist/cjs/views/SourceInspector.native.js.map +1 -0
  123. package/dist/cjs/views/Try.cjs +40 -7
  124. package/dist/cjs/views/Try.js +38 -4
  125. package/dist/cjs/views/Try.js.map +1 -1
  126. package/dist/cjs/views/Try.native.js +42 -7
  127. package/dist/cjs/views/Try.native.js.map +1 -1
  128. package/dist/cjs/vite/DevHead.cjs +797 -43
  129. package/dist/cjs/vite/DevHead.js +802 -51
  130. package/dist/cjs/vite/DevHead.js.map +1 -1
  131. package/dist/cjs/vite/DevHead.native.js +783 -1
  132. package/dist/cjs/vite/DevHead.native.js.map +1 -1
  133. package/dist/cjs/vite/one.cjs +7 -1
  134. package/dist/cjs/vite/one.js +7 -2
  135. package/dist/cjs/vite/one.js.map +1 -1
  136. package/dist/cjs/vite/one.native.js +11 -1
  137. package/dist/cjs/vite/one.native.js.map +1 -1
  138. package/dist/cjs/vite/plugins/SSRCSSPlugin.cjs +44 -4
  139. package/dist/cjs/vite/plugins/SSRCSSPlugin.js +48 -4
  140. package/dist/cjs/vite/plugins/SSRCSSPlugin.js.map +1 -1
  141. package/dist/cjs/vite/plugins/SSRCSSPlugin.native.js +62 -5
  142. package/dist/cjs/vite/plugins/SSRCSSPlugin.native.js.map +1 -1
  143. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js +6 -3
  144. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
  145. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
  146. package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.cjs +5 -1
  147. package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.js +11 -6
  148. package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.js.map +1 -1
  149. package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.native.js +1 -0
  150. package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.native.js.map +1 -1
  151. package/dist/cjs/vite/plugins/sourceInspectorPlugin.cjs +155 -0
  152. package/dist/cjs/vite/plugins/sourceInspectorPlugin.js +148 -0
  153. package/dist/cjs/vite/plugins/sourceInspectorPlugin.js.map +6 -0
  154. package/dist/cjs/vite/plugins/sourceInspectorPlugin.native.js +231 -0
  155. package/dist/cjs/vite/plugins/sourceInspectorPlugin.native.js.map +1 -0
  156. package/dist/cjs/vite/plugins/virtualEntryPlugin.cjs +25 -6
  157. package/dist/cjs/vite/plugins/virtualEntryPlugin.js +16 -6
  158. package/dist/cjs/vite/plugins/virtualEntryPlugin.js.map +1 -1
  159. package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js +26 -7
  160. package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
  161. package/dist/esm/cli/buildPage.js +1 -1
  162. package/dist/esm/cli/buildPage.mjs +1 -1
  163. package/dist/esm/cli/buildPage.mjs.map +1 -1
  164. package/dist/esm/cli/buildPage.native.js +1 -1
  165. package/dist/esm/cli/buildPage.native.js.map +1 -1
  166. package/dist/esm/cli/dev.js +4 -4
  167. package/dist/esm/cli/dev.js.map +1 -1
  168. package/dist/esm/cli/dev.mjs +4 -4
  169. package/dist/esm/cli/dev.mjs.map +1 -1
  170. package/dist/esm/cli/dev.native.js +4 -4
  171. package/dist/esm/cli/dev.native.js.map +1 -1
  172. package/dist/esm/createApp.js +2 -2
  173. package/dist/esm/createApp.js.map +1 -1
  174. package/dist/esm/createApp.mjs +2 -1
  175. package/dist/esm/createApp.mjs.map +1 -1
  176. package/dist/esm/createHandleRequest.test.js +3 -1
  177. package/dist/esm/createHandleRequest.test.js.map +1 -1
  178. package/dist/esm/createHandleRequest.test.mjs.map +1 -1
  179. package/dist/esm/createHandleRequest.test.native.js.map +1 -1
  180. package/dist/esm/devtools/registry.js +9 -0
  181. package/dist/esm/devtools/registry.js.map +6 -0
  182. package/dist/esm/devtools/registry.mjs +6 -0
  183. package/dist/esm/devtools/registry.mjs.map +1 -0
  184. package/dist/esm/devtools/registry.native.js +6 -0
  185. package/dist/esm/devtools/registry.native.js.map +1 -0
  186. package/dist/esm/fork/createMemoryHistory.js +22 -4
  187. package/dist/esm/fork/createMemoryHistory.js.map +1 -1
  188. package/dist/esm/fork/createMemoryHistory.mjs +20 -9
  189. package/dist/esm/fork/createMemoryHistory.mjs.map +1 -1
  190. package/dist/esm/fork/createMemoryHistory.native.js +20 -9
  191. package/dist/esm/fork/createMemoryHistory.native.js.map +1 -1
  192. package/dist/esm/fork/useLinking.js +6 -5
  193. package/dist/esm/fork/useLinking.js.map +1 -1
  194. package/dist/esm/fork/useLinking.mjs +11 -5
  195. package/dist/esm/fork/useLinking.mjs.map +1 -1
  196. package/dist/esm/index.js +30 -2
  197. package/dist/esm/index.js.map +1 -1
  198. package/dist/esm/index.mjs +8 -2
  199. package/dist/esm/index.mjs.map +1 -1
  200. package/dist/esm/index.native.js +8 -2
  201. package/dist/esm/index.native.js.map +1 -1
  202. package/dist/esm/layouts/withLayoutContext.js +30 -12
  203. package/dist/esm/layouts/withLayoutContext.js.map +1 -1
  204. package/dist/esm/layouts/withLayoutContext.mjs +34 -15
  205. package/dist/esm/layouts/withLayoutContext.mjs.map +1 -1
  206. package/dist/esm/layouts/withLayoutContext.native.js +42 -19
  207. package/dist/esm/layouts/withLayoutContext.native.js.map +1 -1
  208. package/dist/esm/link/Link.js +3 -2
  209. package/dist/esm/link/Link.js.map +1 -1
  210. package/dist/esm/link/Link.mjs +5 -2
  211. package/dist/esm/link/Link.mjs.map +1 -1
  212. package/dist/esm/link/Link.native.js +6 -1
  213. package/dist/esm/link/Link.native.js.map +1 -1
  214. package/dist/esm/link/useLinkTo.js +6 -3
  215. package/dist/esm/link/useLinkTo.js.map +1 -1
  216. package/dist/esm/link/useLinkTo.mjs +11 -3
  217. package/dist/esm/link/useLinkTo.mjs.map +1 -1
  218. package/dist/esm/link/useLinkTo.native.js +11 -3
  219. package/dist/esm/link/useLinkTo.native.js.map +1 -1
  220. package/dist/esm/router/Route.js.map +1 -1
  221. package/dist/esm/router/Route.mjs.map +1 -1
  222. package/dist/esm/router/Route.native.js.map +1 -1
  223. package/dist/esm/router/findRouteNode.js +56 -0
  224. package/dist/esm/router/findRouteNode.js.map +6 -0
  225. package/dist/esm/router/findRouteNode.mjs +44 -0
  226. package/dist/esm/router/findRouteNode.mjs.map +1 -0
  227. package/dist/esm/router/findRouteNode.native.js +75 -0
  228. package/dist/esm/router/findRouteNode.native.js.map +1 -0
  229. package/dist/esm/router/router.js +154 -6
  230. package/dist/esm/router/router.js.map +1 -1
  231. package/dist/esm/router/router.mjs +151 -10
  232. package/dist/esm/router/router.mjs.map +1 -1
  233. package/dist/esm/router/router.native.js +232 -56
  234. package/dist/esm/router/router.native.js.map +1 -1
  235. package/dist/esm/router/useScreens.js +1 -1
  236. package/dist/esm/router/useScreens.js.map +1 -1
  237. package/dist/esm/router/useScreens.mjs +1 -1
  238. package/dist/esm/router/useScreens.mjs.map +1 -1
  239. package/dist/esm/router/useScreens.native.js +5 -2
  240. package/dist/esm/router/useScreens.native.js.map +1 -1
  241. package/dist/esm/server/oneServe.js.map +1 -1
  242. package/dist/esm/server/oneServe.mjs.map +1 -1
  243. package/dist/esm/server/oneServe.native.js.map +1 -1
  244. package/dist/esm/useBlocker.js +122 -0
  245. package/dist/esm/useBlocker.js.map +6 -0
  246. package/dist/esm/useBlocker.mjs +123 -0
  247. package/dist/esm/useBlocker.mjs.map +1 -0
  248. package/dist/esm/useBlocker.native.js +51 -0
  249. package/dist/esm/useBlocker.native.js.map +1 -0
  250. package/dist/esm/useLoader.js +57 -3
  251. package/dist/esm/useLoader.js.map +2 -2
  252. package/dist/esm/useLoader.mjs +69 -4
  253. package/dist/esm/useLoader.mjs.map +1 -1
  254. package/dist/esm/useLoader.native.js +90 -7
  255. package/dist/esm/useLoader.native.js.map +1 -1
  256. package/dist/esm/useScrollGroup.js +16 -0
  257. package/dist/esm/useScrollGroup.js.map +6 -0
  258. package/dist/esm/useScrollGroup.mjs +14 -0
  259. package/dist/esm/useScrollGroup.mjs.map +1 -0
  260. package/dist/esm/useScrollGroup.native.js +3 -0
  261. package/dist/esm/useScrollGroup.native.js.map +1 -0
  262. package/dist/esm/validateParams.js +68 -0
  263. package/dist/esm/validateParams.js.map +6 -0
  264. package/dist/esm/validateParams.mjs +54 -0
  265. package/dist/esm/validateParams.mjs.map +1 -0
  266. package/dist/esm/validateParams.native.js +151 -0
  267. package/dist/esm/validateParams.native.js.map +1 -0
  268. package/dist/esm/validateSearch.js +83 -0
  269. package/dist/esm/validateSearch.js.map +6 -0
  270. package/dist/esm/validateSearch.mjs +77 -0
  271. package/dist/esm/validateSearch.mjs.map +1 -0
  272. package/dist/esm/validateSearch.native.js +172 -0
  273. package/dist/esm/validateSearch.native.js.map +1 -0
  274. package/dist/esm/views/ErrorBoundary.js +325 -7
  275. package/dist/esm/views/ErrorBoundary.js.map +2 -2
  276. package/dist/esm/views/ErrorBoundary.mjs +289 -6
  277. package/dist/esm/views/ErrorBoundary.mjs.map +1 -1
  278. package/dist/esm/views/ErrorBoundary.native.js +159 -4
  279. package/dist/esm/views/ErrorBoundary.native.js.map +1 -1
  280. package/dist/esm/views/Navigator.js +7 -2
  281. package/dist/esm/views/Navigator.js.map +1 -1
  282. package/dist/esm/views/Navigator.mjs +10 -3
  283. package/dist/esm/views/Navigator.mjs.map +1 -1
  284. package/dist/esm/views/Navigator.native.js +12 -3
  285. package/dist/esm/views/Navigator.native.js.map +1 -1
  286. package/dist/esm/views/Protected.js +14 -0
  287. package/dist/esm/views/Protected.js.map +6 -0
  288. package/dist/esm/views/Protected.mjs +11 -0
  289. package/dist/esm/views/Protected.mjs.map +1 -0
  290. package/dist/esm/views/Protected.native.js +16 -0
  291. package/dist/esm/views/Protected.native.js.map +1 -0
  292. package/dist/esm/views/RootErrorBoundary.js +214 -7
  293. package/dist/esm/views/RootErrorBoundary.js.map +1 -1
  294. package/dist/esm/views/RootErrorBoundary.mjs +192 -7
  295. package/dist/esm/views/RootErrorBoundary.mjs.map +1 -1
  296. package/dist/esm/views/RootErrorBoundary.native.js +191 -7
  297. package/dist/esm/views/RootErrorBoundary.native.js.map +1 -1
  298. package/dist/esm/views/ScrollBehavior.js +47 -11
  299. package/dist/esm/views/ScrollBehavior.js.map +1 -1
  300. package/dist/esm/views/ScrollBehavior.mjs +48 -11
  301. package/dist/esm/views/ScrollBehavior.mjs.map +1 -1
  302. package/dist/esm/views/ScrollBehavior.native.js +67 -10
  303. package/dist/esm/views/ScrollBehavior.native.js.map +1 -1
  304. package/dist/esm/views/SourceInspector.js +7 -0
  305. package/dist/esm/views/SourceInspector.js.map +6 -0
  306. package/dist/esm/views/SourceInspector.mjs +5 -0
  307. package/dist/esm/views/SourceInspector.mjs.map +1 -0
  308. package/dist/esm/views/SourceInspector.native.js +6 -0
  309. package/dist/esm/views/SourceInspector.native.js.map +1 -0
  310. package/dist/esm/views/Try.js +38 -4
  311. package/dist/esm/views/Try.js.map +1 -1
  312. package/dist/esm/views/Try.mjs +40 -7
  313. package/dist/esm/views/Try.mjs.map +1 -1
  314. package/dist/esm/views/Try.native.js +42 -7
  315. package/dist/esm/views/Try.native.js.map +1 -1
  316. package/dist/esm/vite/DevHead.js +802 -51
  317. package/dist/esm/vite/DevHead.js.map +1 -1
  318. package/dist/esm/vite/DevHead.mjs +797 -43
  319. package/dist/esm/vite/DevHead.mjs.map +1 -1
  320. package/dist/esm/vite/DevHead.native.js +782 -0
  321. package/dist/esm/vite/DevHead.native.js.map +1 -1
  322. package/dist/esm/vite/one.js +7 -1
  323. package/dist/esm/vite/one.js.map +1 -1
  324. package/dist/esm/vite/one.mjs +7 -1
  325. package/dist/esm/vite/one.mjs.map +1 -1
  326. package/dist/esm/vite/one.native.js +11 -1
  327. package/dist/esm/vite/one.native.js.map +1 -1
  328. package/dist/esm/vite/plugins/SSRCSSPlugin.js +48 -4
  329. package/dist/esm/vite/plugins/SSRCSSPlugin.js.map +1 -1
  330. package/dist/esm/vite/plugins/SSRCSSPlugin.mjs +44 -4
  331. package/dist/esm/vite/plugins/SSRCSSPlugin.mjs.map +1 -1
  332. package/dist/esm/vite/plugins/SSRCSSPlugin.native.js +61 -4
  333. package/dist/esm/vite/plugins/SSRCSSPlugin.native.js.map +1 -1
  334. package/dist/esm/vite/plugins/fileSystemRouterPlugin.js +6 -3
  335. package/dist/esm/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
  336. package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs.map +1 -1
  337. package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
  338. package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.js +11 -6
  339. package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.js.map +1 -1
  340. package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.mjs +5 -1
  341. package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.mjs.map +1 -1
  342. package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.native.js +1 -0
  343. package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.native.js.map +1 -1
  344. package/dist/esm/vite/plugins/sourceInspectorPlugin.js +126 -0
  345. package/dist/esm/vite/plugins/sourceInspectorPlugin.js.map +6 -0
  346. package/dist/esm/vite/plugins/sourceInspectorPlugin.mjs +121 -0
  347. package/dist/esm/vite/plugins/sourceInspectorPlugin.mjs.map +1 -0
  348. package/dist/esm/vite/plugins/sourceInspectorPlugin.native.js +194 -0
  349. package/dist/esm/vite/plugins/sourceInspectorPlugin.native.js.map +1 -0
  350. package/dist/esm/vite/plugins/virtualEntryPlugin.js +16 -6
  351. package/dist/esm/vite/plugins/virtualEntryPlugin.js.map +1 -1
  352. package/dist/esm/vite/plugins/virtualEntryPlugin.mjs +25 -6
  353. package/dist/esm/vite/plugins/virtualEntryPlugin.mjs.map +1 -1
  354. package/dist/esm/vite/plugins/virtualEntryPlugin.native.js +26 -7
  355. package/dist/esm/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
  356. package/package.json +11 -9
  357. package/src/cli/buildPage.ts +1 -1
  358. package/src/cli/dev.ts +4 -4
  359. package/src/createApp.tsx +11 -1
  360. package/src/createHandleRequest.test.ts +3 -1
  361. package/src/devtools/registry.ts +21 -0
  362. package/src/fork/createMemoryHistory.tsx +43 -11
  363. package/src/fork/useLinking.ts +14 -4
  364. package/src/index.ts +34 -1
  365. package/src/interfaces/router.ts +48 -0
  366. package/src/layouts/withLayoutContext.tsx +48 -8
  367. package/src/link/Link.tsx +7 -2
  368. package/src/link/useLinkTo.tsx +7 -3
  369. package/src/router/Route.tsx +32 -3
  370. package/src/router/findRouteNode.ts +127 -0
  371. package/src/router/router.ts +286 -2
  372. package/src/router/useScreens.tsx +9 -3
  373. package/src/useBlocker.native.ts +153 -0
  374. package/src/useBlocker.ts +340 -0
  375. package/src/useLoader.ts +139 -1
  376. package/src/useScrollGroup.native.ts +7 -0
  377. package/src/useScrollGroup.ts +44 -0
  378. package/src/validateParams.ts +196 -0
  379. package/src/validateSearch.ts +241 -0
  380. package/src/views/ErrorBoundary.tsx +154 -156
  381. package/src/views/ErrorBoundary.web.tsx +321 -0
  382. package/src/views/Navigator.tsx +14 -2
  383. package/src/views/Protected.tsx +62 -0
  384. package/src/views/RootErrorBoundary.tsx +214 -17
  385. package/src/views/ScrollBehavior.tsx +82 -3
  386. package/src/views/SourceInspector.tsx +39 -0
  387. package/src/views/Try.tsx +81 -12
  388. package/src/vite/DevHead.tsx +819 -54
  389. package/src/vite/one.ts +13 -0
  390. package/src/vite/plugins/SSRCSSPlugin.ts +104 -0
  391. package/src/vite/plugins/fileSystemRouterPlugin.tsx +11 -8
  392. package/src/vite/plugins/generateFileSystemRouteTypesPlugin.tsx +4 -0
  393. package/src/vite/plugins/sourceInspectorPlugin.ts +246 -0
  394. package/src/vite/plugins/virtualEntryPlugin.ts +35 -10
  395. package/src/vite/types.ts +28 -0
  396. package/types/Route.d.ts.map +1 -0
  397. package/types/cleanUrl.d.ts.map +1 -0
  398. package/types/cli/run.d.ts.map +1 -0
  399. package/types/createApp.d.ts +5 -0
  400. package/types/createApp.d.ts.map +1 -1
  401. package/types/createRoute.d.ts.map +1 -0
  402. package/types/devtools/registry.d.ts +15 -0
  403. package/types/devtools/registry.d.ts.map +1 -0
  404. package/types/fork/NavigationContainer.native.d.ts.map +1 -0
  405. package/types/fork/createMemoryHistory.d.ts +8 -3
  406. package/types/fork/createMemoryHistory.d.ts.map +1 -1
  407. package/types/fork/useLinking.d.ts.map +1 -1
  408. package/types/getLinkingConfig.d.ts.map +1 -0
  409. package/types/getRoutes.d.ts.map +1 -0
  410. package/types/imperative-api.d.ts.map +1 -0
  411. package/types/index.d.ts +8 -1
  412. package/types/index.d.ts.map +1 -1
  413. package/types/interfaces/router.d.ts +47 -0
  414. package/types/interfaces/router.d.ts.map +1 -1
  415. package/types/layouts/withLayoutContext.d.ts +2 -1
  416. package/types/layouts/withLayoutContext.d.ts.map +1 -1
  417. package/types/link/Link.d.ts.map +1 -1
  418. package/types/link/useLinkTo.d.ts +1 -0
  419. package/types/link/useLinkTo.d.ts.map +1 -1
  420. package/types/matchers.d.ts.map +1 -0
  421. package/types/platform.d.ts.map +1 -0
  422. package/types/router/Route.d.ts +32 -3
  423. package/types/router/Route.d.ts.map +1 -1
  424. package/types/router/findRouteNode.d.ts +31 -0
  425. package/types/router/findRouteNode.d.ts.map +1 -0
  426. package/types/router/router.d.ts +35 -0
  427. package/types/router/router.d.ts.map +1 -1
  428. package/types/router/useScreens.d.ts +2 -0
  429. package/types/router/useScreens.d.ts.map +1 -1
  430. package/types/server/oneServe.d.ts.map +1 -1
  431. package/types/sortRoutes.d.ts.map +1 -0
  432. package/types/useBlocker.d.ts +72 -0
  433. package/types/useBlocker.d.ts.map +1 -0
  434. package/types/useBlocker.native.d.ts +60 -0
  435. package/types/useBlocker.native.d.ts.map +1 -0
  436. package/types/useLoader.d.ts +10 -0
  437. package/types/useLoader.d.ts.map +1 -1
  438. package/types/useNavigation.d.ts.map +1 -0
  439. package/types/useScreens.d.ts.map +1 -0
  440. package/types/useScrollGroup.d.ts +27 -0
  441. package/types/useScrollGroup.d.ts.map +1 -0
  442. package/types/useScrollGroup.native.d.ts +6 -0
  443. package/types/useScrollGroup.native.d.ts.map +1 -0
  444. package/types/useSearch.d.ts.map +1 -0
  445. package/types/useViteRoutes.d.ts.map +1 -0
  446. package/types/validateParams.d.ts +85 -0
  447. package/types/validateParams.d.ts.map +1 -0
  448. package/types/validateSearch.d.ts +107 -0
  449. package/types/validateSearch.d.ts.map +1 -0
  450. package/types/views/ErrorBoundary.d.ts +11 -1
  451. package/types/views/ErrorBoundary.d.ts.map +1 -1
  452. package/types/views/ErrorBoundary.web.d.ts +13 -0
  453. package/types/views/ErrorBoundary.web.d.ts.map +1 -0
  454. package/types/views/Navigator.d.ts.map +1 -1
  455. package/types/views/Protected.d.ts +39 -0
  456. package/types/views/Protected.d.ts.map +1 -0
  457. package/types/views/RootErrorBoundary.d.ts +14 -8
  458. package/types/views/RootErrorBoundary.d.ts.map +1 -1
  459. package/types/views/ScrollBehavior.d.ts +8 -0
  460. package/types/views/ScrollBehavior.d.ts.map +1 -1
  461. package/types/views/ScrollRestoration.d.ts.map +1 -0
  462. package/types/views/SourceInspector.d.ts +35 -0
  463. package/types/views/SourceInspector.d.ts.map +1 -0
  464. package/types/views/Try.d.ts +29 -6
  465. package/types/views/Try.d.ts.map +1 -1
  466. package/types/vite/DevHead.d.ts.map +1 -1
  467. package/types/vite/build.d.ts.map +1 -0
  468. package/types/vite/headers.d.ts.map +1 -0
  469. package/types/vite/headers.native.d.ts.map +1 -0
  470. package/types/vite/one.d.ts.map +1 -1
  471. package/types/vite/plugins/SSRCSSPlugin.d.ts.map +1 -1
  472. package/types/vite/plugins/fileSystemRouterPlugin.d.ts.map +1 -1
  473. package/types/vite/plugins/generateFileSystemRouteTypesPlugin.d.ts.map +1 -1
  474. package/types/vite/plugins/seoPreviewPlugin.d.ts.map +1 -0
  475. package/types/vite/plugins/sourceInspectorPlugin.d.ts +3 -0
  476. package/types/vite/plugins/sourceInspectorPlugin.d.ts.map +1 -0
  477. package/types/vite/plugins/virtualEntryPlugin.d.ts.map +1 -1
  478. package/types/vite/resolveAPIRequest.d.ts.map +1 -0
  479. package/types/vite/server.d.ts.map +1 -0
  480. package/types/vite/types.d.ts +24 -0
  481. package/types/vite/types.d.ts.map +1 -1
@@ -25,6 +25,788 @@ __export(DevHead_exports, {
25
25
  module.exports = __toCommonJS(DevHead_exports);
26
26
  var import_constants = require("../constants.cjs"),
27
27
  import_jsx_runtime = require("react/jsx-runtime");
28
+ const ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; const hot = createHotContext("/__one_route_hmr"); hot.on("one:route-update", (data) => { if (window.__oneRouteCache) { if (data?.file) { window.__oneRouteCache.clearFile(data.file); } else { window.__oneRouteCache.clear(); } } window.dispatchEvent(new CustomEvent("one-hmr-update")); });',
29
+ LOADER_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; const hot = createHotContext("/__one_loader_hmr"); hot.on("one:loader-data-update", async (data) => { if (data?.routePaths && window.__oneRefetchLoader) { const currentPath = window.location.pathname.replace(/\\/$/, "") || "/"; for (const routePath of data.routePaths) { if (routePath === currentPath) { try { await window.__oneRefetchLoader(routePath); } catch (err) { console.error("[one] Error refetching loader:", err); } } } } });',
30
+ REACT_REFRESH_SCRIPT = 'import { injectIntoGlobalHook } from "/@react-refresh"; injectIntoGlobalHook(window); window.$RefreshReg$ = () => {}; window.$RefreshSig$ = () => (type) => type;',
31
+ ONE_DEVTOOLS_SCRIPT = `
32
+ (function() {
33
+ try {
34
+ var host = null;
35
+ var shadow = null;
36
+ var spotlight = null;
37
+ var panel = null;
38
+ var activeTab = 'seo';
39
+ var isDragging = false;
40
+ var dragOffset = { x: 0, y: 0 };
41
+ var panelPos = { x: 20, y: 20 };
42
+ var snappedEdge = { h: null, v: null };
43
+
44
+ var LOGO_SVG = '<svg width="24" height="24" viewBox="0 0 100 100"><circle cx="50" cy="50" r="48" fill="#FCD34D" stroke="#222" stroke-width="2"/><circle cx="50" cy="35" r="16" fill="white"/><text x="50" y="41" text-anchor="middle" font-family="system-ui" font-size="16" font-weight="bold" fill="#222">1</text></svg>';
45
+
46
+ function escapeHtml(str) {
47
+ if (!str) return '';
48
+ return String(str).replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
49
+ }
50
+
51
+ function createHost() {
52
+ if (host) return;
53
+ host = document.createElement('div');
54
+ host.id = 'one-devtools';
55
+ shadow = host.attachShadow({ mode: 'open' });
56
+
57
+ var css = \`
58
+ * { box-sizing: border-box; margin: 0; padding: 0; }
59
+
60
+ .spotlight {
61
+ position: fixed;
62
+ inset: 0;
63
+ z-index: 100000;
64
+ display: none;
65
+ align-items: center;
66
+ justify-content: center;
67
+ backdrop-filter: blur(8px);
68
+ background: rgba(0,0,0,0.4);
69
+ opacity: 0;
70
+ transition: opacity 0.12s ease-out;
71
+ }
72
+ .spotlight.visible { display: flex; opacity: 1; }
73
+
74
+ .spotlight-box {
75
+ background: #1a1a1a;
76
+ border-radius: 12px;
77
+ width: 320px;
78
+ max-width: 90vw;
79
+ overflow: hidden;
80
+ box-shadow: 0 16px 48px rgba(0,0,0,0.5);
81
+ transform: scale(0.96);
82
+ opacity: 0;
83
+ transition: transform 0.12s ease-out, opacity 0.12s ease-out;
84
+ }
85
+ .spotlight.visible .spotlight-box { transform: scale(1); opacity: 1; }
86
+
87
+ .spotlight-header {
88
+ display: flex;
89
+ align-items: center;
90
+ padding: 12px 16px;
91
+ border-bottom: 1px solid #252525;
92
+ gap: 10px;
93
+ }
94
+ .spotlight-header svg { width: 20px; height: 20px; flex-shrink: 0; }
95
+ .spotlight-header-title { font: 13px system-ui, sans-serif; color: #ccc; flex: 1; }
96
+ .spotlight-header-version { font: 11px system-ui, sans-serif; color: #666; }
97
+
98
+ .spotlight-item {
99
+ display: flex;
100
+ align-items: center;
101
+ gap: 12px;
102
+ padding: 12px 16px;
103
+ color: #ccc;
104
+ font: 13px system-ui, sans-serif;
105
+ cursor: pointer;
106
+ transition: background 0.1s;
107
+ border-bottom: 1px solid #252525;
108
+ }
109
+ .spotlight-item:last-child { border-bottom: none; }
110
+ .spotlight-item:hover { background: #252525; color: #fff; }
111
+ .spotlight-item .key {
112
+ background: #333;
113
+ color: #888;
114
+ padding: 2px 6px;
115
+ border-radius: 4px;
116
+ font-size: 11px;
117
+ margin-left: auto;
118
+ }
119
+
120
+ .panel {
121
+ position: fixed;
122
+ width: 420px;
123
+ max-width: calc(100vw - 40px);
124
+ max-height: calc(100vh - 40px);
125
+ background: #161616;
126
+ border-radius: 10px;
127
+ box-shadow: 0 8px 32px rgba(0,0,0,0.4);
128
+ z-index: 99998;
129
+ display: none;
130
+ flex-direction: column;
131
+ overflow: hidden;
132
+ font: 13px system-ui, sans-serif;
133
+ color: #ccc;
134
+ }
135
+ .panel.visible { display: flex; }
136
+
137
+ .panel-header {
138
+ display: flex;
139
+ align-items: center;
140
+ padding: 8px 12px;
141
+ background: #1a1a1a;
142
+ cursor: grab;
143
+ user-select: none;
144
+ gap: 8px;
145
+ }
146
+ .panel-header:active { cursor: grabbing; }
147
+ .panel-header svg { width: 18px; height: 18px; }
148
+ .panel-title { font-weight: 500; color: #999; font-size: 12px; flex: 1; }
149
+ .panel-close {
150
+ background: none;
151
+ border: none;
152
+ color: #666;
153
+ cursor: pointer;
154
+ padding: 4px;
155
+ font-size: 16px;
156
+ line-height: 1;
157
+ }
158
+ .panel-close:hover { color: #fff; }
159
+
160
+ .tabs {
161
+ display: flex;
162
+ background: #1a1a1a;
163
+ padding: 0 8px;
164
+ gap: 2px;
165
+ overflow-x: auto;
166
+ }
167
+ .tab {
168
+ padding: 8px 12px;
169
+ background: none;
170
+ border: none;
171
+ color: #666;
172
+ font: 12px system-ui, sans-serif;
173
+ cursor: pointer;
174
+ border-bottom: 2px solid transparent;
175
+ transition: all 0.1s;
176
+ }
177
+ .tab:hover { color: #999; }
178
+ .tab.active { color: #fff; border-bottom-color: #666; }
179
+
180
+ .content {
181
+ flex: 1;
182
+ overflow-y: auto;
183
+ padding: 12px;
184
+ min-height: 200px;
185
+ max-height: calc(100vh - 140px);
186
+ }
187
+
188
+ .section { margin-bottom: 12px; }
189
+ .section-title { font-size: 11px; color: #666; margin-bottom: 6px; text-transform: uppercase; letter-spacing: 0.5px; }
190
+
191
+ .info-row {
192
+ display: flex;
193
+ gap: 12px;
194
+ padding: 8px 0;
195
+ border-bottom: 1px solid #222;
196
+ }
197
+ .info-row:last-child { border-bottom: none; }
198
+ .info-label { color: #666; font-size: 11px; width: 90px; flex-shrink: 0; padding-top: 1px; }
199
+ .info-value { color: #ccc; font-family: monospace; font-size: 12px; word-break: break-word; line-height: 1.4; flex: 1; }
200
+
201
+ .badge {
202
+ display: inline-block;
203
+ padding: 2px 6px;
204
+ border-radius: 4px;
205
+ font-size: 10px;
206
+ text-transform: uppercase;
207
+ }
208
+ .badge-error { background: #3a2020; color: #f87171; }
209
+ .badge-warn { background: #3a3520; color: #fbbf24; }
210
+ .badge-info { background: #202a3a; color: #60a5fa; }
211
+ .badge-success { background: #1a3a20; color: #4ade80; }
212
+
213
+ .empty { text-align: center; color: #555; padding: 24px; }
214
+
215
+ .error-item {
216
+ background: #1e1e1e;
217
+ border-radius: 6px;
218
+ padding: 10px;
219
+ margin-bottom: 8px;
220
+ border-left: 3px solid #666;
221
+ }
222
+ .error-item.error { border-left-color: #f87171; }
223
+ .error-msg { color: #f87171; font-family: monospace; font-size: 12px; margin-top: 6px; }
224
+
225
+ .timing-bar {
226
+ height: 16px;
227
+ background: #252525;
228
+ border-radius: 4px;
229
+ overflow: hidden;
230
+ display: flex;
231
+ margin: 4px 0;
232
+ }
233
+ .timing-segment { height: 100%; display: flex; align-items: center; justify-content: center; font-size: 9px; color: #fff; }
234
+ .timing-module { background: #555; }
235
+ .timing-exec { background: #888; }
236
+
237
+ .preview-card {
238
+ background: #1e1e1e;
239
+ border-radius: 6px;
240
+ padding: 10px;
241
+ margin-bottom: 10px;
242
+ }
243
+ .preview-title { font-size: 11px; color: #666; margin-bottom: 6px; }
244
+
245
+ .issue-item {
246
+ display: flex;
247
+ align-items: center;
248
+ gap: 8px;
249
+ padding: 6px 0;
250
+ font-size: 12px;
251
+ }
252
+ .issue-icon { font-size: 10px; }
253
+ \`;
254
+
255
+ shadow.innerHTML = '<style>' + css + '</style><div class="spotlight" id="spotlight"><div class="spotlight-box" id="spotlight-box"></div></div><div class="panel" id="panel"></div>';
256
+ document.body.appendChild(host);
257
+
258
+ setupSpotlight();
259
+ setupPanel();
260
+ setupKeyboard();
261
+ }
262
+
263
+ function setupSpotlight() {
264
+ spotlight = shadow.getElementById('spotlight');
265
+ var box = shadow.getElementById('spotlight-box');
266
+
267
+ var items = [
268
+ { id: 'seo', name: 'SEO Preview', key: '\u2325S' },
269
+ { id: 'route', name: 'Route Info', key: '\u2325R' },
270
+ { id: 'loader', name: 'Loader Timing', key: '\u2325L' },
271
+ { id: 'errors', name: 'Errors', key: '\u2325E' },
272
+ ];
273
+
274
+ var header = '<div class="spotlight-header">' + LOGO_SVG + '<span class="spotlight-header-title">Dev Tools</span><span class="spotlight-header-version">v1.2.57</span></div>';
275
+ box.innerHTML = header + items.map(function(item) {
276
+ return '<div class="spotlight-item" data-tab="' + item.id + '"><span>' + item.name + '</span><span class="key">' + item.key + '</span></div>';
277
+ }).join('');
278
+
279
+ box.addEventListener('click', function(e) {
280
+ var item = e.target.closest('.spotlight-item');
281
+ if (item) {
282
+ activeTab = item.dataset.tab;
283
+ hideSpotlight();
284
+ showPanel();
285
+ }
286
+ });
287
+
288
+ spotlight.addEventListener('click', function(e) {
289
+ if (e.target === spotlight) hideSpotlight();
290
+ });
291
+ }
292
+
293
+ function setupPanel() {
294
+ panel = shadow.getElementById('panel');
295
+ panel.innerHTML = '<div class="panel-header" id="panel-header">' + LOGO_SVG + '<span class="panel-title">DevTools</span><button class="panel-close" id="panel-close">\xD7</button></div><div class="tabs" id="tabs"><button class="tab active" data-tab="seo">SEO</button><button class="tab" data-tab="route">Route</button><button class="tab" data-tab="loader">Loader</button><button class="tab" data-tab="errors">Errors</button></div><div class="content" id="content"></div>';
296
+
297
+ shadow.getElementById('panel-close').addEventListener('click', hidePanel);
298
+
299
+ var tabs = shadow.getElementById('tabs');
300
+ tabs.addEventListener('click', function(e) {
301
+ var tab = e.target.closest('.tab');
302
+ if (tab) {
303
+ activeTab = tab.dataset.tab;
304
+ updateTabs();
305
+ updateContent();
306
+ }
307
+ });
308
+
309
+ setupDrag();
310
+ }
311
+
312
+ function setupDrag() {
313
+ var header = shadow.getElementById('panel-header');
314
+
315
+ header.addEventListener('mousedown', function(e) {
316
+ if (e.target.closest('.panel-close')) return;
317
+ isDragging = true;
318
+ var rect = panel.getBoundingClientRect();
319
+ dragOffset.x = e.clientX - rect.left;
320
+ dragOffset.y = e.clientY - rect.top;
321
+ // Store current position before resetting snap state
322
+ panelPos.x = rect.left;
323
+ panelPos.y = rect.top;
324
+ snappedEdge = { h: null, v: null };
325
+ });
326
+
327
+ document.addEventListener('mousemove', function(e) {
328
+ if (!isDragging) return;
329
+ var x = e.clientX - dragOffset.x;
330
+ var y = e.clientY - dragOffset.y;
331
+ var snapDist = 20;
332
+ var w = window.innerWidth;
333
+ var h = window.innerHeight;
334
+ var pw = panel.offsetWidth;
335
+ var ph = panel.offsetHeight;
336
+ var pad = 10;
337
+
338
+ var snapH = null;
339
+ var snapV = null;
340
+
341
+ if (x < snapDist) { snapH = 'left'; }
342
+ else if (x + pw > w - snapDist) { snapH = 'right'; }
343
+ if (y < snapDist) { snapV = 'top'; }
344
+ else if (y + ph > h - snapDist) { snapV = 'bottom'; }
345
+
346
+ snappedEdge = { h: snapH, v: snapV };
347
+
348
+ // Apply horizontal positioning
349
+ if (snapH === 'left') {
350
+ panel.style.left = pad + 'px';
351
+ panel.style.right = 'auto';
352
+ } else if (snapH === 'right') {
353
+ panel.style.left = 'auto';
354
+ panel.style.right = pad + 'px';
355
+ } else {
356
+ panel.style.left = x + 'px';
357
+ panel.style.right = 'auto';
358
+ panelPos.x = x;
359
+ }
360
+
361
+ // Apply vertical positioning
362
+ if (snapV === 'top') {
363
+ panel.style.top = pad + 'px';
364
+ panel.style.bottom = 'auto';
365
+ } else if (snapV === 'bottom') {
366
+ panel.style.top = 'auto';
367
+ panel.style.bottom = pad + 'px';
368
+ } else {
369
+ panel.style.top = y + 'px';
370
+ panel.style.bottom = 'auto';
371
+ panelPos.y = y;
372
+ }
373
+ });
374
+
375
+ document.addEventListener('mouseup', function() {
376
+ isDragging = false;
377
+ });
378
+ }
379
+
380
+ function setupKeyboard() {
381
+ document.addEventListener('keydown', function(e) {
382
+ if (e.altKey && e.code === 'Space') {
383
+ e.preventDefault();
384
+ toggleSpotlight();
385
+ } else if (e.altKey) {
386
+ var tabMap = { KeyS: 'seo', KeyR: 'route', KeyL: 'loader', KeyE: 'errors' };
387
+ var tab = tabMap[e.code];
388
+ if (tab) {
389
+ e.preventDefault();
390
+ activeTab = tab;
391
+ hideSpotlight();
392
+ showPanel();
393
+ }
394
+ } else if (e.code === 'Escape') {
395
+ if (spotlight.classList.contains('visible')) hideSpotlight();
396
+ else if (panel.classList.contains('visible')) hidePanel();
397
+ }
398
+ });
399
+ }
400
+
401
+ function toggleSpotlight() {
402
+ if (spotlight.classList.contains('visible')) hideSpotlight();
403
+ else showSpotlight();
404
+ }
405
+
406
+ function showSpotlight() {
407
+ if (!host) createHost();
408
+ spotlight.classList.add('visible');
409
+ }
410
+
411
+ function hideSpotlight() {
412
+ spotlight.classList.remove('visible');
413
+ }
414
+
415
+ function showPanel() {
416
+ if (!host) createHost();
417
+ var pad = 10;
418
+ // Apply horizontal positioning based on snap state
419
+ if (snappedEdge.h === 'left') {
420
+ panel.style.left = pad + 'px';
421
+ panel.style.right = 'auto';
422
+ } else if (snappedEdge.h === 'right') {
423
+ panel.style.left = 'auto';
424
+ panel.style.right = pad + 'px';
425
+ } else {
426
+ panel.style.left = panelPos.x + 'px';
427
+ panel.style.right = 'auto';
428
+ }
429
+ // Apply vertical positioning based on snap state
430
+ if (snappedEdge.v === 'top') {
431
+ panel.style.top = pad + 'px';
432
+ panel.style.bottom = 'auto';
433
+ } else if (snappedEdge.v === 'bottom') {
434
+ panel.style.top = 'auto';
435
+ panel.style.bottom = pad + 'px';
436
+ } else {
437
+ panel.style.top = panelPos.y + 'px';
438
+ panel.style.bottom = 'auto';
439
+ }
440
+ panel.classList.add('visible');
441
+ updateTabs();
442
+ updateContent();
443
+ }
444
+
445
+ function hidePanel() {
446
+ panel.classList.remove('visible');
447
+ }
448
+
449
+ function updateTabs() {
450
+ shadow.querySelectorAll('.tab').forEach(function(t) {
451
+ t.classList.toggle('active', t.dataset.tab === activeTab);
452
+ });
453
+ }
454
+
455
+ function updateContent() {
456
+ var content = shadow.getElementById('content');
457
+ if (activeTab === 'seo') content.innerHTML = getSeoContent();
458
+ else if (activeTab === 'route') content.innerHTML = getRouteContent();
459
+ else if (activeTab === 'loader') content.innerHTML = getLoaderContent();
460
+ else if (activeTab === 'errors') content.innerHTML = getErrorsContent();
461
+ }
462
+
463
+ function getSeoContent() {
464
+ var title = document.title || '';
465
+ var desc = document.querySelector('meta[name="description"]')?.content || '';
466
+ var ogTitle = document.querySelector('meta[property="og:title"]')?.content || '';
467
+ var ogDesc = document.querySelector('meta[property="og:description"]')?.content || '';
468
+ var ogImage = document.querySelector('meta[property="og:image"]')?.content || '';
469
+
470
+ var issues = [];
471
+ if (!title) issues.push({ type: 'error', msg: 'Missing title' });
472
+ else if (title.length > 60) issues.push({ type: 'warn', msg: 'Title too long (>60)' });
473
+ if (!desc) issues.push({ type: 'error', msg: 'Missing description' });
474
+ else if (desc.length > 160) issues.push({ type: 'warn', msg: 'Description too long (>160)' });
475
+ if (!ogTitle) issues.push({ type: 'warn', msg: 'Missing og:title' });
476
+ if (!ogImage) issues.push({ type: 'warn', msg: 'Missing og:image' });
477
+
478
+ var html = '';
479
+ if (issues.length) {
480
+ html += '<div class="section"><div class="section-title">Issues</div>';
481
+ issues.forEach(function(i) {
482
+ html += '<div class="issue-item"><span class="issue-icon">' + (i.type === 'error' ? '\u2716' : '\u26A0') + '</span><span>' + escapeHtml(i.msg) + '</span></div>';
483
+ });
484
+ html += '</div>';
485
+ }
486
+
487
+ html += '<div class="section"><div class="section-title">Google Preview</div><div class="preview-card" style="background:#fff;color:#202124;padding:12px;border-radius:8px;">';
488
+ html += '<div style="font-size:12px;color:#202124;margin-bottom:2px;">' + escapeHtml(location.hostname) + '</div>';
489
+ html += '<div style="font-size:16px;color:#1a0dab;margin-bottom:4px;">' + escapeHtml(title || 'No title') + '</div>';
490
+ html += '<div style="font-size:13px;color:#4d5156;">' + escapeHtml(desc ? desc.slice(0,160) : 'No description') + '</div>';
491
+ html += '</div></div>';
492
+
493
+ html += '<div class="section"><div class="section-title">Meta Tags</div>';
494
+ html += '<div class="info-row"><div class="info-label">title</div><div class="info-value">' + escapeHtml(title || '-') + '</div></div>';
495
+ html += '<div class="info-row"><div class="info-label">description</div><div class="info-value">' + escapeHtml(desc || '-') + '</div></div>';
496
+ html += '<div class="info-row"><div class="info-label">og:title</div><div class="info-value">' + escapeHtml(ogTitle || '-') + '</div></div>';
497
+ html += '<div class="info-row"><div class="info-label">og:description</div><div class="info-value">' + escapeHtml(ogDesc || '-') + '</div></div>';
498
+ html += '<div class="info-row"><div class="info-label">og:image</div><div class="info-value">' + escapeHtml(ogImage || '-') + '</div></div>';
499
+ html += '</div>';
500
+
501
+ return html;
502
+ }
503
+
504
+ function getRouteContent() {
505
+ var pathname = location.pathname;
506
+ var segments = pathname.split('/').filter(Boolean);
507
+ var search = location.search;
508
+ var hash = location.hash;
509
+ var devtools = window.__oneDevtools || {};
510
+ var routeInfo = devtools.routeInfo || {};
511
+ var params = routeInfo.params || {};
512
+
513
+ var html = '<div class="section"><div class="section-title">Current Route</div>';
514
+ html += '<div class="info-row"><span class="info-label">pathname</span><span class="info-value">' + escapeHtml(pathname) + '</span></div>';
515
+ html += '<div class="info-row"><span class="info-label">segments</span><span class="info-value">' + (segments.length ? segments.map(function(s) { return '<span style="background:#252525;padding:2px 6px;border-radius:4px;margin-right:4px;">' + escapeHtml(s) + '</span>'; }).join('') : '/') + '</span></div>';
516
+ if (search) html += '<div class="info-row"><span class="info-label">search</span><span class="info-value">' + escapeHtml(search) + '</span></div>';
517
+ if (hash) html += '<div class="info-row"><span class="info-label">hash</span><span class="info-value">' + escapeHtml(hash) + '</span></div>';
518
+ html += '</div>';
519
+
520
+ if (Object.keys(params).length) {
521
+ html += '<div class="section"><div class="section-title">Route Params</div>';
522
+ Object.entries(params).forEach(function(kv) {
523
+ html += '<div class="info-row"><span class="info-label">' + escapeHtml(kv[0]) + '</span><span class="info-value">' + escapeHtml(String(kv[1])) + '</span></div>';
524
+ });
525
+ html += '</div>';
526
+ }
527
+
528
+ html += '<div class="section"><div class="section-title">Full URL</div>';
529
+ html += '<div style="font-family:monospace;font-size:11px;color:#666;word-break:break-all;">' + escapeHtml(location.href) + '</div>';
530
+ html += '</div>';
531
+
532
+ return html;
533
+ }
534
+
535
+ function getLoaderContent() {
536
+ var devtools = window.__oneDevtools || {};
537
+ var history = typeof devtools.getLoaderTimingHistory === 'function' ? devtools.getLoaderTimingHistory() || [] : [];
538
+
539
+ if (!history.length) {
540
+ return '<div class="empty">No loader timings recorded yet</div>';
541
+ }
542
+
543
+ var maxTime = Math.max.apply(null, history.map(function(t) { return t.totalTime || 0; }));
544
+ var html = '';
545
+
546
+ history.forEach(function(t) {
547
+ var modPct = t.moduleLoadTime && t.totalTime ? (t.moduleLoadTime / t.totalTime) * 100 : 0;
548
+ var execPct = t.executionTime && t.totalTime ? (t.executionTime / t.totalTime) * 100 : 0;
549
+ var widthPct = t.totalTime && maxTime ? (t.totalTime / maxTime) * 100 : 0;
550
+
551
+ html += '<div class="error-item' + (t.error ? ' error' : '') + '">';
552
+ html += '<div style="display:flex;justify-content:space-between;align-items:center;">';
553
+ html += '<span style="font-family:monospace;font-size:11px;">' + escapeHtml(t.path) + '</span>';
554
+ html += '<span class="badge badge-' + (t.error ? 'error' : 'success') + '">' + (t.totalTime ? Math.round(t.totalTime) + 'ms' : '-') + '</span>';
555
+ html += '</div>';
556
+ if (!t.error) {
557
+ html += '<div class="timing-bar" style="width:' + Math.max(20, widthPct) + '%;">';
558
+ html += '<div class="timing-segment timing-module" style="width:' + modPct + '%;" title="Module: ' + Math.round(t.moduleLoadTime || 0) + 'ms"></div>';
559
+ html += '<div class="timing-segment timing-exec" style="width:' + execPct + '%;" title="Exec: ' + Math.round(t.executionTime || 0) + 'ms"></div>';
560
+ html += '</div>';
561
+ }
562
+ if (t.error) html += '<div class="error-msg">' + escapeHtml(t.error) + '</div>';
563
+ html += '</div>';
564
+ });
565
+
566
+ return html;
567
+ }
568
+
569
+ function getErrorsContent() {
570
+ var devtools = window.__oneDevtools || {};
571
+ var errors = devtools.errorHistory || [];
572
+
573
+ if (!errors.length) {
574
+ return '<div class="empty">\u2713 No errors recorded</div>';
575
+ }
576
+
577
+ var html = '';
578
+ errors.forEach(function(err) {
579
+ html += '<div class="error-item error">';
580
+ html += '<div style="display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;">';
581
+ html += '<span class="badge badge-error">' + escapeHtml(err.type || 'error') + '</span>';
582
+ html += '<span style="font-size:11px;color:#666;">' + new Date(err.timestamp).toLocaleTimeString() + '</span>';
583
+ html += '</div>';
584
+ html += '<div class="error-msg">' + escapeHtml(err.error?.message || 'Unknown error') + '</div>';
585
+ html += '</div>';
586
+ });
587
+
588
+ return html;
589
+ }
590
+
591
+ // Initialize
592
+ createHost();
593
+
594
+ // Listen for events
595
+ window.addEventListener('one-loader-timing', function() {
596
+ if (panel && panel.classList.contains('visible') && activeTab === 'loader') updateContent();
597
+ });
598
+ window.addEventListener('one-error', function(e) {
599
+ var devtools = window.__oneDevtools = window.__oneDevtools || {};
600
+ devtools.errorHistory = devtools.errorHistory || [];
601
+ devtools.errorHistory.unshift(e.detail);
602
+ if (devtools.errorHistory.length > 20) devtools.errorHistory = devtools.errorHistory.slice(0, 20);
603
+ if (panel && panel.classList.contains('visible') && activeTab === 'errors') updateContent();
604
+ });
605
+
606
+ // Update on navigation
607
+ function onNavigate() {
608
+ if (panel && panel.classList.contains('visible')) updateContent();
609
+ }
610
+ window.addEventListener('popstate', onNavigate);
611
+ window.addEventListener('one-hmr-update', onNavigate);
612
+ // Also catch pushState/replaceState
613
+ var origPushState = history.pushState;
614
+ var origReplaceState = history.replaceState;
615
+ history.pushState = function() {
616
+ origPushState.apply(this, arguments);
617
+ setTimeout(onNavigate, 0);
618
+ };
619
+ history.replaceState = function() {
620
+ origReplaceState.apply(this, arguments);
621
+ setTimeout(onNavigate, 0);
622
+ };
623
+
624
+ } catch (e) {
625
+ console.error('[One DevTools] Failed to initialize:', e);
626
+ }
627
+ })();
628
+ `,
629
+ SOURCE_INSPECTOR_SCRIPT = `
630
+ (function() {
631
+ try {
632
+ var active = false;
633
+ var host = null;
634
+ var shadow = null;
635
+ var overlay = null;
636
+ var tag = null;
637
+ var holdTimer = null;
638
+ var holdDelay = 500;
639
+ var mousePos = { x: 0, y: 0 };
640
+
641
+ function createHost() {
642
+ if (host) return;
643
+ host = document.createElement('div');
644
+ host.id = 'one-source-inspector';
645
+ shadow = host.attachShadow({ mode: 'open' });
646
+ shadow.innerHTML = \`
647
+ <style>
648
+ * { box-sizing: border-box; margin: 0; padding: 0; }
649
+ .overlay {
650
+ position: fixed;
651
+ pointer-events: none;
652
+ z-index: 100000;
653
+ background: rgba(100,100,100,0.2);
654
+ border: 2px solid rgba(100,100,100,0.6);
655
+ border-radius: 2px;
656
+ transition: all 0.05s;
657
+ display: none;
658
+ }
659
+ .tag {
660
+ position: fixed;
661
+ pointer-events: none;
662
+ z-index: 100001;
663
+ background: rgba(60,60,60,0.95);
664
+ color: white;
665
+ padding: 4px 8px;
666
+ font-size: 12px;
667
+ font-family: system-ui, -apple-system, sans-serif;
668
+ border-radius: 4px;
669
+ white-space: nowrap;
670
+ box-shadow: 0 2px 8px rgba(0,0,0,0.3);
671
+ display: none;
672
+ }
673
+ </style>
674
+ <div class="overlay"></div>
675
+ <div class="tag"></div>
676
+ \`;
677
+ document.body.appendChild(host);
678
+ overlay = shadow.querySelector('.overlay');
679
+ tag = shadow.querySelector('.tag');
680
+ }
681
+
682
+ function hideOverlay() {
683
+ if (overlay) overlay.style.display = 'none';
684
+ if (tag) tag.style.display = 'none';
685
+ }
686
+
687
+ function showOverlay(el, source) {
688
+ if (!host) createHost();
689
+ var rect = el.getBoundingClientRect();
690
+ overlay.style.display = 'block';
691
+ overlay.style.top = rect.top + 'px';
692
+ overlay.style.left = rect.left + 'px';
693
+ overlay.style.width = rect.width + 'px';
694
+ overlay.style.height = rect.height + 'px';
695
+ tag.style.display = 'block';
696
+ tag.textContent = source;
697
+ var top = rect.top - 28;
698
+ if (top < 0) top = rect.bottom + 4;
699
+ tag.style.top = top + 'px';
700
+ tag.style.left = Math.max(4, Math.min(rect.left, window.innerWidth - 200)) + 'px';
701
+ }
702
+
703
+ function cancelHold() {
704
+ clearTimeout(holdTimer);
705
+ holdTimer = null;
706
+ }
707
+
708
+ function updateOverlayAtPosition(x, y) {
709
+ // Use elementsFromPoint to get all elements at position, ordered from topmost/innermost to bottom
710
+ var allElements = document.elementsFromPoint(x, y);
711
+ // Find the first (innermost) element with data-one-source
712
+ var el = null;
713
+ for (var i = 0; i < allElements.length; i++) {
714
+ if (allElements[i].hasAttribute('data-one-source')) {
715
+ el = allElements[i];
716
+ break;
717
+ }
718
+ }
719
+ if (el) {
720
+ var source = el.getAttribute('data-one-source');
721
+ var lastColon = source.lastIndexOf(':');
722
+ var filePath = source.slice(0, lastColon);
723
+ var idx = source.slice(lastColon + 1);
724
+ var info = window.__oneSourceInfo && window.__oneSourceInfo[filePath];
725
+ var lineCol = info && info[idx];
726
+ var displaySource = lineCol ? filePath + ':' + lineCol[0] + ':' + lineCol[1] : source;
727
+ showOverlay(el, displaySource);
728
+ } else {
729
+ hideOverlay();
730
+ }
731
+ }
732
+
733
+ function activate() {
734
+ active = true;
735
+ // Immediately show overlay at current mouse position
736
+ updateOverlayAtPosition(mousePos.x, mousePos.y);
737
+ }
738
+
739
+ function deactivate() {
740
+ cancelHold();
741
+ active = false;
742
+ hideOverlay();
743
+ }
744
+
745
+ window.addEventListener('keydown', function(e) {
746
+ // Only trigger on Alt/Option key held alone
747
+ if (e.key !== 'Alt') {
748
+ cancelHold();
749
+ return;
750
+ }
751
+ // Ignore if other modifier keys are pressed
752
+ if (e.metaKey || e.ctrlKey || e.shiftKey) {
753
+ cancelHold();
754
+ return;
755
+ }
756
+ if (e.defaultPrevented) return;
757
+ if (holdTimer) return; // already waiting
758
+ holdTimer = setTimeout(activate, holdDelay);
759
+ });
760
+
761
+ window.addEventListener('keyup', function(e) {
762
+ if (e.defaultPrevented) return;
763
+ deactivate();
764
+ });
765
+
766
+ window.addEventListener('blur', deactivate);
767
+
768
+ document.addEventListener('mousemove', function(e) {
769
+ // Always track mouse position
770
+ mousePos.x = e.clientX;
771
+ mousePos.y = e.clientY;
772
+ if (!active) return;
773
+ updateOverlayAtPosition(e.clientX, e.clientY);
774
+ });
775
+
776
+ document.addEventListener('click', function(e) {
777
+ if (!active) return;
778
+ // Use elementsFromPoint to find innermost sourced element
779
+ var allElements = document.elementsFromPoint(e.clientX, e.clientY);
780
+ var el = null;
781
+ for (var i = 0; i < allElements.length; i++) {
782
+ if (allElements[i].hasAttribute('data-one-source')) {
783
+ el = allElements[i];
784
+ break;
785
+ }
786
+ }
787
+ if (el) {
788
+ e.preventDefault();
789
+ e.stopPropagation();
790
+ var source = el.getAttribute('data-one-source');
791
+ // Parse source: "/path/to/file.tsx:index"
792
+ var lastColon = source.lastIndexOf(':');
793
+ var filePath = source.slice(0, lastColon);
794
+ var idx = source.slice(lastColon + 1);
795
+ // Look up actual line/column from source info
796
+ var info = window.__oneSourceInfo && window.__oneSourceInfo[filePath];
797
+ var lineCol = info && info[idx];
798
+ var url = '/__one/open-source?source=' + encodeURIComponent(source);
799
+ if (lineCol) {
800
+ url += '&line=' + lineCol[0] + '&column=' + lineCol[1];
801
+ }
802
+ fetch(url);
803
+ }
804
+ }, true);
805
+ } catch (e) {
806
+ console.error('[Source Inspector] Failed to initialize:', e);
807
+ }
808
+ })();
809
+ `;
28
810
  function DevHead() {
29
811
  return process.env.NODE_ENV === "development" ? /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
30
812
  children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)("link", {
@@ -34,65 +816,37 @@ function DevHead() {
34
816
  }), /* @__PURE__ */(0, import_jsx_runtime.jsx)("link", {
35
817
  rel: "stylesheet",
36
818
  href: import_constants.VIRTUAL_SSR_CSS_HREF,
37
- "data-ssr-css": !0
819
+ "data-ssr-css": !0,
820
+ suppressHydrationWarning: !0
38
821
  }), /* @__PURE__ */(0, import_jsx_runtime.jsx)("script", {
39
822
  type: "module",
823
+ suppressHydrationWarning: !0,
40
824
  dangerouslySetInnerHTML: {
41
- __html: `import { createHotContext } from "/@vite/client";
42
- const hot = createHotContext("/__clear_ssr_css");
43
- hot.on("vite:afterUpdate", () => {
44
- document
45
- .querySelectorAll("[data-ssr-css]")
46
- .forEach(node => node.remove());
47
- });`
825
+ __html: ROUTE_HMR_SCRIPT
48
826
  }
49
827
  }), /* @__PURE__ */(0, import_jsx_runtime.jsx)("script", {
50
828
  type: "module",
829
+ suppressHydrationWarning: !0,
51
830
  dangerouslySetInnerHTML: {
52
- __html: `import { createHotContext } from "/@vite/client";
53
- const hot = createHotContext("/__one_route_hmr");
54
- hot.on("one:route-update", (data) => {
55
- // Clear only the specific file's cache if provided, otherwise clear all
56
- if (window.__oneRouteCache) {
57
- if (data?.file) {
58
- window.__oneRouteCache.clearFile(data.file);
59
- } else {
60
- window.__oneRouteCache.clear();
61
- }
62
- }
63
- // Dispatch a window event that triggers re-render in route components
64
- window.dispatchEvent(new CustomEvent('one-hmr-update'));
65
- });`
831
+ __html: LOADER_HMR_SCRIPT
66
832
  }
67
833
  }), /* @__PURE__ */(0, import_jsx_runtime.jsx)("script", {
68
834
  type: "module",
835
+ suppressHydrationWarning: !0,
69
836
  dangerouslySetInnerHTML: {
70
- __html: `import { createHotContext } from "/@vite/client";
71
- const hot = createHotContext("/__one_loader_hmr");
72
- hot.on("one:loader-data-update", async (data) => {
73
- // Refetch loader data for all affected routes (no full page reload)
74
- if (data?.routePaths && window.__oneRefetchLoader) {
75
- const currentPath = window.location.pathname.replace(/\\/$/, '') || '/';
76
- for (const routePath of data.routePaths) {
77
- // Only refetch if we're on an affected route
78
- if (routePath === currentPath) {
79
- try {
80
- await window.__oneRefetchLoader(routePath);
81
- } catch (err) {
82
- console.error('[one] Error refetching loader:', err);
83
- }
84
- }
837
+ __html: REACT_REFRESH_SCRIPT
85
838
  }
86
- }
87
- });`
839
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)("script", {
840
+ type: "module",
841
+ suppressHydrationWarning: !0,
842
+ dangerouslySetInnerHTML: {
843
+ __html: ONE_DEVTOOLS_SCRIPT
88
844
  }
89
845
  }), /* @__PURE__ */(0, import_jsx_runtime.jsx)("script", {
90
846
  type: "module",
847
+ suppressHydrationWarning: !0,
91
848
  dangerouslySetInnerHTML: {
92
- __html: `import { injectIntoGlobalHook } from "/@react-refresh";
93
- injectIntoGlobalHook(window);
94
- window.$RefreshReg$ = () => {};
95
- window.$RefreshSig$ = () => (type) => type;`
849
+ __html: SOURCE_INSPECTOR_SCRIPT
96
850
  }
97
851
  })]
98
852
  }) : null;