eddev 2.3.12 → 2.3.14

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 (188) hide show
  1. package/dist/app/entry/MetaTags.d.ts +1 -1
  2. package/dist/app/entry/MetaTags.d.ts.map +1 -1
  3. package/dist/app/entry/MetaTags.js +2 -0
  4. package/dist/app/entry/spa-root.d.ts +1 -1
  5. package/dist/app/entry/spa-root.d.ts.map +1 -1
  6. package/dist/app/entry/ssr-root-client.d.ts +1 -1
  7. package/dist/app/entry/ssr-root-client.d.ts.map +1 -1
  8. package/dist/app/entry/ssr-root.d.ts +1 -1
  9. package/dist/app/entry/ssr-root.d.ts.map +1 -1
  10. package/dist/app/lib/blocks/BlockPropMutator.d.ts +1 -1
  11. package/dist/app/lib/blocks/BlockPropMutator.d.ts.map +1 -1
  12. package/dist/app/lib/blocks/ContentBlocks.d.ts +2 -2
  13. package/dist/app/lib/blocks/ContentBlocks.d.ts.map +1 -1
  14. package/dist/app/lib/blocks/EditableText.d.ts +1 -1
  15. package/dist/app/lib/blocks/EditableText.d.ts.map +1 -1
  16. package/dist/app/lib/blocks/InnerBlocks.d.ts +1 -1
  17. package/dist/app/lib/blocks/InnerBlocks.d.ts.map +1 -1
  18. package/dist/app/lib/blocks/SlotBlocks.d.ts +1 -1
  19. package/dist/app/lib/blocks/SlotBlocks.d.ts.map +1 -1
  20. package/dist/app/lib/blocks/block-debugger.d.ts +3 -3
  21. package/dist/app/lib/blocks/block-debugger.d.ts.map +1 -1
  22. package/dist/app/lib/blocks/block-utils.d.ts +2 -2
  23. package/dist/app/lib/blocks/block-utils.d.ts.map +1 -1
  24. package/dist/app/lib/blocks/block-utils.js +10 -3
  25. package/dist/app/lib/blocks/editor/EditableBlock.d.ts +1 -1
  26. package/dist/app/lib/blocks/editor/EditableBlock.d.ts.map +1 -1
  27. package/dist/app/lib/blocks/editor/EditorHighlights.d.ts +1 -1
  28. package/dist/app/lib/blocks/editor/EditorHighlights.d.ts.map +1 -1
  29. package/dist/app/lib/blocks/editor/ErrorBoundaryEditor.d.ts +1 -1
  30. package/dist/app/lib/blocks/editor/controls.d.ts +2 -2
  31. package/dist/app/lib/blocks/editor/controls.d.ts.map +1 -1
  32. package/dist/app/lib/blocks/editor/installGutenbergHooks.d.ts.map +1 -1
  33. package/dist/app/lib/blocks/editor/installGutenbergHooks.js +8 -4
  34. package/dist/app/lib/blocks/editor/root-blocks.d.ts.map +1 -1
  35. package/dist/app/lib/blocks/editor/root-blocks.js +2 -2
  36. package/dist/app/lib/blocks/inline-editing.d.ts +2 -2
  37. package/dist/app/lib/blocks/inline-editing.d.ts.map +1 -1
  38. package/dist/app/lib/devtools/components/BreakpointIndicator.d.ts +1 -1
  39. package/dist/app/lib/devtools/components/BreakpointIndicator.d.ts.map +1 -1
  40. package/dist/app/lib/devtools/components/DevMenu.d.ts +1 -1
  41. package/dist/app/lib/devtools/components/DevMenu.d.ts.map +1 -1
  42. package/dist/app/lib/devtools/components/DevUI.d.ts +2 -2
  43. package/dist/app/lib/devtools/components/DevUI.d.ts.map +1 -1
  44. package/dist/app/lib/devtools/components/panels/AppDataPanel.d.ts +2 -2
  45. package/dist/app/lib/devtools/components/panels/AppDataPanel.d.ts.map +1 -1
  46. package/dist/app/lib/devtools/components/panels/QueriesPanel.d.ts +1 -1
  47. package/dist/app/lib/devtools/components/panels/QueriesPanel.d.ts.map +1 -1
  48. package/dist/app/lib/devtools/components/panels/RoutePanel.d.ts +2 -2
  49. package/dist/app/lib/devtools/components/panels/RoutePanel.d.ts.map +1 -1
  50. package/dist/app/lib/devtools/components/panels/StructurePanel.d.ts +1 -1
  51. package/dist/app/lib/devtools/components/panels/StructurePanel.d.ts.map +1 -1
  52. package/dist/app/lib/devtools/components/ui/Button.d.ts +1 -1
  53. package/dist/app/lib/devtools/components/ui/Button.d.ts.map +1 -1
  54. package/dist/app/lib/devtools/components/ui/Chip.d.ts +2 -2
  55. package/dist/app/lib/devtools/components/ui/Chip.d.ts.map +1 -1
  56. package/dist/app/lib/devtools/components/ui/Expander.d.ts +1 -1
  57. package/dist/app/lib/devtools/components/ui/Expander.d.ts.map +1 -1
  58. package/dist/app/lib/devtools/components/ui/JSONInspector.d.ts +1 -1
  59. package/dist/app/lib/devtools/components/ui/JSONInspector.d.ts.map +1 -1
  60. package/dist/app/lib/devtools/components/ui/Panel.d.ts +1 -1
  61. package/dist/app/lib/devtools/components/ui/Panel.d.ts.map +1 -1
  62. package/dist/app/lib/devtools/components/ui/QueryMonitorDisplay.d.ts +1 -1
  63. package/dist/app/lib/devtools/components/ui/QueryMonitorDisplay.d.ts.map +1 -1
  64. package/dist/app/lib/devtools/components/ui/TabBar.d.ts +2 -2
  65. package/dist/app/lib/devtools/components/ui/TabBar.d.ts.map +1 -1
  66. package/dist/app/lib/devtools/components/ui/Tabs.d.ts +1 -1
  67. package/dist/app/lib/devtools/components/ui/Tabs.d.ts.map +1 -1
  68. package/dist/app/lib/devtools/hooks/useTailwind.d.ts +45 -45
  69. package/dist/app/lib/devtools/icons.d.ts +24 -24
  70. package/dist/app/lib/devtools/icons.d.ts.map +1 -1
  71. package/dist/app/lib/hooks/query-hooks.d.ts +8 -8
  72. package/dist/app/lib/hooks/query-hooks.d.ts.map +1 -1
  73. package/dist/app/lib/hooks/query-hooks.js +2 -1
  74. package/dist/app/lib/integrations/gravityforms/createGravityFormComponent.d.ts +15 -15
  75. package/dist/app/lib/routing/components/BrowserRouter.d.ts +1 -1
  76. package/dist/app/lib/routing/components/BrowserRouter.d.ts.map +1 -1
  77. package/dist/app/lib/routing/components/ClientOnly.d.ts +1 -1
  78. package/dist/app/lib/routing/components/ClientOnly.d.ts.map +1 -1
  79. package/dist/app/lib/routing/components/NativeLinkHandler.d.ts +1 -1
  80. package/dist/app/lib/routing/components/NativeLinkHandler.d.ts.map +1 -1
  81. package/dist/app/lib/routing/components/RouteRenderer.d.ts +3 -3
  82. package/dist/app/lib/routing/components/RouteRenderer.d.ts.map +1 -1
  83. package/dist/app/lib/routing/components/SSRRouter.d.ts +1 -1
  84. package/dist/app/lib/routing/components/SSRRouter.d.ts.map +1 -1
  85. package/dist/app/lib/runtime/apiConfig.d.ts +15 -0
  86. package/dist/app/lib/runtime/apiConfig.d.ts.map +1 -1
  87. package/dist/app/server/proxy-wp-admin.d.ts.map +1 -1
  88. package/dist/app/server/proxy-wp-admin.js +1 -0
  89. package/dist/app/server/server-context.d.ts +2 -2
  90. package/dist/app/server/server-context.d.ts.map +1 -1
  91. package/dist/app/utils/APIProvider.d.ts +1 -1
  92. package/dist/app/utils/APIProvider.d.ts.map +1 -1
  93. package/dist/app/utils/ErrorMessage.d.ts +1 -1
  94. package/dist/app/utils/ErrorMessage.d.ts.map +1 -1
  95. package/dist/app/utils/query-client.d.ts +1 -1
  96. package/dist/app/utils/query-client.d.ts.map +1 -1
  97. package/dist/app/utils/trpc-client.d.ts.map +1 -1
  98. package/dist/app/utils/trpc-client.js +19 -3
  99. package/dist/node/cli/display/CLIApp.d.ts +1 -1
  100. package/dist/node/cli/display/CLIApp.d.ts.map +1 -1
  101. package/dist/node/cli/display/components/Fullscreen.d.ts +1 -1
  102. package/dist/node/cli/display/components/Fullscreen.d.ts.map +1 -1
  103. package/dist/node/cli/display/components/LogEntries.d.ts +4 -4
  104. package/dist/node/cli/display/components/LogEntries.d.ts.map +1 -1
  105. package/dist/node/cli/display/components/MenuItem.d.ts +1 -1
  106. package/dist/node/cli/display/components/MenuItem.d.ts.map +1 -1
  107. package/dist/node/cli/display/components/TextInput.d.ts +3 -2
  108. package/dist/node/cli/display/components/TextInput.d.ts.map +1 -1
  109. package/dist/node/cli/display/tools/BlockList.d.ts +1 -1
  110. package/dist/node/cli/display/tools/BlockList.d.ts.map +1 -1
  111. package/dist/node/cli/display/tools/CreateBlock.d.ts +1 -1
  112. package/dist/node/cli/display/tools/CreateBlock.d.ts.map +1 -1
  113. package/dist/node/cli/version.d.ts +1 -1
  114. package/dist/node/cli/version.js +1 -1
  115. package/dist/node/compiler/dev-server.js +1 -1
  116. package/dist/node/compiler/get-vite-config.d.ts.map +1 -1
  117. package/dist/node/compiler/get-vite-config.js +1 -0
  118. package/dist/node/compiler/vinxi-app.d.ts +1 -1
  119. package/dist/node/compiler/vinxi-app.d.ts.map +1 -1
  120. package/dist/node/utils/fetch-wp.d.ts.map +1 -1
  121. package/dist/node/utils/fetch-wp.js +2 -1
  122. package/dist/node/utils/fs.d.ts +22 -19
  123. package/dist/node/utils/fs.d.ts.map +1 -1
  124. package/package.json +2 -2
  125. package/skills/eddev/SKILL.md +156 -0
  126. package/skills/eddev/docs/acf/admin-panel-widgets.mdx +99 -0
  127. package/skills/eddev/docs/acf/custom-enums.mdx +75 -0
  128. package/skills/eddev/docs/acf/custom-fields.mdx +131 -0
  129. package/skills/eddev/docs/acf.mdx +31 -0
  130. package/skills/eddev/docs/blocks/block-definition.mdx +189 -0
  131. package/skills/eddev/docs/blocks/core-blocks.mdx +86 -0
  132. package/skills/eddev/docs/blocks/data-and-editing.mdx +219 -0
  133. package/skills/eddev/docs/blocks/editor-config.mdx +157 -0
  134. package/skills/eddev/docs/blocks/nested-blocks.mdx +129 -0
  135. package/skills/eddev/docs/blocks/overview.mdx +58 -0
  136. package/skills/eddev/docs/blocks/template-parts.mdx +131 -0
  137. package/skills/eddev/docs/config.mdx +200 -0
  138. package/skills/eddev/docs/design/color.mdx +185 -0
  139. package/skills/eddev/docs/design/favicons.mdx +103 -0
  140. package/skills/eddev/docs/design/grid.mdx +120 -0
  141. package/skills/eddev/docs/design/icons.mdx +197 -0
  142. package/skills/eddev/docs/design/responsive-scaling.mdx +312 -0
  143. package/skills/eddev/docs/design/type.mdx +125 -0
  144. package/skills/eddev/docs/devtool/cli.mdx +201 -0
  145. package/skills/eddev/docs/devtool/overlay.mdx +5 -0
  146. package/skills/eddev/docs/getting-started.mdx +53 -0
  147. package/skills/eddev/docs/graphql/extending.mdx +186 -0
  148. package/skills/eddev/docs/graphql/fragments.mdx +107 -0
  149. package/skills/eddev/docs/graphql/global-data.mdx +47 -0
  150. package/skills/eddev/docs/graphql/infinite-queries.mdx +95 -0
  151. package/skills/eddev/docs/graphql/mutation-hooks.mdx +111 -0
  152. package/skills/eddev/docs/graphql/query-hooks.mdx +122 -0
  153. package/skills/eddev/docs/graphql/tooling.mdx +50 -0
  154. package/skills/eddev/docs/graphql.mdx +97 -0
  155. package/skills/eddev/docs/guides/color-schemes.mdx +204 -0
  156. package/skills/eddev/docs/guides/integrations.mdx +3 -0
  157. package/skills/eddev/docs/guides/page-transitions.mdx +5 -0
  158. package/skills/eddev/docs/guides/seo.mdx +5 -0
  159. package/skills/eddev/docs/guides/state-management.mdx +5 -0
  160. package/skills/eddev/docs/infra/caching.mdx +9 -0
  161. package/skills/eddev/docs/infra/deployment.mdx +13 -0
  162. package/skills/eddev/docs/infra/local.mdx +5 -0
  163. package/skills/eddev/docs/infra/security.mdx +11 -0
  164. package/skills/eddev/docs/routing/api.mdx +731 -0
  165. package/skills/eddev/docs/routing/custom.mdx +123 -0
  166. package/skills/eddev/docs/routing/full-details.mdx +37 -0
  167. package/skills/eddev/docs/routing/wordpress.mdx +70 -0
  168. package/skills/eddev/docs/routing.mdx +18 -0
  169. package/skills/eddev/docs/serverless/functions.mdx +436 -0
  170. package/skills/eddev/docs/serverless.mdx +202 -0
  171. package/skills/eddev/docs/snippets/automated-block-layouts.mdx +97 -0
  172. package/skills/eddev/docs/snippets/custom-routes-and-urls.mdx +91 -0
  173. package/skills/eddev/docs/snippets/multiple-editable-zones.mdx +87 -0
  174. package/skills/eddev/docs/snippets/querying-specific-blocks.mdx +164 -0
  175. package/skills/eddev/docs/snippets/submitting-forms-to-rpc.mdx +91 -0
  176. package/skills/eddev/docs/snippets/svgs.mdx +38 -0
  177. package/skills/eddev/docs/snippets/type-safe-acf-dropdowns.mdx +72 -0
  178. package/skills/eddev/docs/snippets.mdx +19 -0
  179. package/skills/eddev/docs/software.mdx +19 -0
  180. package/skills/eddev/docs/stack/how-it-works.mdx +50 -0
  181. package/skills/eddev/docs/stack/overview.mdx +56 -0
  182. package/skills/eddev/docs/stack/spa-vs-ssr.mdx +52 -0
  183. package/skills/eddev/docs/views/app-view.mdx +97 -0
  184. package/skills/eddev/docs/views/page-templates.mdx +82 -0
  185. package/skills/eddev/docs/views/queries.mdx +116 -0
  186. package/skills/eddev/docs/views.mdx +63 -0
  187. package/skills/eddev/index.mdx +79 -0
  188. package/tsconfig.app.json +2 -2
@@ -0,0 +1,116 @@
1
+ # View Data (/docs/views/queries)
2
+
3
+ **Pipe WordPress data into your templates**
4
+
5
+ A view can have a GraphQL file with the same name as the `.tsx` file. eddev executes that query whenever the view is resolved, and passes the query result to the view as props.
6
+
7
+ ```txt
8
+ views/
9
+ page.tsx
10
+ page.graphql
11
+ single-case-study.tsx
12
+ single-case-study.graphql
13
+ ```
14
+
15
+ You do not call a hook or write a loading state for normal view data. If the query file exists, the data is part of the route payload before the view renders. If no query file exists, the view gets an empty props object.
16
+
17
+ ## Current Post Data [#current-post-data]
18
+
19
+ For views attached to a WordPress object, use `$postId`.
20
+
21
+ ```graphql filename="views/page.graphql"
22
+ query Page($postId: ID!) {
23
+ page(id: $postId, idType: DATABASE_ID) {
24
+ title
25
+ contentBlocks
26
+ }
27
+ }
28
+ ```
29
+
30
+ ```tsx filename="views/page.tsx"
31
+ import { ContentBlocks } from "eddev/blocks"
32
+ import { defineView } from "eddev/views"
33
+
34
+ export default defineView("page", (props) => {
35
+ return <ContentBlocks blocks={props.page?.contentBlocks} />
36
+ })
37
+ ```
38
+
39
+ `$postId` is usually available for `page`, `front-page`, `single`, `single-{post-type}`, and custom page templates. A `$preview` boolean is also sent when WordPress is rendering a preview.
40
+
41
+ ## Listing Data [#listing-data]
42
+
43
+ View queries can fetch more than the current page. Archive and index pages often combine editable page content with a list of related posts or taxonomy terms.
44
+
45
+ ```graphql filename="views/archive-case-study.graphql"
46
+ query ArchiveCaseStudies($postId: ID!) {
47
+ page(id: $postId, idType: DATABASE_ID) {
48
+ contentBlocks
49
+ }
50
+ caseStudies(first: 100, where: { orderby: { field: MENU_ORDER, order: ASC } }) {
51
+ nodes {
52
+ title
53
+ uri
54
+ subtitle
55
+ }
56
+ }
57
+ workCategories {
58
+ nodes {
59
+ name
60
+ slug
61
+ }
62
+ }
63
+ }
64
+ ```
65
+
66
+ Use this pattern when authors need page-builder content at the top of an archive, but the view also needs structured data for filters, tiles, or navigation.
67
+
68
+ ## Custom Route Variables [#custom-route-variables]
69
+
70
+ Custom routes can provide their own query variables through `ED()->addCustomRoute()`. The PHP route maps URL segments to GraphQL variables, and the paired view query declares those variables.
71
+
72
+ ```php filename="backend/routes.php"
73
+ ED()->addCustomRoute('planner/([A-Za-z0-9-]+)/?$', [
74
+ 'template' => 'views/shared-planner.tsx',
75
+ 'title' => 'Shared Planner',
76
+ 'queryVars' => [
77
+ 'plannerId' => "$1"
78
+ ],
79
+ ]);
80
+ ```
81
+
82
+ ```graphql filename="views/shared-planner.graphql"
83
+ query SharedPlannerPage($plannerId: String!) {
84
+ sharedPlanner(id: $plannerId) {
85
+ id
86
+ name
87
+ sessions {
88
+ id
89
+ }
90
+ }
91
+ }
92
+ ```
93
+
94
+ Keep the route definition in [Custom Routes](/docs/routing/custom), and keep this page focused on the view query that consumes the variables.
95
+
96
+ ## Generated Prop Types [#generated-prop-types]
97
+
98
+ eddev generates `types.views.ts` from `views/**/*.tsx` and `views/**/*.graphql`.
99
+
100
+ For a view with a query, the generated prop type comes from the GraphQL operation result. For a view without a query, the generated prop type is `{}`.
101
+
102
+ ```ts filename="types.views.ts"
103
+ declare global {
104
+ interface ViewProps {
105
+ page: PageQuery
106
+ "shared-planner": SharedPlannerPageQuery
107
+ "search-results": {}
108
+ }
109
+ }
110
+ ```
111
+
112
+ Because `defineView` is typed against `ViewProps`, `props` should normally be inferred without manually importing the generated query type.
113
+
114
+ ## Query Scope [#query-scope]
115
+
116
+ Use a view query for data needed before the route renders. Use a query hook in `queries/*.graphql` when the user needs to search, paginate, mutate, refetch, or otherwise load data dynamically after the view is already on screen.
@@ -0,0 +1,63 @@
1
+ # Views (/docs/views)
2
+
3
+ **Page and post-type templates**
4
+
5
+ Views are the React templates for a site. WordPress still decides what URL maps to what content; eddev lets that normal WordPress template hierarchy resolve to files in `views/*.tsx` instead of PHP templates.
6
+
7
+ Common view names follow WordPress conventions:
8
+
9
+ * `front-page.tsx` for the site's front page
10
+ * `page.tsx` for normal pages
11
+ * `single.tsx` for posts
12
+ * `single-{post-type}.tsx` for a specific post type
13
+ * `archive-{post-type}.tsx` for a post type archive
14
+ * `404.tsx` or `_error.tsx` for not-found and error states
15
+
16
+ Most views also have a paired `.graphql` file with the same name. The query result becomes the view's props.
17
+
18
+ ```graphql filename="views/page.graphql"
19
+ query Page($postId: ID!) {
20
+ page(id: $postId, idType: DATABASE_ID) {
21
+ title
22
+ contentBlocks
23
+ }
24
+ }
25
+ ```
26
+
27
+ ```tsx filename="views/page.tsx"
28
+ import { ContentBlocks } from "eddev/blocks"
29
+ import { defineView } from "eddev/views"
30
+
31
+ export default defineView("page", (props) => {
32
+ return (
33
+ <div>
34
+ <h1>{props.page?.title}</h1>
35
+ <ContentBlocks blocks={props.page?.contentBlocks} />
36
+ </div>
37
+ )
38
+ })
39
+ ```
40
+
41
+ The view name passed to `defineView` should match the file path without `views/` or `.tsx`. For `views/page.tsx`, use `defineView("page", ...)`. For `views/single-case-study.tsx`, use `defineView("single-case-study", ...)`.
42
+
43
+ ## How A View Renders [#how-a-view-renders]
44
+
45
+ When a request comes in, WordPress resolves the matching template. If it finds a React view, eddev:
46
+
47
+ 1. Resolves the view name from the file path.
48
+ 2. Executes the paired `views/name.graphql` file if one exists.
49
+ 3. Builds a route payload containing the view name, query result, app data, route metadata, and admin context.
50
+ 4. Renders `views/_app.tsx` around the active view.
51
+
52
+ On the first request, that payload is embedded in the HTML. During client-side navigation, the router fetches the same payload as JSON, then loads and renders the matching view component.
53
+
54
+ ## Keep Views Thin [#keep-views-thin]
55
+
56
+ A view should usually compose the page rather than contain every component detail. Put reusable UI in `components/`, `features/`, or other project folders, and let the view focus on:
57
+
58
+ * selecting the right layout for this route
59
+ * rendering `ContentBlocks`
60
+ * composing archive or listing data from its query
61
+ * reading route state when the URL itself affects presentation
62
+
63
+ For the data side of views, see [View Data](./queries). For the site-wide wrapper, see [`_app.tsx`](./app-view).
@@ -0,0 +1,79 @@
1
+ # Docs
2
+
3
+ - Stack
4
+ - [Overview](docs/stack/overview.mdx): Understand the main technologies and hosting shape behind eddev sites.
5
+ - [How It Works](docs/stack/how-it-works.mdx): Follow the end-to-end request flow for an eddev page.
6
+ - [SPA vs SSR](docs/stack/spa-vs-ssr.mdx): Compare WordPress-hosted SPA mode with serverless SSR mode.
7
+ - [Software and Tooling](docs/software.mdx): Tools we use to build, edit, and run eddev projects.
8
+
9
+ - **Guides**
10
+ - [Getting Started](docs/getting-started.mdx): Set up a new eddev project from the starter theme.
11
+ - Dev Tools
12
+ - [eddev CLI](docs/devtool/cli.mdx): Run development, builds, codegen, and diagnostics through the eddev CLI.
13
+ - [Dev Overlay](docs/devtool/overlay.mdx): Use the in-browser development overlay while working on eddev sites.
14
+ - Infrastructure
15
+ - [Deployment](docs/infra/deployment.mdx): A placeholder for deployment workflows across GitHub, Vercel, and Cloudflare.
16
+ - [Local](docs/infra/local.mdx): A placeholder for Local setup and push-pull workflow guidance.
17
+ - [Security](docs/infra/security.mdx): A placeholder for origin protection and secret management guidance.
18
+ - [Caching](docs/infra/caching.mdx): A placeholder for eddev cache configuration and deployment layers.
19
+ - Design System
20
+ - [Colours](docs/design/color.mdx): Configure colour tokens and Figma handoff output for Tailwind.
21
+ - [Typography](docs/design/type.mdx): Configure typography tokens through Tailwind helper classes.
22
+ - [Using Icons](docs/design/icons.mdx): Export and use Figma icons as React-friendly SVG components.
23
+ - [Grid System](docs/design/grid.mdx): Configure grid tokens, gutters, and layout utilities.
24
+ - [Responsive Scaling](docs/design/responsive-scaling.mdx): Configure responsive Tailwind tokens with the local helper.
25
+ - [Favicons](docs/design/favicons.mdx): Configure how eddev generates or delegates favicon assets.
26
+ - More Guides
27
+ - [Colour Schemes](docs/guides/color-schemes.mdx): Define named visual schemes with Tailwind semantic tokens.
28
+ - [Integrations](docs/guides/integrations.mdx): A placeholder for third-party integration guidance.
29
+ - [Page Transitions](docs/guides/page-transitions.mdx): A placeholder for page transition patterns in eddev sites.
30
+ - [SEO](docs/guides/seo.mdx): A placeholder for SEO patterns in eddev sites.
31
+ - [State Management](docs/guides/state-management.mdx): A placeholder for state management guidance in eddev sites.
32
+ - Snippets
33
+ - [Overview](docs/snippets.mdx): Situation-based recipes from real eddev themes
34
+ - [Querying Specific Blocks](docs/snippets/querying-specific-blocks.mdx): Select, split, and render only the block content you need
35
+ - [Type-Safe ACF Dropdowns](docs/snippets/type-safe-acf-dropdowns.mdx): Register one enum field and use its generated TypeScript type
36
+ - [Multiple Editable Zones](docs/snippets/multiple-editable-zones.mdx): Use SlotBlocks when one block needs more than one child area
37
+ - [Automated Block Layouts](docs/snippets/automated-block-layouts.mdx): Use block flags and wrapBlock to keep layout rules out of every block
38
+ - [Submitting Forms To RPC](docs/snippets/submitting-forms-to-rpc.mdx): Create a serverless mutation and call it from React
39
+ - [Custom Routes And URLs](docs/snippets/custom-routes-and-urls.mdx): Map fixed URLs to views and keep generated WordPress links aligned
40
+ - [SVGs](docs/snippets/svgs.mdx): Copy/paste SVG upload and GraphQL snippets
41
+
42
+ - **Components**
43
+ - [Configuration](docs/config.mdx): Configure eddev projects with theme-level JSON settings.
44
+ - Routing
45
+ - [Routing Overview](docs/routing.mdx): Understand the WordPress and frontend sides of eddev routing.
46
+ - [Custom Routes](docs/routing/custom.mdx): Register fixed WordPress-backed routes for app-like screens.
47
+ - [WordPress Routing](docs/routing/wordpress.mdx): Let WordPress resolve URLs while React renders the matched view.
48
+ - [Frontend Routing APIs](docs/routing/api.mdx): Use eddev routing APIs for links, preloading, and client navigation.
49
+ - [How it Works](docs/routing/full-details.mdx): Trace how eddev loads route data for SPA and serverless navigation.
50
+ - GraphQL
51
+ - [Overview](docs/graphql.mdx): Working with GraphQL in eddev
52
+ - [Global Data](docs/graphql/global-data.mdx): Fetch shared site shell data through views/_app.graphql.
53
+ - [GraphQL Fragments](docs/graphql/fragments.mdx): Share GraphQL selections and generated fragment types across queries.
54
+ - [Query Hooks](docs/graphql/query-hooks.mdx): Generate browser runtime query hooks from files in queries.
55
+ - [Mutation Hooks](docs/graphql/mutation-hooks.mdx): Generate mutation hooks for runtime GraphQL operations with side effects.
56
+ - [Infinite Queries](docs/graphql/infinite-queries.mdx): Build load-more interfaces with generated infinite query hooks.
57
+ - [Extending the GraphQL Schema](docs/graphql/extending.mdx): Extend WPGraphQL when frontend data needs custom schema fields.
58
+ - [GraphQL Tooling](docs/graphql/tooling.mdx): Use generated schema files with editor tooling and GraphiQL.
59
+ - Views
60
+ - [Views](docs/views.mdx): Page and post-type templates
61
+ - [_app.tsx Layout](docs/views/app-view.mdx): Common site layout
62
+ - [Page Templates](docs/views/page-templates.mdx): Selectable templates for pages and post types
63
+ - [View Data](docs/views/queries.mdx): Pipe WordPress data into your templates
64
+ - Blocks
65
+ - [Overview](docs/blocks/overview.mdx): The basics of creating Gutenberg blocks
66
+ - [Defining a block](docs/blocks/block-definition.mdx): How to create a new block type
67
+ - [Data and Editing](docs/blocks/data-and-editing.mdx): GraphQL props, inline content, and core block rendering
68
+ - [Configuring the Editor](docs/blocks/editor-config.mdx): Control which blocks authors can use
69
+ - [Nested Blocks](docs/blocks/nested-blocks.mdx): Blocks within blocks
70
+ - [Template Parts](docs/blocks/template-parts.mdx): Reusable site sections powered by blocks
71
+ - [Core Blocks](docs/blocks/core-blocks.mdx): Working with WordPress core blocks in eddev
72
+ - ACF
73
+ - [ACF](docs/acf.mdx): Custom ACF fields, enum field shortcuts, and React widgets for WordPress admin screens.
74
+ - [Custom Fields](docs/acf/custom-fields.mdx): Build a custom ACF field type with PHP storage and React editing UI.
75
+ - [Custom Enums](docs/acf/custom-enums.mdx): Register reusable typed ACF choice fields without writing a full custom field UI.
76
+ - [Admin Panel Widgets](docs/acf/admin-panel-widgets.mdx): Mount React widgets inside custom WordPress admin pages.
77
+ - Serverless
78
+ - [Serverless](docs/serverless.mdx): Run the public eddev frontend on Vercel while WordPress owns content and routing.
79
+ - [RPC Functions](docs/serverless/functions.mdx): Define TypeScript RPC routes for serverless eddev projects.
package/tsconfig.app.json CHANGED
@@ -3,8 +3,8 @@
3
3
  "target": "ESNext",
4
4
  "lib": ["DOM", "ESNext"],
5
5
  "jsx": "react-jsx",
6
- "module": "NodeNext",
7
- "moduleResolution": "NodeNext",
6
+ "module": "nodenext",
7
+ "moduleResolution": "nodenext",
8
8
  "rootDir": "./src/",
9
9
  "declaration": true,
10
10
  "declarationMap": true,