@pie-lib/editable-html-tip-tap 2.2.0-beta.6 → 2.2.0-beta.7

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.
@@ -1 +1 @@
1
- {"version":3,"file":"math.test.js","names":["_react","_interopRequireDefault","require","_react2","_math","toolbarUtils","_interopRequireWildcard","_excluded","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof3","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","jest","mock","NodeViewWrapper","_ref","children","props","_objectWithoutProperties2","createElement","_extends2","ReactNodeViewRenderer","fn","component","mockCreatePortal","node","requireActual","createPortal","React","MathPreview","_ref2","latex","MathToolbar","_ref3","onChange","onDone","_React$useState","useState","_React$useState2","_slicedToArray2","localLatex","setLocalLatex","value","target","onClick","wrapMath","wrapper","Node","create","config","Plugin","PluginKey","key","TextSelection","doc","pos","type","NodeSelection","describe","it","expect","MathNode","name","toBe","inline","group","atom","attributes","addAttributes","toHaveProperty","toEqual","html","rules","parseHTML","Array","isArray","toHaveLength","result","renderHTML","HTMLAttributes","commands","addCommands","_typeof2","insertMath","setToolbarOpenedSpy","spyOn","mathNode","nodeSize","tr","insert","mockReturnThis","setSelection","editor","view","state","schema","nodes","math","selection","$from","dispatch","toHaveBeenCalledWith","toHaveBeenCalled","mockRestore","addNodeView","toBeDefined","plugins","addProseMirrorPlugins","appendTransaction","handleKeyDown","plugin","EnsureTextAfterMathPlugin","textNode","newState","text","descendants","cb","nodeAt","docChanged","anything","not","toBeNull","createDocWithMathAndZwsp","resolveOverrides","undefined","resolve","nodeAfter","nodeBefore","textContent","createDocWithRegularTextBeforeCursor","createView","_ref4","_ref4$state","stateOverrides","from","empty","handled","ZeroWidthSpaceHandlingPlugin","_require","_require2","createEditorElement","rect","top","left","width","height","element","document","configurable","createMockEditor","to","setMeta","coordsAtPos","options","focus","instanceId","_toolbarOpened","mockNode","attrs","defaultProps","beforeEach","clearAllMocks","mockImplementation","updateAttributes","selected","getPos","_render","render","MathNodeView","container","toBeInTheDocument","_render2","getByTestId","_render3","_asyncToGenerator2","_regenerator","mark","_callee","_render4","wrap","_context","prev","next","waitFor","stop","_render5","queryByTestId","_callee2","_render6","_context2","toolbar","querySelector","toHaveAttribute","_callee3","_render7","_context3","style","_callee4","containerEl","_render8","_context4","getBoundingClientRect","_tiptapContainerEl","_callee5","_render9","_context5","position","_callee6","_render0","_context6","zIndex","_callee7","_render1","_context7","_callee9","originalInnerHeight","originalInnerWidth","_render10","_context9","window","innerHeight","innerWidth","writable","bottom","act","_callee8","_context8","dispatchEvent","Event","Promise","requestAnimationFrame","parseInt","toBeLessThanOrEqual","toBeGreaterThanOrEqual","_callee0","addSpy","_context0","any","Function","_callee1","_context1","mockClear","lastCall","calls","_callee10","_context10","body","_callee11","_render11","_context11","input","fireEvent","change","_callee12","_render12","doneButton","_context12","click","_callee13","_render13","_context13","_callee14","_render14","_context14","_callee15","_render15","_context15","_callee16","_require3","_render16","_context16","_callee17","addEventListenerSpy","removeEventListenerSpy","nodeA","nodeB","_render17","rerender","initialCallCount","_context17","toBeGreaterThan","_callee18","_render18","_context18","dateNowSpy","timestamp","Date","afterEach","_render19","classList","some","c","test","_render20","Fragment","getAllByTestId","wrappers","mathNodeClass","el","find","startsWith","_callee19","editorA","editorB","_render21","queryAllByTestId","secondPreview","_context19","toHaveValue","_callee20","_render22","_context20","_callee22","_render23","_context22","_callee21","_context21","_callee24","_render24","_context24","_callee23","_context23","_callee25","_render25","dropdown","_context25","id","appendChild","removeChild","nodeWithEmptyLatex","_render26","_render27","toHaveStyle","display","cursor"],"sources":["../../../src/extensions/__tests__/math.test.js"],"sourcesContent":["import React from 'react';\nimport { render, waitFor, fireEvent, act } from '@testing-library/react';\nimport { EnsureTextAfterMathPlugin, MathNode, MathNodeView, ZeroWidthSpaceHandlingPlugin } from '../math';\nimport * as toolbarUtils from '../../utils/toolbar';\n\njest.mock('@tiptap/react', () => ({\n NodeViewWrapper: ({ children, ...props }) => (\n <div data-testid=\"node-view-wrapper\" {...props}>\n {children}\n </div>\n ),\n ReactNodeViewRenderer: jest.fn((component) => component),\n}));\n\nconst mockCreatePortal = jest.fn((node) => node);\njest.mock('react-dom', () => ({\n ...jest.requireActual('react-dom'),\n createPortal: (...args) => mockCreatePortal(...args),\n}));\n\njest.mock('@pie-lib/math-toolbar', () => {\n const React = require('react');\n return {\n MathPreview: ({ latex }) => <div data-testid=\"math-preview\">{latex}</div>,\n MathToolbar: ({ latex, onChange, onDone }) => {\n const [localLatex, setLocalLatex] = React.useState(latex);\n return (\n <div data-testid=\"math-toolbar\">\n <input\n data-testid=\"math-input\"\n value={localLatex}\n onChange={(e) => {\n setLocalLatex(e.target.value);\n onChange(e.target.value);\n }}\n />\n <button data-testid=\"done-button\" onClick={() => onDone(localLatex)}>\n Done\n </button>\n </div>\n );\n },\n };\n});\n\njest.mock('@pie-lib/math-rendering', () => ({\n wrapMath: (latex, wrapper) => latex,\n}));\n\njest.mock('@tiptap/core', () => ({\n Node: {\n create: jest.fn((config) => config),\n },\n}));\n\njest.mock('prosemirror-state', () => ({\n Plugin: jest.fn(function (config) {\n return config;\n }),\n PluginKey: jest.fn(function (key) {\n this.key = key;\n }),\n TextSelection: {\n create: jest.fn((doc, pos) => ({ type: 'text', pos })),\n },\n NodeSelection: {\n create: jest.fn((doc, pos) => ({ type: 'node', pos })),\n },\n}));\n\ndescribe('MathNode', () => {\n describe('configuration', () => {\n it('has correct name', () => {\n expect(MathNode.name).toBe('math');\n });\n\n it('is inline', () => {\n expect(MathNode.inline).toBe(true);\n });\n\n it('is in inline group', () => {\n expect(MathNode.group).toBe('inline');\n });\n\n it('is atomic', () => {\n expect(MathNode.atom).toBe(true);\n });\n });\n\n describe('addAttributes', () => {\n it('returns required attributes', () => {\n const attributes = MathNode.addAttributes();\n\n expect(attributes).toHaveProperty('latex');\n expect(attributes).toHaveProperty('wrapper');\n expect(attributes).toHaveProperty('html');\n\n expect(attributes.latex).toEqual({ default: '' });\n expect(attributes.wrapper).toEqual({ default: null });\n expect(attributes.html).toEqual({ default: null });\n });\n });\n\n describe('parseHTML', () => {\n it('returns parsing rules for latex', () => {\n const rules = MathNode.parseHTML();\n\n expect(Array.isArray(rules)).toBe(true);\n expect(rules).toHaveLength(2);\n expect(rules[0]).toHaveProperty('tag', 'span[data-latex]');\n });\n\n it('returns parsing rules for mathml', () => {\n const rules = MathNode.parseHTML();\n expect(rules[1]).toHaveProperty('tag', 'span[data-type=\"mathml\"]');\n });\n });\n\n describe('renderHTML', () => {\n it('renders mathml when html attribute is present', () => {\n const result = MathNode.renderHTML({\n HTMLAttributes: {\n html: '<math><mi>x</mi></math>',\n },\n });\n\n expect(result[0]).toBe('span');\n expect(result[1]).toHaveProperty('data-type', 'mathml');\n });\n\n it('renders latex when html attribute is not present', () => {\n const result = MathNode.renderHTML({\n HTMLAttributes: {\n latex: 'x^2',\n },\n });\n\n expect(result[0]).toBe('span');\n expect(result[1]).toHaveProperty('data-latex', '');\n expect(result[1]).toHaveProperty('data-raw', 'x^2');\n });\n });\n\n describe('addCommands', () => {\n it('returns insertMath command', () => {\n const commands = MathNode.addCommands();\n\n expect(commands).toHaveProperty('insertMath');\n expect(typeof commands.insertMath).toBe('function');\n });\n\n it('insertMath opens the toolbar after inserting a math node', () => {\n const setToolbarOpenedSpy = jest.spyOn(toolbarUtils, 'setToolbarOpened');\n const mathNode = { type: { name: 'math' }, nodeSize: 1 };\n const tr = {\n insert: jest.fn().mockReturnThis(),\n setSelection: jest.fn().mockReturnThis(),\n doc: {},\n };\n const editor = {\n view: {\n state: {\n schema: { nodes: { math: { create: jest.fn(() => mathNode) } } },\n selection: { $from: { pos: 1 } },\n },\n },\n };\n const dispatch = jest.fn();\n const insertMath = MathNode.addCommands().insertMath('x^2');\n\n insertMath({ tr, editor, dispatch });\n\n expect(tr.insert).toHaveBeenCalledWith(1, mathNode);\n expect(tr.setSelection).toHaveBeenCalled();\n expect(dispatch).toHaveBeenCalledWith(tr);\n expect(setToolbarOpenedSpy).toHaveBeenCalledWith(editor, true);\n\n setToolbarOpenedSpy.mockRestore();\n });\n });\n\n describe('addNodeView', () => {\n it('returns ReactNodeViewRenderer result', () => {\n const result = MathNode.addNodeView();\n\n expect(result).toBeDefined();\n });\n });\n\n describe('addProseMirrorPlugins', () => {\n it('registers ensure-text-after-math and zero-width-space plugins', () => {\n const plugins = MathNode.addProseMirrorPlugins();\n\n expect(plugins).toHaveLength(2);\n expect(plugins[0].appendTransaction).toBeDefined();\n expect(plugins[1].props.handleKeyDown).toBeDefined();\n });\n });\n});\n\ndescribe('EnsureTextAfterMathPlugin', () => {\n it('inserts a zero-width space after a math node when no text follows', () => {\n const plugin = EnsureTextAfterMathPlugin('math');\n const textNode = { type: { name: 'text' } };\n const mathNode = { type: { name: 'math' }, nodeSize: 3 };\n const tr = { insert: jest.fn() };\n\n const newState = {\n schema: { text: jest.fn((value) => ({ type: textNode.type, text: value })) },\n tr,\n doc: {\n descendants: (cb) => cb(mathNode, 5),\n nodeAt: jest.fn(() => null),\n },\n };\n\n const result = plugin.appendTransaction([{ docChanged: true }], {}, newState);\n\n expect(tr.insert).toHaveBeenCalledWith(8, expect.anything());\n expect(result).toBe(tr);\n });\n\n it('does not insert when text already follows the math node', () => {\n const plugin = EnsureTextAfterMathPlugin('math');\n const tr = { insert: jest.fn() };\n const mathNode = { type: { name: 'math' }, nodeSize: 3 };\n\n const newState = {\n schema: { text: jest.fn() },\n tr,\n doc: {\n descendants: (cb) => cb(mathNode, 5),\n nodeAt: jest.fn(() => ({ type: { name: 'text' } })),\n },\n };\n\n const result = plugin.appendTransaction([{ docChanged: true }], {}, newState);\n\n expect(tr.insert).not.toHaveBeenCalled();\n expect(result).toBeNull();\n });\n\n it('returns null when the document did not change', () => {\n const plugin = EnsureTextAfterMathPlugin('math');\n\n const result = plugin.appendTransaction([{ docChanged: false }], {}, {});\n expect(result).toBeNull();\n });\n});\n\ndescribe('ZeroWidthSpaceHandlingPlugin', () => {\n const createDocWithMathAndZwsp = (resolveOverrides = {}) => ({\n resolve: jest.fn((pos) => ({\n nodeAfter: null,\n nodeBefore: null,\n pos,\n ...resolveOverrides[pos],\n })),\n nodeAt: jest.fn((pos) => {\n if (pos === 1) {\n return { type: { name: 'text' }, textContent: '\\u200b' };\n }\n if (pos === 0) {\n return { type: { name: 'math' }, nodeSize: 1 };\n }\n return null;\n }),\n });\n\n const createDocWithRegularTextBeforeCursor = () => ({\n resolve: jest.fn((pos) => ({ nodeAfter: null, nodeBefore: null, pos })),\n nodeAt: jest.fn((pos) => {\n if (pos === 1) {\n return { type: { name: 'text' }, textContent: 'a' };\n }\n return null;\n }),\n });\n\n const createView = ({ state: stateOverrides = {} } = {}) => {\n const dispatch = jest.fn();\n const tr = {\n delete: jest.fn().mockReturnThis(),\n setSelection: jest.fn().mockReturnThis(),\n };\n\n return {\n state: {\n selection: { from: 2, empty: true },\n doc: createDocWithMathAndZwsp(),\n tr,\n ...stateOverrides,\n },\n dispatch,\n };\n };\n\n describe('Backspace', () => {\n it('deletes the inline node and zero-width space before the cursor', () => {\n const view = createView();\n const handled = ZeroWidthSpaceHandlingPlugin.props.handleKeyDown(view, { key: 'Backspace' });\n\n expect(handled).toBe(true);\n expect(view.state.tr.delete).toHaveBeenCalledWith(0, 2);\n expect(view.dispatch).toHaveBeenCalledWith(view.state.tr);\n });\n\n it('returns false when regular text precedes the cursor', () => {\n const view = createView({\n state: {\n doc: createDocWithRegularTextBeforeCursor(),\n },\n });\n\n const handled = ZeroWidthSpaceHandlingPlugin.props.handleKeyDown(view, { key: 'Backspace' });\n\n expect(handled).toBe(false);\n expect(view.state.tr.delete).not.toHaveBeenCalled();\n expect(view.dispatch).not.toHaveBeenCalled();\n });\n });\n\n describe('ArrowLeft', () => {\n it('selects the inline node before a zero-width space', () => {\n const mathNode = { nodeSize: 3 };\n const view = createView({\n state: {\n doc: createDocWithMathAndZwsp({\n 0: { nodeAfter: mathNode, nodeBefore: null, pos: 0 },\n }),\n },\n });\n const { NodeSelection } = require('prosemirror-state');\n\n const handled = ZeroWidthSpaceHandlingPlugin.props.handleKeyDown(view, { key: 'ArrowLeft' });\n\n expect(handled).toBe(true);\n expect(view.state.doc.resolve).toHaveBeenCalledWith(0);\n expect(NodeSelection.create).toHaveBeenCalledWith(view.state.doc, 0);\n expect(view.dispatch).toHaveBeenCalled();\n });\n\n it('moves the text cursor before the zero-width space when no inline node precedes it', () => {\n const view = createView();\n const { TextSelection } = require('prosemirror-state');\n\n const handled = ZeroWidthSpaceHandlingPlugin.props.handleKeyDown(view, { key: 'ArrowLeft' });\n\n expect(handled).toBe(true);\n expect(view.state.doc.resolve).toHaveBeenCalledWith(0);\n expect(TextSelection.create).toHaveBeenCalledWith(view.state.doc, 0);\n expect(view.dispatch).toHaveBeenCalled();\n });\n\n it('returns false when regular text precedes the cursor', () => {\n const view = createView({\n state: {\n doc: createDocWithRegularTextBeforeCursor(),\n },\n });\n\n const handled = ZeroWidthSpaceHandlingPlugin.props.handleKeyDown(view, { key: 'ArrowLeft' });\n\n expect(handled).toBe(false);\n expect(view.state.tr.setSelection).not.toHaveBeenCalled();\n expect(view.dispatch).not.toHaveBeenCalled();\n });\n });\n\n it('returns false for unrelated keys', () => {\n const view = createView();\n\n const handled = ZeroWidthSpaceHandlingPlugin.props.handleKeyDown(view, { key: 'Enter' });\n expect(handled).toBe(false);\n });\n});\n\ndescribe('MathNodeView', () => {\n const createEditorElement = (rect = { top: 0, left: 0, width: 600, height: 400 }) => {\n const element = document.createElement('div');\n Object.defineProperty(element, 'getBoundingClientRect', {\n value: jest.fn(() => rect),\n configurable: true,\n });\n return element;\n };\n\n const createMockEditor = () => ({\n state: {\n selection: {\n from: 0,\n to: 1,\n node: { type: { name: 'math' } },\n },\n tr: {\n setSelection: jest.fn().mockReturnThis(),\n setMeta: jest.fn().mockReturnThis(),\n },\n doc: {},\n },\n view: {\n coordsAtPos: jest.fn(() => ({ top: 100, left: 50 })),\n dispatch: jest.fn(),\n },\n options: {\n element: createEditorElement(),\n },\n commands: {\n focus: jest.fn(),\n },\n instanceId: 'editor-123',\n _toolbarOpened: false,\n });\n\n const mockNode = {\n attrs: {\n latex: 'x^2',\n },\n nodeSize: 1,\n };\n\n let defaultProps;\n\n beforeEach(() => {\n jest.clearAllMocks();\n mockCreatePortal.mockImplementation((node) => node);\n defaultProps = {\n node: mockNode,\n updateAttributes: jest.fn(),\n editor: createMockEditor(),\n selected: false,\n options: {},\n getPos: jest.fn(() => 0),\n };\n });\n\n it('renders without crashing', () => {\n const { container } = render(<MathNodeView {...defaultProps} />);\n expect(container).toBeInTheDocument();\n });\n\n it('renders NodeViewWrapper', () => {\n const { getByTestId } = render(<MathNodeView {...defaultProps} />);\n expect(getByTestId('node-view-wrapper')).toBeInTheDocument();\n });\n\n it('displays math preview', () => {\n const { getByTestId } = render(<MathNodeView {...defaultProps} />);\n expect(getByTestId('math-preview')).toBeInTheDocument();\n });\n\n it('shows toolbar when selected', async () => {\n const { getByTestId } = render(<MathNodeView {...defaultProps} selected={true} />);\n await waitFor(() => {\n expect(getByTestId('math-toolbar')).toBeInTheDocument();\n });\n });\n\n it('does not show toolbar when not selected', () => {\n const { queryByTestId } = render(<MathNodeView {...defaultProps} selected={false} />);\n expect(queryByTestId('math-toolbar')).not.toBeInTheDocument();\n });\n\n it('adds data-toolbar-for attribute with editor instanceId', async () => {\n const { container } = render(<MathNodeView {...defaultProps} selected={true} />);\n await waitFor(() => {\n const toolbar = container.querySelector('[data-toolbar-for]');\n expect(toolbar).toHaveAttribute('data-toolbar-for', 'editor-123');\n });\n });\n\n describe('toolbar positioning', () => {\n it('positions relative to portal container using coordsAtPos', async () => {\n const { container } = render(<MathNodeView {...defaultProps} selected={true} />);\n await waitFor(() => {\n const toolbar = container.querySelector('[data-toolbar-for]');\n expect(toolbar).toBeInTheDocument();\n expect(toolbar.style.top).toBe('100px');\n expect(toolbar.style.left).toBe('50px');\n });\n });\n\n it('offsets position by portal container getBoundingClientRect', async () => {\n const containerEl = document.createElement('div');\n containerEl.getBoundingClientRect = jest.fn(() => ({ top: 100, left: 50, width: 600, height: 400 }));\n\n const editor = {\n ...defaultProps.editor,\n _tiptapContainerEl: containerEl,\n };\n\n const { container } = render(<MathNodeView {...defaultProps} editor={editor} selected={true} />);\n await waitFor(() => {\n const toolbar = container.querySelector('[data-toolbar-for]');\n expect(toolbar).toBeInTheDocument();\n expect(toolbar.style.top).toBe('0px');\n expect(toolbar.style.left).toBe('0px');\n });\n });\n\n it('applies absolute positioning style to toolbar', async () => {\n const { container } = render(<MathNodeView {...defaultProps} selected={true} />);\n await waitFor(() => {\n const toolbar = container.querySelector('[data-toolbar-for]');\n expect(toolbar).toBeInTheDocument();\n expect(toolbar.style.position).toBe('absolute');\n });\n });\n\n it('renders above other editor overlays with a high z-index', async () => {\n const { container } = render(<MathNodeView {...defaultProps} selected={true} />);\n await waitFor(() => {\n const toolbar = container.querySelector('[data-toolbar-for]');\n expect(toolbar).toBeInTheDocument();\n expect(toolbar.style.zIndex).toBe('1000');\n });\n });\n\n it('updates position from coordsAtPos when selection changes', async () => {\n const editor = {\n ...defaultProps.editor,\n view: {\n ...defaultProps.editor.view,\n coordsAtPos: jest.fn(() => ({ top: 200, left: 150 })),\n dispatch: jest.fn(),\n },\n };\n\n const { container } = render(<MathNodeView {...defaultProps} editor={editor} selected={true} />);\n await waitFor(() => {\n const toolbar = container.querySelector('[data-toolbar-for]');\n expect(toolbar).toBeInTheDocument();\n expect(toolbar.style.top).toBe('200px');\n expect(toolbar.style.left).toBe('150px');\n });\n });\n\n it('clamps toolbar position to viewport margins', async () => {\n const originalInnerHeight = window.innerHeight;\n const originalInnerWidth = window.innerWidth;\n\n Object.defineProperty(window, 'innerHeight', { configurable: true, writable: true, value: 200 });\n Object.defineProperty(window, 'innerWidth', { configurable: true, writable: true, value: 300 });\n\n const editor = {\n ...defaultProps.editor,\n view: {\n ...defaultProps.editor.view,\n coordsAtPos: jest.fn(() => ({ top: 190, left: 280, bottom: 195 })),\n dispatch: jest.fn(),\n },\n };\n\n const { container } = render(<MathNodeView {...defaultProps} editor={editor} selected={true} />);\n\n let toolbar;\n await waitFor(() => {\n toolbar = container.querySelector('[data-toolbar-for]');\n expect(toolbar).toBeInTheDocument();\n });\n\n Object.defineProperty(toolbar, 'offsetHeight', { configurable: true, value: 100 });\n Object.defineProperty(toolbar, 'offsetWidth', { configurable: true, value: 150 });\n\n await act(async () => {\n window.dispatchEvent(new Event('resize'));\n await new Promise((resolve) => requestAnimationFrame(resolve));\n });\n\n await waitFor(() => {\n expect(parseInt(toolbar.style.top, 10)).toBeLessThanOrEqual(200 - 100 - 8);\n expect(parseInt(toolbar.style.left, 10)).toBeLessThanOrEqual(300 - 150 - 8);\n expect(parseInt(toolbar.style.top, 10)).toBeGreaterThanOrEqual(8);\n expect(parseInt(toolbar.style.left, 10)).toBeGreaterThanOrEqual(8);\n });\n\n Object.defineProperty(window, 'innerHeight', { configurable: true, writable: true, value: originalInnerHeight });\n Object.defineProperty(window, 'innerWidth', { configurable: true, writable: true, value: originalInnerWidth });\n });\n\n it('attaches scroll and resize listeners while toolbar is open', async () => {\n const addSpy = jest.spyOn(window, 'addEventListener');\n render(<MathNodeView {...defaultProps} selected={true} />);\n await waitFor(() => {\n expect(addSpy).toHaveBeenCalledWith('scroll', expect.any(Function), true);\n expect(addSpy).toHaveBeenCalledWith('resize', expect.any(Function));\n });\n addSpy.mockRestore();\n });\n\n it('portals toolbar into _tiptapContainerEl when available', async () => {\n const containerEl = document.createElement('div');\n containerEl.getBoundingClientRect = jest.fn(() => ({ top: 0, left: 0, width: 600, height: 400 }));\n\n const editor = {\n ...defaultProps.editor,\n _tiptapContainerEl: containerEl,\n };\n\n mockCreatePortal.mockClear();\n render(<MathNodeView {...defaultProps} editor={editor} selected={true} />);\n await waitFor(() => {\n expect(mockCreatePortal).toHaveBeenCalled();\n const lastCall = mockCreatePortal.mock.calls[mockCreatePortal.mock.calls.length - 1];\n expect(lastCall[1]).toBe(containerEl);\n });\n });\n\n it('portals toolbar into document.body when _tiptapContainerEl is not set', async () => {\n const editor = {\n ...defaultProps.editor,\n _tiptapContainerEl: undefined,\n };\n\n mockCreatePortal.mockClear();\n render(<MathNodeView {...defaultProps} editor={editor} selected={true} />);\n await waitFor(() => {\n expect(mockCreatePortal).toHaveBeenCalled();\n const lastCall = mockCreatePortal.mock.calls[mockCreatePortal.mock.calls.length - 1];\n expect(lastCall[1]).toBe(document.body);\n });\n });\n });\n\n it('calls updateAttributes when latex changes', async () => {\n const { getByTestId } = render(<MathNodeView {...defaultProps} selected={true} />);\n await waitFor(() => {\n const input = getByTestId('math-input');\n fireEvent.change(input, { target: { value: 'y^2' } });\n });\n expect(defaultProps.updateAttributes).toHaveBeenCalledWith({ latex: 'y^2' });\n });\n\n it('closes toolbar and updates attributes when done', async () => {\n const updateAttributes = jest.fn();\n const { getByTestId } = render(\n <MathNodeView {...defaultProps} updateAttributes={updateAttributes} selected={true} />,\n );\n\n await waitFor(() => {\n expect(getByTestId('done-button')).toBeInTheDocument();\n });\n\n const doneButton = getByTestId('done-button');\n fireEvent.click(doneButton);\n\n await waitFor(() => {\n expect(updateAttributes).toHaveBeenCalledWith({ latex: 'x^2' });\n });\n });\n\n it('sets editor._toolbarOpened when toolbar is shown', async () => {\n const { getByTestId } = render(<MathNodeView {...defaultProps} selected={true} />);\n await waitFor(() => {\n expect(getByTestId('math-toolbar')).toBeInTheDocument();\n expect(defaultProps.editor._toolbarOpened).toBe(true);\n });\n });\n\n it('unsets editor._toolbarOpened when toolbar is closed and node is not selected', async () => {\n const { getByTestId } = render(<MathNodeView {...defaultProps} selected={false} />);\n\n fireEvent.click(getByTestId('math-preview'));\n\n await waitFor(() => {\n expect(getByTestId('math-toolbar')).toBeInTheDocument();\n expect(defaultProps.editor._toolbarOpened).toBe(true);\n });\n\n fireEvent.click(getByTestId('done-button'));\n\n await waitFor(() => {\n expect(defaultProps.editor._toolbarOpened).toBe(false);\n });\n });\n\n it('keeps editor._toolbarOpened true while the math node remains selected', async () => {\n const { getByTestId } = render(<MathNodeView {...defaultProps} selected={true} />);\n\n await waitFor(() => {\n expect(getByTestId('done-button')).toBeInTheDocument();\n expect(defaultProps.editor._toolbarOpened).toBe(true);\n });\n\n fireEvent.click(getByTestId('done-button'));\n\n await waitFor(() => {\n expect(defaultProps.editor._toolbarOpened).toBe(true);\n });\n });\n\n it('closes toolbar on outside click and runs handleDone', async () => {\n const updateAttributes = jest.fn();\n const editor = createMockEditor();\n const { TextSelection } = require('prosemirror-state');\n const { queryByTestId } = render(\n <MathNodeView {...defaultProps} editor={editor} updateAttributes={updateAttributes} selected={true} />,\n );\n\n await waitFor(() => {\n expect(queryByTestId('math-toolbar')).toBeInTheDocument();\n });\n\n fireEvent.click(document.body);\n\n await waitFor(() => {\n expect(queryByTestId('math-toolbar')).not.toBeInTheDocument();\n expect(updateAttributes).toHaveBeenCalledWith({ latex: 'x^2' });\n expect(TextSelection.create).toHaveBeenCalledWith(editor.state.doc, 1);\n expect(editor.state.tr.setSelection).toHaveBeenCalled();\n expect(editor.view.dispatch).toHaveBeenCalledWith(editor.state.tr);\n expect(editor.commands.focus).toHaveBeenCalled();\n expect(editor._toolbarOpened).toBe(true);\n });\n });\n\n it('re-registers click listener when node changes', async () => {\n const addEventListenerSpy = jest.spyOn(document, 'addEventListener');\n const removeEventListenerSpy = jest.spyOn(document, 'removeEventListener');\n const nodeA = { attrs: { latex: 'x^2' } };\n const nodeB = { attrs: { latex: 'y^2' } };\n\n const { rerender } = render(<MathNodeView {...defaultProps} node={nodeA} selected={true} />);\n\n await waitFor(() => {\n expect(addEventListenerSpy).toHaveBeenCalledWith('click', expect.any(Function));\n });\n\n const initialCallCount = addEventListenerSpy.mock.calls.length;\n\n rerender(<MathNodeView {...defaultProps} node={nodeB} selected={true} />);\n\n await waitFor(() => {\n expect(removeEventListenerSpy).toHaveBeenCalled();\n expect(addEventListenerSpy.mock.calls.length).toBeGreaterThan(initialCallCount);\n });\n\n addEventListenerSpy.mockRestore();\n removeEventListenerSpy.mockRestore();\n });\n\n it('does not close toolbar when clicking the math node preview', async () => {\n const { getByTestId, queryByTestId } = render(<MathNodeView {...defaultProps} selected={true} />);\n\n await waitFor(() => {\n expect(queryByTestId('math-toolbar')).toBeInTheDocument();\n });\n\n fireEvent.click(getByTestId('math-preview'));\n\n await waitFor(() => {\n expect(queryByTestId('math-toolbar')).toBeInTheDocument();\n });\n });\n\n describe('unique math-node class per instance', () => {\n let dateNowSpy;\n\n beforeEach(() => {\n let timestamp = 1000;\n dateNowSpy = jest.spyOn(Date, 'now').mockImplementation(() => timestamp++);\n });\n\n afterEach(() => {\n dateNowSpy.mockRestore();\n });\n\n // The wrapper is an emotion styled() component, so className also carries\n // emotion's generated class - assert on the math-node token, not equality.\n it('assigns a timestamp-based class to NodeViewWrapper', () => {\n const { getByTestId } = render(<MathNodeView {...defaultProps} />);\n const wrapper = getByTestId('node-view-wrapper');\n\n expect(Array.from(wrapper.classList).some((c) => /^math-node-\\d+$/.test(c))).toBe(true);\n });\n\n it('assigns a different class to each MathNodeView instance', () => {\n const { getAllByTestId } = render(\n <>\n <MathNodeView {...defaultProps} />\n <MathNodeView {...defaultProps} node={{ attrs: { latex: 'y^2' } }} />\n </>,\n );\n\n const wrappers = getAllByTestId('node-view-wrapper');\n const mathNodeClass = (el) => Array.from(el.classList).find((c) => c.startsWith('math-node-'));\n\n expect(mathNodeClass(wrappers[0])).toBe('math-node-1000');\n expect(mathNodeClass(wrappers[1])).toBe('math-node-1001');\n // and they must differ\n expect(mathNodeClass(wrappers[0])).not.toBe(mathNodeClass(wrappers[1]));\n });\n\n it('closes toolbar when clicking a different math node', async () => {\n const updateAttributes = jest.fn();\n const editorA = createMockEditor();\n const editorB = createMockEditor();\n\n const { getAllByTestId, queryAllByTestId } = render(\n <>\n <MathNodeView {...defaultProps} editor={editorA} updateAttributes={updateAttributes} selected={false} />\n <MathNodeView {...defaultProps} editor={editorB} node={{ attrs: { latex: 'y^2' } }} selected={false} />\n </>,\n );\n\n fireEvent.click(getAllByTestId('math-preview')[0]);\n\n await waitFor(() => {\n expect(queryAllByTestId('math-toolbar')).toHaveLength(1);\n });\n\n const secondPreview = getAllByTestId('math-preview')[1];\n fireEvent.click(secondPreview);\n\n await waitFor(() => {\n expect(queryAllByTestId('math-toolbar')).toHaveLength(1);\n expect(updateAttributes).toHaveBeenCalledWith({ latex: 'x^2' });\n expect(editorA._toolbarOpened).toBe(false);\n expect(getAllByTestId('math-input')[0]).toHaveValue('y^2');\n });\n });\n });\n\n describe('selection-based toolbar guard', () => {\n it('opens toolbar when selected transitions to true and the editor has a NodeSelection on math', async () => {\n const { queryByTestId, rerender } = render(<MathNodeView {...defaultProps} selected={false} />);\n expect(queryByTestId('math-toolbar')).not.toBeInTheDocument();\n\n rerender(<MathNodeView {...defaultProps} selected={true} />);\n await waitFor(() => {\n expect(queryByTestId('math-toolbar')).toBeInTheDocument();\n });\n });\n\n it('does not open toolbar when selected briefly becomes true but editor selection has no node (Cmd+A / drag case)', async () => {\n const editor = {\n ...defaultProps.editor,\n state: {\n ...defaultProps.editor.state,\n selection: { from: 0, to: 100 }, // no .node — TextSelection / AllSelection shape\n },\n };\n\n const { queryByTestId, rerender } = render(\n <MathNodeView {...defaultProps} editor={editor} selected={false} />,\n );\n rerender(<MathNodeView {...defaultProps} editor={editor} selected={true} />);\n\n await act(async () => {});\n expect(queryByTestId('math-toolbar')).not.toBeInTheDocument();\n });\n\n it('does not open toolbar when selected briefly becomes true but NodeSelection targets a non-math node', async () => {\n const editor = {\n ...defaultProps.editor,\n state: {\n ...defaultProps.editor.state,\n selection: { from: 0, to: 1, node: { type: { name: 'image' } } },\n },\n };\n\n const { queryByTestId, rerender } = render(\n <MathNodeView {...defaultProps} editor={editor} selected={false} />,\n );\n rerender(<MathNodeView {...defaultProps} editor={editor} selected={true} />);\n\n await act(async () => {});\n expect(queryByTestId('math-toolbar')).not.toBeInTheDocument();\n });\n });\n\n it('does not close toolbar when clicking equation editor dropdown', async () => {\n const { queryByTestId } = render(<MathNodeView {...defaultProps} selected={true} />);\n\n await waitFor(() => {\n expect(queryByTestId('math-toolbar')).toBeInTheDocument();\n });\n\n // Simulate MUI Select's portal dropdown container.\n const dropdown = document.createElement('div');\n dropdown.id = 'equation-editor-select-listbox';\n document.body.appendChild(dropdown);\n\n fireEvent.click(dropdown);\n\n await waitFor(() => {\n expect(queryByTestId('math-toolbar')).toBeInTheDocument();\n });\n\n document.body.removeChild(dropdown);\n });\n\n it('renders with empty latex', () => {\n const nodeWithEmptyLatex = { attrs: { latex: '' } };\n const { getByTestId } = render(<MathNodeView {...defaultProps} node={nodeWithEmptyLatex} />);\n expect(getByTestId('math-preview')).toBeInTheDocument();\n });\n\n it('has correct styling on NodeViewWrapper', () => {\n const { getByTestId } = render(<MathNodeView {...defaultProps} />);\n const wrapper = getByTestId('node-view-wrapper');\n expect(wrapper).toHaveStyle({ display: 'inline-flex', cursor: 'pointer' });\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"math.test.js","names":["_react","_interopRequireDefault","require","_react2","_math","toolbarUtils","_interopRequireWildcard","_excluded","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof3","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","jest","mock","NodeViewWrapper","_ref","children","props","_objectWithoutProperties2","createElement","_extends2","ReactNodeViewRenderer","fn","component","mockCreatePortal","node","requireActual","createPortal","React","MathPreview","_ref2","latex","MathToolbar","_ref3","onChange","onDone","_React$useState","useState","_React$useState2","_slicedToArray2","localLatex","setLocalLatex","value","target","onClick","wrapMath","wrapper","Node","create","config","Plugin","PluginKey","key","TextSelection","doc","pos","type","NodeSelection","describe","it","expect","MathNode","name","toBe","inline","group","atom","attributes","addAttributes","toHaveProperty","toEqual","html","rules","parseHTML","Array","isArray","toHaveLength","result","renderHTML","HTMLAttributes","commands","addCommands","_typeof2","insertMath","setToolbarOpenedSpy","spyOn","mathNode","nodeSize","tr","insert","mockReturnThis","setSelection","editor","view","state","schema","nodes","math","selection","$from","dispatch","toHaveBeenCalledWith","toHaveBeenCalled","mockRestore","addNodeView","toBeDefined","plugins","addProseMirrorPlugins","appendTransaction","handleKeyDown","plugin","EnsureTextAfterMathPlugin","textNode","newState","text","descendants","cb","nodeAt","docChanged","anything","not","toBeNull","createDocWithMathAndZwsp","resolveOverrides","undefined","resolve","nodeAfter","nodeBefore","textContent","createDocWithRegularTextBeforeCursor","createView","_ref4","_ref4$state","stateOverrides","from","empty","handled","ZeroWidthSpaceHandlingPlugin","_require","_require2","createEditorElement","rect","top","left","width","height","element","document","configurable","createMockEditor","to","setMeta","coordsAtPos","options","focus","instanceId","_toolbarOpened","mockNode","attrs","defaultProps","beforeEach","clearAllMocks","mockImplementation","updateAttributes","selected","getPos","_render","render","MathNodeView","container","toBeInTheDocument","_render2","getByTestId","_render3","_asyncToGenerator2","_regenerator","mark","_callee","_render4","wrap","_context","prev","next","waitFor","stop","_render5","queryByTestId","_callee2","_render6","_context2","toolbar","querySelector","toHaveAttribute","_callee3","_render7","_context3","style","_callee4","containerEl","_render8","_context4","getBoundingClientRect","_tiptapContainerEl","_callee5","_render9","_context5","position","_callee6","_render0","_context6","zIndex","_callee7","_render1","_context7","_callee9","originalInnerHeight","originalInnerWidth","_render10","_context9","window","innerHeight","innerWidth","writable","bottom","act","_callee8","_context8","dispatchEvent","Event","Promise","requestAnimationFrame","parseInt","toBeLessThanOrEqual","toBeGreaterThanOrEqual","_callee0","addSpy","_context0","any","Function","_callee1","_context1","mockClear","lastCall","calls","_callee10","_context10","body","_callee11","_render11","_context11","input","fireEvent","change","_callee12","_render12","doneButton","_context12","click","_callee13","_render13","_context13","_callee14","_render14","_context14","_callee15","_render15","_context15","_callee16","_require3","_render16","_context16","_callee17","addEventListenerSpy","removeEventListenerSpy","nodeA","nodeB","_render17","rerender","initialCallCount","_context17","toBeGreaterThan","_callee18","_render18","_context18","dateNowSpy","timestamp","Date","afterEach","_render19","classList","some","c","test","_render20","Fragment","getAllByTestId","wrappers","mathNodeClass","el","find","startsWith","_callee19","editorA","editorB","_render21","queryAllByTestId","secondPreview","_context19","toHaveValue","_callee20","_render22","_context20","_callee22","_render23","_context22","_callee21","_context21","_callee24","_render24","_context24","_callee23","_context23","_callee25","_render25","dropdown","_context25","id","appendChild","removeChild","nodeWithEmptyLatex","_render26","_render27","toHaveStyle","display","cursor"],"sources":["../../../src/extensions/__tests__/math.test.js"],"sourcesContent":["import React from 'react';\nimport { render, waitFor, fireEvent, act } from '@testing-library/react';\nimport { EnsureTextAfterMathPlugin, MathNode, MathNodeView, ZeroWidthSpaceHandlingPlugin } from '../math';\nimport * as toolbarUtils from '../../utils/toolbar';\n\njest.mock('@tiptap/react', () => ({\n NodeViewWrapper: ({ children, ...props }) => (\n <div data-testid=\"node-view-wrapper\" {...props}>\n {children}\n </div>\n ),\n ReactNodeViewRenderer: jest.fn((component) => component),\n}));\n\nconst mockCreatePortal = jest.fn((node) => node);\njest.mock('react-dom', () => ({\n ...jest.requireActual('react-dom'),\n createPortal: (...args) => mockCreatePortal(...args),\n}));\n\njest.mock('@pie-lib/math-toolbar', () => {\n const React = require('react');\n return {\n MathPreview: ({ latex }) => <div data-testid=\"math-preview\">{latex}</div>,\n MathToolbar: ({ latex, onChange, onDone }) => {\n const [localLatex, setLocalLatex] = React.useState(latex);\n return (\n <div data-testid=\"math-toolbar\">\n <input\n data-testid=\"math-input\"\n value={localLatex}\n onChange={(e) => {\n setLocalLatex(e.target.value);\n onChange(e.target.value);\n }}\n />\n <button data-testid=\"done-button\" onClick={() => onDone(localLatex)}>\n Done\n </button>\n </div>\n );\n },\n };\n});\n\njest.mock('@pie-lib/math-rendering', () => ({\n wrapMath: (latex, wrapper) => latex,\n}));\n\njest.mock('@tiptap/core', () => ({\n Node: {\n create: jest.fn((config) => config),\n },\n}));\n\njest.mock('prosemirror-state', () => ({\n Plugin: jest.fn(function (config) {\n return config;\n }),\n PluginKey: jest.fn(function (key) {\n this.key = key;\n }),\n TextSelection: {\n create: jest.fn((doc, pos) => ({ type: 'text', pos })),\n },\n NodeSelection: {\n create: jest.fn((doc, pos) => ({ type: 'node', pos })),\n },\n}));\n\ndescribe('MathNode', () => {\n describe('configuration', () => {\n it('has correct name', () => {\n expect(MathNode.name).toBe('math');\n });\n\n it('is inline', () => {\n expect(MathNode.inline).toBe(true);\n });\n\n it('is in inline group', () => {\n expect(MathNode.group).toBe('inline');\n });\n\n it('is atomic', () => {\n expect(MathNode.atom).toBe(true);\n });\n });\n\n describe('addAttributes', () => {\n it('returns required attributes', () => {\n const attributes = MathNode.addAttributes();\n\n expect(attributes).toHaveProperty('latex');\n expect(attributes).toHaveProperty('wrapper');\n expect(attributes).toHaveProperty('html');\n\n expect(attributes.latex).toEqual({ default: '' });\n expect(attributes.wrapper).toEqual({ default: null });\n expect(attributes.html).toEqual({ default: null });\n });\n });\n\n describe('parseHTML', () => {\n it('returns parsing rules for latex', () => {\n const rules = MathNode.parseHTML();\n\n expect(Array.isArray(rules)).toBe(true);\n expect(rules).toHaveLength(2);\n expect(rules[0]).toHaveProperty('tag', 'span[data-latex]');\n });\n\n it('returns parsing rules for mathml', () => {\n const rules = MathNode.parseHTML();\n expect(rules[1]).toHaveProperty('tag', 'span[data-type=\"mathml\"]');\n });\n });\n\n describe('renderHTML', () => {\n it('renders mathml when html attribute is present', () => {\n const result = MathNode.renderHTML({\n HTMLAttributes: {\n html: '<math><mi>x</mi></math>',\n },\n });\n\n expect(result[0]).toBe('span');\n expect(result[1]).toHaveProperty('data-type', 'mathml');\n });\n\n it('renders latex when html attribute is not present', () => {\n const result = MathNode.renderHTML({\n HTMLAttributes: {\n latex: 'x^2',\n },\n });\n\n expect(result[0]).toBe('span');\n expect(result[1]).toHaveProperty('data-latex', '');\n expect(result[1]).toHaveProperty('data-raw', 'x^2');\n });\n });\n\n describe('addCommands', () => {\n it('returns insertMath command', () => {\n const commands = MathNode.addCommands();\n\n expect(commands).toHaveProperty('insertMath');\n expect(typeof commands.insertMath).toBe('function');\n });\n\n it('insertMath opens the toolbar after inserting a math node', () => {\n const setToolbarOpenedSpy = jest.spyOn(toolbarUtils, 'setToolbarOpened');\n const mathNode = { type: { name: 'math' }, nodeSize: 1 };\n const tr = {\n insert: jest.fn().mockReturnThis(),\n setSelection: jest.fn().mockReturnThis(),\n doc: {},\n };\n const editor = {\n view: {\n state: {\n schema: { nodes: { math: { create: jest.fn(() => mathNode) } } },\n selection: { $from: { pos: 1 } },\n },\n },\n };\n const dispatch = jest.fn();\n const insertMath = MathNode.addCommands().insertMath('x^2');\n\n insertMath({ tr, editor, dispatch });\n\n expect(tr.insert).toHaveBeenCalledWith(1, mathNode);\n expect(tr.setSelection).toHaveBeenCalled();\n expect(dispatch).toHaveBeenCalledWith(tr);\n expect(setToolbarOpenedSpy).toHaveBeenCalledWith(editor, true);\n\n setToolbarOpenedSpy.mockRestore();\n });\n });\n\n describe('addNodeView', () => {\n it('returns ReactNodeViewRenderer result', () => {\n const result = MathNode.addNodeView();\n\n expect(result).toBeDefined();\n });\n });\n\n describe('addProseMirrorPlugins', () => {\n it('registers ensure-text-after-math and zero-width-space plugins', () => {\n const plugins = MathNode.addProseMirrorPlugins();\n\n expect(plugins).toHaveLength(2);\n expect(plugins[0].appendTransaction).toBeDefined();\n expect(plugins[1].props.handleKeyDown).toBeDefined();\n });\n });\n});\n\ndescribe('EnsureTextAfterMathPlugin', () => {\n it('inserts a zero-width space after a math node when no text follows', () => {\n const plugin = EnsureTextAfterMathPlugin('math');\n const textNode = { type: { name: 'text' } };\n const mathNode = { type: { name: 'math' }, nodeSize: 3 };\n const tr = { insert: jest.fn() };\n\n const newState = {\n schema: { text: jest.fn((value) => ({ type: textNode.type, text: value })) },\n tr,\n doc: {\n descendants: (cb) => cb(mathNode, 5),\n nodeAt: jest.fn(() => null),\n },\n };\n\n const result = plugin.appendTransaction([{ docChanged: true }], {}, newState);\n\n expect(tr.insert).toHaveBeenCalledWith(8, expect.anything());\n expect(result).toBe(tr);\n });\n\n it('does not insert when text already follows the math node', () => {\n const plugin = EnsureTextAfterMathPlugin('math');\n const tr = { insert: jest.fn() };\n const mathNode = { type: { name: 'math' }, nodeSize: 3 };\n\n const newState = {\n schema: { text: jest.fn() },\n tr,\n doc: {\n descendants: (cb) => cb(mathNode, 5),\n nodeAt: jest.fn(() => ({ type: { name: 'text' } })),\n },\n };\n\n const result = plugin.appendTransaction([{ docChanged: true }], {}, newState);\n\n expect(tr.insert).not.toHaveBeenCalled();\n expect(result).toBeNull();\n });\n\n it('returns null when the document did not change', () => {\n const plugin = EnsureTextAfterMathPlugin('math');\n\n const result = plugin.appendTransaction([{ docChanged: false }], {}, {});\n expect(result).toBeNull();\n });\n});\n\ndescribe('ZeroWidthSpaceHandlingPlugin', () => {\n const createDocWithMathAndZwsp = (resolveOverrides = {}) => ({\n resolve: jest.fn((pos) => ({\n nodeAfter: null,\n nodeBefore: null,\n pos,\n ...resolveOverrides[pos],\n })),\n nodeAt: jest.fn((pos) => {\n if (pos === 1) {\n return { type: { name: 'text' }, textContent: '\\u200b' };\n }\n if (pos === 0) {\n return { type: { name: 'math' }, nodeSize: 1 };\n }\n return null;\n }),\n });\n\n const createDocWithRegularTextBeforeCursor = () => ({\n resolve: jest.fn((pos) => ({ nodeAfter: null, nodeBefore: null, pos })),\n nodeAt: jest.fn((pos) => {\n if (pos === 1) {\n return { type: { name: 'text' }, textContent: 'a' };\n }\n return null;\n }),\n });\n\n const createView = ({ state: stateOverrides = {} } = {}) => {\n const dispatch = jest.fn();\n const tr = {\n delete: jest.fn().mockReturnThis(),\n setSelection: jest.fn().mockReturnThis(),\n };\n\n return {\n state: {\n selection: { from: 2, empty: true },\n doc: createDocWithMathAndZwsp(),\n tr,\n ...stateOverrides,\n },\n dispatch,\n };\n };\n\n describe('Backspace', () => {\n it('deletes the inline node and zero-width space before the cursor', () => {\n const view = createView();\n const handled = ZeroWidthSpaceHandlingPlugin.props.handleKeyDown(view, { key: 'Backspace' });\n\n expect(handled).toBe(true);\n expect(view.state.tr.delete).toHaveBeenCalledWith(0, 2);\n expect(view.dispatch).toHaveBeenCalledWith(view.state.tr);\n });\n\n it('returns false when regular text precedes the cursor', () => {\n const view = createView({\n state: {\n doc: createDocWithRegularTextBeforeCursor(),\n },\n });\n\n const handled = ZeroWidthSpaceHandlingPlugin.props.handleKeyDown(view, { key: 'Backspace' });\n\n expect(handled).toBe(false);\n expect(view.state.tr.delete).not.toHaveBeenCalled();\n expect(view.dispatch).not.toHaveBeenCalled();\n });\n });\n\n describe('ArrowLeft', () => {\n it('selects the inline node before a zero-width space', () => {\n const mathNode = { nodeSize: 3 };\n const view = createView({\n state: {\n doc: createDocWithMathAndZwsp({\n 0: { nodeAfter: mathNode, nodeBefore: null, pos: 0 },\n }),\n },\n });\n const { NodeSelection } = require('prosemirror-state');\n\n const handled = ZeroWidthSpaceHandlingPlugin.props.handleKeyDown(view, { key: 'ArrowLeft' });\n\n expect(handled).toBe(true);\n expect(view.state.doc.resolve).toHaveBeenCalledWith(0);\n expect(NodeSelection.create).toHaveBeenCalledWith(view.state.doc, 0);\n expect(view.dispatch).toHaveBeenCalled();\n });\n\n it('moves the text cursor before the zero-width space when no inline node precedes it', () => {\n const view = createView();\n const { TextSelection } = require('prosemirror-state');\n\n const handled = ZeroWidthSpaceHandlingPlugin.props.handleKeyDown(view, { key: 'ArrowLeft' });\n\n expect(handled).toBe(true);\n expect(view.state.doc.resolve).toHaveBeenCalledWith(0);\n expect(TextSelection.create).toHaveBeenCalledWith(view.state.doc, 0);\n expect(view.dispatch).toHaveBeenCalled();\n });\n\n it('returns false when regular text precedes the cursor', () => {\n const view = createView({\n state: {\n doc: createDocWithRegularTextBeforeCursor(),\n },\n });\n\n const handled = ZeroWidthSpaceHandlingPlugin.props.handleKeyDown(view, { key: 'ArrowLeft' });\n\n expect(handled).toBe(false);\n expect(view.state.tr.setSelection).not.toHaveBeenCalled();\n expect(view.dispatch).not.toHaveBeenCalled();\n });\n });\n\n it('returns false for unrelated keys', () => {\n const view = createView();\n\n const handled = ZeroWidthSpaceHandlingPlugin.props.handleKeyDown(view, { key: 'Enter' });\n expect(handled).toBe(false);\n });\n});\n\ndescribe('MathNodeView', () => {\n const createEditorElement = (rect = { top: 0, left: 0, width: 600, height: 400 }) => {\n const element = document.createElement('div');\n Object.defineProperty(element, 'getBoundingClientRect', {\n value: jest.fn(() => rect),\n configurable: true,\n });\n return element;\n };\n\n const createMockEditor = () => ({\n state: {\n selection: {\n from: 0,\n to: 1,\n node: { type: { name: 'math' } },\n },\n tr: {\n setSelection: jest.fn().mockReturnThis(),\n setMeta: jest.fn().mockReturnThis(),\n },\n doc: {},\n },\n view: {\n coordsAtPos: jest.fn(() => ({ top: 100, left: 50 })),\n dispatch: jest.fn(),\n },\n options: {\n element: createEditorElement(),\n },\n commands: {\n focus: jest.fn(),\n },\n instanceId: 'editor-123',\n _toolbarOpened: false,\n });\n\n const mockNode = {\n attrs: {\n latex: 'x^2',\n },\n nodeSize: 1,\n };\n\n let defaultProps;\n\n beforeEach(() => {\n jest.clearAllMocks();\n mockCreatePortal.mockImplementation((node) => node);\n defaultProps = {\n node: mockNode,\n updateAttributes: jest.fn(),\n editor: createMockEditor(),\n selected: false,\n options: {},\n getPos: jest.fn(() => 0),\n };\n });\n\n it('renders without crashing', () => {\n const { container } = render(<MathNodeView {...defaultProps} />);\n expect(container).toBeInTheDocument();\n });\n\n it('renders NodeViewWrapper', () => {\n const { getByTestId } = render(<MathNodeView {...defaultProps} />);\n expect(getByTestId('node-view-wrapper')).toBeInTheDocument();\n });\n\n it('displays math preview', () => {\n const { getByTestId } = render(<MathNodeView {...defaultProps} />);\n expect(getByTestId('math-preview')).toBeInTheDocument();\n });\n\n it('shows toolbar when selected', async () => {\n const { getByTestId } = render(<MathNodeView {...defaultProps} selected={true} />);\n await waitFor(() => {\n expect(getByTestId('math-toolbar')).toBeInTheDocument();\n });\n });\n\n it('does not show toolbar when not selected', () => {\n const { queryByTestId } = render(<MathNodeView {...defaultProps} selected={false} />);\n expect(queryByTestId('math-toolbar')).not.toBeInTheDocument();\n });\n\n it('adds data-toolbar-for attribute with editor instanceId', async () => {\n const { container } = render(<MathNodeView {...defaultProps} selected={true} />);\n await waitFor(() => {\n const toolbar = container.querySelector('[data-toolbar-for]');\n expect(toolbar).toHaveAttribute('data-toolbar-for', 'editor-123');\n });\n });\n\n describe('toolbar positioning', () => {\n it('positions relative to portal container using coordsAtPos', async () => {\n const { container } = render(<MathNodeView {...defaultProps} selected={true} />);\n await waitFor(() => {\n const toolbar = container.querySelector('[data-toolbar-for]');\n expect(toolbar).toBeInTheDocument();\n expect(toolbar.style.top).toBe('100px');\n expect(toolbar.style.left).toBe('50px');\n });\n });\n\n it('offsets position by portal container getBoundingClientRect', async () => {\n const containerEl = document.createElement('div');\n containerEl.getBoundingClientRect = jest.fn(() => ({ top: 100, left: 50, width: 600, height: 400 }));\n\n const editor = {\n ...defaultProps.editor,\n _tiptapContainerEl: containerEl,\n };\n\n const { container } = render(<MathNodeView {...defaultProps} editor={editor} selected={true} />);\n await waitFor(() => {\n const toolbar = container.querySelector('[data-toolbar-for]');\n expect(toolbar).toBeInTheDocument();\n expect(toolbar.style.top).toBe('0px');\n expect(toolbar.style.left).toBe('0px');\n });\n });\n\n it('applies absolute positioning style to toolbar', async () => {\n const { container } = render(<MathNodeView {...defaultProps} selected={true} />);\n await waitFor(() => {\n const toolbar = container.querySelector('[data-toolbar-for]');\n expect(toolbar).toBeInTheDocument();\n expect(toolbar.style.position).toBe('absolute');\n });\n });\n\n it('renders above other editor overlays with a high z-index', async () => {\n const { container } = render(<MathNodeView {...defaultProps} selected={true} />);\n await waitFor(() => {\n const toolbar = container.querySelector('[data-toolbar-for]');\n expect(toolbar).toBeInTheDocument();\n expect(toolbar.style.zIndex).toBe('1000');\n });\n });\n\n it('updates position from coordsAtPos when selection changes', async () => {\n const editor = {\n ...defaultProps.editor,\n view: {\n ...defaultProps.editor.view,\n coordsAtPos: jest.fn(() => ({ top: 200, left: 150 })),\n dispatch: jest.fn(),\n },\n };\n\n const { container } = render(<MathNodeView {...defaultProps} editor={editor} selected={true} />);\n await waitFor(() => {\n const toolbar = container.querySelector('[data-toolbar-for]');\n expect(toolbar).toBeInTheDocument();\n expect(toolbar.style.top).toBe('200px');\n expect(toolbar.style.left).toBe('150px');\n });\n });\n\n it('clamps toolbar position to viewport margins', async () => {\n const originalInnerHeight = window.innerHeight;\n const originalInnerWidth = window.innerWidth;\n\n Object.defineProperty(window, 'innerHeight', { configurable: true, writable: true, value: 200 });\n Object.defineProperty(window, 'innerWidth', { configurable: true, writable: true, value: 300 });\n\n const editor = {\n ...defaultProps.editor,\n view: {\n ...defaultProps.editor.view,\n coordsAtPos: jest.fn(() => ({ top: 190, left: 280, bottom: 195 })),\n dispatch: jest.fn(),\n },\n };\n\n const { container } = render(<MathNodeView {...defaultProps} editor={editor} selected={true} />);\n\n let toolbar;\n await waitFor(() => {\n toolbar = container.querySelector('[data-toolbar-for]');\n expect(toolbar).toBeInTheDocument();\n });\n\n Object.defineProperty(toolbar, 'offsetHeight', { configurable: true, value: 100 });\n Object.defineProperty(toolbar, 'offsetWidth', { configurable: true, value: 150 });\n\n await act(async () => {\n window.dispatchEvent(new Event('resize'));\n await new Promise((resolve) => requestAnimationFrame(resolve));\n });\n\n await waitFor(() => {\n expect(parseInt(toolbar.style.top, 10)).toBeLessThanOrEqual(200 - 100 - 8);\n expect(parseInt(toolbar.style.left, 10)).toBeLessThanOrEqual(300 - 150 - 8);\n expect(parseInt(toolbar.style.top, 10)).toBeGreaterThanOrEqual(8);\n expect(parseInt(toolbar.style.left, 10)).toBeGreaterThanOrEqual(8);\n });\n\n Object.defineProperty(window, 'innerHeight', { configurable: true, writable: true, value: originalInnerHeight });\n Object.defineProperty(window, 'innerWidth', { configurable: true, writable: true, value: originalInnerWidth });\n });\n\n it('attaches scroll and resize listeners while toolbar is open', async () => {\n const addSpy = jest.spyOn(window, 'addEventListener');\n render(<MathNodeView {...defaultProps} selected={true} />);\n await waitFor(() => {\n expect(addSpy).toHaveBeenCalledWith('scroll', expect.any(Function), true);\n expect(addSpy).toHaveBeenCalledWith('resize', expect.any(Function));\n });\n addSpy.mockRestore();\n });\n\n it('portals toolbar into _tiptapContainerEl when available', async () => {\n const containerEl = document.createElement('div');\n containerEl.getBoundingClientRect = jest.fn(() => ({ top: 0, left: 0, width: 600, height: 400 }));\n\n const editor = {\n ...defaultProps.editor,\n _tiptapContainerEl: containerEl,\n };\n\n mockCreatePortal.mockClear();\n render(<MathNodeView {...defaultProps} editor={editor} selected={true} />);\n await waitFor(() => {\n expect(mockCreatePortal).toHaveBeenCalled();\n const lastCall = mockCreatePortal.mock.calls[mockCreatePortal.mock.calls.length - 1];\n expect(lastCall[1]).toBe(containerEl);\n });\n });\n\n it('portals toolbar into document.body when _tiptapContainerEl is not set', async () => {\n const editor = {\n ...defaultProps.editor,\n _tiptapContainerEl: undefined,\n };\n\n mockCreatePortal.mockClear();\n render(<MathNodeView {...defaultProps} editor={editor} selected={true} />);\n await waitFor(() => {\n expect(mockCreatePortal).toHaveBeenCalled();\n const lastCall = mockCreatePortal.mock.calls[mockCreatePortal.mock.calls.length - 1];\n expect(lastCall[1]).toBe(document.body);\n });\n });\n });\n\n it('calls updateAttributes when latex changes', async () => {\n const { getByTestId } = render(<MathNodeView {...defaultProps} selected={true} />);\n await waitFor(() => {\n const input = getByTestId('math-input');\n fireEvent.change(input, { target: { value: 'y^2' } });\n });\n expect(defaultProps.updateAttributes).toHaveBeenCalledWith({ latex: 'y^2' });\n });\n\n it('closes toolbar and updates attributes when done', async () => {\n const updateAttributes = jest.fn();\n const { getByTestId } = render(\n <MathNodeView {...defaultProps} updateAttributes={updateAttributes} selected={true} />,\n );\n\n await waitFor(() => {\n expect(getByTestId('done-button')).toBeInTheDocument();\n });\n\n const doneButton = getByTestId('done-button');\n fireEvent.click(doneButton);\n\n await waitFor(() => {\n expect(updateAttributes).toHaveBeenCalledWith({ latex: 'x^2' });\n });\n });\n\n it('sets editor._toolbarOpened when toolbar is shown', async () => {\n const { getByTestId } = render(<MathNodeView {...defaultProps} selected={true} />);\n await waitFor(() => {\n expect(getByTestId('math-toolbar')).toBeInTheDocument();\n expect(defaultProps.editor._toolbarOpened).toBe(true);\n });\n });\n\n it('unsets editor._toolbarOpened when toolbar is closed and node is not selected', async () => {\n const { getByTestId } = render(<MathNodeView {...defaultProps} selected={false} />);\n\n fireEvent.click(getByTestId('math-preview'));\n\n await waitFor(() => {\n expect(getByTestId('math-toolbar')).toBeInTheDocument();\n expect(defaultProps.editor._toolbarOpened).toBe(true);\n });\n\n fireEvent.click(getByTestId('done-button'));\n\n await waitFor(() => {\n expect(defaultProps.editor._toolbarOpened).toBe(false);\n });\n });\n\n it('keeps editor._toolbarOpened true while the math node remains selected', async () => {\n const { getByTestId } = render(<MathNodeView {...defaultProps} selected={true} />);\n\n await waitFor(() => {\n expect(getByTestId('done-button')).toBeInTheDocument();\n expect(defaultProps.editor._toolbarOpened).toBe(true);\n });\n\n fireEvent.click(getByTestId('done-button'));\n\n await waitFor(() => {\n expect(defaultProps.editor._toolbarOpened).toBe(true);\n });\n });\n\n it('closes toolbar on outside click and runs handleDone', async () => {\n const updateAttributes = jest.fn();\n const editor = createMockEditor();\n const { TextSelection } = require('prosemirror-state');\n const { queryByTestId } = render(\n <MathNodeView {...defaultProps} editor={editor} updateAttributes={updateAttributes} selected={true} />,\n );\n\n await waitFor(() => {\n expect(queryByTestId('math-toolbar')).toBeInTheDocument();\n });\n\n fireEvent.click(document.body);\n\n await waitFor(() => {\n expect(queryByTestId('math-toolbar')).not.toBeInTheDocument();\n expect(updateAttributes).toHaveBeenCalledWith({ latex: 'x^2' });\n expect(TextSelection.create).toHaveBeenCalledWith(editor.state.doc, 1);\n expect(editor.state.tr.setSelection).toHaveBeenCalled();\n expect(editor.view.dispatch).toHaveBeenCalledWith(editor.state.tr);\n expect(editor.commands.focus).toHaveBeenCalled();\n expect(editor._toolbarOpened).toBe(true);\n });\n });\n\n it('re-registers click listener when node changes', async () => {\n const addEventListenerSpy = jest.spyOn(document, 'addEventListener');\n const removeEventListenerSpy = jest.spyOn(document, 'removeEventListener');\n const nodeA = { attrs: { latex: 'x^2' } };\n const nodeB = { attrs: { latex: 'y^2' } };\n\n const { rerender } = render(<MathNodeView {...defaultProps} node={nodeA} selected={true} />);\n\n await waitFor(() => {\n expect(addEventListenerSpy).toHaveBeenCalledWith('click', expect.any(Function));\n });\n\n const initialCallCount = addEventListenerSpy.mock.calls.length;\n\n rerender(<MathNodeView {...defaultProps} node={nodeB} selected={true} />);\n\n await waitFor(() => {\n expect(removeEventListenerSpy).toHaveBeenCalled();\n expect(addEventListenerSpy.mock.calls.length).toBeGreaterThan(initialCallCount);\n });\n\n addEventListenerSpy.mockRestore();\n removeEventListenerSpy.mockRestore();\n });\n\n it('does not close toolbar when clicking the math node preview', async () => {\n const { getByTestId, queryByTestId } = render(<MathNodeView {...defaultProps} selected={true} />);\n\n await waitFor(() => {\n expect(queryByTestId('math-toolbar')).toBeInTheDocument();\n });\n\n fireEvent.click(getByTestId('math-preview'));\n\n await waitFor(() => {\n expect(queryByTestId('math-toolbar')).toBeInTheDocument();\n });\n });\n\n describe('unique math-node class per instance', () => {\n let dateNowSpy;\n\n beforeEach(() => {\n let timestamp = 1000;\n dateNowSpy = jest.spyOn(Date, 'now').mockImplementation(() => timestamp++);\n });\n\n afterEach(() => {\n dateNowSpy.mockRestore();\n });\n\n // The wrapper is an emotion styled() component, so className also carries\n // emotion's generated class - assert on the math-node token, not equality.\n it('assigns a timestamp-based class to NodeViewWrapper', () => {\n const { getByTestId } = render(<MathNodeView {...defaultProps} />);\n const wrapper = getByTestId('node-view-wrapper');\n\n expect(Array.from(wrapper.classList).some((c) => /^math-node-\\d+$/.test(c))).toBe(true);\n });\n\n it('assigns a different class to each MathNodeView instance', () => {\n const { getAllByTestId } = render(\n <>\n <MathNodeView {...defaultProps} />\n <MathNodeView {...defaultProps} node={{ attrs: { latex: 'y^2' } }} />\n </>,\n );\n\n const wrappers = getAllByTestId('node-view-wrapper');\n const mathNodeClass = (el) => Array.from(el.classList).find((c) => c.startsWith('math-node-'));\n\n expect(mathNodeClass(wrappers[0])).toBe('math-node-1000');\n expect(mathNodeClass(wrappers[1])).toBe('math-node-1001');\n // and they must differ\n expect(mathNodeClass(wrappers[0])).not.toBe(mathNodeClass(wrappers[1]));\n });\n\n it('closes toolbar when clicking a different math node', async () => {\n const updateAttributes = jest.fn();\n const editorA = createMockEditor();\n const editorB = createMockEditor();\n\n const { getAllByTestId, queryAllByTestId } = render(\n <>\n <MathNodeView {...defaultProps} editor={editorA} updateAttributes={updateAttributes} selected={false} />\n <MathNodeView {...defaultProps} editor={editorB} node={{ attrs: { latex: 'y^2' } }} selected={false} />\n </>,\n );\n\n fireEvent.click(getAllByTestId('math-preview')[0]);\n\n await waitFor(() => {\n expect(queryAllByTestId('math-toolbar')).toHaveLength(1);\n });\n\n const secondPreview = getAllByTestId('math-preview')[1];\n fireEvent.click(secondPreview);\n\n await waitFor(() => {\n expect(queryAllByTestId('math-toolbar')).toHaveLength(1);\n expect(updateAttributes).toHaveBeenCalledWith({ latex: 'x^2' });\n expect(editorA._toolbarOpened).toBe(false);\n expect(getAllByTestId('math-input')[0]).toHaveValue('y^2');\n });\n });\n });\n\n describe('selection-based toolbar guard', () => {\n it('opens toolbar when selected transitions to true and the editor has a NodeSelection on math', async () => {\n const { queryByTestId, rerender } = render(<MathNodeView {...defaultProps} selected={false} />);\n expect(queryByTestId('math-toolbar')).not.toBeInTheDocument();\n\n rerender(<MathNodeView {...defaultProps} selected={true} />);\n await waitFor(() => {\n expect(queryByTestId('math-toolbar')).toBeInTheDocument();\n });\n });\n\n it('does not open toolbar when selected briefly becomes true but editor selection has no node (Cmd+A / drag case)', async () => {\n const editor = {\n ...defaultProps.editor,\n state: {\n ...defaultProps.editor.state,\n selection: { from: 0, to: 100 }, // no .node — TextSelection / AllSelection shape\n },\n };\n\n const { queryByTestId, rerender } = render(<MathNodeView {...defaultProps} editor={editor} selected={false} />);\n rerender(<MathNodeView {...defaultProps} editor={editor} selected={true} />);\n\n await act(async () => {});\n expect(queryByTestId('math-toolbar')).not.toBeInTheDocument();\n });\n\n it('does not open toolbar when selected briefly becomes true but NodeSelection targets a non-math node', async () => {\n const editor = {\n ...defaultProps.editor,\n state: {\n ...defaultProps.editor.state,\n selection: { from: 0, to: 1, node: { type: { name: 'image' } } },\n },\n };\n\n const { queryByTestId, rerender } = render(<MathNodeView {...defaultProps} editor={editor} selected={false} />);\n rerender(<MathNodeView {...defaultProps} editor={editor} selected={true} />);\n\n await act(async () => {});\n expect(queryByTestId('math-toolbar')).not.toBeInTheDocument();\n });\n });\n\n it('does not close toolbar when clicking equation editor dropdown', async () => {\n const { queryByTestId } = render(<MathNodeView {...defaultProps} selected={true} />);\n\n await waitFor(() => {\n expect(queryByTestId('math-toolbar')).toBeInTheDocument();\n });\n\n // Simulate MUI Select's portal dropdown container.\n const dropdown = document.createElement('div');\n dropdown.id = 'equation-editor-select-listbox';\n document.body.appendChild(dropdown);\n\n fireEvent.click(dropdown);\n\n await waitFor(() => {\n expect(queryByTestId('math-toolbar')).toBeInTheDocument();\n });\n\n document.body.removeChild(dropdown);\n });\n\n it('renders with empty latex', () => {\n const nodeWithEmptyLatex = { attrs: { latex: '' } };\n const { getByTestId } = render(<MathNodeView {...defaultProps} node={nodeWithEmptyLatex} />);\n expect(getByTestId('math-preview')).toBeInTheDocument();\n });\n\n it('has correct styling on NodeViewWrapper', () => {\n const { getByTestId } = render(<MathNodeView {...defaultProps} />);\n const wrapper = getByTestId('node-view-wrapper');\n expect(wrapper).toHaveStyle({ display: 'inline-flex', cursor: 'pointer' });\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"math.js","names":["_react","_interopRequireWildcard","require","_reactDom","_interopRequireDefault","_core","_react2","_prosemirrorState","_styles","_mathToolbar","_mathRendering","_toolbar","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","ensureTextAfterMathPluginKey","PluginKey","generateAdditionalKeys","keyData","undefined","map","key","name","latex","write","label","EnsureTextAfterMathPlugin","exports","mathNodeName","Plugin","appendTransaction","transactions","oldState","newState","some","tr","docChanged","changed","doc","descendants","node","pos","type","nextPos","nodeSize","nextNode","nodeAt","insert","schema","text","nodeBeforeZeroWidthSpace","from","_currentDoc$type","_currentDoc$type2","currentDoc","textContent","ZeroWidthSpaceHandlingPlugin","props","handleKeyDown","view","event","state","dispatch","selection","empty","start","resolved","resolve","maybeNode","nodeAfter","nodeBefore","nodeResolved","setSelection","NodeSelection","create","TextSelection","StyledMathNodeWrapper","styled","NodeViewWrapper","shouldForwardProp","prop","_ref","theme","selected","display","cursor","margin","border","padding","concat","palette","primary","main","MathNode","Node","group","inline","atom","addAttributes","wrapper","html","addProseMirrorPlugins","parseHTML","tag","getAttrs","el","getAttribute","innerHTML","addCommands","_this","insertMath","_ref2","_node$type","editor","nodes","math","$from","sel","setToolbarOpened","renderHTML","_ref3","HTMLAttributes","dangerouslySetInnerHTML","__html","wrapMath","addNodeView","_this2","ReactNodeViewRenderer","createElement","MathNodeView","options","updateAttributes","getPos","_useState","useState","_useState2","_slicedToArray2","showToolbar","setShowToolbar","toolbarRef","useRef","nodeRef","timestamp","Date","now","_useState3","top","left","_useState4","position","setPosition","_ref4","_ref4$math","mathOptions","keypadMode","_mathOptions$controll","controlledKeypadMode","_mathOptions$customKe","customKeys","keyPadCharacterRef","setKeypadInteraction","attrs","handleChange","newLatex","handleDone","_ref5","_ref5$moveCursorAfter","moveCursorAfterNode","commands","focus","useEffect","_selection$node","isNodeSelected","updatePosition","_nodeRef$current","_nodeRef$current$getB","_start$bottom","current","coordsAtPos","nodeRect","getBoundingClientRect","anchorTop","height","anchorLeft","width","anchorBottom","bottom","toolbarHeight","offsetHeight","toolbarWidth","offsetWidth","gap","spaceBelow","window","innerHeight","Math","max","min","innerWidth","portalEl","_tiptapContainerEl","document","body","containerRect","frame","scheduleUpdate","requestAnimationFrame","addEventListener","cancelAnimationFrame","removeEventListener","handleClickOutside","_document$querySelect","_document","_target$closest","_target$closest2","_target$closest3","target","equationEditorListboxes","querySelectorAll","equationEditorPopoverOpen","clickedEquationEditorSelect","id","includes","closest","clickedMathNode","contains","_editor$view","clickedInsideEditableContent","dom","className","ref","onClick","contentEditable","MathPreview","isSelected","outlineOnWrapper","ReactDOM","createPortal","instanceId","style","zIndex","background","boxShadow","MathToolbar","autoFocus","onChange","onDone","additionalKeys"],"sources":["../../src/extensions/math.js"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport ReactDOM from 'react-dom';\nimport { Node } from '@tiptap/core';\nimport { NodeViewWrapper, ReactNodeViewRenderer } from '@tiptap/react';\nimport { NodeSelection, Plugin, PluginKey, TextSelection } from 'prosemirror-state';\nimport { styled } from '@mui/material/styles';\nimport { MathPreview, MathToolbar } from '@pie-lib/math-toolbar';\nimport { wrapMath } from '@pie-lib/math-rendering';\nimport { setToolbarOpened } from '../utils/toolbar';\n\nconst ensureTextAfterMathPluginKey = new PluginKey('ensureTextAfterMath');\n\nconst generateAdditionalKeys = (keyData = []) => {\n return keyData.map((key) => ({\n name: key,\n latex: key,\n write: key,\n label: key,\n }));\n};\n\nexport const EnsureTextAfterMathPlugin = (mathNodeName) =>\n new Plugin({\n key: ensureTextAfterMathPluginKey,\n appendTransaction: (transactions, oldState, newState) => {\n // Only act when the doc actually changed\n if (!transactions.some((tr) => tr.docChanged)) {\n return null;\n }\n\n const tr = newState.tr;\n let changed = false;\n\n newState.doc.descendants((node, pos) => {\n if (node.type.name === mathNodeName) {\n const nextPos = pos + node.nodeSize;\n const nextNode = newState.doc.nodeAt(nextPos);\n\n // If there's no node after, or the next node isn't text, insert a space\n if (!nextNode || nextNode.type.name !== 'text') {\n tr.insert(nextPos, newState.schema.text('\\u200b'));\n changed = true;\n }\n }\n });\n\n return changed ? tr : null;\n },\n });\n\nconst nodeBeforeZeroWidthSpace = (doc, from) => {\n let i;\n\n // finding if previous to the cursor there's a zero-width space\n // and a non-text element, and deleting everything until the space\n for (i = from; i > 0; i--) {\n const currentDoc = doc.nodeAt(i);\n\n if (currentDoc?.type?.name === 'text' && currentDoc.textContent !== '\\u200b') {\n return -1;\n }\n\n if (currentDoc && currentDoc?.type?.name !== 'text') {\n break;\n }\n }\n\n return i;\n};\n\nexport const ZeroWidthSpaceHandlingPlugin = new Plugin({\n key: new PluginKey('zeroWidthSpaceHandling'),\n props: {\n handleKeyDown(view, event) {\n const { state, dispatch } = view;\n const { selection, doc } = state;\n const { from, empty } = selection;\n\n if (empty && event.key === 'Backspace' && from > 0) {\n const start = nodeBeforeZeroWidthSpace(doc, from);\n\n if (start === -1) {\n return false;\n }\n\n const tr = state.tr.delete(start, from);\n dispatch(tr);\n return true; // handled\n }\n\n if (empty && event.key === 'ArrowLeft' && from > 0) {\n const start = nodeBeforeZeroWidthSpace(doc, from);\n\n if (start === -1) {\n return false;\n }\n\n const resolved = state.doc.resolve(start);\n const maybeNode = resolved.nodeAfter || resolved.nodeBefore;\n\n // Check if there's an inline selectable node (e.g., your math node)\n if (maybeNode) {\n const nodeResolved = state.doc.resolve(start);\n const tr = state.tr.setSelection(NodeSelection.create(state.doc, nodeResolved.pos));\n dispatch(tr);\n return true;\n } else {\n // Just move the text cursor before the zwsp\n const tr = state.tr.setSelection(TextSelection.create(state.doc, from - 2));\n dispatch(tr);\n return true;\n }\n }\n\n return false;\n },\n },\n});\n\nconst StyledMathNodeWrapper = styled(NodeViewWrapper, {\n shouldForwardProp: (prop) => prop !== 'selected',\n})(({ theme, selected }) => ({\n display: 'inline-flex',\n cursor: 'pointer',\n margin: '0 4px',\n '&:not(:has(.ML__latex))': {\n border: 'solid 1px lightgrey',\n padding: '5px',\n },\n ...(selected && {\n border: `solid 1px ${theme.palette.primary.main}`,\n }),\n}));\n\nexport const MathNode = Node.create({\n name: 'math',\n group: 'inline',\n inline: true,\n atom: true,\n\n addAttributes() {\n return {\n latex: { default: '' },\n wrapper: { default: null },\n html: { default: null },\n };\n },\n\n addProseMirrorPlugins() {\n return [EnsureTextAfterMathPlugin(this.name), ZeroWidthSpaceHandlingPlugin];\n },\n\n parseHTML() {\n return [\n {\n tag: 'span[data-latex]',\n getAttrs: (el) => ({\n latex: el.getAttribute('data-raw') || el.textContent,\n }),\n },\n {\n tag: 'span[data-type=\"mathml\"]',\n getAttrs: (el) => ({\n html: el.innerHTML,\n }),\n },\n ];\n },\n\n addCommands() {\n return {\n insertMath:\n (latex = '') =>\n ({ tr, editor, dispatch }) => {\n const { state } = editor.view;\n const node = state.schema.nodes.math.create({\n latex,\n });\n const { selection } = state;\n\n // The inserted node is typically just before the cursor\n const pos = selection.$from.pos;\n\n tr.insert(pos, node);\n\n if (node?.type?.name === this.name) {\n // Create a NodeSelection from the current doc\n const sel = NodeSelection.create(tr.doc, selection.$from.pos);\n\n // Build a fresh transaction from the current state and set the selection\n tr.setSelection(sel);\n }\n\n dispatch(tr);\n\n setToolbarOpened(editor, true);\n return true;\n },\n };\n },\n\n renderHTML({ HTMLAttributes }) {\n if (HTMLAttributes.html) {\n return ['span', { 'data-type': 'mathml', dangerouslySetInnerHTML: { __html: HTMLAttributes.html } }];\n }\n\n return [\n 'span',\n { 'data-latex': '', 'data-raw': HTMLAttributes.latex },\n wrapMath(HTMLAttributes.latex, HTMLAttributes.wrapper),\n ];\n },\n\n addNodeView() {\n return ReactNodeViewRenderer((props) => <MathNodeView {...{ ...props, options: this.options }} />);\n },\n});\n\nexport const MathNodeView = (props) => {\n const { node, updateAttributes, editor, selected, options, getPos } = props;\n const [showToolbar, setShowToolbar] = useState(selected);\n const toolbarRef = useRef(null);\n const nodeRef = useRef(null);\n const timestamp = useRef(Date.now());\n const [position, setPosition] = useState({ top: 0, left: 0 });\n const { math: mathOptions = {} } = options || {};\n const {\n keypadMode,\n controlledKeypadMode = true,\n customKeys = [],\n keyPadCharacterRef,\n setKeypadInteraction,\n } = mathOptions;\n\n const latex = node.attrs.latex || '';\n\n const handleChange = (newLatex) => {\n updateAttributes({ latex: newLatex });\n };\n\n // moveCursorAfterNode is set explicitly by the caller (not inferred from\n // editor.state.selection: every keystroke while editing already calls\n // updateAttributes, which replaces this node's content and — per a\n // ProseMirror mapping quirk — collapses any NodeSelection on it into a\n // plain TextSelection right away, so the live selection can't be trusted\n // to still describe this node by the time handleDone runs).\n //\n // - Check icon: always move the cursor to just after this node.\n // - Clicking elsewhere in the editable content while the toolbar was\n // open (see handleClickOutside): leave the cursor where the user\n // actually clicked instead of overriding it.\n const handleDone = (newLatex, { moveCursorAfterNode = true } = {}) => {\n updateAttributes({ latex: newLatex });\n setShowToolbar(false);\n\n if (moveCursorAfterNode && typeof getPos === 'function') {\n const pos = getPos();\n const { doc } = editor.state;\n const sel = TextSelection.create(doc, pos + node.nodeSize);\n const tr = editor.state.tr.setSelection(sel);\n editor.view.dispatch(tr);\n }\n\n editor.commands.focus();\n };\n\n // Only open the toolbar when this node is *explicitly* selected\n // via a NodeSelection — not when it's merely included in a broader\n // TextSelection or AllSelection (e.g. click-drag across math, or Cmd+A).\n useEffect(() => {\n if (!selected) return;\n\n const { selection } = editor.state;\n const isNodeSelected = selection.node?.type?.name === 'math';\n\n if (isNodeSelected) {\n setShowToolbar(true);\n }\n }, [selected, editor]);\n\n useEffect(() => {\n setToolbarOpened(editor, selected || showToolbar);\n }, [editor, showToolbar, selected]);\n\n useEffect(() => {\n if (!editor || !showToolbar) {\n setPosition({ top: 0, left: 0 });\n return;\n }\n\n // Clamp in viewport coordinates, then convert to portal-container-relative values\n // for position: absolute (toolbar is portaled into _tiptapContainerEl or document.body).\n const updatePosition = () => {\n if (!toolbarRef.current) {\n return;\n }\n\n const { from } = editor.state.selection;\n const start = editor.view.coordsAtPos(from);\n const nodeRect = nodeRef.current?.getBoundingClientRect?.();\n\n // Anchor to the math node element when available; fall back to selection coords.\n const anchorTop = nodeRect?.height ? nodeRect.top : start.top;\n const anchorLeft = nodeRect?.width ? nodeRect.left : start.left;\n const anchorBottom = nodeRect?.height ? nodeRect.bottom : (start.bottom ?? start.top);\n\n const toolbarHeight = toolbarRef.current.offsetHeight;\n const toolbarWidth = toolbarRef.current.offsetWidth;\n\n const gap = 0;\n const spaceBelow = window.innerHeight - (anchorBottom + gap);\n\n // Place the toolbar's top-left corner directly below the anchor; flip above when needed.\n let top = spaceBelow >= toolbarHeight ? anchorBottom + gap : anchorTop - toolbarHeight - gap;\n let left = anchorLeft;\n\n const margin = 8;\n top = Math.max(margin, Math.min(top, window.innerHeight - toolbarHeight - margin));\n left = Math.max(margin, Math.min(left, window.innerWidth - toolbarWidth - margin));\n\n const portalEl = editor._tiptapContainerEl || document.body;\n const containerRect = portalEl.getBoundingClientRect();\n\n setPosition({\n top: top - containerRect.top,\n left: left - containerRect.left,\n });\n };\n\n updatePosition();\n\n let frame = null;\n const scheduleUpdate = () => {\n if (frame !== null) {\n return;\n }\n\n frame = requestAnimationFrame(() => {\n frame = null;\n updatePosition();\n });\n };\n\n frame = requestAnimationFrame(() => {\n frame = null;\n updatePosition();\n });\n\n window.addEventListener('scroll', scheduleUpdate, true);\n window.addEventListener('resize', scheduleUpdate);\n\n return () => {\n if (frame !== null) {\n cancelAnimationFrame(frame);\n }\n\n window.removeEventListener('scroll', scheduleUpdate, true);\n window.removeEventListener('resize', scheduleUpdate);\n };\n }, [editor, showToolbar]);\n\n useEffect(() => {\n const handleClickOutside = (event) => {\n const target = event?.target;\n\n // MUI's `Select` renders its dropdown options in a portal attached to `document.body`.\n // Those clicks should not dismiss the math toolbar.\n const equationEditorListboxes =\n document.querySelectorAll?.(\n '[id^=\"equation-editor-select\"][id*=\"listbox\"], [aria-labelledby=\"equation-editor-label\"][role=\"listbox\"]',\n ) || [];\n\n const equationEditorPopoverOpen = equationEditorListboxes.length > 0;\n const clickedEquationEditorSelect =\n !!(target?.id && target.id.includes('equation-editor-select')) ||\n !!target?.closest?.('[id*=\"equation-editor-select\"]');\n\n // If the click originated from the math node preview itself (the element\n // that opens the toolbar), ignore it here — the node's own onClick handler\n // will keep/re-open the toolbar. Without this guard, closing and then\n // immediately clicking the math node would fire this listener in the same\n // event cycle and close the toolbar before it could open.\n const clickedMathNode = !!target?.closest?.(`.math-node-${timestamp.current}`);\n\n if (\n toolbarRef.current &&\n !toolbarRef.current.contains(target) &&\n !target?.closest?.('[data-inline-node]') &&\n !equationEditorPopoverOpen &&\n !clickedEquationEditorSelect &&\n !clickedMathNode\n ) {\n setShowToolbar(false);\n\n // If the click landed inside the editable content itself, respect\n // it and leave the cursor where the user clicked. If it landed\n // fully outside the editor (e.g. on other page UI), there's no\n // click position to preserve — falling back to \"leave selection\n // untouched\" there renders the browser's native NodeSelection\n // fallback caret at the start of the node, so explicitly move the\n // cursor after it instead, same as the check-icon path.\n const clickedInsideEditableContent = !!editor?.view?.dom?.contains(target);\n handleDone(node.attrs.latex, { moveCursorAfterNode: !clickedInsideEditableContent });\n }\n };\n\n if (showToolbar) {\n // Use `click` (not `mousedown`) so interacting with browser UI like the scrollbar\n // doesn't automatically dismiss the math toolbar.\n document.addEventListener('click', handleClickOutside);\n } else {\n document.removeEventListener('click', handleClickOutside);\n }\n\n return () => document.removeEventListener('click', handleClickOutside);\n }, [editor, showToolbar, node]);\n\n return (\n <StyledMathNodeWrapper\n className={`math-node-${timestamp.current}`}\n selected={selected}\n data-selected={selected}\n >\n <div ref={nodeRef} onClick={() => setShowToolbar(true)} contentEditable={false}>\n <MathPreview latex={latex} isSelected={selected} outlineOnWrapper />\n </div>\n {showToolbar &&\n ReactDOM.createPortal(\n <div\n ref={toolbarRef}\n data-toolbar-for={editor.instanceId}\n style={{\n position: 'absolute',\n top: `${position.top}px`,\n left: `${position.left}px`,\n zIndex: 1000,\n background: 'var(--editable-html-toolbar-bg, #efefef)',\n boxShadow:\n '0px 1px 5px 0px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 3px 1px -2px rgba(0, 0, 0, 0.12)',\n }}\n >\n <MathToolbar\n latex={latex}\n autoFocus\n onChange={handleChange}\n onDone={handleDone}\n keypadMode={keypadMode}\n controlledKeypadMode={controlledKeypadMode}\n additionalKeys={generateAdditionalKeys(customKeys)}\n keyPadCharacterRef={keyPadCharacterRef}\n setKeypadInteraction={setKeypadInteraction}\n />\n </div>,\n editor?._tiptapContainerEl || document.body,\n )}\n </StyledMathNodeWrapper>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"math.js","names":["_react","_interopRequireWildcard","require","_reactDom","_interopRequireDefault","_core","_react2","_prosemirrorState","_styles","_mathToolbar","_mathRendering","_toolbar","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","ensureTextAfterMathPluginKey","PluginKey","generateAdditionalKeys","keyData","undefined","map","key","name","latex","write","label","EnsureTextAfterMathPlugin","exports","mathNodeName","Plugin","appendTransaction","transactions","oldState","newState","some","tr","docChanged","changed","doc","descendants","node","pos","type","nextPos","nodeSize","nextNode","nodeAt","insert","schema","text","nodeBeforeZeroWidthSpace","from","_currentDoc$type","_currentDoc$type2","currentDoc","textContent","ZeroWidthSpaceHandlingPlugin","props","handleKeyDown","view","event","state","dispatch","selection","empty","start","resolved","resolve","maybeNode","nodeAfter","nodeBefore","nodeResolved","setSelection","NodeSelection","create","TextSelection","StyledMathNodeWrapper","styled","NodeViewWrapper","shouldForwardProp","prop","_ref","theme","selected","display","cursor","margin","border","padding","concat","palette","primary","main","MathNode","Node","group","inline","atom","addAttributes","wrapper","html","addProseMirrorPlugins","parseHTML","tag","getAttrs","el","getAttribute","innerHTML","addCommands","_this","insertMath","_ref2","_node$type","editor","nodes","math","$from","sel","setToolbarOpened","renderHTML","_ref3","HTMLAttributes","dangerouslySetInnerHTML","__html","wrapMath","addNodeView","_this2","ReactNodeViewRenderer","createElement","MathNodeView","options","updateAttributes","getPos","_useState","useState","_useState2","_slicedToArray2","showToolbar","setShowToolbar","toolbarRef","useRef","nodeRef","timestamp","Date","now","_useState3","top","left","_useState4","position","setPosition","_ref4","_ref4$math","mathOptions","keypadMode","_mathOptions$controll","controlledKeypadMode","_mathOptions$customKe","customKeys","keyPadCharacterRef","setKeypadInteraction","attrs","handleChange","newLatex","handleDone","_ref5","_ref5$moveCursorAfter","moveCursorAfterNode","commands","focus","useEffect","_selection$node","isNodeSelected","updatePosition","_nodeRef$current","_nodeRef$current$getB","_start$bottom","current","coordsAtPos","nodeRect","getBoundingClientRect","anchorTop","height","anchorLeft","width","anchorBottom","bottom","toolbarHeight","offsetHeight","toolbarWidth","offsetWidth","gap","spaceBelow","window","innerHeight","Math","max","min","innerWidth","portalEl","_tiptapContainerEl","document","body","containerRect","frame","scheduleUpdate","requestAnimationFrame","addEventListener","cancelAnimationFrame","removeEventListener","handleClickOutside","_document$querySelect","_document","_target$closest","_target$closest2","_target$closest3","target","equationEditorListboxes","querySelectorAll","equationEditorPopoverOpen","clickedEquationEditorSelect","id","includes","closest","clickedMathNode","contains","_editor$view","clickedInsideEditableContent","dom","className","ref","onClick","contentEditable","MathPreview","isSelected","outlineOnWrapper","ReactDOM","createPortal","instanceId","style","zIndex","background","boxShadow","MathToolbar","autoFocus","onChange","onDone","additionalKeys"],"sources":["../../src/extensions/math.js"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport ReactDOM from 'react-dom';\nimport { Node } from '@tiptap/core';\nimport { NodeViewWrapper, ReactNodeViewRenderer } from '@tiptap/react';\nimport { NodeSelection, Plugin, PluginKey, TextSelection } from 'prosemirror-state';\nimport { styled } from '@mui/material/styles';\nimport { MathPreview, MathToolbar } from '@pie-lib/math-toolbar';\nimport { wrapMath } from '@pie-lib/math-rendering';\nimport { setToolbarOpened } from '../utils/toolbar';\n\nconst ensureTextAfterMathPluginKey = new PluginKey('ensureTextAfterMath');\n\nconst generateAdditionalKeys = (keyData = []) => {\n return keyData.map((key) => ({\n name: key,\n latex: key,\n write: key,\n label: key,\n }));\n};\n\nexport const EnsureTextAfterMathPlugin = (mathNodeName) =>\n new Plugin({\n key: ensureTextAfterMathPluginKey,\n appendTransaction: (transactions, oldState, newState) => {\n // Only act when the doc actually changed\n if (!transactions.some((tr) => tr.docChanged)) {\n return null;\n }\n\n const tr = newState.tr;\n let changed = false;\n\n newState.doc.descendants((node, pos) => {\n if (node.type.name === mathNodeName) {\n const nextPos = pos + node.nodeSize;\n const nextNode = newState.doc.nodeAt(nextPos);\n\n // If there's no node after, or the next node isn't text, insert a space\n if (!nextNode || nextNode.type.name !== 'text') {\n tr.insert(nextPos, newState.schema.text('\\u200b'));\n changed = true;\n }\n }\n });\n\n return changed ? tr : null;\n },\n });\n\nconst nodeBeforeZeroWidthSpace = (doc, from) => {\n let i;\n\n // finding if previous to the cursor there's a zero-width space\n // and a non-text element, and deleting everything until the space\n for (i = from; i > 0; i--) {\n const currentDoc = doc.nodeAt(i);\n\n if (currentDoc?.type?.name === 'text' && currentDoc.textContent !== '\\u200b') {\n return -1;\n }\n\n if (currentDoc && currentDoc?.type?.name !== 'text') {\n break;\n }\n }\n\n return i;\n};\n\nexport const ZeroWidthSpaceHandlingPlugin = new Plugin({\n key: new PluginKey('zeroWidthSpaceHandling'),\n props: {\n handleKeyDown(view, event) {\n const { state, dispatch } = view;\n const { selection, doc } = state;\n const { from, empty } = selection;\n\n if (empty && event.key === 'Backspace' && from > 0) {\n const start = nodeBeforeZeroWidthSpace(doc, from);\n\n if (start === -1) {\n return false;\n }\n\n const tr = state.tr.delete(start, from);\n dispatch(tr);\n return true; // handled\n }\n\n if (empty && event.key === 'ArrowLeft' && from > 0) {\n const start = nodeBeforeZeroWidthSpace(doc, from);\n\n if (start === -1) {\n return false;\n }\n\n const resolved = state.doc.resolve(start);\n const maybeNode = resolved.nodeAfter || resolved.nodeBefore;\n\n // Check if there's an inline selectable node (e.g., your math node)\n if (maybeNode) {\n const nodeResolved = state.doc.resolve(start);\n const tr = state.tr.setSelection(NodeSelection.create(state.doc, nodeResolved.pos));\n dispatch(tr);\n return true;\n } else {\n // Just move the text cursor before the zwsp\n const tr = state.tr.setSelection(TextSelection.create(state.doc, from - 2));\n dispatch(tr);\n return true;\n }\n }\n\n return false;\n },\n },\n});\n\nconst StyledMathNodeWrapper = styled(NodeViewWrapper, {\n shouldForwardProp: (prop) => prop !== 'selected',\n})(({ theme, selected }) => ({\n display: 'inline-flex',\n cursor: 'pointer',\n margin: '0 4px',\n '&:not(:has(.ML__latex))': {\n border: 'solid 1px lightgrey',\n padding: '5px',\n },\n ...(selected && {\n border: `solid 1px ${theme.palette.primary.main}`,\n }),\n}));\n\nexport const MathNode = Node.create({\n name: 'math',\n group: 'inline',\n inline: true,\n atom: true,\n\n addAttributes() {\n return {\n latex: { default: '' },\n wrapper: { default: null },\n html: { default: null },\n };\n },\n\n addProseMirrorPlugins() {\n return [EnsureTextAfterMathPlugin(this.name), ZeroWidthSpaceHandlingPlugin];\n },\n\n parseHTML() {\n return [\n {\n tag: 'span[data-latex]',\n getAttrs: (el) => ({\n latex: el.getAttribute('data-raw') || el.textContent,\n }),\n },\n {\n tag: 'span[data-type=\"mathml\"]',\n getAttrs: (el) => ({\n html: el.innerHTML,\n }),\n },\n ];\n },\n\n addCommands() {\n return {\n insertMath:\n (latex = '') =>\n ({ tr, editor, dispatch }) => {\n const { state } = editor.view;\n const node = state.schema.nodes.math.create({\n latex,\n });\n const { selection } = state;\n\n // The inserted node is typically just before the cursor\n const pos = selection.$from.pos;\n\n tr.insert(pos, node);\n\n if (node?.type?.name === this.name) {\n // Create a NodeSelection from the current doc\n const sel = NodeSelection.create(tr.doc, selection.$from.pos);\n\n // Build a fresh transaction from the current state and set the selection\n tr.setSelection(sel);\n }\n\n dispatch(tr);\n\n setToolbarOpened(editor, true);\n return true;\n },\n };\n },\n\n renderHTML({ HTMLAttributes }) {\n if (HTMLAttributes.html) {\n return ['span', { 'data-type': 'mathml', dangerouslySetInnerHTML: { __html: HTMLAttributes.html } }];\n }\n\n return [\n 'span',\n { 'data-latex': '', 'data-raw': HTMLAttributes.latex },\n wrapMath(HTMLAttributes.latex, HTMLAttributes.wrapper),\n ];\n },\n\n addNodeView() {\n return ReactNodeViewRenderer((props) => <MathNodeView {...{ ...props, options: this.options }} />);\n },\n});\n\nexport const MathNodeView = (props) => {\n const { node, updateAttributes, editor, selected, options, getPos } = props;\n const [showToolbar, setShowToolbar] = useState(selected);\n const toolbarRef = useRef(null);\n const nodeRef = useRef(null);\n const timestamp = useRef(Date.now());\n const [position, setPosition] = useState({ top: 0, left: 0 });\n const { math: mathOptions = {} } = options || {};\n const {\n keypadMode,\n controlledKeypadMode = true,\n customKeys = [],\n keyPadCharacterRef,\n setKeypadInteraction,\n } = mathOptions;\n\n const latex = node.attrs.latex || '';\n\n const handleChange = (newLatex) => {\n updateAttributes({ latex: newLatex });\n };\n\n // moveCursorAfterNode is set explicitly by the caller (not inferred from\n // editor.state.selection: every keystroke while editing already calls\n // updateAttributes, which replaces this node's content and — per a\n // ProseMirror mapping quirk — collapses any NodeSelection on it into a\n // plain TextSelection right away, so the live selection can't be trusted\n // to still describe this node by the time handleDone runs).\n //\n // - Check icon: always move the cursor to just after this node.\n // - Clicking elsewhere in the editable content while the toolbar was\n // open (see handleClickOutside): leave the cursor where the user\n // actually clicked instead of overriding it.\n const handleDone = (newLatex, { moveCursorAfterNode = true } = {}) => {\n updateAttributes({ latex: newLatex });\n setShowToolbar(false);\n\n if (moveCursorAfterNode && typeof getPos === 'function') {\n const pos = getPos();\n const { doc } = editor.state;\n const sel = TextSelection.create(doc, pos + node.nodeSize);\n const tr = editor.state.tr.setSelection(sel);\n editor.view.dispatch(tr);\n }\n\n editor.commands.focus();\n };\n\n // Only open the toolbar when this node is *explicitly* selected\n // via a NodeSelection — not when it's merely included in a broader\n // TextSelection or AllSelection (e.g. click-drag across math, or Cmd+A).\n useEffect(() => {\n if (!selected) return;\n\n const { selection } = editor.state;\n const isNodeSelected = selection.node?.type?.name === 'math';\n\n if (isNodeSelected) {\n setShowToolbar(true);\n }\n }, [selected, editor]);\n\n useEffect(() => {\n setToolbarOpened(editor, selected || showToolbar);\n }, [editor, showToolbar, selected]);\n\n useEffect(() => {\n if (!editor || !showToolbar) {\n setPosition({ top: 0, left: 0 });\n return;\n }\n\n // Clamp in viewport coordinates, then convert to portal-container-relative values\n // for position: absolute (toolbar is portaled into _tiptapContainerEl or document.body).\n const updatePosition = () => {\n if (!toolbarRef.current) {\n return;\n }\n\n const { from } = editor.state.selection;\n const start = editor.view.coordsAtPos(from);\n const nodeRect = nodeRef.current?.getBoundingClientRect?.();\n\n // Anchor to the math node element when available; fall back to selection coords.\n const anchorTop = nodeRect?.height ? nodeRect.top : start.top;\n const anchorLeft = nodeRect?.width ? nodeRect.left : start.left;\n const anchorBottom = nodeRect?.height ? nodeRect.bottom : (start.bottom ?? start.top);\n\n const toolbarHeight = toolbarRef.current.offsetHeight;\n const toolbarWidth = toolbarRef.current.offsetWidth;\n\n const gap = 0;\n const spaceBelow = window.innerHeight - (anchorBottom + gap);\n\n // Place the toolbar's top-left corner directly below the anchor; flip above when needed.\n let top = spaceBelow >= toolbarHeight ? anchorBottom + gap : anchorTop - toolbarHeight - gap;\n let left = anchorLeft;\n\n const margin = 8;\n top = Math.max(margin, Math.min(top, window.innerHeight - toolbarHeight - margin));\n left = Math.max(margin, Math.min(left, window.innerWidth - toolbarWidth - margin));\n\n const portalEl = editor._tiptapContainerEl || document.body;\n const containerRect = portalEl.getBoundingClientRect();\n\n setPosition({\n top: top - containerRect.top,\n left: left - containerRect.left,\n });\n };\n\n updatePosition();\n\n let frame = null;\n const scheduleUpdate = () => {\n if (frame !== null) {\n return;\n }\n\n frame = requestAnimationFrame(() => {\n frame = null;\n updatePosition();\n });\n };\n\n frame = requestAnimationFrame(() => {\n frame = null;\n updatePosition();\n });\n\n window.addEventListener('scroll', scheduleUpdate, true);\n window.addEventListener('resize', scheduleUpdate);\n\n return () => {\n if (frame !== null) {\n cancelAnimationFrame(frame);\n }\n\n window.removeEventListener('scroll', scheduleUpdate, true);\n window.removeEventListener('resize', scheduleUpdate);\n };\n }, [editor, showToolbar]);\n\n useEffect(() => {\n const handleClickOutside = (event) => {\n const target = event?.target;\n\n // MUI's `Select` renders its dropdown options in a portal attached to `document.body`.\n // Those clicks should not dismiss the math toolbar.\n const equationEditorListboxes =\n document.querySelectorAll?.(\n '[id^=\"equation-editor-select\"][id*=\"listbox\"], [aria-labelledby=\"equation-editor-label\"][role=\"listbox\"]',\n ) || [];\n\n const equationEditorPopoverOpen = equationEditorListboxes.length > 0;\n const clickedEquationEditorSelect =\n !!(target?.id && target.id.includes('equation-editor-select')) ||\n !!target?.closest?.('[id*=\"equation-editor-select\"]');\n\n // If the click originated from the math node preview itself (the element\n // that opens the toolbar), ignore it here — the node's own onClick handler\n // will keep/re-open the toolbar. Without this guard, closing and then\n // immediately clicking the math node would fire this listener in the same\n // event cycle and close the toolbar before it could open.\n const clickedMathNode = !!target?.closest?.(`.math-node-${timestamp.current}`);\n\n if (\n toolbarRef.current &&\n !toolbarRef.current.contains(target) &&\n !target?.closest?.('[data-inline-node]') &&\n !equationEditorPopoverOpen &&\n !clickedEquationEditorSelect &&\n !clickedMathNode\n ) {\n setShowToolbar(false);\n\n // If the click landed inside the editable content itself, respect\n // it and leave the cursor where the user clicked. If it landed\n // fully outside the editor (e.g. on other page UI), there's no\n // click position to preserve — falling back to \"leave selection\n // untouched\" there renders the browser's native NodeSelection\n // fallback caret at the start of the node, so explicitly move the\n // cursor after it instead, same as the check-icon path.\n const clickedInsideEditableContent = !!editor?.view?.dom?.contains(target);\n handleDone(node.attrs.latex, { moveCursorAfterNode: !clickedInsideEditableContent });\n }\n };\n\n if (showToolbar) {\n // Use `click` (not `mousedown`) so interacting with browser UI like the scrollbar\n // doesn't automatically dismiss the math toolbar.\n document.addEventListener('click', handleClickOutside);\n } else {\n document.removeEventListener('click', handleClickOutside);\n }\n\n return () => document.removeEventListener('click', handleClickOutside);\n }, [editor, showToolbar, node]);\n\n return (\n <StyledMathNodeWrapper className={`math-node-${timestamp.current}`} selected={selected} data-selected={selected}>\n <div ref={nodeRef} onClick={() => setShowToolbar(true)} contentEditable={false}>\n <MathPreview latex={latex} isSelected={selected} outlineOnWrapper />\n </div>\n {showToolbar &&\n ReactDOM.createPortal(\n <div\n ref={toolbarRef}\n data-toolbar-for={editor.instanceId}\n style={{\n position: 'absolute',\n top: `${position.top}px`,\n left: `${position.left}px`,\n zIndex: 1000,\n background: 'var(--editable-html-toolbar-bg, #efefef)',\n boxShadow:\n '0px 1px 5px 0px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 3px 1px -2px rgba(0, 0, 0, 0.12)',\n }}\n >\n <MathToolbar\n latex={latex}\n autoFocus\n onChange={handleChange}\n onDone={handleDone}\n keypadMode={keypadMode}\n controlledKeypadMode={controlledKeypadMode}\n additionalKeys={generateAdditionalKeys(customKeys)}\n keyPadCharacterRef={keyPadCharacterRef}\n setKeypadInteraction={setKeypadInteraction}\n />\n </div>,\n editor?._tiptapContainerEl || document.body,\n )}\n </StyledMathNodeWrapper>\n );\n};\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "2.2.0-beta.6",
6
+ "version": "2.2.0-beta.7",
7
7
  "description": "",
8
8
  "license": "ISC",
9
9
  "main": "lib/index.js",
@@ -17,9 +17,9 @@
17
17
  "@mui/icons-material": "^7.3.4",
18
18
  "@mui/material": "^7.3.4",
19
19
  "@pie-lib/drag": "^4.0.2",
20
- "@pie-lib/math-input-mathlive": "^1.0.9",
20
+ "@pie-lib/math-input-mathlive": "^1.0.11",
21
21
  "@pie-lib/math-rendering": "^5.0.2",
22
- "@pie-lib/math-toolbar": "^3.1.0-beta.6",
22
+ "@pie-lib/math-toolbar": "^3.1.0-beta.7",
23
23
  "@pie-lib/render-ui": "^6.1.0",
24
24
  "@tiptap/core": "3.20.0",
25
25
  "@tiptap/extension-character-count": "3.20.0",
@@ -841,9 +841,7 @@ describe('MathNodeView', () => {
841
841
  },
842
842
  };
843
843
 
844
- const { queryByTestId, rerender } = render(
845
- <MathNodeView {...defaultProps} editor={editor} selected={false} />,
846
- );
844
+ const { queryByTestId, rerender } = render(<MathNodeView {...defaultProps} editor={editor} selected={false} />);
847
845
  rerender(<MathNodeView {...defaultProps} editor={editor} selected={true} />);
848
846
 
849
847
  await act(async () => {});
@@ -859,9 +857,7 @@ describe('MathNodeView', () => {
859
857
  },
860
858
  };
861
859
 
862
- const { queryByTestId, rerender } = render(
863
- <MathNodeView {...defaultProps} editor={editor} selected={false} />,
864
- );
860
+ const { queryByTestId, rerender } = render(<MathNodeView {...defaultProps} editor={editor} selected={false} />);
865
861
  rerender(<MathNodeView {...defaultProps} editor={editor} selected={true} />);
866
862
 
867
863
  await act(async () => {});
@@ -416,11 +416,7 @@ export const MathNodeView = (props) => {
416
416
  }, [editor, showToolbar, node]);
417
417
 
418
418
  return (
419
- <StyledMathNodeWrapper
420
- className={`math-node-${timestamp.current}`}
421
- selected={selected}
422
- data-selected={selected}
423
- >
419
+ <StyledMathNodeWrapper className={`math-node-${timestamp.current}`} selected={selected} data-selected={selected}>
424
420
  <div ref={nodeRef} onClick={() => setShowToolbar(true)} contentEditable={false}>
425
421
  <MathPreview latex={latex} isSelected={selected} outlineOnWrapper />
426
422
  </div>