@puckeditor/cli 0.24.0-canary.301a0304

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 (372) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +45 -0
  3. package/dist/bin.mjs +7304 -0
  4. package/dist/docs/api-reference/actions.md +63 -0
  5. package/dist/docs/api-reference/components/action-bar-action.md +35 -0
  6. package/dist/docs/api-reference/components/action-bar-group.md +24 -0
  7. package/dist/docs/api-reference/components/action-bar-label.md +25 -0
  8. package/dist/docs/api-reference/components/action-bar-separator.md +16 -0
  9. package/dist/docs/api-reference/components/action-bar.md +32 -0
  10. package/dist/docs/api-reference/components/auto-field.md +63 -0
  11. package/dist/docs/api-reference/components/drawer-item.md +75 -0
  12. package/dist/docs/api-reference/components/drawer.md +29 -0
  13. package/dist/docs/api-reference/components/drop-zone.md +232 -0
  14. package/dist/docs/api-reference/components/field-label.md +138 -0
  15. package/dist/docs/api-reference/components/inline-text-field.md +77 -0
  16. package/dist/docs/api-reference/components/puck-components.md +19 -0
  17. package/dist/docs/api-reference/components/puck-fields.md +39 -0
  18. package/dist/docs/api-reference/components/puck-layout.md +27 -0
  19. package/dist/docs/api-reference/components/puck-outline.md +19 -0
  20. package/dist/docs/api-reference/components/puck-preview.md +39 -0
  21. package/dist/docs/api-reference/components/puck.md +561 -0
  22. package/dist/docs/api-reference/components/render.md +94 -0
  23. package/dist/docs/api-reference/components/rich-text-menu-control.md +87 -0
  24. package/dist/docs/api-reference/components/rich-text-menu-group.md +27 -0
  25. package/dist/docs/api-reference/components/rich-text-menu.md +99 -0
  26. package/dist/docs/api-reference/components.md +32 -0
  27. package/dist/docs/api-reference/configuration/component-config.md +569 -0
  28. package/dist/docs/api-reference/configuration/config.md +108 -0
  29. package/dist/docs/api-reference/configuration.md +4 -0
  30. package/dist/docs/api-reference/data-model/app-state.md +168 -0
  31. package/dist/docs/api-reference/data-model/component-data.md +62 -0
  32. package/dist/docs/api-reference/data-model/data.md +95 -0
  33. package/dist/docs/api-reference/data-model/item-selector.md +34 -0
  34. package/dist/docs/api-reference/data-model/root-data.md +59 -0
  35. package/dist/docs/api-reference/data-model.md +8 -0
  36. package/dist/docs/api-reference/dictionary.md +172 -0
  37. package/dist/docs/api-reference/field-transforms.md +51 -0
  38. package/dist/docs/api-reference/fields/array.md +211 -0
  39. package/dist/docs/api-reference/fields/base.md +96 -0
  40. package/dist/docs/api-reference/fields/custom.md +193 -0
  41. package/dist/docs/api-reference/fields/external.md +413 -0
  42. package/dist/docs/api-reference/fields/number.md +132 -0
  43. package/dist/docs/api-reference/fields/object.md +78 -0
  44. package/dist/docs/api-reference/fields/radio.md +82 -0
  45. package/dist/docs/api-reference/fields/richtext.md +422 -0
  46. package/dist/docs/api-reference/fields/select.md +79 -0
  47. package/dist/docs/api-reference/fields/slot.md +302 -0
  48. package/dist/docs/api-reference/fields/text.md +93 -0
  49. package/dist/docs/api-reference/fields/textarea.md +93 -0
  50. package/dist/docs/api-reference/fields.md +16 -0
  51. package/dist/docs/api-reference/functions/migrate.md +204 -0
  52. package/dist/docs/api-reference/functions/register-overlay-portal.md +45 -0
  53. package/dist/docs/api-reference/functions/resolve-all-data.md +27 -0
  54. package/dist/docs/api-reference/functions/set-deep.md +55 -0
  55. package/dist/docs/api-reference/functions/transform-props.md +51 -0
  56. package/dist/docs/api-reference/functions/use-get-puck.md +24 -0
  57. package/dist/docs/api-reference/functions/use-puck.md +43 -0
  58. package/dist/docs/api-reference/functions/walk-tree.md +88 -0
  59. package/dist/docs/api-reference/functions.md +8 -0
  60. package/dist/docs/api-reference/overrides/action-bar.md +35 -0
  61. package/dist/docs/api-reference/overrides/component-overlay.md +41 -0
  62. package/dist/docs/api-reference/overrides/drawer-item.md +24 -0
  63. package/dist/docs/api-reference/overrides/drawer.md +19 -0
  64. package/dist/docs/api-reference/overrides/field-label.md +18 -0
  65. package/dist/docs/api-reference/overrides/field-types.md +51 -0
  66. package/dist/docs/api-reference/overrides/fields.md +19 -0
  67. package/dist/docs/api-reference/overrides/header-actions.md +24 -0
  68. package/dist/docs/api-reference/overrides/header.md +29 -0
  69. package/dist/docs/api-reference/overrides/iframe.md +32 -0
  70. package/dist/docs/api-reference/overrides/outline.md +19 -0
  71. package/dist/docs/api-reference/overrides/preview.md +19 -0
  72. package/dist/docs/api-reference/overrides/puck.md +19 -0
  73. package/dist/docs/api-reference/overrides.md +28 -0
  74. package/dist/docs/api-reference/permissions.md +55 -0
  75. package/dist/docs/api-reference/plugin.md +112 -0
  76. package/dist/docs/api-reference/plugins/blocks-plugin.md +57 -0
  77. package/dist/docs/api-reference/plugins/fields-plugin.md +68 -0
  78. package/dist/docs/api-reference/plugins/legacy-side-bar-plugin.md +54 -0
  79. package/dist/docs/api-reference/plugins/outline-plugin.md +57 -0
  80. package/dist/docs/api-reference/puck-api.md +278 -0
  81. package/dist/docs/api-reference/theming/action-bar.md +32 -0
  82. package/dist/docs/api-reference/theming/button.md +65 -0
  83. package/dist/docs/api-reference/theming/canvas.md +20 -0
  84. package/dist/docs/api-reference/theming/computed-values.md +194 -0
  85. package/dist/docs/api-reference/theming/drawer.md +34 -0
  86. package/dist/docs/api-reference/theming/fields.md +70 -0
  87. package/dist/docs/api-reference/theming/global.md +127 -0
  88. package/dist/docs/api-reference/theming/header.md +19 -0
  89. package/dist/docs/api-reference/theming/icon-button.md +28 -0
  90. package/dist/docs/api-reference/theming/outline.md +35 -0
  91. package/dist/docs/api-reference/theming/plugin-bar.md +24 -0
  92. package/dist/docs/api-reference/theming/sidebar.md +19 -0
  93. package/dist/docs/api-reference/theming/slot.md +27 -0
  94. package/dist/docs/cli.md +201 -0
  95. package/dist/docs/extending-puck/composition.md +54 -0
  96. package/dist/docs/extending-puck/custom-fields.md +133 -0
  97. package/dist/docs/extending-puck/field-transforms.md +89 -0
  98. package/dist/docs/extending-puck/internal-puck-api.md +96 -0
  99. package/dist/docs/extending-puck/plugins.md +159 -0
  100. package/dist/docs/extending-puck/theming.md +88 -0
  101. package/dist/docs/extending-puck/ui-overrides.md +134 -0
  102. package/dist/docs/getting-started.md +68 -0
  103. package/dist/docs/guides/migrations/dropzones-to-slots.md +138 -0
  104. package/dist/docs/index.json +466 -0
  105. package/dist/docs/index.md +37 -0
  106. package/dist/docs/integrating-puck/categories.md +92 -0
  107. package/dist/docs/integrating-puck/component-configuration.md +159 -0
  108. package/dist/docs/integrating-puck/data-migration.md +86 -0
  109. package/dist/docs/integrating-puck/dynamic-fields.md +86 -0
  110. package/dist/docs/integrating-puck/dynamic-props.md +137 -0
  111. package/dist/docs/integrating-puck/external-data-sources.md +149 -0
  112. package/dist/docs/integrating-puck/feature-toggling.md +121 -0
  113. package/dist/docs/integrating-puck/localization.md +228 -0
  114. package/dist/docs/integrating-puck/multi-column-layouts.md +226 -0
  115. package/dist/docs/integrating-puck/overlay-portals.md +25 -0
  116. package/dist/docs/integrating-puck/rich-text-editing.md +230 -0
  117. package/dist/docs/integrating-puck/root-configuration.md +171 -0
  118. package/dist/docs/integrating-puck/server-components.md +199 -0
  119. package/dist/docs/integrating-puck/styling.md +117 -0
  120. package/dist/docs/integrating-puck/viewports.md +75 -0
  121. package/dist/templates/astro/README.md +52 -0
  122. package/dist/templates/astro/_gitignore +24 -0
  123. package/dist/templates/astro/astro.config.mjs +14 -0
  124. package/dist/templates/astro/database.json +1 -0
  125. package/dist/templates/astro/package.json +25 -0
  126. package/dist/templates/astro/public/favicon.svg +9 -0
  127. package/dist/templates/astro/src/lib/pages.ts +21 -0
  128. package/dist/templates/astro/src/lib/resolve-puck-path.ts +19 -0
  129. package/dist/templates/astro/src/pages/[...puckPath].astro +25 -0
  130. package/dist/templates/astro/src/pages/api/pages.ts +18 -0
  131. package/dist/templates/astro/src/puck/editor.tsx +32 -0
  132. package/dist/templates/astro/src/puck/pages.ts +15 -0
  133. package/dist/templates/astro/src/puck/render.tsx +9 -0
  134. package/dist/templates/astro/src/puck.config.tsx +23 -0
  135. package/dist/templates/astro/tsconfig.json +14 -0
  136. package/dist/templates/astro-ai/README.md +64 -0
  137. package/dist/templates/astro-ai/_gitignore +24 -0
  138. package/dist/templates/astro-ai/astro.config.mjs +21 -0
  139. package/dist/templates/astro-ai/database.json +1 -0
  140. package/dist/templates/astro-ai/package.json +27 -0
  141. package/dist/templates/astro-ai/public/favicon.svg +9 -0
  142. package/dist/templates/astro-ai/src/lib/pages.ts +21 -0
  143. package/dist/templates/astro-ai/src/lib/resolve-puck-path.ts +19 -0
  144. package/dist/templates/astro-ai/src/pages/[...puckPath].astro +25 -0
  145. package/dist/templates/astro-ai/src/pages/api/pages.ts +18 -0
  146. package/dist/templates/astro-ai/src/pages/api/puck/[...all].ts +36 -0
  147. package/dist/templates/astro-ai/src/puck/editor.tsx +53 -0
  148. package/dist/templates/astro-ai/src/puck/pages.ts +15 -0
  149. package/dist/templates/astro-ai/src/puck/render.tsx +10 -0
  150. package/dist/templates/astro-ai/src/puck.config.tsx +23 -0
  151. package/dist/templates/astro-ai/tsconfig.json +14 -0
  152. package/dist/templates/express/README.md +66 -0
  153. package/dist/templates/express/_gitignore +16 -0
  154. package/dist/templates/express/database.json +1 -0
  155. package/dist/templates/express/package.json +20 -0
  156. package/dist/templates/express/src/index.ts +15 -0
  157. package/dist/templates/express/src/puck/pages.ts +39 -0
  158. package/dist/templates/express/tsconfig.json +12 -0
  159. package/dist/templates/express-ai/README.md +81 -0
  160. package/dist/templates/express-ai/_gitignore +16 -0
  161. package/dist/templates/express-ai/database.json +1 -0
  162. package/dist/templates/express-ai/package.json +22 -0
  163. package/dist/templates/express-ai/src/index.ts +17 -0
  164. package/dist/templates/express-ai/src/puck/cloud.ts +71 -0
  165. package/dist/templates/express-ai/src/puck/pages.ts +39 -0
  166. package/dist/templates/express-ai/tsconfig.json +12 -0
  167. package/dist/templates/hono/README.md +66 -0
  168. package/dist/templates/hono/_gitignore +32 -0
  169. package/dist/templates/hono/database.json +1 -0
  170. package/dist/templates/hono/package.json +20 -0
  171. package/dist/templates/hono/src/index.ts +21 -0
  172. package/dist/templates/hono/src/puck/pages.ts +32 -0
  173. package/dist/templates/hono/tsconfig.json +13 -0
  174. package/dist/templates/hono-ai/README.md +81 -0
  175. package/dist/templates/hono-ai/_gitignore +32 -0
  176. package/dist/templates/hono-ai/database.json +1 -0
  177. package/dist/templates/hono-ai/package.json +22 -0
  178. package/dist/templates/hono-ai/src/index.ts +23 -0
  179. package/dist/templates/hono-ai/src/puck/cloud.ts +30 -0
  180. package/dist/templates/hono-ai/src/puck/pages.ts +32 -0
  181. package/dist/templates/hono-ai/tsconfig.json +13 -0
  182. package/dist/templates/manifest.json +4 -0
  183. package/dist/templates/next/README.md +112 -0
  184. package/dist/templates/next/_gitignore +35 -0
  185. package/dist/templates/next/app/[...puckPath]/client.tsx +9 -0
  186. package/dist/templates/next/app/[...puckPath]/page.tsx +49 -0
  187. package/dist/templates/next/app/favicon.ico +0 -0
  188. package/dist/templates/next/app/layout.tsx +13 -0
  189. package/dist/templates/next/app/page.tsx +1 -0
  190. package/dist/templates/next/app/puck/[...puckPath]/client.tsx +20 -0
  191. package/dist/templates/next/app/puck/[...puckPath]/page.tsx +55 -0
  192. package/dist/templates/next/app/puck/api/route.ts +25 -0
  193. package/dist/templates/next/app/puck/page.tsx +3 -0
  194. package/dist/templates/next/app/styles.css +3 -0
  195. package/dist/templates/next/database.json +1 -0
  196. package/dist/templates/next/lib/get-page.ts +11 -0
  197. package/dist/templates/next/next.config.js +3 -0
  198. package/dist/templates/next/package.json +25 -0
  199. package/dist/templates/next/proxy.ts +27 -0
  200. package/dist/templates/next/puck.config.tsx +25 -0
  201. package/dist/templates/next/tsconfig/base.json +20 -0
  202. package/dist/templates/next/tsconfig/nextjs.json +21 -0
  203. package/dist/templates/next/tsconfig.json +8 -0
  204. package/dist/templates/next-ai/README.md +169 -0
  205. package/dist/templates/next-ai/_gitignore +35 -0
  206. package/dist/templates/next-ai/app/[...puckPath]/client.tsx +12 -0
  207. package/dist/templates/next-ai/app/[...puckPath]/page.tsx +49 -0
  208. package/dist/templates/next-ai/app/api/pages/route.ts +26 -0
  209. package/dist/templates/next-ai/app/api/puck/[...all]/route.ts +31 -0
  210. package/dist/templates/next-ai/app/layout.tsx +13 -0
  211. package/dist/templates/next-ai/app/page.tsx +1 -0
  212. package/dist/templates/next-ai/app/puck/[...puckPath]/client.tsx +38 -0
  213. package/dist/templates/next-ai/app/puck/[...puckPath]/page.tsx +57 -0
  214. package/dist/templates/next-ai/app/puck/page.tsx +3 -0
  215. package/dist/templates/next-ai/app/styles.css +3 -0
  216. package/dist/templates/next-ai/database.json +1 -0
  217. package/dist/templates/next-ai/lib/get-page.ts +11 -0
  218. package/dist/templates/next-ai/next.config.js +3 -0
  219. package/dist/templates/next-ai/package.json +27 -0
  220. package/dist/templates/next-ai/proxy.ts +27 -0
  221. package/dist/templates/next-ai/public/favicon.ico +0 -0
  222. package/dist/templates/next-ai/puck.config.tsx +25 -0
  223. package/dist/templates/next-ai/tsconfig/base.json +20 -0
  224. package/dist/templates/next-ai/tsconfig/nextjs.json +21 -0
  225. package/dist/templates/next-ai/tsconfig.json +8 -0
  226. package/dist/templates/react-router/README.md +113 -0
  227. package/dist/templates/react-router/_gitignore +6 -0
  228. package/dist/templates/react-router/app/components/puck-render.tsx +8 -0
  229. package/dist/templates/react-router/app/lib/pages.server.ts +29 -0
  230. package/dist/templates/react-router/app/lib/resolve-puck-path.server.ts +19 -0
  231. package/dist/templates/react-router/app/root.tsx +65 -0
  232. package/dist/templates/react-router/app/routes/_index.tsx +31 -0
  233. package/dist/templates/react-router/app/routes/puck-splat.tsx +95 -0
  234. package/dist/templates/react-router/app/routes.ts +7 -0
  235. package/dist/templates/react-router/database.json +1 -0
  236. package/dist/templates/react-router/package.json +33 -0
  237. package/dist/templates/react-router/public/favicon.ico +0 -0
  238. package/dist/templates/react-router/puck.config.tsx +23 -0
  239. package/dist/templates/react-router/react-router.config.ts +7 -0
  240. package/dist/templates/react-router/tsconfig.json +29 -0
  241. package/dist/templates/react-router/vite.config.ts +10 -0
  242. package/dist/templates/react-router-ai/README.md +172 -0
  243. package/dist/templates/react-router-ai/_gitignore +6 -0
  244. package/dist/templates/react-router-ai/app/components/puck-render.tsx +11 -0
  245. package/dist/templates/react-router-ai/app/lib/pages.server.ts +29 -0
  246. package/dist/templates/react-router-ai/app/lib/resolve-puck-path.server.ts +19 -0
  247. package/dist/templates/react-router-ai/app/root.tsx +65 -0
  248. package/dist/templates/react-router-ai/app/routes/_index.tsx +31 -0
  249. package/dist/templates/react-router-ai/app/routes/api.puck.ts +34 -0
  250. package/dist/templates/react-router-ai/app/routes/puck-splat.tsx +119 -0
  251. package/dist/templates/react-router-ai/app/routes.ts +8 -0
  252. package/dist/templates/react-router-ai/database.json +1 -0
  253. package/dist/templates/react-router-ai/package.json +35 -0
  254. package/dist/templates/react-router-ai/public/favicon.ico +0 -0
  255. package/dist/templates/react-router-ai/puck.config.tsx +25 -0
  256. package/dist/templates/react-router-ai/react-router.config.ts +7 -0
  257. package/dist/templates/react-router-ai/tsconfig.json +29 -0
  258. package/dist/templates/react-router-ai/vite.config.ts +10 -0
  259. package/dist/templates/tanstack-start/README.md +113 -0
  260. package/dist/templates/tanstack-start/_gitignore +12 -0
  261. package/dist/templates/tanstack-start/database.json +1 -0
  262. package/dist/templates/tanstack-start/package.json +26 -0
  263. package/dist/templates/tanstack-start/puck.config.tsx +23 -0
  264. package/dist/templates/tanstack-start/src/components/puck-render.tsx +8 -0
  265. package/dist/templates/tanstack-start/src/lib/pages.server.ts +26 -0
  266. package/dist/templates/tanstack-start/src/lib/pages.ts +39 -0
  267. package/dist/templates/tanstack-start/src/lib/resolve-puck-path.ts +19 -0
  268. package/dist/templates/tanstack-start/src/routeTree.gen.ts +86 -0
  269. package/dist/templates/tanstack-start/src/router.tsx +19 -0
  270. package/dist/templates/tanstack-start/src/routes/$.tsx +41 -0
  271. package/dist/templates/tanstack-start/src/routes/__root.tsx +42 -0
  272. package/dist/templates/tanstack-start/src/routes/index.tsx +18 -0
  273. package/dist/templates/tanstack-start/src/styles.css +13 -0
  274. package/dist/templates/tanstack-start/tsconfig.json +24 -0
  275. package/dist/templates/tanstack-start/vite.config.ts +15 -0
  276. package/dist/templates/tanstack-start-ai/README.md +171 -0
  277. package/dist/templates/tanstack-start-ai/_gitignore +12 -0
  278. package/dist/templates/tanstack-start-ai/database.json +1 -0
  279. package/dist/templates/tanstack-start-ai/package.json +28 -0
  280. package/dist/templates/tanstack-start-ai/puck.config.tsx +23 -0
  281. package/dist/templates/tanstack-start-ai/src/components/puck-render.tsx +11 -0
  282. package/dist/templates/tanstack-start-ai/src/lib/pages.server.ts +26 -0
  283. package/dist/templates/tanstack-start-ai/src/lib/pages.ts +39 -0
  284. package/dist/templates/tanstack-start-ai/src/lib/resolve-puck-path.ts +19 -0
  285. package/dist/templates/tanstack-start-ai/src/routeTree.gen.ts +104 -0
  286. package/dist/templates/tanstack-start-ai/src/router.tsx +19 -0
  287. package/dist/templates/tanstack-start-ai/src/routes/$.tsx +73 -0
  288. package/dist/templates/tanstack-start-ai/src/routes/__root.tsx +42 -0
  289. package/dist/templates/tanstack-start-ai/src/routes/api/puck/$.ts +39 -0
  290. package/dist/templates/tanstack-start-ai/src/routes/index.tsx +18 -0
  291. package/dist/templates/tanstack-start-ai/src/styles.css +13 -0
  292. package/dist/templates/tanstack-start-ai/tsconfig.json +24 -0
  293. package/dist/templates/tanstack-start-ai/vite.config.ts +15 -0
  294. package/dist/templates/vinext/README.md +112 -0
  295. package/dist/templates/vinext/_gitignore +33 -0
  296. package/dist/templates/vinext/app/[...puckPath]/client.tsx +9 -0
  297. package/dist/templates/vinext/app/[...puckPath]/page.tsx +49 -0
  298. package/dist/templates/vinext/app/favicon.ico +0 -0
  299. package/dist/templates/vinext/app/layout.tsx +13 -0
  300. package/dist/templates/vinext/app/page.tsx +1 -0
  301. package/dist/templates/vinext/app/puck/[...puckPath]/client.tsx +20 -0
  302. package/dist/templates/vinext/app/puck/[...puckPath]/page.tsx +55 -0
  303. package/dist/templates/vinext/app/puck/api/route.ts +25 -0
  304. package/dist/templates/vinext/app/puck/page.tsx +3 -0
  305. package/dist/templates/vinext/app/styles.css +3 -0
  306. package/dist/templates/vinext/database.json +1 -0
  307. package/dist/templates/vinext/lib/get-page.ts +11 -0
  308. package/dist/templates/vinext/package.json +30 -0
  309. package/dist/templates/vinext/proxy.ts +27 -0
  310. package/dist/templates/vinext/puck.config.tsx +25 -0
  311. package/dist/templates/vinext/tsconfig.json +30 -0
  312. package/dist/templates/vinext/vite.config.ts +6 -0
  313. package/dist/templates/vinext-ai/README.md +169 -0
  314. package/dist/templates/vinext-ai/_gitignore +33 -0
  315. package/dist/templates/vinext-ai/app/[...puckPath]/client.tsx +12 -0
  316. package/dist/templates/vinext-ai/app/[...puckPath]/page.tsx +49 -0
  317. package/dist/templates/vinext-ai/app/api/pages/route.ts +26 -0
  318. package/dist/templates/vinext-ai/app/api/puck/[...all]/route.ts +31 -0
  319. package/dist/templates/vinext-ai/app/layout.tsx +13 -0
  320. package/dist/templates/vinext-ai/app/page.tsx +1 -0
  321. package/dist/templates/vinext-ai/app/puck/[...puckPath]/client.tsx +38 -0
  322. package/dist/templates/vinext-ai/app/puck/[...puckPath]/page.tsx +57 -0
  323. package/dist/templates/vinext-ai/app/puck/page.tsx +3 -0
  324. package/dist/templates/vinext-ai/app/styles.css +3 -0
  325. package/dist/templates/vinext-ai/database.json +1 -0
  326. package/dist/templates/vinext-ai/lib/get-page.ts +11 -0
  327. package/dist/templates/vinext-ai/package.json +32 -0
  328. package/dist/templates/vinext-ai/proxy.ts +27 -0
  329. package/dist/templates/vinext-ai/public/favicon.ico +0 -0
  330. package/dist/templates/vinext-ai/puck.config.tsx +25 -0
  331. package/dist/templates/vinext-ai/tsconfig.json +30 -0
  332. package/dist/templates/vinext-ai/vite.config.ts +9 -0
  333. package/dist/templates/vite/README.md +56 -0
  334. package/dist/templates/vite/_gitignore +24 -0
  335. package/dist/templates/vite/database.json +1 -0
  336. package/dist/templates/vite/index.html +12 -0
  337. package/dist/templates/vite/package.json +29 -0
  338. package/dist/templates/vite/server/index.ts +13 -0
  339. package/dist/templates/vite/server/prod.ts +18 -0
  340. package/dist/templates/vite/server/puck/pages.ts +32 -0
  341. package/dist/templates/vite/src/App.tsx +11 -0
  342. package/dist/templates/vite/src/main.tsx +12 -0
  343. package/dist/templates/vite/src/puck/editor.tsx +28 -0
  344. package/dist/templates/vite/src/puck/page.tsx +27 -0
  345. package/dist/templates/vite/src/puck/pages.ts +15 -0
  346. package/dist/templates/vite/src/puck/root.tsx +27 -0
  347. package/dist/templates/vite/src/puck.config.tsx +23 -0
  348. package/dist/templates/vite/tsconfig.app.json +26 -0
  349. package/dist/templates/vite/tsconfig.json +7 -0
  350. package/dist/templates/vite/tsconfig.node.json +23 -0
  351. package/dist/templates/vite/vite.config.ts +14 -0
  352. package/dist/templates/vite-ai/README.md +67 -0
  353. package/dist/templates/vite-ai/_gitignore +24 -0
  354. package/dist/templates/vite-ai/database.json +1 -0
  355. package/dist/templates/vite-ai/index.html +12 -0
  356. package/dist/templates/vite-ai/package.json +31 -0
  357. package/dist/templates/vite-ai/server/index.ts +15 -0
  358. package/dist/templates/vite-ai/server/prod.ts +18 -0
  359. package/dist/templates/vite-ai/server/puck/cloud.ts +30 -0
  360. package/dist/templates/vite-ai/server/puck/pages.ts +32 -0
  361. package/dist/templates/vite-ai/src/App.tsx +11 -0
  362. package/dist/templates/vite-ai/src/main.tsx +12 -0
  363. package/dist/templates/vite-ai/src/puck/editor.tsx +49 -0
  364. package/dist/templates/vite-ai/src/puck/page.tsx +28 -0
  365. package/dist/templates/vite-ai/src/puck/pages.ts +15 -0
  366. package/dist/templates/vite-ai/src/puck/root.tsx +27 -0
  367. package/dist/templates/vite-ai/src/puck.config.tsx +23 -0
  368. package/dist/templates/vite-ai/tsconfig.app.json +26 -0
  369. package/dist/templates/vite-ai/tsconfig.json +7 -0
  370. package/dist/templates/vite-ai/tsconfig.node.json +23 -0
  371. package/dist/templates/vite-ai/vite.config.ts +14 -0
  372. package/package.json +51 -0
@@ -0,0 +1,19 @@
1
+ # preview
2
+
3
+ Override the drag-and-drop preview.
4
+
5
+ ```tsx
6
+ const overrides = {
7
+ preview: ({ children }) => <div>{children}</div>,
8
+ };
9
+ ```
10
+
11
+ ## Props
12
+
13
+ | Prop | Example | Type |
14
+ | ----------------------- | --------- | --------- |
15
+ | [`children`](#children) | `<div />` | ReactNode |
16
+
17
+ ### `children`
18
+
19
+ The default node for the preview.
@@ -0,0 +1,19 @@
1
+ # puck
2
+
3
+ Override the Puck children. This is the equivalent of passing in [`children`](/docs/api-reference/components/puck#children) to the [`<Puck>`](/docs/api-reference/components/puck) component.
4
+
5
+ ```tsx
6
+ const overrides = {
7
+ puck: ({ children }) => <div>{children}</div>,
8
+ };
9
+ ```
10
+
11
+ ## Props
12
+
13
+ | Prop | Example | Type |
14
+ | ----------------------- | --------- | --------- |
15
+ | [`children`](#children) | `<div />` | ReactNode |
16
+
17
+ ### `children`
18
+
19
+ The default node for the [`<Puck>`](/docs/api-reference/components/puck) children.
@@ -0,0 +1,28 @@
1
+ # Overrides
2
+
3
+ > **Note:** The overrides API is highly experimental and is likely to experience breaking
4
+ > changes.
5
+
6
+ An object describing render functions to override the default Puck interface.
7
+
8
+ ```tsx
9
+ const overrides = {
10
+ header: () => <header>My header</header>,
11
+ };
12
+ ```
13
+
14
+ ## Available overrides
15
+
16
+ - [`actionBar`](/docs/api-reference/overrides/action-bar): Override the action bar.
17
+ - [`componentOverlay`](/docs/api-reference/overrides/component-overlay): Override the overlay shown on hover or selection of a component.
18
+ - [`drawer`](/docs/api-reference/overrides/drawer): Override the component drawer.
19
+ - [`drawerItem`](/docs/api-reference/overrides/drawer-item): Override an item within the component drawer.
20
+ - [`fields`](/docs/api-reference/overrides/fields): Override the fields wrapper.
21
+ - [`fieldLabel`](/docs/api-reference/overrides/field-label): Override the [field labels](/docs/api-reference/configuration/field-label).
22
+ - [`fieldTypes`](/docs/api-reference/overrides/field-types): Override each [field type](/docs/api-reference/fields).
23
+ - [`header`](/docs/api-reference/overrides/header): Override the header.
24
+ - [`headerActions`](/docs/api-reference/overrides/header-actions): Override the header actions. Return a fragment so your items appear inline.
25
+ - [`iframe`](/docs/api-reference/overrides/iframe): Override the root of the iframe. Useful for injecting styles.
26
+ - [`outline`](/docs/api-reference/overrides/outline): Override the outline.
27
+ - [`preview`](/docs/api-reference/overrides/preview): Override the drag-and-drop preview.
28
+ - [`puck`](/docs/api-reference/overrides/puck): Override the Puck children. This is the equivalent of passing in [`children`](/docs/api-reference/components/puck#children) to the [`<Puck>`](/docs/api-reference/components/puck) component.
@@ -0,0 +1,55 @@
1
+ # Permissions
2
+
3
+ Permissions enable the [toggling of Puck features](/docs/integrating-puck/feature-toggling). There are three types of permissions:
4
+
5
+ 1. **Global permissions** are shared across the entire Puck application. Controlled via the `permissions` prop on the `<Puck>` component.
6
+ 2. **Component permissions** allow feature control across for all instances of a given component type. Controlled by the `permissions` component config API.
7
+ 3. **Dynamic permissions** enable control after each data change, and are ideal for per-instance component permissions. Controlled by the `resolvePermissions` component config API.
8
+
9
+ ## APIs
10
+
11
+ ### Setting permissions
12
+
13
+ 1. Global [`permissions` prop](/docs/api-reference/components/puck#permissions)
14
+ 2. Component [`permissions` parameter](/docs/api-reference/configuration/component-config#permissions)
15
+ 3. Component [`resolvePermissions` parameter](/docs/api-reference/configuration/component-config#resolvepermissionsdata-params)
16
+
17
+ ### Extending permissions
18
+
19
+ 1. `getPermissions`
20
+ 2. `refreshPermissions`
21
+
22
+ ## Supported permissions
23
+
24
+ | Param | Example | Type | Default | Status |
25
+ | ------------------------- | ----------------- | ------- | ----------- | ------ |
26
+ | [`delete`](#delete) | `delete: true` | Boolean | `true` | - |
27
+ | [`drag`](#drag) | `drag: true` | Boolean | `true` | - |
28
+ | [`duplicate`](#duplicate) | `duplicate: true` | Boolean | `true` | - |
29
+ | [`edit`](#edit) | `edit: true` | Boolean | `true` | - |
30
+ | [`insert`](#insert) | `insert: true` | Boolean | `true` | - |
31
+ | [`...custom`](#custom) | `myPerm: true` | Boolean | `undefined` | - |
32
+
33
+ ### `delete`
34
+
35
+ Enable deletion of components.
36
+
37
+ ### `drag`
38
+
39
+ Enable component dragging. Disabling this will lock the component in place, but other components can still be dragged around it.
40
+
41
+ ### `duplicate`
42
+
43
+ Enable duplication of components.
44
+
45
+ ### `edit`
46
+
47
+ Enable field editing. This is the same as setting `readOnly` to `true` for all fields.
48
+
49
+ ### `insert`
50
+
51
+ Enable insertion of new components. Disabling this will disable the component list items.
52
+
53
+ ### `...custom`
54
+
55
+ Custom permissions enable you to control your own functionality when [extending Puck](/docs/extending-puck/composition).
@@ -0,0 +1,112 @@
1
+ # Plugin
2
+
3
+ A plugin is an extension that enhances the capabilities of Puck.
4
+
5
+ ```tsx
6
+ import { Puck } from "@puckeditor/core";
7
+
8
+ const MyPlugin = {
9
+ name: "my-plugin", // Globally unique name
10
+ label: "My plugin", // Plugin rail label
11
+ icon: <svg />, // Icon for plugin rail
12
+ render: () => <div>My plugin</div>, // UI for plugin panel
13
+ };
14
+
15
+ export function Editor() {
16
+ return (
17
+ <Puck
18
+ // ...
19
+ plugins={[MyPlugin]}
20
+ />
21
+ );
22
+ }
23
+ ```
24
+
25
+ ## Params
26
+
27
+ | Prop | Example | Type | Status |
28
+ | ----------------------------------------- | ------------------------------------------ | ------------------------------------------------------- | ------ |
29
+ | [`icon`](#icon) | `icon: <Heading1 />` | ReactNode | - |
30
+ | [`label`](#label) | `label: "Audit"` | String | - |
31
+ | [`fieldTransforms`](#fieldtransforms) | `fieldTransforms: { text: () => <div /> }` | [FieldTransforms](/docs/api-reference/field-transforms) | - |
32
+ | [`mobilePanelHeight`](#mobilepanelheight) | `mobilePanelHeight: "min-content"` | `"toggle" \| "min-content"` | - |
33
+ | [`name`](#name) | `name: "audit"` | String | - |
34
+ | [`render`](#render) | `render: () => <div />` | `() => ReactElement` | - |
35
+ | [`overrides`](#overrides) | `overrides: { fields: () => <div /> }` | [Overrides](/docs/api-reference/overrides) | - |
36
+
37
+ ## Optional params
38
+
39
+ ### `icon`
40
+
41
+ React node displayed alongside `label` in the plugin rail.
42
+
43
+ ```tsx
44
+ const MyPlugin = {
45
+ icon: <MyIcon />,
46
+ };
47
+ ```
48
+
49
+ Puck uses [Lucide icons](https://lucide.dev/icons/). You can use [lucide-react](https://lucide.dev/guide/packages/lucide-react) to choose a similar icon, if desired.
50
+
51
+ ### `label`
52
+
53
+ Human-readable label shown in the plugin rail. Falls back to `name`.
54
+
55
+ ```tsx
56
+ const MyPlugin = {
57
+ label: "My plugin", // Human-readable label
58
+ };
59
+ ```
60
+
61
+ ### `fieldTransforms`
62
+
63
+ Transform the value of a field before rendering in the editor. Implements the [Field Transforms API](/docs/api-reference/field-transforms).
64
+
65
+ ```tsx
66
+ const MyPlugin = {
67
+ fieldTransforms: {
68
+ // Make all props powered by "text" field pink in the editor
69
+ text: ({ value }) => <span style={{ color: "hotpink" }}>{value}</span>,
70
+ },
71
+ };
72
+ ```
73
+
74
+ ### `mobilePanelHeight`
75
+
76
+ Controls how the plugin panel behaves on mobile screens.
77
+
78
+ - `"toggle"` (default): show a smaller plugin panel with a maximize button to expand it.
79
+ - `"min-content"`: size the panel to the height of its content.
80
+
81
+ ### `name`
82
+
83
+ A globally unique name for the plugin. When `render` is provided, `name` is required for the plugin to appear within the plugin rail. The currently open plugin is tracked in [`ui.plugin.current`](/docs/api-reference/data-model/app-state#uiplugincurrent).
84
+
85
+ ```tsx
86
+ const MyPlugin = {
87
+ name: "my-plugin", // Globally unique identifier
88
+ };
89
+ ```
90
+
91
+ ### `overrides`
92
+
93
+ Override the render functions for specific portions of the Puck UI. Implements the [`overrides` API](/docs/api-reference/overrides).
94
+
95
+ ```tsx
96
+ const MyPlugin = {
97
+ overrides: {
98
+ // Make all drawer items pink
99
+ drawerItem: ({ name }) => <div style={{ color: "hotpink" }}>{name}</div>,
100
+ },
101
+ };
102
+ ```
103
+
104
+ ### `render`
105
+
106
+ Render function for the plugin panel, shown when the plugin is selected in the plugin rail.
107
+
108
+ ```tsx
109
+ const MyPlugin = {
110
+ render: () => <div>My plugin</div>,
111
+ };
112
+ ```
@@ -0,0 +1,57 @@
1
+ # blocksPlugin
2
+
3
+ Show the component drawer for dragging new components onto the canvas.
4
+
5
+ ```tsx
6
+ import { Puck, blocksPlugin } from "@puckeditor/core";
7
+
8
+ const blocks = blocksPlugin();
9
+
10
+ export function Editor() {
11
+ return <Puck plugins={[blocks]} />;
12
+ }
13
+ ```
14
+
15
+ **This plugin is included by default.** Explicitly including it allows you to reorder plugins in the plugin rail.
16
+
17
+ ## Params
18
+
19
+ | Param | Example | Type | Status |
20
+ | ----------------- | ----------------- | --------- | ------ |
21
+ | [`icon`](#icon) | `icon: <Box />` | ReactNode | - |
22
+ | [`label`](#label) | `label: "Blocks"` | String | - |
23
+
24
+ ## Optional params
25
+
26
+ ### `icon`
27
+
28
+ React node displayed alongside `label` in the plugin rail. Defaults to a hammer icon.
29
+
30
+ ```tsx
31
+ import { Puck, blocksPlugin } from "@puckeditor/core";
32
+ import { Box } from "lucide-react";
33
+
34
+ const blocks = blocksPlugin({
35
+ icon: <Box />,
36
+ });
37
+
38
+ export function Editor() {
39
+ return <Puck plugins={[blocks]} />;
40
+ }
41
+ ```
42
+
43
+ ### `label`
44
+
45
+ Label shown in the plugin rail. Defaults to `"Blocks"`.
46
+
47
+ ```tsx
48
+ import { Puck, blocksPlugin } from "@puckeditor/core";
49
+
50
+ const blocks = blocksPlugin({
51
+ label: "Components",
52
+ });
53
+
54
+ export function Editor() {
55
+ return <Puck plugins={[blocks]} />;
56
+ }
57
+ ```
@@ -0,0 +1,68 @@
1
+ # fieldsPlugin
2
+
3
+ Show the fields for the currently selected component. On desktop, the fields will appear in the right-hand sidebar. On mobile, they will appear in the plugin rail.
4
+
5
+ ```tsx
6
+ import { Puck, fieldsPlugin } from "@puckeditor/core";
7
+
8
+ const fields = fieldsPlugin();
9
+
10
+ export function Editor() {
11
+ return <Puck plugins={[fields]} />;
12
+ }
13
+ ```
14
+
15
+ **This plugin is included by default.** Explicitly including it allows you to reorder plugins in the plugin rail, and configure behavior.
16
+
17
+ ## Params
18
+
19
+ | Param | Example | Type | Status |
20
+ | ----------------------------------- | ------------------------ | ----------------- | ------ |
21
+ | [`desktopSideBar`](#desktopsidebar) | `desktopSideBar: "left"` | "left" \| "right" | - |
22
+ | [`icon`](#icon) | `icon: <FormInput />` | ReactNode | - |
23
+ | [`label`](#label) | `label: "Fields"` | String | - |
24
+
25
+ ## Optional params
26
+
27
+ ### `desktopSideBar`
28
+
29
+ Display the plugin in the left or right sidebar on desktop. This field is `"right"` by default.
30
+
31
+ ```tsx
32
+ const fields = fieldsPlugin({
33
+ desktopSideBar: "left",
34
+ });
35
+ ```
36
+
37
+ ### `icon`
38
+
39
+ React node displayed alongside `label` in the plugin rail. Defaults to a form input icon.
40
+
41
+ ```tsx
42
+ import { Puck, fieldsPlugin } from "@puckeditor/core";
43
+ import { Form } from "lucide-react";
44
+
45
+ const fields = fieldsPlugin({
46
+ icon: <Form />,
47
+ });
48
+
49
+ export function Editor() {
50
+ return <Puck plugins={[fields]} />;
51
+ }
52
+ ```
53
+
54
+ ### `label`
55
+
56
+ Label shown in the plugin rail. Defaults to `"Fields"`.
57
+
58
+ ```tsx
59
+ import { Puck, fieldsPlugin } from "@puckeditor/core";
60
+
61
+ const fields = fieldsPlugin({
62
+ label: "Properties",
63
+ });
64
+
65
+ export function Editor() {
66
+ return <Puck plugins={[fields]} />;
67
+ }
68
+ ```
@@ -0,0 +1,54 @@
1
+ # legacySideBarPlugin
2
+
3
+ Hide the plugin rail and show a single sidebar with stacked "Components" and "Outline" sections. This will not affect mobile behavior.
4
+
5
+ ```tsx
6
+ import { Puck, legacySideBarPlugin } from "@puckeditor/core";
7
+
8
+ const legacySideBar = legacySideBarPlugin();
9
+
10
+ export function Editor() {
11
+ return <Puck plugins={[legacySideBar]} />;
12
+ }
13
+ ```
14
+
15
+ ## Params
16
+
17
+ | Param | Example | Type | Status |
18
+ | ------------------------------------- | ------------------------------- | ------ | ------ |
19
+ | [`componentsLabel`](#componentslabel) | `componentsLabel: "Components"` | String | - |
20
+ | [`outlineLabel`](#outlinelabel) | `outlineLabel: "Outline"` | String | - |
21
+
22
+ ## Optional params
23
+
24
+ ### `componentsLabel`
25
+
26
+ Title shown above the component drawer section. Defaults to `"Components"`.
27
+
28
+ ```tsx
29
+ import { Puck, legacySideBarPlugin } from "@puckeditor/core";
30
+
31
+ const legacySideBar = legacySideBarPlugin({
32
+ componentsLabel: "Components",
33
+ });
34
+
35
+ export function Editor() {
36
+ return <Puck plugins={[legacySideBar]} />;
37
+ }
38
+ ```
39
+
40
+ ### `outlineLabel`
41
+
42
+ Title shown above the outline section. Defaults to `"Outline"`.
43
+
44
+ ```tsx
45
+ import { Puck, legacySideBarPlugin } from "@puckeditor/core";
46
+
47
+ const legacySideBar = legacySideBarPlugin({
48
+ outlineLabel: "Layers",
49
+ });
50
+
51
+ export function Editor() {
52
+ return <Puck plugins={[legacySideBar]} />;
53
+ }
54
+ ```
@@ -0,0 +1,57 @@
1
+ # outlinePlugin
2
+
3
+ Show an outline of the components currently on the canvas.
4
+
5
+ ```tsx
6
+ import { Puck, outlinePlugin } from "@puckeditor/core";
7
+
8
+ const outline = outlinePlugin();
9
+
10
+ export function Editor() {
11
+ return <Puck plugins={[outline]} />;
12
+ }
13
+ ```
14
+
15
+ **This plugin is included by default.** Explicitly including it allows you to change the order in the plugin rail.
16
+
17
+ ## Params
18
+
19
+ | Param | Example | Type | Status |
20
+ | ----------------- | ------------------ | --------- | ------ |
21
+ | [`icon`](#icon) | `icon: <Layers />` | ReactNode | - |
22
+ | [`label`](#label) | `label: "Outline"` | String | - |
23
+
24
+ ## Optional params
25
+
26
+ ### `icon`
27
+
28
+ React node displayed alongside `label` in the plugin rail. Defaults to a layers icon.
29
+
30
+ ```tsx
31
+ import { Puck, outlinePlugin } from "@puckeditor/core";
32
+ import { ListTree } from "lucide-react";
33
+
34
+ const outline = outlinePlugin({
35
+ icon: <ListTree />,
36
+ });
37
+
38
+ export function Editor() {
39
+ return <Puck plugins={[outline]} />;
40
+ }
41
+ ```
42
+
43
+ ### `label`
44
+
45
+ Label shown in the plugin rail. Defaults to `"Outline"`.
46
+
47
+ ```tsx
48
+ import { Puck, outlinePlugin } from "@puckeditor/core";
49
+
50
+ const outline = outlinePlugin({
51
+ label: "Layers",
52
+ });
53
+
54
+ export function Editor() {
55
+ return <Puck plugins={[outline]} />;
56
+ }
57
+ ```