@pie-lib/editable-html-tip-tap 2.1.19 → 2.1.20-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +0 -130
- package/lib/components/EditableHtml.js +0 -56
- package/lib/components/EditableHtml.js.map +1 -1
- package/lib/components/MenuBar.js +12 -81
- package/lib/components/MenuBar.js.map +1 -1
- package/lib/components/TiptapContainer.js +2 -2
- package/lib/components/TiptapContainer.js.map +1 -1
- package/lib/components/common/toolbar-buttons.js +5 -6
- package/lib/components/common/toolbar-buttons.js.map +1 -1
- package/lib/components/icons/TableIcons.js +1 -3
- package/lib/components/icons/TableIcons.js.map +1 -1
- package/lib/components/icons/TextAlign.js +5 -14
- package/lib/components/icons/TextAlign.js.map +1 -1
- package/lib/components/respArea/MathTemplated.js +8 -14
- package/lib/components/respArea/MathTemplated.js.map +1 -1
- package/lib/extensions/math.js +37 -19
- package/lib/extensions/math.js.map +1 -1
- package/lib/styles/editorContainerStyles.js +2 -2
- package/lib/styles/editorContainerStyles.js.map +1 -1
- package/package.json +9 -9
- package/src/components/EditableHtml.jsx +0 -52
- package/src/components/MenuBar.jsx +9 -91
- package/src/components/TiptapContainer.jsx +2 -2
- package/src/components/common/toolbar-buttons.jsx +4 -6
- package/src/components/icons/TableIcons.jsx +1 -9
- package/src/components/icons/TextAlign.jsx +5 -39
- package/src/components/respArea/MathTemplated.jsx +6 -13
- package/src/extensions/math.js +19 -11
- package/src/styles/editorContainerStyles.js +2 -2
- package/LICENSE.md +0 -5
- package/src/__tests__/EditableHtml.test.jsx +0 -668
- package/src/__tests__/constants.test.js +0 -19
- package/src/__tests__/div-to-paragraph-conversion.test.jsx +0 -125
- package/src/__tests__/editor-attributes.test.jsx +0 -77
- package/src/__tests__/extensions.test.js +0 -208
- package/src/__tests__/index.test.jsx +0 -154
- package/src/__tests__/size-utils.test.js +0 -64
- package/src/__tests__/spellcheck.test.jsx +0 -63
- package/src/__tests__/theme.test.js +0 -17
- package/src/components/__tests__/AltDialog.test.jsx +0 -147
- package/src/components/__tests__/CharacterPicker.test.jsx +0 -270
- package/src/components/__tests__/CssIcon.test.jsx +0 -46
- package/src/components/__tests__/DragInTheBlank.test.jsx +0 -255
- package/src/components/__tests__/ExplicitConstructedResponse.test.jsx +0 -209
- package/src/components/__tests__/ImageToolbar.test.jsx +0 -128
- package/src/components/__tests__/InlineDropdown.test.jsx +0 -557
- package/src/components/__tests__/InsertImageHandler.test.js +0 -161
- package/src/components/__tests__/MediaDialog.test.jsx +0 -293
- package/src/components/__tests__/MediaToolbar.test.jsx +0 -74
- package/src/components/__tests__/MediaWrapper.test.jsx +0 -81
- package/src/components/__tests__/MenuBar.test.jsx +0 -338
- package/src/components/__tests__/RespArea.test.jsx +0 -122
- package/src/components/__tests__/TableIcons.test.jsx +0 -149
- package/src/components/__tests__/TextAlign.test.jsx +0 -167
- package/src/components/__tests__/TiptapContainer.test.jsx +0 -138
- package/src/components/__tests__/characterUtils.test.js +0 -166
- package/src/components/__tests__/choice.test.jsx +0 -171
- package/src/components/__tests__/custom-popper.test.jsx +0 -82
- package/src/components/__tests__/done-button.test.jsx +0 -54
- package/src/components/__tests__/toolbar-buttons.test.jsx +0 -247
- package/src/components/respArea/DragInTheBlank/__tests__/choice.test.jsx +0 -72
- package/src/components/respArea/__tests__/MathTemplated.test.jsx +0 -210
- package/src/extensions/__tests__/css.test.js +0 -196
- package/src/extensions/__tests__/custom-toolbar-wrapper.test.jsx +0 -180
- package/src/extensions/__tests__/divNode.test.js +0 -87
- package/src/extensions/__tests__/ensure-empty-root-div.test.js +0 -57
- package/src/extensions/__tests__/ensure-list-item-content-is-div.test.js +0 -44
- package/src/extensions/__tests__/extended-list-item.test.js +0 -13
- package/src/extensions/__tests__/extended-table-cell.test.js +0 -22
- package/src/extensions/__tests__/extended-table.test.js +0 -183
- package/src/extensions/__tests__/image-component.test.jsx +0 -346
- package/src/extensions/__tests__/image.test.js +0 -237
- package/src/extensions/__tests__/math.test.js +0 -898
- package/src/extensions/__tests__/media-node-view.test.jsx +0 -298
- package/src/extensions/__tests__/media.test.js +0 -271
- package/src/extensions/__tests__/responseArea.test.js +0 -655
- package/src/utils/__tests__/helper.test.js +0 -126
- package/src/utils/__tests__/toolbar.test.js +0 -43
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextAlign.js","names":["_react","_interopRequireWildcard","require","_Collapse","_interopRequireDefault","_List","_ListItem","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","AlignLeft","exports","createElement","width","height","viewBox","fill","xmlns","focusable","d","AlignRight","AlignCenter","AlignJustify","_default","_ref","editor","onChange","_useState","useState","_useState2","_slicedToArray2","open","setOpen","icon","isActive","textAlign","applyAlignment","event","_event$currentTarget","alignType","currentTarget","getAttribute","commands","setTextAlign","onMouseDown","preventDefault","stopPropagation","style","display","alignItems","onClick","marginLeft","fontSize","timeout","unmountOnExit","position","component","disablePadding","background","flexDirection","padding","button","type","value"],"sources":["../../../src/components/icons/TextAlign.jsx"],"sourcesContent":["import React, { useState } from 'react';\nimport Collapse from '@mui/material/Collapse';\nimport List from '@mui/material/List';\nimport ListItem from '@mui/material/ListItem';\n\nexport const AlignLeft = () => (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 66 66\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path\n d=\"M42.1875 4.75C42.1875 7.38672 39.9902 9.4375 37.5 9.4375H4.6875C2.05078 9.4375 0 7.38672 0 4.75C0 2.25977 2.05078 0.0625 4.6875 0.0625H37.5C39.9902 0.0625 42.1875 2.25977 42.1875 4.75ZM42.1875 42.25C42.1875 44.8867 39.9902 46.9375 37.5 46.9375H4.6875C2.05078 46.9375 0 44.8867 0 42.25C0 39.7598 2.05078 37.5625 4.6875 37.5625H37.5C39.9902 37.5625 42.1875 39.7598 42.1875 42.25ZM0 23.5C0 21.0098 2.05078 18.8125 4.6875 18.8125H60.9375C63.4277 18.8125 65.625 21.0098 65.625 23.5C65.625 26.1367 63.4277 28.1875 60.9375 28.1875H4.6875C2.05078 28.1875 0 26.1367 0 23.5ZM65.625 61C65.625 63.6367 63.4277 65.6875 60.9375 65.6875H4.6875C2.05078 65.6875 0 63.6367 0 61C0 58.5098 2.05078 56.3125 4.6875 56.3125H60.9375C63.4277 56.3125 65.625 58.5098 65.625 61Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport const AlignRight = () => (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 66 66\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path\n d=\"M65.625 4.75C65.625 7.38672 63.4277 9.4375 60.9375 9.4375H28.125C25.4883 9.4375 23.4375 7.38672 23.4375 4.75C23.4375 2.25977 25.4883 0.0625 28.125 0.0625H60.9375C63.4277 0.0625 65.625 2.25977 65.625 4.75ZM65.625 42.25C65.625 44.8867 63.4277 46.9375 60.9375 46.9375H28.125C25.4883 46.9375 23.4375 44.8867 23.4375 42.25C23.4375 39.7598 25.4883 37.5625 28.125 37.5625H60.9375C63.4277 37.5625 65.625 39.7598 65.625 42.25ZM0 23.5C0 21.0098 2.05078 18.8125 4.6875 18.8125H60.9375C63.4277 18.8125 65.625 21.0098 65.625 23.5C65.625 26.1367 63.4277 28.1875 60.9375 28.1875H4.6875C2.05078 28.1875 0 26.1367 0 23.5ZM65.625 61C65.625 63.6367 63.4277 65.6875 60.9375 65.6875H4.6875C2.05078 65.6875 0 63.6367 0 61C0 58.5098 2.05078 56.3125 4.6875 56.3125H60.9375C63.4277 56.3125 65.625 58.5098 65.625 61Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport const AlignCenter = () => (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 66 66\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path\n d=\"M51.5625 4.75C51.5625 7.38672 49.3652 9.4375 46.875 9.4375H18.75C16.1133 9.4375 14.0625 7.38672 14.0625 4.75C14.0625 2.25977 16.1133 0.0625 18.75 0.0625H46.875C49.3652 0.0625 51.5625 2.25977 51.5625 4.75ZM65.625 23.5C65.625 26.1367 63.4277 28.1875 60.9375 28.1875H4.6875C2.05078 28.1875 0 26.1367 0 23.5C0 21.0098 2.05078 18.8125 4.6875 18.8125H60.9375C63.4277 18.8125 65.625 21.0098 65.625 23.5ZM0 61C0 58.5098 2.05078 56.3125 4.6875 56.3125H60.9375C63.4277 56.3125 65.625 58.5098 65.625 61C65.625 63.6367 63.4277 65.6875 60.9375 65.6875H4.6875C2.05078 65.6875 0 63.6367 0 61ZM51.5625 42.25C51.5625 44.8867 49.3652 46.9375 46.875 46.9375H18.75C16.1133 46.9375 14.0625 44.8867 14.0625 42.25C14.0625 39.7598 16.1133 37.5625 18.75 37.5625H46.875C49.3652 37.5625 51.5625 39.7598 51.5625 42.25Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport const AlignJustify = () => (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 66 66\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path\n d=\"M65.625 4.75C65.625 7.38672 63.4277 9.4375 60.9375 9.4375H4.6875C2.05078 9.4375 0 7.38672 0 4.75C0 2.25977 2.05078 0.0625 4.6875 0.0625H60.9375C63.4277 0.0625 65.625 2.25977 65.625 4.75ZM65.625 42.25C65.625 44.8867 63.4277 46.9375 60.9375 46.9375H4.6875C2.05078 46.9375 0 44.8867 0 42.25C0 39.7598 2.05078 37.5625 4.6875 37.5625H60.9375C63.4277 37.5625 65.625 39.7598 65.625 42.25ZM0 23.5C0 21.0098 2.05078 18.8125 4.6875 18.8125H60.9375C63.4277 18.8125 65.625 21.0098 65.625 23.5C65.625 26.1367 63.4277 28.1875 60.9375 28.1875H4.6875C2.05078 28.1875 0 26.1367 0 23.5ZM65.625 61C65.625 63.6367 63.4277 65.6875 60.9375 65.6875H4.6875C2.05078 65.6875 0 63.6367 0 61C0 58.5098 2.05078 56.3125 4.6875 56.3125H60.9375C63.4277 56.3125 65.625 58.5098 65.625 61Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default ({ editor, onChange }) => {\n const [open, setOpen] = useState(false);\n\n let icon;\n\n switch (true) {\n case editor.isActive({ textAlign: 'right' }):\n icon = <AlignRight />;\n break;\n case editor.isActive({ textAlign: 'center' }):\n icon = <AlignCenter />;\n break;\n case editor.isActive({ textAlign: 'justify' }):\n icon = <AlignJustify />;\n break;\n default:\n icon = <AlignLeft />;\n break;\n }\n\n const applyAlignment = (event) => {\n const alignType = event.currentTarget?.getAttribute('value');\n\n if (alignType) {\n editor.commands.setTextAlign(alignType);\n }\n\n setOpen(false);\n };\n\n const onMouseDown = (event) => {\n event.preventDefault();\n event.stopPropagation();\n setOpen(!open);\n };\n\n return (\n <div>\n <div style={{ display: 'flex', alignItems: 'center' }} onClick={onMouseDown}>\n {icon}\n <span style={{ marginLeft: '5px', fontSize: '8px' }} aria-hidden=\"true\">\n ▼\n </span>\n </div>\n <Collapse in={open} timeout=\"auto\" unmountOnExit style={{ position: 'absolute' }}>\n <List\n component=\"div\"\n disablePadding\n style={{\n background: '#fff',\n display: 'flex',\n flexDirection: 'row',\n padding: 0,\n }}\n >\n <ListItem button type=\"submit\" value=\"left\" aria-label=\"Align text left\" onClick={applyAlignment}>\n <AlignLeft />\n </ListItem>\n\n <ListItem button type=\"submit\" value=\"center\" aria-label=\"Align text center\" onClick={applyAlignment}>\n <AlignCenter />\n </ListItem>\n\n <ListItem button type=\"submit\" value=\"right\" aria-label=\"Align text right\" onClick={applyAlignment}>\n <AlignRight />\n </ListItem>\n\n <ListItem button type=\"submit\" value=\"justify\" aria-label=\"Justify text\" onClick={applyAlignment}>\n <AlignJustify />\n </ListItem>\n </List>\n </Collapse>\n </div>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"TextAlign.js","names":["_react","_interopRequireWildcard","require","_Collapse","_interopRequireDefault","_List","_ListItem","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","AlignLeft","exports","createElement","width","height","viewBox","fill","xmlns","d","AlignRight","AlignCenter","AlignJustify","_default","_ref","editor","onChange","_useState","useState","_useState2","_slicedToArray2","open","setOpen","icon","isActive","textAlign","applyAlignment","event","_event$currentTarget","alignType","currentTarget","getAttribute","commands","setTextAlign","onMouseDown","preventDefault","stopPropagation","style","display","alignItems","onClick","marginLeft","fontSize","timeout","unmountOnExit","position","component","disablePadding","background","flexDirection","padding","button","type","value"],"sources":["../../../src/components/icons/TextAlign.jsx"],"sourcesContent":["import React, { useState } from 'react';\nimport Collapse from '@mui/material/Collapse';\nimport List from '@mui/material/List';\nimport ListItem from '@mui/material/ListItem';\n\nexport const AlignLeft = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 66 66\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M42.1875 4.75C42.1875 7.38672 39.9902 9.4375 37.5 9.4375H4.6875C2.05078 9.4375 0 7.38672 0 4.75C0 2.25977 2.05078 0.0625 4.6875 0.0625H37.5C39.9902 0.0625 42.1875 2.25977 42.1875 4.75ZM42.1875 42.25C42.1875 44.8867 39.9902 46.9375 37.5 46.9375H4.6875C2.05078 46.9375 0 44.8867 0 42.25C0 39.7598 2.05078 37.5625 4.6875 37.5625H37.5C39.9902 37.5625 42.1875 39.7598 42.1875 42.25ZM0 23.5C0 21.0098 2.05078 18.8125 4.6875 18.8125H60.9375C63.4277 18.8125 65.625 21.0098 65.625 23.5C65.625 26.1367 63.4277 28.1875 60.9375 28.1875H4.6875C2.05078 28.1875 0 26.1367 0 23.5ZM65.625 61C65.625 63.6367 63.4277 65.6875 60.9375 65.6875H4.6875C2.05078 65.6875 0 63.6367 0 61C0 58.5098 2.05078 56.3125 4.6875 56.3125H60.9375C63.4277 56.3125 65.625 58.5098 65.625 61Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport const AlignRight = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 66 66\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M65.625 4.75C65.625 7.38672 63.4277 9.4375 60.9375 9.4375H28.125C25.4883 9.4375 23.4375 7.38672 23.4375 4.75C23.4375 2.25977 25.4883 0.0625 28.125 0.0625H60.9375C63.4277 0.0625 65.625 2.25977 65.625 4.75ZM65.625 42.25C65.625 44.8867 63.4277 46.9375 60.9375 46.9375H28.125C25.4883 46.9375 23.4375 44.8867 23.4375 42.25C23.4375 39.7598 25.4883 37.5625 28.125 37.5625H60.9375C63.4277 37.5625 65.625 39.7598 65.625 42.25ZM0 23.5C0 21.0098 2.05078 18.8125 4.6875 18.8125H60.9375C63.4277 18.8125 65.625 21.0098 65.625 23.5C65.625 26.1367 63.4277 28.1875 60.9375 28.1875H4.6875C2.05078 28.1875 0 26.1367 0 23.5ZM65.625 61C65.625 63.6367 63.4277 65.6875 60.9375 65.6875H4.6875C2.05078 65.6875 0 63.6367 0 61C0 58.5098 2.05078 56.3125 4.6875 56.3125H60.9375C63.4277 56.3125 65.625 58.5098 65.625 61Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport const AlignCenter = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 66 66\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M51.5625 4.75C51.5625 7.38672 49.3652 9.4375 46.875 9.4375H18.75C16.1133 9.4375 14.0625 7.38672 14.0625 4.75C14.0625 2.25977 16.1133 0.0625 18.75 0.0625H46.875C49.3652 0.0625 51.5625 2.25977 51.5625 4.75ZM65.625 23.5C65.625 26.1367 63.4277 28.1875 60.9375 28.1875H4.6875C2.05078 28.1875 0 26.1367 0 23.5C0 21.0098 2.05078 18.8125 4.6875 18.8125H60.9375C63.4277 18.8125 65.625 21.0098 65.625 23.5ZM0 61C0 58.5098 2.05078 56.3125 4.6875 56.3125H60.9375C63.4277 56.3125 65.625 58.5098 65.625 61C65.625 63.6367 63.4277 65.6875 60.9375 65.6875H4.6875C2.05078 65.6875 0 63.6367 0 61ZM51.5625 42.25C51.5625 44.8867 49.3652 46.9375 46.875 46.9375H18.75C16.1133 46.9375 14.0625 44.8867 14.0625 42.25C14.0625 39.7598 16.1133 37.5625 18.75 37.5625H46.875C49.3652 37.5625 51.5625 39.7598 51.5625 42.25Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport const AlignJustify = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 66 66\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M65.625 4.75C65.625 7.38672 63.4277 9.4375 60.9375 9.4375H4.6875C2.05078 9.4375 0 7.38672 0 4.75C0 2.25977 2.05078 0.0625 4.6875 0.0625H60.9375C63.4277 0.0625 65.625 2.25977 65.625 4.75ZM65.625 42.25C65.625 44.8867 63.4277 46.9375 60.9375 46.9375H4.6875C2.05078 46.9375 0 44.8867 0 42.25C0 39.7598 2.05078 37.5625 4.6875 37.5625H60.9375C63.4277 37.5625 65.625 39.7598 65.625 42.25ZM0 23.5C0 21.0098 2.05078 18.8125 4.6875 18.8125H60.9375C63.4277 18.8125 65.625 21.0098 65.625 23.5C65.625 26.1367 63.4277 28.1875 60.9375 28.1875H4.6875C2.05078 28.1875 0 26.1367 0 23.5ZM65.625 61C65.625 63.6367 63.4277 65.6875 60.9375 65.6875H4.6875C2.05078 65.6875 0 63.6367 0 61C0 58.5098 2.05078 56.3125 4.6875 56.3125H60.9375C63.4277 56.3125 65.625 58.5098 65.625 61Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default ({ editor, onChange }) => {\n const [open, setOpen] = useState(false);\n\n let icon;\n\n switch (true) {\n case editor.isActive({ textAlign: 'right' }):\n icon = <AlignRight />;\n break;\n case editor.isActive({ textAlign: 'center' }):\n icon = <AlignCenter />;\n break;\n case editor.isActive({ textAlign: 'justify' }):\n icon = <AlignJustify />;\n break;\n default:\n icon = <AlignLeft />;\n break;\n }\n\n const applyAlignment = (event) => {\n const alignType = event.currentTarget?.getAttribute('value');\n\n if (alignType) {\n editor.commands.setTextAlign(alignType);\n }\n\n setOpen(false);\n };\n\n const onMouseDown = (event) => {\n event.preventDefault();\n event.stopPropagation();\n setOpen(!open);\n };\n\n return (\n <div>\n <div style={{ display: 'flex', alignItems: 'center' }} onClick={onMouseDown}>\n {icon}\n <span style={{ marginLeft: '5px', fontSize: '8px' }}>▼</span>\n </div>\n <Collapse in={open} timeout=\"auto\" unmountOnExit style={{ position: 'absolute' }}>\n <List\n component=\"div\"\n disablePadding\n style={{\n background: '#fff',\n display: 'flex',\n flexDirection: 'row',\n padding: 0,\n }}\n >\n <ListItem button type=\"submit\" value=\"left\" aria-label=\"Align text left\" onClick={applyAlignment}>\n <AlignLeft />\n </ListItem>\n\n <ListItem button type=\"submit\" value=\"center\" aria-label=\"Align text center\" onClick={applyAlignment}>\n <AlignCenter />\n </ListItem>\n\n <ListItem button type=\"submit\" value=\"right\" aria-label=\"Align text right\" onClick={applyAlignment}>\n <AlignRight />\n </ListItem>\n\n <ListItem button type=\"submit\" value=\"justify\" aria-label=\"Justify text\" onClick={applyAlignment}>\n <AlignJustify />\n </ListItem>\n </List>\n </Collapse>\n </div>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,18 +8,12 @@ exports["default"] = void 0;
|
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
10
|
var _react2 = require("@tiptap/react");
|
|
11
|
-
var
|
|
11
|
+
var _mathInputMathlive = require("@pie-lib/math-input-mathlive");
|
|
12
12
|
var _styles = require("@mui/material/styles");
|
|
13
|
-
var _renderUi = require("@pie-lib/render-ui");
|
|
14
13
|
var StyledSpanContainer = (0, _styles.styled)('span')(function () {
|
|
15
14
|
return {
|
|
16
15
|
display: 'inline-flex',
|
|
17
|
-
|
|
18
|
-
* #C0C3CF is `--pie-blue-grey-300`'s default value, but that token is a fill: it
|
|
19
|
-
* measures 1.00:1 against black-on-rose's own background. The box outline is what
|
|
20
|
-
* marks the response slot in running text, so it takes the stroke token instead.
|
|
21
|
-
*/
|
|
22
|
-
border: "1px solid ".concat(_renderUi.color.border()),
|
|
16
|
+
border: '1px solid #C0C3CF',
|
|
23
17
|
margin: '1px 5px',
|
|
24
18
|
cursor: 'pointer',
|
|
25
19
|
alignItems: 'center',
|
|
@@ -29,13 +23,13 @@ var StyledSpanContainer = (0, _styles.styled)('span')(function () {
|
|
|
29
23
|
height: 'fit-content'
|
|
30
24
|
};
|
|
31
25
|
});
|
|
32
|
-
var StyledResponseBox = (0, _styles.styled)('div')(function () {
|
|
26
|
+
var StyledResponseBox = (0, _styles.styled)('div')(function (_ref) {
|
|
27
|
+
var theme = _ref.theme;
|
|
33
28
|
return {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
color: _renderUi.color.text(),
|
|
29
|
+
background: theme.palette.grey['A100'],
|
|
30
|
+
color: theme.palette.grey['A700'],
|
|
37
31
|
display: 'inline-flex',
|
|
38
|
-
borderRight:
|
|
32
|
+
borderRight: '2px solid #C0C3CF',
|
|
39
33
|
boxSizing: 'border-box',
|
|
40
34
|
overflow: 'hidden',
|
|
41
35
|
fontSize: '12px',
|
|
@@ -123,7 +117,7 @@ var MathTemplated = function MathTemplated(props) {
|
|
|
123
117
|
minWidth: '50px',
|
|
124
118
|
cursor: 'pointer'
|
|
125
119
|
}
|
|
126
|
-
}, /*#__PURE__*/_react["default"].createElement(StyledSpanContainer, attributes, /*#__PURE__*/_react["default"].createElement(StyledResponseBox, null, keyToDisplay), /*#__PURE__*/_react["default"].createElement(StyledMathBlock, null, /*#__PURE__*/_react["default"].createElement(
|
|
120
|
+
}, /*#__PURE__*/_react["default"].createElement(StyledSpanContainer, attributes, /*#__PURE__*/_react["default"].createElement(StyledResponseBox, null, keyToDisplay), /*#__PURE__*/_react["default"].createElement(StyledMathBlock, null, /*#__PURE__*/_react["default"].createElement(_mathInputMathlive.mq.Static, {
|
|
127
121
|
latex: value
|
|
128
122
|
}))));
|
|
129
123
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MathTemplated.js","names":["_react","_interopRequireDefault","require","_propTypes","_react2","
|
|
1
|
+
{"version":3,"file":"MathTemplated.js","names":["_react","_interopRequireDefault","require","_propTypes","_react2","_mathInputMathlive","_styles","StyledSpanContainer","styled","display","border","margin","cursor","alignItems","justifyContent","minWidth","minHeight","height","StyledResponseBox","_ref","theme","background","palette","grey","color","borderRight","boxSizing","overflow","fontSize","fontFamily","padding","StyledMathBlock","flex","backgroundColor","verticalAlign","borderTop","marginLeft","marginTop","paddingTop","lineHeight","top","left","position","right","MathTemplated","props","node","options","selected","attributes","attrs","value","index","keyToDisplay","concat","parseInt","createElement","NodeViewWrapper","className","style","mq","Static","latex","propTypes","PropTypes","object","string","_default","exports"],"sources":["../../../src/components/respArea/MathTemplated.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { NodeViewWrapper } from '@tiptap/react';\nimport { mq } from '@pie-lib/math-input-mathlive';\nimport { styled } from '@mui/material/styles';\n\nconst StyledSpanContainer = styled('span')(() => ({\n display: 'inline-flex',\n border: '1px solid #C0C3CF',\n margin: '1px 5px',\n cursor: 'pointer',\n alignItems: 'center',\n justifyContent: 'center',\n minWidth: '50px',\n minHeight: '36px',\n height: 'fit-content',\n}));\n\nconst StyledResponseBox = styled('div')(({ theme }) => ({\n background: theme.palette.grey['A100'],\n color: theme.palette.grey['A700'],\n display: 'inline-flex',\n borderRight: '2px solid #C0C3CF',\n boxSizing: 'border-box',\n overflow: 'hidden',\n fontSize: '12px',\n minHeight: '36px',\n height: '100%',\n alignItems: 'center',\n fontFamily: 'Symbola, Times New Roman, serif',\n padding: '0 2px',\n}));\n\nconst StyledMathBlock = styled('div')(() => ({\n flex: 8,\n color: 'var(--pie-text, black)',\n padding: '4px !important',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: 'var(--pie-background, rgba(255, 255, 255, 0))',\n '& > .mq-math-mode sup.mq-nthroot': {\n fontSize: '70% !important',\n verticalAlign: '1em !important',\n },\n '& > .mq-math-mode .mq-sqrt-stem': {\n borderTop: '0.07em solid',\n marginLeft: '-1.5px',\n marginTop: '-2px !important',\n paddingTop: '5px !important',\n },\n '& .mq-overarrow-inner': {\n paddingTop: '0 !important',\n border: 'none !important',\n },\n '& .mq-overarrow.mq-arrow-both': {\n marginTop: '0px',\n minWidth: '1.23em',\n '& *': {\n lineHeight: '1 !important',\n },\n '&:before': {\n top: '-0.4em',\n left: '-1px',\n },\n '&:after': {\n top: '0px !important',\n position: 'absolute !important',\n right: '-2px',\n },\n '&.mq-empty:after': {\n top: '-0.45em',\n },\n },\n '& .mq-overarrow.mq-arrow-right': {\n '&:before': {\n top: '-0.4em',\n right: '-1px',\n },\n },\n '& .mq-overarrow-inner-right': {\n display: 'none !important',\n },\n '& .mq-overarrow-inner-left': {\n display: 'none !important',\n },\n}));\nconst MathTemplated = (props) => {\n const { node, options, selected } = props;\n const { attrs: attributes } = node;\n const { value, index } = attributes;\n\n // add 1 to index to display R 1 instead of R 0\n const keyToDisplay = `R ${parseInt(index) + 1}`;\n\n // console.log({nodeProps.children})\n return (\n <NodeViewWrapper\n className=\"math-templated\"\n data-selected={selected}\n style={{\n display: 'inline-flex',\n minHeight: '36px',\n minWidth: '50px',\n cursor: 'pointer',\n }}\n >\n <StyledSpanContainer {...attributes}>\n <StyledResponseBox>{keyToDisplay}</StyledResponseBox>\n <StyledMathBlock>\n <mq.Static latex={value} />\n </StyledMathBlock>\n </StyledSpanContainer>\n </NodeViewWrapper>\n );\n};\n\nMathTemplated.propTypes = {\n attributes: PropTypes.object,\n value: PropTypes.string,\n keyToDisplay: PropTypes.string,\n};\n\nexport default MathTemplated;\n"],"mappings":"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","ignoreList":[]}
|
package/lib/extensions/math.js
CHANGED
|
@@ -13,6 +13,7 @@ var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
|
13
13
|
var _core = require("@tiptap/core");
|
|
14
14
|
var _react2 = require("@tiptap/react");
|
|
15
15
|
var _prosemirrorState = require("prosemirror-state");
|
|
16
|
+
var _styles = require("@mui/material/styles");
|
|
16
17
|
var _mathToolbar = require("@pie-lib/math-toolbar");
|
|
17
18
|
var _mathRendering = require("@pie-lib/math-rendering");
|
|
18
19
|
var _toolbar = require("../utils/toolbar");
|
|
@@ -120,6 +121,25 @@ var ZeroWidthSpaceHandlingPlugin = exports.ZeroWidthSpaceHandlingPlugin = new _p
|
|
|
120
121
|
}
|
|
121
122
|
}
|
|
122
123
|
});
|
|
124
|
+
var StyledMathNodeWrapper = (0, _styles.styled)(_react2.NodeViewWrapper, {
|
|
125
|
+
shouldForwardProp: function shouldForwardProp(prop) {
|
|
126
|
+
return prop !== 'selected';
|
|
127
|
+
}
|
|
128
|
+
})(function (_ref) {
|
|
129
|
+
var theme = _ref.theme,
|
|
130
|
+
selected = _ref.selected;
|
|
131
|
+
return _objectSpread({
|
|
132
|
+
display: 'inline-flex',
|
|
133
|
+
cursor: 'pointer',
|
|
134
|
+
margin: '0 4px',
|
|
135
|
+
'&:not(:has(.ML__latex))': {
|
|
136
|
+
border: 'solid 1px lightgrey',
|
|
137
|
+
padding: '5px'
|
|
138
|
+
}
|
|
139
|
+
}, selected && {
|
|
140
|
+
border: "solid 1px ".concat(theme.palette.primary.main)
|
|
141
|
+
});
|
|
142
|
+
});
|
|
123
143
|
var MathNode = exports.MathNode = _core.Node.create({
|
|
124
144
|
name: 'math',
|
|
125
145
|
group: 'inline',
|
|
@@ -163,11 +183,11 @@ var MathNode = exports.MathNode = _core.Node.create({
|
|
|
163
183
|
return {
|
|
164
184
|
insertMath: function insertMath() {
|
|
165
185
|
var latex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
166
|
-
return function (
|
|
186
|
+
return function (_ref2) {
|
|
167
187
|
var _node$type;
|
|
168
|
-
var tr =
|
|
169
|
-
editor =
|
|
170
|
-
dispatch =
|
|
188
|
+
var tr = _ref2.tr,
|
|
189
|
+
editor = _ref2.editor,
|
|
190
|
+
dispatch = _ref2.dispatch;
|
|
171
191
|
var state = editor.view.state;
|
|
172
192
|
var node = state.schema.nodes.math.create({
|
|
173
193
|
latex: latex
|
|
@@ -191,8 +211,8 @@ var MathNode = exports.MathNode = _core.Node.create({
|
|
|
191
211
|
}
|
|
192
212
|
};
|
|
193
213
|
},
|
|
194
|
-
renderHTML: function renderHTML(
|
|
195
|
-
var HTMLAttributes =
|
|
214
|
+
renderHTML: function renderHTML(_ref3) {
|
|
215
|
+
var HTMLAttributes = _ref3.HTMLAttributes;
|
|
196
216
|
if (HTMLAttributes.html) {
|
|
197
217
|
return ['span', {
|
|
198
218
|
'data-type': 'mathml',
|
|
@@ -236,9 +256,9 @@ var MathNodeView = exports.MathNodeView = function MathNodeView(props) {
|
|
|
236
256
|
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
237
257
|
position = _useState4[0],
|
|
238
258
|
setPosition = _useState4[1];
|
|
239
|
-
var
|
|
240
|
-
|
|
241
|
-
mathOptions =
|
|
259
|
+
var _ref4 = options || {},
|
|
260
|
+
_ref4$math = _ref4.math,
|
|
261
|
+
mathOptions = _ref4$math === void 0 ? {} : _ref4$math;
|
|
242
262
|
var keypadMode = mathOptions.keypadMode,
|
|
243
263
|
_mathOptions$controll = mathOptions.controlledKeypadMode,
|
|
244
264
|
controlledKeypadMode = _mathOptions$controll === void 0 ? true : _mathOptions$controll,
|
|
@@ -265,9 +285,9 @@ var MathNodeView = exports.MathNodeView = function MathNodeView(props) {
|
|
|
265
285
|
// open (see handleClickOutside): leave the cursor where the user
|
|
266
286
|
// actually clicked instead of overriding it.
|
|
267
287
|
var handleDone = function handleDone(newLatex) {
|
|
268
|
-
var
|
|
269
|
-
|
|
270
|
-
moveCursorAfterNode =
|
|
288
|
+
var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
289
|
+
_ref5$moveCursorAfter = _ref5.moveCursorAfterNode,
|
|
290
|
+
moveCursorAfterNode = _ref5$moveCursorAfter === void 0 ? true : _ref5$moveCursorAfter;
|
|
271
291
|
updateAttributes({
|
|
272
292
|
latex: newLatex
|
|
273
293
|
});
|
|
@@ -409,13 +429,9 @@ var MathNodeView = exports.MathNodeView = function MathNodeView(props) {
|
|
|
409
429
|
return document.removeEventListener('click', handleClickOutside);
|
|
410
430
|
};
|
|
411
431
|
}, [editor, showToolbar, node]);
|
|
412
|
-
return /*#__PURE__*/_react["default"].createElement(
|
|
432
|
+
return /*#__PURE__*/_react["default"].createElement(StyledMathNodeWrapper, {
|
|
413
433
|
className: "math-node-".concat(timestamp.current),
|
|
414
|
-
|
|
415
|
-
display: 'inline-flex',
|
|
416
|
-
cursor: 'pointer',
|
|
417
|
-
margin: '0 4px'
|
|
418
|
-
},
|
|
434
|
+
selected: selected,
|
|
419
435
|
"data-selected": selected
|
|
420
436
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
421
437
|
ref: nodeRef,
|
|
@@ -424,7 +440,9 @@ var MathNodeView = exports.MathNodeView = function MathNodeView(props) {
|
|
|
424
440
|
},
|
|
425
441
|
contentEditable: false
|
|
426
442
|
}, /*#__PURE__*/_react["default"].createElement(_mathToolbar.MathPreview, {
|
|
427
|
-
latex: latex
|
|
443
|
+
latex: latex,
|
|
444
|
+
isSelected: selected,
|
|
445
|
+
outlineOnWrapper: true
|
|
428
446
|
})), showToolbar && /*#__PURE__*/_reactDom["default"].createPortal(/*#__PURE__*/_react["default"].createElement("div", {
|
|
429
447
|
ref: toolbarRef,
|
|
430
448
|
"data-toolbar-for": editor.instanceId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"math.js","names":["_react","_interopRequireWildcard","require","_reactDom","_interopRequireDefault","_core","_react2","_prosemirrorState","_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","MathNode","Node","group","inline","atom","addAttributes","wrapper","html","addProseMirrorPlugins","parseHTML","tag","getAttrs","el","getAttribute","innerHTML","addCommands","_this","insertMath","_ref","_node$type","editor","nodes","math","$from","sel","setToolbarOpened","renderHTML","_ref2","HTMLAttributes","dangerouslySetInnerHTML","__html","wrapMath","addNodeView","_this2","ReactNodeViewRenderer","createElement","MathNodeView","options","updateAttributes","selected","getPos","_useState","useState","_useState2","_slicedToArray2","showToolbar","setShowToolbar","toolbarRef","useRef","nodeRef","timestamp","Date","now","_useState3","top","left","_useState4","position","setPosition","_ref3","_ref3$math","mathOptions","keypadMode","_mathOptions$controll","controlledKeypadMode","_mathOptions$customKe","customKeys","keyPadCharacterRef","setKeypadInteraction","attrs","handleChange","newLatex","handleDone","_ref4","_ref4$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","margin","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","concat","contains","_editor$view","clickedInsideEditableContent","dom","NodeViewWrapper","className","style","display","cursor","ref","onClick","contentEditable","MathPreview","ReactDOM","createPortal","instanceId","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 { 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\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 <NodeViewWrapper\n className={`math-node-${timestamp.current}`}\n style={{\n display: 'inline-flex',\n cursor: 'pointer',\n margin: '0 4px',\n }}\n data-selected={selected}\n >\n <div ref={nodeRef} onClick={() => setShowToolbar(true)} contentEditable={false}>\n <MathPreview latex={latex} />\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 </NodeViewWrapper>\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":[]}
|
|
@@ -92,14 +92,14 @@ var styles = function styles(theme) {
|
|
|
92
92
|
backgroundColor: _renderUi.color.background()
|
|
93
93
|
},
|
|
94
94
|
'& table:not([border="1"]) tr': {
|
|
95
|
-
borderTop:
|
|
95
|
+
borderTop: '1px solid #dfe2e5'
|
|
96
96
|
},
|
|
97
97
|
'& td, th': {
|
|
98
98
|
padding: '.6em 1em',
|
|
99
99
|
textAlign: 'center'
|
|
100
100
|
},
|
|
101
101
|
'& table:not([border="1"]) td, th': {
|
|
102
|
-
border:
|
|
102
|
+
border: '1px solid #dfe2e5'
|
|
103
103
|
}
|
|
104
104
|
},
|
|
105
105
|
children: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editorContainerStyles.js","names":["_renderUi","require","styles","theme","root","position","padding","border","borderRadius","cursor","wordBreak","overflow","maxHeight","marginTop","margin","marginBottom","lineHeight","textWrap","fontSize","backgroundColor","color","background","fontFamily","borderLeft","borderTop","tableLayout","width","borderCollapse","text","
|
|
1
|
+
{"version":3,"file":"editorContainerStyles.js","names":["_renderUi","require","styles","theme","root","position","padding","border","borderRadius","cursor","wordBreak","overflow","maxHeight","marginTop","margin","marginBottom","lineHeight","textWrap","fontSize","backgroundColor","color","background","fontFamily","borderLeft","borderTop","tableLayout","width","borderCollapse","text","textAlign","children","editorHolder","overflowY","disabledScrollbar","display","scrollbarWidth","error","concat","palette","main","noBorder","noPadding","toolbarOnTop","_default","exports"],"sources":["../../src/styles/editorContainerStyles.js"],"sourcesContent":["import { color } from '@pie-lib/render-ui';\n\nconst styles = (theme) => ({\n root: {\n position: 'relative',\n padding: '0px',\n border: '1px solid #ccc',\n borderRadius: '4px',\n cursor: 'text',\n '& [data-slate-editor=\"true\"]': {\n wordBreak: 'break-word',\n overflow: 'visible',\n maxHeight: '500px',\n // needed in order to be able to put the focus before a void element when it is the first one in the editor\n padding: '5px',\n },\n\n '&:first-child': {\n marginTop: 0,\n },\n\n '& ul, & ol': {\n padding: '0 1rem',\n margin: '1.25rem 1rem 1.25rem 0.4rem',\n },\n\n '& ul li p, & ol li p': {\n marginTop: '0.25em',\n marginBottom: '0.25em',\n },\n\n '& h1, & h2, & h3, & h4, & h5, & h6': {\n lineHeight: 1.1,\n marginTop: '2.5rem',\n textWrap: 'pretty',\n },\n\n '& h1, & h2': {\n marginTop: '3.5rem',\n marginBottom: '1.5rem',\n },\n\n '& h1': {\n fontSize: '1.4rem',\n },\n\n '& h2': {\n fontSize: '1.2rem',\n },\n\n '& h3': {\n fontSize: '1.1rem',\n },\n\n '& h4, & h5, & h6': {\n fontSize: '1rem',\n },\n\n '& code': {\n backgroundColor: 'var(--purple-light)',\n borderRadius: '0.4rem',\n color: 'var(--black)',\n fontSize: '0.85rem',\n padding: '0.25em 0.3em',\n },\n\n '& pre': {\n background: 'var(--black)',\n borderRadius: '0.5rem',\n color: 'var(--white)',\n fontFamily: '\\'JetBrainsMono\\', monospace',\n margin: '1.5rem 0',\n padding: '0.75rem 1rem',\n\n '& code': {\n background: 'none',\n color: 'inherit',\n fontSize: '0.8rem',\n padding: 0,\n },\n },\n\n '& blockquote': {\n background: '#f9f9f9',\n borderLeft: '5px solid #ccc',\n margin: '1.5em 10px',\n padding: '.5em 10px',\n },\n\n '& hr': {\n border: 'none',\n borderTop: '1px solid var(--gray-2)',\n margin: '2rem 0',\n },\n\n '& table': {\n tableLayout: 'fixed',\n width: '100%',\n borderCollapse: 'collapse',\n color: color.text(),\n backgroundColor: color.background(),\n },\n '& table:not([border=\"1\"]) tr': {\n borderTop: '1px solid #dfe2e5',\n },\n '& td, th': {\n padding: '.6em 1em',\n textAlign: 'center',\n },\n '& table:not([border=\"1\"]) td, th': {\n border: '1px solid #dfe2e5',\n },\n },\n children: {\n padding: '10px 16px',\n },\n editorHolder: {\n position: 'relative',\n padding: '0px',\n overflowY: 'auto',\n color: color.text(),\n backgroundColor: color.background(),\n },\n disabledScrollbar: {\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n scrollbarWidth: 'none',\n '-ms-overflow-style': 'none',\n },\n error: {\n border: `2px solid ${theme.palette.error.main} !important`,\n },\n noBorder: {\n border: 'none',\n },\n noPadding: {\n padding: 0,\n },\n toolbarOnTop: {\n marginTop: '45px',\n },\n});\n\nexport default styles;\n"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAEA,IAAMC,MAAM,GAAG,SAATA,MAAMA,CAAIC,KAAK;EAAA,OAAM;IACzBC,IAAI,EAAE;MACJC,QAAQ,EAAE,UAAU;MACpBC,OAAO,EAAE,KAAK;MACdC,MAAM,EAAE,gBAAgB;MACxBC,YAAY,EAAE,KAAK;MACnBC,MAAM,EAAE,MAAM;MACd,8BAA8B,EAAE;QAC9BC,SAAS,EAAE,YAAY;QACvBC,QAAQ,EAAE,SAAS;QACnBC,SAAS,EAAE,OAAO;QAClB;QACAN,OAAO,EAAE;MACX,CAAC;MAED,eAAe,EAAE;QACfO,SAAS,EAAE;MACb,CAAC;MAED,YAAY,EAAE;QACZP,OAAO,EAAE,QAAQ;QACjBQ,MAAM,EAAE;MACV,CAAC;MAED,sBAAsB,EAAE;QACtBD,SAAS,EAAE,QAAQ;QACnBE,YAAY,EAAE;MAChB,CAAC;MAED,oCAAoC,EAAE;QACpCC,UAAU,EAAE,GAAG;QACfH,SAAS,EAAE,QAAQ;QACnBI,QAAQ,EAAE;MACZ,CAAC;MAED,YAAY,EAAE;QACZJ,SAAS,EAAE,QAAQ;QACnBE,YAAY,EAAE;MAChB,CAAC;MAED,MAAM,EAAE;QACNG,QAAQ,EAAE;MACZ,CAAC;MAED,MAAM,EAAE;QACNA,QAAQ,EAAE;MACZ,CAAC;MAED,MAAM,EAAE;QACNA,QAAQ,EAAE;MACZ,CAAC;MAED,kBAAkB,EAAE;QAClBA,QAAQ,EAAE;MACZ,CAAC;MAED,QAAQ,EAAE;QACRC,eAAe,EAAE,qBAAqB;QACtCX,YAAY,EAAE,QAAQ;QACtBY,KAAK,EAAE,cAAc;QACrBF,QAAQ,EAAE,SAAS;QACnBZ,OAAO,EAAE;MACX,CAAC;MAED,OAAO,EAAE;QACPe,UAAU,EAAE,cAAc;QAC1Bb,YAAY,EAAE,QAAQ;QACtBY,KAAK,EAAE,cAAc;QACrBE,UAAU,EAAE,8BAA8B;QAC1CR,MAAM,EAAE,UAAU;QAClBR,OAAO,EAAE,cAAc;QAEvB,QAAQ,EAAE;UACRe,UAAU,EAAE,MAAM;UAClBD,KAAK,EAAE,SAAS;UAChBF,QAAQ,EAAE,QAAQ;UAClBZ,OAAO,EAAE;QACX;MACF,CAAC;MAED,cAAc,EAAE;QACde,UAAU,EAAE,SAAS;QACrBE,UAAU,EAAE,gBAAgB;QAC5BT,MAAM,EAAE,YAAY;QACpBR,OAAO,EAAE;MACX,CAAC;MAED,MAAM,EAAE;QACNC,MAAM,EAAE,MAAM;QACdiB,SAAS,EAAE,yBAAyB;QACpCV,MAAM,EAAE;MACV,CAAC;MAED,SAAS,EAAE;QACTW,WAAW,EAAE,OAAO;QACpBC,KAAK,EAAE,MAAM;QACbC,cAAc,EAAE,UAAU;QAC1BP,KAAK,EAAEA,eAAK,CAACQ,IAAI,CAAC,CAAC;QACnBT,eAAe,EAAEC,eAAK,CAACC,UAAU,CAAC;MACpC,CAAC;MACD,8BAA8B,EAAE;QAC9BG,SAAS,EAAE;MACb,CAAC;MACD,UAAU,EAAE;QACVlB,OAAO,EAAE,UAAU;QACnBuB,SAAS,EAAE;MACb,CAAC;MACD,kCAAkC,EAAE;QAClCtB,MAAM,EAAE;MACV;IACF,CAAC;IACDuB,QAAQ,EAAE;MACRxB,OAAO,EAAE;IACX,CAAC;IACDyB,YAAY,EAAE;MACZ1B,QAAQ,EAAE,UAAU;MACpBC,OAAO,EAAE,KAAK;MACd0B,SAAS,EAAE,MAAM;MACjBZ,KAAK,EAAEA,eAAK,CAACQ,IAAI,CAAC,CAAC;MACnBT,eAAe,EAAEC,eAAK,CAACC,UAAU,CAAC;IACpC,CAAC;IACDY,iBAAiB,EAAE;MACjB,sBAAsB,EAAE;QACtBC,OAAO,EAAE;MACX,CAAC;MACDC,cAAc,EAAE,MAAM;MACtB,oBAAoB,EAAE;IACxB,CAAC;IACDC,KAAK,EAAE;MACL7B,MAAM,eAAA8B,MAAA,CAAelC,KAAK,CAACmC,OAAO,CAACF,KAAK,CAACG,IAAI;IAC/C,CAAC;IACDC,QAAQ,EAAE;MACRjC,MAAM,EAAE;IACV,CAAC;IACDkC,SAAS,EAAE;MACTnC,OAAO,EAAE;IACX,CAAC;IACDoC,YAAY,EAAE;MACZ7B,SAAS,EAAE;IACb;EACF,CAAC;AAAA,CAAC;AAAC,IAAA8B,QAAA,GAAAC,OAAA,cAEY1C,MAAM","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "2.1.
|
|
6
|
+
"version": "2.1.20-beta.2",
|
|
7
7
|
"description": "",
|
|
8
8
|
"license": "ISC",
|
|
9
9
|
"main": "lib/index.js",
|
|
@@ -16,11 +16,11 @@
|
|
|
16
16
|
"@dnd-kit/utilities": "3.2.2",
|
|
17
17
|
"@mui/icons-material": "^7.3.4",
|
|
18
18
|
"@mui/material": "^7.3.4",
|
|
19
|
-
"@pie-lib/drag": "^4.
|
|
20
|
-
"@pie-lib/math-input": "^
|
|
21
|
-
"@pie-lib/math-rendering": "^5.
|
|
22
|
-
"@pie-lib/math-toolbar": "^3.0.
|
|
23
|
-
"@pie-lib/render-ui": "^
|
|
19
|
+
"@pie-lib/drag": "^4.0.2",
|
|
20
|
+
"@pie-lib/math-input-mathlive": "^1.1.5-beta.2",
|
|
21
|
+
"@pie-lib/math-rendering": "^5.0.2",
|
|
22
|
+
"@pie-lib/math-toolbar": "^3.0.11-beta.2",
|
|
23
|
+
"@pie-lib/render-ui": "^6.1.0",
|
|
24
24
|
"@tiptap/core": "3.20.0",
|
|
25
25
|
"@tiptap/extension-character-count": "3.20.0",
|
|
26
26
|
"@tiptap/extension-color": "3.20.0",
|
|
@@ -32,10 +32,10 @@
|
|
|
32
32
|
"@tiptap/extension-table": "3.20.0",
|
|
33
33
|
"@tiptap/extension-table-cell": "3.20.0",
|
|
34
34
|
"@tiptap/extension-table-header": "3.20.0",
|
|
35
|
-
"@tiptap/extension-table-row": "3.
|
|
35
|
+
"@tiptap/extension-table-row": "3.20.0",
|
|
36
36
|
"@tiptap/extension-text-align": "3.20.0",
|
|
37
37
|
"@tiptap/extension-text-style": "3.20.0",
|
|
38
|
-
"@tiptap/pm": "3.
|
|
38
|
+
"@tiptap/pm": "3.20.0",
|
|
39
39
|
"@tiptap/react": "3.20.0",
|
|
40
40
|
"@tiptap/starter-kit": "3.20.0",
|
|
41
41
|
"change-case": "^3.0.2",
|
|
@@ -59,6 +59,6 @@
|
|
|
59
59
|
"peerDependencies": {
|
|
60
60
|
"react": "^18.2.0"
|
|
61
61
|
},
|
|
62
|
-
"gitHead": "
|
|
62
|
+
"gitHead": "433bcb776c2975739e7417f133d31cd996164116",
|
|
63
63
|
"scripts": {}
|
|
64
64
|
}
|