camox 0.43.0 → 0.45.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (412) hide show
  1. package/bin/camox.mjs +9 -1
  2. package/dist/components/AuthGate.js +0 -6
  3. package/dist/components/DeviceSelector.js +96 -0
  4. package/dist/components/PlatformLabel.js +20 -24
  5. package/dist/core/components/lexical/HighlightNode.js +1 -1
  6. package/dist/core/components/lexical/InlineContentEditable.js +15 -19
  7. package/dist/core/components/lexical/InlineLexicalEditor.js +54 -74
  8. package/dist/core/components/lexical/InlineStylesPlugin.js +57 -41
  9. package/dist/core/components/lexical/MaxLengthPlugin.js +59 -0
  10. package/dist/core/components/lexical/SelectionBroadcaster.js +55 -56
  11. package/dist/core/components/lexical/SidebarLexicalEditor.js +327 -234
  12. package/dist/core/components/lexical/SummaryToggleGuard.js +42 -0
  13. package/dist/core/components/lexical/TextLinkPopover.js +169 -180
  14. package/dist/core/createApp.d.ts +254 -299
  15. package/dist/core/createApp.js +123 -29
  16. package/dist/core/createBlock.d.ts +5 -5
  17. package/dist/core/createBlock.js +399 -152
  18. package/dist/core/createCollection.d.ts +55 -0
  19. package/dist/core/createCollection.js +93 -0
  20. package/dist/core/createLayout.d.ts +197 -61
  21. package/dist/core/createLayout.js +114 -56
  22. package/dist/core/defineDocument.d.ts +3 -5
  23. package/dist/core/derivedRoutes.js +49 -1
  24. package/dist/core/dom.d.ts +13 -4
  25. package/dist/core/dom.js +44 -1
  26. package/dist/core/editing/BlockEditingRuntime.d.ts +16 -0
  27. package/dist/core/editing/BlockEditingRuntime.js +6 -15
  28. package/dist/core/editing/CompleteBlockEditingRuntime.js +28 -23
  29. package/dist/core/editing/createEditableBlock.d.ts +820 -565
  30. package/dist/core/editing/createEditableBlock.js +2153 -971
  31. package/dist/core/editing/referenceWrites.js +51 -0
  32. package/dist/core/editing/useLatestRecord.js +90 -0
  33. package/dist/core/hooks/useArtifactHost.js +139 -0
  34. package/dist/core/hooks/useFieldSelection.js +43 -18
  35. package/dist/core/hooks/useIsEditable.js +12 -10
  36. package/dist/core/hooks/useOverlayMessage.js +15 -19
  37. package/dist/core/lib/artifact.d.ts +21 -0
  38. package/dist/core/lib/artifact.js +154 -0
  39. package/dist/core/lib/artifactColors.js +123 -0
  40. package/dist/core/lib/artifactData.d.ts +1 -0
  41. package/dist/core/lib/artifactData.js +131 -0
  42. package/dist/core/lib/artifactHost.js +205 -0
  43. package/dist/core/lib/artifactRuntime.js +36 -0
  44. package/dist/core/lib/artifactTheme.js +57 -0
  45. package/dist/core/lib/contentType.d.ts +304 -103
  46. package/dist/core/lib/contentType.js +207 -168
  47. package/dist/core/lib/fieldTypes.js +4 -0
  48. package/dist/core/lib/iconTypes.d.ts +13 -0
  49. package/dist/core/lib/icons.d.ts +6 -0
  50. package/dist/core/lib/icons.js +126 -0
  51. package/dist/core/lib/imagePlaceholder.js +177 -0
  52. package/dist/core/lib/imageTransform.js +1 -1
  53. package/dist/core/lib/lexicalReact.d.ts +3 -1
  54. package/dist/core/lib/lexicalState.js +7 -7
  55. package/dist/core/lib/modifierFormats.js +1 -1
  56. package/dist/core/lib/previewPaused.js +9 -0
  57. package/dist/core/lib/recordScope.js +316 -0
  58. package/dist/core/lib/reference.d.ts +81 -0
  59. package/dist/core/lib/reference.js +29 -0
  60. package/dist/core/lib/textLinks.js +7 -5
  61. package/dist/core/lib/textStyles.d.ts +6 -8
  62. package/dist/core/lib/textStyles.js +5 -5
  63. package/dist/core/notFound.d.ts +7 -0
  64. package/dist/core/notFound.js +11 -0
  65. package/dist/core/pageDestinations.js +6 -3
  66. package/dist/core/recordItem.js +34 -0
  67. package/dist/core/requestContext.d.ts +26 -0
  68. package/dist/core/requestContext.js +20 -0
  69. package/dist/features/canvas/CamoxCanvas.js +1734 -0
  70. package/dist/features/canvas/CanvasBlockFrame.js +353 -0
  71. package/dist/features/canvas/CanvasBlockHeader.js +55 -0
  72. package/dist/features/canvas/CanvasLoadingScreen.js +35 -0
  73. package/dist/features/canvas/CanvasOverlays.js +254 -0
  74. package/dist/features/canvas/CanvasPageEdge.js +87 -0
  75. package/dist/features/canvas/CanvasPageFrame.js +335 -0
  76. package/dist/features/canvas/CanvasPageHeader.js +125 -0
  77. package/dist/features/canvas/CanvasPreviewPageSlot.js +103 -0
  78. package/dist/features/canvas/CanvasShelfMarker.js +255 -0
  79. package/dist/features/canvas/DerivedPagePathInput.js +238 -0
  80. package/dist/features/canvas/canvasCamera.js +229 -0
  81. package/dist/features/canvas/canvasFlight.js +104 -0
  82. package/dist/features/canvas/canvasFrameCapture.js +364 -0
  83. package/dist/features/canvas/canvasFrameDocument.js +317 -0
  84. package/dist/features/canvas/canvasFrameMode.js +53 -0
  85. package/dist/features/canvas/canvasInsertionSeams.js +44 -0
  86. package/dist/features/canvas/canvasItems.js +120 -0
  87. package/dist/features/canvas/canvasOverlayGeometry.js +240 -0
  88. package/dist/features/canvas/canvasPages.js +79 -0
  89. package/dist/features/canvas/canvasScreenSpace.js +26 -0
  90. package/dist/features/canvas/canvasSelection.js +18 -0
  91. package/dist/features/canvas/canvasStore.js +149 -0
  92. package/dist/features/canvas/canvasThumbnails.js +304 -0
  93. package/dist/features/canvas/canvasZoom.js +10 -0
  94. package/dist/features/canvas/sidebar/CanvasInspector.js +202 -0
  95. package/dist/features/canvas/sidebar/CanvasNavigator.js +226 -0
  96. package/dist/features/canvas/sidebar/CanvasSidebar.js +60 -0
  97. package/dist/features/canvas/sidebar/CanvasSidebarFrame.js +48 -0
  98. package/dist/features/canvas/sidebar/CanvasSidebarSkeleton.js +39 -0
  99. package/dist/features/canvas/sidebar/CatalogBlockInspector.js +189 -0
  100. package/dist/features/canvas/sidebar/CuratedPageInspector.js +69 -0
  101. package/dist/features/canvas/sidebar/DerivedPageInspector.js +37 -0
  102. package/dist/features/canvas/sidebar/LayoutPageBlocks.js +78 -0
  103. package/dist/features/canvas/sidebar/LayoutPageOverview.js +71 -0
  104. package/dist/features/canvas/sidebar/PageInspector.js +157 -0
  105. package/dist/features/canvas/sidebar/PageInspectorSkeleton.js +90 -0
  106. package/dist/features/canvas/sidebar/PageOverview.js +27 -0
  107. package/dist/features/canvas/sidebar/SingletonPageInspector.js +31 -0
  108. package/dist/features/canvas/useCanvasCamera.js +803 -0
  109. package/dist/features/canvas/useCanvasFrame.js +149 -0
  110. package/dist/features/canvas/useCanvasFrameInput.js +97 -0
  111. package/dist/features/canvas/useCanvasNearness.js +57 -0
  112. package/dist/features/canvas/useDiscoveredPreviewPaths.js +62 -0
  113. package/dist/features/content/CamoxContent.d.ts +2 -5
  114. package/dist/features/content/CamoxContent.js +174 -271
  115. package/dist/features/content/CollectionItemSheetContext.js +106 -0
  116. package/dist/features/content/ContentAssets.js +315 -0
  117. package/dist/features/content/ContentCollection.js +663 -0
  118. package/dist/features/content/collection-form.js +58 -0
  119. package/dist/features/content/components/AssetCard.js +101 -69
  120. package/dist/features/content/components/AssetCardSkeleton.js +4 -8
  121. package/dist/features/content/components/ContentSidebar.js +129 -18
  122. package/dist/features/content/components/ContentSidebarGroup.js +37 -0
  123. package/dist/features/content/components/DeleteCollectionItemButton.js +202 -0
  124. package/dist/features/content/components/MissingFromLocale.js +282 -0
  125. package/dist/features/content/components/UploadDropZone.js +27 -31
  126. package/dist/features/content/components/UploadProgressDrawer.js +90 -98
  127. package/dist/features/navigation/navigation.d.ts +66 -20
  128. package/dist/features/navigation/navigation.js +257 -90
  129. package/dist/features/og/defaultFonts.js +8 -8
  130. package/dist/features/og/geist-variable-ttf-base64.js +1 -1
  131. package/dist/features/og/imageResponse.d.ts +8 -0
  132. package/dist/features/og/imageResponse.js +26 -0
  133. package/dist/features/page/CuratedPageContent.js +167 -0
  134. package/dist/features/page/DerivedPageContent.js +26 -30
  135. package/dist/features/page/SharedLayoutContent.js +25 -27
  136. package/dist/features/preview/CamoxPreview.d.ts +23 -61
  137. package/dist/features/preview/CamoxPreview.js +811 -507
  138. package/dist/features/preview/EditablePageContent.js +1 -1
  139. package/dist/features/preview/EditablePageExperience.js +16 -22
  140. package/dist/features/preview/components/AddBlockDialog.js +270 -0
  141. package/dist/features/preview/components/AssetFieldEditor.js +173 -154
  142. package/dist/features/preview/components/AssetLightbox.js +194 -136
  143. package/dist/features/preview/components/AssetPickerModal.js +153 -170
  144. package/dist/features/preview/components/BlockActionsPopover.js +150 -149
  145. package/dist/features/preview/components/BlockErrorBoundary.js +8 -12
  146. package/dist/features/preview/components/BlockThumbnail.js +176 -100
  147. package/dist/features/preview/components/CanvasPreview.js +243 -0
  148. package/dist/features/preview/components/CreatePageModal.js +128 -137
  149. package/dist/features/preview/components/DebouncedFieldEditor.js +29 -33
  150. package/dist/features/preview/components/DerivedLayoutDialog.js +46 -29
  151. package/dist/features/preview/components/DrillRow.js +150 -0
  152. package/dist/features/preview/components/FieldOverlayStyles.js +33 -10
  153. package/dist/features/preview/components/FieldToolbar.js +166 -116
  154. package/dist/features/preview/components/Frame.js +108 -20
  155. package/dist/features/preview/components/IconFieldEditor.js +227 -0
  156. package/dist/features/preview/components/ItemFieldsEditor.js +238 -205
  157. package/dist/features/preview/components/LinkFieldEditor.js +135 -139
  158. package/dist/features/preview/components/Metadata.js +22 -30
  159. package/dist/features/preview/components/MobilePreviewDrawer.js +89 -108
  160. package/dist/features/preview/components/MultipleAssetFieldEditor.js +334 -246
  161. package/dist/features/preview/components/OverlayTracker.js +10 -42
  162. package/dist/features/preview/components/Overlays.js +81 -69
  163. package/dist/features/preview/components/PageInfo.js +1748 -0
  164. package/dist/features/preview/components/PageInfoSkeleton.js +51 -0
  165. package/dist/features/preview/components/PageLocationFieldset.js +112 -116
  166. package/dist/features/preview/components/PageNavigatorHeader.js +24 -0
  167. package/dist/features/preview/components/PageNicknameField.js +22 -26
  168. package/dist/features/preview/components/PagePicker.js +145 -147
  169. package/dist/features/preview/components/PageTree.js +525 -532
  170. package/dist/features/preview/components/PreviewActivation.js +28 -32
  171. package/dist/features/preview/components/PreviewPanel.js +620 -319
  172. package/dist/features/preview/components/PreviewToolbar.js +111 -340
  173. package/dist/features/preview/components/RecordCard.js +80 -0
  174. package/dist/features/preview/components/RecordCombobox.js +178 -0
  175. package/dist/features/preview/components/ReferenceFieldEditor.js +149 -0
  176. package/dist/features/preview/components/ReferenceListFieldEditor.js +432 -0
  177. package/dist/features/preview/components/RemovedBlockPlaceholder.js +95 -0
  178. package/dist/features/preview/components/RepeatableItemsList.js +125 -138
  179. package/dist/features/preview/components/SelectionEditor.js +993 -0
  180. package/dist/features/preview/components/ShikiMarkdown.js +14 -18
  181. package/dist/features/preview/components/SidebarSection.js +52 -64
  182. package/dist/features/preview/components/StudioEditingFallback.js +56 -0
  183. package/dist/features/preview/components/UnlinkAssetButton.js +104 -107
  184. package/dist/features/preview/components/blockGridNavigation.js +15 -0
  185. package/dist/features/preview/components/contentFieldSchema.js +8 -0
  186. package/dist/features/preview/components/useFieldWriter.js +200 -0
  187. package/dist/features/preview/components/useRecordView.js +383 -0
  188. package/dist/features/preview/components/useRepeatableItemActions.js +35 -37
  189. package/dist/features/preview/components/useUpdateBlockPosition.js +37 -37
  190. package/dist/features/preview/editingFrame.js +197 -0
  191. package/dist/features/preview/overlayHighlights.js +27 -0
  192. package/dist/features/preview/overlayMessages.js +72 -1
  193. package/dist/features/preview/pageRecord.js +189 -0
  194. package/dist/features/preview/previewConstants.js +6 -2
  195. package/dist/features/preview/previewPageFrame.js +95 -0
  196. package/dist/features/preview/previewPreparation.js +7 -0
  197. package/dist/features/preview/previewSelection.js +33 -59
  198. package/dist/features/preview/previewStore.js +225 -123
  199. package/dist/features/preview/referencePickerFocus.js +29 -0
  200. package/dist/features/preview/repeatableItemTargets.js +56 -0
  201. package/dist/features/preview/selectionReveal.js +21 -0
  202. package/dist/features/preview/usePreviewViewportActions.js +114 -0
  203. package/dist/features/preview/viewportContinuity.js +109 -0
  204. package/dist/features/provider/AuthenticatedCamoxProvider.js +69 -44
  205. package/dist/features/provider/CamoxProvider.d.ts +3 -6
  206. package/dist/features/provider/CamoxProvider.js +38 -50
  207. package/dist/features/provider/CoreCamoxProvider.js +71 -23
  208. package/dist/features/provider/LocalhostPreviewProvider.js +73 -73
  209. package/dist/features/provider/PreviewSignInPage.js +54 -0
  210. package/dist/features/provider/components/CamoxAppContext.js +11 -11
  211. package/dist/features/provider/components/CommandPalette.js +87 -143
  212. package/dist/features/provider/useAdminShortcuts.js +7 -11
  213. package/dist/features/routes/pageRuntime.d.ts +44 -4
  214. package/dist/features/routes/pageRuntime.js +244 -137
  215. package/dist/features/runtime/RuntimeChrome.js +117 -115
  216. package/dist/features/runtime/alternates.js +64 -0
  217. package/dist/features/runtime/analytics.d.ts +7 -0
  218. package/dist/features/runtime/analytics.js +66 -0
  219. package/dist/features/runtime/artifactSources.js +87 -0
  220. package/dist/features/runtime/editingFallback.js +20 -0
  221. package/dist/features/runtime/linkPrefetch.js +97 -0
  222. package/dist/features/runtime/livePages.js +62 -0
  223. package/dist/features/runtime/llmsTxt.js +40 -0
  224. package/dist/features/runtime/loopbackFetch.js +18 -0
  225. package/dist/features/runtime/navigationAccessibility.js +51 -0
  226. package/dist/features/runtime/navigationTarget.js +23 -2
  227. package/dist/features/runtime/pageApp.js +216 -141
  228. package/dist/features/runtime/pageBlockTypes.js +20 -0
  229. package/dist/features/runtime/pageClient.d.ts +2 -4
  230. package/dist/features/runtime/pageClient.js +18 -3
  231. package/dist/features/runtime/pageNavigation.js +254 -32
  232. package/dist/features/runtime/pageServer.d.ts +2 -4
  233. package/dist/features/runtime/pageServer.js +8 -1
  234. package/dist/features/runtime/pageViewport.js +7 -0
  235. package/dist/features/runtime/runtime.d.ts +60 -23
  236. package/dist/features/runtime/runtime.js +779 -166
  237. package/dist/features/runtime/runtimeChromeLoader.js +58 -0
  238. package/dist/features/runtime/runtimeRoutes.d.ts +19 -0
  239. package/dist/features/runtime/runtimeRoutes.js +25 -0
  240. package/dist/features/runtime/scrollRestoration.js +133 -0
  241. package/dist/features/runtime/studioApp.d.ts +4 -3
  242. package/dist/features/runtime/studioApp.js +5 -9
  243. package/dist/features/runtime/studioClient.d.ts +2 -4
  244. package/dist/features/runtime/studioClient.js +12 -3
  245. package/dist/features/runtime/studioServer.d.ts +2 -4
  246. package/dist/features/runtime/studioServer.js +6 -1
  247. package/dist/features/runtime/worker.d.ts +6 -0
  248. package/dist/features/runtime/worker.js +23 -0
  249. package/dist/features/runtime/workerRequest.js +44 -0
  250. package/dist/features/studio/CamoxStudio.d.ts +2 -6
  251. package/dist/features/studio/CamoxStudio.js +34 -49
  252. package/dist/features/studio/FollowAgentProvider.js +338 -0
  253. package/dist/features/studio/components/ChatSidebar.js +356 -0
  254. package/dist/features/studio/components/DraftsControl.js +676 -0
  255. package/dist/features/studio/components/FaviconDialog.js +318 -0
  256. package/dist/features/studio/components/LocalePicker.js +785 -0
  257. package/dist/features/studio/components/Navbar.js +123 -103
  258. package/dist/features/studio/components/ProjectMenu.js +239 -260
  259. package/dist/features/studio/components/RenameDraftDialog.js +206 -0
  260. package/dist/features/studio/components/ReviewDraftSheet.js +1472 -0
  261. package/dist/features/studio/components/ThreadComposer.js +157 -0
  262. package/dist/features/studio/components/ThreadMarkdown.js +113 -0
  263. package/dist/features/studio/components/ThreadMessages.js +270 -0
  264. package/dist/features/studio/components/UserButton.js +34 -23
  265. package/dist/features/studio/draftLabel.js +33 -0
  266. package/dist/features/studio/draftNotice.js +13 -0
  267. package/dist/features/studio/followAgent.js +250 -0
  268. package/dist/features/studio/followAgentContext.js +7 -0
  269. package/dist/features/studio/localeOptions.js +118 -0
  270. package/dist/features/studio/localeSwitch.js +19 -0
  271. package/dist/features/studio/routes.js +48 -1
  272. package/dist/features/studio/studioStore.js +64 -1
  273. package/dist/features/studio/useTheme.js +24 -27
  274. package/dist/features/vite/artifactRuntimeMinification.js +36 -0
  275. package/dist/features/vite/auth.js +1 -50
  276. package/dist/features/vite/blockBoilerplate.js +6 -5
  277. package/dist/features/vite/blockChunks.js +31 -0
  278. package/dist/features/vite/bundlerLogs.js +17 -0
  279. package/dist/features/vite/definitionsSync.js +158 -226
  280. package/dist/features/vite/devAuthentication.js +4 -16
  281. package/dist/features/vite/devSignIn.js +87 -0
  282. package/dist/features/vite/iconGeneration.js +16 -0
  283. package/dist/features/vite/layoutGeneration.js +11 -1
  284. package/dist/features/vite/publishSeededContent.js +30 -0
  285. package/dist/features/vite/routeGeneration.js +6 -7
  286. package/dist/features/vite/runtimeDev.js +80 -99
  287. package/dist/features/vite/vite.d.ts +53 -31
  288. package/dist/features/vite/vite.js +230 -116
  289. package/dist/features/vite/workerBuild.js +39 -0
  290. package/dist/hooks/use-debounced-field.js +116 -47
  291. package/dist/hooks/use-file-upload.js +114 -67
  292. package/dist/hooks/use-marquee-selection.js +32 -36
  293. package/dist/hooks/use-page-destinations.js +69 -37
  294. package/dist/lib/api-client-server.d.ts +5 -0
  295. package/dist/lib/api-client-server.js +10 -4
  296. package/dist/lib/api-client.d.ts +6 -0
  297. package/dist/lib/api-client.js +51 -16
  298. package/dist/lib/api-socket.js +17 -0
  299. package/dist/lib/auth-page-styles.js +39 -0
  300. package/dist/lib/auth.js +139 -60
  301. package/dist/lib/collection-cache.js +23 -0
  302. package/dist/lib/draft-scope.d.ts +4 -0
  303. package/dist/lib/draft-scope.js +222 -0
  304. package/dist/lib/html.js +12 -0
  305. package/dist/lib/link-pages.js +154 -0
  306. package/dist/lib/locale-path.d.ts +22 -0
  307. package/dist/lib/locale-path.js +57 -0
  308. package/dist/lib/normalized-data.js +252 -152
  309. package/dist/lib/preview-handoff.js +13 -0
  310. package/dist/lib/queries.d.ts +11 -0
  311. package/dist/lib/queries.js +71 -131
  312. package/dist/lib/studio-reads.d.ts +14 -0
  313. package/dist/lib/studio-reads.js +574 -0
  314. package/dist/lib/use-project-room.js +50 -47
  315. package/dist/lib/use-thread.js +310 -0
  316. package/dist/lib/utils.js +25 -29
  317. package/dist/lib/view-locale-context.js +22 -0
  318. package/dist/lib/view-locale.js +46 -0
  319. package/dist/package.js +5 -0
  320. package/dist/studio-overlays.css +41 -147
  321. package/dist/studio.css +2 -2
  322. package/package.json +70 -72
  323. package/skills/camox/SKILL.md +16 -5
  324. package/skills/camox/references/artifacts.md +179 -0
  325. package/skills/camox/references/block-definitions.md +98 -55
  326. package/skills/camox/references/cli-common.md +18 -6
  327. package/skills/camox/references/cli-content.md +92 -58
  328. package/skills/camox/references/cli-publishing.md +26 -0
  329. package/skills/camox/references/dom-integrations.md +27 -0
  330. package/skills/camox/references/field-styling.md +7 -7
  331. package/skills/camox/references/layout-definitions.md +16 -14
  332. package/skills/camox/references/localization.md +56 -0
  333. package/skills/camox/references/routed-layouts.md +133 -15
  334. package/skills/camox-expand/SKILL.md +69 -0
  335. package/skills/camox-expand/references/jobs.md +39 -0
  336. package/skills/camoxify/SKILL.md +38 -2
  337. package/dist/core/components/AddBlockControlBar.js +0 -78
  338. package/dist/core/hooks/useRequireDraftSource.js +0 -23
  339. package/dist/features/metadata/sitemap.d.ts +0 -8
  340. package/dist/features/metadata/sitemap.js +0 -17
  341. package/dist/features/og/imageResponse.node.d.ts +0 -12
  342. package/dist/features/og/imageResponse.node.js +0 -49
  343. package/dist/features/og/imageResponse.workerd.d.ts +0 -12
  344. package/dist/features/og/imageResponse.workerd.js +0 -40
  345. package/dist/features/page/PublishedPageContent.js +0 -205
  346. package/dist/features/page/PublishedPageExperience.js +0 -23
  347. package/dist/features/preview/DerivedPreview.js +0 -134
  348. package/dist/features/preview/commentsEnabled.js +0 -8
  349. package/dist/features/preview/components/AddBlockSidebar.js +0 -381
  350. package/dist/features/preview/components/AttachedComments.js +0 -194
  351. package/dist/features/preview/components/CommentHeader.js +0 -122
  352. package/dist/features/preview/components/CommentSidebar.js +0 -29
  353. package/dist/features/preview/components/CommentTargetQuote.js +0 -166
  354. package/dist/features/preview/components/DerivedLayoutSidebar.d.ts +0 -5
  355. package/dist/features/preview/components/DerivedLayoutSidebar.js +0 -179
  356. package/dist/features/preview/components/DerivedPageInfoSidebar.js +0 -69
  357. package/dist/features/preview/components/LeftSidebar.js +0 -68
  358. package/dist/features/preview/components/PageEditorSidebar.js +0 -563
  359. package/dist/features/preview/components/PageInfoSidebar.js +0 -1551
  360. package/dist/features/preview/components/PageNavigatorSidebar.js +0 -78
  361. package/dist/features/preview/components/PageStatusBadge.js +0 -97
  362. package/dist/features/preview/components/PeekedBlock.js +0 -217
  363. package/dist/features/preview/components/PreviewComments.js +0 -56
  364. package/dist/features/preview/components/PreviewToolbarSpacer.js +0 -43
  365. package/dist/features/preview/components/PublicationRow.js +0 -422
  366. package/dist/features/preview/components/PublishDialog.js +0 -194
  367. package/dist/features/preview/components/RightSidebar.js +0 -59
  368. package/dist/features/preview/previewCommentsStore.js +0 -115
  369. package/dist/features/preview/publication.js +0 -81
  370. package/dist/features/runtime/SharedChromeContext.js +0 -7
  371. package/dist/features/studio/components/EnvironmentMenu.js +0 -413
  372. package/dist/features/vite/appGeneration.js +0 -89
  373. package/dist/lib/view-queries.js +0 -28
  374. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/Matches.d.ts +0 -114
  375. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/RouterProvider.d.ts +0 -25
  376. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/config.d.ts +0 -1
  377. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/defer.d.ts +0 -1
  378. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/fileRoute.d.ts +0 -20
  379. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/global.d.ts +0 -8
  380. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/hash-scroll.d.ts +0 -1
  381. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/index.d.ts +0 -18
  382. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/link.d.ts +0 -161
  383. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/load-matches.d.ts +0 -6
  384. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/location.d.ts +0 -54
  385. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/lru-cache.d.ts +0 -8
  386. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/manifest.d.ts +0 -32
  387. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/new-process-route-tree.d.ts +0 -115
  388. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/not-found.d.ts +0 -1
  389. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/redirect.d.ts +0 -49
  390. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/rewrite.d.ts +0 -1
  391. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/root.d.ts +0 -6
  392. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/route.d.ts +0 -343
  393. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/routeInfo.d.ts +0 -48
  394. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/router.d.ts +0 -695
  395. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/scroll-restoration.d.ts +0 -1
  396. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/searchMiddleware.d.ts +0 -1
  397. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/searchParams.d.ts +0 -5
  398. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/ssr/serializer/RawStream.d.ts +0 -38
  399. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/ssr/serializer/seroval-plugins.d.ts +0 -1
  400. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/ssr/serializer/transformer.d.ts +0 -65
  401. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/stores.d.ts +0 -69
  402. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/structuralSharing.d.ts +0 -1
  403. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/typePrimitives.d.ts +0 -1
  404. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/useLoaderData.d.ts +0 -1
  405. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/useLoaderDeps.d.ts +0 -1
  406. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/useNavigate.d.ts +0 -10
  407. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/useParams.d.ts +0 -1
  408. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/useRouteContext.d.ts +0 -1
  409. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/useSearch.d.ts +0 -1
  410. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/utils.d.ts +0 -28
  411. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/validators.d.ts +0 -49
  412. package/skills/camox/references/cli-environments.md +0 -37
@@ -1,40 +1,50 @@
1
- import { EmbedURL, FileValue, ImageValue, LinkValue } from "./lib/contentType.js";
1
+ import { IconProps } from "./lib/icons.js";
2
+ import { CamoxDocument } from "./defineDocument.js";
3
+ import { ArtifactRenderProps } from "./lib/artifact.js";
2
4
  import { InlineTextStyles } from "./lib/textStyles.js";
5
+ import { ReferenceContent, ReferenceScope } from "./lib/reference.js";
6
+ import { Layout, RecordPages } from "./createLayout.js";
7
+ import { Collection } from "./createCollection.js";
8
+ import { IconValue } from "./lib/iconTypes.js";
9
+ import { ArtifactSource, EmbedURL, FileValue, ImageValue, LinkValue } from "./lib/contentType.js";
10
+ import { LayoutItemProps } from "./editing/BlockEditingRuntime.js";
3
11
  import { BlockComponentProps, PeekItem, RepeatableItemSeed } from "./editing/createEditableBlock.js";
4
12
  import { Block } from "./createBlock.js";
5
- import { Layout, LayoutBlockData, OgImageParams } from "./createLayout.js";
6
- import * as _$_sinclair_typebox0 from "@sinclair/typebox";
7
- import * as _$react from "react";
8
- import * as _$react_jsx_runtime0 from "react/jsx-runtime";
9
-
10
13
  //#region src/core/createApp.d.ts
11
14
  interface CreateAppOptions {
12
15
  blocks: Block[];
16
+ /**
17
+ * Blocks loaded on demand, keyed by their file name, which is their id by convention. A
18
+ * block id without a matching key is found by loading every block.
19
+ */
20
+ lazyBlocks?: Record<string, () => Promise<Block | undefined>>;
13
21
  layouts?: Layout[];
22
+ collections?: Collection[];
23
+ /** The project's document definition (`src/document.ts`). */
24
+ document?: CamoxDocument;
14
25
  }
15
- declare function createApp({
16
- blocks,
17
- layouts
18
- }: CreateAppOptions): {
26
+ export declare function createApp({ blocks, lazyBlocks, layouts, collections, document }: CreateAppOptions): {
27
+ /** The document's font links as HTML, for artifacts to load before their source. */
28
+ getArtifactFontLinks(): string;
29
+ getCollections(): Collection[];
30
+ getCollectionById(id: string): Collection | undefined;
31
+ /** The loaded blocks: every block after `loadAllBlocks`. */
19
32
  getBlocks(): {
20
- Detached: ({
21
- children
22
- }: {
33
+ Detached: ({ children }: {
23
34
  children: (props: {
24
- "data-camox-comment-block-id"?: number;
25
- ref: (element: HTMLElement | null) => void;
26
- style: React.CSSProperties;
35
+ "data-camox-block-id"?: string;
36
+ "data-camox-hovered"?: boolean;
37
+ "data-camox-focused"?: boolean;
38
+ "data-camox-overlay-mode"?: "synced";
27
39
  onClickCapture: (e: React.MouseEvent) => void;
28
40
  onMouseEnter: () => void;
29
41
  onMouseLeave: () => void;
30
42
  }) => React.ReactNode;
31
43
  }) => React.JSX.Element;
32
- Field: <K extends never>({
33
- name,
34
- textStyle,
35
- linkStyle,
36
- children
37
- }: InlineTextStyles & {
44
+ Icon: ({ name, ...props }: IconProps & {
45
+ name: never;
46
+ }) => import("react").JSX.Element;
47
+ Field: <K extends never>({ name, textStyle, linkStyle, children }: InlineTextStyles & {
38
48
  name: K;
39
49
  children: (props: {
40
50
  children: React.ReactNode;
@@ -51,10 +61,7 @@ declare function createApp({
51
61
  text: string;
52
62
  }) => React.ReactNode;
53
63
  }) => React.ReactNode;
54
- Embed: <K extends never>({
55
- name,
56
- children
57
- }: {
64
+ Embed: <K extends never>({ name, children }: {
58
65
  name: K;
59
66
  children: (props: {
60
67
  src: string;
@@ -62,10 +69,11 @@ declare function createApp({
62
69
  url: string;
63
70
  }) => React.ReactNode;
64
71
  }) => React.ReactNode;
65
- Link: <K extends never>({
66
- name,
67
- children
68
- }: {
72
+ Artifact: <K extends never>({ name, children }: {
73
+ name: K;
74
+ children: (props: ArtifactRenderProps) => React.ReactNode;
75
+ }) => React.ReactNode;
76
+ Link: <K extends never>({ name, children }: {
69
77
  name: K;
70
78
  children: (props: {
71
79
  to: string;
@@ -95,10 +103,7 @@ declare function createApp({
95
103
  newTab: boolean;
96
104
  }) => React.ReactNode;
97
105
  }) => React.ReactNode;
98
- Image: <K extends never>({
99
- name,
100
- children
101
- }: {
106
+ Image: <K extends never>({ name, children }: {
102
107
  name: K;
103
108
  children: (props: {
104
109
  src: string;
@@ -107,14 +112,13 @@ declare function createApp({
107
112
  sizes?: string;
108
113
  }, data: ImageValue) => React.ReactNode;
109
114
  }) => React.ReactNode;
110
- File: <K extends never>({
111
- name,
112
- children
113
- }: {
115
+ File: <K extends never>({ name, children }: {
114
116
  name: K;
115
117
  children: (props: {
116
118
  href: string;
117
119
  download: string;
120
+ } & Partial<Pick<import("react").AnchorHTMLAttributes<HTMLAnchorElement>, "onClick" | "onClickCapture" | "onMouseEnter" | "onMouseLeave">> & {
121
+ [attribute: `data-camox-${string}`]: string | boolean | undefined;
118
122
  }, data: FileValue) => React.ReactNode;
119
123
  }) => React.ReactNode;
120
124
  ImageList: <K extends never>(props: {
@@ -131,15 +135,14 @@ declare function createApp({
131
135
  children: (props: {
132
136
  href: string;
133
137
  download: string;
138
+ } & Partial<Pick<import("react").AnchorHTMLAttributes<HTMLAnchorElement>, "onClick" | "onClickCapture" | "onMouseEnter" | "onMouseLeave">> & {
139
+ [attribute: `data-camox-${string}`]: string | boolean | undefined;
134
140
  }, data: FileValue) => React.ReactNode;
135
141
  }) => React.ReactNode;
136
- Repeater: <K extends never>({
137
- name,
138
- children
139
- }: {
142
+ Repeater: <K extends never>({ name, children }: {
140
143
  name: K;
141
144
  children: (item: {
142
- Field: <F extends keyof { [F_1 in keyof ({}[K] extends (infer U)[] ? U : never) as ({}[K] extends (infer U)[] ? U : never)[F_1] extends string ? F_1 : never]: ({}[K] extends (infer U)[] ? U : never)[F_1] }>(props: InlineTextStyles & {
145
+ Field: <F extends keyof { [F_1 in keyof ({}[K] extends (infer U)[] ? U : never) as ({}[K] extends (infer U)[] ? U : never)[F_1] extends IconValue | ArtifactSource ? never : ({}[K] extends (infer U)[] ? U : never)[F_1] extends string ? F_1 : never]: ({}[K] extends (infer U)[] ? U : never)[F_1]; }>(props: InlineTextStyles & {
143
146
  name: F;
144
147
  children: (props: {
145
148
  children: React.ReactNode;
@@ -156,7 +159,7 @@ declare function createApp({
156
159
  text: string;
157
160
  }) => React.ReactNode;
158
161
  }) => React.ReactNode;
159
- Link: <F extends keyof { [F_1 in keyof ({}[K] extends (infer U)[] ? U : never) as ({}[K] extends (infer U)[] ? U : never)[F_1] extends LinkValue ? F_1 : never]: ({}[K] extends (infer U)[] ? U : never)[F_1] }>(props: {
162
+ Link: <F extends keyof { [F_1 in keyof ({}[K] extends (infer U)[] ? U : never) as ({}[K] extends (infer U)[] ? U : never)[F_1] extends LinkValue ? F_1 : never]: ({}[K] extends (infer U)[] ? U : never)[F_1]; }>(props: {
160
163
  name: F;
161
164
  children: (props: {
162
165
  to: string;
@@ -186,7 +189,10 @@ declare function createApp({
186
189
  newTab: boolean;
187
190
  }) => React.ReactNode;
188
191
  }) => React.ReactNode;
189
- Embed: <F extends keyof { [F_1 in keyof ({}[K] extends (infer U)[] ? U : never) as ({}[K] extends (infer U)[] ? U : never)[F_1] extends EmbedURL ? F_1 : never]: ({}[K] extends (infer U)[] ? U : never)[F_1] }>(props: {
192
+ Icon: (props: IconProps & {
193
+ name: keyof { [F in keyof ({}[K] extends (infer U)[] ? U : never) as ({}[K] extends (infer U)[] ? U : never)[F] extends IconValue ? F : never]: ({}[K] extends (infer U)[] ? U : never)[F]; };
194
+ }) => React.ReactNode;
195
+ Embed: <F extends keyof { [F_1 in keyof ({}[K] extends (infer U)[] ? U : never) as ({}[K] extends (infer U)[] ? U : never)[F_1] extends EmbedURL ? F_1 : never]: ({}[K] extends (infer U)[] ? U : never)[F_1]; }>(props: {
190
196
  name: F;
191
197
  children: (props: {
192
198
  src: string;
@@ -194,6 +200,10 @@ declare function createApp({
194
200
  url: string;
195
201
  }) => React.ReactNode;
196
202
  }) => React.ReactNode;
203
+ Artifact: <F extends keyof { [F_1 in keyof ({}[K] extends (infer U)[] ? U : never) as ({}[K] extends (infer U)[] ? U : never)[F_1] extends ArtifactSource ? F_1 : never]: ({}[K] extends (infer U)[] ? U : never)[F_1]; }>(props: {
204
+ name: F;
205
+ children: (props: ArtifactRenderProps) => React.ReactNode;
206
+ }) => React.ReactNode;
197
207
  Image: <F extends keyof { [F_1 in keyof ({}[K] extends (infer U)[] ? U : never) as ImageValue extends ({}[K] extends (infer U)[] ? U : never)[F_1] ? ({}[K] extends (infer U)[] ? U : never)[F_1] extends ({}[K] extends (infer U)[] ? U : never)[F_1] & {
198
208
  url: string;
199
209
  alt: string;
@@ -203,7 +213,7 @@ declare function createApp({
203
213
  _fileId?: string;
204
214
  } & {
205
215
  readonly __brand: "ImageValue";
206
- } ? F_1 : never : never]: ({}[K] extends (infer U)[] ? U : never)[F_1] }>(props: {
216
+ } ? F_1 : never : never]: ({}[K] extends (infer U)[] ? U : never)[F_1]; }>(props: {
207
217
  name: F;
208
218
  children: (props: {
209
219
  src: string;
@@ -221,11 +231,13 @@ declare function createApp({
221
231
  _fileId?: string;
222
232
  } & {
223
233
  readonly __brand: "FileValue";
224
- } ? F_1 : never : never]: ({}[K] extends (infer U)[] ? U : never)[F_1] }>(props: {
234
+ } ? F_1 : never : never]: ({}[K] extends (infer U)[] ? U : never)[F_1]; }>(props: {
225
235
  name: F;
226
236
  children: (props: {
227
237
  href: string;
228
238
  download: string;
239
+ } & Partial<Pick<import("react").AnchorHTMLAttributes<HTMLAnchorElement>, "onClick" | "onClickCapture" | "onMouseEnter" | "onMouseLeave">> & {
240
+ [attribute: `data-camox-${string}`]: string | boolean | undefined;
229
241
  }, data: FileValue) => React.ReactNode;
230
242
  }) => React.ReactNode;
231
243
  ImageList: <F extends keyof { [F_1 in keyof ({}[K] extends (infer U)[] ? U : never) as ({}[K] extends (infer U)[] ? U : never)[F_1] extends (infer U_1)[] ? ImageValue extends U_1 ? U_1 extends U_1 & {
@@ -237,7 +249,7 @@ declare function createApp({
237
249
  _fileId?: string;
238
250
  } & {
239
251
  readonly __brand: "ImageValue";
240
- } ? F_1 : never : never : never]: ({}[K] extends (infer U)[] ? U : never)[F_1] }>(props: {
252
+ } ? F_1 : never : never : never]: ({}[K] extends (infer U)[] ? U : never)[F_1]; }>(props: {
241
253
  name: F;
242
254
  children: (props: {
243
255
  src: string;
@@ -255,14 +267,24 @@ declare function createApp({
255
267
  _fileId?: string;
256
268
  } & {
257
269
  readonly __brand: "FileValue";
258
- } ? F_1 : never : never : never]: ({}[K] extends (infer U)[] ? U : never)[F_1] }>(props: {
270
+ } ? F_1 : never : never : never]: ({}[K] extends (infer U)[] ? U : never)[F_1]; }>(props: {
259
271
  name: F;
260
272
  children: (props: {
261
273
  href: string;
262
274
  download: string;
275
+ } & Partial<Pick<import("react").AnchorHTMLAttributes<HTMLAnchorElement>, "onClick" | "onClickCapture" | "onMouseEnter" | "onMouseLeave">> & {
276
+ [attribute: `data-camox-${string}`]: string | boolean | undefined;
263
277
  }, data: FileValue) => React.ReactNode;
264
278
  }) => React.ReactNode;
265
- Repeater: <F extends keyof { [F_1 in keyof ({}[K] extends (infer U)[] ? U : never) as ({}[K] extends (infer U)[] ? U : never)[F_1] extends (infer U_1)[] ? ImageValue extends U_1 ? never : FileValue extends U_1 ? never : F_1 : never]: ({}[K] extends (infer U)[] ? U : never)[F_1] }>(props: {
279
+ Reference: <F extends string>(props: {
280
+ name: F;
281
+ children: (scope: ReferenceScope<ReferenceContent<never[F]>>) => React.ReactNode;
282
+ }) => React.ReactNode;
283
+ ReferenceList: <F extends string>(props: {
284
+ name: F;
285
+ children: (scope: ReferenceScope<ReferenceContent<never[F]>>) => React.ReactNode;
286
+ }) => React.ReactNode;
287
+ Repeater: <F extends keyof { [F_1 in keyof ({}[K] extends (infer U)[] ? U : never) as ({}[K] extends (infer U)[] ? U : never)[F_1] extends (infer U_1)[] ? ImageValue extends U_1 ? never : FileValue extends U_1 ? never : U_1 extends string ? never : F_1 : never]: ({}[K] extends (infer U)[] ? U : never)[F_1]; }>(props: {
266
288
  name: F;
267
289
  children: (item: {
268
290
  Field: (props: InlineTextStyles & {
@@ -312,6 +334,9 @@ declare function createApp({
312
334
  newTab: boolean;
313
335
  }) => React.ReactNode;
314
336
  }) => React.ReactNode;
337
+ Icon: (props: IconProps & {
338
+ name: string;
339
+ }) => React.ReactNode;
315
340
  Embed: (props: {
316
341
  name: string;
317
342
  children: (props: {
@@ -320,6 +345,10 @@ declare function createApp({
320
345
  url: string;
321
346
  }) => React.ReactNode;
322
347
  }) => React.ReactNode;
348
+ Artifact: (props: {
349
+ name: string;
350
+ children: (props: ArtifactRenderProps) => React.ReactNode;
351
+ }) => React.ReactNode;
323
352
  Image: (props: {
324
353
  name: string;
325
354
  children: (props: {
@@ -334,6 +363,8 @@ declare function createApp({
334
363
  children: (props: {
335
364
  href: string;
336
365
  download: string;
366
+ } & Partial<Pick<import("react").AnchorHTMLAttributes<HTMLAnchorElement>, "onClick" | "onClickCapture" | "onMouseEnter" | "onMouseLeave">> & {
367
+ [attribute: `data-camox-${string}`]: string | boolean | undefined;
337
368
  }, data: FileValue) => React.ReactNode;
338
369
  }) => React.ReactNode;
339
370
  ImageList: (props: {
@@ -350,30 +381,42 @@ declare function createApp({
350
381
  children: (props: {
351
382
  href: string;
352
383
  download: string;
384
+ } & Partial<Pick<import("react").AnchorHTMLAttributes<HTMLAnchorElement>, "onClick" | "onClickCapture" | "onMouseEnter" | "onMouseLeave">> & {
385
+ [attribute: `data-camox-${string}`]: string | boolean | undefined;
353
386
  }, data: FileValue) => React.ReactNode;
354
387
  }) => React.ReactNode;
355
388
  Repeater: (props: {
356
389
  name: string;
357
390
  children: (item: any, index: number) => React.ReactNode;
358
391
  }) => React.ReactNode;
392
+ Reference: (props: {
393
+ name: string;
394
+ children: (scope: ReferenceScope<any>) => React.ReactNode;
395
+ }) => React.ReactNode;
396
+ ReferenceList: (props: {
397
+ name: string;
398
+ children: (scope: ReferenceScope<any>) => React.ReactNode;
399
+ }) => React.ReactNode;
359
400
  useSetting: (name: string) => unknown;
360
401
  }, index: number) => React.ReactNode;
361
402
  }) => React.ReactNode;
362
403
  useSetting: <F extends string>(name: F) => never;
363
404
  }, index: number) => React.ReactNode;
364
- }) => _$react_jsx_runtime0.JSX.Element;
405
+ }) => import("react").JSX.Element;
406
+ Reference: <K extends never>({ name, children }: {
407
+ name: K;
408
+ children: (scope: ReferenceScope<never>) => React.ReactNode;
409
+ }) => React.ReactNode;
410
+ ReferenceList: <K extends never>({ name, children }: {
411
+ name: K;
412
+ children: (scope: ReferenceScope<never>) => React.ReactNode;
413
+ }) => React.ReactNode;
365
414
  useSetting: <K extends string>(name: K) => unknown;
366
415
  _internal: {
367
- Component: ({
368
- blockData,
369
- mode,
370
- isFirstBlock,
371
- showAddBlockTop,
372
- showAddBlockBottom,
373
- addBlockAfterPosition
374
- }: BlockComponentProps<{
416
+ Component: ({ blockData, mode, isFirstBlock, showAddBlockTop, showAddBlockBottom, addBlockAfterPosition }: BlockComponentProps<{
375
417
  [x: string]: unknown;
376
- }>) => _$react_jsx_runtime0.JSX.Element;
418
+ }>) => import("react").JSX.Element;
419
+ LayoutItem: ({ collectionId, labelField, properties, record, children, fallback }: LayoutItemProps) => string | number | bigint | boolean | Iterable<import("react").ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode> | null | undefined> | import("react").JSX.Element | null | undefined;
377
420
  id: string;
378
421
  title: string;
379
422
  description: string;
@@ -381,13 +424,13 @@ declare function createApp({
381
424
  type: "object";
382
425
  title: string;
383
426
  description: string;
384
- properties: Record<string, _$_sinclair_typebox0.TSchema>;
427
+ properties: Record<string, import("@sinclair/typebox").TSchema>;
385
428
  required: string[];
386
429
  toMarkdown: string[];
387
430
  };
388
431
  settingsSchema: {
389
432
  type: "object";
390
- properties: Record<string, _$_sinclair_typebox0.TSchema>;
433
+ properties: Record<string, import("@sinclair/typebox").TSchema>;
391
434
  required: string[];
392
435
  } | undefined;
393
436
  layoutOnly: boolean;
@@ -407,13 +450,13 @@ declare function createApp({
407
450
  };
408
451
  getPeekBundle: () => {
409
452
  block: {
410
- id: number;
453
+ id: string;
411
454
  pageId: null;
412
455
  layoutId: null;
413
456
  type: string;
414
457
  content: Record<string, unknown>;
415
458
  settings: Record<string, unknown>;
416
- placement: null;
459
+ slot: null;
417
460
  summary: string;
418
461
  position: string;
419
462
  createdAt: number;
@@ -424,25 +467,23 @@ declare function createApp({
424
467
  };
425
468
  };
426
469
  }[];
470
+ /** A loaded block. Call `loadBlock` first for a block that may be lazy. */
427
471
  getBlockById(id: string): {
428
- Detached: ({
429
- children
430
- }: {
472
+ Detached: ({ children }: {
431
473
  children: (props: {
432
- "data-camox-comment-block-id"?: number;
433
- ref: (element: HTMLElement | null) => void;
434
- style: React.CSSProperties;
474
+ "data-camox-block-id"?: string;
475
+ "data-camox-hovered"?: boolean;
476
+ "data-camox-focused"?: boolean;
477
+ "data-camox-overlay-mode"?: "synced";
435
478
  onClickCapture: (e: React.MouseEvent) => void;
436
479
  onMouseEnter: () => void;
437
480
  onMouseLeave: () => void;
438
481
  }) => React.ReactNode;
439
482
  }) => React.JSX.Element;
440
- Field: <K extends never>({
441
- name,
442
- textStyle,
443
- linkStyle,
444
- children
445
- }: InlineTextStyles & {
483
+ Icon: ({ name, ...props }: IconProps & {
484
+ name: never;
485
+ }) => import("react").JSX.Element;
486
+ Field: <K extends never>({ name, textStyle, linkStyle, children }: InlineTextStyles & {
446
487
  name: K;
447
488
  children: (props: {
448
489
  children: React.ReactNode;
@@ -459,10 +500,7 @@ declare function createApp({
459
500
  text: string;
460
501
  }) => React.ReactNode;
461
502
  }) => React.ReactNode;
462
- Embed: <K extends never>({
463
- name,
464
- children
465
- }: {
503
+ Embed: <K extends never>({ name, children }: {
466
504
  name: K;
467
505
  children: (props: {
468
506
  src: string;
@@ -470,10 +508,11 @@ declare function createApp({
470
508
  url: string;
471
509
  }) => React.ReactNode;
472
510
  }) => React.ReactNode;
473
- Link: <K extends never>({
474
- name,
475
- children
476
- }: {
511
+ Artifact: <K extends never>({ name, children }: {
512
+ name: K;
513
+ children: (props: ArtifactRenderProps) => React.ReactNode;
514
+ }) => React.ReactNode;
515
+ Link: <K extends never>({ name, children }: {
477
516
  name: K;
478
517
  children: (props: {
479
518
  to: string;
@@ -503,10 +542,7 @@ declare function createApp({
503
542
  newTab: boolean;
504
543
  }) => React.ReactNode;
505
544
  }) => React.ReactNode;
506
- Image: <K extends never>({
507
- name,
508
- children
509
- }: {
545
+ Image: <K extends never>({ name, children }: {
510
546
  name: K;
511
547
  children: (props: {
512
548
  src: string;
@@ -515,14 +551,13 @@ declare function createApp({
515
551
  sizes?: string;
516
552
  }, data: ImageValue) => React.ReactNode;
517
553
  }) => React.ReactNode;
518
- File: <K extends never>({
519
- name,
520
- children
521
- }: {
554
+ File: <K extends never>({ name, children }: {
522
555
  name: K;
523
556
  children: (props: {
524
557
  href: string;
525
558
  download: string;
559
+ } & Partial<Pick<import("react").AnchorHTMLAttributes<HTMLAnchorElement>, "onClick" | "onClickCapture" | "onMouseEnter" | "onMouseLeave">> & {
560
+ [attribute: `data-camox-${string}`]: string | boolean | undefined;
526
561
  }, data: FileValue) => React.ReactNode;
527
562
  }) => React.ReactNode;
528
563
  ImageList: <K extends never>(props: {
@@ -539,15 +574,14 @@ declare function createApp({
539
574
  children: (props: {
540
575
  href: string;
541
576
  download: string;
577
+ } & Partial<Pick<import("react").AnchorHTMLAttributes<HTMLAnchorElement>, "onClick" | "onClickCapture" | "onMouseEnter" | "onMouseLeave">> & {
578
+ [attribute: `data-camox-${string}`]: string | boolean | undefined;
542
579
  }, data: FileValue) => React.ReactNode;
543
580
  }) => React.ReactNode;
544
- Repeater: <K extends never>({
545
- name,
546
- children
547
- }: {
581
+ Repeater: <K extends never>({ name, children }: {
548
582
  name: K;
549
583
  children: (item: {
550
- Field: <F extends keyof { [F_1 in keyof ({}[K] extends (infer U)[] ? U : never) as ({}[K] extends (infer U)[] ? U : never)[F_1] extends string ? F_1 : never]: ({}[K] extends (infer U)[] ? U : never)[F_1] }>(props: InlineTextStyles & {
584
+ Field: <F extends keyof { [F_1 in keyof ({}[K] extends (infer U)[] ? U : never) as ({}[K] extends (infer U)[] ? U : never)[F_1] extends IconValue | ArtifactSource ? never : ({}[K] extends (infer U)[] ? U : never)[F_1] extends string ? F_1 : never]: ({}[K] extends (infer U)[] ? U : never)[F_1]; }>(props: InlineTextStyles & {
551
585
  name: F;
552
586
  children: (props: {
553
587
  children: React.ReactNode;
@@ -564,7 +598,7 @@ declare function createApp({
564
598
  text: string;
565
599
  }) => React.ReactNode;
566
600
  }) => React.ReactNode;
567
- Link: <F extends keyof { [F_1 in keyof ({}[K] extends (infer U)[] ? U : never) as ({}[K] extends (infer U)[] ? U : never)[F_1] extends LinkValue ? F_1 : never]: ({}[K] extends (infer U)[] ? U : never)[F_1] }>(props: {
601
+ Link: <F extends keyof { [F_1 in keyof ({}[K] extends (infer U)[] ? U : never) as ({}[K] extends (infer U)[] ? U : never)[F_1] extends LinkValue ? F_1 : never]: ({}[K] extends (infer U)[] ? U : never)[F_1]; }>(props: {
568
602
  name: F;
569
603
  children: (props: {
570
604
  to: string;
@@ -594,7 +628,10 @@ declare function createApp({
594
628
  newTab: boolean;
595
629
  }) => React.ReactNode;
596
630
  }) => React.ReactNode;
597
- Embed: <F extends keyof { [F_1 in keyof ({}[K] extends (infer U)[] ? U : never) as ({}[K] extends (infer U)[] ? U : never)[F_1] extends EmbedURL ? F_1 : never]: ({}[K] extends (infer U)[] ? U : never)[F_1] }>(props: {
631
+ Icon: (props: IconProps & {
632
+ name: keyof { [F in keyof ({}[K] extends (infer U)[] ? U : never) as ({}[K] extends (infer U)[] ? U : never)[F] extends IconValue ? F : never]: ({}[K] extends (infer U)[] ? U : never)[F]; };
633
+ }) => React.ReactNode;
634
+ Embed: <F extends keyof { [F_1 in keyof ({}[K] extends (infer U)[] ? U : never) as ({}[K] extends (infer U)[] ? U : never)[F_1] extends EmbedURL ? F_1 : never]: ({}[K] extends (infer U)[] ? U : never)[F_1]; }>(props: {
598
635
  name: F;
599
636
  children: (props: {
600
637
  src: string;
@@ -602,6 +639,10 @@ declare function createApp({
602
639
  url: string;
603
640
  }) => React.ReactNode;
604
641
  }) => React.ReactNode;
642
+ Artifact: <F extends keyof { [F_1 in keyof ({}[K] extends (infer U)[] ? U : never) as ({}[K] extends (infer U)[] ? U : never)[F_1] extends ArtifactSource ? F_1 : never]: ({}[K] extends (infer U)[] ? U : never)[F_1]; }>(props: {
643
+ name: F;
644
+ children: (props: ArtifactRenderProps) => React.ReactNode;
645
+ }) => React.ReactNode;
605
646
  Image: <F extends keyof { [F_1 in keyof ({}[K] extends (infer U)[] ? U : never) as ImageValue extends ({}[K] extends (infer U)[] ? U : never)[F_1] ? ({}[K] extends (infer U)[] ? U : never)[F_1] extends ({}[K] extends (infer U)[] ? U : never)[F_1] & {
606
647
  url: string;
607
648
  alt: string;
@@ -611,7 +652,7 @@ declare function createApp({
611
652
  _fileId?: string;
612
653
  } & {
613
654
  readonly __brand: "ImageValue";
614
- } ? F_1 : never : never]: ({}[K] extends (infer U)[] ? U : never)[F_1] }>(props: {
655
+ } ? F_1 : never : never]: ({}[K] extends (infer U)[] ? U : never)[F_1]; }>(props: {
615
656
  name: F;
616
657
  children: (props: {
617
658
  src: string;
@@ -629,11 +670,13 @@ declare function createApp({
629
670
  _fileId?: string;
630
671
  } & {
631
672
  readonly __brand: "FileValue";
632
- } ? F_1 : never : never]: ({}[K] extends (infer U)[] ? U : never)[F_1] }>(props: {
673
+ } ? F_1 : never : never]: ({}[K] extends (infer U)[] ? U : never)[F_1]; }>(props: {
633
674
  name: F;
634
675
  children: (props: {
635
676
  href: string;
636
677
  download: string;
678
+ } & Partial<Pick<import("react").AnchorHTMLAttributes<HTMLAnchorElement>, "onClick" | "onClickCapture" | "onMouseEnter" | "onMouseLeave">> & {
679
+ [attribute: `data-camox-${string}`]: string | boolean | undefined;
637
680
  }, data: FileValue) => React.ReactNode;
638
681
  }) => React.ReactNode;
639
682
  ImageList: <F extends keyof { [F_1 in keyof ({}[K] extends (infer U)[] ? U : never) as ({}[K] extends (infer U)[] ? U : never)[F_1] extends (infer U_1)[] ? ImageValue extends U_1 ? U_1 extends U_1 & {
@@ -645,7 +688,7 @@ declare function createApp({
645
688
  _fileId?: string;
646
689
  } & {
647
690
  readonly __brand: "ImageValue";
648
- } ? F_1 : never : never : never]: ({}[K] extends (infer U)[] ? U : never)[F_1] }>(props: {
691
+ } ? F_1 : never : never : never]: ({}[K] extends (infer U)[] ? U : never)[F_1]; }>(props: {
649
692
  name: F;
650
693
  children: (props: {
651
694
  src: string;
@@ -663,14 +706,24 @@ declare function createApp({
663
706
  _fileId?: string;
664
707
  } & {
665
708
  readonly __brand: "FileValue";
666
- } ? F_1 : never : never : never]: ({}[K] extends (infer U)[] ? U : never)[F_1] }>(props: {
709
+ } ? F_1 : never : never : never]: ({}[K] extends (infer U)[] ? U : never)[F_1]; }>(props: {
667
710
  name: F;
668
711
  children: (props: {
669
712
  href: string;
670
713
  download: string;
714
+ } & Partial<Pick<import("react").AnchorHTMLAttributes<HTMLAnchorElement>, "onClick" | "onClickCapture" | "onMouseEnter" | "onMouseLeave">> & {
715
+ [attribute: `data-camox-${string}`]: string | boolean | undefined;
671
716
  }, data: FileValue) => React.ReactNode;
672
717
  }) => React.ReactNode;
673
- Repeater: <F extends keyof { [F_1 in keyof ({}[K] extends (infer U)[] ? U : never) as ({}[K] extends (infer U)[] ? U : never)[F_1] extends (infer U_1)[] ? ImageValue extends U_1 ? never : FileValue extends U_1 ? never : F_1 : never]: ({}[K] extends (infer U)[] ? U : never)[F_1] }>(props: {
718
+ Reference: <F extends string>(props: {
719
+ name: F;
720
+ children: (scope: ReferenceScope<ReferenceContent<never[F]>>) => React.ReactNode;
721
+ }) => React.ReactNode;
722
+ ReferenceList: <F extends string>(props: {
723
+ name: F;
724
+ children: (scope: ReferenceScope<ReferenceContent<never[F]>>) => React.ReactNode;
725
+ }) => React.ReactNode;
726
+ Repeater: <F extends keyof { [F_1 in keyof ({}[K] extends (infer U)[] ? U : never) as ({}[K] extends (infer U)[] ? U : never)[F_1] extends (infer U_1)[] ? ImageValue extends U_1 ? never : FileValue extends U_1 ? never : U_1 extends string ? never : F_1 : never]: ({}[K] extends (infer U)[] ? U : never)[F_1]; }>(props: {
674
727
  name: F;
675
728
  children: (item: {
676
729
  Field: (props: InlineTextStyles & {
@@ -720,6 +773,9 @@ declare function createApp({
720
773
  newTab: boolean;
721
774
  }) => React.ReactNode;
722
775
  }) => React.ReactNode;
776
+ Icon: (props: IconProps & {
777
+ name: string;
778
+ }) => React.ReactNode;
723
779
  Embed: (props: {
724
780
  name: string;
725
781
  children: (props: {
@@ -728,6 +784,10 @@ declare function createApp({
728
784
  url: string;
729
785
  }) => React.ReactNode;
730
786
  }) => React.ReactNode;
787
+ Artifact: (props: {
788
+ name: string;
789
+ children: (props: ArtifactRenderProps) => React.ReactNode;
790
+ }) => React.ReactNode;
731
791
  Image: (props: {
732
792
  name: string;
733
793
  children: (props: {
@@ -742,6 +802,8 @@ declare function createApp({
742
802
  children: (props: {
743
803
  href: string;
744
804
  download: string;
805
+ } & Partial<Pick<import("react").AnchorHTMLAttributes<HTMLAnchorElement>, "onClick" | "onClickCapture" | "onMouseEnter" | "onMouseLeave">> & {
806
+ [attribute: `data-camox-${string}`]: string | boolean | undefined;
745
807
  }, data: FileValue) => React.ReactNode;
746
808
  }) => React.ReactNode;
747
809
  ImageList: (props: {
@@ -758,30 +820,42 @@ declare function createApp({
758
820
  children: (props: {
759
821
  href: string;
760
822
  download: string;
823
+ } & Partial<Pick<import("react").AnchorHTMLAttributes<HTMLAnchorElement>, "onClick" | "onClickCapture" | "onMouseEnter" | "onMouseLeave">> & {
824
+ [attribute: `data-camox-${string}`]: string | boolean | undefined;
761
825
  }, data: FileValue) => React.ReactNode;
762
826
  }) => React.ReactNode;
763
827
  Repeater: (props: {
764
828
  name: string;
765
829
  children: (item: any, index: number) => React.ReactNode;
766
830
  }) => React.ReactNode;
831
+ Reference: (props: {
832
+ name: string;
833
+ children: (scope: ReferenceScope<any>) => React.ReactNode;
834
+ }) => React.ReactNode;
835
+ ReferenceList: (props: {
836
+ name: string;
837
+ children: (scope: ReferenceScope<any>) => React.ReactNode;
838
+ }) => React.ReactNode;
767
839
  useSetting: (name: string) => unknown;
768
840
  }, index: number) => React.ReactNode;
769
841
  }) => React.ReactNode;
770
842
  useSetting: <F extends string>(name: F) => never;
771
843
  }, index: number) => React.ReactNode;
772
- }) => _$react_jsx_runtime0.JSX.Element;
844
+ }) => import("react").JSX.Element;
845
+ Reference: <K extends never>({ name, children }: {
846
+ name: K;
847
+ children: (scope: ReferenceScope<never>) => React.ReactNode;
848
+ }) => React.ReactNode;
849
+ ReferenceList: <K extends never>({ name, children }: {
850
+ name: K;
851
+ children: (scope: ReferenceScope<never>) => React.ReactNode;
852
+ }) => React.ReactNode;
773
853
  useSetting: <K extends string>(name: K) => unknown;
774
854
  _internal: {
775
- Component: ({
776
- blockData,
777
- mode,
778
- isFirstBlock,
779
- showAddBlockTop,
780
- showAddBlockBottom,
781
- addBlockAfterPosition
782
- }: BlockComponentProps<{
855
+ Component: ({ blockData, mode, isFirstBlock, showAddBlockTop, showAddBlockBottom, addBlockAfterPosition }: BlockComponentProps<{
783
856
  [x: string]: unknown;
784
- }>) => _$react_jsx_runtime0.JSX.Element;
857
+ }>) => import("react").JSX.Element;
858
+ LayoutItem: ({ collectionId, labelField, properties, record, children, fallback }: LayoutItemProps) => string | number | bigint | boolean | Iterable<import("react").ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode> | null | undefined> | import("react").JSX.Element | null | undefined;
785
859
  id: string;
786
860
  title: string;
787
861
  description: string;
@@ -789,13 +863,13 @@ declare function createApp({
789
863
  type: "object";
790
864
  title: string;
791
865
  description: string;
792
- properties: Record<string, _$_sinclair_typebox0.TSchema>;
866
+ properties: Record<string, import("@sinclair/typebox").TSchema>;
793
867
  required: string[];
794
868
  toMarkdown: string[];
795
869
  };
796
870
  settingsSchema: {
797
871
  type: "object";
798
- properties: Record<string, _$_sinclair_typebox0.TSchema>;
872
+ properties: Record<string, import("@sinclair/typebox").TSchema>;
799
873
  required: string[];
800
874
  } | undefined;
801
875
  layoutOnly: boolean;
@@ -815,13 +889,13 @@ declare function createApp({
815
889
  };
816
890
  getPeekBundle: () => {
817
891
  block: {
818
- id: number;
892
+ id: string;
819
893
  pageId: null;
820
894
  layoutId: null;
821
895
  type: string;
822
896
  content: Record<string, unknown>;
823
897
  settings: Record<string, unknown>;
824
- placement: null;
898
+ slot: null;
825
899
  summary: string;
826
900
  position: string;
827
901
  createdAt: number;
@@ -832,106 +906,52 @@ declare function createApp({
832
906
  };
833
907
  };
834
908
  } | undefined;
835
- getLayouts(): {
836
- BeforeBlocks: {
837
- (): _$react_jsx_runtime0.JSX.Element;
838
- displayName: string;
839
- };
840
- AfterBlocks: {
841
- (): _$react_jsx_runtime0.JSX.Element;
842
- displayName: string;
843
- };
844
- useData(): unknown;
845
- _internal: {
846
- id: string;
847
- kind: "curated" | "derived" | "singleton";
848
- loader: ((context: {
849
- params: Record<string, string>;
850
- }) => unknown) | undefined;
909
+ loadBlock: (id: string) => Promise<Block | undefined>;
910
+ /** Whether a block not loaded yet could still load, rather than not exist. */
911
+ canLoadMoreBlocks(): boolean;
912
+ loadBlocks(ids: Iterable<string>): Promise<void>;
913
+ /** Every block definition, which editing needs, rather than only a page's. */
914
+ loadAllBlocks: () => Promise<void>;
915
+ getLayouts(): Layout[];
916
+ getLayoutById(id: string): Layout | undefined;
917
+ /**
918
+ * The website's Definition Set: every block (lazy ones included, layout-only ones only when a
919
+ * layout declares them), layout and collection definition, and the homepage they declare.
920
+ * Never calls the network; the API computes schema hashes on write.
921
+ */
922
+ getDefinitionSet(): Promise<{
923
+ blocks: {
924
+ blockId: string;
851
925
  title: string;
852
926
  description: string;
853
- buildMetaTitle: (params: {
854
- pageMetaTitle: string;
855
- projectName: string;
856
- pageFullPath: string;
857
- }) => string;
858
- buildOgImage: ((params: OgImageParams) => Promise<Response>) | undefined;
859
- blockDefinitions: ({
860
- type: string;
861
- content: Record<string, unknown>;
862
- settings: Record<string, unknown>;
863
- repeatableItems: {
864
- tempId: string;
865
- parentTempId: string | null;
866
- fieldName: string;
867
- content: Record<string, unknown>;
868
- position: string;
869
- }[];
870
- placement: "before";
871
- } | {
872
- type: string;
873
- content: Record<string, unknown>;
874
- settings: Record<string, unknown>;
875
- repeatableItems: {
876
- tempId: string;
877
- parentTempId: string | null;
878
- fieldName: string;
879
- content: Record<string, unknown>;
880
- position: string;
881
- }[];
882
- placement: "after";
883
- })[];
884
- initialBlockBundles: {
885
- type: string;
886
- content: Record<string, unknown>;
887
- settings: Record<string, unknown>;
888
- repeatableItems: {
889
- tempId: string;
890
- parentTempId: string | null;
891
- fieldName: string;
892
- content: Record<string, unknown>;
893
- position: string;
894
- }[];
895
- }[] | undefined;
896
- component: _$react.ComponentType<{
897
- children: React.ReactNode;
898
- }>;
899
- Provider: ({
900
- layoutBlocks,
901
- children,
902
- data
903
- }: {
904
- layoutBlocks: Record<string, LayoutBlockData>;
905
- children: React.ReactNode;
906
- data?: unknown;
907
- }) => _$react_jsx_runtime0.JSX.Element;
908
- };
909
- }[];
910
- getLayoutById(id: string): {
911
- BeforeBlocks: {
912
- (): _$react_jsx_runtime0.JSX.Element;
913
- displayName: string;
914
- };
915
- AfterBlocks: {
916
- (): _$react_jsx_runtime0.JSX.Element;
917
- displayName: string;
918
- };
919
- useData(): unknown;
920
- _internal: {
921
- id: string;
927
+ contentSchema: {
928
+ type: "object";
929
+ title: string;
930
+ description: string;
931
+ properties: Record<string, import("@sinclair/typebox").TSchema>;
932
+ required: string[];
933
+ toMarkdown: string[];
934
+ };
935
+ settingsSchema: {
936
+ type: "object";
937
+ properties: Record<string, import("@sinclair/typebox").TSchema>;
938
+ required: string[];
939
+ } | undefined;
940
+ defaultContent: {
941
+ [x: string]: unknown;
942
+ };
943
+ defaultSettings: {
944
+ [x: string]: unknown;
945
+ };
946
+ layoutOnly: true | undefined;
947
+ synced: boolean;
948
+ }[];
949
+ layouts: {
950
+ recordPages?: RecordPages | undefined;
951
+ layoutId: string;
922
952
  kind: "curated" | "derived" | "singleton";
923
- loader: ((context: {
924
- params: Record<string, string>;
925
- }) => unknown) | undefined;
926
- title: string;
927
953
  description: string;
928
- buildMetaTitle: (params: {
929
- pageMetaTitle: string;
930
- projectName: string;
931
- pageFullPath: string;
932
- }) => string;
933
- buildOgImage: ((params: OgImageParams) => Promise<Response>) | undefined;
934
- blockDefinitions: ({
954
+ blocks: ({
935
955
  type: string;
936
956
  content: Record<string, unknown>;
937
957
  settings: Record<string, unknown>;
@@ -942,7 +962,7 @@ declare function createApp({
942
962
  content: Record<string, unknown>;
943
963
  position: string;
944
964
  }[];
945
- placement: "before";
965
+ slot: "before";
946
966
  } | {
947
967
  type: string;
948
968
  content: Record<string, unknown>;
@@ -954,9 +974,19 @@ declare function createApp({
954
974
  content: Record<string, unknown>;
955
975
  position: string;
956
976
  }[];
957
- placement: "after";
977
+ slot: "after";
958
978
  })[];
959
- initialBlockBundles: {
979
+ }[];
980
+ collections: {
981
+ collectionId: string;
982
+ title: string;
983
+ description: string;
984
+ label: string;
985
+ contentSchema: any;
986
+ }[];
987
+ homepage: {
988
+ layoutId: string;
989
+ blocks: {
960
990
  type: string;
961
991
  content: Record<string, unknown>;
962
992
  settings: Record<string, unknown>;
@@ -967,88 +997,13 @@ declare function createApp({
967
997
  content: Record<string, unknown>;
968
998
  position: string;
969
999
  }[];
970
- }[] | undefined;
971
- component: _$react.ComponentType<{
972
- children: React.ReactNode;
973
- }>;
974
- Provider: ({
975
- layoutBlocks,
976
- children,
977
- data
978
- }: {
979
- layoutBlocks: Record<string, LayoutBlockData>;
980
- children: React.ReactNode;
981
- data?: unknown;
982
- }) => _$react_jsx_runtime0.JSX.Element;
983
- };
984
- } | undefined;
985
- getSerializableDefinitions(): {
986
- blockId: string;
987
- title: string;
988
- description: string;
989
- contentSchema: {
990
- type: "object";
991
- title: string;
992
- description: string;
993
- properties: Record<string, _$_sinclair_typebox0.TSchema>;
994
- required: string[];
995
- toMarkdown: string[];
996
- };
997
- settingsSchema: {
998
- type: "object";
999
- properties: Record<string, _$_sinclair_typebox0.TSchema>;
1000
- required: string[];
1001
- } | undefined;
1002
- layoutOnly: true | undefined;
1003
- synced: boolean;
1004
- }[];
1005
- getSerializableLayoutDefinitions(): {
1006
- layoutId: string;
1007
- kind: "curated" | "derived" | "singleton";
1008
- description: string;
1009
- blocks: ({
1010
- type: string;
1011
- content: Record<string, unknown>;
1012
- settings: Record<string, unknown>;
1013
- repeatableItems: {
1014
- tempId: string;
1015
- parentTempId: string | null;
1016
- fieldName: string;
1017
- content: Record<string, unknown>;
1018
- position: string;
1019
- }[];
1020
- placement: "before";
1021
- } | {
1022
- type: string;
1023
- content: Record<string, unknown>;
1024
- settings: Record<string, unknown>;
1025
- repeatableItems: {
1026
- tempId: string;
1027
- parentTempId: string | null;
1028
- fieldName: string;
1029
- content: Record<string, unknown>;
1030
- position: string;
1031
- }[];
1032
- placement: "after";
1033
- })[];
1034
- }[];
1035
- getInitialPageBundles(): {
1036
- layoutId: string;
1037
- blocks: {
1038
- type: string;
1039
- content: Record<string, unknown>;
1040
- settings: Record<string, unknown>;
1041
- repeatableItems: {
1042
- tempId: string;
1043
- parentTempId: string | null;
1044
- fieldName: string;
1045
- content: Record<string, unknown>;
1046
- position: string;
1047
1000
  }[];
1048
- }[];
1049
- hasInitialBlocks: boolean;
1050
- } | null;
1001
+ hasInitialBlocks: boolean;
1002
+ } | null;
1003
+ }>;
1051
1004
  };
1052
- type CamoxApp = ReturnType<typeof createApp>;
1005
+ export type CamoxApp = ReturnType<typeof createApp>;
1006
+ /** All of a website's definitions taken together, with the content they declare. */
1007
+ export type DefinitionSet = Awaited<ReturnType<CamoxApp["getDefinitionSet"]>>;
1053
1008
  //#endregion
1054
- export { CamoxApp, createApp };
1009
+ export {};