@pie-lib/editable-html-tip-tap 1.2.0-next.16 → 1.2.0-next.18
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 +14 -0
- package/lib/components/EditableHtml.js +19 -11
- package/lib/components/EditableHtml.js.map +1 -1
- package/lib/components/MenuBar.js +12 -0
- package/lib/components/MenuBar.js.map +1 -1
- package/lib/components/TiptapContainer.js +4 -3
- package/lib/components/TiptapContainer.js.map +1 -1
- package/lib/components/icons/TextAlign.js +2 -2
- package/lib/components/icons/TextAlign.js.map +1 -1
- package/lib/components/respArea/DragInTheBlank/choice.js +2 -1
- package/lib/components/respArea/DragInTheBlank/choice.js.map +1 -1
- package/lib/extensions/div-node.js +39 -0
- package/lib/extensions/div-node.js.map +1 -0
- package/lib/styles/editorContainerStyles.js +5 -4
- package/lib/styles/editorContainerStyles.js.map +1 -1
- package/package.json +5 -5
- package/src/__tests__/EditableHtml.test.jsx +3 -1
- package/src/__tests__/index.test.jsx +4 -1
- package/src/components/EditableHtml.jsx +21 -10
- package/src/components/MenuBar.jsx +7 -0
- package/src/components/TiptapContainer.jsx +4 -3
- package/src/components/icons/TextAlign.jsx +1 -1
- package/src/components/respArea/DragInTheBlank/choice.jsx +1 -0
- package/src/extensions/__tests__/divNode.test.js +87 -0
- package/src/extensions/div-node.js +36 -0
- package/src/styles/editorContainerStyles.js +5 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TiptapContainer.js","names":["_react","_interopRequireWildcard","require","_styles","_renderUi","_size","_MenuBar","_interopRequireDefault","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","StyledRoot","styled","shouldForwardProp","prop","includes","_ref","theme","noBorder","error","position","padding","border","borderRadius","cursor","wordBreak","overflow","maxHeight","marginTop","margin","marginBottom","lineHeight","textWrap","fontSize","backgroundColor","color","background","fontFamily","borderLeft","paddingLeft","borderTop","tableLayout","width","borderCollapse","text","textAlign","concat","palette","main","StyledEditorHolder","_ref2","disableScrollbar","highlightShape","overflowY","action","selected","display","scrollbarWidth","StyledChildren","_ref3","noPadding","TiptapContainer","props","_useState","useState","_useState2","_slicedToArray2","adjustedWidth","setAdjustedWidth","rootRef","useRef","editor","disabled","children","activePlugins","toolbarOpts","responseAreaProps","autoFocus","minWidth","maxWidth","minHeight","height","ref","useEffect","Promise","resolve","then","commands","focus","adjustWidthForLimit","el","document","createElement","style","visibility","textContent","repeat","charactersLimit","current","appendChild","offsetWidth","remove","sizeStyle","useMemo","valueToSize","className","onChange","autoWidthToolbar","_default","exports"],"sources":["../../src/components/TiptapContainer.jsx"],"sourcesContent":["import React, { useEffect, useMemo, useState, useRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport { color } from '@pie-lib/render-ui';\nimport { valueToSize } from '../utils/size';\n\nimport StyledMenuBar from './MenuBar';\n\nconst StyledRoot = styled('div', {\n shouldForwardProp: (prop) => !['noBorder', 'error'].includes(prop),\n})(({ theme, noBorder, error }) => ({\n position: 'relative',\n padding: '0px',\n border: noBorder ? 'none' : '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 padding: '5px',\n },\n '&:first-child': {\n marginTop: 0,\n },\n '& ul, & ol': {\n padding: '0 1rem',\n margin: '1.25rem 1rem 1.25rem 0.4rem',\n },\n '& ul li p, & ol li p': {\n marginTop: '0.25em',\n marginBottom: '0.25em',\n },\n '& h1, & h2, & h3, & h4, & h5, & h6': {\n lineHeight: 1.1,\n marginTop: '2.5rem',\n textWrap: 'pretty',\n },\n '& h1, & h2': {\n marginTop: '3.5rem',\n marginBottom: '1.5rem',\n },\n '& h1': {\n fontSize: '1.4rem',\n },\n '& h2': {\n fontSize: '1.2rem',\n },\n '& h3': {\n fontSize: '1.1rem',\n },\n '& h4, & h5, & h6': {\n fontSize: '1rem',\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 '& 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 '& code': {\n background: 'none',\n color: 'inherit',\n fontSize: '0.8rem',\n padding: 0,\n },\n },\n '& blockquote': {\n borderLeft: '3px solid var(--gray-3)',\n margin: '1.5rem 0',\n paddingLeft: '1rem',\n },\n '& hr': {\n border: 'none',\n borderTop: '1px solid var(--gray-2)',\n margin: '2rem 0',\n },\n '& p': {\n margin: '0',\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 ...(error && {\n border: `2px solid ${theme.palette.error.main} !important`,\n }),\n}));\n\nconst StyledEditorHolder = styled('div', {\n shouldForwardProp: (prop) => !['disableScrollbar', 'highlightShape'].includes(prop),\n})(({ theme, disableScrollbar, highlightShape }) => ({\n position: 'relative',\n padding: '0px',\n overflowY: 'auto',\n color: color.text(),\n backgroundColor: highlightShape ? theme.palette.action.selected : color.background(),\n ...(disableScrollbar && {\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n scrollbarWidth: 'none',\n '-ms-overflow-style': 'none',\n }),\n}));\n\nconst StyledChildren = styled('div', {\n shouldForwardProp: (prop) => prop !== 'noPadding',\n})(({ noPadding }) => ({\n padding: noPadding ? 0 : '10px 8px',\n}));\n\nfunction TiptapContainer(props) {\n const [adjustedWidth, setAdjustedWidth] = useState(null);\n const rootRef = useRef(null);\n const {\n editor,\n disabled,\n children,\n disableScrollbar,\n activePlugins,\n toolbarOpts,\n responseAreaProps,\n autoFocus,\n minWidth,\n width,\n maxWidth,\n minHeight,\n height,\n maxHeight,\n highlightShape,\n ref,\n } = props;\n\n useEffect(() => {\n if (editor && autoFocus) {\n Promise.resolve().then(() => {\n editor.commands.focus('end');\n });\n }\n }, [editor, autoFocus]);\n\n useEffect(() => {\n if (props.adjustWidthForLimit) {\n const el = document.createElement('p');\n\n el.style.visibility = 'hidden';\n el.style.position = 'absolute';\n el.textContent = 'W'.repeat(props.charactersLimit);\n\n rootRef.current.appendChild(el);\n\n setAdjustedWidth(`${el.offsetWidth + 27}px`);\n\n el.remove();\n }\n }, [props.adjustWidthForLimit, props.charactersLimit]);\n\n const sizeStyle = useMemo(\n () => ({\n width: valueToSize(adjustedWidth || width),\n minWidth: valueToSize(minWidth),\n maxWidth: valueToSize(maxWidth),\n height: valueToSize(height),\n minHeight: valueToSize(minHeight),\n maxHeight: valueToSize(maxHeight),\n }),\n [adjustedWidth, minWidth, width, maxWidth, minHeight, height, maxHeight],\n );\n\n return (\n <StyledRoot\n noBorder={toolbarOpts && toolbarOpts.noBorder}\n error={toolbarOpts && toolbarOpts.error}\n className={props.className}\n style={{ width: sizeStyle.width, minWidth: sizeStyle.minWidth, maxWidth: sizeStyle.maxWidth }}\n ref={rootRef}\n >\n <StyledEditorHolder disableScrollbar={disableScrollbar} highlightShape={highlightShape}>\n <StyledChildren noPadding={toolbarOpts && toolbarOpts.noPadding}>{children}</StyledChildren>\n </StyledEditorHolder>\n\n {editor && (\n <StyledMenuBar\n editor={editor}\n responseAreaProps={responseAreaProps}\n toolbarOpts={toolbarOpts}\n activePlugins={activePlugins}\n onChange={props.onChange}\n autoWidthToolbar={props.autoWidthToolbar}\n />\n )}\n </StyledRoot>\n );\n}\n\nexport default TiptapContainer;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"TiptapContainer.js","names":["_react","_interopRequireWildcard","require","_styles","_renderUi","_size","_MenuBar","_interopRequireDefault","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","StyledRoot","styled","shouldForwardProp","prop","includes","_ref","theme","noBorder","error","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","concat","palette","main","StyledEditorHolder","_ref2","disableScrollbar","highlightShape","overflowY","action","selected","display","scrollbarWidth","StyledChildren","_ref3","noPadding","TiptapContainer","props","_useState","useState","_useState2","_slicedToArray2","adjustedWidth","setAdjustedWidth","rootRef","useRef","editor","disabled","children","activePlugins","toolbarOpts","responseAreaProps","autoFocus","minWidth","maxWidth","minHeight","height","ref","useEffect","Promise","resolve","then","commands","focus","adjustWidthForLimit","el","document","createElement","style","visibility","textContent","repeat","charactersLimit","current","appendChild","offsetWidth","remove","sizeStyle","useMemo","valueToSize","className","onChange","autoWidthToolbar","_default","exports"],"sources":["../../src/components/TiptapContainer.jsx"],"sourcesContent":["import React, { useEffect, useMemo, useState, useRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport { color } from '@pie-lib/render-ui';\nimport { valueToSize } from '../utils/size';\n\nimport StyledMenuBar from './MenuBar';\n\nconst StyledRoot = styled('div', {\n shouldForwardProp: (prop) => !['noBorder', 'error'].includes(prop),\n})(({ theme, noBorder, error }) => ({\n position: 'relative',\n padding: '0px',\n border: noBorder ? 'none' : '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 padding: '5px',\n },\n '&:first-child': {\n marginTop: 0,\n },\n '& ul, & ol': {\n padding: '0 1rem',\n margin: '1.25rem 1rem 1.25rem 0.4rem',\n },\n '& ul li p, & ol li p': {\n marginTop: '0.25em',\n marginBottom: '0.25em',\n },\n '& h1, & h2, & h3, & h4, & h5, & h6': {\n lineHeight: 1.1,\n marginTop: '2.5rem',\n textWrap: 'pretty',\n },\n '& h1, & h2': {\n marginTop: '3.5rem',\n marginBottom: '1.5rem',\n },\n '& h1': {\n fontSize: '1.4rem',\n },\n '& h2': {\n fontSize: '1.2rem',\n },\n '& h3': {\n fontSize: '1.1rem',\n },\n '& h4, & h5, & h6': {\n fontSize: '1rem',\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 '& 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 '& code': {\n background: 'none',\n color: 'inherit',\n fontSize: '0.8rem',\n padding: 0,\n },\n },\n '& blockquote': {\n background: '#f9f9f9',\n borderLeft: '5px solid #ccc',\n margin: '1.5em 10px',\n padding: '.5em 10px',\n },\n '& hr': {\n border: 'none',\n borderTop: '1px solid var(--gray-2)',\n margin: '2rem 0',\n },\n '& p': {\n margin: '0',\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 ...(error && {\n border: `2px solid ${theme.palette.error.main} !important`,\n }),\n}));\n\nconst StyledEditorHolder = styled('div', {\n shouldForwardProp: (prop) => !['disableScrollbar', 'highlightShape'].includes(prop),\n})(({ theme, disableScrollbar, highlightShape }) => ({\n position: 'relative',\n padding: '0px',\n overflowY: 'auto',\n color: color.text(),\n backgroundColor: highlightShape ? theme.palette.action.selected : color.background(),\n ...(disableScrollbar && {\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n scrollbarWidth: 'none',\n '-ms-overflow-style': 'none',\n }),\n}));\n\nconst StyledChildren = styled('div', {\n shouldForwardProp: (prop) => prop !== 'noPadding',\n})(({ noPadding }) => ({\n padding: noPadding ? 0 : '10px 8px',\n}));\n\nfunction TiptapContainer(props) {\n const [adjustedWidth, setAdjustedWidth] = useState(null);\n const rootRef = useRef(null);\n const {\n editor,\n disabled,\n children,\n disableScrollbar,\n activePlugins,\n toolbarOpts,\n responseAreaProps,\n autoFocus,\n minWidth,\n width,\n maxWidth,\n minHeight,\n height,\n maxHeight,\n highlightShape,\n ref,\n } = props;\n\n useEffect(() => {\n if (editor && autoFocus) {\n Promise.resolve().then(() => {\n editor.commands.focus('end');\n });\n }\n }, [editor, autoFocus]);\n\n useEffect(() => {\n if (props.adjustWidthForLimit) {\n const el = document.createElement('p');\n\n el.style.visibility = 'hidden';\n el.style.position = 'absolute';\n el.textContent = 'W'.repeat(props.charactersLimit);\n\n rootRef.current.appendChild(el);\n\n setAdjustedWidth(`${el.offsetWidth + 27}px`);\n\n el.remove();\n }\n }, [props.adjustWidthForLimit, props.charactersLimit]);\n\n const sizeStyle = useMemo(\n () => ({\n width: valueToSize(adjustedWidth || width),\n minWidth: valueToSize(minWidth),\n maxWidth: valueToSize(maxWidth),\n height: valueToSize(height),\n minHeight: valueToSize(minHeight),\n maxHeight: valueToSize(maxHeight),\n }),\n [adjustedWidth, minWidth, width, maxWidth, minHeight, height, maxHeight],\n );\n\n return (\n <StyledRoot\n noBorder={toolbarOpts && toolbarOpts.noBorder}\n error={toolbarOpts && toolbarOpts.error}\n className={props.className}\n style={{ width: sizeStyle.width, minWidth: sizeStyle.minWidth, maxWidth: sizeStyle.maxWidth }}\n ref={rootRef}\n >\n <StyledEditorHolder disableScrollbar={disableScrollbar} highlightShape={highlightShape}>\n <StyledChildren noPadding={toolbarOpts && toolbarOpts.noPadding}>{children}</StyledChildren>\n </StyledEditorHolder>\n\n {editor && (\n <StyledMenuBar\n editor={editor}\n responseAreaProps={responseAreaProps}\n toolbarOpts={toolbarOpts}\n activePlugins={activePlugins}\n onChange={props.onChange}\n autoWidthToolbar={props.autoWidthToolbar}\n />\n )}\n </StyledRoot>\n );\n}\n\nexport default TiptapContainer;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -89,8 +89,8 @@ var _default = exports["default"] = function _default(_ref) {
|
|
|
89
89
|
break;
|
|
90
90
|
}
|
|
91
91
|
var applyAlignment = function applyAlignment(event) {
|
|
92
|
-
var _event$
|
|
93
|
-
var alignType = (_event$
|
|
92
|
+
var _event$currentTarget;
|
|
93
|
+
var alignType = (_event$currentTarget = event.currentTarget) === null || _event$currentTarget === void 0 ? void 0 : _event$currentTarget.getAttribute('value');
|
|
94
94
|
if (alignType) {
|
|
95
95
|
editor.commands.setTextAlign(alignType);
|
|
96
96
|
}
|
|
@@ -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","d","AlignRight","AlignCenter","AlignJustify","_default","_ref","editor","onChange","_useState","useState","_useState2","_slicedToArray2","open","setOpen","icon","isActive","textAlign","applyAlignment","event","_event$target","alignType","target","closest","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.target?.closest('div')?.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":[]}
|
|
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":[]}
|
|
@@ -91,7 +91,8 @@ function BlankContent(_ref2) {
|
|
|
91
91
|
position: 'relative',
|
|
92
92
|
padding: '8px 8px 8px 35px',
|
|
93
93
|
width: hoveredElementSize ? hoveredElementSize.width : undefined,
|
|
94
|
-
height: hoveredElementSize ? hoveredElementSize.height : undefined
|
|
94
|
+
height: hoveredElementSize ? hoveredElementSize.height : undefined,
|
|
95
|
+
touchAction: 'none'
|
|
95
96
|
},
|
|
96
97
|
"data-key": n.index,
|
|
97
98
|
contentEditable: false
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"choice.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_core","_renderUi","_mathRendering","_styles","_classnames","_RespArea","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","StyledContent","styled","_ref","theme","border","concat","palette","primary","main","fontSize","BlankContent","_ref2","_dragItem$value","children","isDragging","isOver","dragItem","value","selected","_useState","useState","_useState2","_slicedToArray2","hoveredElementSize","setHoveredElementSize","elementRef","useRef","handleClick","event","current","contains","target","classList","add","remove","useEffect","document","addEventListener","removeEventListener","renderMath","node","width","offsetWidth","height","offsetHeight","label","finalLabel","hasGrip","isPreview","borderStyle","color","primaryDark","defaults","BORDER_DARK","BORDER_LIGHT","createElement","ref","className","undefined","style","display","minWidth","minHeight","background","WHITE","boxSizing","borderRadius","overflow","position","padding","index","contentEditable","GripIcon","top","left","dangerouslySetInnerHTML","__html","propTypes","PropTypes","object","bool","DragDropChoice","_ref3","_dragItem$data","disabled","instanceId","onChange","removeResponse","duplicates","pos","_useDraggable","useDraggable","id","data","opts","type","fromChoice","onRemove","draggedData","onDrop","dropData","isValidBlank","dragAttributes","attributes","dragListeners","listeners","setDragNodeRef","setNodeRef","_useDroppable","useDroppable","accepts","setTimeout","setDropNodeRef","active","dragContent","dragEl","_extends2","content","classnames","string","isRequired","func","_default","exports"],"sources":["../../../../src/components/respArea/DragInTheBlank/choice.jsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDraggable, useDroppable } from '@dnd-kit/core';\nimport { color } from '@pie-lib/render-ui';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { styled } from '@mui/material/styles';\nimport classnames from 'classnames';\n\nimport { GripIcon } from '../../icons/RespArea';\n\nconst StyledContent = styled('span')(({ theme }) => ({\n border: `solid 0px ${theme.palette.primary.main}`,\n '& mjx-frac': {\n fontSize: '120% !important',\n },\n}));\n\nexport function BlankContent({ n, children, isDragging, isOver, dragItem, value, selected }) {\n const [hoveredElementSize, setHoveredElementSize] = useState(null);\n const elementRef = useRef(null);\n\n const handleClick = (event) => {\n if (!elementRef.current) return;\n\n if (elementRef.current.contains(event.target)) {\n elementRef.current.classList.add('selected');\n } else {\n elementRef.current.classList.remove('selected');\n }\n };\n\n useEffect(() => {\n document.addEventListener('click', handleClick);\n return () => {\n document.removeEventListener('click', handleClick);\n };\n }, []);\n\n useEffect(() => {\n if (elementRef.current && typeof renderMath === 'function') {\n renderMath(elementRef.current);\n }\n }, [value?.value, isOver, dragItem?.value?.value]);\n\n useEffect(() => {\n if (isOver && elementRef.current && !hoveredElementSize) {\n const node = elementRef.current;\n setHoveredElementSize({ width: node.offsetWidth, height: node.offsetHeight });\n } else if (!isOver && hoveredElementSize) {\n setHoveredElementSize(null);\n }\n }, [isOver, hoveredElementSize]);\n\n const label = dragItem && isOver ? dragItem.value.value : value.value || '\\u00A0';\n const finalLabel = isDragging ? '\\u00A0' : label;\n const hasGrip = finalLabel !== '\\u00A0';\n const isPreview = dragItem && isOver;\n\n const borderStyle = selected\n ? `2px solid ${color.primaryDark()}`\n : isPreview\n ? `1px solid ${color.defaults.BORDER_DARK}`\n : `1px solid ${color.defaults.BORDER_LIGHT}`;\n\n return (\n <div\n ref={elementRef}\n className={selected ? 'selected' : undefined}\n style={{\n display: 'inline-flex',\n minWidth: '178px',\n minHeight: '36px',\n background: isPreview ? `${color.defaults.BORDER_LIGHT}` : `${color.defaults.WHITE}`,\n border: borderStyle,\n boxSizing: 'border-box',\n borderRadius: '3px',\n overflow: 'hidden',\n position: 'relative',\n padding: '8px 8px 8px 35px',\n width: hoveredElementSize ? hoveredElementSize.width : undefined,\n height: hoveredElementSize ? hoveredElementSize.height : undefined,\n }}\n data-key={n.index}\n contentEditable={false}\n >\n {hasGrip && (\n <GripIcon\n style={{\n position: 'absolute',\n top: '6px',\n left: '15px',\n color: '#9B9B9B',\n }}\n contentEditable={false}\n />\n )}\n <span\n dangerouslySetInnerHTML={{\n __html: finalLabel,\n }}\n />\n {children}\n </div>\n );\n}\n\nBlankContent.propTypes = {\n n: PropTypes.object,\n children: PropTypes.node,\n isDragging: PropTypes.bool,\n isOver: PropTypes.bool,\n dragItem: PropTypes.object,\n value: PropTypes.object,\n selected: PropTypes.bool,\n};\n\nfunction DragDropChoice({\n value,\n disabled,\n instanceId,\n children,\n n,\n onChange,\n removeResponse,\n duplicates,\n pos,\n selected,\n}) {\n const {\n attributes: dragAttributes,\n listeners: dragListeners,\n setNodeRef: setDragNodeRef,\n isDragging,\n } = useDraggable({\n id: `drag-${n.index}`,\n disabled: disabled || !value?.value,\n data: {\n id: `drag-${n.index}`,\n value,\n instanceId,\n n,\n pos,\n opts: { duplicates },\n type: 'drag-in-the-blank-placed-choice',\n fromChoice: !value,\n onRemove: (draggedData) => removeResponse(draggedData),\n onDrop: (draggedData, dropData) => {\n // check if we're dropping into a blank\n const isValidBlank = dropData?.type === 'drag-in-the-blank-drop-choice';\n\n if (!isValidBlank) return;\n\n // place into blank\n onChange(draggedData);\n\n if (!duplicates && draggedData.fromChoice) {\n removeResponse(draggedData);\n }\n },\n },\n });\n\n const {\n setNodeRef: setDropNodeRef,\n isOver,\n active: dragItem,\n } = useDroppable({\n id: `drop-${n.index}`,\n data: {\n type: 'drag-in-the-blank-drop-choice',\n accepts: ['drag-in-the-blank-choice', 'drag-in-the-blank-placed-choice'],\n instanceId: instanceId,\n value: value,\n id: `drop-${n.index}`,\n pos,\n n,\n opts: { duplicates },\n onDrop: (draggedData, dropData) => {\n // check if we're dropping into a blank\n const isValidBlank = dropData?.type === 'drag-in-the-blank-drop-choice';\n\n if (!isValidBlank) return;\n\n // if the dragged and dropped data are the same, do nothing\n if (draggedData.value.id === dropData.value.id) return;\n\n if (draggedData.type === 'drag-in-the-blank-choice') {\n // place into blank\n onChange(draggedData);\n\n if (!duplicates && draggedData.fromChoice) {\n removeResponse(draggedData);\n }\n return;\n }\n\n // moving placed choice between blanks\n if (draggedData.type === 'drag-in-the-blank-placed-choice') {\n // clear target blank\n removeResponse(dropData);\n\n // set new blank value\n onChange(draggedData);\n\n // clear original blank - slight delay to ensure state updates correctly\n setTimeout(() => removeResponse(draggedData), 10);\n }\n },\n },\n });\n\n const setNodeRef = (node) => {\n setDragNodeRef(node);\n setDropNodeRef(node);\n };\n\n const dragContent = (\n <BlankContent\n n={n}\n isDragging={isDragging}\n isOver={isOver}\n dragItem={dragItem?.data?.current}\n value={value}\n selected={selected}\n >\n {children}\n </BlankContent>\n );\n\n const dragEl = !value ? (\n <span ref={setDropNodeRef}>{dragContent}</span>\n ) : (\n <span ref={setNodeRef} {...dragAttributes} {...dragListeners}>\n {dragContent}\n </span>\n );\n\n const content = <StyledContent className={classnames(isOver && 'over')}>{dragEl}</StyledContent>;\n\n return content;\n}\n\nDragDropChoice.propTypes = {\n value: PropTypes.object,\n disabled: PropTypes.bool,\n instanceId: PropTypes.string,\n children: PropTypes.node,\n n: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n removeResponse: PropTypes.func.isRequired,\n duplicates: PropTypes.bool,\n selected: PropTypes.bool,\n};\n\nexport default DragDropChoice;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"choice.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_core","_renderUi","_mathRendering","_styles","_classnames","_RespArea","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","StyledContent","styled","_ref","theme","border","concat","palette","primary","main","fontSize","BlankContent","_ref2","_dragItem$value","children","isDragging","isOver","dragItem","value","selected","_useState","useState","_useState2","_slicedToArray2","hoveredElementSize","setHoveredElementSize","elementRef","useRef","handleClick","event","current","contains","target","classList","add","remove","useEffect","document","addEventListener","removeEventListener","renderMath","node","width","offsetWidth","height","offsetHeight","label","finalLabel","hasGrip","isPreview","borderStyle","color","primaryDark","defaults","BORDER_DARK","BORDER_LIGHT","createElement","ref","className","undefined","style","display","minWidth","minHeight","background","WHITE","boxSizing","borderRadius","overflow","position","padding","touchAction","index","contentEditable","GripIcon","top","left","dangerouslySetInnerHTML","__html","propTypes","PropTypes","object","bool","DragDropChoice","_ref3","_dragItem$data","disabled","instanceId","onChange","removeResponse","duplicates","pos","_useDraggable","useDraggable","id","data","opts","type","fromChoice","onRemove","draggedData","onDrop","dropData","isValidBlank","dragAttributes","attributes","dragListeners","listeners","setDragNodeRef","setNodeRef","_useDroppable","useDroppable","accepts","setTimeout","setDropNodeRef","active","dragContent","dragEl","_extends2","content","classnames","string","isRequired","func","_default","exports"],"sources":["../../../../src/components/respArea/DragInTheBlank/choice.jsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDraggable, useDroppable } from '@dnd-kit/core';\nimport { color } from '@pie-lib/render-ui';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { styled } from '@mui/material/styles';\nimport classnames from 'classnames';\n\nimport { GripIcon } from '../../icons/RespArea';\n\nconst StyledContent = styled('span')(({ theme }) => ({\n border: `solid 0px ${theme.palette.primary.main}`,\n '& mjx-frac': {\n fontSize: '120% !important',\n },\n}));\n\nexport function BlankContent({ n, children, isDragging, isOver, dragItem, value, selected }) {\n const [hoveredElementSize, setHoveredElementSize] = useState(null);\n const elementRef = useRef(null);\n\n const handleClick = (event) => {\n if (!elementRef.current) return;\n\n if (elementRef.current.contains(event.target)) {\n elementRef.current.classList.add('selected');\n } else {\n elementRef.current.classList.remove('selected');\n }\n };\n\n useEffect(() => {\n document.addEventListener('click', handleClick);\n return () => {\n document.removeEventListener('click', handleClick);\n };\n }, []);\n\n useEffect(() => {\n if (elementRef.current && typeof renderMath === 'function') {\n renderMath(elementRef.current);\n }\n }, [value?.value, isOver, dragItem?.value?.value]);\n\n useEffect(() => {\n if (isOver && elementRef.current && !hoveredElementSize) {\n const node = elementRef.current;\n setHoveredElementSize({ width: node.offsetWidth, height: node.offsetHeight });\n } else if (!isOver && hoveredElementSize) {\n setHoveredElementSize(null);\n }\n }, [isOver, hoveredElementSize]);\n\n const label = dragItem && isOver ? dragItem.value.value : value.value || '\\u00A0';\n const finalLabel = isDragging ? '\\u00A0' : label;\n const hasGrip = finalLabel !== '\\u00A0';\n const isPreview = dragItem && isOver;\n\n const borderStyle = selected\n ? `2px solid ${color.primaryDark()}`\n : isPreview\n ? `1px solid ${color.defaults.BORDER_DARK}`\n : `1px solid ${color.defaults.BORDER_LIGHT}`;\n\n return (\n <div\n ref={elementRef}\n className={selected ? 'selected' : undefined}\n style={{\n display: 'inline-flex',\n minWidth: '178px',\n minHeight: '36px',\n background: isPreview ? `${color.defaults.BORDER_LIGHT}` : `${color.defaults.WHITE}`,\n border: borderStyle,\n boxSizing: 'border-box',\n borderRadius: '3px',\n overflow: 'hidden',\n position: 'relative',\n padding: '8px 8px 8px 35px',\n width: hoveredElementSize ? hoveredElementSize.width : undefined,\n height: hoveredElementSize ? hoveredElementSize.height : undefined,\n touchAction: 'none',\n }}\n data-key={n.index}\n contentEditable={false}\n >\n {hasGrip && (\n <GripIcon\n style={{\n position: 'absolute',\n top: '6px',\n left: '15px',\n color: '#9B9B9B',\n }}\n contentEditable={false}\n />\n )}\n <span\n dangerouslySetInnerHTML={{\n __html: finalLabel,\n }}\n />\n {children}\n </div>\n );\n}\n\nBlankContent.propTypes = {\n n: PropTypes.object,\n children: PropTypes.node,\n isDragging: PropTypes.bool,\n isOver: PropTypes.bool,\n dragItem: PropTypes.object,\n value: PropTypes.object,\n selected: PropTypes.bool,\n};\n\nfunction DragDropChoice({\n value,\n disabled,\n instanceId,\n children,\n n,\n onChange,\n removeResponse,\n duplicates,\n pos,\n selected,\n}) {\n const {\n attributes: dragAttributes,\n listeners: dragListeners,\n setNodeRef: setDragNodeRef,\n isDragging,\n } = useDraggable({\n id: `drag-${n.index}`,\n disabled: disabled || !value?.value,\n data: {\n id: `drag-${n.index}`,\n value,\n instanceId,\n n,\n pos,\n opts: { duplicates },\n type: 'drag-in-the-blank-placed-choice',\n fromChoice: !value,\n onRemove: (draggedData) => removeResponse(draggedData),\n onDrop: (draggedData, dropData) => {\n // check if we're dropping into a blank\n const isValidBlank = dropData?.type === 'drag-in-the-blank-drop-choice';\n\n if (!isValidBlank) return;\n\n // place into blank\n onChange(draggedData);\n\n if (!duplicates && draggedData.fromChoice) {\n removeResponse(draggedData);\n }\n },\n },\n });\n\n const {\n setNodeRef: setDropNodeRef,\n isOver,\n active: dragItem,\n } = useDroppable({\n id: `drop-${n.index}`,\n data: {\n type: 'drag-in-the-blank-drop-choice',\n accepts: ['drag-in-the-blank-choice', 'drag-in-the-blank-placed-choice'],\n instanceId: instanceId,\n value: value,\n id: `drop-${n.index}`,\n pos,\n n,\n opts: { duplicates },\n onDrop: (draggedData, dropData) => {\n // check if we're dropping into a blank\n const isValidBlank = dropData?.type === 'drag-in-the-blank-drop-choice';\n\n if (!isValidBlank) return;\n\n // if the dragged and dropped data are the same, do nothing\n if (draggedData.value.id === dropData.value.id) return;\n\n if (draggedData.type === 'drag-in-the-blank-choice') {\n // place into blank\n onChange(draggedData);\n\n if (!duplicates && draggedData.fromChoice) {\n removeResponse(draggedData);\n }\n return;\n }\n\n // moving placed choice between blanks\n if (draggedData.type === 'drag-in-the-blank-placed-choice') {\n // clear target blank\n removeResponse(dropData);\n\n // set new blank value\n onChange(draggedData);\n\n // clear original blank - slight delay to ensure state updates correctly\n setTimeout(() => removeResponse(draggedData), 10);\n }\n },\n },\n });\n\n const setNodeRef = (node) => {\n setDragNodeRef(node);\n setDropNodeRef(node);\n };\n\n const dragContent = (\n <BlankContent\n n={n}\n isDragging={isDragging}\n isOver={isOver}\n dragItem={dragItem?.data?.current}\n value={value}\n selected={selected}\n >\n {children}\n </BlankContent>\n );\n\n const dragEl = !value ? (\n <span ref={setDropNodeRef}>{dragContent}</span>\n ) : (\n <span ref={setNodeRef} {...dragAttributes} {...dragListeners}>\n {dragContent}\n </span>\n );\n\n const content = <StyledContent className={classnames(isOver && 'over')}>{dragEl}</StyledContent>;\n\n return content;\n}\n\nDragDropChoice.propTypes = {\n value: PropTypes.object,\n disabled: PropTypes.bool,\n instanceId: PropTypes.string,\n children: PropTypes.node,\n n: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n removeResponse: PropTypes.func.isRequired,\n duplicates: PropTypes.bool,\n selected: PropTypes.bool,\n};\n\nexport default DragDropChoice;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.DivNode = void 0;
|
|
7
|
+
var _core = require("@tiptap/core");
|
|
8
|
+
// DivNode.ts
|
|
9
|
+
|
|
10
|
+
var DivNode = exports.DivNode = _core.Node.create({
|
|
11
|
+
name: 'div',
|
|
12
|
+
group: 'block',
|
|
13
|
+
content: 'inline*',
|
|
14
|
+
parseHTML: function parseHTML() {
|
|
15
|
+
return [{
|
|
16
|
+
tag: 'div'
|
|
17
|
+
}];
|
|
18
|
+
},
|
|
19
|
+
renderHTML: function renderHTML(_ref) {
|
|
20
|
+
var HTMLAttributes = _ref.HTMLAttributes;
|
|
21
|
+
return ['div', HTMLAttributes, 0];
|
|
22
|
+
},
|
|
23
|
+
addKeyboardShortcuts: function addKeyboardShortcuts() {
|
|
24
|
+
var _this = this;
|
|
25
|
+
return {
|
|
26
|
+
Enter: function Enter() {
|
|
27
|
+
var state = _this.editor.state;
|
|
28
|
+
var $from = state.selection.$from;
|
|
29
|
+
if ($from.parent.type.name !== 'div') {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
return _this.editor.chain().focus().setNode('paragraph') // current div becomes <p>
|
|
33
|
+
.splitBlock() // create another <p>
|
|
34
|
+
.run();
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=div-node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"div-node.js","names":["_core","require","DivNode","exports","Node","create","name","group","content","parseHTML","tag","renderHTML","_ref","HTMLAttributes","addKeyboardShortcuts","_this","Enter","state","editor","$from","selection","parent","type","chain","focus","setNode","splitBlock","run"],"sources":["../../src/extensions/div-node.js"],"sourcesContent":["// DivNode.ts\nimport { Node } from '@tiptap/core';\n\nexport const DivNode = Node.create({\n name: 'div',\n group: 'block',\n content: 'inline*',\n\n parseHTML() {\n return [{ tag: 'div' }];\n },\n\n renderHTML({ HTMLAttributes }) {\n return ['div', HTMLAttributes, 0];\n },\n\n addKeyboardShortcuts() {\n return {\n Enter: () => {\n const { state } = this.editor;\n const { $from } = state.selection;\n\n if ($from.parent.type.name !== 'div') {\n return false;\n }\n\n return this.editor\n .chain()\n .focus()\n .setNode('paragraph') // current div becomes <p>\n .splitBlock() // create another <p>\n .run();\n },\n };\n },\n});\n"],"mappings":";;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AADA;;AAGO,IAAMC,OAAO,GAAAC,OAAA,CAAAD,OAAA,GAAGE,UAAI,CAACC,MAAM,CAAC;EACjCC,IAAI,EAAE,KAAK;EACXC,KAAK,EAAE,OAAO;EACdC,OAAO,EAAE,SAAS;EAElBC,SAAS,WAATA,SAASA,CAAA,EAAG;IACV,OAAO,CAAC;MAAEC,GAAG,EAAE;IAAM,CAAC,CAAC;EACzB,CAAC;EAEDC,UAAU,WAAVA,UAAUA,CAAAC,IAAA,EAAqB;IAAA,IAAlBC,cAAc,GAAAD,IAAA,CAAdC,cAAc;IACzB,OAAO,CAAC,KAAK,EAAEA,cAAc,EAAE,CAAC,CAAC;EACnC,CAAC;EAEDC,oBAAoB,WAApBA,oBAAoBA,CAAA,EAAG;IAAA,IAAAC,KAAA;IACrB,OAAO;MACLC,KAAK,EAAE,SAAPA,KAAKA,CAAA,EAAQ;QACX,IAAQC,KAAK,GAAKF,KAAI,CAACG,MAAM,CAArBD,KAAK;QACb,IAAQE,KAAK,GAAKF,KAAK,CAACG,SAAS,CAAzBD,KAAK;QAEb,IAAIA,KAAK,CAACE,MAAM,CAACC,IAAI,CAAChB,IAAI,KAAK,KAAK,EAAE;UACpC,OAAO,KAAK;QACd;QAEA,OAAOS,KAAI,CAACG,MAAM,CACfK,KAAK,CAAC,CAAC,CACPC,KAAK,CAAC,CAAC,CACPC,OAAO,CAAC,WAAW,CAAC,CAAC;QAAA,CACrBC,UAAU,CAAC,CAAC,CAAC;QAAA,CACbC,GAAG,CAAC,CAAC;MACV;IACF,CAAC;EACH;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -63,7 +63,7 @@ var styles = function styles(theme) {
|
|
|
63
63
|
background: 'var(--black)',
|
|
64
64
|
borderRadius: '0.5rem',
|
|
65
65
|
color: 'var(--white)',
|
|
66
|
-
fontFamily:
|
|
66
|
+
fontFamily: '\'JetBrainsMono\', monospace',
|
|
67
67
|
margin: '1.5rem 0',
|
|
68
68
|
padding: '0.75rem 1rem',
|
|
69
69
|
'& code': {
|
|
@@ -74,9 +74,10 @@ var styles = function styles(theme) {
|
|
|
74
74
|
}
|
|
75
75
|
},
|
|
76
76
|
'& blockquote': {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
77
|
+
background: '#f9f9f9',
|
|
78
|
+
borderLeft: '5px solid #ccc',
|
|
79
|
+
margin: '1.5em 10px',
|
|
80
|
+
padding: '.5em 10px'
|
|
80
81
|
},
|
|
81
82
|
'& hr': {
|
|
82
83
|
border: 'none',
|
|
@@ -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","
|
|
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":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "1.2.0-next.
|
|
6
|
+
"version": "1.2.0-next.18",
|
|
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": "^3.2.0-next.
|
|
19
|
+
"@pie-lib/drag": "^3.2.0-next.5",
|
|
20
20
|
"@pie-lib/math-input": "^7.2.0-next.8",
|
|
21
21
|
"@pie-lib/math-rendering": "^4.2.0-next.3",
|
|
22
|
-
"@pie-lib/math-toolbar": "^2.2.0-next.
|
|
23
|
-
"@pie-lib/render-ui": "^5.2.0-next.
|
|
22
|
+
"@pie-lib/math-toolbar": "^2.2.0-next.10",
|
|
23
|
+
"@pie-lib/render-ui": "^5.2.0-next.5",
|
|
24
24
|
"@tiptap/core": "3.0.9",
|
|
25
25
|
"@tiptap/extension-character-count": "3.0.9",
|
|
26
26
|
"@tiptap/extension-color": "3.0.9",
|
|
@@ -59,6 +59,6 @@
|
|
|
59
59
|
"peerDependencies": {
|
|
60
60
|
"react": "^18.2.0"
|
|
61
61
|
},
|
|
62
|
-
"gitHead": "
|
|
62
|
+
"gitHead": "48c079ea6b6b93ca69bd800906e1d8f258c05335",
|
|
63
63
|
"scripts": {}
|
|
64
64
|
}
|
|
@@ -13,7 +13,10 @@ jest.mock('@tiptap/react', () => ({
|
|
|
13
13
|
useEditorState: jest.fn(() => ({ isFocused: false })),
|
|
14
14
|
}));
|
|
15
15
|
|
|
16
|
-
jest.mock('@tiptap/starter-kit', () => ({
|
|
16
|
+
jest.mock('@tiptap/starter-kit', () => ({
|
|
17
|
+
__esModule: true,
|
|
18
|
+
default: { configure: jest.fn(() => ({})) },
|
|
19
|
+
}));
|
|
17
20
|
jest.mock('@tiptap/extension-text-style', () => ({ TextStyleKit: {} }));
|
|
18
21
|
jest.mock('@tiptap/extension-character-count', () => ({
|
|
19
22
|
CharacterCount: { configure: jest.fn(() => ({})) },
|
|
@@ -12,6 +12,7 @@ import { styled } from '@mui/material/styles';
|
|
|
12
12
|
import debounce from 'lodash-es/debounce';
|
|
13
13
|
|
|
14
14
|
import ExtendedTable from '../extensions/extended-table';
|
|
15
|
+
import { DivNode } from '../extensions/div-node';
|
|
15
16
|
import { TableRow } from '@tiptap/extension-table-row';
|
|
16
17
|
import { TableCell } from '@tiptap/extension-table-cell';
|
|
17
18
|
import { TableHeader } from '@tiptap/extension-table-header';
|
|
@@ -135,11 +136,21 @@ export const EditableHtml = (props) => {
|
|
|
135
136
|
}, [props]);
|
|
136
137
|
|
|
137
138
|
const extensions = [
|
|
139
|
+
TextAlign.configure({
|
|
140
|
+
types: ['heading', 'paragraph'],
|
|
141
|
+
alignments: ['left', 'right', 'center', 'justify'],
|
|
142
|
+
}),
|
|
138
143
|
TextStyleKit,
|
|
139
144
|
CharacterCount.configure({
|
|
140
145
|
limit: props.charactersLimit || 1000000,
|
|
141
146
|
}),
|
|
142
|
-
StarterKit
|
|
147
|
+
StarterKit.configure({
|
|
148
|
+
trailingNode: {
|
|
149
|
+
node: 'paragraph',
|
|
150
|
+
notAfter: ['paragraph', 'div'],
|
|
151
|
+
},
|
|
152
|
+
}),
|
|
153
|
+
DivNode,
|
|
143
154
|
Placeholder.configure({
|
|
144
155
|
placeholder: props.placeholder,
|
|
145
156
|
// show placeholder even when editor is focused
|
|
@@ -161,10 +172,6 @@ export const EditableHtml = (props) => {
|
|
|
161
172
|
}),
|
|
162
173
|
SubScript,
|
|
163
174
|
SuperScript,
|
|
164
|
-
TextAlign.configure({
|
|
165
|
-
types: ['heading', 'paragraph'],
|
|
166
|
-
alignments: ['left', 'right', 'center'],
|
|
167
|
-
}),
|
|
168
175
|
Image,
|
|
169
176
|
ImageUploadNode.configure({
|
|
170
177
|
toolbarOpts: toolbarOptsToUse,
|
|
@@ -252,7 +259,7 @@ export const EditableHtml = (props) => {
|
|
|
252
259
|
},
|
|
253
260
|
},
|
|
254
261
|
editable: !props.disabled,
|
|
255
|
-
content: props.markup,
|
|
262
|
+
content: props.markup || '<div></div>',
|
|
256
263
|
onUpdate: ({ editor, transaction }) => {
|
|
257
264
|
if (transaction.isDone) {
|
|
258
265
|
props.onChange?.(editor.getHTML());
|
|
@@ -295,7 +302,9 @@ export const EditableHtml = (props) => {
|
|
|
295
302
|
return;
|
|
296
303
|
}
|
|
297
304
|
|
|
298
|
-
|
|
305
|
+
const nextMarkup = props.markup || '<div></div>';
|
|
306
|
+
|
|
307
|
+
if (nextMarkup !== editor.getHTML()) {
|
|
299
308
|
editor.commands.setContent(props.markup, false); // false = don’t emit update
|
|
300
309
|
}
|
|
301
310
|
}, [props.markup, editor]);
|
|
@@ -363,11 +372,13 @@ const StyledEditorContent = styled(EditorContent, {
|
|
|
363
372
|
maxHeight: '500px',
|
|
364
373
|
outline: 'none !important',
|
|
365
374
|
position: 'initial',
|
|
366
|
-
|
|
375
|
+
|
|
376
|
+
// reset default margins for all block paragraphs/divs in the editor
|
|
377
|
+
'& > p, & > div': {
|
|
367
378
|
margin: '0',
|
|
368
379
|
},
|
|
369
380
|
|
|
370
|
-
'& p.is-editor-empty:first-child::before': {
|
|
381
|
+
'& p.is-editor-empty:first-child::before, & div.is-editor-empty:first-child::before': {
|
|
371
382
|
content: 'attr(data-placeholder)',
|
|
372
383
|
float: 'left',
|
|
373
384
|
height: 0,
|
|
@@ -377,7 +388,7 @@ const StyledEditorContent = styled(EditorContent, {
|
|
|
377
388
|
},
|
|
378
389
|
|
|
379
390
|
...(showParagraph && {
|
|
380
|
-
'& > p:has(+ p)::after': {
|
|
391
|
+
'& > p:has(+ p)::after, & > div:has(+ div)::after': {
|
|
381
392
|
display: 'block',
|
|
382
393
|
content: '"¶"',
|
|
383
394
|
fontSize: '1em',
|
|
@@ -15,6 +15,7 @@ import Functions from '@mui/icons-material/Functions';
|
|
|
15
15
|
import ImageIcon from '@mui/icons-material/Image';
|
|
16
16
|
import Redo from '@mui/icons-material/Redo';
|
|
17
17
|
import Undo from '@mui/icons-material/Undo';
|
|
18
|
+
import FormatQuote from '@mui/icons-material/FormatQuote';
|
|
18
19
|
import TheatersIcon from '@mui/icons-material/Theaters';
|
|
19
20
|
import VolumeUpIcon from '@mui/icons-material/VolumeUp';
|
|
20
21
|
import BorderAll from '@mui/icons-material/BorderAll';
|
|
@@ -279,6 +280,12 @@ function MenuBar({
|
|
|
279
280
|
hidden: () => !activePlugins?.includes('css'),
|
|
280
281
|
onClick: (editor) => editor.commands.openCSSClassDialog(),
|
|
281
282
|
},
|
|
283
|
+
{
|
|
284
|
+
icon: <FormatQuote />,
|
|
285
|
+
hidden: () => !activePlugins?.includes('blockquote'),
|
|
286
|
+
onClick: (editor) => editor.chain().focus().toggleBlockquote().run(),
|
|
287
|
+
isActive: (state) => state.isBlockquote,
|
|
288
|
+
},
|
|
282
289
|
{
|
|
283
290
|
icon: <HeadingIcon />,
|
|
284
291
|
hidden: () => !activePlugins?.includes('h3'),
|
|
@@ -73,9 +73,10 @@ const StyledRoot = styled('div', {
|
|
|
73
73
|
},
|
|
74
74
|
},
|
|
75
75
|
'& blockquote': {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
76
|
+
background: '#f9f9f9',
|
|
77
|
+
borderLeft: '5px solid #ccc',
|
|
78
|
+
margin: '1.5em 10px',
|
|
79
|
+
padding: '.5em 10px',
|
|
79
80
|
},
|
|
80
81
|
'& hr': {
|
|
81
82
|
border: 'none',
|
|
@@ -60,7 +60,7 @@ export default ({ editor, onChange }) => {
|
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
const applyAlignment = (event) => {
|
|
63
|
-
const alignType = event.
|
|
63
|
+
const alignType = event.currentTarget?.getAttribute('value');
|
|
64
64
|
|
|
65
65
|
if (alignType) {
|
|
66
66
|
editor.commands.setTextAlign(alignType);
|
|
@@ -79,6 +79,7 @@ export function BlankContent({ n, children, isDragging, isOver, dragItem, value,
|
|
|
79
79
|
padding: '8px 8px 8px 35px',
|
|
80
80
|
width: hoveredElementSize ? hoveredElementSize.width : undefined,
|
|
81
81
|
height: hoveredElementSize ? hoveredElementSize.height : undefined,
|
|
82
|
+
touchAction: 'none',
|
|
82
83
|
}}
|
|
83
84
|
data-key={n.index}
|
|
84
85
|
contentEditable={false}
|