@prosekit/web 0.8.0-beta.4 → 0.8.0-beta.6
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.
- package/dist/{prosekit-web-autocomplete.d.ts → autocomplete.d.ts} +1 -1
- package/dist/autocomplete.d.ts.map +1 -0
- package/dist/{prosekit-web-autocomplete.js → autocomplete.js} +3 -2
- package/dist/autocomplete.js.map +1 -0
- package/dist/{prosekit-web-block-handle.d.ts → block-handle.d.ts} +1 -1
- package/dist/block-handle.d.ts.map +1 -0
- package/dist/{prosekit-web-block-handle.js → block-handle.js} +3 -3
- package/dist/block-handle.js.map +1 -0
- package/dist/{prosekit-web-drop-indicator.d.ts → drop-indicator.d.ts} +1 -1
- package/dist/drop-indicator.d.ts.map +1 -0
- package/dist/{prosekit-web-drop-indicator.js → drop-indicator.js} +1 -1
- package/dist/drop-indicator.js.map +1 -0
- package/dist/{prosekit-web.d.ts → index.d.ts} +1 -1
- package/dist/index.d.ts.map +1 -0
- package/dist/{prosekit-web.js → index.js} +1 -1
- package/dist/index.js.map +1 -0
- package/dist/{prosekit-web-inline-popover.d.ts → inline-popover.d.ts} +1 -1
- package/dist/inline-popover.d.ts.map +1 -0
- package/dist/{prosekit-web-inline-popover.js → inline-popover.js} +2 -2
- package/dist/inline-popover.js.map +1 -0
- package/dist/{prosekit-web-menu.d.ts → menu.d.ts} +1 -1
- package/dist/menu.d.ts.map +1 -0
- package/dist/{prosekit-web-menu.js → menu.js} +1 -1
- package/dist/menu.js.map +1 -0
- package/dist/{prosekit-web-popover.d.ts → popover.d.ts} +1 -1
- package/dist/popover.d.ts.map +1 -0
- package/dist/{prosekit-web-popover.js → popover.js} +1 -1
- package/dist/popover.js.map +1 -0
- package/dist/{prosekit-web-resizable.d.ts → resizable.d.ts} +1 -1
- package/dist/resizable.d.ts.map +1 -0
- package/dist/{prosekit-web-resizable.js → resizable.js} +1 -1
- package/dist/resizable.js.map +1 -0
- package/dist/{prosekit-web-table-handle.d.ts → table-handle.d.ts} +1 -1
- package/dist/table-handle.d.ts.map +1 -0
- package/dist/{prosekit-web-table-handle.js → table-handle.js} +3 -2
- package/dist/table-handle.js.map +1 -0
- package/dist/{prosekit-web-tooltip.d.ts → tooltip.d.ts} +1 -1
- package/dist/tooltip.d.ts.map +1 -0
- package/dist/{prosekit-web-tooltip.js → tooltip.js} +1 -1
- package/dist/tooltip.js.map +1 -0
- package/dist/use-scrolling.js +11 -17
- package/dist/use-scrolling.js.map +1 -1
- package/package.json +42 -59
- package/src/components/autocomplete/autocomplete-item.ts +1 -1
- package/src/components/autocomplete/autocomplete-root.ts +1 -1
- package/src/components/block-handle/block-handle-add.ts +1 -1
- package/src/components/block-handle/block-handle-draggable.ts +1 -2
- package/src/components/table-handle/table-handle-column-menu-trigger.ts +1 -1
- package/src/components/table-handle/table-handle-row-menu-trigger.ts +1 -1
- package/src/hooks/use-scrolling.ts +16 -14
- package/dist/prosekit-web-autocomplete.d.ts.map +0 -1
- package/dist/prosekit-web-autocomplete.js.map +0 -1
- package/dist/prosekit-web-block-handle.d.ts.map +0 -1
- package/dist/prosekit-web-block-handle.js.map +0 -1
- package/dist/prosekit-web-drop-indicator.d.ts.map +0 -1
- package/dist/prosekit-web-drop-indicator.js.map +0 -1
- package/dist/prosekit-web-inline-popover.d.ts.map +0 -1
- package/dist/prosekit-web-inline-popover.js.map +0 -1
- package/dist/prosekit-web-menu.d.ts.map +0 -1
- package/dist/prosekit-web-menu.js.map +0 -1
- package/dist/prosekit-web-popover.d.ts.map +0 -1
- package/dist/prosekit-web-popover.js.map +0 -1
- package/dist/prosekit-web-resizable.d.ts.map +0 -1
- package/dist/prosekit-web-resizable.js.map +0 -1
- package/dist/prosekit-web-table-handle.d.ts.map +0 -1
- package/dist/prosekit-web-table-handle.js.map +0 -1
- package/dist/prosekit-web-tooltip.d.ts.map +0 -1
- package/dist/prosekit-web-tooltip.js.map +0 -1
- package/dist/prosekit-web.d.ts.map +0 -1
- package/dist/prosekit-web.js.map +0 -1
package/dist/prosekit-web.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prosekit-web.js","names":[],"sources":["../src/queue-extension.ts"],"sourcesContent":["import type { Editor, Extension } from '@prosekit/core'\n\n/**\n\n @internal\n\n Queues an extension to be added to the editor in the next task. Returns a\n dispose function that can be used to remove the extension in the next task.\n\n Why?\n\n Let's take React as an example.\n\n `editor.use(extension)` is synchronous. If the extension adds a node view that\n is controlled by `@prosemirror-adapter/react`, adding this extension will\n cause `prosemirror-adapter` to set UI state synchronously (e.g. `setState`\n returned by `useState` in React).\n\n ProseMirror is a sync-based framework. When updating node view, ProseMirror\n will first stop DOMObserver, then update the DOM, then resume DOMObserver.\n `prosemirror-adapter` needs to call `React.flushSync()` to update the DOM\n synchronously right after React state is updated, before ProseMirror resumes\n DOMObserver.\n\n If we call `editor.use(extension)` directly in `useEffect`, we eventually are\n doing something like this:\n\n ```ts\n React.useEffect(() => {\n React.flushSync(() => {\n setState(newState)\n })\n }, [])\n ```\n\n This breaks the async nature of React, and causes the following React\n warning:\n\n ```\n flushSync was called from inside a lifecycle method. React cannot flush when\n React is already rendering. Consider moving this call to a scheduler task or\n micro task.\n ```\n\n To fix this, we need to queue the extension addition to the editor in the next\n task or in the next microtask.\n\n ```ts\n // In the next microtask\n React.useEffect(() => {\n queueMicrotask(() => {\n React.flushSync(() => {\n setState(newState)\n })\n })\n }, [])\n\n // In the next task\n React.useEffect(() => {\n setTimeout(() => {\n React.flushSync(() => {\n setState(newState)\n })\n })\n }, [])\n ```\n\n I chose to use `setTimeout` instead of `queueMicrotask` because\n `queueMicrotask` causes another React act warning `An update to %s inside a\n test was not wrapped in act(...)` during testing.\n\n Although the example above is based on React, this is a general pattern for\n any async based UI framework, including Svelte.\n\n */\nexport function queueExtension(editor: Editor, extension: Extension): VoidFunction {\n let canceled = false\n let dispose: VoidFunction | undefined\n const timeout = setTimeout(() => {\n if (canceled) return\n dispose?.()\n dispose = editor.use(extension)\n })\n\n return () => {\n canceled = true\n clearTimeout(timeout)\n setTimeout(() => {\n dispose?.()\n dispose = undefined\n })\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2EA,SAAgB,eAAe,QAAgB,WAAoC;CACjF,IAAI,WAAW;CACf,IAAI;CACJ,MAAM,UAAU,iBAAiB;AAC/B,MAAI,SAAU;AACd,aAAW;AACX,YAAU,OAAO,IAAI,UAAU;GAC/B;AAEF,cAAa;AACX,aAAW;AACX,eAAa,QAAQ;AACrB,mBAAiB;AACf,cAAW;AACX,aAAU,KAAA;IACV"}
|