edytor 1.0.0 → 3.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 (287) hide show
  1. package/README.md +26 -69
  2. package/dist/block/block.svelte.d.ts +6 -4
  3. package/dist/block/block.svelte.js +12 -8
  4. package/dist/block/inlineBlock.svelte.d.ts +6 -2
  5. package/dist/block/inlineBlock.svelte.js +7 -2
  6. package/dist/clipboard/htmlFlow.d.ts +20 -7
  7. package/dist/clipboard/htmlFlow.js +23 -15
  8. package/dist/clipboard/serializeClipboardFragment.d.ts +37 -4
  9. package/dist/clipboard/serializeClipboardFragment.js +6 -4
  10. package/dist/clipboard/textBlocks.d.ts +8 -0
  11. package/dist/clipboard/textBlocks.js +6 -2
  12. package/dist/cloudflare/room/admission.js +3 -3
  13. package/dist/cloudflare/room/context.d.ts +7 -1
  14. package/dist/cloudflare/routeDocumentSocket.d.ts +17 -0
  15. package/dist/cloudflare/routeDocumentSocket.js +53 -0
  16. package/dist/collaboration/awarenessSelection.d.ts +22 -1
  17. package/dist/collaboration/awarenessSelection.js +42 -0
  18. package/dist/collaboration/comments/client.d.ts +1 -1
  19. package/dist/collaboration/comments/client.js +1 -1
  20. package/dist/collaboration/remoteSelection.js +3 -3
  21. package/dist/components/Block.svelte +3 -1
  22. package/dist/components/Edytor.svelte +38 -20
  23. package/dist/components/Edytor.svelte.d.ts +9 -4
  24. package/dist/components/InlineBlock.svelte +1 -1
  25. package/dist/crdt/admission.d.ts +5 -10
  26. package/dist/crdt/admission.js +5 -11
  27. package/dist/crdt/data.d.ts +10 -0
  28. package/dist/crdt/data.js +20 -2
  29. package/dist/crdt/doc/funnel.d.ts +7 -6
  30. package/dist/crdt/doc/funnel.js +10 -9
  31. package/dist/crdt/doc/gate.d.ts +0 -17
  32. package/dist/crdt/doc/gate.js +2 -41
  33. package/dist/crdt/doc/history.js +2 -2
  34. package/dist/crdt/doc/reads.d.ts +7 -0
  35. package/dist/crdt/doc/reads.js +11 -1
  36. package/dist/crdt/document.d.ts +13 -14
  37. package/dist/crdt/document.js +17 -19
  38. package/dist/crdt/edytor-doc.d.ts +22 -4
  39. package/dist/crdt/edytor-doc.js +5 -8
  40. package/dist/crdt/index.d.ts +9 -3
  41. package/dist/crdt/index.js +2 -2
  42. package/dist/crdt/operations.d.ts +1 -1
  43. package/dist/crdt/operations.js +1 -0
  44. package/dist/crdt/props.d.ts +32 -0
  45. package/dist/crdt/props.js +172 -0
  46. package/dist/crdt/protocol.d.ts +2 -2
  47. package/dist/crdt/protocol.js +2 -2
  48. package/dist/crdt/providers/index.d.ts +1 -1
  49. package/dist/crdt/providers/room.d.ts +10 -9
  50. package/dist/crdt/providers/room.js +13 -10
  51. package/dist/crdt/providers/websocket.d.ts +1 -1
  52. package/dist/crdt/providers/websocket.js +28 -29
  53. package/dist/crdt/semantics.js +3 -1
  54. package/dist/dnd/autoScroll.d.ts +15 -7
  55. package/dist/dnd/autoScroll.js +10 -15
  56. package/dist/{plugins/blockHandles → dnd}/dropIndicator.d.ts +2 -2
  57. package/dist/{plugins/blockHandles → dnd}/dropIndicator.js +2 -5
  58. package/dist/dnd/external.d.ts +6 -0
  59. package/dist/dnd/external.js +17 -0
  60. package/dist/{plugins/blockHandles → dnd}/geometry.d.ts +4 -2
  61. package/dist/{plugins/blockHandles → dnd}/geometry.js +3 -4
  62. package/dist/dnd/placement.d.ts +200 -0
  63. package/dist/dnd/placement.js +426 -0
  64. package/dist/dnd/pragmatic.d.ts +3 -1
  65. package/dist/dnd/pragmatic.js +12 -2
  66. package/dist/dnd/vendor/pragmatic/UPSTREAM.md +51 -18
  67. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/drop-target-for-external.d.ts +4 -0
  68. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/drop-target-for-external.js +6 -0
  69. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.d.ts +0 -2
  70. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.js +4 -22
  71. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/external-adapter-types.d.ts +26 -0
  72. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/external-adapter.d.ts +30 -0
  73. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/external-adapter.js +203 -0
  74. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/get-available-items.js +13 -0
  75. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/get-available-types.js +9 -0
  76. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/is-an-available-type.js +19 -0
  77. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/monitor-for-external.d.ts +4 -0
  78. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/monitor-for-external.js +6 -0
  79. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/make-honey-pot-fix.js +4 -16
  80. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/internal-types.d.ts +1 -8
  81. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-drop-target.js +5 -6
  82. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-monitor.js +2 -3
  83. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/set-custom-native-drag-preview.d.ts +1 -1
  84. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/set-custom-native-drag-preview.js +6 -24
  85. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/external/contains-files.d.ts +2 -0
  86. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/external/contains-files.js +5 -0
  87. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/external/get-files.d.ts +3 -0
  88. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/external/get-files.js +12 -0
  89. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/external/native-types.d.ts +12 -0
  90. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-entering-window-in-safari.js +10 -0
  91. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-entering-window.js +55 -0
  92. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/external.d.ts +4 -0
  93. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/external.js +8 -0
  94. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/internal-types.d.ts +0 -4
  95. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/get-scroll-by.js +16 -72
  96. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/try-scroll.js +1 -9
  97. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/configuration.js +4 -29
  98. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-scroll-change.js +2 -3
  99. package/dist/edytor.svelte.d.ts +19 -9
  100. package/dist/edytor.svelte.js +28 -33
  101. package/dist/events/beforeInputCommands.d.ts +2 -2
  102. package/dist/events/beforeInputCommands.js +8 -4
  103. package/dist/events/onBeforeInput.js +1 -1
  104. package/dist/events/onDrop.js +25 -10
  105. package/dist/events/onInput.d.ts +0 -12
  106. package/dist/events/onInput.js +1 -67
  107. package/dist/events/onPaste.d.ts +2 -1
  108. package/dist/events/onPaste.js +8 -3
  109. package/dist/export/forms.d.ts +627 -0
  110. package/dist/export/forms.js +749 -0
  111. package/dist/export/index.d.ts +170 -0
  112. package/dist/export/index.js +161 -0
  113. package/dist/export/markdown.d.ts +41 -0
  114. package/dist/export/markdown.js +585 -0
  115. package/dist/export/markdownWriter.d.ts +9 -0
  116. package/dist/export/markdownWriter.js +133 -0
  117. package/dist/export/mdx.d.ts +15 -0
  118. package/dist/export/mdx.js +33 -0
  119. package/dist/index.d.ts +4 -4
  120. package/dist/index.js +2 -2
  121. package/dist/kinds.js +1 -1
  122. package/dist/labels.d.ts +2 -0
  123. package/dist/labels.js +2 -1
  124. package/dist/plugins/anchored.svelte.d.ts +21 -25
  125. package/dist/plugins/anchored.svelte.js +23 -39
  126. package/dist/plugins/arrowMove/arrowMove.d.ts +1 -1
  127. package/dist/plugins/arrowMove/arrowMove.js +1 -1
  128. package/dist/plugins/blockHandles/BlockHandleController.svelte.d.ts +2 -122
  129. package/dist/plugins/blockHandles/BlockHandleController.svelte.js +48 -414
  130. package/dist/plugins/blockHandles/BlockHandles.svelte +14 -32
  131. package/dist/plugins/blockHandles/blockHandlesPlugin.js +2 -1
  132. package/dist/plugins/blockHandles/dragPreview.d.ts +26 -7
  133. package/dist/plugins/blockHandles/dragPreview.js +33 -0
  134. package/dist/plugins/blockMenu/BlockMenuController.svelte.d.ts +5 -0
  135. package/dist/plugins/blockMenu/BlockMenuController.svelte.js +7 -2
  136. package/dist/plugins/blockMenu/blockMenuPlugin.js +5 -50
  137. package/dist/plugins/chrome.d.ts +27 -5
  138. package/dist/plugins/chrome.js +24 -9
  139. package/dist/plugins/code/CodeHeader.svelte +5 -3
  140. package/dist/plugins/code/CodePlugin.svelte +15 -12
  141. package/dist/plugins/code/header.svelte.js +7 -11
  142. package/dist/plugins/code/languageMenu.svelte.d.ts +5 -2
  143. package/dist/plugins/code/languageMenu.svelte.js +13 -20
  144. package/dist/plugins/code/languages.d.ts +0 -3
  145. package/dist/plugins/code/languages.js +0 -2
  146. package/dist/plugins/columns/ColumnResize.svelte +3 -2
  147. package/dist/plugins/columns/ColumnsPlugin.svelte +8 -21
  148. package/dist/plugins/columns/gaps.d.ts +7 -5
  149. package/dist/plugins/columns/gaps.js +11 -6
  150. package/dist/plugins/columns/resize.svelte.d.ts +5 -6
  151. package/dist/plugins/columns/resize.svelte.js +12 -14
  152. package/dist/plugins/comments/CommentsController.svelte.d.ts +6 -0
  153. package/dist/plugins/comments/CommentsController.svelte.js +20 -0
  154. package/dist/plugins/equation/EquationPlugin.svelte +13 -30
  155. package/dist/plugins/equation/EquationPlugin.svelte.d.ts +1 -0
  156. package/dist/plugins/equation/equation.css +7 -0
  157. package/dist/plugins/equation/equation.svelte.d.ts +7 -15
  158. package/dist/plugins/equation/equation.svelte.js +13 -50
  159. package/dist/plugins/equation/tex.d.ts +17 -0
  160. package/dist/plugins/equation/tex.js +42 -0
  161. package/dist/plugins/fileDrop.d.ts +43 -0
  162. package/dist/plugins/fileDrop.js +122 -0
  163. package/dist/plugins/find/FindController.svelte.d.ts +5 -0
  164. package/dist/plugins/find/FindController.svelte.js +14 -14
  165. package/dist/plugins/find/findPlugin.js +1 -15
  166. package/dist/plugins/image/ImageChrome.svelte +8 -2
  167. package/dist/plugins/image/ImagePlugin.svelte +56 -84
  168. package/dist/plugins/image/ImagePlugin.svelte.d.ts +13 -1
  169. package/dist/plugins/image/controls.svelte.js +16 -2
  170. package/dist/plugins/image/image.css +17 -0
  171. package/dist/plugins/image/toolbar.svelte.d.ts +5 -4
  172. package/dist/plugins/image/toolbar.svelte.js +21 -31
  173. package/dist/plugins/index.d.ts +4 -5
  174. package/dist/plugins/index.js +0 -1
  175. package/dist/plugins/list.svelte.d.ts +9 -0
  176. package/dist/plugins/list.svelte.js +18 -0
  177. package/dist/plugins/markdownShortcuts.js +5 -5
  178. package/dist/plugins/marquee/marqueePlugin.js +0 -4
  179. package/dist/plugins/media/AudioPlugin.svelte +13 -1
  180. package/dist/plugins/media/AudioPlugin.svelte.d.ts +11 -1
  181. package/dist/plugins/media/BookmarkPlugin.svelte +6 -97
  182. package/dist/plugins/media/EmbedPlugin.svelte +5 -90
  183. package/dist/plugins/media/EmptySlot.svelte +36 -20
  184. package/dist/plugins/media/EmptySlot.svelte.d.ts +6 -15
  185. package/dist/plugins/media/FilePlugin.svelte +12 -20
  186. package/dist/plugins/media/FilePlugin.svelte.d.ts +9 -0
  187. package/dist/plugins/media/MediaEmpty.svelte +2 -55
  188. package/dist/plugins/media/MediaEmpty.svelte.d.ts +18 -14
  189. package/dist/plugins/media/SourceBlock.svelte +178 -52
  190. package/dist/plugins/media/SourceBlock.svelte.d.ts +13 -6
  191. package/dist/plugins/media/UploadPreview.svelte +32 -0
  192. package/dist/plugins/media/UploadPreview.svelte.d.ts +11 -0
  193. package/dist/plugins/media/VideoPlugin.svelte +13 -1
  194. package/dist/plugins/media/VideoPlugin.svelte.d.ts +11 -1
  195. package/dist/plugins/media/empty.svelte.d.ts +13 -4
  196. package/dist/plugins/media/empty.svelte.js +32 -26
  197. package/dist/plugins/media/media.d.ts +9 -63
  198. package/dist/plugins/media/media.js +1 -194
  199. package/dist/plugins/media/sources.d.ts +60 -0
  200. package/dist/plugins/media/sources.js +165 -0
  201. package/dist/plugins/media/upload.css +23 -0
  202. package/dist/plugins/media/urlPaste.svelte.d.ts +2 -1
  203. package/dist/plugins/media/urlPaste.svelte.js +12 -21
  204. package/dist/plugins/mention/MentionPlugin.svelte +50 -38
  205. package/dist/plugins/mention/MentionPlugin.svelte.d.ts +11 -2
  206. package/dist/plugins/mention/mention.css +6 -0
  207. package/dist/plugins/page/PagePlugin.svelte +2 -9
  208. package/dist/plugins/page/page.js +1 -1
  209. package/dist/plugins/pageLink/PageLinkPlugin.svelte +126 -28
  210. package/dist/plugins/pageLink/PageLinkPlugin.svelte.d.ts +13 -1
  211. package/dist/plugins/pageLink/pageLink.css +6 -0
  212. package/dist/plugins/richtext/RichTextPlugin.svelte +99 -204
  213. package/dist/plugins/richtext/RichTextPlugin.svelte.d.ts +1 -0
  214. package/dist/plugins/richtext/body.js +1 -1
  215. package/dist/plugins/richtext/calloutIcons.svelte.d.ts +2 -2
  216. package/dist/plugins/richtext/calloutIcons.svelte.js +5 -7
  217. package/dist/plugins/richtext/richTextOperations.d.ts +1 -19
  218. package/dist/plugins/richtext/richTextOperations.js +3 -49
  219. package/dist/plugins/richtext/richtext.css +6 -0
  220. package/dist/plugins/slashMenu/SlashMenuController.svelte.d.ts +2 -0
  221. package/dist/plugins/slashMenu/SlashMenuController.svelte.js +7 -0
  222. package/dist/plugins/slashMenu/slashMenuPlugin.js +5 -14
  223. package/dist/plugins/table/TableChrome.svelte +2 -3
  224. package/dist/plugins/table/TablePlugin.svelte +20 -54
  225. package/dist/plugins/table/chrome.svelte.d.ts +5 -2
  226. package/dist/plugins/table/chrome.svelte.js +33 -56
  227. package/dist/plugins/table/table.js +3 -3
  228. package/dist/plugins/toc/TocPlugin.svelte +2 -4
  229. package/dist/plugins/toolbar/ToolbarController.svelte.d.ts +7 -0
  230. package/dist/plugins/toolbar/ToolbarController.svelte.js +20 -13
  231. package/dist/plugins/toolbar/toolbarPlugin.js +19 -53
  232. package/dist/plugins/triggers/TriggerController.svelte.d.ts +7 -2
  233. package/dist/plugins/triggers/TriggerController.svelte.js +11 -4
  234. package/dist/plugins/triggers/place.js +1 -2
  235. package/dist/plugins/triggers/triggers.d.ts +6 -1
  236. package/dist/plugins/triggers/triggers.js +12 -13
  237. package/dist/plugins/uploads.svelte.d.ts +48 -32
  238. package/dist/plugins/uploads.svelte.js +119 -43
  239. package/dist/plugins.d.ts +66 -14
  240. package/dist/plugins.js +0 -24
  241. package/dist/selection/replaceSelection.js +2 -2
  242. package/dist/selection/selection.svelte.d.ts +4 -10
  243. package/dist/selection/selection.svelte.js +7 -11
  244. package/dist/session/attempt.d.ts +16 -6
  245. package/dist/session/attempt.js +1 -0
  246. package/dist/session/bindings.js +35 -32
  247. package/dist/session/commands.d.ts +7 -11
  248. package/dist/session/commands.js +15 -19
  249. package/dist/session/history.js +1 -0
  250. package/dist/session/inputRules.d.ts +6 -3
  251. package/dist/session/inputRules.js +10 -6
  252. package/dist/session/moves.d.ts +33 -0
  253. package/dist/session/moves.js +71 -1
  254. package/dist/session/navigation.d.ts +7 -0
  255. package/dist/session/navigation.js +20 -11
  256. package/dist/session/props.d.ts +28 -0
  257. package/dist/session/props.js +65 -0
  258. package/dist/session/suggestions.svelte.d.ts +0 -11
  259. package/dist/session/suggestions.svelte.js +15 -3
  260. package/dist/session/uploads.d.ts +29 -0
  261. package/dist/session/uploads.js +10 -0
  262. package/dist/surface/lines.js +1 -3
  263. package/dist/surface/observer.svelte.d.ts +17 -1
  264. package/dist/surface/observer.svelte.js +72 -17
  265. package/dist/surface/overlay.d.ts +0 -14
  266. package/dist/surface/overlay.js +0 -25
  267. package/dist/surface/projector.svelte.js +1 -1
  268. package/dist/text/text.svelte.js +3 -13
  269. package/dist/themes/notion.css +9 -0
  270. package/dist/utils/sanitize.d.ts +38 -0
  271. package/dist/utils/sanitize.js +82 -0
  272. package/dist/utils.d.ts +2 -0
  273. package/dist/utils.js +5 -0
  274. package/package.json +18 -1
  275. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/max-z-index.js +0 -3
  276. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/supports-popover.js +0 -16
  277. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-axis-allowed.js +0 -3
  278. package/dist/plugins/code/LanguageMenu.svelte +0 -25
  279. package/dist/plugins/code/LanguageMenu.svelte.d.ts +0 -9
  280. package/dist/plugins/equation/EquationEditor.svelte +0 -27
  281. package/dist/plugins/equation/EquationEditor.svelte.d.ts +0 -9
  282. package/dist/plugins/image/ImageToolbarHost.svelte +0 -37
  283. package/dist/plugins/image/ImageToolbarHost.svelte.d.ts +0 -9
  284. package/dist/plugins/richtext/CalloutIconPicker.svelte +0 -26
  285. package/dist/plugins/richtext/CalloutIconPicker.svelte.d.ts +0 -9
  286. /package/dist/{plugins/columns → dnd}/stacking.d.ts +0 -0
  287. /package/dist/{plugins/columns → dnd}/stacking.js +0 -0
package/dist/utils.d.ts CHANGED
@@ -15,3 +15,5 @@ export declare class PreventionError extends Error {
15
15
  export declare const isPrevention: (error: unknown) => error is PreventionError;
16
16
  /** A hook's `prevent`: veto the gesture, and optionally run `cb` in its place. */
17
17
  export type Prevent = (cb?: () => void) => void;
18
+ /** The cleanups `call` answers for each of `items` (a hook answers a function or nothing). */
19
+ export declare const cleanups: <T>(items: readonly T[], call: (item: T) => unknown) => (() => void)[];
package/dist/utils.js CHANGED
@@ -39,3 +39,8 @@ export const vetoable = (call) => {
39
39
  throw veto;
40
40
  return out;
41
41
  };
42
+ /** The cleanups `call` answers for each of `items` (a hook answers a function or nothing). */
43
+ export const cleanups = (items, call) => items.flatMap((item) => {
44
+ const action = call(item);
45
+ return typeof action === 'function' ? [action] : [];
46
+ });
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "edytor",
3
3
  "license": "MIT",
4
- "version": "1.0.0",
4
+ "version": "3.0.0",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "git+https://github.com/beynar/edytor.git"
@@ -50,6 +50,9 @@
50
50
  "bench:browser": "node bench/browser.js",
51
51
  "bench:runs": "BENCH_RUNS=1 vitest --config ./vitest.crdt.config.ts --run src/tests/crdt/runs/runs.bench.test.ts",
52
52
  "size": "node scripts/bundle-size.mjs --by dir",
53
+ "registry:build": "shadcn-svelte registry build ./registry.json --output site/public/r",
54
+ "check:registry": "node scripts/check-registry.mjs",
55
+ "test:registry-install": "sh tests/registry-install/run.sh",
53
56
  "census": "node scripts/census.mjs"
54
57
  },
55
58
  "exports": {
@@ -66,6 +69,10 @@
66
69
  "types": "./dist/crdt/index.d.ts",
67
70
  "default": "./dist/crdt/index.js"
68
71
  },
72
+ "./export": {
73
+ "types": "./dist/export/index.d.ts",
74
+ "default": "./dist/export/index.js"
75
+ },
69
76
  "./protocol": {
70
77
  "types": "./dist/crdt/protocol.d.ts",
71
78
  "default": "./dist/crdt/protocol.js"
@@ -99,6 +106,9 @@
99
106
  "@cloudflare/vitest-plugin": "1.3.0",
100
107
  "@cloudflare/workers-types": "^5.20260927.1",
101
108
  "@eslint/js": "^10.0.1",
109
+ "@floating-ui/dom": "1.8.0",
110
+ "@internationalized/date": "^3.12.4",
111
+ "@lucide/svelte": "^1.56.0",
102
112
  "@playwright/test": "^1.59.1",
103
113
  "@sveltejs/adapter-static": "^3.0.10",
104
114
  "@sveltejs/kit": "^2.55.0",
@@ -110,6 +120,8 @@
110
120
  "@typescript-eslint/parser": "^8.58.0",
111
121
  "@vitest/ui": "^4.1.2",
112
122
  "@y/protocols": "1.0.6-rc.1",
123
+ "bits-ui": "^2.19.5",
124
+ "cn": "^0.4.0",
113
125
  "eslint": "^10.1.0",
114
126
  "eslint-config-prettier": "^10.1.8",
115
127
  "eslint-plugin-svelte": "^3.17.0",
@@ -117,12 +129,16 @@
117
129
  "globals": "^17.6.0",
118
130
  "jsdom": "^29.0.1",
119
131
  "katex": "0.18.7",
132
+ "linkedom": "^0.18.12",
120
133
  "prettier": "^3.8.1",
121
134
  "prettier-plugin-svelte": "^3.5.1",
122
135
  "publint": "^0.3.18",
136
+ "shadcn-svelte": "^1.7.0",
123
137
  "svelte": "5.55.1",
124
138
  "svelte-check": "^4.4.6",
139
+ "tailwind-variants": "^3.3.1",
125
140
  "tailwindcss": "^4.2.2",
141
+ "tw-animate-css": "^1.4.0",
126
142
  "typescript": "^5.9.3",
127
143
  "vite": "^8.0.3",
128
144
  "vitest": "^4.1.2",
@@ -148,6 +164,7 @@
148
164
  },
149
165
  "dependencies": {
150
166
  "@tanstack/highlight": "^0.1.0",
167
+ "@tanstack/markdown": "1.0.0",
151
168
  "esm-env": "^1.2.2",
152
169
  "lib0-v14": "npm:lib0@1.0.0-rc.32"
153
170
  }
@@ -1,3 +0,0 @@
1
- // Maximum possible z-index
2
- // https://stackoverflow.com/questions/491052/minimum-and-maximum-value-of-z-index
3
- export const maxZIndex = 2147483647;
@@ -1,16 +0,0 @@
1
- import { once } from '../public-utils/once.js';
2
-
3
- // Using `once` as the value won't change in a browser
4
-
5
- /**
6
- * Returns `true` if the browser supports the Popover API (top-layer).
7
- *
8
- * When supported, elements with `popover="manual"` can be promoted to the
9
- * browser's top layer via `element.showPopover()`, which is more reliable
10
- * than `z-index` for ensuring an element renders above everything else.
11
- *
12
- * @see https://developer.mozilla.org/en-US/docs/Web/API/Popover_API
13
- */
14
- export const supportsPopover = once(function supportsPopover() {
15
- return typeof HTMLElement !== 'undefined' && typeof HTMLElement.prototype.showPopover === 'function';
16
- });
@@ -1,3 +0,0 @@
1
- export function isAxisAllowed(axis, allowedAxis) {
2
- return allowedAxis === 'all' || axis === allowedAxis;
3
- }
@@ -1,25 +0,0 @@
1
- <script lang="ts">
2
- import type { Snippet } from 'svelte';
3
- import type { LanguageMenu } from './languageMenu.svelte.js';
4
-
5
- /**
6
- * The code language list (`LanguageMenu`), in the overlay under the
7
- * language button of its block: the plugin's `menu` snippet, placed. Its
8
- * keys and ARIA are the controller's attachments (`keys`, `popup`,
9
- * `option(index)`).
10
- */
11
- let { menu, snippet }: { menu: LanguageMenu; snippet: Snippet<[LanguageMenu]> } = $props();
12
-
13
- const place = $derived(menu.open && menu.panel.place(4));
14
- </script>
15
-
16
- {#if place}
17
- <div
18
- data-edytor-code-language-panel
19
- style:position="absolute"
20
- style:left="{place.left}px"
21
- style:top="{place.top}px"
22
- >
23
- {@render snippet(menu)}
24
- </div>
25
- {/if}
@@ -1,9 +0,0 @@
1
- import type { Snippet } from 'svelte';
2
- import type { LanguageMenu } from './languageMenu.svelte.js';
3
- type $$ComponentProps = {
4
- menu: LanguageMenu;
5
- snippet: Snippet<[LanguageMenu]>;
6
- };
7
- declare const LanguageMenu: import("svelte").Component<$$ComponentProps, {}, "">;
8
- type LanguageMenu = ReturnType<typeof LanguageMenu>;
9
- export default LanguageMenu;
@@ -1,27 +0,0 @@
1
- <script lang="ts">
2
- import type { Snippet } from 'svelte';
3
- import type { EquationEditor } from './equation.svelte.js';
4
-
5
- /**
6
- * The equation editor (`EquationEditor`), in the overlay under the edited
7
- * equation (Notion's), centered under a block one: the plugin's `panel`
8
- * snippet, placed. It takes the field's focus and keys through the
9
- * controller's attachment (`field`).
10
- */
11
- let { editor, panel }: { editor: EquationEditor; panel: Snippet<[EquationEditor]> } = $props();
12
-
13
- const place = $derived(editor.place);
14
- </script>
15
-
16
- {#if place}
17
- <div
18
- data-edytor-equation-panel
19
- data-display={editor.display ? 'block' : 'inline'}
20
- style:position="absolute"
21
- style:left="{place.left}px"
22
- style:top="{place.top}px"
23
- style:transform={editor.display ? 'translateX(-50%)' : undefined}
24
- >
25
- {@render panel(editor)}
26
- </div>
27
- {/if}
@@ -1,9 +0,0 @@
1
- import type { Snippet } from 'svelte';
2
- import type { EquationEditor } from './equation.svelte.js';
3
- type $$ComponentProps = {
4
- editor: EquationEditor;
5
- panel: Snippet<[EquationEditor]>;
6
- };
7
- declare const EquationEditor: import("svelte").Component<$$ComponentProps, {}, "">;
8
- type EquationEditor = ReturnType<typeof EquationEditor>;
9
- export default EquationEditor;
@@ -1,37 +0,0 @@
1
- <script lang="ts">
2
- import type { Snippet } from 'svelte';
3
- import type { ImageToolbar } from './toolbar.svelte.js';
4
-
5
- /**
6
- * The image toolbar's place: the app's `toolbar` at the top right of the
7
- * image the chrome is on, while it shows and no handle drags.
8
- */
9
- let { toolbar, snippet }: { toolbar: ImageToolbar; snippet: Snippet<[ImageToolbar]> } = $props();
10
- const controls = $derived(toolbar.controls);
11
- </script>
12
-
13
- {#if controls.shown && controls.box && !controls.drag}
14
- {@const box = controls.box}
15
- <div
16
- data-edytor-image-toolbar-slot
17
- style:left="{box.x + box.width - 6}px"
18
- style:top="{box.y + 6}px"
19
- data-selecting={controls.selecting ? 'true' : undefined}
20
- >
21
- {@render snippet(toolbar)}
22
- </div>
23
- {/if}
24
-
25
- <style>
26
- /* The toolbar's place: the image's top right, sized to its markup. */
27
- [data-edytor-image-toolbar-slot] {
28
- position: absolute;
29
- width: max-content;
30
- transform: translateX(-100%);
31
- }
32
-
33
- /* A text selection in progress: the chrome takes no pointer. */
34
- [data-selecting='true'] {
35
- pointer-events: none;
36
- }
37
- </style>
@@ -1,9 +0,0 @@
1
- import type { Snippet } from 'svelte';
2
- import type { ImageToolbar } from './toolbar.svelte.js';
3
- type $$ComponentProps = {
4
- toolbar: ImageToolbar;
5
- snippet: Snippet<[ImageToolbar]>;
6
- };
7
- declare const ImageToolbarHost: import("svelte").Component<$$ComponentProps, {}, "">;
8
- type ImageToolbarHost = ReturnType<typeof ImageToolbarHost>;
9
- export default ImageToolbarHost;
@@ -1,26 +0,0 @@
1
- <script lang="ts">
2
- import type { Snippet } from 'svelte';
3
- import type { CalloutIconPicker } from './calloutIcons.svelte.js';
4
-
5
- /**
6
- * A callout's icon picker (`callout.icon`), in the overlay under the icon:
7
- * the app's `picker` snippet, hidden until its first placement (never
8
- * `display: none`: it takes the focus as it mounts). Its keys and popup
9
- * are the controller's attachments (`keys`, `popup`) and rows (`option`).
10
- */
11
- let { picker, menu }: { picker: CalloutIconPicker; menu: Snippet<[CalloutIconPicker]> } =
12
- $props();
13
- const place = $derived(picker.isOpen && picker.panel.place(4));
14
- </script>
15
-
16
- {#if picker.isOpen}
17
- <div
18
- data-edytor-callout-icons
19
- style:position="absolute"
20
- style:left="{place ? place.left : 0}px"
21
- style:top="{place ? place.top : 0}px"
22
- style:opacity={place ? undefined : 0}
23
- >
24
- {@render menu(picker)}
25
- </div>
26
- {/if}
@@ -1,9 +0,0 @@
1
- import type { Snippet } from 'svelte';
2
- import type { CalloutIconPicker } from './calloutIcons.svelte.js';
3
- type $$ComponentProps = {
4
- picker: CalloutIconPicker;
5
- menu: Snippet<[CalloutIconPicker]>;
6
- };
7
- declare const CalloutIconPicker: import("svelte").Component<$$ComponentProps, {}, "">;
8
- type CalloutIconPicker = ReturnType<typeof CalloutIconPicker>;
9
- export default CalloutIconPicker;
File without changes
File without changes