eddev 2.0.0-beta.4 → 2.0.0-beta.40

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 (218) hide show
  1. package/dist/app/entry/MetaTags.d.ts +7 -0
  2. package/dist/app/entry/MetaTags.js +17 -0
  3. package/dist/app/entry/boot-admin.d.ts +1 -0
  4. package/dist/app/entry/{main.admin.js → boot-admin.js} +3 -5
  5. package/dist/app/entry/spa-root.d.ts +1 -0
  6. package/dist/app/entry/{Root.js → spa-root.js} +4 -4
  7. package/dist/app/entry/ssr-root-client.d.ts +6 -0
  8. package/dist/app/entry/ssr-root-client.js +16 -0
  9. package/dist/app/entry/ssr-root.d.ts +10 -0
  10. package/dist/app/entry/ssr-root.js +24 -0
  11. package/dist/app/lib/admin/index.d.ts +2 -2
  12. package/dist/app/lib/admin/index.js +2 -2
  13. package/dist/app/lib/admin/installFieldTypes.js +1 -1
  14. package/dist/app/lib/admin/runWidgets.js +1 -1
  15. package/dist/app/lib/blocks/ContentBlocks.js +4 -4
  16. package/dist/app/lib/blocks/EditableText.d.ts +1 -1
  17. package/dist/app/lib/blocks/EditableText.js +3 -3
  18. package/dist/app/lib/blocks/ErrorBoundaryFrontend.js +1 -0
  19. package/dist/app/lib/blocks/InnerBlocks.d.ts +13 -3
  20. package/dist/app/lib/blocks/InnerBlocks.js +13 -5
  21. package/dist/app/lib/blocks/block-utils.d.ts +2 -2
  22. package/dist/app/lib/blocks/block-utils.js +2 -2
  23. package/dist/app/lib/blocks/editor/EditorSupport.js +3 -3
  24. package/dist/app/lib/blocks/editor/editor-config.d.ts +1 -1
  25. package/dist/app/lib/blocks/editor/editor-config.js +1 -1
  26. package/dist/app/lib/blocks/editor/installGutenbergHooks.js +5 -5
  27. package/dist/app/lib/blocks/editor/usePostEditor.d.ts +1 -1
  28. package/dist/app/lib/blocks/index.d.ts +9 -9
  29. package/dist/app/lib/blocks/index.js +9 -9
  30. package/dist/app/lib/blocks/inline-editing.d.ts +1 -1
  31. package/dist/app/lib/blocks/inline-editing.js +7 -5
  32. package/dist/app/lib/devtools/components/BreakpointIndicator.js +6 -4
  33. package/dist/app/lib/devtools/components/DevUI.js +4 -3
  34. package/dist/app/lib/devtools/components/GridIndicator.d.ts +1 -0
  35. package/dist/app/lib/devtools/components/GridIndicator.js +24 -0
  36. package/dist/app/lib/devtools/dev-tools-store.d.ts +9 -0
  37. package/dist/app/lib/devtools/dev-tools-store.js +8 -0
  38. package/dist/app/lib/devtools/hooks/usePersistState.d.ts +1 -1
  39. package/dist/app/lib/devtools/hooks/usePersistState.js +11 -2
  40. package/dist/app/lib/devtools/hooks/useTailwind.d.ts +1078 -1079
  41. package/dist/app/lib/devtools/hooks/useTailwind.js +6 -3
  42. package/dist/app/lib/devtools/index.d.ts +1 -0
  43. package/dist/app/lib/devtools/index.js +1 -1
  44. package/dist/app/lib/devtools/loader.js +8 -7
  45. package/dist/app/lib/devtools/useQueryDebug.d.ts +7 -1
  46. package/dist/app/lib/devtools/useQueryDebug.js +5 -8
  47. package/dist/app/lib/dynamic/index.d.ts +1 -1
  48. package/dist/app/lib/dynamic/index.js +1 -1
  49. package/dist/app/lib/hooks/apiConfig.d.ts +3 -1
  50. package/dist/app/lib/hooks/apiConfig.js +9 -4
  51. package/dist/app/lib/hooks/index.d.ts +4 -5
  52. package/dist/app/lib/hooks/index.js +4 -5
  53. package/dist/app/lib/hooks/queryUtils.d.ts +5 -2
  54. package/dist/app/lib/hooks/queryUtils.js +19 -20
  55. package/dist/app/lib/hooks/useAppData.js +1 -1
  56. package/dist/app/lib/internal/index.d.ts +4 -4
  57. package/dist/app/lib/internal/index.js +4 -4
  58. package/dist/app/lib/internal/internal-store.d.ts +0 -2
  59. package/dist/app/lib/internal/internal-store.js +1 -3
  60. package/dist/app/lib/internal/read-admin-manifest.d.ts +1 -1
  61. package/dist/app/lib/legacy-stitches/createStitches.d.ts +21 -21
  62. package/dist/app/lib/legacy-stitches/createStitches.js +1 -1
  63. package/dist/app/lib/legacy-stitches/index.d.ts +1 -1
  64. package/dist/app/lib/legacy-stitches/index.js +1 -1
  65. package/dist/app/lib/routing/components/BackButton.d.ts +49 -0
  66. package/dist/app/lib/routing/components/BackButton.js +47 -0
  67. package/dist/app/lib/routing/components/BrowserRouter.d.ts +4 -1
  68. package/dist/app/lib/routing/components/BrowserRouter.js +68 -11
  69. package/dist/app/lib/routing/components/ClientOnly.js +1 -1
  70. package/dist/app/lib/routing/components/Link.d.ts +1 -0
  71. package/dist/app/lib/routing/components/Link.js +9 -10
  72. package/dist/app/lib/routing/components/RouteRenderer.d.ts +1 -1
  73. package/dist/app/lib/routing/components/RouteRenderer.js +7 -6
  74. package/dist/app/lib/routing/components/SSRRouter.d.ts +2 -2
  75. package/dist/app/lib/routing/components/SSRRouter.js +5 -6
  76. package/dist/app/lib/routing/components/ScrollRestoration.js +1 -1
  77. package/dist/app/lib/routing/context.d.ts +2 -2
  78. package/dist/app/lib/routing/context.js +6 -96
  79. package/dist/app/lib/routing/hooks/useRestorableState.js +2 -1
  80. package/dist/app/lib/routing/hooks/useRoute.d.ts +16 -1
  81. package/dist/app/lib/routing/hooks/useRoute.js +22 -1
  82. package/dist/app/lib/routing/hooks/useRouteMeta.d.ts +5 -0
  83. package/dist/app/lib/routing/hooks/useRouteMeta.js +9 -0
  84. package/dist/app/lib/routing/hooks/useRouteTransition.d.ts +1 -1
  85. package/dist/app/lib/routing/hooks/useRouteTransition.js +1 -1
  86. package/dist/app/lib/routing/hooks/useRouter.d.ts +1 -1
  87. package/dist/app/lib/routing/hooks/useRouter.js +1 -1
  88. package/dist/app/lib/routing/hooks/useRouterEvents.d.ts +1 -1
  89. package/dist/app/lib/routing/hooks/useRouterEvents.js +1 -1
  90. package/dist/app/lib/routing/hooks/useRouterState.d.ts +1 -1
  91. package/dist/app/lib/routing/hooks/useRouterState.js +1 -1
  92. package/dist/app/lib/routing/hooks/useSearchParams.js +2 -2
  93. package/dist/app/lib/routing/index.d.ts +14 -13
  94. package/dist/app/lib/routing/index.js +14 -13
  95. package/dist/app/lib/routing/loader.d.ts +2 -2
  96. package/dist/app/lib/routing/loader.js +7 -5
  97. package/dist/app/lib/routing/types.d.ts +28 -8
  98. package/dist/app/lib/routing/utils.d.ts +3 -1
  99. package/dist/app/lib/routing/utils.js +11 -0
  100. package/dist/app/lib/views/index.d.ts +1 -1
  101. package/dist/app/lib/views/index.js +1 -1
  102. package/dist/app/server/defineRouter.d.ts +2 -0
  103. package/dist/app/server/defineRouter.js +4 -0
  104. package/dist/app/server/index.d.ts +4 -0
  105. package/dist/app/server/index.js +4 -0
  106. package/dist/app/server/proxy-wp-admin.d.ts +3 -0
  107. package/dist/app/server/proxy-wp-admin.js +105 -0
  108. package/dist/app/server/render-ssr-page.d.ts +5 -0
  109. package/dist/app/server/render-ssr-page.js +31 -0
  110. package/dist/app/server/server-context.d.ts +50 -0
  111. package/dist/app/server/server-context.js +145 -0
  112. package/dist/app/server/utils/headers.d.ts +1 -0
  113. package/dist/app/server/utils/headers.js +17 -0
  114. package/dist/app/server/utils/replace-host.d.ts +6 -4
  115. package/dist/app/server/utils/replace-host.js +58 -11
  116. package/dist/node/cli/cli-worker.d.ts +1 -1
  117. package/dist/node/cli/cli-worker.js +7 -2
  118. package/dist/node/cli/cli.js +84 -12
  119. package/dist/node/cli/display/CLIApp.d.ts +1 -1
  120. package/dist/node/cli/display/CLIApp.js +3 -6
  121. package/dist/node/cli/display/components/LogEntries.d.ts +1 -1
  122. package/dist/node/cli/display/hooks/useStatefulLog.d.ts +1 -1
  123. package/dist/node/cli/display/tools/CreateBlock.d.ts +1 -1
  124. package/dist/node/cli/display/tools/cli-tools.d.ts +1 -11
  125. package/dist/node/cli/display/tools/cli-tools.js +9 -9
  126. package/dist/node/cli/display/util/colors.d.ts +2 -2
  127. package/dist/node/cli/version.d.ts +1 -1
  128. package/dist/node/cli/version.js +1 -1
  129. package/dist/node/compiler/build-vinxi.d.ts +8 -0
  130. package/dist/node/compiler/build-vinxi.js +37 -0
  131. package/dist/node/compiler/bundler.admin.d.ts +2 -2
  132. package/dist/node/compiler/bundler.admin.js +3 -4
  133. package/dist/node/compiler/bundler.frontend.d.ts +1 -1
  134. package/dist/node/compiler/bundler.frontend.js +3 -4
  135. package/dist/node/compiler/{serverless.dev.d.ts → dev-server.d.ts} +7 -5
  136. package/dist/node/compiler/dev-server.js +105 -0
  137. package/dist/node/compiler/get-vite-config.d.ts +19 -0
  138. package/dist/node/compiler/get-vite-config.js +200 -0
  139. package/dist/node/compiler/vinxi-app.d.ts +19 -0
  140. package/dist/node/compiler/vinxi-app.js +159 -0
  141. package/dist/node/compiler/vinxi-codegen.d.ts +12 -0
  142. package/dist/node/compiler/vinxi-codegen.js +464 -0
  143. package/dist/node/graphql/graphql-codegen.d.ts +1 -1
  144. package/dist/node/graphql/graphql-codegen.js +63 -16
  145. package/dist/node/graphql/graphql-schema-loader.js +15 -18
  146. package/dist/node/project/config.js +1 -1
  147. package/dist/node/project/env.d.ts +1 -1
  148. package/dist/node/project/env.js +1 -1
  149. package/dist/node/project/manifest/block-manifest.js +2 -2
  150. package/dist/node/project/manifest/manifest.d.ts +1 -1
  151. package/dist/node/project/manifest/manifest.js +1 -1
  152. package/dist/node/project/manifest/view-manifest.js +2 -2
  153. package/dist/node/project/project.d.ts +3 -2
  154. package/dist/node/project/project.js +18 -20
  155. package/dist/node/project/wp-info.js +3 -2
  156. package/dist/node/types/view-type.js +3 -4
  157. package/dist/node/utils/fs-codegen.d.ts +40 -0
  158. package/dist/node/utils/fs-codegen.js +97 -0
  159. package/dist/node/utils/fs.js +2 -0
  160. package/dist/node/utils/{selfSignedCert.js → self-signed-cert.js} +1 -1
  161. package/dist/node/utils/{statefulLog.js → stateful-log.js} +1 -1
  162. package/package.json +31 -32
  163. package/types.app.d.ts +2 -2
  164. package/types.app.internal.d.ts +2 -2
  165. package/types.node.d.ts +3 -3
  166. package/dist/app/entry/Root.d.ts +0 -1
  167. package/dist/app/entry/main.admin.d.ts +0 -3
  168. package/dist/app/entry/main.frontend.spa.d.ts +0 -3
  169. package/dist/app/entry/main.frontend.spa.js +0 -13
  170. package/dist/app/entry/main.frontend.ssr.d.ts +0 -21
  171. package/dist/app/entry/main.frontend.ssr.js +0 -79
  172. package/dist/app/entry/main.serverless.dev.d.ts +0 -4
  173. package/dist/app/entry/main.serverless.dev.js +0 -21
  174. package/dist/app/lib/hooks/usePageLoad.d.ts +0 -6
  175. package/dist/app/lib/hooks/usePageLoad.js +0 -5
  176. package/dist/app/server/create-api-builtin-hono.d.ts +0 -8
  177. package/dist/app/server/create-api-builtin-hono.js +0 -80
  178. package/dist/app/server/create-ssr-hono.d.ts +0 -18
  179. package/dist/app/server/create-ssr-hono.js +0 -104
  180. package/dist/app/server/utils/index.html.d.ts +0 -2
  181. package/dist/app/server/utils/index.html.js +0 -14
  182. package/dist/node/compiler/index.html.d.ts +0 -2
  183. package/dist/node/compiler/index.html.js +0 -15
  184. package/dist/node/compiler/serverless.dev.js +0 -215
  185. package/dist/node/compiler/vite/get-vite-config.d.ts +0 -13
  186. package/dist/node/compiler/vite/get-vite-config.js +0 -323
  187. package/dist/node/compiler/vite/plugin-admin.d.ts +0 -4
  188. package/dist/node/compiler/vite/plugin-admin.js +0 -67
  189. package/dist/node/compiler/vite/plugin-blocks.d.ts +0 -4
  190. package/dist/node/compiler/vite/plugin-blocks.js +0 -73
  191. package/dist/node/compiler/vite/plugin-entry.d.ts +0 -6
  192. package/dist/node/compiler/vite/plugin-entry.js +0 -16
  193. package/dist/node/compiler/vite/plugin-resolved-tailwind.d.ts +0 -4
  194. package/dist/node/compiler/vite/plugin-resolved-tailwind.js +0 -29
  195. package/dist/node/compiler/vite/plugin-theme.d.ts +0 -4
  196. package/dist/node/compiler/vite/plugin-theme.js +0 -40
  197. package/dist/node/compiler/vite/plugin-views.d.ts +0 -4
  198. package/dist/node/compiler/vite/plugin-views.js +0 -51
  199. package/dist/node/utils/console.d.ts +0 -21
  200. package/dist/node/utils/console.js +0 -28
  201. package/dist/node/utils/unsafe-fetch.d.ts +0 -2
  202. package/dist/node/utils/unsafe-fetch.js +0 -19
  203. package/tsup.config.ts +0 -40
  204. package/types.manifests.d.ts +0 -22
  205. /package/dist/node/utils/{formatZodError.d.ts → format-zod-error.d.ts} +0 -0
  206. /package/dist/node/utils/{formatZodError.js → format-zod-error.js} +0 -0
  207. /package/dist/node/utils/{getRepoInfo.d.ts → get-repo-info.d.ts} +0 -0
  208. /package/dist/node/utils/{getRepoInfo.js → get-repo-info.js} +0 -0
  209. /package/dist/node/utils/{highlightCode.d.ts → highlight-code.d.ts} +0 -0
  210. /package/dist/node/utils/{highlightCode.js → highlight-code.js} +0 -0
  211. /package/dist/node/utils/{isDeploying.d.ts → is-deploying.d.ts} +0 -0
  212. /package/dist/node/utils/{isDeploying.js → is-deploying.js} +0 -0
  213. /package/dist/node/utils/{selfSignedCert.d.ts → self-signed-cert.d.ts} +0 -0
  214. /package/dist/node/utils/{statefulLog.d.ts → stateful-log.d.ts} +0 -0
  215. /package/dist/node/utils/{export-extractor.d.ts → ts-export-extractor.d.ts} +0 -0
  216. /package/dist/node/utils/{export-extractor.js → ts-export-extractor.js} +0 -0
  217. /package/dist/node/utils/{watchFileTree.d.ts → watch-file-tree.d.ts} +0 -0
  218. /package/dist/node/utils/{watchFileTree.js → watch-file-tree.js} +0 -0
@@ -0,0 +1,7 @@
1
+ import { RouteMetaTag } from "../lib/routing";
2
+ type Props = {
3
+ debugKey?: string;
4
+ tags: RouteMetaTag[];
5
+ };
6
+ export declare function MetaTags(props: Props): import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ export function MetaTags(props) {
3
+ return (_jsx(_Fragment, { children: props.tags?.map((tag, i) => {
4
+ const Tag = tag.tagName;
5
+ const tagProps = Array.isArray(tag.attributes) ? {} : { ...tag.attributes };
6
+ if (tag.tagName === "title") {
7
+ tagProps.children = tag.inner ?? "";
8
+ }
9
+ else if (tag.tagName === "script" || !!tag.inner) {
10
+ tagProps.dangerouslySetInnerHTML = { __html: tag.inner ?? "" };
11
+ }
12
+ if (tagProps.async === "") {
13
+ tagProps.async = true;
14
+ }
15
+ return _jsx(Tag, { "data-test": props.debugKey + "_" + i, ...tagProps }, i);
16
+ }) }));
17
+ }
@@ -0,0 +1 @@
1
+ export default function bootAdmin(): void;
@@ -1,8 +1,6 @@
1
- import "@manifest/admin";
2
- import { installFieldTypes } from "../lib/admin/installFieldTypes";
3
- import { runWidgets } from "../lib/admin/runWidgets";
4
- import { installEDGutenbergHooks } from "../lib/blocks/editor/installGutenbergHooks";
5
- import "@manifest/blocks";
1
+ import { installFieldTypes } from "../lib/admin/installFieldTypes.js";
2
+ import { runWidgets } from "../lib/admin/runWidgets.js";
3
+ import { installEDGutenbergHooks } from "../lib/blocks/editor/installGutenbergHooks.js";
6
4
  export default function bootAdmin() {
7
5
  installEDGutenbergHooks();
8
6
  installFieldTypes();
@@ -0,0 +1 @@
1
+ export declare function SPARoot(): import("react/jsx-runtime").JSX.Element;
@@ -1,9 +1,9 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { QueryClientProvider } from "@tanstack/react-query";
3
- import { BrowserRouter } from "../lib/routing/components/BrowserRouter";
4
- import { getQueryClient } from "../utils/query-client";
5
- import { DevUILoader } from "../lib/devtools/loader";
3
+ import { BrowserRouter } from "../lib/routing/components/BrowserRouter.js";
4
+ import { getQueryClient } from "../utils/query-client.js";
5
+ import { DevUILoader } from "../lib/devtools/loader.js";
6
6
  import { Suspense } from "react";
7
- export function Root() {
7
+ export function SPARoot() {
8
8
  return (_jsxs(QueryClientProvider, { client: getQueryClient(), children: [_jsx(Suspense, { children: _jsx(BrowserRouter, {}) }), _jsx(DevUILoader, {})] }));
9
9
  }
@@ -0,0 +1,6 @@
1
+ import { ReactNode } from "react";
2
+ import { RouteMetaTag } from "../lib/routing/types.js";
3
+ export declare function SSRClientRoot(props: {
4
+ assets: ReactNode;
5
+ metaTags: RouteMetaTag[];
6
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { QueryClientProvider } from "@tanstack/react-query";
3
+ import { Suspense, useRef } from "react";
4
+ import { getQueryClient } from "../utils/query-client.js";
5
+ import { BrowserRouter } from "../lib/routing/components/BrowserRouter.js";
6
+ import { DevUILoader } from "../lib/devtools/loader.js";
7
+ import { MetaTags } from "./MetaTags.js";
8
+ import { useRouteMeta } from "../lib/routing/hooks/useRouteMeta.js";
9
+ export function SSRClientRoot(props) {
10
+ const router = useRef(null);
11
+ return (_jsxs("html", { lang: "en", children: [_jsxs("head", { children: [_jsx("link", { rel: "icon", href: "/favicon.ico" }), _jsx(DynamicMetaTags, { tags: props.metaTags, router: router }), props.assets] }), _jsx("body", { children: _jsxs(QueryClientProvider, { client: getQueryClient(), children: [_jsx(Suspense, { children: _jsx(BrowserRouter, { routerRef: router }) }), _jsx(DevUILoader, {})] }) })] }));
12
+ }
13
+ function DynamicMetaTags(props) {
14
+ const data = useRouteMeta();
15
+ return _jsx(MetaTags, { tags: data.tags ?? [] });
16
+ }
@@ -0,0 +1,10 @@
1
+ import { type ReactNode } from "react";
2
+ import type { RouteData, RouteMetaTag } from "../lib/routing/types.js";
3
+ import type { RouteLoader } from "../lib/routing/loader.js";
4
+ export declare function SSRRoot(props: {
5
+ pathname: string;
6
+ initialData: RouteData;
7
+ assets: ReactNode;
8
+ loader: RouteLoader;
9
+ metaTags: RouteMetaTag[];
10
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,24 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Suspense } from "react";
3
+ import { QueryClientProvider } from "@tanstack/react-query";
4
+ import { getQueryClient } from "../utils/query-client.js";
5
+ import { SSRRouter } from "../lib/routing/components/SSRRouter.js";
6
+ import { getRouteMeta, normalizeRoute } from "../lib/routing/utils.js";
7
+ import { MetaTags } from "./MetaTags.js";
8
+ export function SSRRoot(props) {
9
+ const loader = props.loader;
10
+ loader.setAppData(props.initialData.appData.data);
11
+ loader.populateRouteData(props.pathname, props.initialData);
12
+ return (_jsxs("html", { lang: "en", children: [_jsxs("head", { children: [_jsx("link", { rel: "icon", href: "/favicon.ico" }), _jsx(MetaTags, { tags: props.metaTags }), props.assets] }), _jsx("body", { children: _jsx(QueryClientProvider, { client: getQueryClient(), children: _jsx(Suspense, { children: _jsx(SSRRouter, { loader: loader, route: normalizeRoute({
13
+ id: "initial",
14
+ component: loader.getRouteComponent(props.initialData.view),
15
+ key: "",
16
+ props: props.initialData.viewData.data,
17
+ view: props.initialData.view,
18
+ search: "",
19
+ pathname: props.pathname,
20
+ query: {},
21
+ hash: "",
22
+ meta: getRouteMeta(props.initialData),
23
+ }) }) }) }) })] }));
24
+ }
@@ -1,2 +1,2 @@
1
- export * from "./defineField";
2
- export * from "./defineWidget";
1
+ export * from "./defineField.js";
2
+ export * from "./defineWidget.js";
@@ -1,2 +1,2 @@
1
- export * from "./defineField";
2
- export * from "./defineWidget";
1
+ export * from "./defineField.js";
2
+ export * from "./defineWidget.js";
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useEffect, useState } from "react";
3
3
  import * as ReactDOM from "react-dom/client";
4
- import { adminManifestReader } from "../internal";
4
+ import { adminManifestReader } from "../internal/read-admin-manifest.js";
5
5
  export function installFieldTypes() {
6
6
  // @ts-ignore
7
7
  const acf = window.acf;
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useEffect, useState } from "react";
3
3
  import * as ReactDOM from "react-dom/client";
4
- import { adminManifestReader } from "../internal";
4
+ import { adminManifestReader } from "../internal/read-admin-manifest.js";
5
5
  export function runWidgets() {
6
6
  const elements = document.querySelectorAll("[data-widget]");
7
7
  setTimeout(() => {
@@ -1,9 +1,9 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Fragment, createContext, memo, useContext, useMemo } from "react";
3
- import { blockManifestReader } from "../internal/read-block-manifest";
4
- import { ErrorBoundaryFrontend } from "./ErrorBoundaryFrontend";
5
- import { InlineEditingContextProvider, ReadonlyInlineEditingProvider } from "./inline-editing";
6
- import { addBlockMetadata } from "./block-utils";
3
+ import { blockManifestReader } from "../internal/read-block-manifest.js";
4
+ import { ErrorBoundaryFrontend } from "./ErrorBoundaryFrontend.js";
5
+ import { InlineEditingContextProvider, ReadonlyInlineEditingProvider } from "./inline-editing.js";
6
+ import { addBlockMetadata } from "./block-utils.js";
7
7
  export const BlocksContext = createContext(undefined);
8
8
  /**
9
9
  * Render a set of Gutenberg blocks
@@ -1,5 +1,5 @@
1
1
  import { ElementType } from "react";
2
- import { InlineValueStore } from "./inline-editing";
2
+ import { InlineValueStore } from "./inline-editing.js";
3
3
  export type InlineTextValueStore = InlineValueStore<string>;
4
4
  type Props<T extends ElementType> = {
5
5
  /** Specify a tag name or React component */
@@ -1,13 +1,13 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useRouter } from "../routing";
3
- import { useBlockAppender, useBlockContext, useValueStore } from "./inline-editing";
2
+ import { useRouter } from "../routing/hooks/useRouter.js";
3
+ import { useBlockAppender, useBlockContext, useValueStore } from "./inline-editing.js";
4
4
  export function EditableText({ id, as, appendOnEnter, store, ...props }) {
5
5
  if (env.admin) {
6
6
  const readOnly = useBlockContext()?.readonly;
7
7
  if (!readOnly) {
8
8
  const [value, setValue] = useValueStore(store ?? id);
9
9
  const appendBlocks = useBlockAppender();
10
- return (_jsx(wp.blockEditor.RichText, { ...props, tagName: as, value: value || "", onChange: setValue, disableLineBreaks: props.disableLineBreaks, onKeyDownCapture: (e) => {
10
+ return (_jsx(wp.blockEditor.RichText, { ...props, tagName: as, value: value || "", onChange: setValue, inlineToolbar: props.inlineToolbar, disableLineBreaks: props.disableLineBreaks, onKeyDownCapture: (e) => {
11
11
  if (e.key === "Enter" && appendOnEnter && appendBlocks) {
12
12
  appendBlocks([
13
13
  wp.blocks.createBlock(typeof appendOnEnter === "string" ? appendOnEnter : "core/paragraph"),
@@ -9,6 +9,7 @@ export class ErrorBoundaryFrontend extends Component {
9
9
  return { hasError: true, error: err };
10
10
  }
11
11
  componentDidCatch(error, errorInfo) {
12
+ console.log("Caught error:", error, errorInfo);
12
13
  console.error("Uncaught error:", error, errorInfo);
13
14
  }
14
15
  render() {
@@ -1,10 +1,20 @@
1
1
  import { FunctionComponent } from "react";
2
- import { ContentBlockLayoutProps } from "./ContentBlocks";
3
- import { BlockTemplate } from "./editor/block-templates";
2
+ import { ContentBlockLayoutProps } from "./ContentBlocks.js";
3
+ import { BlockTemplate } from "./editor/block-templates.js";
4
4
  type AppenderConfig = {
5
- type: "default" | "button" | FunctionComponent<any>;
5
+ type: "default" | "button" | CustomBlockAppender;
6
6
  className?: string;
7
7
  };
8
+ export type CustomBlockAppender = FunctionComponent<{
9
+ onToggle: () => void;
10
+ disabled: boolean;
11
+ isOpen: boolean;
12
+ blockTitle: string;
13
+ hasSingleBlockType: boolean;
14
+ }>;
15
+ export declare function createAppender(comp: CustomBlockAppender): {
16
+ type: CustomBlockAppender;
17
+ };
8
18
  type InnerBlocksProps = {
9
19
  /** A list of allowed blocks, and/or block tags. */
10
20
  allowedBlocks?: (ChildBlockTypeName | BlockTagName)[];
@@ -1,15 +1,18 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { ContentBlocks } from "./ContentBlocks";
3
- import { transformBlockTemplate } from "./editor/block-templates";
4
- import { blocksByTag } from "./editor/blocks-by-tag";
5
- import { useBlockContext, useInnerBlocks } from "./inline-editing";
2
+ import { ContentBlocks } from "./ContentBlocks.js";
3
+ import { transformBlockTemplate } from "./editor/block-templates.js";
4
+ import { blocksByTag } from "./editor/blocks-by-tag.js";
5
+ import { useBlockContext, useInnerBlocks } from "./inline-editing.js";
6
6
  const Appender = (props) => {
7
7
  const clientId = useBlockContext()?.block[1].clientId;
8
8
  if (props.type === "button") {
9
9
  return _jsx(wp.blockEditor.ButtonBlockAppender, { className: props.className, rootClientId: clientId });
10
10
  }
11
11
  else if (typeof props.type === "function") {
12
- return props.type({});
12
+ const Type = props.type;
13
+ return (_jsx(wp.blockEditor.Inserter, { renderToggle: (p) => {
14
+ return _jsx(Type, { ...p });
15
+ }, rootClientId: clientId }));
13
16
  }
14
17
  else {
15
18
  return (_jsx(wp.blockEditor.DefaultBlockAppender
@@ -19,6 +22,11 @@ const Appender = (props) => {
19
22
  className: props.className, rootClientId: clientId, lastBlockClientId: clientId }));
20
23
  }
21
24
  };
25
+ export function createAppender(comp) {
26
+ return {
27
+ type: comp,
28
+ };
29
+ }
22
30
  /**
23
31
  * Allows child blocks to be added to the current block context.
24
32
  */
@@ -1,4 +1,4 @@
1
- import { ContentBlock } from "./ContentBlocks";
1
+ import { ContentBlock } from "./ContentBlocks.js";
2
2
  /**
3
3
  * Returns some very basic info about blocks in the project.
4
4
  * This is purposely lean, to avoid bloated info.
@@ -12,7 +12,7 @@ export declare function getPublicBlockInfo(): {
12
12
  *
13
13
  * Note that this function mutates the existing block, adding new properties.
14
14
  */
15
- export declare function addBlockMetadata(blocks: ContentBlock[]): ContentBlock[];
15
+ export declare function addBlockMetadata(blocks: ContentBlock[] | null | undefined): ContentBlock[];
16
16
  export declare function getBlockMetadata(blockName: string): {
17
17
  slug: string;
18
18
  tags?: undefined;
@@ -1,4 +1,4 @@
1
- import { blockManifestReader } from "../internal";
1
+ import { blockManifestReader } from "../internal/read-block-manifest.js";
2
2
  /**
3
3
  * Returns some very basic info about blocks in the project.
4
4
  * This is purposely lean, to avoid bloated info.
@@ -13,7 +13,7 @@ export function getPublicBlockInfo() {
13
13
  * Note that this function mutates the existing block, adding new properties.
14
14
  */
15
15
  export function addBlockMetadata(blocks) {
16
- const out = blocks;
16
+ const out = (blocks ?? []);
17
17
  const infos = getPublicBlockInfo();
18
18
  for (let block of out) {
19
19
  const info = infos[block.blockName];
@@ -1,9 +1,9 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { QueryClientProvider } from "@tanstack/react-query";
3
3
  import { createContext, Suspense, useContext } from "react";
4
- import { getQueryClient } from "../../../utils/query-client";
5
- import { blockManifestReader } from "../../internal";
6
- import { ErrorBoundaryEditor } from "./ErrorBoundaryEditor";
4
+ import { getQueryClient } from "../../../utils/query-client.js";
5
+ import { blockManifestReader } from "../../internal/read-block-manifest.js";
6
+ import { ErrorBoundaryEditor } from "./ErrorBoundaryEditor.js";
7
7
  export const BlockContext = createContext(undefined);
8
8
  export function EditableBlock({ payload }) {
9
9
  const block = useContext(BlockContext);
@@ -1,4 +1,4 @@
1
- import { BlockTemplate } from "./block-templates";
1
+ import { BlockTemplate } from "./block-templates.js";
2
2
  export type EditorConfigItem = {
3
3
  /** Optionally indicate that the post title field should be hidden. Use then when your header template includes a post title editor already. */
4
4
  hideTitle?: boolean;
@@ -1,5 +1,5 @@
1
1
  import { proxy } from "valtio";
2
- import { resolveAcfBlockName, transformBlockTemplate } from "./block-templates";
2
+ import { resolveAcfBlockName, transformBlockTemplate } from "./block-templates.js";
3
3
  export const editorConfigStore = proxy({
4
4
  config: null,
5
5
  currentBlocksConfig: null,
@@ -1,11 +1,11 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useEffect } from "react";
3
- import { InlineEditingContextProvider } from "../inline-editing";
4
- import { BlockContext, EditableBlock } from "./EditorSupport";
5
- import { blocksByTag } from "./blocks-by-tag";
6
- import { editorConfigStore, getEditingPostInfo, watchEditorTemplate } from "./editor-config";
3
+ import { InlineEditingContextProvider } from "../inline-editing.js";
4
+ import { BlockContext, EditableBlock } from "./EditorSupport.js";
5
+ import { blocksByTag } from "./blocks-by-tag.js";
6
+ import { editorConfigStore, getEditingPostInfo, watchEditorTemplate } from "./editor-config.js";
7
7
  import { useSnapshot } from "valtio";
8
- import { getBlockMetadata } from "../block-utils";
8
+ import { getBlockMetadata } from "../block-utils.js";
9
9
  function listenForHandleResize() {
10
10
  let interval = setInterval(() => {
11
11
  let viewportTarget = document.querySelector(".interface-interface-skeleton__content");
@@ -1,4 +1,4 @@
1
- import { InlineValueStore } from "../inline-editing";
1
+ import { InlineValueStore } from "../inline-editing.js";
2
2
  export declare function usePostEditor(): {
3
3
  post: any;
4
4
  updatePost(update: any): void;
@@ -1,9 +1,9 @@
1
- export * from "./ContentBlocks";
2
- export * from "./EditableText";
3
- export * from "./InnerBlocks";
4
- export * from "./defineBlock";
5
- export * from "./editor/controls";
6
- export * from "./editor/usePostEditor";
7
- export * from "./block-utils";
8
- export { defineEditorConfig } from "./editor/editor-config";
9
- export { useBlockContext, useInlineEditableValue, useInnerBlocks, useTemplate } from "./inline-editing";
1
+ export * from "./ContentBlocks.js";
2
+ export * from "./EditableText.js";
3
+ export * from "./InnerBlocks.js";
4
+ export * from "./defineBlock.js";
5
+ export * from "./editor/controls.js";
6
+ export * from "./editor/usePostEditor.js";
7
+ export * from "./block-utils.js";
8
+ export { defineEditorConfig } from "./editor/editor-config.js";
9
+ export { useBlockContext, useInlineEditableValue, useInnerBlocks, useTemplate } from "./inline-editing.js";
@@ -1,9 +1,9 @@
1
- export * from "./ContentBlocks";
2
- export * from "./EditableText";
3
- export * from "./InnerBlocks";
4
- export * from "./defineBlock";
5
- export * from "./editor/controls";
6
- export * from "./editor/usePostEditor";
7
- export * from "./block-utils";
8
- export { defineEditorConfig } from "./editor/editor-config";
9
- export { useBlockContext, useInlineEditableValue, useInnerBlocks, useTemplate } from "./inline-editing";
1
+ export * from "./ContentBlocks.js";
2
+ export * from "./EditableText.js";
3
+ export * from "./InnerBlocks.js";
4
+ export * from "./defineBlock.js";
5
+ export * from "./editor/controls.js";
6
+ export * from "./editor/usePostEditor.js";
7
+ export * from "./block-utils.js";
8
+ export { defineEditorConfig } from "./editor/editor-config.js";
9
+ export { useBlockContext, useInlineEditableValue, useInnerBlocks, useTemplate } from "./inline-editing.js";
@@ -1,4 +1,4 @@
1
- import { ContentBlock } from "./ContentBlocks";
1
+ import { ContentBlock } from "./ContentBlocks.js";
2
2
  import { PropsWithChildren } from "react";
3
3
  type Attributes = Record<string, any>;
4
4
  export type InlineValueStore<T> = [value: T, setValue: (value: T) => void];
@@ -1,12 +1,14 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { createContext, useContext } from "react";
3
- import { usePostEditor } from "./editor/usePostEditor";
4
- import { useRoute } from "../routing";
5
- import { addBlockMetadata } from "./block-utils";
2
+ import { createContext, useContext, useMemo } from "react";
3
+ import { usePostEditor } from "./editor/usePostEditor.js";
4
+ import { useRoute } from "../routing/index.js";
5
+ import { addBlockMetadata } from "./block-utils.js";
6
6
  const InlineEditingContext = createContext(undefined);
7
7
  export function InlineEditingContextProvider(props) {
8
8
  const parentContext = useContext(InlineEditingContext);
9
- addBlockMetadata(props.innerBlocks);
9
+ useMemo(() => {
10
+ addBlockMetadata(props.innerBlocks ?? []);
11
+ }, [props.innerBlocks]);
10
12
  return (_jsx(InlineEditingContext.Provider, { value: {
11
13
  values: props.values,
12
14
  innerBlocks: props.innerBlocks,
@@ -1,7 +1,7 @@
1
1
  import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useEffect, useMemo, useRef, useState } from "react";
3
- import { useTailwindConfig } from "../hooks/useTailwind.js";
4
3
  import { usePersistState } from "../hooks/usePersistState.js";
4
+ import { useTailwindConfig } from "../hooks/useTailwind.js";
5
5
  function parseBreakpointMin(breakpoint) {
6
6
  return parseInt(breakpoint);
7
7
  }
@@ -48,9 +48,10 @@ export function BreakpointIndicator() {
48
48
  ...screen,
49
49
  max: arr[i + 1] ? arr[i + 1].min - 1 : undefined,
50
50
  }));
51
- }, [tw?.theme?.screens]);
52
- const maxSize = screens[screens.length - 1].min;
51
+ }, [tw?.theme?.screens, !!tw]);
53
52
  useEffect(() => {
53
+ if (!tw)
54
+ return;
54
55
  const update = () => {
55
56
  setWidth(window.innerWidth);
56
57
  setActiveSize(screens.findLastIndex((screen) => window.innerWidth >= screen.min));
@@ -58,7 +59,8 @@ export function BreakpointIndicator() {
58
59
  update();
59
60
  window.addEventListener("resize", update);
60
61
  return () => window.removeEventListener("resize", update);
61
- }, [screens]);
62
+ }, [screens, !!tw]);
63
+ const maxSize = screens[screens.length - 1]?.min;
62
64
  const screen = screens[activeSize];
63
65
  const globalProgress = width / maxSize;
64
66
  return (_jsx("div", { ref: ref, "data-breakpoint": true, className: "fixed left-2 bottom-2 z-[999999999999999]", onClick: () => setExpanded(!expanded), children: !!screens && !!screen && (_jsx(_Fragment, { children: expanded ? (_jsx("div", { className: "btn w-[400px] bg-black px-2", children: _jsxs("div", { className: "relative w-full h-full cursor-pointer", children: [_jsxs("div", { className: "absolute bottom-[-3px] -translate-x-1/2 -translate-y-1/2 leading-none text-[8px] text-white", style: { left: `calc(min(${globalProgress},1) * 100%)` }, children: ["\u23F6 ", _jsxs("span", { className: globalProgress < 0.85 ? `absolute left-2` : `absolute right-2`, children: [width, "px"] })] }), screens.map((screen, i) => {
@@ -1,6 +1,7 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import "../../../../../css/devtools.css";
3
- import { BreakpointIndicator } from "./BreakpointIndicator";
3
+ import { BreakpointIndicator } from "./BreakpointIndicator.js";
4
+ import { GridIndicator } from "./GridIndicator";
4
5
  export default function DevUI() {
5
- return (_jsx("div", { className: "eddev-ui", children: _jsx(BreakpointIndicator, {}) }));
6
+ return (_jsxs("div", { className: "eddev-ui", children: [_jsx(BreakpointIndicator, {}), _jsx(GridIndicator, {})] }));
6
7
  }
@@ -0,0 +1 @@
1
+ export declare function GridIndicator(): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,24 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useEffect } from "react";
3
+ import { usePersistState } from "../hooks/usePersistState.js";
4
+ export function GridIndicator() {
5
+ const [enabled, setEnabled] = usePersistState("gridOverlayEnabled", false);
6
+ useEffect(() => {
7
+ const handleKeyDown = (e) => {
8
+ if (e.key === "g" && e.ctrlKey) {
9
+ setEnabled((e) => !e);
10
+ }
11
+ };
12
+ window.addEventListener("keydown", handleKeyDown);
13
+ return () => {
14
+ window.removeEventListener("keydown", handleKeyDown);
15
+ };
16
+ }, []);
17
+ const cols = [];
18
+ for (let i = 0; i < 12; i++) {
19
+ cols.push(_jsx("div", { style: { height: "100%", backgroundColor: "rgba(255,0,0,0.1)" } }));
20
+ }
21
+ if (!enabled)
22
+ return null;
23
+ return (_jsx("div", { style: { position: "fixed", inset: 0, zIndex: 999999999, pointerEvents: "none" }, children: _jsx("div", { className: "grid-auto", style: { height: "100%" }, children: cols }) }));
24
+ }
@@ -0,0 +1,9 @@
1
+ import { Config as TailwindConfig } from "tailwindcss";
2
+ type Store = {
3
+ loadTailwindConfig: () => void;
4
+ tailwindConfig: TailwindConfig | null;
5
+ };
6
+ export declare const devToolsStore: Store & {
7
+ set<K extends keyof Store>(key: K, value: Store[K]): void;
8
+ };
9
+ export {};
@@ -0,0 +1,8 @@
1
+ import { proxy, ref } from "valtio";
2
+ export const devToolsStore = proxy({
3
+ tailwindConfig: null,
4
+ loadTailwindConfig() { },
5
+ set(key, value) {
6
+ devToolsStore[key] = (value ? ref(value) : value);
7
+ },
8
+ });
@@ -1 +1 @@
1
- export declare function usePersistState<T>(id: string, initial: T): [T, (value: T) => void];
1
+ export declare function usePersistState<T>(id: string, initial: T): [T, (value: T | ((current: T) => T)) => void];
@@ -24,8 +24,17 @@ export function usePersistState(id, initial) {
24
24
  return [
25
25
  value,
26
26
  (value) => {
27
- set(id, value);
28
- setValue(value);
27
+ if (typeof value === "function") {
28
+ return setValue((cur) => {
29
+ const next = value(cur);
30
+ set(id, next);
31
+ return next;
32
+ });
33
+ }
34
+ else {
35
+ set(id, value);
36
+ setValue(value);
37
+ }
29
38
  },
30
39
  ];
31
40
  }