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
@@ -2,16 +2,17 @@ import { FORMAT_FLAGS } from "../../lib/modifierFormats.js";
2
2
  import { isValidTextLinkTarget } from "../../lib/textLinks.js";
3
3
  import { lexicalStateToMarkdown } from "../../lib/lexicalState.js";
4
4
  import { INPUT_BASE_STYLES, INPUT_FOCUS_STYLES, cn } from "../../../lib/utils.js";
5
- import { TextLinkPopover } from "./TextLinkPopover.js";
6
5
  import { $selectionHasHighlight, $toggleHighlight } from "./HighlightNode.js";
7
6
  import { createEditorConfig, normalizeLexicalState } from "./editorConfig.js";
8
7
  import { InlineStylesPlugin } from "./InlineStylesPlugin.js";
8
+ import { MaxLengthPlugin } from "./MaxLengthPlugin.js";
9
9
  import { selectTextLink } from "./selectTextLink.js";
10
+ import { TextLinkPopover } from "./TextLinkPopover.js";
10
11
  import { c } from "react/compiler-runtime";
11
12
  import * as React from "react";
12
13
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
13
14
  import { Button } from "@camox/ui/button";
14
- import { Bold, Highlighter, Italic, Underline } from "lucide-react";
15
+ import { Bold, Highlighter, Italic, Strikethrough } from "lucide-react";
15
16
  import { FloatingToolbar } from "@camox/ui/floating-toolbar";
16
17
  import { Toggle } from "@camox/ui/toggle";
17
18
  import { $createLinkNode, TOGGLE_LINK_COMMAND } from "@lexical/link";
@@ -26,42 +27,34 @@ import { $createTextNode, $getSelection, $isRangeSelection, $setSelection, COMMA
26
27
 
27
28
  //#region src/core/components/lexical/SidebarLexicalEditor.tsx
28
29
  function EnterAsLineBreakHandler() {
29
- const $ = c(4);
30
- if ($[0] !== "b2abd53d41bcf7845fda084f34768059ff9a381fdb75359c9fd3fc0de4052372") {
31
- for (let $i = 0; $i < 4; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
32
- $[0] = "b2abd53d41bcf7845fda084f34768059ff9a381fdb75359c9fd3fc0de4052372";
33
- }
30
+ const $ = c(3);
34
31
  const [editor] = useLexicalComposerContext();
35
32
  let t0;
36
33
  let t1;
37
- if ($[1] !== editor) {
34
+ if ($[0] !== editor) {
38
35
  t0 = () => editor.registerCommand(KEY_ENTER_COMMAND, (event) => {
39
36
  event?.preventDefault();
40
37
  editor.dispatchCommand(INSERT_LINE_BREAK_COMMAND, false);
41
38
  return true;
42
39
  }, COMMAND_PRIORITY_LOW);
43
40
  t1 = [editor];
44
- $[1] = editor;
45
- $[2] = t0;
46
- $[3] = t1;
41
+ $[0] = editor;
42
+ $[1] = t0;
43
+ $[2] = t1;
47
44
  } else {
48
- t0 = $[2];
49
- t1 = $[3];
45
+ t0 = $[1];
46
+ t1 = $[2];
50
47
  }
51
48
  React.useEffect(t0, t1);
52
49
  return null;
53
50
  }
54
51
  function ExternalStateSync(t0) {
55
- const $ = c(6);
56
- if ($[0] !== "b2abd53d41bcf7845fda084f34768059ff9a381fdb75359c9fd3fc0de4052372") {
57
- for (let $i = 0; $i < 6; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
58
- $[0] = "b2abd53d41bcf7845fda084f34768059ff9a381fdb75359c9fd3fc0de4052372";
59
- }
52
+ const $ = c(5);
60
53
  const { value, isSyncingRef } = t0;
61
54
  const [editor] = useLexicalComposerContext();
62
55
  let t1;
63
56
  let t2;
64
- if ($[1] !== editor || $[2] !== isSyncingRef || $[3] !== value) {
57
+ if ($[0] !== editor || $[1] !== isSyncingRef || $[2] !== value) {
65
58
  t1 = () => {
66
59
  const root = editor.getRootElement();
67
60
  if (root !== null && root === document.activeElement) return;
@@ -77,43 +70,39 @@ function ExternalStateSync(t0) {
77
70
  value,
78
71
  isSyncingRef
79
72
  ];
80
- $[1] = editor;
81
- $[2] = isSyncingRef;
82
- $[3] = value;
83
- $[4] = t1;
84
- $[5] = t2;
73
+ $[0] = editor;
74
+ $[1] = isSyncingRef;
75
+ $[2] = value;
76
+ $[3] = t1;
77
+ $[4] = t2;
85
78
  } else {
86
- t1 = $[4];
87
- t2 = $[5];
79
+ t1 = $[3];
80
+ t2 = $[4];
88
81
  }
89
82
  React.useEffect(t1, t2);
90
83
  return null;
91
84
  }
92
85
  function SidebarFloatingTextToolbar() {
93
- const $ = c(72);
94
- if ($[0] !== "b2abd53d41bcf7845fda084f34768059ff9a381fdb75359c9fd3fc0de4052372") {
95
- for (let $i = 0; $i < 72; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
96
- $[0] = "b2abd53d41bcf7845fda084f34768059ff9a381fdb75359c9fd3fc0de4052372";
97
- }
86
+ const $ = c(71);
98
87
  const [editor] = useLexicalComposerContext();
99
88
  const [open, setOpen] = React.useState(false);
100
89
  const [selectedText, setSelectedText] = React.useState("");
101
90
  const [linkTarget, setLinkTarget] = React.useState(null);
102
91
  const [linkClickAnchor, setLinkClickAnchor] = React.useState(null);
103
92
  let t0;
104
- if ($[1] === Symbol.for("react.memo_cache_sentinel")) {
93
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
105
94
  t0 = {
106
95
  visible: false,
107
96
  top: 0,
108
97
  left: 0,
109
98
  activeFormats: 0
110
99
  };
111
- $[1] = t0;
112
- } else t0 = $[1];
100
+ $[0] = t0;
101
+ } else t0 = $[0];
113
102
  const [toolbarState, setToolbarState] = React.useState(t0);
114
103
  const lastSelectionRef = React.useRef(null);
115
104
  let t1;
116
- if ($[2] !== editor || $[3] !== open) {
105
+ if ($[1] !== editor || $[2] !== open) {
117
106
  t1 = () => {
118
107
  if (open) return;
119
108
  const root = editor.getRootElement();
@@ -143,7 +132,7 @@ function SidebarFloatingTextToolbar() {
143
132
  setSelectedText(selection.getTextContent());
144
133
  if (selection.hasFormat("bold")) activeFormats = activeFormats | FORMAT_FLAGS.bold;
145
134
  if (selection.hasFormat("italic")) activeFormats = activeFormats | FORMAT_FLAGS.italic;
146
- if (selection.hasFormat("underline")) activeFormats = activeFormats | FORMAT_FLAGS.underline;
135
+ if (selection.hasFormat("strikethrough")) activeFormats = activeFormats | FORMAT_FLAGS.strikethrough;
147
136
  if ($selectionHasHighlight()) activeFormats = activeFormats | FORMAT_FLAGS.highlight;
148
137
  let node = selection.anchor.getNode();
149
138
  while (node) {
@@ -163,14 +152,14 @@ function SidebarFloatingTextToolbar() {
163
152
  activeFormats
164
153
  });
165
154
  };
166
- $[2] = editor;
167
- $[3] = open;
168
- $[4] = t1;
169
- } else t1 = $[4];
155
+ $[1] = editor;
156
+ $[2] = open;
157
+ $[3] = t1;
158
+ } else t1 = $[3];
170
159
  const updateToolbar = t1;
171
160
  let t2;
172
161
  let t3;
173
- if ($[5] !== editor || $[6] !== updateToolbar) {
162
+ if ($[4] !== editor || $[5] !== updateToolbar) {
174
163
  t2 = () => {
175
164
  const doc = editor.getRootElement()?.ownerDocument ?? document;
176
165
  doc.addEventListener("selectionchange", updateToolbar);
@@ -183,31 +172,31 @@ function SidebarFloatingTextToolbar() {
183
172
  };
184
173
  };
185
174
  t3 = [editor, updateToolbar];
186
- $[5] = editor;
187
- $[6] = updateToolbar;
188
- $[7] = t2;
189
- $[8] = t3;
175
+ $[4] = editor;
176
+ $[5] = updateToolbar;
177
+ $[6] = t2;
178
+ $[7] = t3;
190
179
  } else {
191
- t2 = $[7];
192
- t3 = $[8];
180
+ t2 = $[6];
181
+ t3 = $[7];
193
182
  }
194
183
  React.useEffect(t2, t3);
195
184
  let t4;
196
185
  let t5;
197
- if ($[9] !== editor || $[10] !== updateToolbar) {
186
+ if ($[8] !== editor || $[9] !== updateToolbar) {
198
187
  t4 = () => editor.registerUpdateListener(() => updateToolbar());
199
188
  t5 = [editor, updateToolbar];
200
- $[9] = editor;
201
- $[10] = updateToolbar;
202
- $[11] = t4;
203
- $[12] = t5;
189
+ $[8] = editor;
190
+ $[9] = updateToolbar;
191
+ $[10] = t4;
192
+ $[11] = t5;
204
193
  } else {
205
- t4 = $[11];
206
- t5 = $[12];
194
+ t4 = $[10];
195
+ t5 = $[11];
207
196
  }
208
197
  React.useEffect(t4, t5);
209
198
  let t6;
210
- if ($[13] !== editor) {
199
+ if ($[12] !== editor) {
211
200
  t6 = () => editor.registerRootListener((root_1) => {
212
201
  if (!root_1) return;
213
202
  const handleLinkClick = (event) => {
@@ -233,30 +222,30 @@ function SidebarFloatingTextToolbar() {
233
222
  root_1.addEventListener("click", handleLinkClick);
234
223
  return () => root_1.removeEventListener("click", handleLinkClick);
235
224
  });
236
- $[13] = editor;
237
- $[14] = t6;
238
- } else t6 = $[14];
225
+ $[12] = editor;
226
+ $[13] = t6;
227
+ } else t6 = $[13];
239
228
  let t7;
240
- if ($[15] !== editor || $[16] !== updateToolbar) {
229
+ if ($[14] !== editor || $[15] !== updateToolbar) {
241
230
  t7 = [editor, updateToolbar];
242
- $[15] = editor;
243
- $[16] = updateToolbar;
244
- $[17] = t7;
245
- } else t7 = $[17];
231
+ $[14] = editor;
232
+ $[15] = updateToolbar;
233
+ $[16] = t7;
234
+ } else t7 = $[16];
246
235
  React.useEffect(t6, t7);
247
236
  let t8;
248
- if ($[18] === Symbol.for("react.memo_cache_sentinel")) {
237
+ if ($[17] === Symbol.for("react.memo_cache_sentinel")) {
249
238
  t8 = () => {
250
239
  const selection_0 = $getSelection();
251
240
  if ($isRangeSelection(selection_0) && !selection_0.isCollapsed()) return;
252
241
  if (!lastSelectionRef.current) return;
253
242
  $setSelection(lastSelectionRef.current.clone());
254
243
  };
255
- $[18] = t8;
256
- } else t8 = $[18];
244
+ $[17] = t8;
245
+ } else t8 = $[17];
257
246
  const restoreSelection = t8;
258
247
  let t9;
259
- if ($[19] !== editor) {
248
+ if ($[18] !== editor) {
260
249
  t9 = (formatKey) => {
261
250
  editor.update(() => {
262
251
  restoreSelection();
@@ -267,12 +256,12 @@ function SidebarFloatingTextToolbar() {
267
256
  editor.dispatchCommand(FORMAT_TEXT_COMMAND, formatKey);
268
257
  });
269
258
  };
270
- $[19] = editor;
271
- $[20] = t9;
272
- } else t9 = $[20];
259
+ $[18] = editor;
260
+ $[19] = t9;
261
+ } else t9 = $[19];
273
262
  const applyFormat = t9;
274
263
  let t10;
275
- if ($[21] !== editor) {
264
+ if ($[20] !== editor) {
276
265
  t10 = (target_0, text) => {
277
266
  editor.update(() => {
278
267
  restoreSelection();
@@ -293,23 +282,23 @@ function SidebarFloatingTextToolbar() {
293
282
  setOpen(false);
294
283
  setLinkClickAnchor(null);
295
284
  };
296
- $[21] = editor;
297
- $[22] = t10;
298
- } else t10 = $[22];
285
+ $[20] = editor;
286
+ $[21] = t10;
287
+ } else t10 = $[21];
299
288
  const applyTarget = t10;
300
289
  let t11;
301
- if ($[23] === Symbol.for("react.memo_cache_sentinel")) {
290
+ if ($[22] === Symbol.for("react.memo_cache_sentinel")) {
302
291
  t11 = (nextOpen) => {
303
292
  setOpen(nextOpen);
304
293
  if (!nextOpen) setLinkClickAnchor(null);
305
294
  };
306
- $[23] = t11;
307
- } else t11 = $[23];
295
+ $[22] = t11;
296
+ } else t11 = $[22];
308
297
  const handleOpenChange = t11;
309
298
  const handleMouseDown = _temp;
310
299
  if (linkClickAnchor) {
311
300
  let t12;
312
- if ($[24] !== linkClickAnchor.left || $[25] !== linkClickAnchor.top) {
301
+ if ($[23] !== linkClickAnchor.left || $[24] !== linkClickAnchor.top) {
313
302
  t12 = /* @__PURE__ */ jsx(Button, {
314
303
  type: "button",
315
304
  variant: "ghost",
@@ -322,18 +311,18 @@ function SidebarFloatingTextToolbar() {
322
311
  left: linkClickAnchor.left
323
312
  }
324
313
  });
325
- $[24] = linkClickAnchor.left;
326
- $[25] = linkClickAnchor.top;
327
- $[26] = t12;
328
- } else t12 = $[26];
314
+ $[23] = linkClickAnchor.left;
315
+ $[24] = linkClickAnchor.top;
316
+ $[25] = t12;
317
+ } else t12 = $[25];
329
318
  let t13;
330
- if ($[27] !== applyTarget) {
319
+ if ($[26] !== applyTarget) {
331
320
  t13 = () => applyTarget(null);
332
- $[27] = applyTarget;
333
- $[28] = t13;
334
- } else t13 = $[28];
321
+ $[26] = applyTarget;
322
+ $[27] = t13;
323
+ } else t13 = $[27];
335
324
  let t14;
336
- if ($[29] !== applyTarget || $[30] !== linkTarget || $[31] !== open || $[32] !== selectedText || $[33] !== t12 || $[34] !== t13) {
325
+ if ($[28] !== applyTarget || $[29] !== linkTarget || $[30] !== open || $[31] !== selectedText || $[32] !== t12 || $[33] !== t13) {
337
326
  t14 = /* @__PURE__ */ jsx(TextLinkPopover, {
338
327
  open,
339
328
  onOpenChange: handleOpenChange,
@@ -343,42 +332,42 @@ function SidebarFloatingTextToolbar() {
343
332
  onSave: applyTarget,
344
333
  onUnlink: t13
345
334
  });
346
- $[29] = applyTarget;
347
- $[30] = linkTarget;
348
- $[31] = open;
349
- $[32] = selectedText;
350
- $[33] = t12;
351
- $[34] = t13;
352
- $[35] = t14;
353
- } else t14 = $[35];
335
+ $[28] = applyTarget;
336
+ $[29] = linkTarget;
337
+ $[30] = open;
338
+ $[31] = selectedText;
339
+ $[32] = t12;
340
+ $[33] = t13;
341
+ $[34] = t14;
342
+ } else t14 = $[34];
354
343
  return t14;
355
344
  }
356
345
  if (!toolbarState.visible) return null;
357
346
  let t12;
358
- if ($[36] !== toolbarState.left || $[37] !== toolbarState.top) {
347
+ if ($[35] !== toolbarState.left || $[36] !== toolbarState.top) {
359
348
  t12 = {
360
349
  top: toolbarState.top,
361
350
  left: toolbarState.left
362
351
  };
363
- $[36] = toolbarState.left;
364
- $[37] = toolbarState.top;
365
- $[38] = t12;
366
- } else t12 = $[38];
352
+ $[35] = toolbarState.left;
353
+ $[36] = toolbarState.top;
354
+ $[37] = t12;
355
+ } else t12 = $[37];
367
356
  const t13 = toolbarState.activeFormats & FORMAT_FLAGS.bold ? "on" : "off";
368
357
  const t14 = !!(toolbarState.activeFormats & FORMAT_FLAGS.bold);
369
358
  let t15;
370
- if ($[39] !== applyFormat) {
359
+ if ($[38] !== applyFormat) {
371
360
  t15 = () => applyFormat("bold");
372
- $[39] = applyFormat;
373
- $[40] = t15;
374
- } else t15 = $[40];
361
+ $[38] = applyFormat;
362
+ $[39] = t15;
363
+ } else t15 = $[39];
375
364
  let t16;
376
- if ($[41] === Symbol.for("react.memo_cache_sentinel")) {
365
+ if ($[40] === Symbol.for("react.memo_cache_sentinel")) {
377
366
  t16 = /* @__PURE__ */ jsx(Bold, {});
378
- $[41] = t16;
379
- } else t16 = $[41];
367
+ $[40] = t16;
368
+ } else t16 = $[40];
380
369
  let t17;
381
- if ($[42] !== t13 || $[43] !== t14 || $[44] !== t15) {
370
+ if ($[41] !== t13 || $[42] !== t14 || $[43] !== t15) {
382
371
  t17 = /* @__PURE__ */ jsx(Toggle, {
383
372
  "data-state": t13,
384
373
  pressed: t14,
@@ -389,26 +378,26 @@ function SidebarFloatingTextToolbar() {
389
378
  onPressedChange: t15,
390
379
  children: t16
391
380
  });
392
- $[42] = t13;
393
- $[43] = t14;
394
- $[44] = t15;
395
- $[45] = t17;
396
- } else t17 = $[45];
381
+ $[41] = t13;
382
+ $[42] = t14;
383
+ $[43] = t15;
384
+ $[44] = t17;
385
+ } else t17 = $[44];
397
386
  const t18 = toolbarState.activeFormats & FORMAT_FLAGS.italic ? "on" : "off";
398
387
  const t19 = !!(toolbarState.activeFormats & FORMAT_FLAGS.italic);
399
388
  let t20;
400
- if ($[46] !== applyFormat) {
389
+ if ($[45] !== applyFormat) {
401
390
  t20 = () => applyFormat("italic");
402
- $[46] = applyFormat;
403
- $[47] = t20;
404
- } else t20 = $[47];
391
+ $[45] = applyFormat;
392
+ $[46] = t20;
393
+ } else t20 = $[46];
405
394
  let t21;
406
- if ($[48] === Symbol.for("react.memo_cache_sentinel")) {
395
+ if ($[47] === Symbol.for("react.memo_cache_sentinel")) {
407
396
  t21 = /* @__PURE__ */ jsx(Italic, {});
408
- $[48] = t21;
409
- } else t21 = $[48];
397
+ $[47] = t21;
398
+ } else t21 = $[47];
410
399
  let t22;
411
- if ($[49] !== t18 || $[50] !== t19 || $[51] !== t20) {
400
+ if ($[48] !== t18 || $[49] !== t19 || $[50] !== t20) {
412
401
  t22 = /* @__PURE__ */ jsx(Toggle, {
413
402
  "data-state": t18,
414
403
  pressed: t19,
@@ -419,26 +408,26 @@ function SidebarFloatingTextToolbar() {
419
408
  onPressedChange: t20,
420
409
  children: t21
421
410
  });
422
- $[49] = t18;
423
- $[50] = t19;
424
- $[51] = t20;
425
- $[52] = t22;
426
- } else t22 = $[52];
411
+ $[48] = t18;
412
+ $[49] = t19;
413
+ $[50] = t20;
414
+ $[51] = t22;
415
+ } else t22 = $[51];
427
416
  let t23;
428
- if ($[53] === Symbol.for("react.memo_cache_sentinel")) {
417
+ if ($[52] === Symbol.for("react.memo_cache_sentinel")) {
429
418
  t23 = [{
430
- key: "underline",
431
- label: "Underline",
432
- icon: Underline
419
+ key: "strikethrough",
420
+ label: "Strikethrough",
421
+ icon: Strikethrough
433
422
  }, {
434
423
  key: "highlight",
435
424
  label: "Highlight",
436
425
  icon: Highlighter
437
426
  }];
438
- $[53] = t23;
439
- } else t23 = $[53];
427
+ $[52] = t23;
428
+ } else t23 = $[52];
440
429
  let t24;
441
- if ($[54] !== applyFormat || $[55] !== toolbarState.activeFormats) {
430
+ if ($[53] !== applyFormat || $[54] !== toolbarState.activeFormats) {
442
431
  t24 = t23.map((t25) => {
443
432
  const { key, label, icon: Icon } = t25;
444
433
  return /* @__PURE__ */ jsx(Toggle, {
@@ -451,28 +440,28 @@ function SidebarFloatingTextToolbar() {
451
440
  children: /* @__PURE__ */ jsx(Icon, {})
452
441
  }, key);
453
442
  });
454
- $[54] = applyFormat;
455
- $[55] = toolbarState.activeFormats;
456
- $[56] = t24;
457
- } else t24 = $[56];
443
+ $[53] = applyFormat;
444
+ $[54] = toolbarState.activeFormats;
445
+ $[55] = t24;
446
+ } else t24 = $[55];
458
447
  let t25;
459
- if ($[57] === Symbol.for("react.memo_cache_sentinel")) {
448
+ if ($[56] === Symbol.for("react.memo_cache_sentinel")) {
460
449
  t25 = /* @__PURE__ */ jsx(Button, {
461
450
  type: "button",
462
451
  variant: "ghost",
463
452
  size: "sm",
464
453
  className: "text-foreground hover:text-foreground h-7 min-w-7 px-1.5"
465
454
  });
466
- $[57] = t25;
467
- } else t25 = $[57];
455
+ $[56] = t25;
456
+ } else t25 = $[56];
468
457
  let t26;
469
- if ($[58] !== applyTarget) {
458
+ if ($[57] !== applyTarget) {
470
459
  t26 = () => applyTarget(null);
471
- $[58] = applyTarget;
472
- $[59] = t26;
473
- } else t26 = $[59];
460
+ $[57] = applyTarget;
461
+ $[58] = t26;
462
+ } else t26 = $[58];
474
463
  let t27;
475
- if ($[60] !== applyTarget || $[61] !== linkTarget || $[62] !== open || $[63] !== selectedText || $[64] !== t26) {
464
+ if ($[59] !== applyTarget || $[60] !== linkTarget || $[61] !== open || $[62] !== selectedText || $[63] !== t26) {
476
465
  t27 = /* @__PURE__ */ jsx(TextLinkPopover, {
477
466
  open,
478
467
  onOpenChange: handleOpenChange,
@@ -482,15 +471,15 @@ function SidebarFloatingTextToolbar() {
482
471
  onSave: applyTarget,
483
472
  onUnlink: t26
484
473
  });
485
- $[60] = applyTarget;
486
- $[61] = linkTarget;
487
- $[62] = open;
488
- $[63] = selectedText;
489
- $[64] = t26;
490
- $[65] = t27;
491
- } else t27 = $[65];
474
+ $[59] = applyTarget;
475
+ $[60] = linkTarget;
476
+ $[61] = open;
477
+ $[62] = selectedText;
478
+ $[63] = t26;
479
+ $[64] = t27;
480
+ } else t27 = $[64];
492
481
  let t28;
493
- if ($[66] !== t12 || $[67] !== t17 || $[68] !== t22 || $[69] !== t24 || $[70] !== t27) {
482
+ if ($[65] !== t12 || $[66] !== t17 || $[67] !== t22 || $[68] !== t24 || $[69] !== t27) {
494
483
  t28 = /* @__PURE__ */ jsxs(FloatingToolbar, {
495
484
  onMouseDown: handleMouseDown,
496
485
  className: "fixed z-50 gap-0.5 rounded-lg p-1 shadow-lg",
@@ -502,13 +491,13 @@ function SidebarFloatingTextToolbar() {
502
491
  t27
503
492
  ]
504
493
  });
505
- $[66] = t12;
506
- $[67] = t17;
507
- $[68] = t22;
508
- $[69] = t24;
509
- $[70] = t27;
510
- $[71] = t28;
511
- } else t28 = $[71];
494
+ $[65] = t12;
495
+ $[66] = t17;
496
+ $[67] = t22;
497
+ $[68] = t24;
498
+ $[69] = t27;
499
+ $[70] = t28;
500
+ } else t28 = $[70];
512
501
  return t28;
513
502
  }
514
503
  function _temp(event_0) {
@@ -517,15 +506,11 @@ function _temp(event_0) {
517
506
  event_0.preventDefault();
518
507
  }
519
508
  function PasteUrlAsLinkHandler() {
520
- const $ = c(4);
521
- if ($[0] !== "b2abd53d41bcf7845fda084f34768059ff9a381fdb75359c9fd3fc0de4052372") {
522
- for (let $i = 0; $i < 4; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
523
- $[0] = "b2abd53d41bcf7845fda084f34768059ff9a381fdb75359c9fd3fc0de4052372";
524
- }
509
+ const $ = c(3);
525
510
  const [editor] = useLexicalComposerContext();
526
511
  let t0;
527
512
  let t1;
528
- if ($[1] !== editor) {
513
+ if ($[0] !== editor) {
529
514
  t0 = () => editor.registerCommand(PASTE_COMMAND, (event) => {
530
515
  const selection = $getSelection();
531
516
  if (!$isRangeSelection(selection) || selection.isCollapsed()) return false;
@@ -537,88 +522,196 @@ function PasteUrlAsLinkHandler() {
537
522
  return true;
538
523
  }, COMMAND_PRIORITY_LOW);
539
524
  t1 = [editor];
540
- $[1] = editor;
541
- $[2] = t0;
542
- $[3] = t1;
525
+ $[0] = editor;
526
+ $[1] = t0;
527
+ $[2] = t1;
543
528
  } else {
544
- t0 = $[2];
545
- t1 = $[3];
529
+ t0 = $[1];
530
+ t1 = $[2];
546
531
  }
547
532
  React.useEffect(t0, t1);
548
533
  return null;
549
534
  }
550
- function SidebarLexicalEditor({ id, value, onChange, onFocus, onBlur }) {
535
+ function SidebarLexicalEditor(t0) {
536
+ const $ = c(31);
537
+ const { id, value, maxLength, onChange, onFocus, onBlur } = t0;
551
538
  const timerRef = React.useRef(null);
552
539
  const onChangeRef = React.useRef(onChange);
553
- onChangeRef.current = onChange;
540
+ let t1;
541
+ if ($[0] !== onChange) {
542
+ t1 = () => {
543
+ onChangeRef.current = onChange;
544
+ };
545
+ $[0] = onChange;
546
+ $[1] = t1;
547
+ } else t1 = $[1];
548
+ React.useLayoutEffect(t1);
554
549
  const isSyncingRef = React.useRef(false);
555
550
  const pendingMarkdownRef = React.useRef(null);
556
- const flushChange = React.useCallback(() => {
557
- if (timerRef.current) clearTimeout(timerRef.current);
558
- timerRef.current = null;
559
- const markdown = pendingMarkdownRef.current;
560
- pendingMarkdownRef.current = null;
561
- if (markdown !== null) onChangeRef.current(markdown);
562
- }, []);
563
- const config = React.useMemo(() => createEditorConfig(value), []);
564
- const handleChange = React.useCallback((editorState) => {
565
- if (isSyncingRef.current) {
566
- isSyncingRef.current = false;
567
- return;
568
- }
569
- if (timerRef.current) clearTimeout(timerRef.current);
570
- pendingMarkdownRef.current = lexicalStateToMarkdown(editorState.toJSON());
571
- timerRef.current = window.setTimeout(flushChange, 300);
572
- }, [flushChange]);
573
- React.useEffect(() => flushChange, [flushChange]);
574
- return /* @__PURE__ */ jsx("div", {
575
- className: "w-full min-w-0",
576
- children: /* @__PURE__ */ jsxs(LexicalComposer, {
577
- initialConfig: config,
578
- children: [
579
- /* @__PURE__ */ jsx(RichTextPlugin, {
580
- contentEditable: /* @__PURE__ */ jsx(ContentEditable, {
581
- id,
582
- className: cn(INPUT_BASE_STYLES, INPUT_FOCUS_STYLES, "flex min-h-[80px] w-full px-3 py-2"),
583
- onFocus,
584
- onBlur: () => {
585
- flushChange();
586
- onBlur?.();
587
- }
588
- }),
589
- ErrorBoundary: LexicalErrorBoundary
590
- }),
591
- /* @__PURE__ */ jsx(OnChangePlugin, {
592
- onChange: handleChange,
593
- ignoreSelectionChange: true
594
- }),
595
- /* @__PURE__ */ jsx(HistoryPlugin, {}),
596
- /* @__PURE__ */ jsx(LinkPlugin, {}),
597
- /* @__PURE__ */ jsx(ExternalStateSync, {
598
- value,
599
- isSyncingRef
600
- }),
601
- /* @__PURE__ */ jsx(EnterAsLineBreakHandler, {}),
602
- /* @__PURE__ */ jsx(PasteUrlAsLinkHandler, {}),
603
- /* @__PURE__ */ jsx(SidebarFloatingTextToolbar, {}),
604
- /* @__PURE__ */ jsx(InlineStylesPlugin, {})
605
- ]
606
- })
607
- });
551
+ let t2;
552
+ if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
553
+ t2 = () => {
554
+ if (timerRef.current) clearTimeout(timerRef.current);
555
+ timerRef.current = null;
556
+ const markdown = pendingMarkdownRef.current;
557
+ pendingMarkdownRef.current = null;
558
+ if (markdown !== null) onChangeRef.current(markdown);
559
+ };
560
+ $[2] = t2;
561
+ } else t2 = $[2];
562
+ const flushChange = t2;
563
+ let t3;
564
+ if ($[3] !== value) {
565
+ t3 = () => createEditorConfig(value);
566
+ $[3] = value;
567
+ $[4] = t3;
568
+ } else t3 = $[4];
569
+ const [config] = React.useState(t3);
570
+ let t4;
571
+ if ($[5] === Symbol.for("react.memo_cache_sentinel")) {
572
+ t4 = (editorState) => {
573
+ if (isSyncingRef.current) {
574
+ isSyncingRef.current = false;
575
+ return;
576
+ }
577
+ if (timerRef.current) clearTimeout(timerRef.current);
578
+ pendingMarkdownRef.current = lexicalStateToMarkdown(editorState.toJSON());
579
+ timerRef.current = window.setTimeout(flushChange, 300);
580
+ };
581
+ $[5] = t4;
582
+ } else t4 = $[5];
583
+ const handleChange = t4;
584
+ let t5;
585
+ let t6;
586
+ if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
587
+ t5 = () => flushChange;
588
+ t6 = [flushChange];
589
+ $[6] = t5;
590
+ $[7] = t6;
591
+ } else {
592
+ t5 = $[6];
593
+ t6 = $[7];
594
+ }
595
+ React.useEffect(t5, t6);
596
+ let t7;
597
+ if ($[8] === Symbol.for("react.memo_cache_sentinel")) {
598
+ t7 = cn(INPUT_BASE_STYLES, INPUT_FOCUS_STYLES, "flex min-h-[80px] w-full px-3 py-2");
599
+ $[8] = t7;
600
+ } else t7 = $[8];
601
+ let t8;
602
+ if ($[9] !== onBlur) {
603
+ t8 = () => {
604
+ flushChange();
605
+ onBlur?.();
606
+ };
607
+ $[9] = onBlur;
608
+ $[10] = t8;
609
+ } else t8 = $[10];
610
+ let t9;
611
+ if ($[11] !== id || $[12] !== onFocus || $[13] !== t8) {
612
+ t9 = /* @__PURE__ */ jsx(RichTextPlugin, {
613
+ contentEditable: /* @__PURE__ */ jsx(ContentEditable, {
614
+ id,
615
+ className: t7,
616
+ onFocus,
617
+ onBlur: t8
618
+ }),
619
+ ErrorBoundary: LexicalErrorBoundary
620
+ });
621
+ $[11] = id;
622
+ $[12] = onFocus;
623
+ $[13] = t8;
624
+ $[14] = t9;
625
+ } else t9 = $[14];
626
+ let t10;
627
+ let t11;
628
+ let t12;
629
+ if ($[15] === Symbol.for("react.memo_cache_sentinel")) {
630
+ t10 = /* @__PURE__ */ jsx(OnChangePlugin, {
631
+ onChange: handleChange,
632
+ ignoreSelectionChange: true
633
+ });
634
+ t11 = /* @__PURE__ */ jsx(HistoryPlugin, {});
635
+ t12 = /* @__PURE__ */ jsx(LinkPlugin, {});
636
+ $[15] = t10;
637
+ $[16] = t11;
638
+ $[17] = t12;
639
+ } else {
640
+ t10 = $[15];
641
+ t11 = $[16];
642
+ t12 = $[17];
643
+ }
644
+ let t13;
645
+ if ($[18] !== maxLength) {
646
+ t13 = /* @__PURE__ */ jsx(MaxLengthPlugin, { maxLength });
647
+ $[18] = maxLength;
648
+ $[19] = t13;
649
+ } else t13 = $[19];
650
+ let t14;
651
+ if ($[20] !== value) {
652
+ t14 = /* @__PURE__ */ jsx(ExternalStateSync, {
653
+ value,
654
+ isSyncingRef
655
+ });
656
+ $[20] = value;
657
+ $[21] = t14;
658
+ } else t14 = $[21];
659
+ let t15;
660
+ let t16;
661
+ let t17;
662
+ let t18;
663
+ if ($[22] === Symbol.for("react.memo_cache_sentinel")) {
664
+ t15 = /* @__PURE__ */ jsx(EnterAsLineBreakHandler, {});
665
+ t16 = /* @__PURE__ */ jsx(PasteUrlAsLinkHandler, {});
666
+ t17 = /* @__PURE__ */ jsx(SidebarFloatingTextToolbar, {});
667
+ t18 = /* @__PURE__ */ jsx(InlineStylesPlugin, {});
668
+ $[22] = t15;
669
+ $[23] = t16;
670
+ $[24] = t17;
671
+ $[25] = t18;
672
+ } else {
673
+ t15 = $[22];
674
+ t16 = $[23];
675
+ t17 = $[24];
676
+ t18 = $[25];
677
+ }
678
+ let t19;
679
+ if ($[26] !== config || $[27] !== t13 || $[28] !== t14 || $[29] !== t9) {
680
+ t19 = /* @__PURE__ */ jsx("div", {
681
+ className: "w-full min-w-0",
682
+ children: /* @__PURE__ */ jsxs(LexicalComposer, {
683
+ initialConfig: config,
684
+ children: [
685
+ t9,
686
+ t10,
687
+ t11,
688
+ t12,
689
+ t13,
690
+ t14,
691
+ t15,
692
+ t16,
693
+ t17,
694
+ t18
695
+ ]
696
+ })
697
+ });
698
+ $[26] = config;
699
+ $[27] = t13;
700
+ $[28] = t14;
701
+ $[29] = t9;
702
+ $[30] = t19;
703
+ } else t19 = $[30];
704
+ return t19;
608
705
  }
609
706
  function LexicalErrorBoundary(t0) {
610
- const $ = c(3);
611
- if ($[0] !== "b2abd53d41bcf7845fda084f34768059ff9a381fdb75359c9fd3fc0de4052372") {
612
- for (let $i = 0; $i < 3; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
613
- $[0] = "b2abd53d41bcf7845fda084f34768059ff9a381fdb75359c9fd3fc0de4052372";
614
- }
707
+ const $ = c(2);
615
708
  const { children } = t0;
616
709
  let t1;
617
- if ($[1] !== children) {
710
+ if ($[0] !== children) {
618
711
  t1 = /* @__PURE__ */ jsx(Fragment, { children });
619
- $[1] = children;
620
- $[2] = t1;
621
- } else t1 = $[2];
712
+ $[0] = children;
713
+ $[1] = t1;
714
+ } else t1 = $[1];
622
715
  return t1;
623
716
  }
624
717