@pie-lib/editable-html-tip-tap 1.1.1-next.3 → 1.2.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports["default"] = void 0;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
11
  var _react = _interopRequireWildcard(require("react"));
11
12
  var _styles = require("@mui/material/styles");
@@ -78,7 +79,7 @@ var StyledRoot = (0, _styles.styled)('div', {
78
79
  background: 'var(--black)',
79
80
  borderRadius: '0.5rem',
80
81
  color: 'var(--white)',
81
- fontFamily: "'JetBrainsMono', monospace",
82
+ fontFamily: '\'JetBrainsMono\', monospace',
82
83
  margin: '1.5rem 0',
83
84
  padding: '0.75rem 1rem',
84
85
  '& code': {
@@ -149,10 +150,15 @@ var StyledChildren = (0, _styles.styled)('div', {
149
150
  })(function (_ref3) {
150
151
  var noPadding = _ref3.noPadding;
151
152
  return {
152
- padding: noPadding ? 0 : '10px 16px'
153
+ padding: noPadding ? 0 : '10px 8px'
153
154
  };
154
155
  });
155
156
  function TiptapContainer(props) {
157
+ var _useState = (0, _react.useState)(null),
158
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
159
+ adjustedWidth = _useState2[0],
160
+ setAdjustedWidth = _useState2[1];
161
+ var rootRef = (0, _react.useRef)(null);
156
162
  var editor = props.editor,
157
163
  disabled = props.disabled,
158
164
  children = props.children,
@@ -166,7 +172,8 @@ function TiptapContainer(props) {
166
172
  maxWidth = props.maxWidth,
167
173
  minHeight = props.minHeight,
168
174
  height = props.height,
169
- maxHeight = props.maxHeight;
175
+ maxHeight = props.maxHeight,
176
+ ref = props.ref;
170
177
  (0, _react.useEffect)(function () {
171
178
  if (editor && autoFocus) {
172
179
  Promise.resolve().then(function () {
@@ -174,16 +181,27 @@ function TiptapContainer(props) {
174
181
  });
175
182
  }
176
183
  }, [editor, autoFocus]);
184
+ (0, _react.useEffect)(function () {
185
+ if (props.adjustWidthForLimit) {
186
+ var el = document.createElement('p');
187
+ el.style.visibility = 'hidden';
188
+ el.style.position = 'absolute';
189
+ el.textContent = 'W'.repeat(props.charactersLimit);
190
+ rootRef.current.appendChild(el);
191
+ setAdjustedWidth("".concat(el.offsetWidth + 27, "px"));
192
+ el.remove();
193
+ }
194
+ }, [props.adjustWidthForLimit, props.charactersLimit]);
177
195
  var sizeStyle = (0, _react.useMemo)(function () {
178
196
  return {
179
- width: (0, _size.valueToSize)(width),
197
+ width: (0, _size.valueToSize)(adjustedWidth || width),
180
198
  minWidth: (0, _size.valueToSize)(minWidth),
181
199
  maxWidth: (0, _size.valueToSize)(maxWidth),
182
200
  height: (0, _size.valueToSize)(height),
183
201
  minHeight: (0, _size.valueToSize)(minHeight),
184
202
  maxHeight: (0, _size.valueToSize)(maxHeight)
185
203
  };
186
- }, [minWidth, width, maxWidth, minHeight, height, maxHeight]);
204
+ }, [adjustedWidth, minWidth, width, maxWidth, minHeight, height, maxHeight]);
187
205
  return /*#__PURE__*/_react["default"].createElement(StyledRoot, {
188
206
  noBorder: toolbarOpts && toolbarOpts.noBorder,
189
207
  error: toolbarOpts && toolbarOpts.error,
@@ -192,7 +210,8 @@ function TiptapContainer(props) {
192
210
  width: sizeStyle.width,
193
211
  minWidth: sizeStyle.minWidth,
194
212
  maxWidth: sizeStyle.maxWidth
195
- }
213
+ },
214
+ ref: rootRef
196
215
  }, /*#__PURE__*/_react["default"].createElement(StyledEditorHolder, {
197
216
  disableScrollbar: disableScrollbar
198
217
  }, /*#__PURE__*/_react["default"].createElement(StyledChildren, {
@@ -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","overflowY","display","scrollbarWidth","StyledChildren","_ref3","noPadding","TiptapContainer","props","editor","disabled","children","activePlugins","toolbarOpts","responseAreaProps","autoFocus","minWidth","maxWidth","minHeight","height","useEffect","Promise","resolve","then","commands","focus","sizeStyle","useMemo","valueToSize","createElement","className","style","onChange","_default","exports"],"sources":["../../src/components/TiptapContainer.jsx"],"sourcesContent":["import React, { useEffect, useMemo } 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) => prop !== 'disableScrollbar',\n})(({ disableScrollbar }) => ({\n position: 'relative',\n padding: '0px',\n overflowY: 'auto',\n color: color.text(),\n backgroundColor: 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 16px',\n}));\n\nfunction TiptapContainer(props) {\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 } = props;\n\n useEffect(() => {\n if (editor && autoFocus) {\n Promise.resolve().then(() => {\n editor.commands.focus('end');\n });\n }\n }, [editor, autoFocus]);\n\n const sizeStyle = useMemo(\n () => ({\n width: valueToSize(width),\n minWidth: valueToSize(minWidth),\n maxWidth: valueToSize(maxWidth),\n height: valueToSize(height),\n minHeight: valueToSize(minHeight),\n maxHeight: valueToSize(maxHeight),\n }),\n [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 >\n <StyledEditorHolder disableScrollbar={disableScrollbar}>\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 />\n )}\n </StyledRoot>\n );\n}\n\nexport default TiptapContainer;\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAEA,IAAAI,QAAA,GAAAC,sBAAA,CAAAL,OAAA;AAAsC,SAAAD,wBAAAO,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAT,uBAAA,YAAAA,wBAAAO,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,mBAAAT,CAAA,iBAAAA,CAAA,gBAAAU,OAAA,CAAAV,CAAA,0BAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,cAAAM,EAAA,IAAAd,CAAA,gBAAAc,EAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,EAAA,OAAAP,CAAA,IAAAD,CAAA,GAAAW,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAnB,CAAA,EAAAc,EAAA,OAAAP,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAM,EAAA,EAAAP,CAAA,IAAAC,CAAA,CAAAM,EAAA,IAAAd,CAAA,CAAAc,EAAA,WAAAN,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAAA,SAAAmB,QAAApB,CAAA,EAAAG,CAAA,QAAAF,CAAA,GAAAgB,MAAA,CAAAI,IAAA,CAAArB,CAAA,OAAAiB,MAAA,CAAAK,qBAAA,QAAAhB,CAAA,GAAAW,MAAA,CAAAK,qBAAA,CAAAtB,CAAA,GAAAG,CAAA,KAAAG,CAAA,GAAAA,CAAA,CAAAiB,MAAA,WAAApB,CAAA,WAAAc,MAAA,CAAAE,wBAAA,CAAAnB,CAAA,EAAAG,CAAA,EAAAqB,UAAA,OAAAvB,CAAA,CAAAwB,IAAA,CAAAC,KAAA,CAAAzB,CAAA,EAAAK,CAAA,YAAAL,CAAA;AAAA,SAAA0B,cAAA3B,CAAA,aAAAG,CAAA,MAAAA,CAAA,GAAAyB,SAAA,CAAAC,MAAA,EAAA1B,CAAA,UAAAF,CAAA,WAAA2B,SAAA,CAAAzB,CAAA,IAAAyB,SAAA,CAAAzB,CAAA,QAAAA,CAAA,OAAAiB,OAAA,CAAAH,MAAA,CAAAhB,CAAA,OAAA6B,OAAA,WAAA3B,CAAA,QAAA4B,gBAAA,aAAA/B,CAAA,EAAAG,CAAA,EAAAF,CAAA,CAAAE,CAAA,SAAAc,MAAA,CAAAe,yBAAA,GAAAf,MAAA,CAAAgB,gBAAA,CAAAjC,CAAA,EAAAiB,MAAA,CAAAe,yBAAA,CAAA/B,CAAA,KAAAmB,OAAA,CAAAH,MAAA,CAAAhB,CAAA,GAAA6B,OAAA,WAAA3B,CAAA,IAAAc,MAAA,CAAAC,cAAA,CAAAlB,CAAA,EAAAG,CAAA,EAAAc,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAE,CAAA,iBAAAH,CAAA;AAEtC,IAAMkC,UAAU,GAAG,IAAAC,cAAM,EAAC,KAAK,EAAE;EAC/BC,iBAAiB,EAAE,SAAnBA,iBAAiBA,CAAGC,IAAI;IAAA,OAAK,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,CAACC,QAAQ,CAACD,IAAI,CAAC;EAAA;AACpE,CAAC,CAAC,CAAC,UAAAE,IAAA;EAAA,IAAGC,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAEC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAAEC,KAAK,GAAAH,IAAA,CAALG,KAAK;EAAA,OAAAf,aAAA;IAC1BgB,QAAQ,EAAE,UAAU;IACpBC,OAAO,EAAE,KAAK;IACdC,MAAM,EAAEJ,QAAQ,GAAG,MAAM,GAAG,gBAAgB;IAC5CK,YAAY,EAAE,KAAK;IACnBC,MAAM,EAAE,MAAM;IACd,8BAA8B,EAAE;MAC9BC,SAAS,EAAE,YAAY;MACvBC,QAAQ,EAAE,SAAS;MACnBC,SAAS,EAAE,OAAO;MAClBN,OAAO,EAAE;IACX,CAAC;IACD,eAAe,EAAE;MACfO,SAAS,EAAE;IACb,CAAC;IACD,YAAY,EAAE;MACZP,OAAO,EAAE,QAAQ;MACjBQ,MAAM,EAAE;IACV,CAAC;IACD,sBAAsB,EAAE;MACtBD,SAAS,EAAE,QAAQ;MACnBE,YAAY,EAAE;IAChB,CAAC;IACD,oCAAoC,EAAE;MACpCC,UAAU,EAAE,GAAG;MACfH,SAAS,EAAE,QAAQ;MACnBI,QAAQ,EAAE;IACZ,CAAC;IACD,YAAY,EAAE;MACZJ,SAAS,EAAE,QAAQ;MACnBE,YAAY,EAAE;IAChB,CAAC;IACD,MAAM,EAAE;MACNG,QAAQ,EAAE;IACZ,CAAC;IACD,MAAM,EAAE;MACNA,QAAQ,EAAE;IACZ,CAAC;IACD,MAAM,EAAE;MACNA,QAAQ,EAAE;IACZ,CAAC;IACD,kBAAkB,EAAE;MAClBA,QAAQ,EAAE;IACZ,CAAC;IACD,QAAQ,EAAE;MACRC,eAAe,EAAE,qBAAqB;MACtCX,YAAY,EAAE,QAAQ;MACtBY,KAAK,EAAE,cAAc;MACrBF,QAAQ,EAAE,SAAS;MACnBZ,OAAO,EAAE;IACX,CAAC;IACD,OAAO,EAAE;MACPe,UAAU,EAAE,cAAc;MAC1Bb,YAAY,EAAE,QAAQ;MACtBY,KAAK,EAAE,cAAc;MACrBE,UAAU,EAAE,4BAA4B;MACxCR,MAAM,EAAE,UAAU;MAClBR,OAAO,EAAE,cAAc;MACvB,QAAQ,EAAE;QACRe,UAAU,EAAE,MAAM;QAClBD,KAAK,EAAE,SAAS;QAChBF,QAAQ,EAAE,QAAQ;QAClBZ,OAAO,EAAE;MACX;IACF,CAAC;IACD,cAAc,EAAE;MACdiB,UAAU,EAAE,yBAAyB;MACrCT,MAAM,EAAE,UAAU;MAClBU,WAAW,EAAE;IACf,CAAC;IACD,MAAM,EAAE;MACNjB,MAAM,EAAE,MAAM;MACdkB,SAAS,EAAE,yBAAyB;MACpCX,MAAM,EAAE;IACV,CAAC;IACD,KAAK,EAAE;MACLA,MAAM,EAAE;IACV,CAAC;IACD,SAAS,EAAE;MACTY,WAAW,EAAE,OAAO;MACpBC,KAAK,EAAE,MAAM;MACbC,cAAc,EAAE,UAAU;MAC1BR,KAAK,EAAEA,eAAK,CAACS,IAAI,CAAC,CAAC;MACnBV,eAAe,EAAEC,eAAK,CAACC,UAAU,CAAC;IACpC,CAAC;IACD,8BAA8B,EAAE;MAC9BI,SAAS,EAAE;IACb,CAAC;IACD,UAAU,EAAE;MACVnB,OAAO,EAAE,UAAU;MACnBwB,SAAS,EAAE;IACb,CAAC;IACD,kCAAkC,EAAE;MAClCvB,MAAM,EAAE;IACV;EAAC,GACGH,KAAK,IAAI;IACXG,MAAM,eAAAwB,MAAA,CAAe7B,KAAK,CAAC8B,OAAO,CAAC5B,KAAK,CAAC6B,IAAI;EAC/C,CAAC;AAAA,CACD,CAAC;AAEH,IAAMC,kBAAkB,GAAG,IAAArC,cAAM,EAAC,KAAK,EAAE;EACvCC,iBAAiB,EAAE,SAAnBA,iBAAiBA,CAAGC,IAAI;IAAA,OAAKA,IAAI,KAAK,kBAAkB;EAAA;AAC1D,CAAC,CAAC,CAAC,UAAAoC,KAAA;EAAA,IAAGC,gBAAgB,GAAAD,KAAA,CAAhBC,gBAAgB;EAAA,OAAA/C,aAAA;IACpBgB,QAAQ,EAAE,UAAU;IACpBC,OAAO,EAAE,KAAK;IACd+B,SAAS,EAAE,MAAM;IACjBjB,KAAK,EAAEA,eAAK,CAACS,IAAI,CAAC,CAAC;IACnBV,eAAe,EAAEC,eAAK,CAACC,UAAU,CAAC;EAAC,GAC/Be,gBAAgB,IAAI;IACtB,sBAAsB,EAAE;MACtBE,OAAO,EAAE;IACX,CAAC;IACDC,cAAc,EAAE,MAAM;IACtB,oBAAoB,EAAE;EACxB,CAAC;AAAA,CACD,CAAC;AAEH,IAAMC,cAAc,GAAG,IAAA3C,cAAM,EAAC,KAAK,EAAE;EACnCC,iBAAiB,EAAE,SAAnBA,iBAAiBA,CAAGC,IAAI;IAAA,OAAKA,IAAI,KAAK,WAAW;EAAA;AACnD,CAAC,CAAC,CAAC,UAAA0C,KAAA;EAAA,IAAGC,SAAS,GAAAD,KAAA,CAATC,SAAS;EAAA,OAAQ;IACrBpC,OAAO,EAAEoC,SAAS,GAAG,CAAC,GAAG;EAC3B,CAAC;AAAA,CAAC,CAAC;AAEH,SAASC,eAAeA,CAACC,KAAK,EAAE;EAC9B,IACEC,MAAM,GAcJD,KAAK,CAdPC,MAAM;IACNC,QAAQ,GAaNF,KAAK,CAbPE,QAAQ;IACRC,QAAQ,GAYNH,KAAK,CAZPG,QAAQ;IACRX,gBAAgB,GAWdQ,KAAK,CAXPR,gBAAgB;IAChBY,aAAa,GAUXJ,KAAK,CAVPI,aAAa;IACbC,WAAW,GASTL,KAAK,CATPK,WAAW;IACXC,iBAAiB,GAQfN,KAAK,CARPM,iBAAiB;IACjBC,SAAS,GAOPP,KAAK,CAPPO,SAAS;IACTC,QAAQ,GAMNR,KAAK,CANPQ,QAAQ;IACRzB,KAAK,GAKHiB,KAAK,CALPjB,KAAK;IACL0B,QAAQ,GAINT,KAAK,CAJPS,QAAQ;IACRC,SAAS,GAGPV,KAAK,CAHPU,SAAS;IACTC,MAAM,GAEJX,KAAK,CAFPW,MAAM;IACN3C,SAAS,GACPgC,KAAK,CADPhC,SAAS;EAGX,IAAA4C,gBAAS,EAAC,YAAM;IACd,IAAIX,MAAM,IAAIM,SAAS,EAAE;MACvBM,OAAO,CAACC,OAAO,CAAC,CAAC,CAACC,IAAI,CAAC,YAAM;QAC3Bd,MAAM,CAACe,QAAQ,CAACC,KAAK,CAAC,KAAK,CAAC;MAC9B,CAAC,CAAC;IACJ;EACF,CAAC,EAAE,CAAChB,MAAM,EAAEM,SAAS,CAAC,CAAC;EAEvB,IAAMW,SAAS,GAAG,IAAAC,cAAO,EACvB;IAAA,OAAO;MACLpC,KAAK,EAAE,IAAAqC,iBAAW,EAACrC,KAAK,CAAC;MACzByB,QAAQ,EAAE,IAAAY,iBAAW,EAACZ,QAAQ,CAAC;MAC/BC,QAAQ,EAAE,IAAAW,iBAAW,EAACX,QAAQ,CAAC;MAC/BE,MAAM,EAAE,IAAAS,iBAAW,EAACT,MAAM,CAAC;MAC3BD,SAAS,EAAE,IAAAU,iBAAW,EAACV,SAAS,CAAC;MACjC1C,SAAS,EAAE,IAAAoD,iBAAW,EAACpD,SAAS;IAClC,CAAC;EAAA,CAAC,EACF,CAACwC,QAAQ,EAAEzB,KAAK,EAAE0B,QAAQ,EAAEC,SAAS,EAAEC,MAAM,EAAE3C,SAAS,CAC1D,CAAC;EAED,oBACE1D,MAAA,YAAA+G,aAAA,CAACrE,UAAU;IACTO,QAAQ,EAAE8C,WAAW,IAAIA,WAAW,CAAC9C,QAAS;IAC9CC,KAAK,EAAE6C,WAAW,IAAIA,WAAW,CAAC7C,KAAM;IACxC8D,SAAS,EAAEtB,KAAK,CAACsB,SAAU;IAC3BC,KAAK,EAAE;MAAExC,KAAK,EAAEmC,SAAS,CAACnC,KAAK;MAAEyB,QAAQ,EAAEU,SAAS,CAACV,QAAQ;MAAEC,QAAQ,EAAES,SAAS,CAACT;IAAS;EAAE,gBAE9FnG,MAAA,YAAA+G,aAAA,CAAC/B,kBAAkB;IAACE,gBAAgB,EAAEA;EAAiB,gBACrDlF,MAAA,YAAA+G,aAAA,CAACzB,cAAc;IAACE,SAAS,EAAEO,WAAW,IAAIA,WAAW,CAACP;EAAU,GAAEK,QAAyB,CACzE,CAAC,EAEpBF,MAAM,iBACL3F,MAAA,YAAA+G,aAAA,CAACzG,QAAA,WAAa;IACZqF,MAAM,EAAEA,MAAO;IACfK,iBAAiB,EAAEA,iBAAkB;IACrCD,WAAW,EAAEA,WAAY;IACzBD,aAAa,EAAEA,aAAc;IAC7BoB,QAAQ,EAAExB,KAAK,CAACwB;EAAS,CAC1B,CAEO,CAAC;AAEjB;AAAC,IAAAC,QAAA,GAAAC,OAAA,cAEc3B,eAAe","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","paddingLeft","borderTop","tableLayout","width","borderCollapse","text","textAlign","concat","palette","main","StyledEditorHolder","_ref2","disableScrollbar","overflowY","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","_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) => prop !== 'disableScrollbar',\n})(({ disableScrollbar }) => ({\n position: 'relative',\n padding: '0px',\n overflowY: 'auto',\n color: color.text(),\n backgroundColor: 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 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}>\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 />\n )}\n </StyledRoot>\n );\n}\n\nexport default TiptapContainer;\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,22 +1,26 @@
1
1
  {
2
2
  "name": "@pie-lib/editable-html-tip-tap",
3
- "version": "1.1.1-next.3",
3
+ "version": "1.2.0-next.0+c7578ca",
4
4
  "description": "",
5
5
  "license": "ISC",
6
6
  "main": "lib/index.js",
7
7
  "module": "src/index.jsx",
8
8
  "author": "pie-framework developers",
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "https://github.com/pie-framework/pie-lib"
12
+ },
9
13
  "dependencies": {
10
14
  "@dnd-kit/core": "6.3.1",
11
15
  "@dnd-kit/modifiers": "9.0.0",
12
16
  "@dnd-kit/utilities": "3.2.2",
13
17
  "@mui/icons-material": "^7.3.4",
14
18
  "@mui/material": "^7.3.4",
15
- "@pie-lib/drag": "^3.1.1-next.1",
16
- "@pie-lib/math-input": "^7.1.1-next.1",
17
- "@pie-lib/math-rendering": "^4.1.1-next.1",
18
- "@pie-lib/math-toolbar": "^2.1.1-next.1",
19
- "@pie-lib/render-ui": "^5.1.1-next.1",
19
+ "@pie-lib/drag": "^3.2.0-next.0+c7578ca",
20
+ "@pie-lib/math-input": "^7.2.0-next.0+c7578ca",
21
+ "@pie-lib/math-rendering": "^4.2.0-next.0+c7578ca",
22
+ "@pie-lib/math-toolbar": "^2.2.0-next.0+c7578ca",
23
+ "@pie-lib/render-ui": "^5.2.0-next.0+c7578ca",
20
24
  "@tiptap/core": "3.0.9",
21
25
  "@tiptap/extension-character-count": "3.0.9",
22
26
  "@tiptap/extension-color": "3.0.9",
@@ -57,6 +61,6 @@
57
61
  "publishConfig": {
58
62
  "access": "public"
59
63
  },
60
- "gitHead": "3bd6fd50a65d60fc94a893e87babf027c1144ed6",
64
+ "gitHead": "c7578cae82de46ec0dae41b7d1ef924401e6226d",
61
65
  "scripts": {}
62
66
  }
@@ -1,4 +1,4 @@
1
- import React, { useEffect, useMemo } from 'react';
1
+ import React, { useEffect, useMemo, useState, useRef } from 'react';
2
2
  import { styled } from '@mui/material/styles';
3
3
  import { color } from '@pie-lib/render-ui';
4
4
  import { valueToSize } from '../utils/size';
@@ -62,7 +62,7 @@ const StyledRoot = styled('div', {
62
62
  background: 'var(--black)',
63
63
  borderRadius: '0.5rem',
64
64
  color: 'var(--white)',
65
- fontFamily: "'JetBrainsMono', monospace",
65
+ fontFamily: '\'JetBrainsMono\', monospace',
66
66
  margin: '1.5rem 0',
67
67
  padding: '0.75rem 1rem',
68
68
  '& code': {
@@ -127,10 +127,12 @@ const StyledEditorHolder = styled('div', {
127
127
  const StyledChildren = styled('div', {
128
128
  shouldForwardProp: (prop) => prop !== 'noPadding',
129
129
  })(({ noPadding }) => ({
130
- padding: noPadding ? 0 : '10px 16px',
130
+ padding: noPadding ? 0 : '10px 8px',
131
131
  }));
132
132
 
133
133
  function TiptapContainer(props) {
134
+ const [adjustedWidth, setAdjustedWidth] = useState(null);
135
+ const rootRef = useRef(null);
134
136
  const {
135
137
  editor,
136
138
  disabled,
@@ -146,6 +148,7 @@ function TiptapContainer(props) {
146
148
  minHeight,
147
149
  height,
148
150
  maxHeight,
151
+ ref,
149
152
  } = props;
150
153
 
151
154
  useEffect(() => {
@@ -156,16 +159,32 @@ function TiptapContainer(props) {
156
159
  }
157
160
  }, [editor, autoFocus]);
158
161
 
162
+ useEffect(() => {
163
+ if (props.adjustWidthForLimit) {
164
+ const el = document.createElement('p');
165
+
166
+ el.style.visibility = 'hidden';
167
+ el.style.position = 'absolute';
168
+ el.textContent = 'W'.repeat(props.charactersLimit);
169
+
170
+ rootRef.current.appendChild(el);
171
+
172
+ setAdjustedWidth(`${el.offsetWidth + 27}px`);
173
+
174
+ el.remove();
175
+ }
176
+ }, [props.adjustWidthForLimit, props.charactersLimit]);
177
+
159
178
  const sizeStyle = useMemo(
160
179
  () => ({
161
- width: valueToSize(width),
180
+ width: valueToSize(adjustedWidth || width),
162
181
  minWidth: valueToSize(minWidth),
163
182
  maxWidth: valueToSize(maxWidth),
164
183
  height: valueToSize(height),
165
184
  minHeight: valueToSize(minHeight),
166
185
  maxHeight: valueToSize(maxHeight),
167
186
  }),
168
- [minWidth, width, maxWidth, minHeight, height, maxHeight],
187
+ [adjustedWidth, minWidth, width, maxWidth, minHeight, height, maxHeight],
169
188
  );
170
189
 
171
190
  return (
@@ -174,6 +193,7 @@ function TiptapContainer(props) {
174
193
  error={toolbarOpts && toolbarOpts.error}
175
194
  className={props.className}
176
195
  style={{ width: sizeStyle.width, minWidth: sizeStyle.minWidth, maxWidth: sizeStyle.maxWidth }}
196
+ ref={rootRef}
177
197
  >
178
198
  <StyledEditorHolder disableScrollbar={disableScrollbar}>
179
199
  <StyledChildren noPadding={toolbarOpts && toolbarOpts.noPadding}>{children}</StyledChildren>
@@ -1 +0,0 @@
1
- []