@collabchron/notiq 0.3.0 → 1.0.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 (282) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +230 -39
  3. package/dist/CodeActionMenuPlugin-EINOY4U4.mjs +15 -0
  4. package/dist/DynamicBlockComponent-NRQJ4WW4.mjs +161 -0
  5. package/dist/EquationComponent-CB6DFIHV.mjs +154 -0
  6. package/dist/ExcalidrawComponent-XW6646OH.mjs +528 -0
  7. package/dist/ExcalidrawPlugin-ZFHT62IF.mjs +14 -0
  8. package/dist/ExportPlugin-V2RLM63S.mjs +11 -0
  9. package/dist/FloatingLinkEditorPlugin-TRTCMSP4.mjs +12 -0
  10. package/dist/FloatingTextFormatToolbarPlugin-F2GY6LMI.mjs +30 -0
  11. package/dist/HintComponet-BRL6EAMS.mjs +217 -0
  12. package/dist/InlineImageComponent-UWIUWBHI.mjs +453 -0
  13. package/dist/MobileToolbar-BOOZAMQE.mjs +268 -0
  14. package/dist/SlashCommand-GMT5JI33.mjs +28 -0
  15. package/dist/StoryBuilderComponent-JGDBM5JU.mjs +562 -0
  16. package/{src/components/editor/plugins/TableCellActionMenuPlugin/index.tsx → dist/TableCellActionMenuPlugin-PGK2K3VG.mjs} +667 -759
  17. package/{src/components/editor/plugins/TableHoverActionsPlugin/index.tsx → dist/TableHoverActionsPlugin-GJVE6VRW.mjs} +258 -314
  18. package/dist/TemplatePlugin-ZD3QEVTI.mjs +9 -0
  19. package/dist/ToolbarPlugin-7TOZRD2R.mjs +1547 -0
  20. package/dist/babel-JZ2EV6AX.mjs +7233 -0
  21. package/dist/background-color-XZTYLGO2.mjs +362 -0
  22. package/dist/block-format-YJCV2DIY.mjs +15 -0
  23. package/dist/chunk-2FNEAMSP.mjs +127 -0
  24. package/dist/chunk-3CPBODXA.mjs +84 -0
  25. package/dist/chunk-3G37YKTV.mjs +83 -0
  26. package/dist/chunk-3JVFG7ER.mjs +184 -0
  27. package/dist/chunk-456TN7IM.mjs +110 -0
  28. package/dist/chunk-4EXYCTGJ.mjs +27 -0
  29. package/{src/utils/getSelectedNode.ts → dist/chunk-4HBCVSE6.mjs} +26 -27
  30. package/dist/chunk-4MEDW3T6.mjs +125 -0
  31. package/dist/chunk-4VWFVWYP.mjs +36 -0
  32. package/dist/chunk-5BAKY5KN.mjs +84 -0
  33. package/dist/chunk-5QSNIVIG.mjs +333 -0
  34. package/dist/chunk-64Z3FI7T.mjs +37 -0
  35. package/{src/components/editor/nodes/Stepper/index.tsx → dist/chunk-6RNZQOH2.mjs} +214 -260
  36. package/dist/chunk-77KXU36M.mjs +64 -0
  37. package/dist/chunk-77UA6HYR.mjs +165 -0
  38. package/dist/chunk-7NZAPJ4G.mjs +102 -0
  39. package/dist/chunk-7VUMHWWL.mjs +152 -0
  40. package/dist/chunk-AMMKBSST.mjs +1256 -0
  41. package/dist/chunk-BIU7WTLX.mjs +95 -0
  42. package/dist/chunk-EGMI62PP.mjs +83 -0
  43. package/dist/chunk-EHNQD5KO.mjs +88 -0
  44. package/dist/chunk-FSM26655.mjs +37 -0
  45. package/{src/components/editor/nodes/Hint/index.tsx → dist/chunk-G53GLEAY.mjs} +158 -190
  46. package/dist/chunk-GK35L7UY.mjs +28 -0
  47. package/dist/chunk-GXYD4VZM.mjs +193 -0
  48. package/dist/chunk-GYIOYVCN.mjs +538 -0
  49. package/dist/chunk-GZPNVR7L.mjs +157 -0
  50. package/dist/chunk-JXDPPUJI.mjs +52 -0
  51. package/dist/chunk-K36V4SIW.mjs +141 -0
  52. package/dist/chunk-KJ6AJ44Q.mjs +128 -0
  53. package/dist/chunk-KJV3FAZ7.mjs +142 -0
  54. package/{src/components/editor/plugins/ImagesPlugin/index.tsx → dist/chunk-LGG4IUIA.mjs} +189 -222
  55. package/dist/chunk-LQN3CMKV.mjs +1906 -0
  56. package/dist/chunk-N3WN46VL.mjs +236 -0
  57. package/dist/chunk-PBD6LMLC.mjs +366 -0
  58. package/dist/chunk-POGRR73N.mjs +33 -0
  59. package/{src/components/editor/utils/editorFormatting.ts → dist/chunk-PZSUSXQG.mjs} +238 -282
  60. package/dist/chunk-QEIFVK5M.mjs +29 -0
  61. package/dist/chunk-QHIQKMVN.mjs +427 -0
  62. package/dist/chunk-TCYK7DM7.mjs +36 -0
  63. package/dist/chunk-TTHQCW5F.mjs +47 -0
  64. package/dist/chunk-U47ABU5Z.mjs +53 -0
  65. package/dist/chunk-WDG7J2DY.mjs +116 -0
  66. package/dist/chunk-WJRHXI2C.mjs +733 -0
  67. package/dist/chunk-XLER2DHM.mjs +357 -0
  68. package/dist/chunk-XWC4TK2N.mjs +315 -0
  69. package/dist/chunk-YHPNOWFH.mjs +15 -0
  70. package/dist/chunk-YKC3SO4Z.mjs +32 -0
  71. package/dist/chunk-YMBXLRW5.mjs +374 -0
  72. package/dist/chunk-YPHOEJ46.mjs +64 -0
  73. package/dist/chunk-YUDCJRJM.mjs +25 -0
  74. package/dist/chunk-Z4EWP7BI.mjs +65 -0
  75. package/dist/chunk-ZB5LZQKC.mjs +191 -0
  76. package/dist/chunk-ZJRKATOJ.mjs +65 -0
  77. package/dist/color-BPKOPQKN.mjs +12 -0
  78. package/dist/estree-XC56IUFX.mjs +4414 -0
  79. package/dist/font-FEZ3GKSF.mjs +13 -0
  80. package/dist/font-size-EK775WRH.mjs +15 -0
  81. package/dist/html-S3ACX7NI.mjs +2738 -0
  82. package/dist/image-2PJIAYAT.mjs +993 -0
  83. package/dist/index.d.mts +145 -0
  84. package/dist/index.d.ts +145 -0
  85. package/dist/index.js +57855 -0
  86. package/dist/index.mjs +1790 -0
  87. package/dist/insert-gif-SAIDYURE.mjs +100 -0
  88. package/dist/insert-image-U3RJN3OW.mjs +259 -0
  89. package/dist/insert-node-5P2CRJ7S.mjs +201 -0
  90. package/dist/insert-poll-HCPM7MO6.mjs +33 -0
  91. package/dist/insert-table-24XYUS2W.mjs +66 -0
  92. package/dist/markdown-SNVBOSRA.mjs +3487 -0
  93. package/dist/poll-component-2R4MDLHS.mjs +303 -0
  94. package/dist/postcss-ONF3VDIM.mjs +5051 -0
  95. package/dist/standalone-EOIALU3M.mjs +2373 -0
  96. package/dist/stepper-FSARL6X6.mjs +304 -0
  97. package/dist/styles/notiq.css +1149 -0
  98. package/dist/text-align-VLECWO4H.mjs +118 -0
  99. package/dist/text-format-BG5WOOPZ.mjs +16 -0
  100. package/dist/typescript-AMPI6OVS.mjs +13135 -0
  101. package/package.json +66 -11
  102. package/src/styles/notiq.css +1149 -0
  103. package/src/styles/tailwind-plugin.ts +134 -0
  104. package/components.json +0 -21
  105. package/eslint.config.mjs +0 -16
  106. package/next.config.ts +0 -12
  107. package/postcss.config.mjs +0 -5
  108. package/public/file.svg +0 -1
  109. package/public/globe.svg +0 -1
  110. package/public/images/icons/plus.svg +0 -10
  111. package/public/next.svg +0 -1
  112. package/public/vercel.svg +0 -1
  113. package/public/window.svg +0 -1
  114. package/src/app/actions.ts +0 -2
  115. package/src/app/api/ai/route.ts +0 -175
  116. package/src/app/api/edgestore/[...edgestore]/route.ts +0 -28
  117. package/src/app/favicon.ico +0 -0
  118. package/src/app/globals.css +0 -205
  119. package/src/app/layout.tsx +0 -38
  120. package/src/app/page.tsx +0 -12
  121. package/src/components/editor/Core.tsx +0 -220
  122. package/src/components/editor/hooks/instructions-messages.ts +0 -300
  123. package/src/components/editor/hooks/use-mobile.ts +0 -19
  124. package/src/components/editor/hooks/useReport.ts +0 -67
  125. package/src/components/editor/hooks/useResizeObservert.ts +0 -22
  126. package/src/components/editor/index.tsx +0 -39
  127. package/src/components/editor/lexical-on-change.tsx +0 -28
  128. package/src/components/editor/nodes/CollapsibleNode/CollapsibleContainerNode.ts +0 -92
  129. package/src/components/editor/nodes/CollapsibleNode/CollapsibleContentNode.ts +0 -65
  130. package/src/components/editor/nodes/CollapsibleNode/CollapsibleTitleNode.ts +0 -105
  131. package/src/components/editor/nodes/EquationNode/EquationComponent.tsx +0 -143
  132. package/src/components/editor/nodes/EquationNode/EquationNode.tsx +0 -170
  133. package/src/components/editor/nodes/ExcalidrawNode/ExcalidrawComponent.tsx +0 -228
  134. package/src/components/editor/nodes/ExcalidrawNode/ExcalidrawImage.tsx +0 -137
  135. package/src/components/editor/nodes/ExcalidrawNode/ImageResizer.tsx +0 -317
  136. package/src/components/editor/nodes/ExcalidrawNode/index.tsx +0 -204
  137. package/src/components/editor/nodes/FigmaNode/FigmaNode.tsx +0 -134
  138. package/src/components/editor/nodes/Hint/HintComponet.tsx +0 -221
  139. package/src/components/editor/nodes/ImageNode/index.tsx +0 -328
  140. package/src/components/editor/nodes/InlineImageNode/InlineImageComponent.tsx +0 -383
  141. package/src/components/editor/nodes/InlineImageNode/InlineImageNode.css +0 -94
  142. package/src/components/editor/nodes/InlineImageNode/InlineImageNode.tsx +0 -309
  143. package/src/components/editor/nodes/LayoutNode/LayoutContainerNode.ts +0 -146
  144. package/src/components/editor/nodes/LayoutNode/LayoutItemNode.ts +0 -79
  145. package/src/components/editor/nodes/PollNode/index.tsx +0 -204
  146. package/src/components/editor/nodes/TweetNode/index.tsx +0 -214
  147. package/src/components/editor/nodes/index.ts +0 -81
  148. package/src/components/editor/plugins/AutoEmbedPlugin/index.tsx +0 -350
  149. package/src/components/editor/plugins/AutoLinkPlugin/index.tsx +0 -56
  150. package/src/components/editor/plugins/CodeActionMenuPlugin/components/CopyButton.tsx +0 -70
  151. package/src/components/editor/plugins/CodeActionMenuPlugin/components/PrettierButton.tsx +0 -192
  152. package/src/components/editor/plugins/CodeActionMenuPlugin/index.tsx +0 -217
  153. package/src/components/editor/plugins/CodeActionMenuPlugin/utils.ts +0 -26
  154. package/src/components/editor/plugins/CodeHighlightPlugin/index.ts +0 -21
  155. package/src/components/editor/plugins/CollapsiblePlugin/Collapsible.css +0 -76
  156. package/src/components/editor/plugins/CollapsiblePlugin/index.ts +0 -228
  157. package/src/components/editor/plugins/DragDropPastePlugin/index.tsx +0 -44
  158. package/src/components/editor/plugins/DraggableBlockPlugin/index.tsx +0 -52
  159. package/src/components/editor/plugins/EquationsPlugin/index.tsx +0 -85
  160. package/src/components/editor/plugins/ExcalidrawPlugin/index.tsx +0 -98
  161. package/src/components/editor/plugins/FigmaPlugin/index.tsx +0 -42
  162. package/src/components/editor/plugins/FloatingLinkEditorPlugin/index.tsx +0 -445
  163. package/src/components/editor/plugins/FloatingTextFormatToolbarPlugin/index.tsx +0 -275
  164. package/src/components/editor/plugins/InlineImagePlugin/index.tsx +0 -351
  165. package/src/components/editor/plugins/LayoutPlugin/index.tsx +0 -238
  166. package/src/components/editor/plugins/LinkPlugin/index.tsx +0 -36
  167. package/src/components/editor/plugins/LinkWithMetaData/index.tsx +0 -271
  168. package/src/components/editor/plugins/MarkdownShortcutPlugin/index.tsx +0 -11
  169. package/src/components/editor/plugins/MarkdownTransformers/index.tsx +0 -304
  170. package/src/components/editor/plugins/PollPlugin/index.tsx +0 -49
  171. package/src/components/editor/plugins/ShortcutsPlugin/index.tsx +0 -180
  172. package/src/components/editor/plugins/ShortcutsPlugin/shortcuts.ts +0 -253
  173. package/src/components/editor/plugins/SlashCommand/index.tsx +0 -621
  174. package/src/components/editor/plugins/SpeechToTextPlugin/index.ts +0 -127
  175. package/src/components/editor/plugins/TabFocusPlugin/index.ts +0 -58
  176. package/src/components/editor/plugins/TableCellResizer/index.tsx +0 -438
  177. package/src/components/editor/plugins/TablePlugin/index.tsx +0 -99
  178. package/src/components/editor/plugins/ToolbarPlugin/index.tsx +0 -522
  179. package/src/components/editor/plugins/TwitterPlugin/index.ts +0 -35
  180. package/src/components/editor/plugins/YouTubeNode/index.tsx +0 -179
  181. package/src/components/editor/plugins/YouTubePlugin/index.ts +0 -41
  182. package/src/components/editor/themes/editor-theme.ts +0 -113
  183. package/src/components/editor/themes/theme.css +0 -377
  184. package/src/components/editor/utils/ai.ts +0 -291
  185. package/src/components/editor/utils/canUseDOM.ts +0 -12
  186. package/src/components/editor/utils/environment.ts +0 -50
  187. package/src/components/editor/utils/extract-data.ts +0 -166
  188. package/src/components/editor/utils/getAllLexicalChildren.ts +0 -13
  189. package/src/components/editor/utils/getDOMRangeRect.ts +0 -27
  190. package/src/components/editor/utils/getSelectedNode.ts +0 -27
  191. package/src/components/editor/utils/gif.ts +0 -29
  192. package/src/components/editor/utils/invariant.ts +0 -15
  193. package/src/components/editor/utils/setFloatingElemPosition.ts +0 -51
  194. package/src/components/editor/utils/setFloatingElemPositionForLinkEditor.ts +0 -40
  195. package/src/components/editor/utils/setNodePlaceholderFromSelection/getNodePlaceholder.ts +0 -51
  196. package/src/components/editor/utils/setNodePlaceholderFromSelection/setNodePlaceholderFromSelection.ts +0 -15
  197. package/src/components/editor/utils/setNodePlaceholderFromSelection/setPlaceholderOnSelection.ts +0 -114
  198. package/src/components/editor/utils/setNodePlaceholderFromSelection/styles.css +0 -6
  199. package/src/components/editor/utils/url.ts +0 -109
  200. package/src/components/editor/utils/useLayoutEffect.ts +0 -13
  201. package/src/components/providers/QueryProvider.tsx +0 -15
  202. package/src/components/providers/SharedHistoryContext.tsx +0 -28
  203. package/src/components/providers/ToolbarContext.tsx +0 -123
  204. package/src/components/providers/theme-provider.tsx +0 -11
  205. package/src/components/theme/ModeToggle.tsx +0 -40
  206. package/src/components/ui/FileInput.tsx +0 -40
  207. package/src/components/ui/Input.css +0 -32
  208. package/src/components/ui/Select.css +0 -42
  209. package/src/components/ui/Select.tsx +0 -36
  210. package/src/components/ui/TextInput.tsx +0 -48
  211. package/src/components/ui/ai/ai-button.tsx +0 -574
  212. package/src/components/ui/ai/border.tsx +0 -99
  213. package/src/components/ui/ai/placeholder-input-vanish.tsx +0 -282
  214. package/src/components/ui/button.tsx +0 -89
  215. package/src/components/ui/card.tsx +0 -76
  216. package/src/components/ui/checkbox.tsx +0 -30
  217. package/src/components/ui/command.tsx +0 -153
  218. package/src/components/ui/dialog/Dialog.css +0 -25
  219. package/src/components/ui/dialog/Dialog.tsx +0 -34
  220. package/src/components/ui/dialog.tsx +0 -122
  221. package/src/components/ui/drop-downs/background-color.tsx +0 -183
  222. package/src/components/ui/drop-downs/block-format.tsx +0 -159
  223. package/src/components/ui/drop-downs/code.tsx +0 -42
  224. package/src/components/ui/drop-downs/color.tsx +0 -177
  225. package/src/components/ui/drop-downs/font-size.tsx +0 -138
  226. package/src/components/ui/drop-downs/font.tsx +0 -155
  227. package/src/components/ui/drop-downs/index.tsx +0 -122
  228. package/src/components/ui/drop-downs/insert-node.tsx +0 -213
  229. package/src/components/ui/drop-downs/text-align.tsx +0 -123
  230. package/src/components/ui/drop-downs/text-format.tsx +0 -104
  231. package/src/components/ui/dropdown-menu.tsx +0 -201
  232. package/src/components/ui/equation/EquationEditor.css +0 -38
  233. package/src/components/ui/equation/EquationEditor.tsx +0 -56
  234. package/src/components/ui/equation/KatexEquationAlterer.css +0 -41
  235. package/src/components/ui/equation/KatexEquationAlterer.tsx +0 -83
  236. package/src/components/ui/equation/KatexRenderer.tsx +0 -66
  237. package/src/components/ui/excalidraw/ExcalidrawModal.css +0 -64
  238. package/src/components/ui/excalidraw/ExcalidrawModal.tsx +0 -234
  239. package/src/components/ui/excalidraw/Modal.css +0 -62
  240. package/src/components/ui/excalidraw/Modal.tsx +0 -110
  241. package/src/components/ui/hover-card.tsx +0 -29
  242. package/src/components/ui/image/error-image.tsx +0 -17
  243. package/src/components/ui/image/file-upload.tsx +0 -240
  244. package/src/components/ui/image/image-resizer.tsx +0 -297
  245. package/src/components/ui/image/image-toolbar.tsx +0 -264
  246. package/src/components/ui/image/index.tsx +0 -408
  247. package/src/components/ui/image/lazy-image.tsx +0 -68
  248. package/src/components/ui/image/lazy-video.tsx +0 -71
  249. package/src/components/ui/input.tsx +0 -22
  250. package/src/components/ui/models/custom-dialog.tsx +0 -320
  251. package/src/components/ui/models/insert-gif.tsx +0 -90
  252. package/src/components/ui/models/insert-image.tsx +0 -52
  253. package/src/components/ui/models/insert-poll.tsx +0 -29
  254. package/src/components/ui/models/insert-table.tsx +0 -62
  255. package/src/components/ui/models/use-model.tsx +0 -91
  256. package/src/components/ui/poll/poll-component.tsx +0 -304
  257. package/src/components/ui/popover.tsx +0 -33
  258. package/src/components/ui/progress.tsx +0 -28
  259. package/src/components/ui/scroll-area.tsx +0 -48
  260. package/src/components/ui/separator.tsx +0 -31
  261. package/src/components/ui/skeleton.tsx +0 -15
  262. package/src/components/ui/sonner.tsx +0 -31
  263. package/src/components/ui/stepper/step.tsx +0 -179
  264. package/src/components/ui/stepper/stepper.tsx +0 -89
  265. package/src/components/ui/textarea.tsx +0 -22
  266. package/src/components/ui/toggle.tsx +0 -71
  267. package/src/components/ui/tooltip.tsx +0 -32
  268. package/src/components/ui/write/text-format-floting-toolbar.tsx +0 -346
  269. package/src/lib/edgestore.ts +0 -9
  270. package/src/lib/pinecone-client.ts +0 -0
  271. package/src/lib/utils.ts +0 -6
  272. package/src/utils/docSerialization.ts +0 -77
  273. package/src/utils/emoji-list.ts +0 -16615
  274. package/src/utils/getDOMRangeRect.ts +0 -27
  275. package/src/utils/getThemeSelector.ts +0 -25
  276. package/src/utils/isMobileWidth.ts +0 -7
  277. package/src/utils/joinClasses.ts +0 -13
  278. package/src/utils/setFloatingElemPosition.ts +0 -74
  279. package/src/utils/setFloatingElemPositionForLinkEditor.ts +0 -46
  280. package/src/utils/swipe.ts +0 -127
  281. package/src/utils/url.ts +0 -38
  282. package/tsconfig.json +0 -27
@@ -0,0 +1,528 @@
1
+ import {
2
+ ExcalidrawModal
3
+ } from "./chunk-XWC4TK2N.mjs";
4
+ import {
5
+ $isExcalidrawNode
6
+ } from "./chunk-KJV3FAZ7.mjs";
7
+ import "./chunk-WDG7J2DY.mjs";
8
+ import "./chunk-BIU7WTLX.mjs";
9
+ import "./chunk-YHPNOWFH.mjs";
10
+ import {
11
+ init_react_shim
12
+ } from "./chunk-77KXU36M.mjs";
13
+
14
+ // src/components/editor/nodes/ExcalidrawNode/ExcalidrawComponent.tsx
15
+ init_react_shim();
16
+ import { useLexicalComposerContext } from "@lexical/react/LexicalComposerContext";
17
+ import { useLexicalEditable } from "@lexical/react/useLexicalEditable";
18
+ import { useLexicalNodeSelection } from "@lexical/react/useLexicalNodeSelection";
19
+ import { mergeRegister } from "@lexical/utils";
20
+ import {
21
+ $getNodeByKey,
22
+ CLICK_COMMAND,
23
+ COMMAND_PRIORITY_LOW,
24
+ isDOMNode
25
+ } from "lexical";
26
+ import { useCallback, useEffect as useEffect2, useMemo, useRef as useRef2, useState as useState2 } from "react";
27
+ import * as React3 from "react";
28
+
29
+ // src/components/editor/nodes/ExcalidrawNode/ExcalidrawImage.tsx
30
+ init_react_shim();
31
+ import { exportToSvg } from "@excalidraw/excalidraw";
32
+ import * as React from "react";
33
+ import { useEffect, useState } from "react";
34
+ var removeStyleFromSvg_HACK = (svg) => {
35
+ var _a;
36
+ const styleTag = (_a = svg == null ? void 0 : svg.firstElementChild) == null ? void 0 : _a.firstElementChild;
37
+ const viewBox = svg.getAttribute("viewBox");
38
+ if (viewBox != null) {
39
+ const viewBoxDimensions = viewBox.split(" ");
40
+ svg.setAttribute("width", viewBoxDimensions[2]);
41
+ svg.setAttribute("height", viewBoxDimensions[3]);
42
+ }
43
+ if (styleTag && styleTag.tagName === "style") {
44
+ styleTag.remove();
45
+ }
46
+ };
47
+ function ExcalidrawImage({
48
+ elements,
49
+ files,
50
+ imageContainerRef,
51
+ appState,
52
+ rootClassName = null,
53
+ width = "inherit",
54
+ height = "inherit"
55
+ }) {
56
+ var _a;
57
+ const [Svg, setSvg] = useState(null);
58
+ useEffect(() => {
59
+ const setContent = async () => {
60
+ const svg = await exportToSvg({
61
+ appState,
62
+ elements,
63
+ files
64
+ });
65
+ removeStyleFromSvg_HACK(svg);
66
+ svg.setAttribute("width", "100%");
67
+ svg.setAttribute("height", "100%");
68
+ svg.setAttribute("display", "block");
69
+ setSvg(svg);
70
+ };
71
+ setContent();
72
+ }, [elements, files, appState]);
73
+ const containerStyle = {};
74
+ if (width !== "inherit") {
75
+ containerStyle.width = `${width}px`;
76
+ }
77
+ if (height !== "inherit") {
78
+ containerStyle.height = `${height}px`;
79
+ }
80
+ return /* @__PURE__ */ React.createElement(
81
+ "div",
82
+ {
83
+ ref: (node) => {
84
+ if (node) {
85
+ if (imageContainerRef) {
86
+ imageContainerRef.current = node;
87
+ }
88
+ }
89
+ },
90
+ className: rootClassName != null ? rootClassName : "",
91
+ style: containerStyle,
92
+ dangerouslySetInnerHTML: { __html: (_a = Svg == null ? void 0 : Svg.outerHTML) != null ? _a : "" }
93
+ }
94
+ );
95
+ }
96
+
97
+ // src/components/editor/nodes/ExcalidrawNode/ImageResizer.tsx
98
+ init_react_shim();
99
+ import { calculateZoomLevel } from "@lexical/utils";
100
+ import * as React2 from "react";
101
+ import { useRef } from "react";
102
+ function clamp(value, min, max) {
103
+ return Math.min(Math.max(value, min), max);
104
+ }
105
+ var Direction = {
106
+ east: 1 << 0,
107
+ north: 1 << 3,
108
+ south: 1 << 1,
109
+ west: 1 << 2
110
+ };
111
+ function ImageResizer({
112
+ onResizeStart,
113
+ onResizeEnd,
114
+ buttonRef,
115
+ imageRef,
116
+ maxWidth,
117
+ editor,
118
+ showCaption,
119
+ setShowCaption,
120
+ captionsEnabled
121
+ }) {
122
+ const controlWrapperRef = useRef(null);
123
+ const userSelect = useRef({
124
+ priority: "",
125
+ value: "default"
126
+ });
127
+ const positioningRef = useRef({
128
+ currentHeight: 0,
129
+ currentWidth: 0,
130
+ direction: 0,
131
+ isResizing: false,
132
+ ratio: 0,
133
+ startHeight: 0,
134
+ startWidth: 0,
135
+ startX: 0,
136
+ startY: 0
137
+ });
138
+ const editorRootElement = editor.getRootElement();
139
+ const maxWidthContainer = maxWidth ? maxWidth : editorRootElement !== null ? editorRootElement.getBoundingClientRect().width - 20 : 100;
140
+ const maxHeightContainer = editorRootElement !== null ? editorRootElement.getBoundingClientRect().height - 20 : 100;
141
+ const minWidth = 100;
142
+ const minHeight = 100;
143
+ const setStartCursor = (direction) => {
144
+ const ew = direction === Direction.east || direction === Direction.west;
145
+ const ns = direction === Direction.north || direction === Direction.south;
146
+ const nwse = direction & Direction.north && direction & Direction.west || direction & Direction.south && direction & Direction.east;
147
+ const cursorDir = ew ? "ew" : ns ? "ns" : nwse ? "nwse" : "nesw";
148
+ if (editorRootElement !== null) {
149
+ editorRootElement.style.setProperty(
150
+ "cursor",
151
+ `${cursorDir}-resize`,
152
+ "important"
153
+ );
154
+ }
155
+ if (document.body !== null) {
156
+ document.body.style.setProperty(
157
+ "cursor",
158
+ `${cursorDir}-resize`,
159
+ "important"
160
+ );
161
+ userSelect.current.value = document.body.style.getPropertyValue(
162
+ "-webkit-user-select"
163
+ );
164
+ userSelect.current.priority = document.body.style.getPropertyPriority(
165
+ "-webkit-user-select"
166
+ );
167
+ document.body.style.setProperty(
168
+ "-webkit-user-select",
169
+ `none`,
170
+ "important"
171
+ );
172
+ }
173
+ };
174
+ const setEndCursor = () => {
175
+ if (editorRootElement !== null) {
176
+ editorRootElement.style.setProperty("cursor", "text");
177
+ }
178
+ if (document.body !== null) {
179
+ document.body.style.setProperty("cursor", "default");
180
+ document.body.style.setProperty(
181
+ "-webkit-user-select",
182
+ userSelect.current.value,
183
+ userSelect.current.priority
184
+ );
185
+ }
186
+ };
187
+ const handlePointerDown = (event, direction) => {
188
+ if (!editor.isEditable()) {
189
+ return;
190
+ }
191
+ const image = imageRef.current;
192
+ const controlWrapper = controlWrapperRef.current;
193
+ if (image !== null && controlWrapper !== null) {
194
+ event.preventDefault();
195
+ const { width, height } = image.getBoundingClientRect();
196
+ const zoom = calculateZoomLevel(image);
197
+ const positioning = positioningRef.current;
198
+ positioning.startWidth = width;
199
+ positioning.startHeight = height;
200
+ positioning.ratio = width / height;
201
+ positioning.currentWidth = width;
202
+ positioning.currentHeight = height;
203
+ positioning.startX = event.clientX / zoom;
204
+ positioning.startY = event.clientY / zoom;
205
+ positioning.isResizing = true;
206
+ positioning.direction = direction;
207
+ setStartCursor(direction);
208
+ onResizeStart();
209
+ controlWrapper.classList.add("image-control-wrapper--resizing");
210
+ image.style.height = `${height}px`;
211
+ image.style.width = `${width}px`;
212
+ document.addEventListener("pointermove", handlePointerMove);
213
+ document.addEventListener("pointerup", handlePointerUp);
214
+ }
215
+ };
216
+ const handlePointerMove = (event) => {
217
+ const image = imageRef.current;
218
+ const positioning = positioningRef.current;
219
+ const isHorizontal = positioning.direction & (Direction.east | Direction.west);
220
+ const isVertical = positioning.direction & (Direction.south | Direction.north);
221
+ if (image !== null && positioning.isResizing) {
222
+ const zoom = calculateZoomLevel(image);
223
+ if (isHorizontal && isVertical) {
224
+ let diff = Math.floor(positioning.startX - event.clientX / zoom);
225
+ diff = positioning.direction & Direction.east ? -diff : diff;
226
+ const width = clamp(
227
+ positioning.startWidth + diff,
228
+ minWidth,
229
+ maxWidthContainer
230
+ );
231
+ const height = width / positioning.ratio;
232
+ image.style.width = `${width}px`;
233
+ image.style.height = `${height}px`;
234
+ positioning.currentHeight = height;
235
+ positioning.currentWidth = width;
236
+ } else if (isVertical) {
237
+ let diff = Math.floor(positioning.startY - event.clientY / zoom);
238
+ diff = positioning.direction & Direction.south ? -diff : diff;
239
+ const height = clamp(
240
+ positioning.startHeight + diff,
241
+ minHeight,
242
+ maxHeightContainer
243
+ );
244
+ image.style.height = `${height}px`;
245
+ positioning.currentHeight = height;
246
+ } else {
247
+ let diff = Math.floor(positioning.startX - event.clientX / zoom);
248
+ diff = positioning.direction & Direction.east ? -diff : diff;
249
+ const width = clamp(
250
+ positioning.startWidth + diff,
251
+ minWidth,
252
+ maxWidthContainer
253
+ );
254
+ image.style.width = `${width}px`;
255
+ positioning.currentWidth = width;
256
+ }
257
+ }
258
+ };
259
+ const handlePointerUp = () => {
260
+ const image = imageRef.current;
261
+ const positioning = positioningRef.current;
262
+ const controlWrapper = controlWrapperRef.current;
263
+ if (image !== null && controlWrapper !== null && positioning.isResizing) {
264
+ const width = positioning.currentWidth;
265
+ const height = positioning.currentHeight;
266
+ positioning.startWidth = 0;
267
+ positioning.startHeight = 0;
268
+ positioning.ratio = 0;
269
+ positioning.startX = 0;
270
+ positioning.startY = 0;
271
+ positioning.currentWidth = 0;
272
+ positioning.currentHeight = 0;
273
+ positioning.isResizing = false;
274
+ controlWrapper.classList.remove("image-control-wrapper--resizing");
275
+ setEndCursor();
276
+ onResizeEnd(width, height);
277
+ document.removeEventListener("pointermove", handlePointerMove);
278
+ document.removeEventListener("pointerup", handlePointerUp);
279
+ }
280
+ };
281
+ return /* @__PURE__ */ React2.createElement("div", { ref: controlWrapperRef }, !showCaption && captionsEnabled && /* @__PURE__ */ React2.createElement(
282
+ "button",
283
+ {
284
+ className: "image-caption-button",
285
+ ref: buttonRef,
286
+ onClick: () => {
287
+ setShowCaption(!showCaption);
288
+ }
289
+ },
290
+ "Add Caption"
291
+ ), /* @__PURE__ */ React2.createElement(
292
+ "div",
293
+ {
294
+ className: "image-resizer image-resizer-n",
295
+ onPointerDown: (event) => {
296
+ handlePointerDown(event, Direction.north);
297
+ }
298
+ }
299
+ ), /* @__PURE__ */ React2.createElement(
300
+ "div",
301
+ {
302
+ className: "image-resizer image-resizer-ne",
303
+ onPointerDown: (event) => {
304
+ handlePointerDown(event, Direction.north | Direction.east);
305
+ }
306
+ }
307
+ ), /* @__PURE__ */ React2.createElement(
308
+ "div",
309
+ {
310
+ className: "image-resizer image-resizer-e",
311
+ onPointerDown: (event) => {
312
+ handlePointerDown(event, Direction.east);
313
+ }
314
+ }
315
+ ), /* @__PURE__ */ React2.createElement(
316
+ "div",
317
+ {
318
+ className: "image-resizer image-resizer-se",
319
+ onPointerDown: (event) => {
320
+ handlePointerDown(event, Direction.south | Direction.east);
321
+ }
322
+ }
323
+ ), /* @__PURE__ */ React2.createElement(
324
+ "div",
325
+ {
326
+ className: "image-resizer image-resizer-s",
327
+ onPointerDown: (event) => {
328
+ handlePointerDown(event, Direction.south);
329
+ }
330
+ }
331
+ ), /* @__PURE__ */ React2.createElement(
332
+ "div",
333
+ {
334
+ className: "image-resizer image-resizer-sw",
335
+ onPointerDown: (event) => {
336
+ handlePointerDown(event, Direction.south | Direction.west);
337
+ }
338
+ }
339
+ ), /* @__PURE__ */ React2.createElement(
340
+ "div",
341
+ {
342
+ className: "image-resizer image-resizer-w",
343
+ onPointerDown: (event) => {
344
+ handlePointerDown(event, Direction.west);
345
+ }
346
+ }
347
+ ), /* @__PURE__ */ React2.createElement(
348
+ "div",
349
+ {
350
+ className: "image-resizer image-resizer-nw",
351
+ onPointerDown: (event) => {
352
+ handlePointerDown(event, Direction.north | Direction.west);
353
+ }
354
+ }
355
+ ));
356
+ }
357
+
358
+ // src/components/editor/nodes/ExcalidrawNode/ExcalidrawComponent.tsx
359
+ function ExcalidrawComponent({
360
+ nodeKey,
361
+ data,
362
+ width,
363
+ height
364
+ }) {
365
+ const [editor] = useLexicalComposerContext();
366
+ const isEditable = useLexicalEditable();
367
+ const [isModalOpen, setModalOpen] = useState2(
368
+ data === "[]" && editor.isEditable()
369
+ );
370
+ const imageContainerRef = useRef2(null);
371
+ const buttonRef = useRef2(null);
372
+ const captionButtonRef = useRef2(null);
373
+ const [isSelected, setSelected, clearSelection] = useLexicalNodeSelection(nodeKey);
374
+ const [isResizing, setIsResizing] = useState2(false);
375
+ useEffect2(() => {
376
+ if (!isEditable) {
377
+ if (isSelected) {
378
+ clearSelection();
379
+ }
380
+ return;
381
+ }
382
+ return mergeRegister(
383
+ editor.registerCommand(
384
+ CLICK_COMMAND,
385
+ (event) => {
386
+ const buttonElem = buttonRef.current;
387
+ const eventTarget = event.target;
388
+ if (isResizing) {
389
+ return true;
390
+ }
391
+ if (buttonElem !== null && isDOMNode(eventTarget) && buttonElem.contains(eventTarget)) {
392
+ if (!event.shiftKey) {
393
+ clearSelection();
394
+ }
395
+ setSelected(!isSelected);
396
+ if (event.detail > 1) {
397
+ setModalOpen(true);
398
+ }
399
+ return true;
400
+ }
401
+ return false;
402
+ },
403
+ COMMAND_PRIORITY_LOW
404
+ )
405
+ );
406
+ }, [clearSelection, editor, isSelected, isResizing, setSelected, isEditable]);
407
+ const deleteNode = useCallback(() => {
408
+ setModalOpen(false);
409
+ return editor.update(() => {
410
+ const node = $getNodeByKey(nodeKey);
411
+ if (node) {
412
+ node.remove();
413
+ }
414
+ });
415
+ }, [editor, nodeKey]);
416
+ const setData = (els, aps, fls) => {
417
+ return editor.update(() => {
418
+ const node = $getNodeByKey(nodeKey);
419
+ if ($isExcalidrawNode(node)) {
420
+ if (els && els.length > 0 || Object.keys(fls).length > 0) {
421
+ node.setData(
422
+ JSON.stringify({
423
+ appState: aps,
424
+ elements: els,
425
+ files: fls
426
+ })
427
+ );
428
+ } else {
429
+ node.remove();
430
+ }
431
+ }
432
+ });
433
+ };
434
+ const onResizeStart = () => {
435
+ setIsResizing(true);
436
+ };
437
+ const onResizeEnd = (nextWidth, nextHeight) => {
438
+ setTimeout(() => {
439
+ setIsResizing(false);
440
+ }, 200);
441
+ editor.update(() => {
442
+ const node = $getNodeByKey(nodeKey);
443
+ if ($isExcalidrawNode(node)) {
444
+ node.setWidth(nextWidth);
445
+ node.setHeight(nextHeight);
446
+ }
447
+ });
448
+ };
449
+ const openModal = useCallback(() => {
450
+ setModalOpen(true);
451
+ }, []);
452
+ const {
453
+ elements = [],
454
+ files = {},
455
+ appState = {}
456
+ } = useMemo(() => JSON.parse(data), [data]);
457
+ const closeModal = useCallback(() => {
458
+ setModalOpen(false);
459
+ if (elements.length === 0) {
460
+ editor.update(() => {
461
+ const node = $getNodeByKey(nodeKey);
462
+ if (node) {
463
+ node.remove();
464
+ }
465
+ });
466
+ }
467
+ }, [editor, nodeKey, elements.length]);
468
+ return /* @__PURE__ */ React3.createElement(React3.Fragment, null, isEditable && isModalOpen && /* @__PURE__ */ React3.createElement(
469
+ ExcalidrawModal,
470
+ {
471
+ initialElements: elements,
472
+ initialFiles: files,
473
+ initialAppState: appState,
474
+ isShown: isModalOpen,
475
+ onDelete: deleteNode,
476
+ onClose: closeModal,
477
+ onSave: (els, aps, fls) => {
478
+ setData(els, aps, fls);
479
+ setModalOpen(false);
480
+ },
481
+ closeOnClickOutside: false
482
+ }
483
+ ), elements.length > 0 && /* @__PURE__ */ React3.createElement(
484
+ "button",
485
+ {
486
+ ref: buttonRef,
487
+ className: `excalidraw-button ${isSelected ? "selected" : ""}`
488
+ },
489
+ /* @__PURE__ */ React3.createElement(
490
+ ExcalidrawImage,
491
+ {
492
+ imageContainerRef,
493
+ className: "image",
494
+ elements,
495
+ files,
496
+ appState,
497
+ width,
498
+ height
499
+ }
500
+ ),
501
+ isSelected && isEditable && /* @__PURE__ */ React3.createElement(
502
+ "div",
503
+ {
504
+ className: "image-edit-button",
505
+ role: "button",
506
+ tabIndex: 0,
507
+ onMouseDown: (event) => event.preventDefault(),
508
+ onClick: openModal
509
+ }
510
+ ),
511
+ (isSelected || isResizing) && isEditable && /* @__PURE__ */ React3.createElement(
512
+ ImageResizer,
513
+ {
514
+ buttonRef: captionButtonRef,
515
+ showCaption: true,
516
+ setShowCaption: () => null,
517
+ imageRef: imageContainerRef,
518
+ editor,
519
+ onResizeStart,
520
+ onResizeEnd,
521
+ captionsEnabled: true
522
+ }
523
+ )
524
+ ));
525
+ }
526
+ export {
527
+ ExcalidrawComponent as default
528
+ };
@@ -0,0 +1,14 @@
1
+ import {
2
+ ExcalidrawPlugin,
3
+ INSERT_EXCALIDRAW_COMMAND
4
+ } from "./chunk-EHNQD5KO.mjs";
5
+ import "./chunk-XWC4TK2N.mjs";
6
+ import "./chunk-KJV3FAZ7.mjs";
7
+ import "./chunk-WDG7J2DY.mjs";
8
+ import "./chunk-BIU7WTLX.mjs";
9
+ import "./chunk-YHPNOWFH.mjs";
10
+ import "./chunk-77KXU36M.mjs";
11
+ export {
12
+ INSERT_EXCALIDRAW_COMMAND,
13
+ ExcalidrawPlugin as default
14
+ };
@@ -0,0 +1,11 @@
1
+ import {
2
+ EXPORT_MARKDOWN_COMMAND,
3
+ EXPORT_PDF_COMMAND,
4
+ ExportPlugin
5
+ } from "./chunk-ZJRKATOJ.mjs";
6
+ import "./chunk-77KXU36M.mjs";
7
+ export {
8
+ EXPORT_MARKDOWN_COMMAND,
9
+ EXPORT_PDF_COMMAND,
10
+ ExportPlugin as default
11
+ };
@@ -0,0 +1,12 @@
1
+ import {
2
+ FloatingLinkEditorPlugin
3
+ } from "./chunk-QHIQKMVN.mjs";
4
+ import "./chunk-4HBCVSE6.mjs";
5
+ import "./chunk-4VWFVWYP.mjs";
6
+ import "./chunk-POGRR73N.mjs";
7
+ import "./chunk-BIU7WTLX.mjs";
8
+ import "./chunk-YHPNOWFH.mjs";
9
+ import "./chunk-77KXU36M.mjs";
10
+ export {
11
+ FloatingLinkEditorPlugin as default
12
+ };
@@ -0,0 +1,30 @@
1
+ import {
2
+ FloatingTextFormatToolbarPlugin
3
+ } from "./chunk-LQN3CMKV.mjs";
4
+ import "./chunk-Z4EWP7BI.mjs";
5
+ import "./chunk-4HBCVSE6.mjs";
6
+ import "./chunk-K36V4SIW.mjs";
7
+ import "./chunk-YMBXLRW5.mjs";
8
+ import "./chunk-456TN7IM.mjs";
9
+ import "./chunk-7VUMHWWL.mjs";
10
+ import "./chunk-EGMI62PP.mjs";
11
+ import "./chunk-KJ6AJ44Q.mjs";
12
+ import "./chunk-64Z3FI7T.mjs";
13
+ import "./chunk-2FNEAMSP.mjs";
14
+ import "./chunk-YUDCJRJM.mjs";
15
+ import "./chunk-6RNZQOH2.mjs";
16
+ import "./chunk-GXYD4VZM.mjs";
17
+ import "./chunk-ZB5LZQKC.mjs";
18
+ import "./chunk-PZSUSXQG.mjs";
19
+ import "./chunk-7NZAPJ4G.mjs";
20
+ import "./chunk-TCYK7DM7.mjs";
21
+ import "./chunk-4VWFVWYP.mjs";
22
+ import "./chunk-3CPBODXA.mjs";
23
+ import "./chunk-POGRR73N.mjs";
24
+ import "./chunk-WDG7J2DY.mjs";
25
+ import "./chunk-BIU7WTLX.mjs";
26
+ import "./chunk-YHPNOWFH.mjs";
27
+ import "./chunk-77KXU36M.mjs";
28
+ export {
29
+ FloatingTextFormatToolbarPlugin as default
30
+ };