camox 0.44.0 → 0.46.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 (407) hide show
  1. package/dist/components/AuthGate.js +0 -6
  2. package/dist/components/DeviceSelector.js +96 -0
  3. package/dist/components/PlatformLabel.js +20 -24
  4. package/dist/core/components/lexical/HighlightNode.js +1 -1
  5. package/dist/core/components/lexical/InlineContentEditable.js +15 -19
  6. package/dist/core/components/lexical/InlineLexicalEditor.js +54 -74
  7. package/dist/core/components/lexical/InlineStylesPlugin.js +53 -53
  8. package/dist/core/components/lexical/MaxLengthPlugin.js +59 -0
  9. package/dist/core/components/lexical/SelectionBroadcaster.js +53 -54
  10. package/dist/core/components/lexical/SidebarLexicalEditor.js +322 -229
  11. package/dist/core/components/lexical/SummaryToggleGuard.js +42 -0
  12. package/dist/core/components/lexical/TextLinkPopover.js +169 -180
  13. package/dist/core/createApp.d.ts +241 -312
  14. package/dist/core/createApp.js +123 -29
  15. package/dist/core/createBlock.d.ts +5 -5
  16. package/dist/core/createBlock.js +385 -152
  17. package/dist/core/createCollection.d.ts +55 -0
  18. package/dist/core/createCollection.js +93 -0
  19. package/dist/core/createLayout.d.ts +197 -61
  20. package/dist/core/createLayout.js +114 -56
  21. package/dist/core/defineDocument.d.ts +3 -5
  22. package/dist/core/derivedRoutes.js +49 -1
  23. package/dist/core/dom.d.ts +13 -4
  24. package/dist/core/dom.js +44 -1
  25. package/dist/core/editing/BlockEditingRuntime.d.ts +16 -0
  26. package/dist/core/editing/BlockEditingRuntime.js +6 -15
  27. package/dist/core/editing/CompleteBlockEditingRuntime.js +28 -23
  28. package/dist/core/editing/createEditableBlock.d.ts +754 -633
  29. package/dist/core/editing/createEditableBlock.js +2113 -1066
  30. package/dist/core/editing/referenceWrites.js +51 -0
  31. package/dist/core/editing/useLatestRecord.js +90 -0
  32. package/dist/core/hooks/useArtifactHost.js +139 -0
  33. package/dist/core/hooks/useFieldSelection.js +43 -18
  34. package/dist/core/hooks/useIsEditable.js +12 -10
  35. package/dist/core/hooks/useOverlayMessage.js +15 -19
  36. package/dist/core/lib/artifact.d.ts +21 -0
  37. package/dist/core/lib/artifact.js +154 -0
  38. package/dist/core/lib/artifactColors.js +123 -0
  39. package/dist/core/lib/artifactData.d.ts +1 -0
  40. package/dist/core/lib/artifactData.js +131 -0
  41. package/dist/core/lib/artifactHost.js +205 -0
  42. package/dist/core/lib/artifactRuntime.js +36 -0
  43. package/dist/core/lib/artifactTheme.js +57 -0
  44. package/dist/core/lib/contentType.d.ts +302 -106
  45. package/dist/core/lib/contentType.js +201 -173
  46. package/dist/core/lib/fieldTypes.js +3 -0
  47. package/dist/core/lib/iconTypes.d.ts +3 -3
  48. package/dist/core/lib/icons.d.ts +4 -4
  49. package/dist/core/lib/icons.js +40 -44
  50. package/dist/core/lib/imagePlaceholder.js +177 -0
  51. package/dist/core/lib/imageTransform.js +1 -1
  52. package/dist/core/lib/lexicalReact.d.ts +3 -1
  53. package/dist/core/lib/lexicalState.js +1 -1
  54. package/dist/core/lib/previewPaused.js +9 -0
  55. package/dist/core/lib/recordScope.js +316 -0
  56. package/dist/core/lib/reference.d.ts +81 -0
  57. package/dist/core/lib/reference.js +29 -0
  58. package/dist/core/lib/textLinks.js +7 -5
  59. package/dist/core/lib/textStyles.d.ts +5 -7
  60. package/dist/core/lib/textStyles.js +2 -2
  61. package/dist/core/notFound.d.ts +7 -0
  62. package/dist/core/notFound.js +11 -0
  63. package/dist/core/pageDestinations.js +6 -3
  64. package/dist/core/recordItem.js +34 -0
  65. package/dist/core/requestContext.d.ts +26 -0
  66. package/dist/core/requestContext.js +20 -0
  67. package/dist/features/canvas/CamoxCanvas.js +1401 -0
  68. package/dist/features/canvas/CanvasLoadingScreen.js +35 -0
  69. package/dist/features/canvas/CanvasOverlays.js +254 -0
  70. package/dist/features/canvas/CanvasPageEdge.js +87 -0
  71. package/dist/features/canvas/CanvasPageFrame.js +333 -0
  72. package/dist/features/canvas/CanvasPageHeader.js +125 -0
  73. package/dist/features/canvas/CanvasPreviewPageSlot.js +123 -0
  74. package/dist/features/canvas/DerivedPagePathInput.js +238 -0
  75. package/dist/features/canvas/canvasCamera.js +229 -0
  76. package/dist/features/canvas/canvasFlight.js +104 -0
  77. package/dist/features/canvas/canvasFrameCapture.js +364 -0
  78. package/dist/features/canvas/canvasFrameDocument.js +302 -0
  79. package/dist/features/canvas/canvasFrameMode.js +53 -0
  80. package/dist/features/canvas/canvasInsertionSeams.js +44 -0
  81. package/dist/features/canvas/canvasItems.js +30 -0
  82. package/dist/features/canvas/canvasOverlayGeometry.js +240 -0
  83. package/dist/features/canvas/canvasPages.js +79 -0
  84. package/dist/features/canvas/canvasScreenSpace.js +26 -0
  85. package/dist/features/canvas/canvasSelection.js +18 -0
  86. package/dist/features/canvas/canvasStore.js +60 -0
  87. package/dist/features/canvas/canvasThumbnails.js +304 -0
  88. package/dist/features/canvas/canvasZoom.js +10 -0
  89. package/dist/features/canvas/sidebar/CanvasInspector.js +202 -0
  90. package/dist/features/canvas/sidebar/CanvasNavigator.js +124 -0
  91. package/dist/features/canvas/sidebar/CanvasSidebar.js +54 -0
  92. package/dist/features/canvas/sidebar/CanvasSidebarFrame.js +48 -0
  93. package/dist/features/canvas/sidebar/CanvasSidebarSkeleton.js +39 -0
  94. package/dist/features/canvas/sidebar/CuratedPageInspector.js +69 -0
  95. package/dist/features/canvas/sidebar/DerivedPageInspector.js +37 -0
  96. package/dist/features/canvas/sidebar/LayoutPageBlocks.js +78 -0
  97. package/dist/features/canvas/sidebar/LayoutPageOverview.js +71 -0
  98. package/dist/features/canvas/sidebar/PageInspector.js +157 -0
  99. package/dist/features/canvas/sidebar/PageInspectorSkeleton.js +90 -0
  100. package/dist/features/canvas/sidebar/PageOverview.js +27 -0
  101. package/dist/features/canvas/sidebar/SingletonPageInspector.js +31 -0
  102. package/dist/features/canvas/useCanvasCamera.js +783 -0
  103. package/dist/features/canvas/useCanvasFrame.js +148 -0
  104. package/dist/features/canvas/useCanvasFrameInput.js +97 -0
  105. package/dist/features/canvas/useCanvasNearness.js +57 -0
  106. package/dist/features/canvas/useDiscoveredPreviewPaths.js +62 -0
  107. package/dist/features/content/CamoxContent.d.ts +2 -5
  108. package/dist/features/content/CamoxContent.js +174 -271
  109. package/dist/features/content/CollectionItemSheetContext.js +106 -0
  110. package/dist/features/content/ContentAssets.js +315 -0
  111. package/dist/features/content/ContentCollection.js +663 -0
  112. package/dist/features/content/collection-form.js +58 -0
  113. package/dist/features/content/components/AssetCard.js +80 -84
  114. package/dist/features/content/components/AssetCardSkeleton.js +4 -8
  115. package/dist/features/content/components/ContentSidebar.js +129 -18
  116. package/dist/features/content/components/ContentSidebarGroup.js +37 -0
  117. package/dist/features/content/components/DeleteCollectionItemButton.js +202 -0
  118. package/dist/features/content/components/MissingFromLocale.js +282 -0
  119. package/dist/features/content/components/UploadDropZone.js +27 -31
  120. package/dist/features/content/components/UploadProgressDrawer.js +90 -98
  121. package/dist/features/navigation/navigation.d.ts +66 -20
  122. package/dist/features/navigation/navigation.js +257 -90
  123. package/dist/features/og/defaultFonts.js +8 -8
  124. package/dist/features/og/geist-variable-ttf-base64.js +1 -1
  125. package/dist/features/og/imageResponse.d.ts +8 -0
  126. package/dist/features/og/imageResponse.js +26 -0
  127. package/dist/features/page/CuratedPageContent.js +167 -0
  128. package/dist/features/page/DerivedPageContent.js +26 -30
  129. package/dist/features/page/SharedLayoutContent.js +25 -27
  130. package/dist/features/preview/CamoxPreview.d.ts +23 -61
  131. package/dist/features/preview/CamoxPreview.js +816 -537
  132. package/dist/features/preview/EditablePageContent.js +1 -1
  133. package/dist/features/preview/EditablePageExperience.js +16 -22
  134. package/dist/features/preview/components/AddBlockSheet.js +273 -0
  135. package/dist/features/preview/components/AssetFieldEditor.js +173 -154
  136. package/dist/features/preview/components/AssetLightbox.js +181 -134
  137. package/dist/features/preview/components/AssetPickerModal.js +153 -170
  138. package/dist/features/preview/components/BlockActionsPopover.js +150 -149
  139. package/dist/features/preview/components/BlockErrorBoundary.js +8 -12
  140. package/dist/features/preview/components/BlockThumbnail.js +172 -98
  141. package/dist/features/preview/components/CanvasPreview.js +243 -0
  142. package/dist/features/preview/components/CreatePageModal.js +128 -137
  143. package/dist/features/preview/components/DebouncedFieldEditor.js +29 -33
  144. package/dist/features/preview/components/DerivedLayoutDialog.js +21 -19
  145. package/dist/features/preview/components/DrillRow.js +150 -0
  146. package/dist/features/preview/components/FieldOverlayStyles.js +11 -8
  147. package/dist/features/preview/components/FieldToolbar.js +160 -110
  148. package/dist/features/preview/components/Frame.js +108 -20
  149. package/dist/features/preview/components/IconFieldEditor.js +62 -66
  150. package/dist/features/preview/components/ItemFieldsEditor.js +231 -205
  151. package/dist/features/preview/components/LinkFieldEditor.js +135 -139
  152. package/dist/features/preview/components/Metadata.js +22 -30
  153. package/dist/features/preview/components/MobilePreviewDrawer.js +89 -108
  154. package/dist/features/preview/components/MultipleAssetFieldEditor.js +334 -246
  155. package/dist/features/preview/components/OverlayTracker.js +9 -41
  156. package/dist/features/preview/components/Overlays.js +81 -69
  157. package/dist/features/preview/components/PageInfo.js +1748 -0
  158. package/dist/features/preview/components/PageInfoSkeleton.js +51 -0
  159. package/dist/features/preview/components/PageLocationFieldset.js +112 -116
  160. package/dist/features/preview/components/PageNavigatorHeader.js +24 -0
  161. package/dist/features/preview/components/PageNicknameField.js +22 -26
  162. package/dist/features/preview/components/PagePicker.js +128 -130
  163. package/dist/features/preview/components/PageTree.js +525 -532
  164. package/dist/features/preview/components/PreviewActivation.js +28 -32
  165. package/dist/features/preview/components/PreviewPanel.js +620 -319
  166. package/dist/features/preview/components/PreviewToolbar.js +105 -333
  167. package/dist/features/preview/components/RecordCard.js +80 -0
  168. package/dist/features/preview/components/RecordCombobox.js +178 -0
  169. package/dist/features/preview/components/ReferenceFieldEditor.js +149 -0
  170. package/dist/features/preview/components/ReferenceListFieldEditor.js +432 -0
  171. package/dist/features/preview/components/RemovedBlockPlaceholder.js +95 -0
  172. package/dist/features/preview/components/RepeatableItemsList.js +125 -138
  173. package/dist/features/preview/components/SelectionEditor.js +993 -0
  174. package/dist/features/preview/components/ShikiMarkdown.js +14 -18
  175. package/dist/features/preview/components/SidebarSection.js +52 -64
  176. package/dist/features/preview/components/StudioEditingFallback.js +56 -0
  177. package/dist/features/preview/components/UnlinkAssetButton.js +104 -107
  178. package/dist/features/preview/components/blockGridNavigation.js +15 -0
  179. package/dist/features/preview/components/contentFieldSchema.js +8 -0
  180. package/dist/features/preview/components/useFieldWriter.js +200 -0
  181. package/dist/features/preview/components/useRecordView.js +383 -0
  182. package/dist/features/preview/components/useRepeatableItemActions.js +35 -37
  183. package/dist/features/preview/components/useUpdateBlockPosition.js +37 -37
  184. package/dist/features/preview/editingFrame.js +197 -0
  185. package/dist/features/preview/overlayHighlights.js +17 -44
  186. package/dist/features/preview/overlayMessages.js +72 -1
  187. package/dist/features/preview/pageRecord.js +189 -0
  188. package/dist/features/preview/previewConstants.js +6 -2
  189. package/dist/features/preview/previewPageFrame.js +95 -0
  190. package/dist/features/preview/previewPreparation.js +7 -0
  191. package/dist/features/preview/previewSelection.js +32 -63
  192. package/dist/features/preview/previewStore.js +225 -123
  193. package/dist/features/preview/referencePickerFocus.js +29 -0
  194. package/dist/features/preview/repeatableItemTargets.js +56 -0
  195. package/dist/features/preview/selectionReveal.js +21 -0
  196. package/dist/features/preview/usePreviewViewportActions.js +114 -0
  197. package/dist/features/preview/viewportContinuity.js +109 -0
  198. package/dist/features/provider/AuthenticatedCamoxProvider.js +69 -44
  199. package/dist/features/provider/CamoxProvider.d.ts +3 -6
  200. package/dist/features/provider/CamoxProvider.js +38 -50
  201. package/dist/features/provider/CoreCamoxProvider.js +69 -50
  202. package/dist/features/provider/LocalhostPreviewProvider.js +78 -114
  203. package/dist/features/provider/PreviewSignInPage.js +54 -0
  204. package/dist/features/provider/components/CamoxAppContext.js +11 -11
  205. package/dist/features/provider/components/CommandPalette.js +75 -82
  206. package/dist/features/provider/useAdminShortcuts.js +7 -11
  207. package/dist/features/routes/pageRuntime.d.ts +44 -4
  208. package/dist/features/routes/pageRuntime.js +244 -137
  209. package/dist/features/runtime/RuntimeChrome.js +117 -115
  210. package/dist/features/runtime/alternates.js +64 -0
  211. package/dist/features/runtime/analytics.d.ts +7 -0
  212. package/dist/features/runtime/analytics.js +66 -0
  213. package/dist/features/runtime/artifactSources.js +87 -0
  214. package/dist/features/runtime/editingFallback.js +20 -0
  215. package/dist/features/runtime/linkPrefetch.js +97 -0
  216. package/dist/features/runtime/livePages.js +62 -0
  217. package/dist/features/runtime/llmsTxt.js +40 -0
  218. package/dist/features/runtime/loopbackFetch.js +18 -0
  219. package/dist/features/runtime/navigationAccessibility.js +51 -0
  220. package/dist/features/runtime/navigationTarget.js +23 -2
  221. package/dist/features/runtime/pageApp.js +229 -158
  222. package/dist/features/runtime/pageBlockTypes.js +20 -0
  223. package/dist/features/runtime/pageClient.d.ts +2 -4
  224. package/dist/features/runtime/pageClient.js +18 -3
  225. package/dist/features/runtime/pageNavigation.js +254 -32
  226. package/dist/features/runtime/pageServer.d.ts +2 -4
  227. package/dist/features/runtime/pageServer.js +6 -2
  228. package/dist/features/runtime/pageViewport.js +7 -0
  229. package/dist/features/runtime/runtime.d.ts +54 -24
  230. package/dist/features/runtime/runtime.js +766 -191
  231. package/dist/features/runtime/runtimeChromeLoader.js +58 -0
  232. package/dist/features/runtime/runtimeRoutes.d.ts +19 -0
  233. package/dist/features/runtime/runtimeRoutes.js +25 -0
  234. package/dist/features/runtime/scrollRestoration.js +133 -0
  235. package/dist/features/runtime/studioApp.d.ts +4 -3
  236. package/dist/features/runtime/studioApp.js +5 -9
  237. package/dist/features/runtime/studioClient.d.ts +2 -4
  238. package/dist/features/runtime/studioClient.js +12 -3
  239. package/dist/features/runtime/studioServer.d.ts +2 -4
  240. package/dist/features/runtime/studioServer.js +6 -1
  241. package/dist/features/runtime/worker.d.ts +6 -0
  242. package/dist/features/runtime/worker.js +23 -0
  243. package/dist/features/runtime/workerRequest.js +44 -0
  244. package/dist/features/studio/CamoxStudio.d.ts +2 -6
  245. package/dist/features/studio/CamoxStudio.js +34 -49
  246. package/dist/features/studio/FollowAgentProvider.js +327 -0
  247. package/dist/features/studio/components/ChatSidebar.js +356 -0
  248. package/dist/features/studio/components/DraftsControl.js +676 -0
  249. package/dist/features/studio/components/FaviconDialog.js +318 -0
  250. package/dist/features/studio/components/LocalePicker.js +785 -0
  251. package/dist/features/studio/components/Navbar.js +123 -103
  252. package/dist/features/studio/components/ProjectMenu.js +239 -260
  253. package/dist/features/studio/components/RenameDraftDialog.js +206 -0
  254. package/dist/features/studio/components/ReviewDraftSheet.js +1472 -0
  255. package/dist/features/studio/components/ThreadComposer.js +157 -0
  256. package/dist/features/studio/components/ThreadMarkdown.js +113 -0
  257. package/dist/features/studio/components/ThreadMessages.js +270 -0
  258. package/dist/features/studio/components/UserButton.js +34 -23
  259. package/dist/features/studio/draftLabel.js +33 -0
  260. package/dist/features/studio/draftNotice.js +13 -0
  261. package/dist/features/studio/followAgent.js +241 -0
  262. package/dist/features/studio/followAgentContext.js +7 -0
  263. package/dist/features/studio/localeOptions.js +118 -0
  264. package/dist/features/studio/localeSwitch.js +19 -0
  265. package/dist/features/studio/routes.js +26 -1
  266. package/dist/features/studio/studioStore.js +64 -1
  267. package/dist/features/studio/useTheme.js +24 -27
  268. package/dist/features/vite/artifactRuntimeMinification.js +36 -0
  269. package/dist/features/vite/blockBoilerplate.js +6 -5
  270. package/dist/features/vite/blockChunks.js +31 -0
  271. package/dist/features/vite/bundlerLogs.js +17 -0
  272. package/dist/features/vite/definitionsSync.js +158 -226
  273. package/dist/features/vite/devAuthentication.js +4 -16
  274. package/dist/features/vite/devSignIn.js +87 -0
  275. package/dist/features/vite/iconGeneration.js +1 -1
  276. package/dist/features/vite/layoutGeneration.js +11 -1
  277. package/dist/features/vite/publishSeededContent.js +30 -0
  278. package/dist/features/vite/routeGeneration.js +6 -7
  279. package/dist/features/vite/runtimeDev.js +80 -99
  280. package/dist/features/vite/vite.d.ts +51 -31
  281. package/dist/features/vite/vite.js +224 -127
  282. package/dist/features/vite/workerBuild.js +39 -0
  283. package/dist/hooks/use-debounced-field.js +116 -47
  284. package/dist/hooks/use-file-upload.js +114 -67
  285. package/dist/hooks/use-marquee-selection.js +32 -36
  286. package/dist/hooks/use-page-destinations.js +69 -37
  287. package/dist/lib/api-client-server.d.ts +5 -0
  288. package/dist/lib/api-client-server.js +10 -4
  289. package/dist/lib/api-client.d.ts +6 -0
  290. package/dist/lib/api-client.js +51 -16
  291. package/dist/lib/api-socket.js +17 -0
  292. package/dist/lib/auth-page-styles.js +39 -0
  293. package/dist/lib/auth.js +129 -61
  294. package/dist/lib/collection-cache.js +23 -0
  295. package/dist/lib/draft-scope.d.ts +4 -0
  296. package/dist/lib/draft-scope.js +222 -0
  297. package/dist/lib/html.js +12 -0
  298. package/dist/lib/link-pages.js +154 -0
  299. package/dist/lib/locale-path.d.ts +22 -0
  300. package/dist/lib/locale-path.js +57 -0
  301. package/dist/lib/normalized-data.js +252 -152
  302. package/dist/lib/preview-handoff.js +2 -2
  303. package/dist/lib/queries.d.ts +11 -0
  304. package/dist/lib/queries.js +70 -141
  305. package/dist/lib/studio-reads.d.ts +14 -0
  306. package/dist/lib/studio-reads.js +554 -0
  307. package/dist/lib/use-project-room.js +50 -50
  308. package/dist/lib/use-thread.js +310 -0
  309. package/dist/lib/utils.js +25 -29
  310. package/dist/lib/view-locale-context.js +22 -0
  311. package/dist/lib/view-locale.js +46 -0
  312. package/dist/package.js +5 -0
  313. package/dist/studio-overlays.css +41 -151
  314. package/dist/studio.css +2 -2
  315. package/package.json +70 -73
  316. package/skills/camox/SKILL.md +16 -11
  317. package/skills/camox/references/artifacts.md +179 -0
  318. package/skills/camox/references/block-definitions.md +75 -59
  319. package/skills/camox/references/cli-common.md +9 -11
  320. package/skills/camox/references/cli-content.md +92 -69
  321. package/skills/camox/references/cli-publishing.md +26 -0
  322. package/skills/camox/references/dom-integrations.md +27 -0
  323. package/skills/camox/references/field-styling.md +4 -4
  324. package/skills/camox/references/layout-definitions.md +16 -14
  325. package/skills/camox/references/localization.md +56 -0
  326. package/skills/camox/references/routed-layouts.md +133 -15
  327. package/skills/camox-expand/SKILL.md +70 -0
  328. package/skills/camox-expand/references/jobs.md +39 -0
  329. package/skills/camoxify/SKILL.md +29 -7
  330. package/dist/core/components/AddBlockControlBar.js +0 -78
  331. package/dist/core/hooks/useRequireDraftSource.js +0 -23
  332. package/dist/features/metadata/sitemap.d.ts +0 -8
  333. package/dist/features/metadata/sitemap.js +0 -17
  334. package/dist/features/og/imageResponse.node.d.ts +0 -12
  335. package/dist/features/og/imageResponse.node.js +0 -49
  336. package/dist/features/og/imageResponse.workerd.d.ts +0 -12
  337. package/dist/features/og/imageResponse.workerd.js +0 -40
  338. package/dist/features/page/PublishedPageContent.js +0 -205
  339. package/dist/features/page/PublishedPageExperience.js +0 -23
  340. package/dist/features/preview/DerivedPreview.js +0 -134
  341. package/dist/features/preview/commentsEnabled.js +0 -8
  342. package/dist/features/preview/components/AddBlockSidebar.js +0 -381
  343. package/dist/features/preview/components/AttachedComments.js +0 -331
  344. package/dist/features/preview/components/CommentHeader.js +0 -122
  345. package/dist/features/preview/components/CommentSidebar.js +0 -29
  346. package/dist/features/preview/components/CommentTargetQuote.js +0 -167
  347. package/dist/features/preview/components/DerivedLayoutSidebar.d.ts +0 -5
  348. package/dist/features/preview/components/DerivedLayoutSidebar.js +0 -179
  349. package/dist/features/preview/components/DerivedPageInfoSidebar.js +0 -69
  350. package/dist/features/preview/components/LeftSidebar.js +0 -68
  351. package/dist/features/preview/components/PageEditorSidebar.js +0 -563
  352. package/dist/features/preview/components/PageInfoSidebar.js +0 -1551
  353. package/dist/features/preview/components/PageNavigatorSidebar.js +0 -78
  354. package/dist/features/preview/components/PageStatusBadge.js +0 -97
  355. package/dist/features/preview/components/PeekedBlock.js +0 -217
  356. package/dist/features/preview/components/PreviewComments.js +0 -56
  357. package/dist/features/preview/components/PreviewToolbarSpacer.js +0 -43
  358. package/dist/features/preview/components/PublicationRow.js +0 -422
  359. package/dist/features/preview/components/PublishDialog.js +0 -194
  360. package/dist/features/preview/components/RightSidebar.js +0 -59
  361. package/dist/features/preview/components/SendFeedbackDialog.js +0 -83
  362. package/dist/features/preview/previewCommentsStore.js +0 -135
  363. package/dist/features/preview/publication.js +0 -81
  364. package/dist/features/preview/usePageComments.js +0 -39
  365. package/dist/features/runtime/SharedChromeContext.js +0 -7
  366. package/dist/features/studio/components/EnvironmentMenu.js +0 -425
  367. package/dist/features/vite/appGeneration.js +0 -89
  368. package/dist/lib/view-queries.js +0 -28
  369. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/Matches.d.ts +0 -114
  370. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/RouterProvider.d.ts +0 -25
  371. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/config.d.ts +0 -1
  372. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/defer.d.ts +0 -1
  373. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/fileRoute.d.ts +0 -20
  374. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/global.d.ts +0 -8
  375. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/hash-scroll.d.ts +0 -1
  376. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/index.d.ts +0 -18
  377. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/link.d.ts +0 -161
  378. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/load-matches.d.ts +0 -6
  379. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/location.d.ts +0 -54
  380. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/lru-cache.d.ts +0 -8
  381. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/manifest.d.ts +0 -32
  382. 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
  383. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/not-found.d.ts +0 -1
  384. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/redirect.d.ts +0 -49
  385. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/rewrite.d.ts +0 -1
  386. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/root.d.ts +0 -6
  387. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/route.d.ts +0 -343
  388. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/routeInfo.d.ts +0 -48
  389. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/router.d.ts +0 -695
  390. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/scroll-restoration.d.ts +0 -1
  391. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/searchMiddleware.d.ts +0 -1
  392. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/searchParams.d.ts +0 -5
  393. 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
  394. 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
  395. 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
  396. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/stores.d.ts +0 -69
  397. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/structuralSharing.d.ts +0 -1
  398. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/typePrimitives.d.ts +0 -1
  399. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/useLoaderData.d.ts +0 -1
  400. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/useLoaderDeps.d.ts +0 -1
  401. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/useNavigate.d.ts +0 -10
  402. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/useParams.d.ts +0 -1
  403. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/useRouteContext.d.ts +0 -1
  404. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/useSearch.d.ts +0 -1
  405. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/utils.d.ts +0 -28
  406. package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/validators.d.ts +0 -49
  407. package/skills/camox/references/cli-environments.md +0 -37
@@ -2,11 +2,12 @@ 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";
@@ -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] !== "4aee3a6623d02d6d998f1ec56485427c5d00a9d232e9241d092ceba43ae1506a") {
31
- for (let $i = 0; $i < 4; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
32
- $[0] = "4aee3a6623d02d6d998f1ec56485427c5d00a9d232e9241d092ceba43ae1506a";
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] !== "4aee3a6623d02d6d998f1ec56485427c5d00a9d232e9241d092ceba43ae1506a") {
57
- for (let $i = 0; $i < 6; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
58
- $[0] = "4aee3a6623d02d6d998f1ec56485427c5d00a9d232e9241d092ceba43ae1506a";
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] !== "4aee3a6623d02d6d998f1ec56485427c5d00a9d232e9241d092ceba43ae1506a") {
95
- for (let $i = 0; $i < 72; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
96
- $[0] = "4aee3a6623d02d6d998f1ec56485427c5d00a9d232e9241d092ceba43ae1506a";
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();
@@ -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,13 +408,13 @@ 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
419
  key: "strikethrough",
431
420
  label: "Strikethrough",
@@ -435,10 +424,10 @@ function SidebarFloatingTextToolbar() {
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] !== "4aee3a6623d02d6d998f1ec56485427c5d00a9d232e9241d092ceba43ae1506a") {
522
- for (let $i = 0; $i < 4; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
523
- $[0] = "4aee3a6623d02d6d998f1ec56485427c5d00a9d232e9241d092ceba43ae1506a";
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] !== "4aee3a6623d02d6d998f1ec56485427c5d00a9d232e9241d092ceba43ae1506a") {
612
- for (let $i = 0; $i < 3; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
613
- $[0] = "4aee3a6623d02d6d998f1ec56485427c5d00a9d232e9241d092ceba43ae1506a";
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