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,6 +1,6 @@
1
- import { useProjectSlug } from "../../../lib/auth.js";
1
+ import { useProjectUuid } from "../../../lib/auth.js";
2
+ import { reads, useReadQuery } from "../../../lib/studio-reads.js";
2
3
  import { transformImageUrl } from "../../../core/lib/imageTransform.js";
3
- import { projectQueries } from "../../../lib/queries.js";
4
4
  import { cn } from "../../../lib/utils.js";
5
5
  import { UploadDropZone } from "../../content/components/UploadDropZone.js";
6
6
  import { useFileUpload } from "../../../hooks/use-file-upload.js";
@@ -9,7 +9,6 @@ import { AssetPickerModal } from "./AssetPickerModal.js";
9
9
  import { UnlinkAssetButton } from "./UnlinkAssetButton.js";
10
10
  import { AssetActionButtons } from "./AssetFieldEditor.js";
11
11
  import { c } from "react/compiler-runtime";
12
- import { useQuery } from "@tanstack/react-query";
13
12
  import * as React from "react";
14
13
  import { jsx, jsxs } from "react/jsx-runtime";
15
14
  import { Button } from "@camox/ui/button";
@@ -21,77 +20,72 @@ import { CSS } from "@dnd-kit/utilities";
21
20
 
22
21
  //#region src/features/preview/components/MultipleAssetFieldEditor.tsx
23
22
  const SortableAssetItem = (t0) => {
24
- const $ = c(45);
25
- if ($[0] !== "0caea1891823f5fc9c0479c2355a3624a6f7a738eac9bd06dae08f7338ed3b58") {
26
- for (let $i = 0; $i < 45; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
27
- $[0] = "0caea1891823f5fc9c0479c2355a3624a6f7a738eac9bd06dae08f7338ed3b58";
28
- }
29
- const { asset, assetType, onRemove, onAssetOpen } = t0;
30
- const t1 = String(asset._fileId);
31
- let t2;
32
- if ($[1] !== t1) {
33
- t2 = { id: t1 };
23
+ const $ = c(46);
24
+ const { asset, assetType, onRemove, onAssetOpen, persisted, offerDelete } = t0;
25
+ let t1;
26
+ if ($[0] !== asset._fileId) {
27
+ t1 = { id: asset._fileId };
28
+ $[0] = asset._fileId;
34
29
  $[1] = t1;
35
- $[2] = t2;
36
- } else t2 = $[2];
37
- const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable(t2);
38
- let t3;
39
- if ($[3] !== transform) {
40
- t3 = CSS.Transform.toString(transform);
41
- $[3] = transform;
42
- $[4] = t3;
43
- } else t3 = $[4];
44
- const t4 = isDragging ? .5 : 1;
45
- let t5;
46
- if ($[5] !== t3 || $[6] !== t4 || $[7] !== transition) {
47
- t5 = {
48
- transform: t3,
30
+ } else t1 = $[1];
31
+ const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable(t1);
32
+ let t2;
33
+ if ($[2] !== transform) {
34
+ t2 = CSS.Transform.toString(transform);
35
+ $[2] = transform;
36
+ $[3] = t2;
37
+ } else t2 = $[3];
38
+ const t3 = isDragging ? .5 : 1;
39
+ let t4;
40
+ if ($[4] !== t2 || $[5] !== t3 || $[6] !== transition) {
41
+ t4 = {
42
+ transform: t2,
49
43
  transition,
50
- opacity: t4
44
+ opacity: t3
51
45
  };
46
+ $[4] = t2;
52
47
  $[5] = t3;
53
- $[6] = t4;
54
- $[7] = transition;
48
+ $[6] = transition;
49
+ $[7] = t4;
50
+ } else t4 = $[7];
51
+ const style = t4;
52
+ const t5 = !isDragging && "hover:bg-accent/75";
53
+ let t6;
54
+ if ($[8] !== t5) {
55
+ t6 = cn("flex flex-row items-center gap-2 px-1 py-1 max-w-full rounded-lg text-foreground transition-none group", t5);
55
56
  $[8] = t5;
56
- } else t5 = $[8];
57
- const style = t5;
58
- const t6 = !isDragging && "hover:bg-accent/75";
59
- let t7;
60
- if ($[9] !== t6) {
61
- t7 = cn("flex flex-row items-center gap-2 px-1 py-1 max-w-full rounded-lg text-foreground transition-none group", t6);
62
57
  $[9] = t6;
58
+ } else t6 = $[9];
59
+ let t7;
60
+ if ($[10] === Symbol.for("react.memo_cache_sentinel")) {
61
+ t7 = /* @__PURE__ */ jsx(GripVertical, { className: "h-4 w-4" });
63
62
  $[10] = t7;
64
63
  } else t7 = $[10];
65
64
  let t8;
66
- if ($[11] === Symbol.for("react.memo_cache_sentinel")) {
67
- t8 = /* @__PURE__ */ jsx(GripVertical, { className: "h-4 w-4" });
68
- $[11] = t8;
69
- } else t8 = $[11];
70
- let t9;
71
- if ($[12] !== attributes || $[13] !== listeners) {
72
- t9 = /* @__PURE__ */ jsx(Button, {
65
+ if ($[11] !== attributes || $[12] !== listeners) {
66
+ t8 = /* @__PURE__ */ jsx(Button, {
73
67
  type: "button",
74
68
  variant: "ghost",
75
69
  size: "icon-sm",
76
70
  className: "text-muted-foreground hover:text-foreground flex shrink-0 cursor-grab active:cursor-grabbing",
77
71
  ...attributes,
78
72
  ...listeners,
79
- children: t8
73
+ children: t7
80
74
  });
81
- $[12] = attributes;
82
- $[13] = listeners;
83
- $[14] = t9;
84
- } else t9 = $[14];
75
+ $[11] = attributes;
76
+ $[12] = listeners;
77
+ $[13] = t8;
78
+ } else t8 = $[13];
79
+ let t9;
80
+ if ($[14] !== asset || $[15] !== onAssetOpen) {
81
+ t9 = () => onAssetOpen(asset);
82
+ $[14] = asset;
83
+ $[15] = onAssetOpen;
84
+ $[16] = t9;
85
+ } else t9 = $[16];
85
86
  let t10;
86
- if ($[15] !== asset || $[16] !== onAssetOpen) {
87
- t10 = () => onAssetOpen(asset);
88
- $[15] = asset;
89
- $[16] = onAssetOpen;
90
- $[17] = t10;
91
- } else t10 = $[17];
92
- let t11;
93
- if ($[18] !== asset.alt || $[19] !== asset.filename || $[20] !== asset.mimeType || $[21] !== asset.size || $[22] !== asset.url || $[23] !== assetType) {
94
- t11 = assetType === "Image" ? /* @__PURE__ */ jsx("div", {
87
+ if ($[17] !== asset.alt || $[18] !== asset.filename || $[19] !== asset.mimeType || $[20] !== asset.size || $[21] !== asset.url || $[22] !== assetType) {
88
+ t10 = assetType === "Image" ? /* @__PURE__ */ jsx("div", {
95
89
  className: "border-border h-12 w-12 shrink-0 overflow-hidden rounded border",
96
90
  children: /* @__PURE__ */ jsx("img", {
97
91
  src: transformImageUrl(asset.url, {
@@ -106,233 +100,326 @@ const SortableAssetItem = (t0) => {
106
100
  className: "border-border bg-muted flex h-12 w-12 shrink-0 items-center justify-center overflow-hidden rounded border",
107
101
  children: /* @__PURE__ */ jsx(FileIcon, { className: "text-muted-foreground h-6 w-6" })
108
102
  });
109
- $[18] = asset.alt;
110
- $[19] = asset.filename;
111
- $[20] = asset.mimeType;
112
- $[21] = asset.size;
113
- $[22] = asset.url;
114
- $[23] = assetType;
115
- $[24] = t11;
116
- } else t11 = $[24];
117
- const t12 = asset.filename || "Untitled";
118
- let t13;
119
- if ($[25] !== asset.filename || $[26] !== t12) {
120
- t13 = /* @__PURE__ */ jsx("p", {
103
+ $[17] = asset.alt;
104
+ $[18] = asset.filename;
105
+ $[19] = asset.mimeType;
106
+ $[20] = asset.size;
107
+ $[21] = asset.url;
108
+ $[22] = assetType;
109
+ $[23] = t10;
110
+ } else t10 = $[23];
111
+ const t11 = asset.filename || "Untitled";
112
+ let t12;
113
+ if ($[24] !== asset.filename || $[25] !== t11) {
114
+ t12 = /* @__PURE__ */ jsx("p", {
121
115
  className: "flex-1 truncate text-left text-sm",
122
116
  title: asset.filename,
123
- children: t12
117
+ children: t11
124
118
  });
125
- $[25] = asset.filename;
119
+ $[24] = asset.filename;
120
+ $[25] = t11;
126
121
  $[26] = t12;
127
- $[27] = t13;
128
- } else t13 = $[27];
129
- let t14;
130
- if ($[28] !== t10 || $[29] !== t11 || $[30] !== t13) {
131
- t14 = /* @__PURE__ */ jsxs("button", {
122
+ } else t12 = $[26];
123
+ let t13;
124
+ if ($[27] !== t10 || $[28] !== t12 || $[29] !== t9) {
125
+ t13 = /* @__PURE__ */ jsxs("button", {
132
126
  type: "button",
133
127
  className: "flex min-w-0 flex-1 cursor-zoom-in items-center gap-2",
134
- onClick: t10,
135
- children: [t11, t13]
128
+ onClick: t9,
129
+ children: [t10, t12]
136
130
  });
137
- $[28] = t10;
138
- $[29] = t11;
131
+ $[27] = t10;
132
+ $[28] = t12;
133
+ $[29] = t9;
139
134
  $[30] = t13;
140
- $[31] = t14;
141
- } else t14 = $[31];
135
+ } else t13 = $[30];
136
+ let t14;
137
+ if ($[31] !== asset._fileId || $[32] !== onRemove) {
138
+ t14 = () => onRemove(asset._fileId);
139
+ $[31] = asset._fileId;
140
+ $[32] = onRemove;
141
+ $[33] = t14;
142
+ } else t14 = $[33];
142
143
  let t15;
143
- if ($[32] !== asset._fileId || $[33] !== onRemove) {
144
- t15 = () => onRemove(asset._fileId);
145
- $[32] = asset._fileId;
146
- $[33] = onRemove;
147
- $[34] = t15;
148
- } else t15 = $[34];
149
- let t16;
150
- if ($[35] !== asset._fileId || $[36] !== t15) {
151
- t16 = /* @__PURE__ */ jsx(UnlinkAssetButton, {
144
+ if ($[34] !== asset._fileId || $[35] !== offerDelete || $[36] !== persisted || $[37] !== t14) {
145
+ t15 = /* @__PURE__ */ jsx(UnlinkAssetButton, {
152
146
  fileId: asset._fileId,
153
- onUnlink: t15,
147
+ persisted,
148
+ offerDelete,
149
+ onUnlink: t14,
154
150
  className: "hidden group-focus-within:flex group-hover:flex"
155
151
  });
156
- $[35] = asset._fileId;
157
- $[36] = t15;
158
- $[37] = t16;
159
- } else t16 = $[37];
160
- let t17;
161
- if ($[38] !== setNodeRef || $[39] !== style || $[40] !== t14 || $[41] !== t16 || $[42] !== t7 || $[43] !== t9) {
162
- t17 = /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs("div", {
152
+ $[34] = asset._fileId;
153
+ $[35] = offerDelete;
154
+ $[36] = persisted;
155
+ $[37] = t14;
156
+ $[38] = t15;
157
+ } else t15 = $[38];
158
+ let t16;
159
+ if ($[39] !== setNodeRef || $[40] !== style || $[41] !== t13 || $[42] !== t15 || $[43] !== t6 || $[44] !== t8) {
160
+ t16 = /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs("div", {
163
161
  ref: setNodeRef,
164
162
  style,
165
- className: t7,
163
+ className: t6,
166
164
  children: [
167
- t9,
168
- t14,
169
- t16
165
+ t8,
166
+ t13,
167
+ t15
170
168
  ]
171
169
  }) });
172
- $[38] = setNodeRef;
173
- $[39] = style;
174
- $[40] = t14;
175
- $[41] = t16;
176
- $[42] = t7;
177
- $[43] = t9;
178
- $[44] = t17;
179
- } else t17 = $[44];
180
- return t17;
170
+ $[39] = setNodeRef;
171
+ $[40] = style;
172
+ $[41] = t13;
173
+ $[42] = t15;
174
+ $[43] = t6;
175
+ $[44] = t8;
176
+ $[45] = t16;
177
+ } else t16 = $[45];
178
+ return t16;
181
179
  };
182
180
  const MultipleAssetFieldEditor = (t0) => {
183
- const $ = c(28);
184
- if ($[0] !== "0caea1891823f5fc9c0479c2355a3624a6f7a738eac9bd06dae08f7338ed3b58") {
185
- for (let $i = 0; $i < 28; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
186
- $[0] = "0caea1891823f5fc9c0479c2355a3624a6f7a738eac9bd06dae08f7338ed3b58";
187
- }
188
- const { fieldName, assetType, currentData, onFieldChange } = t0;
181
+ const $ = c(61);
182
+ const { fieldName, assetType, currentData, onFieldChange, resolveLocally: t1, accept, offerDelete: t2 } = t0;
183
+ const resolveLocally = t1 === void 0 ? false : t1;
184
+ const offerDelete = t2 === void 0 ? true : t2;
189
185
  const isImage = assetType === "Image";
190
186
  const fileInputRef = React.useRef(null);
191
- const projectSlug = useProjectSlug();
192
- let t1;
193
- if ($[1] !== projectSlug) {
194
- t1 = projectQueries.getBySlug(projectSlug);
195
- $[1] = projectSlug;
196
- $[2] = t1;
197
- } else t1 = $[2];
198
- const { data: project } = useQuery(t1);
199
- const items = (currentData[fieldName] ?? []).filter(_temp);
200
- const toStorageFormat = _temp3;
201
- const addFileId = (fileId) => {
202
- onFieldChange(fieldName, [...toStorageFormat(items), { _fileId: fileId }]);
203
- };
204
- const { uploads, uploadFiles } = useFileUpload({
205
- projectId: project?.id,
206
- onFileCommitted: (result) => {
207
- addFileId(Number(result.fileId));
208
- }
209
- });
187
+ const projectUuid = useProjectUuid();
188
+ let t3;
189
+ if ($[0] !== projectUuid) {
190
+ t3 = reads.project({ projectUuid });
191
+ $[0] = projectUuid;
192
+ $[1] = t3;
193
+ } else t3 = $[1];
194
+ const { data: project } = useReadQuery(t3);
195
+ let t4;
196
+ if ($[2] !== currentData || $[3] !== fieldName) {
197
+ t4 = currentData[fieldName] ?? [];
198
+ $[2] = currentData;
199
+ $[3] = fieldName;
200
+ $[4] = t4;
201
+ } else t4 = $[4];
202
+ const t5 = t4;
203
+ let t6;
204
+ if ($[5] !== t5) {
205
+ t6 = t5.filter(_temp);
206
+ $[5] = t5;
207
+ $[6] = t6;
208
+ } else t6 = $[6];
209
+ const items = t6;
210
+ let t7;
211
+ if ($[7] !== resolveLocally) {
212
+ t7 = (assets) => resolveLocally ? assets : assets.map(_temp2);
213
+ $[7] = resolveLocally;
214
+ $[8] = t7;
215
+ } else t7 = $[8];
216
+ const toStorageFormat = t7;
217
+ const itemsRef = React.useRef(items);
218
+ let t8;
219
+ if ($[9] !== items) {
220
+ t8 = () => {
221
+ itemsRef.current = items;
222
+ };
223
+ $[9] = items;
224
+ $[10] = t8;
225
+ } else t8 = $[10];
226
+ React.useLayoutEffect(t8);
227
+ let t9;
228
+ if ($[11] !== fieldName || $[12] !== onFieldChange || $[13] !== toStorageFormat) {
229
+ t9 = (assets_0) => {
230
+ const next = [...itemsRef.current];
231
+ for (const asset of assets_0) if (!next.some((item) => item._fileId === asset._fileId)) next.push(asset);
232
+ itemsRef.current = next;
233
+ onFieldChange(fieldName, toStorageFormat(next));
234
+ };
235
+ $[11] = fieldName;
236
+ $[12] = onFieldChange;
237
+ $[13] = toStorageFormat;
238
+ $[14] = t9;
239
+ } else t9 = $[14];
240
+ const addAssets = t9;
241
+ const t10 = project?.id;
242
+ let t11;
243
+ if ($[15] !== addAssets) {
244
+ t11 = (result) => {
245
+ addAssets([{
246
+ ...result,
247
+ alt: "",
248
+ _fileId: result.fileId
249
+ }]);
250
+ };
251
+ $[15] = addAssets;
252
+ $[16] = t11;
253
+ } else t11 = $[16];
254
+ let t12;
255
+ if ($[17] !== t10 || $[18] !== t11) {
256
+ t12 = {
257
+ projectId: t10,
258
+ onFileCommitted: t11
259
+ };
260
+ $[17] = t10;
261
+ $[18] = t11;
262
+ $[19] = t12;
263
+ } else t12 = $[19];
264
+ const { uploads, uploadFiles } = useFileUpload(t12);
210
265
  const [pickerOpen, setPickerOpen] = React.useState(false);
211
266
  const [lightboxAsset, setLightboxAsset] = React.useState(null);
212
- let t2;
213
- if ($[3] === Symbol.for("react.memo_cache_sentinel")) {
214
- t2 = { coordinateGetter: sortableKeyboardCoordinates };
215
- $[3] = t2;
216
- } else t2 = $[3];
217
- const sensors = useSensors(useSensor(PointerSensor), useSensor(KeyboardSensor, t2));
218
- const handleDragEnd = (event) => {
219
- const { active, over } = event;
220
- if (!over || active.id === over.id) return;
221
- const oldIndex = items.findIndex((a_1) => String(a_1._fileId) === active.id);
222
- const newIndex = items.findIndex((a_2) => String(a_2._fileId) === over.id);
223
- if (oldIndex === -1 || newIndex === -1) return;
224
- const reordered = [...items];
225
- const [moved] = reordered.splice(oldIndex, 1);
226
- reordered.splice(newIndex, 0, moved);
227
- onFieldChange(fieldName, toStorageFormat(reordered));
228
- };
229
- const handleRemove = (fileId_0) => {
230
- onFieldChange(fieldName, toStorageFormat(items.filter((a_3) => a_3._fileId !== fileId_0)));
231
- };
232
- const handleSelectMultiple = (files) => {
233
- onFieldChange(fieldName, [...toStorageFormat(items), ...files.map(_temp4)]);
234
- setPickerOpen(false);
235
- };
236
- const T0 = UploadDropZone;
237
- const t3 = "space-y-4 px-2 py-4";
238
- const t4 = items.length > 0 && /* @__PURE__ */ jsx(DndContext, {
239
- sensors,
240
- collisionDetection: closestCenter,
241
- onDragEnd: handleDragEnd,
242
- modifiers: [restrictToVerticalAxis],
243
- children: /* @__PURE__ */ jsx(SortableContext, {
244
- items: items.map(_temp5),
245
- strategy: verticalListSortingStrategy,
246
- children: /* @__PURE__ */ jsx("ul", {
247
- className: "flex flex-col gap-1",
248
- children: items.map((asset) => /* @__PURE__ */ jsx(SortableAssetItem, {
249
- asset,
250
- assetType,
251
- onRemove: handleRemove,
252
- onAssetOpen: setLightboxAsset
253
- }, asset._fileId))
267
+ let t13;
268
+ if ($[20] === Symbol.for("react.memo_cache_sentinel")) {
269
+ t13 = { coordinateGetter: sortableKeyboardCoordinates };
270
+ $[20] = t13;
271
+ } else t13 = $[20];
272
+ const sensors = useSensors(useSensor(PointerSensor), useSensor(KeyboardSensor, t13));
273
+ let t14;
274
+ if ($[21] !== fieldName || $[22] !== items || $[23] !== onFieldChange || $[24] !== toStorageFormat) {
275
+ t14 = (event) => {
276
+ const { active, over } = event;
277
+ if (!over || active.id === over.id) return;
278
+ const oldIndex = items.findIndex((a_1) => a_1._fileId === active.id);
279
+ const newIndex = items.findIndex((a_2) => a_2._fileId === over.id);
280
+ if (oldIndex === -1 || newIndex === -1) return;
281
+ const reordered = [...items];
282
+ const [moved] = reordered.splice(oldIndex, 1);
283
+ reordered.splice(newIndex, 0, moved);
284
+ onFieldChange(fieldName, toStorageFormat(reordered));
285
+ };
286
+ $[21] = fieldName;
287
+ $[22] = items;
288
+ $[23] = onFieldChange;
289
+ $[24] = toStorageFormat;
290
+ $[25] = t14;
291
+ } else t14 = $[25];
292
+ const handleDragEnd = t14;
293
+ let t15;
294
+ if ($[26] !== fieldName || $[27] !== items || $[28] !== onFieldChange || $[29] !== toStorageFormat) {
295
+ t15 = (fileId) => {
296
+ onFieldChange(fieldName, toStorageFormat(items.filter((a_3) => a_3._fileId !== fileId)));
297
+ };
298
+ $[26] = fieldName;
299
+ $[27] = items;
300
+ $[28] = onFieldChange;
301
+ $[29] = toStorageFormat;
302
+ $[30] = t15;
303
+ } else t15 = $[30];
304
+ const handleRemove = t15;
305
+ let t16;
306
+ if ($[31] !== addAssets) {
307
+ t16 = (files) => {
308
+ addAssets(files.map(_temp3));
309
+ setPickerOpen(false);
310
+ };
311
+ $[31] = addAssets;
312
+ $[32] = t16;
313
+ } else t16 = $[32];
314
+ const handleSelectMultiple = t16;
315
+ let t17;
316
+ if ($[33] !== assetType || $[34] !== handleDragEnd || $[35] !== handleRemove || $[36] !== items || $[37] !== offerDelete || $[38] !== resolveLocally || $[39] !== sensors) {
317
+ t17 = items.length > 0 && /* @__PURE__ */ jsx(DndContext, {
318
+ sensors,
319
+ collisionDetection: closestCenter,
320
+ onDragEnd: handleDragEnd,
321
+ modifiers: [restrictToVerticalAxis],
322
+ children: /* @__PURE__ */ jsx(SortableContext, {
323
+ items: items.map(_temp4),
324
+ strategy: verticalListSortingStrategy,
325
+ children: /* @__PURE__ */ jsx("ul", {
326
+ className: "flex flex-col gap-1",
327
+ children: items.map((asset_0) => /* @__PURE__ */ jsx(SortableAssetItem, {
328
+ asset: asset_0,
329
+ assetType,
330
+ onRemove: handleRemove,
331
+ onAssetOpen: setLightboxAsset,
332
+ persisted: !resolveLocally,
333
+ offerDelete
334
+ }, asset_0._fileId))
335
+ })
254
336
  })
255
- })
256
- });
257
- let t5;
258
- if ($[4] !== setPickerOpen) {
259
- t5 = () => setPickerOpen(true);
260
- $[4] = setPickerOpen;
261
- $[5] = t5;
262
- } else t5 = $[5];
263
- let t6;
264
- if ($[6] !== isImage || $[7] !== t5 || $[8] !== uploadFiles || $[9] !== uploads) {
265
- t6 = /* @__PURE__ */ jsx(AssetActionButtons, {
337
+ });
338
+ $[33] = assetType;
339
+ $[34] = handleDragEnd;
340
+ $[35] = handleRemove;
341
+ $[36] = items;
342
+ $[37] = offerDelete;
343
+ $[38] = resolveLocally;
344
+ $[39] = sensors;
345
+ $[40] = t17;
346
+ } else t17 = $[40];
347
+ let t18;
348
+ if ($[41] === Symbol.for("react.memo_cache_sentinel")) {
349
+ t18 = () => setPickerOpen(true);
350
+ $[41] = t18;
351
+ } else t18 = $[41];
352
+ let t19;
353
+ if ($[42] !== accept || $[43] !== isImage || $[44] !== uploadFiles || $[45] !== uploads) {
354
+ t19 = /* @__PURE__ */ jsx(AssetActionButtons, {
266
355
  isImage,
267
356
  multiple: true,
268
357
  fileInputRef,
269
- onPickerOpen: t5,
358
+ onPickerOpen: t18,
270
359
  onFilesSelected: uploadFiles,
271
- uploads
360
+ uploads,
361
+ accept
272
362
  });
273
- $[6] = isImage;
274
- $[7] = t5;
275
- $[8] = uploadFiles;
276
- $[9] = uploads;
277
- $[10] = t6;
278
- } else t6 = $[10];
279
- let t7;
280
- if ($[11] !== t4 || $[12] !== t6) {
281
- t7 = /* @__PURE__ */ jsxs("div", {
282
- className: t3,
283
- children: [t4, t6]
363
+ $[42] = accept;
364
+ $[43] = isImage;
365
+ $[44] = uploadFiles;
366
+ $[45] = uploads;
367
+ $[46] = t19;
368
+ } else t19 = $[46];
369
+ let t20;
370
+ if ($[47] !== t17 || $[48] !== t19) {
371
+ t20 = /* @__PURE__ */ jsxs("div", {
372
+ className: "space-y-4 px-2 py-4",
373
+ children: [t17, t19]
284
374
  });
285
- $[11] = t4;
286
- $[12] = t6;
287
- $[13] = t7;
288
- } else t7 = $[13];
289
- let t8;
290
- if ($[14] !== assetType || $[15] !== handleSelectMultiple || $[16] !== pickerOpen || $[17] !== setPickerOpen) {
291
- t8 = /* @__PURE__ */ jsx(AssetPickerModal, {
375
+ $[47] = t17;
376
+ $[48] = t19;
377
+ $[49] = t20;
378
+ } else t20 = $[49];
379
+ let t21;
380
+ if ($[50] !== assetType || $[51] !== handleSelectMultiple || $[52] !== pickerOpen) {
381
+ t21 = /* @__PURE__ */ jsx(AssetPickerModal, {
292
382
  open: pickerOpen,
293
383
  onOpenChange: setPickerOpen,
294
384
  assetType,
295
385
  mode: "multiple",
296
- onSelectSingle: _temp6,
386
+ onSelectSingle: _temp5,
297
387
  onSelectMultiple: handleSelectMultiple
298
388
  });
299
- $[14] = assetType;
300
- $[15] = handleSelectMultiple;
301
- $[16] = pickerOpen;
302
- $[17] = setPickerOpen;
303
- $[18] = t8;
304
- } else t8 = $[18];
305
- let t9;
306
- if ($[19] !== lightboxAsset || $[20] !== setLightboxAsset) {
307
- t9 = lightboxAsset && /* @__PURE__ */ jsx(AssetLightbox, {
389
+ $[50] = assetType;
390
+ $[51] = handleSelectMultiple;
391
+ $[52] = pickerOpen;
392
+ $[53] = t21;
393
+ } else t21 = $[53];
394
+ let t22;
395
+ if ($[54] !== lightboxAsset) {
396
+ t22 = lightboxAsset && /* @__PURE__ */ jsx(AssetLightbox, {
308
397
  open: !!lightboxAsset,
309
398
  onOpenChange: (open) => {
310
399
  if (!open) setLightboxAsset(null);
311
400
  },
312
401
  fileId: lightboxAsset._fileId
313
402
  });
314
- $[19] = lightboxAsset;
315
- $[20] = setLightboxAsset;
316
- $[21] = t9;
317
- } else t9 = $[21];
318
- let t10;
319
- if ($[22] !== T0 || $[23] !== t7 || $[24] !== t8 || $[25] !== t9 || $[26] !== uploadFiles) {
320
- t10 = /* @__PURE__ */ jsxs(T0, {
403
+ $[54] = lightboxAsset;
404
+ $[55] = t22;
405
+ } else t22 = $[55];
406
+ let t23;
407
+ if ($[56] !== t20 || $[57] !== t21 || $[58] !== t22 || $[59] !== uploadFiles) {
408
+ t23 = /* @__PURE__ */ jsxs(UploadDropZone, {
321
409
  onDrop: uploadFiles,
322
410
  children: [
323
- t7,
324
- t8,
325
- t9
411
+ t20,
412
+ t21,
413
+ t22
326
414
  ]
327
415
  });
328
- $[22] = T0;
329
- $[23] = t7;
330
- $[24] = t8;
331
- $[25] = t9;
332
- $[26] = uploadFiles;
333
- $[27] = t10;
334
- } else t10 = $[27];
335
- return t10;
416
+ $[56] = t20;
417
+ $[57] = t21;
418
+ $[58] = t22;
419
+ $[59] = uploadFiles;
420
+ $[60] = t23;
421
+ } else t23 = $[60];
422
+ return t23;
336
423
  };
337
424
  function _temp(a) {
338
425
  return !!a && !!a.url;
@@ -340,16 +427,17 @@ function _temp(a) {
340
427
  function _temp2(a_0) {
341
428
  return { _fileId: a_0._fileId };
342
429
  }
343
- function _temp3(assets) {
344
- return assets.map(_temp2);
345
- }
346
- function _temp4(f) {
347
- return { _fileId: f.id };
430
+ function _temp3(file) {
431
+ return {
432
+ ...file,
433
+ alt: file.alt ?? "",
434
+ _fileId: file.id
435
+ };
348
436
  }
349
- function _temp5(a_4) {
350
- return String(a_4._fileId);
437
+ function _temp4(a_4) {
438
+ return a_4._fileId;
351
439
  }
352
- function _temp6() {}
440
+ function _temp5() {}
353
441
 
354
442
  //#endregion
355
443
  export { MultipleAssetFieldEditor };