@onesy/ui-react 1.0.96 → 1.0.98

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.
@@ -202,21 +202,6 @@ const useStyle = (0, style_react_1.style)(theme => ({
202
202
  },
203
203
  textFieldColor: {
204
204
  flex: '1 1 auto'
205
- },
206
- inputColor: {
207
- border: 'none',
208
- borderRadius: theme.methods.shape.radius.value(40, 'px'),
209
- overflow: 'hidden',
210
- width: '17px',
211
- height: '17px',
212
- cursor: 'pointer',
213
- boxShadow: theme.shadows.values.default[1],
214
- '&::-webkit-color-swatch-wrapper': {
215
- padding: '0px'
216
- },
217
- '&::-webkit-color-swatch': {
218
- border: 'none'
219
- }
220
205
  }
221
206
  }), { name: 'onesy-RichTextEditor' });
222
207
  const RichTextEditor = react_1.default.forwardRef((props__, ref) => {
@@ -291,7 +276,7 @@ const RichTextEditor = react_1.default.forwardRef((props__, ref) => {
291
276
  backgroundPalette: react_1.default.useRef(null),
292
277
  linkAdd: react_1.default.useRef(null),
293
278
  linkAddInput: react_1.default.useRef(null),
294
- linkRemove: react_1.default.useRef(null),
279
+ linkRemove: react_1.default.useRef(null)
295
280
  },
296
281
  elements: {
297
282
  color: react_1.default.useRef(null),
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import { ITextField } from '../TextField/TextField';
3
+ import { IPropsAny } from '../types';
3
4
  export declare type ISmartTextField = ITextField & {
4
5
  placeholder?: any;
5
6
  edit?: boolean;
@@ -11,8 +12,10 @@ export declare type ISmartTextField = ITextField & {
11
12
  addTag?: (value: any) => any;
12
13
  }) => any;
13
14
  additional?: any;
15
+ miniMenuExtended?: boolean;
14
16
  pasteText?: boolean;
15
17
  HelperTextProps?: any;
18
+ ColorTextFieldProps?: IPropsAny;
16
19
  };
17
20
  declare const SmartTextField: React.FC<ISmartTextField>;
18
21
  export default SmartTextField;
@@ -18,6 +18,14 @@ 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 IconMaterialFormatAlignLeftW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatAlignLeftW100"));
22
+ const IconMaterialFormatAlignCenterW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatAlignCenterW100"));
23
+ const IconMaterialFormatAlignRightW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatAlignRightW100"));
24
+ const IconMaterialFormatAlignJustifyW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatAlignJustifyW100"));
25
+ const IconMaterialFormatColorTextW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatColorTextW100"));
26
+ const IconMaterialFormatColorFillW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatColorFillW100"));
27
+ const IconMaterialFormatListNumberedW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatListNumberedW100"));
28
+ const IconMaterialFormatListBulletedW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatListBulletedW100"));
21
29
  const IconMaterialSuperscriptW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialSuperscriptW100"));
22
30
  const IconMaterialSubscriptW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialSubscriptW100"));
23
31
  const IconMaterialFormatItalicW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatItalicW100"));
@@ -27,6 +35,7 @@ const IconMaterialFormatBoldW100_1 = __importDefault(require("@onesy/icons-mater
27
35
  const IconMaterialAddLinkW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialAddLinkW100"));
28
36
  const IconMaterialLinkOffW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialLinkOffW100"));
29
37
  const IconMaterialFormatClearW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFormatClearW100"));
38
+ const ColorTextField_1 = __importDefault(require("../ColorTextField"));
30
39
  const TextField_1 = __importDefault(require("../TextField/TextField"));
31
40
  const Line_1 = __importDefault(require("../Line"));
32
41
  const List_1 = __importDefault(require("../List"));
@@ -42,6 +51,7 @@ const ToggleButton_1 = __importDefault(require("../ToggleButton"));
42
51
  const ClickListener_1 = __importDefault(require("../ClickListener"));
43
52
  const ToggleButtons_1 = __importDefault(require("../ToggleButtons"));
44
53
  const Menu_1 = __importDefault(require("../Menu"));
54
+ const Divider_1 = __importDefault(require("../Divider"));
45
55
  const utils_2 = require("../utils");
46
56
  const useStyle = (0, style_react_1.style)(theme => ({
47
57
  root: {
@@ -92,6 +102,26 @@ const useStyle = (0, style_react_1.style)(theme => ({
92
102
  flex: '1 1 auto !important'
93
103
  }
94
104
  },
105
+ palette: {
106
+ padding: theme.methods.space.value(1.5, 'px'),
107
+ borderRadius: theme.methods.shape.radius.value(1, 'px'),
108
+ boxShadow: theme.shadows.values.default[2]
109
+ },
110
+ paletteItem: {
111
+ position: 'relative',
112
+ width: '17px',
113
+ height: '17px',
114
+ cursor: 'pointer',
115
+ borderRadius: theme.methods.shape.radius.value(40, 'px'),
116
+ boxShadow: theme.shadows.values.default[1],
117
+ transition: theme.methods.transitions.make('box-shadow'),
118
+ '&:hover': {
119
+ boxShadow: theme.shadows.values.default[2],
120
+ }
121
+ },
122
+ textFieldColor: {
123
+ flex: '1 1 auto'
124
+ },
95
125
  helperText: {
96
126
  display: 'inline-flex',
97
127
  color: theme.palette.text.default.secondary,
@@ -124,7 +154,9 @@ const SmartTextField = react_1.default.forwardRef((props_, ref) => {
124
154
  const ClickListener = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.ClickListener) || ClickListener_1.default; }, [theme]);
125
155
  const ToggleButtons = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.ToggleButtons) || ToggleButtons_1.default; }, [theme]);
126
156
  const Menu = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.Menu) || Menu_1.default; }, [theme]);
127
- const { version = 'text', size = 'regular', valueDefault, value: value_, inputProps, onChange, error: error_, name, placeholder, edit, mention, multiline, onChangeMention, optionsMention: optionsMention_, error, helperText, mentionLabel, onKeyDown: onKeyDown_, pasteText = true, readOnly, additional, HelperTextProps, className } = props, other = __rest(props, ["version", "size", "valueDefault", "value", "inputProps", "onChange", "error", "name", "placeholder", "edit", "mention", "multiline", "onChangeMention", "optionsMention", "error", "helperText", "mentionLabel", "onKeyDown", "pasteText", "readOnly", "additional", "HelperTextProps", "className"]);
157
+ const Divider = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.Divider) || Divider_1.default; }, [theme]);
158
+ const ColorTextField = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.ColorTextField) || ColorTextField_1.default; }, [theme]);
159
+ const { tonal = true, color = 'default', version = 'text', size = 'regular', valueDefault, value: value_, inputProps, onChange, error: error_, name, placeholder, edit, mention, multiline, onChangeMention, optionsMention: optionsMention_, error, helperText, mentionLabel, onKeyDown: onKeyDown_, pasteText = true, readOnly, additional, miniMenuExtended, HelperTextProps, ColorTextFieldProps, className } = props, other = __rest(props, ["tonal", "color", "version", "size", "valueDefault", "value", "inputProps", "onChange", "error", "name", "placeholder", "edit", "mention", "multiline", "onChangeMention", "optionsMention", "error", "helperText", "mentionLabel", "onKeyDown", "pasteText", "readOnly", "additional", "miniMenuExtended", "HelperTextProps", "ColorTextFieldProps", "className"]);
128
160
  const { classes } = useStyle();
129
161
  const [value, setValue] = react_1.default.useState(valueDefault || '');
130
162
  const [openMenu, setOpenMenu] = react_1.default.useState(false);
@@ -161,6 +193,23 @@ const SmartTextField = react_1.default.forwardRef((props_, ref) => {
161
193
  linkAddInput: react_1.default.useRef(null),
162
194
  linkRemove: react_1.default.useRef(null)
163
195
  },
196
+ elements: {
197
+ color: react_1.default.useRef(null),
198
+ background: react_1.default.useRef(null),
199
+ linkAdd: react_1.default.useRef(null),
200
+ linkRemove: react_1.default.useRef(null),
201
+ quote: react_1.default.useRef(null),
202
+ image: react_1.default.useRef(null),
203
+ video: react_1.default.useRef(null),
204
+ videoYoutube: react_1.default.useRef(null),
205
+ table: react_1.default.useRef(null),
206
+ drawing: react_1.default.useRef(null),
207
+ drawingSvg: react_1.default.useRef(null),
208
+ drawingSize: react_1.default.useRef(null),
209
+ drawingSelect: react_1.default.useRef(null),
210
+ drawingPalette: react_1.default.useRef(null),
211
+ code: react_1.default.useRef(null)
212
+ },
164
213
  textSelected: react_1.default.useRef(null),
165
214
  textSelection: react_1.default.useRef(null),
166
215
  rootDocument: react_1.default.useRef(null),
@@ -168,7 +217,8 @@ const SmartTextField = react_1.default.forwardRef((props_, ref) => {
168
217
  edit: react_1.default.useRef(edit),
169
218
  multiline: react_1.default.useRef(multiline),
170
219
  readOnly: react_1.default.useRef(readOnly),
171
- onChange: react_1.default.useRef(onChange)
220
+ onChange: react_1.default.useRef(onChange),
221
+ props: react_1.default.useRef(props)
172
222
  };
173
223
  refs.value.current = value;
174
224
  refs.version.current = version;
@@ -183,6 +233,7 @@ const SmartTextField = react_1.default.forwardRef((props_, ref) => {
183
233
  refs.multiline.current = multiline;
184
234
  refs.readOnly.current = readOnly;
185
235
  refs.onChange.current = onChange;
236
+ refs.props.current = props;
186
237
  const rootDocument = (0, utils_1.isEnvironment)('browser') && (((_a = refs.root.current) === null || _a === void 0 ? void 0 : _a.ownerDocument) || window.document);
187
238
  const rootWindow = rootDocument && (rootDocument.defaultView || window);
188
239
  refs.rootDocument.current = rootDocument;
@@ -560,30 +611,58 @@ const SmartTextField = react_1.default.forwardRef((props_, ref) => {
560
611
  case 'italic':
561
612
  refs.rootDocument.current.execCommand('italic');
562
613
  if (query('italic'))
563
- setTextSelected((values) => [...values, 'italic']);
614
+ setTextSelected(values => [...values, 'italic']);
564
615
  else
565
- setTextSelected((values) => values.filter((item) => item !== 'italic'));
616
+ setTextSelected(values => values.filter(item => item !== 'italic'));
566
617
  break;
567
618
  case 'underline':
568
619
  refs.rootDocument.current.execCommand('underline');
569
620
  if (query('underline'))
570
- setTextSelected((values) => [...values, 'underline']);
621
+ setTextSelected(values => [...values, 'underline']);
571
622
  else
572
- setTextSelected((values) => values.filter((item) => item !== 'underline'));
623
+ setTextSelected(values => values.filter(item => item !== 'underline'));
573
624
  break;
574
625
  case 'bold':
575
626
  refs.rootDocument.current.execCommand('bold');
576
627
  if (query('bold'))
577
- setTextSelected((values) => [...values, 'bold']);
628
+ setTextSelected(values => [...values, 'bold']);
578
629
  else
579
- setTextSelected((values) => values.filter((item) => item !== 'bold'));
630
+ setTextSelected(values => values.filter(item => item !== 'bold'));
580
631
  break;
581
632
  case 'strike-line':
582
633
  refs.rootDocument.current.execCommand('strikeThrough');
583
634
  if (query('strikeThrough'))
584
- setTextSelected((values) => [...values, 'strike-line']);
635
+ setTextSelected(values => [...values, 'strike-line']);
636
+ else
637
+ setTextSelected(values => values.filter(item => item !== 'strike-line'));
638
+ break;
639
+ case 'align-left':
640
+ refs.rootDocument.current.execCommand('justifyLeft');
641
+ if (query('justifyLeft'))
642
+ setTextSelected(values => [...values.filter(item => !item.includes('align')), 'align-left']);
643
+ else
644
+ setTextSelected(values => values.filter(item => item !== 'align-left'));
645
+ break;
646
+ case 'align-center':
647
+ refs.rootDocument.current.execCommand('justifyCenter');
648
+ if (query('justifyCenter'))
649
+ setTextSelected(values => [...values.filter(item => !item.includes('align')), 'align-center']);
650
+ else
651
+ setTextSelected(values => values.filter(item => item !== 'align-center'));
652
+ break;
653
+ case 'align-right':
654
+ refs.rootDocument.current.execCommand('justifyRight');
655
+ if (query('justifyRight'))
656
+ setTextSelected(values => [...values.filter(item => !item.includes('align')), 'align-right']);
657
+ else
658
+ setTextSelected(values => values.filter(item => item !== 'align-right'));
659
+ break;
660
+ case 'align-justify':
661
+ refs.rootDocument.current.execCommand('justifyFull');
662
+ if (query('justifyFull'))
663
+ setTextSelected(values => [...values.filter(item => !item.includes('align')), 'align-justify']);
585
664
  else
586
- setTextSelected((values) => values.filter((item) => item !== 'strike-line'));
665
+ setTextSelected(values => values.filter(item => item !== 'align-justify'));
587
666
  break;
588
667
  case 'superscript':
589
668
  refs.rootDocument.current.execCommand('superscript');
@@ -599,12 +678,64 @@ const SmartTextField = react_1.default.forwardRef((props_, ref) => {
599
678
  else
600
679
  setTextSelected(values => values.filter(item => item !== 'subscript'));
601
680
  break;
681
+ case 'indent':
682
+ refs.rootDocument.current.execCommand('indent');
683
+ break;
684
+ case 'outdent':
685
+ refs.rootDocument.current.execCommand('outdent');
686
+ break;
687
+ case 'font-version':
688
+ refs.rootDocument.current.execCommand('formatBlock', undefined, argument);
689
+ break;
690
+ case 'font-family':
691
+ refs.rootDocument.current.execCommand('styleWithCSS', true);
692
+ refs.rootDocument.current.execCommand('fontName', undefined, argument);
693
+ refs.rootDocument.current.execCommand('styleWithCSS', false);
694
+ break;
695
+ case 'font-size':
696
+ refs.rootDocument.current.execCommand('styleWithCSS', true);
697
+ refs.rootDocument.current.execCommand('fontSize', undefined, argument);
698
+ refs.rootDocument.current.execCommand('styleWithCSS', false);
699
+ break;
700
+ case 'font-color':
701
+ refs.rootDocument.current.execCommand('styleWithCSS', true);
702
+ refs.rootDocument.current.execCommand('foreColor', undefined, argument);
703
+ refs.rootDocument.current.execCommand('styleWithCSS', false);
704
+ break;
705
+ case 'font-background':
706
+ refs.rootDocument.current.execCommand('styleWithCSS', true);
707
+ refs.rootDocument.current.execCommand('backColor', undefined, argument);
708
+ refs.rootDocument.current.execCommand('styleWithCSS', false);
709
+ break;
710
+ case 'list-ordered':
711
+ refs.rootDocument.current.execCommand('insertOrderedList');
712
+ if (query('insertOrderedList'))
713
+ setTextSelected(values => [...values.filter(item => !item.includes('list')), 'list-ordered']);
714
+ else
715
+ setTextSelected(values => values.filter(item => item !== 'list-ordered'));
716
+ break;
717
+ case 'list-unordered':
718
+ refs.rootDocument.current.execCommand('insertUnorderedList');
719
+ if (query('insertUnorderedList'))
720
+ setTextSelected(values => [...values.filter(item => !item.includes('list')), 'list-unordered']);
721
+ else
722
+ setTextSelected(values => values.filter(item => item !== 'list-unordered'));
723
+ break;
724
+ case 'horizontal-rule':
725
+ refs.rootDocument.current.execCommand('insertHorizontalRule');
726
+ break;
602
727
  case 'link-add':
603
728
  refs.rootDocument.current.execCommand('createLink', undefined, argument);
604
729
  break;
605
730
  case 'link-remove':
606
731
  refs.rootDocument.current.execCommand('unlink');
607
732
  break;
733
+ case 'image':
734
+ refs.rootDocument.current.execCommand('insertImage', undefined, argument);
735
+ break;
736
+ case 'html':
737
+ refs.rootDocument.current.execCommand('insertHTML', undefined, argument);
738
+ break;
608
739
  // actions
609
740
  case 'copy':
610
741
  refs.rootDocument.current.execCommand('copy');
@@ -648,6 +779,60 @@ const SmartTextField = react_1.default.forwardRef((props_, ref) => {
648
779
  }
649
780
  textQueryUpdate();
650
781
  }, []);
782
+ const PaletteItem = react_1.default.useCallback((propsItem) => {
783
+ const { color: color_ } = propsItem, other_ = __rest(propsItem, ["color"]);
784
+ return ((0, jsx_runtime_1.jsx)("span", Object.assign({ className: (0, style_react_1.classNames)([
785
+ (0, utils_2.staticClassName)('RichTextEditor', theme) && [
786
+ 'onesy-RichTextEditor-palette-item'
787
+ ],
788
+ classes.paletteItem
789
+ ]), style: {
790
+ background: color_
791
+ } }, other_)));
792
+ }, []);
793
+ const Palette = react_1.default.useCallback(react_1.default.forwardRef((propsPalette, ref_) => {
794
+ const { version: version_, onUpdate: onUpdate_, onClose } = propsPalette, other_ = __rest(propsPalette, ["version", "onUpdate", "onClose"]);
795
+ return ((0, jsx_runtime_1.jsxs)(Line, Object.assign({ ref: ref_, gap: 1, direction: 'column', tonal: tonal, color: refs.props.current.color !== undefined ? refs.props.current.color : 'themed', Component: Surface, className: (0, style_react_1.classNames)([
796
+ (0, utils_2.staticClassName)('RichTextEditor', theme) && [
797
+ 'onesy-RichTextEditor-palette'
798
+ ],
799
+ classes.palette
800
+ ]) }, other_, { children: [(0, jsx_runtime_1.jsxs)(Line, Object.assign({ gap: 0.5, onMouseUp: onMouseUp, onMouseDown: onMouseDown }, { children: [(0, jsx_runtime_1.jsxs)(Line, Object.assign({ gap: 0.5, direction: 'row', style: {
801
+ width: '100%'
802
+ } }, { children: [(0, jsx_runtime_1.jsx)(PaletteItem, { color: '#000000', onClick: () => {
803
+ onUpdate_('#000000');
804
+ onClose();
805
+ } }), (0, jsx_runtime_1.jsx)(PaletteItem, { color: '#ffffff', onClick: () => {
806
+ onUpdate_('#ffffff');
807
+ onClose();
808
+ } })] })), Object.keys(style_react_1.colors).filter(item => !['black', 'white'].includes(item)).map((item, index) => ((0, jsx_runtime_1.jsx)(Line, Object.assign({ gap: 0.5, direction: 'row', style: {
809
+ width: '100%'
810
+ } }, { children: Object.keys(style_react_1.colors[item]).map((item_, index_) => ((0, jsx_runtime_1.jsx)(PaletteItem, { color: style_react_1.colors[item][item_], onClick: () => {
811
+ if (refs.range.current) {
812
+ const selection_ = refs.rootWindow.current.getSelection();
813
+ selection_.removeAllRanges();
814
+ selection_.addRange(refs.range.current);
815
+ }
816
+ onUpdate_(style_react_1.colors[item][item_]);
817
+ onClose();
818
+ } }, index_))) }), index)))] })), (0, jsx_runtime_1.jsx)(Divider, {}), (0, jsx_runtime_1.jsxs)(Line, Object.assign({ gap: 0.5, direction: 'row', align: 'center', fullWidth: true, style: {
819
+ padding: 10
820
+ } }, { children: [(0, jsx_runtime_1.jsx)(ColorTextField, Object.assign({ tonal: tonal, color: color, name: l('Custom color'), version: 'outlined', size: 'small', value: refs.inputValues.current[version_], onChange: valueNew => updateInputValues(version_, valueNew) }, ColorTextFieldProps, { className: (0, style_react_1.classNames)([
821
+ (0, utils_2.staticClassName)('RichTextEditor', theme) && [
822
+ 'onesy-RichTextEditor-text-field-color'
823
+ ],
824
+ ColorTextFieldProps === null || ColorTextFieldProps === void 0 ? void 0 : ColorTextFieldProps.className,
825
+ classes.textFieldColor
826
+ ]) })), (0, jsx_runtime_1.jsx)(Button, Object.assign({ tonal: tonal, color: 'inherit', version: 'text', size: 'small', onClick: () => {
827
+ if (refs.range.current) {
828
+ const selection_ = refs.rootWindow.current.getSelection();
829
+ selection_.removeAllRanges();
830
+ selection_.addRange(refs.range.current);
831
+ }
832
+ onUpdate_(refs.inputValues.current[version_]);
833
+ onClose();
834
+ } }, { children: "Apply" }))] }))] })));
835
+ }), []);
651
836
  const AppendProps = {
652
837
  padding: [14, 14]
653
838
  };
@@ -699,7 +884,7 @@ const SmartTextField = react_1.default.forwardRef((props_, ref) => {
699
884
  '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
885
  '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)) })) }))),
701
886
  '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)) })) }))),
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: () => {
887
+ '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), placeholder: l('URL'), onClick: () => {
703
888
  if (refs.range.current) {
704
889
  const selection_ = refs.rootWindow.current.getSelection();
705
890
  if (!selection_)
@@ -711,7 +896,17 @@ const SmartTextField = react_1.default.forwardRef((props_, ref) => {
711
896
  updateOpen('linkMiniMenu', false);
712
897
  updateInputValues('link', '');
713
898
  }, className: classes.inputLink }) }))) }, { children: (0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Insert Link'), open: refs.open.current.linkMiniMenu ? false : undefined }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({ ref: refs.miniMenuElements.linkAdd }, ToggleButtonProps, { selected: refs.open.current.linkMiniMenu, onClick: () => updateOpen('linkMiniMenu', !refs.open.current.linkMiniMenu) }, { children: (0, jsx_runtime_1.jsx)(IconMaterialAddLinkW100_1.default, Object.assign({}, IconProps)) })) })) }))),
714
- 'link-remove': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Remove Link') }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { onClick: textMethod('link-remove') }, { children: (0, jsx_runtime_1.jsx)(IconMaterialLinkOffW100_1.default, Object.assign({}, IconProps)) })) })))
899
+ 'link-remove': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Remove Link') }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { onClick: textMethod('link-remove') }, { children: (0, jsx_runtime_1.jsx)(IconMaterialLinkOffW100_1.default, Object.assign({}, IconProps)) })) }))),
900
+ 'font-color': ((0, jsx_runtime_1.jsx)(WrapperAppend, Object.assign({ open: refs.open.current.color, anchorElement: refs.elements.color.current, element: ((0, jsx_runtime_1.jsx)(ClickListener, Object.assign({ onClickOutside: () => updateOpen('color', false), include: [refs.elements.color.current] }, { children: (0, jsx_runtime_1.jsx)(Palette, { version: 'font-color', onClose: () => updateOpen('color', false), onUpdate: textMethod('font-color') }) }))) }, { children: (0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Text Color'), open: refs.open.current.color ? false : undefined }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({ ref: refs.elements.color }, ToggleButtonProps, { selected: refs.open.current.color, onClick: () => updateOpen('color', !refs.open.current.color) }, { children: (0, jsx_runtime_1.jsx)(IconMaterialFormatColorTextW100_1.default, Object.assign({}, IconProps)) })) })) }))),
901
+ 'font-color-mini-menu': ((0, jsx_runtime_1.jsx)(WrapperAppend, Object.assign({ open: refs.open.current.colorMiniMenu, anchorElement: refs.miniMenuElements.color, element: ((0, jsx_runtime_1.jsx)(ClickListener, Object.assign({ onClickOutside: () => updateOpen('colorMiniMenu', false), include: [refs.miniMenuElements.color] }, { children: (0, jsx_runtime_1.jsx)(Palette, { ref: refs.miniMenuElements.colorPalette, version: 'font-color', onClose: () => updateOpen('colorMiniMenu', false), onUpdate: textMethod('font-color') }) }))) }, { children: (0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Text Color'), open: refs.open.current.colorMiniMenu ? false : undefined }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({ ref: refs.miniMenuElements.color }, ToggleButtonProps, { selected: refs.open.current.colorMiniMenu, onClick: () => updateOpen('colorMiniMenu', !refs.open.current.colorMiniMenu) }, { children: (0, jsx_runtime_1.jsx)(IconMaterialFormatColorTextW100_1.default, Object.assign({}, IconProps)) })) })) }))),
902
+ 'font-background': ((0, jsx_runtime_1.jsx)(WrapperAppend, Object.assign({ open: refs.open.current.background, anchorElement: refs.elements.background.current, element: ((0, jsx_runtime_1.jsx)(ClickListener, Object.assign({ onClickOutside: () => updateOpen('background', false), include: [refs.elements.background.current] }, { children: (0, jsx_runtime_1.jsx)(Palette, { version: 'font-background', onClose: () => updateOpen('background', false), onUpdate: textMethod('font-background') }) }))) }, { children: (0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Background Color'), open: refs.open.current.background ? false : undefined }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({ ref: refs.elements.background }, ToggleButtonProps, { selected: refs.open.current.background, onClick: () => updateOpen('background', !refs.open.current.background) }, { children: (0, jsx_runtime_1.jsx)(IconMaterialFormatColorFillW100_1.default, Object.assign({}, IconProps)) })) })) }))),
903
+ 'font-background-mini-menu': ((0, jsx_runtime_1.jsx)(WrapperAppend, Object.assign({ open: refs.open.current.backgroundMiniMenu, anchorElement: refs.miniMenuElements.background, element: ((0, jsx_runtime_1.jsx)(ClickListener, Object.assign({ onClickOutside: () => updateOpen('backgroundMiniMenu', false), include: [refs.miniMenuElements.background] }, { children: (0, jsx_runtime_1.jsx)(Palette, { ref: refs.miniMenuElements.backgroundPalette, version: 'font-background', onClose: () => updateOpen('backgroundMiniMenu', false), onUpdate: textMethod('font-background') }) }))) }, { children: (0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Text Color'), open: refs.open.current.backgroundMiniMenu ? false : undefined }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({ ref: refs.miniMenuElements.background }, ToggleButtonProps, { selected: refs.open.current.backgroundMiniMenu, onClick: () => updateOpen('backgroundMiniMenu', !refs.open.current.backgroundMiniMenu) }, { children: (0, jsx_runtime_1.jsx)(IconMaterialFormatColorFillW100_1.default, Object.assign({}, IconProps)) })) })) }))),
904
+ 'align-left': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Align Left') }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.textSelected.current.includes('align-left'), onClick: textMethod('align-left') }, { children: (0, jsx_runtime_1.jsx)(IconMaterialFormatAlignLeftW100_1.default, Object.assign({}, IconProps)) })) }))),
905
+ 'align-center': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Align Center') }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.textSelected.current.includes('align-center'), onClick: textMethod('align-center') }, { children: (0, jsx_runtime_1.jsx)(IconMaterialFormatAlignCenterW100_1.default, Object.assign({}, IconProps)) })) }))),
906
+ 'align-right': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Align Right') }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.textSelected.current.includes('align-right'), onClick: textMethod('align-right') }, { children: (0, jsx_runtime_1.jsx)(IconMaterialFormatAlignRightW100_1.default, Object.assign({}, IconProps)) })) }))),
907
+ 'align-justify': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Align Justify') }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.textSelected.current.includes('align-justify'), onClick: textMethod('align-justify') }, { children: (0, jsx_runtime_1.jsx)(IconMaterialFormatAlignJustifyW100_1.default, Object.assign({}, IconProps)) })) }))),
908
+ 'list-ordered': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('List Ordered') }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.textSelected.current.includes('list-ordered'), onClick: textMethod('list-ordered') }, { children: (0, jsx_runtime_1.jsx)(IconMaterialFormatListNumberedW100_1.default, Object.assign({}, IconProps)) })) }))),
909
+ 'list-unordered': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('List Unordered') }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { selected: refs.textSelected.current.includes('list-unordered'), onClick: textMethod('list-unordered') }, { children: (0, jsx_runtime_1.jsx)(IconMaterialFormatListBulletedW100_1.default, Object.assign({}, IconProps)) })) })))
715
910
  };
716
911
  const actionElements = {
717
912
  'clear': ((0, jsx_runtime_1.jsx)(WrapperToggleButton, Object.assign({ name: l('Clear') }, { children: (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({}, ToggleButtonProps, { onClick: textMethod('clear') }, { children: (0, jsx_runtime_1.jsx)(IconMaterialFormatClearW100_1.default, Object.assign({}, IconProps)) })) })))
@@ -736,9 +931,9 @@ const SmartTextField = react_1.default.forwardRef((props_, ref) => {
736
931
  classes.textMiniMenuWrapper
737
932
  ]) }, { children: (0, jsx_runtime_1.jsx)(Fade, Object.assign({ in: !!textSelection, add: true }, { children: (0, jsx_runtime_1.jsx)(ClickListener, Object.assign({ onClickOutside: () => {
738
933
  setTextSelection(null);
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)([
934
+ }, include: [refs.miniMenu, refs.miniMenu.current, refs.miniMenuElements.colorPalette, refs.miniMenuElements.colorPalette.current, refs.miniMenuElements.backgroundPalette, refs.miniMenuElements.backgroundPalette.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)([
740
935
  classes.textMiniMenu
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'] }))] })) })) })) })));
936
+ ]) }, { children: [(0, jsx_runtime_1.jsxs)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: [updateElements['italic'], updateElements['underline'], updateElements['bold'], updateElements['strike-line']] })), miniMenuExtended && ((0, jsx_runtime_1.jsxs)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: [updateElements['align-left'], updateElements['align-center'], updateElements['align-right'], updateElements['align-justify']] }))), miniMenuExtended && ((0, jsx_runtime_1.jsxs)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: [updateElements['font-color-mini-menu'], updateElements['font-background-mini-menu']] }))), miniMenuExtended && ((0, jsx_runtime_1.jsxs)(ToggleButtons, Object.assign({}, ToggleButtonsProps, { children: [updateElements['list-ordered'], updateElements['list-unordered']] }))), (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'] }))] })) })) })) })));
742
937
  }, parent: refs.root.current, anchor: textSelection === null || textSelection === void 0 ? void 0 : textSelection.selection, portal: true, alignment: 'center', position: 'bottom', clearOnClose: true }, AppendProps)));
743
938
  }, [open, textSelection, textSelected]);
744
939
  const menu = react_1.default.useMemo(() => {
@@ -752,7 +947,7 @@ const SmartTextField = react_1.default.forwardRef((props_, ref) => {
752
947
  ref.current = item;
753
948
  }
754
949
  refs.root.current = item;
755
- }, version: 'text', size: size, minRows: 12, multiline: true, enabled: true, fullWidth: true, onInput: onInput, onKeyDown: onKeyDown, onKeyUp: onKeyUp, onFocus: onFocus, onBlur: onBlur, readOnly: readOnly, inputProps: Object.assign(Object.assign({ version: 'b2', contentEditable: true, spellCheck: false, onPaste: pasteText ? onPasteText : onPaste, onDrop,
950
+ }, color: color, tonal: tonal, version: 'text', size: size, minRows: 12, multiline: true, enabled: true, fullWidth: true, onInput: onInput, onKeyDown: onKeyDown, onKeyUp: onKeyUp, onFocus: onFocus, onBlur: onBlur, readOnly: readOnly, inputProps: Object.assign(Object.assign({ version: 'b2', contentEditable: true, spellCheck: false, onPaste: pasteText ? onPasteText : onPaste, onDrop,
756
951
  onMouseUp,
757
952
  onMouseDown, 'data-placeholder': placeholder !== undefined ? placeholder : name }, inputProps), { ref: (item) => {
758
953
  refs.input.current = item;
@@ -787,7 +982,7 @@ const SmartTextField = react_1.default.forwardRef((props_, ref) => {
787
982
  }
788
983
  refs.root.current = item;
789
984
  refs.input.current = item;
790
- }, onInput: onInput, onKeyDown: onKeyDown, onKeyUp: onKeyUp, onFocus: onFocus, onBlur: onBlur, onPaste: pasteText ? onPasteText : onPaste, onDrop: onDrop, onMouseUp: onMouseUp, onMouseDown: onMouseDown, spellCheck: false, "data-placeholder": placeholder !== undefined ? placeholder : name }, inputProps, { contentEditable: !readOnly, className: (0, style_react_1.classNames)([
985
+ }, color: color, tonal: tonal, onInput: onInput, onKeyDown: onKeyDown, onKeyUp: onKeyUp, onFocus: onFocus, onBlur: onBlur, onPaste: pasteText ? onPasteText : onPaste, onDrop: onDrop, onMouseUp: onMouseUp, onMouseDown: onMouseDown, spellCheck: false, "data-placeholder": placeholder !== undefined ? placeholder : name }, inputProps, { contentEditable: !readOnly, className: (0, style_react_1.classNames)([
791
986
  (0, utils_2.staticClassName)('SmartTextField', theme) && [
792
987
  'onesy-SmartTextField-root',
793
988
  `onesy-SmartTextField-version-${version}`,
@@ -203,21 +203,6 @@ const useStyle = styleMethod(theme => ({
203
203
  },
204
204
  textFieldColor: {
205
205
  flex: '1 1 auto'
206
- },
207
- inputColor: {
208
- border: 'none',
209
- borderRadius: theme.methods.shape.radius.value(40, 'px'),
210
- overflow: 'hidden',
211
- width: '17px',
212
- height: '17px',
213
- cursor: 'pointer',
214
- boxShadow: theme.shadows.values.default[1],
215
- '&::-webkit-color-swatch-wrapper': {
216
- padding: '0px'
217
- },
218
- '&::-webkit-color-swatch': {
219
- border: 'none'
220
- }
221
206
  }
222
207
  }), {
223
208
  name: 'onesy-RichTextEditor'
@@ -1,15 +1,25 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
3
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
- const _excluded = ["version", "size", "valueDefault", "value", "inputProps", "onChange", "error", "name", "placeholder", "edit", "mention", "multiline", "onChangeMention", "optionsMention", "error", "helperText", "mentionLabel", "onKeyDown", "pasteText", "readOnly", "additional", "HelperTextProps", "className"],
5
- _excluded2 = ["label", "labelButton", "value", "onChange", "onClick", "InputComponent", "InputProps"],
6
- _excluded3 = ["open", "element", "anchorElement", "onClose", "children"],
7
- _excluded4 = ["open", "name", "children"];
4
+ const _excluded = ["tonal", "color", "version", "size", "valueDefault", "value", "inputProps", "onChange", "error", "name", "placeholder", "edit", "mention", "multiline", "onChangeMention", "optionsMention", "error", "helperText", "mentionLabel", "onKeyDown", "pasteText", "readOnly", "additional", "miniMenuExtended", "HelperTextProps", "ColorTextFieldProps", "className"],
5
+ _excluded2 = ["color"],
6
+ _excluded3 = ["version", "onUpdate", "onClose"],
7
+ _excluded4 = ["label", "labelButton", "value", "onChange", "onClick", "InputComponent", "InputProps"],
8
+ _excluded5 = ["open", "element", "anchorElement", "onClose", "children"],
9
+ _excluded6 = ["open", "name", "children"];
8
10
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
9
11
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
10
12
  import React from 'react';
11
13
  import { hash, innerHTMLToText, is, isEnvironment, parse, stringToColor, textToInnerHTML } from '@onesy/utils';
12
- import { classNames, style as styleMethod, useOnesyTheme } from '@onesy/style-react';
14
+ import { classNames, colors, style as styleMethod, useOnesyTheme } from '@onesy/style-react';
15
+ import IconMaterialFormatAlignLeft from '@onesy/icons-material-rounded-react/IconMaterialFormatAlignLeftW100';
16
+ import IconMaterialFormatAlignCenter from '@onesy/icons-material-rounded-react/IconMaterialFormatAlignCenterW100';
17
+ import IconMaterialFormatAlignRight from '@onesy/icons-material-rounded-react/IconMaterialFormatAlignRightW100';
18
+ import IconMaterialFormatAlignJustify from '@onesy/icons-material-rounded-react/IconMaterialFormatAlignJustifyW100';
19
+ import IconMaterialFormatColorText from '@onesy/icons-material-rounded-react/IconMaterialFormatColorTextW100';
20
+ import IconMaterialFormatColorFill from '@onesy/icons-material-rounded-react/IconMaterialFormatColorFillW100';
21
+ import IconMaterialFormatListNumbered from '@onesy/icons-material-rounded-react/IconMaterialFormatListNumberedW100';
22
+ import IconMaterialFormatListBulleted from '@onesy/icons-material-rounded-react/IconMaterialFormatListBulletedW100';
13
23
  import IconMaterialSuperscript from '@onesy/icons-material-rounded-react/IconMaterialSuperscriptW100';
14
24
  import IconMaterialSubscript from '@onesy/icons-material-rounded-react/IconMaterialSubscriptW100';
15
25
  import IconMaterialFormatItalic from '@onesy/icons-material-rounded-react/IconMaterialFormatItalicW100';
@@ -19,6 +29,7 @@ import IconMaterialFormatBold from '@onesy/icons-material-rounded-react/IconMate
19
29
  import IconMaterialAddLink from '@onesy/icons-material-rounded-react/IconMaterialAddLinkW100';
20
30
  import IconMaterialLinkOff from '@onesy/icons-material-rounded-react/IconMaterialLinkOffW100';
21
31
  import IconMaterialFormatClear from '@onesy/icons-material-rounded-react/IconMaterialFormatClearW100';
32
+ import ColorTextFieldElement from '../ColorTextField';
22
33
  import TextFieldElement from '../TextField/TextField';
23
34
  import LineElement from '../Line';
24
35
  import ListElement from '../List';
@@ -34,6 +45,7 @@ import ToggleButtonElement from '../ToggleButton';
34
45
  import ClickListenerElement from '../ClickListener';
35
46
  import ToggleButtonsElement from '../ToggleButtons';
36
47
  import MenuElement from '../Menu';
48
+ import DividerElement from '../Divider';
37
49
  import { sanitize, caret, keyboardStyleCommands, staticClassName } from '../utils';
38
50
  const useStyle = styleMethod(theme => ({
39
51
  root: {
@@ -90,6 +102,26 @@ const useStyle = styleMethod(theme => ({
90
102
  flex: '1 1 auto !important'
91
103
  }
92
104
  },
105
+ palette: {
106
+ padding: theme.methods.space.value(1.5, 'px'),
107
+ borderRadius: theme.methods.shape.radius.value(1, 'px'),
108
+ boxShadow: theme.shadows.values.default[2]
109
+ },
110
+ paletteItem: {
111
+ position: 'relative',
112
+ width: '17px',
113
+ height: '17px',
114
+ cursor: 'pointer',
115
+ borderRadius: theme.methods.shape.radius.value(40, 'px'),
116
+ boxShadow: theme.shadows.values.default[1],
117
+ transition: theme.methods.transitions.make('box-shadow'),
118
+ '&:hover': {
119
+ boxShadow: theme.shadows.values.default[2]
120
+ }
121
+ },
122
+ textFieldColor: {
123
+ flex: '1 1 auto'
124
+ },
93
125
  helperText: {
94
126
  display: 'inline-flex',
95
127
  color: theme.palette.text.default.secondary,
@@ -123,7 +155,11 @@ const SmartTextField = /*#__PURE__*/React.forwardRef((props_, ref) => {
123
155
  const ClickListener = React.useMemo(() => theme?.elements?.ClickListener || ClickListenerElement, [theme]);
124
156
  const ToggleButtons = React.useMemo(() => theme?.elements?.ToggleButtons || ToggleButtonsElement, [theme]);
125
157
  const Menu = React.useMemo(() => theme?.elements?.Menu || MenuElement, [theme]);
158
+ const Divider = React.useMemo(() => theme?.elements?.Divider || DividerElement, [theme]);
159
+ const ColorTextField = React.useMemo(() => theme?.elements?.ColorTextField || ColorTextFieldElement, [theme]);
126
160
  const {
161
+ tonal = true,
162
+ color = 'default',
127
163
  version = 'text',
128
164
  size = 'regular',
129
165
  valueDefault,
@@ -145,7 +181,9 @@ const SmartTextField = /*#__PURE__*/React.forwardRef((props_, ref) => {
145
181
  pasteText = true,
146
182
  readOnly,
147
183
  additional,
184
+ miniMenuExtended,
148
185
  HelperTextProps,
186
+ ColorTextFieldProps,
149
187
  className
150
188
  } = props,
151
189
  other = _objectWithoutProperties(props, _excluded);
@@ -187,6 +225,23 @@ const SmartTextField = /*#__PURE__*/React.forwardRef((props_, ref) => {
187
225
  linkAddInput: React.useRef(null),
188
226
  linkRemove: React.useRef(null)
189
227
  },
228
+ elements: {
229
+ color: React.useRef(null),
230
+ background: React.useRef(null),
231
+ linkAdd: React.useRef(null),
232
+ linkRemove: React.useRef(null),
233
+ quote: React.useRef(null),
234
+ image: React.useRef(null),
235
+ video: React.useRef(null),
236
+ videoYoutube: React.useRef(null),
237
+ table: React.useRef(null),
238
+ drawing: React.useRef(null),
239
+ drawingSvg: React.useRef(null),
240
+ drawingSize: React.useRef(null),
241
+ drawingSelect: React.useRef(null),
242
+ drawingPalette: React.useRef(null),
243
+ code: React.useRef(null)
244
+ },
190
245
  textSelected: React.useRef(null),
191
246
  textSelection: React.useRef(null),
192
247
  rootDocument: React.useRef(null),
@@ -194,7 +249,8 @@ const SmartTextField = /*#__PURE__*/React.forwardRef((props_, ref) => {
194
249
  edit: React.useRef(edit),
195
250
  multiline: React.useRef(multiline),
196
251
  readOnly: React.useRef(readOnly),
197
- onChange: React.useRef(onChange)
252
+ onChange: React.useRef(onChange),
253
+ props: React.useRef(props)
198
254
  };
199
255
  refs.value.current = value;
200
256
  refs.version.current = version;
@@ -209,6 +265,7 @@ const SmartTextField = /*#__PURE__*/React.forwardRef((props_, ref) => {
209
265
  refs.multiline.current = multiline;
210
266
  refs.readOnly.current = readOnly;
211
267
  refs.onChange.current = onChange;
268
+ refs.props.current = props;
212
269
  const rootDocument = isEnvironment('browser') && (refs.root.current?.ownerDocument || window.document);
213
270
  const rootWindow = rootDocument && (rootDocument.defaultView || window);
214
271
  refs.rootDocument.current = rootDocument;
@@ -608,6 +665,22 @@ const SmartTextField = /*#__PURE__*/React.forwardRef((props_, ref) => {
608
665
  refs.rootDocument.current.execCommand('strikeThrough');
609
666
  if (query('strikeThrough')) setTextSelected(values => [...values, 'strike-line']);else setTextSelected(values => values.filter(item => item !== 'strike-line'));
610
667
  break;
668
+ case 'align-left':
669
+ refs.rootDocument.current.execCommand('justifyLeft');
670
+ if (query('justifyLeft')) setTextSelected(values => [...values.filter(item => !item.includes('align')), 'align-left']);else setTextSelected(values => values.filter(item => item !== 'align-left'));
671
+ break;
672
+ case 'align-center':
673
+ refs.rootDocument.current.execCommand('justifyCenter');
674
+ if (query('justifyCenter')) setTextSelected(values => [...values.filter(item => !item.includes('align')), 'align-center']);else setTextSelected(values => values.filter(item => item !== 'align-center'));
675
+ break;
676
+ case 'align-right':
677
+ refs.rootDocument.current.execCommand('justifyRight');
678
+ if (query('justifyRight')) setTextSelected(values => [...values.filter(item => !item.includes('align')), 'align-right']);else setTextSelected(values => values.filter(item => item !== 'align-right'));
679
+ break;
680
+ case 'align-justify':
681
+ refs.rootDocument.current.execCommand('justifyFull');
682
+ if (query('justifyFull')) setTextSelected(values => [...values.filter(item => !item.includes('align')), 'align-justify']);else setTextSelected(values => values.filter(item => item !== 'align-justify'));
683
+ break;
611
684
  case 'superscript':
612
685
  refs.rootDocument.current.execCommand('superscript');
613
686
  if (query('superscript')) setTextSelected(values => [...values, 'superscript']);else setTextSelected(values => values.filter(item => item !== 'superscript'));
@@ -616,12 +689,58 @@ const SmartTextField = /*#__PURE__*/React.forwardRef((props_, ref) => {
616
689
  refs.rootDocument.current.execCommand('subscript');
617
690
  if (query('subscript')) setTextSelected(values => [...values, 'subscript']);else setTextSelected(values => values.filter(item => item !== 'subscript'));
618
691
  break;
692
+ case 'indent':
693
+ refs.rootDocument.current.execCommand('indent');
694
+ break;
695
+ case 'outdent':
696
+ refs.rootDocument.current.execCommand('outdent');
697
+ break;
698
+ case 'font-version':
699
+ refs.rootDocument.current.execCommand('formatBlock', undefined, argument);
700
+ break;
701
+ case 'font-family':
702
+ refs.rootDocument.current.execCommand('styleWithCSS', true);
703
+ refs.rootDocument.current.execCommand('fontName', undefined, argument);
704
+ refs.rootDocument.current.execCommand('styleWithCSS', false);
705
+ break;
706
+ case 'font-size':
707
+ refs.rootDocument.current.execCommand('styleWithCSS', true);
708
+ refs.rootDocument.current.execCommand('fontSize', undefined, argument);
709
+ refs.rootDocument.current.execCommand('styleWithCSS', false);
710
+ break;
711
+ case 'font-color':
712
+ refs.rootDocument.current.execCommand('styleWithCSS', true);
713
+ refs.rootDocument.current.execCommand('foreColor', undefined, argument);
714
+ refs.rootDocument.current.execCommand('styleWithCSS', false);
715
+ break;
716
+ case 'font-background':
717
+ refs.rootDocument.current.execCommand('styleWithCSS', true);
718
+ refs.rootDocument.current.execCommand('backColor', undefined, argument);
719
+ refs.rootDocument.current.execCommand('styleWithCSS', false);
720
+ break;
721
+ case 'list-ordered':
722
+ refs.rootDocument.current.execCommand('insertOrderedList');
723
+ if (query('insertOrderedList')) setTextSelected(values => [...values.filter(item => !item.includes('list')), 'list-ordered']);else setTextSelected(values => values.filter(item => item !== 'list-ordered'));
724
+ break;
725
+ case 'list-unordered':
726
+ refs.rootDocument.current.execCommand('insertUnorderedList');
727
+ if (query('insertUnorderedList')) setTextSelected(values => [...values.filter(item => !item.includes('list')), 'list-unordered']);else setTextSelected(values => values.filter(item => item !== 'list-unordered'));
728
+ break;
729
+ case 'horizontal-rule':
730
+ refs.rootDocument.current.execCommand('insertHorizontalRule');
731
+ break;
619
732
  case 'link-add':
620
733
  refs.rootDocument.current.execCommand('createLink', undefined, argument);
621
734
  break;
622
735
  case 'link-remove':
623
736
  refs.rootDocument.current.execCommand('unlink');
624
737
  break;
738
+ case 'image':
739
+ refs.rootDocument.current.execCommand('insertImage', undefined, argument);
740
+ break;
741
+ case 'html':
742
+ refs.rootDocument.current.execCommand('insertHTML', undefined, argument);
743
+ break;
625
744
 
626
745
  // actions
627
746
  case 'copy':
@@ -662,6 +781,108 @@ const SmartTextField = /*#__PURE__*/React.forwardRef((props_, ref) => {
662
781
  }
663
782
  textQueryUpdate();
664
783
  }, []);
784
+ const PaletteItem = React.useCallback(propsItem => {
785
+ const {
786
+ color: color_
787
+ } = propsItem,
788
+ other_ = _objectWithoutProperties(propsItem, _excluded2);
789
+ return /*#__PURE__*/React.createElement("span", _extends({
790
+ className: classNames([staticClassName('RichTextEditor', theme) && ['onesy-RichTextEditor-palette-item'], classes.paletteItem]),
791
+ style: {
792
+ background: color_
793
+ }
794
+ }, other_));
795
+ }, []);
796
+ const Palette = React.useCallback(/*#__PURE__*/React.forwardRef((propsPalette, ref_) => {
797
+ const {
798
+ version: version_,
799
+ onUpdate: onUpdate_,
800
+ onClose
801
+ } = propsPalette,
802
+ other_ = _objectWithoutProperties(propsPalette, _excluded3);
803
+ return /*#__PURE__*/React.createElement(Line, _extends({
804
+ ref: ref_,
805
+ gap: 1,
806
+ direction: "column",
807
+ tonal: tonal,
808
+ color: refs.props.current.color !== undefined ? refs.props.current.color : 'themed',
809
+ Component: Surface,
810
+ className: classNames([staticClassName('RichTextEditor', theme) && ['onesy-RichTextEditor-palette'], classes.palette])
811
+ }, other_), /*#__PURE__*/React.createElement(Line, {
812
+ gap: 0.5,
813
+ onMouseUp: onMouseUp,
814
+ onMouseDown: onMouseDown
815
+ }, /*#__PURE__*/React.createElement(Line, {
816
+ gap: 0.5,
817
+ direction: "row",
818
+ style: {
819
+ width: '100%'
820
+ }
821
+ }, /*#__PURE__*/React.createElement(PaletteItem, {
822
+ color: "#000000",
823
+ onClick: () => {
824
+ onUpdate_('#000000');
825
+ onClose();
826
+ }
827
+ }), /*#__PURE__*/React.createElement(PaletteItem, {
828
+ color: "#ffffff",
829
+ onClick: () => {
830
+ onUpdate_('#ffffff');
831
+ onClose();
832
+ }
833
+ })), Object.keys(colors).filter(item => !['black', 'white'].includes(item)).map((item, index) => /*#__PURE__*/React.createElement(Line, {
834
+ key: index,
835
+ gap: 0.5,
836
+ direction: "row",
837
+ style: {
838
+ width: '100%'
839
+ }
840
+ }, Object.keys(colors[item]).map((item_, index_) => /*#__PURE__*/React.createElement(PaletteItem, {
841
+ key: index_,
842
+ color: colors[item][item_],
843
+ onClick: () => {
844
+ if (refs.range.current) {
845
+ const selection_ = refs.rootWindow.current.getSelection();
846
+ selection_.removeAllRanges();
847
+ selection_.addRange(refs.range.current);
848
+ }
849
+ onUpdate_(colors[item][item_]);
850
+ onClose();
851
+ }
852
+ }))))), /*#__PURE__*/React.createElement(Divider, null), /*#__PURE__*/React.createElement(Line, {
853
+ gap: 0.5,
854
+ direction: "row",
855
+ align: "center",
856
+ fullWidth: true,
857
+ style: {
858
+ padding: 10
859
+ }
860
+ }, /*#__PURE__*/React.createElement(ColorTextField, _extends({
861
+ tonal: tonal,
862
+ color: color,
863
+ name: l('Custom color'),
864
+ version: "outlined",
865
+ size: "small",
866
+ value: refs.inputValues.current[version_],
867
+ onChange: valueNew => updateInputValues(version_, valueNew)
868
+ }, ColorTextFieldProps, {
869
+ className: classNames([staticClassName('RichTextEditor', theme) && ['onesy-RichTextEditor-text-field-color'], ColorTextFieldProps?.className, classes.textFieldColor])
870
+ })), /*#__PURE__*/React.createElement(Button, {
871
+ tonal: tonal,
872
+ color: "inherit",
873
+ version: "text",
874
+ size: "small",
875
+ onClick: () => {
876
+ if (refs.range.current) {
877
+ const selection_ = refs.rootWindow.current.getSelection();
878
+ selection_.removeAllRanges();
879
+ selection_.addRange(refs.range.current);
880
+ }
881
+ onUpdate_(refs.inputValues.current[version_]);
882
+ onClose();
883
+ }
884
+ }, "Apply")));
885
+ }), []);
665
886
  const AppendProps = {
666
887
  padding: [14, 14]
667
888
  };
@@ -691,7 +912,7 @@ const SmartTextField = /*#__PURE__*/React.forwardRef((props_, ref) => {
691
912
  InputComponent = TextField,
692
913
  InputProps
693
914
  } = propsInput,
694
- other_ = _objectWithoutProperties(propsInput, _excluded2);
915
+ other_ = _objectWithoutProperties(propsInput, _excluded4);
695
916
  return /*#__PURE__*/React.createElement(Line, _extends({
696
917
  ref: ref_,
697
918
  gap: 1,
@@ -733,7 +954,7 @@ const SmartTextField = /*#__PURE__*/React.forwardRef((props_, ref) => {
733
954
  onClose,
734
955
  children: childrenWrapperAppend
735
956
  } = propsWrapper,
736
- other_ = _objectWithoutProperties(propsWrapper, _excluded3);
957
+ other_ = _objectWithoutProperties(propsWrapper, _excluded5);
737
958
  return /*#__PURE__*/React.createElement(Append, _extends({
738
959
  open: open_,
739
960
  element: /*#__PURE__*/React.createElement("div", {
@@ -754,7 +975,7 @@ const SmartTextField = /*#__PURE__*/React.forwardRef((props_, ref) => {
754
975
  name: nameWrapperToogleButton,
755
976
  children: childrenWrapperToggleButton
756
977
  } = propsWrapperToggleButton,
757
- other_ = _objectWithoutProperties(propsWrapperToggleButton, _excluded4);
978
+ other_ = _objectWithoutProperties(propsWrapperToggleButton, _excluded6);
758
979
  return /*#__PURE__*/React.createElement(Tooltip, _extends({
759
980
  open: open_ !== undefined ? open_ : undefined,
760
981
  name: nameWrapperToogleButton
@@ -809,6 +1030,7 @@ const SmartTextField = /*#__PURE__*/React.forwardRef((props_, ref) => {
809
1030
  labelButton: l('Add'),
810
1031
  value: refs.inputValues.current.link,
811
1032
  onChange: valueNew => updateInputValues('link', valueNew),
1033
+ placeholder: l('URL'),
812
1034
  onClick: () => {
813
1035
  if (refs.range.current) {
814
1036
  const selection_ = refs.rootWindow.current.getSelection();
@@ -835,7 +1057,125 @@ const SmartTextField = /*#__PURE__*/React.forwardRef((props_, ref) => {
835
1057
  name: l('Remove Link')
836
1058
  }, /*#__PURE__*/React.createElement(ToggleButton, _extends({}, ToggleButtonProps, {
837
1059
  onClick: textMethod('link-remove')
838
- }), /*#__PURE__*/React.createElement(IconMaterialLinkOff, IconProps)))
1060
+ }), /*#__PURE__*/React.createElement(IconMaterialLinkOff, IconProps))),
1061
+ 'font-color': /*#__PURE__*/React.createElement(WrapperAppend, {
1062
+ open: refs.open.current.color,
1063
+ anchorElement: refs.elements.color.current,
1064
+ element: /*#__PURE__*/React.createElement(ClickListener, {
1065
+ onClickOutside: () => updateOpen('color', false),
1066
+ include: [refs.elements.color.current]
1067
+ }, /*#__PURE__*/React.createElement(Palette, {
1068
+ version: "font-color",
1069
+ onClose: () => updateOpen('color', false),
1070
+ onUpdate: textMethod('font-color')
1071
+ }))
1072
+ }, /*#__PURE__*/React.createElement(WrapperToggleButton, {
1073
+ name: l('Text Color'),
1074
+ open: refs.open.current.color ? false : undefined
1075
+ }, /*#__PURE__*/React.createElement(ToggleButton, _extends({
1076
+ ref: refs.elements.color
1077
+ }, ToggleButtonProps, {
1078
+ selected: refs.open.current.color,
1079
+ onClick: () => updateOpen('color', !refs.open.current.color)
1080
+ }), /*#__PURE__*/React.createElement(IconMaterialFormatColorText, IconProps)))),
1081
+ 'font-color-mini-menu': /*#__PURE__*/React.createElement(WrapperAppend, {
1082
+ open: refs.open.current.colorMiniMenu,
1083
+ anchorElement: refs.miniMenuElements.color,
1084
+ element: /*#__PURE__*/React.createElement(ClickListener, {
1085
+ onClickOutside: () => updateOpen('colorMiniMenu', false),
1086
+ include: [refs.miniMenuElements.color]
1087
+ }, /*#__PURE__*/React.createElement(Palette, {
1088
+ ref: refs.miniMenuElements.colorPalette,
1089
+ version: "font-color",
1090
+ onClose: () => updateOpen('colorMiniMenu', false),
1091
+ onUpdate: textMethod('font-color')
1092
+ }))
1093
+ }, /*#__PURE__*/React.createElement(WrapperToggleButton, {
1094
+ name: l('Text Color'),
1095
+ open: refs.open.current.colorMiniMenu ? false : undefined
1096
+ }, /*#__PURE__*/React.createElement(ToggleButton, _extends({
1097
+ ref: refs.miniMenuElements.color
1098
+ }, ToggleButtonProps, {
1099
+ selected: refs.open.current.colorMiniMenu,
1100
+ onClick: () => updateOpen('colorMiniMenu', !refs.open.current.colorMiniMenu)
1101
+ }), /*#__PURE__*/React.createElement(IconMaterialFormatColorText, IconProps)))),
1102
+ 'font-background': /*#__PURE__*/React.createElement(WrapperAppend, {
1103
+ open: refs.open.current.background,
1104
+ anchorElement: refs.elements.background.current,
1105
+ element: /*#__PURE__*/React.createElement(ClickListener, {
1106
+ onClickOutside: () => updateOpen('background', false),
1107
+ include: [refs.elements.background.current]
1108
+ }, /*#__PURE__*/React.createElement(Palette, {
1109
+ version: "font-background",
1110
+ onClose: () => updateOpen('background', false),
1111
+ onUpdate: textMethod('font-background')
1112
+ }))
1113
+ }, /*#__PURE__*/React.createElement(WrapperToggleButton, {
1114
+ name: l('Background Color'),
1115
+ open: refs.open.current.background ? false : undefined
1116
+ }, /*#__PURE__*/React.createElement(ToggleButton, _extends({
1117
+ ref: refs.elements.background
1118
+ }, ToggleButtonProps, {
1119
+ selected: refs.open.current.background,
1120
+ onClick: () => updateOpen('background', !refs.open.current.background)
1121
+ }), /*#__PURE__*/React.createElement(IconMaterialFormatColorFill, IconProps)))),
1122
+ 'font-background-mini-menu': /*#__PURE__*/React.createElement(WrapperAppend, {
1123
+ open: refs.open.current.backgroundMiniMenu,
1124
+ anchorElement: refs.miniMenuElements.background,
1125
+ element: /*#__PURE__*/React.createElement(ClickListener, {
1126
+ onClickOutside: () => updateOpen('backgroundMiniMenu', false),
1127
+ include: [refs.miniMenuElements.background]
1128
+ }, /*#__PURE__*/React.createElement(Palette, {
1129
+ ref: refs.miniMenuElements.backgroundPalette,
1130
+ version: "font-background",
1131
+ onClose: () => updateOpen('backgroundMiniMenu', false),
1132
+ onUpdate: textMethod('font-background')
1133
+ }))
1134
+ }, /*#__PURE__*/React.createElement(WrapperToggleButton, {
1135
+ name: l('Text Color'),
1136
+ open: refs.open.current.backgroundMiniMenu ? false : undefined
1137
+ }, /*#__PURE__*/React.createElement(ToggleButton, _extends({
1138
+ ref: refs.miniMenuElements.background
1139
+ }, ToggleButtonProps, {
1140
+ selected: refs.open.current.backgroundMiniMenu,
1141
+ onClick: () => updateOpen('backgroundMiniMenu', !refs.open.current.backgroundMiniMenu)
1142
+ }), /*#__PURE__*/React.createElement(IconMaterialFormatColorFill, IconProps)))),
1143
+ 'align-left': /*#__PURE__*/React.createElement(WrapperToggleButton, {
1144
+ name: l('Align Left')
1145
+ }, /*#__PURE__*/React.createElement(ToggleButton, _extends({}, ToggleButtonProps, {
1146
+ selected: refs.textSelected.current.includes('align-left'),
1147
+ onClick: textMethod('align-left')
1148
+ }), /*#__PURE__*/React.createElement(IconMaterialFormatAlignLeft, IconProps))),
1149
+ 'align-center': /*#__PURE__*/React.createElement(WrapperToggleButton, {
1150
+ name: l('Align Center')
1151
+ }, /*#__PURE__*/React.createElement(ToggleButton, _extends({}, ToggleButtonProps, {
1152
+ selected: refs.textSelected.current.includes('align-center'),
1153
+ onClick: textMethod('align-center')
1154
+ }), /*#__PURE__*/React.createElement(IconMaterialFormatAlignCenter, IconProps))),
1155
+ 'align-right': /*#__PURE__*/React.createElement(WrapperToggleButton, {
1156
+ name: l('Align Right')
1157
+ }, /*#__PURE__*/React.createElement(ToggleButton, _extends({}, ToggleButtonProps, {
1158
+ selected: refs.textSelected.current.includes('align-right'),
1159
+ onClick: textMethod('align-right')
1160
+ }), /*#__PURE__*/React.createElement(IconMaterialFormatAlignRight, IconProps))),
1161
+ 'align-justify': /*#__PURE__*/React.createElement(WrapperToggleButton, {
1162
+ name: l('Align Justify')
1163
+ }, /*#__PURE__*/React.createElement(ToggleButton, _extends({}, ToggleButtonProps, {
1164
+ selected: refs.textSelected.current.includes('align-justify'),
1165
+ onClick: textMethod('align-justify')
1166
+ }), /*#__PURE__*/React.createElement(IconMaterialFormatAlignJustify, IconProps))),
1167
+ 'list-ordered': /*#__PURE__*/React.createElement(WrapperToggleButton, {
1168
+ name: l('List Ordered')
1169
+ }, /*#__PURE__*/React.createElement(ToggleButton, _extends({}, ToggleButtonProps, {
1170
+ selected: refs.textSelected.current.includes('list-ordered'),
1171
+ onClick: textMethod('list-ordered')
1172
+ }), /*#__PURE__*/React.createElement(IconMaterialFormatListNumbered, IconProps))),
1173
+ 'list-unordered': /*#__PURE__*/React.createElement(WrapperToggleButton, {
1174
+ name: l('List Unordered')
1175
+ }, /*#__PURE__*/React.createElement(ToggleButton, _extends({}, ToggleButtonProps, {
1176
+ selected: refs.textSelected.current.includes('list-unordered'),
1177
+ onClick: textMethod('list-unordered')
1178
+ }), /*#__PURE__*/React.createElement(IconMaterialFormatListBulleted, IconProps)))
839
1179
  };
840
1180
  const actionElements = {
841
1181
  'clear': /*#__PURE__*/React.createElement(WrapperToggleButton, {
@@ -873,7 +1213,7 @@ const SmartTextField = /*#__PURE__*/React.forwardRef((props_, ref) => {
873
1213
  onClickOutside: () => {
874
1214
  setTextSelection(null);
875
1215
  },
876
- include: [refs.miniMenu, refs.miniMenu.current, refs.miniMenuElements.linkAddInput, refs.miniMenuElements.linkAddInput.current]
1216
+ include: [refs.miniMenu, refs.miniMenu.current, refs.miniMenuElements.colorPalette, refs.miniMenuElements.colorPalette.current, refs.miniMenuElements.backgroundPalette, refs.miniMenuElements.backgroundPalette.current, refs.miniMenuElements.linkAddInput, refs.miniMenuElements.linkAddInput.current]
877
1217
  }, /*#__PURE__*/React.createElement(Line, {
878
1218
  gap: 2,
879
1219
  direction: "row",
@@ -884,7 +1224,7 @@ const SmartTextField = /*#__PURE__*/React.forwardRef((props_, ref) => {
884
1224
  "aria-label": l('Mini menu'),
885
1225
  Component: Surface,
886
1226
  className: classNames([classes.textMiniMenu])
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'])))));
1227
+ }, /*#__PURE__*/React.createElement(ToggleButtons, ToggleButtonsProps, updateElements['italic'], updateElements['underline'], updateElements['bold'], updateElements['strike-line']), miniMenuExtended && /*#__PURE__*/React.createElement(ToggleButtons, ToggleButtonsProps, updateElements['align-left'], updateElements['align-center'], updateElements['align-right'], updateElements['align-justify']), miniMenuExtended && /*#__PURE__*/React.createElement(ToggleButtons, ToggleButtonsProps, updateElements['font-color-mini-menu'], updateElements['font-background-mini-menu']), miniMenuExtended && /*#__PURE__*/React.createElement(ToggleButtons, ToggleButtonsProps, updateElements['list-ordered'], updateElements['list-unordered']), /*#__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'])))));
888
1228
  },
889
1229
  parent: refs.root.current,
890
1230
  anchor: textSelection?.selection,
@@ -913,6 +1253,8 @@ const SmartTextField = /*#__PURE__*/React.forwardRef((props_, ref) => {
913
1253
  }
914
1254
  refs.root.current = item;
915
1255
  },
1256
+ color: color,
1257
+ tonal: tonal,
916
1258
  version: "text",
917
1259
  size: size,
918
1260
  minRows: 12,
@@ -956,6 +1298,8 @@ const SmartTextField = /*#__PURE__*/React.forwardRef((props_, ref) => {
956
1298
  refs.root.current = item;
957
1299
  refs.input.current = item;
958
1300
  },
1301
+ color: color,
1302
+ tonal: tonal,
959
1303
  onInput: onInput,
960
1304
  onKeyDown: onKeyDown,
961
1305
  onKeyUp: onKeyUp,
package/esm/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license UiReact v1.0.96
1
+ /** @license UiReact v1.0.98
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.96",
3
+ "version": "1.0.98",
4
4
  "description": "UI for React",
5
5
  "repository": "https://github.com/onesy-me/onesy.git",
6
6
  "author": "Lazar <lazareric2@gmail.com>",