eddev 2.0.0-beta.98 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (429) hide show
  1. package/css/editor-styles.css +4 -0
  2. package/dist/app/entry/HydrationOverlay.d.ts +1 -0
  3. package/dist/app/entry/HydrationOverlay.d.ts.map +1 -0
  4. package/dist/app/entry/MetaTags.d.ts +1 -0
  5. package/dist/app/entry/MetaTags.d.ts.map +1 -0
  6. package/dist/app/entry/MetaTags.js +18 -3
  7. package/dist/app/entry/boot-admin.d.ts +1 -0
  8. package/dist/app/entry/boot-admin.d.ts.map +1 -0
  9. package/dist/app/entry/boot-admin.js +0 -1
  10. package/dist/app/entry/hydration-script.d.ts +1 -0
  11. package/dist/app/entry/hydration-script.d.ts.map +1 -0
  12. package/dist/app/entry/spa-root.d.ts +1 -0
  13. package/dist/app/entry/spa-root.d.ts.map +1 -0
  14. package/dist/app/entry/spa-root.js +1 -2
  15. package/dist/app/entry/ssr-root-client.d.ts +1 -0
  16. package/dist/app/entry/ssr-root-client.d.ts.map +1 -0
  17. package/dist/app/entry/ssr-root-client.js +3 -2
  18. package/dist/app/entry/ssr-root.d.ts +3 -0
  19. package/dist/app/entry/ssr-root.d.ts.map +1 -0
  20. package/dist/app/entry/ssr-root.js +3 -3
  21. package/dist/app/lib/admin/defineField.d.ts +1 -0
  22. package/dist/app/lib/admin/defineField.d.ts.map +1 -0
  23. package/dist/app/lib/admin/defineWidget.d.ts +1 -0
  24. package/dist/app/lib/admin/defineWidget.d.ts.map +1 -0
  25. package/dist/app/lib/admin/index.d.ts +1 -0
  26. package/dist/app/lib/admin/index.d.ts.map +1 -0
  27. package/dist/app/lib/admin/installFieldTypes.d.ts +1 -0
  28. package/dist/app/lib/admin/installFieldTypes.d.ts.map +1 -0
  29. package/dist/app/lib/admin/installFieldTypes.js +2 -0
  30. package/dist/app/lib/admin/runWidgets.d.ts +1 -0
  31. package/dist/app/lib/admin/runWidgets.d.ts.map +1 -0
  32. package/dist/app/lib/admin/runWidgets.js +7 -2
  33. package/dist/app/lib/blocks/BlockPropMutator.d.ts +33 -0
  34. package/dist/app/lib/blocks/BlockPropMutator.d.ts.map +1 -0
  35. package/dist/app/lib/blocks/BlockPropMutator.js +20 -0
  36. package/dist/app/lib/blocks/ContentBlocks.d.ts +7 -4
  37. package/dist/app/lib/blocks/ContentBlocks.d.ts.map +1 -0
  38. package/dist/app/lib/blocks/ContentBlocks.js +14 -1
  39. package/dist/app/lib/blocks/EditableText.d.ts +30 -5
  40. package/dist/app/lib/blocks/EditableText.d.ts.map +1 -0
  41. package/dist/app/lib/blocks/EditableText.js +34 -5
  42. package/dist/app/lib/blocks/InnerBlocks.d.ts +11 -6
  43. package/dist/app/lib/blocks/InnerBlocks.d.ts.map +1 -0
  44. package/dist/app/lib/blocks/InnerBlocks.js +67 -27
  45. package/dist/app/lib/blocks/SlotBlocks.d.ts +8 -0
  46. package/dist/app/lib/blocks/SlotBlocks.d.ts.map +1 -0
  47. package/dist/app/lib/blocks/SlotBlocks.js +45 -0
  48. package/dist/app/lib/blocks/block-utils.d.ts +1 -0
  49. package/dist/app/lib/blocks/block-utils.d.ts.map +1 -0
  50. package/dist/app/lib/blocks/block-utils.js +18 -1
  51. package/dist/app/lib/blocks/builtin-blocks.d.ts +2 -0
  52. package/dist/app/lib/blocks/builtin-blocks.d.ts.map +1 -0
  53. package/dist/app/lib/blocks/builtin-blocks.js +55 -0
  54. package/dist/app/lib/blocks/defineBlock.d.ts +4 -0
  55. package/dist/app/lib/blocks/defineBlock.d.ts.map +1 -0
  56. package/dist/app/lib/blocks/defineBlock.js +9 -0
  57. package/dist/app/lib/blocks/editor/EditingContext.d.ts +2 -0
  58. package/dist/app/lib/blocks/editor/EditingContext.d.ts.map +1 -0
  59. package/dist/app/lib/blocks/editor/EditingContext.js +31 -0
  60. package/dist/app/lib/blocks/editor/EditorHighlights.d.ts +1 -0
  61. package/dist/app/lib/blocks/editor/EditorHighlights.d.ts.map +1 -0
  62. package/dist/app/lib/blocks/editor/EditorHighlights.js +43 -9
  63. package/dist/app/lib/blocks/editor/EditorSupport.d.ts +1 -4
  64. package/dist/app/lib/blocks/editor/EditorSupport.d.ts.map +1 -0
  65. package/dist/app/lib/blocks/editor/EditorSupport.js +23 -9
  66. package/dist/app/lib/blocks/editor/ErrorBoundaryEditor.d.ts +1 -0
  67. package/dist/app/lib/blocks/editor/ErrorBoundaryEditor.d.ts.map +1 -0
  68. package/dist/app/lib/blocks/editor/block-templates.d.ts +8 -1
  69. package/dist/app/lib/blocks/editor/block-templates.d.ts.map +1 -0
  70. package/dist/app/lib/blocks/editor/block-templates.js +71 -2
  71. package/dist/app/lib/blocks/editor/blocks-by-tag.d.ts +1 -0
  72. package/dist/app/lib/blocks/editor/blocks-by-tag.d.ts.map +1 -0
  73. package/dist/app/lib/blocks/editor/controls.d.ts +1 -0
  74. package/dist/app/lib/blocks/editor/controls.d.ts.map +1 -0
  75. package/dist/app/lib/blocks/editor/create-block.d.ts +10 -0
  76. package/dist/app/lib/blocks/editor/create-block.d.ts.map +1 -0
  77. package/dist/app/lib/blocks/editor/create-block.js +13 -0
  78. package/dist/app/lib/blocks/editor/editor-config.d.ts +64 -7
  79. package/dist/app/lib/blocks/editor/editor-config.d.ts.map +1 -0
  80. package/dist/app/lib/blocks/editor/editor-config.js +28 -73
  81. package/dist/app/lib/blocks/editor/installGutenbergHooks.d.ts +4 -0
  82. package/dist/app/lib/blocks/editor/installGutenbergHooks.d.ts.map +1 -0
  83. package/dist/app/lib/blocks/editor/installGutenbergHooks.js +152 -27
  84. package/dist/app/lib/blocks/editor/root-blocks.d.ts +1 -0
  85. package/dist/app/lib/blocks/editor/root-blocks.d.ts.map +1 -0
  86. package/dist/app/lib/blocks/editor/usePostEditor.d.ts +12 -1
  87. package/dist/app/lib/blocks/editor/usePostEditor.d.ts.map +1 -0
  88. package/dist/app/lib/blocks/editor/usePostEditor.js +38 -13
  89. package/dist/app/lib/blocks/index.d.ts +8 -5
  90. package/dist/app/lib/blocks/index.d.ts.map +1 -0
  91. package/dist/app/lib/blocks/index.js +8 -5
  92. package/dist/app/lib/blocks/inline-editing.d.ts +16 -1
  93. package/dist/app/lib/blocks/inline-editing.d.ts.map +1 -0
  94. package/dist/app/lib/blocks/inline-editing.js +14 -1
  95. package/dist/app/lib/devtools/components/BreakpointIndicator.d.ts +1 -0
  96. package/dist/app/lib/devtools/components/BreakpointIndicator.d.ts.map +1 -0
  97. package/dist/app/lib/devtools/components/BreakpointIndicator.js +1 -1
  98. package/dist/app/lib/devtools/components/DevUI.d.ts +1 -0
  99. package/dist/app/lib/devtools/components/DevUI.d.ts.map +1 -0
  100. package/dist/app/lib/devtools/components/DevUI.js +1 -1
  101. package/dist/app/lib/devtools/components/GridIndicator.d.ts +1 -0
  102. package/dist/app/lib/devtools/components/GridIndicator.d.ts.map +1 -0
  103. package/dist/app/lib/devtools/components/GridIndicator.js +1 -1
  104. package/dist/app/lib/devtools/dev-tools-store.d.ts +1 -0
  105. package/dist/app/lib/devtools/dev-tools-store.d.ts.map +1 -0
  106. package/dist/app/lib/devtools/hooks/usePersistState.d.ts +1 -0
  107. package/dist/app/lib/devtools/hooks/usePersistState.d.ts.map +1 -0
  108. package/dist/app/lib/devtools/hooks/useTailwind.d.ts +1358 -313
  109. package/dist/app/lib/devtools/hooks/useTailwind.d.ts.map +1 -0
  110. package/dist/app/lib/devtools/index.d.ts +1 -0
  111. package/dist/app/lib/devtools/index.d.ts.map +1 -0
  112. package/dist/app/lib/devtools/loader.d.ts +2 -1
  113. package/dist/app/lib/devtools/loader.d.ts.map +1 -0
  114. package/dist/app/lib/devtools/loader.js +4 -3
  115. package/dist/app/lib/devtools/tailwind.config.d.ts +1 -0
  116. package/dist/app/lib/devtools/tailwind.config.d.ts.map +1 -0
  117. package/dist/app/lib/devtools/useQueryDebug.d.ts +2 -1
  118. package/dist/app/lib/devtools/useQueryDebug.d.ts.map +1 -0
  119. package/dist/app/lib/dynamic/dynamic.d.ts +1 -0
  120. package/dist/app/lib/dynamic/dynamic.d.ts.map +1 -0
  121. package/dist/app/lib/dynamic/index.d.ts +1 -0
  122. package/dist/app/lib/dynamic/index.d.ts.map +1 -0
  123. package/dist/app/lib/hooks/index.d.ts +2 -1
  124. package/dist/app/lib/hooks/index.d.ts.map +1 -0
  125. package/dist/app/lib/hooks/index.js +1 -1
  126. package/dist/app/lib/hooks/{queryUtils.d.ts → query-hooks.d.ts} +8 -2
  127. package/dist/app/lib/hooks/query-hooks.d.ts.map +1 -0
  128. package/dist/app/lib/hooks/{queryUtils.js → query-hooks.js} +43 -11
  129. package/dist/app/lib/hooks/useAppData.d.ts +1 -0
  130. package/dist/app/lib/hooks/useAppData.d.ts.map +1 -0
  131. package/dist/app/lib/hooks/useAppData.js +11 -0
  132. package/dist/app/lib/hooks/useRPC.d.ts +1 -0
  133. package/dist/app/lib/hooks/useRPC.d.ts.map +1 -0
  134. package/dist/app/lib/hooks/useRPC.js +0 -1
  135. package/dist/app/lib/integrations/gravityforms/index.d.ts +3 -0
  136. package/dist/app/lib/integrations/gravityforms/index.d.ts.map +1 -0
  137. package/dist/app/lib/integrations/gravityforms/index.js +2 -0
  138. package/dist/app/lib/integrations/gravityforms/types.d.ts +145 -0
  139. package/dist/app/lib/integrations/gravityforms/types.d.ts.map +1 -0
  140. package/dist/app/lib/integrations/gravityforms/types.js +1 -0
  141. package/dist/app/lib/integrations/gravityforms/useGravityForm.d.ts +31 -0
  142. package/dist/app/lib/integrations/gravityforms/useGravityForm.d.ts.map +1 -0
  143. package/dist/app/lib/integrations/gravityforms/useGravityForm.js +298 -0
  144. package/dist/app/lib/internal/finalize-rpc.d.ts +1 -0
  145. package/dist/app/lib/internal/finalize-rpc.d.ts.map +1 -0
  146. package/dist/app/lib/internal/index.d.ts +1 -0
  147. package/dist/app/lib/internal/index.d.ts.map +1 -0
  148. package/dist/app/lib/internal/internal-store.d.ts +1 -0
  149. package/dist/app/lib/internal/internal-store.d.ts.map +1 -0
  150. package/dist/app/lib/internal/read-admin-manifest.d.ts +1 -0
  151. package/dist/app/lib/internal/read-admin-manifest.d.ts.map +1 -0
  152. package/dist/app/lib/internal/read-block-manifest.d.ts +2 -0
  153. package/dist/app/lib/internal/read-block-manifest.d.ts.map +1 -0
  154. package/dist/app/lib/internal/read-block-manifest.js +7 -0
  155. package/dist/app/lib/internal/read-view-manifest.d.ts +7 -4
  156. package/dist/app/lib/internal/read-view-manifest.d.ts.map +1 -0
  157. package/dist/app/lib/internal/read-view-manifest.js +18 -0
  158. package/dist/app/lib/legacy-stitches/createStitches.d.ts +8 -7
  159. package/dist/app/lib/legacy-stitches/createStitches.d.ts.map +1 -0
  160. package/dist/app/lib/legacy-stitches/index.d.ts +1 -0
  161. package/dist/app/lib/legacy-stitches/index.d.ts.map +1 -0
  162. package/dist/app/lib/routing/components/BackButton.d.ts +1 -0
  163. package/dist/app/lib/routing/components/BackButton.d.ts.map +1 -0
  164. package/dist/app/lib/routing/components/BrowserRouter.d.ts +7 -1
  165. package/dist/app/lib/routing/components/BrowserRouter.d.ts.map +1 -0
  166. package/dist/app/lib/routing/components/BrowserRouter.js +85 -14
  167. package/dist/app/lib/routing/components/ClientOnly.d.ts +1 -0
  168. package/dist/app/lib/routing/components/ClientOnly.d.ts.map +1 -0
  169. package/dist/app/lib/routing/components/ClientOnly.js +3 -3
  170. package/dist/app/lib/routing/components/Link.d.ts +21 -2
  171. package/dist/app/lib/routing/components/Link.d.ts.map +1 -0
  172. package/dist/app/lib/routing/components/Link.js +52 -23
  173. package/dist/app/lib/routing/components/NativeLinkHandler.d.ts +10 -0
  174. package/dist/app/lib/routing/components/NativeLinkHandler.d.ts.map +1 -0
  175. package/dist/app/lib/routing/components/NativeLinkHandler.js +23 -0
  176. package/dist/app/lib/routing/components/RouteRenderer.d.ts +1 -0
  177. package/dist/app/lib/routing/components/RouteRenderer.d.ts.map +1 -0
  178. package/dist/app/lib/routing/components/RouteRenderer.js +14 -1
  179. package/dist/app/lib/routing/components/SSRRouter.d.ts +3 -0
  180. package/dist/app/lib/routing/components/SSRRouter.d.ts.map +1 -0
  181. package/dist/app/lib/routing/components/SSRRouter.js +2 -0
  182. package/dist/app/lib/routing/components/ScrollRestoration.d.ts +1 -0
  183. package/dist/app/lib/routing/components/ScrollRestoration.d.ts.map +1 -0
  184. package/dist/app/lib/routing/context.d.ts +1 -0
  185. package/dist/app/lib/routing/context.d.ts.map +1 -0
  186. package/dist/app/lib/routing/hooks/{useIsSSR.d.ts → useHydrating.d.ts} +7 -0
  187. package/dist/app/lib/routing/hooks/useHydrating.d.ts.map +1 -0
  188. package/dist/app/lib/routing/hooks/{useIsSSR.js → useHydrating.js} +13 -3
  189. package/dist/app/lib/routing/hooks/useRestorableState.d.ts +1 -0
  190. package/dist/app/lib/routing/hooks/useRestorableState.d.ts.map +1 -0
  191. package/dist/app/lib/routing/hooks/useRestorableState.js +7 -2
  192. package/dist/app/lib/routing/hooks/useRoute.d.ts +1 -0
  193. package/dist/app/lib/routing/hooks/useRoute.d.ts.map +1 -0
  194. package/dist/app/lib/routing/hooks/useRouteMeta.d.ts +1 -0
  195. package/dist/app/lib/routing/hooks/useRouteMeta.d.ts.map +1 -0
  196. package/dist/app/lib/routing/hooks/useRouteTransition.d.ts +1 -0
  197. package/dist/app/lib/routing/hooks/useRouteTransition.d.ts.map +1 -0
  198. package/dist/app/lib/routing/hooks/useRouter.d.ts +1 -0
  199. package/dist/app/lib/routing/hooks/useRouter.d.ts.map +1 -0
  200. package/dist/app/lib/routing/hooks/useRouterEvents.d.ts +1 -0
  201. package/dist/app/lib/routing/hooks/useRouterEvents.d.ts.map +1 -0
  202. package/dist/app/lib/routing/hooks/useRouterState.d.ts +1 -0
  203. package/dist/app/lib/routing/hooks/useRouterState.d.ts.map +1 -0
  204. package/dist/app/lib/routing/hooks/useSearchParams.d.ts +78 -6
  205. package/dist/app/lib/routing/hooks/useSearchParams.d.ts.map +1 -0
  206. package/dist/app/lib/routing/hooks/useSearchParams.js +75 -15
  207. package/dist/app/lib/routing/index.d.ts +4 -1
  208. package/dist/app/lib/routing/index.d.ts.map +1 -0
  209. package/dist/app/lib/routing/index.js +3 -1
  210. package/dist/app/lib/routing/loader.d.ts +1 -0
  211. package/dist/app/lib/routing/loader.d.ts.map +1 -0
  212. package/dist/app/lib/routing/loader.js +1 -1
  213. package/dist/app/lib/routing/types.d.ts +40 -6
  214. package/dist/app/lib/routing/types.d.ts.map +1 -0
  215. package/dist/app/lib/routing/utils.d.ts +2 -0
  216. package/dist/app/lib/routing/utils.d.ts.map +1 -0
  217. package/dist/app/lib/routing/utils.js +5 -1
  218. package/dist/app/lib/runtime/apiConfig.d.ts +5 -0
  219. package/dist/app/lib/runtime/apiConfig.d.ts.map +1 -0
  220. package/dist/app/lib/runtime/errorHandling.d.ts +1 -0
  221. package/dist/app/lib/runtime/errorHandling.d.ts.map +1 -0
  222. package/dist/app/lib/runtime/index.d.ts +1 -0
  223. package/dist/app/lib/runtime/index.d.ts.map +1 -0
  224. package/dist/app/lib/views/defineView.d.ts +2 -1
  225. package/dist/app/lib/views/defineView.d.ts.map +1 -0
  226. package/dist/app/lib/views/index.d.ts +1 -0
  227. package/dist/app/lib/views/index.d.ts.map +1 -0
  228. package/dist/app/server/index.d.ts +4 -3
  229. package/dist/app/server/index.d.ts.map +1 -0
  230. package/dist/app/server/index.js +3 -3
  231. package/dist/app/server/proxy-wp-admin.d.ts +1 -0
  232. package/dist/app/server/proxy-wp-admin.d.ts.map +1 -0
  233. package/dist/app/server/proxy-wp-admin.js +23 -9
  234. package/dist/app/server/render-ai-page.d.ts +13 -0
  235. package/dist/app/server/render-ai-page.d.ts.map +1 -0
  236. package/dist/app/server/render-ai-page.js +102 -0
  237. package/dist/app/server/render-ssr-page.d.ts +17 -6
  238. package/dist/app/server/render-ssr-page.d.ts.map +1 -0
  239. package/dist/app/server/render-ssr-page.js +119 -36
  240. package/dist/app/server/rpc.d.ts +18 -41
  241. package/dist/app/server/rpc.d.ts.map +1 -0
  242. package/dist/app/server/server-context.d.ts +14 -3
  243. package/dist/app/server/server-context.d.ts.map +1 -0
  244. package/dist/app/server/server-context.js +204 -21
  245. package/dist/app/server/server-custom-config.d.ts +3 -0
  246. package/dist/app/server/server-custom-config.d.ts.map +1 -0
  247. package/dist/app/server/server-custom-config.js +1 -0
  248. package/dist/app/server/utils/content-security.d.ts +26 -0
  249. package/dist/app/server/utils/content-security.d.ts.map +1 -0
  250. package/dist/app/server/utils/content-security.js +124 -0
  251. package/dist/app/server/utils/headers.d.ts +1 -0
  252. package/dist/app/server/utils/headers.d.ts.map +1 -0
  253. package/dist/app/server/utils/replace-host.d.ts +1 -0
  254. package/dist/app/server/utils/replace-host.d.ts.map +1 -0
  255. package/dist/app/server/utils/swr-cache.d.ts +1 -0
  256. package/dist/app/server/utils/swr-cache.d.ts.map +1 -0
  257. package/dist/app/utils/APIProvider.d.ts +1 -0
  258. package/dist/app/utils/APIProvider.d.ts.map +1 -0
  259. package/dist/app/utils/BlockErrorBoundary.d.ts +1 -0
  260. package/dist/app/utils/BlockErrorBoundary.d.ts.map +1 -0
  261. package/dist/app/utils/ErrorMessage.d.ts +1 -0
  262. package/dist/app/utils/ErrorMessage.d.ts.map +1 -0
  263. package/dist/app/utils/RouteErrorBoundary.d.ts +2 -0
  264. package/dist/app/utils/RouteErrorBoundary.d.ts.map +1 -0
  265. package/dist/app/utils/RouteErrorBoundary.js +3 -0
  266. package/dist/app/utils/asset-capture.d.ts +1 -0
  267. package/dist/app/utils/asset-capture.d.ts.map +1 -0
  268. package/dist/app/utils/hydration-debugger.d.ts +1 -0
  269. package/dist/app/utils/hydration-debugger.d.ts.map +1 -0
  270. package/dist/app/utils/query-client.d.ts +1 -0
  271. package/dist/app/utils/query-client.d.ts.map +1 -0
  272. package/dist/app/utils/query-monitor.d.ts +27 -0
  273. package/dist/app/utils/query-monitor.d.ts.map +1 -0
  274. package/dist/app/utils/query-monitor.js +7 -0
  275. package/dist/app/utils/trpc-client.d.ts +1 -0
  276. package/dist/app/utils/trpc-client.d.ts.map +1 -0
  277. package/dist/app/utils/trpc-client.js +1 -1
  278. package/dist/app/utils/wp.d.ts +11 -10
  279. package/dist/app/utils/wp.d.ts.map +1 -0
  280. package/dist/node/cli/cli-mode.d.ts +1 -0
  281. package/dist/node/cli/cli-mode.d.ts.map +1 -0
  282. package/dist/node/cli/cli-worker.d.ts +1 -0
  283. package/dist/node/cli/cli-worker.d.ts.map +1 -0
  284. package/dist/node/cli/cli-worker.js +1 -0
  285. package/dist/node/cli/cli.d.ts +1 -0
  286. package/dist/node/cli/cli.d.ts.map +1 -0
  287. package/dist/node/cli/cli.js +100 -11
  288. package/dist/node/cli/display/CLIApp.d.ts +1 -0
  289. package/dist/node/cli/display/CLIApp.d.ts.map +1 -0
  290. package/dist/node/cli/display/boot-cli-app.d.ts +1 -0
  291. package/dist/node/cli/display/boot-cli-app.d.ts.map +1 -0
  292. package/dist/node/cli/display/components/Fullscreen.d.ts +1 -0
  293. package/dist/node/cli/display/components/Fullscreen.d.ts.map +1 -0
  294. package/dist/node/cli/display/components/LogEntries.d.ts +1 -0
  295. package/dist/node/cli/display/components/LogEntries.d.ts.map +1 -0
  296. package/dist/node/cli/display/components/MenuItem.d.ts +1 -0
  297. package/dist/node/cli/display/components/MenuItem.d.ts.map +1 -0
  298. package/dist/node/cli/display/components/TextInput.d.ts +1 -0
  299. package/dist/node/cli/display/components/TextInput.d.ts.map +1 -0
  300. package/dist/node/cli/display/hooks/useManifest.d.ts +1 -0
  301. package/dist/node/cli/display/hooks/useManifest.d.ts.map +1 -0
  302. package/dist/node/cli/display/hooks/useStatefulLog.d.ts +1 -0
  303. package/dist/node/cli/display/hooks/useStatefulLog.d.ts.map +1 -0
  304. package/dist/node/cli/display/tools/BlockList.d.ts +1 -0
  305. package/dist/node/cli/display/tools/BlockList.d.ts.map +1 -0
  306. package/dist/node/cli/display/tools/CreateBlock.d.ts +1 -0
  307. package/dist/node/cli/display/tools/CreateBlock.d.ts.map +1 -0
  308. package/dist/node/cli/display/tools/cli-tool-list.d.ts +1 -0
  309. package/dist/node/cli/display/tools/cli-tool-list.d.ts.map +1 -0
  310. package/dist/node/cli/display/tools/cli-tools.d.ts +1 -0
  311. package/dist/node/cli/display/tools/cli-tools.d.ts.map +1 -0
  312. package/dist/node/cli/display/util/colors.d.ts +1 -0
  313. package/dist/node/cli/display/util/colors.d.ts.map +1 -0
  314. package/dist/node/cli/version.d.ts +2 -1
  315. package/dist/node/cli/version.d.ts.map +1 -0
  316. package/dist/node/cli/version.js +1 -1
  317. package/dist/node/compiler/build-vinxi.d.ts +1 -0
  318. package/dist/node/compiler/build-vinxi.d.ts.map +1 -0
  319. package/dist/node/compiler/build-vinxi.js +1 -0
  320. package/dist/node/compiler/bundler.admin.d.ts +1 -0
  321. package/dist/node/compiler/bundler.admin.d.ts.map +1 -0
  322. package/dist/node/compiler/bundler.frontend.d.ts +2 -0
  323. package/dist/node/compiler/bundler.frontend.d.ts.map +1 -0
  324. package/dist/node/compiler/bundler.frontend.js +25 -11
  325. package/dist/node/compiler/cache-config.d.ts +3 -0
  326. package/dist/node/compiler/cache-config.d.ts.map +1 -0
  327. package/dist/node/compiler/cache-config.js +16 -0
  328. package/dist/node/compiler/dev-server.d.ts +4 -1
  329. package/dist/node/compiler/dev-server.d.ts.map +1 -0
  330. package/dist/node/compiler/dev-server.js +26 -13
  331. package/dist/node/compiler/get-vite-config.d.ts +11 -1
  332. package/dist/node/compiler/get-vite-config.d.ts.map +1 -0
  333. package/dist/node/compiler/get-vite-config.js +164 -36
  334. package/dist/node/compiler/vinxi-app.d.ts +1 -0
  335. package/dist/node/compiler/vinxi-app.d.ts.map +1 -0
  336. package/dist/node/compiler/vinxi-app.js +56 -39
  337. package/dist/node/compiler/vinxi-codegen.d.ts +1 -0
  338. package/dist/node/compiler/vinxi-codegen.d.ts.map +1 -0
  339. package/dist/node/compiler/vinxi-codegen.js +152 -85
  340. package/dist/node/graphql/graphql-codegen.d.ts +1 -0
  341. package/dist/node/graphql/graphql-codegen.d.ts.map +1 -0
  342. package/dist/node/graphql/graphql-codegen.js +52 -24
  343. package/dist/node/graphql/graphql-schema-loader.d.ts +1 -0
  344. package/dist/node/graphql/graphql-schema-loader.d.ts.map +1 -0
  345. package/dist/node/graphql/plugins/gql-plugin-files.d.ts +3 -1
  346. package/dist/node/graphql/plugins/gql-plugin-files.d.ts.map +1 -0
  347. package/dist/node/graphql/plugins/gql-plugin-files.js +3 -2
  348. package/dist/node/graphql/plugins/gql-plugin-no-duplicates.d.ts +1 -0
  349. package/dist/node/graphql/plugins/gql-plugin-no-duplicates.d.ts.map +1 -0
  350. package/dist/node/graphql/plugins/gql-plugin-queries.d.ts +1 -0
  351. package/dist/node/graphql/plugins/gql-plugin-queries.d.ts.map +1 -0
  352. package/dist/node/graphql/plugins/gql-plugin-queries.js +1 -1
  353. package/dist/node/graphql/query-files-loader.d.ts +1 -0
  354. package/dist/node/graphql/query-files-loader.d.ts.map +1 -0
  355. package/dist/node/graphql/wp-info-query.d.ts +1 -0
  356. package/dist/node/graphql/wp-info-query.d.ts.map +1 -0
  357. package/dist/node/project/config.d.ts +112 -7
  358. package/dist/node/project/config.d.ts.map +1 -0
  359. package/dist/node/project/config.js +54 -24
  360. package/dist/node/project/eddev-build-file.d.ts +1 -0
  361. package/dist/node/project/eddev-build-file.d.ts.map +1 -0
  362. package/dist/node/project/eddev-build-file.js +4 -2
  363. package/dist/node/project/env.d.ts +1 -0
  364. package/dist/node/project/env.d.ts.map +1 -0
  365. package/dist/node/project/favicons.d.ts +1 -0
  366. package/dist/node/project/favicons.d.ts.map +1 -0
  367. package/dist/node/project/manifest/block-manifest.d.ts +1 -0
  368. package/dist/node/project/manifest/block-manifest.d.ts.map +1 -0
  369. package/dist/node/project/manifest/block-manifest.js +7 -2
  370. package/dist/node/project/manifest/field-manifest.d.ts +1 -0
  371. package/dist/node/project/manifest/field-manifest.d.ts.map +1 -0
  372. package/dist/node/project/manifest/manifest.d.ts +1 -0
  373. package/dist/node/project/manifest/manifest.d.ts.map +1 -0
  374. package/dist/node/project/manifest/routes-manifest.d.ts +1 -0
  375. package/dist/node/project/manifest/routes-manifest.d.ts.map +1 -0
  376. package/dist/node/project/manifest/routes-manifest.js +1 -1
  377. package/dist/node/project/manifest/view-manifest.d.ts +1 -0
  378. package/dist/node/project/manifest/view-manifest.d.ts.map +1 -0
  379. package/dist/node/project/manifest/widget-manifest.d.ts +1 -0
  380. package/dist/node/project/manifest/widget-manifest.d.ts.map +1 -0
  381. package/dist/node/project/project.d.ts +4 -0
  382. package/dist/node/project/project.d.ts.map +1 -0
  383. package/dist/node/project/project.js +24 -1
  384. package/dist/node/project/wp-info.d.ts +2 -0
  385. package/dist/node/project/wp-info.d.ts.map +1 -0
  386. package/dist/node/storybook/index.d.ts +3 -0
  387. package/dist/node/storybook/index.d.ts.map +1 -0
  388. package/dist/node/storybook/index.js +13 -0
  389. package/dist/node/types/block-type.d.ts +33 -6
  390. package/dist/node/types/block-type.d.ts.map +1 -0
  391. package/dist/node/types/block-type.js +3 -1
  392. package/dist/node/types/view-type.d.ts +1 -0
  393. package/dist/node/types/view-type.d.ts.map +1 -0
  394. package/dist/node/utils/fetch-wp.d.ts +1 -0
  395. package/dist/node/utils/fetch-wp.d.ts.map +1 -0
  396. package/dist/node/utils/fetch-wp.js +4 -3
  397. package/dist/node/utils/format-zod-error.d.ts +1 -0
  398. package/dist/node/utils/format-zod-error.d.ts.map +1 -0
  399. package/dist/node/utils/fs-codegen.d.ts +2 -0
  400. package/dist/node/utils/fs-codegen.d.ts.map +1 -0
  401. package/dist/node/utils/fs-codegen.js +8 -1
  402. package/dist/node/utils/fs.d.ts +24 -16
  403. package/dist/node/utils/fs.d.ts.map +1 -0
  404. package/dist/node/utils/get-repo-info.d.ts +1 -0
  405. package/dist/node/utils/get-repo-info.d.ts.map +1 -0
  406. package/dist/node/utils/helpers.d.ts +1 -0
  407. package/dist/node/utils/helpers.d.ts.map +1 -0
  408. package/dist/node/utils/highlight-code.d.ts +1 -0
  409. package/dist/node/utils/highlight-code.d.ts.map +1 -0
  410. package/dist/node/utils/is-deploying.d.ts +1 -0
  411. package/dist/node/utils/is-deploying.d.ts.map +1 -0
  412. package/dist/node/utils/report-builder.d.ts +7 -6
  413. package/dist/node/utils/report-builder.d.ts.map +1 -0
  414. package/dist/node/utils/self-signed-cert.d.ts +5 -0
  415. package/dist/node/utils/self-signed-cert.d.ts.map +1 -0
  416. package/dist/node/utils/self-signed-cert.js +28 -4
  417. package/dist/node/utils/stateful-log.d.ts +1 -0
  418. package/dist/node/utils/stateful-log.d.ts.map +1 -0
  419. package/dist/node/utils/ts-export-extractor.d.ts +1 -0
  420. package/dist/node/utils/ts-export-extractor.d.ts.map +1 -0
  421. package/dist/node/utils/watch-file-tree.d.ts +1 -0
  422. package/dist/node/utils/watch-file-tree.d.ts.map +1 -0
  423. package/package.json +34 -24
  424. package/tsconfig.app.json +8 -3
  425. package/tsconfig.node.json +1 -0
  426. package/types.env.d.ts +3 -0
  427. package/types.meta.d.ts +449 -136
  428. package/dist/app/server/defineRouter.d.ts +0 -2
  429. package/dist/app/server/defineRouter.js +0 -4
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useEffect, useMemo, useRef, useState, useTransition } from "react";
2
+ import { useEffect, useMemo, useRef, useState, useTransition, startTransition as startTransitionRaw, } from "react";
3
3
  import { isEqual, isRelative, parseURL, resolveURL } from "ufo";
4
4
  import { clientMetaTags, RouterContext, RouterStateContext } from "../context.js";
5
5
  import { $routeMetaStore } from "../hooks/useRouteMeta.js";
@@ -66,18 +66,19 @@ function historyStateForRoute(route) {
66
66
  state: route.returnState,
67
67
  };
68
68
  }
69
- let lastRouterState = null;
69
+ let clientRouter = null;
70
+ export function getClientRouter() {
71
+ return clientRouter;
72
+ }
70
73
  export function BrowserRouter(props) {
71
74
  const pendingRoute = useRef(null);
72
75
  const [transitioning, startTransition] = useTransition();
76
+ const pendingNavigationClick = useRef(null);
73
77
  const [routerState, setRouterState] = useState(() => ({
74
78
  activeRoute: initialRoute,
75
79
  history: [initialRoute],
76
80
  blockers: [],
77
81
  }));
78
- if (lastRouterState !== routerState) {
79
- lastRouterState = routerState;
80
- }
81
82
  const { internals, api } = useMemo(() => {
82
83
  let subscribers = new Set();
83
84
  let state = routerState;
@@ -96,8 +97,19 @@ export function BrowserRouter(props) {
96
97
  document.title = title;
97
98
  }
98
99
  }
99
- setRouterState(state);
100
+ startTransitionRaw(() => {
101
+ setRouterState(state);
102
+ });
100
103
  };
104
+ // If a dynamic compojnent fails to load during a page transition, we need to reload the page
105
+ subscribers.add((event) => {
106
+ if (event.type === "error:component-load-failed") {
107
+ if (state?.pendingRoute) {
108
+ console.warn("Failed to load route component. May be a deployment mismatch.");
109
+ window.location.href = state.pendingRoute.uri;
110
+ }
111
+ }
112
+ });
101
113
  const internals = {
102
114
  transitionEnded: null,
103
115
  updateRoute: null,
@@ -189,6 +201,7 @@ export function BrowserRouter(props) {
189
201
  emitEvent({
190
202
  type: "navigate:start",
191
203
  link,
204
+ linkData: args.linkData,
192
205
  currentRoute: currentRoute,
193
206
  hasPreloadedData: hasRouteData,
194
207
  goingBack: !!args.goingBack,
@@ -199,7 +212,13 @@ export function BrowserRouter(props) {
199
212
  if (cancelled)
200
213
  return;
201
214
  const data = await loader.loadRouteData(parseHrefPath(args.url)).catch((err) => {
202
- emitEvent({ type: "error", error: err, critical: true });
215
+ emitEvent({
216
+ type: "error",
217
+ url: args.url,
218
+ error: err,
219
+ critical: true,
220
+ linkData: args.linkData,
221
+ });
203
222
  return {
204
223
  view: "_error",
205
224
  viewType: "react",
@@ -228,6 +247,7 @@ export function BrowserRouter(props) {
228
247
  component: lazyComponent,
229
248
  returnState: args.restoreState ?? {},
230
249
  meta: getRouteMeta(data),
250
+ linkData: args.linkData,
231
251
  });
232
252
  setState({
233
253
  pendingRoute: route,
@@ -237,12 +257,14 @@ export function BrowserRouter(props) {
237
257
  currentRoute,
238
258
  loadedRoute: route,
239
259
  link,
260
+ linkData: args.linkData,
240
261
  });
241
262
  emitEvent({
242
263
  type: "navigate:will-change",
243
264
  currentRoute,
244
265
  loadedRoute: route,
245
266
  link,
267
+ linkData: args.linkData,
246
268
  });
247
269
  internals.transitionEnded = () => {
248
270
  internals.transitionEnded = null;
@@ -255,8 +277,18 @@ export function BrowserRouter(props) {
255
277
  currentRoute: route,
256
278
  lastRoute: currentRoute,
257
279
  link,
280
+ linkData: args.linkData,
258
281
  });
259
282
  $routeMetaStore.data = route.meta;
283
+ pendingNavigationClick.current = null;
284
+ // Update the 'Edit Page' button, if there is one
285
+ if (route.meta.editLink) {
286
+ const button = document.querySelector("#wp-admin-bar-edit a");
287
+ if (button) {
288
+ button.setAttribute("href", route.meta.editLink);
289
+ button.innerHTML = "Edit Page";
290
+ }
291
+ }
260
292
  };
261
293
  startTransition(() => {
262
294
  pendingRoute.current = route;
@@ -268,11 +300,13 @@ export function BrowserRouter(props) {
268
300
  }
269
301
  const api = {
270
302
  loader: loader,
271
- async navigate(url) {
303
+ hostname: window?._PAGE_DATA?.hostname,
304
+ async navigate(url, args) {
272
305
  doRouteTransition({
273
306
  url: url,
274
307
  shouldPush: true,
275
308
  goingBack: false,
309
+ linkData: args?.linkData,
276
310
  });
277
311
  },
278
312
  getState() {
@@ -302,7 +336,7 @@ export function BrowserRouter(props) {
302
336
  });
303
337
  }
304
338
  catch (err) {
305
- emitEvent({ type: "error", error: err, critical: false });
339
+ emitEvent({ type: "error", error: err, critical: false, linkData: undefined });
306
340
  }
307
341
  },
308
342
  async preload(url) {
@@ -320,7 +354,7 @@ export function BrowserRouter(props) {
320
354
  }
321
355
  }
322
356
  catch (err) {
323
- emitEvent({ type: "error", error: err, critical: false });
357
+ emitEvent({ type: "error", error: err, critical: false, linkData: undefined });
324
358
  }
325
359
  },
326
360
  subscribe(fn) {
@@ -329,9 +363,37 @@ export function BrowserRouter(props) {
329
363
  subscribers.delete(fn);
330
364
  };
331
365
  },
332
- handleClickEvent(e, originalHref, preferBack) {
333
- const { mode, href } = getLinkHandlerMode(e, originalHref, state.activeRoute);
334
- if (mode === "ignore") {
366
+ handleClickEvent(e, originalHref, preferBack, eventTarget, linkData) {
367
+ const { mode, href, isSameUrl } = getLinkHandlerMode(e, originalHref, state.activeRoute);
368
+ let cancelled = false;
369
+ // If the same link has only just been clicked very recently, ignore it.
370
+ // Likely this is a double-click, or the page has taken a bit longer to load than the user expected.
371
+ if (pendingNavigationClick.current && pendingNavigationClick.current.href === href) {
372
+ const pendingAge = Date.now() - pendingNavigationClick.current.startTime;
373
+ if (pendingAge < 1000) {
374
+ e.preventDefault();
375
+ return;
376
+ }
377
+ }
378
+ else {
379
+ pendingNavigationClick.current = { startTime: Date.now(), href: href };
380
+ }
381
+ if (href) {
382
+ emitEvent({
383
+ type: "clicked",
384
+ currentRoute: getActiveRoute(),
385
+ link: parseRouteLink(href),
386
+ linkData,
387
+ mode,
388
+ href,
389
+ isSameUrl,
390
+ target: (eventTarget || e.currentTarget || e.target),
391
+ cancel() {
392
+ cancelled = true;
393
+ },
394
+ });
395
+ }
396
+ if (mode === "ignore" || cancelled) {
335
397
  e.preventDefault();
336
398
  return;
337
399
  }
@@ -350,7 +412,9 @@ export function BrowserRouter(props) {
350
412
  }
351
413
  }
352
414
  }
353
- api.navigate(href);
415
+ api.navigate(href, {
416
+ linkData,
417
+ });
354
418
  }
355
419
  },
356
420
  emitEvent,
@@ -423,5 +487,12 @@ export function BrowserRouter(props) {
423
487
  window.removeEventListener("popstate", onPopState);
424
488
  };
425
489
  }, []);
490
+ useEffect(() => {
491
+ props.onReady?.();
492
+ }, []);
493
+ clientRouter = {
494
+ state: routerState,
495
+ api,
496
+ };
426
497
  return (_jsx(RouterContext.Provider, { value: api, children: _jsx(RouterStateContext.Provider, { value: routerState, children: _jsx(AppRenderer, {}) }) }));
427
498
  }
@@ -10,3 +10,4 @@ type Props = PropsWithChildren<{
10
10
  */
11
11
  export declare function ClientOnly(props: Props): string | number | boolean | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element | null;
12
12
  export {};
13
+ //# sourceMappingURL=ClientOnly.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClientOnly.d.ts","sourceRoot":"","sources":["../../../../../src/app/lib/routing/components/ClientOnly.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAGnD,KAAK,KAAK,GAAG,iBAAiB,CAAC;IAC7B,qEAAqE;IACrE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC3B,CAAC,CAAA;AAEF;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,oHAMtC"}
@@ -1,14 +1,14 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { Fragment } from "react";
3
- import { useIsSSR } from "../hooks/useIsSSR.js";
3
+ import { useHydrating } from "../hooks/useHydrating.js";
4
4
  /**
5
5
  * Renders children, but only on the client.
6
6
  *
7
7
  * The optional 'fallback' prop can be used to show a loading state or placeholder content while the client bundle is loading.
8
8
  */
9
9
  export function ClientOnly(props) {
10
- const mounted = useIsSSR();
11
- if (!mounted)
10
+ const mounted = useHydrating();
11
+ if (mounted)
12
12
  return props.fallback ?? null;
13
13
  return _jsx(Fragment, { children: props.children });
14
14
  }
@@ -1,10 +1,28 @@
1
- import { ComponentPropsWithRef, ElementType, ReactElement } from "react";
2
- type Props<T extends ElementType = "a"> = NoInfer<Omit<ComponentPropsWithRef<T>, "href">> & {
1
+ import { ComponentPropsWithRef, ElementType, MouseEvent, ReactElement } from "react";
2
+ import { LinkClickData } from "../types.js";
3
+ type Props<T extends ElementType = "a"> = NoInfer<Omit<ComponentPropsWithRef<T>, "href" | "target">> & {
3
4
  href?: string | null;
4
5
  target?: string | null;
5
6
  as?: T;
6
7
  preferBack?: boolean | "exact";
8
+ linkData?: LinkClickData;
7
9
  };
10
+ export declare function useLinkProps<T extends ElementType = "a">(props: Exclude<Props<T>, "as">, ref?: React.Ref<HTMLAnchorElement>): ({
11
+ ref: import("react").Ref<HTMLAnchorElement> | undefined;
12
+ "data-active": boolean | "path" | "query" | "exact" | undefined;
13
+ "data-child-active": boolean | undefined;
14
+ "data-pending": "path" | "query" | "exact" | undefined;
15
+ } & Exclude<Props<T>, "as"> & {
16
+ href: string;
17
+ onMouseEnter: (e: MouseEvent) => void;
18
+ onPointerDown: (e: PointerEvent) => void;
19
+ onClick: (e: MouseEvent) => void;
20
+ }) | ({
21
+ ref: import("react").Ref<HTMLAnchorElement> | undefined;
22
+ } & Exclude<Props<T>, "as"> & {
23
+ href: string | undefined;
24
+ onClick: (e: MouseEvent) => void;
25
+ });
8
26
  export declare const Link: <T extends ElementType = "a">(props: Props<T>) => ReactElement;
9
27
  /**
10
28
  * Provides information about the given href parameter, such as whether it is active, whether a child page is active, or whether it is loading.
@@ -25,3 +43,4 @@ export declare function useLinkState(href: string): {
25
43
  pending: "path" | "query" | "exact" | undefined;
26
44
  };
27
45
  export {};
46
+ //# sourceMappingURL=Link.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../../../../src/app/lib/routing/components/Link.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAsC,MAAM,OAAO,CAAA;AAIxH,OAAO,EAAE,aAAa,EAAc,MAAM,aAAa,CAAA;AAKvD,KAAK,KAAK,CAAC,CAAC,SAAS,WAAW,GAAG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,GAAG;IACrG,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,EAAE,CAAC,EAAE,CAAC,CAAA;IACN,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;IAC9B,QAAQ,CAAC,EAAE,aAAa,CAAA;CACzB,CAAA;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,WAAW,GAAG,GAAG,EACtD,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAC9B,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC;;;;;;;sBAuBd,UAAU;uBAOT,YAAY;iBAOlB,UAAU;;;;;iBA9BR,UAAU;GAwC5B;AAED,eAAO,MAAM,IAAI,EAIX,CAAC,CAAC,SAAS,WAAW,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,YAAY,CAAA;AAKpE;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM;;;;;;;;;;;;EA6BxC"}
@@ -1,32 +1,58 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { forwardRef, useMemo } from "react";
1
+ import { createElement, forwardRef, useMemo } from "react";
3
2
  import { parseURL, resolveURL, withoutTrailingSlash } from "ufo";
4
- import { useIsSSR } from "../hooks/useIsSSR.js";
3
+ import { useHydrating } from "../hooks/useHydrating.js";
5
4
  import { useRouter } from "../hooks/useRouter.js";
6
- import { addTrailingSlash, isSameOrigin } from "../utils.js";
5
+ import { addTrailingSlash, getLinkHandlerMode, isSameOrigin } from "../utils.js";
7
6
  import { useRoute } from "../hooks/useRoute.js";
8
7
  import { useRouterState } from "../hooks/useRouterState.js";
9
- export const Link = forwardRef(({ preferBack, as, ...props }, ref) => {
10
- const Comp = as || "a";
8
+ export function useLinkProps(props, ref) {
11
9
  if (env.admin) {
12
- return (_jsx(Comp, { ref: ref, ...props, href: props.href ?? undefined, onClick: (e) => {
10
+ return {
11
+ ref: ref,
12
+ ...props,
13
+ href: props.href ?? undefined,
14
+ onClick: (e) => {
13
15
  props.onClick?.(e);
14
16
  e.preventDefault();
15
- } }));
17
+ },
18
+ };
16
19
  }
17
- else {
18
- const router = useRouter();
19
- const state = useLinkState(props.href ?? "");
20
- return (_jsx(Comp, { ref: ref, "data-active": state.active ?? undefined, "data-child-active": state.childActive ?? undefined, "data-pending": state.pending ?? undefined, ...props, href: addTrailingSlash(props.href), onMouseEnter: (e) => {
21
- if (props.onMouseEnter) {
22
- props.onMouseEnter(e);
23
- }
20
+ const router = useRouter();
21
+ const state = useLinkState(props.href ?? "");
22
+ const finalProps = {
23
+ ref: ref,
24
+ "data-active": state.active ?? undefined,
25
+ "data-child-active": state.childActive ?? undefined,
26
+ "data-pending": state.pending ?? undefined,
27
+ ...props,
28
+ href: addTrailingSlash(props.href),
29
+ onMouseEnter: (e) => {
30
+ props.onMouseEnter?.(e);
31
+ const mode = getLinkHandlerMode(e, props.href);
32
+ if (mode.mode === "navigate") {
24
33
  router.preload(props.href);
25
- }, onClick: (e) => {
26
- props.onClick?.(e);
27
- router.handleClickEvent(e, props.href ?? undefined, preferBack);
28
- } }));
29
- }
34
+ }
35
+ },
36
+ onPointerDown: (e) => {
37
+ props.onPointerDown?.(e);
38
+ const mode = getLinkHandlerMode(e, props.href);
39
+ if (mode.mode === "navigate") {
40
+ router.preload(props.href);
41
+ }
42
+ },
43
+ onClick: (e) => {
44
+ props.onClick?.(e);
45
+ router.handleClickEvent(e, props.href ?? undefined, props.preferBack, undefined, props.linkData);
46
+ },
47
+ };
48
+ delete finalProps.preferBack;
49
+ delete finalProps.linkData;
50
+ return finalProps;
51
+ }
52
+ export const Link = forwardRef(({ as, ...props }, ref) => {
53
+ const Comp = as || "a";
54
+ const finalProps = useLinkProps(props, ref);
55
+ return createElement(Comp, finalProps);
30
56
  });
31
57
  // @ts-ignore
32
58
  Link.displayName = "Link";
@@ -38,7 +64,7 @@ Link.displayName = "Link";
38
64
  export function useLinkState(href) {
39
65
  const route = useRoute();
40
66
  const pendingRoute = useRouterState((r) => r.pendingRoute);
41
- const isSSR = useIsSSR();
67
+ const isSSR = useHydrating();
42
68
  const state = useMemo(() => {
43
69
  // If we're in SSR mode, do a quick and dirty check, which relies on the href being relative.
44
70
  if (isSSR) {
@@ -54,8 +80,8 @@ export function useLinkState(href) {
54
80
  }
55
81
  const hrefUrl = parseURL(resolveURL(href));
56
82
  const active = route ? compareUri(route, hrefUrl) : undefined;
57
- const childActive = !active && route ? isSubpath(hrefUrl.pathname, route.pathname) : undefined;
58
- const pending = pendingRoute ? compareUri(pendingRoute, hrefUrl) : undefined;
83
+ const childActive = !active && route ? isSubpath(hrefUrl.pathname, route.pathname) || undefined : undefined;
84
+ const pending = pendingRoute ? compareUri(pendingRoute, hrefUrl) || undefined : undefined;
59
85
  return {
60
86
  active,
61
87
  childActive,
@@ -83,6 +109,9 @@ function compareUri(route, href) {
83
109
  }
84
110
  }
85
111
  function isSubpath(parentPath, childPath) {
112
+ if (parentPath === "/" || childPath === "/") {
113
+ return false;
114
+ }
86
115
  if (withoutTrailingSlash(parentPath) === withoutTrailingSlash(childPath)) {
87
116
  return false;
88
117
  }
@@ -0,0 +1,10 @@
1
+ import { HTMLProps, JSX } from "react";
2
+ type Props<T extends keyof JSX.IntrinsicElements> = {
3
+ as?: T;
4
+ } & HTMLProps<T>;
5
+ /**
6
+ * Use this component to wrap any HTML element that contains <a> tags that are not already handled by the router.
7
+ */
8
+ export declare function NativeLinkHandler<T extends keyof JSX.IntrinsicElements = "div">({ as, ...props }: Props<T>): import("react/jsx-runtime").JSX.Element;
9
+ export {};
10
+ //# sourceMappingURL=NativeLinkHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeLinkHandler.d.ts","sourceRoot":"","sources":["../../../../../src/app/lib/routing/components/NativeLinkHandler.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkB,SAAS,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAGtD,KAAK,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,CAAC,iBAAiB,IAAI;IAClD,EAAE,CAAC,EAAE,CAAC,CAAA;CACP,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;AAEhB;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,GAAG,CAAC,iBAAiB,GAAG,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,2CAqB1G"}
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useRouter } from "../hooks/useRouter";
3
+ /**
4
+ * Use this component to wrap any HTML element that contains <a> tags that are not already handled by the router.
5
+ */
6
+ export function NativeLinkHandler({ as, ...props }) {
7
+ const handleClickEvent = useRouter((r) => r.handleClickEvent);
8
+ const Comp = (as ?? "div");
9
+ return (_jsx(Comp, { ...props, onClick: (e) => {
10
+ if (props.onClick)
11
+ props.onClick(e);
12
+ if (e.target instanceof HTMLAnchorElement) {
13
+ const link = e.target;
14
+ handleClickEvent?.(e, link.href, false, link);
15
+ }
16
+ else if (e.target instanceof HTMLElement) {
17
+ const link = e.target.closest("a");
18
+ if (link) {
19
+ handleClickEvent?.(e, link.href, false, link);
20
+ }
21
+ }
22
+ } }));
23
+ }
@@ -7,3 +7,4 @@ export declare function RouteDisplay(props: {
7
7
  export declare namespace RouteDisplay {
8
8
  var displayName: string;
9
9
  }
10
+ //# sourceMappingURL=RouteRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RouteRenderer.d.ts","sourceRoot":"","sources":["../../../../../src/app/lib/routing/components/RouteRenderer.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAOxC,eAAO,MAAM,WAAW,oFAatB,CAAA;AAEF,wBAAgB,SAAS,4CAGxB;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,UAAU,CAAA;CAAE,2CA8BxD;yBA9Be,YAAY"}
@@ -21,9 +21,22 @@ export function RouteDisplay(props) {
21
21
  if (!Component) {
22
22
  console.error("No component for route");
23
23
  }
24
+ const router = useRouter();
24
25
  return useMemo(() => {
25
26
  let child = !!Component && _jsx(Component, { ...props.route.props });
26
- return (_jsx(RouteErrorBoundary, { route: props.route, children: _jsx(RouteItemContext.Provider, { value: props.route, children: child }) }));
27
+ if (router.isAI) {
28
+ child = _jsx("div", { id: "ai-page-contents", children: child });
29
+ }
30
+ return (_jsx(RouteErrorBoundary, { route: props.route, onError: (error, errorInfo) => {
31
+ if (env.client) {
32
+ if (error.message.includes("Failed to fetch dynamically imported module")) {
33
+ router.emitEvent({
34
+ type: "error:component-load-failed",
35
+ error,
36
+ });
37
+ }
38
+ }
39
+ }, children: _jsx(RouteItemContext.Provider, { value: props.route, children: child }) }));
27
40
  }, [Component, props.route, props.route]);
28
41
  }
29
42
  RouteDisplay.displayName = "RouteDisplay";
@@ -2,8 +2,11 @@ import { PropsWithChildren } from "react";
2
2
  import { RouteLoader } from "../loader.js";
3
3
  import { RouteState } from "../types.js";
4
4
  type Props = PropsWithChildren<{
5
+ hostname?: string;
5
6
  route: RouteState;
6
7
  loader: RouteLoader;
8
+ isAI?: boolean;
7
9
  }>;
8
10
  export declare function SSRRouter(props: Props): import("react/jsx-runtime").JSX.Element;
9
11
  export {};
12
+ //# sourceMappingURL=SSRRouter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SSRRouter.d.ts","sourceRoot":"","sources":["../../../../../src/app/lib/routing/components/SSRRouter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAY,MAAM,OAAO,CAAA;AAInD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAGxC,KAAK,KAAK,GAAG,iBAAiB,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,UAAU,CAAA;IACjB,MAAM,EAAE,WAAW,CAAA;IACnB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf,CAAC,CAAA;AAEF,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,2CAiBrC"}
@@ -7,6 +7,8 @@ export function SSRRouter(props) {
7
7
  const router = useRouter();
8
8
  const routerState = useRouterState();
9
9
  router.loader = props.loader;
10
+ router.hostname = props.hostname;
11
+ router.isAI = props.isAI;
10
12
  routerState.history = [props.route];
11
13
  routerState.activeRoute = props.route;
12
14
  return (_jsx(RouterContext.Provider, { value: router, children: _jsx(RouterStateContext.Provider, { value: routerState, children: _jsx(AppRenderer, {}) }) }));
@@ -13,3 +13,4 @@ type Props = {
13
13
  */
14
14
  export declare function ScrollRestoration(props: Props): null;
15
15
  export {};
16
+ //# sourceMappingURL=ScrollRestoration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScrollRestoration.d.ts","sourceRoot":"","sources":["../../../../../src/app/lib/routing/components/ScrollRestoration.tsx"],"names":[],"mappings":"AAEA,KAAK,KAAK,GAAG;IACX,2FAA2F;IAC3F,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,KAAK,IAAI,CAAA;IACxF,4CAA4C;IAC5C,SAAS,CAAC,EAAE,cAAc,CAAA;CAC3B,CAAA;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,QAiC7C"}
@@ -6,3 +6,4 @@ export declare const clientMetaTags: {
6
6
  tags: null | RouteMetaTag[];
7
7
  setMetaTags(tags: RouteMetaTag[]): void;
8
8
  };
9
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/app/lib/routing/context.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAc,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAkBhF,eAAO,MAAM,aAAa,oCAgBxB,CAAA;AAEF,eAAO,MAAM,kBAAkB,yCAI7B,CAAA;AAEF,eAAO,MAAM,gBAAgB,+EAAwC,CAAA;AAErE,eAAO,MAAM,cAAc;UACX,IAAI,GAAG,YAAY,EAAE;sBACjB,YAAY,EAAE;CAGhC,CAAA"}
@@ -5,4 +5,11 @@
5
5
  *
6
6
  * On the client, this hook will return `true` once, after hydration, and then switch to `false`.
7
7
  */
8
+ export declare function useHydrating(): boolean;
9
+ /**
10
+ * Alias of useHydrating (was renamed)
11
+ * @deprecated
12
+ * @see useHydrating
13
+ */
8
14
  export declare function useIsSSR(): boolean;
15
+ //# sourceMappingURL=useHydrating.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHydrating.d.ts","sourceRoot":"","sources":["../../../../../src/app/lib/routing/hooks/useHydrating.tsx"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,wBAAgB,YAAY,YAe3B;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,YAEvB"}
@@ -1,4 +1,4 @@
1
- import { useEffect, useState } from "react";
1
+ import { startTransition, useEffect, useState } from "react";
2
2
  let isSSR = true;
3
3
  /**
4
4
  * Use this function to help with SSR edge-cases.
@@ -7,12 +7,14 @@ let isSSR = true;
7
7
  *
8
8
  * On the client, this hook will return `true` once, after hydration, and then switch to `false`.
9
9
  */
10
- export function useIsSSR() {
10
+ export function useHydrating() {
11
11
  const [value, setValue] = useState(isSSR);
12
12
  useEffect(() => {
13
13
  if (!isSSR)
14
14
  return;
15
- setValue(false);
15
+ startTransition(() => {
16
+ setValue(false);
17
+ });
16
18
  const timer = setTimeout(() => {
17
19
  isSSR = false;
18
20
  }, 5000);
@@ -20,3 +22,11 @@ export function useIsSSR() {
20
22
  }, []);
21
23
  return value;
22
24
  }
25
+ /**
26
+ * Alias of useHydrating (was renamed)
27
+ * @deprecated
28
+ * @see useHydrating
29
+ */
30
+ export function useIsSSR() {
31
+ return useHydrating();
32
+ }
@@ -4,3 +4,4 @@ import { Dispatch } from "react";
4
4
  * You must pass a unique ID as an additional first parameter to ensure the state is restored correctly.
5
5
  */
6
6
  export declare function useRestorableState<T>(key: string, fallback: T): [T, Dispatch<T>];
7
+ //# sourceMappingURL=useRestorableState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRestorableState.d.ts","sourceRoot":"","sources":["../../../../../src/app/lib/routing/hooks/useRestorableState.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAA0C,MAAM,OAAO,CAAA;AAIxE;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAkBhF"}
@@ -1,4 +1,4 @@
1
- import { useState } from "react";
1
+ import { startTransition, useCallback, useState } from "react";
2
2
  import { useRouterEvents } from "./useRouterEvents.js";
3
3
  import { useRoute } from "./useRoute.js";
4
4
  /**
@@ -9,10 +9,15 @@ export function useRestorableState(key, fallback) {
9
9
  const route = useRoute();
10
10
  const initial = route.returnState?.[key] ?? fallback;
11
11
  const [state, setState] = useState(initial);
12
+ const dispatch = useCallback((value) => {
13
+ startTransition(() => {
14
+ setState(value);
15
+ });
16
+ }, []);
12
17
  useRouterEvents((event) => {
13
18
  if (event.type === "capture-restorable-state") {
14
19
  event.state[key] = state;
15
20
  }
16
21
  });
17
- return [state, setState];
22
+ return [state, dispatch];
18
23
  }
@@ -15,3 +15,4 @@ export declare function useRoute(): RouteState;
15
15
  export declare function useViewRoute<V extends keyof ViewProps>(view: V): Extract<RouteState, {
16
16
  view: V;
17
17
  }> | null;
18
+ //# sourceMappingURL=useRoute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRoute.d.ts","sourceRoot":"","sources":["../../../../../src/app/lib/routing/hooks/useRoute.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7C;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,IAAI,UAAU,CAErC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,CAAC,GAAG,IAAI,CAOxG"}
@@ -3,3 +3,4 @@ export declare const $routeMetaStore: {
3
3
  data: RouteMeta;
4
4
  };
5
5
  export declare function useRouteMeta(): RouteMeta;
6
+ //# sourceMappingURL=useRouteMeta.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRouteMeta.d.ts","sourceRoot":"","sources":["../../../../../src/app/lib/routing/hooks/useRouteMeta.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,eAAO,MAAM,eAAe;UACd,SAAS;CACrB,CAAA;AAEF,wBAAgB,YAAY,IAGf,SAAS,CACrB"}
@@ -2,3 +2,4 @@ import type { RouteState } from "../types.js";
2
2
  type TransitionFunction = (currentRoute: RouteState, nextRoute: RouteState) => void | Promise<any | void>;
3
3
  export declare function useRouteTransition(func: TransitionFunction): void;
4
4
  export {};
5
+ //# sourceMappingURL=useRouteTransition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRouteTransition.d.ts","sourceRoot":"","sources":["../../../../../src/app/lib/routing/hooks/useRouteTransition.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7C,KAAK,kBAAkB,GAAG,CAAC,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,KAAK,IAAI,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAAA;AAEzG,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,kBAAkB,QAe1D"}
@@ -1,2 +1,3 @@
1
1
  import { RouterAPI } from "../types.js";
2
2
  export declare function useRouter<T = RouterAPI>(selector?: (r: RouterAPI) => T): T;
3
+ //# sourceMappingURL=useRouter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRouter.d.ts","sourceRoot":"","sources":["../../../../../src/app/lib/routing/hooks/useRouter.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,wBAAgB,SAAS,CAAC,CAAC,GAAG,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,KAAK,CAAC,GAAG,CAAC,CAO1E"}
@@ -1,2 +1,3 @@
1
1
  import type { RouterEvent } from "../types.js";
2
2
  export declare function useRouterEvents(handler: (event: RouterEvent) => void): void;
3
+ //# sourceMappingURL=useRouterEvents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRouterEvents.d.ts","sourceRoot":"","sources":["../../../../../src/app/lib/routing/hooks/useRouterEvents.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C,wBAAgB,eAAe,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,QAWpE"}