@onesy/ui-react 1.0.65 → 1.0.67

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.
@@ -18,6 +18,8 @@ const jsx_runtime_1 = require("react/jsx-runtime");
18
18
  const react_1 = __importDefault(require("react"));
19
19
  const utils_1 = require("@onesy/utils");
20
20
  const style_react_1 = require("@onesy/style-react");
21
+ const IconMaterialSuperscriptW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialSuperscriptW100"));
22
+ const IconMaterialSubscriptW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialSubscriptW100"));
21
23
  const IconMaterialFormatItalicW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatItalicW100"));
22
24
  const IconMaterialFormatUnderlinedW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatUnderlinedW100"));
23
25
  const IconMaterialStrikethroughSW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialStrikethroughSW100"));
@@ -201,7 +203,7 @@ const SmartTextField = react_1.default.forwardRef((props_, ref) => {
201
203
  setOptionsMention([...(optionsMention_ || [])]);
202
204
  }, [(0, utils_1.hash)(optionsMention_)]);
203
205
  react_1.default.useEffect(() => {
204
- const valuePrevious = (0, utils_2.decodeHTMLEntities)(refs.root.current.innerHTML || '').replaceAll(' ', ' ');
206
+ const valuePrevious = (refs.root.current.innerHTML || '').replaceAll(' ', ' ');
205
207
  const valueNew = (0, utils_1.textToInnerHTML)(value_);
206
208
  if (value_ !== undefined && valuePrevious !== valueNew)
207
209
  validate(!value_ ? '' : (0, utils_2.sanitize)(value_));
@@ -288,7 +290,7 @@ const SmartTextField = react_1.default.forwardRef((props_, ref) => {
288
290
  refs.search.current = getAtSearchData();
289
291
  const onInput = react_1.default.useCallback((event) => {
290
292
  if (refs.root.current) {
291
- let valueInput = (0, utils_2.decodeHTMLEntities)(refs.root.current.innerHTML || '');
293
+ let valueInput = refs.root.current.innerHTML || '';
292
294
  if (refs.root.current.textContent === '') {
293
295
  valueInput = '';
294
296
  refs.root.current.innerHTML = '';
@@ -454,7 +456,7 @@ const SmartTextField = react_1.default.forwardRef((props_, ref) => {
454
456
  // Remove the text node
455
457
  textNode.remove();
456
458
  // Invoke onChange method with new value
457
- const valueInput = (0, utils_1.innerHTMLToText)((0, utils_2.decodeHTMLEntities)(refs.root.current.innerHTML));
459
+ const valueInput = (0, utils_1.innerHTMLToText)(refs.root.current.innerHTML);
458
460
  if ((0, utils_1.is)('function', refs.onChange.current))
459
461
  refs.onChange.current(valueInput, { target: refs.root.current });
460
462
  // Update the caret position to be outside the span mention
@@ -583,6 +585,20 @@ const SmartTextField = react_1.default.forwardRef((props_, ref) => {
583
585
  else
584
586
  setTextSelected((values) => values.filter((item) => item !== 'strike-line'));
585
587
  break;
588
+ case 'superscript':
589
+ refs.rootDocument.current.execCommand('superscript');
590
+ if (query('superscript'))
591
+ setTextSelected(values => [...values, 'superscript']);
592
+ else
593
+ setTextSelected(values => values.filter(item => item !== 'superscript'));
594
+ break;
595
+ case 'subscript':
596
+ refs.rootDocument.current.execCommand('subscript');
597
+ if (query('subscript'))
598
+ setTextSelected(values => [...values, 'subscript']);
599
+ else
600
+ setTextSelected(values => values.filter(item => item !== 'subscript'));
601
+ break;
586
602
  case 'link-add':
587
603
  refs.rootDocument.current.execCommand('createLink', undefined, argument);
588
604
  break;
@@ -680,6 +696,8 @@ const SmartTextField = react_1.default.forwardRef((props_, ref) => {
680
696
  'italic': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Italic') }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.textSelected.current.includes('italic'), onClick: textMethod('italic') }, { children: (0, jsx_runtime_1.jsx)(IconMaterialFormatItalicW100_1.default, Object.assign({}, IconProps)) })) }))),
681
697
  'underline': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Underline') }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.textSelected.current.includes('underline'), onClick: textMethod('underline') }, { children: (0, jsx_runtime_1.jsx)(IconMaterialFormatUnderlinedW100_1.default, Object.assign({}, IconProps)) })) }))),
682
698
  'bold': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Bold'), onClick: textMethod('bold') }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.textSelected.current.includes('bold') }, { children: (0, jsx_runtime_1.jsx)(IconMaterialFormatBoldW100_1.default, Object.assign({}, IconProps)) })) }))),
699
+ 'superscript': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Superscript'), onClick: textMethod('superscript') }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.textSelected.current.includes('superscript') }, { children: (0, jsx_runtime_1.jsx)(IconMaterialSuperscriptW100_1.default, Object.assign({}, IconProps)) })) }))),
700
+ 'subscript': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Subscript'), onClick: textMethod('subscript') }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.textSelected.current.includes('subscript') }, { children: (0, jsx_runtime_1.jsx)(IconMaterialSubscriptW100_1.default, Object.assign({}, IconProps)) })) }))),
683
701
  'strike-line': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Strike Line'), onClick: textMethod('strike-line') }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.textSelected.current.includes('strike-line') }, { children: (0, jsx_runtime_1.jsx)(IconMaterialStrikethroughSW100_1.default, Object.assign({}, IconProps)) })) }))),
684
702
  'link-add': ((0, jsx_runtime_1.jsx)(WrapperAppend, Object.assign({ open: refs.open.current.linkMiniMenu, anchorElement: refs.miniMenuElements.linkAdd, element: ((0, jsx_runtime_1.jsx)(ClickListener, Object.assign({ onClickOutside: () => updateOpen('linkMiniMenu', false), include: [refs.miniMenuElements.linkAdd] }, { children: (0, jsx_runtime_1.jsx)(Input, { ref: refs.miniMenuElements.linkAddInput, name: l('Link'), labelButton: l('Add'), value: refs.inputValues.current.link, onChange: (valueNew) => updateInputValues('link', valueNew), onClick: () => {
685
703
  if (refs.range.current) {
@@ -720,7 +738,7 @@ const SmartTextField = react_1.default.forwardRef((props_, ref) => {
720
738
  setTextSelection(null);
721
739
  }, include: [refs.miniMenu, refs.miniMenu.current, refs.miniMenuElements.linkAddInput, refs.miniMenuElements.linkAddInput.current] }, { children: (0, jsx_runtime_1.jsxs)(Line, Object.assign({ gap: 2, direction: 'row', align: 'center', justify: 'flex-start', role: 'toolbar', color: 'themed', "aria-label": l('Mini menu'), Component: Surface, className: (0, style_react_1.classNames)([
722
740
  classes.textMiniMenu
723
- ]) }, { children: [(0, jsx_runtime_1.jsxs)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: [updateElements['italic'], updateElements['underline'], updateElements['bold'], updateElements['strike-line']] })), (0, jsx_runtime_1.jsxs)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: [updateElements['link-add'], updateElements['link-remove']] })), (0, jsx_runtime_1.jsx)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: actionElements['clear'] }))] })) })) })) })));
741
+ ]) }, { children: [(0, jsx_runtime_1.jsxs)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: [updateElements['italic'], updateElements['underline'], updateElements['bold'], updateElements['strike-line']] })), (0, jsx_runtime_1.jsxs)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: [updateElements['superscript'], updateElements['subscript']] })), (0, jsx_runtime_1.jsxs)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: [updateElements['link-add'], updateElements['link-remove']] })), (0, jsx_runtime_1.jsx)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: actionElements['clear'] }))] })) })) })) })));
724
742
  }, parent: refs.root.current, anchor: textSelection === null || textSelection === void 0 ? void 0 : textSelection.selection, portal: true, alignment: 'center', position: 'bottom', clearOnClose: true }, AppendProps)));
725
743
  }, [open, textSelection, textSelected]);
726
744
  const menu = react_1.default.useMemo(() => {
@@ -10,6 +10,8 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
10
10
  import React from 'react';
11
11
  import { hash, innerHTMLToText, is, isEnvironment, parse, stringToColor, textToInnerHTML } from '@onesy/utils';
12
12
  import { classNames, style as styleMethod, useOnesyTheme } from '@onesy/style-react';
13
+ import IconMaterialSuperscript from '@onesy/icons-material-rounded-react/IconMaterialSuperscriptW100';
14
+ import IconMaterialSubscript from '@onesy/icons-material-rounded-react/IconMaterialSubscriptW100';
13
15
  import IconMaterialFormatItalic from '@onesy/icons-material-rounded-react/IconMaterialFormatItalicW100';
14
16
  import IconMaterialFormatUnderlined from '@onesy/icons-material-rounded-react/IconMaterialFormatUnderlinedW100';
15
17
  import IconMaterialStrikethroughS from '@onesy/icons-material-rounded-react/IconMaterialStrikethroughSW100';
@@ -32,7 +34,7 @@ import ToggleButtonElement from '../ToggleButton';
32
34
  import ClickListenerElement from '../ClickListener';
33
35
  import ToggleButtonsElement from '../ToggleButtons';
34
36
  import MenuElement from '../Menu';
35
- import { sanitize, caret, keyboardStyleCommands, staticClassName, decodeHTMLEntities } from '../utils';
37
+ import { sanitize, caret, keyboardStyleCommands, staticClassName } from '../utils';
36
38
  const useStyle = styleMethod(theme => ({
37
39
  root: {
38
40
  minHeight: '20px',
@@ -227,7 +229,7 @@ const SmartTextField = /*#__PURE__*/React.forwardRef((props_, ref) => {
227
229
  setOptionsMention([...(optionsMention_ || [])]);
228
230
  }, [hash(optionsMention_)]);
229
231
  React.useEffect(() => {
230
- const valuePrevious = decodeHTMLEntities(refs.root.current.innerHTML || '').replaceAll('&nbsp;', ' ');
232
+ const valuePrevious = (refs.root.current.innerHTML || '').replaceAll('&nbsp;', ' ');
231
233
  const valueNew = textToInnerHTML(value_);
232
234
  if (value_ !== undefined && valuePrevious !== valueNew) validate(!value_ ? '' : sanitize(value_));
233
235
  }, [value_]);
@@ -307,7 +309,7 @@ const SmartTextField = /*#__PURE__*/React.forwardRef((props_, ref) => {
307
309
  refs.search.current = getAtSearchData();
308
310
  const onInput = React.useCallback(event => {
309
311
  if (refs.root.current) {
310
- let valueInput = decodeHTMLEntities(refs.root.current.innerHTML || '');
312
+ let valueInput = refs.root.current.innerHTML || '';
311
313
  if (refs.root.current.textContent === '') {
312
314
  valueInput = '';
313
315
  refs.root.current.innerHTML = '';
@@ -472,7 +474,7 @@ const SmartTextField = /*#__PURE__*/React.forwardRef((props_, ref) => {
472
474
  textNode.remove();
473
475
 
474
476
  // Invoke onChange method with new value
475
- const valueInput = innerHTMLToText(decodeHTMLEntities(refs.root.current.innerHTML));
477
+ const valueInput = innerHTMLToText(refs.root.current.innerHTML);
476
478
  if (is('function', refs.onChange.current)) refs.onChange.current(valueInput, {
477
479
  target: refs.root.current
478
480
  });
@@ -606,6 +608,14 @@ const SmartTextField = /*#__PURE__*/React.forwardRef((props_, ref) => {
606
608
  refs.rootDocument.current.execCommand('strikeThrough');
607
609
  if (query('strikeThrough')) setTextSelected(values => [...values, 'strike-line']);else setTextSelected(values => values.filter(item => item !== 'strike-line'));
608
610
  break;
611
+ case 'superscript':
612
+ refs.rootDocument.current.execCommand('superscript');
613
+ if (query('superscript')) setTextSelected(values => [...values, 'superscript']);else setTextSelected(values => values.filter(item => item !== 'superscript'));
614
+ break;
615
+ case 'subscript':
616
+ refs.rootDocument.current.execCommand('subscript');
617
+ if (query('subscript')) setTextSelected(values => [...values, 'subscript']);else setTextSelected(values => values.filter(item => item !== 'subscript'));
618
+ break;
609
619
  case 'link-add':
610
620
  refs.rootDocument.current.execCommand('createLink', undefined, argument);
611
621
  break;
@@ -769,6 +779,18 @@ const SmartTextField = /*#__PURE__*/React.forwardRef((props_, ref) => {
769
779
  }, /*#__PURE__*/React.createElement(ToggleButton, _extends({}, ToggleButtonProps, {
770
780
  selected: refs.textSelected.current.includes('bold')
771
781
  }), /*#__PURE__*/React.createElement(IconMaterialFormatBold, IconProps))),
782
+ 'superscript': /*#__PURE__*/React.createElement(WrapperToggleButton, {
783
+ name: l('Superscript'),
784
+ onClick: textMethod('superscript')
785
+ }, /*#__PURE__*/React.createElement(ToggleButton, _extends({}, ToggleButtonProps, {
786
+ selected: refs.textSelected.current.includes('superscript')
787
+ }), /*#__PURE__*/React.createElement(IconMaterialSuperscript, IconProps))),
788
+ 'subscript': /*#__PURE__*/React.createElement(WrapperToggleButton, {
789
+ name: l('Subscript'),
790
+ onClick: textMethod('subscript')
791
+ }, /*#__PURE__*/React.createElement(ToggleButton, _extends({}, ToggleButtonProps, {
792
+ selected: refs.textSelected.current.includes('subscript')
793
+ }), /*#__PURE__*/React.createElement(IconMaterialSubscript, IconProps))),
772
794
  'strike-line': /*#__PURE__*/React.createElement(WrapperToggleButton, {
773
795
  name: l('Strike Line'),
774
796
  onClick: textMethod('strike-line')
@@ -862,7 +884,7 @@ const SmartTextField = /*#__PURE__*/React.forwardRef((props_, ref) => {
862
884
  "aria-label": l('Mini menu'),
863
885
  Component: Surface,
864
886
  className: classNames([classes.textMiniMenu])
865
- }, /*#__PURE__*/React.createElement(ToggleButtons, ToggleButtonsProps, updateElements['italic'], updateElements['underline'], updateElements['bold'], updateElements['strike-line']), /*#__PURE__*/React.createElement(ToggleButtons, ToggleButtonsProps, updateElements['link-add'], updateElements['link-remove']), /*#__PURE__*/React.createElement(ToggleButtons, ToggleButtonsProps, actionElements['clear'])))));
887
+ }, /*#__PURE__*/React.createElement(ToggleButtons, ToggleButtonsProps, updateElements['italic'], updateElements['underline'], updateElements['bold'], updateElements['strike-line']), /*#__PURE__*/React.createElement(ToggleButtons, ToggleButtonsProps, updateElements['superscript'], updateElements['subscript']), /*#__PURE__*/React.createElement(ToggleButtons, ToggleButtonsProps, updateElements['link-add'], updateElements['link-remove']), /*#__PURE__*/React.createElement(ToggleButtons, ToggleButtonsProps, actionElements['clear'])))));
866
888
  },
867
889
  parent: refs.root.current,
868
890
  anchor: textSelection?.selection,
package/esm/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license UiReact v1.0.65
1
+ /** @license UiReact v1.0.67
2
2
  *
3
3
  * This source code is licensed under the MIT license found in the
4
4
  * LICENSE file in the root directory of this source tree.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onesy/ui-react",
3
- "version": "1.0.65",
3
+ "version": "1.0.67",
4
4
  "description": "UI for React",
5
5
  "repository": "https://github.com/onesy-me/onesy.git",
6
6
  "author": "Lazar <lazareric2@gmail.com>",